소스 검색

Merge branch 'master' of http://s.dev01.dkiboss.com:9001/iBOSS-2.0-Mini/iboss_wx_app

hongxudong 1 년 전
부모
커밋
74205702cc
48개의 변경된 파일1337개의 추가작업 그리고 929개의 파일을 삭제
  1. 4 0
      api/pages/other/company.js
  2. 179 113
      components/dkbase/dk-form-bill/dk-form-bill.js
  3. 22 30
      components/dkbase/dk-form-bill/dk-form-bill.wxml
  4. 1 2
      components/dkbase/dk-form-bill/dk-form-bill.wxss
  5. 23 4
      components/dkbase/dk-form-more-items/dk-form-more-items.js
  6. 1 1
      components/dkbase/dk-form-more-items/dk-form-more-items.wxml
  7. 56 37
      components/dkbase/dk-form/dk-form.js
  8. 1 1
      components/dkbase/dk-form/dk-form.wxml
  9. 3 3
      components/dkbase/dk-list-report/dk-list-report.wxml
  10. 5 7
      components/dkbase/dk-list-report/dk-list-report.wxss
  11. 2 2
      components/dkbase/dk-list/dk-list.wxml
  12. 2 2
      components/dkbase/dk-list/dk-list.wxss
  13. 1 0
      components/dkbase/dk-save-button/dk-save-button.js
  14. 16 8
      components/dkbase/dk-tree-form-more/dk-tree-form-more.wxml
  15. 1 1
      config/config.js
  16. 1 0
      dist/uploader/index.js
  17. 2 0
      i18n/zh-CN.js
  18. 32 2
      mixins/index.js
  19. 9 6
      package-base-select/pages/select-collection_confirm/select-collection_confirm.js
  20. 1 1
      package-base-select/pages/select-goods/select-goods.js
  21. 1 1
      package-base-select/pages/select-goods/select-goods.wxml
  22. 75 31
      package-base-select/pages/select-source-sale-order/select-source-sale-order.js
  23. 1 1
      package-base-select/pages/select-source-sale-order/select-source-sale-order.wxml
  24. 1 1
      package-base-select/pages/select-source-sale-out-order/select-source-sale-out-order.wxml
  25. 3 3
      package-basic-data/pages/activity/activity.js
  26. 1 1
      package-basic-data/pages/activity/activity.wxml
  27. 2 2
      package-basic-data/pages/customer-list/detail/detail.wxml
  28. 94 2
      package-basic-data/pages/register/company-setting/company-setting.js
  29. 5 2
      package-basic-data/pages/register/company-setting/company-setting.wxml
  30. 34 19
      package-basic-data/pages/staff/staff.js
  31. 6 18
      package-inventory/pages/cost-check/cost-check.js
  32. 99 96
      package-inventory/pages/ivt-sum-report/detail/detail.wxml
  33. 18 0
      package-inventory/pages/ivt-sum-report/detail/detail.wxss
  34. 38 10
      package-sales/pages/customer-collection/add/add.js
  35. 2 3
      package-sales/pages/customer-collection/add/add.wxml
  36. 3 2
      package-sales/pages/customer-collection/refund/refund.js
  37. 404 400
      package-sales/pages/order-billing/add/add.js
  38. 6 3
      package-sales/pages/order-billing/add/add.wxml
  39. 4 4
      package-sales/pages/order-billing/order-billing.js
  40. 14 8
      package-sales/pages/order-return/add/add.js
  41. 3 3
      package-sales/pages/order-return/add/add.wxml
  42. 111 76
      package-sales/pages/sales-outbound/add/add.js
  43. 1 1
      package-sales/pages/sales-outbound/add/add.wxml
  44. 23 7
      pages/home-page/home-page.js
  45. 5 5
      pages/home-page/home-page.wxml
  46. 18 6
      pages/mine/mine.js
  47. 1 1
      pages/mine/mine.wxml
  48. 2 3
      project.private.config.json

+ 4 - 0
api/pages/other/company.js

@@ -15,6 +15,8 @@ module.exports = {
         updateCurrentCpByWxid:'update_current_cp_by_wxid',
         // 续费
         reNewCompany:'reNew_company',
+        // 商户负责人转让
+        transferHead: 'transfer_head',
     },
 
     routeUrl: {
@@ -23,6 +25,8 @@ module.exports = {
             companyRegister: { key: 'companyRegister', url: '/package-basic-data/pages/register/company-register/company-register' },
             companyParamSetting: { key: 'companyRegister', url: '/package-basic-data/pages/register/company-param-setting/company-param-setting' },
             productDetail: { key: 'productDetail', url: '/package-basic-data/pages/register/product-detail/product-detail' },
+            updateCommanyOwner: { key: 'updateCommanyOwner',
+            url: '/package-base-select/pages/select-data/select-data', type:'staff'}
         }
     }
 };

+ 179 - 113
components/dkbase/dk-form-bill/dk-form-bill.js

@@ -276,6 +276,10 @@ Component({
     goodsTagColor: { //标签颜色
       type: String,
     },
+    satffAndOrgReadonly:{
+      type: Boolean,
+      value:false
+    },
     // 结果集
     value: {
       type: String,
@@ -297,7 +301,7 @@ Component({
             // 再插入
             cardList.splice(index, 0, {
               ...this.data.itemCard
-            }) 
+            })
             // if(filters && filters.length > 0){
             //   filters[0] = {...this.data.itemCard}
             // }
@@ -345,26 +349,26 @@ Component({
     //   [{ code: 'quantity', type: 'step', title: '数量', required: true }, { code: 'pricePromotion', type: 'number', title: '销售价格', required: true }, { code: 'warehouseId', name: 'warehouseName', type: 'drop', required: true, dropType: 'warehouse' , required: true}, { code: 'color', type: 'str', title: '批次号' , required: true}, { code: 'giftFlag', type: 'checkbox', title: '赠品标识' }],
     form: {},
     popChangePrice: [{
-        code: 'priceSale',
-        type: 'number',
-        title: mixins.$t("priceSale"),
-        center: 'right',
-        readonly: true
-      },
-      {
-        code: 'factPrice',
-        type: 'number',
-        title: mixins.$t("factPrice"),
-        required: true,
-        readonly: false
-      },
-      {
-        code: 'factAmt',
-        type: 'number',
-        title: mixins.$t("factAmt"),
-        required: true,
-        readonly: false
-      },
+      code: 'priceSale',
+      type: 'number',
+      title: mixins.$t("priceSale"),
+      center: 'right',
+      readonly: true
+    },
+    {
+      code: 'factPrice',
+      type: 'number',
+      title: mixins.$t("factPrice"),
+      required: true,
+      readonly: false
+    },
+    {
+      code: 'factAmt',
+      type: 'number',
+      title: mixins.$t("factAmt"),
+      required: true,
+      readonly: false
+    },
     ],
   },
   lifetimes: {
@@ -520,7 +524,7 @@ Component({
         return;
       }
       let ds = e.currentTarget.dataset;
-      let popContent = this.data.popContent 
+      let popContent = this.data.popContent
       if (ds.item.flgSubUnit) {
         ds.item.calculationFormula = ds.item.packBox + ds.item.unitName + '= 1' + ds.item.subUnitName
         ds.item.packageBox = ds.item['box'] + ds.item.subUnitName + ds.item['piece'] + ds.item.unitName
@@ -549,7 +553,6 @@ Component({
       if (this.data.type == Constants.billType.sale) {
         ds.item.sumPrice = ds.item['itemQty'] * ds.item.priceSale
         let index_discount = popContent.findIndex(element => element.code == 'discount');
-        let index_discAmt = popContent.findIndex(element => element.code == 'discAmt');
         if (index_discount >= 0) {
           if (ds.item['priceSale'] && ds.item['priceSale'] > 0) { //销售单价小于0 折扣和优惠 都不可输入
             popContent[index_discount].readonly = false
@@ -557,6 +560,19 @@ Component({
             popContent[index_discount].readonly = true
           }
         }
+        //受 销售订单编辑逻辑 限制 转出库后(订单上的出库中加上已出库数量大于0 即证明有后续出库)
+        // cannotModifyFlag ==true不能删除明细 不能修改明细金额 单价  明细折扣
+        if (ds.item.cannotModifyFlag) {
+          popContent[index_discount].readonly = true //不能修改明细折扣
+          let popChangePrice = this.data.popChangePrice
+          popChangePrice.forEach(element => { //不能修改明细金额 单价
+            element.readonly = true
+          });
+          this.setData({
+            popChangePrice: popChangePrice
+          })
+        }
+
       }
       if (this.data.type == Constants.billType.inventory) {
         ds.item.sumPrice = ds.item['outingQty'] * ds.item.priceOut
@@ -583,7 +599,7 @@ Component({
         } else {
           popContent_sku = popContent_
         }
-      } 
+      }
       this.setData({
         popContent_sku: popContent_sku,
         popupTopObj_sku: popupTopObj_sku,
@@ -602,7 +618,7 @@ Component({
      * @author : 王英杰
      * @date   : 2024/1/26 11:46
      */
-    openPopDkNumberInput(e) { 
+    openPopDkNumberInput(e) {
       let key = e.detail.key
       if ((this.data.type == Constants.billType.sale) && (key == "priceSale" || key == "factPrice")) {
         let dataItem = this.data.dataItem
@@ -617,7 +633,7 @@ Component({
      * @author : 周兴
      * @date   : 2024/1/26 11:46
      */
-    openPackageBox(e) { 
+    openPackageBox(e) {
       let dataItem = JSON.parse(this.data.dataItem)
 
 
@@ -633,17 +649,17 @@ Component({
       ) {
         this.setData({
           popContentBox: [{
-              code: 'box',
-              type: 'step',
-              title: dataItem.subUnitName,
-              required: true
-            },
-            {
-              code: 'piece',
-              type: 'step',
-              title: dataItem.unitName,
-              required: true
-            },
+            code: 'box',
+            type: 'step',
+            title: dataItem.subUnitName,
+            required: true
+          },
+          {
+            code: 'piece',
+            type: 'step',
+            title: dataItem.unitName,
+            required: true
+          },
           ],
         })
       }
@@ -674,7 +690,7 @@ Component({
         this.setGoodsOutAmount()
       }
       if (this.data.type == Constants.billType.saleOutReturn) {
-        this.setGoodsOutReturnAmount()
+        form = this.setGoodsOutReturnAmount(form)
       }
       // 外露关闭pop后事件
       this.triggerEvent("editItems", {
@@ -843,7 +859,7 @@ Component({
           // 是否弹出询问框
           Dialog.confirm({
             message: item.item.titpsMessage, //提示信息
-          }).then(() => {}).catch(() => {})
+          }).then(() => { }).catch(() => { })
           return
         }
         //控制校验提示删除明细
@@ -851,7 +867,7 @@ Component({
           // 是否弹出询问框
           Dialog.confirm({
             message: '请先删除商品明细中的商品', //提示信息
-          }).then(() => {}).catch(() => {})
+          }).then(() => { }).catch(() => { })
           return
         }
 
@@ -911,19 +927,21 @@ Component({
                       chooseVisible: false
                     })
                   }
-                  let contentObj = that.data.contentObj;
-                  if (item.card && contentObj[item.card][item.index]?.errMsg && data) {
-                    contentObj[item.card][item.index].errMsg = undefined;
-                    that.setData({
-                      contentObj: contentObj
-                    })
-                  }
+                  // let contentObj = that.data.contentObj;
+                  // if (item.card && contentObj[item.card][item.index]?.errMsg && data) {
+                  //   contentObj[item.card][item.index].errMsg = undefined;
+                  //   that.setData({
+                  //     contentObj: contentObj
+                  //   })
+                  // }
+                  // 清除错误信息
+                  that.clearErrMsg(that);
                 }
               },
               success: function (res) {
                 let itemData = item.item
                 if (route.primaryKey) {
-                  itemData.id = that.data.form[route.primaryKey] 
+                  itemData.id = that.data.form[route.primaryKey]
                 }
 
                 // 通过eventChannel向被打开页面传送数据
@@ -957,6 +975,8 @@ Component({
                       chooseVisible: false
                     })
                   }
+                  // 清除错误信息
+                  that.clearErrMsg(that);
                 }
               },
               success: function (res) {
@@ -971,6 +991,26 @@ Component({
       }
     },
     /**
+     * @desc   : 清除掉错误提示信息
+     * @author : 周兴
+     * @date   : 2024/2/20 11:46
+     */
+    clearErrMsg(that) {
+      let cardList = that.data.cardList
+      let contentObj = that.data.contentObj
+      cardList.forEach(c => {
+        if (contentObj[c.name]) {
+          contentObj[c.name].forEach(it => {
+            it.errMsg = undefined
+          })
+        }
+      })
+
+      that.setData({
+        contentObj: contentObj
+      })
+    },
+    /**
      * @desc   : 打开选择主从业务员/业务部门组件
      * @author : 周兴
      * @date   : 2024/2/20 11:46
@@ -978,7 +1018,10 @@ Component({
     openMulti(e) {
       if (this.data.readonly) {
         return;
-      } 
+      }
+      if (this.data.satffAndOrgReadonly) {
+        return;
+      }
       let type = e.currentTarget.dataset.type
       let _this = this
       // 选择主从业务员
@@ -1275,7 +1318,7 @@ Component({
      * @author : 王英杰
      * @date   : 2024/2/2 11:46
      */
-    changeDetailField(e) { 
+    changeDetailField(e) {
       let dataItem = JSON.parse(this.data.dataItem)
       dataItem[e.detail.key] = e.detail.name
       this.setData({
@@ -1414,7 +1457,7 @@ Component({
           // 获取所有金额的汇总
           sum = itemList.sum(pupPriceCol)
         }
-        itemList.forEach((it, index) => { 
+        itemList.forEach((it, index) => {
           // 按照数量金额分
           if (flag) {
             it[pupPriceCol] = (it[quantityCol] / sum * amount).toFixed(2)
@@ -1505,7 +1548,10 @@ Component({
         contentObj: contentObj
       })
 
-      this.triggerEvent("changeNumber", { code: key, data: e.detail.value })
+      this.triggerEvent("changeNumber", {
+        code: key,
+        data: e.detail.value
+      })
     },
     /**
      * @desc   : 修改数值输入框的值 离焦事件
@@ -1680,7 +1726,7 @@ Component({
      * @date : 2024/1/19
      */
     setAddress() {
-      const location = chooseLocation.getLocation(); 
+      const location = chooseLocation.getLocation();
       let form = this.data.form
       if (location) {
         form['address'] = location;
@@ -1739,16 +1785,16 @@ Component({
         if (this.data.type == Constants.billType.purReturn) { //采购退货
           this.setReturnGoodsAmount(e.data);
         }
-        if (this.data.type == Constants.billType.saleOutReturn) { //采购退货
+        if (this.data.type == Constants.billType.saleOutReturn) { //销售退货
           this.setGoodsOutReturnList(e.data);
         }
 
         if (this.data.type == Constants.billType.pur) {
           // this.setPurGoodsAmount(e.data);
-        } 
+        }
         // 设置是否进行收缩
         let card = this.data.cardList.filter(it => it.name == 'items');
-        this.handleContentObj(card[0]) 
+        this.handleContentObj(card[0])
         // 外露setGoods方法
         this.triggerEvent("setGoods", {
           data: goodsList
@@ -1763,6 +1809,11 @@ Component({
     onCloseDel(e) {
       let deleteFlag = true;
       let item = e.currentTarget.dataset.item
+      //受 销售订单编辑逻辑 限制 转出库后(订单上的出库中加上已出库数量大于0 即证明有后续出库)
+      // cannotModifyFlag ==true不能删除明细 
+      if (item.cannotModifyFlag) {
+        return
+      }
       // 判断删除前是否需要判断
       if (this.data.delValidFlag) {
         // 行不允许删除
@@ -1779,7 +1830,7 @@ Component({
         } = e.detail;
         let index = e.currentTarget.dataset.index
         // 删除明细
-        this.delItem(index); 
+        this.delItem(index);
         let goodList = this.data.form[this.data.itemName]
         if (!goodList || goodList.length == 0) {
           // 还原选择组件
@@ -1787,10 +1838,10 @@ Component({
         }
         instance.close();
       }
-      let form = JSON.stringify(this.data.form) 
+      let form = JSON.stringify(this.data.form)
       // 外露setGoods方法
       this.triggerEvent("onCloseDel", {
-        form:form
+        form: form
       })
 
     },
@@ -1860,8 +1911,8 @@ Component({
         this.setGoodsOutAmount()
       }
       if (this.data.type == Constants.billType.saleOutReturn) {
-        this.setGoodsOutReturnAmount()
-      } 
+        form = this.setGoodsOutReturnAmount(form)
+      }
       // 外露setGoods方法
       this.triggerEvent("delItem", {
         data: goodsList
@@ -1910,7 +1961,7 @@ Component({
      */
     setGoodsAmount(formdata) {
       let cardList = this.data.cardList
-      let form = formdata 
+      let form = formdata
       let index = cardList.findIndex(it => it.name == 'items');
       if (form.goodsList && form.goodsList.length > 0) {
         let sumStandard = Number(0)
@@ -1974,7 +2025,7 @@ Component({
         form.factAmt = 0
         form.discount = 100 //整单折扣
         form.discAmt = 0 //优惠金额
-      } 
+      }
       this.setData({
         cardList: cardList,
       })
@@ -2038,13 +2089,12 @@ Component({
       })
     },
     /**
-     * @desc : 设置商品明细金额相关信息 销售出库
+     * @desc : 设置商品明细金额相关信息 销售退货
      * @author : 于继渤
      * @date : 2024/1/19
      */
-    setGoodsOutReturnAmount() {
+    setGoodsOutReturnAmount(form) {
       let cardList = this.data.cardList
-      let form = this.data.form
       let index = cardList.findIndex(it => it.name == 'items');
       if (form.goodsList && form.goodsList.length > 0) {
         let sumAmount = Number(0)
@@ -2058,7 +2108,6 @@ Component({
           sumQuantity += Number(item.outingQty) //数量
           sumAmount += item.priceOut * item.outingQty //没有售价默认取标价
         })
-
         //合计金额
         cardList[index].sumAmount = sumAmount
         cardList[index].sumQuantity = sumQuantity
@@ -2079,8 +2128,8 @@ Component({
       }
       this.setData({
         cardList: cardList,
-        form: form
       })
+      return form
     },
     /**
      * @desc :  销售出库设置选品参数
@@ -2171,7 +2220,7 @@ Component({
         }
 
       } else if (this.data.type == Constants.billType.saleOutReturn) {
-        if (key == 'outingQty') { 
+        if (key == 'outingQty') {
           dataItem['outingQty'] = -Math.abs(value)
           // 使用 Math.abs() 函数获取 outingQty 的绝对值  
           let outingQty = Math.abs(dataItem.outingQty);
@@ -2190,7 +2239,7 @@ Component({
      * @author : 周兴
      * @date   : 2024/2/2 11:46
      */
-    blurNumberField(e) { 
+    blurNumberField(e) {
       let dataItem = JSON.parse(this.data.dataItem)
       let key = e.detail.key
       // 采购订单
@@ -2280,10 +2329,10 @@ Component({
           delete item['priceWholesale']
         })
       }
+      form = this.setGoodsOutReturnAmount(form)
       this.setData({
         form: form
       })
-      this.setGoodsOutReturnAmount()
     },
     /**
      * @desc   : 显示tip
@@ -2325,7 +2374,7 @@ Component({
         // form.sumReturnQty = sumReturnQty
         // form.sumReturnAmt = sumReturnAmt
         // cardList[index].sumReturnAmt = sumReturnAmt
-      } 
+      }
       this.setData({
         cardList: cardList,
         form: form
@@ -2388,14 +2437,29 @@ Component({
       }
     },
     /**
-     * @desc : 上传附件
+     * @desc : 点击上传附件
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    clickAttach(e) {
+      this.triggerEvent("clickAttach", {
+      })
+    },
+    /**
+     * @desc : 点击上传附件(取消)
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    uploadError(e){
+      this.triggerEvent("uploadError", {
+      })
+    },
+    /**
+     * @desc : 上传附件—(上传完成)
      * @author : 周兴
      * @date : 2024/3/27 16:16
      */
     afterRead(e) {
-      // this.setData({
-      //     uploadFileFlag:true
-      // })
       const _this = this;
       const {
         file
@@ -2404,7 +2468,7 @@ Component({
       let folder = app.globalData.company.cpCode + '/' + this.data.table + '/' + new Date().toYearMonth2() + '/' + new Date().toDay()
       let url = config.upload_url;
       url = url.replace('mdm-server', 'mdm-server' + '-' + app.globalData.company.svcCode.replace('_', '-'))
-      file.forEach(res => {
+      file.forEach((res, index) => {
         // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
         wx.uploadFile({
           url: url,
@@ -2419,9 +2483,6 @@ Component({
           success(res) {
             let data = JSON.parse(res.data)
             if (data.code === 200) {
-              _this.setData({
-                uploadFileFlag: false
-              })
               let form = _this.data.form
               let annexPaths = form['annexPaths'] || []
               data.data.url = config.image_url + data.data.path
@@ -2431,6 +2492,11 @@ Component({
                 form: form,
                 value: JSON.stringify(form)
               })
+              // 如果是最后一条
+              if (index == file.length - 1) {
+                _this.triggerEvent("uploadSucess", {
+                })
+              }
             }
           },
         })
@@ -2450,17 +2516,17 @@ Component({
       if (this.data.type == Constants.billType.sale || this.data.type == Constants.billType.pur || this.data.type == Constants.billType.out) {
         this.setData({
           popContentBox: [{
-              code: 'box',
-              type: 'step',
-              title: mixins.$t("goodsBox"),
-              required: true
-            },
-            {
-              code: 'piece',
-              type: 'step',
-              title: mixins.$t("goodsPiece"),
-              required: true
-            },
+            code: 'box',
+            type: 'step',
+            title: mixins.$t("goodsBox"),
+            required: true
+          },
+          {
+            code: 'piece',
+            type: 'step',
+            title: mixins.$t("goodsPiece"),
+            required: true
+          },
           ],
 
         })
@@ -2469,17 +2535,17 @@ Component({
       if (this.data.type == Constants.billType.saleOut) {
         this.setData({
           popContentBox: [{
-              code: 'box',
-              type: 'step',
-              title: mixins.$t("goodsBox"),
-              required: true
-            },
-            {
-              code: 'piece',
-              type: 'step',
-              title: mixins.$t("goodsPiece"),
-              required: true
-            },
+            code: 'box',
+            type: 'step',
+            title: mixins.$t("goodsBox"),
+            required: true
+          },
+          {
+            code: 'piece',
+            type: 'step',
+            title: mixins.$t("goodsPiece"),
+            required: true
+          },
           ],
 
         })
@@ -2502,17 +2568,17 @@ Component({
       if (this.data.type == Constants.billType.purInto || this.data.type == Constants.billType.saleOutReturn) {
         this.setData({
           popContentBox: [{
-              code: 'box',
-              type: 'step',
-              title: mixins.$t("goodsBox"),
-              required: true
-            },
-            {
-              code: 'piece',
-              type: 'step',
-              title: mixins.$t("goodsPiece"),
-              required: true
-            },
+            code: 'box',
+            type: 'step',
+            title: mixins.$t("goodsBox"),
+            required: true
+          },
+          {
+            code: 'piece',
+            type: 'step',
+            title: mixins.$t("goodsPiece"),
+            required: true
+          },
           ],
 
         })

+ 22 - 30
components/dkbase/dk-form-bill/dk-form-bill.wxml

@@ -1,7 +1,7 @@
 <wxs src='../../../utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <van-dialog id="van-dialog" />
 <!-- 销售订单  -->
-<view style="display:flex;" wx:if="{{(type == 'sale' || type =='purReturn' || type =='saleOut'  || type =='saleOutReturn' )&&  saleStaffAndOrgFlag}}">
+<view style="display:flex;" wx:if="{{(type == 'sale' || type =='purReturn'   || type =='saleOutReturn' )&&  saleStaffAndOrgFlag}}">
   <!-- 主从业务员  -->
   <view style="width: 50%;">
     <van-cell id="staffItem" catchtap="openMulti" data-type="staff" title="{{ form[staff].text?form[staff].text:'选择业务员' }}" value-width="1rpx" border="{{false}}" center="{{true}}" title-class="cell-value-staff-org" arrow-direction="down" is-link value="" />
@@ -50,39 +50,33 @@
 
     <view style="display: flex;justify-content: center;align-items: center;" id="{{card.name}}">
       <view wx:if="{{card.name == 'items' && !readonly && chooseVisible && card.chooseGoodsItemFlag}}" style="margin:10rpx 15rpx;text-align: center;">
-        <van-button icon="{{imageUrl + 'choose_goods_sale.png'}}" size="normal" color="#3E69F6" custom-style="border-radius:15rpx ;" catchtap="openChooseItems" data-item="{{card}}" custom-style="height:70rpx;border-radius:8px;width:191rpx;" data-index="{{cardIndex}}" type="info">选商品
+        <van-button icon="{{imageUrl + 'choose_goods_sale.png'}}" size="normal" color="#3E69F6" catchtap="openChooseItems" data-item="{{card}}" custom-style="height:70rpx;border-radius:15rpx;width:191rpx;padding:0" data-index="{{cardIndex}}" type="info">选商品
         </van-button>
 
       </view>
       <view wx:if="{{card.name == 'items' && !readonly && chooseVisible &&  card.chooseInventoryFlag}}" style="margin:10rpx 15rpx;text-align: center;">
-        <van-button icon="{{imageUrl + 'choose_inventory_sale.png '}}" size="normal" custom-style="height:70rpx;border-radius:8px;width:191rpx;" data-type="inventory" color="#9A36FC" catchtap="openChooseItems" data-item="{{card}}" data-index="{{cardIndex}}" type="info">选库存
+        <van-button icon="{{imageUrl + 'choose_inventory_sale.png '}}" size="normal" custom-style="height:70rpx;border-radius:15rpx;width:191rpx;padding:0" data-type="inventory" color="#9A36FC" catchtap="openChooseItems" data-item="{{card}}" data-index="{{cardIndex}}" type="info">选库存
         </van-button>
 
       </view>
       <view wx:if="{{card.name == 'items' && !readonly && chooseVisible &&  card.chooseCoordinationFlag}}" style="margin:10rpx 15rpx;text-align: center;">
-        <van-button icon="{{imageUrl + 'choose_coordination_sale.png'}}" size="normal" custom-style="height:70rpx;border-radius:8px;width:191rpx;" color="#FF7B1A" catchtap="openChooseCoordinationItems" data-item="{{card}}" data-index="{{cardIndex}}" type="info">选外协
+        <van-button icon="{{imageUrl + 'choose_coordination_sale.png'}}" size="normal" custom-style="height:70rpx;border-radius:15rpx;width:191rpx;;padding:0" color="#FF7B1A" catchtap="openChooseCoordinationItems" data-item="{{card}}" data-index="{{cardIndex}}" type="info">选外协
         </van-button>
-
       </view>
-
-
-
     </view>
 
-
     <view class="dk-card-class">
-
-
       <view wx:if="{{card.title}}" class="item-class">
-        <view class="item-title-class">{{card.title}}</view>
-        <view class="item-info-class" style="color:{{card.color?card.color:'#1B365D'}}">{{card.info}}</view>
-        <view style="width: 35%;text-align: right;">
+        <view style="display: flex;">
+          <view class="item-title-class">{{card.title}}</view>
+          <view class="item-info-class" style="color:{{card.color?card.color:'#1B365D'}}">{{card.info}}</view>
+        </view>
+        <view style="display: flex;">
           <dk-tag wx:if="{{card.expandFlag}}" type="primary" padding="0 20rpx" height="40rpx" color="#9FAEE5" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" value="{{!card.expand?'展开':'收起'}}" catchtap="expandCard" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
           <!--明细,增加选择商品按钮-->
           <dk-tag wx:if="{{card.name == 'items' && !readonly && chooseVisible && ( card.chooseGoodsFlag == undefined || card.chooseGoodsFlag)}}" type="primary" padding="8px" color="#3E69F6" textColor="#FFFFFF" radius="10rpx" roundFlag="{{true}}" fontSize="28rpx" value="选商品" catchtap="openChooseItems" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
           <!-- 自定义tag -->
           <dk-tag wx:if="{{card.name == 'items' && goodsTagText}}" type="primary" padding="8px" color="{{goodsTagColor ? goodsTagColor:'#77C5D5'}}" fontSize="28rpx" textColor="#FFFFFF" radius="10rpx" roundFlag="{{true}}" value="{{goodsTagText}}" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
-
         </view>
       </view>
       <view wx:if="{{card.expandFlag && card.expand || !card.expandFlag}}">
@@ -90,9 +84,7 @@
         <view wx:if="{{card.name == 'items'}}">
           <view wx:for="{{form[itemName]}}" data-item="{{item}}" wx:for-item="item" wx:key="index" border="{{ false }}">
             <!-- <van-swipe-cell disabled="{{swipeDisabled ? item[swipeDisabled] : flase}}" right-width="{{readonly? 0:65 }}" data-index="{{index}}" data-item="{{item}}"  bind:close="onCloseDel"> -->
-            <dk-swiper disabled="{{swipeDisabled ? item[swipeDisabled] : false}}" right-width="{{readonly? 0:65 }}"
-            data-index="{{index}}" data-item="{{item}}"  bind:click="onCloseDel"
-            >
+            <dk-swiper disabled="{{swipeDisabled ? item[swipeDisabled] : false}}" right-width="{{readonly? 0:65 }}" data-index="{{index}}" data-item="{{item}}" bind:click="onCloseDel">
               <van-card wx:if="{{item.show || item.show == undefined}}" data-index="{{index}}" data-item="{{item}}" data-card="{{card}}" catchtap="openChoosedItemInfo">
                 <view slot="thumb" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" catchtap="openChoosedItemInfo">
                   <van-image radius="5px" width="90" height="90" src="{{item[iconCol] }}" />
@@ -154,8 +146,8 @@
                 </view>
               </view>
               <!-- <view wx:if="{{!readonly}}" slot="right">删除</view> -->
-            <!-- </van-swipe-cell> -->
-          </dk-swiper>
+              <!-- </van-swipe-cell> -->
+            </dk-swiper>
           </view>
           <van-empty wx:if="{{!form[itemName] || form[itemName].length == 0}}" description="暂未选择商品" />
           <block style="text-align: center; " wx:if="{{card.displayNum && form[itemName].length > card.displayNum}}">
@@ -177,7 +169,7 @@
             </view>
             <view wx:if="{{sumAmountColFlag}}" class="amount-item-class">
               <!--条数-->
-              <dk-cell titleColor="#95A8CB;" contentColor="#95A8CB" title="{{$t['goodsQuantity'] }}" amount="{{false}}"content="{{(card[sumQuantityCol]?card[sumQuantityCol]:0)}}"></dk-cell>
+              <dk-cell titleColor="#95A8CB;" contentColor="#95A8CB" title="{{$t['goodsQuantity'] }}" amount="{{false}}" content="{{(card[sumQuantityCol]?card[sumQuantityCol]:0)}}"></dk-cell>
               <!--合计金额-->
               <dk-cell fontSize="16" fontWeight="bold" contentFontWeight="700" contentColor="#FF7B1A" titleColor="#1B365D;" title="合计金额" content="{{card[sumAmountCol]?card[sumAmountCol]:0}}"></dk-cell>
               <!-- <view style="display: flex;width: calc(100% - 260rpx);">
@@ -190,10 +182,10 @@
             </view>
             <view wx:if="{{reverseCalculationFlag}}" class="amount-item-class">
               <!--整单折扣-->
-              <dk-cell contentColor="#95A8CB" titleColor="#95A8CB;"  title="{{$t['wholeOrderDiscount']}}" amount="{{false}}"content="{{(card[wholeOrderDiscountCol]?card[wholeOrderDiscountCol]:100) + '%'}}"></dk-cell>
+              <dk-cell contentColor="#95A8CB" titleColor="#95A8CB;" title="{{$t['wholeOrderDiscount']}}" amount="{{false}}" content="{{(card[wholeOrderDiscountCol]?card[wholeOrderDiscountCol]:100) + '%'}}"></dk-cell>
               <!--优惠金额-->
-              <dk-cell   contentColor="#95A8CB" titleColor="#95A8CB;" title="优惠金额" content="{{card[discountAmountCol]?card[discountAmountCol]:0}}"></dk-cell>
-           
+              <dk-cell contentColor="#95A8CB" titleColor="#95A8CB;" title="优惠金额" content="{{card[discountAmountCol]?card[discountAmountCol]:0}}"></dk-cell>
+
             </view>
             <!--使用收款-->
             <!-- <view class="amount-item-class" wx:if="{{type === 'sale' || type === 'saleOut' }}">
@@ -216,7 +208,7 @@
             </van-field>
 
             <!--文本框-->
-            <van-field wx:if="{{item.type=='str' && (item.show || item.show == undefined) && !item.hide }}" required="{{item.required?true:false }}" data-key="{{item.code}}" auto-focus="{{true}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize clearable border="{{ false }}" readonly="{{!!readonly || !!item.readonly}}"  label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" bind:clear="clearField" errorMessage="{{item.errMsg}}">
+            <van-field wx:if="{{item.type=='str' && (item.show || item.show == undefined) && !item.hide }}" required="{{item.required?true:false }}" data-key="{{item.code}}" auto-focus="{{true}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize clearable border="{{ false }}" readonly="{{!!readonly || !!item.readonly}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" bind:clear="clearField" errorMessage="{{item.errMsg}}">
               <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" />
             </van-field>
             <!--选单-->
@@ -257,16 +249,16 @@
               <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
             </van-field>
             <!--数字类-->
-            <dk-number-input wx:if="{{item.type=='number'  && (item.show || item.show == undefined)}}" sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}" fontSize="14" left="30rpx" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" center="left" readonly="{{!!readonly || !!item.readonly}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#FF7B1A" titleFontWeight="normal" titleColor="{{!!item.readonly?'#95A8CB':'#002340'}}"  inputValue="{{form[item.code]}}" negative="{{item.negative}}" maxFlag="{{item.maxFlag}}" max="{{item.max}}" bind:triggerBindBlur="changeNumberBlur" bind:triggerBindValue="changeNumberField" min="{{item.min}}"></dk-number-input>
+            <dk-number-input wx:if="{{item.type=='number'  && (item.show || item.show == undefined)}}" sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}" fontSize="14" left="30rpx" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" center="left" readonly="{{!!readonly || !!item.readonly}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#FF7B1A" titleFontWeight="normal" titleColor="{{!!item.readonly?'#95A8CB':'#002340'}}" inputValue="{{form[item.code]}}" negative="{{item.negative}}" maxFlag="{{item.maxFlag}}" max="{{item.max}}" bind:triggerBindBlur="changeNumberBlur" bind:triggerBindValue="changeNumberField" min="{{item.min}}"></dk-number-input>
 
             <!--备注-->
             <van-field wx:if="{{item.type=='textarea'  && (item.show || item.show == undefined)}}" type="textarea" required="{{item.required?true:false }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" clearable readonly="{{!!readonly && !!item.readonly}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" bind:clear="clearField" errorMessage="{{item.errMsg}}">
             </van-field>
             <!--附件-->
             <view style="display:flex;width:100%;margin: 1vw; padding-top: 20rpx;" wx:if="{{item.type=='uploader'}}">
-              <view style="width: 168rpx; flex:1;color: #95A8CB;font-size: 28rpx;padding-left: 27rpx;">附件</view>
+              <view style="width: 168rpx; flex:1;color: #95A8CB;font-size: 14px;padding-left: 27rpx;">附件</view>
               <view style="width: calc(100% - 168rpx);text-align: left;">
-                <van-uploader max-count="5" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths'] }}" bind:delete="deleteImg" bind:after-read="afterRead" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" upload-text="添加照片" />
+                <van-uploader max-count="5" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths'] }}" bind:delete="deleteImg"  bind:error="uploadError" bind:after-read="afterRead" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" catchtap="clickAttach" bind:oversize="overSize" upload-text="添加照片" />
                 <!-- <view style="margin-left: 27rpx;color: #C8C9CC;font-size: 12px;">
                 图片最多上传5张
               </view> -->
@@ -301,9 +293,9 @@
   <van-datetime-picker type="date" bind:confirm="chooseDate" bind:cancel="cancelDatePop" loading="{true}" value="{{dataTime}}" min-date="{{ minDate }}" />
 </van-popup>
 
-<dk-popup id="dkPopup" stepperDecimal="decimalPlaces" type="{{popType}}" routeObjName="{{routeObjName}}" titleTagCol="{{titleTagCol}}" titleCol="{{titleCol}}" subCol="{{subCol}}" descCol="{{descCol}}" iconCol="{{iconCol}}"priceTailCol="{{priceTailCol}}"  priceCol="{{pupPriceCol}}"priceTitle="{{priceTitle}}" value="{{dataItem}}" show="{{showPop}}" contentObj="{{popContent_sku}}" popupTopObj="{{popupTopObj_sku}}" bind:changeStep="changeStep" bind:changeCheckBox="changeCheckBox" readonly="{{readonly}}" bind:changeField="changeDetailField" bind:blurNumberField="blurNumberField" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:openDkNumberInput = "openPopDkNumberInput"></dk-popup>
+<dk-popup id="dkPopup" stepperDecimal="decimalPlaces" type="{{popType}}" routeObjName="{{routeObjName}}" titleTagCol="{{titleTagCol}}" titleCol="{{titleCol}}" subCol="{{subCol}}" descCol="{{descCol}}" iconCol="{{iconCol}}" priceTailCol="{{priceTailCol}}" priceCol="{{pupPriceCol}}" priceTitle="{{priceTitle}}" value="{{dataItem}}" show="{{showPop}}" contentObj="{{popContent_sku}}" popupTopObj="{{popupTopObj_sku}}" bind:changeStep="changeStep" bind:changeCheckBox="changeCheckBox" readonly="{{readonly}}" bind:changeField="changeDetailField" bind:blurNumberField="blurNumberField" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:openDkNumberInput="openPopDkNumberInput"></dk-popup>
 <!-- 箱片 -->
 <dk-popup type="basic" title="修改包装数量" titleCol="skuModel" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPopBox}}" routeObjName="{{routeObjName}}" contentObj="{{popContentBox}}" bind:changeStep="changeStep" bind:commit="editItemsBox" stepperDecimal="decimalPlaces"></dk-popup>
 
 <!-- 修改实际金额 和实际单价 (销售订单价格反算用)-->
-<dk-popup type="basic" title="修改价格"   value="{{dataItemChangePrice}}" show="{{showChangePrice}}" routeObjName="{{routeObjName}}" contentObj="{{popChangePrice}}" validFlag="{{true}}"  bind:blurNumberField ="blurChangePriceNumberField"   bind:commit="editItemsChangePrice"  ></dk-popup>
+<dk-popup type="basic" title="修改价格" value="{{dataItemChangePrice}}" show="{{showChangePrice}}" routeObjName="{{routeObjName}}" contentObj="{{popChangePrice}}" validFlag="{{true}}" bind:blurNumberField="blurChangePriceNumberField" bind:commit="editItemsChangePrice"></dk-popup>

+ 1 - 2
components/dkbase/dk-form-bill/dk-form-bill.wxss

@@ -134,7 +134,6 @@
   font-size: 15px;
   color: #1B365D;
   font-weight: 600;
-  width: 26%;
 }
 
 .item-info-class {
@@ -142,7 +141,7 @@
   font-size: 14px;
   display: flex;
   align-items: flex-end;
-  width: 59%;
+  margin-left: 8rpx;
 }
 
 .item-add-btn-class {

+ 23 - 4
components/dkbase/dk-form-more-items/dk-form-more-items.js

@@ -737,6 +737,24 @@ Component({
       })
     },
     /**
+     * @desc : 点击上传附件
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    clickAttach(e) {
+      this.triggerEvent("clickAttach", {
+      })
+    },
+    /**
+     * @desc : 点击上传附件(取消)
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    uploadError(e) {
+      this.triggerEvent("uploadError", {
+      })
+    },
+    /**
      * @desc : 上传附件
      * @author : 周兴
      * @date : 2024/3/27 16:16
@@ -769,9 +787,6 @@ Component({
           success(res) {
             let data = JSON.parse(res.data)
             if (data.code === 200) {
-              _this.setData({
-                uploadFileFlag: false
-              })
               let form = _this.data.form
               let annexPaths = form['annexPaths'] || []
               data.data.url = config.image_url + data.data.path
@@ -781,7 +796,11 @@ Component({
                 form: form,
                 value: JSON.stringify(form)
               })
-              console.log('ff', _this.data.form);
+              // 如果是最后一条
+              if (index == file.length - 1) {
+                _this.triggerEvent("uploadSucess", {
+                })
+              }
             }
           },
         })

+ 1 - 1
components/dkbase/dk-form-more-items/dk-form-more-items.wxml

@@ -147,7 +147,7 @@
       <view style="display:flex;width:100%;margin: 1vw; padding-top: 20rpx;" wx:if="{{item.type=='uploader'}}">
         <view style="width: 168rpx; flex:1;color: #95A8CB;font-size: 28rpx;padding-left: 27rpx;">附件</view>
         <view style="width: calc(100% - 168rpx);text-align: left;">
-          <van-uploader max-count="5" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths']  }}" data-readonly="{{!!item.readonly}}" bind:delete="deleteImg" bind:after-read="afterRead" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" upload-text="添加照片" />
+          <van-uploader max-count="5" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths']  }}" data-readonly="{{!!item.readonly}}" bind:delete="deleteImg" bind:after-read="afterRead" bind:error="uploadError" catchtap="clickAttach"  multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" upload-text="添加照片" />
           <view style="margin-left: 27rpx;color: #C8C9CC;font-size: 12px;">
             图片最多上传5张
           </view>

+ 56 - 37
components/dkbase/dk-form/dk-form.js

@@ -25,7 +25,7 @@ Component({
       type: Array,
       value: []
     },
-    transparentStyle:{
+    transparentStyle: {
       type: Boolean,
       value: false
     },
@@ -149,14 +149,14 @@ Component({
         util.showToast(item.tip);
       }
     },
-     /**
-     * @desc   : 外漏str的点击事件
-     * @author : 周兴
-     * @date   : 2024/1/26 11:46
-     */
-    openStr(e){ 
+    /**
+    * @desc   : 外漏str的点击事件
+    * @author : 周兴
+    * @date   : 2024/1/26 11:46
+    */
+    openStr(e) {
       let item = e.currentTarget.dataset;
-        this.triggerEvent("openStr", {  code: item.key,})
+      this.triggerEvent("openStr", { code: item.key, })
     },
     /**
      * @desc   : 打开下拉
@@ -165,7 +165,7 @@ Component({
      */
     open(e) {
       let item = e.currentTarget.dataset;
-      console.log('item',item)
+      console.log('item', item)
       if (item.item.readonly) {
         return
       }
@@ -291,17 +291,17 @@ Component({
             if (item.required && !form[item.code]) {
               item.errMsg = title + '不为空'
               flag = false;
-            } else{
+            } else {
               item.errMsg = undefined
             }
             // 电话校验
-            console.log(item.type,item.required,form[item.code]);
+            console.log(item.type, item.required, form[item.code]);
             if (item.type == 'phone' && item.required && form[item.code]) {
               // 联系电话格式错误
               var myreg = Constants.Mobile_Phone_Number_Regular_Expression
               if (!myreg.test(form[item.code])) {
                 item.errMsg = title + '格式错误'
-                flag = false; 
+                flag = false;
               }
             }
           })
@@ -351,7 +351,7 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     chooseData(e) {
-      console.log("chooseData-dkform",e.detail);
+      console.log("chooseData-dkform", e.detail);
       let contentObj = this.data.contentObj;
       let form = this.data.form
       if (e.detail.ids) {
@@ -404,7 +404,7 @@ Component({
       this.triggerEvent("chooseData", {
         code: this.data.dropCode,
         //初始欠款的为空
-        list: e.detail.list?e.detail.list:e.detail.item
+        list: e.detail.list ? e.detail.list : e.detail.item
       })
     },
     /**
@@ -426,9 +426,9 @@ Component({
     },
 
 
-    openDatePopDay(e){
+    openDatePopDay(e) {
       let item = e.currentTarget.dataset;
-      
+
       if (item.item.readonly) {
         return
       }
@@ -440,23 +440,23 @@ Component({
         dropDateCode: e.currentTarget.dataset.key
       })
     },
-        /**
-   * @desc : 选择筛选中的日期
-   * @author : 周兴
-   * @date : 2024/1/29 08:59
-   */
-  pickDateCommit(e) {
-    let form = this.data.form
-    
-    let date = e.detail.date[0] + '~' + e.detail.date[1]
-    form[this.data.dropDateCode] = date
-    form[this.data.dropDateCode + 'Start'] = e.detail.date[0];
-    form[this.data.dropDateCode + 'End'] = e.detail.date[1];
-    this.setData({
-      form: form,
-      value: JSON.stringify(form)
-    })
-  },
+    /**
+* @desc : 选择筛选中的日期
+* @author : 周兴
+* @date : 2024/1/29 08:59
+*/
+    pickDateCommit(e) {
+      let form = this.data.form
+
+      let date = e.detail.date[0] + '~' + e.detail.date[1]
+      form[this.data.dropDateCode] = date
+      form[this.data.dropDateCode + 'Start'] = e.detail.date[0];
+      form[this.data.dropDateCode + 'End'] = e.detail.date[1];
+      this.setData({
+        form: form,
+        value: JSON.stringify(form)
+      })
+    },
     /**
      * @desc   : 关闭日期pop
      * @author : 周兴
@@ -832,6 +832,24 @@ Component({
       })
     },
     /**
+     * @desc : 点击上传附件
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    clickAttach(e) {
+      this.triggerEvent("clickAttach", {
+      })
+    },
+    /**
+     * @desc : 点击上传附件(取消)
+     * @author : 周兴
+     * @date : 2024/6/24
+     */
+    uploadError(e) {
+      this.triggerEvent("uploadError", {
+      })
+    },
+    /**
      * @desc : 上传附件
      * @author : 周兴
      * @date : 2024/3/27 16:16
@@ -863,9 +881,6 @@ Component({
           success(res) {
             let data = JSON.parse(res.data)
             if (data.code === 200) {
-              _this.setData({
-                uploadFileFlag: false
-              })
               let form = _this.data.form
               let annexPaths = form['annexPaths'] || []
               data.data.url = config.image_url + data.data.path
@@ -875,7 +890,11 @@ Component({
                 form: form,
                 value: JSON.stringify(form)
               })
-              console.log('ff', _this.data.form);
+              // 如果是最后一条
+              if (index == file.length - 1) {
+                _this.triggerEvent("uploadSucess", {
+                })
+              }
             }
           },
         })

+ 1 - 1
components/dkbase/dk-form/dk-form.wxml

@@ -95,7 +95,7 @@
       <view style="display:flex;width:100%;margin: 1vw; padding-top: 20rpx;" wx:if="{{item.type=='uploader'}}">
         <view style="width: 168rpx; flex:1;color: #95A8CB;font-size: 14px;padding-left: 20rpx;">{{item.name?item.name:'附件'}}</view>
         <view style="width: calc(100% - 168rpx);text-align: left;">
-          <van-uploader max-count="{{uploaderMAX}}" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths'] }}" bind:delete="deleteImg" bind:after-read="afterRead" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" />
+          <van-uploader max-count="{{uploaderMAX}}" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths'] }}" bind:delete="deleteImg" bind:after-read="afterRead" bind:error="uploadError" catchtap="clickAttach" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" />
           <view style="margin-left: 27rpx;color: #C8C9CC;font-size: 12px;">
             图片最多上传{{uploaderMAX}}张
           </view>

+ 3 - 3
components/dkbase/dk-list-report/dk-list-report.wxml

@@ -84,12 +84,12 @@
               </view> -->
             <view style="display: flex;justify-content: center;">
               <!-- <view class="card-label-class">{{col.amountKeyLabel}}</view> -->
-              <!-- <dk-cell contentRight="{{false}}" amount="{{col.amountFlag}}" left="0" contentFontSize="15" contentColor="{{col.amountFlag?'#FF7B1A':'#333333'}}" contentFontWeight="bold" content="{{item[col.code]?item[col.code]:0}}"></dk-cell> -->
-              <view class="item-view">
+              <dk-cell wx:if="{{reportNameKey == 'track'}}" contentRight="{{false}}" amount="{{col.amountFlag}}" left="0" contentFontSize="15" contentColor="{{col.amountFlag?'#FF7B1A':'#333333'}}" contentFontWeight="bold" content="{{item[col.code]?item[col.code]:0}}"></dk-cell>
+              <view class="item-view" wx:if="{{reportNameKey == 'ivt'}}">
                 <view class="item-info" wx:for="{{col.itemList}}" wx:for-item="listItem" data-item="{{listItem}}">
                   <view class="label">{{listItem.label}}</view>
                   <!-- <view class="number">{{item[listItem.code]?item[listItem.code]:0}}</view> -->
-                  <dk-cell left="0rpx" height="45rpx" contentRight="{{false}}" contentFontSize="17" contentColor="{{listItem.dataType === 'number'? '#A5814A': '#0000000'}}"
+                  <dk-cell left="0rpx" height="45rpx" contentRight="{{false}}" contentFontSize="13" contentColor="{{listItem.dataType === 'number'? '#A5814A': '#0000000'}}"
                     contentFontWeight="bold" percentSignFlag="{{listItem.dataType === 'number'? false: true}}" content="{{item[listItem.code]?item[listItem.code]:0}}"></dk-cell>
                 </view>
               </view>

+ 5 - 7
components/dkbase/dk-list-report/dk-list-report.wxss

@@ -92,14 +92,14 @@
   position: relative;
   margin: 15rpx 0.4% 15rpx 1.25%;
   width: 48%;
-  height: 230rpx;
+  height: 200rpx;
   border-radius: 19rpx;
 }
 
 .card-label-class {
   margin-top: 20rpx;
   color: #606EB2;
-  font-size: 20px;
+  font-size: 15px;
   font-weight: bold;
   display: flex;
   justify-content: center;
@@ -115,7 +115,7 @@
 }
 
 .goods-cell-class {
-  margin: 32rpx 32rpx 32rpx 0rpx;
+  margin: 32rpx 32rpx 0rpx 0rpx;
   padding: 15rpx 15rpx 15rpx 5rpx !important; 
   border-radius: 16rpx;
 }
@@ -136,17 +136,15 @@
   justify-content: center;
   align-content: center;
   align-items: center;
-  margin-top: 5px;
 }
 
 .item-info{
-  width: 80%;
+  width: 72%;
   display: flex;
   justify-content: space-between;
   padding: 4px;
 }
 .item-info .label{
   color: #606EB2;
-  font-weight: bold;
-  font-size: 16px;
+  font-size: 11px;
 }

+ 2 - 2
components/dkbase/dk-list/dk-list.wxml

@@ -22,7 +22,7 @@
                 <dk-text catchtap="toTitle" data-item="{{item}}" textDecoration="underline" fontSize="15px" value="{{item[title]}}"></dk-text>
               </view>
             </view>
-            <view style="display: flex;">
+            <view style="display: flex; align-items: center;">
               <!-- 原来的弯角 -->
               <view class="corner-view" wx:if="{{item[titleCorner]}}">
                 <view class="corner-view-text">{{item[titleCorner]}}</view>
@@ -58,7 +58,7 @@
                 </view>
               </view>
               <!-- 三个小点 -->
-              <view wx:if="{{ flgPoint && (item.flgPoint == null || item.flgPoint)}}" class="oas-title-value" data-item="{{item}}" catchtap="toPoint">
+              <view wx:if="{{ flgPoint && (item.flgPoint == null || item.flgPoint)}}" class="oas-title-value" data-item="{{item}}" catchtap="toPoint" >
                 <van-icon size="25" name="ellipsis" color="#1B365D" />
               </view>
             </view>

+ 2 - 2
components/dkbase/dk-list/dk-list.wxss

@@ -172,10 +172,10 @@
 
 .corner-view {
   /* width: 70rpx; */
-  height: 40rpx;
+  height: 49rpx;
   text-align: center;
   background-color: #FFE5BD;
-  line-height: 40rpx;
+  line-height: 49rpx;
 }
 
 .corner-view-text {

+ 1 - 0
components/dkbase/dk-save-button/dk-save-button.js

@@ -112,6 +112,7 @@ Component({
      */
     submit(e) {
       let item = e.currentTarget.dataset.item
+      console.log('item', item);
       console.log(e)
       this.triggerEvent("open", { name: item.code, customUrl: item.customUrl })
     },

+ 16 - 8
components/dkbase/dk-tree-form-more/dk-tree-form-more.wxml

@@ -1,8 +1,12 @@
 <view wx:for="{{tree}}" class="{{!item[parentIdKey]?'Outer-frame':''}}">
 
   <!-- 列表上半部分 -->
-  <van-swipe-cell right-width="{{ 65 }}" disabled="{{swipeDisabled}}" right-hight="10">
-    <view wx:if="{{!item[parentIdKey]}}" class="main-title-class" bindtap="clickName" data-item="{{item}}" data-type="fa">
+  <!-- <van-swipe-cell right-width="{{ 65 }}" disabled="{{swipeDisabled}}" right-hight="10"> -->
+
+    <dk-swiper   right-width="{{swipeDisabled? 0:65 }}"  disabled="{{swipeDisabled}}"  data-item="{{item}}" bind:click="onSwipeBind" rightButtontxt="{{(item[flgValidKey] ? '停用' : '启用')}}">
+   
+
+    <view wx:if="{{!item[parentIdKey]}}" class="main-title-class" bind:tap="clickName" data-item="{{item}}" data-type="fa">
       <view data-item="{{item}}" data-type="fa" style="flex:1">
         <view class="font-title">{{item[nameKey]}}</view>
       </view>
@@ -19,14 +23,17 @@
         <van-icon wx:else color="#bdb7b7" name="arrow" />
       </view>
     </view>
+  </dk-swiper>
     <!-- 侧拉 -->
-    <view wx:if="{{!swipeDisabled}}" data-item="{{item}}" bind:tap="onSwipeBind" slot="right">{{(item[flgValidKey] ? '停用' : '启用')}}</view>
-  </van-swipe-cell>
+    <!-- <view wx:if="{{!swipeDisabled}}" data-item="{{item}}" bind:tap="onSwipeBind" slot="right">{{(item[flgValidKey] ? '停用' : '启用')}}</view>
+  </van-swipe-cell> -->
   <!-- 列表下半部分 -->
   <view class="{{(item.children && item.children.length > 0 && !item[parentIdKey])?'list-below-item':''}}">
     <view style="width:100%">
-      <van-swipe-cell right-width="{{ 65 }}" disabled="{{swipeDisabled}}">
-        <view wx:if="{{item[parentIdKey]}}" style="display:flex;align-items:center;margin-left:{{item[itemListKey].length !== 0 ? depth*20 : depth*30}}px;font-size:15px;" bindtap="clickName" data-item="{{item}}" data-type="sub" data-open="{{item.open}}">
+      <!-- <van-swipe-cell right-width="{{ 65 }}" disabled="{{swipeDisabled}}"> -->
+
+        <dk-swiper   right-width="{{swipeDisabled? 0:65 }}"  disabled="{{swipeDisabled}}"  data-item="{{item}}" bind:click="onSwipeBind" rightButtontxt="{{(item[flgValidKey] ? '停用' : '启用')}}">
+        <view wx:if="{{item[parentIdKey]}}" style="display:flex;align-items:center;margin-left:{{item[itemListKey].length !== 0 ? depth*20 : depth*30}}px;font-size:15px;"  bind:tap="clickName" data-item="{{item}}" data-type="sub" data-open="{{item.open}}">
           <view wx:if="{{isNameImgFlag}}">
             <view class="tree_left" wx:if="{{item[itemListKey].length !== 0}}" data-id="{{item[idKey]}}" data-open="{{item.open}}">
               <van-image src="{{imageUrl + 'tree.png'}}" width="25rpx" height="25rpx" fit="heightFix" />
@@ -60,8 +67,9 @@
           </view>
         </view>
         <!-- 侧拉 -->
-        <view wx:if="{{!swipeDisabled}}" data-item="{{item}}" bind:tap="onSwipeBind" slot="right">{{(item[flgValidKey] ? '停用' : '启用')}}</view>
-      </van-swipe-cell>
+        <!-- <view wx:if="{{!swipeDisabled}}" data-item="{{item}}" bind:tap="onSwipeBind" slot="right">{{(item[flgValidKey] ? '停用' : '启用')}}</view> -->
+      <!-- </van-swipe-cell> -->
+    </dk-swiper>
       <view wx:if="{{item[itemListKey]}}">
         <view hidden="{{!item.open}}">
           <dk-tree-form-more flgValidOnFlag="{{false}}" bind:clickName="subclickName" bind:onSwipe="subonSwipeBind_" treeList="{{item[itemListKey]}}" ischekboxFlag="{{ischekboxFlag}}" flgValid="{{flgValid}}" swipeDisabled="{{swipeDisabled}}" isNameImgFlag="{{isNameImgFlag}}" flgValidKey="{{flgValidKey}}" nameKey="{{nameKey}}" idKey="{{idKey}}" isLastClickFlag="{{isLastClickFlag}}" parentIdKey="{{parentIdKey}}" itemListKey="{{itemListKey}}" id="treeSelect" bind:onclick="click" depth="{{depth+1}}"></dk-tree-form-more>

+ 1 - 1
config/config.js

@@ -3,7 +3,7 @@ const profiles = 'dev';
 const configListObj = {
   // 北京东科企信软件有限公司 本地开发
   dev: {
-    server_add: 'http://192.168.0.93',     server_port: '7001',
+    server_add: 'http://192.168.0.57',     server_port: '7001',
     upload_url:'https://s.dev01.dkiboss.com:7000/api/mdm-server/file/upload',
     image_url:'https://s.dev01.dkiboss.com:7000/file',
     corpid: 'ww796c5d1684937b2f', //企业微信corpid

+ 1 - 0
dist/uploader/index.js

@@ -96,6 +96,7 @@ VantComponent({
             if (!res) {
                 return;
             }
+            console.log('mmmmmm');
             if (isPromise(res)) {
                 res.then((data) => this.onAfterRead(data || file));
             }

+ 2 - 0
i18n/zh-CN.js

@@ -19,6 +19,7 @@ const button = {
   all: '全部',
   resignation: '在职',
   leaveOffice: '离职',
+  login: '登录',
   flgCanWxLogin: '手机登录',
   flgCanPcLogin: '电脑登录',
   userAuthorize:'用户授权',
@@ -215,6 +216,7 @@ const home = {
   transactionAmount: '成交额',
   collectionAmount: '收款额',
   registerCommany: '注册商户',
+  updateCommanyOwner: '权限转让',
   settingCommany: '商户设置',
   standardVersion: '免费版',
   flagshipVersion: '旗舰版',

+ 32 - 2
mixins/index.js

@@ -87,7 +87,7 @@ module.exports = {
     // 页面头部高度
     stickyHeight: 0,
     // 页面的员工和部门
-    orgStaffInfo:null
+    orgStaffInfo:null,
   },
   /**
    * @desc : 获取路由信息,供data中的对象使用
@@ -110,6 +110,36 @@ module.exports = {
     }
   },
   /**
+   * @desc : 点击上传附件
+   * @author : 周兴
+   * @date : 2024/6/24
+   */
+  clickAttach(e){
+    this.setData({
+      loading:true,
+    })
+  },
+  /**
+   * @desc : 上传附件成功
+   * @author : 周兴
+   * @date : 2024/6/24
+   */
+  uploadSucess(e){
+    this.setData({
+      loading:false,
+    })
+  },
+  /**
+   * @desc : 上传附件取消
+   * @author : 周兴
+   * @date : 2024/6/24
+   */
+  uploadError(e){
+    this.setData({
+      loading:false,
+    })
+  },
+  /**
    * @desc : 查询共通方法
    * @author : 周兴
    * @date : 2024/1/19
@@ -1132,7 +1162,7 @@ module.exports = {
    * @date : 2024/1/22
    */
   onShow() {
-    console.log('fffd',this.data.refreshByAdd);
+    console.log('t1');
     // 新建后关闭新建后刷新页面
     if (this.data.refreshByAdd) {
       this.searchData();

+ 9 - 6
package-base-select/pages/select-collection_confirm/select-collection_confirm.js

@@ -146,10 +146,10 @@ Page({
       utils.showToast(msgError);
       return false
     }
-    if (sumAmount != form.sumAmount) {
-      utils.showToast('输入收款金额不正确');
-      return false
-    }
+    // if (sumAmount != form.sumAmount) {
+    //   utils.showToast('输入收款金额不正确');
+    //   return false
+    // }
 
     return true
   },
@@ -843,7 +843,9 @@ Page({
    */
   changeSalesPriceField(e) {
     let form = this.data.form
-    form.sumAmount = e.detail.value;
+    let formData = JSON.parse(this.data.formData)||{}
+    form.sumAmount = Number(e.detail.value ? e.detail.value : 0);
+    formData.sumAmount =  Number(e.detail.value ? e.detail.value : 0);
     let tableData = this.data.tableData
     if (tableData && tableData.length > 0) {
       tableData.forEach(res => {
@@ -854,7 +856,8 @@ Page({
     }
     this.setData({
       tableData: tableData,
-      form
+      form :form,
+      formData:JSON.stringify(formData),
     })
   },
 

+ 1 - 1
package-base-select/pages/select-goods/select-goods.js

@@ -1260,7 +1260,7 @@ Page({
     let sumPrice = Number(0)
     let sumQty = Number(0)
     choosedGoodsList.forEach(res => {
-      if (this.data.billType == 'saleOut'||this.data.billType == 'inventory') {
+      if (this.data.billType == 'saleOut'||this.data.billType == 'inventory'||this.data.billType == 'saleOutReturn') {
         sumPrice += (Number(res.priceOut) * Number(res.itemQty))
       } else if (this.data.billType == 'sale') {
         sumPrice += (Number(res.priceSale) * Number(res.itemQty))

+ 1 - 1
package-base-select/pages/select-goods/select-goods.wxml

@@ -224,7 +224,7 @@
               <view style="display: flex; ">
                 <dk-text value="{{item.skuName}}"></dk-text>
               </view>
-              <view style="display: flex;margin-top:20rpx;" wx:if="{{billType == 'pur'||billType == 'purInto'||billType == 'inventory'}}">
+              <view style="display: flex;margin-top:20rpx;" wx:if="{{billType == 'pur'||billType == 'purInto'||billType == 'inventory'||billType == 'saleOutReturn'}}">
                 <!-- 标准价/标价-->
                 <view style="width: 85%;">
                   <dk-cell height="46rpx" spaceWidth="1rpx" left="0" fontSize="13" contentColor="#CAA977" fontWeight="bold" title=" " content="{{item.sumPrice?item.sumPrice:0}}"></dk-cell>

+ 75 - 31
package-base-select/pages/select-source-sale-order/select-source-sale-order.js

@@ -1,7 +1,7 @@
 const Constants = require('@/utils/Constants.js');
 const app = getApp()
 const mixins = require('@/mixins/index.js')
-
+const util = require('@/utils/util.js')
 Page({
   mixins: [mixins],
   /**
@@ -10,13 +10,13 @@ Page({
   data: {
     returnTotalAmount: 0,
     allChecked: false,
-    tableDataItem:{},
+    tableDataItem: {},
     // 路由
     routeObjName: 'saleOutBound',
     orderService: app.globalData['orderService'],
     tableData: [],
     choooseInboundItemList: [],
-    buttonSaveList: [{ code: 'add', title: mixins.$t('confirm'), width: '120rpx',  }],
+    buttonSaveList: [{ code: 'add', title: mixins.$t('confirm'), width: '120rpx', }],
     contentSaveList: [{ code: 'need', title: '合计金额', type: 'str' }, { code: 'amount', content: 0, type: 'number' }],
   },
   /**
@@ -33,16 +33,16 @@ Page({
    * @author : 王英杰
    */
   handleSearchData(tableData) {
-   
-    tableData.forEach(item=>{
-      item.outingQty = Number(item.itemQty  - item.outQty) 
+
+    tableData.forEach(item => {
+      item.outingQty = Number(item.itemQty - item.outQty)
     })
     this.setData({
-      tableData:tableData
+      tableData: tableData
     })
   },
 
- 
+
   /**
  * @desc : 设置查询参数
  * @date : 2024/2/1 15:49
@@ -50,7 +50,7 @@ Page({
  */
   setSearchParams(params) {
     //销售状态
-    params.outStatusList = [Constants.outStatus.unOutBound,Constants.outStatus.outBounding]
+    params.outStatusList = [Constants.outStatus.unOutBound, Constants.outStatus.outBounding]
     params.cusId = this.data.item.id
     return params
   },
@@ -63,12 +63,12 @@ Page({
   onListItemChange(e) {
     let tableData = this.data.tableData
     let index = e.currentTarget.dataset.index
-    tableData.forEach(res => {
-      res.checked = false
-      res.orderItemResponseList.forEach(item => {
-        item.checked = false
-      })
-    })
+    // tableData.forEach(res => {
+    //   res.checked = false
+    //   res.orderItemResponseList.forEach(item => {
+    //     item.checked = false
+    //   })
+    // })
     tableData[index].checked = e.detail
     let orderItemResponseList = tableData[index].orderItemResponseList
     if (orderItemResponseList && orderItemResponseList.length > 0) {
@@ -76,7 +76,7 @@ Page({
         res.checked = tableData[index].checked
       })
     }
-    if(e.detail){
+    if (e.detail) {
       this.setData({
         tableDataItem: tableData[index]
       })
@@ -96,20 +96,18 @@ Page({
     let index = e.currentTarget.dataset.index
     let index_ = e.currentTarget.dataset.index_
     console.log(index, index_)
-    tableData.forEach(res => {
-      res.checked = false
-      // res.orderItemResponseList.forEach(item=>{
-      //   item.checked = false
-      // })
-    })
-    // tableData.forEach(item => {
-    //   item.checked = false
-    //   item.orderItemResponseList.forEach(it => {
-    //     it.checked = false
-    //   })
-    // })
+
     tableData[index].orderItemResponseList[index_].checked = e.detail
-    if(e.detail){
+    let itemlist = tableData[index].orderItemResponseList
+    let allChecked = true
+    itemlist.forEach(it => {
+      if (!it.checked) {
+        allChecked = false
+      }
+    })
+    // 判断当前订单是否全部勾选
+    tableData[index].checked = allChecked
+    if (e.detail) {
       this.setData({
         tableDataItem: tableData[index]
       })
@@ -161,11 +159,13 @@ Page({
           if (item.checked) {
             item.priceOut = item.priceSale
             // 订单的数量-出库中的-已出库的-退货的
-            item.outingQty = Number(item.itemQty  - item.outQty-  item.outingQty-item.returnQty) 
+            item.outingQty = Number(item.itemQty - item.outQty - item.outingQty + item.returnQty)
             item.outingAmt = item.priceOut * item.outingQty
             //设置最大值
             item['outingQty_min'] = 1
             item['outingQty_max'] = item.outingQty
+            item['contactName'] = res.contactName
+            item['contactPhone'] = res.contactPhone
             delete item['priceLimited']
             delete item['pricePurchase']
             delete item['priceWholesale']
@@ -193,9 +193,13 @@ Page({
   * @author : 于继渤
   */
   toAdd() {
+    //  判断是否同一个客户同意地址
+    if (!this.validData()) {
+      return
+    }
     let itemList = this.data.choooseInboundItemList
     const eventChannel = this.getOpenerEventChannel();
-    eventChannel.emit('bindData', { itemList: itemList, fromNo: itemList[0].orderNo , item:this.data.tableDataItem, fromId: itemList[0].orderId })
+    eventChannel.emit('bindData', { itemList: itemList, item: this.data.tableDataItem, })
     wx.navigateBack({
       data: 1
     })
@@ -203,6 +207,46 @@ Page({
   },
 
   /**
+  * @desc :   判断是否同一个客户同意地址
+  * @date : 2024/2/1 15:49
+  * @author : 于继渤
+  */
+  validData() {
+    let flg = false
+    let tableData = this.data.tableData
+    let cusId = ""
+    let addressFull = ""
+    //过滤出已选数据
+    for (let index = 0; index < tableData.length; index++) {
+      const res = tableData[index];
+      if (res.orderItemResponseList && res.orderItemResponseList.length > 0) {
+        for (let indext = 0; indext < res.orderItemResponseList.length; indext++) {
+          const element = res.orderItemResponseList[indext];
+          if (element.checked) {
+            flg = true
+            console.log(cusId, res.cusId, addressFull, res.addressFull);
+            if ((cusId != '' && cusId != res.cusId)
+              || (addressFull != '' && addressFull != res.addressFull)) {
+              util.showToast('不同客户,不同地址订单不能同时出库');
+              return false
+            }
+            cusId = res.cusId
+            addressFull = res.addressFull
+          }
+        }
+
+      }
+    }
+
+    if (!flg) {
+      util.showToast('请选择源单');
+      return false
+    }
+
+    return true
+  },
+
+  /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {

+ 1 - 1
package-base-select/pages/select-source-sale-order/select-source-sale-order.wxml

@@ -49,7 +49,7 @@
                 <view style="width: 50%;">
                   <dk-cell contentFontSize="15" height="25rpx" fontWeight="bold" left="0rpx" contentColor="#FF7B1A" title="" content="{{ item_.priceSale ? item_.priceSale : 0}}"></dk-cell>
                 </view>
-                <view style="width: 50%;font-size:24rpx;color: #1B365D;line-height: 34rpx;font-weight: bold;text-align: right;">{{ ' x ' + (item_.itemQty ? item_.itemQty-item_.outingQty-item_.outQty-item_.returnQty : 0)}}</view>
+                <view style="width: 50%;font-size:24rpx;color: #1B365D;line-height: 34rpx;font-weight: bold;text-align: right;">{{ ' x ' + (item_.itemQty ? item_.itemQty-item_.outingQty-item_.outQty + item_.returnQty : 0)}}</view>
               </view>
             </view>
           </view>

+ 1 - 1
package-base-select/pages/select-source-sale-out-order/select-source-sale-out-order.wxml

@@ -49,7 +49,7 @@
                 <view style="width: 50%;">
                   <dk-cell contentFontSize="15" height="25rpx" fontWeight="bold" left="0rpx" contentColor="#FF7B1A" title="" content="{{ item_.priceOut ? item_.priceOut : 0}}"></dk-cell>
                 </view>
-                <view style="width: 50%;font-size:24rpx;color: #1B365D;line-height: 34rpx;font-weight: bold;text-align: right;">{{ ' x ' + (item_.outQty ? item_.outQty : 0)}}</view>
+                <view style="width: 50%;font-size:24rpx;color: #1B365D;line-height: 34rpx;font-weight: bold;text-align: right;">{{ ' x ' + (item_.outQty ? item_.outQty-item_.returnQty : 0)}}</view>
               </view>
             </view>
           </view>

+ 3 - 3
package-basic-data/pages/activity/activity.js

@@ -300,7 +300,7 @@ Page({
         } else {
             // 判断数量是否超出续约授权
             if (currentUserCount.wxNum > summaryInfo.wxMaxNum || currentUserCount.webNum > summaryInfo.webMaxNum) {
-                let staffInfo = [{ wxMaxNum: this.data.wxMaxNum, webMaxNum: this.data.webMaxNum, title: '当前授权', wxTitle: '手机授权', webTitle: '电脑授权', code: 'current' }, { wxMaxNum: summaryInfo.wxMaxNum, webMaxNum: summaryInfo.webMaxNum, title: '续费授权', wxTitle: '手机授权', webTitle: '电脑授权', code: 'renew' }]
+                let staffInfo = [{ wxMaxNum: this.data.wxMaxNum, webMaxNum: this.data.webMaxNum, title: '当前授权', wxTitle: '手机授权', webTitle: (app.globalData.company.gradeCode == Constants.gradeCode.STD) ?'':'电脑授权', code: 'current',userTitle: '当前用户'  }, { wxMaxNum: summaryInfo.wxMaxNum, webMaxNum: summaryInfo.webMaxNum, title: '续费授权', wxTitle: '手机授权', webTitle: '电脑授权', code: 'renew' }]
                 this.save({ saveFlag: false, url: '/package-basic-data/pages/activity/detail/detail?staffInfo=' + JSON.stringify(staffInfo) });
             } else {
                 this.save({});
@@ -451,9 +451,9 @@ Page({
         }
         // 标准版
         if (this.data.gradeCode == Constants.gradeCode.STD) {
-            params.activityTypeList = [Constants.kindCode.activityGrade, Constants.kindCode.activityVip];
-        } else {
             params.activityTypeList = [Constants.kindCode.activityGrade];
+        } else {
+            params.activityTypeList = [Constants.kindCode.activityGrade, Constants.kindCode.activityVip];
         }
         let service = app.globalData['activityService']
         this.excute(service, service.selectActivityItems, params).then(res => {

+ 1 - 1
package-basic-data/pages/activity/activity.wxml

@@ -47,7 +47,7 @@
 				<!-- 授权-->
 				<view class="card-desc-std">
 					<view>{{$t['userAuthorize']}}</view>
-					<van-stepper integer="{{true}}" value="{{ summaryInfo.wxMaxNum}}" min="0" bind:change="changeUserSTD" />
+					<van-stepper integer="{{true}}" value="{{ summaryInfo.wxMaxNum}}" min="1" bind:change="changeUserSTD" />
 				</view>
 			</view>
 

+ 2 - 2
package-basic-data/pages/customer-list/detail/detail.wxml

@@ -548,11 +548,11 @@
               <view style="display: flex;justify-content:space-between;">
                 <view style="display: flex; width: 50%;">
                   <view class="table-content-row-font">
-                    <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="收款类型">
+                    <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="账户名称">
                     </dk-text>
                   </view>
                   <view class="table-content-class">
-                    {{item.rpTypeName}}
+                    {{item.macNames}}
                   </view>
 
                 </view>

+ 94 - 2
package-basic-data/pages/register/company-setting/company-setting.js

@@ -30,6 +30,11 @@ Page({
                 { code: 'feedback', type: 'textarea', readonly: 'true', title: mixins.$t('feedback') },
             ],
         },
+        buttonFootList: [{
+          code: 'close',
+          title: mixins.$t('close')
+        }],
+        companyService: app.globalData['companyService'],
     },
 
     /**
@@ -54,6 +59,95 @@ Page({
     },
 
     /**
+     * @desc : 页面初始信息加载
+     * @param {*} e 
+     * @date : 2024/06/21 09:23
+     * @author : 刘尧
+     */
+    loadInit(e){
+      if(app.globalData.user.flgInit){
+        const buttonFootList = [{
+          code: 'updateCommanyOwner',
+          title: mixins.$t('updateCommanyOwner')
+      }]
+        this.setData({
+          buttonFootList: buttonFootList
+        })
+      }
+    },
+    /**
+    * @desc : 底部按钮回调
+    * @date : 2024/6/21 13:35
+    * @author : 刘尧
+     */
+    openFormEdit(e){
+      switch(e.detail.name){
+        case "updateCommanyOwner":
+          const contentObj = this.data.contentObj
+          const index = contentObj.main.findIndex(res => res.code === "cpManager")
+          contentObj.main[index].type = 'choose'
+          contentObj.main[index].urlKey = 'updateCommanyOwner'
+          contentObj.main[index].name = contentObj.main[index].code
+          contentObj.main[index].required = true
+          contentObj.main[index].readonly = false
+          this.setData({
+            contentObj: contentObj
+          })
+          break;
+        case "save":
+          this.save(e)
+          break;
+        case "close":
+          this.close(e)
+          break;
+      }
+    },
+      /**
+   * @desc : 参数设置
+   * @author : 刘尧
+   * @date : 2024/6/18 17:12
+   */
+  setParams(params){
+    params = JSON.parse(this.data.formData)
+    params.svcIp = app.globalData.company.svcIp
+    params.svcPort = app.globalData.company.svcPort
+    return params
+  },
+  /**
+   * @desc : 数据保存
+   * @author : 刘尧
+   * @date : 2024/6/18 17:12
+   */
+    saveData(params){
+      return this.excute(this.data.companyService, this.data.companyService.transferHead, params);
+    },
+    /**
+    * @desc : 选择用户回调
+    * @date : 2024/6/21 14:03
+    * @author : 刘尧
+     */
+    chooseData(e){
+      const data = e.detail.data.data
+      const formData = JSON.parse(this.data.formData)
+      formData.owner = data.id
+      formData.cpManager = data.name
+      formData.cpPhone = data.staffPhone
+      const contentObj = this.data.contentObj
+      const index = contentObj.main.findIndex(res => res.code === "cpManager")
+      contentObj.main[index].type = 'str'
+      contentObj.main[index].urlKey = ''
+      contentObj.main[index].required = true
+      contentObj.main[index].readonly = true
+      const buttonList = [{
+        code: 'save',
+        title: mixins.$t('save')}]
+      this.setData({
+        contentObj: contentObj,
+        formData: JSON.stringify(formData),
+        buttonFootList: buttonList
+      })
+    },
+    /**
     * @desc : 加载数据
     * @date : 2024/2/1 15:49
     * @author : 姜永辉
@@ -63,14 +157,12 @@ Page({
             data: 1
         })
     },
-
     /**
      * @desc : 给表单赋值
      * @date : 2024/2/1 15:49
      * @author : 姜永辉
      */
     setValuesByEdit(data) {
-        console.log('setValuesByEdit');
         let contentObj = this.data.contentObj
         this.setData({
             formData: JSON.stringify(data)

+ 5 - 2
package-basic-data/pages/register/company-setting/company-setting.wxml

@@ -17,7 +17,10 @@
 </dk-form>
 
 <!--  保存 -->
-<view class="bottom-class">
+<!-- <view class="bottom-class">
   <van-button custom-class="save-button-class" disabled="{{loading}}" loading="{{loading}}" bind:click="close" type="default">{{$t['close']}}
   </van-button>
-</view>
+</view> -->
+
+<!-- 底部按钮 -->
+<dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonFootList}}" contentList="{{contentnFootList}}" bind:open="openFormEdit"></dk-save-button>

+ 34 - 19
package-basic-data/pages/staff/staff.js

@@ -34,8 +34,9 @@ Page({
     btnFormData: null,
     active: 0,
     tagList: [
-      { title: mixins.$t('all') },
+      // { title: mixins.$t('all') },
       { title: mixins.$t('resignation') },
+      { title: mixins.$t('login') },
       { title: mixins.$t('leaveOffice') }
     ],
     // 列表区(内容)
@@ -78,22 +79,27 @@ Page({
  * @author : 姜永辉
  */
   toPoint(e) {
-    // let item = e.detail.item
-    // if (app.globalData.company.gradeCode == Constants.gradeCode.STD) {
-    //   this.setData({
-    //     buttonList: [
-    //       { name: 'leaveOffice', title: mixins.$t('leaveOffice') },
-    //     ],
-    //   })
-    // } else {
-    //   this.setData({
-    //     buttonList: [
-    //       { name: 'staffRight', title: mixins.$t('functionalPermissions') },
-    //       { name: 'staffPurview', title: mixins.$t('purviewPermissions') },
-    //       { name: 'leaveOffice', title: mixins.$t('leaveOffice') },
-    //     ],
-    //   })
-    // }
+    const userInfo = e.detail.item
+    let buttonList = []
+    if(userInfo.flgInit){
+      buttonList = [
+        { name: 'staffRight', title: mixins.$t('functionalPermissions') },
+        { name: 'staffPurview', title: mixins.$t('purviewPermissions') }
+      ]
+    }else if(!userInfo.flgCanLogin){
+        buttonList = [
+          { name: 'leaveOffice', title: mixins.$t('leaveOffice') },
+        ]
+    }else{
+      buttonList = [
+        { name: 'staffRight', title: mixins.$t('functionalPermissions') },
+        { name: 'staffPurview', title: mixins.$t('purviewPermissions') },
+        { name: 'leaveOffice', title: mixins.$t('leaveOffice') },
+      ]
+    }
+    this.setData({
+      buttonList: buttonList
+    })
   },
 
   /**
@@ -102,8 +108,17 @@ Page({
   * @author : 姜永辉
   */
   setSearchParams(params) {
-    // 在职离职状态
-    params.hrStatus = (this.data.active == 0 ? null : this.data.active)
+    // 在职离职状态flg_can_login
+    // 2024.6.20 刘尧 更新切换页面功能
+    if(this.data.active == 0){
+      params.hrStatus = 1
+    }else if(this.data.active == 1){
+      params.hrStatus = 1
+      params.flgCanLogin = true
+    }else if(this.data.active == 2){
+      params.hrStatus = 2
+    }
+    // params.hrStatus = (this.data.active == 0 ? null : this.data.active)
     return params
   },
 

+ 6 - 18
package-inventory/pages/cost-check/cost-check.js

@@ -35,8 +35,8 @@ Page({
     // 查询条件
     searchContent: [{
       code: 'intoDate',
-      title: mixins.$t('pastThirthtyDays'),//近30天',
-      defaultValue: 5,
+      title: mixins.$t('currentMonth'),//本月',
+      defaultValue: 2,
       searchType: Constants.searchType.date
     },
     {
@@ -253,22 +253,10 @@ Page({
     * @author : 于继渤
     */
   setSearchParams(params) {
-    let formData = JSON.parse(this.data.formData)
-
-    // if (formData.createTime) {
-    //   delete formData['createTime']
-    // }
-    // if (formData.enterWhDate) {
-    //   delete formData['enterWhDate']
-    // }
-    // params.intoTypeName = formData.intoType
-    // params.supName = formData.supName
-    // params.intoDateStart = formData.enterWhDateStart ? formData.enterWhDateStart : params.intoDateStart
-    // params.intoDateEnd = formData.enterWhDateEnd ? formData.enterWhDateEnd : params.intoDateEnd
-    // params.createTimeStart = formData.createTimeStart
-    // params.createTimeEnd = formData.createTimeEnd
-    // params.staffId = formData.staffId
-    // params.orgId = formData.orgId
+    if(params.intoDateStart.indexOf('/') != -1){
+      params.intoDateStart =  params.intoDateStart.replace(/\//g, '-')
+      params.intoDateEnd =  params.intoDateEnd.replace(/\//g, '-')
+    }
     return params;
   },
   /**

+ 99 - 96
package-inventory/pages/ivt-sum-report/detail/detail.wxml

@@ -26,116 +26,119 @@
   </view>
 </view> -->
 
+<view class="card-content">
+  <view class="card-class">
+    <view style="display: flex;">
+      <!-- 商品信息 -->
+      <view style="width: 100%;">
+        <van-card data-item="{{item}}" data-index="{{index_}}">
+          <view slot="thumb">
+            <van-image radius="5px" width="80" height="80" src="{{item.imagesUrl }}" />
+          </view>
+          <view slot="title" style="display: flex;">
+            <!-- 标题 -->
+            <view>
+              <dk-title titleTag="{{item.brandName}}" title="{{item.skuModel}}"></dk-title>
+            </view>
+          </view>
+          <!-- 描述 -->
+          <view slot="desc">
+            <view style="display:flex;width: 100%;">
+              <dk-text value="{{item.skuName}}"></dk-text>
+            </view>
+            <view style="display:flex;width: 100%;">
+              <dk-text value="{{item.nonStdCode}}"></dk-text>
+            </view>
+          </view>
+          <view slot="desc" style="display: flex;justify-content: space-between;align-items: center;margin-top:10rpx;">
+            <!-- 仓库-->
+            <view>
+              <dk-text fontSize="28rpx" value="{{item.skuSpec}}"></dk-text>
+            </view>
+            <view>
+              <dk-text fontSize="28rpx" value="{{item.whName}}"></dk-text>
+            </view>
+          </view>
 
-<view style="display: flex;">
-  <!-- 商品信息 -->
-  <view style="width: 100%;">
-    <van-card data-item="{{item}}" data-index="{{index_}}">
-      <view slot="thumb">
-        <van-image radius="5px" width="80" height="80" src="{{item.imagesUrl }}" />
+        </van-card>
       </view>
-      <view slot="title" style="display: flex;">
-        <!-- 标题 -->
-        <view>
-          <dk-title  titleTag="{{item.brandName}}" title="{{item.skuModel}}"></dk-title>
-        </view>
-      </view>
-      <!-- 描述 -->
-      <view slot="desc">
-        <view style="display:flex;width: 100%;">
-          <dk-text value="{{item.skuName}}"></dk-text>
+    </view>
+
+    <!-- 2024.06.20 刘尧 明细样式更新 -->
+    <view class="info-card-content">
+      <view class="card-info">
+        <view style="background-color:#F4F9FF;width:50%;padding:10rpx;border-radius: 16rpx;">
+          <view style="font-size:15px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["openingInventorytitle"]}}</view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.openingIvtQty}}"></dk-cell>
+          </view>
+          <view class="item-info" wx:if="{{item.packageBoxEndingIvt}}">
+            <view style="font-size:13px;text-align: center;color:#606EB2;white-space:nowrap;">包装</view>
+            <view style="font-size:13px;text-align: center;white-space:nowrap;">{{item.packageBoxOpening}}</view>
+          </view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center;color:#606EB2">金额</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.openingIvtAmt}}"></dk-cell>
+          </view>
         </view>
-        <view style="display:flex;width: 100%;">
-          <dk-text value="{{item.nonStdCode}}"></dk-text>
+        <view style="background-color:#F4F9FF;width: 50%;padding:10rpx;border-radius: 16rpx;margin-left: 20rpx;">
+          <view style="font-size:15px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["inventory"]}}</view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.currentIntoQty}}"></dk-cell>
+          </view>
+          <view class="item-info" wx:if="{{item.packageBoxEndingIvt}}">
+            <view style="font-size:13px;text-align: center;color:#606EB2;white-space:nowrap;">包装</view>
+            <view style="font-size:13px;text-align: center;white-space:nowrap;">{{item.packageBoxCurrent}}</view>
+          </view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center;color:#606EB2">金额</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.currentIntoAmt}}"></dk-cell>
+          </view>
         </view>
       </view>
-      <view slot="desc" style="display: flex;justify-content: space-between;align-items: center;margin-top:10rpx;">
-        <!-- 仓库-->
-        <view>
-          <dk-text fontSize="28rpx" value="{{item.skuSpec}}"></dk-text>
+
+      <view class="card-info" style="margin-top: 15rpx;">
+        <view style="background-color:#F4F9FF;width:50%;padding:10rpx;border-radius: 16rpx;">
+          <view style="font-size:15px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["out"]}}</view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.currentOutQty}}"></dk-cell>
+          </view>
+          <view class="item-info" wx:if="{{item.packageBoxEndingIvt}}">
+            <view style="font-size:13px;text-align: center;color:#606EB2;white-space:nowrap;">包装</view>
+            <view style="font-size:13px;text-align: center;white-space:nowrap;">{{item.packageBoxCurrentOut}}</view>
+          </view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center;color:#606EB2">金额</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.currentOutAmt}}"></dk-cell>
+          </view>
         </view>
-        <view>
-          <dk-text fontSize="28rpx" value="{{item.whName}}"></dk-text>
+        <view style="background-color:#F4F9FF;width: 50%;padding:10rpx;border-radius: 16rpx;margin-left: 20rpx;">
+          <view style="font-size:15px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["last"]}}</view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.endingIvtQty}}"></dk-cell>
+          </view>
+          <view class="item-info" wx:if="{{item.packageBoxEndingIvt}}">
+            <view style="font-size:13px;text-align: center;color:#606EB2;white-space:nowrap;">包装</view>
+            <view style="font-size:12px;text-align: center;white-space:nowrap;">{{item.packageBoxEndingIvt}}</view>
+          </view>
+          <view class="item-info">
+            <view style="font-size:13px;text-align: center;color:#606EB2">金额</view>
+            <dk-cell left="0rpx" center="center" fontSize="12" contentFontSize="13" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.endingIvtAmt}}"></dk-cell>
+          </view>
         </view>
       </view>
-
-    </van-card>
-  </view>
-</view>
-
-<!-- 2024.06.20 刘尧 Vip明细样式更新 -->
-<view class="info-card-content">
-  <view class="card-info">
-    <view style="background-color:#F4F9FF;width:50%;padding:10rpx;border-radius: 16rpx;">
-      <view style="font-size:18px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["openingInventorytitle"]}}</view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.openingIvtQty}}"></dk-cell>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">包装</view>
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx;">{{item.packageBoxOpening}}</view>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">金额</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.openingIvtAmt}}"></dk-cell>
-      </view>
-    </view>
-    <view style="background-color:#F4F9FF;width: 50%;padding:10rpx;border-radius: 16rpx;margin-left: 20rpx;">
-      <view style="font-size:18px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["inventory"]}}</view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.currentIntoQty}}"></dk-cell>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">包装</view>
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx;">{{item.packageBoxCurrent}}</view>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">金额</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.currentIntoAmt}}"></dk-cell>
-      </view>
     </view>
   </view>
 
-  <view class="card-info" style="margin-top: 15rpx;">
-    <view style="background-color:#F4F9FF;width:50%;padding:10rpx;border-radius: 16rpx;">
-      <view style="font-size:18px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["out"]}}</view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.currentOutQty}}"></dk-cell>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">包装</view>
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx;">{{item.packageBoxCurrentOut}}</view>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">金额</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.currentOutAmt}}"></dk-cell>
-      </view>
-    </view>
-    <view style="background-color:#F4F9FF;width: 50%;padding:10rpx;border-radius: 16rpx;margin-left: 20rpx;">
-      <view style="font-size:18px;text-align: center;margin-top: 10rpx;font-weight: bold; color:#606EB2">{{$t["last"]}}</view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center; color:#606EB2">数量</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#000000" spaceWidth="0" contentFontWeight="700" amount="{{false}}" content="{{item.endingIvtQty}}"></dk-cell>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">包装</view>
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx;">{{item.packageBoxEndingIvt}}</view>
-      </view>
-      <view class="item-info">
-        <view style="font-size:13px;text-align: center;margin-top: 10rpx; color:#606EB2">金额</view>
-        <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{item.endingIvtAmt}}"></dk-cell>
-      </view>
-    </view>
-  </view>
 </view>
-
 <dk-tabs active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
 
 
-<view wx:for="{{tableData}}" data-item="{{item_}}"  wx:for-item="item_" wx:key="index" class="main-class">
+<view wx:for="{{tableData}}" data-item="{{item_}}" wx:for-item="item_" wx:key="index" class="main-class">
   <!-- 上半部分 -->
   <view class="main-foot" style="border-radius: 15rpx;background-size: 100% 172rpx;">
     <view class="table-content" data-item="{{item_}}">
@@ -144,7 +147,7 @@
         <view style="display: flex;padding-top: 10rpx;">
           <view style="font-size: 30rpx;width: 55%;color:#1B365D;">{{active==0?item_.intoNo:item_.outNo}}</view>
           <view style="width: 45%;font-size: 24rpx;color:#95A8CB;display: flex;justify-content: center;align-items: center;text-align: center;">
-            <view>{{active==0?item_.intoTypeName:item_.outTypeName}}   {{active==0?item_.intoDate:item_.outDate }}</view>
+            <view>{{active==0?item_.intoTypeName:item_.outTypeName}} {{active==0?item_.intoDate:item_.outDate }}</view>
           </view>
         </view>
       </view>

+ 18 - 0
package-inventory/pages/ivt-sum-report/detail/detail.wxss

@@ -130,6 +130,7 @@ page {
   align-items: center;
   justify-content: space-between;
   padding: 4px;
+  margin-top: -10px;
 }
 .item-info .label{
   color: #606EB2;
@@ -138,4 +139,21 @@ page {
 }
 .card-info{
   display: flex;
+}
+.item-info .van-cell{
+  line-height: 0px !important;
+}
+
+.card-content{
+  display: flex;
+  justify-content: center;
+  align-content: center;
+}
+
+.card-class{
+  width: 100%;
+  margin: 20rpx;
+  border-radius: 15rpx;
+  box-shadow: 0px 10px 20px 0px #0000000D;
+  box-shadow: 0px -6px 20px 0px #0000000D;
 }

+ 38 - 10
package-sales/pages/customer-collection/add/add.js

@@ -26,6 +26,21 @@ Page({
         { code: 'cusName', type: 'selectIcon', urlKey: 'selectCustomers', required: true, title: mixins.$t('customerName'), },
         { code: 'cusPhone', type: 'phone', title: mixins.$t('cusPhone'), required: true, },
         { code: 'addressFull', type: 'address', title: mixins.$t('adddressFull'), required: false, readonly: true, },
+        {
+          code: 'staffId',
+          name: 'staffName',
+          title: mixins.$t('staffId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseStaff'
+        }, {
+          code: 'orgId',
+          name: 'orgName',
+          title: mixins.$t('orgId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseOrg'
+        },
         { code: 'sumAmtRec', type: 'number', title: mixins.$t("amountCollected"), readonly: false },
         { code: 'remarks', type: 'textarea', title: mixins.$t("remarks"), readonly: false },
         { code: 'file', type: 'uploader', title: mixins.$t("uploader") }
@@ -101,6 +116,7 @@ Page({
       // 是否弹出询问框
       Dialog.confirm({
         message: '请输入金额',
+        showCancelButton: false,
       }).then(() => {
 
       }).catch(() => {
@@ -115,7 +131,7 @@ Page({
       url: this.data.route.selectCollectionConfirm.url,
       events: {
         // 回调后
-        refresh: function (data) { 
+        refresh: function (data) {
           //销售订单跳转
           if (_this.data.formType == Constants.formMode.add) {
             _this.setData({
@@ -124,12 +140,12 @@ Page({
             const eventChannel = _this.getOpenerEventChannel();
             eventChannel.emit('refresh', {
               id: 1
-            }) 
+            })
             // 保存成功后 回调
             wx.navigateBack({
               data: 1
             })
-          } else { 
+          } else {
             let formData = {}
             formData['staff'] = {
               text: app.globalData.user.staffName,
@@ -167,7 +183,7 @@ Page({
 
         //设置参数
         let item = _this.setSaveData()
-        res.eventChannel.emit('params', { item: item, formType: 3,formReturnMode:_this.data.formReturnMode })
+        res.eventChannel.emit('params', { item: item, formType: 3, formReturnMode: _this.data.formReturnMode })
       }
     })
   },
@@ -193,10 +209,10 @@ Page({
     console.log('formData', formData.sumAmtRec)
 
     if (this.data.formMode !== Constants.formMode.other) {
-      param.orgId = app.globalData.user.orgId
-      param.orgName = app.globalData.user.orgName
-      param.staffId = app.globalData.user.staffId
-      param.staffName = app.globalData.user.staffName
+      param.orgId = formData.orgId ? formData.orgId : app.globalData.user.orgId
+      param.orgName = formData.orgName ? formData.orgName : app.globalData.user.orgName
+      param.staffId = formData.staffId ? formData.staffId : app.globalData.user.staffId
+      param.staffName = formData.staffName ? formData.staffName : app.globalData.user.staffName
       param.objectId = formData.cusId
     } else {
       //编辑退款
@@ -225,6 +241,16 @@ Page({
     let item = e.detail.data
     let code = e.detail.code
     let formData = JSON.parse(this.data.formData)
+    if (code == "staffId") { //员工
+      formData.staffId = item.data.id
+      formData.staffName = item.data.name
+      formData.orgId = item.data.orgId
+      formData.orgName = item.data.orgName
+    }
+    if (code == "orgId") { //部门
+      formData.orgId = item.data.id
+      formData.orgName = item.data.name
+    }
     //设置客户信息
     if (code == 'cusName') {
       formData.cusCode = item.cusCode
@@ -347,7 +373,9 @@ Page({
       text: app.globalData.user.orgName,
       value: [app.globalData.user.orgId]
     }
-    formData.orgId = app.globalData.user.orgId
+    formData.staffName = app.globalData.user.staffName,
+      formData.orgName = app.globalData.user.orgName,
+      formData.orgId = app.globalData.user.orgId
     formData.orgList = [
       {
         orgId: app.globalData.user.orgId,
@@ -405,5 +433,5 @@ Page({
 
   },
 
- 
+
 })

+ 2 - 3
package-sales/pages/customer-collection/add/add.wxml

@@ -1,10 +1,9 @@
-
 <van-dialog id="van-dialog" />
-<loading wx:if="{{loading}}" ></loading>
+<loading wx:if="{{loading}}"></loading>
 <!-- 添加模版 -->
 <!-- <import src="/utils/template.wxml" />
 <template is="myTemplate" /> -->
-<dk-form-bill type="sale" id="dk-form-bill" routeObjName="{{routeObjName}}" cardList="{{cardList}}"   titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods" bind:editItems="editItems" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:customersChoose="customersChoose" popType="sale" staff="staff" org="org"  bind:changeNumberBlur="changeNumberBlur">
+<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" saleStaffAndOrgFlag="{{false}}" bind:chooseData="chooseData" bind:setGoods="setGoods" bind:editItems="editItems" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:customersChoose="customersChoose" popType="sale" staff="staff" org="org" bind:changeNumberBlur="changeNumberBlur">
 </dk-form-bill>
 
 <dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonSaveList}}" contentList="{{contentSaveList}}" bind:open="open"></dk-save-button>

+ 3 - 2
package-sales/pages/customer-collection/refund/refund.js

@@ -27,7 +27,7 @@ Page({
         { code: 'accDate', name: 'accDate', type: 'date', required: true, },
         { code: 'staffId', name: 'staffName', required: true, title: mixins.$t("staffId"), type: 'choose', urlKey: 'chooseStaff' },
         { code: 'orgId', name: 'orgName', required: true, type: 'choose', urlKey: 'chooseOrg' },
-        { code: 'sumAmtRec', type: 'number', negative: true,min:Constants.MIN_VALUE, maxFlag: false, title: mixins.$t("thisRefund"), readonly: false },
+        { code: 'sumAmtRec', type: 'number', negative: true, min: Constants.MIN_VALUE, maxFlag: false, title: mixins.$t("thisRefund"), readonly: false },
         { code: 'remarks', type: 'textarea', title: mixins.$t("remarks"), readonly: false },
         { code: 'file', type: 'uploader', title: mixins.$t("uploader") }
       ],
@@ -94,6 +94,7 @@ Page({
       // 是否弹出询问框
       Dialog.confirm({
         message: '请输入金额',
+        showCancelButton: false,
       }).then(() => {
 
       }).catch(() => {
@@ -124,7 +125,7 @@ Page({
             formData.orgName = app.globalData.user.orgName
             formData.staffId = app.globalData.user.staffId
             formData.staffName = app.globalData.user.staffName
-            formData.accDate = util.formatDayTime(new Date()) 
+            formData.accDate = util.formatDayTime(new Date())
             _this.setData({
               formData: JSON.stringify(formData)
             })

+ 404 - 400
package-sales/pages/order-billing/add/add.js

@@ -17,96 +17,96 @@ Page({
     customerService: app.globalData['customerService'],
     saleChannelService: app.globalData['saleChannelService'],
     cardList: [{
-      name: 'main',
-      title: mixins.$t("customerInformation")
-    },
-    {
-      name: 'items',
-      title: mixins.$t("goodsDetail"),
+        name: 'main',
+        title: mixins.$t("customerInformation")
+      },
+      {
+        name: 'items',
+        title: mixins.$t("goodsDetail"),
 
-      chooseGoodsFlag: false,
-      chooseGoodsItemFlag: true,
-      chooseInventoryFlag: true,
-      chooseCoordinationFlag: true,
+        chooseGoodsFlag: false,
+        chooseGoodsItemFlag: true,
+        chooseInventoryFlag: true,
+        chooseCoordinationFlag: true,
 
-      itemAmt: '',
-      displayNum: 2
-    },
-    {
-      name: 'other',
-      title: mixins.$t("otherInfo")
-    }
+        itemAmt: '',
+        displayNum: 2
+      },
+      {
+        name: 'other',
+        title: mixins.$t("otherInfo")
+      }
     ],
     contentObj: {
       main: [{
-        code: 'cusName',
-        type: 'selectIcon',
-        urlKey: 'selectCustomers',
-        required: true,
-        readonly: false,
-        title: mixins.$t('customerName')
-      },
-      {
-        code: 'cusPhone',
-        type: 'phone',
-        title: mixins.$t('cusPhone'),
-        required: true
-      },
-      {
-        code: 'addressFull',
-        type: 'address',
-        title: mixins.$t('addressFull'),
-        required: true
-      },
-      {
-        code: 'addressNo',
-        type: 'str',
-        required: true,
-        title: mixins.$t('addressNo')
-      },
-      {
-        code: 'channelId',
-        name: 'channelName',
-        required: true,
-        title: mixins.$t('saleChannel'),
-        type: 'choose',
-        urlKey: 'chooseChannel'
-      },
+          code: 'cusName',
+          type: 'selectIcon',
+          urlKey: 'selectCustomers',
+          required: true,
+          readonly: false,
+          title: mixins.$t('customerName')
+        },
+        {
+          code: 'cusPhone',
+          type: 'phone',
+          title: mixins.$t('cusPhone'),
+          required: true
+        },
+        {
+          code: 'addressFull',
+          type: 'address',
+          title: mixins.$t('addressFull'),
+          required: true
+        },
+        {
+          code: 'addressNo',
+          type: 'str',
+          required: true,
+          title: mixins.$t('addressNo')
+        },
+        {
+          code: 'channelId',
+          name: 'channelName',
+          required: true,
+          title: mixins.$t('saleChannel'),
+          type: 'choose',
+          urlKey: 'chooseChannel'
+        },
 
-      {
-        code: 'cusFrom',
-        name: 'cusFromName',
-        required: true,
-        title: mixins.$t('customerSource'),
-        type: 'choose',
-        urlKey: 'choosecusFrom'
-      },
+        {
+          code: 'cusFrom',
+          name: 'cusFromName',
+          required: true,
+          title: mixins.$t('customerSource'),
+          type: 'choose',
+          urlKey: 'choosecusFrom'
+        },
 
-      {
-        code: 'contactName',
-        type: 'str',
-        required: false,
-        title: mixins.$t('contactName')
-      },
-      {
-        code: 'contactPhone',
-        type: 'str',
-        title: mixins.$t('cpPhone'),
-        required: false
-      },
+        {
+          code: 'contactName',
+          type: 'str',
+          required: false,
+          title: mixins.$t('contactName')
+        },
+        {
+          code: 'contactPhone',
+          type: 'str',
+          title: mixins.$t('cpPhone'),
+          required: false
+        },
 
       ],
       items: [{
-        code: 'collectType',
-        name: 'collectName',
-        type: 'drop',
-        dropType: 'collect'
-      },
-      {
-        code: 'collectAmount',
-        type: 'number',
-        title: mixins.$t("amountCollected")
-      }
+          code: 'collectType',
+          name: 'collectName',
+          type: 'drop',
+          dropType: 'collect'
+        },
+        {
+          code: 'collectAmount',
+          type: 'number',
+          title: mixins.$t("amountCollected")
+        }
       ],
       other: [
         // { code: 'contractNo', type: 'textarea', title: mixins.$t("contractNumber"), readonly: false },
@@ -132,114 +132,114 @@ Page({
     },
     //按钮
     buttonSaveList: [{
-      code: 'collection',
-      title: mixins.$t("collection"),
-      plain: true
-    },
-    {
-      code: 'save',
-      title: mixins.$t("save")
-    }
+        code: 'collection',
+        title: mixins.$t("collection"),
+        plain: true
+      },
+      {
+        code: 'save',
+        title: mixins.$t("save")
+      }
     ],
     contentSaveList: [{
-      code: 'flag',
-      title: mixins.$t("saleOutBoundFlag"),
-      type: 'checkbox'
-    },
-    // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
+        code: 'flag',
+        title: mixins.$t("saleOutBoundFlag"),
+        type: 'checkbox'
+      },
+      // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
 
-    {
-      code: 'factAmt',
-      content: 0,
-      type: 'number',
-      title: mixins.$t("actualTotalAmount")
-    },
+      {
+        code: 'factAmt',
+        content: 0,
+        type: 'number',
+        title: mixins.$t("actualTotalAmount")
+      },
     ],
     popContent: [{
-      code: 'itemQty',
-      type: 'step',
-      title: mixins.$t("count"),
-      required: true
-    },
-    {
-      code: 'packageBox',
-      type: 'packageBox',
-      title: mixins.$t("packageBox"),
-    },
-    // { code: 'box', type: 'step', title: mixins.$t("goodsBox"), required: true },
-    // { code: 'piece', type: 'step', title: mixins.$t("goodsPiece"), required: true },
-    {
-      code: 'priceSale',
-      type: 'number',
-      title: mixins.$t("priceSale"),
-      required: true,
-      center: 'right',
-      readonly: true
-    },
-    {
-      code: 'factPrice',
-      type: 'number',
-      title: mixins.$t("factPrice"),
-      required: true,
-      readonly: true
-    },
-    {
-      code: 'discount',
-      title: mixins.$t("goodswholeOrderDiscount"),
-      type: 'number',
-      digits: 0,
-      sign: '',
-      percentSignFlag: true,
-      inputColor: '#95A8CB'
-    },
+        code: 'itemQty',
+        type: 'step',
+        title: mixins.$t("count"),
+        required: true
+      },
+      {
+        code: 'packageBox',
+        type: 'packageBox',
+        title: mixins.$t("packageBox"),
+      },
+      // { code: 'box', type: 'step', title: mixins.$t("goodsBox"), required: true },
+      // { code: 'piece', type: 'step', title: mixins.$t("goodsPiece"), required: true },
+      {
+        code: 'priceSale',
+        type: 'number',
+        title: mixins.$t("priceSale"),
+        required: true,
+        center: 'right',
+        readonly: true
+      },
+      {
+        code: 'factPrice',
+        type: 'number',
+        title: mixins.$t("factPrice"),
+        required: true,
+        readonly: true
+      },
+      {
+        code: 'discount',
+        title: mixins.$t("goodswholeOrderDiscount"),
+        type: 'number',
+        digits: 0,
+        sign: '',
+        percentSignFlag: true,
+        inputColor: '#95A8CB'
+      },
 
-    {
-      code: 'whId',
-      name: 'whName',
-      title: mixins.$t("warehouseId"),
-      type: 'choose',
-      urlKey: 'openingInventory',
-    },
-    {
-      code: 'brandName',
-      title: mixins.$t('brandName'),
-      type: 'str',
-      readonly: true,
-    },
-    {
-      code: 'nonStdCode',
-      title: mixins.$t("goodsBatch"),
-      type: 'str',
-    },
-    {
-      code: 'flgGift',
-      title: mixins.$t("flgGift"),
-      type: 'checkbox',
-      tipFlag: true,
-      outSetFlag: true,
-    },
-    {
-      code: 'usePlace',
-      title: mixins.$t("usePlace"),
-      type: 'str',
-    },
-    ],
-    // 新手引导
-    step: {
-      name: 'order',
-      guideList: [{
-        el: "#dkForm>>>#cusName",
-        tips: mixins.$t('chooseCustomer'),
+      {
+        code: 'whId',
+        name: 'whName',
+        title: mixins.$t("warehouseId"),
+        type: 'choose',
+        urlKey: 'openingInventory',
       },
       {
-        el: "#dkForm>>>#items",
-        tips: mixins.$t('chooseItems'),
+        code: 'brandName',
+        title: mixins.$t('brandName'),
+        type: 'str',
+        readonly: true,
+      },
+      {
+        code: 'nonStdCode',
+        title: mixins.$t("goodsBatch"),
+        type: 'str',
       },
       {
-        el: "#saveButton>>>#saveButton",
-        tips: mixins.$t('saveAndReceiptButton'),
-        fixed: true,
+        code: 'flgGift',
+        title: mixins.$t("flgGift"),
+        type: 'checkbox',
+        tipFlag: true,
+        outSetFlag: true,
       },
+      {
+        code: 'usePlace',
+        title: mixins.$t("usePlace"),
+        type: 'str',
+      },
+    ],
+    // 新手引导
+    step: {
+      name: 'order',
+      guideList: [{
+          el: "#dkForm>>>#cusName",
+          tips: mixins.$t('chooseCustomer'),
+        },
+        {
+          el: "#dkForm>>>#items",
+          tips: mixins.$t('chooseItems'),
+        },
+        {
+          el: "#saveButton>>>#saveButton",
+          tips: mixins.$t('saveAndReceiptButton'),
+          fixed: true,
+        },
       ]
     },
     table: Constants.tables.order,
@@ -249,32 +249,32 @@ Page({
     // flgBackStockInvoicingSetting: app.globalData.setting[Constants.settingCode.IVT002] == "true" ? true : false,
     flgHandleSetting: app.globalData.setting[Constants.settingCode.IVT002] == "true" ? true : false,
     popContentReverse: [{
-      code: 'sumAmount',
-      type: 'number',
-      title: mixins.$t("totalAmount"),
-      readonly: true
-    },
-    {
-      code: 'discount',
-      type: 'number',
-      title: mixins.$t("wholeOrderDiscount"),
-      digits: 0,
-      sign: '',
-      percentSignFlag: true,
-      inputColor: '#95A8CB'
-    },
-    {
-      code: 'discAmt',
-      type: 'number',
-      title: mixins.$t("sumWaiveAmt"),
-      digits: 2,
-    },
-    {
-      code: 'factAmt',
-      type: 'number',
-      title: mixins.$t("actualTotalAmount"),
-      negativeNumber: true
-    },
+        code: 'sumAmount',
+        type: 'number',
+        title: mixins.$t("totalAmount"),
+        readonly: true
+      },
+      {
+        code: 'discount',
+        type: 'number',
+        title: mixins.$t("wholeOrderDiscount"),
+        digits: 0,
+        sign: '',
+        percentSignFlag: true,
+        inputColor: '#95A8CB'
+      },
+      {
+        code: 'discAmt',
+        type: 'number',
+        title: mixins.$t("sumWaiveAmt"),
+        digits: 2,
+      },
+      {
+        code: 'factAmt',
+        type: 'number',
+        title: mixins.$t("actualTotalAmount"),
+        negativeNumber: true
+      },
     ],
 
   },
@@ -285,14 +285,14 @@ Page({
    * @author : 于继渤
    */
   openReverseCalculationPop() {
-    
+
     let formData = JSON.parse(this.data.formData)
     let goodsListAmt = formData.goodsList.sum("priceSale")
     if ((formData.goodsList.length <= 0) || goodsListAmt == 0) { //没有商品或者价格都是零的时候不能点开折扣反算
       return
     }
     //受 销售订单编辑逻辑 限制 转出库后(订单上的出库中加上已出库数量大于0 即证明有后续出库) 不能弹出总单反算pop 
-      if (formData.outingQty&&formData.outQty&&(Number(formData.outingQty)+Number(formData.outQty))>0) {  
+    if (formData.outingQty && formData.outQty && (Number(formData.outingQty) + Number(formData.outQty)) > 0) {
       return
     }
     let cardList = this.data.cardList
@@ -317,7 +317,7 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  blurNumberField(e) { 
+  blurNumberField(e) {
     let key = e.detail.key
     let value = null
     let dataItem = JSON.parse(this.data.dataItem)
@@ -330,7 +330,7 @@ Page({
       dataItem.discount = value * 100 //整单折扣
       dataItem.factAmt = Number(dataItem.sumAmount) * Number(value) //实际合计金额 = 合计金额*总单折扣
       dataItem.discAmt = util.handleQty(Number(dataItem.sumAmount) - Number(dataItem.factAmt)) // 优惠 = 合计金额-实际合计金额 
-    
+
     }
     if (key == "discAmt") //修改优惠金额
     {
@@ -355,7 +355,7 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  editItemsReverse(e) { 
+  editItemsReverse(e) {
     this.calculateDiscounts()
   },
   /**
@@ -408,7 +408,7 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  openPopDkNumberInput(e) { 
+  openPopDkNumberInput(e) {
     let dataItem = JSON.parse(e.detail.dataItem)
     let key = e.detail.key
     if (key == "priceSale" || key == "factPrice") {
@@ -469,7 +469,7 @@ Page({
    * @date   : 2024/1/26 11:46
    */
   changePhoneblur(e) {
-    let formData = JSON.parse(this.data.formData) 
+    let formData = JSON.parse(this.data.formData)
     if (formData.cusPhone) {
       this.getCustomerData({
         cusPhone: formData.cusPhone
@@ -485,7 +485,7 @@ Page({
   getCustomerData(params) {
     return this.excute(this.data.customerService, this.data.customerService.selectByCondNoPage, params).then(res => {
       if (res.data.code == 200) {
-        if (res.data.data.length > 0) { 
+        if (res.data.data.length > 0) {
           let formData = JSON.parse(this.data.formData)
           let item = res.data.data[0]
           formData.cusCode = item.cusCode
@@ -526,7 +526,7 @@ Page({
    * @author : 于继渤
    * @date   : 2024/1/26 11:46
    */
-  chooseData(e) { 
+  chooseData(e) {
     let item = e.detail.data
     let code = e.detail.code
     let formData = JSON.parse(this.data.formData)
@@ -574,10 +574,10 @@ Page({
       formData.staff = item.staffItem
       formData['staffId'] = item.staffMain.staffId
       formData['staffName'] = item.staffMain.staffName
-      formData['staffList'] = item.staffList 
+      formData['staffList'] = item.staffList
     }
     ///设置主从业务部门
-    if (code == 'org') { 
+    if (code == 'org') {
       formData.org = item.orgItem
       formData['orgId'] = item.orgMain.orgId
       formData['orgName'] = item.orgMain.orgName
@@ -632,8 +632,8 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  deleteItemList(e) {  
-    let formData = JSON.parse(e.detail.form) 
+  deleteItemList(e) {
+    let formData = JSON.parse(e.detail.form)
     this.calculateAmount(formData)
   },
   /**
@@ -646,8 +646,8 @@ Page({
     let list = this.setItemList(params.goodsList)
     params.itemList = list //明细
     params.itemList.forEach(element => {
-      element.priceStd = element.priceStd?element.priceStd:0
-      element.amtStd = element.amtStd?element.amtStd:0
+      element.priceStd = element.priceStd ? element.priceStd : 0
+      element.amtStd = element.amtStd ? element.amtStd : 0
     });
     params.orderStatus = Constants.orderStatus.STATUS_DEAL //订单状态
     params.outStatus = Constants.outStatus.unOutBound //出库状态
@@ -712,7 +712,7 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  setGoods(e) { 
+  setGoods(e) {
     //校验库存
     let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
     if (btnFormData.flag) {
@@ -776,7 +776,7 @@ Page({
                   res.invId = it.invId
                   res.invQty = it.invQty ? it.invQty : 0
                   //销售订单、销售出库、采购退货-自动出库或者办理时要读取系统参数【欠货开单】开启就不判断库存,调取后台自动生成对应入库单
-                  if (this.data.flgHandleSetting) { } else {
+                  if (this.data.flgHandleSetting) {} else {
                     res['itemQty_max'] = res.invQty
                   }
                   res['itemQty_min'] = 1
@@ -815,7 +815,7 @@ Page({
   getInventory(params) {
     return new Promise((resolve, reject) => {
       this.excute(this.data.commonService, this.data.commonService.getInventoryByList, params).then(res => {
-        if (res.data.code == 200) { 
+        if (res.data.code == 200) {
           resolve(res.data.data)
 
         }
@@ -834,7 +834,7 @@ Page({
     if (!formData.flgBusiness) {
       Dialog.confirm({
         message: '当前部门不是业务部门,请选择业务部门',
-      }).then(() => { }).catch(() => { })
+      }).then(() => {}).catch(() => {})
 
       return
     }
@@ -878,7 +878,7 @@ Page({
     if (this.data.gradeCode == Constants.gradeCode.STD) { //标准版 不显示需收款
       let contentSaveList = this.data.contentSaveList
       let index_receivable = contentSaveList.findIndex(it => it.code == 'receivable');
-      if(index_receivable>=0){
+      if (index_receivable >= 0) {
         contentSaveList.splice(index_receivable, 1);
       }
       this.setData({
@@ -898,41 +898,43 @@ Page({
     if (!data.flgAutoHandle) {
       this.setData({
         contentSaveList: [{
-          code: 'receivable',
-          content: 0,
-          type: 'number',
-          title: mixins.$t("saleCollection")
-        },
-        {
-          code: 'factAmt',
-          content: 0,
-          type: 'number',
-          title: mixins.$t("actualTotalAmount")
-        },
+            code: 'receivable',
+            content: 0,
+            type: 'number',
+            title: mixins.$t("saleCollection")
+          },
+          {
+            code: 'factAmt',
+            content: 0,
+            type: 'number',
+            title: mixins.$t("actualTotalAmount")
+          },
         ]
       })
     } else {
       this.setData({
         contentSaveList: [{
-          code: 'flag',
-          title: mixins.$t("saleOutBoundFlag"),
-          type: 'checkbox'
-        },
-        // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
-        {
-          code: 'receivable',
-          content: 0,
-          type: 'number',
-          title: mixins.$t("saleCollection")
-        },
-        {
-          code: 'factAmt',
-          content: 0,
-          type: 'number',
-          title: mixins.$t("actualTotalAmount")
-        },
+            code: 'flag',
+            title: mixins.$t("saleOutBoundFlag"),
+            type: 'checkbox'
+          },
+          // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
+          {
+            code: 'receivable',
+            content: 0,
+            type: 'number',
+            title: mixins.$t("saleCollection")
+          },
+          {
+            code: 'factAmt',
+            content: 0,
+            type: 'number',
+            title: mixins.$t("actualTotalAmount")
+          },
         ],
-        btnFormData: JSON.stringify({ flag: data.outboundProcessingFlag })
+        btnFormData: JSON.stringify({
+          flag: data.outboundProcessingFlag
+        })
       })
     }
 
@@ -963,16 +965,9 @@ Page({
     if (index_receivable != -1) {
       contentSaveList[index_receivable]['content'] = data.sumAmount
     }
-    //受 销售订单编辑逻辑 限制 转出库后(订单上的出库中加上已出库数量大于0 即证明有后续出库) 不能删除明细 不能修改明细金额 明细数量不能小于已转出库数量 
-    data.goodsList.forEach(element => {
-      if (element.outingQty&&element.outQty&&(Number(element.outingQty)+Number(element.outQty))>0) {  
-        element['itemQty_max'] = 9999999999
-        element['itemQty_min'] =  Number(element.outingQty)+Number(element.outQty)
-        element.cannotModifyFlag = true
-      }
-    });
-  
-    
+
+
+
     this.setData({
       cardList: cardList,
       formData: JSON.stringify(data),
@@ -984,9 +979,9 @@ Page({
     if (this.data.gradeCode == Constants.gradeCode.STD) { //标准版 不显示需收款
       let contentSaveList = this.data.contentSaveList
       let index_receivable = contentSaveList.findIndex(it => it.code == 'receivable');
-      if(index_receivable>=0){
+      if (index_receivable >= 0) {
         contentSaveList.splice(index_receivable, 1);
-      } 
+      }
       this.setData({
         contentSaveList: contentSaveList
       })
@@ -1012,6 +1007,15 @@ Page({
         }
 
         formData.goodsList = res.data.data.dataItem
+        //受 销售订单编辑逻辑 限制 转出库后(订单上的出库中加上已出库数量大于0 即证明有后续出库) 不能删除明细 不能修改明细金额 明细数量不能小于已转出库数量 
+        formData.goodsList.forEach(element => {
+          if (element.outingQty && element.outQty && (Number(element.outingQty) + Number(element.outQty)) > 0) {
+            element['itemQty_max'] = 9999999999
+            element['itemQty_min'] = Number(element.outingQty) + Number(element.outQty)
+            element.cannotModifyFlag = true
+          }
+        });
+
         //处理主从业务员业务部门
         if (res.data.data.staffList) {
           let staffIds = []
@@ -1099,7 +1103,7 @@ Page({
       text: app.globalData.user.orgName,
       value: [app.globalData.user.orgId]
     }
-    formData.orgId = app.globalData.user.orgId 
+    formData.orgId = app.globalData.user.orgId
     formData.flgBusiness = app.globalData.user.flgBusiness
     formData.orgList = [{
       orgId: app.globalData.user.orgId,
@@ -1175,7 +1179,7 @@ Page({
         element.discount = formData.discount
       }
     });
-    let contentSaveList = this.data.contentSaveList 
+    let contentSaveList = this.data.contentSaveList
     //需收款 = 实际金额 - 使用预存
     let amtReceivable = Number(formData.factAmt) - (formData.useCollect ? Number(formData.useCollect) : 0)
     //组件显示 需收款 
@@ -1208,39 +1212,39 @@ Page({
       if (!that.data.flgAutoHandle) {
         this.setData({
           contentSaveList: [{
-            code: 'receivable',
-            content: 0,
-            type: 'number',
-            title: mixins.$t("saleCollection")
-          },
-          {
-            code: 'factAmt',
-            content: 0,
-            type: 'number',
-            title: mixins.$t("actualTotalAmount")
-          },
+              code: 'receivable',
+              content: 0,
+              type: 'number',
+              title: mixins.$t("saleCollection")
+            },
+            {
+              code: 'factAmt',
+              content: 0,
+              type: 'number',
+              title: mixins.$t("actualTotalAmount")
+            },
           ]
         })
       } else {
         this.setData({
-          contentSaveList : [{
-            code: 'flag',
-            title: mixins.$t("saleOutBoundFlag"),
-            type: 'checkbox'
-          },
-          // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
-          {
-            code: 'receivable',
-            content: 0,
-            type: 'number',
-            title: mixins.$t("saleCollection")
-          },
-          {
-            code: 'factAmt',
-            content: 0,
-            type: 'number',
-            title: mixins.$t("actualTotalAmount")
-          },
+          contentSaveList: [{
+              code: 'flag',
+              title: mixins.$t("saleOutBoundFlag"),
+              type: 'checkbox'
+            },
+            // { code: 'need', title: mixins.$t("saleCollection"), type: 'str' },
+            {
+              code: 'receivable',
+              content: 0,
+              type: 'number',
+              title: mixins.$t("saleCollection")
+            },
+            {
+              code: 'factAmt',
+              content: 0,
+              type: 'number',
+              title: mixins.$t("actualTotalAmount")
+            },
           ],
           btnFormData: '{\"flag\":true}'
         })
@@ -1271,7 +1275,7 @@ Page({
     }
 
     const eventChannel = this.getOpenerEventChannel()
-    eventChannel.on('params', function (data) { 
+    eventChannel.on('params', function (data) {
       if (data && data.goodsList && data.goodsList.length > 0) {
         formData.goodsList = data.goodsList
         that.setData({
@@ -1298,8 +1302,8 @@ Page({
     if (this.data.gradeCode == Constants.gradeCode.STD) { //标准版 不显示需收款
       let contentSaveList = this.data.contentSaveList
       let index_receivable = contentSaveList.findIndex(it => it.code == 'receivable');
-      if(index_receivable >= 0){
-        if(index_receivable>=0){
+      if (index_receivable >= 0) {
+        if (index_receivable >= 0) {
           contentSaveList.splice(index_receivable, 1);
         }
         this.setData({
@@ -1347,10 +1351,10 @@ Page({
     })
   },
   /**
- * @desc : 计算商品金额
- * @date : 2024/5/24 15:49
- * @author : 周兴
- */
+   * @desc : 计算商品金额
+   * @date : 2024/5/24 15:49
+   * @author : 周兴
+   */
   setGoodsAmount(formData) {
     let cardList = this.data.cardList
 
@@ -1413,108 +1417,108 @@ Page({
     let contentObj = this.data.contentObj
     if (this.data.gradeCode == Constants.gradeCode.STD) {
       contentObj.main = [{
-        code: 'cusName',
-        type: 'selectIcon',
-        urlKey: 'selectCustomers',
-        required: true,
-        readonly: false,
-        title: mixins.$t('customerName')
-      },
-      {
-        code: 'cusPhone',
-        type: 'phone',
-        title: mixins.$t('cusPhone'),
-        required: true
-      },
-      {
-        code: 'addressFull',
-        type: 'address',
-        title: mixins.$t('addressFull'),
-        required: true
-      },
-      {
-        code: 'addressNo',
-        type: 'str',
-        required: true,
-        title: mixins.$t('addressNo')
-      },
-      {
-        code: 'channelId',
-        name: 'channelName',
-        required: true,
-        title: mixins.$t('saleChannel'),
-        type: 'choose',
-        urlKey: 'chooseChannel'
-      },
-      {
-        code: 'contactName',
-        type: 'str',
-        required: false,
-        title: mixins.$t('contactName')
-      },
-      {
-        code: 'contactPhone',
-        type: 'str',
-        title: mixins.$t('cpPhone'),
-        required: false
-      },
+          code: 'cusName',
+          type: 'selectIcon',
+          urlKey: 'selectCustomers',
+          required: true,
+          readonly: false,
+          title: mixins.$t('customerName')
+        },
+        {
+          code: 'cusPhone',
+          type: 'phone',
+          title: mixins.$t('cusPhone'),
+          required: true
+        },
+        {
+          code: 'addressFull',
+          type: 'address',
+          title: mixins.$t('addressFull'),
+          required: true
+        },
+        {
+          code: 'addressNo',
+          type: 'str',
+          required: true,
+          title: mixins.$t('addressNo')
+        },
+        {
+          code: 'channelId',
+          name: 'channelName',
+          required: true,
+          title: mixins.$t('saleChannel'),
+          type: 'choose',
+          urlKey: 'chooseChannel'
+        },
+        {
+          code: 'contactName',
+          type: 'str',
+          required: false,
+          title: mixins.$t('contactName')
+        },
+        {
+          code: 'contactPhone',
+          type: 'str',
+          title: mixins.$t('cpPhone'),
+          required: false
+        },
 
       ]
     } else if (this.data.gradeCode == Constants.gradeCode.PRO) {
       contentObj.main = [{
-        code: 'cusName',
-        type: 'selectIcon',
-        urlKey: 'selectCustomers',
-        required: true,
-        readonly: false,
-        title: mixins.$t('customerName')
-      },
-      {
-        code: 'cusPhone',
-        type: 'phone',
-        title: mixins.$t('cusPhone'),
-        required: true
-      },
-      {
-        code: 'addressFull',
-        type: 'address',
-        title: mixins.$t('addressFull'),
-        required: true
-      },
-      {
-        code: 'addressNo',
-        type: 'str',
-        required: true,
-        title: mixins.$t('addressNo')
-      },
-      {
-        code: 'channelId',
-        name: 'channelName',
-        required: true,
-        title: mixins.$t('saleChannel'),
-        type: 'choose',
-        urlKey: 'chooseChannel'
-      },
-      {
-        code: 'cusFrom',
-        name: 'cusFromName',
-        required: false,
-        title: mixins.$t('customerSource'),
-        type: 'choose',
-        urlKey: 'choosecusFrom'
-      },
-      {
-        code: 'contactName',
-        type: 'str',
-        required: false,
-        title: mixins.$t('contactName')
-      },
-      {
-        code: 'contactPhone',
-        type: 'str',
-        title: mixins.$t('cpPhone'),
-        required: false
-      },
+          code: 'cusName',
+          type: 'selectIcon',
+          urlKey: 'selectCustomers',
+          required: true,
+          readonly: false,
+          title: mixins.$t('customerName')
+        },
+        {
+          code: 'cusPhone',
+          type: 'phone',
+          title: mixins.$t('cusPhone'),
+          required: true
+        },
+        {
+          code: 'addressFull',
+          type: 'address',
+          title: mixins.$t('addressFull'),
+          required: true
+        },
+        {
+          code: 'addressNo',
+          type: 'str',
+          required: true,
+          title: mixins.$t('addressNo')
+        },
+        {
+          code: 'channelId',
+          name: 'channelName',
+          required: true,
+          title: mixins.$t('saleChannel'),
+          type: 'choose',
+          urlKey: 'chooseChannel'
+        },
+        {
+          code: 'cusFrom',
+          name: 'cusFromName',
+          required: false,
+          title: mixins.$t('customerSource'),
+          type: 'choose',
+          urlKey: 'choosecusFrom'
+        },
+        {
+          code: 'contactName',
+          type: 'str',
+          required: false,
+          title: mixins.$t('contactName')
+        },
+        {
+          code: 'contactPhone',
+          type: 'str',
+          title: mixins.$t('cpPhone'),
+          required: false
+        },
       ]
     }
     this.setData({

+ 6 - 3
package-sales/pages/order-billing/add/add.wxml

@@ -2,11 +2,14 @@
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}"></loading>
 
-
-<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"   titleCol="skuModel" iconCol="imagesUrl" descCol="skuName"  subCol="calculationFormula" priceTailCol="sumPrice"pupPriceCol="factAmt" priceCol="factAmt"  quantityCol="itemQty" sumAmountCol="sumAmount" sumQuantityCol="sumQuantity" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods" table="{{table}}" 
+<dk-form-bill  type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"   titleCol="skuModel" iconCol="imagesUrl" descCol="skuName"  subCol="calculationFormula" priceTailCol="sumPrice"pupPriceCol="factAmt" priceCol="factAmt"  quantityCol="itemQty" sumAmountCol="sumAmount" sumQuantityCol="sumQuantity" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods" table="{{table}}" swipeDisabled ="cannotModifyFlag"
 bind:editItems="editItems"  bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:onCloseDel="deleteItemList" 
-bind:customersChoose="customersChoose"  bind:changePhoneblur="changePhoneblur"  popType="sale" priceTitle="" staff="staff" org="org" bind:openReverseCalculationPop="openReverseCalculationPop"reverseCalculationFlag="true"wholeOrderDiscountCol="discount"discountAmountCol="discAmt"  >
+bind:customersChoose="customersChoose"  bind:changePhoneblur="changePhoneblur" 
+bind:clickAttach="clickAttach"  bind:uploadSucess="uploadSucess" bind:uploadError="uploadError" popType="sale" priceTitle="" staff="staff" org="org" 
+bind:openReverseCalculationPop="openReverseCalculationPop" reverseCalculationFlag="true" wholeOrderDiscountCol="discount" discountAmountCol="discAmt"  >
 </dk-form-bill>
+
+{{uploadFileFlag}}
 <van-dialog id="van-dialog" />  
 <view style="height: 200rpx;"></view>
 

+ 4 - 4
package-sales/pages/order-billing/order-billing.js

@@ -232,13 +232,13 @@ Page({
           idKey: 'cusId'
         }, //跳转客户收款
         {
+          name: 'invalid',
+          title: mixins.$t("invaidOrder")
+        }, //作废
+        {
           name: 'printedBill',
           title: mixins.$t("printedBill")
         }, //打印
-        {
-          name: 'invalid',
-          title: mixins.$t("invaidOrder")
-        } //作废
       ]
     }
     this.setData({

+ 14 - 8
package-sales/pages/order-return/add/add.js

@@ -6,7 +6,7 @@ const app = getApp()
 Page({
   mixins: [mixins],
   /**
-   * 页面的初始数据
+   * 页面的初始数据 
    */
   data: {
     gradeCode: app.globalData.company.gradeCode,
@@ -212,10 +212,10 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  setGoods(e) {
+  setGoods(e) { 
     //设置需收款
     let contentSaveList = this.data.contentSaveList
-    let formData = JSON.parse(this.data.formData)
+    let formData = e.detail.data
     let itemIndex = 0
     let list = []
     formData.goodsList.forEach(res => {
@@ -251,7 +251,7 @@ Page({
       })
       //组件显示 需收款
       contentSaveList.forEach(card => {
-        if (card.code === 'content') {
+        if (card.code === 'receivable') {
           card.content = Number(formData.sumAmount)
         }
       })
@@ -398,8 +398,10 @@ Page({
           res['outingQty_max'] = 0
           console.log('111111111111111');
         })
-
-
+        //禁用业务员业务部门
+        this.setData({
+          satffAndOrgReadonly:true
+        })
         formData.goodsList = item.itemList
         formData.fromNo = item.fromNo
         this.calculateAmount(formData)
@@ -514,6 +516,9 @@ Page({
       // res['sOutItemId'] = res.soutItemId
       // res['sOrderItemId'] = res.sorderItemId
       // res['sOrderId'] = res.sorderId
+      res.sOutId = res.outId ?res.outId :params.outId 
+      res.sOrderId = res.sOrderId  ? res.sOrderId  : params.orderId
+      
       res.itemIndex = itemIndex++
       res.canNegativeFlag = true
       if (this.data.formMode != 'detail') {
@@ -905,7 +910,7 @@ Page({
    * @author : 于继渤
    * @date   : 2024/1/26 11:46
    */
-  calculateAmount(formData) {
+  calculateAmount(formData) { 
     ///设置总单信息
     let sumStandard = Number(0)
     let sumAmount = Number(0)
@@ -943,7 +948,7 @@ Page({
     // }
     //组件显示 需收款
     contentSaveList.forEach(card => {
-      if (card.code === 'content') {
+      if (card.code === 'receivable') {
         card.content = Number(formData.sumAmount)
       }
     })
@@ -1121,6 +1126,7 @@ Page({
         this.getItemDetal(this.data.item.orderId, 'orderService', 'getOrderForReturn')
       }
       this.setData({
+        satffAndOrgReadonly:true,
         formData: JSON.stringify(formData)
       })
     } else if (this.data.formMode == Constants.formMode.other && this.data.formType == Constants.formMode.edit) { //编辑

+ 3 - 3
package-sales/pages/order-return/add/add.wxml

@@ -3,9 +3,9 @@
 <loading wx:if="{{loading}}"></loading>
 <van-dialog id="van-dialog" />
 <!-- priceStd -->
-<dk-form-bill type="saleOutReturn" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="" titleCol="skuModel" subCol="calculationFormula" descCol="skuName" priceCol="priceOut" quantityCol="outingQty" sumAmountCol="sumAmount" discountStandardCol="saleDiscount" pupPriceCol="sumPrice" contentObj="{{contentObj}}" iconCol="imagesUrl" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods" table="{{table}}" bind:editItems="setGoods" readonly="{{formMode == 'detail' && formType =='detail'}}" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:customersChoose="customersChoose" popType="sale" priceTitle="" staff="staff" org="org" popupTopObj="{{popupTopObj}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}" titpsFlag="{{titpsFlag}}" titpsItemColorFlagKey="titpsItemColorFlagKey" titpsLabel="titpsLabel"titleTagCol="brandName">
-</dk-form-bill>
-
+<dk-form-bill type="saleOutReturn" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="" titleCol="skuModel" subCol="calculationFormula" descCol="skuName" priceCol="priceOut" quantityCol="outingQty" sumAmountCol="sumAmount" discountStandardCol="saleDiscount" pupPriceCol="sumPrice" contentObj="{{contentObj}}" iconCol="imagesUrl" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods" table="{{table}}" bind:editItems="setGoods" readonly="{{formMode == 'detail' && formType =='detail'}}" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:customersChoose="customersChoose" popType="sale" priceTitle="" satffAndOrgReadonly="{{satffAndOrgReadonly}}" staff="staff" org="org" popupTopObj="{{popupTopObj}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}" titpsFlag="{{titpsFlag}}" titpsItemColorFlagKey="titpsItemColorFlagKey" titpsLabel="titpsLabel"titleTagCol="brandName">
+</dk-form-bill> 
+ 
 <view style="height: 200rpx;"></view>
 
 

+ 111 - 76
package-sales/pages/sales-outbound/add/add.js

@@ -65,55 +65,60 @@ Page({
       main: [
         {
           code: 'cusName',
-          type: 'selectIcon',
+          type: 'str',
           urlKey: 'selectCustomers',
           required: true,
-          readonly: false,
+          readonly: true,
           title: mixins.$t('customerName')
         },
         {
           code: 'cusPhone',
-          type: 'phone',
+          type: 'str',
+          readonly: true,
           title: mixins.$t('cusPhone'),
           required: true
         },
         {
           code: 'addressFull',
-          type: 'address',
+          type: 'str',
+          readonly: true,
           title: mixins.$t('addressFull'),
           required: true
         },
         {
           code: 'addressNo',
           type: 'str',
+          readonly: true,
           required: true,
           title: mixins.$t('addressNo')
         },
+        // {
+        //   code: 'channelId',
+        //   name: 'channelName',
+        //   required: true,
+        //   readonly: true,
+        //   title: mixins.$t('saleChannel'),
+        //   type: 'str',
+        //   urlKey: 'chooseChannel'
+        // },
         {
-          code: 'channelId',
-          name: 'channelName',
-          required: true,
-          title: mixins.$t('saleChannel'),
-          type: 'choose',
-          urlKey: 'chooseChannel'
-        },
-        {
-          code: 'cusFrom',
-          name: 'cusFromName',
-          required: true,
-          title: mixins.$t('customerSource'),
-          type: 'choose',
-          urlKey: 'choosecusFrom'
+          code: 'cusFromName',
+          type: 'str',
+          readonly: true,
+          required: false,
+          title: mixins.$t('customerSource')
         },
         {
           code: 'contactName',
           type: 'str',
           required: false,
+          readonly: true,
           title: mixins.$t('contactName')
         },
         {
           code: 'contactPhone',
           type: 'str',
+          readonly: true,
           title: mixins.$t('cpPhone'),
           required: false
         },
@@ -534,9 +539,6 @@ Page({
   },
 
 
-
-
-
   /**
    * @desc : 设置保存参数
    * @date : 2024/2/1 15:49
@@ -579,17 +581,19 @@ Page({
       }
       res.sOutId = res.outId
       res.sOutItemId = res.itemId
+      res.sOrderId = params.orderId
+      res.sOrderItemId = res.fromItemId
       // delete
     })
 
     params.itemList = params.goodsList //明细
     params.makeStaff = app.globalData.user.staffId
-    // params.deleteItemList = params.deleteList ? params.deleteList : []
+    params.deleteItemList = params.deleteList ? params.deleteList : []
 
     // 系统参数
     params.flgHandleSetting = this.data.flgHandleSetting
     params.addressName = params.address.addressName ? params.address.addressName : params.address.name
-    params.salesChannel = params.channelId
+    // params.salesChannel = params.channelId
     params.canNegativeFlag = false
     params.outDate = util.formatDayTime(new Date())
 
@@ -610,16 +614,37 @@ Page({
     delete params['goodsList']
     delete params['orderItemResponseList']
     console.log('params', params)
-
+    // 设定当前多业务部门业务员
+    this.setData({
+      orgStaffInfo: {
+        staff: {
+          text: params.staffName ? params.staffName : app.globalData.user.staffName,
+          value: [params.staffId ? params.staffId : app.globalData.user.staffId]
+        },
+        org: {
+          text: params.orgName ? params.orgName : app.globalData.user.orgName,
+          value: [params.orgId ? params.orgId : app.globalData.user.orgId]
+        },
+        orgId: params.orgId ? params.orgId : app.globalData.user.orgId,
+        staffId: params.staffId ? params.staffId : app.globalData.user.staffId,
+        orgName: params.orgName,
+        staffName: params.staffName,
+        staffList: params.staffList,
+        orgList: params.orgList,
+      }
+    })
     // return
     return params
   },
-  // reloadOrgStaff(){
-  //   if(this.data.orgStaffInfo){
-  //     let formData = this.data.formData?JSON.JSON(this.data.formData):{}
-  //     formData
-  //   }
-  // },
+
+  /**
+   * 设定当前多业务部门业务员
+   */
+  reloadOrgStaff() {
+    // 先返回对象
+    return this.data.orgStaffInfo || {}
+  },
+
   /**
    * @desc : 保存数据服务
    * @date : 2024/2/1 15:49
@@ -655,7 +680,7 @@ Page({
     //设置显示
     this.setFlagView(this)
     //处理默认值  业务员业务部门
-    formData = this.setStaffOrg(formData)
+    formData = this.data.orgStaffInfo || {} // this.setStaffOrg(formData)
     // 设置送货日期 当前日期 加一天
     var currentDate = new Date();
     currentDate.setDate(currentDate.getDate() + 7);
@@ -1148,7 +1173,7 @@ Page({
   chooseData(e) {
     let item = e.detail.data
     let code = e.detail.code
-    console.log(e)
+    console.log("chooseData", e)
     let formData = this.data.formData && JSON.stringify(this.data.formData) !== '{}' ? JSON.parse(this.data.formData) : {}
     //设置客户信息
     if (code == 'cusName') {
@@ -1205,6 +1230,10 @@ Page({
     if (code == 'fromNo') {
       console.log('item.itemList', item)
       let btnFormData = JSON.parse(this.data.btnFormData)
+      // 关联单号 联系人 联系电话
+      let fromNos = []
+      let contactPhones = []
+      let contactNames = []
       if (item.itemList && item.itemList.length > 0) {
         item.itemList.forEach(res => {
           res.fromId = res.orderId
@@ -1220,13 +1249,24 @@ Page({
         })
         formData.goodsList = item.itemList
         console.log('item.itemList', formData.goodsList)
-        formData.fromNo = item.fromNo
-        formData.fromId = item.fromId
+
+        item.itemList.forEach(it => {
+          if (fromNos.indexOf(it.orderNo) < 0) {
+            fromNos.push(it.orderNo)
+          }
+          if (it.contactPhone != null && contactPhones.indexOf(it.contactPhone) < 0) {
+            contactPhones.push(it.contactPhone)
+          }
+          if (it.contactName != null && contactNames.indexOf(it.contactName) < 0) {
+            contactNames.push(it.contactName)
+          }
+        })
+        // 有多单的情况 240621 删除
+        formData.fromNo = fromNos.join(',')
+        // formData.fromId = item.fromId
         this.calculateAmount(formData)
       }
 
-
-
       formData.cusCode = item.item.cusCode
       formData.cusId = item.item.cusId
       formData.objectId = item.item.cusId
@@ -1245,8 +1285,16 @@ Page({
       formData.salesChannel = item.item.channelId
       formData.channelId = item.item.channelId
       formData.channelName = item.item.channelName
-      formData.contactPhone = item.item.contactPhone
-      formData.contactPhone = item.item.contactPhone
+      formData.contactName = contactNames.join(',')
+      formData.contactPhone = contactPhones.join(',')
+      // 多个订单
+      if (fromNos.length > 1) {
+        formData.orgId = app.globalData.user.orgId
+        formData.staffId = app.globalData.user.staffId
+      } else {
+        formData.orgId = item.item.orgId
+        formData.staffId = item.item.staffId
+      }
     }
     this.setData({
       formData: JSON.stringify(formData)
@@ -1709,11 +1757,6 @@ Page({
         let buttonSaveList = this.data.buttonSaveList
         //按钮
         buttonSaveList = [
-          // {
-          //   code: 'collection',
-          //   width: "200rpx",
-          //   title: mixins.$t("paySave")
-          // },
           {
             code: 'save',
             title: mixins.$t("save")
@@ -1760,14 +1803,6 @@ Page({
       })
       this.setData({
         formData: JSON.stringify(formData),
-        // contentSaveList: [
-        //   {
-        //     code: 'factAmt',
-        //     content: 0,
-        //     type: 'number',
-        //     title: mixins.$t("factAmt")
-        //   }
-        // ]
       })
     } else if (this.data.formMode == Constants.formMode.detailEdit) {
       //编辑
@@ -1826,14 +1861,14 @@ Page({
         title: mixins.$t('addressNo'),
         readonly: true,
       },
-      {
-        code: 'channelName',
-        required: true,
-        readonly: true,
-        title: mixins.$t('saleChannel'),
-        type: 'str',
-        // urlKey: 'chooseChannel'
-      },
+      // {
+      //   code: 'channelName',
+      //   required: true,
+      //   readonly: true,
+      //   title: mixins.$t('saleChannel'),
+      //   type: 'str',
+      //   urlKey: 'chooseChannel'
+      // },
       // { code: 'cusFrom', name: 'cusFromName', required: true, title: mixins.$t('customerSource'), type: 'choose', urlKey: 'choosecusFrom' },
       {
         code: 'contactName',
@@ -1877,14 +1912,14 @@ Page({
         required: true,
         title: mixins.$t('addressNo')
       },
-      {
-        code: 'channelName',
-        // name: 'channelName',
-        required: true,
-        title: mixins.$t('saleChannel'),
-        type: 'str',
-        // urlKey: 'chooseChannel'
-      },
+      // {
+      //   code: 'channelName',
+      //   // name: 'channelName',
+      //   required: true,
+      //   title: mixins.$t('saleChannel'),
+      //   type: 'str',
+      //   // urlKey: 'chooseChannel'
+      // },
       {
         code: 'cusFrom',
         name: 'cusFromName',
@@ -1950,15 +1985,15 @@ Page({
         readonly: true,
         title: mixins.$t('addressNo')
       },
-      {
-        code: 'channelName',
-        name: 'channelName',
-        required: false,
-        readonly: true,
-        title: mixins.$t('saleChannel'),
-        type: 'str',
-        // urlKey: 'chooseChannel'
-      },
+      // {
+      //   code: 'channelName',
+      //   name: 'channelName',
+      //   required: false,
+      //   readonly: true,
+      //   title: mixins.$t('saleChannel'),
+      //   type: 'str',
+      //   // urlKey: 'chooseChannel'
+      // },
       {
         code: 'contactName',
         type: 'str',

+ 1 - 1
package-sales/pages/sales-outbound/add/add.wxml

@@ -4,7 +4,7 @@
 
 
  
-<dk-form-bill type="saleOut" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"  titleCol="skuModel" subCol="calculationFormula" descCol="skuName"     priceCol="factPrice" quantityCol="outingQty" sumAmountCol="sumAmount" iconCol="imagesUrl" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods"   table="{{table}}" pupPriceCol="factAmt"  bind:editItems="editItems" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:onCloseDel="deleteItemList" bind:customersChoose="customersChoose" popType="sale"   staff="staff" org="org" popupTopObj="{{popupTopObj}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}" titpsFlag="{{titpsFlag}}" titpsItemColorFlagKey="titpsItemColorFlagKey" titpsLabel="titpsLabel" isDetailFlag="{{isDetailFlag}}"dataTime="{{dataTime}}"minDate="{{dataTime}}"titleTagCol="brandName" bind:openReverseCalculationPop="openReverseCalculationPop1"reverseCalculationFlag="true"wholeOrderDiscountCol="discount"discountAmountCol="discAmt">
+<dk-form-bill type="saleOut" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"  titleCol="skuModel" subCol="calculationFormula" descCol="skuName"     priceCol="factPrice" quantityCol="outingQty" sumAmountCol="sumAmount" iconCol="imagesUrl" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" bind:setGoods="setGoods"   table="{{table}}" pupPriceCol="factAmt"  bind:editItems="editItems" bind:openChoosedItemInfo="openChoosedItemInfo" deleteName="deleteItemList" bind:onCloseDel="deleteItemList" bind:customersChoose="customersChoose" popType="sale"   staff="staff" org="org" popupTopObj="{{popupTopObj}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}" titpsFlag="{{titpsFlag}}" titpsItemColorFlagKey="titpsItemColorFlagKey" titpsLabel="titpsLabel" readonly="{{isDetailFlag}}" isDetailFlag="{{isDetailFlag}}"dataTime="{{dataTime}}"minDate="{{dataTime}}"titleTagCol="brandName" bind:openReverseCalculationPop="openReverseCalculationPop1"reverseCalculationFlag="true"wholeOrderDiscountCol="discount"discountAmountCol="discAmt">
  
 </dk-form-bill>
 <van-dialog id="van-dialog" />

+ 23 - 7
pages/home-page/home-page.js

@@ -390,20 +390,38 @@ Page({
       swiperList: list
     })
   },
-  // tauchSwiper触摸开始
+  /**
+   * @desc : 触摸开始
+   * @author : 周兴
+   * @date : 2024/6/20 9:16
+   */
   tauchStart(e) {
+    console.log('eee1', e);
     this.setData({
       tauchStart: e.touches[0].pageX
     })
   },
-  // tauchSwiper计算方向
+  /**
+   * @desc : tauchSwiper计算方向
+   * @author : 周兴
+   * @date : 2024/6/20 9:16
+   */
   tauchMove(e) {
+    console.log('eee2', e);
     this.setData({
       direction: e.touches[0].pageX - this.data.tauchStart > 0 ? 'right' : 'left'
     })
   },
-  // tauchSwiper计算滚动
+  tauchStart1(e) {
+    console.log('eeer', e);
+  },
+  /**
+   * @desc : tauchSwiper计算滚动
+   * @author : 周兴
+   * @date : 2024/6/20 9:16
+   */
   tauchEnd(e) {
+    console.log('eee3', e);
     let direction = this.data.direction;
     let list = this.data.swiperList;
     if (direction == 'right') {
@@ -441,15 +459,13 @@ Page({
       this.setData({
         flgStd: true
       })
-      // 获取应用的所有菜单-不用区分模块
-      this.getComStdMenu();
     } else {
       this.setData({
         flgStd: false
       })
-      // 获取常用菜单
-      this.getComMenu();
     }
+    // 获取常用菜单
+    this.getComMenu();
     // 查询应收和收款额(本周) 本周数据点击首页就能刷新
     this.getReceivableAccountSum('week');
     // 查询应收和收款额(本月)

+ 5 - 5
pages/home-page/home-page.wxml

@@ -19,13 +19,13 @@
 <!--内容-->
 <view class="content" style="padding-top: {{ (statusHeight + 90) + 'rpx'}};">
   <!--本周数据-->
-  <view class="swiper-box" bindtouchmove="tauchMove" bindtouchstart="tauchStart" bindtouchend="tauchEnd">
+  <view class="swiper-box" catch:touchmove="tauchMove" bind:touchstart="tauchStart" bind:touchend="tauchEnd">
     <view class="item-box {{item.zIndex==1?'none':''}}" wx:for-item="item" wx:for="{{swiperList}}" wx:key="index" style="--index: {{item.zIndex}}; --left: {{item.mLeft}}; ">
-      <view class="swiper-item" style="background: {{item.background}};">
+      <view class="swiper-item" style="background: {{item.background}};" >
         <view class="content-data-title">{{item.title}}</view>
-        <view class="content-data-items">
+        <view class="content-data-items" >
           <!--成交额-->
-          <view class="content-data-item">
+          <view class="content-data-item" id="done" bindtap="tauchStart1">
             <view class="content-data-item-title" >
               <image src="{{imageUrl + 'right.png'}}" style="width: 28rpx;height:28rpx;margin-right: 10rpx;"></image>
               {{$t['transactionAmount']}}
@@ -36,7 +36,7 @@
           </view>
           <view class="split-class"></view>
           <!--收款额-->
-          <view class="content-data-item">
+          <view class="content-data-item" bindtap="tauchStart1">
             <view class="content-data-item-title">
               <image src="{{imageUrl + 'collect.png'}}" style="width: 28rpx;height:28rpx;margin-right: 10rpx;"></image>
               {{$t['collectionAmount']}}

+ 18 - 6
pages/mine/mine.js

@@ -24,6 +24,7 @@ Page({
   data: {
     imageUrl: config.image_url + '/static/img/',
     dueFlag: false,  // 到期标识
+    dueButtonFlag: false,  // 到期标识
     videoSrc: 'https://s.dev01.dkiboss.com:7000/file/operate_guide/all.mp4',
     cpEndDate: null,
     playFlag: false,
@@ -399,7 +400,11 @@ Page({
       url: this.data.route.companySetting.url,
       events: {
         // 回调后,在这里给页面赋值
-        bandData: function (e) {
+        refresh: function (e) {
+          console.log('tttt',e);
+          wx.reLaunch({
+            url: '/pages/welcome/welcome',
+          })
         }
       },
       success: function (res) {
@@ -671,13 +676,13 @@ Page({
       let nowD = new Date(app.globalData.nowDate).addDays(Constants.CP_ALERT_TIME);
       if (endD < nowD) {
         this.setData({
-          dueFlag: true
+          dueFlag: true,
+          dueButtonFlag: true
         })
       }
     }
     // // 判断当前用户是否到期 标准版
     if (app.globalData.company.gradeCode == Constants.gradeCode.STD
-      && !app.globalData.user.flgInit
       && app.globalData.company.userEndDate) {
       let endD = new Date(app.globalData.company.userEndDate);
       // 服务器的日期为准
@@ -687,9 +692,16 @@ Page({
         this.setData({
           cpEndDate: cpEndDate, // 企业到期日期
         })
-        this.setData({
-          dueFlag: true
-        })
+        if (!app.globalData.user.flgInit) {
+          this.setData({
+            dueFlag: true
+          })
+        } else {
+          this.setData({
+            dueButtonFlag: true
+          })
+        }
+
       }
     }
 

+ 1 - 1
pages/mine/mine.wxml

@@ -44,7 +44,7 @@
             <view wx:if="{{dueFlag}}" style="color:#e00808;margin-left: 20rpx;">{{dueFlag?$t['dueText']:''}}</view>
           </view>
           <!--到期日期前15天显示续费-->
-          <dk-tag wx:if="{{dueFlag}}" padding="0 20rpx" height="30rpx" color="#FF7B1A" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" marginRight="12rpx" value="续费" catchtap="handleRecharge"></dk-tag>
+          <dk-tag wx:if="{{dueButtonFlag}}" padding="0 20rpx" height="30rpx" color="#FF7B1A" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" marginRight="12rpx" value="续费" catchtap="handleRecharge"></dk-tag>
         </view>
       </view>
     </view>

+ 2 - 3
project.private.config.json

@@ -2,9 +2,8 @@
     "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
     "setting": {
         "compileHotReLoad": true,
-        "preloadBackgroundData": false,
-        "bigPackageSizeSupport": true
+        "preloadBackgroundData": false
     },
     "projectname": "iboss_wx_app",
-    "libVersion": "3.0.2"
+    "libVersion": "3.4.3"
 }