cyy
2024-06-16 1652caddff10990679dacd1822be6d1d5dc1bf65
pages/modal/5602.vue
@@ -261,8 +261,8 @@
               :disabled="item.disabled"
               :placeholder="item.placeholder"
               :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" 
               :focus="focusMateria"
               @focus="ontap(item)"
               :focus="focusFieldId == item.fieldId"
               @focus="ontap(index,item)"
               @keyup.enter="onEnterChange(item)"
               @blur="onEnterChange(item)"
            />
@@ -409,7 +409,7 @@
      ClsID: "Sorting_Detail",
      ClsID2: "Sorting_Result",
      param: {},
     focusMateria:false,
     focusFieldId:"",
     head_styledef:{
      form:{
         items:[]
@@ -418,7 +418,9 @@
      detail1_styledef:{},
      detail1StyleDefList:[],
      detail2_styledef:{},
      detail2StyleDefList:[],
      detail2StyleDefList:[],//分页数据
     detail1ExtData: {},
     detail2ExtData: {}, //分页扩展数据
     // 分段器数据
     current: 0,
     Before_OK_Event:{},
@@ -450,10 +452,30 @@
   this.Detail2_UIstyleGetInfo(this.ClsID2,this.$data.param.Sub_Page[1].UI_Style.ID);
   
   console.log(this.$data.param);
   //页面初始化获取焦点
   // this.focusMateria=true;
  },   
  methods: {
     setData: function(obj) {
        let that = this;
        let keys = [];
        let val, data;
        Object.keys(obj).forEach(function(key) {
           keys = key.split(".");
           val = obj[key];
           data = that.$data;
           keys.forEach(function(key2, index) {
              if (index + 1 == keys.length) {
                 that.$set(data, key2, val);
              } else {
                 if (!data[key2]) {
                 that.$set(data, key2, {});
                 }
              }
             data = data[key2];
           });
        });
     },
    async Head_UIStyleGetInfo(class_id,style_id){   //获取自定义表单样式
      var $this = this;
      var dataInfo={
@@ -477,6 +499,13 @@
                if(ele.useDict==true){ //判断useDict是否使用字典
                    await this.DictGetInfo(ele.bind.dict,index,'mast');
                }
               if($this.focusFieldId == "")
               {
                  if(ele.name=='Input' || ele.name=='InputNumber')
                  {
                       $this.setData({focusFieldId:ele.fieldId})
                  }
               }
            });
         }else{
            uni.showModal({title:"错误1",content:ret.err_msg,showCancel:false,confirmText:"取消"});
@@ -609,12 +638,12 @@
      });
   },
   
   ontap(item){ //扫码功能
   ontap(index,item){ //扫码功能
      // var $ele = e;
      getApp().onScan((result)=>{
         console.log(result.decodedata);
         item.value = result.decodedata;
         uni.hideKeyboard();
         //uni.hideKeyboard();
         var $this = this;
         
         console.log(item);
@@ -626,18 +655,21 @@
            var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent;   //后图标点击事件
            var onSuffixClickEvent = item.bind.onSuffixClickEvent;   //后图标点击回调
            var isflag = false;
             if(onChangeEvent.id){   //内容变化后事件
               $this.onChange(onChangeEvent); 
             }
            if(item.value){ //第一个输入框不为空
               $this.focusMateria = true; //初始化,第二个输入框focus属性
               // setTimeout(function(){
               //    $this.focusMateria=true; //第二个输入框获取焦点
                  setTimeout(function(){
                     uni.hideKeyboard();
                  },1000);
               // },500);
            if(item.value){ //输入框不为空
                 //初始化,下个输入框focus属性
                 const curIndex =  $this.head_styledef.form.items.findIndex((ele, index2, arr) => {
                   return (ele.name=='Input' || ele.name=='InputNumber')  && index2 > index;
                 })
                 if(curIndex > -1){
                    $this.setData({focusFieldId: $this.head_styledef.form.items[curIndex].fieldId})
                 }
                  // setTimeout(function(){
                  //    uni.hideKeyboard();
                  // },1000);
            }
             // if(onSuffixClickCallbackEvent.id){   //后图标点击事件
             //   this.onSuffixClick(onSuffixClickCallbackEvent);
@@ -670,10 +702,63 @@
          // }
      }
   },
   getDetailAttrList(list,selectButton)
   {
      const detailAttrList = [];
      list.forEach(style=>{
        var detail_attr={};
        style.form.items.forEach(item => {
          if(item.name == "Layout"){  //判断是否是栅栏格式
            item.setting.colList.forEach(cols => {
              if(cols!=null) detail_attr[cols.fieldId] = cols.value;
            });
          }else
            detail_attr[item.fieldId] = item.value;
        });
        detail_attr['id'] = style.form.objId;
        if(selectButton==true){ //判断选择按钮是否为true
          if(style.SelBut_Checked==true)
            detailAttrList.push(detail_attr);
        } else
          detailAttrList.push(detail_attr);
      });
      // console.log(detailAttrList);
      list.forEach(style=>{
        style.form.attrs.forEach(attr => {
          for(var key in detailAttrList){
            if(style.form.objId == detailAttrList[key]['id']){
              var keys = Object.keys(detailAttrList[key]);
              var isflag = true;
              keys.forEach((ele) => {
                if(ele == attr.attr) isflag = false;
              });
              if(isflag) {
                detailAttrList[attr.attr] = attr.value;
              }
           }
          }
        });
      });
      const jsonlist=[];
      detailAttrList.forEach(attr=>{
         jsonlist.push({
           id:attr["id"]|| "",
           attrs: Object.keys(attr).map((a) => ({
            attr: a,
            value: attr[a] || "",
           })).filter((a)=>{return a.attr != "id"})
         });
      });
      return jsonlist;
   },
   // 内容变化后事件
   async onChange(event) {
       try {
           if (event.id) {
             var obj_attr = this.head_styledef.form.model;
             // console.log(obj_attr);
             var input_param = Base64.encode(
@@ -685,6 +770,16 @@
               )
             );
           var $this = this;
           const jsonList = []
           const itemlist1= $this.getDetailAttrList($this.detail1StyleDefList,$this.param.Sub_Page[0].Select_Button)
           const itemlist2= $this.getDetailAttrList($this.detail2StyleDefList,$this.param.Sub_Page[1].Select_Button)
           jsonList.push({page_name:$this.param.Sub_Page[0].Name,item_list:itemlist1,ext_data:$this.detail1ExtData})
           jsonList.push({page_name:$this.param.Sub_Page[1].Name,item_list:itemlist2,ext_data:$this.detail2ExtData})
           const data_json = Base64.encode(
               JSON.stringify(jsonList)
           );
           var dataInfo={
               ed_type: 0,
            start_transaction: '',
@@ -698,9 +793,9 @@
            ref_cls_id: '',
            rel_obj_id: '',
            user_login: '',
            data_json: '',
            data_json: data_json,
            compose_info: '',
            ext_info: '',
            ext_info: "",
            global_attr: '',
               input_param: input_param,
             };
@@ -775,6 +870,30 @@
                             }
                           });
                        }
                        else if (item.action_type == "set_subtable_page_row") {
                           $this.viewActionSetRow( item.value)
                        } else if (item.action_type == "set_subtable_page_ext_data") {
                           var value = item.value;
                           if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
                              $this.setData({detail1ExtData:value.ext_data})
                           } else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
                              $this.setData({detail2ExtData:value.ext_data})
                           }
                        }
                        else if (item.action_type == "clear_subpage_rows") {
                           var value = item.value;
                           if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
                              $this.setData({detail1StyleDefList:[],detail1ExtData:{}})
                           } else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
                              $this.setData({detail2StyleDefList:[],detail2ExtData:{}})
                           }
                        }
                        else if (item.action_type == "set_dlg_current_edit_attr") {
                           if($this.focusFieldId == item.value)
                              $this.setData({focusFieldId: ""})
                           $this.setData({focusFieldId:item.value})
                        }
                        else if(item.action_type == "set_dlg_attr"){
                          // value = {"attr":"xxx", "value":"xxx"}
                          var data = item.value;
@@ -809,6 +928,82 @@
         
       }
   },
   operationNumber(value1, value2,operation){
      var number1 = 0
      var number2 =0
      if(value1)
         number1 =  parseInt(value1)
      if(value2)
         number2 =  parseInt(value2)
      if(operation == "+")
      {
         return number1 + number2
      }
      else if(operation == "-")
      {
         return number1 - number2
      }
      else if(operation == "*")
      {
         return number1 * number2
      }
      else if(operation == "/")
      {
         if(number2)
            return number1 / number2
         else
            return number1
      }
      else return number2
   },
   //更新分页签中的列表项内容
   viewActionSetRow(value) {
      const $this = this
      var detailStyleDefList = []
      if(value.page_name == $this.$data.param.Sub_Page[1].Name)
      {
         detailStyleDefList = $this.$data.detail2StyleDefList
      }
      else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
      {
         detailStyleDefList =$this.$data.detail1StyleDefList
      }
      detailStyleDefList.forEach(ele=>{
         value.row.forEach((rowData) => {
             if(ele.form.objId == rowData.id){
               rowData.attrs.forEach(attr=>{
                   ele.form.items.forEach(ele2=>{
                       if(ele2.name!='Layout'){
                         if(ele2.fieldId == attr.attr){
                           ele2.value =$this.operationNumber(ele2.value,attr.value,attr.operation)
                       }
                       } else if(ele2.name=='Layout'){
                         ele2.setting.colList.forEach(col=>{
                           if(col)
                        {
                             if(col.fieldId == attr.attr)
                          {
                           col.value =$this.operationNumber(col.value,attr.value,attr.operation)
                             }
                        }
                         })
                       }
                   });
               });
            }
         })
      });
      if(value.page_name == $this.$data.param.Sub_Page[1].Name)
      {
         $this.setData({detail2StyleDefList:detailStyleDefList})
      }
      else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
      {
          $this.setData({detail1StyleDefList:detailStyleDefList})
      }
   },
   //加载正在分拣内容
   viewAceionRow(data,type){
      // console.log(data);
@@ -860,6 +1055,13 @@
   //加载已分拣内容
   viewAceionContent(data){
      var $this = this;
      if (data.page_name == $this.$data.param.Sub_Page[0].Name) {
         $this.detail1ExtData = data.ext_data || {}
      }
      else if (data.page_name == $this.$data.param.Sub_Page[1].Name) {
         $this.detail2ExtData = data.ext_data || {}
      }
      if(JSON.stringify(data.content) =='{}'){
        return;
      }
@@ -1076,15 +1278,17 @@
       var jsonlist=[];
      detailAttrList.forEach(attr=>{
          jsonlist.push({
            id:'',
            id:attr["id"]|| "",
            attrs: Object.keys(attr).map((a) => ({
              attr: a,
              value: attr[a] || "",
            }))
            })).filter((a)=>{return a.attr != "id"})
          });
      });
      // console.log(jsonlist);
      $this.runCustomEvent(event,input_param,jsonlist,'1');
      const list = []
      list.push({page_name:$this.param.Sub_Page[0].Name,item_list:jsonlist,ext_data:$this.detail1ExtData})
      $this.runCustomEvent(event,input_param,list,'1');
      // jsonlist.forEach(async (json,key)=>{
      //    await $this.runCustomEvent(event,input_param,json,'1');
      // });
