Jelajahi Sumber

Merge branch 'zhongqi-birthDay' into zhongqi-lakala-jingjian

shizhongqi 4 minggu lalu
induk
melakukan
9167cee9fd

+ 3 - 4
ghsApp/src/admin/home/me.vue

@@ -60,13 +60,12 @@
           <view class="account-info_box content_box">
             <view class="info-lf_box">
               <view>
-                账户余额(元)
+                待结余额(元)
                 <text style="float:right;margin-right:25upx;font-size:28upx;" @click.stop="callFast(1)">联系客服</text>
               </view>
               <view> <text>¥ </text> {{ myInfo.balance||0 }} </view>
               <view>
-                可提现 ¥ {{ myInfo.txBalance||0 }}
-                <text class="to-cash" @click="pageTo({ url: '/admin/shopYeChange/list' })">变动明细</text>
+                <text class="to-cash" style="margin-left:0upx;" @click="pageTo({ url: '/admin/shopYeChange/list' })">变动明细</text>
                 <text class="to-cash" @click="pageTo({ url: '/pagesStore/me/withdraw' })">提现记录</text>
                 <text class="to-cash" v-if="myInfo.txBalance > 0" @click="checkToApplyCash">提现</text>
               </view>
@@ -81,7 +80,7 @@
         <view class="account-info_box content_box">
           <view class="info-lf_box">
             <view>
-              现金(元)
+              剩余现金(元)
             </view>
             <view> <text>¥ </text> {{ myInfo.money||0 }} </view>
             <view>

+ 102 - 55
hdApp/src/admin/birthday/board.vue

@@ -16,7 +16,7 @@
           <view class="date-filter-icon">
             <view class="date-filter-icon-line"></view>
           </view>
-          <text class="date-filter-text">{{ period === 'custom' ? startDate + ' 至 ' + endDate : '时间区间' }}</text>
+          <text class="date-filter-text">{{ period === 'custom' ? '已选' : '时间' }}</text>
           <!-- <text class="date-filter-hint">{{ period === 'custom' ? '重选' : '选择日期' }}</text> -->
           <view class="date-filter-arrow"></view>
         </view>
@@ -28,7 +28,7 @@
           @click="changePeriod(p.value)"
         >{{ p.name }}</view>
       </view>
-      <scroll-view scroll-x class="status-tabs">
+      <view class="status-tabs">
         <view
           v-for="tab in statusTabs"
           :key="tab.key"
@@ -39,7 +39,7 @@
           <text>{{ tab.name }}</text>
           <text class="tab-num">{{ counts[tab.key] || 0 }}</text>
         </view>
-      </scroll-view>
+      </view>
     </view>
 
     <view class="list-wrap">
@@ -47,6 +47,7 @@
         v-for="(item, index) in list.data"
         :key="item.id || index"
         class="gift-card"
+        @click="goCustomDetail(index)"
       >
         <image v-if="item.avatar" class="avatar" :src="item.avatar" mode="aspectFill" />
         <view v-else class="avatar placeholder" />
@@ -60,18 +61,17 @@
               :src="memberBadgeSrc(item.member)"
               mode="aspectFit"
             />
-            <text v-if="item.memberName" class="level-name">{{ item.memberName }}</text>
           </view>
           <view class="info-row">
             <view class="info-lines">
-              <view v-if="item.status === 0" class="line link" @click="fillBirthday(index, list.data)">点击填写生日</view>
-              <view v-else class="line">生日:{{ item.birthdayDisplay }}</view>
-              <view class="line gift-line">生日赠礼:{{ item.giftName || '—' }}</view>
-              <view v-if="item.status === 3 && item.pickupTime" class="line sub">预约领取时间:{{ formatTime(item.pickupTime) }}</view>
+              <view v-if="item.status === 0" class="line link" @click.stop="fillBirthday(index, list.data)">点击填写生日</view>
+              <view v-else class="line gift-line">生日:{{ item.birthdayDisplay }}</view>
+              <view class="line gift-line">礼:{{ item.giftName || '—' }}</view>
+              <view v-if="item.status === 3 && item.pickupTime" class="line sub">预约时间:{{ formatTime(item.pickupTime) }}</view>
               <view v-if="item.status === 4 && item.collectTime" class="line sub">领取时间:{{ formatTime(item.collectTime) }}</view>
