Преглед изворни кода

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss_wx_app

# Conflicts:
#	pages/mine/mine.js
姜永辉 пре 1 година
родитељ
комит
320fd2dd39
51 измењених фајлова са 950 додато и 449 уклоњено
  1. 1 0
      api/pages/ivt/inboundReturn.js
  2. 1 0
      api/pages/other/oauth.js
  3. 3 1
      api/pages/pur/purchase.js
  4. 2 1
      api/pages/sale/order.js
  5. 14 1
      components/dkbase/dk-form-bill/dk-form-bill.js
  6. 1 1
      components/dkbase/dk-form-bill/dk-form-bill.wxml
  7. 3 0
      components/dkbase/dk-popup/dk-popup.js
  8. 6 2
      i18n/zh-CN.js
  9. 20 4
      package-base-select/pages/select-goods/select-goods.js
  10. 2 6
      package-base-select/pages/select-goods/select-goods.wxml
  11. 38 26
      package-base-select/pages/select-source-purchase-order/select-source-purchase-order.js
  12. 10 3
      package-base-select/pages/select-staff-right/select-staff-right.js
  13. 125 64
      package-basic-data/pages/activity/activity.js
  14. 7 6
      package-basic-data/pages/activity/activity.wxml
  15. 8 8
      package-basic-data/pages/activity/activity.wxss
  16. 2 6
      package-basic-data/pages/activity/detail/detail.js
  17. 1 1
      package-basic-data/pages/activity/detail/detail.wxml
  18. 3 0
      package-basic-data/pages/customer-list/detail/detail.js
  19. 4 1
      package-basic-data/pages/customer-reception/customer-reception.js
  20. 1 1
      package-basic-data/pages/customer-reception/measure-to/measure-to.js
  21. 4 2
      package-basic-data/pages/func-buy/add-confirm/add-confirm.js
  22. 1 1
      package-basic-data/pages/func-buy/add/add.json
  23. 3 0
      package-business-analysis/pages/business-overview-experience/business-overview-experience.js
  24. 3 0
      package-business-analysis/pages/cus-rec-pay-report/cus-rec-pay-report.js
  25. 3 0
      package-business-analysis/pages/profit-report/org-rank/org-rank.js
  26. 3 0
      package-business-analysis/pages/profit-report/profit-report.js
  27. 3 0
      package-business-analysis/pages/profit-report/sku-rank/sku-rank.js
  28. 3 0
      package-business-analysis/pages/profit-report/staff-rank/staff-rank.js
  29. 1 1
      package-inventory/pages/cost-check/cost-check.wxml
  30. 4 0
      package-inventory/pages/ivt-detail-report/ivt-detail-report.js
  31. 3 0
      package-inventory/pages/ivt-sum-report/detail/detail.js
  32. 3 0
      package-inventory/pages/ivt-sum-report/ivt-sum-report.js
  33. 5 4
      package-inventory/pages/other-outbound/other-outbound.js
  34. 1 1
      package-inventory/pages/other-outbound/other-outbound.wxml
  35. 34 14
      package-purchase/pages/pur-receipt/add/add.js
  36. 62 40
      package-purchase/pages/pur-refund/add/add.js
  37. 13 16
      package-purchase/pages/purchase-order/add/add.js
  38. 21 0
      package-purchase/pages/purchase-order/purchase-order.js
  39. 1 1
      package-purchase/pages/purchase-order/purchase-order.wxml
  40. 84 30
      package-purchase/pages/purchase-return/add/add.js
  41. 14 5
      package-purchase/pages/purchase-return/detail/detail.js
  42. 1 1
      package-purchase/pages/purchase-return/detail/detail.wxml
  43. 92 58
      package-purchase/pages/purchase-return/purchase-return.js
  44. 3 2
      package-purchase/pages/purchase-return/purchase-return.wxml
  45. 5 4
      package-sales/pages/order-billing/add/add.js
  46. 11 11
      pages/add-company/add-company.js
  47. 1 1
      pages/home-page/home-page.js
  48. 290 115
      pages/mine/mine.js
  49. 25 6
      pages/mine/mine.wxml
  50. 0 3
      pages/mine/mine.wxss
  51. 1 1
      pages/shopping/shopping.wxml

+ 1 - 0
api/pages/ivt/inboundReturn.js

@@ -45,6 +45,7 @@ module.exports = {
       chooseStaff: { key: 'chooseStaff', url: '/package-base-select/pages/select-data/select-data',type:'staff'  },
       chooseOrg: { key: 'chooseOrg',url: '/package-base-select/pages/select-data/select-data',type:'org' }, 
       selectSourcePurchaseOrder:{  key:'selectSourcePurchaseOrder',url:'/package-base-select/pages/select-source-purchase-order/select-source-purchase-order' },
+      printedBill: { key: 'printedBill', method: 'printedBill', primaryKey: 'rpId', image:'btn-printing.png' },
     }
   } 
 };

+ 1 - 0
api/pages/other/oauth.js

@@ -13,6 +13,7 @@ module.exports = {
         prefix: 'oauth-server/',
         wxByOpenId:'oauth/wx/token',
         logout:'oauth/wx/logout',
+        getUser:'oauth/wx/get_user',
 
     },
 

+ 3 - 1
api/pages/pur/purchase.js

@@ -39,7 +39,9 @@ module.exports = {
       returnAndOutbound: { key: 'returnAndOutbound', url: '/package-inventory/pages/outbound-processing/outbound-processing' }, 
       detailSup:{
         key:'detailSup',url:'/package-purchase/pages/supplier-list/detail/detail'
-      },
+      }, 
+      supCollection:{ key: 'supCollection', url: '/package-purchase/pages/pur-receipt/add/add', formMode: 'add', idKey: 'supId',image:'btn-customer-collection.png',formType:'purOrder' }, //跳转客户收款
+      supReturnCollection: { key: 'supReturnCollection', url: '/package-purchase/pages/pur-refund/add/add', idKey: 'supId', formType: 'purOrder', image: 'btn-customer-refund.png' },
     }
   } 
 };

+ 2 - 1
api/pages/sale/order.js

@@ -40,11 +40,12 @@ module.exports = {
       chooseChannel: { key: 'chooseChannel', url: '/package-base-select/pages/select-data/select-data', type: 'saleChannel'},
       choosecusFrom: { key: 'choosecusFrom', url: '/package-base-select/pages/select-data/select-data', type: 'customerFrom' },
       collection:{ key: 'collection', url: '/package-sales/pages/customer-collection/add/add', formMode: 'add', idKey: 'cusId',image:'btn-customer-collection.png',formType:'add' }, //跳转客户收款
+      cusReturnCollection: { key: 'cusReturnCollection', url: '/package-sales/pages/customer-collection/refund/refund', idKey: 'rpId', formMode: 'edit', image: 'btn-customer-refund.png' },
       printedBill:{ key: 'printedBill', method:'printedBill', formMode: 'index', idKey: 'cusId',image:'btn-printing.png' },
       detailCustomer: {
         key: 'detailCustomer', url: '/package-basic-data/pages/customer-list/detail/detail'
       },
-      cusReturnCollection: { key: 'cusReturnCollection', url: '/package-sales/pages/customer-collection/refund/refund', idKey: 'rpId', formMode: 'edit', image: 'btn-customer-refund.png' },
+ 
     }
 
   }

+ 14 - 1
components/dkbase/dk-form-bill/dk-form-bill.js

