瀏覽代碼

1、修改dk-from-more-items组件

zhoux 2 年之前
父節點
當前提交
e76167dfee

+ 1 - 1
api/pages/mac/income.js

@@ -23,7 +23,7 @@ module.exports = {
 			chooseStaff: { key: 'chooseStaff', url: '/package-base-select/pages/select-data/select-data',type:'staff'  },
 			chooseOrg: { key: 'chooseOrg',url: '/package-base-select/pages/select-data/select-data',type:'org' }, 
 			selectIncomeCategory: {
-				key: 'selectIncomeCategory', url: '/package-base-select/pages/select-data/select-data',type:'dictionary',dictCode:'基础资料-收入类别',chooseFlag:true
+				key: 'selectIncomeCategory', url: '/package-base-select/pages/select-data/select-data',type:'dictionary',dictCode:'基础资料-收入类别',chooseFlag:true,repeatFlag:true
 			},
 		}
 	}

+ 17 - 5
components/dkbase/dk-form-more-items/dk-form-more-items.js

@@ -197,10 +197,8 @@ Component({
     */
     choose(e) {
       let item = e.currentTarget.dataset;
-      console.log('2', this.data.form[this.data.objIdCol], item);
       let cardIndex = e.currentTarget.dataset.index
       let cardList = this.data.cardList
-      console.log("cardList", cardList);
       // 跳转链接
       if (cardList && cardList[cardIndex] && cardList[cardIndex].urlKey) {
         let route = this.data.routeUrl[this.data.routeObjName][cardList[cardIndex].urlKey]
@@ -219,7 +217,6 @@ Component({
                 // that.setData({
                 //   form: form
                 // })
-                console.log('form1')
                 that.triggerEvent("chooseData", { code: cardList[cardIndex].name, data: data, index: item.index })
                 // // 如果需要联动控制选商品按钮
                 // if (item.item.controlChooseFlag) {
@@ -232,7 +229,12 @@ Component({
             success: function (res) {
               // 通过eventChannel向被打开页面传送数据
               let item = {}
-              item[that.data.objIdCol] = that.data.form[that.data.objIdCol]
+              let form = that.data.form
+              console.log('fff',form);
+              item[that.data.objIdCol] = form[that.data.objIdCol]
+              if(form && form[that.data.itemName]){
+                item.data =  util.filterArrayEmpty(form[that.data.itemName]) 
+              }
               res.eventChannel.emit('params', { item: item ,route: route})
             }
           })
@@ -478,6 +480,7 @@ Component({
                   if (item.card == 'items') {
                     form[that.data.itemName][item.index][item.item.code] = data.data.id
                     form[that.data.itemName][item.index][item.item.name] = data.data.name
+                    form[that.data.itemName][item.index][item.item.code+'_data'] = data.data.list
                   } else {
                     form[item.item.code] = data.data.id
                     form[item.item.name] = data.data.name
@@ -496,8 +499,17 @@ Component({
                 }
               },
               success: function (res) {
+                let data =  { item: item.item, route: route }
+                let form = that.data.form;
+                if(form && form[item.item.code+ '_data']){
+                  form[that.data.itemName][item.index].data =  form[that.data.itemName][item.index][item.item.code+'_data']
+                  delete  form[that.data.itemName][item.index][item.item.code+'_data']
+                  that.setData({
+                    form:form
+                  })
+                }
                 // 通过eventChannel向被打开页面传送数据
-                res.eventChannel.emit('params', { item: item.item, route: route })
+                res.eventChannel.emit('params', data)
               }
             })
           }

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

@@ -68,9 +68,9 @@
               </view>
             </van-field>
             <!--数字类-->
-            <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="{{indext}}" data-card="{{card.name}}" center="left" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#CAA977" titleFontWeight="{{item.required?'bold':'normal'}}" titleColor="{{item.required?'#E4002B':'#95A8CB'}}" inputValue="{{itemt[item.code]}}" bind:triggerBindValue="changeItemNumberField"></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="{{indext}}" data-card="{{card.name}}" center="left" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#CAA977" titleFontWeight="{{item.required?'bold':'normal'}}" titleColor="{{item.required?'#E4002B':'#95A8CB'}}" inputValue="{{itemt[item.code]}}" readonly="{{!!readonly || !!item.readonly || !form[objIdCol]}}" bind:triggerBindValue="changeItemNumberField"></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="{{indext}}" data-card="{{card.name}}" value="{{ itemt[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" clearable autosize border="{{ false }}" readonly="{{!!item.readonly}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeItemField" bind:clear="clearItemField" 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="{{indext}}" data-card="{{card.name}}" value="{{ itemt[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" clearable autosize border="{{ false }}" readonly="{{!!readonly || !!item.readonly|| !form[objIdCol]}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeItemField" bind:clear="clearItemField" errorMessage="{{item.errMsg}}">
             </van-field>
           </view>
           <van-divider wx:if="{{indext < form[itemName].length - 1}}" custom-style="margin:20rpx 20rpx" borderColor="#DCDCDC"></van-divider>

+ 17 - 3
components/dkbase/dk-list/dk-list.js

@@ -154,8 +154,16 @@ Component({
      * @date   : 2024/2/19 11:46
      */
     chooseData(e) {
-      let list = this.data.list;
       let index = e.currentTarget.dataset.index
+      this._chooseData(index);
+    },
+    /**
+     * @desc   : 选择数据(私有方法)
+     * @author : 周兴
+     * @date   : 2024/2/19 11:46
+     */
+    _chooseData(index){
+      let list = this.data.list;
       if (list && list[index]) {
         list[index].checked = !list[index].checked
       }
@@ -163,7 +171,8 @@ Component({
         list: list
       })
       // 勾选数据
-      this.triggerEvent("choose", { list: list.filter(it=>it.checked) })
+      this.triggerEvent("choose", { item:list[index],
+         list: list.filter(it=>it.checked) ,checked:list[index].checked})
     },
     /**
     * @desc   : 打电话
@@ -188,7 +197,12 @@ Component({
      * @date   : 2024/1/26 11:46
      */
     toDetail(e) {
-      this.triggerEvent("toDetail", { item: e.currentTarget.dataset.item })
+      // 相当于勾选
+      if(this.data.chooseFlag){
+        this.chooseData(e);
+      }else{
+        this.triggerEvent("toDetail", { item: e.currentTarget.dataset.item })
+      }
     },
     /**
      * @desc   : 跳转标题页面

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

@@ -6,7 +6,7 @@
         <view class="corner-view-text">{{item[titleCorner]}}</view>
       </view>
 
-      <view class="table-content" catchtap="toDetail" data-item="{{item}}">
+      <view class="table-content" catchtap="toDetail" data-item="{{item}}" data-index="{{index}}" >
         <!-- 标题行 -->
         <view class="table-content-row">
           <view class="{{ item[titleCorner] ? 'table-content-row-title' :'table-content-row-title-two'}}">

+ 8 - 6
package-accounts-manage/pages/other-receipt/add/add.js

@@ -44,7 +44,7 @@ Page({
 
       ],
       items: [ 
-        { code: 'receivableWaive',name: 'receivableWaiveName', type: 'choose', title: '收入类别', readonly: true,required: true  },
+        { code: 'receivableWaive',name: 'receivableWaiveName', type: 'str', title: '收入类别', readonly: true,required: true  },
         { code: 'receiptResidue',type: 'number', title: '收入金额',required: true  },
       
       ],
@@ -95,11 +95,13 @@ Page({
       formData.orgName = data.name
     }
     if (code == "items") { //选单 
-       data.forEach(element => {
-        element.receivableWaive = element.dataCode
-        element.receivableWaiveName = element.dataValue
-      });
-      formData.itemList = data
+      if(data && data.list){
+        data.list.forEach(element => {
+          element.receivableWaive = element.dataCode
+          element.receivableWaiveName = element.dataValue
+        });
+        formData.itemList = data.list
+      }
     }
   
     this.setData({

+ 33 - 19
package-base-select/pages/select-data/select-data.js

@@ -51,7 +51,6 @@ Page({
      * @date : 2022/5/23 15:16
      */
     toAdd() {
-        console.log('e', this.data.addUrl);
         if (!this.data.addUrl) {
             return;
         }
@@ -77,6 +76,7 @@ Page({
      */
     chooseData(e) {
         let list = e.detail.list;
+        let item = e.detail.item;
         let valueKey = this.data.valueKey;
         if (!valueKey) {
             this.setData({
@@ -84,24 +84,25 @@ Page({
             })
         } else {
             let choosedData = this.data.choosedData
-            let filters = []
-            if (list && list.length > 0) {
-                list.forEach(it => {
-                    // 不允许重复
-                    if (!this.data.repeatFlag) {
-                        filters = choosedData.filter(t => t[valueKey] == it[valueKey])
-                        if (!filters || filters.length == 0) {
-                            choosedData.push(it);
-                        }
-                    } else {
-                        // 可以重复
-                        choosedData.push(it);
+            // 不允许重复
+            if (!this.data.repeatFlag) {
+                if (e.detail.checked) {  // 勾选
+                    let filters = choosedData.filter(it => it[valueKey] == item[valueKey])
+                    if(!filters || filters.length == 0){
+                        choosedData.push(item);
                     }
-                })
-                this.setData({
-                    choosedData: choosedData
-                })
+                } else {                 // 取消勾选
+                    choosedData = choosedData.filter(it => it[valueKey] != item[valueKey])
+                }
+            } else {
+                if (e.detail.checked) {  // 勾选
+                    // 可以重复
+                    choosedData.push(item);
+                }
             }
+            this.setData({
+                choosedData: choosedData
+            })
         }
     },
     /**
@@ -220,6 +221,18 @@ Page({
         return params
     },
     /** 
+     * @desc : 删除已选
+     * @date : 2024年3月26日
+     * @author : 周兴
+     */
+    delChoosed(e){
+        let choosedData= this.data.choosedData;
+        choosedData = choosedData.filter((it,index)=>index != e.detail.index)
+        this.setData({
+            choosedData:choosedData
+        })
+    },
+    /** 
      * @desc : 查询数据
      * @date : 2024年3月23日
      * @author : 周兴
@@ -257,7 +270,6 @@ Page({
      * @author : 周兴
      */
     loadInit(e) {
-        console.log('item', this.data.item);
         let route = this.data.chooseRoute;
         if (!route || !route.type) {
             return;
@@ -265,7 +277,7 @@ Page({
         let title;
 
         // 读取传入的单据类型
-        let chooseType = route.type 
+        let chooseType = route.type
         switch (chooseType) {
             // 部门
             case Constants.chooseType.org:
@@ -366,6 +378,8 @@ Page({
                     method: 'getDictionaryData',
                     dictCode: route.dictCode,
                     chooseFlag: route.chooseFlag,
+                    repeatFlag: route.repeatFlag,
+                    valueKey: 'dataId',
                     title: 'dataValue',
                     contentList: [{
                         name: 'dataCode',

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

@@ -21,7 +21,7 @@
 <dk-list wx:if="{{active == 0}}" id="list" list="{{tableData}}" title="{{title}}" flgPoint="{{false}}" titleImageFlag="{{false}}" content="{{contentList}}" footerInfo="{{footerInfo}}" chooseFlag="{{chooseFlag}}" bind:toDetail="toDetail" bind:choose="chooseData"></dk-list>
 
 <!-- 已选列表区 -->
-<dk-list wx:if="{{chooseFlag && active == 1}}" id="choosed" list="{{choosedData}}" title="{{title}}" flgPoint="{{false}}" titleImageFlag="{{false}}" content="{{contentList}}" footerInfo="{{footerInfo}}"></dk-list>
+<dk-list wx:if="{{chooseFlag && active == 1}}" id="choosed" list="{{choosedData}}" title="{{title}}" flgPoint="{{false}}" titleImageFlag="{{false}}" content="{{contentList}}" footerInfo="{{footerInfo}}" swipeDisabled="{{false}}" swipeDeleteFlag="{{true}}" bind:swipe="delChoosed"></dk-list>
 
 <van-divider wx:if="{{noMore}}" contentPosition="center" borderColor="#DCDCDC">{{$t['noMore']}}~</van-divider>