Explorar o código

Merge branch 'master' into sh

shish hai 1 semana
pai
achega
e452adb4ed

+ 13 - 8
ghsApp/src/admin/billing/toPay.vue

@@ -23,7 +23,7 @@
               <block v-if="goPay == 2">
                 <view style="color:red;font-weight:bold;font-size:32upx;margin-bottom:20upx;">{{ remindText }}</view>
                 <view style="width:100%;text-align:center;" v-if="returnCode=='BBS11105' || returnCode=='BBS10000'">
-                  <button style="width:25vh;" class="admin-button-com big" @click="checkResult()">查询结果</button>
+                  <button style="width:25vh;background-color:red;border:1upx solid red;color:white;" class="admin-button-com big" @click="checkResult()">查询结果</button>
                 </view>
               </block>
             </view>
@@ -246,7 +246,7 @@ export default {
                     that.returnCode = res.data.returnCode ? res.data.returnCode : ''
                     that.goPay = 2
                     
-                    // 11105(用户输入密码中) 或 10000(其它密码状态),启动4秒一次、最多4次(16秒)的自动复查定时器
+                    // 11105(用户输入密码中) 或 10000(其它密码状态),启动4秒一次、最多3次(12秒)的自动复查定时器
                     if (that.returnCode == 'BBS11105' || that.returnCode == 'BBS10000') {
                         that.startPolling()
                     } else {
@@ -268,7 +268,7 @@ export default {
     },
     /**
      * 启动低频后台付款复查定时器
-     * 4秒轮询一次,限查4次,极大地减轻服务器压力的同时保证业务流闭环
+     * 4秒轮询一次,限查3次,极大地减轻服务器压力的同时保证业务流闭环
      */
     startPolling(){
         this.clearPolling()
@@ -279,7 +279,7 @@ export default {
         let that = this;
         this.pollingTimer = setInterval(() => {
             that.pollingCount++
-            if (that.pollingCount > 4) {
+            if (that.pollingCount > 3) {
                 that.clearPolling()
                 that.isPaymentProcessing = false
                 that.goPay = 2
@@ -287,7 +287,7 @@ export default {
                 return
             }
 
-            that.remindText = `正在自动复查支付结果 (${that.pollingCount}/4)...`
+            that.remindText = `正在自动复查支付结果 (${that.pollingCount}/3)...`
 
             codePayVerify({id:that.orderId}).then(res=>{
                 if(res.code == 1){
@@ -336,10 +336,10 @@ export default {
     checkResult(){
       let that = this
       uni.showLoading({mask:true})
-      getDetail({ id:this.orderId}).then(res=>{
+      codePayVerify({ id:this.orderId}).then(res=>{
         uni.hideLoading()
         if(res.code == 1){
-          if(res.data.payStatus == 1){
+          if(res.data && res.data.returnStatus == 'SUCCESS'){
             that.clearPolling()
             that.isPaymentProcessing = false
             this.$msg('付款成功')
@@ -347,9 +347,14 @@ export default {
                 that.payFinish()
             },1000)
           }else{
-            this.$msg('没有付款成功')
+            this.$msg(res.msg || '没有付款成功')
           }
+        } else {
+            this.$msg(res.msg || '查询失败')
         }
+      }).catch(err => {
+          uni.hideLoading()
+          this.$msg('网络异常')
       })
     },
     goBack(){

+ 33 - 1
ghsApp/src/admin/home/order.vue

@@ -126,6 +126,20 @@
             </view>
           </view>
         </view>
+        <view class="filter-section">
+          <view class="filter-title">时间筛选</view>
+          <view class="filter-options">
+            <view
+              v-for="(item, index) in timeTypeOptions"
+              :key="index"
+              class="filter-option"
+              :class="{ active: searchTimeType === item.value }"
+              @click="onSelectTimeType(index)"
+            >
+              {{ item.label }}
+            </view>
+          </view>
+        </view>
         <view class="filter-section">
           <view class="filter-title">片区</view>
           <view class="filter-options">
@@ -250,6 +264,7 @@ export default {
         this.filterDebt !== -1 ||
         this.filterOnlinePay !== -1 ||
         this.filterBook !== -1 ||
+        this.searchTimeType !== 0 ||
         this.filterShopAdminId !== 0 ||
         this.filterSendType !== -1
       );
@@ -326,6 +341,7 @@ export default {
       filterBook: -1,
       filterOnlinePay: -1,
       filterSendType: -1,
+      searchTimeType: 0, // 0: 创建时间,1: 账单时间
       debtOptions: [
         { label: '全部', value: -1 },
         { label: '挂账', value: 1 },
@@ -341,6 +357,10 @@ export default {
         { label: '预订单', value: 1 },
         { label: '普通单', value: 0 }
       ],
+      timeTypeOptions: [
+        { label: '创建时间', value: 0 },
+        { label: '账单时间', value: 1 }
+      ],
       sendTypeOptions: [
         { label: '全部', value: -1 },
         { label: '送货上门', value: 0 },
@@ -531,6 +551,15 @@ export default {
         this.filterBook = item.value;
       }
     },
+    /**
+     * 选择时间筛选类型:0 创建时间,1 账单时间
+     */
+    onSelectTimeType(index) {
+      const item = this.timeTypeOptions[index];
+      if (item) {
+        this.searchTimeType = item.value;
+      }
+    },
     onSelectStaff(id) {
       this.filterShopAdminId = id;
     },
@@ -545,6 +574,7 @@ export default {
       this.filterDebt = -1;
       this.filterOnlinePay = -1;
       this.filterBook = -1;
+      this.searchTimeType = 0;
       this.filterShopAdminId = 0;
       this.filterSendType = -1;
       this.resetDefaultDateRange();
@@ -602,6 +632,7 @@ export default {
       this.filterDebt = -1;
       this.filterOnlinePay = -1;
       this.filterBook = -1;
+      this.searchTimeType = 0;
       this.filterShopAdminId = 0;
       this.filterSendType = -1;
       this.resetDefaultDateRange();
@@ -645,7 +676,8 @@ export default {
         shopAdminId: this.filterShopAdminId,
         book: this.filterBook,
         onlinePay: this.filterOnlinePay,
-        sendType: this.filterSendType
+        sendType: this.filterSendType,
+        searchTimeType: this.searchTimeType
       }).then((res) => {
         this.completes(res);
         if (this.$util.isEmpty(res.data)) {

+ 2 - 2
ghsPad/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "销花宝收银",
     "appid" : "__UNI__E2D4F80",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.7.5",
-    "versionCode" : 175,
+    "versionName" : "1.7.8",
+    "versionCode" : 178,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 5 - 1
ghsPad/src/pages/home/components/console.vue

@@ -67,7 +67,7 @@
 
     <!-- 扫码付款 -->
     <uni-popup ref="toPayRef" background-color="#fff" type="center" :animation="false" :is-mask-click="false">
-        <toPayWay @cancelPay="cancelPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price" :reachDiscountPrice.sync="reachDiscountPrice" :orderReachDiscountPrice.sync="orderReachDiscountPrice"></toPayWay>
+        <toPayWay @cancelPay="cancelPay()" @closePay="closeToPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price" :reachDiscountPrice.sync="reachDiscountPrice" :orderReachDiscountPrice.sync="orderReachDiscountPrice"></toPayWay>
     </uni-popup>
 
 	<!-- 临时收款 / 计算器 -->
@@ -456,6 +456,10 @@ export default {
 				}, 120)
 			})
 		},
+		/** 仅关闭付款弹层,不取消订单 */
+		closeToPay(){
+			this.cancelPay()
+		},
 		cancelSettle(){
 			this.$util.hitVoice()
 			this.settleOpenStatus = 0

+ 5 - 1
ghsPad/src/pages/home/components/leftGroup.vue

@@ -25,7 +25,7 @@
 
         <!-- 扫码付款 -->
         <uni-popup ref="toPayRef" background-color="#fff" type="center" :animation="false" :is-mask-click="false">
-            <toPayWay @cancelPay="cancelPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price"></toPayWay>
+            <toPayWay @cancelPay="cancelPay()" @closePay="closeToPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price"></toPayWay>
         </uni-popup>
 
     </view>
@@ -113,6 +113,10 @@ export default {
 			this.$refs.toPayRef.close()
 			this.listenScanItem()
 		},
+		/** 仅关闭付款弹层,不取消订单 */
+		closeToPay(){
+			this.cancelPay()
+		},
         reachBottom() {
 
         },

+ 203 - 19
ghsPad/src/pages/home/components/toPay.vue

@@ -1,5 +1,6 @@
 <template>
     <view class="app-collect_money">
+        <view class="close-icon" @click="closePayPanel">×</view>
         <view v-if="showSuccess == false">
             <view class="collect-code_box">
                 <image class="img" :src="`${constant.imgUrl}/icon/scan/scan.png`" mode="scaleToFill" @click="beginScan()" />
@@ -15,12 +16,26 @@
 </view>
 <view style="margin-top:10upx;font-weight:bold;font-size:34upx;color:black;">¥{{price}}</view>
 
-                <view class="show-code" v-if="goPay == 0">请出示付款码</view>
+                <view class="show-code" v-if="goPay == 0 && !showManualInput" @click="openManualInput">请出示付款码</view>
+                <view class="manual-code-box" v-if="goPay == 0 && showManualInput">
+                    <input
+                        class="manual-code-input"
+                        v-model="manualAuthCode"
+                        type="number"
+                        maxlength="32"
+                        placeholder="请出示付款码"
+                        @confirm="submitManualCode"
+                    />
+                    <view class="manual-code-actions">
+                        <view class="manual-btn" @click="closeManualInput">返回</view>
+                        <view class="manual-btn manual-btn-primary" @click="submitManualCode">确认支付</view>
+                    </view>
+                </view>
                 <view class="paying" v-if="goPay == 1">请求中</view>
                 <view style="font-size:18upx;margin:8upx auto;color:red;font-weight:bold;text-align:center;" v-if="goPay == 2">
                     <view style="font-size:16upx;line-height:1.3;max-width:90%;margin:0 auto;">{{ remindText }}</view>
                     <view style="margin-top:6upx;display:flex;justify-content:center;" v-if="returnCode=='BBS11105' || returnCode=='BBS10000'">
-                        <text style="color:green;border:1upx solid green;border-radius:8upx;padding:4upx 12upx;font-size:18upx;font-weight:bold;line-height:1.2;background-color:transparent;" @click="checkOrder">
+                        <text style="color:white;border:1upx solid red;border-radius:8upx;padding:4upx 12upx;font-size:18upx;font-weight:bold;line-height:1.2;background-color:red;" @click="checkOrder">
                             查询结果
                         </text>
                     </view>
@@ -28,8 +43,11 @@
                 <view v-if="goPay == 1">
                     <image style="width:25upx;height:25upx;margin:0 auto;" :src="`${constant.imgUrl}/icon/loading.gif`" mode="scaleToFill" />
                 </view>
-                <view style="margin-top:10upx;">
-                    <view @click="cancelPayFn" class="btn-default">取消</view>
+                <view style="margin-top:10upx;display:flex;justify-content:center;">
+                    <view style="position:relative;">
+                        <view @click="cancelPayFn(0)" class="btn-default">取消</view>
+                        <view @click="cancelPayFn(1)" style="position:absolute;left:100%;bottom:0;margin-left:10upx;font-size:13upx;color:black;white-space:nowrap;">强制取消</view>
+                    </view>
                 </view>
             </view>
         </view>
@@ -51,12 +69,22 @@
             </view>
         </uni-popup>
 
+        <uni-popup ref="closePaymentRef" type="dialog">
+            <view style="width:60vw;height:70vh;background-color: white;padding:70upx 20upx 0 20upx;">
+                <view style="margin-bottom:40upx;text-align: center;font-size:24upx;">确认关闭?</view>
+                <view style="text-align:center;">
+                    <button class="admin-button-com mini-btn default" @click="returnClose">返回</button>
+                    <button class="admin-button-com mini-btn default" @click="confirmClose" style="margin-left:30upx;">确认</button>
+                </view>
+            </view>
+        </uni-popup>
+
     </view>
 </template>
 <script>
 /**
  * 扫码支付组件(供货商收银机端)
- * 解决客户扫码后转圈状态被卡住、钱未到账的问题,支持网络异常降级和自动后台复查
+ * 支持手动输入与扫码填入付款码后确认提交,解决客户扫码后转圈状态被卡住、钱未到账的问题,支持网络异常降级和自动后台复查
  */
 import { codePay,codePayCheck,codePayVerify,cancelOrderFn,getDetail} from "@/api/order";
 export default {
@@ -72,9 +100,14 @@ export default {
             returnCode:'',
             cancelText:'确认要取消?',
             isCancelDialogOpen:false,
+            isCloseDialogOpen:false, // 关闭确认弹框是否打开
             isPaymentProcessing:false, // 标志位:防重复扫码
             pollingTimer:null, // 后台轮询复查定时器
-            pollingCount:0 // 轮询计数器
+            pollingCount:0, // 轮询计数器
+            showManualInput:false, // 是否展示手动输入付款码
+            manualAuthCode:'', // 手动输入的付款码
+            manualInputFocus:false, // 控制输入框自动聚焦
+            isForceCancel: 0 // 0: 普通取消,1: 强制取消
         }
     },
 	props: {
@@ -100,7 +133,7 @@ export default {
 		//避免重复,每次进来先移除全局自定义事件监听器
         uni.$off('listenGetScanCode')
         uni.$on('listenGetScanCode',function(data){
-			that.requestCodePay(data.code)
+			that.fillAuthCodeFromScan(data.code)
         })
 	},
     beforeDestroy(){
@@ -114,7 +147,7 @@ export default {
             uni.scanCode({
                 onlyFromCamera: true,
                 success: function (res) {
-                    that.requestCodePay(res.result)
+                    that.fillAuthCodeFromScan(res.result)
                 }
             })
         },
@@ -124,14 +157,74 @@ export default {
             this.goPay = 0
             this.returnCode = ''
             this.isPaymentProcessing = false
+            this.closeManualInput()
+        },
+        /**
+         * 点击「请出示付款码」后展开手动输入区域
+         */
+        openManualInput(){
+            this.showManualInput = true
+            this.manualAuthCode = ''
+            this.manualInputFocus = false
+            this.$nextTick(() => {
+                this.manualInputFocus = true
+            })
+        },
+        /**
+         * 关闭付款码输入区域
+         */
+        closeManualInput(){
+            this.showManualInput = false
+            this.manualAuthCode = ''
+            this.manualInputFocus = false
+        },
+        /**
+         * 处理扫码:未展开输入框时自动提交,已展开时仅填入等待确认
+         * @param {string} rawCode - 扫码原始内容
+         */
+        fillAuthCodeFromScan(rawCode){
+            if(this.isCancelDialogOpen || this.isCloseDialogOpen){
+                this.$msg('请先完成当前操作')
+                return
+            }
+            if(this.isPaymentProcessing){
+                this.$msg('支付处理中,请稍候')
+                return
+            }
+            const authCode = String(rawCode || '').replace(/\s+/g, '')
+            if(!authCode){
+                return
+            }
+            if(this.showManualInput){
+                this.clearPolling()
+                this.remindText = ''
+                this.returnCode = ''
+                this.goPay = 0
+                this.manualAuthCode = authCode
+                this.manualInputFocus = false
+                return
+            }
+            this.requestCodePay(authCode)
+        },
+        /**
+         * 确认提交输入框中的付款码
+         */
+        submitManualCode(){
+            const authCode = String(this.manualAuthCode || '').replace(/\s+/g, '')
+            if (!authCode) {
+                this.$msg('请输入付款码')
+                return
+            }
+            this.closeManualInput()
+            this.requestCodePay(authCode)
         },
         checkOrder(){
             let that = this
             uni.showLoading({mask:true})
-            getDetail({id:this.orderId}).then(res=>{
+            codePayVerify({id:this.orderId}).then(res=>{
                 uni.hideLoading()
                 if(res.code == 1){
-                    if(res.data.payStatus == 1){
+                    if(res.data && res.data.returnStatus == 'SUCCESS'){
                         // 手动查询付款成功,清除复查轮询并回调
                         that.clearPolling()
                         that.isPaymentProcessing = false
@@ -140,15 +233,20 @@ export default {
                             that.payFinish()
                         },900)
                     }else{
-                        this.$msg('还没有付款成功')
+                        this.$msg(res.msg || '还没有付款成功')
                     }
+                } else {
+                    this.$msg(res.msg || '查询失败')
                 }
+            }).catch(err => {
+                uni.hideLoading()
+                this.$msg('网络异常')
             })
         },
         requestCodePay(authCode){
             // 如果取消对话框打开,则不处理扫码
-            if(this.isCancelDialogOpen){
-                this.$msg('请先完成取消操作')
+            if(this.isCancelDialogOpen || this.isCloseDialogOpen){
+                this.$msg('请先完成当前操作')
                 return
             }
             
@@ -169,6 +267,7 @@ export default {
                 if(res.code == 1){
                     if(res.data.returnStatus == 'SUCCESS'){
                         that.isPaymentProcessing = false
+                        that.closeManualInput()
                         that.showSuccess = true
                         setTimeout(function(){
                             that.payFinish()
@@ -201,7 +300,7 @@ export default {
         },
         /**
          * 启动自动后台付款复查定时器
-         * 职责:降低轮询频率至4秒,且将次数限为4次(总计16秒),极大地减轻服务器压力的同时保证业务完整
+         * 职责:降低轮询频率至4秒,且将次数限为3次(总计12秒),极大地减轻服务器压力的同时保证业务完整
          */
         startPolling(){
             this.clearPolling()
@@ -212,7 +311,7 @@ export default {
             let that = this
             this.pollingTimer = setInterval(() => {
                 that.pollingCount++
-                if (that.pollingCount > 4) {
+                if (that.pollingCount > 3) {
                     // 超时未确认,停止轮询,允许商户手动操作或重新扫码
                     that.clearPolling()
                     that.isPaymentProcessing = false
@@ -222,7 +321,7 @@ export default {
                 }
                 
                 // 界面上展示当前自动复查的进度,提升收银员体验
-                that.remindText = `正在自动复查支付结果 (第 ${that.pollingCount}/4 次)...`
+                that.remindText = `正在自动复查支付结果 (第 ${that.pollingCount}/3 次)...`
 
                 codePayVerify({id:that.orderId}).then(res=>{
                     if(res.code == 1){
@@ -252,10 +351,37 @@ export default {
             this.clearPolling()
             this.$emit('payFinish')
         },
-        cancelPayFn(){
+        /**
+         * 右上角关闭:先弹框确认,确认后仅关闭弹层不取消订单
+         */
+        closePayPanel(){
+            this.isCloseDialogOpen = true
+            this.$refs.closePaymentRef.open('center')
+        },
+        returnClose(){
+            this.isCloseDialogOpen = false
+            this.$refs.closePaymentRef.close()
+        },
+        confirmClose(){
+            this.isCloseDialogOpen = false
+            this.$refs.closePaymentRef.close()
+            this.clearPolling()
+            this.isPaymentProcessing = false
+            this.isCancelDialogOpen = false
+            this.closeManualInput()
+            if (this.showSuccess) {
+                this.payFinish()
+                return
+            }
+            this.$emit('closePay')
+        },
+        cancelPayFn(force = 0){
+            this.isForceCancel = force
             this.isCancelDialogOpen = true
             if(this.returnCode=='BBS11105' || this.returnCode=='BBS10000'){
-                this.cancelText = '确认取消?'
+                this.cancelText = this.isForceCancel ? '确认要强制取消?' : '确认取消?'
+            } else {
+                this.cancelText = this.isForceCancel ? '确认要强制取消?' : '确认要取消?'
             }
             this.$refs.cancelPaymentRef.open('center')
         },
@@ -274,7 +400,7 @@ export default {
             this.isCancelDialogOpen = false
             this.clearPolling() // 取消时,必须清除定时器
             this.isPaymentProcessing = false
-            cancelOrderFn({id:this.orderId}).then(res=>{
+            cancelOrderFn({id:this.orderId,cashier:1, forceCancel: this.isForceCancel}).then(res=>{
                 if(res.code == 1){
                     that.$msg('已取消')
                 }
@@ -297,6 +423,17 @@ export default {
     flex-direction: column;
     box-sizing: border-box;
     width:60vw;
+    position: relative;
+    & .close-icon {
+        position: absolute;
+        top: 10upx;
+        right: 10upx;
+        z-index: 10;
+        font-size: 40upx;
+        line-height: 1;
+        color: #999999;
+        padding: 0 8upx;
+    }
     & .price-box {
         min-height: 100upx;
         & > .title {
@@ -330,6 +467,53 @@ export default {
             font-size: 19upx;
             margin: 10upx 0 10upx 0;
             font-weight:bold;
+            color: #333333;
+        }
+        & .manual-code-box{
+            width: 100%;
+            margin: 10upx auto 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+        }
+        & .manual-code-input{
+            width: 50%;
+            height: 40upx;
+            line-height: 40upx;
+            border: 1upx solid #cccccc;
+            border-radius: 8upx;
+            font-size: 20upx;
+            text-align: center;
+            color: #333333;
+            background-color: #fafafa;
+            box-sizing: border-box;
+        }
+        & .manual-code-actions{
+            margin-top: 12upx;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+        }
+        & .manual-btn{
+            height: 44upx;
+            min-width: 88upx;
+            padding: 0 16upx;
+            text-align: center;
+            line-height: 44upx;
+            border: 1upx solid #dddddd;
+            border-radius: 22upx;
+            font-size: 14upx;
+            color: #666666;
+            background-color: #ffffff;
+            box-sizing: border-box;
+        }
+        & .manual-btn + .manual-btn{
+            margin-left: 16upx;
+        }
+        & .manual-btn-primary{
+            background-color: #3385ff;
+            color: #ffffff;
+            border-color: #3385ff;
         }
         & .paying{
             font-size: 19upx;

+ 13 - 8
hdApp/src/admin/billing/toPay.vue

@@ -23,7 +23,7 @@
               <block v-if="goPay == 2">
                 <view style="color:red;font-weight:bold;font-size:32upx;margin-bottom:20upx;">{{ remindText }}</view>
                 <view style="width:100%;text-align:center;" v-if="returnCode=='BBS11105' || returnCode=='BBS10000'">
-                  <button style="width:25vh;" class="admin-button-com big" @click="checkResult()">查询结果</button>
+                  <button style="width:25vh;background-color:red;border:1upx solid red;color:white;" class="admin-button-com big" @click="checkResult()">查询结果</button>
                 </view>
               </block>
             </view>
@@ -174,7 +174,7 @@ export default {
                     that.returnCode = res.data.returnCode ? res.data.returnCode : ''
                     that.goPay = 2
                     
-                    // 11105(用户输入密码中) 或 10000(其它密码状态),启动4秒一次、最多4次(16秒)的自动复查定时器
+                    // 11105(用户输入密码中) 或 10000(其它密码状态),启动4秒一次、最多3次(12秒)的自动复查定时器
                     if (that.returnCode == 'BBS11105' || that.returnCode == 'BBS10000') {
                         that.startPolling()
                     } else {
@@ -196,7 +196,7 @@ export default {
     },
     /**
      * 启动低频后台付款复查定时器
-     * 4秒轮询一次,限查4次,极大地减轻服务器压力的同时保证业务流闭环
+     * 4秒轮询一次,限查3次,极大地减轻服务器压力的同时保证业务流闭环
      */
     startPolling(){
         this.clearPolling()
@@ -207,7 +207,7 @@ export default {
         let that = this
         this.pollingTimer = setInterval(() => {
             that.pollingCount++
-            if (that.pollingCount > 4) {
+            if (that.pollingCount > 3) {
                 that.clearPolling()
                 that.isPaymentProcessing = false
                 that.goPay = 2
@@ -215,7 +215,7 @@ export default {
                 return
             }
 
-            that.remindText = `正在自动复查支付结果 (${that.pollingCount}/4)...`
+            that.remindText = `正在自动复查支付结果 (${that.pollingCount}/3)...`
 
             codePayVerify({id:that.orderId}).then(res=>{
                 if(res.code == 1){
@@ -261,10 +261,10 @@ export default {
     checkResult(){
       let that = this
       uni.showLoading({mask:true})
-      getDetail({ id:this.orderId}).then(res=>{
+      codePayVerify({ id:this.orderId}).then(res=>{
         uni.hideLoading()
         if(res.code == 1){
-          if(res.data.payStatus == 1){
+          if(res.data && res.data.returnStatus == 'SUCCESS'){
             that.clearPolling()
             that.isPaymentProcessing = false
             this.$msg('付款成功')
@@ -272,9 +272,14 @@ export default {
                 that.payFinish()
             },1000)
           }else{
-            this.$msg('没有付款成功')
+            this.$msg(res.msg || '没有付款成功')
           }
+        } else {
+            this.$msg(res.msg || '查询失败')
         }
+      }).catch(err => {
+          uni.hideLoading()
+          this.$msg('网络异常')
       })
     },
     goBack(){

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

@@ -84,7 +84,7 @@
         <text @click.stop="closeAccount">注销账号</text>
       </view>
       <view class="bottom-version">中央编号 {{ myInfo && myInfo.mainId ? myInfo.mainId : 0 }} | version {{ version }}</view>
-      <view class="bottom-version">闽ICP备15017325号-11A</view>
+      <view class="bottom-version" @click.stop="openShop">闽ICP备15017325号-11A</view>
       </view>
     </block>
 
@@ -198,6 +198,7 @@ import { inMoney, outMoney } from "@/api/shop-money";
 import { mapGetters } from "vuex";
 import ModalModule from "@/components/plugin/modal";
 import { clearLogin } from "@/api/admin";
+import { openPfFn } from "@/api/apply";
 import { APP_VERSION } from "@/config";
 import { iconSrc } from "@/utils/iconSrc";
 
@@ -339,6 +340,10 @@ export default {
         this.statusBarHeight = 0;
       }
     },
+    openShop () {
+      //申请开批发店的隐藏方法
+      openPfFn({})
+    },
     goLogin () {
       uni.removeStorageSync("manualLogout");
       this.$util.pageTo({ url: "/admin/home/login" });

+ 1 - 1
hdApp/src/pagesPurchase/components/gatheringList.vue

@@ -9,7 +9,7 @@
         <text class="name">采购单 {{info.orderSn}} </text>
       </view>
       <view class="item-row">
-        <view class="mark">{{ info.addTime.substr(5,11) }}</view>
+        <view class="mark">{{ info.payTime.substr(5,11) }}</view>
       </view>
       <view class="item-row">
         <view class="price-block">

+ 10 - 7
hdPad/package-lock.json

@@ -5786,12 +5786,15 @@
       "license": "MIT"
     },
     "node_modules/baseline-browser-mapping": {
-      "version": "2.9.19",
-      "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
-      "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
+      "version": "2.10.43",
+      "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz",
+      "integrity": "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==",
       "license": "Apache-2.0",
       "bin": {
-        "baseline-browser-mapping": "dist/cli.js"
+        "baseline-browser-mapping": "dist/cli.cjs"
+      },
+      "engines": {
+        "node": ">=6.0.0"
       }
     },
     "node_modules/batch": {
@@ -6334,9 +6337,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001768",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz",
-      "integrity": "sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==",
+      "version": "1.0.30001806",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz",
+      "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==",
       "funding": [
         {
           "type": "opencollective",

+ 3 - 17
hdPad/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜收银",
     "appid" : "__UNI__F6E7EA0",
     "description" : "花掌柜收银",
-    "versionName" : "2.1.8",
-    "versionCode" : 218,
+    "versionName" : "2.2.0",
+    "versionCode" : 220,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -21,13 +21,7 @@
             "delay" : 0
         },
         "orientation" : [ "landscape" ],
-        "modules" : {
-            "VideoPlayer" : {},
-            "Bluetooth" : {},
-            "Geolocation" : {},
-            "OAuth" : {},
-            "Share" : {}
-        },
+        "modules" : {},
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -42,14 +36,6 @@
                 ],
                 "autoSdkPermissions" : false,
                 "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
-                "permissionExternalStorage" : {
-                    "request" : "once",
-                    "prompt" : "保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
-                },
-                "permissionPhoneState" : {
-                    "request" : "once",
-                    "prompt" : "为保证您正常和安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
-                },
                 "schemes" : "zhhhzg"
             },
             /* ios打包配置 */

+ 5 - 1
hdPad/src/pages/home/components/console.vue

@@ -79,7 +79,7 @@
 
     <!-- 扫码付款 -->
     <uni-popup ref="toPayRef" background-color="#fff" type="center" :animation="false" :is-mask-click="false">
-        <toPayWay @cancelPay="cancelPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price"></toPayWay>
+        <toPayWay @cancelPay="cancelPay()" @closePay="closeToPay()" @payFinish="payFinish()" @selectPayWayBack="selectPayWayBack" :orderId.sync="orderId" :price.sync="price"></toPayWay>
     </uni-popup>
 
 	<!-- 直接收款 -->
@@ -492,6 +492,10 @@ export default {
 				}, 120)
 			})
 		},
+		/** 仅关闭付款弹层,不取消订单 */
+		closeToPay(){
+			this.cancelPay()
+		},
 		cancelSettle(){
 			this.$util.hitVoice()
 			this.settleOpenStatus = 0

+ 5 - 0
hdPad/src/pages/home/components/leftGroup.vue

@@ -58,6 +58,7 @@
 		>
 			<toPayWay
 				@cancelPay="cancelPay()"
+				@closePay="closeToPay()"
 				@payFinish="payFinish()"
 				@selectPayWayBack="selectPayWayBack"
 				:orderId.sync="orderId"
@@ -164,6 +165,10 @@ export default {
 			this.$refs.toPayRef.close();
 			this.listenScanItem();
 		},
+		/** 仅关闭付款弹层,不取消订单 */
+		closeToPay() {
+			this.cancelPay();
+		},
 		reachBottom() {
 			if (!this.list.finished) {
 				this.getGroupList().then((res) => {

+ 203 - 19
hdPad/src/pages/home/components/toPay.vue

@@ -1,15 +1,30 @@
 <template>
     <view class="app-collect_money">
+        <view class="close-icon" @click="closePayPanel">×</view>
         <view v-if="showSuccess == false">
             <view class="collect-code_box">
                 <image class="img" :src="`${constant.imgUrl}/icon/scan/scan.png`" mode="scaleToFill" @click="beginScan()" />
                 <view style="margin-top:20upx;font-weight:bold;font-size:35upx;color:black;">¥{{price}}</view>
-                <view class="show-code" v-if="goPay == 0">请出示付款码</view>
+                <view class="show-code" v-if="goPay == 0 && !showManualInput" @click="openManualInput">请出示付款码</view>
+                <view class="manual-code-box" v-if="goPay == 0 && showManualInput">
+                    <input
+                        class="manual-code-input"
+                        v-model="manualAuthCode"
+                        type="number"
+                        maxlength="32"
+                        placeholder="请出示付款码"
+                        @confirm="submitManualCode"
+                    />
+                    <view class="manual-code-actions">
+                        <view class="manual-btn" @click="closeManualInput">返回</view>
+                        <view class="manual-btn manual-btn-primary" @click="submitManualCode">确认支付</view>
+                    </view>
+                </view>
                 <view class="paying" v-if="goPay == 1">请求中</view>
                 <view style="font-size:18upx;margin:8upx auto;color:red;font-weight:bold;text-align:center;" v-if="goPay == 2">
                     <view style="font-size:16upx;line-height:1.3;max-width:90%;margin:0 auto;">{{ remindText }}</view>
                     <view style="margin-top:6upx;display:flex;justify-content:center;" v-if="returnCode=='BBS11105' || returnCode=='BBS10000'">
-                        <text style="color:green;border:1upx solid green;border-radius:8upx;padding:4upx 12upx;font-size:18upx;font-weight:bold;line-height:1.2;background-color:transparent;" @click="checkOrder">
+                        <text style="color:white;border:1upx solid red;border-radius:8upx;padding:4upx 12upx;font-size:18upx;font-weight:bold;line-height:1.2;background-color:red;" @click="checkOrder">
                             查询结果
                         </text>
                     </view>
@@ -17,8 +32,11 @@
                 <view v-if="goPay == 1">
                     <image style="width:25upx;height:25upx;margin:10upx auto 0 auto;" :src="`${constant.imgUrl}/icon/loading.gif`" mode="scaleToFill" />
                 </view>
-                <view style="margin-top:15upx;">
-                    <view @click="cancelPayFn" class="btn-default">取消</view>
+                <view style="margin-top:15upx;display:flex;justify-content:center;">
+                    <view style="position:relative;">
+                        <view @click="cancelPayFn(0)" class="btn-default">取消</view>
+                        <view @click="cancelPayFn(1)" style="position:absolute;left:100%;bottom:0;margin-left:10upx;font-size:13upx;color:black;white-space:nowrap;">强制取消</view>
+                    </view>
                 </view>
             </view>
         </view>
@@ -40,12 +58,22 @@
             </view>
         </uni-popup>
 
+        <uni-popup ref="closePaymentRef" type="dialog">
+            <view style="width:60vw;height:70vh;background-color: white;padding:70upx 20upx 0 20upx;">
+                <view style="margin-bottom:40upx;text-align: center;font-size:24upx;">确认关闭?</view>
+                <view style="text-align:center;">
+                    <button class="admin-button-com mini-btn default" @click="returnClose">返回</button>
+                    <button class="admin-button-com mini-btn default" @click="confirmClose" style="margin-left:30upx;">确认</button>
+                </view>
+            </view>
+        </uni-popup>
+
     </view>
 </template>
 <script>
 /**
  * 扫码支付组件(零售花店收银机端)
- * 解决扫码时转圈状态被卡住、钱未到账的问题,支持网络异常降级和后台复查
+ * 支持手动输入与扫码填入付款码后确认提交,解决扫码时转圈状态被卡住、钱未到账的问题
  */
 import { codePay,codePayCheck,codePayVerify,cancelOrderFn,getDetail} from "@/api/order";
 export default {
@@ -61,9 +89,14 @@ export default {
             returnCode:'',
             cancelText:'确认要取消?',
             isCancelDialogOpen:false,
+            isCloseDialogOpen:false, // 关闭确认弹框是否打开
             isPaymentProcessing:false, // 标志位:防重复扫码
             pollingTimer:null, // 后台轮询复查定时器
-            pollingCount:0 // 轮询计数器
+            pollingCount:0, // 轮询计数器
+            showManualInput:false, // 是否展示付款码输入区域
+            manualAuthCode:'', // 手动输入或扫码填入的付款码
+            manualInputFocus:false, // 控制输入框自动聚焦
+            isForceCancel: 0 // 0: 普通取消,1: 强制取消
         }
     },
 	props: {
@@ -81,7 +114,7 @@ export default {
 		//避免重复,每次进来先移除全局自定义事件监听器
         uni.$off('listenGetScanCode')
         uni.$on('listenGetScanCode',function(data){
-			that.requestCodePay(data.code)
+			that.fillAuthCodeFromScan(data.code)
         })
 	},
     beforeDestroy(){
@@ -95,7 +128,7 @@ export default {
             uni.scanCode({
                 onlyFromCamera: true,
                 success: function (res) {
-                    that.requestCodePay(res.result)
+                    that.fillAuthCodeFromScan(res.result)
                 }
             })
         },
@@ -105,14 +138,74 @@ export default {
             this.goPay = 0
             this.returnCode = ''
             this.isPaymentProcessing = false
+            this.closeManualInput()
+        },
+        /**
+         * 点击「请出示付款码」后展开输入区域
+         */
+        openManualInput(){
+            this.showManualInput = true
+            this.manualAuthCode = ''
+            this.manualInputFocus = false
+            this.$nextTick(() => {
+                this.manualInputFocus = true
+            })
+        },
+        /**
+         * 关闭付款码输入区域
+         */
+        closeManualInput(){
+            this.showManualInput = false
+            this.manualAuthCode = ''
+            this.manualInputFocus = false
+        },
+        /**
+         * 处理扫码:未展开输入框时自动提交,已展开时仅填入等待确认
+         * @param {string} rawCode - 扫码原始内容
+         */
+        fillAuthCodeFromScan(rawCode){
+            if(this.isCancelDialogOpen || this.isCloseDialogOpen){
+                this.$msg('请先完成当前操作')
+                return
+            }
+            if(this.isPaymentProcessing){
+                this.$msg('支付处理中,请稍候')
+                return
+            }
+            const authCode = String(rawCode || '').replace(/\s+/g, '')
+            if(!authCode){
+                return
+            }
+            if(this.showManualInput){
+                this.clearPolling()
+                this.remindText = ''
+                this.returnCode = ''
+                this.goPay = 0
+                this.manualAuthCode = authCode
+                this.manualInputFocus = false
+                return
+            }
+            this.requestCodePay(authCode)
+        },
+        /**
+         * 确认提交输入框中的付款码
+         */
+        submitManualCode(){
+            const authCode = String(this.manualAuthCode || '').replace(/\s+/g, '')
+            if (!authCode) {
+                this.$msg('请输入付款码')
+                return
+            }
+            this.closeManualInput()
+            this.requestCodePay(authCode)
         },
         checkOrder(){
             let that = this
             uni.showLoading({mask:true})
-            getDetail({id:this.orderId}).then(res=>{
+            codePayVerify({id:this.orderId}).then(res=>{
                 uni.hideLoading()
                 if(res.code == 1){
-                    if(res.data.payStatus == 1){
+                    if(res.data && res.data.returnStatus == 'SUCCESS'){
                         // 手动查询付款成功,清除复查轮询并回调
                         that.clearPolling()
                         that.isPaymentProcessing = false
@@ -121,15 +214,20 @@ export default {
                             that.payFinish()
                         },900)
                     }else{
-                        this.$msg('还没有付款成功')
+                        this.$msg(res.msg || '还没有付款成功')
                     }
+                } else {
+                    this.$msg(res.msg || '查询失败')
                 }
+            }).catch(err => {
+                uni.hideLoading()
+                this.$msg('网络异常')
             })
         },
         requestCodePay(authCode){
             // 如果取消对话框打开,则不处理扫码
-            if(this.isCancelDialogOpen){
-                this.$msg('请先完成取消操作')
+            if(this.isCancelDialogOpen || this.isCloseDialogOpen){
+                this.$msg('请先完成当前操作')
                 return
             }
             
@@ -150,6 +248,7 @@ export default {
                 if(res.code == 1){
                     if(res.data.returnStatus == 'SUCCESS'){
                         that.isPaymentProcessing = false
+                        that.closeManualInput()
                         that.showSuccess = true
                         setTimeout(function(){
                             that.payFinish()
@@ -182,7 +281,7 @@ export default {
         },
         /**
          * 启动自动后台付款复查定时器
-         * 职责:降低轮询频率至4秒,且将次数限为4次(总计16秒),极大地减轻服务器压力的同时保证业务完整
+         * 职责:降低轮询频率至4秒,且将次数限为3次(总计12秒),极大地减轻服务器压力的同时保证业务完整
          */
         startPolling(){
             this.clearPolling()
@@ -193,7 +292,7 @@ export default {
             let that = this
             this.pollingTimer = setInterval(() => {
                 that.pollingCount++
-                if (that.pollingCount > 4) {
+                if (that.pollingCount > 3) {
                     // 超时未确认,停止轮询,允许商户手动操作或重新扫码
                     that.clearPolling()
                     that.isPaymentProcessing = false
@@ -203,7 +302,7 @@ export default {
                 }
                 
                 // 界面展示当前自动复查的进度,提升收银员体验
-                that.remindText = `正在自动复查支付结果 (第 ${that.pollingCount}/4 次)...`
+                that.remindText = `正在自动复查支付结果 (第 ${that.pollingCount}/3 次)...`
 
                 codePayVerify({id:that.orderId}).then(res=>{
                     if(res.code == 1){
@@ -235,10 +334,37 @@ export default {
             this.showSuccess = false
             this.goPay = 0
         },
-        cancelPayFn(){
+        /**
+         * 右上角关闭:先弹框确认,确认后仅关闭弹层不取消订单
+         */
+        closePayPanel(){
+            this.isCloseDialogOpen = true
+            this.$refs.closePaymentRef.open('center')
+        },
+        returnClose(){
+            this.isCloseDialogOpen = false
+            this.$refs.closePaymentRef.close()
+        },
+        confirmClose(){
+            this.isCloseDialogOpen = false
+            this.$refs.closePaymentRef.close()
+            this.clearPolling()
+            this.isPaymentProcessing = false
+            this.isCancelDialogOpen = false
+            this.closeManualInput()
+            if (this.showSuccess) {
+                this.payFinish()
+                return
+            }
+            this.$emit('closePay')
+        },
+        cancelPayFn(force = 0){
+            this.isForceCancel = force
             this.isCancelDialogOpen = true
             if(this.returnCode=='BBS11105' || this.returnCode=='BBS10000'){
-                this.cancelText = '确认取消?'
+                this.cancelText = this.isForceCancel ? '确认要强制取消?' : '确认取消?'
+            } else {
+                this.cancelText = this.isForceCancel ? '确认要强制取消?' : '确认要取消?'
             }
             this.$refs.cancelPaymentRef.open('center')
         },
@@ -257,7 +383,7 @@ export default {
             this.isCancelDialogOpen = false
             this.clearPolling() // 取消时,必须清除定时器
             this.isPaymentProcessing = false
-            cancelOrderFn({id:this.orderId}).then(res=>{
+            cancelOrderFn({id:this.orderId, forceCancel: this.isForceCancel}).then(res=>{
                 if(res.code == 1){
                     that.$msg('已取消')
                 }
@@ -281,6 +407,17 @@ export default {
     flex-direction: column;
     box-sizing: border-box;
     width:60vw;
+    position: relative;
+    & .close-icon {
+        position: absolute;
+        top: 10upx;
+        right: 10upx;
+        z-index: 10;
+        font-size: 40upx;
+        line-height: 1;
+        color: #999999;
+        padding: 0 8upx;
+    }
     & .price-box {
         min-height: 100upx;
         & > .title {
@@ -314,6 +451,53 @@ export default {
             font-size: 19upx;
             margin: 15upx 0 10upx 0;
             font-weight:bold;
+            color: #333333;
+        }
+        & .manual-code-box{
+            width: 100%;
+            margin: 10upx auto 0 auto;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+        }
+        & .manual-code-input{
+            width: 50%;
+            height: 40upx;
+            line-height: 40upx;
+            border: 1upx solid #cccccc;
+            border-radius: 8upx;
+            font-size: 20upx;
+            text-align: center;
+            color: #333333;
+            background-color: #fafafa;
+            box-sizing: border-box;
+        }
+        & .manual-code-actions{
+            margin-top: 12upx;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+        }
+        & .manual-btn{
+            height: 44upx;
+            min-width: 88upx;
+            padding: 0 16upx;
+            text-align: center;
+            line-height: 44upx;
+            border: 1upx solid #dddddd;
+            border-radius: 22upx;
+            font-size: 14upx;
+            color: #666666;
+            background-color: #ffffff;
+            box-sizing: border-box;
+        }
+        & .manual-btn + .manual-btn{
+            margin-left: 16upx;
+        }
+        & .manual-btn-primary{
+            background-color: #3385ff;
+            color: #ffffff;
+            border-color: #3385ff;
         }
         & .paying{
             font-size: 19upx;

+ 2 - 0
mallApp/src/pages/item/item.vue

@@ -369,6 +369,8 @@ export default {
 						}
 						// 解决新用户扫码登录后,限购接口报“没有找到花店”的Bug,需要同步更新缓存中的 hdId
 						uni.setStorageSync('hdId', res.data.hd.id)
+					}else{
+						this.globalLoginStyle = 0
 					}
 
 					//保存当前所在门店信息

+ 1 - 1
开发http/ghsPad/src/manifest.json

@@ -3,7 +3,7 @@
     "appid" : "__UNI__E2D4F80",
     "description" : "鲜花批发销售管理系统",
     "versionName" : "1.6.8",
-    "versionCode" : 175,
+    "versionCode" : 178,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 3 - 17
开发http/hdPad/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜收银",
     "appid" : "__UNI__F6E7EA0",
     "description" : "花掌柜收银",
-    "versionName" : "2.1.8",
-    "versionCode" : 218,
+    "versionName" : "2.2.0",
+    "versionCode" : 220,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -21,13 +21,7 @@
             "delay" : 0
         },
         "orientation" : [ "landscape" ],
-        "modules" : {
-            "VideoPlayer" : {},
-            "Bluetooth" : {},
-            "Geolocation" : {},
-            "OAuth" : {},
-            "Share" : {}
-        },
+        "modules" : {},
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -42,14 +36,6 @@
                 ],
                 "autoSdkPermissions" : false,
                 "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
-                "permissionExternalStorage" : {
-                    "request" : "once",
-                    "prompt" : "保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
-                },
-                "permissionPhoneState" : {
-                    "request" : "once",
-                    "prompt" : "为保证您正常和安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
-                },
                 "schemes" : "zhhhzg"
             },
             /* ios打包配置 */

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

@@ -2,8 +2,8 @@
     "name" : "销花宝收银",
     "appid" : "__UNI__E2D4F80",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.7.5",
-    "versionCode" : 175,
+    "versionName" : "1.7.8",
+    "versionCode" : 178,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 3 - 17
开发https/hdPad/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜收银",
     "appid" : "__UNI__F6E7EA0",
     "description" : "花掌柜收银",
-    "versionName" : "2.1.8",
-    "versionCode" : 218,
+    "versionName" : "2.2.0",
+    "versionCode" : 220,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -21,13 +21,7 @@
             "delay" : 0
         },
         "orientation" : [ "landscape" ],
-        "modules" : {
-            "VideoPlayer" : {},
-            "Bluetooth" : {},
-            "Geolocation" : {},
-            "OAuth" : {},
-            "Share" : {}
-        },
+        "modules" : {},
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -42,14 +36,6 @@
                 ],
                 "autoSdkPermissions" : false,
                 "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
-                "permissionExternalStorage" : {
-                    "request" : "once",
-                    "prompt" : "保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
-                },
-                "permissionPhoneState" : {
-                    "request" : "once",
-                    "prompt" : "为保证您正常和安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
-                },
                 "schemes" : "zhhhzg"
             },
             /* ios打包配置 */

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

@@ -2,8 +2,8 @@
     "name" : "销花宝收银",
     "appid" : "__UNI__E2D4F80",
     "description" : "鲜花批发销售管理系统",
-    "versionName" : "1.7.5",
-    "versionCode" : 175,
+    "versionName" : "1.7.8",
+    "versionCode" : 178,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {

+ 3 - 17
线上/hdPad/src/manifest.json

@@ -2,8 +2,8 @@
     "name" : "花掌柜收银",
     "appid" : "__UNI__F6E7EA0",
     "description" : "花掌柜收银",
-    "versionName" : "2.1.8",
-    "versionCode" : 218,
+    "versionName" : "2.2.0",
+    "versionCode" : 220,
     "transformPx" : true,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -21,13 +21,7 @@
             "delay" : 0
         },
         "orientation" : [ "landscape" ],
-        "modules" : {
-            "VideoPlayer" : {},
-            "Bluetooth" : {},
-            "Geolocation" : {},
-            "OAuth" : {},
-            "Share" : {}
-        },
+        "modules" : {},
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
@@ -42,14 +36,6 @@
                 ],
                 "autoSdkPermissions" : false,
                 "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
-                "permissionExternalStorage" : {
-                    "request" : "once",
-                    "prompt" : "保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
-                },
-                "permissionPhoneState" : {
-                    "request" : "once",
-                    "prompt" : "为保证您正常和安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
-                },
                 "schemes" : "zhhhzg"
             },
             /* ios打包配置 */