Просмотр исходного кода

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

changhaoning 1 год назад
Родитель
Сommit
527f15c8d6
81 измененных файлов с 3297 добавлено и 591 удалено
  1. 1 1
      api/pages/ivt/saleOutBoundReturn.js
  2. 50 0
      api/pages/mac/supReceiptPayment.js
  3. 6 3
      api/pages/report/report.js
  4. 2 1
      app.js
  5. 10 3
      app.json
  6. 5 5
      components/dkbase/dk-form-bill/dk-form-bill.js
  7. 34 13
      components/dkbase/dk-list-report/dk-list-report.js
  8. 15 11
      components/dkbase/dk-list-report/dk-list-report.wxml
  9. 0 1
      components/dkbase/dk-number-input/dk-number-input.js
  10. 4 1
      components/dkbase/dk-stepper/dk-stepper.js
  11. 1 1
      components/dkbase/dk-stepper/dk-stepper.wxml
  12. 1 0
      i18n/zh-CN.js
  13. 3 0
      mixins/index.js
  14. 63 4
      package-base-select/pages/select-collection_confirm/select-collection_confirm.js
  15. 53 18
      package-base-select/pages/select-data/select-data.js
  16. 6 41
      package-base-select/pages/select-goods/select-goods.js
  17. 6 6
      package-base-select/pages/select-goods/select-goods.wxml
  18. 19 20
      package-basic-data/pages/customer-list/customer-list.js
  19. 1 1
      package-basic-data/pages/customer-list/customer-list.wxml
  20. 4 1
      package-basic-data/pages/customer-list/detail/detail.js
  21. 2 2
      package-basic-data/pages/customer-list/detail/detail.wxml
  22. 1 4
      package-basic-data/pages/func-buy/add-confirm/add-confirm.js
  23. 40 15
      package-inventory/pages/cost-check/cost-check.js
  24. 5 1
      package-inventory/pages/ivt-detail-report/ivt-detail-report.wxml
  25. 1 1
      package-inventory/pages/ivt-sum-report/detail/detail.wxml
  26. 371 0
      package-purchase/pages/pur-receipt/add/add.js
  27. 4 0
      package-purchase/pages/pur-receipt/add/add.json
  28. 14 0
      package-purchase/pages/pur-receipt/add/add.wxml
  29. 1 0
      package-purchase/pages/pur-receipt/add/add.wxss
  30. 337 0
      package-purchase/pages/pur-receipt/detail/detail.js
  31. 4 0
      package-purchase/pages/pur-receipt/detail/detail.json
  32. 71 0
      package-purchase/pages/pur-receipt/detail/detail.wxml
  33. 42 0
      package-purchase/pages/pur-receipt/detail/detail.wxss
  34. 134 0
      package-purchase/pages/pur-receipt/pur-receipt.js
  35. 7 0
      package-purchase/pages/pur-receipt/pur-receipt.json
  36. 18 0
      package-purchase/pages/pur-receipt/pur-receipt.wxml
  37. 1 0
      package-purchase/pages/pur-receipt/pur-receipt.wxss
  38. 372 0
      package-purchase/pages/pur-refund/add/add.js
  39. 4 0
      package-purchase/pages/pur-refund/add/add.json
  40. 14 0
      package-purchase/pages/pur-refund/add/add.wxml
  41. 1 0
      package-purchase/pages/pur-refund/add/add.wxss
  42. 338 0
      package-purchase/pages/pur-refund/detail/detail.js
  43. 4 0
      package-purchase/pages/pur-refund/detail/detail.json
  44. 71 0
      package-purchase/pages/pur-refund/detail/detail.wxml
  45. 42 0
      package-purchase/pages/pur-refund/detail/detail.wxss
  46. 136 0
      package-purchase/pages/pur-refund/pur-refund.js
  47. 7 0
      package-purchase/pages/pur-refund/pur-refund.json
  48. 18 0
      package-purchase/pages/pur-refund/pur-refund.wxml
  49. 1 0
      package-purchase/pages/pur-refund/pur-refund.wxss
  50. 0 1
      package-purchase/pages/pur-track-report/pur-track-report.js
  51. 134 7
      package-purchase/pages/purchase-order/add/add.js
  52. 1 1
      package-purchase/pages/purchase-order/add/add.wxml
  53. 19 7
      package-purchase/pages/purchase-order/purchase-order-detail/purchase-order-detail.js
  54. 1 1
      package-purchase/pages/purchase-order/purchase-order-detail/purchase-order-detail.wxml
  55. 149 101
      package-purchase/pages/purchase-order/purchase-order.js
  56. 1 7
      package-purchase/pages/purchase-receipt/add/add.js
  57. 1 1
      package-purchase/pages/purchase-receipt/add/add.wxml
  58. 1 7
      package-purchase/pages/purchase-receipt/detail/detail.js
  59. 1 1
      package-purchase/pages/purchase-receipt/detail/detail.wxml
  60. 3 3
      package-purchase/pages/purchase-receipt/purchase-receipt.js
  61. 56 33
      package-purchase/pages/purchase-return/add/add.js
  62. 2 5
      package-purchase/pages/purchase-return/add/add.wxml
  63. 1 1
      package-purchase/pages/purchase-return/detail/detail.wxml
  64. 6 9
      package-sales/pages/order-billing/add/add.js
  65. 18 0
      package-sales/pages/order-billing/detail/detail.js
  66. 3 0
      package-sales/pages/order-billing/detail/detail.wxml
  67. 165 169
      package-sales/pages/order-return/add/add.js
  68. 1 1
      package-sales/pages/order-return/add/add.wxml
  69. 1 0
      package-sales/pages/order-return/order-return.js
  70. 172 0
      package-sales/pages/order-sum-report/detail/detail.js
  71. 4 0
      package-sales/pages/order-sum-report/detail/detail.json
  72. 34 0
      package-sales/pages/order-sum-report/detail/detail.wxml
  73. 30 0
      package-sales/pages/order-sum-report/detail/detail.wxss
  74. 115 65
      package-sales/pages/order-sum-report/order-sum-report.js
  75. 2 1
      package-sales/pages/order-sum-report/order-sum-report.json
  76. 3 3
      package-sales/pages/order-sum-report/order-sum-report.wxml
  77. 2 2
      pages/home-page/home-page.js
  78. 1 1
      pages/index/index.wxss
  79. 4 2
      pages/login/login.wxml
  80. 20 7
      pages/shopping/shopping.js
  81. 1 1
      pages/shopping/shopping.wxml

+ 1 - 1
api/pages/ivt/saleOutBoundReturn.js