-              <view v-if="item.status === 5" class="line sub">预约领取时间:超时自动放弃</view>
             </view>
             <view
+              v-if="shouldShowStatusBadge(item)"
               class="status-badge"
               :class="['st-' + item.status, { clickable: canOperateStatus(item), disabled: isNotifyDisabled(item) }]"
               @click.stop="confirmStatusAction(index, list.data)"
@@ -170,6 +170,7 @@ import ModalModule from '@/components/plugin/modal'
 import { getBoardList, getBoardCounts, notifyTomorrow, notifyBirthdayGift, modifyBirthday, collectBirthdayGift } from '@/api/birthday'
 import { iconSrc } from '@/utils/iconSrc'
 
+// 生日看板供花店员工查看客户生日与赠礼状态,并处理通知、领取及生日补录流程。
 export default {
   name: 'BirthdayBoard',
   components: { AppWrapperEmpty, ModalModule },
@@ -177,7 +178,7 @@ export default {
   data() {
     return {
       searchText: '',
-      period: 'week',
+      period: 'tomorrow',
       startDate: '',
       endDate: '',
       draftStartDate: '',
@@ -192,8 +193,8 @@ export default {
       monthArray: Array.from({ length: 12 }, (_, i) => i + 1),
       dateArray: Array.from({ length: 31 }, (_, i) => i + 1),
       periodTabs: [
-        { name: '今', value: 'today' },
-        { name: '明', value: 'tomorrow' },
+        { name: '今', value: 'today' },
+        { name: '明', value: 'tomorrow' },
         { name: '近一周', value: 'week' },
         { name: '全部', value: 'all' }
       ],
@@ -202,8 +203,8 @@ export default {
         { name: '待通知', key: 'pendingNotify', value: 1 },
         { name: '待领取', key: 'pendingClaim', value: 2 },
         { name: '已领取', key: 'collected', value: 4 },
-        { name: '未填写', key: 'noBirthday', value: 0 },
-        { name: '超时放弃', key: 'expired', value: 5 }
+        { name: '已放弃', key: 'expired', value: 5 },
+        { name: '没生日', key: 'noBirthday', value: 0 }
       ],
       counts: {},
       collectSubmitting: false,
@@ -344,6 +345,18 @@ export default {
     isNotifyDisabled(item = {}) {
       return Number(item.status) === 1 && !this.canNotify(item)
     },
+    // 控制状态标签是否展示;待通知记录的公历生日早于今天时隐藏,日期缺失或格式异常时保留展示。
+    shouldShowStatusBadge(item = {}) {
+      if (item.statusName !== '待通知') return true
+      const match = String(item.birthdayDisplay || '').match(/(\d{1,2})月(\d{1,2})日/)
+      if (!match) return true
+      const birthdayMonth = Number(match[1])
+      const birthdayDate = Number(match[2])
+      const today = new Date()
+      const currentMonth = today.getMonth() + 1
+      const currentDate = today.getDate()
+      return birthdayMonth > currentMonth || (birthdayMonth === currentMonth && birthdayDate >= currentDate)
+    },
     confirmStatusAction(index, list) {
       const item = list[index]
       if (this.canNotify(item)) {
@@ -401,6 +414,20 @@ export default {
     getCustomId(item = {}) {
       return item.customId || item.custom_id || item.custom?.id || ''
     },
+    // 点击列表项进入客户详情(用 index 取数,兼容小程序 click 不传 item 的问题)
+    goCustomDetail(index) {
+      const item = this.list.data[index]
+      if (!item) {
+        this.$msg('客户信息异常')
+        return
+      }
+      const id = this.getCustomId(item)
+      if (!id) {
+        this.$msg('客户信息异常')
+        return
+      }
+      this.$util.pageTo({ url: '/admin/member/detail?id=' + id })
+    },
     fillBirthday(index, list) {
       const item = list[index]
       this.birthdayModal = true
@@ -465,14 +492,19 @@ export default {
   gap: 12upx;
 }
 .green-btn {
-  padding: 12upx 22upx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  min-height: 80upx;
+  padding: 0 28upx;
   background: linear-gradient(135deg, #19d471, #08b955);
   color: #fff;
-  font-size: 26upx;
+  font-size: 28upx;
   border-radius: 8upx;
 }
 .green-btn.outline {
-  padding: 10upx 22upx;
+  min-height: 80upx;
+  padding: 0 28upx;
   background: #fff;
   color: #08b955;
   border: 1upx solid #08b955;
@@ -483,11 +515,11 @@ export default {
   position: relative;
 }
 .search-inp {
-  height: 64upx;
+  height: 80upx;
   background: #f1f3f2;
-  border-radius: 32upx;
+  border-radius: 40upx;
   padding: 0 72upx 0 24upx;
-  font-size: 26upx;
+  font-size: 28upx;
 }
 .search-clear {
   position: absolute;
@@ -510,25 +542,34 @@ export default {
 }
 .filter-row {
   display: flex;
-  align-items: center;
+  align-items: stretch;
   margin-top: 20upx;
-  flex-wrap: wrap;
+}
+.filter-row > view:not(:first-child) {
+  margin-left: 10upx;
 }
 .date-filter-trigger {
+  flex: 1;
+  min-width: 0;
   display: flex;
+  flex-direction: row;
   align-items: center;
-  height: 52upx;
-  padding: 0 18upx;
-  margin-right: 12upx;
-  margin-bottom: 10upx;
+  justify-content: center;
+  height: 68upx;
+  padding: 0 12upx;
+  box-sizing: border-box;
   background: #f0fbf5;
   border: 1upx solid #08b955;
-  border-radius: 28upx;
+  border-radius: 34upx;
   box-shadow: 0 4upx 12upx rgba(8, 185, 85, 0.12);
 }
 .date-filter-icon {
-  width: 24upx;
-  height: 24upx;
+  flex-shrink: 0;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 28upx;
+  height: 28upx;
   margin-right: 8upx;
   border: 2upx solid #08b955;
   border-radius: 5upx;
@@ -552,12 +593,15 @@ export default {
   right: 4upx;
 }
 .date-filter-icon-line {
+  width: 14upx;
   height: 2upx;
-  margin-top: 7upx;
+  margin-top: 4upx;
   background: #08b955;
 }
 .date-filter-text {
-  font-size: 24upx;
+  flex-shrink: 0;
+  line-height: 26upx;
+  font-size: 26upx;
   color: #08b955;
   font-weight: 500;
 }
@@ -567,18 +611,25 @@ export default {
   color: #6abf8e;
 }
 .date-filter-arrow {
+  flex-shrink: 0;
+  align-self: center;
   width: 12upx;
   height: 12upx;
-  margin-left: 8upx;
+  margin-left: 6upx;
   border-top: 2upx solid #08b955;
   border-right: 2upx solid #08b955;
-  transform: rotate(45deg);
+  transform: rotate(45deg) translateY(-1upx);
 }
 .pill {
-  padding: 8upx 20upx;
-  margin-right: 12upx;
-  font-size: 24upx;
-  border-radius: 24upx;
+  flex: 1;
+  min-width: 0;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  min-height: 68upx;
+  padding: 0 8upx;
+  font-size: 26upx;
+  border-radius: 34upx;
   background: #e8f8ef;
   color: #333;
 }
@@ -617,16 +668,19 @@ export default {
   color: #999;
 }
 .status-tabs {
-  white-space: nowrap;
+  display: flex;
+  align-items: stretch;
   margin-top: 16upx;
   padding-bottom: 12upx;
 }
 .status-tab {
-  display: inline-flex;
+  flex: 1;
+  display: flex;
   flex-direction: column;
   align-items: center;
-  padding: 12upx 20upx;
-  font-size: 24upx;
+  justify-content: center;
+  padding: 14upx 4upx;
+  font-size: 28upx;
   color: #666;
 }
 .status-tab.active {
@@ -634,8 +688,8 @@ export default {
   font-weight: 600;
 }
 .tab-num {
-  font-size: 22upx;
-  margin-top: 4upx;
+  font-size: 26upx;
+  margin-top: 6upx;
 }
 .list-wrap {
   padding: 16upx 24upx;
@@ -670,24 +724,17 @@ export default {
   gap: 8upx;
 }
 .name {
-  font-size: 30upx;
+  font-size: 34upx;
   font-weight: 600;
 }
 .mobile {
-  font-size: 24upx;
+  font-size: 28upx;
   color: #888;
 }
 .level-icon {
   width: 40upx;
   height: 40upx;
 }
-.level-name {
-  font-size: 22upx;
-  color: #08b955;
-  background: #e8f8ef;
-  padding: 2upx 10upx;
-  border-radius: 8upx;
-}
 .info-row {
   display: flex;
   align-items: flex-start;
@@ -697,16 +744,16 @@ export default {
   min-width: 0;
 }
 .line {
-  font-size: 24upx;
+  font-size: 26upx;
   color: #666;
-  margin-top: 8upx;
+  margin-top:10upx;
 }
 .line.link {
   color: #1989fa;
 }
 .line.sub {
   color: #999;
-  font-size: 22upx;
+  font-size: 24upx;
 }
 .gift-line {
   color: #333;

+ 34 - 16
hdApp/src/admin/birthday/giftStats.vue

@@ -1,19 +1,21 @@
 <template>
   <view class="gift-stats app-content">
     <view class="period-row">
-      <text class="label">时间周期</text>
+      <view class="label">时间</view>
       <view
         v-for="p in periodTabs"
         :key="p.value"
         class="pill"
         :class="{ active: period === p.value }"
         @click="changePeriod(p.value)"
-      >{{ p.name }}</view>
+      >
+        <text class="pill-text">{{ p.name }}</text>
+      </view>
     </view>
 
     <view class="table-block">
-      <view class="block-title">待确认领取</view>
-      <view class="block-desc">待通知、已通知未回复领取人员</view>
+      <view class="block-title">待确认</view>
+      <view class="block-desc">待通知、已通知未回复的</view>
       <view class="table">
         <view class="tr head">
           <view class="td">生日赠礼名称</view>
@@ -28,8 +30,8 @@
     </view>
 
     <view class="table-block">
-      <view class="block-title">确认领取</view>
-      <view class="block-desc">已回复短信会来领取但还未领取人员已领取的人员</view>
+      <view class="block-title">确认</view>
+      <view class="block-desc">已回复未领取、已领取的</view>
       <view class="table">
         <view class="tr head">
           <view class="td">生日赠礼名称</view>
@@ -52,10 +54,10 @@ export default {
   name: 'BirthdayGiftStats',
   data() {
     return {
-      period: 'today',
+      period: 'tomorrow',
       periodTabs: [
-        { name: '今', value: 'today' },
-        { name: '明', value: 'tomorrow' },
+        { name: '今', value: 'today' },
+        { name: '明', value: 'tomorrow' },
         { name: '近一周', value: 'week' },
         { name: '全部', value: 'all' }
       ],
@@ -103,16 +105,32 @@ export default {
   margin-bottom: 24upx;
 }
 .label {
-  font-size: 28upx;
-  margin-right: 16upx;
+  display: flex;
+  align-items: center;
+  flex-shrink: 0;
+  height: 68upx;
+  font-size: 32upx;
+  font-weight: 500;
+  line-height: 1;
+  margin-right: 20upx;
 }
 .pill {
-  padding: 10upx 24upx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 68upx;
+  padding: 0 28upx;
   margin-right: 12upx;
-  font-size: 26upx;
-  border-radius: 8upx;
+  margin-bottom: 12upx;
+  box-sizing: border-box;
+  border-radius: 34upx;
   background: #e8f8ef;
 }
+.pill-text {
+  font-size: 30upx;
+  line-height: 1;
+  color: inherit;
+}
 .pill.active {
   background: #08b955;
   color: #fff;
@@ -124,13 +142,13 @@ export default {
   margin-bottom: 24upx;
 }
 .block-title {
-  font-size: 30upx;
+  font-size: 36upx;
   font-weight: 600;
   margin-bottom: 8upx;
 }
 .block-desc {
   color: #888;
-  font-size: 24upx;
+  font-size: 26upx;
   line-height: 34upx;
   margin-bottom: 20upx;
 }

+ 9 - 8
hdApp/src/admin/home/components/mall-home-panel.vue

@@ -97,10 +97,10 @@
         <view class="birthday-entry-row">
           <view class="birthday-entry-left">
             <text class="birthday-entry-icon">🎂</text>
-            <text class="birthday-entry-title">最近生日</text>
-            <text class="birthday-entry-stat">今日 {{ birthdaySummary.today || 0 }} 人</text>
-            <text class="birthday-entry-stat">明日 {{ birthdaySummary.tomorrow || 0 }} 人</text>
-            <text class="birthday-entry-stat">近一周 {{ birthdaySummary.week || 0 }} 人</text>
+            <text class="birthday-entry-title">生日</text>
+            <text class="birthday-entry-stat">今天{{ birthdaySummary.today || 0 }}人</text>
+            <text class="birthday-entry-stat">明天{{ birthdaySummary.tomorrow || 0 }}人</text>
+            <text class="birthday-entry-stat">近一周{{ birthdaySummary.week || 0 }}人</text>
           </view>
           <text class="birthday-entry-arrow">›</text>
         </view>
@@ -765,6 +765,7 @@ export default {
   margin: 24upx 24upx 0;
   border-radius: 18upx;
   overflow: hidden;
+  box-shadow: 0 8upx 26upx rgba(20, 48, 36, 0.06);
 }
 .birthday-entry-row {
   display: flex;
@@ -779,7 +780,7 @@ export default {
   flex-wrap: wrap;
   flex: 1;
   min-width: 0;
-  font-size: 26upx;
+  font-size: 32upx;
   color: #333;
 }
 .birthday-entry-icon {
@@ -787,12 +788,12 @@ export default {
   margin-right: 12upx;
 }
 .birthday-entry-title {
-  font-weight: 600;
-  margin-right: 16upx;
+  font-weight: bold;
 }
 .birthday-entry-stat {
   color: #666;
-  margin-right: 12upx;
+  margin-left: 30upx;
+  font-size: 30upx;
 }
 .birthday-entry-arrow {
   font-size: 40upx;

+ 3 - 3
hdApp/src/admin/home/me.vue

@@ -46,7 +46,7 @@
       <view class="content-wrap">
       <view class="finance-stack">
         <view class="finance-card" v-if="lookMoney == 1">
-          <view class="finance-label">账户余额(元)</view>
+          <view class="finance-label">待结余额(元)</view>
           <view class="finance-amount">¥{{ moneyFormat(myInfo.balance) }}</view>
           <view class="finance-actions">
             <view class="pill-btn" @click="pageTo({ url: '/pagesStore/me/shopYeChange' })">变动明细</view>
@@ -56,7 +56,7 @@
         </view>
 
         <view class="finance-card">
-          <view class="finance-label">现金(元)</view>
+          <view class="finance-label">剩余现金(元)</view>
           <view class="finance-amount">¥{{ moneyFormat(myInfo.money) }}</view>
           <view class="finance-actions">
             <view class="pill-btn" @click="pageTo({ url: '/admin/home/moneyChangeList' })">变动明细</view>
@@ -850,7 +850,7 @@ export default {
   margin-right: 20upx;
   margin-bottom: 0;
   color: #666666;
-  font-size: 28upx;
+  font-size: 26upx;
   font-weight: 400;
   white-space: nowrap;
   box-sizing: border-box;

+ 53 - 23
hdApp/src/admin/member/level.vue

@@ -2,15 +2,13 @@
 	<view class="app-content level-page">
 		<view class="page-header">
 			<view class="page-title">会员等级设置</view>
-			<view class="page-subtitle">设置不同会员等级的消费/充值金额标准</view>
-			<view class="title-decor"></view>
+			<view class="page-subtitle">充值或消费1元等于1个成长值,余额消费没有成长值</view>
 		</view>
-
 		<view class="main-content">
 			<view class="table-head">
 				<view class="col-icon">图标</view>
 				<view class="col-level">等级</view>
-				<view class="col-amount">金额(元)</view>
+				<view class="col-amount">成长值</view>
 				<view class="col-discount">折扣</view>
 			</view>
 			<view class="level-card" v-for="(item, index) in map" :key="index">
@@ -41,7 +39,10 @@
 								v-model="item.discount"
 								type="digit"
 								class="discount-inp"
-								placeholder="如9.5"
+								placeholder="8.8"
+								placeholder-style="color:#cccccc"
+								:focus="focusDiscountIndex === index"
+								@blur="onDiscountBlur"
 							/>
 							<text class="discount-unit">折</text>
 							<view class="discount-close" @click="disableDiscount(index)">
@@ -61,7 +62,7 @@
 					<view class="char-count">{{ (item.birthdayBenefit || '').length }}/10</view>
 				</view>
 				<view class="card-section">
-					<view class="section-label">会员权益说明</view>
+					<view class="section-label">会员权益</view>
 					<textarea
 						v-model="item.benefitDesc"
 						class="section-textarea"
@@ -89,7 +90,9 @@ export default {
 	data() {
 		return {
 			map: [],
-			reduceDay: 30
+			reduceDay: 30,
+			// 开启折扣后要聚焦的输入框下标,-1 表示不聚焦
+			focusDiscountIndex: -1
 		};
 	},
 	methods: {
@@ -127,10 +130,26 @@ export default {
 			if (!this.map[index].discount || Number(this.map[index].discount) >= 10) {
 				this.$set(this.map[index], 'discount', '');
 			}
+			// 先重置再 nextTick 设焦点,兼容小程序 :focus 需 false→true 切换
+			this.focusDiscountIndex = -1;
+			this.$nextTick(() => {
+				this.focusDiscountIndex = index;
+			});
 		},
 		disableDiscount(index) {
 			this.$set(this.map[index], 'discountEnabled', false);
 			this.$set(this.map[index], 'discount', 10);
+			this.focusDiscountIndex = -1;
+		},
+		onDiscountBlur() {
+			this.focusDiscountIndex = -1;
+		},
+		// 取提交/校验用的有效折扣:未开启视为 10 折(无优惠)
+		getEffectiveDiscount(item) {
+			if (!item.discountEnabled) {
+				return 10;
+			}
+			return parseFloat(item.discount);
 		},
 		getSubmitData() {
 			return this.map.map(item => {
@@ -186,6 +205,17 @@ export default {
 				this.$msg('开启折扣后请输入小于10的有效折扣');
 				return false;
 			}
+			// 等级越高,折扣数值须 ≤ 上一等级(如上一级 9.5 折,本级最高只能 9.5 折)
+			for (let i = 1; i < this.map.length; i++) {
+				const prevItem = this.map[i - 1];
+				const currItem = this.map[i];
+				const prevDiscount = this.getEffectiveDiscount(prevItem);
+				const currDiscount = this.getEffectiveDiscount(currItem);
+				if (currDiscount > prevDiscount) {
+					this.$msg(`${currItem.name}的折扣不能高于${prevItem.name}`);
+					return false;
+				}
+			}
 			const hasLongBenefit = this.map.some(item => (item.birthdayBenefit || '').length > 50);
 			if (hasLongBenefit) {
 				this.$msg('生日权益不超过50字');
@@ -223,7 +253,7 @@ export default {
 		letter-spacing: 2upx;
 	}
 	.page-subtitle {
-		font-size: 22upx;
+		font-size: 28upx;
 		color: #a5aaa8;
 		text-align: center;
 		margin-top: 12upx;
@@ -265,8 +295,8 @@ export default {
 	display: flex;
 	align-items: center;
 	height: 74upx;
-	font-size: 28upx;
-	font-weight: 600;
+	font-size: 34upx;
+	font-weight: bold;
 	color: #28884d;
 	border-bottom: 1upx solid #edf3ed;
 	box-sizing: border-box;
@@ -325,8 +355,8 @@ export default {
 	background: linear-gradient(90deg, #67d85a, #41b94e);
 	color: #fff;
 	padding: 0 14upx;
-	border-radius: 24upx;
-	font-size: 24upx;
+	border-radius: 20upx;
+	font-size: 28upx;
 	font-weight: 600;
 	box-shadow: 0 4upx 10upx rgba(67, 183, 78, 0.2);
 	box-sizing: border-box;
@@ -342,7 +372,7 @@ export default {
 	border: 1upx solid #edf0ed;
 	border-radius: 8upx;
 	padding: 0 8upx;
-	font-size: 26upx;
+	font-size: 32upx;
 	font-weight: 600;
 	color: #368753;
 	text-align: center;
@@ -378,14 +408,14 @@ export default {
 	min-width: 0;
 	height: 100%;
 	line-height: 54upx;
-	font-size: 26upx;
+	font-size: 30upx;
 	font-weight: 600;
 	color: #368753;
 	text-align: center;
 }
 .discount-unit {
 	flex-shrink: 0;
-	font-size: 22upx;
+	font-size: 28upx;
 	color: #368753;
 	margin-left: 2upx;
 }
@@ -413,19 +443,19 @@ export default {
 .section-label {
 	width: 132upx;
 	flex-shrink: 0;
-	line-height: 54upx;
-	font-size: 24upx;
+	line-height: 58upx;
+	font-size: 28upx;
 	font-weight: 600;
 	color: #3b3f3c;
 }
 .section-inp {
 	flex: 1;
-	height: 58upx;
-	line-height: 58upx;
+	height: 62upx;
+	line-height: 62upx;
 	border: 1upx solid #edf0ed;
 	border-radius: 8upx;
 	padding: 0 18upx;
-	font-size: 24upx;
+	font-size: 28upx;
 	box-sizing: border-box;
 	color: #333;
 }
@@ -436,8 +466,8 @@ export default {
 	border: 1upx solid #edf0ed;
 	border-radius: 8upx;
 	padding: 14upx 18upx 28upx;
-	font-size: 24upx;
-	line-height: 34upx;
+	font-size: 28upx;
+	line-height: 38upx;
 	box-sizing: border-box;
 	color: #333;
 }
@@ -445,7 +475,7 @@ export default {
 	position: absolute;
 	right: 16upx;
 	bottom: 8upx;
-	font-size: 22upx;
+	font-size: 26upx;
 	color: #a8a8a8;
 	line-height: 1;
 }

+ 1 - 1
hdApp/src/pagesPurchase/contact.vue

@@ -10,7 +10,7 @@
 
     <!-- 软件公司联系方式说明:避免用户误把花材售后问题发到软件客服 -->
     <view class="software-notice">
-      以下联系方式是软件公司,只提供系统和软件服务咨询,没有处理商家花材质量和售后问题。
+      以下联系方式是软件公司,只提供软件使用咨询,没有处理商家花材质量和售后问题。
     </view>
 
     <view class="section-card contact-card">