@@ -1163,15 +1367,18 @@
        var jsonlist=[];
       detailAttrList.forEach(attr=>{
           jsonlist.push({
             id:'',
             id:attr["id"]|| "",
             attrs: Object.keys(attr).map((a) => ({
               attr: a,
               value: attr[a] || "",
             }))
             })).filter((a)=>{return a.attr != "id"})
           });
       });
      const list = []
      list.push({page_name:$this.param.Sub_Page[1].Name,item_list:jsonlist,ext_data:$this.detail2ExtData})
       // console.log(jsonlist);
       $this.runCustomEvent(event,input_param,jsonlist,'2');
       $this.runCustomEvent(event,input_param,list,'2');
       // jsonlist.forEach(async (json,key)=>{
       //    await $this.runCustomEvent(event,input_param,json,'2');
       // });
@@ -1232,12 +1439,12 @@
                        }
                     });
                     //清除待分拣中成功的数据
                     $this.$data.detail1StyleDefList.forEach((style,index)=>{
                       if(style.form.items[0].fieldId == json.attrs[0].attr && style.form.items[0].value == json.attrs[0].value){
                        $this.$data.detail1StyleDefList.splice(index,1);
                        return;
                       }
                     });
                     // $this.$data.detail1StyleDefList.forEach((style,index)=>{
                     //   if(style.form.items[0].fieldId == json.attrs[0].attr && style.form.items[0].value == json.attrs[0].value){
                     //    $this.$data.detail1StyleDefList.splice(index,1);
                     //    return;
                     //   }
                     // });
                     // this.detail2StyleDefList=[];
                     uni.showModal({title:"提示",content:"分拣成功",showCancel:false,confirmText:"取消"});
                    } else if(item.action_type == "set_subtable_page_content"){  //加载多条数据
@@ -1272,7 +1479,32 @@
                          });
                        });
                     }
                    } else if(item.action_type == "refresh"){  //刷新
                    }
                    else if (item.action_type == "set_subtable_page_row") {
                       $this.viewActionSetRow( item.value)
                    } else if (item.action_type == "set_subtable_page_ext_data") {
                       var value = item.value;
                       if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
                          $this.setData({detail1ExtData:value.ext_data})
                       } else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
                          $this.setData({detail2ExtData:value.ext_data})
                       }
                    }
                    else if (item.action_type == "clear_subpage_rows") {
                       var value = item.value;
                       if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
                          $this.setData({detail1StyleDefList:[],detail1ExtData:{}})
                       } else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
                          $this.setData({detail2StyleDefList:[],detail2ExtData:{}})
                       }
                    }
                    else if (item.action_type == "set_dlg_current_edit_attr") {
                       if($this.focusFieldId == item.value)
                        $this.setData({focusFieldId: ""})
                       $this.setData({focusFieldId:item.value})
                    }
                    else if(item.action_type == "refresh"){  //刷新
                      var value = item.value;
                     //清除待分拣成功的数据
                     // value.forEach((val_id,key)=>{