cyy
2024-06-16 feeff00e9c28cbf82639295759d5f507187d356f
pages/modal/5600.vue
@@ -306,7 +306,7 @@
               :type="item.name=='Input'?'text':'number'" v-model="item.value" :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)" @keyup.enter="onEnterChange(item)"
               :focus="focusFieldId == item.fieldId" @focus="ontap(index,item)" @keyup.enter="onEnterChange(item)"
               @blur="onEnterChange(item)" />
            <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
               @click="onEnterChange(item)">&#xe568;</text>
@@ -478,7 +478,7 @@
            title: '码盘',
            ClsID: 'CG_Detail',
            param: {},
            focusMateria: false,
            focusFieldId: "",
            head_styledef: {
               form: {
                  items: []
@@ -487,7 +487,9 @@
            detail1_styledef: {},
            detail1StyleDefList: [],
            detail2_styledef: {},
            detail2StyleDefList: [],
            detail2StyleDefList: [], //分页数据
            detail1ExtData: {},
            detail2ExtData: {}, //分页扩展数据
            // 分段器数据
            current: 0,
            Before_OK_Event: {},
@@ -521,9 +523,8 @@
         this.Detail2_UIstyleGetInfo(this.ClsID, this.$data.param.Sub_Page[1].UI_Style.ID);
         console.log(this.$data.param);
         //页面初始化获取焦点
         // this.focusMateria=true;
      },
         //页面初始化获取焦点
      methods: {
         setData: function(obj) {
            let that = this;
@@ -570,6 +571,14 @@
                     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({
@@ -743,13 +752,13 @@
            });
         },
         ontap(item) { //扫码功能
         ontap(index,item) { //扫码功能
            // var $ele = e;
            //console.log(e.target)
            getApp().onScan((result) => {
               console.log(result.decodedata);
               item.value = result.decodedata;
               uni.hideKeyboard();
               // uni.hideKeyboard();
               var $this = this;
               // if(item.value=='B61DF51DD50645CEB9D152DD77D2466A'){
@@ -783,13 +792,17 @@
                     $this.onChange(onChangeEvent);
                  }
                  if (item.value) { //第一个输入框不为空
                     $this.focusMateria = true; //初始化,第二个输入框focus属性
                     // setTimeout(function(){
                     //    $this.focusMateria=true; //第二个输入框获取焦点
                     setTimeout(function() {
                        uni.hideKeyboard();
                     }, 1000);
                     // },500);
                   //初始化,下个输入框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);
@@ -864,11 +877,11 @@
            const 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"})
               });
            });
            return jsonlist;
@@ -878,30 +891,28 @@
            try {
               if (event.id) {
                  //获取表头属性
                  var head_attr = {};
                  this.head_styledef.form.items.forEach(item => {
                     head_attr[item.fieldId] = item.value;
                  });
                  var obj_attr = this.head_styledef.form.model;
                  // console.log(obj_attr);
                  var input_param = Base64.encode(
                     JSON.stringify(
                        Object.keys(obj_attr).map((a) => ({
                        Object.keys(head_attr).map((a) => ({
                           attr: a,
                           value: obj_attr[a] || "",
                           value: head_attr[a] || "",
                        }))
                     )
                  );
                  var $this = this;
                  const jsonList = []
                  jsonList.push({
                     page_name: $this.param.Sub_Page[0].Name,
                     item_list: []
                  })
                  jsonList.push({
                     page_name: $this.param.Sub_Page[1].Name,
                     item_list: []
                  })
                  jsonList[0].item_list = $this.getDetailAttrList($this.detail1StyleDefList, $this.param
                     .Sub_Page[0].Select_Button)
                  jsonList[1].item_list = $this.getDetailAttrList($this.detail2StyleDefList, $this.param
                     .Sub_Page[1].Select_Button)
                  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)
                  );
@@ -1026,98 +1037,31 @@
                                             .exec();
                                       }
                                    });
                                 } else if (item.action_type ==
                                    "set_subtable_page_row") { // value = {"page_name":"码盘中", "row":[{"id":"xx"}]}
                                 } 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;
                                    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
                                    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})
                                    }
                                    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
                                       })
                                 }
                                 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_attr") {
                                 }
                                 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;
                                    $this.$data.head_styledef.form.items.forEach(async (
@@ -1174,19 +1118,81 @@
            }
         },
         operationNumber(value1, value2, operation) {
            if (operation == "+") {
               return value1 + value2
            } else if (operation == "-") {
               return value1 - value2
            } else if (operation == "*") {
               return value1 * value2
            } else if (operation == "/") {
               if (value2)
                  return value1 / value2
         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 value1
            } else return value2
                  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) {
@@ -1243,6 +1249,12 @@
         //加载已码盘内容
         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;
            }
@@ -1336,6 +1348,9 @@
                  // console.log($this.$data.detail2StyleDefList);
               }
            });
         },
         onClickItem(e) { //选择页签
            // console.log(e);
@@ -1494,6 +1509,9 @@
                  }))
               });
            });
            const list = []
            list.push({page_name:$this.param.Sub_Page[0].Name,item_list:jsonlist,ext_data:$this.detail1ExtData})
            // console.log(jsonlist);
            $this.runCustomEvent(event, input_param, jsonlist, '1');
            // jsonlist.forEach(async (json,key)=>{
@@ -1585,8 +1603,11 @@
                  }))
               });
            });
            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');
            // });
@@ -1693,6 +1714,30 @@
                                 // });
                                 // uni.showModal({title:"系统提示",content:value,showCancel:false,confirmText:"关闭"});
                              }
                              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 ($this.$data.After_OK_Event.ID != event.ID) { //判断当前事件是否是确定后事件