Jelajahi Sumber

Merge branch 'master' into zhongqi-birthDay

shish 1 bulan lalu
induk
melakukan
8e48b15790

+ 1 - 1
ghsApp/src/admin/book/index.vue

@@ -39,7 +39,7 @@ export default {
 		return {
 			title: '销花宝教学视频',
 			desc: "图文视频教学,带您快速上手",
-			imageUrl: `${this.$constant.imgUrl}/logo5.png`,
+			imageUrl: `${this.$constant.imgUrl}/logo6.png`,
 			path: "admin/book/index",
 		}
 	},

+ 1 - 1
ghsApp/src/admin/book/jdIndex.vue

@@ -39,7 +39,7 @@ export default {
 		return {
 			title: '销花宝教学视频(基地)',
 			desc: "图文视频教学,带您快速上手",
-			imageUrl: `${this.$constant.imgUrl}/logo5.png`,
+			imageUrl: `${this.$constant.imgUrl}/logo6.png`,
 			path: "admin/book/jdIndex",
 		}
 	},

+ 45 - 27
ghsApp/src/admin/home/member.vue

@@ -23,23 +23,23 @@
     <view class="app-tabs">
       <app-tabs :tabs="tabs" :isFixed="true" :top="100" :currentTab="tabIndex" :height="100" @change="change" itemWidth="33.33%" />
      </view>
-    <div class="list-wrap">
+    <view class="list-wrap">
     <block v-if="!$util.isEmpty(list.data)">
       <block v-for="(item, index) in list.data" :key="index">
         <tui-list-cell :arrow="true" @click="pageTo({url: '/pagesClient/member/detail?id='+item.id})">
-          <div class="tui-msg-box">
-            <img :src="item.smallAvatar" class="tui-msg-pic" mode="widthFix" />
-            <div class="tui-msg-item">
-              <div class="tui-msg-name">
-                <div class="tui-user-name">
-                  {{ item.name }}
+          <view class="tui-msg-box">
+            <image :src="item.smallAvatar" class="tui-msg-pic" mode="widthFix" />
+            <view class="tui-msg-item">
+              <view class="tui-msg-name">
+                <view class="tui-user-name">
+                  <text class="tui-user-name__text">{{ item.name }}</text>
                   <text v-if="item.pt == 1" class="pt-recommend">平台推荐</text>
                   <text v-if="item.level == 2" class="super-man">大客</text>
                   <text v-if="item.level == 9" class="cost-man">成本</text>
                   <text v-if="item.level == 0" class="ls-man">零售</text>
-                </div>
-              </div>
-              <div class="tui-msg-content">
+                </view>
+              </view>
+              <view class="tui-msg-content">
                 <span>{{ item.visitTime.substr(5,11) }}</span>
                 <span v-if="tabIndex == 1" class="debt-amount">消费 <span class="amount_num">{{parseFloat(item.buyAmount)}}</span> </span>
                 <span v-else>
@@ -69,19 +69,19 @@
 
                 <text v-if="item.distName!=''" style="color:#e0c8c8;font-weight:normal;margin-left:15upx;">{{ item.distName }}</text>
 
-              </div>
-            </div>
-          </div>
-          <div class="tui-msg-right">
+              </view>
+            </view>
+          </view>
+          <view class="tui-msg-right">
             <badge-module type="danger" :dot="item.level == 3 ? true : false" v-if="item.messageNum > 0" >{{ item.messageNum }}</badge-module >
-          </div>
+          </view>
         </tui-list-cell>
       </block>
     </block>
     <block v-else>
       <app-wrapper-empty :is-empty="$util.isEmpty(list.data)" title="暂无客户" />
     </block>
-    </div>
+    </view>
     <NotLogin></NotLogin>
 
     <view class="shop-select-wrap">