@@ -1232,7 +1232,11 @@ Component({
       if (this.data.readonly) {
         return;
       }
+
       let item = e.currentTarget.dataset;
+      if (item.item.readonlyItem) {
+        return;
+      }
       this.setData({
         showDate: true,
         index: item.index,
@@ -1541,6 +1545,13 @@ Component({
      * @date   : 2024/2/2 11:46
      */
     clearDate(e) {
+      if (this.data.readonly) {
+        return;
+      }
+      let item = e.currentTarget.dataset;
+      if (item.item.readonlyItem) {
+        return;
+      }
       let ds = e.currentTarget.dataset
       let key = ds.key
       let form = this.data.form
@@ -2236,6 +2247,8 @@ Component({
           item.intoingAmt = item.priceInto * item.intoingQty
           sumQuantity += Number(item.intoingQty) //数量
           sumAmount += item.priceInto * item.intoingQty //没有售价默认取标价
+          item.intoingQty = item.decimalPlaces ?  item.intoingQty.toFixed(item.decimalPlaces) : item.intoingQty
+          
         })
         //合计金额
         cardList[index].sumAmount = sumAmount
@@ -2635,7 +2648,7 @@ Component({
      * @author : 周兴
      * @date : 2024/3/27 16:16
      */
-    afterRead(e) {
+    afterRead(e) { 
       const _this = this;
       const {
         file

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

@@ -253,7 +253,7 @@
             <dk-number-phone-input wx:if="{{item.type=='phone'  && (item.show || item.show == undefined)}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" readonly="{{!!readonly || !!item.readonly}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" required="{{item.required?true:false }}" clearable rightIcon="phone" model:value="{{ form[item.code]}}" bind:changeField="changePhone" bind:changeFieldblur="changePhoneblur" bind:clear="clearField" errorMessage="{{item.errMsg}}" id="{{item.code}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.code)}}"></dk-number-phone-input>
             <!--日期-->
             <van-field wx:if="{{item.type=='date'  && (item.show || item.show == undefined)}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" clearable data-card="{{card.name}}" errorMessage="{{item.errMsg}}" border="{{ false }}" readonly="{{true}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openDatePop">
-              <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
+              <van-icon wx:if="{{!readonly && form[item.code]}}" data-item="{{item}}" 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}}" required="{{item.required?true:false }}" 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>

+ 3 - 0
components/dkbase/dk-popup/dk-popup.js

@@ -202,6 +202,9 @@ Component({
      */
     clearChoose(e){
       let ds = e.currentTarget.dataset
+      if (ds.readonly) {
+        return
+      }
       let key = ds.key
       let name = ds.name
       let form = this.data.form

+ 6 - 2
i18n/zh-CN.js

@@ -140,6 +140,7 @@ const ivt = {
   saleReturnInBound: '销退回库',
   purchaseReturnOutBound: '采退出库',
   purReturnOutBound: '采购退货',
+  outPurNo: '退货单号',
   inBoundInfo: '入库信息',
   outBoundInfo: '出库信息',
   outObject: '出库对象',
@@ -219,7 +220,7 @@ const home = {
   transactionAmount: '成交额',
   collectionAmount: '收支额',
   registerCommany: '注册商户',
-  updateCommanyOwner: '权限转让',
+  updateCommanyOwner: '责任人转让',
   settingCommany: '商户设置',
   standardVersion: '免费版',
   flagshipVersion: '旗舰版',
@@ -466,7 +467,9 @@ const customer = {
   storeInformation: '门店信息',
   nextFollowTime: '提醒时间',
   cusCollection: '客户收款',
-  cusReturnCollection: '客户退款',
+  cusReturnCollection: '客户退款', 
+  supCollection: '供应商收款',
+  supReturnCollection: '供应商退款',
   cusReturnCollectionAmt: '退款金额',
   cusNotCollection: '取消收款',
   saleOrder: '销售订单',
@@ -504,6 +507,7 @@ const customer = {
   strangeReception: '陌生接待',
   noPhoneReception: '无客户联系方式',
   sales: '导购员',
+  measureSales: '量尺员工',
   flgAgainMeasure: '是否复尺',
   measureRemarks: '量尺备注',
   measureTime: '量尺时间',

+ 20 - 4
package-base-select/pages/select-goods/select-goods.js

@@ -548,11 +548,21 @@ Page({
     let amount_index = contentList.findIndex(it => it.code == 'amount');
     let count_index = contentList.findIndex(it => it.code == 'count');
     choosedGoodsList.forEach(element => {
-      element.sumPrice = Number(element.itemQty) * Number(element.priceSale)
-      sum = sum + (Number(element.itemQty) * Number(element.priceSale))
+      if(this.data.billType == 'purReturn'){
+        element.sumPrice = Number(element.itemQty) * Number(element.priceInto)
+        sum = sum + (Number(element.itemQty) * Number(element.priceInto))
+      }else{
+        element.sumPrice = Number(element.itemQty) * Number(element.priceSale)
+        sum = sum + (Number(element.itemQty) * Number(element.priceSale))
+      }
+     
     });
-    contentList[amount_index].content = sum
-    contentList[count_index].quantity = choosedGoodsList.sum('itemQty')
+    if(amount_index>=0){
+      contentList[amount_index].content = sum
+    }
+    if(count_index>=0){
+      contentList[count_index].quantity = choosedGoodsList.sum('itemQty')
+    } 
     this.setData({
       choosedGoodsList: choosedGoodsList,
       contentList: contentList
@@ -564,6 +574,9 @@ Page({
    * @author : 于继渤
    */
   openChooseItemInfo(e) {
+    if(this.data.billType == 'out'){
+      return
+    }
     let item = e.currentTarget.dataset.item
     let index = e.currentTarget.dataset.index
     let popChangePrice =  [{
@@ -588,6 +601,9 @@ Page({
       this.data.billType == Constants.billType.inventory){ //销售的时候 改价格pop
       popChangePrice[popChangePriceindex].code = 'priceOut'
     }
+    if(this.data.billType == Constants.billType.purReturn){
+      popChangePrice[popChangePriceindex].code = 'priceInto'
+    }
     this.setData({
       popChangePrice:popChangePrice,
       showChangePrice: true,

+ 2 - 6
package-base-select/pages/select-goods/select-goods.wxml

@@ -252,11 +252,7 @@
             </view>
 
             <view style="display:flex">
-              <!-- <view style="padding-top: 5rpx;">
-                  <dk-text value="数量:"></dk-text>
-              
-                </view> -->
-              <van-stepper value="{{item.itemQty}}" data-index="{{index}}" min="0" integer="{{true}}" max="999999999" bind:change="changeAllreadyChooseQuantity" disabled="true" />
+              <van-stepper value="{{item.itemQty}}" data-index="{{index}}" min="0" integer="{{true}}" max="999999999"  decimal-length="{{ item['decimalPlaces'] }}" bind:change="changeAllreadyChooseQuantity" disabled="true" />
             </view>
           </view>
         </view>
@@ -392,7 +388,7 @@
 
 
 <van-sidebar activeKey="{{sideKey}}" bindchange="changeSidebar" custom-class="{{active == 0 ? 'left-class' : 'right-class'}}">
-  <view wx:if="{{active != 1}}" class="{{active == 0 && controlFlags.choosewhFlag?'addsidebar':''}}" style=" height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'400rpx' }});overflow: scroll;">
+  <view wx:if="{{active != 1}}" class="{{active == 0 && controlFlags.choosewhFlag?'addsidebar':''}}" style=" height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'530rpx' }});overflow: scroll;">
     <van-sidebar-item class="sidebar" wx:key="index" custom-class="{{sideKey - 1 == index? 'sidebar-item-before': (sideKey + 1 == index?'sidebar-item-next':'sidebar-item')}}" title="{{item.brandName}}" data-id="{{item.brandId}}" wx:for="{{typeList}}" />
   </view>
 </van-sidebar>

+ 38 - 26
package-base-select/pages/select-source-purchase-order/select-source-purchase-order.js

@@ -13,8 +13,8 @@ Page({
     routeObjName: 'inbound',
     tableData: [],
     choooseInboundItemList: [],
-    buttonSaveList: [{ code: 'add', title:  mixins.$t('confirm'), width: '120rpx',  }],
-    contentSaveList: [{code:'need',title:'退货总额',type:'str'},{code:'amount',content:0,type:'number'}],
+    buttonSaveList: [{ code: 'add', title: mixins.$t('confirm'), width: '120rpx', }],
+    contentSaveList: [{ code: 'need', title: '退货总额', type: 'str' }, { code: 'amount', content: 0, type: 'number' }],
   },
   /**
    * @desc :   加载数据源
@@ -24,7 +24,17 @@ Page({
   getData(params) {
     return this.excute(this.data.service, this.data.service.selectInboundAndItem, params);
   },
- 
+  /**
+   * @desc :   加载数据源
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setValuesByEdit(data) {
+    this.setData({
+      contentSaveList: [{ code: 'need', title: '退货总额', type: 'str' }, { code: 'amount', content: 0, type: 'number' }]
+    })
+  },
+
   /**
   * @desc :   设置查询参数
   * @date : 2024/2/1 15:49
@@ -44,7 +54,7 @@ Page({
   onListItemChange(e) {
     let tableData = this.data.tableData
     let index = e.currentTarget.dataset.index
-    tableData.forEach(item=>{
+    tableData.forEach(item => {
       item.checked = false
       item.inboundItemList.forEach(it => {
         it.checked = false
@@ -73,13 +83,13 @@ Page({
     let tableData = this.data.tableData
     let index = e.currentTarget.dataset.index
     let index_ = e.currentTarget.dataset.index_
-    tableData.forEach(item=>{
+    tableData.forEach(item => {
       item.checked = false
       item.inboundItemList.forEach(it => {
         it.checked = false
       })
     })
-    tableData[index].inboundItemList[index_].checked =  e.detail
+    tableData[index].inboundItemList[index_].checked = e.detail
 
     this.setData({
       tableData: tableData
@@ -125,11 +135,10 @@ Page({
       if (res.inboundItemList && res.inboundItemList.length > 0) {
         res.inboundItemList.forEach(item => {
           if (item.checked) {
-            item.itemQty = Number(item.canReturnQty )
-            item.itemQtyMin = Number(item.canReturnQty)
-            item.itemQtyMax = Number(-1)
-            item.priceReturn = Number(item.priceInto )
-            item.itemAmt = Number(item.canReturnQty * item.priceInto)
+            // item.itemQty = Number(item.canReturnQty )
+            // item.itemQtyMin = Number(item.canReturnQty)
+            // item.itemQtyMax = Number(-1)
+            // item.itemAmt = Number(item.canReturnQty * item.priceInto)
             choooseInboundItemList.push(item)
           }
         })
@@ -137,14 +146,14 @@ Page({
     })
     if (choooseInboundItemList && choooseInboundItemList.length > 0) {
       choooseInboundItemList.forEach(res => {
-        returnTotalAmount += Number(res.rejectQty * res.priceInto)
+        returnTotalAmount += Number(res.intoingQty * res.priceInto)
       })
     }
 
     contentSaveList[1]['content'] = returnTotalAmount.toFixed(2)
 
     this.setData({
-      returnTotalAmount:returnTotalAmount,
+      returnTotalAmount: returnTotalAmount,
       choooseInboundItemList: choooseInboundItemList,
       contentSaveList: contentSaveList,
     })
@@ -157,8 +166,8 @@ Page({
   toAdd() {
     let choooseInboundItemList = this.data.choooseInboundItemList
     let fromNo = []
-    choooseInboundItemList.forEach(res=>{
-      if(fromNo.indexOf(res.intoNo) == -1){
+    choooseInboundItemList.forEach(res => {
+      if (fromNo.indexOf(res.intoNo) == -1) {
         fromNo.push(res.intoNo)
       }
       res.sPurId = res.fromId
@@ -167,7 +176,8 @@ Page({
       res.fromItemId = res.intoItemId
       res.sIntoId = res.intoId
       res.sIntoItemId = res.intoItemId
-     delete res['itemId']
+      res.intoingQty = res.decimalPlaces ?  res.intoingQty.toFixed(res.decimalPlaces) : res.intoingQty
+      delete res['itemId']
     })
 
     let that = this
@@ -176,35 +186,37 @@ Page({
     item.fromNo = fromNo
     item.fromId = choooseInboundItemList[0].intoId
     item.sPurId = item.purId
-    if(this.data.id){
+    if (this.data.id) {
       wx.navigateTo({
         url: this.data.route.addReturn.url,
-  
+
         success: function (res) {
           // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
           res.eventChannel.emit('params', {
-            formMode:'add',
+            formMode: 'add',
             choooseInboundItemList: choooseInboundItemList,
             beforeSumAmount: that.data.returnTotalAmount * -1,
             item: JSON.stringify(item)
           })
         }
       })
-    }else{
+    } else {
       const eventChannel = this.getOpenerEventChannel();
       eventChannel.emit('bindData', {
-        data:{itemList: choooseInboundItemList,
-          
-          beforeSumAmount: that.data.returnTotalAmount * -1}
-        
+        data: {
+          itemList: choooseInboundItemList,
+
+          beforeSumAmount: that.data.returnTotalAmount * -1
+        }
+
       })
       wx.navigateBack({
         data: 1
       })
     }
- 
 
-    
+
+
   },
 
   /**

+ 10 - 3
package-base-select/pages/select-staff-right/select-staff-right.js

@@ -90,7 +90,13 @@ Page({
     // 修改之后的 值
     params = Object.assign({}, params, this.data.item);
     // params.roleIds = (params.roleIds && params.roleIds.length > 0) ? params.roleIds.join(',') : undefined
-    let tableData = this.data.tableData
+    let tableData = []
+
+    if (this.data.activeTabs == 0) {
+      tableData =   this.data.tableDataWXP
+    }else{
+      tableData =   this.data.tableDataWEB
+    }
     //格式化数据
     let tableDataTemp = []
     tableData.forEach(res => {
@@ -100,8 +106,8 @@ Page({
           appCode: res.appCode
         })
       }
-      if (res.subMenus && res.subMenus.length > 0) {
-        res.subMenus.forEach(it => {
+      if (res.children && res.children.length > 0) {
+        res.children.forEach(it => {
           if (it.checked) {
             tableDataTemp.push({
               funUuid: it.funUuid,
@@ -169,6 +175,7 @@ Page({
     } else {
       params.appCode = 'CP-WXP'
     }
+    params.gradeCode = this.data.gradeCode
     return params
   },
   /**

+ 125 - 64
package-basic-data/pages/activity/activity.js

@@ -34,7 +34,7 @@ Page({
         wxMaxNum: null,
         cpEndDate: null,
         activityTable: null,
-        vipTable: null,
+        vipTable: [],
         readFlag: false,
         staffCount: {
             maxNum: 1,
@@ -89,6 +89,7 @@ Page({
             },
         ],
         funcMenuFlg: false,
+        userEndDate: null,
     },
     /**
      * @desc : 选择活动明细
@@ -120,20 +121,14 @@ Page({
      * @date : 2024/4/1
      */
     chooseVipItem(e) {
-        let item = e.currentTarget.dataset.item;
-        // let summaryInfo = this.data.summaryInfo
-        // // 计算截止日期
-        // let months = item.validLong + item.extraLong
-        // let endDate = app.globalData.company.endDate
-        // // 升级需要从当天开始算
-        // if (this.data.upgradeFlag) {
-        //     endDate = new Date()
-        // }
-        // endDate = new Date(endDate).addMonths(months).addDays(-1)
-        // summaryInfo.endDate = endDate.toDateStr();
+        let item = e.currentTarget.dataset.item
+        let index = e.currentTarget.dataset.index
+        let vipTable = this.data.vipTable
+        item.chooseVipFlag = !item.chooseVipFlag
+        vipTable[index] = item
         this.setData({
             chooseVipFlag: !this.data.chooseVipFlag,
-            // summaryInfo: summaryInfo
+            vipTable,
         })
         // 计算金额
         this.countSummaryAmountSTD();
@@ -205,43 +200,54 @@ Page({
         // 先清空
         summaryInfo.amountInfo = '';
         let extendDays = null;
-        let nowDate = new Date(new Date().toDateStr());
-        if (summaryInfo.reCountFlag) {
-            // 手机端用户
-            if (summaryInfo.wxMaxNum) {
-                summaryInfo.amountInfo += item.wxPrice + '(元) * ' + summaryInfo.wxMaxNum + '(个) '
-                amount += item.wxPrice * summaryInfo.wxMaxNum
-            }
-            // vip报表
-            if (this.data.chooseVipFlag && vipTable && vipTable.length > 0) {
-                let vipItem = vipTable[0]
-                summaryInfo.amountInfo += ' + ' + vipItem.wxPrice + '(元/VIP) ';
-                amount += vipItem.wxPrice;
+        // 服务器的时间
+        let nowDate = new Date(this.data.currentDate.toDateStr());
+
+        extendDays = new Date(summaryInfo.userEndDate).dayDiff(nowDate) + 1;
+        if (summaryInfo.wxMaxNum >= 0) {
+            //  购买授权
+            if (this.data.buyUser) {
+                summaryInfo.amountInfo += item.wxPrice + '(元)  '
+            } else {
+                summaryInfo.amountInfo += item.wxPrice + '(元)  ' +
+                    ' * 1(年) * ' + summaryInfo.wxMaxNum + '(个)'
             }
+            amount += item.wxPrice * summaryInfo.wxMaxNum
+        }
+        // vip报表
+        if (vipTable && vipTable.length > 0) {
+            vipTable.forEach(vipItem => {
+                if (vipItem.chooseVipFlag) {
+                    summaryInfo.amountInfo += ' + ' + vipItem.wxPrice + '(元/' + vipItem.activityItemDescribe + ') ';
+                    summaryInfo.amountInfo = '( ' + summaryInfo.amountInfo + ' ) ';
+                    amount += vipItem.wxPrice;
+                }
+            })
+
+        }
+        //  购买授权
+        if (this.data.buyUser) {
+            summaryInfo.amountInfo += ' / 365(天) * ' + extendDays + '(天) * ' + summaryInfo.wxMaxNum + '(个)'
             if (summaryInfo.amountInfo) {
+                amount = (amount / 365 * extendDays).toFixed(2);
                 summaryInfo.amountInfo += ' = ' + amount + '(元)'
                 summaryInfo.amount = amount;
             }
-            extendDays = new Date(summaryInfo.userEndDate).dayDiff(nowDate) + 1;
+            this.setData({
+                userEndDate: summaryInfo.userEndDate
+            })
+
         } else {
-            extendDays = new Date(summaryInfo.userEndDate).dayDiff(nowDate) + 1;
-            if (summaryInfo.wxMaxNum) {
-                summaryInfo.amountInfo += item.wxPrice + '(元)  '
-                amount += item.wxPrice * summaryInfo.wxMaxNum
-            }
-            // vip报表
-            if (this.data.chooseVipFlag && vipTable && vipTable.length > 0) {
-                let vipItem = vipTable[0]
-                summaryInfo.amountInfo += ' + ' + vipItem.wxPrice + '(元/VIP) ';
-                summaryInfo.amountInfo = '( ' + summaryInfo.amountInfo + ' ) ';
-                amount += vipItem.wxPrice;
-            }
-            summaryInfo.amountInfo += ' / 365(天) * ' + extendDays + '(天) * ' + summaryInfo.wxMaxNum + '(个)'
+            //  续费 
             if (summaryInfo.amountInfo) {
-                amount = (amount / 365 * extendDays).toFixed(2);
+                amount = (amount).toFixed(2);
                 summaryInfo.amountInfo += ' = ' + amount + '(元)'
                 summaryInfo.amount = amount;
             }
+            let userEndDate = new Date(summaryInfo.userEndDate).addMonths(12).addDays(-1)
+            this.setData({
+                userEndDate: userEndDate.toDateStr()
+            })
         }
 
         // 计算一授权一天的单价
@@ -320,14 +326,28 @@ Page({
             return;
         }
         if (this.data.gradeCode == Constants.gradeCode.STD) {
-            // 必须要选择一个授权 
-            if (Number(summaryInfo.amount) <= 0) {
+            // 必须要选择一个授权              
+            if (Number(summaryInfo.wxMaxNum) <= 0 && this.data.buyUser) {
                 util.showToast('请选择一个授权');
                 return false
             }
+            // 功能包
+            let chooseVipFlag = false
+            this.data.vipTable.forEach(it => {
+                if (it.chooseVipFlag) {
+                    chooseVipFlag = true
+                    return
+                }
+            })
+            if (Number(summaryInfo.wxMaxNum) <= 0 && !this.data.buyUser && !chooseVipFlag) {
+                util.showToast('请选择一个授权或功能包');
+                return false
+            }
             // 判断数量是否超出续约授权
-            if (currentUserCount.wxNum > summaryInfo.wxMaxNum && summaryInfo.reCountFlag) {
-                let staffInfo = [{ wxMaxNum: this.data.wxMaxNum, title: '当前授权', wxTitle: '手机授权', code: 'current', userTitle: '当前用户' }, { wxMaxNum: summaryInfo.wxMaxNum, title: '续费授权', wxTitle: '手机授权', code: 'renew' }]
+            console.log(currentUserCount.wxNum - summaryInfo.wxMaxNum);
+            if (currentUserCount.wxNum > summaryInfo.wxMaxNum && summaryInfo.reCountFlag
+                && currentUserCount.wxNum > 1 && currentUserCount.wxNum - summaryInfo.wxMaxNum > 1) {
+                let staffInfo = [{ wxMaxNum: Number(this.data.wxMaxNum) + 1, title: '当前授权', wxTitle: '手机授权', code: 'current', userTitle: '当前用户' }, { wxMaxNum: summaryInfo.wxMaxNum, title: '续费授权', wxTitle: '手机授权', code: 'renew' }]
                 this.save({ saveFlag: false, url: '/package-basic-data/pages/activity/detail/detail?staffInfo=' + JSON.stringify(staffInfo) });
             } else {
                 this.save({});
@@ -353,8 +373,11 @@ Page({
         this.setData({
             summaryInfo: summaryInfo
         })
-        // 计算金额
-        this.countSummaryAmountSTD();
+        wx.nextTick(() => {
+            // 计算金额
+            this.countSummaryAmountSTD();
+        });
+
     },
     /**
      * @desc : 校验
@@ -413,18 +436,41 @@ Page({
             params.buyEndDate = summaryInfo.userEndDate
             params.endDate = app.globalData.company.endDate
             params.wxMaxNum = summaryInfo.wxMaxNum
-
-            if (this.data.showVip && this.data.chooseVipFlag) {
-                params.vip = true;
-            } else if (!this.data.showVip && app.globalData.company.vip) {
-                params.vip = true;
-            }
-            if (this.data.chooseVipFlag) {
-                params.vip = true;
-            }
             if (!summaryInfo.reCountFlag && summaryInfo.wxMaxNumSocial) {
                 params.wxMaxNum = summaryInfo.wxMaxNum + summaryInfo.wxMaxNumSocial
             }
+            let funPackage = app.globalData.company.funPackage ? [...app.globalData.company.funPackage] : []
+            params.funPackage = funPackage
+            // 续费的时候需要传 
+            //  购买授权
+            if (this.data.buyUser) {
+                params.reNew = app.globalData.company.reNew
+            } else {
+                let renew = {
+                    "user_end_date": this.data.userEndDate,
+                    "wx_max_num": summaryInfo.wxMaxNum,
+                }
+                params.reNew = renew
+                // 续费时候保持原来的 微信人数 
+                params.wxMaxNum = summaryInfo.wxMaxNumSocial
+            }
+            params.webMaxNum = 0
+            params.remarks = summaryInfo.amountInfo
+            // 选中的功能包的数据
+            let activityIds = []
+            let itemIds = []
+            this.data.vipTable.forEach(it=>{
+                if (it.chooseVipFlag) {
+                    activityIds.push(it.activityId)
+                    itemIds.push(it.itemId)
+                }
+            })
+            if (activityIds.length > 0){
+                params.activityIds = activityIds
+                params.activityItemIds = itemIds
+            }   
+             //  交易类型-续费
+             params.tradeType = '交易类型-续费'
         } else {
             params.webMaxNum = summaryInfo.webMaxNum
             params.wxMaxNum = summaryInfo.wxMaxNum
@@ -484,7 +530,12 @@ Page({
         }
         // 标准版
         if (this.data.gradeCode == Constants.gradeCode.STD) {
-            params.activityTypeList = [Constants.kindCode.activityGrade];
+            if (this.data.buyUser) {
+                params.activityTypeList = [Constants.kindCode.activityGrade];
+            } else {
+                params.activityTypeList = [Constants.kindCode.activityGrade, Constants.kindCode.activityFunc];
+            }
+
         } else {
             params.activityTypeList = [Constants.kindCode.activityGrade, Constants.kindCode.activityVip];
         }
@@ -498,7 +549,7 @@ Page({
                     if (this.data.gradeCode == Constants.gradeCode.STD) {
                         this.setData({
                             activityTable: activityTable.filter(it => it.activityType == Constants.kindCode.activityGrade),
-                            vipTable: activityTable.filter(it => it.activityType == Constants.kindCode.activityVip),
+                            vipTable: activityTable.filter(it => it.activityType == Constants.kindCode.activityFunc),
                         })
                         this.handleDataStd(activityTable);
                     } else {
@@ -527,7 +578,7 @@ Page({
             let endDate = this.data.currentDate.addMonths(months).addDays(-1)
             let dayDiffs = null;
             if (summaryInfo.userEndDate) {
-                dayDiffs = new Date(summaryInfo.userEndDate).dayDiff(new Date(new Date().toDateStr()))
+                dayDiffs = new Date(summaryInfo.userEndDate).dayDiff(this.data.currentDate)
             }
             // 如果截止日期是空,就取活动中的截止日期
             if (!summaryInfo.userEndDate || !dayDiffs || dayDiffs < 0) {
@@ -551,14 +602,17 @@ Page({
             this.setData({
                 summaryInfo: summaryInfo
             })
-            // 计算金额
-            this.countSummaryAmountSTD();
+            wx.nextTick(() => {
+                // 计算金额
+                this.countSummaryAmountSTD();
+            });
         }
     },
     /**
      * 生命周期函数--监听页面加载
      */
     onLoad(options) {
+        console.log(options, "onLoad");
         // 升级
         if (options && options.upgrade) {
             wx.setNavigationBarTitle({
@@ -581,7 +635,8 @@ Page({
             }
 
             this.setData({
-                gradeCode: app.globalData.company.gradeCode
+                gradeCode: app.globalData.company.gradeCode,
+                buyUser: options.buyUser
             })
         }
 
@@ -595,12 +650,18 @@ Page({
         })
         // 如果是标准版,需要获取用户授权数(手机)
         let summaryInfo = {}
-        summaryInfo.wxMaxNum = 1
+        if (app.globalData.company.gradeCode == Constants.gradeCode.STD && !options.buyUser) {
+            summaryInfo.wxMaxNum = app.globalData.company.wxMaxNum
+            summaryInfo.reCountFlag = true
+        } else {
+            summaryInfo.wxMaxNum = 1
+        }
+
         summaryInfo.wxMaxNumSocial = this.data.wxMaxNum
         // 续费用户到期日期
         summaryInfo.userEndDate = app.globalData.company.userEndDate
         this.setData({
-            summaryInfo: summaryInfo
+            summaryInfo: summaryInfo,
         })
         // 获取活动
         // this.getActivity();
@@ -691,7 +752,7 @@ Page({
                         title: '供应商往来',
                         icon: 'btn-stored.png',
                     },
-                     
+
                 ],
             })
         } else {

+ 7 - 6
package-basic-data/pages/activity/activity.wxml

@@ -47,15 +47,16 @@
 				<dk-cell fontSize="19" center="center" contentFontWeight="700" contentColor="#FF7B1A" content="{{item.wxPrice}}"></dk-cell>
 				<!-- 授权-->
 				<view class="card-desc-std">
-					<view>{{$t['userAuthorize']}}</view>
-					<van-stepper integer="{{true}}" value="{{ summaryInfo.wxMaxNum}}" min="1" bind:change="changeUserSTD" />
+					<view style="font-size: 13px;">{{$t['userAuthorize']}}</view>
+					<view style="text-align: right;"><van-stepper integer="{{true}}" value="{{ summaryInfo.wxMaxNum}}" min="0" bind:change="changeUserSTD" /></view>
+					
 				</view>
 			</view>
 
 			<!--VIP报表-->
-			<view wx:if="{{showVip}}" class="{{chooseVipFlag?'func-card-vip-std-selected':'func-card-vip-std'}}" wx:for="{{vipTable}}" wx:for-item="item" wx:key="index" data-item="{{item}}" catchtap="chooseVipItem">
+			<view wx:if="{{showVip}}" class="{{item.chooseVipFlag?'func-card-vip-std-selected':'func-card-vip-std'}}" wx:for="{{vipTable}}" wx:for-item="item" wx:key="index" data-index="{{index}}" data-item="{{item}}" catchtap="chooseVipItem">
 				<!-- 标题 -->
-				<view class="card-title-std">{{item.activityItemName}}
+				<view class="card-title-std" style="text-align: center;">{{item.activityItemName?item.activityItemName:item.activityType}}
 				</view>
 				<!-- 价格-->
 				<dk-cell fontSize="19" center="center" contentFontWeight="700" contentColor="#FF7B1A" content="{{item.wxPrice}}"></dk-cell>
@@ -114,9 +115,9 @@
 	<view class="summary-class" wx:if="{{gradeCode == 'STD'}}">
 		<view class="summary-item-class">订单详情:</view>
 		<view class="summary-item-class">{{summaryInfo.amountInfo}}</view>
-		<view class="summary-item-class" style="display: flex;">截止日期:<view style="color:#FF7B1A">{{summaryInfo.userEndDate}}</view>
+		<view class="summary-item-class" style="display: flex;">截止日期:<view style="color:#FF7B1A">{{userEndDate}}</view>
 		</view>
-		<view class="summary-item-class" style="display: flex;justify-content: flex-end;" wx:if="{{summaryInfo.wxMaxNum}}">
+		<view class="summary-item-class" style="display: flex;justify-content: flex-end;" wx:if="{{buyUser && summaryInfo.wxMaxNum}}">
 			折合<dk-cell fontSize="14" left="5rpx" fontWeight="bold" height="45rpx" contentColor="#FF7B1A" content="{{summaryInfo.priceInfo}}"></dk-cell>/天/授权</view>
 	</view>
 

+ 8 - 8
package-basic-data/pages/activity/activity.wxss

@@ -116,8 +116,8 @@ page {
 }
 
 .func-card-std {
-	margin: 15rpx 30rpx;
-	width: 50%;
+	margin: 15rpx 22rpx;
+	width: 95%;
 	height: 215rpx;
 	background: #FCF0DD;
 	border-radius: 19rpx;
@@ -125,8 +125,8 @@ page {
 }
 
 .func-card-vip-std-selected {
-	margin: 15rpx 10rpx 15rpx 0;
-	width: 38%;
+	margin: 15rpx 0rpx 15rpx 22rpx;
+	width: 29%;
 	height: 215rpx;
 	background: #FCF0DD;
 	border-radius: 19rpx;
@@ -134,8 +134,8 @@ page {
 }
 
 .func-card-vip-std {
-	margin: 15rpx 10rpx 15rpx 0;
-	width: 38%;
+	margin: 15rpx 0rpx 15rpx 22rpx;
+	width: 29%;
 	height: 215rpx;
 	background: #ffffff;
 	border-radius: 19rpx;
@@ -185,10 +185,10 @@ page {
 	font-size: 11px;
 }
 
-.card-desc-std {
+.card-desc-std { 
 	margin: 10rpx 20rpx;
 	display: flex;
-	height: 54rpx;
+	height: 55rpx;
 	align-items: center;
 	justify-content: space-between;
 	color: #1B365D;

+ 2 - 6
package-basic-data/pages/activity/detail/detail.js

@@ -48,7 +48,7 @@ Page({
 		params.pageSize = Constants.MAX_PAGE_SIZE;
 		if (this.data.gradeCode == Constants.gradeCode.STD) {
 			// 标准版需要排除掉 企业授权的那个用户
-			params.flgInit = false;
+			// params.flgInit = false;
 		}
 		return params;
 	},
@@ -72,11 +72,7 @@ Page({
 		// 过滤出手机授权(默认展示)
 		tableData = tableData.filter(it => it.loginType == Constants.loginType.loginTypeWx
 			|| it.loginType == Constants.loginType.loginTypeWxPc);
-		tableData.forEach(it => {
-			if (it.flgInit) {
-				it.staffName = staffName + '(负责人)'
-			}
-		})
+	 
 		this.setData({
 			tableData: tableData
 		})

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

@@ -29,7 +29,7 @@
 <dk-tabs wx:if="{{gradeCode != 'STD'}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"></dk-tabs>
 
 <!-- 列表区 -->
-<dk-list list="{{tableData}}" title="staffName" content="{{contentList}}" routeObjName="{{routeObjName}}" flgPoint="{{false}}" titleBtnText="取消授权" bind:clickTitleBtn="handleStaff"></dk-list>
+<dk-list list="{{tableData}}" title="staffName" content="{{contentList}}" routeObjName="{{routeObjName}}" flgPoint="{{false}}"  roleValue="flgInit" titleBtnText="取消授权" bind:clickTitleBtn="handleStaff"></dk-list>
 
 <view style="height: 200rpx;"></view>
 

+ 3 - 0
package-basic-data/pages/customer-list/detail/detail.js

@@ -692,6 +692,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 4 - 1
package-basic-data/pages/customer-reception/customer-reception.js

@@ -226,7 +226,10 @@ Page({
       if (res.followStatus == mixins.$t('followStatusFoot') && res.measureStatus == mixins.$t('scaleStatusMeasured')) {
           res.measureStatusName = ''
       }
-      res.addressFull = res.addressFull + res.addressNo
+      if(res.addressFull){
+        const addressNo = res.addressNo? res.addressNo: ''
+        res.addressFull = res.addressFull + addressNo
+      }
     })
     this.setData({
       tableData: tableData,

+ 1 - 1
package-basic-data/pages/customer-reception/measure-to/measure-to.js

@@ -28,7 +28,7 @@ Page({
         { code: 'cusPhone', type: 'phone', title: mixins.$t('cusPhone'), required: true, readonly: true },
         { code: 'addressFull', type: 'address', title: mixins.$t('addressFull'), required: false, readonly: true },
         { code: 'addressNo', type: 'str', required: false, title: mixins.$t('addressNo'), readonly: true },
-        { code: 'staffName', type: 'str', required: false, title: mixins.$t('sales'), readonly: true },
+        { code: 'staffName', type: 'str', required: false, title: mixins.$t('measureSales'), readonly: true },
         { code: 'flgAgainMeasure', type: 'checkedBox', required: false, title: mixins.$t('flgAgainMeasure'), readonly: false },
         { code: 'measureRemarks', type: 'textarea', required: false, rows: '5', title: mixins.$t('measureRemarks') },
         { code: 'measureTime', type: 'dateTime', required: true, title: mixins.$t('measureTime') },

+ 4 - 2
package-basic-data/pages/func-buy/add-confirm/add-confirm.js

@@ -129,9 +129,11 @@ Page({
         params.wxMaxNum = app.globalData.company.wxMaxNum
         params.webMaxNum = app.globalData.company.webMaxNum
         params.activityId = this.data.item.activityId
-        params.activityItemId = this.data.item.itemId
+        params.activityItemId = this.data.item.itemId       
         params.remarks = this.data.userEndDateString
-        
+        params.reNew = app.globalData.company.reNew
+        params.activityIds = [this.data.item.activityId]
+        params.activityItemIds = [this.data.item.itemId]
         funPackage.push({
             funUuids: this.data.item.funUuids,
             activityId: this.data.item.activityId,

+ 1 - 1
package-basic-data/pages/func-buy/add/add.json

@@ -1,4 +1,4 @@
 {
     "usingComponents": {},
-    "navigationBarTitleText": "增值定制"
+    "navigationBarTitleText": "增配功能"
 }

+ 3 - 0
package-business-analysis/pages/business-overview-experience/business-overview-experience.js

@@ -142,6 +142,9 @@ Page({
         params.activityId = this.data.funData.activityId
         params.activityItemId = this.data.funData.itemId
         params.remarks = this.data.userEndDateString
+        params.reNew = app.globalData.company.reNew
+        params.activityIds = [this.data.funData.activityId]
+        params.activityItemIds = [this.data.funData.itemId]
 
         funPackage.push({
             funUuids: this.data.funData.funUuids,

+ 3 - 0
package-business-analysis/pages/cus-rec-pay-report/cus-rec-pay-report.js

@@ -205,6 +205,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 3 - 0
package-business-analysis/pages/profit-report/org-rank/org-rank.js

@@ -140,6 +140,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 3 - 0
package-business-analysis/pages/profit-report/profit-report.js

@@ -247,6 +247,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 3 - 0
package-business-analysis/pages/profit-report/sku-rank/sku-rank.js

@@ -140,6 +140,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 3 - 0
package-business-analysis/pages/profit-report/staff-rank/staff-rank.js

@@ -146,6 +146,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 1 - 1
package-inventory/pages/cost-check/cost-check.wxml

@@ -133,7 +133,7 @@
 </view>
 
 <van-sidebar activeKey="{{sideKey}}" bindchange="changeSidebar" custom-class="{{active == 0 ? 'left-class' : 'right-class'}}">
-  <view wx:if="{{active != 1}}" class="{{active == 0 && controlFlags.choosewhFlag?'addsidebar':''}}" style=" height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'400rpx' }});overflow: scroll;">
+  <view wx:if="{{active != 1}}" class="{{active == 0 && controlFlags.choosewhFlag?'addsidebar':''}}" style=" height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'530rpx' }});overflow: scroll;">
     <van-sidebar-item class="sidebar" wx:key="index" custom-class="{{sideKey - 1 == index? 'sidebar-item-before': (sideKey + 1 == index?'sidebar-item-next':'sidebar-item')}}" title="{{item.brandName}}" data-id="{{item.brandId}}" wx:for="{{typeList}}" />
   </view>
 </van-sidebar>

+ 4 - 0
package-inventory/pages/ivt-detail-report/ivt-detail-report.js

@@ -153,6 +153,10 @@ Page({
     params.whIds = this.data.form.whIds //仓库  
     //排序
     params.desc = params.sellableQuantityAsc?((params.sellableQuantityAsc==1)?null:2):null
+    // 查有效数据
+    params.flgValid = true;
+    // 过滤0
+    params.invQtyFlag = true;
     return params
   },
   /**

+ 3 - 0
package-inventory/pages/ivt-sum-report/detail/detail.js

@@ -226,6 +226,9 @@ Page({
     params.activityId = _this.data.item.params.activityId
     params.activityItemId = _this.data.item.params.activityItemId
     params.remarks = _this.data.item.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [_this.data.item.params.activityId]
+    params.activityItemIds = [_this.data.item.params.activityItemId]
 
     funPackage.push({
       funUuids: _this.data.item.params.funUuids,

+ 3 - 0
package-inventory/pages/ivt-sum-report/ivt-sum-report.js

@@ -244,6 +244,9 @@ Page({
     params.activityId = this.data.params.activityId
     params.activityItemId = this.data.params.activityItemId
     params.remarks = this.data.params.userEndDateString
+    params.reNew = app.globalData.company.reNew
+    params.activityIds = [this.data.params.activityId]
+    params.activityItemIds = [this.data.params.activityItemId]
 
     funPackage.push({
         funUuids: this.data.params.funUuids,

+ 5 - 4
package-inventory/pages/other-outbound/other-outbound.js

@@ -35,11 +35,11 @@ Page({
         },
         { code: 'packageBox', type: 'packageBox', title: mixins.$t("packageBox"), },
         {
-            code: 'whId',
-            name: 'whName',
+            code: 'whName', 
             title: mixins.$t('warehouseId'),
-            type: 'choose',
-            urlKey: 'openingInventory'
+            type: 'str',
+            urlKey: 'openingInventory',
+            readonly: true,
         },
         {
             code: 'skuSpec',
@@ -58,6 +58,7 @@ Page({
             title: mixins.$t('goodsBatch'),
             tip: mixins.$t('tipPop'),
             type: 'str',
+            readonly: true,
         },
         ],
 

+ 1 - 1
package-inventory/pages/other-outbound/other-outbound.wxml

@@ -3,7 +3,7 @@
 
 <loading wx:if="{{loading}}" ></loading>
 
-<dk-form-bill type="out" id="{{formName}}"routeObjName="{{routeObjName}}" cardList="{{cardList}}"   titleCol="skuCode" descCol="skuModel"   quantityCol="{{quantityCol}}"   sumQuantityCol="{{sumQuantityCol}}"  contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" bind:editItems="setGoods"  table="{{table}}"
+<dk-form-bill type="out" id="{{formName}}"routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="brandName"   titleCol="skuModel" descCol="skuName"   quantityCol="{{quantityCol}}"   sumQuantityCol="{{sumQuantityCol}}"  contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" bind:editItems="setGoods"  table="{{table}}" iconCol="imagesUrl"
 bind:delItem="setGoods" bind:setGoods="setGoods" bind:clickAttach="clickAttach"  bind:uploadSucess="uploadSucess" bind:uploadError="uploadError" deleteName="deleteItemList" 
 cardContentList="{{cardContentList}}"
 quantityRedTitle="可售量:"

+ 34 - 14
package-purchase/pages/pur-receipt/add/add.js

@@ -22,14 +22,12 @@ Page({
     amountArr: [{
       title: mixins.$t('payAmount'),
       code: 'payableResidue'
-    }
-    ],
+    }],
     cardList: [{
       name: 'main'
-    },],
+    }, ],
     contentObj: {
-      main: [
-        {
+      main: [{
           code: 'staffId',
           name: 'staffName',
           title: mixins.$t('staffId'),
@@ -143,7 +141,7 @@ Page({
     // }
     // 校验
     let valid = this.selectComponent('#dkForm').validData();
-    if(!valid){
+    if (!valid) {
       return;
     }
 
@@ -333,21 +331,21 @@ Page({
   },
 
   /**
-  * @desc : 获取当前客户的账款信息
-  * @date : 2024/2/1 15:49
-  * @author : 姜永辉
-  */
+   * @desc : 获取当前客户的账款信息
+   * @date : 2024/2/1 15:49
+   * @author : 姜永辉
+   */
   getAccount(id) {
+    let formData = JSON.parse(this.data.formData)
     return this.excute(this.data.accountService, this.data.accountService.getAccount + id, {}).then(res => {
-      if (res.data.code == 200) {
-        let formData = JSON.parse(this.data.formData)
+      if (res.data.code == 200) { 
         if (res.data.data) {
           let data = res.data.data
           if (data != null) {
             data.receivableResidue = data.receivableResidue ? Number(data.receivableResidue) : 0
             data.receiptResidue = data.receiptResidue ? Number(data.receiptResidue) : 0
             formData.cusDebt = Number(data.receivableResidue - data.receiptResidue) > 0 ? Number(data.receivableResidue - data.receiptResidue) : 0
-
+            formData.objInfo.arrearsResidue = Number(data.payableResidue - data.paymentResidue)
           } else {
             formData.cusDebt = 0
           }
@@ -377,7 +375,7 @@ Page({
         title: '编辑供应商付款',
       })
       this.getRpForUpdate(this.data.id)
-    } else {
+    }    else {
       if (this.data.formReturnMode == 'supplier') {
         let item = this.data.item
         //供应商详情跳转来的 新建 
@@ -395,6 +393,28 @@ Page({
     this.setData({
       formData: JSON.stringify(formData)
     })
+    if (this.data.formType == 'purOrder') { //采购订单 转 新建供应商付款
+      let formData = JSON.parse(this.data.formData)
+      formData.supId = this.data.item.supId
+      formData.supCode = this.data.item.supCode
+      formData.supName = this.data.item.supplierName
+      formData.supType = this.data.item.supType
+      formData.contactName = this.data.item.contactName
+      formData.contactPhone = this.data.item.contactPhone
+      formData.returnAddress = this.data.item.returnAddress
+      formData.objInfo = {
+        supId: this.data.item.supId,
+        supName: this.data.item.supplierName,
+        supType: this.data.item.supType,
+        supCode: this.data.item.supCode,
+        returnAddress: this.data.item.returnAddress,
+      }
+      this.setData({
+        formData: JSON.stringify(formData)
+      }) 
+         // 获取当前客户的账款信息
+   this.getAccount(formData.supId)
+    } 
 
   },
 

+ 62 - 40
package-purchase/pages/pur-refund/add/add.js

@@ -22,11 +22,10 @@ Page({
     amountArr: [{
       title: mixins.$t('payAmount'),
       code: 'payableResidue'
-    }
-    ],
+    }],
     cardList: [{
       name: 'main'
-    },],
+    }, ],
     contentObj: {
       main: [
 
@@ -49,7 +48,9 @@ Page({
         {
           code: 'sumAmtPay',
           type: 'number',
-          negative: true, min: Constants.MIN_VALUE, maxFlag: false,
+          negative: true,
+          min: Constants.MIN_VALUE,
+          maxFlag: false,
           title: mixins.$t("paymentAmount"),
           readonly: false,
           required: true,
@@ -147,7 +148,7 @@ Page({
     // }
     // 校验
     let valid = this.selectComponent('#dkForm').validData();
-    if(!valid){
+    if (!valid) {
       return;
     }
     // if (!data.sumAmtPay || data.sumAmtPay == 0) {
@@ -292,14 +293,14 @@ Page({
     formData.returnAddress = objInfo.returnAddress
     formData.supName = objInfo.supName
     formData.supId = objInfo.supId
-    if(objInfo.paymentResidue && objInfo.paymentResidue < 0){
-      formData.arrearsResidue = Number(objInfo.payableResidue + objInfo.paymentResidue )
-      formData.objInfo.arrearsResidue = Number(objInfo.payableResidue + objInfo.paymentResidue )
-    }else{
-      formData.arrearsResidue = Number(objInfo.payableResidue - objInfo.paymentResidue )
-      formData.objInfo.arrearsResidue = Number(objInfo.payableResidue - objInfo.paymentResidue )
+    if (objInfo.paymentResidue && objInfo.paymentResidue < 0) {
+      formData.arrearsResidue = Number(objInfo.payableResidue + objInfo.paymentResidue)
+      formData.objInfo.arrearsResidue = Number(objInfo.payableResidue + objInfo.paymentResidue)
+    } else {
+      formData.arrearsResidue = Number(objInfo.payableResidue - objInfo.paymentResidue)
+      formData.objInfo.arrearsResidue = Number(objInfo.payableResidue - objInfo.paymentResidue)
     }
-   
+
     this.setData({
       formData: JSON.stringify(formData)
     })
@@ -322,7 +323,7 @@ Page({
           payableResidue: data.payableResidue
         }
 
-        
+
 
         this.setData({
           formData: JSON.stringify(data),
@@ -336,10 +337,10 @@ Page({
   },
 
   /**
-  * @desc : 获取当前客户的账款信息
-  * @date : 2024/2/1 15:49
-  * @author : 姜永辉
-  */
+   * @desc : 获取当前客户的账款信息
+   * @date : 2024/2/1 15:49
+   * @author : 姜永辉
+   */
   getAccount(id) {
     return this.excute(this.data.accountService, this.data.accountService.getAccount + id, {}).then(res => {
       if (res.data.code == 200) {
@@ -350,7 +351,7 @@ Page({
             data.receivableResidue = data.receivableResidue ? Number(data.receivableResidue) : 0
             data.receiptResidue = data.receiptResidue ? Number(data.receiptResidue) : 0
             formData.cusDebt = Number(data.receivableResidue - data.receiptResidue) > 0 ? Number(data.receivableResidue - data.receiptResidue) : 0
-
+            formData.objInfo.arrearsResidue = Number(data.payableResidue - data.paymentResidue)
           } else {
             formData.cusDebt = 0
           }
@@ -364,28 +365,28 @@ Page({
     });
   },
   /**
-     * @desc : 给表单赋值
-     * @date : 2024/2/1 15:49
-     * @author : 于继渤
-     */
-    setValuesByEdit(data) {
-      data.data.supId = data.data.supId ? data.data.supId : data.data.objectId,
-        data.data.objInfo = {
-          supId: data.data.supId ? data.data.supId : data.data.objectId,
-          supName: data.data.supName,
-          receiptResidue: data.data.receiptResidue,
-          receivableResidue: data.data.receivableResidue,
-          payableResidue: data.data.payableResidue,
-          paymentResidue: data.data.paymentResidue,
-          arrearsResidue:Number(data.data.payableResidue - data.data.paymentResidue)
-        }
-      if (this.data.formMode == Constants.formMode.edit) {
-        data.data.sumAmtPay = 0
+   * @desc : 给表单赋值
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setValuesByEdit(data) {
+    data.data.supId = data.data.supId ? data.data.supId : data.data.objectId,
+      data.data.objInfo = {
+        supId: data.data.supId ? data.data.supId : data.data.objectId,
+        supName: data.data.supName,
+        receiptResidue: data.data.receiptResidue,
+        receivableResidue: data.data.receivableResidue,
+        payableResidue: data.data.payableResidue,
+        paymentResidue: data.data.paymentResidue,
+        arrearsResidue: Number(data.data.payableResidue - data.data.paymentResidue)
       }
-      this.setData({
-        formData: JSON.stringify(data.data)
-      })
-    },
+    if (this.data.formMode == Constants.formMode.edit) {
+      data.data.sumAmtPay = 0
+    }
+    this.setData({
+      formData: JSON.stringify(data.data)
+    })
+  },
   /**
    * 生命周期函数--监听页面加载
    */
@@ -406,7 +407,28 @@ Page({
     this.setData({
       formData: JSON.stringify(formData)
     })
-
+    if (this.data.formType == 'purOrder') { //采购订单 转 新建供应商付款
+      let formData = JSON.parse(this.data.formData)
+      formData.supId = this.data.item.supId
+      formData.supCode = this.data.item.supCode
+      formData.supName = this.data.item.supplierName
+      formData.supType = this.data.item.supType
+      formData.contactName = this.data.item.contactName
+      formData.contactPhone = this.data.item.contactPhone
+      formData.returnAddress = this.data.item.returnAddress
+      formData.objInfo = {
+        supId: this.data.item.supId,
+        supName: this.data.item.supplierName,
+        supType: this.data.item.supType,
+        supCode: this.data.item.supCode,
+        returnAddress: this.data.item.returnAddress,
+      }
+      this.setData({
+        formData: JSON.stringify(formData)
+      })
+      // 获取当前客户的账款信息
+      this.getAccount(formData.supId)
+    }
   },
 
 

+ 13 - 16
package-purchase/pages/purchase-order/add/add.js

@@ -143,8 +143,7 @@ Page({
    * @date   : 2024年3月12日
    */
   chooseData(e) {
-    let formData = JSON.parse(this.data.formData)
-
+    let formData =this.data.formData? JSON.parse(this.data.formData) :{}
     let code = e.detail.code
     let data = e.detail.data.data
 
@@ -532,13 +531,7 @@ Page({
     params.makeStaff = app.globalData.user.staffId // 制单人    
 
     const deleteLisr = formData.deleteList ? formData.deleteList.filter(li => li.chooseFlg !== null && li.chooseFlg !== undefined && li.chooseFlg !== '') : [];
-    params.deleteItemList = deleteLisr
-    if (this.data.formMode == "edit") {
-      params.editPurchaseItemList = formData.goodsList //商品明细
-      params.deletePurchaseItemList = params.deleteItemList // 删除的itemlist放到这里
-    } else {
-      params.purchaseItemVOList = formData.goodsList //商品明细
-    }
+    params.deleteItemList = deleteLisr 
     let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
     params.intoStatus = params.intoStatus ? params.intoStatus : Constants.intoStatus.unInBound //状态
     // 系统参数【自动办理】关闭,开单页面不显示【库存自动办理】,值是不勾选;
@@ -556,14 +549,15 @@ Page({
     params.makeStaff = app.globalData.user.staffId
     params.annexPaths = formData.annexPaths || [] //附件 
     params.updatePurchaseOrderFlag = params.goodsList.sum("pricePur") == 0
-    //保存接口并没有计算,因此前台计算
-    if (this.data.formMode == Constants.formMode.edit) { //只有编辑的时候 才会去 校验哪些编辑了 哪些没编辑
-
-      let changeList = this.searchEditList(this.data.searchEditList, params.goodsList)
-      console.log('changeList', changeList);
-      params.goodsList = changeList
+    //保存接口并没有计算,因此前台计算 
+    if (this.data.formMode == "edit") {  //只有编辑的时候 才会去 校验哪些编辑了 哪些没编辑
+      let changeList = this.searchEditList(this.data.searchEditList, formData.goodsList)
+      params.editPurchaseItemList = changeList //商品明细
+      params.deletePurchaseItemList = params.deleteItemList // 删除的itemlist放到这里
+    } else {
+      params.purchaseItemVOList = formData.goodsList //商品明细
     }
-    params.itemList = params.goodsList //明细   
+    // params.itemList = params.goodsList //明细   //标准版没用
     delete params['goodsList']
     return params
   },
@@ -769,6 +763,9 @@ Page({
           delta: 1
         });
       }, 200)
+    }else{
+      // 保存后重新初始化
+      this.loadInit();
     }
   },
 

+ 21 - 0
package-purchase/pages/purchase-order/purchase-order.js

@@ -271,6 +271,15 @@ Page({
               idKey: 'purId',
             },
             {
+              name: 'supCollection',
+              title: mixins.$t("supCollection"),
+              idKey: 'supId'
+            }, //跳转客户收款
+            {
+              name: 'supReturnCollection',formType:Constants.formMode.add,
+              title: mixins.$t("supReturnCollection")
+            }, 
+            {
               name: 'purchaseCancellation',
               title: mixins.$t('purchaseCancellation'), //采购作废 
             }, //title:mixins.$t('followUp') 
@@ -303,6 +312,15 @@ Page({
               idKey: 'purId',
             },
             {
+              name: 'supCollection',
+              title: mixins.$t("supCollection"),
+              idKey: 'supId'
+            }, //跳转客户收款
+            {
+              name: 'supReturnCollection',formType:Constants.formMode.add,
+              title: mixins.$t("supReturnCollection")
+            }, 
+            {
               name: 'purchaseCancellation',
               title: mixins.$t('purchaseCancellation'), //采购作废 
             }, //title:mixins.$t('followUp') 
@@ -461,6 +479,9 @@ Page({
         } else {
           res.statusName = res.intoStatusName
         }
+        if(res.returnQty){
+          res.customText = '有退货'
+        }
       });
     }
     sumAmount = tableData.sum('sumAmount')

+ 1 - 1
package-purchase/pages/purchase-order/purchase-order.wxml

@@ -16,7 +16,7 @@
    list="{{tableData}}" flgPoint = "{{true}}" title="supplierName"  bind:toTitle="toTitle" 
    status="statusName"  contentCol="displayedStatus" buttonList = "{{popbuttonList}}"routeObjName="{{routeObjName}}"
      contentObj="{{contentObj}}" footerAmount="{{footerAmount}}" 
-     footerInfo="{{footerInfo}}" bind:open="open" ></dk-list>
+     footerInfo="{{footerInfo}}" bind:open="open" customText="customText"></dk-list>
 
 <!-- 显示没用更多 -->
 <van-divider wx:if="{{noMore}}" contentPosition="center" borderColor="#DCDCDC">{{$t['noMore']}}~</van-divider>

+ 84 - 30
package-purchase/pages/purchase-return/add/add.js

@@ -90,13 +90,20 @@ Page({
       type: 'str',
       readonly: true,
     },
+    // {
+    //   code: 'whId',
+    //   name: 'whName',
+    //   choosePopupType: '',
+    //   title: mixins.$t("warehouseId"),
+    //   type: 'choose',
+    //   urlKey: 'openingInventory',
+    //   readonly: true,
+    // },
     {
-      code: 'whId',
-      name: 'whName',
-      choosePopupType: '',
+      code: 'whName',
       title: mixins.$t("warehouseId"),
-      type: 'choose',
-      urlKey: 'openingInventory',
+      type: 'str',
+      readonly: true,
     },
     {
       code: 'nonStdCode',
@@ -104,6 +111,7 @@ Page({
       type: 'str',
       required: true,
       tip: mixins.$t('tipPop'),
+      readonly: true,
     },
     ],
 
@@ -169,17 +177,15 @@ Page({
   setParams(params) {
     let itemIndex = 0
     let formData = JSON.parse(this.data.formData)
-
-
     params.fromNo = (params.fromNo && params.fromNo.length > 0) ? params.fromNo[0] : null
     //采购订单ID
     params.fromId = this.data.item ? (this.data.item.fromId ? this.data.item.fromId : null) : null
     params.sPurId = this.data.item ? (this.data.item.sPurId ? this.data.item.sPurId : null) : null
     params.factAmt = params.intoingAmt
     params.intoQty = this.convertToNegative(params.intoQty) ? this.convertToNegative(params.intoQty) : 0
-    params.intoAmt = this.convertToNegative(params.intoAmt) ?  this.convertToNegative(params.intoAmt) : 0
-    params.returnQty = Math.abs(params.sumQuantity) 
-    params.returnAmt = Math.abs(params.sumAmount)
+    params.intoAmt = this.convertToNegative(params.intoAmt) ? this.convertToNegative(params.intoAmt) : 0
+    // params.returnQty = Math.abs(params.sumQuantity)
+    // params.returnAmt = Math.abs(params.sumAmount)
     if (this.data.formMode == 'edit') {
       delete params['intoType']
     }
@@ -192,11 +198,13 @@ Page({
       }
       res.supId = res.supId ? res.supId : null
       res.factPrice = res.priceInto
+      res.invQty = null
       res.factAmt = res.intoingAmt
       res.costAmt = Number(res.intoingQty * res.costPrice)
       res.itemIndex = itemIndex++
-      res.returnQty = Math.abs(params.intoingQty) 
-      res.returnAmt = Math.abs(params.intoingAmt)
+      res.intoingQty = Number(res.intoingQty)
+      // res.returnQty = Math.abs(res.intoingQty)
+      // res.returnAmt = Math.abs(res.intoingAmt)
     })
     let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
     params.flgAutoHandle = btnFormData ? btnFormData.flag : false //自动出库标识 
@@ -223,7 +231,11 @@ Page({
     params['salesChannel'] = params.channelId
     delete params['goodsList']
     delete params['orderItemResponseList']
-
+    //保存接口并没有计算,因此前台计算
+    if (this.data.formMode == Constants.formMode.edit) { //只有编辑的时候 才会去 校验哪些编辑了 哪些没编辑
+      let changeList = this.searchEditList(this.data.searchEditList, params.itemList)
+      params.itemList = changeList
+    }
     //大小编辑判断
     if (params.itemList.length > 0) {
       params.limitEdit = true
@@ -288,9 +300,7 @@ Page({
         intoingQty: Number(element.intoingQty),
         priceInto: element.priceInto,
         whId: element.whId,
-        nonStdCode: element.nonStdCode,
-        flgGift: element.flgGift,
-        remarks: element.remarks,
+        nonStdCode: element.nonStdCode
       })
     });
     newList_.forEach(element => {
@@ -302,11 +312,12 @@ Page({
         intoingQty: Number(element.intoingQty),
         priceInto: element.priceInto,
         whId: element.whId,
-        nonStdCode: element.nonStdCode,
-        flgGift: element.flgGift,
-        remarks: element.remarks,
+        nonStdCode: element.nonStdCode
       })
     });
+    console.log('oldList', oldList)
+    console.log('newList', newList)
+    console.log('newList_', newList_)
     return this.findChangedItems(oldList, newList, newList_)
   },
 
@@ -343,13 +354,19 @@ Page({
   isEqualFormData(oldData_, newData_) {
     //因为isEqual 对比方法 的对象 要一样内容对比 
     let oldData = {
-      supId: newData_.supId || '',
-      supName: newData_.supName || '',
-      remarks: newData_.remarks || '',
+      supId: oldData_.supId || '',
+      supName: oldData_.supName || '',
+      intoDate: oldData_.intoDate || '',
+      returnAddress: oldData_.returnAddress || '',
+      addressFull: oldData_.address.addressFull || '',
+      remarks: oldData_.remarks || '',
     }
     let newData = {
       supId: newData_.supId || '',
       supName: newData_.supName || '',
+      intoDate: newData_.intoDate || '',
+      returnAddress: newData_.returnAddress || '',
+      addressFull: newData_.address.addressFull || '',
       remarks: newData_.remarks || '',
     }
     //验证总单上的 附件list
@@ -392,9 +409,8 @@ Page({
     * @author : 于继渤
     */
   saveData() {
-    // return
     if (this.data.formMode == Constants.formMode.edit) {
-      return this.excute(this.data.inboundPurchaseReturnService, this.data.inboundPurchaseReturnService.inboundUpdate, this.data.params);
+      return this.excute(this.data.service, this.data.service.update, this.data.params);
     } else {
       return this.excute(this.data.service, this.data.service.insert, this.data.params);
     }
@@ -419,11 +435,20 @@ Page({
         res.content = 0
       }
     })
-
+    //设置业务员业务部门
+    this.setStaffOrg()
     this.setData({
       cardList: cardList,
       contentSaveList: contentSaveList
     })
+
+    if (this.data.formMode == Constants.formMode.edit) { //编辑
+      var pages = getCurrentPages();
+      var prevPage = pages[pages.length - 2]; //上一个页面
+      prevPage.setData({
+        refreshByAdd: true
+      })
+    }
   },
 
   //展开
@@ -574,7 +599,7 @@ Page({
         sumQuantity += Number(item.intoingQty) //数量
         sumAmount += item.priceInto * item.intoingQty //没有售价默认取标价
 
-        item.intoingQty_min = item.canReturnQty ? item.canReturnQty : item.invQty * -1 //可出库最大值
+        item.intoingQty_min = item.canReturnQty ? item.canReturnQty : Math.abs(item.invQty) * -1 //可出库最大值
       })
       //合计金额
       cardList[index].sumAmount = sumAmount
@@ -642,8 +667,8 @@ Page({
     formData = data.data
     //处理地址
     formData.address = {
-      address: data.returnAddress,
-      addressFull: data.returnAddress
+      address: data.data.returnAddress,
+      addressFull: data.data.returnAddress
     }
     formData['staff'] = {
       text: formData.staffName ? formData.staffName : app.globalData.user.staffName,
@@ -662,7 +687,7 @@ Page({
       if (item.skuImages) {
         item['imagesUrl'] = item.skuImages.length > 0 ? item.skuImages[0].url : null
       }
-      item.intoingQty_min = item.canReturnQty ? item.canReturnQty : item.invQty * -1 //可出库最大值
+      item.intoingQty_min = item.canReturnQty ? item.canReturnQty : Math.abs(item.invQty) * -1 //可出库最大值
 
     })
     formData.goodsList = data.dataItem
@@ -691,13 +716,25 @@ Page({
       // 原仓库ID 240701
       element.whIdPri = element.whId
       element.nonStdCodePri = element.nonStdCode
+      element.intoingQty = element.decimalPlaces ? element.intoingQty.toFixed(element.decimalPlaces) : element.intoingQty
     })
+    if (!formData.fromId) {
+      // 采购退货-编辑-不关联源单的-要可以选商品
+      let cardList = this.data.cardList
+      let index = cardList.findIndex(it => it.name == 'items');
+
+      cardList[index].chooseGoodsFlag = true
+      this.setData({
+        cardList: cardList
+      })
+    }
     this.setData({
       beforeSumAmount: formData.returnAmt,
       searchEditList: searchEditList,
       formData: JSON.stringify(formData),
       initialFormData: JSON.stringify(formData)
     })
+
     this.calculateTotal()
     setTimeout(() => {
       // 刷新商品明细 显示 查看更多
@@ -752,7 +789,7 @@ Page({
           goodsList: data.choooseInboundItemList
         }
         let item = data.item ? JSON.parse(data.item) : null
-        console.log('item', item)
+        console.log('onLoaditem', item)
         if (item) {
           formData.fromNo = item.fromNo
           formData.supId = item.supId
@@ -859,6 +896,23 @@ Page({
         formData: JSON.stringify(formData)
       })
     }
+    if (this.data.formMode == Constants.formMode.edit) { //编辑
+      wx.setNavigationBarTitle({
+        title: '编辑采购退货'
+      })
+      let contentObj = this.data.contentObj
+      if (this.data.gradeCode == Constants.gradeCode.STD) {
+        contentObj.main = [
+          { code: 'supId', name: 'supName', title: mixins.$t("supplier"), type: 'choose', required: true, urlKey: 'chooseSupplier', readonly: true, readonlyItem: true },
+          { code: 'address', type: 'address', title: mixins.$t('returnAddress'), required: true, readonly: true, readonlyItem: true },
+          { code: 'intoDate', type: 'date', required: false, title: mixins.$t("returnDate"), readonly: true, readonlyItem: true },
+        ]
+      }
+      this.setData({
+        satffAndOrgReadonly: true,
+        contentObj: contentObj
+      })
+    }
     let contentObj = this.data.contentObj
     // 标准版,自动出库办理标识默认勾上
     if (this.data.gradeCode == Constants.gradeCode.STD) {

+ 14 - 5
package-purchase/pages/purchase-return/detail/detail.js

@@ -128,14 +128,20 @@ Page({
   setValuesByEdit(data) {
     let formData = JSON.parse(this.data.formData)
     formData = data.data
+    let sItemAmt = Number(0)
     data.dataItem.forEach(item => {
+      if(item.sitemAmt){
+        sItemAmt+=item.sitemAmt
+      }
       item.intoingQty_max = 0
       item.priceStd = item.priceInto
+    
       //处理图片
       if (item.skuImages) {
         item['imagesUrl'] = item.skuImages.length > 0 ? item.skuImages[0].url : null
       }
-      item.intoingQty_min = item.canReturnQty ? item.canReturnQty : item.invQty * -1 //可出库最大值
+      item.intoingQty_min = item.canReturnQty ? item.canReturnQty : Math.abs(item.invQty) * -1 //可出库最大值
+      item.intoingQty = item.decimalPlaces ?  item.intoingQty.toFixed(item.decimalPlaces) : item.intoingQty
     })
     formData.goodsList = data.dataItem
     let searchEditList = data.dataItem
@@ -145,7 +151,8 @@ Page({
       }
     });
     this.setData({
-      beforeSumAmount: formData.returnAmt,
+      afterSumAmount: sItemAmt ? Number(sItemAmt + formData.intoAmt) : 0,
+      purSumAmount: sItemAmt,
       formData: JSON.stringify(formData)
     })
     this.calculateTotal()
@@ -173,7 +180,7 @@ Page({
     let formData = JSON.parse(this.data.formData)
     formData.goodsList.forEach(item => {
       sumAmount += item.priceInto * item.intoingQty
-      sumQuantity += (item.intoingQty)
+      sumQuantity += Number(item.intoingQty)
     })
     formData.sumAmount = sumAmount
     formData.sumQuantity = sumQuantity
@@ -185,13 +192,15 @@ Page({
     //设置退货后总额 
     let afterSumAmount = (Math.abs(beforeSumAmount) - Math.abs(sumAmount)) * -1
     this.setData({
-      afterSumAmount: afterSumAmount,
+
       contentSaveList: contentSaveList,
       cardList: cardList,
       formData: JSON.stringify(formData)
     })
   },
 
-
+  getData() {
+    this._detail(this.data.id)
+  },
 
 })

+ 1 - 1
package-purchase/pages/purchase-return/detail/detail.wxml

@@ -31,7 +31,7 @@
     <view style="display: flex;padding:10rpx;">
       <view style="background-color:#F4F9FF;width:50%;margin:10rpx;padding:10rpx;border-radius: 16rpx;">
         <view style="font-size:13px;text-align: center;">退货前总额</view>
-      <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#1B365D" spaceWidth="0" contentFontWeight="700" content="{{beforeSumAmount}}"></dk-cell></view>
+      <dk-cell left="0rpx" center="center" fontSize="13" contentFontSize="18" contentColor="#1B365D" spaceWidth="0" contentFontWeight="700" content="{{purSumAmount ? purSumAmount : 0}}"></dk-cell></view>
       <view style="background-color:#F4F9FF;width: 50%;margin:10rpx;padding:10rpx;border-radius: 16rpx;">
         <view style="font-size:13px;text-align: center;">退货后总额</view>
       <dk-cell left="0rpx" center="center" fontSize="15" contentFontSize="18" contentColor="#1B365D" spaceWidth="0" contentFontWeight="700" content="{{afterSumAmount}}"></dk-cell>

+ 92 - 58
package-purchase/pages/purchase-return/purchase-return.js

@@ -1,6 +1,7 @@
 const Constants = require('@/utils/Constants.js');
 const util = require('@/utils/util.js')
 const mixins = require('@/mixins/index.js')
+import Dialog from '@/dist/dialog/dialog.js';
 const app = getApp()
 Page({
   mixins: [mixins],
@@ -10,27 +11,57 @@ Page({
   data: {
     isfirst: true,
     inboundPurchaseReturnService: app.globalData['inboundPurchaseReturnService'],
-     // 系统参数
-     flgHandleSetting: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
-     tagList: [{ title: mixins.$t("all"), code: '' }, { title: mixins.$t("inBoundingIntoStatusName"), code: mixins.$t("inBoundingIntoStatus")  }, { title: mixins.$t("inBoundedIntoStatusName"), code: mixins.$t("inBoundedIntoStatus")  }],
+    // 系统参数
+    flgHandleSetting: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
+    tagList: [{ title: mixins.$t("all"), code: '' }, { title: mixins.$t("inBoundingIntoStatusName"), code: mixins.$t("inBoundingIntoStatus") }, { title: mixins.$t("inBoundedIntoStatusName"), code: mixins.$t("inBoundedIntoStatus") }],
     // 查询条件
-    searchContent: [{ code: 'createtime', title: mixins.$t("pastThirthtyDays"), defaultValue: 5, searchType: Constants.searchType.date }, { code: 'choose', title: mixins.$t("choose"), searchType: Constants.searchType.pick }],
+    // 查询条件
+    searchContent: [{
+      code: 'makeTime',
+      title: mixins.$t('pastThirthtyDays'),
+      defaultValue: 5,
+      searchType: Constants.searchType.date
+    },
+    {
+      code: 'staff',
+      title: mixins.$t("staffId"),
+      dropType: 'staff'
+    },
+    {
+      code: 'org',
+      title: mixins.$t("orgId"),
+      dropType: 'org'
+    },
+    {
+      code: 'choose',
+      title: mixins.$t('choose'),
+      searchType: Constants.searchType.pick
+    }],
     // 查询条件-筛选
-    pullMenuList: [
-
-      { code: 'purchaseStatus', pullType: 'mSelect', typeName: 'purchaseStatus' },
-      { code: 'contactName', dataType: '' },
-      { code: 'deliveryPhone', dataType: '' },
-      { code: 'addressFull', dataType: '' },
-      { code: 'makingTime', dataType: 'date' }, { code: 'deliveryTime', dataType: 'date' }],
+    pullMenuList: [{
+      code: 'intoNo',
+      title: mixins.$t('outPurNo')
+    }, {
+      code: 'supName',
+    }, {
+      code: 'contactPhone',
+    }, {
+      code: 'returnAddress',
+      title: mixins.$t('address')
+    },
+    // 筛选新增作废选项 刘尧 2024.5.30
+    {
+      code: 'viewVoidedDocuments',
+      dataType: 'checkbox'
+    },],
     // 列表区(脚部金额)
-    footerAmount: { name: 'returnAmt', title: mixins.$t("totalAmount") },
+    footerAmount: { name: 'intoAmt', title: mixins.$t("totalAmount") },
     // 列表区(脚部信息)
-    footerInfo: [{ name: 'returnQty', title: mixins.$t("piece"), prefix: mixins.$t("together"), }],
-    intoStatus:null,
+    footerInfo: [{ name: 'intoQty', title: mixins.$t("piece"), prefix: mixins.$t("together"), }],
+    intoStatus: null,
     // 列表区(内容)
     contentList: [
-      { name: 'intoNo', title: mixins.$t("saleOrderNo") },
+      { name: 'intoNo', title: mixins.$t("outPurNo") },
       {
         name: [{ name: 'contactName', title: '' },
         { name: 'contactPhone', title: '' }], title: mixins.$t("returnInfo")
@@ -61,11 +92,11 @@ Page({
     }],
   },
 
-    /**
-   * @desc :   跳转供應商详情
-   * @date :   2024年5月27日
-   * @author : 于繼渤
-   */
+  /**
+ * @desc :   跳转供應商详情
+ * @date :   2024年5月27日
+ * @author : 于繼渤
+ */
   toTitle(e) {
     let cusId = e.detail.item.supId
     wx.navigateTo({
@@ -90,17 +121,19 @@ Page({
     if (!item.flgValid) { //作废
       buttonList = [{
         name: 'printedBill',
-        title: mixins.$t("printedBill")
-      }, ] //打印
+        title: mixins.$t("printedBill"),
+        image: 'btn-printing.png'
+      },] //打印
     } else {
       // 弹出按钮
       buttonList = [{
         name: 'editInto',
         title: mixins.$t('edit'),
-      }, { name: 'invalid', title: mixins.$t("invaidOrder") },{
+      }, { name: 'invalid', title: mixins.$t("invaidOrder") }, {
         name: 'printedBill',
-        title: mixins.$t("printedBill")
-      }, ]
+        title: mixins.$t("printedBill"),
+        image: 'btn-printing.png'
+      },]
     }
     this.setData({
       // 弹出按钮
@@ -140,31 +173,24 @@ Page({
  * @date : 2024/2/1 15:49
  * @author : 于继渤
  */
-onChangeTabs(e) {
-  let code = e.detail.detail.code
-  this.setData({
-    intoStatus: code,
-  })
-  this.searchData()
-},
+  onChangeTabs(e) {
+    let code = e.detail.detail.code
+    this.setData({
+      intoStatus: code,
+    })
+    this.searchData()
+  },
   /**
    * @desc : 设置查询参数
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
   setSearchParams(params) {
-    let tabsActive = this.data.tabsActive
     params.intoType = '入库类型-采退出库'
-    // if (tabsActive == 0) { //出库状态
-    //   params.intoStatus = ''
-    // } else if (tabsActive == 1) {
-    //   params.intoStatus = mixins.$t("inBoundingIntoStatus")
-    // } else if (tabsActive == 2) {
-    //   params.intoStatus = mixins.$t("inBoundedIntoStatus")
-    // }
+    params.viewVoidedDocuments = params.viewVoidedDocuments ? true : false
     params.intoStatus = this.data.intoStatus == 'all' ? '' : this.data.intoStatus
     if (this.data.flgHandleSetting) {
-      params.intoStatus = mixins.$t("inBoundedIntoStatus") 
+      params.intoStatus = mixins.$t("inBoundedIntoStatus")
     }
     //采购订单明细 跳转到采购退货  
     let isfirst = this.data.isfirst
@@ -219,8 +245,8 @@ onChangeTabs(e) {
     let sumAmount = Number(0)
     let sumQuantity = Number(0)
     tableData.forEach(res => {
-      sumAmount += res.returnAmt
-      sumQuantity += res.returnQty
+      sumAmount += res.intoAmt
+      sumQuantity += res.intoQty
     })
     contentSaveList[0].content = sumAmount
     contentSaveList[1].bill = tableData.length
@@ -236,24 +262,32 @@ onChangeTabs(e) {
   * @author : 于继渤
   */
   invalid(e) {
-
-    this.setData({
-      loading: true
-    })
-    return this.excute(this.data.inboundPurchaseReturnService, this.data.inboundPurchaseReturnService.inboundRepeal+e.intoId, {}).then(res => {
-      if (res.data.code == Constants.SUCESS_CODE) {
-        wx.showToast({
-          title: mixins.$t('invalidSuccessfully'),
-          image: '/static/image/success.png',
-          duration: 1000
+    let that = this
+    // 是否弹出询问框
+    Dialog.confirm({
+      message: mixins.$t('isInvalidDetail'),
+    }).then(() => {
+      that.setData({
+        loading: true
+      })
+      return that.excute(that.data.service, that.data.service.cancel, { intoId: e.intoId }).then(res => {
+        that.setData({
+          loading: false
         })
-        // 查询
-        this.searchData();
-      }
-      this.setData({
-        loading: false
+        if (res.data.code == Constants.SUCESS_CODE) {
+          wx.showToast({
+            title: mixins.$t('invalidSuccessfully'),
+            image: '/static/image/success.png',
+            duration: 1000
+          })
+          // 查询
+          that.searchData();
+        }
+
       })
+    }).catch(() => {
     })
+
   },
   /**
    * 生命周期函数--监听页面加载

+ 3 - 2
package-purchase/pages/purchase-return/purchase-return.wxml

@@ -3,13 +3,14 @@
 <loading wx:if="{{loading}}" loadingName="加载中" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['rpNo','skuName','skuCode','onlyCode'])}}">
+  <!-- 查询条件 -->
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['rpNo','supName','contactPhone','returnAddress'])}}">
   </dk-dropdown-menu>
 
   <dk-tabs wx:if="{{!flgHandleSetting}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
 </van-sticky>
 
-
+<van-dialog id="van-dialog" />  
 <!-- 列表区 -->
 <dk-list list="{{tableData}}" flgSubFormatDate="{{true}}" titleCorner="" title="supName" status="intoStatusName" content="{{contentList}}" collectCol="collectStatus" contentObj="{{contentObj}}" contentCol="" footerAmount="{{footerAmount}}" footerInfo="{{footerInfo}}" bind:toDetail="toDetail" bind:toTitle="toTitle" bind:toStatus="toStatus" bind:toPoint="toPoint" routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list>
 <view style="height: 200rpx;"></view>

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

@@ -185,16 +185,17 @@ Page({
     // },
 
     {
-      code: 'whId',
-      name: 'whName',
+      code: 'whName', 
       title: mixins.$t("warehouseId"),
-      type: 'choose',
-      urlKey: 'openingInventory',
+      type: 'str',
+      // urlKey: 'openingInventory',
+      readonly: true
     },
     {
       code: 'nonStdCode',
       title: mixins.$t("goodsBatch"),
       type: 'str',
+      readonly: true
     },
     {
       code: 'flgGift',

+ 11 - 11
pages/add-company/add-company.js

@@ -56,17 +56,17 @@ Page({
     * @author : 姜永辉
     */
     loadQrCodeData() {
-        let _this = this
-        let param = {
-            openid: app.globalData.openid
-        }
-        api.request(Constants.SYS_OPENID_API + 'oauth/wx/qrcode', 'POST', param).then(res => {
-            if (res.data.code == Constants.SUCESS_CODE) {
-                this.setData({
-                    imgQrcode: config.image_url + res.data.data
-                })
-            }
-        })
+          let _this = this
+          let param = {
+              openid: app.globalData.openid
+          }
+          api.request(Constants.SYS_OPENID_API + 'oauth/wx/qrcode', 'POST', param).then(res => {
+              if (res.data.code == Constants.SUCESS_CODE) {
+                  this.setData({
+                      imgQrcode: config.image_url + res.data.data
+                  })
+              }
+          })
     },
 
     /**

+ 1 - 1
pages/home-page/home-page.js

@@ -71,7 +71,7 @@ Page({
         imageUrl: 'pur-icon.png',
         content: '助力企业腾飞,共创企业辉煌',
         dataUrl: '/package-basic-data/pages/func-buy/add/add',
-        buttonTitle: '立即升级',
+        buttonTitle: '立即购买',
         buttonColor: '#1989fa'
       },
       {

+ 290 - 115
pages/mine/mine.js

@@ -21,8 +21,10 @@ Page({
   /**
    * 页面的初始数据
    */
-  data: {
+  data: {  
+    defaultAvatarUrl:config.image_url + '/static/img/'+'no_profile_picture.png', //默认的图标
     imageUrl: config.image_url + '/static/img/',
+    empowerInfo: null,// 授权信息
     dueFlag: false,  // 到期标识
     dueButtonFlag: false,  // 到期标识
     videoSrc: 'https://s.dev01.dkiboss.com:7000/file/operate_guide/all.mp4',
@@ -39,7 +41,7 @@ Page({
     oauthService: app.globalData['oauthService'],
     appCount: 0,
     noticeCount: 0,
-    beginnerGuideUrl: '/package-basic-data/pages/beginner-guide/beginner-guide',//新手引导
+    beginnerGuideUrl: '/package-basic-data/pages/beginner-guide/beginner-guide', //新手引导
 
     /** 6个切换组件的值 */
     storeHelperValue: 'nearly7days',
@@ -52,18 +54,29 @@ Page({
     filterBlur1: '0',
 
     /** 2种切换组件的options */
-    tagList: [
-      { name: '今日', id: 'today', value: [util.formatDataTime(new Date()).substring(0, 10), util.formatDataTime(new Date()).substring(0, 10)] },
-      { name: '近7天', id: 'nearly7days', value: util.timeForMat(7) },
-      { name: '近30天', id: 'nearly30days', value: util.timeForMat(30) }],
+    tagList: [{
+        name: '今日',
+        id: 'today',
+        value: [util.formatDataTime(new Date()).substring(0, 10), util.formatDataTime(new Date()).substring(0, 10)]
+      },
+      {
+        name: '近7天',
+        id: 'nearly7days',
+        value: util.timeForMat(7)
+      },
+      {
+        name: '近30天',
+        id: 'nearly30days',
+        value: util.timeForMat(30)
+      }
+    ],
 
     active: 'store',
     showStoreFlag: true,
 
     menuBtnInfo: null,
     // 待办工作
-    waitMenu: [
-      {
+    waitMenu: [{
         title: '待收款',
         code: 'cus-receipt',
         path: '/package-sales/pages/customer-collection/customer-collection',
@@ -102,11 +115,72 @@ Page({
     })
     this.getHomeOrderRecCost(values[0], values[1])
   },
+
+  /**
+   * @desc : 切换头像
+   * @author : 王英杰
+   * @date : 2024/4/1
+   */
+  onChooseAvatar(e) {
+    const {
+      avatarUrl
+    } = e.detail
+    this.setData({
+      avatarUrl,
+    })
+    this.afterRead(avatarUrl)
+  },
+  /**
+   * @desc : 上传附件—(上传完成)
+   * @author : 王英杰
+   * @date : 2024/3/27 16:16
+   */
+  afterRead(path) {
+    const _this = this;
+    // 配置存放的文件夹 公司code - 表名 - 年月 -- 日
+    let folder = app.globalData.company.cpCode + '/' + 't_wx_user' + '/' + new Date().toYearMonth2() + '/' + new Date().toDay()
+    let url = config.upload_url;
+    url = url.replace('mdm-server', 'mdm-server' + '-' + app.globalData.company.svcCode.replace('_', '-'))
+    wx.uploadFile({
+      url: url,
+      filePath: path,
+      name: 'file',
+      formData: {
+        'folder': folder
+      },
+      header: {
+        'Authorization': 'Bearer ' + app.globalData.token
+      },
+      success(res) {
+        let data = JSON.parse(res.data)
+        if (data.code === 200) {
+          let avatarUrlPath = config.image_url + data.data.path
+          _this.uploadUserImage(avatarUrlPath)
+        }
+      },
+    })
+  },
+
   /**
-  * @desc : 切换公司
-  * @author : 周兴
-  * @date : 2024/4/1
-  */
+   * @desc : 上传微信头像
+   * @author : 王英杰
+   * @date : 2024/4/1
+   */
+  uploadUserImage(avatarUrlPath) { 
+    let _this = this
+    let param = {
+      userId: app.globalData.user.userId,
+      userImage: avatarUrlPath
+    }
+    api.request(Constants.SYS_OPENID_API + 'oauth/wx/update_user_image', 'POST', param).then(res => {
+      if (res.data.code == Constants.SUCESS_CODE) {}
+    })
+  },
+  /**
+   * @desc : 切换公司
+   * @author : 周兴
+   * @date : 2024/4/1
+   */
   changeCp() {
     wx.navigateTo({
       url: '/pages/company/company',
@@ -139,17 +213,20 @@ Page({
       wx.navigateTo({
         url: item.path,
         success: function (res) {
-          res.eventChannel.emit('params', { formMode: 'index', menuUuid: menuUuid })
+          res.eventChannel.emit('params', {
+            formMode: 'index',
+            menuUuid: menuUuid
+          })
         }
       })
     }
   },
 
   /**
-  * @desc : 查询销售金额收款金额库存成本
-  * @author : 姜永辉
-  * @date : 2024/4/9
-  */
+   * @desc : 查询销售金额收款金额库存成本
+   * @author : 姜永辉
+   * @date : 2024/4/9
+   */
   getHomeOrderRecCost(dateBegin, dateEnd) {
     let params = {
       dateBegin: dateBegin,
@@ -184,10 +261,10 @@ Page({
   },
 
   /**
-  * @desc : 跳转到微信聊天界面
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 跳转到微信聊天界面
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   handleWxService(e) {
     // let url= Constants.WX_SERVICE
     // wx.navigateTo({
@@ -197,17 +274,18 @@ Page({
     //   }
     // })
     wx.openCustomerServiceChat({
-      extInfo: { url: Constants.WX_SERVICE },
+      extInfo: {
+        url: Constants.WX_SERVICE
+      },
       corpId: Constants.WX_CPID,
-      success(res) {
-      }
+      success(res) {}
     })
   },
   /**
-  * @desc : 跳转到续费页面
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 跳转到续费页面
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   handleRecharge(e) {
     // 标准版 升级只能是 责任人才能升级
     if (!app.globalData.user.flgInit) {
@@ -229,17 +307,16 @@ Page({
     })
   },
   /**
-  * @desc : 跳转至增加授权
-  * @author : 刘尧
-  * @date : 2024/7/4
-  */
+   * @desc : 跳转至增加授权
+   * @author : 刘尧
+   * @date : 2024/7/4
+   */
   toAddRole() {
     // 标准版 升级只能是 责任人才能升级
     if (!app.globalData.user.flgInit) {
       util.showToast('无权增加授权,请联系责任人')
       return
     }
-
     const item = {
       detail: {
         customUrl: undefined,
@@ -249,10 +326,10 @@ Page({
     this.open(item)
   },
   /**
-  * @desc : 升级
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 升级
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   handleUpgrade(e) {
     util.showToast('敬请期待');
     return
@@ -271,10 +348,10 @@ Page({
     })
   },
   /**
-  * @desc : 查询待发货数据
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 查询待发货数据
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   getOrder() {
     let params = {
       appCode: Constants.APP_CODE,
@@ -295,10 +372,10 @@ Page({
     });
   },
   /**
-  * @desc : 查询待收款数据
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 查询待收款数据
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   getWaitReceival() {
     let params = {
       appCode: Constants.APP_CODE,
@@ -320,10 +397,10 @@ Page({
     });
   },
   /**
-  * @desc : 查询待入库数据
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 查询待入库数据
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   getWaitInbound() {
     let params = {
       appCode: Constants.APP_CODE,
@@ -343,10 +420,10 @@ Page({
     });
   },
   /**
-  * @desc : 查询待出库数据
-  * @author : 周兴
-  * @date : 2024/4/9
-  */
+   * @desc : 查询待出库数据
+   * @author : 周兴
+   * @date : 2024/4/9
+   */
   getWaitOutbound() {
     let params = {
       appCode: Constants.APP_CODE,
@@ -377,20 +454,20 @@ Page({
   },
 
   /**
-  * @desc : 公告跳转
-  * @date : 2022/5/12 13:49
-  * @author : 姜永辉
-  */
+   * @desc : 公告跳转
+   * @date : 2022/5/12 13:49
+   * @author : 姜永辉
+   */
   toNotice() {
     wx.navigateTo({
       url: '/package-basic-data/pages/notice/notice',
     })
   },
   /**
-  * @desc : 打开操作手册
-  * @date : 2024/5/13 13:49
-  * @author : 周兴
-  */
+   * @desc : 打开操作手册
+   * @date : 2024/5/13 13:49
+   * @author : 周兴
+   */
   toOperateGuide(e) {
     let file = 'all.pdf'
     // 下载操作手册pdf
@@ -398,10 +475,10 @@ Page({
     this.downloadFile(url, type);
   },
   /**
-  * @desc : 打开操作手册视频
-  * @date : 2024/5/13 13:49
-  * @author : 周兴
-  */
+   * @desc : 打开操作手册视频
+   * @date : 2024/5/13 13:49
+   * @author : 周兴
+   */
   toOperateGuideVideo(e) {
     let type = e.currentTarget.dataset.type
 
@@ -417,10 +494,10 @@ Page({
   },
 
   /**
-  * @desc : 设置跳转
-  * @date : 2022/5/12 13:49
-  * @author : 姜永辉
-  */
+   * @desc : 设置跳转
+   * @date : 2022/5/12 13:49
+   * @author : 姜永辉
+   */
   toSetting() {
     this.setData({
       loading: true
@@ -438,7 +515,10 @@ Page({
       },
       success: function (res) {
         // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
-        res.eventChannel.emit('params', { id: app.globalData.company.cpId, formMode: Constants.formMode.edit })
+        res.eventChannel.emit('params', {
+          id: app.globalData.company.cpId,
+          formMode: Constants.formMode.edit
+        })
         setTimeout(() => {
           _this.setData({
             loading: false
@@ -448,10 +528,10 @@ Page({
     })
   },
   /**
-  * @desc : 新手引导
-  * @date : 2022/5/12 13:49
-  * @author : 于继渤
-  */
+   * @desc : 新手引导
+   * @date : 2022/5/12 13:49
+   * @author : 于继渤
+   */
   toBeginnerGuide() {
     this.setData({
       loading: true
@@ -461,8 +541,7 @@ Page({
       url: this.data.beginnerGuideUrl,
       events: {
         // 回调后,在这里给页面赋值
-        bandData: function (e) {
-        }
+        bandData: function (e) {}
       },
       success: function (res) {
         // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
@@ -477,10 +556,10 @@ Page({
   },
 
   /**
-  * @desc : 退出登录
-  * @date : 2022/5/12 13:49
-  * @author : 姜永辉
-  */
+   * @desc : 退出登录
+   * @date : 2022/5/12 13:49
+   * @author : 姜永辉
+   */
   logout(e) {
     let _this = this
     //提示
@@ -505,13 +584,27 @@ Page({
     });
 
   },
-
+  /**
+   * @desc : 查询
+   * @date : 2024/2/1 15:49
+   * @author : 王英杰
+   */
+  getData(params) {
+    return this.excute(this.data.oauthService, this.data.oauthService.getUser + '/' + app.globalData.user.userId, {}).then(res => {
+      if (res.data.code == 200) {
+        let avatarUrl = res.data.data.userImage||this.data.defaultAvatarUrl 
+        this.setData({
+          avatarUrl:avatarUrl
+        })
+      }
+    });
+  },
 
   /**
-    * @desc : 获取用户信息
-    * @date : 2022/5/12 13:49
-    * @author : 姜永辉
-    */
+   * @desc : 获取用户信息
+   * @date : 2022/5/12 13:49
+   * @author : 姜永辉
+   */
   getUserProfile() {
     wx.getUserProfile({
       desc: '用于完善用户资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
@@ -529,10 +622,10 @@ Page({
     })
   },
   /**
-    * @desc : 小程序测试例子
-    * @author : admin
-    * @date : 2023年8月21日
-    */
+   * @desc : 小程序测试例子
+   * @author : admin
+   * @date : 2023年8月21日
+   */
   toTestExample(e) {
     wx.navigateTo({
       url: '/package-basic-data/pages/test/test',
@@ -548,9 +641,18 @@ Page({
     let param = {};
 
     let dateObj = {
-      today: { text: '本日', value: 1 },
-      nearly30days: { text: '近30天', value: 5 },
-      nearly7days: { text: '近7天', value: 6 }
+      today: {
+        text: '本日',
+        value: 1
+      },
+      nearly30days: {
+        text: '近30天',
+        value: 5
+      },
+      nearly7days: {
+        text: '近7天',
+        value: 6
+      }
     }
 
 
@@ -568,52 +670,108 @@ Page({
       case 1:
         hasrightflg = this.data.orderflg
         url = '/package4/pages/order-billing/order-billing'
-        param = { active: 1, date: dateObj[dateValue], receiveStatusParam: [], receiveStatusParamIds: [] }
+        param = {
+          active: 1,
+          date: dateObj[dateValue],
+          receiveStatusParam: [],
+          receiveStatusParamIds: []
+        }
         break;
       case 2:
         hasrightflg = this.data.customerflg
         url = '/package3/pages/customer/customer'
-        param = { active: 0, date: dateObj[dateValue], keyTypeList: [], keyTypeNameList: [] }
+        param = {
+          active: 0,
+          date: dateObj[dateValue],
+          keyTypeList: [],
+          keyTypeNameList: []
+        }
         break;
       case 3:
         hasrightflg = this.data.customerflg
         url = '/package3/pages/customer/customer'
-        param = { active: 3, date: dateObj[dateValue], keyTypeList: [0, 1], keyTypeNameList: ["客意品类-定制", "客意品类-智能"] }
+        param = {
+          active: 3,
+          date: dateObj[dateValue],
+          keyTypeList: [0, 1],
+          keyTypeNameList: ["客意品类-定制", "客意品类-智能"]
+        }
         break;
       case 4:
         hasrightflg = this.data.orderflg
         url = '/package4/pages/order-billing/order-billing'
-        param = { active: 2, date: { text: '自定义', value: -2 }, receiveStatusParam: ['收款状态-未收', '收款状态-部分'], receiveStatusParamIds: [0, 1], type: 2 }
+        param = {
+          active: 2,
+          date: {
+            text: '自定义',
+            value: -2
+          },
+          receiveStatusParam: ['收款状态-未收', '收款状态-部分'],
+          receiveStatusParamIds: [0, 1],
+          type: 2
+        }
         break;
       case 5:
         hasrightflg = this.data.receivecustomersflg
         url = '/package3/pages/receive-customers/receive-customers'
-        param = { active: 1, date: { text: '自定义', value: -2 }, followStatusNameList: [], followStatusList: [], type: 2 }
+        param = {
+          active: 1,
+          date: {
+            text: '自定义',
+            value: -2
+          },
+          followStatusNameList: [],
+          followStatusList: [],
+          type: 2
+        }
         break;
       case 6:
         hasrightflg = this.data.orderflg
         url = '/package4/pages/order-billing/order-billing'
-        param = { active: 3, date: dateObj[dateValue], receiveStatusParam: [], receiveStatusParamIds: [] }
+        param = {
+          active: 3,
+          date: dateObj[dateValue],
+          receiveStatusParam: [],
+          receiveStatusParamIds: []
+        }
         break;
       case 7:
         hasrightflg = this.data.receivecustomersflg
         url = '/package3/pages/receive-customers/receive-customers'
-        param = { active: 0, date: dateObj[dateValue], followStatusNameList: ['跟进状态-接待', '跟进状态-报备'], followStatusList: [0, 1] }
+        param = {
+          active: 0,
+          date: dateObj[dateValue],
+          followStatusNameList: ['跟进状态-接待', '跟进状态-报备'],
+          followStatusList: [0, 1]
+        }
         break;
       case 8:
         hasrightflg = this.data.receivecustomersflg
         url = '/package3/pages/receive-customers/receive-customers'
-        param = { active: 0, date: dateObj[dateValue], followStatusNameList: ['跟进状态-报备'], followStatusList: [0] }
+        param = {
+          active: 0,
+          date: dateObj[dateValue],
+          followStatusNameList: ['跟进状态-报备'],
+          followStatusList: [0]
+        }
         break;
       case 9:
         hasrightflg = this.data.receivecustomersflg
         url = '/package3/pages/receive-customers/receive-customers'
-        param = { active: 0, date: dateObj[dateValue], followStatusNameList: ['跟进状态-接待'], followStatusList: [1] }
+        param = {
+          active: 0,
+          date: dateObj[dateValue],
+          followStatusNameList: ['跟进状态-接待'],
+          followStatusList: [1]
+        }
         break;
       case 10:
         hasrightflg = this.data.customerflg
         url = '/package3/pages/customer/customer'
-        param = { active: 1, date: dateObj.nearly30days }
+        param = {
+          active: 1,
+          date: dateObj.nearly30days
+        }
         break;
     }
     if (hasrightflg) {
@@ -621,7 +779,11 @@ Page({
         url: url + '?frommine=' + JSON.stringify(Object.assign(param, staffObj))
       })
     } else {
-      wx.showModal({ title: '提示', content: '没有该功能权限', showCancel: false })
+      wx.showModal({
+        title: '提示',
+        content: '没有该功能权限',
+        showCancel: false
+      })
     }
   },
   /**
@@ -643,11 +805,11 @@ Page({
 
   },
   /**
- * 
- * @param {获取未读公告条数} options 
+   * 
+   * @param {获取未读公告条数} options 
    * @param {获取未读公告条数} options 
- * @param {获取未读公告条数} options 
- */
+   * @param {获取未读公告条数} options 
+   */
   getNoticeCount() {
     let param = {
       cpId: app.globalData.user.cpId,
@@ -668,6 +830,13 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
+    if (app.globalData.company && app.globalData.company.wxMaxNum) {
+      let empowerInfo = '授权数量:手机授权' + app.globalData.company.wxMaxNum + '个'
+      empowerInfo += '(含赠送手机授权1个)';
+      this.setData({
+        empowerInfo: empowerInfo
+      })
+    }
     let res = wx.getSystemInfoSync();
     let statusHeight = res.statusBarHeight
     this.setData({
@@ -697,8 +866,8 @@ Page({
       }
     }
     // // 判断当前用户是否到期 标准版
-    if (app.globalData.company.gradeCode == Constants.gradeCode.STD
-      && app.globalData.company.userEndDate) {
+    if (app.globalData.company.gradeCode == Constants.gradeCode.STD &&
+      app.globalData.company.userEndDate) {
       let endD = new Date(app.globalData.company.userEndDate);
       // 服务器的日期为准
       let nowD = new Date(app.globalData.nowDate).addDays(Constants.CP_ALERT_TIME);
@@ -706,7 +875,7 @@ Page({
         let cpEndDate = app.globalData.company.userEndDate
         this.setData({
           cpEndDate: cpEndDate, // 企业到期日期
-          contains2099: cpEndDate.includes("2099")  //如果包含2099 就隐藏到期日期
+          contains2099: cpEndDate.includes("2099") //如果包含2099 就隐藏到期日期
         })
         if (!app.globalData.user.flgInit) {
           this.setData({
@@ -786,9 +955,15 @@ Page({
     // 查询门店助手
     let dates = util.timeForMat(7)
     switch (this.data.storeHelperValue) {
-      case 'today': dates = util.timeForMat(0); break
-      case 'nearly7days': dates = util.timeForMat(7); break
-      case 'nearly30days': dates = util.timeForMat(30); break
+      case 'today':
+        dates = util.timeForMat(0);
+        break
+      case 'nearly7days':
+        dates = util.timeForMat(7);
+        break
+      case 'nearly30days':
+        dates = util.timeForMat(30);
+        break
     }
     this.getHomeOrderRecCost(dates[0], dates[1])
   },
@@ -828,8 +1003,8 @@ Page({
     app.checkHasManualUpdate()
   },
   /**
-  *  当前版本号
-  */
+   *  当前版本号
+   */
   getAccountInfoSync() {
     const accountInfo = wx.getAccountInfoSync();
     util.showToast('当前版本号:' + accountInfo.miniProgram.version);

+ 25 - 6
pages/mine/mine.wxml

@@ -16,20 +16,32 @@
 
     <view style="margin-top: 40rpx;display: flex;">
       <!-- 头像 -->
-      <open-data type="userAvatarUrl" class='wx-avatar'></open-data>
+      <!-- <open-data type="userAvatarUrl" class='wx-avatar'></open-data> -->
+      <button  class='wx-avatar' style="margin: 0;padding: 0;" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
+      <image class='wx-avatar' style="border:0" src="{{avatarUrl}}"></image>
+    </button>
 
       <view style="margin-left: 30rpx;width: calc(100% - 200rpx);">
         <!-- 昵称 -->
         <view class="nick-name" style="display: flex;width: 100%;">
-          <view style="width: 99%;">
+          <view style="width: 85%;">
             你好 {{staffName?staffName:''}}
           </view>
-          <view style="text-align: right;margin-right: 10rpx;" bindtap="toNotice">
+          <view style="width: 15%;margin-top: -20rpx;">
+            <view style="display: flex;justify-content: center;">
+              <image catchtap="handleWxService" src="{{imageUrl + '/wx.png'}}" style="width: 45rpx;height:45rpx;" />
+            </view>
+            <view style="font-weight: 200;font-size: 9px;">官方客服</view>
+          </view>
+          <!-- <view style="text-align: right;margin-right: 10rpx;" bindtap="toNotice">
             <view class="notice-view">
               <view class="todo-view-app-item-icon-tip" wx:if="{{noticeCount}}">{{noticeCount}}</view>
-              <image catchtap="handleWxService" src="/static/image/wx.png" style="width: 100%;height:100%;" />
+              <view>
+                <image catchtap="handleWxService" src="{{imageUrl + '/wx.png'}}" style="width: 100%;height:100%;" />
+                <view>官方客服</view>
+              </view>
             </view>
-          </view>
+          </view> -->
         </view>
         <!-- 部门 -->
         <view class="store">
@@ -41,13 +53,16 @@
         <!--到期日期 续费-->
         <view class="endDate" wx:if="{{cpEndDate}}">
           <view style="display: flex;flex-direction: row;">
+            <!--授权数量-->
+            <view wx:if="{{empowerInfo}}" style="font-weight: 300;">{{empowerInfo}}</view>
             <view wx:if="{{!contains2099}}">{{$t['cpEndDate'] + ':' + cpEndDate}}
             </view>
             <view wx:if="{{dueFlag}}" style="color:#e00808;margin-left: 20rpx;">{{dueFlag?$t['dueText']:''}}</view>
           </view>
           <!--到期日期前15天显示续费-->
           <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>
-          <dk-tag wx:else="{{!dueButtonFlag}}" padding="0 20rpx" height="30rpx" color="#3E69F6" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" marginRight="12rpx" value="增加授权" catchtap="toAddRole"></dk-tag>
+          <!--放到下方-->
+          <!-- <dk-tag wx:else="{{!dueButtonFlag}}" padding="0 20rpx" height="30rpx" color="#3E69F6" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" marginRight="12rpx" value="增加授权" catchtap="toAddRole"></dk-tag> -->
         </view>
       </view>
     </view>
@@ -130,6 +145,10 @@
     <!-- <view class="todo-view" style="margin-bottom: 4rpx;">
       <view class="todo-view-title" catch:tap="toTestExample">toTestExample</view>
     </view> -->
+    <!--购买授权-->
+    <view class="todo-view" style="margin-bottom: 4rpx;">
+      <view class="todo-view-title" catch:tap="toAddRole">购买授权</view>
+    </view>
     <view class="todo-view" style="display: flex;justify-content:space-between;align-items: center;margin-bottom: 4rpx;" wx:if="{{gradeCode == 'STD'}}" catchtap="handleUpgrade">
       <view class="todo-view-title">标准版</view>
       <view class="todo-view-title" style="display: flex;justify-content:space-between;align-items: center;">

+ 0 - 3
pages/mine/mine.wxss

@@ -117,9 +117,6 @@ page {
 .notice-view {
 	width: 45rpx;
 	height: 45rpx;
-	background: #FFFFFF;
-	opacity: 0.62;
-	border-radius: 50%;
 	display: flex;
 	align-items: center;
 	justify-content: center;

+ 1 - 1
pages/shopping/shopping.wxml

@@ -180,7 +180,7 @@
 
 
 <van-sidebar activeKey="{{sideKey}}" bindchange="changeSidebar" custom-class="{{active == 0 ? 'left-class' : 'right-class'}}">
-  <view wx:if="{{active != 1}}"   style="height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'400rpx' }});overflow: scroll;">
+  <view wx:if="{{active != 1}}"   style="height:calc({{windowHeight+'px'}} - {{active == 1 ? '270rpx' :'530rpx' }});overflow: scroll;">
     <van-sidebar-item class="sidebar" wx:key="index" custom-class="{{sideKey - 1 == index? 'sidebar-item-before': (sideKey + 1 == index?'sidebar-item-next':'sidebar-item')}}" title="{{item.brandName}}" data-id="{{item.brandId}}" wx:for="{{typeList}}" />
   </view>
 </van-sidebar>