Jelajahi Sumber

1、修改dk-form-bill组件

zhoux 2 tahun lalu
induk
melakukan
6560a84f4b

+ 13 - 6
components/dkbase/dk-form-bill/dk-form-bill.js

@@ -26,7 +26,7 @@ Component({
     contentObj: {
       type: Object,
     },
-    // 开单组件类型
+    // 开单组件类型(sale,pur)
     type: {
       type: String,
     },
@@ -140,6 +140,7 @@ Component({
     dropName: null,
     itemName: 'goodsList',
     selectGoodsUrl: null,
+    chooseVisible:true,  // 用于联动控制选商品按钮
     // popContent:
     //   [{ code: 'quantity', type: 'step', title: '数量', required: true }, { code: 'pricePromotion', type: 'number', title: '销售价格', required: true }, { code: 'warehouseId', name: 'warehouseName', type: 'drop', required: true, dropType: 'warehouse' , required: true}, { code: 'color', type: 'str', title: '批次号' , required: true}, { code: 'giftFlag', type: 'checkbox', title: '赠品标识' }],
     form: {}
@@ -147,7 +148,8 @@ Component({
   lifetimes: {
     attached: function () {
       // 销售订单
-      if (this.data.type == Constants.billType.sale) {
+      if (this.data.type == Constants.billType.sale ||
+        this.data.type == Constants.billType.pur) {
         this.setData({
           selectGoodsUrl: '/package-base-select/pages/select-goods/select-goods'
         })
@@ -245,11 +247,10 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     openChoosedItemInfo(e) {
-      if (this.data.readonly) {
-        return;
-      }
+      // if (this.data.readonly) {
+      //   return;
+      // }
       let ds = e.currentTarget.dataset;
-      console.log("123",ds.item)
       this.setData({
         dataIndex: ds.index,
         dataItem: JSON.stringify(ds.item),
@@ -317,6 +318,12 @@ Component({
                 // 回调后
                 bindData: function (data) {
                   that.triggerEvent("chooseData", { code: item.key, data: data })
+                  // 如果需要联动控制选商品按钮
+                  if(item.item.controlChooseFlag){
+                    that.setData({
+                      chooseVisible:false
+                    })
+                  }
                 }
               },
               success: function (res) {

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

@@ -17,11 +17,11 @@
   <view class="dk-card-class" wx:for="{{cardList}}" wx:for-item="card" data-item="{{card}}" wx:for-index="cardIndex">
     <view wx:if="{{card.title}}" class="item-class">
       <view class="item-title-class">{{card.title}}</view>
-      <view class="item-info-class">{{card.info}}</view>
+      <view class="item-info-class" style="color:{{card.color?card.color:'#1B365D'}}">{{card.info}}</view>
       <view style="width: 35%;text-align: right;">
         <dk-tag wx:if="{{card.expandFlag}}" type="primary" padding="0 20rpx" height="40rpx" color="#9FAEE5" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" value="{{!card.expand?'展开':'收起'}}" catchtap="expandCard" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
         <!--明细,增加选择商品按钮-->
-        <dk-tag wx:if="{{card.name == 'items' && !readonly && ( card.chooseGoodsFlag == undefined || card.chooseGoodsFlag)}}" type="primary" padding="0 20rpx" height="40rpx" color="#77C5D5" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" value="选商品" catchtap="openChooseItems" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
+        <dk-tag wx:if="{{card.name == 'items' && !readonly && chooseVisible && ( card.chooseGoodsFlag == undefined || card.chooseGoodsFlag)}}" type="primary" padding="0 20rpx" height="40rpx" color="#77C5D5" textColor="#FFFFFF" radius="5rpx" roundFlag="{{true}}" value="选商品" catchtap="openChooseItems" data-item="{{card}}" data-index="{{cardIndex}}"></dk-tag>
       </view>
     </view>
     <view wx:if="{{card.expandFlag && card.expand || !card.expandFlag}}">
@@ -29,7 +29,7 @@
       <view wx:if="{{card.name == 'items'}}">
         <view wx:for="{{form[itemName]}}" data-item="{{item}}" wx:for-item="item" wx:key="index" border="{{ false }}">
           <van-swipe-cell right-width="{{ 65 }}" data-index="{{index}}" async-close bind:close="onCloseDel">
-            <van-card wx:if="{{item.show || item.show == undefined}}" data-index="{{index}}" data-item="{{item}}"  data-card="{{card}}" catchtap="openChoosedItemInfo"> 
+            <van-card wx:if="{{item.show || item.show == undefined}}" data-index="{{index}}" data-item="{{item}}" data-card="{{card}}" catchtap="openChoosedItemInfo">
               <view slot="thumb" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" catchtap="openChoosedItemInfo">
                 <van-image radius="5px" width="70" height="70" src="{{item[iconCol] }}" />
               </view>
@@ -59,36 +59,36 @@
           </van-swipe-cell>
         </view>
         <block style="text-align: center; " wx:if="{{card.displayNum && form[itemName].length > card.displayNum}}">
-          <view wx:if="{{card.showMore}}" class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}"  bindtap='expand'>
+          <view wx:if="{{card.showMore}}" class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}" bindtap='expand'>
             点击收起部分
             <van-icon name="arrow-up" />
           </view>
-          <view wx:else class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}"   bindtap='expand'>
+          <view wx:else class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}" bindtap='expand'>
             展开查看更多
             <van-icon name="arrow-down" />
           </view>
         </block>
         <view class="amount-item-class" wx:if="{{type === 'sale'}}">
           <!--标价总额-->
-          <dk-cell contentColor="#CAA977" titleColor="#95A8CB;" title="标价总额" content="{{card[sumStandardCol]}}"></dk-cell>
+          <dk-cell contentColor="#CAA977" titleColor="#95A8CB;" title="标价总额" content="{{card[sumStandardCol]?card[sumStandardCol]:0}}"></dk-cell>
           <!--标价折扣-->
-          <dk-cell amount="{{false}}" contentColor="#CAA977" titleColor="#95A8CB;" title="标价折扣" content="{{card[discountStandardCol]  +'折'}}"></dk-cell>
+          <dk-cell amount="{{false}}" contentColor="#CAA977" titleColor="#95A8CB;" title="标价折扣" content="{{card[discountStandardCol]?card[discountStandardCol]:''  +'折'}}"></dk-cell>
         </view>
 
         <view class="amount-item-class">
           <!--条数-->
-          <dk-cell titleColor="#95A8CB;" title="{{$t['together'] + form[itemName].length + $t['bill']}}" amount="{{false}}"></dk-cell>
+          <dk-cell titleColor="#95A8CB;" title="{{$t['together'] + (form[itemName]?form[itemName].length:0) + $t['bill']}}" amount="{{false}}"></dk-cell>
           <!--标价折扣-->
-          <dk-cell fontSize="16" fontWeight="bold" contentColor="#CAA977" titleColor="#1B365D;" title="合计金额" content="{{card[sumAmountCol]}}"></dk-cell>
+          <dk-cell fontSize="16" fontWeight="bold" contentColor="#CAA977" titleColor="#1B365D;" title="合计金额" content="{{card[sumAmountCol]?card[sumAmountCol]:0}}"></dk-cell>
         </view>
 
         <view class="amount-item-class" wx:if="{{type === 'sale'}}">
           <view style="display: flex;">
             <!--使用收款-->
-            <dk-cell contentColor="#95A8CB" titleColor="#95A8CB" title="使用收款(可用" content="{{card[canUseCollectCol]}}"></dk-cell>
+            <dk-cell contentColor="#95A8CB" titleColor="#95A8CB" title="使用收款(可用" content="{{card[canUseCollectCol]?card[canUseCollectCol]:0}}"></dk-cell>
             <dk-cell left="0rpx" titleColor="#95A8CB" title=")" amount="{{false}}"></dk-cell>
           </view>
-          <dk-cell contentColor="#CAA977" content="{{card[useCollectCol] }}"></dk-cell>
+          <dk-cell contentColor="#CAA977" content="{{card[useCollectCol]?card[useCollectCol]:0 }}"></dk-cell>
         </view>
       </view>
       <!--非明细card-->
@@ -143,11 +143,11 @@
           </view>
         </view>
         <block style="text-align: center; " wx:if="{{card.displayNum && contentObj[card.name].length > card.displayNum}}">
-          <view wx:if="{{card.showMore}}" class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}"  bindtap='expand'>
+          <view wx:if="{{card.showMore}}" class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}" bindtap='expand'>
             点击收起部分
             <van-icon name="arrow-up" />
           </view>
-          <view wx:else class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}"   bindtap='expand'>
+          <view wx:else class="expand-class" data-card="{{card}}" data-index="{{cardIndex}}" bindtap='expand'>
             展开查看更多
             <van-icon name="arrow-down" />
           </view>
@@ -169,5 +169,5 @@
 </van-popup>
 
 
-<dk-popup type="{{popType}}"  priceCol="{{priceCol}}" titleTagCol="{{titleTagCol}}" titleCol="{{titleCol}}" subCol="{{subCol}}" iconCol="{{iconCol}}" priceCol="{{priceCol}}" priceTitle="{{priceTitle}}" value="{{dataItem}}" show="{{showPop}}" contentObj="{{popContent}}" bind:commit="editItems">
+<dk-popup type="{{popType}}" priceCol="{{priceCol}}" titleTagCol="{{titleTagCol}}" titleCol="{{titleCol}}" subCol="{{subCol}}" iconCol="{{iconCol}}" priceCol="{{priceCol}}" priceTitle="{{priceTitle}}" value="{{dataItem}}" show="{{showPop}}" contentObj="{{popContent}}" bind:commit="editItems">
 </dk-popup>

+ 13 - 1
components/dkbase/dk-popup/dk-popup.js

@@ -23,6 +23,10 @@ Component({
       type: String,
       value: 'sale'
     },
+    // 是否只读
+    readonly: {
+      type: Boolean,
+    },
     // 图片列名
     iconCol: {
       type: String,
@@ -171,6 +175,9 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     open(e) {
+      if(this.data.readonly){
+        return;
+      }
       let item = e.currentTarget.dataset;
       let that = this
       if (item.item.type == 'drop') {
@@ -277,7 +284,9 @@ Component({
      * @date   : 2024/2/2 11:46
      */
     changeStep(e) {
-      
+      if(this.data.readonly){
+        return;
+      }
       let ds = e.currentTarget.dataset
       let key = ds.key
       let item = ds.item
@@ -320,6 +329,9 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     changeCheckBox(e) {
+      if(this.data.readonly){
+        return;
+      }
       let key = e.currentTarget.dataset.key
       let checkFlag = e.currentTarget.dataset.value
       let form = this.data.form

+ 4 - 4
components/dkbase/dk-popup/dk-popup.wxml

@@ -36,7 +36,7 @@
     <!--内容-->
     <view wx:for="{{contentObj}}" wx:for-item="item" data-item="{{item}}" wx:key="index">
       <!--文本框-->
-      <van-field wx:if="{{item.type=='str'}}" label-class="{{item.required?'red-label':'nomal-label' }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!item.readonly}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" errorMessage="{{item.errMsg}}">
+      <van-field wx:if="{{item.type=='str'}}" label-class="{{item.required?'red-label':'nomal-label' }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!readonly ||!!item.readonly}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" errorMessage="{{item.errMsg}}">
       </van-field>
       <!--下拉-->
       <van-field wx:if="{{item.type=='drop'}}" label-class="{{item.required?'red-label':'nomal-label' }}" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" value="{{ form[item.name]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" is-link catchtap="open" autosize border="{{ false }}" readonly="{{true}}" input-class="dk-cell-value-class" data-type='{{item.dropType}}' errorMessage="{{item.errMsg}}">
@@ -55,16 +55,16 @@
         <van-stepper value="{{form[item.code]}}" integer="{{true}}" data-index="{{index}}" data-item="{{item}}"  data-key="{{item.code}}" min="0" max="{{item.max?item.max:999999999}}" bind:change="changeStep" />
       </van-cell>
       <!--数字类-->
-      <dk-number-input wx:if="{{item.type=='number'}}"  sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}"  fontSize="14" left="30rpx" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" center="left" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" contentRight="true" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#1B365D" titleFontWeight="bold" titleColor="{{item.required?'#E4002B':'#95A8CB'}}" inputValue="{{form[item.code]}}" bind:triggerBindValue="changeNumberField"></dk-number-input>
+      <dk-number-input wx:if="{{item.type=='number'}}"  sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}"  fontSize="14" left="30rpx" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" center="left" readonly="{{!!readonly || !!item.readonly}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" contentRight="true" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#1B365D" titleFontWeight="bold" titleColor="{{item.required?'#E4002B':'#95A8CB'}}" inputValue="{{form[item.code]}}" bind:triggerBindValue="changeNumberField"></dk-number-input>
       <!--备注-->
-      <van-field wx:if="{{item.type=='textarea'}}" type="textarea" label-class="{{item.required?'red-label':'nomal-label' }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!item.readonly}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeField" errorMessage="{{item.errMsg}}">
+      <van-field wx:if="{{item.type=='textarea'}}" type="textarea" label-class="{{item.required?'red-label':'nomal-label' }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!readonly || !!item.readonly}}"input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeField" errorMessage="{{item.errMsg}}">
       </van-field>
     </view>
   </view>
 
   <view style="height: 30rpx;background-color: #FFFFFF;"></view>
 
-  <view style="text-align: center;background-color: #FFFFFF">
+  <view wx:if="{{!readonly}}" style="text-align: center;background-color: #FFFFFF">
     <van-button round size="large" color="#1B365D" custom-style="height:88rpx;width:640rpx;margin-bottom:40rpx" type="info" size="small" bindtap="commit">确定</van-button>
   </view>
 </van-popup>

+ 1 - 1
package-basic-data/pages/test/add/add.js

@@ -12,7 +12,7 @@ Page({
     //   main: [{ code: 'staffId', name: 'staffName', type: 'drop', required: true, dropType: 'staff' }, { code: 'customerName', type: 'str', required: true },
     //   { code: 'telephone', type: 'phone', title: '客户电话', required: true }, { code: 'address', type: 'address', title: '客户地址', required: true }, { code: 'designStatus', type: 'checkbox', title: '设计制图' }, { code: 'collectAmount', type: 'number', title: '收款金额', required: true }, { code: 'remarks', type: 'textarea', title: '备注' }, { code: 'file', type: 'uploader', title: '附件' }]
     // },
-    cardList: [{name:'main',title:'客户信息',expandFlag:true,infoCols:['telephone'],displayNum:2},{name:'relation'},{name:'items',title:'商品明细',displayNum:2},{name:'other',title:'其他信息'}],
+    cardList: [{name:'main',title:'客户信息',expandFlag:true,infoCols:['telephone'],displayNum:2},{name:'relation'},{name:'items',title:'商品明细',displayNum:2,info:'(待入库)'},{name:'other',title:'其他信息'}],
     contentObj: {
       main: [{ code: 'staffId', name: 'staffName', type: 'choose', required: true, dropType: 'staff',urlKey:'follow' },
       { code: 'telephone', type: 'phone', title: '客户电话', required: true }, { code: 'address', type: 'address', title: '客户地址', required: true }, { code: 'designStatus', type: 'switch', title: '设计制图' }],

+ 1 - 1
package-purchase/pages/purchase-receipt/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 type="sale" id="dk-form-bill"  routeObjName="{{routeObjName}}"  
+<dk-form-bill type="pur" id="dk-form-bill"  routeObjName="{{routeObjName}}"  
 cardList="{{cardList}}"  titleTagCol ="shortName"  titleCol ="skuCode"   
 descCol = "skuModel" priceCol ="pricePur" quantityCol ="itemQty" sumAmountCol ="itemAmt"
 contentObj="{{contentObj}}" model:value="{{formData}}" popContent = "{{popContent}}" 

+ 1 - 1
utils/Constants.js

@@ -146,7 +146,7 @@ module.exports = {
     // 销售订单
     sale:'sale',
     // 采购订单
-    porder:'porder',
+    pur:'pur',
   },
 
   // 收款状态