@@ -32,7 +32,7 @@ module.exports = {
       selectCustomers: { key: 'selectCustomers', url: '/package-base-select/pages/select-customers/select-customers' },
       openingInventory: { key: 'openingInventory', url: '/package-base-select/pages/select-data/select-data', type: 'warehouse' },
       selectInventorySku: { key: 'selectInventorySku', url: '/package-base-select/pages/select-data/select-data', type: 'inventorySku' },
-      invalid: { key: 'invalid', method: 'invalid', primaryKey: 'outId', image: 'btn-void.png' },
+      invalid: { key: 'invalid', method: 'invalid', primaryKey: 'outId', image: 'btn-void.png',question:true  },
       salesOutReturnBound: { key: 'salesOutReturnBound', method: 'toDetail', primaryKey: 'outId', image: 'btn-outbound-processing.png' },
       printedBill: { key: 'printedBill', method: 'printedBill', formMode: 'index', idKey: 'cusId', image: 'btn-printing.png' },
       editInto: { key: 'editInto', method: 'editInto', primaryKey: 'outId', image: 'btn-edit.png' }, //编辑

+ 50 - 0
api/pages/mac/supReceiptPayment.js

@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright(c) 2024 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.功能描述:收款单
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		姜永辉		  	    2024-1-19       		1.00		       	新建
+ *******************************************************************************/
+module.exports = {
+	supReceiptPaymentService: {
+		// 前缀
+		prefix: 'mdm-server/mac/receipt/',
+		getRpSupList: 'get_rp_sup_list',
+		insertSupReceipt: 'insert_sup_receipt',
+    getRpForUpdate: 'get_rp_for_update',
+    selectRpInfoById: 'select_rp_info_by_id',
+    updateSupReceipt: 'update_sup_receipt',
+    insertSupRefund: 'insert_sup_refund',
+    invalidSup: 'invalid_sup',
+	},
+
+	routeUrl: {
+		supReceiptPayment: {	
+			docName:{key:'receipt' ,title:'收款单'},
+			cusReturnCollection: { key: 'cusReturnCollection', method: 'cusReturnCollection',image: 'btn-customer-refund.png' },
+      invalid: { key: 'invalid', method: 'invalid', primaryKey: 'rpId', image: 'btn-void.png' },
+			editOrder: { key: 'editOrder', method: 'editOrder', primaryKey: 'rpId',image: 'btn-edit.png' },
+			printedBill: { key: 'printedBill', method: 'printedBill', image:'btn-printing.png' },//打印
+			// 收款单新建
+			add: { key: 'add', url: '/package-purchase/pages/pur-receipt/add/add' },
+			edit: { key: 'edit', url: '/package-purchase/pages/pur-receipt/add/add' },
+			detail: {
+				key: 'detail', url: '/package-purchase/pages/pur-receipt/detail/detail', idKey: 'rpId' 
+      },
+      
+			refund: { key: 'refund', url: '/package-purchase/pages/pur-refund/add/add' },
+      editRefund: { key: 'edit', url: '/package-purchase/pages/pur-refund/add/add' },
+      detailRefund: {
+				key: 'detail', url: '/package-purchase/pages/pur-refund/detail/detail', idKey: 'rpId' 
+      },
+      selectCollectionConfirm: { key: 'selectCollectionConfirm', url: '/package-base-select/pages/select-collection_confirm/select-collection_confirm' },
+			chooseSupplier: { key: 'chooseSupplier', url: '/package-base-select/pages/select-data/select-data', type: 'supplier' },
+			chooseStaff: { key: 'chooseStaff', url: '/package-base-select/pages/select-data/select-data', type: 'staff' },
+			staffadd: { key: 'staffadd', url: '/package-basic-data/pages/staff/add/add' },
+			chooseOrg: { key: 'chooseOrg', url: '/package-base-select/pages/select-data/select-data', type: 'org' },
+			chooseWh: { key: 'chooseWh', url: '/package-base-select/pages/select-data/select-data', type: 'warehouse' },
+		}
+	}
+}; 

+ 6 - 3
api/pages/report/report.js

@@ -51,11 +51,14 @@ module.exports = {
     getBusinessOverview:'get_business_overview',
     getFundReport:'get_fund_report',
     //销售汇总表
-    getFundReport:'get_fund_report',
+    getOrderSummary:'get_order_summary',
+    //销售汇总表明细
+    getOrderSummaryItem:'get_order_summary_item',
   },
   routeUrl: {
-    report: {
-      edit: { key: 'edit', url: '/package-purchase/pages/pur-track-report/detail/detail' },
+    report: { 
+      edit: { key: 'edit', url: '/package-purchase/pages/pur-track-report/detail/detail' }, 
+      orderSumReportDetail: { key: 'orderSumReportDetail', url: '/package-sales/pages/order-sum-report/detail/detail' },
       editIvtSum: { key: 'editIvtSum', url: '/package-inventory/pages/ivt-sum-report/detail/detail' },
       editIvt: { key: 'editIvt', url: '/package-inventory/pages/ivt-detail-report/detail/detail' },
       inBound: { key: 'inBound', url: '/package-inventory/pages/warehousing-processing/detail/detail' },

+ 2 - 1
app.js

@@ -75,10 +75,11 @@ const printLayout = require('./api/pages/mst/printLayout.js');
 const exportPage = require('./api/pages/common/export.js');
 const inboundItem = require('./api/pages/ivt/inboundItem.js');
 const accReceiptPayment = require('./api/pages/mac/accReceiptPayment.js');
+const supReceiptPayment = require('./api/pages/mac/supReceiptPayment.js');
 
 // api服务路由文件
 var apiList = [common, oauth,setting, company, wechatPay,user, staff, staffRight, staffPurview, settingValue, customer, role, roleFun, org, roleSensitive, goodsBrand, goodsCategory, goodsSeries, unit, supplier, warehouse, saleChannel, goodsSku, basicData,customerMst,purchase,account,payment,
-  receiptPayment,inbound,inboundOther,inboundProcessing,inboundPurchaseReturn,outbound,outboundOther,outboundProcessing,outboundSaleReturn,inventory,moneyAccount,intoReturn,intoReturnItem,cusFollow,order,transfer,saleOutBound,inboundReturn,cusReceiptPayment,menuFrequency,userMenuFrequency,comMenu,saleOutBoundReturn,activity,check,freeze,otherReceivable,otherPayable,inventoryAdjustment,report,saleReport,printLayout,exportPage,inboundItem,accReceiptPayment]
+  receiptPayment,inbound,inboundOther,inboundProcessing,inboundPurchaseReturn,outbound,outboundOther,outboundProcessing,outboundSaleReturn,inventory,moneyAccount,intoReturn,intoReturnItem,cusFollow,order,transfer,saleOutBound,inboundReturn,cusReceiptPayment,menuFrequency,userMenuFrequency,comMenu,saleOutBoundReturn,activity,check,freeze,otherReceivable,otherPayable,inventoryAdjustment,report,saleReport,printLayout,exportPage,inboundItem,accReceiptPayment,supReceiptPayment]
 
 const util = require('./utils/util.js')
 const baseMethod = require('./api/pages/baseMethod.js')

+ 10 - 3
app.json

@@ -83,7 +83,7 @@
                 "pages/order-return/select-original-order/select-original-order",
                 "pages/order-return/sales-return-confirm/sales-return-confirm",
                 "pages/sales-outbound/sales-outbound",
-                "pages/sales-outbound/add/add",  
+                "pages/sales-outbound/add/add",
                 "pages/customer-collection/customer-collection",
                 "pages/customer-collection/add/add",
                 "pages/customer-collection/detail/detail",
@@ -91,7 +91,8 @@
                 "pages/customer-collection/refund-detail/refund-detail",
                 "pages/sales-tracking-report/sales-tracking-report",
                 "pages/sales-tracking-report/detail/detail",
-                "pages/order-sum-report/order-sum-report"
+                "pages/order-sum-report/order-sum-report",
+                "pages/order-sum-report/detail/detail"
             ]
         },
         {
@@ -144,7 +145,13 @@
                 "pages/purchase-receipt/add/add",
                 "pages/purchase-receipt/choose-purchase-order/choose-purchase-order",
                 "pages/pur-track-report/pur-track-report",
-                "pages/pur-track-report/detail/detail"
+                "pages/pur-track-report/detail/detail",
+                "pages/pur-receipt/pur-receipt",
+                "pages/pur-receipt/add/add",
+                "pages/pur-receipt/detail/detail",
+                "pages/pur-refund/pur-refund",
+                "pages/pur-refund/add/add",
+                "pages/pur-refund/detail/detail"
             ]
         },
         {

+ 5 - 5
components/dkbase/dk-form-bill/dk-form-bill.js

@@ -958,7 +958,7 @@ Component({
                 if (route.primaryKey) {
                   itemData.id = that.data.form[route.primaryKey]
                 }
-
+                console.log('itemData', itemData);
                 // 通过eventChannel向被打开页面传送数据
                 res.eventChannel.emit('params', {
                   item: itemData,
@@ -1942,16 +1942,16 @@ Component({
       if (this.data.type == Constants.billType.sale) {
         form = this.setGoodsAmount(form);
       }
-      this.setData({
-        form: form,
-        value: JSON.stringify(form)
-      })
       if (this.data.type == Constants.billType.saleOut) {
         this.setGoodsOutAmount()
       }
       if (this.data.type == Constants.billType.saleOutReturn) {
         form = this.setGoodsOutReturnAmount(form)
       }
+      this.setData({
+        form: form,
+        value: JSON.stringify(form)
+      })
       // 外露setGoods方法
       this.triggerEvent("delItem", {
         data: goodsList

+ 34 - 13
components/dkbase/dk-list-report/dk-list-report.js

@@ -156,7 +156,7 @@ Component({
     },
     reportNameKey: { //默认跟踪报表
       type: String,
-      value:'track'
+      value: 'track'
     },
   },
 
@@ -175,6 +175,16 @@ Component({
    */
   methods: {
     /**
+     * @desc   : 重新设置reportNameKey
+     * @author : 王英杰
+     * @date   : 2024/4/25 11:46
+     */
+    setReportNameKey(reportNameKey) {
+      this.setData({
+        reportNameKey: reportNameKey
+      })
+    },
+    /**
      * @desc   : 显示tip
      * @author : 周兴
      * @date   : 2024/4/25 11:46
@@ -214,14 +224,15 @@ Component({
       // 勾选数据
       this.triggerEvent("choose", {
         item: list[index],
-        list: list.filter(it => it.checked), checked: list[index].checked
+        list: list.filter(it => it.checked),
+        checked: list[index].checked
       })
     },
     /**
-    * @desc   : 打电话
-    * @author : 周兴
-    * @date   : 2024/2/19 11:46
-    */
+     * @desc   : 打电话
+     * @author : 周兴
+     * @date   : 2024/2/19 11:46
+     */
     openTelPhone(e) {
       if (!e.currentTarget.dataset.phone) {
         return;
@@ -239,12 +250,14 @@ Component({
      * @author : 周兴
      * @date   : 2024/1/26 11:46
      */
-    toDetail(e) {
+    toDetail(e) { 
       // 相当于勾选
       if (this.data.chooseFlag) {
         this.chooseData(e);
       } else {
-        this.triggerEvent("toDetail", { item: e.currentTarget.dataset.item })
+        this.triggerEvent("toDetail", {
+          item: e.currentTarget.dataset.item
+        })
       }
     },
     /**
@@ -253,7 +266,9 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     toTitle(e) {
-      this.triggerEvent("toTitle", { item: e.currentTarget.dataset.item })
+      this.triggerEvent("toTitle", {
+        item: e.currentTarget.dataset.item
+      })
     },
     /**
      * @desc   : 跳转状态
@@ -261,7 +276,9 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     toStatus(e) {
-      this.triggerEvent("toStatus", { item: e.currentTarget.dataset.item })
+      this.triggerEvent("toStatus", {
+        item: e.currentTarget.dataset.item
+      })
     },
     /**
      * @desc   : 跳转三点事件
@@ -269,7 +286,9 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     toPoint(e) {
-      this.triggerEvent("toPoint", { item: e.currentTarget.dataset.item })
+      this.triggerEvent("toPoint", {
+        item: e.currentTarget.dataset.item
+      })
       this.setData({
         show: true,
         item: e.currentTarget.dataset.item
@@ -282,7 +301,9 @@ Component({
      */
     clickButton(e) {
       let item = this.data.item;
-      item = Object.assign(item, { button: e.currentTarget.dataset.item })
+      item = Object.assign(item, {
+        button: e.currentTarget.dataset.item
+      })
       let obj = {
         item: item,
         name: e.currentTarget.dataset.item.name,
@@ -316,4 +337,4 @@ Component({
       })
     },
   }
-})
+})

+ 15 - 11
components/dkbase/dk-list-report/dk-list-report.wxml

@@ -68,8 +68,8 @@
       </view>
     </view>
 
-    <!-- 销售汇总表 -->
-    <view wx:if="{{reportNameKey == 'salesum'}}" class="goods-cell-class " catchtap="toDetail" data-item="{{item}}" data-index="{{index}}">
+    <!-- 销售汇总表-商品 -->
+    <view wx:if="{{reportNameKey == 'saleSumGoods'}}" class="goods-cell-class " catchtap="toDetail" data-item="{{item}}" data-index="{{index}}">
       <view style="display: flex;">
         <view>
           <van-image radius="15rpx" custom-class="goods-item-image" fit="fill" src="{{item.imagesUrl}}" />
@@ -92,23 +92,27 @@
               <dk-text fontSize="24rpx" value="{{item.skuSpec}}"></dk-text>
             </view>
             <view>
-              <dk-text fontSize="24rpx" value="{{item.whName}}"></dk-text>
-            </view>
-          </view>
-          <view style="display: flex;justify-content: space-between;align-items: center;margin-top:5rpx;">
-            <!-- 系列 -->
-            <view wx:if="{{item.seriesName && item.seriesName !== ''}}">
               <dk-text fontSize="24rpx" value="{{item.seriesName}}"></dk-text>
             </view>
           </view>
+           
         </view>
       </view> 
         <!--销售金额-->
-        <dk-cell contentColor="#A5814A" titleColor="#95A8CB;" title="销售金额"  content="1111111"></dk-cell>
+        <dk-cell titleWid="200rpx" contentColor="#A5814A" titleColor="#95A8CB;" title="销售金额" contentRight="{{true}}" content="{{item.factAmt}}"></dk-cell>
         <!--销售数量-->
-        <dk-cell contentColor="#1B365D" titleColor="#95A8CB;" title="销售数量" amount="{{false}}"content="1111111" ></dk-cell>  
+        <dk-cell titleWid="200rpx" contentColor="#1B365D" titleColor="#95A8CB;" title="销售数量" contentRight="{{true}}" amount="{{false}}"content="{{item.itemQty}}" ></dk-cell>  
+    </view>
+    <!-- 销售汇总表-客户  -->
+    <view  wx:if="{{reportNameKey == 'saleSumCus'}}" class="goods-cell-class " catchtap="toDetail" data-item="{{item}}" data-index="{{index}}">
+      <view style="display:flex;font-weight:600;font-size:15px;padding:25rpx;">
+       <view wx:if="{{item.cusName}}">{{item.cusName}}/</view>    <view  wx:if="{{item.cusPhone}}">{{item.cusPhone}}</view>
+      </view> 
+       <!--销售金额-->
+       <dk-cell  titleWid="200rpx" contentColor="#A5814A" titleColor="#95A8CB;" title="销售金额" contentRight="{{true}}"  content="{{item.factAmt}}"></dk-cell>
+        <!--销售数量-->
+        <dk-cell  titleWid="200rpx" contentColor="#1B365D" titleColor="#95A8CB;" title="销售数量" contentRight="{{true}}" amount="{{false}}"content="{{item.itemQty}}" ></dk-cell>  
     </view>
-
     <!-- 内容 -->
     <view style="width:100%;display: flex;flex-wrap: wrap;justify-content: center;" catchtap="toDetail" data-item="{{item}}" data-index="{{index}}">
       <view wx:if="{{!contentCol}}"  wx:for="{{content}}" class="{{contentCardTwoFlg?'card-class_four':'card-class'}}" wx:for-item="col" data-item="{{col}}" style="{{content.length <= 4? 'width: 46%;': ''}}">

+ 0 - 1
components/dkbase/dk-number-input/dk-number-input.js

@@ -256,7 +256,6 @@ Component({
 
       let minFlag = this.data.minFlag
       let min = this.data.min
-
       // 如果输入后让数据变成非数字,那么就要还原成之前的数据
       if (isNaN(e.detail)) {
         // 如果最小值在0之上 ,就不允许输入负数

+ 4 - 1
components/dkbase/dk-stepper/dk-stepper.js

@@ -44,7 +44,6 @@ Component({
     dataValue: null,
     max: 0
   },
-
   /**
    * 组件的方法列表
    */
@@ -69,6 +68,10 @@ Component({
       let dataValue = this.data.dataValue
       let min = this.data.min
       dataValue = dataValue - this.data.step
+      if(dataValue < 0){
+        min = min * -1
+      }
+      // 当数值计算后小于最大值或大于最小值都可以触发减法
       if (dataValue >= min) {
         this.setData({
           dataValue: dataValue,

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

@@ -3,7 +3,7 @@
     <!-- 将文字显示上方获取焦点相关事件处理遮罩文字显隐 -->
     <view class="number-view">
       <!-- <input disabled class="number-content" style="width: {{inputWidth ? inputWidth: ''}};" bindtap="inputOnFocus" wx:if="{{ !checkFocus && shieldShow }}" value="{{ inputValue }}"></input> -->
-      <image src="{{dataValue>min?'/static/image/btn-minus.png':'/static/image/btn-minus-d.png'}}" style="width: 36rpx;height:36rpx;" catchtap="handleMinus"></image>
+      <image src="{{(dataValue>min || dataValue == max)?'/static/image/btn-minus.png':'/static/image/btn-minus-d.png'}}" style="width: 36rpx;height:36rpx;" catchtap="handleMinus"></image>
       <view style="width: 200rpx;">
         <dk-number-input digits="{{decimalLength}}"  fontSize="14" left="30rpx" formatThousandth="{{false}}" sign=""  min="{{min}}" negative="{{false}}" center="center" readonly="{{!!readonly }}" contentRight="{{false}}" inputColor="#FF7B1A" requiredLeft="15rpx" inputValue="{{dataValue}}" bind:triggerBindBlur="changeStep"></dk-number-input>
       </view>

+ 1 - 0
i18n/zh-CN.js

@@ -411,6 +411,7 @@ const saleOrder = {
   flgGift: '赠品标识',
   makeOrder: '成交订单',
   saleOutBoundFlag: '开单并出库办理',
+  purInBoundFlag: '开单并入库办理',
   autoSaleOutBoundFlag: '自动库存办理',
   saleCollection: '需收款',
   customerInformation: '客户信息',

+ 3 - 0
mixins/index.js

@@ -1332,6 +1332,9 @@ module.exports = {
    * @date : 2022/5/24 12:16
    */
   onReachBottom: function () {
+    console.log('this.data.pageFlag ',this.data.pageFlag )
+    console.log('this.data.loading ',this.data.loading )
+    console.log('this.data.noMore ',this.data.noMore )
     // 不分页也不能进行下翻
     if (!this.data.pageFlag || this.data.loading || this.data.noMore) {
       return;

+ 63 - 4
package-base-select/pages/select-collection_confirm/select-collection_confirm.js

@@ -34,6 +34,7 @@ Page({
     saleOutBoundReturnService: app.globalData['saleOutBoundReturnService'],
     saleOutBoundService: app.globalData['saleOutBoundService'],
     receiptPaymentService: app.globalData['receiptPaymentService'],
+    supReceiptPaymentService: app.globalData['supReceiptPaymentService'],
     negative: false, // 是否进行负数处理
     min: null, // 输入的最小值
     max: null, // 输入的最大值
@@ -286,7 +287,7 @@ Page({
       return res.sumAmount
     })
     //  根据formtype不同值 
-    // formType :1 收款单 ,2 付款单,3 客户收款保存参数,4 客户退款 5 退收款单 6 退付款单  7 其他收入单 8 订单开单收款 9 其他支出 10 销售退款 的退款 11 销售出库的收款
+    // formType :1 收款单 ,2 付款单,3 客户收款保存参数,4 客户退款 5 退收款单 6 退付款单  7 其他收入单 8 订单开单收款 9 其他支出 10 销售退款 的退款 11 销售出库的收款  12 供应商 付款 13 供应商 退付款
     if (this.data.formType == 1) {
       params.rpType = Constants.rpType.receipt
       // 1 收款单
@@ -629,6 +630,50 @@ Page({
       })
       params.accDate = params.accDate ? params.accDate : utils.formatDayTime(new Date())
       params.itemListRecPayItemVO = itemListRecPayItemVO
+    } else if (this.data.formType == 12) { //供应商 付款
+      tableData.forEach(item => {
+        itemList.push({
+          amtPay: item.sumAmount,
+          balance: item.balance,
+          macCode: item.macCode,
+          macId: item.macId,
+          macName: item.macName,
+          makeStaff: item.makeStaff ? item.makeStaff : form.makeStaff,
+          accDate: utils.formatDayTime(new Date())
+        })
+      })
+      // }
+      //客户收款保存参数
+      params.sumAmtPay = Number(itemList.sum('amtPay'))
+      params.accDate = params.accDate ? params.accDate : utils.formatDayTime(new Date())
+      params.supName = form.objInfo.supName
+      params.contactName = form.contactName
+      params.contactPhone = form.contactPhone
+      params.returnAddress = form.returnAddress
+      params.rpType = Constants.rpType.payment
+      params.objectId = form.objectId
+    }else if (this.data.formType == 13) { //供应商 退付款
+      tableData.forEach(item => {
+        itemList.push({
+          amtPay: item.sumAmount,
+          balance: item.balance,
+          macCode: item.macCode,
+          macId: item.macId,
+          macName: item.macName,
+          makeStaff: item.makeStaff ? item.makeStaff : form.makeStaff,
+          accDate: utils.formatDayTime(new Date())
+        })
+      })
+      // }
+      //客户收款保存参数
+      params.sumAmtPay = Number(itemList.sum('amtPay'))
+      params.accDate = params.accDate ? params.accDate : utils.formatDayTime(new Date())
+      params.supName = form.objInfo.supName
+      params.contactName = form.contactName
+      params.contactPhone = form.contactPhone
+      params.returnAddress = form.returnAddress
+      params.rpType = Constants.rpType.returnPayment
+      params.objectId = form.objectId
     }
 
     if (this.data.formType !== 8) {
@@ -679,7 +724,21 @@ Page({
       return this.excute(this.data.saleOutBoundReturnService, this.data.saleOutBoundReturnService.outboundInsertRefund, this.data.params);
     } else if (this.data.formType == 11) { //销售出库 >>> 客户收款 
       return this.excute(this.data.saleOutBoundService, this.data.saleOutBoundService.outboundInsertCollection, this.data.params);
+    } else if (this.data.formType == 12) { //供应商 付款
+      if (this.data.form.editFlag) {
+        return this.excute(this.data.supReceiptPaymentService, this.data.supReceiptPaymentService.updateSupReceipt, this.data.params);
+      } else {
+        return this.excute(this.data.supReceiptPaymentService, this.data.supReceiptPaymentService.insertSupReceipt, this.data.params);
+      }
+    } else if (this.data.formType == 13) { //供应商 退付款
+      if (this.data.form.editFlag) {
+        return this.excute(this.data.supReceiptPaymentService, this.data.supReceiptPaymentService.updateSupReceipt, this.data.params);
+      } else {
+        return this.excute(this.data.supReceiptPaymentService, this.data.supReceiptPaymentService.insertSupRefund, this.data.params);
+      }
     }
+
+    
   },
   /**
    * @desc :   处理保存返回数据
@@ -687,14 +746,14 @@ Page({
    * @author : 姜永辉
    */
   handleData() {
-    if (this.data.formType == 3 || this.data.formType == 4) { //客户收款/退款 
+    if (this.data.formType == 3 || this.data.formType == 4  || this.data.formType == 12 || this.data.formType == 13) { //客户/供应商收款/退款 
       let pages = getCurrentPages();
       if (this.data.formReturnMode == 'customer') {
         let prevPage = pages[pages.length - 4]; //上三页
         prevPage.setData({
           refreshByAdd: true
         })
-      } else if(this.data.formReturnMode == 'customer-collection' || this.data.formReturnMode == 'refund-detail'){ //客户收款/退款详情进入
+      } else if(this.data.formReturnMode == 'customer-collection' || this.data.formReturnMode == 'refund-detail'|| this.data.formReturnMode =='pur-refund-detail' || this.data.formReturnMode =='pur-refund-detail'){ //客户/供应商收款/退款详情进入
         this.setData({
           navigateBackFlag:true
         })
@@ -717,7 +776,7 @@ Page({
           delta: 2
         })
       }
-      if (this.data.formReturnMode == 'customer-collection' || this.data.formReturnMode == 'refund-detail') { //客户收款/退款详情进入详情进入
+      if (this.data.formReturnMode == 'customer-collection' || this.data.formReturnMode == 'refund-detail' ||  this.data.formReturnMode =='pur-receipt-detail' ||  this.data.formReturnMode =='pur-refund-detail') { //客户收款/退款详情进入详情进入
         wx.navigateBack({
           delta: 2
         })

+ 53 - 18
package-base-select/pages/select-data/select-data.js

@@ -385,7 +385,11 @@ Page({
     if (chooseType == Constants.chooseType.supplier) {
       params.supType = "";
       let active = this.data.active
-      params.supType = Constants.kindCode.supplierPur;
+      // params.supType = Constants.kindCode.supplierPur;
+      params.supTypeList =  [
+        Constants.kindCode.supplierPur,
+        Constants.kindCode.supplierOutsourcing,
+      ];
 
       if (active == 1) { //采购供应商
         params.supType = Constants.kindCode.supplierPur;
@@ -725,25 +729,43 @@ Page({
           valueKey: 'supId',
           labelKey: 'supName',
           chooseFlag: route.chooseFlag,
-          contentList: [{
-            name: 'supTypeName',
-            title: '供应商类别'
-          },
-          {
-            name: 'returnAddress',
-            title: '供应商地址'
-          },
-          {
-            name: 'payableResidue',
-            title: '剩余应付'
-          },
-          {
-            name: 'paymentResidue',
-            title: '预付金额'
-          },
-          ],
           placeholder: ['supplier']
         })
+        if(this.data.item.defaultSupplier){
+          this.setData({
+            contentList: [
+            {
+              name: 'returnAddress',
+              title: '供应商地址'
+            },
+            {
+              name: 'payableResidue',
+              title: '供应商欠款'
+            },
+            ],
+          })
+        }else {
+          this.setData({
+            contentList: [{
+              name: 'supTypeName',
+              title: '供应商类别'
+            },
+            {
+              name: 'returnAddress',
+              title: '供应商地址'
+            },
+            {
+              name: 'payableResidue',
+              title: '剩余应付'
+            },
+            {
+              name: 'paymentResidue',
+              title: '预付金额'
+            },
+            ],
+          })
+        }
+
         // 多选时就不要有其他的tag标签
         // if (!route.chooseFlag) {
         //   this.setData({
@@ -1090,6 +1112,7 @@ Page({
  * @author : 刘尧
  */
   handleSearchData(tableData) {
+    console.log('供应商欠款', this.data.item.defaultSupplier);
     let addItem = this.data.addItem
     let valueKey = this.data.valueKey
     let choosedData = this.data.choosedData
@@ -1104,10 +1127,22 @@ Page({
       if (item && (item.decimalPlaces || item.decimalPlaces === 0)) {
         item.decimalPlacesStr = '小数:' + item.decimalPlaces
       }
+      if(this.data.item.defaultSupplier){
+        // todo
+        const targetData = this.data.contentList.filter(res => res.title === '供应商欠款')
+        console.log('targetData', targetData[0].name);
+        console.log('item', item);
+        item[targetData[0].name] = item.payableResidue - item.paymentResidue
+      }
     })
     this.setData({
       tableData: tableData,
       choosedData: choosedData
     })
+    if(this.data.item.defaultSupplier){
+      wx.setNavigationBarTitle({
+        title: '选择采购供应商',
+      })
+    }
   }
 })

+ 6 - 41
package-base-select/pages/select-goods/select-goods.js

@@ -60,12 +60,7 @@ Page({
         readonly: true,
         dropType: ''
       },
-      {
-        code: 'brandName',
-        title: mixins.$t('brandName'),
-        type: 'str',
-        readonly: true,
-      },
+      
       {
         code: 'nonStdCode',
         title: '色号',
@@ -230,13 +225,7 @@ Page({
             title: mixins.$t("warehouseId"),
             type: 'choose',
             urlKey: 'chooseWh'
-          },
-          {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
+          }, 
           {
             code: 'nonStdCode',
             title: mixins.$t("goodsBatch"),
@@ -297,13 +286,7 @@ Page({
             readonly: true,
             title: mixins.$t("warehouseId"),
             type: 'str'
-          },
-          {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
+          }, 
           {
             code: 'nonStdCode',
             readonly: true,
@@ -363,13 +346,7 @@ Page({
             title: mixins.$t("warehouseId"),
             type: 'choose',
             urlKey: 'chooseWh'
-          },
-          {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
+          }, 
           {
             code: 'nonStdCode',
             title: mixins.$t("goodsBatch"),
@@ -431,13 +408,7 @@ Page({
             title: mixins.$t("warehouseId"),
             type: 'choose',
             urlKey: 'openingInventory',
-          },
-          {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
+          }, 
           {
             code: 'nonStdCode',
             title: mixins.$t("goodsBatch"),
@@ -476,13 +447,7 @@ Page({
             title: mixins.$t("warehouseId"),
             type: 'choose',
             urlKey: 'selectInventorySku',
-          },
-          {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
+          }, 
           {
             code: 'nonStdCode',
             title: mixins.$t("goodsBatch"),

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

@@ -66,7 +66,7 @@
           <view style="margin-left: 26rpx;width: 100%; ">
             <!-- 标题 -->
             <view>
-              <dk-title titleTag="{{}}" title="{{item.skuModel}}"></dk-title>
+              <dk-title titleTag="{{item.brandName}}" title="{{item.skuModel}}"></dk-title>
             </view>
             <!-- 描述 -->
             <view style="display: flex;padding-top: 10rpx;">
@@ -217,7 +217,7 @@
             <view data-item="{{item}}" data-index="{{index}}" bind:tap="openChoosedItemInfo">
               <!-- 标题 -->
               <view style="display: flex;">
-                <dk-title titleTag="{{ }}" title="{{item.skuModel}}"></dk-title>
+                <dk-title titleTag="{{item.brandName}}" title="{{item.skuModel}}"></dk-title>
               </view>
               <!-- 描述 -->
               <view style="display: flex; ">
@@ -399,19 +399,19 @@
 
 
 <!--  采购入库 采购订单 其它入库  -->
-<dk-popup wx:if="{{ billType != 'sale' && billType != 'saleOut' && billType !== 'inventory'  }}" stepperDecimal="decimalPlaces" type="sale" descCol="skuName" titleTagCol="" titleCol="skuModel" iconCol="imagesUrl" subCol="calculationFormula" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" priceTitle="" priceCol="sumPrice" contentObj="{{popContent}}" bind:changeStep="changeStep" bind:changeField="changeField" bind:blurNumberField="blurNumberField" bind:openPackageBox="openPackageBox" bind:commit="editItems">
+<dk-popup wx:if="{{ billType != 'sale' && billType != 'saleOut' && billType !== 'inventory'  }}" stepperDecimal="decimalPlaces" type="sale" descCol="skuName" titleTagCol="brandName" titleCol="skuModel" iconCol="imagesUrl" subCol="calculationFormula" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" priceTitle="" priceCol="sumPrice" contentObj="{{popContent}}" bind:changeStep="changeStep" bind:changeField="changeField" bind:blurNumberField="blurNumberField" bind:openPackageBox="openPackageBox" bind:commit="editItems">
 </dk-popup>
 
 <!-- 库存 -->
-<dk-popup id="dkPopup" wx:if="{{ billType == 'inventory' }}" type="sale" descCol="skuName" stepperDecimal="decimalPlaces" subCol="calculationFormula" titleTagCol="" titleCol="skuModel" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" priceTitle="" priceCol="sumPrice" contentObj="{{popContent}}" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:changeStep="changeStep" bind:blurNumberField="blurNumberField" bind:changeField="changeField" bind:changeCheckBox="popupChangeCheckBox">
+<dk-popup id="dkPopup" wx:if="{{ billType == 'inventory' }}" type="sale" descCol="skuName" stepperDecimal="decimalPlaces" subCol="calculationFormula" titleTagCol="brandName" titleCol="skuModel" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" priceTitle="" priceCol="sumPrice" contentObj="{{popContent}}" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:changeStep="changeStep" bind:blurNumberField="blurNumberField" bind:changeField="changeField" bind:changeCheckBox="popupChangeCheckBox">
 </dk-popup>
 
 
 <!-- 销售开单 -->
-<dk-popup id="dkPopup" wx:if="{{ billType == 'sale' }}" type="sale" titleTagCol="" subCol="calculationFormula" descCol="skuName" stepperDecimal="decimalPlaces" titleCol="skuModel" priceCol="sumPrice" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" bind:changeStep="changeStep" bind:openPackageBox="openPackageBox" contentObj="{{popContent}}" bind:commit="editItems" bind:blurNumberField="blurNumberField" bind:changeField="changeField" bind:changeCheckBox="popupChangeCheckBox">
+<dk-popup id="dkPopup" wx:if="{{ billType == 'sale' }}" type="sale" titleTagCol="brandName" subCol="calculationFormula" descCol="skuName" stepperDecimal="decimalPlaces" titleCol="skuModel" priceCol="sumPrice" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" bind:changeStep="changeStep" bind:openPackageBox="openPackageBox" contentObj="{{popContent}}" bind:commit="editItems" bind:blurNumberField="blurNumberField" bind:changeField="changeField" bind:changeCheckBox="popupChangeCheckBox">
 </dk-popup>
 <!-- 销售出库 -->
-<dk-popup wx:if="{{ billType == 'saleOut'}}" type="sale" titleTagCol="" subCol="calculationFormula" descCol="skuName" stepperDecimal="decimalPlaces" titleCol="skuModel" priceCol="sumPrice" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" contentObj="{{popContent}}" bind:changeStep="changeStep" bind:commit="editItems" popupTopObj="{{popupTopObj}}" bind:openPackageBox="openPackageBox" bind:blurNumberField="blurNumberField" bind:changeField="changeField">
+<dk-popup wx:if="{{ billType == 'saleOut'}}" type="sale" titleTagCol="brandName" subCol="calculationFormula" descCol="skuName" stepperDecimal="decimalPlaces" titleCol="skuModel" priceCol="sumPrice" iconCol="imagesUrl" value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" contentObj="{{popContent}}" bind:changeStep="changeStep" bind:commit="editItems" popupTopObj="{{popupTopObj}}" bind:openPackageBox="openPackageBox" bind:blurNumberField="blurNumberField" bind:changeField="changeField">
 </dk-popup>
 
 <!-- 箱片 -->

+ 19 - 20
package-basic-data/pages/customer-list/customer-list.js

@@ -16,15 +16,10 @@ Page({
    * 页面的初始数据 
    */
   data: {
-    tagList: [
-      { title: mixins.$t('potentialCus'), code: mixins.$t('salePotentialCus') },
-      { title: mixins.$t('seasCus'), code: mixins.$t('saleSeasCus') },
-      { title: mixins.$t('dealCus'), code: mixins.$t('saleDealCus') },
-      { title: mixins.$t('allCus'), code: 'all' }
-    ],
+    tagList: [],
     gradeCode: app.globalData.company.gradeCode,
     // 查询条件
-    searchContent: [ ],
+    searchContent: [],
     buttonSaveList: [{ code: 'add', title: mixins.$t('add') }],
     contentSaveList: [{ code: 'need', title: mixins.$t('together'), type: 'count', color: '#1B365D', tail: mixins.$t('customers'), bill: 1, fontSize: '15px' }],
     // 查询条件-筛选
@@ -133,12 +128,15 @@ Page({
   getData(params) {
     return this.excute(this.data.service, this.data.service.selectByCond, params);
   },
-
   /**
-   * 生命周期函数--监听页面加载
+   * @desc : 初始加载
+   * @date : 2024/7/5 15:49
+   * @author : 周兴
    */
-  onLoad: function (options) {
-    if (app.globalData.company.gradeCode == Constants.gradeCode.STD) { //标准
+  loadInit() {
+    if (this.data.freeVersionFlag) { //标准
+      const menu = app.globalData.menus
+      const selMenu = menu.filter(item => item.objectCode === "cus-follow")
       this.setData({
         buttonList: [
           // { name: 'followUp', title: mixins.$t('followUp') },
@@ -152,13 +150,13 @@ Page({
           {
             name: [{ name: 'orgName', title: '' },
             { name: 'staffName', title: '' }], title: mixins.$t('storeInformation')
-          }, 
+          },
         ],
         footerInfo: [{
-          // prefix: mixins.$t('followedUp'),
-          name: 'followCount',
-          // title: mixins.$t('next'),
-          // different: mixins.$t('notFollowedUp'),
+          prefix: selMenu.length > 0 ? mixins.$t('followedUp'): '',
+          name: selMenu.length > 0 ? 'followCount': '',
+          title: selMenu.length > 0 ? mixins.$t('next'): '',
+          different: selMenu.length > 0 ? mixins.$t('notFollowedUp'): '',
           color: 'red'
         },],
         searchContent: [
@@ -168,14 +166,17 @@ Page({
           // { code: 'choose', title: mixins.$t('choose'), searchType: Constants.searchType.pick }
         ],
       })
-    }
-    if (app.globalData.company.gradeCode == Constants.gradeCode.PRO) { //专业
+    } else { //专业
       this.setData({
         buttonList: [
           { name: 'followUp', title: mixins.$t('followUp') },
           { name: 'followUpTasks', title: mixins.$t('followUpTasks') },
           { name: 'toReceipt', title: mixins.$t("cusCollection"), idKey: 'cusId' },//跳转收款单
         ],
+        tagList: [{ title: mixins.$t('potentialCus'), code: mixins.$t('salePotentialCus') },
+        { title: mixins.$t('seasCus'), code: mixins.$t('saleSeasCus') },
+        { title: mixins.$t('dealCus'), code: mixins.$t('saleDealCus') },
+        { title: mixins.$t('allCus'), code: 'all' }],
         // 列表区(内容)
         contentList: [
           { name: 'cusPhone', title: mixins.$t('cusPhone'), phone: true },
@@ -201,8 +202,6 @@ Page({
         ],
       })
     }
-
-
   },
   /**
    * 生命周期函数--监听页面显示

+ 1 - 1
package-basic-data/pages/customer-list/customer-list.wxml

@@ -6,7 +6,7 @@
   <!-- 查询条件 -->
   <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['cusName','cusPhone','adddressFull','remarks'])}}">
   </dk-dropdown-menu>
-  <dk-tabs wx:if="{{gradeCode !== 'STD'}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
+  <dk-tabs active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
 </van-sticky>
 
 

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

@@ -35,7 +35,7 @@ Page({
     activeCard: null,
     // 主键Id
     primaryKey: 'cusId',
- 
+    buyCusFollowFlag: false,
     // 是否标准版
     flgStd: app.globalData.company.gradeCode == Constants.gradeCode.STD ? true : false,
   },
@@ -505,8 +505,11 @@ Page({
     let name = null
     if (gradeCode == Constants.gradeCode.STD) {
       name = 'deal'
+      const menu = app.globalData.menus
+      const selMenu = menu.filter(item => item.objectCode === "cus-follow")
       this.setData({
         active: name,
+        buyCusFollowFlag: selMenu.length > 0,
         activeCard: 'order'
       })
     } else {

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

@@ -168,7 +168,7 @@
 
 <van-tabs color="#1B365D" active="{{ active }}" bind:change="onChange">
   <!--标准版不见跟进记录-->
-  <van-tab title-style="color:#96A7C5;" title="跟进记录" wx:if="{{gradeCode != 'STD'}}" name="follow">
+  <van-tab title-style="color:#96A7C5;" title="跟进记录" wx:if="{{gradeCode != 'STD' || buyCusFollowFlag}}" name="follow">
     <view class="table-show">
       <view class="table-show-detail" style="padding: 5rpx;">
         <view style="width: 100%;" wx:if="{{customerFollowList.length>0}}">
@@ -381,7 +381,7 @@
 
                     <view class="number-out-order">
                       <view class="order-summary">
-                        <dk-text fontSize="17" color="#1B365D" value="{{item.goodsList.length}}">
+                        <dk-text fontSize="17" color="#1B365D" value="{{item.categoryCount}}">
                         </dk-text>
                       </view>
                       <view class="out-oreder-detail">

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

@@ -36,10 +36,7 @@ Page({
             this.setData({
                 userEndDate: app.globalData.company.userEndDate
             })
-        }
-        this.setData({
-            userEndDate: '2024-12-31'
-        })
+        } 
     },
 
     /**

+ 40 - 15
package-inventory/pages/cost-check/cost-check.js

@@ -25,10 +25,17 @@ Page({
     choosedGoodsList: [],
     commonService: app.globalData['commonService'],
     inboundItemService: app.globalData['inboundItemService'],
+    skuIdFlag:false,
     typeList: [{
-      brandName: '全部品牌'
-    }],
-    dataDefaultSearch:  util.getCurrentMonth(),
+      brandName: '全部品牌',
+
+    },
+    {
+      brandName: '外协品',
+      skuIdFlag:true
+    }
+    ],
+    dataDefaultSearch: util.getCurrentMonth(),
     brandId: null,
     active: 0,
     // 确定按钮
@@ -46,7 +53,7 @@ Page({
     navigateBackFlag: true,
     topTitle: '1.本功能只更新选定时间内没成本价格的商品;2.核对对应单据成本',
 
-    clickFlag:false,
+    clickFlag: false,
   },
 
   /**
@@ -55,9 +62,9 @@ Page({
    * @date : 2024/1/26 12:16
    */
   dateCommit(e) {
-    if(this.data.clickFlag){
+    if (this.data.clickFlag) {
       this.setData({
-        clickFlag:false
+        clickFlag: false
       })
       return;
     }
@@ -79,8 +86,8 @@ Page({
       formData: JSON.stringify(formData),
     })
     if (!this.data.createtimeShow) {
-    // 调取查询
-    this.doSearch();
+      // 调取查询
+      this.doSearch();
     }
 
   },
@@ -92,7 +99,7 @@ Page({
   openCreatetime() {
     this.setData({
       createtimeShow: !this.data.createtimeShow,
-      clickFlag:true
+      clickFlag: true
     })
   },
   openTitle() {
@@ -204,7 +211,23 @@ Page({
     })
   },
 
-
+  /**
+     * @desc : 页面上拉触底事件的处理函数
+     * @author : 周兴
+     * @date : 2022/8/1 12:16
+     */
+    scrollToLower() {
+        if (this.data.loading || this.data.noMore) {
+            return;
+        }
+        this.setData({
+            pageInfo: {
+                pageSize: this.data.pageInfo.pageSize,
+                currentPage: this.data.pageInfo.currentPage + 1
+            }
+        })
+        this.searchData('more')
+    },
 
   /**
    * @desc : 左侧分类切换
@@ -215,7 +238,8 @@ Page({
     let index = e.detail
     let typeList = this.data.typeList
     this.setData({
-      brandId: typeList[index].brandId
+      brandId: typeList[index].brandId,
+      skuIdFlag: typeList[index].skuIdFlag
     })
     this.searchData()
   },
@@ -235,12 +259,13 @@ Page({
    */
   setSearchParams(params) {
     let formData = JSON.parse(this.data.formData)
+    params.skuIdFlag = this.data.skuIdFlag
     params.intoDateStart = formData.intoDateStart ? formData.intoDateStart : this.data.dataDefaultSearch[0]
     params.intoDateEnd = formData.intoDateEnd ? formData.intoDateEnd : this.data.dataDefaultSearch[1]
-    if(params.intoDateStart.indexOf('/') != -1){
+    if (params.intoDateStart.indexOf('/') != -1) {
       params.intoDateStart = params.intoDateStart.replace(/\//g, "-")
     }
-    if(params.intoDateEnd.indexOf('/') != -1){
+    if (params.intoDateEnd.indexOf('/') != -1) {
       params.intoDateEnd = params.intoDateEnd.replace(/\//g, "-")
     }
     params.brandId = this.data.brandId ? this.data.brandId : null
@@ -264,7 +289,7 @@ Page({
     if (tableData && tableData.length > 0) {
       tableData.forEach(res => {
         //处理具体明细
-        if (res.itemList) {
+        if (res.itemList && res.itemList.value) {
           res.itemList = JSON.parse(res.itemList.value)
         }
 
@@ -385,7 +410,7 @@ Page({
    * @author : 于继渤
    */
   onLoad() {
-    
+
     this.getGoodsBrandNoPage()
     let _this = this;
     wx.getSystemInfo({

+ 5 - 1
package-inventory/pages/ivt-detail-report/ivt-detail-report.wxml

@@ -58,8 +58,12 @@
 <!-- 仓库 -->
 <dk-muti-dropdown-item show="{{whFlag}}" content="{{form.whName}}" id='warehouse' typeName='warehouse' bind:commit='mutiSearchAll' bind:muticlose='mutiCloseAll'></dk-muti-dropdown-item>
 
-<view style="position: fixed;bottom: 230rpx;right: 30rpx;">
+<!-- <view style="position: fixed;bottom: 230rpx;right: 30rpx;">
   <view bind:tap="export" class="btn-add-class">
     <van-icon name="share" color="#FFFFFF" size="60rpx" />
   </view>
+</view> -->
+
+<view  style="position: fixed;bottom: 230rpx;right: 30rpx;z-index: 99;" bindtap="export">
+  <image src="{{imageUrl + 'excel.png'}} " class="edit-class" />
 </view>

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

@@ -167,7 +167,7 @@
             </view>
             <view style="width: 100%;display: flex;justify-content: space-between;">
               <view style=" padding: 10px 32rpx 10px 32rpx;color: #95A8CB;font-size: 30rpx;">成本金额</view>
-              <dk-cell left="0rpx" style="margin-right: 28rpx;" center="center" fontSize="16" contentFontSize="17" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{active==0?(item_.intoTypeName == '销退回库' ? item_.costAmt : item_.intoAmt):item_.outAmt }}"></dk-cell>
+              <dk-cell left="0rpx" style="margin-right: 28rpx;" center="center" fontSize="16" contentFontSize="17" contentColor="#FF7B1A" spaceWidth="0" contentFontWeight="700" amount="{{true}}" content="{{active==0?(item_.intoTypeName == '销退回库' ? item_.costAmt : item_.intoAmt):item_.costAmt }}"></dk-cell>
             </view>
         </view>
       </view>

+ 371 - 0
package-purchase/pages/pur-receipt/add/add.js

@@ -0,0 +1,371 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息: 
+ *		1.程序名称:
+ *		2.功能描述:客户收款新建
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		        2022-5-25		        1.00		   	    新建
+ *******************************************************************************/
+
+const Constants = require('@/utils/Constants.js');
+import Dialog from '@/dist/dialog/dialog.js';
+const mixins = require('@/mixins/index.js')
+const app = getApp()
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    amountArr: [{
+      title: mixins.$t('payAmount'),
+      code: 'payableResidue'
+    }
+    ],
+    cardList: [{
+      name: 'main'
+    },],
+    contentObj: {
+      main: [
+
+
+        {
+          code: 'staffId',
+          name: 'staffName',
+          title: mixins.$t('staffId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseStaff'
+        }, {
+          code: 'orgId',
+          name: 'orgName',
+          title: mixins.$t('orgId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseOrg'
+        },
+        {
+          code: 'sumAmtPay',
+          type: 'number',
+          title: mixins.$t("paymentAmount"),
+          readonly: false,
+          required: true,
+        },
+        {
+          code: 'remarks',
+          type: 'textarea',
+          title: mixins.$t("remarks"),
+          readonly: false
+        },
+        {
+          code: 'file',
+          type: 'uploader',
+          title: mixins.$t("uploader")
+        }
+      ],
+
+    },
+    objInfo: {},
+    buttonSaveList: [{
+      code: 'add',
+      title: mixins.$t("collection")
+    }],
+    contentSaveList: [{
+      code: 'need',
+      title: mixins.$t("paymentAmount"),
+      type: 'str'
+    }, {
+      code: 'amount',
+      content: 0,
+      type: 'number'
+    }],
+    routeObjName: 'supReceiptPayment',
+    accountService: app.globalData['accountService'],
+  },
+  /**
+   * @desc : 计算需收款
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  changeNumberBlur(e) {
+    let formData = JSON.parse(this.data.formData)
+    let contentSaveList = this.data.contentSaveList
+    contentSaveList[1].content = formData.sumAmtPay ? formData.sumAmtPay : 0
+    this.setData({
+      contentSaveList: contentSaveList
+    })
+  },
+
+  /**
+   * @desc   : 非空校验
+   * @author : 周兴
+   * @date   : 2024/2/20 11:46
+   */
+  validDatas(formData) {
+    let flag = true;
+    let contentObj = this.data.contentObj;
+    contentObj['main'].forEach(item => {
+      let title = item.title ? item.title : item.code
+      // 如果必须输入,就要进行判断 
+      if (item.required && formData[item.code] == null) {
+        item.errMsg = title + '不为空'
+        flag = false;
+      }
+      if (item.code == 'cusPhone') {
+        let myreg = Constants.Mobile_Phone_Number_Regular_Expression
+        if (!myreg.test(formData[item.code])) {
+          item.errMsg = title + '格式错误'
+          flag = false;
+        }
+      }
+
+    })
+    this.setData({
+      contentObj: contentObj
+    })
+    return flag;
+  },
+
+  /**
+   * @desc : 保存数据服务-跳转收款页面
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  open(e) {
+    let _this = this
+    let data = JSON.parse(_this.data.formData)
+    if (!_this.validDatas(data)) {
+      return
+    }
+    if (!data.sumAmtPay || data.sumAmtPay == 0) {
+      // 是否弹出询问框
+      Dialog.confirm({
+        message: '请输入金额',
+        showCancelButton: false,
+      }).then(() => {
+      }).catch(() => { })
+      return
+    }
+    wx.navigateTo({
+      url: this.data.route.selectCollectionConfirm.url,
+      events: {
+        // 回调后
+        refresh: function (data) {
+          //销售订单跳转
+          if (_this.data.formType == Constants.formMode.add) {
+            _this.setData({
+              loading: true,
+              isrefresh: true
+            })
+          } else {
+            let formData = {}
+            formData.orgId = _this.data.orgStaffInfo.orgId
+            formData.orgName = _this.data.orgStaffInfo.orgName
+            formData.staffId = _this.data.orgStaffInfo.staffId
+            formData.staffName = _this.data.orgStaffInfo.staffName
+            // 需收款
+            let contentSaveList = _this.data.contentSaveList
+            contentSaveList.forEach(item => {
+              if (item.code == 'amount') {
+                item.content = 0
+              }
+            })
+            _this.setData({
+              formData: JSON.stringify(formData),
+              contentSaveList
+            })
+          }
+        }
+      },
+      success: function (res) {
+        //设置参数
+        let item = _this.setSaveData()
+        res.eventChannel.emit('params', {
+          item: item,
+          formType: 12,
+          formReturnMode: _this.data.formReturnMode
+        })
+      }
+    })
+  },
+  onShow() {
+    if (this.data.isrefresh) {
+      this.handleNavBack()
+    }
+  },
+  /**
+   * @desc : 处理保存参数
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setSaveData() {
+    let formData = JSON.parse(this.data.formData)
+    let param = formData
+    param.cusName = formData.cusName
+    param.objInfo = {}
+    param.objInfo['supPhone'] = formData.supPhone
+    param.objInfo['supName'] = formData.supName
+    param.objInfo['objectId'] = formData.supId
+    param.objInfo['returnAddress'] = formData.returnAddress
+    param.supName = formData.supName
+    param.returnAddress = formData.returnAddress
+    if (this.data.formMode !== Constants.formMode.other) {
+      param.orgId = formData.orgId ? formData.orgId : app.globalData.user.orgId
+      param.orgName = formData.orgName ? formData.orgName : app.globalData.user.orgName
+      param.staffId = formData.staffId ? formData.staffId : app.globalData.user.staffId
+      param.staffName = formData.staffName ? formData.staffName : app.globalData.user.staffName
+      param.objectId = formData.supId
+    } else {
+      //编辑退款
+      param.editFlag = true
+      this.data.dataItem.forEach(res => {
+        res.checked = true
+        res.sumAmount = Number(res.amtPay).toFixed(2)
+      })
+      param.dataItem = this.data.dataItem
+    }
+    param.annexPaths = formData.annexPaths
+    param.rpType = '收付款类型-付款'
+    param.sumAmtPay = formData.sumAmtPay
+    param.sumAmount = formData.sumAmtPay
+    // 设定当前多业务部门业务员
+    this.setData({
+      orgStaffInfo: {
+        orgId: param.orgId ? param.orgId : app.globalData.user.orgId,
+        staffId: param.staffId ? param.staffId : app.globalData.user.staffId,
+        orgName: param.orgName,
+        staffName: param.staffName,
+      }
+    })
+    return JSON.stringify(param)
+  },
+
+  /**
+   * @desc   : 选择回调
+   * @author : 于继渤
+   * @date   : 2024/1/26 11:46
+   */
+  chooseData(e) {
+    let item = e.detail.data
+    let code = e.detail.code
+    console.log('chooseData', e)
+    let formData = JSON.parse(this.data.formData)
+    if (code == "staffId") { //员工
+      formData.staffId = item.data.id
+      formData.staffName = item.data.name
+      formData.orgId = item.data.orgId
+      formData.orgName = item.data.orgName
+    }
+    if (code == "orgId") { //部门
+      formData.orgId = item.data.id
+      formData.orgName = item.data.name
+    }
+
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+
+
+  chooseObjTypeData(e) {
+    console.log('chooseObjTypeData', e.detail.data.objInfo)
+    let objInfo = e.detail.data.objInfo
+    let formData = JSON.parse(this.data.formData)
+    formData.contactName = objInfo.contactName
+    formData.contactPhone = objInfo.contactPhone
+    formData.returnAddress = objInfo.returnAddress
+    formData.supName = objInfo.supName
+    formData.supId = objInfo.supId
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+  },
+
+  /**
+   * @desc : 编辑用
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  getRpForUpdate(id) {
+    return this.excute(this.data.service, this.data.service.getRpForUpdate + '/' + id, {}).then(res => {
+      if (res.data.code == 200) {
+        let data = res.data.data.data
+        data.objInfo = {
+          supId: data.supId,
+          supName: data.supName,
+          supPhone: data.supPhone,
+          supCode: data.supCode,
+          payableResidue: data.payableResidue
+        }
+
+        
+
+        this.setData({
+          formData: JSON.stringify(data),
+          dataItem: res.data.data.dataItem
+        })
+        // 获取当前客户的账款信息
+        this.getAccount(data.objectId)
+        this.changeNumberBlur()
+      }
+    });
+  },
+
+  /**
+  * @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) {
+        let formData = JSON.parse(this.data.formData)
+        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
+
+          } else {
+            formData.cusDebt = 0
+          }
+        } else {
+          formData.cusDebt = 0
+        }
+        this.setData({
+          formData: JSON.stringify(formData)
+        })
+      }
+    });
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  loadInit() {
+    let formData = JSON.parse(this.data.formData)
+    formData.staffId = app.globalData.user.staffId
+    formData.staffName = app.globalData.user.staffName
+    formData.orgId = app.globalData.user.orgId
+    formData.orgName = app.globalData.user.orgName
+
+    //编辑收款
+    if (this.data.formMode == Constants.formMode.other) {
+      wx.setNavigationBarTitle({
+        title: '编辑供应商付款',
+      })
+      this.getRpForUpdate(this.data.id)
+    }
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+})

+ 4 - 0
package-purchase/pages/pur-receipt/add/add.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"新建供应商付款"
+}

+ 14 - 0
package-purchase/pages/pur-receipt/add/add.wxml

@@ -0,0 +1,14 @@
+<van-dialog id="van-dialog" />
+<loading wx:if="{{loading}}"></loading>
+<!-- 添加模版 -->
+<!-- <import src="/utils/template.wxml" />
+<template is="myTemplate" /> -->
+<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount"  amountTitle="应付金额" amountCol="payableResidue"
+objIdCol="supId" objTitle="supName"   objCol="supId" objLabel="{{$t['supName']}}" objType="supplier" cardList="{{cardList}}" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" saleStaffAndOrgFlag="{{false}}" bind:chooseData="chooseData" popType="sale" staff="staff" org="org" bind:changeNumberBlur="changeNumberBlur" bind:chooseObjTypeData="chooseObjTypeData" bind:clickAttach="clickAttach" bind:uploadSucess="uploadSucess" bind:uploadError="uploadError"
+saleStaffAndOrgFlag="{{false}}" 
+>
+</dk-form-bill>
+
+<view style="height: 200rpx;"></view>
+
+<dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonSaveList}}" contentList="{{contentSaveList}}" bind:open="open"></dk-save-button>

+ 1 - 0
package-purchase/pages/pur-receipt/add/add.wxss

@@ -0,0 +1 @@
+/* package-purchase/pages/pur-receipt/add/add.wxss */

+ 337 - 0
package-purchase/pages/pur-receipt/detail/detail.js

@@ -0,0 +1,337 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息: 
+ *		1.程序名称:
+ *		2.功能描述:客户收款新建
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		        2022-5-25		        1.00		   	    新建
+ *******************************************************************************/
+
+const Constants = require('@/utils/Constants.js');
+import Dialog from '@/dist/dialog/dialog.js';
+const mixins = require('@/mixins/index.js')
+const app = getApp()
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    // 预存金额 预收金额
+    amountArr: [{
+      title: mixins.$t('receivableAmount'),
+      code: 'receivableResidue'
+    },
+    {
+      title: mixins.$t('advancePaymentAmount'),
+      code: 'receiptResidue'
+    }
+    ],
+    cardList: [{
+      name: 'main'
+    },],
+    contentObj: {
+      main: [
+        {
+          code: 'staffId',
+          name: 'staffName',
+          title: mixins.$t('staffId'),
+          type: 'choose',
+          required: false,
+          urlKey: 'chooseStaff'
+        }, {
+          code: 'orgId',
+          name: 'orgName',
+          title: mixins.$t('orgId'),
+          type: 'choose',
+          required: false,
+          urlKey: 'chooseOrg'
+        },
+        {
+          code: 'sumAmtPay',
+          type: 'number',
+          title: mixins.$t("paymentAmount"),
+          readonly: true,
+          required: false,
+        },
+        {
+          code: 'remarks',
+          type: 'textarea',
+          title: mixins.$t("remarks"),
+          readonly: true
+        },
+        {
+          code: 'file',
+          type: 'uploader',
+          title: mixins.$t("uploader"),
+          readonly: true
+        }
+      ],
+
+    },
+    objInfo: {},
+    buttonSaveList: [{ code: 'add', title: mixins.$t("receiptDetail")}],
+    recPayItem:[],
+    refreshByAdd:true,
+    routeObjName: 'supReceiptPayment',
+    accountService: app.globalData['accountService'],
+  },
+
+  /**
+   * @desc : 跳转明细
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  toDetail(e) {
+    let url = this.data.route.edit.url
+    let _this = this;
+    wx.navigateTo({
+      url: url,
+      events: {
+        // 保存成功后刷新页面
+        refresh: function (data) {
+          // 刷新一览界面
+          _this.searchData();
+        }
+      },
+      success: function (res) {
+        let data = {
+          id: _this.data.id,
+          formMode: Constants.formMode.other,
+          formReturnMode: _this.data.formReturnMode ? _this.data.formReturnMode : 'pur-receipt-detail'
+        }
+        res.eventChannel.emit('params', data);
+      }
+    })
+  },
+  /**
+  * @desc : 保存数据服务-跳转收款页面
+  * @date : 2024/2/1 15:49
+  * @author : 于继渤
+  */
+  open(e) {
+    let _this = this
+    wx.navigateTo({
+      url: this.data.route.selectCollectionConfirm.url,
+      events: {
+        // 回调后
+        bindData: function (data) {
+          // 保存成功后 回调
+          wx.navigateBack({
+            data: 1
+          })
+        }
+      },
+      success: function (res) {
+        //设置参数
+        let item = _this.setSaveData()
+        res.eventChannel.emit('params', { item: item, formType: 3 })
+      }
+    })
+  },
+
+  /**
+    * @desc : 处理保存参数
+    * @date : 2024/2/1 15:49
+    * @author : 于继渤
+    */
+  setSaveData() {
+    let formData = JSON.parse(this.data.formData)
+    let param = formData
+    param.cusName = formData.cusName
+    param.objInfo = {}
+    param.objInfo['cusPhone'] = formData.cusPhone
+    param.objInfo['cusName'] = formData.cusName
+    param.objInfo['objectId'] = formData.cusId
+    param.objInfo['addressFull'] = formData.addressFull
+    param.cusName = formData.cusName
+    param.cusPhone = formData.cusPhone
+
+    param.addressFull = formData.addressFull
+
+    if (this.data.formMode !== Constants.formMode.other) {
+      param.orgId = app.globalData.user.orgId
+      param.orgName = app.globalData.user.orgName
+      param.staffId = app.globalData.user.staffId
+      param.staffName = app.globalData.user.staffName
+      param.objectId = formData.cusId
+    } else {
+      //编辑退款
+      param.editFlag = true
+      this.data.dataItem.forEach(res => {
+        res.checked = true
+        res.sumAmount = Number(res.amtRec).toFixed(2)
+      })
+      param.dataItem = this.data.dataItem
+    }
+    param.annexPaths = formData.annexPaths
+    param.rpType = '收付款类型-收款'
+    param.sumAmtRec = formData.sumAmtRec
+    param.sumAmount = formData.sumAmtRec
+
+    return JSON.stringify(param)
+  },
+
+  /**
+    * @desc   : 选择回调
+    * @author : 于继渤
+    * @date   : 2024/1/26 11:46
+    */
+  chooseData(e) {
+    let item = e.detail.data
+    let code = e.detail.code
+    let formData = JSON.parse(this.data.formData)
+    //设置客户信息
+    if (code == 'cusName') {
+      formData.cusCode = item.cusCode
+      formData.cusId = item.cusId
+      formData.cusName = item.cusName
+      formData.cusPhone = item.cusPhone
+      formData.cusFromName = item.cusFromName
+      formData.cusFrom = item.cusFrom
+      //处理地址
+      formData.address = {
+        address: item.addressFull,
+        addressFull: item.addressFull,
+        addressArea: item.addressArea,
+        addressGcj02: item.addressGcj02,
+        addressName: item.addressName,
+      }
+      formData.addressArea = item.addressArea
+      formData.addressFull = item.addressFull
+      formData.addressGcj02 = item.addressGcj02
+      formData.addressName = item.addressName
+      formData.addressNo = item.addressNo
+      //订单销售渠道 ,默认取的客户的渠道
+      formData.salesChannel = item.channelId
+      formData.channelId = item.channelId
+      formData.channelName = item.channelName
+      formData.contactPhone = item.contactPhone
+      formData.contactPhone = item.contactPhone
+    }
+    ///设置主从业务员
+    if (code == 'staff') {
+      formData.staff = item.staffItem
+      formData['staffId'] = item.staffMain.staffId
+      formData['staffName'] = item.staffMain.staffName
+      formData['staffList'] = item.staffList
+    }
+    ///设置主从业务部门
+    if (code == 'org') {
+      formData.org = item.orgItem
+      formData['orgId'] = item.orgMain.orgId
+      formData['orgName'] = item.orgMain.orgName
+      formData['orgList'] = item.orgList
+    }
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+
+
+  /**
+     * @desc : 编辑用
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  getRpForUpdate(id) {
+    return this.excute(this.data.service, this.data.service.getRpForUpdate + '/' + id, {}).then(res => {
+      if (res.data.code == 200) {
+        let data = res.data.data.data
+        data.objInfo = {
+          supId: data.supId,
+          supName: data.supName,
+          payableResidue: data.payableResidue,
+          contactPhone: data.contactPhone,
+          contactName: data.contactName
+        }
+      
+        this.selectRpInfoById(data.rpId)
+        this.setData({
+          formData: JSON.stringify(data),
+          dataItem: res.data.data.dataItem
+        })
+
+      }
+    });
+  },
+
+  /**
+     * @desc : 查询收款明细
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  selectRpInfoById(rpId){
+    return this.excute(this.data.service, this.data.service.selectRpInfoById + '/' + rpId, {}).then(res => {
+      if (res.data.code == 200) {
+        this.setData({
+          recPayItem:res.data.data.recPayItem
+        })
+        
+      }
+    });
+  },
+  /**
+  * 生命周期函数--监听页面加载
+  */
+  loadInit() {
+    let pages = getCurrentPages();
+    let prevPage = pages[pages.length - 2]; //上三页
+    prevPage.setData({
+      refreshByAdd: true
+    })
+    let formData = JSON.parse(this.data.formData)
+
+    //编辑收款
+    if (this.data.formMode == Constants.formMode.other) {
+      this.getRpForUpdate(this.data.id)
+    }
+    //销售订单跳转
+    if(this.data.formType == Constants.formMode.add){
+      formData.cusCode = this.data.item.cusCode
+      formData.cusId = this.data.item.cusId
+      formData.cusName = this.data.item.cusName
+      formData.cusPhone = this.data.item.cusPhone
+      formData.cusFromName = this.data.item.cusFromName
+      formData.cusFrom = this.data.item.cusFrom
+      //处理地址
+      formData.address = {
+        address: this.data.item.addressFull,
+        addressFull: this.data.item.addressFull,
+        addressArea: this.data.item.addressArea,
+        addressGcj02: this.data.item.addressGcj02,
+        addressName: this.data.item.addressName,
+      }
+      formData.addressArea = this.data.item.addressArea
+      formData.addressFull = this.data.item.addressFull
+      formData.addressGcj02 = this.data.item.addressGcj02
+      formData.addressName = this.data.item.addressName
+      formData.addressNo = this.data.item.addressNo
+      //订单销售渠道 ,默认取的客户的渠道
+      formData.salesChannel = this.data.item.channelId
+      formData.channelId = this.data.item.channelId
+      formData.channelName = this.data.item.channelName
+      formData.contactPhone = this.data.item.contactPhone
+      formData.contactPhone = this.data.item.contactPhone
+    }
+
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+  /**
+     * @desc : 自定义查询
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  customQuery(){
+    if (this.data.formMode == Constants.formMode.other) {
+      this.getRpForUpdate(this.data.id)
+    }
+  },
+})

+ 4 - 0
package-purchase/pages/pur-receipt/detail/detail.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"供应商付款详情"
+}

+ 71 - 0
package-purchase/pages/pur-receipt/detail/detail.wxml

@@ -0,0 +1,71 @@
+<van-dialog id="van-dialog" />
+<loading wx:if="{{loading}}"></loading>
+<!-- 添加模版 -->
+<!-- <import src="/utils/template.wxml" />
+<template is="myTemplate" /> -->
+
+<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount"    amountTitle="应付金额" amountCol="payableResidue"
+objIdCol="supId" objTitle="supName"   objCol="supId" objLabel="{{$t['supName']}}" objType="supplier" cardList="{{cardList}}" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" saleStaffAndOrgFlag="{{false}}" bind:chooseData="chooseData" popType="sale" staff="staff" org="org" bind:changeNumberBlur="changeNumberBlur" bind:chooseObjTypeData="chooseObjTypeData" readonly="{{true}}" 
+saleStaffAndOrgFlag="{{false}}" 
+>
+</dk-form-bill>
+
+<view class="dk-card-outer-class">
+  <view class="dk-card-class">
+    <view class="item-class">
+
+      <view class="item-title-class">收款详情</view>
+    </view>
+    <view wx:for="{{recPayItem}}" wx:for-item="item" data-item="{{item}}" wx:for-index="cardIndex">
+    <view style="margin-bottom: 10px;">
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="账户名称" copyValue="{{item.macName}}"></dk-text>
+          </view>
+          <view class="table-content-class">
+            {{item.macName}}
+          </view>
+        </view>
+      </view>
+
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="收款金额" copyValue="{{item.amtRec}}"></dk-text>
+          </view>
+          <view class="table-content-class" >
+            <!-- {{item.amtRec}} -->
+            <dk-cell height="40rpx" contentRight="{{false}}" left="0rpx" center="left" fontSize="14" contentColor="#FF7B1A" spaceWidth="0rpx" content="{{item.amtPay}}"></dk-cell>
+          </view>
+        </view>
+      </view>
+
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="备注" copyValue="{{item.remarks}}"></dk-text>
+          </view>
+          <view class="table-content-class">
+            {{item.remarks ? item.remarks : ''}}
+          </view>
+        </view>
+      </view>
+    </view>
+     
+    </view>
+  </view>
+
+
+
+</view>
+
+<!-- <view style="position: fixed;bottom: 230rpx;right: 30rpx;">
+  <view bind:tap="toDetail" class="btn-add-class">
+    <van-icon name="edit" color="#FFFFFF" size="60rpx" />
+  </view>
+</view> -->
+<!-- 编辑  -->
+<view style="position: fixed;bottom: 230rpx;right: 30rpx;z-index: 99;" bindtap="toDetail">
+  <image src="{{imageUrl + 'edit.png'}} " class="edit-class"  />
+</view>

+ 42 - 0
package-purchase/pages/pur-receipt/detail/detail.wxss

@@ -0,0 +1,42 @@
+.item-class {
+  display: flex;
+  font-size: 30rpx;
+  padding: 20rpx;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.item-title-class {
+  margin-left: 14rpx;
+  font-size: 15px;
+  color: #1B365D;
+  font-weight: 600;
+  width: 26%;
+}
+/**card的外部样式*/
+.dk-card-outer-class {
+  margin: 10px 32rpx 10px 32rpx;
+  margin-top: 10px;
+  border-radius: 15rpx;
+  /* box-shadow: 2px 2px 5px #e5e5e6; */
+}
+
+/**card的样式*/
+.dk-card-class {
+  background: #FFFFFF;
+  border-radius: 16rpx;
+  padding: 5rpx;
+  margin-bottom: 20rpx;
+  box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.08);
+  /* box-shadow: 0px -6px 20px 0px rgba(0, 0, 0, 0.08); */
+
+}
+.btn-add-class {
+  background: #8091A9;
+  border-radius: 50%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 20rpx;
+  box-shadow: 0px 17px 22px 0px #1B365D33;
+}

+ 134 - 0
package-purchase/pages/pur-receipt/pur-receipt.js

@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:选品
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		 2024-1-23			1.00		    选品
+ *******************************************************************************/
+const Constants = require('@/utils/Constants.js');
+const mixins = require('@/mixins/index.js')
+import Dialog from '@/dist/dialog/dialog.js';
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    navigationBarTitle: '',
+    primaryKey: 'rpId',
+    // 查询条件
+    searchContent: [{
+      code: 'createtime',
+      title: '近30天',
+      defaultValue: 5,
+      searchType: Constants.searchType.date
+    }, {
+      code: 'staff',
+      title: '业务员',
+      dropType: 'staff'
+    },
+
+    ],
+
+    // 列表区(内容)
+    contentList: [
+      { name: 'rpNo', title: '付款单号' },
+      { name: [{ name: 'orgName', title: '' }, { name: 'staffName', title: '业务员' }], title: '门店/业务员' },
+      { name: 'accDate', title: '付款时间' },
+
+    ],
+    // 列表区(脚部金额)
+    footerAmount: {
+      name: 'sumAmtPay',
+      title: mixins.$t('totalAmount')
+    },
+    footerInfo: [{ name: 'sumAmtPay', }],
+    buttonSaveList: [{ code: 'add', title: mixins.$t("add") }],
+    // 路由
+    routeObjName: 'supReceiptPayment',
+    refreshByAdd: false,
+    // 弹出按钮
+    buttonList: [
+      { name: 'invalid', title: mixins.$t("invaidOrder") },//作废 
+      { name: 'printedBill', title: mixins.$t("printedBill") }, //打印
+    ],
+  },
+ /**
+   * @desc :   作废
+   * @date : 2024年3月8日
+   * @author : 于继渤
+   */
+  invalid(e) {
+    let that = this
+    // 是否弹出询问框
+    Dialog.confirm({
+      message: mixins.$t('isInvalidDetail'),
+    }).then(() => {
+      that.setData({
+        loading:true
+      })
+      return this.excute(this.data.service, this.data.service.invalidSup + '/' + e.rpId, {}).then(res => {
+        if (res.data.code == 200) {
+          that.searchData()
+          wx.showToast({
+            title: mixins.$t('invalidSuccessfully'),
+            image: '/static/image/success.png',
+            duration: 1000
+          })
+        }
+      })
+    }).catch(() => {
+    })
+  },
+  /**
+   * @desc : 设置查询参数
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setSearchParams(params) {
+    params.objectId = this.data.id ? this.data.id : null
+    params.rpTypeList = ['收付款类型-付款']
+    params.flgValidList = [true]
+    return params;
+  },
+  /**
+   * @desc : 加载数据
+   * @author : 于继渤
+   * @date : 2024/1/23 9:16
+   */
+  getData(params) {
+    return this.excute(this.data.service, this.data.service.getRpSupList, params);
+  },
+  loadInit() {
+    this.setData({
+      navigationBarTitle: '供应商付款'
+    })
+  },
+    /**
+   * @desc : 跳转明细
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  toDetail(e) {
+    let url = this.data.route.detail.url
+    let _this = this;
+    wx.navigateTo({
+      url: url,
+      events: {
+        // 保存成功后刷新页面
+        refresh: function (data) {
+          // 刷新一览界面
+          _this.searchData();
+        }
+      },
+      success: function (res) {
+        let data = {
+          id: e.detail.item.rpId,
+          formMode: Constants.formMode.other
+        }
+        res.eventChannel.emit('params', data);
+      }
+    })
+  },
+})

+ 7 - 0
package-purchase/pages/pur-receipt/pur-receipt.json

@@ -0,0 +1,7 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"供应商收款",
+  "enablePullDownRefresh": true,
+  "backgroundTextStyle": "light",
+  "navigationStyle": "custom"
+}

+ 18 - 0
package-purchase/pages/pur-receipt/pur-receipt.wxml

@@ -0,0 +1,18 @@
+<!-- 前台导入wxmlUtil.wxs -->
+<wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
+<loading wx:if="{{loading}}" loadingName="{{$t['loading']}}" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
+<van-sticky scroll-top="0">
+  <!-- 自定义导航 -->
+  <dk-navbar titleFontColor="#000000" navbarTitle="{{navigationBarTitle}}" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
+  <!-- 查询条件 -->
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  </dk-dropdown-menu>
+</van-sticky>
+
+<!-- 列表区 -->
+<dk-list list="{{tableData}}" flgSubFormatDate="{{true}}" titleCorner="channelName" title="supName" status="rpTypeName"  content="{{contentList}}" collectCol="collectStatus" collectCol="sumAmtPay" contentObj="{{contentObj}}" contentCol="" footerAmount="{{footerAmount}}" footerInfo="{{footerInfo}}" bind:toDetail="toDetail" bind:toTitle="toTitle" bind:toStatus="toStatus" bind:toPoint="toPoint"  collectName="收款"   routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list>
+<view style="height: 200rpx;"></view>
+
+<van-dialog id="van-dialog" />  
+<!-- 新建按钮 -->
+<dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonSaveList}}" contentList="{{contentSaveList}}" bind:open="open"></dk-save-button>

+ 1 - 0
package-purchase/pages/pur-receipt/pur-receipt.wxss

@@ -0,0 +1 @@
+/* package-purchase/pages/pur-receipt/pur-receipt.wxss */

+ 372 - 0
package-purchase/pages/pur-refund/add/add.js

@@ -0,0 +1,372 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息: 
+ *		1.程序名称:
+ *		2.功能描述:客户收款新建
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		        2022-5-25		        1.00		   	    新建
+ *******************************************************************************/
+
+const Constants = require('@/utils/Constants.js');
+import Dialog from '@/dist/dialog/dialog.js';
+const mixins = require('@/mixins/index.js')
+const app = getApp()
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    amountArr: [{
+      title: mixins.$t('payAmount'),
+      code: 'payableResidue'
+    }
+    ],
+    cardList: [{
+      name: 'main'
+    },],
+    contentObj: {
+      main: [
+
+
+        {
+          code: 'staffId',
+          name: 'staffName',
+          title: mixins.$t('staffId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseStaff'
+        }, {
+          code: 'orgId',
+          name: 'orgName',
+          title: mixins.$t('orgId'),
+          type: 'choose',
+          required: true,
+          urlKey: 'chooseOrg'
+        },
+        {
+          code: 'sumAmtPay',
+          type: 'number',
+          negative: true, min: Constants.MIN_VALUE, maxFlag: false,
+          title: mixins.$t("paymentAmount"),
+          readonly: false,
+          required: true,
+        },
+        {
+          code: 'remarks',
+          type: 'textarea',
+          title: mixins.$t("remarks"),
+          readonly: false
+        },
+        {
+          code: 'file',
+          type: 'uploader',
+          title: mixins.$t("uploader")
+        }
+      ],
+
+    },
+    objInfo: {},
+    buttonSaveList: [{
+      code: 'add',
+      title: mixins.$t("collection")
+    }],
+    contentSaveList: [{
+      code: 'need',
+      title: mixins.$t("paymentAmount"),
+      type: 'str'
+    }, {
+      code: 'amount',
+      content: 0,
+      type: 'number'
+    }],
+    routeObjName: 'supReceiptPayment',
+    accountService: app.globalData['accountService'],
+  },
+  /**
+   * @desc : 计算需收款
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  changeNumberBlur(e) {
+    let formData = JSON.parse(this.data.formData)
+    let contentSaveList = this.data.contentSaveList
+    contentSaveList[1].content = formData.sumAmtPay ? formData.sumAmtPay : 0
+    this.setData({
+      contentSaveList: contentSaveList
+    })
+  },
+
+  /**
+   * @desc   : 非空校验
+   * @author : 周兴
+   * @date   : 2024/2/20 11:46
+   */
+  validDatas(formData) {
+    let flag = true;
+    let contentObj = this.data.contentObj;
+    contentObj['main'].forEach(item => {
+      let title = item.title ? item.title : item.code
+      // 如果必须输入,就要进行判断 
+      if (item.required && formData[item.code] == null) {
+        item.errMsg = title + '不为空'
+        flag = false;
+      }
+      if (item.code == 'cusPhone') {
+        let myreg = Constants.Mobile_Phone_Number_Regular_Expression
+        if (!myreg.test(formData[item.code])) {
+          item.errMsg = title + '格式错误'
+          flag = false;
+        }
+      }
+
+    })
+    this.setData({
+      contentObj: contentObj
+    })
+    return flag;
+  },
+
+  /**
+   * @desc : 保存数据服务-跳转收款页面
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  open(e) {
+    let _this = this
+    let data = JSON.parse(_this.data.formData)
+    if (!_this.validDatas(data)) {
+      return
+    }
+    if (!data.sumAmtPay || data.sumAmtPay == 0) {
+      // 是否弹出询问框
+      Dialog.confirm({
+        message: '请输入金额',
+        showCancelButton: false,
+      }).then(() => {
+      }).catch(() => { })
+      return
+    }
+    wx.navigateTo({
+      url: this.data.route.selectCollectionConfirm.url,
+      events: {
+        // 回调后
+        refresh: function (data) {
+          //销售订单跳转
+          if (_this.data.formType == Constants.formMode.add) {
+            _this.setData({
+              loading: true,
+              isrefresh: true
+            })
+          } else {
+            let formData = {}
+            formData.orgId = _this.data.orgStaffInfo.orgId
+            formData.orgName = _this.data.orgStaffInfo.orgName
+            formData.staffId = _this.data.orgStaffInfo.staffId
+            formData.staffName = _this.data.orgStaffInfo.staffName
+            // 需收款
+            let contentSaveList = _this.data.contentSaveList
+            contentSaveList.forEach(item => {
+              if (item.code == 'amount') {
+                item.content = 0
+              }
+            })
+            _this.setData({
+              formData: JSON.stringify(formData),
+              contentSaveList
+            })
+          }
+        }
+      },
+      success: function (res) {
+        //设置参数
+        let item = _this.setSaveData()
+        res.eventChannel.emit('params', {
+          item: item,
+          formType: 13,
+          formReturnMode: _this.data.formReturnMode
+        })
+      }
+    })
+  },
+  onShow() {
+    if (this.data.isrefresh) {
+      this.handleNavBack()
+    }
+  },
+  /**
+   * @desc : 处理保存参数
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setSaveData() {
+    let formData = JSON.parse(this.data.formData)
+    let param = formData
+    param.cusName = formData.cusName
+    param.objInfo = {}
+    param.objInfo['supPhone'] = formData.supPhone
+    param.objInfo['supName'] = formData.supName
+    param.objInfo['objectId'] = formData.supId
+    param.objInfo['returnAddress'] = formData.returnAddress
+    param.supName = formData.supName
+    param.returnAddress = formData.returnAddress
+    if (this.data.formMode !== Constants.formMode.other) {
+      param.orgId = formData.orgId ? formData.orgId : app.globalData.user.orgId
+      param.orgName = formData.orgName ? formData.orgName : app.globalData.user.orgName
+      param.staffId = formData.staffId ? formData.staffId : app.globalData.user.staffId
+      param.staffName = formData.staffName ? formData.staffName : app.globalData.user.staffName
+      param.objectId = formData.supId
+    } else {
+      //编辑退款
+      param.editFlag = true
+      this.data.dataItem.forEach(res => {
+        res.checked = true
+        res.sumAmount = Number(res.amtPay).toFixed(2)
+      })
+      param.dataItem = this.data.dataItem
+    }
+    param.annexPaths = formData.annexPaths
+    param.rpType = '收付款类型-退付款'
+    param.sumAmtPay = formData.sumAmtPay
+    param.sumAmount = formData.sumAmtPay
+    // 设定当前多业务部门业务员
+    this.setData({
+      orgStaffInfo: {
+        orgId: param.orgId ? param.orgId : app.globalData.user.orgId,
+        staffId: param.staffId ? param.staffId : app.globalData.user.staffId,
+        orgName: param.orgName,
+        staffName: param.staffName,
+      }
+    })
+    return JSON.stringify(param)
+  },
+
+  /**
+   * @desc   : 选择回调
+   * @author : 于继渤
+   * @date   : 2024/1/26 11:46
+   */
+  chooseData(e) {
+    let item = e.detail.data
+    let code = e.detail.code
+    console.log('chooseData', e)
+    let formData = JSON.parse(this.data.formData)
+    if (code == "staffId") { //员工
+      formData.staffId = item.data.id
+      formData.staffName = item.data.name
+      formData.orgId = item.data.orgId
+      formData.orgName = item.data.orgName
+    }
+    if (code == "orgId") { //部门
+      formData.orgId = item.data.id
+      formData.orgName = item.data.name
+    }
+
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+
+
+  chooseObjTypeData(e) {
+    console.log('chooseObjTypeData', e.detail.data.objInfo)
+    let objInfo = e.detail.data.objInfo
+    let formData = JSON.parse(this.data.formData)
+    formData.contactName = objInfo.contactName
+    formData.contactPhone = objInfo.contactPhone
+    formData.returnAddress = objInfo.returnAddress
+    formData.supName = objInfo.supName
+    formData.supId = objInfo.supId
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+  },
+
+  /**
+   * @desc : 编辑用
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  getRpForUpdate(id) {
+    return this.excute(this.data.service, this.data.service.getRpForUpdate + '/' + id, {}).then(res => {
+      if (res.data.code == 200) {
+        let data = res.data.data.data
+        data.objInfo = {
+          supId: data.supId,
+          supName: data.supName,
+          supPhone: data.supPhone,
+          supCode: data.supCode,
+          payableResidue: data.payableResidue
+        }
+
+        
+
+        this.setData({
+          formData: JSON.stringify(data),
+          dataItem: res.data.data.dataItem
+        })
+        // 获取当前客户的账款信息
+        this.getAccount(data.objectId)
+        this.changeNumberBlur()
+      }
+    });
+  },
+
+  /**
+  * @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) {
+        let formData = JSON.parse(this.data.formData)
+        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
+
+          } else {
+            formData.cusDebt = 0
+          }
+        } else {
+          formData.cusDebt = 0
+        }
+        this.setData({
+          formData: JSON.stringify(formData)
+        })
+      }
+    });
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  loadInit() {
+    let formData = JSON.parse(this.data.formData)
+    formData.staffId = app.globalData.user.staffId
+    formData.staffName = app.globalData.user.staffName
+    formData.orgId = app.globalData.user.orgId
+    formData.orgName = app.globalData.user.orgName
+
+    //编辑收款
+    if (this.data.formMode == Constants.formMode.other) {
+      wx.setNavigationBarTitle({
+        title: '编辑供应商退付款',
+      })
+      this.getRpForUpdate(this.data.id)
+    }
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+})

+ 4 - 0
package-purchase/pages/pur-refund/add/add.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"新建供应商退付款"
+}

+ 14 - 0
package-purchase/pages/pur-refund/add/add.wxml

@@ -0,0 +1,14 @@
+<van-dialog id="van-dialog" />
+<loading wx:if="{{loading}}"></loading>
+<!-- 添加模版 -->
+<!-- <import src="/utils/template.wxml" />
+<template is="myTemplate" /> -->
+<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount"  amountTitle="应付金额" amountCol="payableResidue"
+objIdCol="supId" objTitle="supName"   objCol="supId" objLabel="{{$t['supName']}}" objType="supplier" cardList="{{cardList}}" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" saleStaffAndOrgFlag="{{false}}" bind:chooseData="chooseData" popType="sale" staff="staff" org="org" bind:changeNumberBlur="changeNumberBlur" bind:chooseObjTypeData="chooseObjTypeData" bind:clickAttach="clickAttach" bind:uploadSucess="uploadSucess" bind:uploadError="uploadError"
+saleStaffAndOrgFlag="{{false}}" 
+>
+</dk-form-bill>
+
+<view style="height: 200rpx;"></view>
+
+<dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonSaveList}}" contentList="{{contentSaveList}}" bind:open="open"></dk-save-button>

+ 1 - 0
package-purchase/pages/pur-refund/add/add.wxss

@@ -0,0 +1 @@
+/* package-purchase/pages/pur-refund/add/add.wxss */

+ 338 - 0
package-purchase/pages/pur-refund/detail/detail.js

@@ -0,0 +1,338 @@
+/*******************************************************************************
+ * Copyright(c) 2021 dongke All rights reserved. / Confidential
+ * 类的信息: 
+ *		1.程序名称:
+ *		2.功能描述:客户收款新建
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		        2022-5-25		        1.00		   	    新建
+ *******************************************************************************/
+
+const Constants = require('@/utils/Constants.js');
+import Dialog from '@/dist/dialog/dialog.js';
+const mixins = require('@/mixins/index.js')
+const app = getApp()
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    // 预存金额 预收金额
+    amountArr: [{
+      title: mixins.$t('receivableAmount'),
+      code: 'receivableResidue'
+    },
+    {
+      title: mixins.$t('advancePaymentAmount'),
+      code: 'receiptResidue'
+    }
+    ],
+    cardList: [{
+      name: 'main'
+    },],
+    contentObj: {
+      main: [
+        {
+          code: 'staffId',
+          name: 'staffName',
+          title: mixins.$t('staffId'),
+          type: 'choose',
+          required: false,
+          urlKey: 'chooseStaff'
+        }, {
+          code: 'orgId',
+          name: 'orgName',
+          title: mixins.$t('orgId'),
+          type: 'choose',
+          required: false,
+          urlKey: 'chooseOrg'
+        },
+        {
+          code: 'sumAmtPay',
+          type: 'number',
+          negative: true, min: Constants.MIN_VALUE, maxFlag: false,
+          title: mixins.$t("paymentAmount"),
+          readonly: true,
+          required: false,
+        },
+        {
+          code: 'remarks',
+          type: 'textarea',
+          title: mixins.$t("remarks"),
+          readonly: true
+        },
+        {
+          code: 'file',
+          type: 'uploader',
+          title: mixins.$t("uploader"),
+          readonly: true
+        }
+      ],
+
+    },
+    objInfo: {},
+    buttonSaveList: [{ code: 'add', title: mixins.$t("receiptDetail")}],
+    recPayItem:[],
+    refreshByAdd:true,
+    routeObjName: 'supReceiptPayment',
+    accountService: app.globalData['accountService'],
+  },
+
+  /**
+   * @desc : 跳转明细
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  toDetail(e) {
+    let url = this.data.route.editRefund.url
+    let _this = this;
+    wx.navigateTo({
+      url: url,
+      events: {
+        // 保存成功后刷新页面
+        refresh: function (data) {
+          // 刷新一览界面
+          _this.searchData();
+        }
+      },
+      success: function (res) {
+        let data = {
+          id: _this.data.id,
+          formMode: Constants.formMode.other,
+          formReturnMode: _this.data.formReturnMode ? _this.data.formReturnMode : 'pur-refund-detail'
+        }
+        res.eventChannel.emit('params', data);
+      }
+    })
+  },
+  /**
+  * @desc : 保存数据服务-跳转收款页面
+  * @date : 2024/2/1 15:49
+  * @author : 于继渤
+  */
+  open(e) {
+    let _this = this
+    wx.navigateTo({
+      url: this.data.route.selectCollectionConfirm.url,
+      events: {
+        // 回调后
+        bindData: function (data) {
+          // 保存成功后 回调
+          wx.navigateBack({
+            data: 1
+          })
+        }
+      },
+      success: function (res) {
+        //设置参数
+        let item = _this.setSaveData()
+        res.eventChannel.emit('params', { item: item, formType: 3 })
+      }
+    })
+  },
+
+  /**
+    * @desc : 处理保存参数
+    * @date : 2024/2/1 15:49
+    * @author : 于继渤
+    */
+  setSaveData() {
+    let formData = JSON.parse(this.data.formData)
+    let param = formData
+    param.cusName = formData.cusName
+    param.objInfo = {}
+    param.objInfo['cusPhone'] = formData.cusPhone
+    param.objInfo['cusName'] = formData.cusName
+    param.objInfo['objectId'] = formData.cusId
+    param.objInfo['addressFull'] = formData.addressFull
+    param.cusName = formData.cusName
+    param.cusPhone = formData.cusPhone
+
+    param.addressFull = formData.addressFull
+
+    if (this.data.formMode !== Constants.formMode.other) {
+      param.orgId = app.globalData.user.orgId
+      param.orgName = app.globalData.user.orgName
+      param.staffId = app.globalData.user.staffId
+      param.staffName = app.globalData.user.staffName
+      param.objectId = formData.cusId
+    } else {
+      //编辑退款
+      param.editFlag = true
+      this.data.dataItem.forEach(res => {
+        res.checked = true
+        res.sumAmount = Number(res.amtRec).toFixed(2)
+      })
+      param.dataItem = this.data.dataItem
+    }
+    param.annexPaths = formData.annexPaths
+    param.rpType = '收付款类型-收款'
+    param.sumAmtRec = formData.sumAmtRec
+    param.sumAmount = formData.sumAmtRec
+
+    return JSON.stringify(param)
+  },
+
+  /**
+    * @desc   : 选择回调
+    * @author : 于继渤
+    * @date   : 2024/1/26 11:46
+    */
+  chooseData(e) {
+    let item = e.detail.data
+    let code = e.detail.code
+    let formData = JSON.parse(this.data.formData)
+    //设置客户信息
+    if (code == 'cusName') {
+      formData.cusCode = item.cusCode
+      formData.cusId = item.cusId
+      formData.cusName = item.cusName
+      formData.cusPhone = item.cusPhone
+      formData.cusFromName = item.cusFromName
+      formData.cusFrom = item.cusFrom
+      //处理地址
+      formData.address = {
+        address: item.addressFull,
+        addressFull: item.addressFull,
+        addressArea: item.addressArea,
+        addressGcj02: item.addressGcj02,
+        addressName: item.addressName,
+      }
+      formData.addressArea = item.addressArea
+      formData.addressFull = item.addressFull
+      formData.addressGcj02 = item.addressGcj02
+      formData.addressName = item.addressName
+      formData.addressNo = item.addressNo
+      //订单销售渠道 ,默认取的客户的渠道
+      formData.salesChannel = item.channelId
+      formData.channelId = item.channelId
+      formData.channelName = item.channelName
+      formData.contactPhone = item.contactPhone
+      formData.contactPhone = item.contactPhone
+    }
+    ///设置主从业务员
+    if (code == 'staff') {
+      formData.staff = item.staffItem
+      formData['staffId'] = item.staffMain.staffId
+      formData['staffName'] = item.staffMain.staffName
+      formData['staffList'] = item.staffList
+    }
+    ///设置主从业务部门
+    if (code == 'org') {
+      formData.org = item.orgItem
+      formData['orgId'] = item.orgMain.orgId
+      formData['orgName'] = item.orgMain.orgName
+      formData['orgList'] = item.orgList
+    }
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+
+
+
+
+  /**
+     * @desc : 编辑用
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  getRpForUpdate(id) {
+    return this.excute(this.data.service, this.data.service.getRpForUpdate + '/' + id, {}).then(res => {
+      if (res.data.code == 200) {
+        let data = res.data.data.data
+        data.objInfo = {
+          supId: data.supId,
+          supName: data.supName,
+          payableResidue: data.payableResidue,
+          contactPhone: data.contactPhone,
+          contactName: data.contactName
+        }
+      
+        this.selectRpInfoById(data.rpId)
+        this.setData({
+          formData: JSON.stringify(data),
+          dataItem: res.data.data.dataItem
+        })
+
+      }
+    });
+  },
+
+  /**
+     * @desc : 查询收款明细
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  selectRpInfoById(rpId){
+    return this.excute(this.data.service, this.data.service.selectRpInfoById + '/' + rpId, {}).then(res => {
+      if (res.data.code == 200) {
+        this.setData({
+          recPayItem:res.data.data.recPayItem
+        })
+        
+      }
+    });
+  },
+  /**
+  * 生命周期函数--监听页面加载
+  */
+  loadInit() {
+    let pages = getCurrentPages();
+    let prevPage = pages[pages.length - 2]; //上三页
+    prevPage.setData({
+      refreshByAdd: true
+    })
+    let formData = JSON.parse(this.data.formData)
+
+    //编辑收款
+    if (this.data.formMode == Constants.formMode.other) {
+      this.getRpForUpdate(this.data.id)
+    }
+    //销售订单跳转
+    if(this.data.formType == Constants.formMode.add){
+      formData.cusCode = this.data.item.cusCode
+      formData.cusId = this.data.item.cusId
+      formData.cusName = this.data.item.cusName
+      formData.cusPhone = this.data.item.cusPhone
+      formData.cusFromName = this.data.item.cusFromName
+      formData.cusFrom = this.data.item.cusFrom
+      //处理地址
+      formData.address = {
+        address: this.data.item.addressFull,
+        addressFull: this.data.item.addressFull,
+        addressArea: this.data.item.addressArea,
+        addressGcj02: this.data.item.addressGcj02,
+        addressName: this.data.item.addressName,
+      }
+      formData.addressArea = this.data.item.addressArea
+      formData.addressFull = this.data.item.addressFull
+      formData.addressGcj02 = this.data.item.addressGcj02
+      formData.addressName = this.data.item.addressName
+      formData.addressNo = this.data.item.addressNo
+      //订单销售渠道 ,默认取的客户的渠道
+      formData.salesChannel = this.data.item.channelId
+      formData.channelId = this.data.item.channelId
+      formData.channelName = this.data.item.channelName
+      formData.contactPhone = this.data.item.contactPhone
+      formData.contactPhone = this.data.item.contactPhone
+    }
+
+    this.setData({
+      formData: JSON.stringify(formData)
+    })
+
+  },
+  /**
+     * @desc : 自定义查询
+     * @date : 2024/2/1 15:49
+     * @author : 于继渤
+     */
+  customQuery(){
+    if (this.data.formMode == Constants.formMode.other) {
+      this.getRpForUpdate(this.data.id)
+    }
+  },
+})

+ 4 - 0
package-purchase/pages/pur-refund/detail/detail.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"供应商退付款详情"
+}

+ 71 - 0
package-purchase/pages/pur-refund/detail/detail.wxml

@@ -0,0 +1,71 @@
+<van-dialog id="van-dialog" />
+<loading wx:if="{{loading}}"></loading>
+<!-- 添加模版 -->
+<!-- <import src="/utils/template.wxml" />
+<template is="myTemplate" /> -->
+
+<dk-form-bill type="sale" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuCode" descCol="skuModel" priceCol="priceStandard" quantityCol="itemQty" sumAmountCol="sumAmount"    amountTitle="应付金额" amountCol="payableResidue"
+objIdCol="supId" objTitle="supName"   objCol="supId" objLabel="{{$t['supName']}}" objType="supplier" cardList="{{cardList}}" discountStandardCol="saleDiscount" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" saleStaffAndOrgFlag="{{false}}" bind:chooseData="chooseData" popType="sale" staff="staff" org="org" bind:changeNumberBlur="changeNumberBlur" bind:chooseObjTypeData="chooseObjTypeData" readonly="{{true}}" 
+saleStaffAndOrgFlag="{{false}}" 
+>
+</dk-form-bill>
+
+<view class="dk-card-outer-class">
+  <view class="dk-card-class">
+    <view class="item-class">
+
+      <view class="item-title-class">收款详情</view>
+    </view>
+    <view wx:for="{{recPayItem}}" wx:for-item="item" data-item="{{item}}" wx:for-index="cardIndex">
+    <view style="margin-bottom: 10px;">
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="账户名称" copyValue="{{item.macName}}"></dk-text>
+          </view>
+          <view class="table-content-class">
+            {{item.macName}}
+          </view>
+        </view>
+      </view>
+
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="收款金额" copyValue="{{item.amtRec}}"></dk-text>
+          </view>
+          <view class="table-content-class" >
+            <!-- {{item.amtRec}} -->
+            <dk-cell height="40rpx" contentRight="{{false}}" left="0rpx" center="left" fontSize="14" contentColor="#FF7B1A" spaceWidth="0rpx" content="{{item.amtPay}}"></dk-cell>
+          </view>
+        </view>
+      </view>
+
+      <view class="table-content-row">
+        <view style="display: flex;">
+          <view class="table-content-row-font">
+            <dk-text fontSize="14px" color="#95A8CB" fontWeight="nomal" value="备注" copyValue="{{item.remarks}}"></dk-text>
+          </view>
+          <view class="table-content-class">
+            {{item.remarks ? item.remarks : ''}}
+          </view>
+        </view>
+      </view>
+    </view>
+     
+    </view>
+  </view>
+
+
+
+</view>
+
+<!-- <view style="position: fixed;bottom: 230rpx;right: 30rpx;">
+  <view bind:tap="toDetail" class="btn-add-class">
+    <van-icon name="edit" color="#FFFFFF" size="60rpx" />
+  </view>
+</view> -->
+<!-- 编辑  -->
+<view style="position: fixed;bottom: 230rpx;right: 30rpx;z-index: 99;" bindtap="toDetail">
+  <image src="{{imageUrl + 'edit.png'}} " class="edit-class"  />
+</view>

+ 42 - 0
package-purchase/pages/pur-refund/detail/detail.wxss

@@ -0,0 +1,42 @@
+.item-class {
+  display: flex;
+  font-size: 30rpx;
+  padding: 20rpx;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.item-title-class {
+  margin-left: 14rpx;
+  font-size: 15px;
+  color: #1B365D;
+  font-weight: 600;
+  width: 26%;
+}
+/**card的外部样式*/
+.dk-card-outer-class {
+  margin: 10px 32rpx 10px 32rpx;
+  margin-top: 10px;
+  border-radius: 15rpx;
+  /* box-shadow: 2px 2px 5px #e5e5e6; */
+}
+
+/**card的样式*/
+.dk-card-class {
+  background: #FFFFFF;
+  border-radius: 16rpx;
+  padding: 5rpx;
+  margin-bottom: 20rpx;
+  box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.08);
+  /* box-shadow: 0px -6px 20px 0px rgba(0, 0, 0, 0.08); */
+
+}
+.btn-add-class {
+  background: #8091A9;
+  border-radius: 50%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: 20rpx;
+  box-shadow: 0px 17px 22px 0px #1B365D33;
+}

+ 136 - 0
package-purchase/pages/pur-refund/pur-refund.js

@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:选品
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		于继渤		 2024-1-23			1.00		    选品
+ *******************************************************************************/
+const Constants = require('@/utils/Constants.js');
+const mixins = require('@/mixins/index.js')
+import Dialog from '@/dist/dialog/dialog.js';
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    navigationBarTitle: '',
+    primaryKey: 'rpId',
+    // 查询条件
+    searchContent: [{
+      code: 'createtime',
+      title: '近30天',
+      defaultValue: 5,
+      searchType: Constants.searchType.date
+    }, {
+      code: 'staff',
+      title: '业务员',
+      dropType: 'staff'
+    },
+
+    
+    ],
+
+    // 列表区(内容)
+    contentList: [
+      { name: 'rpNo', title: '付款单号' },
+      { name: [{ name: 'orgName', title: '' }, { name: 'staffName', title: '业务员' }], title: '门店/业务员' },
+      { name: 'accDate', title: '付款时间' },
+
+    ],
+    // 列表区(脚部金额)
+    footerAmount: {
+      name: 'sumAmtPay',
+      title: mixins.$t('totalAmount')
+    },
+    footerInfo: [{ name: 'sumAmtPay', }],
+    buttonSaveList: [],
+    // 路由
+    routeObjName: 'supReceiptPayment',
+    refreshByAdd: false,
+    // 弹出按钮
+    buttonList: [
+      { name: 'invalid', title: mixins.$t("invaidOrder") },//作废 
+      { name: 'printedBill', title: mixins.$t("printedBill") }, //打印
+    ],
+  },
+ /**
+   * @desc :   作废
+   * @date : 2024年3月8日
+   * @author : 于继渤
+   */
+  invalid(e) {
+    let that = this
+    // 是否弹出询问框
+    Dialog.confirm({
+      message: mixins.$t('isInvalidDetail'),
+    }).then(() => {
+      that.setData({
+        loading:true
+      })
+      return this.excute(this.data.service, this.data.service.invalidSup + '/' + e.rpId, {}).then(res => {
+        if (res.data.code == 200) {
+          that.searchData()
+          wx.showToast({
+            title: mixins.$t('invalidSuccessfully'),
+            image: '/static/image/success.png',
+            duration: 1000
+          })
+        }
+      })
+    }).catch(() => {
+    })
+  },
+  /**
+   * @desc : 设置查询参数
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  setSearchParams(params) {
+    params.objectId = this.data.id ? this.data.id : null
+    params.rpTypeList = ['收付款类型-退付款']
+    params.flgValidList = [true]
+    return params;
+  },
+  /**
+   * @desc : 加载数据
+   * @author : 于继渤
+   * @date : 2024/1/23 9:16
+   */
+  getData(params) {
+    return this.excute(this.data.service, this.data.service.getRpSupList, params);
+  },
+  loadInit() {
+    this.setData({
+      navigationBarTitle: '供应商退款',
+      buttonSaveList: [{ code: 'add', title: mixins.$t("add"), customUrl: this.data.route.refund.url }]
+    })
+  },
+    /**
+   * @desc : 跳转明细
+   * @date : 2024/2/1 15:49
+   * @author : 于继渤
+   */
+  toDetail(e) {
+    let url = this.data.route.detailRefund.url
+    let _this = this;
+    wx.navigateTo({
+      url: url,
+      events: {
+        // 保存成功后刷新页面
+        refresh: function (data) {
+          // 刷新一览界面
+          _this.searchData();
+        }
+      },
+      success: function (res) {
+        let data = {
+          id: e.detail.item.rpId,
+          formMode: Constants.formMode.other
+        }
+        res.eventChannel.emit('params', data);
+      }
+    })
+  },
+})

+ 7 - 0
package-purchase/pages/pur-refund/pur-refund.json

@@ -0,0 +1,7 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"供应商退款",
+  "enablePullDownRefresh": true,
+  "backgroundTextStyle": "light",
+  "navigationStyle": "custom"
+}

+ 18 - 0
package-purchase/pages/pur-refund/pur-refund.wxml

@@ -0,0 +1,18 @@
+<!-- 前台导入wxmlUtil.wxs -->
+<wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
+<loading wx:if="{{loading}}" loadingName="{{$t['loading']}}" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
+<van-sticky scroll-top="0">
+  <!-- 自定义导航 -->
+  <dk-navbar titleFontColor="#000000" navbarTitle="{{navigationBarTitle}}" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
+  <!-- 查询条件 -->
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  </dk-dropdown-menu>
+</van-sticky>
+
+<!-- 列表区 -->
+<dk-list list="{{tableData}}" flgSubFormatDate="{{true}}" titleCorner="channelName" title="supName" status="rpTypeName"  content="{{contentList}}" collectCol="collectStatus" collectCol="sumAmtPay" contentObj="{{contentObj}}" contentCol="" footerAmount="{{footerAmount}}" footerInfo="{{footerInfo}}" bind:toDetail="toDetail" bind:toTitle="toTitle" bind:toStatus="toStatus" bind:toPoint="toPoint"  collectName="收款"   routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list>
+<view style="height: 200rpx;"></view>
+
+<van-dialog id="van-dialog" />  
+<!-- 新建按钮 -->
+<dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{true}}" btnRightFlag="{{true}}" buttonList="{{buttonSaveList}}" contentList="{{contentSaveList}}" bind:open="open"></dk-save-button>

+ 1 - 0
package-purchase/pages/pur-refund/pur-refund.wxss

@@ -0,0 +1 @@
+/* package-purchase/pages/pur-refund/pur-refund.wxss */

+ 0 - 1
package-purchase/pages/pur-track-report/pur-track-report.js

@@ -19,7 +19,6 @@ Page({
     // 列表区(内容)
     contentList: [],
   },
-
   /**
    * @desc : 查询
    * @date : 2024/2/1 15:49

+ 134 - 7
package-purchase/pages/purchase-order/add/add.js

@@ -41,12 +41,6 @@ Page({
                 readonly: true,
             },
             {
-                code: 'brandName',
-                title: mixins.$t('brandName'),
-                type: 'str',
-                readonly: true,
-            },
-            {
                 code: 'nonStdCode',
                 title: mixins.$t('goodsBatch'), //'色号',
                 type: 'str',
@@ -118,6 +112,8 @@ Page({
         table: Constants.tables.purchase,
         // 路由
         routeObjName: 'purchase',
+        // 系统参数
+        flgAutoHandle: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
     },
     /**
     * @desc :处理保存后续
@@ -311,6 +307,60 @@ Page({
      * @author : 王英杰
      */
     setValuesByEdit(data) {
+        if (!data.flgAutoHandle) {
+            this.setData({
+                contentList:
+                    [
+                        {
+                            code: 'need',
+                            title: mixins.$t('totalAmount'), //'合集金额',
+                            type: 'str'
+                        }, {
+                            code: 'amount',
+                            content: 0,
+                            type: 'number'
+                        }],
+            })
+        } else {
+            if (this.data.gradeCode == Constants.gradeCode.STD) {
+                this.setData({
+                    contentList:
+                        [
+                            {
+                                code: 'need',
+                                title: mixins.$t('totalAmount'), //'合集金额',
+                                type: 'str'
+                            }, {
+                                code: 'amount',
+                                content: 0,
+                                type: 'number'
+                            }],
+                })
+            } else {
+                this.setData({
+                    contentList:
+                        [
+                            {
+                                code: 'flag',
+                                title: mixins.$t("purInBoundFlag"),
+                                type: 'checkbox'
+                            },
+                            {
+                                code: 'need',
+                                title: mixins.$t('totalAmount'), //'合集金额',
+                                type: 'str'
+                            }, {
+                                code: 'amount',
+                                content: 0,
+                                type: 'number'
+                            }],
+                    btnFormData: JSON.stringify({
+                        flag: data.inboundProcessingFlag
+                    })
+                })
+            }
+        }
+
         data.goodsList = data.purchaseItemResponseList
         // 提取purNo字段为数组,并去重
         const orderNoArray = [...new Set(data.goodsList.map(item => item.orderNo))];
@@ -431,6 +481,9 @@ Page({
             totalAmout += Number(element.priceStd) * Number(element.itemQty) //标价金额
             element.itemIndex = index
             element.priceDiscount = element.priceStandard == 0 ? 0 : Number(element.pricePur) / Number(element.priceStandard)
+            if (this.data.gradeCode == Constants.gradeCode.STD) { 
+                element.intoStatus = Constants.intoStatus.inBounded
+            }
         })
         params.fromIds = formData.fromIds
         params.fromNos = formData.fromNos
@@ -456,6 +509,20 @@ Page({
         } else {
             params.purchaseItemVOList = formData.goodsList //商品明细
         }
+        let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
+        params.intoStatus = params.intoStatus ? params.intoStatus : Constants.intoStatus.unInBound //状态
+        // 系统参数【自动办理】关闭,开单页面不显示【库存自动办理】,值是不勾选;
+        if (!this.data.flgAutoHandle) {
+            params.inboundProcessingFlag = false
+        } else {
+            params.inboundProcessingFlag = btnFormData ? btnFormData.flag : false //自动出入库标识 
+        }
+        if (this.data.gradeCode == Constants.gradeCode.STD) {
+            //在刷一遍 不管前面啥逻辑 只要标准版 inboundProcessingFlag 就是true
+            params.inboundProcessingFlag = true
+            params.intoStatus = Constants.intoStatus.inBounded
+        }
+        params.flgAutoHandle = this.data.flgAutoHandle
         params.makeStaff = app.globalData.user.staffId
         params.annexPaths = formData.annexPaths || [] //附件 
         return params
@@ -491,6 +558,15 @@ Page({
         if (this.data.formMode != "edit") { //新建
             return this.excute(this.data.service, this.data.service.insert, this.data.params)
         } else {
+            let pages = getCurrentPages();
+            let prevPage = pages[pages.length - 2]; //上二页
+            let prevPage_ = pages[pages.length - 3]; //上三页
+            prevPage.setData({
+                refreshByAdd: true,
+            })
+            prevPage_.setData({
+                refreshByAdd: true,
+            })
             return this.excute(this.data.service, this.data.service.update, this.data.params)
         }
     },
@@ -563,7 +639,7 @@ Page({
      */
     loadInit() { //以销定采  isSourceOrderFlag 区分是否来源于新建的选择原单 
         let that = this
-
+        let formData = this.data.formData ? JSON.parse(this.data.formData) : {}
         let formMode = this.data.formMode
         const eventChannel = this.getOpenerEventChannel()
         eventChannel.on('params', function (data) {
@@ -593,6 +669,57 @@ Page({
                 dataTime: dataTime,
                 formData: JSON.stringify(formdata)
             })
+            // 系统参数
+            if (!that.data.flgAutoHandle) {
+                this.setData({
+                    contentList:
+                        [
+                            {
+                                code: 'need',
+                                title: mixins.$t('totalAmount'), //'合集金额',
+                                type: 'str'
+                            }, {
+                                code: 'amount',
+                                content: 0,
+                                type: 'number'
+                            }],
+                })
+            } else {
+                if (this.data.gradeCode == Constants.gradeCode.STD) {
+                    this.setData({
+                        contentList:
+                            [
+                                {
+                                    code: 'need',
+                                    title: mixins.$t('totalAmount'), //'合集金额',
+                                    type: 'str'
+                                }, {
+                                    code: 'amount',
+                                    content: 0,
+                                    type: 'number'
+                                }],
+                    })
+                } else {
+                    this.setData({
+                        contentList:
+                            [
+                                {
+                                    code: 'flag',
+                                    title: mixins.$t("purInBoundFlag"),
+                                    type: 'checkbox'
+                                },
+                                {
+                                    code: 'need',
+                                    title: mixins.$t('totalAmount'), //'合集金额',
+                                    type: 'str'
+                                }, {
+                                    code: 'amount',
+                                    content: 0,
+                                    type: 'number'
+                                }],
+                    })
+                }
+            }
         }
 
     }

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

@@ -6,7 +6,7 @@
 <!-- <dk-form id="{{formName}}" cardList="{{cardList}}" contentObj="{{contentObj}}" model:value="{{formData}}" bind:chooseData="chooseData">
 </dk-form> -->
 
-<dk-form-bill id="{{formName}}"  type="pur"  routeObjName="{{routeObjName}}" cardList="{{cardList}}"   titleCol="skuModel"   descCol="skuName" subCol="calculationFormula" priceCol="pricePur"  pupPriceCol="sumPrice"  quantityCol="itemQty" sumAmountCol="itemAmt" sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="" bind:editItems="setGoods" bind:clear = "clear" table="{{table}}"  dataTime = "{{dataTime}}" iconCol="imagesUrl" bind:delItem="setGoods" bind:setGoods="setGoods"  minDate="{{minDate}}">
+<dk-form-bill id="{{formName}}"  type="pur"  routeObjName="{{routeObjName}}" cardList="{{cardList}}"  titleTagCol="brandName"   titleCol="skuModel"   descCol="skuName" subCol="calculationFormula" priceCol="pricePur"  pupPriceCol="sumPrice"  quantityCol="itemQty" sumAmountCol="itemAmt" sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="" bind:editItems="setGoods" bind:clear = "clear" table="{{table}}"  dataTime = "{{dataTime}}" iconCol="imagesUrl" bind:delItem="setGoods" bind:setGoods="setGoods"  minDate="{{minDate}}">
 </dk-form-bill>
 
 <view style="height: 200rpx;"></view>

+ 19 - 7
package-purchase/pages/purchase-order/purchase-order-detail/purchase-order-detail.js

@@ -81,12 +81,6 @@ Page({
         readonly: true,
       },
       {
-        code: 'brandName',
-        title: mixins.$t('brandName'),
-        type: 'str',
-        readonly: true,
-      },
-      {
         code: 'nonStdCode',
         title: mixins.$t('goodsBatch'), //'色号',
         type: 'str',
@@ -138,6 +132,21 @@ Page({
   },
 
   /**
+   * @desc : 加载数据-编辑保存后刷新明细的数据
+   * @author : 于继渤
+   * @date : 2024/1/23 9:16
+   */
+  getPurOrderForUpdate(purId) {
+    this.excute(this.data.service, purId, {}).then(res => {
+      if (res.data.code == Constants.SUCESS_CODE) {
+        // 重新查询
+        this.setValuesByEdit(res.data.data)
+      }
+    })
+  },
+
+
+  /**
    * @desc : 给表单赋值
    * @date : 2024/2/1 15:49
    * @author : 王英杰
@@ -202,12 +211,15 @@ Page({
    * @author : 王英杰
    */
   toEdit(e) {
+    let _this = this
     let purId = e.currentTarget.dataset.item.purId
     wx.navigateTo({
       url: this.data.route.add.url,
       events: {
         // 回调后,在这里给页面赋值
-        bandData: function (e) { }
+        refresh: function (e) {
+          _this.getPurOrderForUpdate(purId)
+        }
       },
       success: function (res) {
         res.eventChannel.emit('params', {

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

@@ -94,7 +94,7 @@
 </view>
 
 <!-- 商品信息 和 其他信息 -->
-<dk-form-bill id="{{formName}}"  type="pur" routeObjName="{{routeObjName}}" readonly="{{true}}" cardList="{{cardList}}"   titleCol="skuModel" descCol="skuName"subCol="calculationFormula" priceCol="pricePur"pupPriceCol="sumPrice" quantityCol="itemQty" iconCol="imagesUrl"sumAmountCol="itemAmt"sumQuantityCol="itemQty"  contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="{{$t['wholesalePrice']}}:">
+<dk-form-bill id="{{formName}}"  titleTagCol="brandName"  type="pur" routeObjName="{{routeObjName}}" readonly="{{true}}" cardList="{{cardList}}"   titleCol="skuModel" descCol="skuName"subCol="calculationFormula" priceCol="pricePur"pupPriceCol="sumPrice" quantityCol="itemQty" iconCol="imagesUrl"sumAmountCol="itemAmt"sumQuantityCol="itemQty"  contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale"  >
 </dk-form-bill>
 
 <view style="height: 200rpx;"></view>

+ 149 - 101
package-purchase/pages/purchase-order/purchase-order.js

@@ -16,34 +16,37 @@ Page({
    * 页面的初始数据 
    */
   data: {
-    popbuttonList: [{
-        name: 'transferToWarehouse',
-        title: mixins.$t('transferToWarehouse'), //转入库 
-        formMode: Constants.formMode.other,
-        other: {
-          idKey: 'purId'
-        },
-      }, {
-        name: 'editPur',
-        title: mixins.$t('edit'),
-      }, {
-        name: 'purchaseCancellation',
-        title: mixins.$t('purchaseCancellation'), //采购作废 
-      }, //title:mixins.$t('followUp') 
-      {
 
-        name: 'selectSourcePurchaseOrder',
-        title: mixins.$t('purReturnOutBound'), //采购退货
-        formMode: Constants.formMode.index,
-        formType: Constants.formMode.add,
-        idKey: 'purId',
-      },
-      {
-        name: 'printedBill',
-        title: mixins.$t('printedBill') //打印票据
+    refreshByAdd: false,
+    popbuttonList: [{
+      name: 'transferToWarehouse',
+      title: mixins.$t('transferToWarehouse'), //转入库 
+      formMode: Constants.formMode.other,
+      other: {
+        idKey: 'purId'
       },
+    }, {
+      name: 'editPur',
+      title: mixins.$t('edit'),
+    }, {
+      name: 'purchaseCancellation',
+      title: mixins.$t('purchaseCancellation'), //采购作废 
+    }, //title:mixins.$t('followUp') 
+    {
+
+      name: 'selectSourcePurchaseOrder',
+      title: mixins.$t('purReturnOutBound'), //采购退货
+      formMode: Constants.formMode.index,
+      formType: Constants.formMode.add,
+      idKey: 'purId',
+    },
+    {
+      name: 'printedBill',
+      title: mixins.$t('printedBill') //打印票据
+    },
 
     ],
+    popbuttonList: [],
     // 弹出按钮
     buttonList: [{
       name: 'merge',
@@ -64,54 +67,48 @@ Page({
     active: 0, //默认查询入库中
     // 查询条件
     searchContent: [{
-        code: 'makeTime',
-        title: mixins.$t('pastThirthtyDays'), //近30天',
-        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
-      }
+      code: 'makeTime',
+      title: mixins.$t('pastThirthtyDays'), //近30天',
+      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: 'intoStatus',
-        pullType: 'mSelect',
-        typeName: 'intoStatus'
-      },
-      {
-        code: 'supName',
-      },
-      {
-        code: 'makeTime',
-        dataType: 'date'
-      },
-      {
-        code: 'flgValid',
-        title: mixins.$t('flgValid'),
-        dataType: 'checkbox'
-      },
+      code: 'intoStatus',
+      pullType: 'mSelect',
+      typeName: 'intoStatus'
+    },
+    {
+      code: 'supName',
+    },
+    {
+      code: 'makeTime',
+      dataType: 'date'
+    },
+    {
+      code: 'flgValid',
+      title: mixins.$t('flgValid'),
+      dataType: 'checkbox'
+    },
     ],
 
-    tagList: [{
-      title: mixins.$t('all'), //"全部单据"
-    }, {
-      title: mixins.$t('inStorage'), //"入库中"
-    }, {
-      title: mixins.$t('received'), //"已入库"
-    }],
+    tagList: [],
     contentObj: {
       [mixins.$t('staging')]: [{ //[mixins.$t("procurementSupplier")]
         name: 'purNo',
@@ -206,7 +203,25 @@ Page({
     routeObjName: 'purchase',
     primaryKey: 'purId'
   },
-
+  /**
+   * @desc : 加载事件回调
+   * @date : 2024/7/5 08:37
+   * @author : 刘尧
+   */ 
+  loadInit(){ 
+    if (this.data.gradeCode == Constants.gradeCode.PRO) {
+      const tagList = [{
+        title: mixins.$t('all'), //"全部单据"
+      }, {
+        title: mixins.$t('inStorage'), //"入库中"
+      }, {
+        title: mixins.$t('received'), //"已入库"
+      }]
+      this.setData({
+        tagList: tagList
+      })
+    }
+  },
   /**
    * @desc : 三个小点点击回调
    * @date : 2024年3月8日
@@ -214,47 +229,80 @@ Page({
    */
   toPoint(e) {
     let item = e.detail.item
+    console.log(item);
     let buttonList = null
     if (!item.flgValid) { //作废
       buttonList = [{
         name: 'printedBill',
         title: mixins.$t('printedBill') //打印票据
-      }, ] //打印
+      },] //打印
     } else {
-      // 0702
-      buttonList = [{
-          name: 'transferToWarehouse',
-          title: mixins.$t('transferToWarehouse'), //转入库 
-          formMode: Constants.formMode.other,
-          other: {
-            idKey: 'purId'
-          },
-        }, {
-          name: 'editPur',
-          title: mixins.$t('edit'),
-        }, {
-          name: 'purchaseCancellation',
-          title: mixins.$t('purchaseCancellation'), //采购作废 
-        }, //title:mixins.$t('followUp') 
-        {
+      // 0702 
+      if (item.intoStatus == Constants.intoStatus.inBounded) {
+        buttonList =
+          [
+            {
+              name: 'editPur',
+              title: mixins.$t('edit'),
+            },
+            {
+              name: 'selectSourcePurchaseOrder',
+              title: mixins.$t('purReturnOutBound'), //采购退货
+              formMode: Constants.formMode.index,
+              formType: Constants.formMode.add,
+              idKey: 'purId',
+            },
+            {
+              name: 'purchaseCancellation',
+              title: mixins.$t('purchaseCancellation'), //采购作废 
+            }, //title:mixins.$t('followUp') 
+
+            {
+              name: 'printedBill',
+              title: mixins.$t('printedBill') //打印票据
+            },
+
+          ]
+      } else {
+        buttonList =
+          [
+            {
+              name: 'transferToWarehouse',
+              title: mixins.$t('transferToWarehouse'), //转入库 
+              formMode: Constants.formMode.other,
+              other: {
+                idKey: 'purId'
+              },
+            }, {
+              name: 'editPur',
+              title: mixins.$t('edit'),
+            },
+            {
+              name: 'selectSourcePurchaseOrder',
+              title: mixins.$t('purReturnOutBound'), //采购退货
+              formMode: Constants.formMode.index,
+              formType: Constants.formMode.add,
+              idKey: 'purId',
+            },
+            {
+              name: 'purchaseCancellation',
+              title: mixins.$t('purchaseCancellation'), //采购作废 
+            }, //title:mixins.$t('followUp') 
 
-          name: 'selectSourcePurchaseOrder',
-          title: mixins.$t('purReturnOutBound'), //采购退货
-          formMode: Constants.formMode.index,
-          formType: Constants.formMode.add,
-          idKey: 'purId',
-        },
-        {
-          name: 'printedBill',
-          title: mixins.$t('printedBill') //打印票据
-        },
+            {
+              name: 'printedBill',
+              title: mixins.$t('printedBill') //打印票据
+            },
 
-      ]
+          ]
+
+
+      }
+      this.setData({
+        // 弹出按钮
+        popbuttonList: buttonList
+      })
     }
-    this.setData({
-      // 弹出按钮
-      popbuttonList: buttonList
-    })
   },
   /**
    * @desc : 作废
@@ -300,7 +348,7 @@ Page({
       url: this.data.route.add.url,
       events: {
         // 回调后,在这里给页面赋值
-        bandData: function (e) {}
+        bandData: function (e) { }
       },
       success: function (res) {
         res.eventChannel.emit('params', {

+ 1 - 7
package-purchase/pages/purchase-receipt/add/add.js

@@ -65,13 +65,7 @@ Page({
       title: mixins.$t("goodSpec"), //'规格',
       type: 'str',
       readonly: true,
-    },
-    {
-      code: 'brandName',
-      title: mixins.$t('brandName'),
-      type: 'str',
-      readonly: true,
-    },
+    }, 
     {
       code: 'nonStdCode',
       title: mixins.$t("goodsBatch"), //'色号',

+ 1 - 1
package-purchase/pages/purchase-receipt/add/add.wxml

@@ -4,7 +4,7 @@
 <loading wx:if="{{loading}}" ></loading>
 
  
-<dk-form-bill type="purInto" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"  titleCol="skuModel" subCol="calculationFormula"  descCol="skuName" priceCol="priceInto" pupPriceCol="sumPrice" iconCol="imagesUrl"  quantityCol="{{(!intoStatusflag)?'intoQty':'intoingQty'}}" sumAmountCol="itemAmt"sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle=""   bind:clear = "clear" readonly = "{{readonly}}"   controlFlags ="{{controlFlags}}"
+<dk-form-bill type="purInto" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}"  titleCol="skuModel" titleTagCol="brandName"  subCol="calculationFormula"  descCol="skuName" priceCol="priceInto" pupPriceCol="sumPrice" iconCol="imagesUrl"  quantityCol="{{(!intoStatusflag)?'intoQty':'intoingQty'}}" sumAmountCol="itemAmt"sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle=""   bind:clear = "clear" readonly = "{{readonly}}"   controlFlags ="{{controlFlags}}"
 bind:delItem="setGoods" bind:setGoods="setGoods" bind:editItems="setGoods" table="{{table}}">
 </dk-form-bill>
 

+ 1 - 7
package-purchase/pages/purchase-receipt/detail/detail.js

@@ -97,13 +97,7 @@ Page({
         title: mixins.$t("goodSpec"), //'规格',
         type: 'str',
         readonly: true
-      },
-      {
-        code: 'brandName',
-        title: mixins.$t('brandName'), 
-        type: 'str',
-        readonly:true,
-    },
+      }, 
       {
         code: 'nonStdCode',
         title: mixins.$t("goodsBatch"), //'色号',

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

@@ -42,7 +42,7 @@
   </view>
 </view>
 
-<dk-form-bill type="purInto" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuModel" iconCol="imagesUrl" descCol="skuName" priceCol="priceInto" pupPriceCol="sumPrice" quantityCol="{{intoStatusflag?'intoingQty':'intoQty'}}" sumAmountCol="itemAmt" sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="{{$t['referencePrice']+':'}}" bind:delItem="setGoods" bind:setGoods="setGoods" bind:editItems="setGoods">
+<dk-form-bill type="purInto" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleCol="skuModel" titleTagCol="brandName"  iconCol="imagesUrl" descCol="skuName" priceCol="priceInto" pupPriceCol="sumPrice" quantityCol="{{intoStatusflag?'intoingQty':'intoQty'}}" sumAmountCol="itemAmt" sumQuantityCol="itemQty" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="{{$t['referencePrice']+':'}}" bind:delItem="setGoods" bind:setGoods="setGoods" bind:editItems="setGoods">
 </dk-form-bill>
 
 <view style="height: 200rpx;"></view>

+ 3 - 3
package-purchase/pages/purchase-receipt/purchase-receipt.js

@@ -401,12 +401,12 @@ Page({
     if (this.data.active == 0 && !this.data.flgHandleSetting) { //入库中的查询参数
       params.intoStatus = Constants.intoStatus.inBounding //'入库状态-入库中'
       // params.purType = '单据类型-采购订单'
-      params.intoType = Constants.intoType.pur //'入库类型-采购入库'
+      
     }
     if (this.data.active == 1) { //已入库的查询参数 
-      params.intoStatus = Constants.intoStatus.inBounded //'入库状态-已入库'
-      params.intoType = Constants.intoType.pur //'入库类型-采购入库'
+      params.intoStatus = Constants.intoStatus.inBounded //'入库状态-已入库' 
     }
+    params.intoType = Constants.intoType.pur //'入库类型-采购入库'
     if (params.flgValid) { //true 说明包含作废单据  查出数据不受 flgValid 筛选
       params.flgValid = null
     } else { //默认不查作废单据

+ 56 - 33
package-purchase/pages/purchase-return/add/add.js

@@ -33,17 +33,20 @@ Page({
     contentObj: {
       main: [
         { code: 'supId', name: 'supName', title: mixins.$t("supplier"), type: 'choose', required: true, urlKey: 'chooseSupplier' },
-        { code: 'returnAddress', type: 'address', title: mixins.$t('returnAddress'), required: true },
+        { code: 'address', type: 'address', title: mixins.$t('returnAddress'), required: true },
         { code: 'intoDate', type: 'date', required: false, title: mixins.$t("returnDate"), required: false },
       ],
-      relation: [{
-        code: 'fromNo',
-        name: 'fromNo',
-        type: 'choose',
-        controlChooseFlag: true,
-        title: mixins.$t("sourceOrder"),//'关联源单'
-        urlKey: 'selectSourcePurchaseOrder'
-      }],
+      relation:
+        [
+          // {
+          //   code: 'fromNo',
+          //   name: 'fromNo',
+          //   type: 'choose',
+          //   controlChooseFlag: true,
+          //   title: mixins.$t("sourceOrder"),//'关联源单'
+          //   urlKey: 'selectSourcePurchaseOrder'
+          // }
+        ],
       other: [{
         code: 'remarks',
         type: 'textarea',
@@ -211,19 +214,19 @@ Page({
      * @author : 于继渤
      */
   setGoods(e) {
-    let contentObj = this.data.contentObj
-    contentObj.relation = [{
-      code: 'fromNo',
-      name: 'fromNo',
-      type: 'choose',
-      controlChooseFlag: true,
-      readonlyReturn: true,
-      title: mixins.$t("sourceOrder"),//'关联源单'
-      urlKey: 'selectSourcePurchaseOrder'
-    }]
-    this.setData({
-      contentObj: contentObj
-    })
+    // let contentObj = this.data.contentObj
+    // contentObj.relation = [{
+    //   code: 'fromNo',
+    //   name: 'fromNo',
+    //   type: 'choose',
+    //   controlChooseFlag: true,
+    //   readonlyReturn: true,
+    //   title: mixins.$t("sourceOrder"),//'关联源单'
+    //   urlKey: 'selectSourcePurchaseOrder'
+    // }]
+    // this.setData({
+    //   contentObj: contentObj
+    // })
     this.calculateTotal()
   },
 
@@ -236,15 +239,19 @@ Page({
     let formData = JSON.parse(this.data.formData)
     if (formData.goodsList.length == 0) {
       let contentObj = this.data.contentObj
-      contentObj.relation = [{
-        code: 'fromNo',
-        name: 'fromNo',
-        type: 'choose',
-        controlChooseFlag: true,
-        readonlyReturn: false,
-        title: mixins.$t("sourceOrder"),//'关联源单'
-        urlKey: 'selectSourcePurchaseOrder'
-      }]
+      if (this.data.gradeCode == Constants.gradeCode.STD) {
+        contentObj.relation = []
+      } else {
+        contentObj.relation = [{
+          code: 'fromNo',
+          name: 'fromNo',
+          type: 'choose',
+          controlChooseFlag: true,
+          readonlyReturn: false,
+          title: mixins.$t("sourceOrder"),//'关联源单'
+          urlKey: 'selectSourcePurchaseOrder'
+        }]
+      }
       this.setData({
         contentObj: contentObj
       })
@@ -279,7 +286,7 @@ Page({
       cardList[0].sumReturnAmt = sumReturnAmt.toFixed(2)
     }
     if (contentList.length > 0) {
-      contentList[2].content = sumReturnAmt.toFixed(2)
+      contentList[contentList.length-1].content = sumReturnAmt.toFixed(2)
     }
     let beforeSumAmount = this.data.beforeSumAmount
     let afterSumAmount = beforeSumAmount - sumReturnAmt
@@ -489,7 +496,23 @@ Page({
         formData: JSON.stringify(formData)
       })
     }
-
+    let contentObj = this.data.contentObj
+    if (this.data.gradeCode == Constants.gradeCode.STD) {
+      contentObj.relation = []
+    } else {
+      contentObj.relation = [{
+        code: 'fromNo',
+        name: 'fromNo',
+        type: 'choose',
+        controlChooseFlag: true,
+        readonlyReturn: false,
+        title: mixins.$t("sourceOrder"),//'关联源单'
+        urlKey: 'selectSourcePurchaseOrder'
+      }]
+    }
+    this.setData({
+      contentObj: contentObj
+    })
   }
 
 })

+ 2 - 5
package-purchase/pages/purchase-return/add/add.wxml

@@ -1,13 +1,12 @@
 <van-dialog id="van-dialog" />
 <loading wx:if="{{loading}}"></loading>
-<view wx:if="{{formType !== 'add'  && formMode !== 'add' && formMode !== 'edit' }}">
+<view wx:if="{{formType!=null && formType !== 'add'  && formMode !== 'add' && formMode !== 'edit' }}">
   <view class="detail-top">
     <view class="detail-top-sup">
       {{item.supName}}
     </view>
     <view class="detail-top-sup">退货信息</view>
     <view class="detail-top-color" style="display: flex;">
-
       <view>
         {{item.staffName}}
       </view>
@@ -16,8 +15,6 @@
       </view>
     </view>
     <view class="detail-top-color"> {{item.returnAddress}}</view>
-
-
   </view>
 
 
@@ -38,7 +35,7 @@
   </view>
 </view>
 
-<dk-form-bill id="{{formName}}" routeObjName="{{routeObjName}}" type="purReturn" cardList="{{cardList}}"  titleCol="skuModel" showPopFlag="{{showPopFlag}}" descCol="skuName" priceCol="priceReturn" quantityCol="itemQty" quantityMin="itemQtyMin" quantityMax="itemQtyMax" sumAmountCol="sumReturnAmt" bind:chooseData="chooseData" saleStaffAndOrgFlag="{{true}}" contentObj="{{contentObj}}" model:value="{{formData}}" popType="sale" bind:setGoods="setGoods"  iconCol="imagesUrl"  bind:delItem="delItem" staff="staff" org="org" bind:onStepper="onChangeStepper" quantityMin="itemQtyMin" quantityMax="itemQtyMax" stepperFlag="{{stepperFlag}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" swipeDisabled="swipeDisabled" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}">
+<dk-form-bill id="{{formName}}" routeObjName="{{routeObjName}}" type="purReturn" cardList="{{cardList}}"  titleCol="skuModel" titleTagCol="brandName"  showPopFlag="{{showPopFlag}}" descCol="skuName" priceCol="priceReturn" quantityCol="itemQty" quantityMin="itemQtyMin" quantityMax="itemQtyMax" sumAmountCol="sumReturnAmt" bind:chooseData="chooseData" saleStaffAndOrgFlag="{{true}}" contentObj="{{contentObj}}" model:value="{{formData}}" popType="sale" bind:setGoods="setGoods"  iconCol="imagesUrl"  bind:delItem="delItem" staff="staff" org="org" bind:onStepper="onChangeStepper" quantityMin="itemQtyMin" quantityMax="itemQtyMax" stepperFlag="{{stepperFlag}}" cardContentList="{{cardContentList}}" quantityRedTitle="可售量:" quantityRedCol="usableQty" swipeDisabled="swipeDisabled" quantityRedColFlagKey="usableQtyInsufficientFlag" goodsTagText="{{goodsTagText}}" goodsTagColor="{{goodsTagColor}}">
 </dk-form-bill>
 
 

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

@@ -41,7 +41,7 @@
 </view>
 
 
-<dk-form-bill id="dk-form-bill" routeObjName="{{routeObjName}}" bind:onStepper="onChangeStepper" cardList="{{cardList}}"  titleCol="skuModel" showPopFlag="{{true}}" descCol="skuName" priceCol="priceReturn" quantityCol="returnQty"   iconCol="imagesUrl"  quantityMin="returnQtyMin" quantityMax="returnQtyMax" stepperFlag="{{item.outStatus !=='出库状态-已出库' ?  true : false}}" sumAmountCol="sumReturnAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popType="sale" priceTitle=""  stepperFlag="{{true}}">
+<dk-form-bill id="dk-form-bill" routeObjName="{{routeObjName}}" bind:onStepper="onChangeStepper" cardList="{{cardList}}" titleTagCol="brandName"   titleCol="skuModel" showPopFlag="{{true}}" descCol="skuName" priceCol="priceReturn" quantityCol="returnQty"   iconCol="imagesUrl"  quantityMin="returnQtyMin" quantityMax="returnQtyMax" stepperFlag="{{item.outStatus !=='出库状态-已出库' ?  true : false}}" sumAmountCol="sumReturnAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popType="sale" priceTitle=""  stepperFlag="{{true}}">
 </dk-form-bill>
 
 <!-- 空高度  -->

+ 6 - 9
package-sales/pages/order-billing/add/add.js

@@ -30,7 +30,7 @@ Page({
         chooseCoordinationFlag: true,
 
         itemAmt: '',
-        displayNum: 2, 
+        displayNum: 2,
       },
       {
         name: 'other',
@@ -191,12 +191,6 @@ Page({
         urlKey: 'openingInventory',
       },
       {
-        code: 'brandName',
-        title: mixins.$t('brandName'),
-        type: 'str',
-        readonly: true,
-      },
-      {
         code: 'nonStdCode',
         title: mixins.$t("goodsBatch"),
         type: 'str',
@@ -659,8 +653,9 @@ Page({
       element.priceStd = element.priceStd ? element.priceStd : 0
       element.amtStd = element.amtStd ? element.amtStd : 0
     });
+    params.receiptList = params.receiptItem 
     params.orderStatus = Constants.orderStatus.STATUS_DEAL //订单状态
-    params.outStatus =  params.outStatus? params.outStatus:Constants.outStatus.unOutBound //出库状态
+    params.outStatus = params.outStatus ? params.outStatus : Constants.outStatus.unOutBound //出库状态
     params.makeStaff = app.globalData.user.staffId //制单人
     params.amtResidue = params.amtReceivable //剩余应收 = 应收金额 
     params.deleteItemList = params.deleteList ? params.deleteList : []
@@ -1071,7 +1066,9 @@ Page({
             element.cannotModifyFlag = true
           }
         });
-
+        if (res.data.data.receiptItem) {
+          formData.receiptItem = res.data.data.receiptItem
+        } 
         //处理主从业务员业务部门
         if (res.data.data.staffList) {
           let staffIds = []

+ 18 - 0
package-sales/pages/order-billing/detail/detail.js

@@ -162,6 +162,7 @@ Page({
     * @author : 于继渤
     */
   setValuesByEdit(data) { 
+    console.log('111', data);
     let cardList = this.data.cardList
     let contentSaveList = this.data.contentSaveList
     let formData = JSON.parse(this.data.formData)
@@ -201,6 +202,7 @@ Page({
     data.data.outAmt = data.data.outAmt?data.data.outAmt:0
     data.data.outoutamt = data.data.outingAmt+data.data.outAmt
     data.data.amtStatus = (( data.data.factAmt+ data.data.discAmt) <=  data.data.sumAmount &&   data.data.factAmt > 0)? (( data.data.factAmt+ data.data.discAmt) ==  data.data.sumAmount ? '已收款':'部分收款')  : '未收款'
+    formData.makeTime = this.formatDateOnly(formData.makeTime)
     this.setData({
       item: data.data,
       contentSaveList: contentSaveList,
@@ -212,6 +214,22 @@ Page({
     let card = this.data.cardList.filter(it => it.name == 'items');
     this.selectComponent('#' + this.data.formName).handleContentObj(card[0])
   },
+  /**
+   * @desc : 格式化日期
+   * @date : 2024/7/5 13:22
+   * @author : 刘尧
+   */
+  formatDateOnly(datetime) {  
+    // 创建Date对象  
+    var date = new Date(datetime);  
+    // 提取年、月、日  
+    var year = date.getFullYear();  
+    var month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份加1,并使用padStart确保为两位数  
+    var day = date.getDate().toString().padStart(2, '0'); // 使用padStart确保为两位数  
+      
+    // 拼接年月日  
+    return year + '-' + month + '-' + day;  
+  },
 
   /**
    * @desc : 设置保存参数

+ 3 - 0
package-sales/pages/order-billing/detail/detail.wxml

@@ -37,6 +37,9 @@
         <view style="z-index: 2;padding-top: 20rpx;">
           {{ wxmlUtil.addressToIndexOf(item.addressFull)}}
         </view>
+        <view style="padding-top: 20rpx;">
+          销售日期:{{item.makeTime}}
+        </view>
         <view wx:if="{{!freeVersionFlag}}" style="z-index: 2;padding-top: 40rpx;font-size: 24rpx;font-weight: 400;">
           预计送货:{{ item.deliveryDate?item.deliveryDate:''}}
         </view>

+ 165 - 169
package-sales/pages/order-return/add/add.js

@@ -15,7 +15,7 @@ Page({
     table: Constants.tables.order,
     orderService: app.globalData['orderService'],
     commonService: app.globalData['commonService'],
-    saveButtonFlag:true,
+    saveButtonFlag: true,
     saleOutBoundReturnService: app.globalData['saleOutBoundReturnService'],
     btnFormData: JSON.stringify({
       flag: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false
@@ -73,7 +73,7 @@ Page({
         type: 'str',
         required: true,
         title: mixins.$t('addressNo')
-      }, 
+      },
       {
         code: 'cusFrom',
         name: 'cusFromName',
@@ -156,12 +156,6 @@ Page({
       urlKey: 'openingInventory',
     },
     {
-      code: 'brandName',
-      title: mixins.$t('brandName'),
-      type: 'str',
-      readonly: true,
-    },
-    {
       code: 'nonStdCode',
       title: mixins.$t("goodsBatch"),
       type: 'str',
@@ -196,62 +190,64 @@ Page({
    * @date : 2024/2/1 15:49
    * @author : 于继渤
    */
-  setGoods(e) { 
+  setGoods(e) {
     //设置需收款
     let contentSaveList = this.data.contentSaveList
     let formData = e.detail.data
-    if(formData){
+    if (formData) {
       let itemIndex = 0
       let list = []
-      if(formData.goodsList && formData.goodsList.length > 0){
+      if (formData.goodsList && formData.goodsList.length > 0) {
         formData.goodsList.forEach(res => {
-          res.itemIndex = itemIndex++
-          list.push({
-            skuId: res.skuId,
-            nonStdCode: res.nonStdCode,
-            whId: res.whId
-          })
-          res.sumPrice = res.priceOut * res.itemQty
+          if (res.skuId) {
+            res.itemIndex = itemIndex++
+            list.push({
+              skuId: res.skuId,
+              nonStdCode: res.nonStdCode,
+              whId: res.whId
+            })
+            res.sumPrice = res.priceOut * res.itemQty
+          }
         })
-        //批量查库存
-        this.getInventory({
-          skuIdNonStdCodeWhIdList: list
-        }).then(item => {
-          formData.goodsList.forEach(res => {
-            if (item.length > 0) {
-              item.forEach(it => {
-                if (it.nonStdCode == res.nonStdCode && it.skuId == res.skuId && it.whId == res.whId) {
-                  res.invId = it.invId
-                  res.invQty = it.invQty ? it.invQty : 0
-                  res.usableQty = it.usableQty ? it.usableQty : 0
-                } else {
-                  res.invQty = 0
-                  res.usableQty = 0
-                }
-              })
-            } else {
-              res.invQty = 0
-              res.usableQty = 0
-            }
-          })
-          //组件显示 需收款
-          contentSaveList.forEach(card => {
-            if (card.code === 'receivable') {
-              card.content = Number(formData.sumAmount)
-            }
-          })
-          // contentSaveList[1]['content'] = Number(formData.sumAmount)
-          this.setData({
-            formData: JSON.stringify(formData),
-            contentSaveList: contentSaveList
+        if (list && list.length > 0) {
+          //批量查库存
+          this.getInventory({
+            skuIdNonStdCodeWhIdList: list
+          }).then(item => {
+            formData.goodsList.forEach(res => {
+              if (item.length > 0) {
+                item.forEach(it => {
+                  if (it.nonStdCode == res.nonStdCode && it.skuId == res.skuId && it.whId == res.whId) {
+                    res.invId = it.invId
+                    res.invQty = it.invQty ? it.invQty : 0
+                    res.usableQty = it.usableQty ? it.usableQty : 0
+                  } else {
+                    res.invQty = 0
+                    res.usableQty = 0
+                  }
+                })
+              } else {
+                res.invQty = 0
+                res.usableQty = 0
+              }
+            })
+            //组件显示 需收款
+            contentSaveList.forEach(card => {
+              if (card.code === 'receivable') {
+                card.content = Number(formData.sumAmount)
+              }
+            })
+            // contentSaveList[1]['content'] = Number(formData.sumAmount)
+            this.setData({
+              formData: JSON.stringify(formData),
+              contentSaveList: contentSaveList
+            })
+            //处理库存量
+            this.calculationSalesUsableQty()
           })
-          //处理库存量
-          this.calculationSalesUsableQty()
-        })
+        }
       }
-  
     }
-   
   },
   //计算可售量相关
   calculationSalesUsableQty() {
@@ -384,7 +380,7 @@ Page({
         })
         //禁用业务员业务部门
         this.setData({
-          satffAndOrgReadonly:true
+          satffAndOrgReadonly: true
         })
         formData.goodsList = item.itemList
         formData.fromNo = item.fromNo
@@ -421,6 +417,9 @@ Page({
           element.costAmt = null
           element.factPrice = element.priceOut
           element.factAmt = element.outingAmt
+          element['supId'] = element.supId ? element.supId : null
+          element['fromId'] = element.fromId ? element.fromId : element.sOutId
+          element['fromItemId'] = element.fromItemId ? element.fromItemId : element.sOutItemId
         });
         formData.sumAmtRec = nmb
       }
@@ -453,7 +452,7 @@ Page({
         refresh: function (data) {
           // 新建銷售退貨不關閉,清空頁面
           if (_this.data.formMode == Constants.formMode.add) {
-            let formData = _this.setStaffOrg({}) 
+            let formData = _this.setStaffOrg({})
             _this.setData({
               formData: JSON.stringify(formData),
               cardList: [{
@@ -488,7 +487,7 @@ Page({
         // 通过eventChannel向被打开页面传送数据 
         res.eventChannel.emit('params', {
           item: _this.data.formData,
-          formReturnMode:_this.data.formReturnMode,
+          formReturnMode: _this.data.formReturnMode,
           formType: 10
         })
       }
@@ -503,11 +502,11 @@ Page({
     let item = {}
     item.outId = this.data.id
     this.setData({
-      loading:true
+      loading: true
     })
     this.excute(this.data.service, this.data.service.saleReturnOutboundCancel, item).then(res => {
       this.setData({
-        loading:false
+        loading: false
       })
       if (res.data.code == Constants.SUCESS_CODE) {
         wx.showToast({
@@ -517,12 +516,12 @@ Page({
         })
         // 重新查询
         //设置只读
-      this.setFormMain()
-      //查询信息
-      this.getItemDetal(this.data.id)
-      this.setData({
-        formData: JSON.stringify(formData)
-      })
+        this.setFormMain()
+        //查询信息
+        this.getItemDetal(this.data.id)
+        this.setData({
+          formData: JSON.stringify(formData)
+        })
       }
     })
   },
@@ -537,18 +536,21 @@ Page({
     params.fromId = params.orderId
     params.factAmt = params.outingAmt
     params.goodsList.forEach(res => {
-      // res['sOutId'] = res.soutId
       // res['sOutItemId'] = res.soutItemId
       // res['sOrderItemId'] = res.sorderItemId
       // res['sOrderId'] = res.sorderId
-      res.sOutId = res.sOutId ?res.sOutId :params.outId 
-      res.sOrderId = res.sOrderId  ? res.sOrderId  : params.orderId
+
+      res.sOutId = res.sOutId ? res.sOutId : params.outId
+      res.sOrderId = res.sOrderId ? res.sOrderId : params.orderId
+      res['supId'] = res.supId ? res.supId : null
+      res['fromId'] = res.fromId ? res.fromId : res.sOutId
+      res['fromItemId'] = res.fromItemId ? res.fromItemId : res.sOutItemId
       // res.outQty = res.outingQty
       res.costPrice = null
       res.costAmt = null
       res.factPrice = res.priceOut
       res.factAmt = res.outingAmt
-      // res.outAmt = res.outingAmt
+      res.outAmt = Number(res.priceOut * res.outingQty)
       res.itemIndex = itemIndex++
       // res.canNegativeFlag = true
       if (this.data.formMode != 'detail') {
@@ -588,7 +590,7 @@ Page({
     params.outDate = utils.formatDayTime(new Date())
     delete params['goodsList']
     delete params['orderItemResponseList']
-    console.log('params',params)
+    console.log('params', params)
     return params
   },
   /**
@@ -626,26 +628,26 @@ Page({
     if (filters && filters.length > 0) {
       filters[0].content = 0;
     }
-    if(this.data.formMode == 'add'){
+    if (this.data.formMode == 'add') {
       let formData = {
-        staff:{
-          text:  app.globalData.user.staffName,
+        staff: {
+          text: app.globalData.user.staffName,
           value: [app.globalData.user.staffId]
         },
-        org:{
-          text:  app.globalData.user.orgName,
+        org: {
+          text: app.globalData.user.orgName,
           value: [app.globalData.user.orgId]
         }
-      } 
+      }
       formData.orgId = app.globalData.user.orgId
-      formData.staffId =  app.globalData.user.staffId
+      formData.staffId = app.globalData.user.staffId
       this.setData({
-        formData:JSON.stringify(formData), 
+        formData: JSON.stringify(formData),
       })
     }
-    
+
     this.setData({
-      contentSaveList: contentSaveList, 
+      contentSaveList: contentSaveList,
     })
   },
   /**
@@ -663,18 +665,18 @@ Page({
         let formData = JSON.parse(this.data.formData)
         if (res.data.data.data.outStatus == mixins.$t("outBoundedOutStatus") && this.data.formMode != 'other') {
           let buttonSaveList = this.data.buttonSaveList
-          if(this.data.gradeCode == Constants.gradeCode.STD){
+          if (this.data.gradeCode == Constants.gradeCode.STD) {
             buttonSaveList = []
             this.setData({
-              saveButtonFlag:false
+              saveButtonFlag: false
             })
-          }else{
+          } else {
             buttonSaveList = [{
               code: 'merge',
               title: mixins.$t("handleWithdrawal"),
             }]
           }
-        
+
           this.setData({
             buttonSaveList: buttonSaveList
           })
@@ -688,28 +690,28 @@ Page({
         }
         let contentObj = this.data.contentObj
         if (this.data.gradeCode == Constants.gradeCode.STD) {
-          if(!formData.fromNo){
+          if (!formData.fromNo) {
             contentObj.relation = []
-          }else{
+          } else {
             contentObj.relation = [{
               code: 'fromNo',
               type: 'str',
               title: mixins.$t("sourceOrder"), //'关联源单'
               readonly: true,
             }]
-            
+
           }
         }
-        
+
         this.setData({
-          contentObj:contentObj
+          contentObj: contentObj
         })
         if (this.data.formType == 'toSaleOut') { //销售出库转退货
           formData.fromNo = formData.outNo
           formData.outStatus = "出库状态-出库中"
           formData.outType = "出库类型-销退回库"
           formData.receivableId = null
-         
+
         }
         // 编辑 销售订单转退货 销售退货选取出库单 出库单的渠道可能为空
         formData.channelId = formData.salesChannel
@@ -943,13 +945,13 @@ Page({
           required: false,
           title: mixins.$t('saleChannel')
         },
-        // {
-        //   code: 'cusFromName',
-        //   type: 'str',
-        //   readonly: true,
-        //   required: false,
-        //   title: mixins.$t('customerSource')
-        // },
+          // {
+          //   code: 'cusFromName',
+          //   type: 'str',
+          //   readonly: true,
+          //   required: false,
+          //   title: mixins.$t('customerSource')
+          // },
         ]
       } else {
         contentSaveList = [
@@ -1024,7 +1026,7 @@ Page({
    * @author : 于继渤
    * @date   : 2024/1/26 11:46
    */
-  calculateAmount(formData) { 
+  calculateAmount(formData) {
     ///设置总单信息
     let sumStandard = Number(0)
     let sumAmount = Number(0)
@@ -1107,7 +1109,7 @@ Page({
       success: function (res) {
         res.eventChannel.emit('params', {
           formMode: Constants.formMode.other,
-          formReturnMode:this_.data.formReturnMode,
+          formReturnMode: this_.data.formReturnMode,
           id: this_.data.id,
           formType: Constants.formMode.edit
         });
@@ -1165,7 +1167,7 @@ Page({
     let formData = JSON.parse(this.data.formData)
     if (this.data.gradeCode == Constants.gradeCode.STD) { //标准
       this.setData({
-        contentSaveList:[]
+        contentSaveList: []
       })
     } else {
       this.setData({
@@ -1213,55 +1215,55 @@ Page({
           title: mixins.$t("save")
         }
         ],
- 
-        contentObj.main = [{
-          code: 'cusName',
-          type: 'selectIcon',
-          urlKey: 'selectCustomers',
-          required: true,
-          readonly: false,
-          title: mixins.$t('customerName')
-        },
-        {
-          code: 'cusPhone',
-          type: 'phone',
-          title: mixins.$t('cusPhone'),
-          required: true
-        },
-        {
-          code: 'addressFull',
-          type: 'address',
-          title: mixins.$t('addressFull'),
-          required: true
-        },
-        {
-          code: 'addressNo',
-          type: 'str',
-          required: true,
-          title: mixins.$t('addressNo')
-        },
-        {
-          code: 'channelId',
-          name: 'channelName',
-          type: 'drop',
-          required: true,
-          dropType: 'saleChannel',
-          title: mixins.$t('saleChannel')
-        },
-        // {
-        //   code: 'cusFrom',
-        //   name: 'cusFromName',
-        //   type: 'drop',
-        //   required: false,
-        //   dropType: 'customerFrom',
-        //   title: mixins.$t('customerSource')
-        // },
-        ],  
+
+          contentObj.main = [{
+            code: 'cusName',
+            type: 'selectIcon',
+            urlKey: 'selectCustomers',
+            required: true,
+            readonly: false,
+            title: mixins.$t('customerName')
+          },
+          {
+            code: 'cusPhone',
+            type: 'phone',
+            title: mixins.$t('cusPhone'),
+            required: true
+          },
+          {
+            code: 'addressFull',
+            type: 'address',
+            title: mixins.$t('addressFull'),
+            required: true
+          },
+          {
+            code: 'addressNo',
+            type: 'str',
+            required: true,
+            title: mixins.$t('addressNo')
+          },
+          {
+            code: 'channelId',
+            name: 'channelName',
+            type: 'drop',
+            required: true,
+            dropType: 'saleChannel',
+            title: mixins.$t('saleChannel')
+          },
+            // {
+            //   code: 'cusFrom',
+            //   name: 'cusFromName',
+            //   type: 'drop',
+            //   required: false,
+            //   dropType: 'customerFrom',
+            //   title: mixins.$t('customerSource')
+            // },
+          ],
           this.setData({
             buttonSaveList: buttonSaveList,
             contentObj: contentObj
           })
-      }else{
+      } else {
         let contentObj = this.data.contentObj
         contentObj.main = [{
           code: 'cusName',
@@ -1306,7 +1308,7 @@ Page({
           title: mixins.$t('customerSource')
         },
         ]
-        contentObj.relation =[{
+        contentObj.relation = [{
           code: 'fromNo',
           name: 'fromNo',
           type: 'choose',
@@ -1316,7 +1318,7 @@ Page({
           title: mixins.$t("sourceOrder"), //'关联源单'
           urlKey: 'selectSourceSaleOrder'
         }]
-        this.setData({ 
+        this.setData({
           contentObj: contentObj
         })
       }
@@ -1340,7 +1342,7 @@ Page({
         this.getItemDetal(this.data.item.orderId, 'orderService', 'getOrderForReturn')
       }
       let contentObj = this.data.contentObj
-      if (this.data.gradeCode == Constants.gradeCode.STD) { 
+      if (this.data.gradeCode == Constants.gradeCode.STD) {
         contentObj.main = [{
           code: 'cusName',
           type: 'selectIcon',
@@ -1375,16 +1377,16 @@ Page({
           dropType: 'saleChannel',
           title: mixins.$t('saleChannel')
         },
-        // {
-        //   code: 'cusFrom',
-        //   name: 'cusFromName',
-        //   type: 'drop',
-        //   required: false,
-        //   dropType: 'customerFrom',
-        //   title: mixins.$t('customerSource')
-        // },
+          // {
+          //   code: 'cusFrom',
+          //   name: 'cusFromName',
+          //   type: 'drop',
+          //   required: false,
+          //   dropType: 'customerFrom',
+          //   title: mixins.$t('customerSource')
+          // },
         ]
-      }else{
+      } else {
         contentObj.main = [{
           code: 'cusName',
           type: 'selectIcon',
@@ -1430,8 +1432,8 @@ Page({
         ]
       }
       this.setData({
-        contentObj:contentObj,
-        satffAndOrgReadonly:true,
+        contentObj: contentObj,
+        satffAndOrgReadonly: true,
         formData: JSON.stringify(formData)
       })
     } else if (this.data.formMode == Constants.formMode.other && this.data.formType == Constants.formMode.edit) { //编辑
@@ -1481,10 +1483,10 @@ Page({
         dropType: 'customerFrom',
         title: mixins.$t('customerSource')
       },
-      ] 
-    this.setData({
-      contentObj:contentObj, 
-    })
+      ]
+      this.setData({
+        contentObj: contentObj,
+      })
       if (this.data.formMode == Constants.formMode.other) {
         this.setData({
           popContent: [{
@@ -1513,12 +1515,6 @@ Page({
             urlKey: 'openingInventory',
           },
           {
-            code: 'brandName',
-            title: mixins.$t('brandName'),
-            type: 'str',
-            readonly: true,
-          },
-          {
             code: 'nonStdCode',
             title: mixins.$t("goodsBatch"),
             type: 'str',

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

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

+ 1 - 0
package-sales/pages/order-return/order-return.js

@@ -207,6 +207,7 @@ Page({
 * @author : 于继渤
 */
   invalid(e) {
+    console.log(e);
     return this.excute(this.data.service, this.data.service.repeal + '/' + e.outId, {}).then(res => {
       if (res.data.code == 200) {
         wx.showToast({

+ 172 - 0
package-sales/pages/order-sum-report/detail/detail.js

@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
+ * 类的信息:
+ *		1.程序名称:
+ *		2.销售汇总表
+ * 编辑履历:
+ *		作者				日期					版本				修改内容
+ *		王英杰		        2022-0-12	            1.00		   	    
+ *******************************************************************************/
+const Constants = require('@/utils/Constants.js');
+const util = require('@/utils/util.js')
+const app = getApp()
+const mixins = require('@/mixins/index.js')
+Page({
+  mixins: [mixins],
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    active: 0,
+    // 查询条件
+    searchContent: [{
+        code: 'makeTime',
+        title: mixins.$t('pastThirthtyDays'),
+        defaultValue: 5,
+        searchType: Constants.searchType.date
+      },
+      {
+        code: 'sort',
+        title: '排序',
+        searchType: Constants.searchType.radio,
+        value: 1,
+        options: [{
+            "text": "升序",
+            "value": 1
+          },
+          {
+            "text": "降序",
+            "value": 2
+          }
+        ],
+      },
+      {
+        code: 'choose',
+        title: mixins.$t('choose'),
+        searchType: Constants.searchType.pick
+      }
+    ],
+
+    // 查询条件-筛选
+    pullMenuList: [{
+      code: 'skuModel',
+      title: mixins.$t('skuModel')
+    }, {
+      code: 'skuName',
+      title: mixins.$t('skuName')
+    }, {
+      code: 'goodsBrand',
+      title: mixins.$t('goodsBrand')
+    }, {
+      code: 'sukSpec',
+      title: mixins.$t('sukSpec')
+    }, {
+      code: 'colorNumber',
+      title: mixins.$t('colorNumber')
+    }, {
+      code: 'goodsSeries',
+      title: mixins.$t('goodsSeries')
+    }, {
+      code: 'cusName',
+      title: mixins.$t('cusName')
+    }, {
+      code: 'cusPhone',
+      title: mixins.$t('cusPhone')
+    }, ],
+    tagList: [{
+        title: mixins.$t("goods"),
+        code: mixins.$t("goods")
+      },
+      {
+        title: mixins.$t("customer"),
+        code: mixins.$t("customer")
+      }
+    ],
+    tableData: [],
+    // 路由
+    routeObjName: 'report',
+  },
+  /**
+   * @desc : 设置查询参数
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  setSearchParams(params) {
+    let querys = {
+      accDatestart: params.makeTimeStart,
+      accDateEnd: params.makeTimeEnd,
+      type: this.data.active == 0 ? 1 : 2,
+      sortAmt: params.sort ? params.sort : '1',
+      searchText: params.searchText,
+      skuModel: params.skuModel,
+      skuName: params.skuName,
+      brandName: params.goodsBrand,
+      skuSpec: params.sukSpec,
+      nonStdCode: params.colorNumber,
+      seriesName: params.goodsSeries,
+      cusName: params.cusName,
+      cusPhone: params.cusPhone,
+    }
+    params.querys = JSON.stringify(querys)
+    return params;
+  },
+  /**
+   * @desc : 查询
+   * @date : 2024/6/6 08:59
+   * @author : 王英杰
+   */
+  getData(params) {
+    return this.excute(this.data.service, this.data.service.getOrderSummary, params).then(res => {
+      if (res.data.code === Constants.SUCESS_CODE) {
+        console.log('getData', res);
+        let total = {}
+        let tableData = []
+        if (res.data && res.data.data && res.data.data.total) { //头部数据
+          total = res.data.data.total[0]
+        }
+        if (res.data && res.data.data && res.data.data.detail) { //头部数据
+          tableData = res.data.data.detail
+        }
+        this.setData({
+          total: total,
+          tableData: tableData
+        })
+      }
+    })
+  },
+  /**
+   * @desc : 切换 商品 客户
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  onChangeTabs(e) {
+    let index = e.detail.detail.index
+    this.setData({
+      active: index,
+    })
+    if (index == 0) {
+      this.selectComponent('#dk-list-report').setReportNameKey('saleSumGoods')
+    } else {
+      this.selectComponent('#dk-list-report').setReportNameKey('saleSumCus')
+    }
+
+    this.searchData()
+  },
+  /**
+   * @desc : 跳转明细
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  toDetail(e) {
+   console.log('toDetail',e); 
+   let skuId = e.detail.item.skuId
+   debugger
+    wx.navigateTo({
+      url: this.data.route.orderSumReportDetail.url,
+      success: function (res) {
+        // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
+        res.eventChannel.emit('params', { id: skuId, formMode: Constants.formMode.detail, formType: Constants.formMode.detail })
+      }
+    })
+  },
+})

+ 4 - 0
package-sales/pages/order-sum-report/detail/detail.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText":"销售汇总详细"
+}

+ 34 - 0
package-sales/pages/order-sum-report/detail/detail.wxml

@@ -0,0 +1,34 @@
+<!-- 前台导入wxmlUtil.wxs -->
+<wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
+<loading wx:if="{{loading}}"></loading>
+<van-dialog id="van-dialog" />
+<van-sticky scroll-top="0">
+  <!-- 查询条件 -->
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  </dk-dropdown-menu>
+  <dk-tabs active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
+</van-sticky>
+
+<!-- 总头 -->
+<view class="content">
+<view class="item-card">
+  <view class="card-title">
+    <view style="flex: 1;">
+      <view class="title"> 销售金额</view>
+    </view>
+    <view style="flex: 1;">
+      <view class="title"> 销售数量</view>
+    </view>
+  </view>
+  <view class="card-content">
+    <view style="flex: 1;"> 
+        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#A5814A" contentFontWeight="bold" content="{{total.factAmt?total.factAmt:0}}" center="center"></dk-cell> 
+    </view>
+    <view style="flex: 1;"> 
+        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#1B365D" contentFontWeight="bold" content="{{total.itemQty?total.itemQty:0}}"center=" center"amount="{{false}}"></dk-cell> 
+    </view>
+  </view>
+</view>
+</view> 
+<!-- 列表区 -->
+<dk-list-report id="dk-list-report" list="{{tableData}}" flgSubFormatDate="{{true}}"  titleTagCol="shortName"  titleCol="skuModel" iconCol="imagesUrl" descCol="skuName" title="skuCode" colorLeft="#437FF8" colorRight="#F43636" statusLeft="outStatusName" reportNameKey="saleSumGoods" contentCardTwoFlg="{{true}}" content="{{contentList}}" contentObj="{{contentObj}}" bind:toDetail="toDetail" bind:toTitle="toTitle"  routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list-report>

+ 30 - 0
package-sales/pages/order-sum-report/detail/detail.wxss

@@ -0,0 +1,30 @@
+.content{
+  padding: 0 16rpx;
+}
+.item-card{
+  border-radius: 16rpx;
+  margin-top: 32rpx;
+  background: linear-gradient(152.98deg, #FFF9EC 15.09%, #FFFFFF 45.02%);
+  box-shadow: 0px 10px 20px 0px #0000000D;
+  box-shadow: 0px -6px 20px 0px #0000000D;
+  padding: 32rpx 32rpx 40rpx 32rpx;
+}
+.card-title{
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  align-items: center;
+}
+.card-content{
+  width: 100%;
+  display: flex !important;
+  
+  padding-top: 20rpx;
+}
+.title{
+  font-size: 30rpx;
+  font-weight: 600;
+  color: #1B365D;
+  text-align: center;
+}

+ 115 - 65
package-sales/pages/order-sum-report/order-sum-report.js

@@ -9,7 +9,7 @@
  *******************************************************************************/
 const Constants = require('@/utils/Constants.js');
 const util = require('@/utils/util.js')
-const app = getApp()
+const app = getApp() 
 const mixins = require('@/mixins/index.js')
 Page({
   mixins: [mixins],
@@ -17,6 +17,7 @@ Page({
    * 页面的初始数据
    */
   data: {
+    active: 0,
     // 查询条件
     searchContent: [{
         code: 'makeTime',
@@ -25,8 +26,11 @@ Page({
         searchType: Constants.searchType.date
       },
       {
-        code: 'sort', title: '排序',searchType:Constants.searchType.radio, value:1, options: [
-          {
+        code: 'sort',
+        title: '排序',
+        searchType: Constants.searchType.radio,
+        value: 1,
+        options: [{
             "text": "升序",
             "value": 1
           },
@@ -45,77 +49,123 @@ Page({
 
     // 查询条件-筛选
     pullMenuList: [{
-        code: 'orderNo',
-      }, {
-        code: 'cusName',
-      }, {
-        code: 'cusPhone',
-      }, {
-        code: 'addressFull',
-        title: mixins.$t('address')
-      }, 
-      {
-        code: 'viewVoidedDocuments',
-        dataType: 'checkbox'
-      },
-    ],
-    tagList: [
-      { title: mixins.$t("goods"), code: mixins.$t("goods") }, 
-      { title: mixins.$t("customer"), code: mixins.$t("customer") }],
-      tableData:[  {
-        "brandName": "冠珠GUANZHU",
-        "currentIntoAmt": 0,
-        "currentIntoQty": 0,
-        "currentOutAmt": 0,
-        "currentOutQty": 0,
-        "decimalPlaces": 0,
-        "endingIvtAmt": 99,
-        "endingIvtQty": 99,
-        "invId": "10112024-0624-0000-0000-00045b3b9096",
-        "nonStdCode": "WW",
-        "openingIvtAmt": 99,
-        "openingIvtQty": 99,
-        "packBox": 1,
-        "shortName": "冠珠GUANZHU",
-        "skuModel": "WAGYJ",
-        "skuName": "WANGYJ",
-        "skuSpec": "1",
-        "unitName": "套",
-        "whName": "主仓"
+      code: 'skuModel',
+      title: mixins.$t('skuModel')
+    }, {
+      code: 'skuName',
+      title: mixins.$t('skuName')
+    }, {
+      code: 'goodsBrand',
+      title: mixins.$t('goodsBrand')
+    }, {
+      code: 'sukSpec',
+      title: mixins.$t('sukSpec')
+    }, {
+      code: 'colorNumber',
+      title: mixins.$t('colorNumber')
+    }, {
+      code: 'goodsSeries',
+      title: mixins.$t('goodsSeries')
+    }, {
+      code: 'cusName',
+      title: mixins.$t('cusName')
+    }, {
+      code: 'cusPhone',
+      title: mixins.$t('cusPhone')
+    }, ],
+    tagList: [{
+        title: mixins.$t("goods"),
+        code: mixins.$t("goods")
       },
       {
-        "brandName": "冠珠GUANZHU",
-        "currentIntoAmt": 0,
-        "currentIntoQty": 0,
-        "currentOutAmt": 0,
-        "currentOutQty": 0,
-        "decimalPlaces": 0,
-        "endingIvtAmt": 33,
-        "endingIvtQty": 1,
-        "invId": "10112024-0624-0000-0000-00045b53e1fc",
-        "nonStdCode": "-",
-        "openingIvtAmt": 33,
-        "openingIvtQty": 1,
-        "packBox": 1,
-        "shortName": "冠珠GUANZHU",
-        "skuModel": "WAGYJ",
-        "skuName": "WANGYJ",
-        "skuSpec": "1",
-        "unitName": "套",
-        "whName": "主仓"
-      },],
-          // 路由
+        title: mixins.$t("customer"),
+        code: mixins.$t("customer")
+      }
+    ],
+    tableData: [],
+    // 路由
     routeObjName: 'report',
   },
-
- /**
+  /**
+   * @desc : 设置查询参数
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  setSearchParams(params) {
+    let querys = {
+      accDatestart: params.makeTimeStart,
+      accDateEnd: params.makeTimeEnd,
+      type: this.data.active == 0 ? 1 : 2,
+      sortAmt: params.sort ? params.sort : '1',
+      searchText: params.searchText,
+      skuModel: params.skuModel,
+      skuName: params.skuName,
+      brandName: params.goodsBrand,
+      skuSpec: params.sukSpec,
+      nonStdCode: params.colorNumber,
+      seriesName: params.goodsSeries,
+      cusName: params.cusName,
+      cusPhone: params.cusPhone,
+    }
+    params.querys = JSON.stringify(querys)
+    return params;
+  },
+  /**
    * @desc : 查询
    * @date : 2024/6/6 08:59
    * @author : 王英杰
    */
   getData(params) {
-    return this.excute(this.data.service, this.data.service.getCusRecPayReportItem, params);
+    return this.excute(this.data.service, this.data.service.getOrderSummary, params).then(res => {
+      if (res.data.code === Constants.SUCESS_CODE) {
+        console.log('getData', res);
+        let total = {}
+        let tableData = []
+        if (res.data && res.data.data && res.data.data.total) { //头部数据
+          total = res.data.data.total[0]
+        }
+        if (res.data && res.data.data && res.data.data.detail) { //头部数据
+          tableData = res.data.data.detail
+        }
+        this.setData({
+          total: total,
+          tableData: tableData
+        })
+      }
+    })
   },
+  /**
+   * @desc : 切换 商品 客户
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  onChangeTabs(e) {
+    let index = e.detail.detail.index
+    this.setData({
+      active: index,
+    })
+    if (index == 0) {
+      this.selectComponent('#dk-list-report').setReportNameKey('saleSumGoods')
+    } else {
+      this.selectComponent('#dk-list-report').setReportNameKey('saleSumCus')
+    }
 
-  
+    this.searchData()
+  },
+  /**
+   * @desc : 跳转明细
+   * @date : 2024年3月8日
+   * @author : 王英杰
+   */
+  toDetail(e) {
+   console.log('toDetail',e); 
+   let skuId = e.detail.item.skuId 
+    wx.navigateTo({
+      url: this.data.route.orderSumReportDetail.url,
+      success: function (res) {
+        // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
+        res.eventChannel.emit('params', { id: skuId, formMode: Constants.formMode.detail, formType: Constants.formMode.detail })
+      }
+    })
+  },
 })

+ 2 - 1
package-sales/pages/order-sum-report/order-sum-report.json

@@ -1,3 +1,4 @@
 {
-    "usingComponents": {}
+    "usingComponents": {},
+    "navigationBarTitleText":"销售汇总表"
 }

+ 3 - 3
package-sales/pages/order-sum-report/order-sum-report.wxml

@@ -22,13 +22,13 @@
   </view>
   <view class="card-content">
     <view style="flex: 1;"> 
-        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#A5814A" contentFontWeight="bold" content="1111" center="center"></dk-cell> 
+        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#A5814A" contentFontWeight="bold" content="{{total.factAmt?total.factAmt:0}}" center="center"></dk-cell> 
     </view>
     <view style="flex: 1;"> 
-        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#1B365D" contentFontWeight="bold" content="22222"  center=" center"amount="{{false}}"></dk-cell> 
+        <dk-cell left="0rpx" height="45rpx"   contentFontSize="14" contentColor="#1B365D" contentFontWeight="bold" content="{{total.itemQty?total.itemQty:0}}"center=" center"amount="{{false}}"></dk-cell> 
     </view>
   </view>
 </view>
 </view> 
 <!-- 列表区 -->
-<dk-list-report list="{{tableData}}" flgSubFormatDate="{{true}}"  titleTagCol="shortName"  titleCol="skuModel" iconCol="imagesUrl" descCol="skuName" title="skuCode" colorLeft="#437FF8" colorRight="#F43636" statusLeft="outStatusName" reportNameKey="salesum" contentCardTwoFlg="{{true}}" content="{{contentList}}" contentObj="{{contentObj}}" bind:toDetail="toDetail" bind:toTitle="toTitle"  routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list-report>
+<dk-list-report id="dk-list-report" list="{{tableData}}" flgSubFormatDate="{{true}}"  titleTagCol="shortName"  titleCol="skuModel" iconCol="imagesUrl" descCol="skuName" title="skuCode" colorLeft="#437FF8" colorRight="#F43636" statusLeft="outStatusName" reportNameKey="saleSumGoods" contentCardTwoFlg="{{true}}" content="{{contentList}}" contentObj="{{contentObj}}" bind:toDetail="toDetail" bind:toTitle="toTitle"  routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list-report>

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

@@ -125,10 +125,10 @@ Page({
         if (res.data && res.data.data && swiperList) {
           let data = res.data.data
           if (dateType == 'week') {
-            swiperList[1]['transactionAmount'] = data.receivable ? data.receivable : 0;
+            swiperList[1]['transactionAmount'] = (data.receivable ? data.receivable : 0) + (data.returnamt?data.returnamt:0);
             swiperList[1]['collectionAmount'] = data.receipt ? data.receipt : 0;
           } else if (dateType == 'month') {
-            swiperList[0]['transactionAmount'] = data.receivable ? data.receivable : 0;
+            swiperList[0]['transactionAmount'] = (data.receivable ? data.receivable : 0) + (data.returnamt?data.returnamt:0);
             swiperList[0]['collectionAmount'] = data.receipt ? data.receipt : 0;
           }
           this.setData({

+ 1 - 1
pages/index/index.wxss

@@ -128,7 +128,7 @@ page {
 .vip-icon-view{
   width: 100%;
   position: relative;
-  z-index: 1000;
+  z-index: 50;
 }
 
 .icon-title_diamond {

+ 4 - 2
pages/login/login.wxml

@@ -13,12 +13,14 @@
 
     <view wx:if="{{flgTel}}" style="margin-top: 60rpx; display: flex;">      
       <van-button size="small" custom-style="border-radius: 30rpx; margin-left:10rpx;height:60rpx;width:180rpx;" type="default" data-company='add' bind:click="addCompanyHasTel"  >{{$t['homeAddCompany']}}</van-button>
-      <van-button wx:if="{{flgCreate}}" size="small"  data-company='create' bind:click="addCompanyHasTel"  custom-style="border-radius: 30rpx;margin-left:30rpx ;height:60rpx;width:180rpx; " type="default"> {{$t['homeCreateCompany']}}</van-button>
+      <!--  wx:if="{{flgCreate}}" 上线后 要加上 -->
+      <van-button size="small"  data-company='create' bind:click="addCompanyHasTel"  custom-style="border-radius: 30rpx;margin-left:30rpx ;height:60rpx;width:180rpx; " type="default"> {{$t['homeCreateCompany']}}</van-button>
     </view>
 
     <view wx:if="{{!flgTel}}" style="margin-top: 60rpx; display: flex;">      
       <van-button size="small" custom-style="border-radius: 30rpx; margin-left:10rpx;height:60rpx;width:180rpx;" type="default" data-company='add' bind:click="addCompany" open-type="{{openType}}" bindgetphonenumber="handleGetPhoneNumber">{{$t['homeAddCompany']}}</van-button>
-      <van-button wx:if="{{flgCreate}}" size="small" open-type="{{openType}}" data-company='create' bind:click="addCompany" bindgetphonenumber="handleGetPhoneNumber" custom-style="border-radius: 30rpx;margin-left:30rpx ;height:60rpx;width:180rpx; " type="default"> {{$t['homeCreateCompany']}}</van-button>
+<!--  wx:if="{{flgCreate}}" 上线后 要加上 -->
+      <van-button   size="small" open-type="{{openType}}" data-company='create' bind:click="addCompany" bindgetphonenumber="handleGetPhoneNumber" custom-style="border-radius: 30rpx;margin-left:30rpx ;height:60rpx;width:180rpx; " type="default"> {{$t['homeCreateCompany']}}</van-button>
     </view>
 
     <view class="foot-agreement-privacy">

+ 20 - 7
pages/shopping/shopping.js

@@ -55,13 +55,7 @@ Page({
       urlKey: 'openingInventory',
       readonly: true,
 
-    },
-    {
-      code: 'brandName',
-      title: mixins.$t('brandName'),
-      type: 'str',
-      readonly: true,
-    },
+    }, 
     {
       code: 'nonStdCode',
       title: '色号',
@@ -622,4 +616,23 @@ Page({
       }
     })
   },
+
+
+    /**
+     * @desc : 页面上拉触底事件的处理函数
+     * @author : 周兴
+     * @date : 2022/8/1 12:16
+     */
+    scrollToLower() {
+      if (this.data.loading || this.data.noMore) {
+          return;
+      }
+      this.setData({
+          pageInfo: {
+              pageSize: this.data.pageInfo.pageSize,
+              currentPage: this.data.pageInfo.currentPage + 1
+          }
+      })
+      this.searchData('more')
+  },
 })

+ 1 - 1
pages/shopping/shopping.wxml

@@ -189,7 +189,7 @@
 
 
 
-<dk-popup id="dkPopup"  type="sale"   subCol="calculationFormula" descCol="skuName" titleCol="skuModel"  priceCol="{{ 'sumPrice'}}" iconCol="imagesUrl"  value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" contentObj="{{popContent}}" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:changeStep="changeStep" bind:blurNumberField="blurNumberField" bind:changeCheckBox="popupChangeCheckBox" stepperDecimal ="decimalPlaces" >
+<dk-popup id="dkPopup"  type="sale"  titleTagCol="brandName"    subCol="calculationFormula" descCol="skuName" titleCol="skuModel"  priceCol="{{ 'sumPrice'}}" iconCol="imagesUrl"  value="{{dataItem}}" show="{{showPop}}" routeObjName="{{routeObjName}}" contentObj="{{popContent}}" bind:commit="editItems" bind:openPackageBox="openPackageBox" bind:changeStep="changeStep" bind:blurNumberField="blurNumberField" bind:changeCheckBox="popupChangeCheckBox" stepperDecimal ="decimalPlaces" >
 </dk-popup>
 
 <!-- 箱片 -->