@@ -621,9 +621,9 @@ export default {
     display: flex;
     flex-direction: column;
     justify-content: space-between;
-    & > div {
+    & > view {
       @include disFlex(center, flex-start);
-      & > div:first-child {
+      & > view:first-child {
         margin-right: 8upx;
       }
     }
@@ -674,45 +674,63 @@ export default {
     line-height: 1;
     color: #262b3a;
     .tui-user-name {
+      display: flex;
+      flex-direction: row;
+      align-items: center;
+      flex-wrap: nowrap;
       overflow: hidden;
-      text-overflow: ellipsis;
-      white-space: nowrap;
-      width: 500upx;
-      font-size: 32upx;
+      max-width: 500upx;
+      line-height: 1;
+
+      &__text {
+        flex-shrink: 1;
+        min-width: 0;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        font-size: 34upx;
+      }
+
       .super-man{
         margin-left:20upx;
         font-size:24upx;
-        display:inline-block;
+        flex-shrink: 0;
         color:white;
         border:1upx solid green;
         padding:8upx 10upx;
         background-color: green;
         border-radius: 11upx;
+        line-height: 1.2;
       }
       .cost-man{
         margin-left:20upx;
         font-size:24upx;
-        display:inline-block;
+        flex-shrink: 0;
         color:white;
         border:1upx solid red;
         padding:8upx 10upx;
         background-color: red;
         border-radius: 11upx;
+        line-height: 1.2;
       }
       .ls-man{
         margin-left:20upx;
         font-size:24upx;
-        display:inline-block;
-        color:#6f756f;
-        border:1upx solid #6f756f;
+        flex-shrink: 0;
+        color:white;
+        border:1upx solid #6b9fec;
+        background-color:#6b9fec;
         padding:8upx 10upx;
         border-radius: 11upx;
+        line-height: 1.2;
       }
       .pt-recommend {
         margin-left: 10upx;
         font-size: 24upx;
         color: #3385FF;
         font-weight: normal;
+        flex-shrink: 0;
+        line-height: 1.2;
       }
     }
   }

+ 2 - 2
ghsApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "销花宝",
     "appid" : "__UNI__BD781B0",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.3.12",
-    "versionCode" : 1312,
+    "versionName" : "1.3.13",
+    "versionCode" : 1313,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 1 - 0
ghsApp/src/pages.json

@@ -85,6 +85,7 @@
 				{"path": "official/index","style": {"navigationBarTitleText": "销花宝"}},
 				{"path": "official/pay","style": {"navigationBarTitleText": "支付"}},
 				{"path": "official/apply","style": {"navigationBarTitleText": "填写店铺信息"}},
+				{"path": "official/contact","style": {"navigationBarTitleText": "联系我们"}},
 				{"path": "official/clientApply","style": {"navigationBarTitleText": "结果"}},
 				{"path": "official/clientResult","style": {"navigationBarTitleText": "提交审核"}},
 				{"path": "official/renewal","style": {"navigationBarTitleText": "续期"}},

+ 94 - 6
ghsApp/src/pagesClient/member/detail.vue

@@ -157,12 +157,28 @@
             </tui-list-cell>
 
             <view style="border:2upx solid #CCCCCC;">
-              <tui-list-cell class="line-cell" :hover="false">
-                <div class="tui-title">下单价格</div>
-                <button class="admin-button-com middle" :class="[form.level == 0 ? 'blue' : 'default']" @click="changeLevelBtn(0)">零售</button>
-                <button class="admin-button-com middle" :class="[form.level == 1 ? 'blue' : 'default']" @click="changeLevelBtn(1)" style="margin-left:5upx;">批发</button>
-                <button class="admin-button-com middle" :class="[form.level == 2 ? 'blue' : 'default']" @click="changeLevelBtn(2)" style="margin-left:5upx;">大客</button>
-                <button class="admin-button-com middle" :class="[form.level == 9 ? 'blue' : 'default']" @click="changeLevelBtn(9)" style="margin-left:5upx;">成本</button>
+              <tui-list-cell class="line-cell member-level-cell" :hover="false">
+                <view class="member-level-wrap">
+                  <view class="member-level-row">
+                    <view class="tui-title member-level-row__label">下单价格</view>
+                    <view class="member-level-row__btns">
+                      <button class="admin-button-com middle" :class="[form.level == 0 ? 'blue' : 'default']" @click="changeLevelBtn(0)">零售价</button>
+                      <button class="admin-button-com middle member-level-row__btn" :class="[form.level == 1 ? 'blue' : 'default']" @click="changeLevelBtn(1)">批发价</button>
+                    </view>
+                  </view>
+                  <view class="member-level-advanced">
+                    <text class="member-level-advanced__toggle" @click="toggleAdvancedLevel">
+                      {{ showAdvancedLevel ? '收起更多下单价格' : '展开更多下单价格' }}
+                      <text v-if="!showAdvancedLevel && isAdvancedLevel(form.level)" class="member-level-advanced__current">(当前:{{ levelLabel(form.level) }})</text>
+                    </text>
+                    <view class="member-level-row member-level-row--advanced" v-if="showAdvancedLevel">
+                      <view class="member-level-row__btns member-level-row__btns--advanced">
+                        <button class="admin-button-com middle member-level-row__btn" :class="[form.level == 2 ? 'blue' : 'default']" @click="changeLevelBtn(2)">大客价</button>
+                        <button class="admin-button-com middle member-level-row__btn" :class="[form.level == 9 ? 'blue' : 'default']" @click="changeLevelBtn(9)">成本价</button>
+                      </view>
+                    </view>
+                  </view>
+                </view>
               </tui-list-cell>
 
               <tui-list-cell class="line-cell" :hover="false" v-if="form.home == 1">
@@ -467,6 +483,7 @@ export default {
         staffId:0,
         debtLimitPay:0
       },
+      showAdvancedLevel: false,
       wlSelData: {},
       discount:null,
       tabsData: [
@@ -781,6 +798,19 @@ export default {
         }
       });
     },
+    /** 展开/收起大客、成本等高级价格档位 */
+    toggleAdvancedLevel() {
+      this.showAdvancedLevel = !this.showAdvancedLevel;
+    },
+    /** 是否为大客、成本等高级档位 */
+    isAdvancedLevel(level) {
+      return Number(level) === 2 || Number(level) === 9;
+    },
+    /** 价格档位文案 */
+    levelLabel(level) {
+      const map = { 0: '零售价', 1: '批发价', 2: '大客价', 9: '成本价' };
+      return map[level] || '';
+    },
     modifySeatSn(){
       if(this.$util.isEmpty(this.userInfo.seatSn)){
         this.$msg('请填写货位号')
@@ -1083,6 +1113,8 @@ export default {
         this.userInfo = res.data;
         this.form.debt = this.userInfo.debt
         this.form.level = this.userInfo.level
+        // 当前已是高级档位时默认展开,避免看不到选中状态
+        this.showAdvancedLevel = this.isAdvancedLevel(this.userInfo.level)
         this.form.black = this.userInfo.black
         this.form.delStatus = this.userInfo.delStatus
         this.form.showStock = this.userInfo.showStock
@@ -1238,6 +1270,62 @@ export default {
   margin-right:120upx;
 }
 
+/* 客户详情:下单价格,常用档与高级档分区,降低误触 */
+.member-level-cell {
+  align-items: flex-start;
+}
+
+.member-level-wrap {
+  flex: 1;
+  min-width: 0;
+}
+
+.member-level-row {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+
+  &__label {
+    flex-shrink: 0;
+    margin-right: 16upx;
+  }
+
+  &__btns {
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    flex-wrap: wrap;
+    justify-content: flex-end;
+    flex: 1;
+  }
+
+  &__btn {
+    margin-left: 20upx;
+    margin-top: 0;
+  }
+
+  &--advanced {
+    margin-top: 16upx;
+    justify-content: flex-end;
+  }
+}
+
+.member-level-advanced {
+  margin-top: 16upx;
+
+  &__toggle {
+    font-size: 34upx;
+    color: #3385ff;
+    line-height: 38upx;
+  }
+
+  &__current {
+    color: #fa3534;
+    margin-left: 8upx;
+  }
+}
+
 /* 客户详情:收货地址卡片,与上方客户信息区独立留白 */
 .address-block {
   &__head {

+ 9 - 5
ghsApp/src/pagesClient/official/apply.vue

@@ -4,8 +4,8 @@
       <view class="apply-body">
         <view class="apply-alert apply-alert--warning">
           <text class="apply-alert-line">
-            <text class="apply-alert-text">零售花店和个人请勿注册,注册了不会审核通过。零售花店需要系统请加微信:</text>
-            <text class="apply-alert-link" @click="copyWechat('18559200768')">18559200768</text>
+            <text class="apply-alert-text">这个批发店使用的系统,零售花店和个人请勿注册,注册了不会审核通过。零售花店需要系统请</text>
+            <text class="apply-alert-link" @click="goToContact()">点此添加微信</text>
           </text>
         </view>
 
@@ -436,6 +436,10 @@ export default {
           }
         })
 			})
+    },
+    /** 零售花店查看联系微信:跳转官方联系页 */
+    goToContact() {
+      this.$util.pageTo({ url: '/pagesClient/official/contact' })
     },
 		goToService(){
 			this.$util.pageTo({ url: "/admin/home/register"})
@@ -656,7 +660,7 @@ export default {
 .apply-alert-line {
   display: inline;
   color: #c0392b;
-  font-size: 30upx;
+  font-size: 32upx;
   line-height: 44upx;
 }
 
@@ -675,8 +679,8 @@ export default {
 
 .apply-alert-link {
   color: #3385ff;
-  font-size: 32upx;
-  font-weight: 700;
+  font-size: 30upx;
+  text-decoration: underline;
   line-height: 44upx;
 }
 

+ 193 - 0
ghsApp/src/pagesClient/official/contact.vue

@@ -0,0 +1,193 @@
+<template>
+    <view class="app-content">
+      <view class="section-card contact-card">
+        <view class="section-label">零售花店</view>
+        <view class="contact-tip">
+          需要申请商城系统,请加下面微信。添加时请注明:
+          <text class="contact-highlight">花店</text>
+          ,否则可能会不通过。
+        </view>
+        <view class="wechat-list">
+          <view class="wechat-item">
+            <view class="qrcode-box">
+              <image
+                class="qrcode-image"
+                :src="`${constant.imgUrl}/shop/contact_mg.jpg`"
+                mode="widthFix"
+                show-menu-by-longpress
+              />
+            </view>
+            <view class="qrcode-hint">长按识别二维码</view>
+          </view>
+        </view>
+      </view>
+  
+      <view class="section-card contact-card">
+        <view class="section-label">城市批发 / 斗南批发</view>
+        <view class="contact-tip">
+          需要申请商城系统,请加下面微信。添加时请注明:
+          <text class="contact-highlight">批发店</text>
+          ,否则可能会不通过。
+        </view>
+        <view class="wechat-list">
+          <view class="wechat-item">
+            <view class="qrcode-box">
+              <image
+                class="qrcode-image"
+                :src="`${constant.imgUrl}/shop/contact_st.jpg`"
+                mode="widthFix"
+                show-menu-by-longpress
+              />
+            </view>
+            <view class="qrcode-hint">长按识别二维码</view>
+          </view>
+        </view>
+      </view>
+  
+    </view>
+  </template>
+  
+  <script>
+  export default {
+    name: "contact",
+    data() {
+      return {
+        constant: this.$constant
+      };
+    },
+    methods: {
+      init() {},
+      copyWechat(wechatId) {
+        uni.setClipboardData({
+          data: wechatId,
+          success: () => {
+            // #ifndef MP-WEIXIN
+            this.$msg("复制成功");
+            // #endif
+          },
+          fail: () => {
+            this.$msg("复制失败");
+          }
+        });
+      }
+    },
+    // #ifdef MP-WEIXIN
+    onShareAppMessage() {
+      return {
+        title: "公告",
+        path: "pagesPurchase/contact",
+        imageUrl: ""
+      };
+    }
+    // #endif
+  };
+  </script>
+  
+  <style lang="scss" scoped>
+  .app-content {
+    min-height: 100vh;
+    padding: 24upx 24upx 40upx;
+    box-sizing: border-box;
+    background: #f5f7f6;
+  }
+  
+  .section-card {
+    background: #fff;
+    border-radius: 24upx;
+    padding: 32upx 28upx;
+    margin-bottom: 24upx;
+    box-shadow: 0 10upx 28upx rgba(24, 37, 30, 0.06);
+  }
+  
+  .section-label {
+    color: #18251e;
+    font-size: 34upx;
+    font-weight: 700;
+    line-height: 48upx;
+    margin-bottom: 20upx;
+  }
+  
+  .section-desc {
+    color: #333;
+    font-size: 30upx;
+    line-height: 46upx;
+    margin-bottom: 24upx;
+  }
+  
+  .guide-card .image-box {
+    width: 100%;
+    border-radius: 16upx;
+    overflow: hidden;
+    border: 1upx solid #eef1ef;
+  }
+  
+  .guide-image {
+    width: 100%;
+    display: block;
+  }
+  
+  .software-notice {
+    color: #e65c00;
+    font-size: 32upx;
+    line-height: 44upx;
+    padding: 20upx 28upx;
+    margin-bottom: 24upx;
+    background: #fff7f0;
+    border-radius: 16upx;
+    border: 1upx solid #ffd9b8;
+    font-weight: bold;
+  }
+  
+  .contact-tip {
+    color: #5c6661;
+    font-size: 28upx;
+    line-height: 44upx;
+    margin-bottom: 24upx;
+  }
+  
+  .contact-highlight {
+    color: #09c567;
+    font-weight: 600;
+  }
+  
+  .wechat-list {
+    display: flex;
+    flex-direction: column;
+  }
+  
+  .wechat-item {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding: 28upx 24upx 32upx;
+    border-radius: 18upx;
+    background: #f7faf8;
+    margin-top: 20upx;
+  
+    &:first-child {
+      margin-top: 0;
+    }
+  }
+  
+  .qrcode-box {
+    width: 100%;
+    max-width: 420upx;
+    border-radius: 16upx;
+    overflow: hidden;
+    border: 1upx solid #eef1ef;
+    background: #fff;
+  }
+  
+  .qrcode-image {
+    width: 100%;
+    display: block;
+  }
+  
+  .qrcode-hint {
+    margin-top: 20upx;
+    color: black;
+    font-size: 32upx;
+    line-height: 40upx;
+    text-align: center;
+  }
+  </style>  

+ 42 - 23
ghsApp/src/pagesStore/me/withdraw.vue

@@ -6,8 +6,7 @@
 				<view class="table-header">
 					<view class="header-item time-col">申请时间</view>
 					<view class="header-item arrival-col">到账时间</view>
-					<view class="header-item amount-col">提现</view>
-					<view class="header-item actual-col">实到</view>
+					<view class="header-item amount-col">提现金额</view>
 					<view class="header-item status-col">状态</view>
 				</view>
 				
@@ -31,10 +30,6 @@
 						<view class="row-item amount-col" @click="getDetail(item.id)">
 							<view class="amount-text">{{item.amount}}</view>
 						</view>
-						<view class="row-item actual-col" @click="getDetail(item.id)">
-							<view class="actual-text" v-if="item.status==2"></view>
-							<view class="actual-text" v-else></view>
-						</view>
 						<view class="row-item status-col" @click="getDetail(item.id)">
 							<view class="status-text">{{item.status==1?'处理中':item.status==2?'已到账':'失败'}}</view>
 						</view>
@@ -96,19 +91,31 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+/**
+ * 提现记录列表
+ * 四列等比铺满屏幕宽度,避免固定 upx 宽度导致右侧留白
+ */
 .app-content {
 	background-color: #f5f5f5;
 	min-height: 100vh;
+	width: 100%;
+	box-sizing: border-box;
 }
 
 .main-view {
 	padding: 0;
+	width: 100%;
+	box-sizing: border-box;
 }
 
 .table-header {
 	display: flex;
+	flex-direction: row;
+	align-items: center;
+	width: 100%;
+	box-sizing: border-box;
 	background-color: #F0F2F6;
-	padding: 24upx 16upx;
+	padding: 24upx 0;
 	margin-bottom: 2upx;
 	font-size: 32upx;
 	font-weight: 600;
@@ -118,11 +125,16 @@ export default {
 .table-body {
 	background-color: #fff;
 	overflow: hidden;
+	width: 100%;
 }
 
 .table-row {
 	display: flex;
-	padding: 24upx 16upx;
+	flex-direction: row;
+	align-items: center;
+	width: 100%;
+	box-sizing: border-box;
+	padding: 24upx 0;
 	border-bottom: 1upx solid #f0f0f0;
 	transition: background-color 0.2s ease;
 	
@@ -135,42 +147,47 @@ export default {
 	}
 }
 
-.header-item {
-	font-size: 32upx;
-	font-weight: 600;
-	color: #000;
-}
-
+.header-item,
 .row-item {
+	flex: 1;
+	width: 0;
+	min-width: 0;
+	box-sizing: border-box;
+	padding: 0 8upx;
 	font-size: 30upx;
 	color: #000;
 	display: flex;
+	flex-direction: row;
 	align-items: center;
 	justify-content: center;
+	text-align: center;
+}
+
+.header-item {
+	font-size: 32upx;
+	font-weight: 600;
 }
 
 .time-col {
-	flex: 0 0 180upx;
+	flex: 1.35;
 	justify-content: flex-start;
+	text-align: left;
 }
 
 .arrival-col {
-	flex: 0 0 150upx;
+	flex: 1.15;
 }
 
 .amount-col {
-	flex: 0 0 120upx;
-}
-
-.actual-col {
-	flex: 0 0 100upx;
+	flex: 1;
 }
 
 .status-col {
-	flex: 0 0 100upx;
+	flex: 0.95;
 }
 
 .time-info {
+	width: 100%;
 	text-align: left;
 	
 	.time {
@@ -187,10 +204,12 @@ export default {
 
 .arrival-text,
 .amount-text,
-.actual-text,
 .status-text {
 	font-size: 30upx;
 	color: #000;
 	font-weight: 500;
+	width: 100%;
+	text-align: center;
+	word-break: break-all;
 }
 </style>

+ 1 - 8
hdApp/src/admin/home/me.vue

@@ -381,14 +381,7 @@ export default {
       }
     },
     suggest () {
-      this.$util.confirmModal({ content: "请添加客服微信", okText: "复制微信" }, () => {
-        uni.setClipboardData({
-          data: "18559200768",
-          success: () => {
-            this.$msg("复制成功");
-          }
-        });
-      });
+      this.$util.pageTo({ url: "/pagesPurchase/contact" });
     },
     goToService () {
       this.$util.pageTo({ url: "/admin/home/register" });

+ 72 - 20
hdApp/src/admin/home/order.vue

@@ -40,7 +40,7 @@
 
         <view v-if="showSearch" class="search-suggest">
           <block v-if="!$util.isEmpty(searchList)">
-            <view class="suggest-item" v-for="(item, index) in searchList" :key="index" @click="getCustom(item)">
+            <view class="suggest-item" v-for="(item, index) in searchList" :key="index" @click="getCustom(index)">
               <view class="suggest-name">{{ item.name }}</view>
               <view class="suggest-meta">
                 <text>{{ item.visitTime ? item.visitTime.substr(5, 11) : '' }}</text>
@@ -56,7 +56,7 @@
             :key="index"
             class="status-tab"
             :class="{ active: tabIndex == index }"
-            @click="change({ index: index, item: item })"
+            @click="change(index)"
           >
             <view class="tab-name">{{ item.name }}</view>
             <view class="tab-value">{{ item.value }}</view>
@@ -66,10 +66,16 @@
 
     <view class="list-wrap">
       <block v-if="!$util.isEmpty(list.data)">
+        <!-- 
+          使用 item.id 作为唯一 key。
+          注意:在 uni-app 小程序端,:key 表达式中不能包含逻辑运算符(如 ||),
+          否则在事件传参(如 @click)时,小程序编译器生成的 getExtraValue 无法解析 key,
+          会导致 "Cannot read property 'orderSn||index' of undefined" 报错。
+        -->
         <view
           class="order-card"
           v-for="(item, index) in list.data"
-          :key="item.id || item.orderSn || index"
+          :key="item.id"
           @click="$util.pageTo({ url: '/admin/order/detail', query: { id: item.id } })"
         >
           <view class="card-header">
@@ -160,7 +166,7 @@
             <view
               class="outline-action"
               :class="{ disabled: !item._canSendWork }"
-              @click.stop="item._canSendWork ? sendWork(item) : ''"
+              @click.stop="item._canSendWork ? sendWork(index) : ''"
             >
               <image
                 class="action-icon"
@@ -171,14 +177,14 @@
               <text>通知制作</text>
             </view>
 
-            <view class="outline-action" v-if="item._showFetchAction" @click.stop="getOrderFn(item)">已取货</view>
-            <view class="outline-action" v-if="item._showSelfDeliveryAction" @click.stop="sendOrderFn(item)">自配送</view>
-            <view class="outline-action" v-if="item._showConfirmReachAction" @click.stop="confirmReach(item)">确认送达</view>
+            <view class="outline-action" v-if="item._showFetchAction" @click.stop="getOrderFn(index)">已取货</view>
+            <view class="outline-action" v-if="item._showSelfDeliveryAction" @click.stop="sendOrderFn(index)">自配送</view>
+            <view class="outline-action" v-if="item._showConfirmReachAction" @click.stop="confirmReach(index)">确认送达</view>
 
             <view
               class="solid-action"
               :class="{ disabled: !item._isPaid }"
-              @click.stop="item._isPaid ? printOrder(item) : ''"
+              @click.stop="item._isPaid ? printOrder(index) : ''"
             >
               <image
                 class="action-icon action-icon-white"
@@ -215,7 +221,7 @@
 
     <uni-popup ref="getStaffRef" background-color="#fff" type="center" :animation="false">
       <view class="staff-popup">
-        <text class="staff-item" v-for="(item, index) in staffList" :key="index" @click="getCurrentStaff(item.id)">
+        <text class="staff-item" v-for="(item, index) in staffList" :key="index" @click="getCurrentStaff(index)">
           {{ item.name }}
         </text>
       </view>
@@ -427,7 +433,13 @@ export default {
       this.resetList();
       this.getOrderList();
     },
-    getCustom (item) {
+    /**
+     * 选择搜索建议的客户
+     * @param {number} index - 搜索结果列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    getCustom (index) {
+      const item = this.searchList[index];
+      if (!item) return;
       this.showSearch = false;
       this.customId = item.id;
       this.searchText = item.name || this.searchText;
@@ -475,7 +487,13 @@ export default {
         this.getOrderList();
       }
     },
-    sendWork (item) {
+    /**
+     * 通知制作
+     * @param {number} index - 订单列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    sendWork (index) {
+      const item = this.list.data[index];
+      if (!item) return;
       this.$util.confirmModal({ content: "确认通知制作?" }, () => {
         needWork({ id: item.id }).then(res => {
           if (res.code == 1) {
@@ -486,7 +504,13 @@ export default {
         });
       });
     },
-    getOrderFn (item) {
+    /**
+     * 确认取货
+     * @param {number} index - 订单列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    getOrderFn (index) {
+      const item = this.list.data[index];
+      if (!item) return;
       this.$util.confirmModal({ content: "确认取货?" }, () => {
         fetchOrder({ id: item.id }).then(res => {
           if (res.code == 1) {
@@ -497,7 +521,13 @@ export default {
         });
       });
     },
-    confirmReach (item) {
+    /**
+     * 确认送达
+     * @param {number} index - 订单列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    confirmReach (index) {
+      const item = this.list.data[index];
+      if (!item) return;
       this.$util.confirmModal({ content: "确认送达?" }, () => {
         sendReach({ id: item.id }).then(res => {
           if (res.code == 1) {
@@ -508,7 +538,13 @@ export default {
         });
       });
     },
-    sendOrderFn (item) {
+    /**
+     * 自配送
+     * @param {number} index - 订单列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    sendOrderFn (index) {
+      const item = this.list.data[index];
+      if (!item) return;
       this.$util.confirmModal({ content: "确认自配送?" }, () => {
         sendOrder({ id: item.id }).then(res => {
           if (res.code == 1) {
@@ -528,9 +564,15 @@ export default {
       this.resetList();
       this.getOrderList();
     },
-    getCurrentStaff (id) {
+    /**
+     * 选择下单人(员工)
+     * @param {number} index - 员工列表中的索引。传递索引而非 item.id,是为了保持传参风格一致,并完美兼容小程序。
+     */
+    getCurrentStaff (index) {
+      const item = this.staffList[index];
+      if (!item) return;
       this.resetList();
-      this.shopAdminId = id;
+      this.shopAdminId = item.id;
       this.$refs.getStaffRef.close();
       this.getOrderList();
     },
@@ -552,7 +594,13 @@ export default {
       }
       this.getOrderList();
     },
-    printOrder (item) {
+    /**
+     * 打印订单
+     * @param {number} index - 订单列表中的索引。传递索引而非 item 对象,是为了避免微信小程序端在 v-for 循环中直接传递对象导致 getExtraValue 报错。
+     */
+    printOrder (index) {
+      const item = this.list.data[index];
+      if (!item) return;
       onlinePrintOrder({ id: item.id }).then(res => {
         if (res.code == 1) {
           this.$msg("操作成功");
@@ -590,11 +638,15 @@ export default {
         ];
       });
     },
-    change (e) {
-      if (this.tabIndex == e.index) {
+    /**
+     * 切换订单状态 Tab
+     * @param {number} index - 选中的 Tab 索引。
+     */
+    change (index) {
+      if (this.tabIndex == index) {
         return false;
       }
-      this.tabIndex = e.index;
+      this.tabIndex = index;
       this.resetList();
       this.getOrderList();
     },

+ 2 - 2
hdApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜",
     "appid" : "__UNI__4079DC1",
     "description" : "花店管家婆",
-    "versionName" : "2.4.6",
-    "versionCode" : 246,
+    "versionName" : "2.4.7",
+    "versionCode" : 247,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
hdApp/src/pagesPurchase/purDetails.vue

@@ -139,9 +139,9 @@
       <view v-if="detailInfo.debt == 1 || detailInfo.debt == 2" class="bills-info_box content-box">
         <view class="order-info_box" v-if="detailInfo.debt == 1">
           <view>本单待结:</view>
-          <view style="font-weight:bold;color:red;font-size:29upx;">¥{{ detailInfo.realPrice ? parseFloat(detailInfo.realPrice) : 0}}</view>
+          <view style="font-weight:bold;color:red;font-size:29upx;">¥{{ detailInfo.remainDebtPrice ? parseFloat(detailInfo.remainDebtPrice) : 0}}</view>
           <view class="price">
-            <button @click="clearOrder" class="admin-button-com" style="padding:20upx 15upx;" v-if="detailInfo.remainDebtAmount>0">
+            <button @click="clearOrder" class="admin-button-com" style="padding:20upx 15upx;" v-if="detailInfo.remainDebtPrice>0">
             结清本单
             </button>
           </view>

+ 19 - 4
hdApp/src/pagesStore/me/withdraw.vue

@@ -5,8 +5,7 @@
 				<t-tr header>
 					<t-th><view style="width:150upx;">申请时间</view></t-th>
 					<t-th>到账时间</t-th>
-					<t-th>提现</t-th>
-					<t-th>实到</t-th>
+					<t-th>提现金额</t-th>
 					<t-th>状态</t-th>
 				</t-tr>
 				<t-tr v-for="(item, index) in list.data" :key="index">
@@ -18,7 +17,6 @@
 						</t-td>
 					<t-td> <view v-if="item.status==2">{{item.updateTime.substr(5,11)}}</view><view v-else></view> </t-td>
 					<t-td> <view>{{item.amount}}</view> </t-td>
-					<t-td> <view v-if="item.status==2">{{item.beAmount}}</view><view v-else></view> </t-td>
 					<t-td> <view>{{item.status==1?'处理中':item.status==2?'已提现':'失败'}}</view> </t-td>
 				</t-tr>
 			</t-table>
@@ -74,4 +72,21 @@ export default {
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+/**
+ * 提现记录页样式
+ * 表头/单元格字体颜色与 ghsApp 同页保持一致(#000)
+ */
+.app-content {
+	background-color: #f5f5f5;
+	min-height: 100vh;
+}
+
+::v-deep .t-th {
+	color: #000;
+}
+
+::v-deep .t-td {
+	color: #000;
+}
+</style>

+ 1 - 1
hdPad/src/pages/home/components/workList.vue

@@ -104,7 +104,7 @@ export default {
             let that = this
             this.t = setInterval(function () {
                 that.getWorkInfoList(1)
-            },60000)
+            },69000)
         },
         refreshList(){
             this.resetList()

+ 2 - 2
开发http/ghsApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "销花宝",
     "appid" : "__UNI__BD781B0",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.3.12",
-    "versionCode" : 1312,
+    "versionName" : "1.3.13",
+    "versionCode" : 1313,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
开发http/hdApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜",
     "appid" : "__UNI__4079DC1",
     "description" : "花店管家婆",
-    "versionName" : "2.4.6",
-    "versionCode" : 246,
+    "versionName" : "2.4.7",
+    "versionCode" : 247,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
开发https/ghsApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "销花宝",
     "appid" : "__UNI__BD781B0",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.3.12",
-    "versionCode" : 1312,
+    "versionName" : "1.3.13",
+    "versionCode" : 1313,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
开发https/hdApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜",
     "appid" : "__UNI__4079DC1",
     "description" : "花店管家婆",
-    "versionName" : "2.4.6",
-    "versionCode" : 246,
+    "versionName" : "2.4.7",
+    "versionCode" : 247,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
线上/ghsApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "销花宝",
     "appid" : "__UNI__BD781B0",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.3.12",
-    "versionCode" : 1312,
+    "versionName" : "1.3.13",
+    "versionCode" : 1313,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 2 - 2
线上/hdApp/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜",
     "appid" : "__UNI__4079DC1",
     "description" : "花店管家婆",
-    "versionName" : "2.4.6",
-    "versionCode" : 246,
+    "versionName" : "2.4.7",
+    "versionCode" : 247,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {