cuiqian2004
2024-06-17 b1f20a79e8c5635e0f8aeea42df1d5804fd6dc1f
pages/modal/5600.vue
@@ -468,353 +468,319 @@
</template>
<script>
   import Base64 from '../../components/js-base64/base64.js'
   export default {
      modules: {
         Base64,
      },
      data() {
         return {
            title: '码盘',
            ClsID: 'CG_Detail',
            param: {},
            focusFieldId: "",
            head_styledef: {
               form: {
                  items: []
import Base64 from '../../components/js-base64/base64.js'
export default {
   modules: {
      Base64,
   },
   data() {
      return {
         title: '码盘',
         ClsID: 'CG_Detail',
         param: {},
         focusFieldId: "",
         head_styledef: {
            form: {
               items: []
            }
         },
         detail1_styledef: {},
         detail1StyleDefList: [],
         detail2_styledef: {},
         detail2StyleDefList: [], //分页数据
         detail1ExtData: {},
         detail2ExtData: {}, //分页扩展数据
         // 分段器数据
         current: 0,
         Before_OK_Event: {},
         After_OK_Event: {},
         Before_Del_Event: {},
         After_Del_Event: {},
         items: [],
         active_id: '',
         activelist: [],
      };
   },
   onLoad(options) {
      // console.log(options);
      uni.setNavigationBarTitle({
         title: options.titlename
      }); //设置顶部标题
      this.$data.title = options.titlename;
      this.$data.param = JSON.parse(options.param);
      // console.log(this.$data.param);
      //获取数据类的自定义表单参数
      this.Head_UIStyleGetInfo(this.$data.ClsID, this.$data.param.Input_UI_Style.ID);
      //加载初始界面
      if (this.$data.param.Show_Welcom_Page) {
         this.$data.param.Welcome_Page.Img = this.$data.param.Welcome_Page.Img.replace(/ /g, '+');
         this.$data.param.Welcome_Page.Width = parseInt(this.$data.param.Welcome_Page.Width);
         this.$data.param.Welcome_Page.Height = parseInt(this.$data.param.Welcome_Page.Height);
      }
      //加载Tab页签
      this.$data.items.push(this.$data.param.Sub_Page[0].Name);
      this.$data.items.push(this.$data.param.Sub_Page[1].Name);
      this.Detail1_UIstyleGetInfo(this.ClsID, this.$data.param.Sub_Page[0].UI_Style.ID);
      this.Detail2_UIstyleGetInfo(this.ClsID, this.$data.param.Sub_Page[1].UI_Style.ID);
      console.log(this.$data.param);
   },
      //页面初始化获取焦点
   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, {});
                  }
               }
            },
            detail1_styledef: {},
            detail1StyleDefList: [],
            detail2_styledef: {},
            detail2StyleDefList: [], //分页数据
            detail1ExtData: {},
            detail2ExtData: {}, //分页扩展数据
            // 分段器数据
            current: 0,
            Before_OK_Event: {},
            After_OK_Event: {},
            items: [],
            active_id: '',
            activelist: [],
               data = data[key2];
            });
         });
      },
      async Head_UIStyleGetInfo(class_id, style_id) { //获取自定义表单样式
         var $this = this;
         var dataInfo = {
            class_id: class_id,
            ui_style_id: style_id,
         };
      },
      onLoad(options) {
         // console.log(options);
         uni.setNavigationBarTitle({
            title: options.titlename
         }); //设置顶部标题
         this.$data.title = options.titlename;
         this.$data.param = JSON.parse(options.param);
         // console.log(this.$data.param);
         //获取数据类的自定义表单参数
         this.Head_UIStyleGetInfo(this.$data.ClsID, this.$data.param.Input_UI_Style.ID);
         //加载初始界面
         if (this.$data.param.Show_Welcom_Page) {
            this.$data.param.Welcome_Page.Img = this.$data.param.Welcome_Page.Img.replace(/ /g, '+');
            this.$data.param.Welcome_Page.Width = parseInt(this.$data.param.Welcome_Page.Width);
            this.$data.param.Welcome_Page.Height = parseInt(this.$data.param.Welcome_Page.Height);
         }
         //加载Tab页签
         this.$data.items.push(this.$data.param.Sub_Page[0].Name);
         this.$data.items.push(this.$data.param.Sub_Page[1].Name);
         this.Detail1_UIstyleGetInfo(this.ClsID, this.$data.param.Sub_Page[0].UI_Style.ID);
         this.Detail2_UIstyleGetInfo(this.ClsID, this.$data.param.Sub_Page[1].UI_Style.ID);
         console.log(this.$data.param);
      },
         //页面初始化获取焦点
      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, {});
                     }
         this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
            // console.log(ret);
            if (ret.err_code == 0) {
               var styledef = "";
               if (ret.result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                     .style_def);
               }
               $this.$data.head_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
               // this.form = this.head_styledef.form.model;
               // console.log($this.$data.head_styledef);
               $this.$data.head_styledef.form.items.forEach(async (ele, index) => {
                  if (ele.useDict == true) { //判断useDict是否使用字典
                     await this.DictGetInfo(ele.bind.dict, index, 'mast');
                  }
                  data = data[key2];
               });
            });
         },
         async Head_UIStyleGetInfo(class_id, style_id) { //获取自定义表单样式
            var $this = this;
            var dataInfo = {
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
                  if (ret.result.style_def) {
                     //mobox2的style_def是json字符串
                     styledef = ret.result.style_def.replace(/\\/g, "");
                     //mobox3的style_def是base64字符串
                     if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                        .style_def);
                  }
                  $this.$data.head_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
                  // this.form = this.head_styledef.form.model;
                  // console.log($this.$data.head_styledef);
                  $this.$data.head_styledef.form.items.forEach(async (ele, index) => {
                     if (ele.useDict == true) { //判断useDict是否使用字典
                        await this.DictGetInfo(ele.bind.dict, index, 'mast');
                     }
                     if($this.focusFieldId == "")
                  if($this.focusFieldId == "")
                  {
                     if(ele.name=='Input' || ele.name=='InputNumber')
                     {
                        if(ele.name=='Input' || ele.name=='InputNumber')
                        {
                            $this.setData({focusFieldId:ele.fieldId})
                        }
                        $this.setData({focusFieldId:ele.fieldId})
                     }
                  });
               } else {
                  uni.showModal({
                     title: "错误1",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: "取消"
                  });
               }
            }).catch(ex => {
               // console.log(ex);
                  }
               });
            } else {
               uni.showModal({
                  title: "错误1.1",
                  content: ex.errMsg,
                  title: "错误1",
                  content: ret.err_msg,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         }).catch(ex => {
            // console.log(ex);
            uni.showModal({
               title: "错误1.1",
               content: ex.errMsg,
               showCancel: false,
               confirmText: "取消"
            });
         });
         },
         async Detail1_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
            var $this = this;
            var dataInfo = {
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
                  if (ret.result.style_def) {
                     //mobox2的style_def是json字符串
                     styledef = ret.result.style_def.replace(/\\/g, "");
                     //mobox3的style_def是base64字符串
                     if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                        .style_def);
                  }
                  $this.$data.detail1_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
                  $this.$data.detail1_styledef.SelBut_Checked = true;
                  // console.log($this.$data.detail1_styledef);
                  // $this.$data.detail1StyleDefList.push($this.$data.detail1_styledef);
                  // var aa = JSON.stringify(this.detail1_styledef);
                  // $this.$data.detail1StyleDefList.push(JSON.parse(aa));
                  // console.log($this.$data.detail1StyleDefList);
                  $this.detail1_styledef.form.items.forEach(async (ele, index) => {
                     if (ele.useDict == true) { //判断useDict是否使用字典
                        await this.DictGetInfo(ele.bind.dict, index, 'sub');
                     }
                  });
               } else {
                  uni.showModal({
                     title: "错误2",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: "取消"
                  });
      },
      async Detail1_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
         var $this = this;
         var dataInfo = {
            class_id: class_id,
            ui_style_id: style_id,
         };
         this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
            // console.log(ret);
            if (ret.err_code == 0) {
               var styledef = "";
               if (ret.result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                     .style_def);
               }
            }).catch(ex => {
               // console.log(ex);
               $this.$data.detail1_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
               $this.$data.detail1_styledef.SelBut_Checked = true;
               // console.log($this.$data.detail1_styledef);
               // $this.$data.detail1StyleDefList.push($this.$data.detail1_styledef);
               // var aa = JSON.stringify(this.detail1_styledef);
               // $this.$data.detail1StyleDefList.push(JSON.parse(aa));
               // console.log($this.$data.detail1StyleDefList);
               $this.detail1_styledef.form.items.forEach(async (ele, index) => {
                  if (ele.useDict == true) { //判断useDict是否使用字典
                     await this.DictGetInfo(ele.bind.dict, index, 'sub');
                  }
               });
            } else {
               uni.showModal({
                  title: "错误2.1",
                  content: ex.errMsg,
                  title: "错误2",
                  content: ret.err_msg,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         }).catch(ex => {
            // console.log(ex);
            uni.showModal({
               title: "错误2.1",
               content: ex.errMsg,
               showCancel: false,
               confirmText: "取消"
            });
         });
         },
         async Detail2_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
            var $this = this;
            var dataInfo = {
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
                  if (ret.result.style_def) {
                     //mobox2的style_def是json字符串
                     styledef = ret.result.style_def.replace(/\\/g, "");
                     //mobox3的style_def是base64字符串
                     if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                        .style_def);
                  }
                  $this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
                  $this.$data.detail2_styledef.SelBut_Checked = true;
                  // console.log($this.$data.detail2_styledef);
               } else {
                  uni.showModal({
                     title: "错误3",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: "取消"
                  });
      },
      async Detail2_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
         var $this = this;
         var dataInfo = {
            class_id: class_id,
            ui_style_id: style_id,
         };
         this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
            // console.log(ret);
            if (ret.err_code == 0) {
               var styledef = "";
               if (ret.result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
                     .style_def);
               }
            }).catch(ex => {
               // console.log(ex);
               uni.showModal({
                  title: "错误3.1",
                  content: ex.errMsg,
                  showCancel: false,
                  confirmText: "取消"
               });
            });
               $this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
               $this.$data.detail2_styledef.SelBut_Checked = true;
               // console.log($this.$data.detail2_styledef);
         },
         async DictGetInfo(dict, index, type) { //Mobox3得到得到字典信息字典项列表
            this.data = [];
            var $this = this;
            var dataInfo = {
               dict_id: dict.id,
               dict_name: dict.name
            };
            // console.log(dataInfo);
            this.$store.dispatch('DictGetInfo', dataInfo).then(async (success) => {
               console.log(success);
               if (success.err_code == 0) {
                  var list = [];
                  var itemName = '';
                  success.result.dict_item_list.forEach((item) => {
                     if (item.is_default == '1')
                        itemName = item.name;
                     list.push({
                        text: item.value,
                        value: item.name,
                     });
                  });
                  if (type == 'mast') { //有默认值,显示默认值
                     if (itemName) {
                        $this.head_styledef.form.items[index].value = itemName;
                        var attr = $this.head_styledef.form.items[index].fieldId;
                        $this.head_styledef.form.model[attr] = itemName;
                     }
                     $this.head_styledef.form.items[index].dict = list;
                     var head_styledef = JSON.parse(JSON.stringify($this.head_styledef));
                     $this.head_styledef = [];
                     $this.head_styledef = head_styledef;
                     // console.log($this.head_styledef);
                  } else {
                     if (itemName) {
                        $this.detail1_styledef.form.items[index].value = itemName;
                        var attr = $this.detail1_styledef.form.items[index].fieldId;
                        $this.detail1_styledef.form.model[attr] = itemName;
                     }
                     $this.detail1_styledef.form.items[index].dict = list;
                     var detail1_styledef = JSON.parse(JSON.stringify($this.detail1_styledef));
                     $this.detail1_styledef = [];
                     $this.detail1_styledef = detail1_styledef;
                     // console.log($this.$data.detail1_styledef);
                  }
               } else {
                  uni.showModal({
                     title: "错误3.1",
                     content: success.err_msg,
                     showCancel: false,
                     confirmText: "取消"
                  });
               }
            }).catch(ex => {
               // console.log(ex);
            } else {
               uni.showModal({
                  title: "错误3",
                  content: ex.errMsg,
                  content: ret.err_msg,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         }).catch(ex => {
            // console.log(ex);
            uni.showModal({
               title: "错误3.1",
               content: ex.errMsg,
               showCancel: false,
               confirmText: "取消"
            });
         },
         });
         ontap(index,item) { //扫码功能
            // var $ele = e;
            //console.log(e.target)
            getApp().onScan((result) => {
               console.log(result.decodedata);
               item.value = result.decodedata;
               // uni.hideKeyboard();
               var $this = this;
      },
      async DictGetInfo(dict, index, type) { //Mobox3得到得到字典信息字典项列表
         this.data = [];
         var $this = this;
         var dataInfo = {
            dict_id: dict.id,
            dict_name: dict.name
         };
         // console.log(dataInfo);
         this.$store.dispatch('DictGetInfo', dataInfo).then(async (success) => {
            console.log(success);
            if (success.err_code == 0) {
               var list = [];
               var itemName = '';
               success.result.dict_item_list.forEach((item) => {
                  if (item.is_default == '1')
                     itemName = item.name;
                  list.push({
                     text: item.value,
                     value: item.name,
                  });
               });
               // if(item.value=='B61DF51DD50645CEB9D152DD77D2466A'){
               //    this.active_id = 'B61DF51DD50645CEB9D152DD77D2466A';
               //    // var target = uni.createSelectorQuery().select('#B61DF51DD50645CEB9D152DD77D2466A');
               //    uni.createSelectorQuery()
               //        .select("#tabpanel")//对应外层节点
               //        .boundingClientRect((container) => {
               //            uni.createSelectorQuery()
               //            .select("#B61DF51DD50645CEB9D152DD77D2466A")//目标节点
               //            .boundingClientRect((target) => {
               //                uni.pageScrollTo({
               //                scrollTop: target.top - container.top,//滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
               //                });
               //            })
               //            .exec();
               //        })
               //        .exec();
               // }
               console.log(item);
               if (item.oldvalue != item.value) {
                  item.oldvalue = item.value;
                  var attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //后图标点击事件
                  var onSuffixClickEvent = item.bind.onSuffixClickEvent; //后图标点击回调
                  var isflag = false;
                  if (onChangeEvent.id) { //内容变化后事件
                     $this.onChange(onChangeEvent);
               if (type == 'mast') { //有默认值,显示默认值
                  if (itemName) {
                     $this.head_styledef.form.items[index].value = itemName;
                     var attr = $this.head_styledef.form.items[index].fieldId;
                     $this.head_styledef.form.model[attr] = itemName;
                  }
                  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);
                  $this.head_styledef.form.items[index].dict = list;
                  var head_styledef = JSON.parse(JSON.stringify($this.head_styledef));
                  $this.head_styledef = [];
                  $this.head_styledef = head_styledef;
                  // console.log($this.head_styledef);
               } else {
                  if (itemName) {
                     $this.detail1_styledef.form.items[index].value = itemName;
                     var attr = $this.detail1_styledef.form.items[index].fieldId;
                     $this.detail1_styledef.form.model[attr] = itemName;
                  }
                  // if(onSuffixClickCallbackEvent.id){   //后图标点击事件
                  //   this.onSuffixClick(onSuffixClickCallbackEvent);
                  // }
                  // if(onSuffixClickEvent.id){   //后图标点击回调
                  //   this.onSuffixClickCallback(onSuffixClickEvent);
                  // }
                  $this.detail1_styledef.form.items[index].dict = list;
                  var detail1_styledef = JSON.parse(JSON.stringify($this.detail1_styledef));
                  $this.detail1_styledef = [];
                  $this.detail1_styledef = detail1_styledef;
                  // console.log($this.$data.detail1_styledef);
               }
            })
         },
         onEnterChange(item) { //回车,点击按钮,取消节点事件
            // console.log(item);
            } else {
               uni.showModal({
                  title: "错误3.1",
                  content: success.err_msg,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         }).catch(ex => {
            // console.log(ex);
            uni.showModal({
               title: "错误3",
               content: ex.errMsg,
               showCancel: false,
               confirmText: "取消"
            });
         });
      },
      ontap(index,item) { //扫码功能
         // var $ele = e;
         //console.log(e.target)
         getApp().onScan((result) => {
            console.log(result.decodedata);
            item.value = result.decodedata;
            // uni.hideKeyboard();
            var $this = this;
            // if(item.value=='B61DF51DD50645CEB9D152DD77D2466A'){
            //    this.active_id = 'B61DF51DD50645CEB9D152DD77D2466A';
            //    // var target = uni.createSelectorQuery().select('#B61DF51DD50645CEB9D152DD77D2466A');
            //    uni.createSelectorQuery()
            //        .select("#tabpanel")//对应外层节点
            //        .boundingClientRect((container) => {
            //            uni.createSelectorQuery()
            //            .select("#B61DF51DD50645CEB9D152DD77D2466A")//目标节点
            //            .boundingClientRect((target) => {
            //                uni.pageScrollTo({
            //                scrollTop: target.top - container.top,//滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
            //                });
            //            })
            //            .exec();
            //        })
            //        .exec();
            // }
            console.log(item);
            if (item.oldvalue != item.value) {
               item.oldvalue = item.value;
               var attr = item.fieldId;
@@ -825,7 +791,20 @@
               var isflag = false;
               if (onChangeEvent.id) { //内容变化后事件
                  this.onChange(onChangeEvent);
                  $this.onChange(onChangeEvent);
               }
               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);
@@ -834,887 +813,246 @@
               //   this.onSuffixClickCallback(onSuffixClickEvent);
               // }
            }
         },
         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;
               });
         })
      },
      onEnterChange(item) { //回车,点击按钮,取消节点事件
         // console.log(item);
         if (item.oldvalue != item.value) {
            item.oldvalue = item.value;
            var attr = item.fieldId;
            this.head_styledef.form.model[attr] = item.value;
            var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
            var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //后图标点击事件
            var onSuffixClickEvent = item.bind.onSuffixClickEvent; //后图标点击回调
            var isflag = false;
               detail_attr['id'] = style.form.objId;
               if (selectButton == true) { //判断选择按钮是否为true
                  if (style.SelBut_Checked == true)
                     detailAttrList.push(detail_attr);
            if (onChangeEvent.id) { //内容变化后事件
               this.onChange(onChangeEvent);
            }
            // if(onSuffixClickCallbackEvent.id){   //后图标点击事件
            //   this.onSuffixClick(onSuffixClickCallbackEvent);
            // }
            // if(onSuffixClickEvent.id){   //后图标点击回调
            //   this.onSuffixClickCallback(onSuffixClickEvent);
            // }
         }
      },
      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
                  detailAttrList.push(detail_attr);
                  detail_attr[item.fieldId] = item.value;
            });
            // 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;
                        }
            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"})
               });
         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) {
         });
         return jsonlist;
      },
      // 内容变化后事件
      async onChange(event) {
         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(head_attr).map((a) => ({
                           attr: a,
                           value: head_attr[a] || "",
                        }))
                     )
                  );
                  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: true,
                     class_id: this.$data.head_styledef.form.clsId,
                     class_name: '',
                     event_id: event.id,
                     event_name: '',
                     data_obj_id: '',
                     obj_attr: obj_attr,
                     prj_id: '',
                     ref_cls_id: '',
                     rel_obj_id: '',
                     user_login: '',
                     data_json: data_json,
                     compose_info: '',
                     ext_info: '',
                     global_attr: '',
                     input_param: input_param,
                  };
                  this.$store.dispatch('runCustomEvent', dataInfo).then(ret => {
                     // console.log(ret);
                     if (ret.err_code == 0) {
                        var result = ret.result;
                        if (result.ret != 0) {
                           var tip = result.err_info ? typeof result.err_info == 'string' ? result
                              .err_info : result.err_info.join('<br/>') : '';
                           if (result.ret == 801) uni.showModal({
                              title: '提示',
                              content: tip,
                              showCancel: false,
                              confirmText: "取消"
                           });
                           else uni.showModal({
                              title: '提示',
                              content: tip + ',提示:' + result.ret,
                              showCancel: false,
                              confirmText: "取消"
                           });
                           return false;
                        } else {
                           var tip = result.info ? typeof result.info == 'string' ? result.info :
                              result.info.join('<br/>') : '';
                           if (tip) uni.showModal({
                              title: '提示',
                              content: tip,
                              showCancel: false,
                              confirmText: "取消"
                           });
                           if (result.result_type == 0 && result.action) {
                              result.action.forEach(item => {
                                 if (item.action_type == "insert_subtable_page_row") { //码盘中
                                    $this.$data.param.Show_Welcom_Page = false;
                                    var value = item.value;
                                    $this.viewAceionRow(value);
                                 } else if (item.action_type ==
                                    "set_subtable_page_content") { //已码盘
                                    $this.$data.param.Show_Welcom_Page = false;
                                    var value = item.value;
                                    if (value.clear == true && $this.$data
                                       .detail1StyleDefList.length > 0 && value
                                       .page_name == $this.$data.param.Sub_Page[0].Name
                                       ) { //判断是否清空页签内容,正在码盘是否有数据
                                       uni.showModal({
                                          title: '提示',
                                          content: '系统检测到有正在码盘中的货品,继续操作会清空,是否继续?',
                                          success: function(res) {
                                             if (res.confirm) {
                                                $this.$data
                                                   .detail1StyleDefList = [];
                                                $this.viewAceionContent(
                                                   value);
                                             } else if (res.cancel) {
                                                $this.$data
                                                   .detail1StyleDefList = [];
                                                $this.viewAceionContent(
                                                   value);
                                             }
                                          }
                                       });
                                    } else {
                                       if (value.page_name == $this.$data.param.Sub_Page[
                                             0].Name) { //判断返回的action的page_name是否是待分拣
                                          $this.$data.detail1StyleDefList = [];
                                       } else {
                                          $this.$data.detail2StyleDefList = [];
                                       }
                                       $this.viewAceionContent(value);
                                    }
                                 } else if (item.action_type ==
                                    "select_subtable_page_row") {
                                    // value = {"page_name":"码盘中", "row":{"id":"xx"}}
                                    var value = item.value;
                                    $this.detail1StyleDefList.forEach(ele => {
                                       $this.activelist[index].active = false;
                                       if (ele.form.objId == value.row.id) {
                                          ele.SelBut_Checked = true;
                                          $this.active_id = ele.form.htmlobjId;
                                          //自动滚动到指定元素
                                          uni.createSelectorQuery()
                                             .select("#tabpanel") //对应外层节点
                                             .boundingClientRect((
                                             container) => {
                                                uni.createSelectorQuery()
                                                   .select("#tabpanel" +
                                                      ele.form.htmlobjId
                                                      ) //目标节点
                                                   .boundingClientRect((
                                                      target) => {
                                                      uni.pageScrollTo({
                                                         scrollTop: target
                                                            .top -
                                                            container
                                                            .top, //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
                                                      });
                                                   })
                                                   .exec();
                                             })
                                             .exec();
                                       }
                                    });
                                 } 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;
                                    $this.$data.head_styledef.form.items.forEach(async (
                                       ele, index) => {
                                       data.forEach(async (ele2, index) => {
                                          if (ele.fieldId == ele2
                                             .attr) {
                                             ele.value = ele2
                                                .value;
                                          }
                                       });
                                    });
                                 }
                              });
                           } else {
                              // this.detail2StyleDefList=[];
                              if (result.info) {
                                 uni.showModal({
                                    title: "错误4.3",
                                    content: result.info,
                                    showCancel: false,
                                    confirmText: "取消"
                                 });
                              }
                           }
                        }
               //获取表头属性
               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(head_attr).map((a) => ({
                        attr: a,
                        value: head_attr[a] || "",
                     }))
                  )
               );
               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: true,
                  class_id: this.$data.head_styledef.form.clsId,
                  class_name: '',
                  event_id: event.id,
                  event_name: '',
                  data_obj_id: '',
                  obj_attr: obj_attr,
                  prj_id: '',
                  ref_cls_id: '',
                  rel_obj_id: '',
                  user_login: '',
                  data_json: data_json,
                  compose_info: '',
                  ext_info: '',
                  global_attr: '',
                  input_param: input_param,
               };
               this.$store.dispatch('runCustomEvent', dataInfo).then(ret => {
                  // console.log(ret);
                  if (ret.err_code == 0) {
                     var result = ret.result;
                     if (result.ret != 0) {
                        var tip = result.err_info ? typeof result.err_info == 'string' ? result
                           .err_info : result.err_info.join('<br/>') : '';
                        if (result.ret == 801) uni.showModal({
                           title: '提示',
                           content: tip,
                           showCancel: false,
                           confirmText: "取消"
                        });
                        else uni.showModal({
                           title: '提示',
                           content: tip + ',提示:' + result.ret,
                           showCancel: false,
                           confirmText: "取消"
                        });
                        return false;
                     } else {
                        uni.showModal({
                           title: "错误4",
                           content: ret.err_msg,
                        var tip = result.info ? typeof result.info == 'string' ? result.info :
                           result.info.join('<br/>') : '';
                        if (tip) uni.showModal({
                           title: '提示',
                           content: tip,
                           showCancel: false,
                           confirmText: "取消"
                        });
                     }
                  }).catch(ex => {
                     // console.log(ex);
                     uni.showModal({
                        title: "错误4.1",
                        content: ex.errMsg,
                        showCancel: false,
                        confirmText: "取消"
                     });
                  });
               }
            } catch (ex) {
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: "错误4.2",
                  content: "执行“内容变化后”事件失败:" + tip,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         },
         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);
            if (JSON.stringify(data.row) == '{}') {
               return;
            }
            data.row.forEach(row => {
               var styleStr = JSON.stringify(this.$data.detail1_styledef);
               if (type) { //确定后脚本进入加载已分拣数据
                  styleStr = JSON.stringify(this.$data.detail2_styledef);
               } else {
                  if (data.page_name == this.$data.param.Sub_Page[1].Name) { //判断返回的action的page_name是否是已分拣
                     styleStr = JSON.stringify(this.$data.detail2_styledef); //待分拣
                  }
               }
               var detailStyle = JSON.parse(styleStr);
               detailStyle.form.objId = row.id;
               detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '').replace('{', '').replace('}',
                  '') : 'null';
               detailStyle.form.attrs = row.attrs;
               row.attrs.forEach(attr => {
                  detailStyle.form.items.forEach(ele => {
                     if (ele.name != 'Layout') {
                        if (ele.fieldId == attr.attr) ele.value = attr.value;
                     } else if (ele.name == 'Layout') {
                        ele.setting.colList.forEach(col => {
                           if (col) {
                              if (col.fieldId == attr.attr) col.value = attr
                                 .value;
                           }
                        });
                     }
                  });
               });
               if (type) { //确定后脚本进入加载已分拣数据
                  this.$data.detail2StyleDefList.push(detailStyle);
                  // console.log(this.$data.detail2StyleDefList);
               } else {
                  if (data.page_name == this.$data.param.Sub_Page[1].Name) { //判断返回的action的page_name是否是已分拣
                     this.$data.detail2StyleDefList.push(detailStyle);
                     // console.log(this.$data.detail2StyleDefList);
                  } else {
                     this.$data.detail1StyleDefList.push(detailStyle);
                     this.activelist.push({
                        active: false
                     });
                     // console.log(this.$data.detail1StyleDefList);
                  }
               }
            });
         },
         //加载已码盘内容
         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;
            }
            data.content.forEach(cont => {
               var styleStr = JSON.stringify($this.$data.detail2_styledef);
               if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是码盘中
                  styleStr = JSON.stringify($this.$data.detail1_styledef); //码盘中
               }
               var detailStyle = JSON.parse(styleStr);
               detailStyle.SelBut_Checked = data.checkbox ?? true;
               detailStyle.form.objId = cont.id;
               detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, '').replace('{', '').replace('}',
                  '') : 'null';
               detailStyle.form.attrs = cont.attrs;
               cont.attrs.forEach(attr => {
                  detailStyle.form.items.forEach(ele => {
                     if (ele.name != 'Layout') {
                        if (ele.fieldId == attr.attr) ele.value = attr.value;
                     } else if (ele.name == 'Layout') {
                        ele.setting.colList.forEach(col => {
                           if (col) {
                              if (col.fieldId == attr.attr) col.value = attr
                                 .value;
                           }
                        });
                     }
                  });
               });
               if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
                  //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
                  if (data.clear == false) {
                     var isflag = true;
                     $this.detail1StyleDefList.forEach((style, index) => {
                        if (style.form.objId == detailStyle.form.objId) {
                           cont.attrs.forEach(attr => {
                              style.form.items.forEach(ele => {
                                 if (ele.name != 'Layout') {
                                    if (ele.fieldId == attr.attr) ele.value =
                                       attr.value;
                                 } else if (ele.name == 'Layout') {
                                    ele.setting.colList.forEach(col => {
                                       if (col) {
                                          if (col.fieldId == attr
                                             .attr) col.value = attr
                                             .value;
                                       }
                                    });
                                 }
                              });
                           });
                           isflag = false;
                        }
                     });
                     if (isflag) $this.detail1StyleDefList.push(detailStyle); //待分拣
                  } else {
                     $this.detail1StyleDefList.push(detailStyle); //待分拣
                  }
                  $this.activelist.push({
                     active: false
                  });
                  // console.log($this.$data.detail1StyleDefList);
               } else {
                  if (data.clear == false) {
                     //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
                     var isflag = true;
                     $this.detail2StyleDefList.forEach((style, index) => {
                        if (style.form.objId == detailStyle.form.objId) {
                           cont.attrs.forEach(attr => {
                              style.form.items.forEach(ele => {
                                 if (ele.name != 'Layout') {
                                    if (ele.fieldId == attr.attr) ele.value =
                                       attr.value;
                                 } else if (ele.name == 'Layout') {
                                    ele.setting.colList.forEach(col => {
                                       if (col) {
                                          if (col.fieldId == attr
                                             .attr) col.value = attr
                                             .value;
                                       }
                                    });
                                 }
                              });
                           });
                           isflag = false;
                        }
                     });
                     if (isflag) $this.detail2StyleDefList.push(detailStyle); //已分拣
                  } else {
                     $this.detail2StyleDefList.push(detailStyle); //已分拣
                  }
                  // console.log($this.$data.detail2StyleDefList);
               }
            });
         },
         onClickItem(e) { //选择页签
            // console.log(e);
            this.current = e.currentIndex
         },
         onDetail1EnterChange(item) { //码盘中样式回车事件
            console.log(item);
         },
         delItem(index) { //删除码盘中样式面板
            this.detail1StyleDefList.splice(index, 1);
         },
         delDataObj(style, index) { //删除已码盘数
            // console.log(style);
            var $this = this;
            uni.showModal({
               title: '提示',
               content: '确定删除该已码盘数据!',
               success: function(res) {
                  if (res.confirm) {
                     var objID = style.form.objId;
                     if (!style.form.objId.includes('{')) objID = '{' + style.form.objId + '}';
                     var dataInfo = {
                        class_id: style.form.clsId,
                        class_name: '',
                        obj_id: objID
                     };
                     // console.log(dataInfo);
                     $this.$store.dispatch('dataObjDel', dataInfo).then(ret => {
                        // console.log(ret);
                        if (ret.err_code == 0) {
                           $this.detail2StyleDefList.splice(index, 1);
                           uni.showModal({
                              title: "提示",
                              content: "删除成功!",
                              showCancel: false,
                              confirmText: "取消"
                           });
                        } else {
                           uni.showModal({
                              title: "错误5",
                              content: ret.err_msg,
                              showCancel: false,
                              confirmText: "取消"
                           });
                        }
                     }).catch(ex => {
                        // console.log(ex);
                        uni.showModal({
                           title: "错误5.1",
                           content: ex.errMsg,
                           showCancel: false,
                           confirmText: "取消"
                        });
                     });
                  } else if (res.cancel) {
                  }
               }
            });
         },
         onPanelClick(value) {
            // console.log(value);
            this.active_id = '';
            this.activelist.forEach(ele => {
               ele.active = false;
            });
            this.activelist[value].active = true;
            // console.log(this.$data.activelist);
         },
         //确定
         ok() {
            this.Before_OK_Event = this.param.Sub_Page[0].Before_ok;
            this.After_OK_Event = this.param.Sub_Page[0].After_ok;
            // console.log(this.Before_OK_Event);
            // console.log(this.After_OK_Event);
            if (this.$data.Before_OK_Event.ID) //是否有确定前事件
               this.sava(this.$data.Before_OK_Event);
            else if (this.$data.After_OK_Event.ID) //是否有确定后事件
               this.sava(this.$data.After_OK_Event);
         },
         sava(event) {
            var $this = this;
            if (this.$data.detail1StyleDefList.length == 0) {
               uni.showModal({
                  title: "提示",
                  content: "没有正在码盘的数据!",
                  showCancel: false,
                  confirmText: "取消"
               });
               return false;
            }
            //获取表头属性
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               head_attr[item.fieldId] = item.value;
            });
            // console.log(head_attr);
            //获取正在码盘属性
            var detailAttrList = [];
            this.$data.detail1StyleDefList.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 ($this.param.Sub_Page[0].Select_Button == true) { //判断选择按钮是否为true
                  if (style.SelBut_Checked == true)
                     detailAttrList.push(detail_attr);
               } else
                  detailAttrList.push(detail_attr);
            });
            // console.log(detailAttrList);
            //获取正在码盘里没有显示的字段
            this.$data.detail1StyleDefList.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;
                        }
                     }
                  }
               });
            });
            // console.log(detailAttrList);
            //    return;
            var input_param = Base64.encode(
               JSON.stringify(
                  Object.keys(head_attr).map((a) => ({
                     attr: a,
                     value: head_attr[a] || "",
                  }))
               )
            );
            var jsonlist = [];
            detailAttrList.forEach(attr => {
               jsonlist.push({
                  id: '',
                  attrs: Object.keys(attr).map((a) => ({
                     attr: a,
                     value: attr[a] || "",
                  }))
               });
            });
            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)=>{
            //    await $this.runCustomEvent(event,input_param,json,'1');
            // });
         },
         ok2() {
            this.Before_OK_Event = this.param.Sub_Page[1].Before_ok;
            this.After_OK_Event = this.param.Sub_Page[1].After_ok;
            // console.log(this.Before_OK_Event);
            // console.log(this.After_OK_Event);
            if (this.$data.Before_OK_Event.ID) //是否有确定前事件
               this.sava2(this.$data.Before_OK_Event);
            else if (this.$data.After_OK_Event.ID) //是否有确定后事件
               this.sava2(this.$data.After_OK_Event);
         },
         sava2(event) {
            var $this = this;
            if (this.$data.detail2StyleDefList.length == 0) {
               uni.showModal({
                  title: "提示",
                  content: "没有已码盘的数据!",
                  showCancel: false,
                  confirmText: "取消"
               });
               return false;
            }
            //获取表头属性
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               head_attr[item.fieldId] = item.value;
            });
            // console.log(head_attr);
            //获取正在码盘属性
            var detailAttrList = [];
            this.$data.detail2StyleDefList.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 ($this.param.Sub_Page[1].Select_Button == true) { //判断选择按钮是否为true
                  if (style.SelBut_Checked == true)
                     detailAttrList.push(detail_attr);
               } else
                  detailAttrList.push(detail_attr);
            });
            // console.log(detailAttrList);
            //获取正在码盘里没有显示的字段
            this.$data.detail2StyleDefList.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;
                        }
                     }
                  }
               });
            });
            // console.log(detailAttrList);
            //    return;
            var input_param = Base64.encode(
               JSON.stringify(
                  Object.keys(head_attr).map((a) => ({
                     attr: a,
                     value: head_attr[a] || "",
                  }))
               )
            );
            var jsonlist = [];
            detailAttrList.forEach(attr => {
               jsonlist.push({
                  id: '',
                  attrs: Object.keys(attr).map((a) => ({
                     attr: a,
                     value: attr[a] || "",
                  }))
               });
            });
            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, list, '2');
            // jsonlist.forEach(async (json,key)=>{
            //    await $this.runCustomEvent(event,input_param,json,'2');
            // });
         },
         //执行确定脚本
         async runCustomEvent(event, input_param, json, type) {
            var $this = this;
            var data_json = Base64.encode(
               JSON.stringify(json)
            );
            var dataInfo = {
               ed_type: 0,
               start_transaction: true,
               class_id: this.$data.ClsID,
               class_name: '',
               event_id: event.ID,
               event_name: '',
               data_obj_id: '',
               obj_attr: '',
               prj_id: '',
               ref_cls_id: '',
               rel_obj_id: '',
               user_login: '',
               data_json: data_json,
               compose_info: '',
               ext_info: '',
               global_attr: '',
               input_param: input_param,
            };
            // console.log(dataInfo);
            this.$store.dispatch('runCustomEvent', dataInfo).then(res => {
               console.log(res);
               if (res.err_code == 0) {
                  var result = res.result;
                  if (result.ret != 0) {
                     var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                        result.err_info.join('<br/>') : '';
                     if (result.ret == 801) uni.showModal({
                        title: '提示',
                        content: tip,
                        showCancel: false,
                        confirmText: "取消"
                     });
                     else uni.showModal({
                        title: '提示',
                        content: tip + ',提示:' + result.ret,
                        showCancel: false,
                        confirmText: "取消"
                     });
                     return false;
                  } else {
                     var tip = result.info ? typeof result.info == 'string' ? result.info : result.info
                        .join('<br/>') : '';
                     if (tip) uni.showModal({
                        title: '提示',
                        content: tip,
                        showCancel: false,
                        confirmText: "取消"
                     });
                     if (result.result_type == 0) {
                        if (result.action) {
                        if (result.result_type == 0 && result.action) {
                           result.action.forEach(item => {
                              if (item.action_type == "insert_subtable_page_row") { //码盘中
                                 $this.$data.param.Show_Welcom_Page = false;
                                 var value = item.value;
                                 //加载已经码盘数据
                                 $this.viewAceionRow(value, 'add');
                                 //清空条码内容
                                 $this.$data.head_styledef.form.items.forEach((item,
                                    index) => {
                                       if (item.fieldId != "S_CNTR_CODE") {
                                          item.value = '';
                                          item.oldvalue = '';
                                          $this.$data.head_styledef.form.model[item
                                             .fieldId] = '';
                                 $this.viewAceionRow(value);
                              } else if (item.action_type ==
                                 "set_subtable_page_content") { //已码盘
                                 $this.$data.param.Show_Welcom_Page = false;
                                 var value = item.value;
                                 if (value.clear == true && $this.$data
                                    .detail1StyleDefList.length > 0 && value
                                    .page_name == $this.$data.param.Sub_Page[0].Name
                                    ) { //判断是否清空页签内容,正在码盘是否有数据
                                    uni.showModal({
                                       title: '提示',
                                       content: '系统检测到有正在码盘中的货品,继续操作会清空,是否继续?',
                                       success: function(res) {
                                          if (res.confirm) {
                                             $this.$data
                                                .detail1StyleDefList = [];
                                             $this.viewAceionContent(
                                                value);
                                          } else if (res.cancel) {
                                             $this.$data
                                                .detail1StyleDefList = [];
                                             $this.viewAceionContent(
                                                value);
                                          }
                                       }
                                    });
                                 //清除正在码盘中成功的数据
                                 // $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 (value.page_name == $this.$data.param.Sub_Page[
                                          0].Name) { //判断返回的action的page_name是否是待分拣
                                       $this.$data.detail1StyleDefList = [];
                                    } else {
                                       $this.$data.detail2StyleDefList = [];
                                    }
                                    $this.viewAceionContent(value);
                                 }
                              } else if (item.action_type ==
                                 "select_subtable_page_row") {
                                 // value = {"page_name":"码盘中", "row":{"id":"xx"}}
                                 var value = item.value;
                                 $this.detail1StyleDefList.forEach(ele => {
                                    $this.activelist[index].active = false;
                                    if (ele.form.objId == value.row.id) {
                                       ele.SelBut_Checked = true;
                                       $this.active_id = ele.form.htmlobjId;
                                       //自动滚动到指定元素
                                       uni.createSelectorQuery()
                                          .select("#tabpanel") //对应外层节点
                                          .boundingClientRect((
                                          container) => {
                                             uni.createSelectorQuery()
                                                .select("#tabpanel" +
                                                   ele.form.htmlobjId
                                                   ) //目标节点
                                                .boundingClientRect((
                                                   target) => {
                                                   uni.pageScrollTo({
                                                      scrollTop: target
                                                         .top -
                                                         container
                                                         .top, //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
                                                   });
                                                })
                                                .exec();
                                          })
                                          .exec();
                                    }
                                 });
                                 //  } else if(item.action_type == "refresh"){  //刷新
                                 //    var value = item.value;
                                 // //刷新当前页面
                                 // // location.reload();
                                 // uni.redirectTo({
                                 //    url:'../modal/5600?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title
                                 // });
                                 //  } else if(item.action_type == "prompt"){  //打开系统提示弹框
                                 //    var value = '';
                                 // item.value.forEach(ele=>{
                                 //    if(value) value+='\n';
                                 //    value+=ele;
                                 // });
                                 // uni.showModal({title:"系统提示",content:value,showCancel:false,confirmText:"关闭"});
                              }
                              else if (item.action_type == "set_subtable_page_row") {
                              }  else if(item.action_type == "remove_subtable_page_row"){  //清除面板中指定id的数据
                                 var value = item.value;
                                 if(value.page_name == $this.param.Sub_Page[0].Name){ //判断返回的action的page_name是否是待分拣
                                    //清除面板中指定id的数据
                                    value.row.forEach(row=>{
                                       $this.$data.detail1StyleDefList.forEach((ele,index)=>{
                                          if(ele.form.objId == row.id){
                                            $this.$data.detail1StyleDefList.splice(index,1);
                                          }
                                       });
                                    });
                                 }
                              }
                              else if (item.action_type == "set_subtable_page_row") {
                                 $this.viewActionSetRow( item.value)
                                 
                              } else if (item.action_type == "set_subtable_page_ext_data") {
@@ -1738,52 +1076,901 @@
                                    $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 (
                                    ele, index) => {
                                    data.forEach(async (ele2, index) => {
                                       if (ele.fieldId == ele2
                                          .attr) {
                                          ele.value = ele2
                                             .value;
                                       }
                                    });
                                 });
                              }
                           });
                        } else {
                           if ($this.$data.After_OK_Event.ID != event.ID) { //判断当前事件是否是确定后事件
                              if (type == '1') {
                                 $this.sava($this.$data.After_OK_Event); //执行确定后事件
                              } else {
                                 $this.sava2($this.$data.After_OK_Event); //执行确定后事件
                              }
                           // this.detail2StyleDefList=[];
                           if (result.info) {
                              uni.showModal({
                                 title: "错误4.3",
                                 content: result.info,
                                 showCancel: false,
                                 confirmText: "取消"
                              });
                           }
                        }
                     } else {
                        // $this.$data.detail2StyleDefList=[];
                        if (result.info) {
                           uni.showModal({
                              title: "提示",
                              content: result.info,
                              showCancel: false,
                              confirmText: "取消"
                           });
                        }
                     }
                  } else {
                     uni.showModal({
                        title: "错误4",
                        content: ret.err_msg,
                        showCancel: false,
                        confirmText: "取消"
                     });
                  }
               } else {
               }).catch(ex => {
                  // console.log(ex);
                  uni.showModal({
                     title: "错误8",
                     content: res.err_msg,
                     title: "错误4.1",
                     content: ex.errMsg,
                     showCancel: false,
                     confirmText: "取消"
                  });
               });
            }
         } catch (ex) {
            var tip = typeof ex == "string" ? ex : ex.message;
            uni.showModal({
               title: "错误4.2",
               content: "执行“内容变化后”事件失败:" + tip,
               showCancel: false,
               confirmText: "取消"
            });
         }
      },
      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)
                             }
                           }
                          })
                        }
                     });
                  });
               }
            }).catch(ex => {
               var tip = typeof ex == "string" ? ex : ex.errMsg;
            })
         });
         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);
         if (JSON.stringify(data.row) == '{}') {
            return;
         }
         data.row.forEach(row => {
            var styleStr = JSON.stringify(this.$data.detail1_styledef);
            if (type) { //确定后脚本进入加载已分拣数据
               styleStr = JSON.stringify(this.$data.detail2_styledef);
            } else {
               if (data.page_name == this.$data.param.Sub_Page[1].Name) { //判断返回的action的page_name是否是已分拣
                  styleStr = JSON.stringify(this.$data.detail2_styledef); //待分拣
               }
            }
            var detailStyle = JSON.parse(styleStr);
            detailStyle.form.objId = row.id;
            detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '').replace('{', '').replace('}',
               '') : 'null';
            detailStyle.form.attrs = row.attrs;
            row.attrs.forEach(attr => {
               detailStyle.form.items.forEach(ele => {
                  if (ele.name != 'Layout') {
                     if (ele.fieldId == attr.attr) ele.value = attr.value;
                  } else if (ele.name == 'Layout') {
                     ele.setting.colList.forEach(col => {
                        if (col) {
                           if (col.fieldId == attr.attr) col.value = attr
                              .value;
                        }
                     });
                  }
               });
            });
            if (type) { //确定后脚本进入加载已分拣数据
               this.$data.detail2StyleDefList.push(detailStyle);
               // console.log(this.$data.detail2StyleDefList);
            } else {
               if (data.page_name == this.$data.param.Sub_Page[1].Name) { //判断返回的action的page_name是否是已分拣
                  this.$data.detail2StyleDefList.push(detailStyle);
                  // console.log(this.$data.detail2StyleDefList);
               } else {
                  this.$data.detail1StyleDefList.push(detailStyle);
                  this.activelist.push({
                     active: false
                  });
                  // console.log(this.$data.detail1StyleDefList);
               }
            }
         });
      },
      //加载已码盘内容
      viewAceionContent(data) {
         var $this = this;
         if (data.page_name == $this.param.Sub_Page[0].Name) {
            $this.detail1ExtData = data.ext_data ||{}
         }
         else if (data.page_name == $this.param.Sub_Page[1].Name) {
            $this.detail2ExtData = data.ext_data||{}
         }
         if (JSON.stringify(data.content) == '{}') {
            return;
         }
         data.content.forEach(cont => {
            var styleStr = JSON.stringify($this.$data.detail2_styledef);
            if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是码盘中
               styleStr = JSON.stringify($this.$data.detail1_styledef); //码盘中
            }
            var detailStyle = JSON.parse(styleStr);
            detailStyle.SelBut_Checked = data.checkbox ?? true;
            detailStyle.form.objId = cont.id;
            detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g, '').replace('{', '').replace('}',
               '') : 'null';
            detailStyle.form.attrs = cont.attrs;
            cont.attrs.forEach(attr => {
               detailStyle.form.items.forEach(ele => {
                  if (ele.name != 'Layout') {
                     if (ele.fieldId == attr.attr) ele.value = attr.value;
                  } else if (ele.name == 'Layout') {
                     ele.setting.colList.forEach(col => {
                        if (col) {
                           if (col.fieldId == attr.attr) col.value = attr
                              .value;
                        }
                     });
                  }
               });
            });
            if (data.page_name == $this.$data.param.Sub_Page[0].Name) { //判断返回的action的page_name是否是待分拣
               //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
               if (data.clear == false) {
                  var isflag = true;
                  $this.detail1StyleDefList.forEach((style, index) => {
                     if (style.form.objId == detailStyle.form.objId) {
                        cont.attrs.forEach(attr => {
                           style.form.items.forEach(ele => {
                              if (ele.name != 'Layout') {
                                 if (ele.fieldId == attr.attr) ele.value =
                                    attr.value;
                              } else if (ele.name == 'Layout') {
                                 ele.setting.colList.forEach(col => {
                                    if (col) {
                                       if (col.fieldId == attr
                                          .attr) col.value = attr
                                          .value;
                                    }
                                 });
                              }
                           });
                        });
                        isflag = false;
                     }
                  });
                  if (isflag) $this.detail1StyleDefList.push(detailStyle); //待分拣
               } else {
                  $this.detail1StyleDefList.push(detailStyle); //待分拣
               }
               $this.activelist.push({
                  active: false
               });
               // console.log($this.$data.detail1StyleDefList);
            } else {
               if (data.clear == false) {
                  //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
                  var isflag = true;
                  $this.detail2StyleDefList.forEach((style, index) => {
                     if (style.form.objId == detailStyle.form.objId) {
                        cont.attrs.forEach(attr => {
                           style.form.items.forEach(ele => {
                              if (ele.name != 'Layout') {
                                 if (ele.fieldId == attr.attr) ele.value =
                                    attr.value;
                              } else if (ele.name == 'Layout') {
                                 ele.setting.colList.forEach(col => {
                                    if (col) {
                                       if (col.fieldId == attr
                                          .attr) col.value = attr
                                          .value;
                                    }
                                 });
                              }
                           });
                        });
                        isflag = false;
                     }
                  });
                  if (isflag) $this.detail2StyleDefList.push(detailStyle); //已分拣
               } else {
                  $this.detail2StyleDefList.push(detailStyle); //已分拣
               }
               // console.log($this.$data.detail2StyleDefList);
            }
         });
      },
      onClickItem(e) { //选择页签
         // console.log(e);
         this.current = e.currentIndex
      },
      onDetail1EnterChange(item) { //码盘中样式回车事件
         console.log(item);
      },
      delItem(index) { //删除码盘中样式面板
         //删除码盘中样式面板
        this.Before_Del_Event = this.param.Sub_Page[0].Before_Delete;
        this.After_Del_Event = this.param.Sub_Page[0].After_Delete;
        const style = this.detail1StyleDefList[index];
        //删除码盘中样式面板
        this.detail1StyleDefList.splice(index, 1);
        if (this.Before_Del_Event?.ID)
         //是否有删除前事件
         this.del(style, this.Before_Del_Event);
        else if (this.After_Del_Event?.ID)
         //是否有删除后事件
         this.del(style, this.After_Del_Event);
      },
      delDataObj(style, index) { //删除已码盘数
         // console.log(style);
         $this.Before_Del_Event = $this.param.Sub_Page[0].Before_Delete;
         $this.After_Del_Event = $this.param.Sub_Page[0].After_Delete;
         var $this = this;
         uni.showModal({
            title: '提示',
            content: '确定删除该已码盘数据!',
            success: function(res) {
               if (res.confirm) {
                  var objID = style.form.objId;
                  if (!style.form.objId.includes('{')) objID = '{' + style.form.objId + '}';
                  var dataInfo = {
                     class_id: style.form.clsId,
                     class_name: '',
                     obj_id: objID
                  };
                  // console.log(dataInfo);
                  $this.$store.dispatch('dataObjDel', dataInfo).then(ret => {
                     // console.log(ret);
                     if (ret.err_code == 0) {
                     const style = $this.detail2StyleDefList[index];
                     $this.detail2StyleDefList.splice(index, 1);
                     if ($this.Before_Del_Event?.ID)
                     //是否有删除前事件
                        $this.del2(style, $this.Before_Del_Event);
                     else if ($this.After_Del_Event?.ID)
                     //是否有删除后事件
                        $this.del2(style, $this.After_Del_Event);
                        uni.showModal({
                           title: "提示",
                           content: "删除成功!",
                           showCancel: false,
                           confirmText: "取消"
                        });
                     } else {
                        uni.showModal({
                           title: "错误5",
                           content: ret.err_msg,
                           showCancel: false,
                           confirmText: "取消"
                        });
                     }
                  }).catch(ex => {
                     // console.log(ex);
                     uni.showModal({
                        title: "错误5.1",
                        content: ex.errMsg,
                        showCancel: false,
                        confirmText: "取消"
                     });
                  });
               } else if (res.cancel) {
               }
            }
         });
      },
      async del(style, event) {
     //获取表头属性
         var head_attr = {};
         this.$data.head_styledef.form.items.forEach(item => {
           head_attr[item.fieldId] = item.value;
         });
         // console.log(head_attr);
         //获取正在分拣属性
        var detailAttrList = [];
        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($this.param.Sub_Page[0].Select_Button==true){ //判断选择按钮是否为true
         if(style.SelBut_Checked==true)
           detailAttrList.push(detail_attr);
        } else
         detailAttrList.push(detail_attr);
         // console.log(detailAttrList);
         //获取正在分拣里没有显示的字段
        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;
            }
           }
         }
        });
         var input_param = Base64.encode(
            JSON.stringify(
              Object.keys(head_attr).map((a) => ({
               attr: a,
               value: head_attr[a] || "",
              }))
            )
         );
          var 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"})
            });
         });
         // console.log(jsonlist);
         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');
      },
      async del2(style, event) {
          //获取表头属性
         var head_attr = {};
         this.$data.head_styledef.form.items.forEach(item => {
           head_attr[item.fieldId] = item.value;
         });
         // console.log(head_attr);
         //获取已分拣属性
         var detailAttrList = [];
         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($this.param.Sub_Page[1].Select_Button==true){ //判断选择按钮是否为true
            if(style.SelBut_Checked==true)
               detailAttrList.push(detail_attr);
         } else
            detailAttrList.push(detail_attr);
         //获取已分拣里没有显示的字段
         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;
               }
              }
            }
         });
         // console.log(detailAttrList);
    //    return;
         var input_param = Base64.encode(
            JSON.stringify(
              Object.keys(head_attr).map((a) => ({
               attr: a,
               value: head_attr[a] || "",
              }))
            )
         );
         var 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"})
            });
         });
         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,list,'2');
      },
      onPanelClick(value) {
         // console.log(value);
         this.active_id = '';
         this.activelist.forEach(ele => {
            ele.active = false;
         });
         this.activelist[value].active = true;
         // console.log(this.$data.activelist);
      },
      //确定
      ok() {
         this.Before_OK_Event = this.param.Sub_Page[0].Before_ok;
         this.After_OK_Event = this.param.Sub_Page[0].After_ok;
         // console.log(this.Before_OK_Event);
         // console.log(this.After_OK_Event);
         if (this.$data.Before_OK_Event.ID) //是否有确定前事件
            this.sava(this.$data.Before_OK_Event);
         else if (this.$data.After_OK_Event.ID) //是否有确定后事件
            this.sava(this.$data.After_OK_Event);
      },
      sava(event) {
         var $this = this;
         if (this.$data.detail1StyleDefList.length == 0) {
            uni.showModal({
               title: "提示",
               content: "没有正在码盘的数据!",
               showCancel: false,
               confirmText: "取消"
            });
            return false;
         }
         //获取表头属性
         var head_attr = {};
         this.$data.head_styledef.form.items.forEach(item => {
            head_attr[item.fieldId] = item.value;
         });
         // console.log(head_attr);
         //获取正在码盘属性
         var detailAttrList = [];
         this.$data.detail1StyleDefList.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 ($this.param.Sub_Page[0].Select_Button == true) { //判断选择按钮是否为true
               if (style.SelBut_Checked == true)
                  detailAttrList.push(detail_attr);
            } else
               detailAttrList.push(detail_attr);
         });
         // console.log(detailAttrList);
         //获取正在码盘里没有显示的字段
         this.$data.detail1StyleDefList.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;
                     }
                  }
               }
            });
         });
         // console.log(detailAttrList);
         //    return;
         var input_param = Base64.encode(
            JSON.stringify(
               Object.keys(head_attr).map((a) => ({
                  attr: a,
                  value: head_attr[a] || "",
               }))
            )
         );
         var jsonlist = [];
         detailAttrList.forEach(attr => {
            jsonlist.push({
                id:attr["id"]|| "",
               attrs: Object.keys(attr).map((a) => ({
                  attr: a,
                  value: attr[a] || "",
               }))
            });
         });
         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, list, '1');
         // jsonlist.forEach(async (json,key)=>{
         //    await $this.runCustomEvent(event,input_param,json,'1');
         // });
      },
      ok2() {
         this.Before_OK_Event = this.param.Sub_Page[1].Before_ok;
         this.After_OK_Event = this.param.Sub_Page[1].After_ok;
         // console.log(this.Before_OK_Event);
         // console.log(this.After_OK_Event);
         if (this.$data.Before_OK_Event.ID) //是否有确定前事件
            this.sava2(this.$data.Before_OK_Event);
         else if (this.$data.After_OK_Event.ID) //是否有确定后事件
            this.sava2(this.$data.After_OK_Event);
      },
      sava2(event) {
         var $this = this;
         if (this.$data.detail2StyleDefList.length == 0) {
            uni.showModal({
               title: "提示",
               content: "没有已码盘的数据!",
               showCancel: false,
               confirmText: "取消"
            });
            return false;
         }
         //获取表头属性
         var head_attr = {};
         this.$data.head_styledef.form.items.forEach(item => {
            head_attr[item.fieldId] = item.value;
         });
         // console.log(head_attr);
         //获取正在码盘属性
         var detailAttrList = [];
         this.$data.detail2StyleDefList.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 ($this.param.Sub_Page[1].Select_Button == true) { //判断选择按钮是否为true
               if (style.SelBut_Checked == true)
                  detailAttrList.push(detail_attr);
            } else
               detailAttrList.push(detail_attr);
         });
         // console.log(detailAttrList);
         //获取正在码盘里没有显示的字段
         this.$data.detail2StyleDefList.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;
                     }
                  }
               }
            });
         });
         // console.log(detailAttrList);
         //    return;
         var input_param = Base64.encode(
            JSON.stringify(
               Object.keys(head_attr).map((a) => ({
                  attr: a,
                  value: head_attr[a] || "",
               }))
            )
         );
         var jsonlist = [];
         detailAttrList.forEach(attr => {
            jsonlist.push({
                id:attr["id"]|| "",
               attrs: Object.keys(attr).map((a) => ({
                  attr: a,
                  value: attr[a] || "",
               }))
            });
         });
         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, list, '2');
         // jsonlist.forEach(async (json,key)=>{
         //    await $this.runCustomEvent(event,input_param,json,'2');
         // });
      },
      //执行确定脚本
      async runCustomEvent(event, input_param, json, type) {
         var $this = this;
         var data_json = Base64.encode(
            JSON.stringify(json)
         );
         var dataInfo = {
            ed_type: 0,
            start_transaction: true,
            class_id: this.$data.ClsID,
            class_name: '',
            event_id: event.ID,
            event_name: '',
            data_obj_id: '',
            obj_attr: '',
            prj_id: '',
            ref_cls_id: '',
            rel_obj_id: '',
            user_login: '',
            data_json: data_json,
            compose_info: '',
            ext_info: '',
            global_attr: '',
            input_param: input_param,
         };
         // console.log(dataInfo);
         this.$store.dispatch('runCustomEvent', dataInfo).then(res => {
            console.log(res);
            if (res.err_code == 0) {
               var result = res.result;
               if (result.ret != 0) {
                  var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                     result.err_info.join('<br/>') : '';
                  if (result.ret == 801) uni.showModal({
                     title: '提示',
                     content: tip,
                     showCancel: false,
                     confirmText: "取消"
                  });
                  else uni.showModal({
                     title: '提示',
                     content: tip + ',提示:' + result.ret,
                     showCancel: false,
                     confirmText: "取消"
                  });
                  return false;
               } else {
                  var tip = result.info ? typeof result.info == 'string' ? result.info : result.info
                     .join('<br/>') : '';
                  if (tip) uni.showModal({
                     title: '提示',
                     content: tip,
                     showCancel: false,
                     confirmText: "取消"
                  });
                  if (result.result_type == 0) {
                     if (result.action) {
                     //   uni.showModal({title:"提示",content:JSON.stringify(result.action),showCancel:false,confirmText:"取消"});
                        result.action.forEach(item => {
                           if (item.action_type == "insert_subtable_page_row") { //码盘中
                              var value = item.value;
                              //加载已经码盘数据
                              $this.viewAceionRow(value, 'add');
                              //清空条码内容
                              $this.$data.head_styledef.form.items.forEach((item,
                                 index) => {
                                    if (item.fieldId != "S_CNTR_CODE") {
                                       item.value = '';
                                       item.oldvalue = '';
                                       $this.$data.head_styledef.form.model[item
                                          .fieldId] = '';
                                    }
                                 });
                              //清除正在码盘中成功的数据
                              // $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 == "refresh"){  //刷新
                              //    var value = item.value;
                              // //刷新当前页面
                              // // location.reload();
                              // uni.redirectTo({
                              //    url:'../modal/5600?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title
                              // });
                              //  } else if(item.action_type == "prompt"){  //打开系统提示弹框
                              //    var value = '';
                              // item.value.forEach(ele=>{
                              //    if(value) value+='\n';
                              //    value+=ele;
                              // });
                              // uni.showModal({title:"系统提示",content:value,showCancel:false,confirmText:"关闭"});
                           }
                           else if(item.action_type == "remove_subtable_page_row"){  //清除面板中指定id的数据
                              var value = item.value;
                              if(value.page_name == $this.param.Sub_Page[0].Name){ //判断返回的action的page_name是否是待分拣
                                 //清除面板中指定id的数据
                                 value.row.forEach(row=>{
                                    $this.$data.detail1StyleDefList.forEach((ele,index)=>{
                                       if(ele.form.objId == row.id){
                                         $this.$data.detail1StyleDefList.splice(index,1);
                                       }
                                    });
                                 });
                              }
                           }
                           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) { //判断当前事件是否是确定后事件
                           if (type == '1') {
                              $this.sava($this.$data.After_OK_Event); //执行确定后事件
                           } else {
                              $this.sava2($this.$data.After_OK_Event); //执行确定后事件
                           }
                        }
                     }
                  } else {
                     // $this.$data.detail2StyleDefList=[];
                     if (result.info) {
                        uni.showModal({
                           title: "提示",
                           content: result.info,
                           showCancel: false,
                           confirmText: "取消"
                        });
                     }
                  }
               }
            } else {
               uni.showModal({
                  title: "错误8.1",
                  content: "执行“确定后”事件失败:" + tip,
                  title: "错误8",
                  content: res.err_msg,
                  showCancel: false,
                  confirmText: "取消"
               });
            }
         }).catch(ex => {
            var tip = typeof ex == "string" ? ex : ex.errMsg;
            uni.showModal({
               title: "错误8.1",
               content: "执行“确定后”事件失败:" + tip,
               showCancel: false,
               confirmText: "取消"
            });
         },
         cancel(e) { //取消
            uni.navigateBack({
               delta: 1 //返回层数,2则上上页
            });
         },
         });
      },
   };
      cancel(e) { //取消
         uni.navigateBack({
            delta: 1 //返回层数,2则上上页
         });
      },
   },
};
</script>