cuiqian2004
2024-10-29 57fea2193ac207e2ecc6327fa76ad1c21b7cda16
pages/modal/5601.vue
@@ -1,7 +1,6 @@
<template>
   <view class="uni-page-modal-5601">
      <!-- 表头样式 -->
      <uni-forms ref="baseForm" label-align="right">
         <view v-for="(item,index) in head_styledef.form.items" :key="index" class="v-head-style">
            <!-- 普通布局 -->
@@ -17,8 +16,7 @@
                     :style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}"
                     :type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled"
                     :placeholder="item.placeholder" :focus="focusFieldId == item.fieldId" @focus="ontap(item)"
                     @click="onClick(item)" @keyup.enter="onEnterChange(item)"
                     @blur="onEnterChange(item)" />
                     @click="onClick(item)" @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"  :maxlength="-1"/>
                  <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
                     @click="onEnterChange(item)"></text>
               </view>
@@ -26,7 +24,7 @@
            <!-- 栅格布局 -->
            <uni-row v-else :gutter="item.setting.gutter">
               <uni-col
                  :span=" item.setting.spanList && item.setting.spanList[key - 1]? item.setting.spanList[key - 1] : 24 / item.setting.col"
                  :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
                  v-for="(col,key) in item.setting.colList">
                  <uni-forms-item :label="col.label +':'" :label-width="col.labelWidth+'px'">
                     <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''"
@@ -39,9 +37,8 @@
                           :style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}"
                           :type="col.name=='Input'?'text':'number'" v-model="col.value"
                           :disabled="col.disabled" :placeholder="col.placeholder"
                           :focus="focusFieldId == col.fieldId" @focus="ontap(col)"
                           @click="onClick(col)" @keyup.enter="onEnterChange(col)"
                           @blur="onEnterChange(col)" />
                           :focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)"
                           @keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)"  :maxlength="-1"/>
                        <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
                           @click="onEnterChange(col)"></text>
                     </view>
@@ -68,9 +65,10 @@
                           src="../../images/mobox_log_200x40.png">
                        </image>
                        <checkbox-group @change="checkboxChange">
                           <div class="dv-panel" v-for="(style,ii) in pageData.DefList" @tap="onPanelClick(ii)"
                           <div class="dv-panel" v-for="(style,ii) in pageData.DefList"
                              @tap="onPanelClick(ii,style.form.htmlobjId)"
                              :id="'dvpanel'+style.form.htmlobjId"
                              :class="style.form.htmlobjId==active_id?'bk-active':activelist[ii].active==true?'bk-active':''">
                              :class="style.form.htmlobjId==active_id?'bk-active':''">
                              <div class="dv-panel-input">
                                 <div class="dv-input" v-for="(item,index) in style.form.items">
                                    <!-- 普通布局 -->
@@ -82,12 +80,12 @@
                                       <input class="uni-input" v-if="!item.disabled"
                                          :type="item.name=='InputNumber'?'number':'text'"
                                          v-model="item.value" :disabled="item.disabled"
                                          :placeholder="item.placeholder" />
                                          :placeholder="item.placeholder"  :maxlength="-1"/>
                                    </view>
                                    <!-- 栅格布局 -->
                                    <uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter">
                                       <uni-col
                                          :span=" item.setting.spanList && item.setting.spanList[key - 1]? item.setting.spanList[key - 1] : 24 / item.setting.col"
                                          :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
                                          v-for="(cols,key) in item.setting.colList">
                                          <view v-if="cols!=null">
                                             <text class="txt_title"
@@ -97,7 +95,7 @@
                                             <input class="uni-input" v-if="!cols.disabled"
                                                :type="cols.name=='InputNumber'?'number':'text'"
                                                v-model="cols.value" :disabled="cols.disabled"
                                                :placeholder="cols.placeholder" />
                                                :placeholder="cols.placeholder"  :maxlength="-1"/>
                                          </view>
                                       </uni-col>
                                    </uni-row>
@@ -119,8 +117,9 @@
                     <view class="view-bottom" v-if="pageData.OK_Button==true">
                        <button type="default" @tap="cancel"
                           class="btn_cancel">{{translateSys('cancel')}}</button>
                        <button type="primary" @tap="ok(pageData)"
                           class="btn_add">{{translateSys('ok')}}</button>
                        <button type="primary" @tap="ok(pageData)" class="btn_add"
                           :class="pageData.okLoading?'btn_disabled':''"
                           :disabled="pageData.okLoading? true:false">{{translateSys('ok')}}</button>
                     </view>
                  </view>
               </swiper-item>
@@ -142,6 +141,14 @@
<script>
   import Base64 from '../../components/js-base64/base64.js'
   import {
      dictGetInfo
   } from "@/api/mobox.js"
   import {
      getUIStyleInfo,
      runCustomEvent,
   } from "@/api/data.js"
   export default {
      name: "PageModal5601",
      modules: {
@@ -168,7 +175,6 @@
            After_Del_Event: {},
            active_id: '',
            activelist: [],
            selectAttrObj: {},
         };
      },
@@ -188,10 +194,12 @@
         }); //设置顶部标题 
         this.title = options.titlename;
         this.param = JSON.parse(options.param);
         //获取主数据类ID
         this.ClsID = this.param.master_cls?.id;
         if (this.ClsID) {
            this.loadData()
            this.loadData(options.paramValue)
         } else {
            uni.showModal({
               title: this.translateSys("error"),
@@ -215,19 +223,45 @@
               keys.forEach(function(key2, index) {
                  if (index + 1 == keys.length) {
                     that.$set(data, key2, val);
                     console.log("$set", key2, val)
                  } else {
                     if (!data[key2]) {
                        that.$set(data, key2, {});
                        console.log("$set", key2, {})
                     }
                  }
                  data = data[key2];
               });
            });
         },
         async loadData() {
         async loadData(paramValue) {
            //获取数据类的自定义表单参数
            await this.Head_UIStyleGetInfo(this.ClsID, this.param.Input_UI_Style.ID);
            //传入参数值
            if (paramValue) {
               const attrs = paramValue.attrs || [];
               (this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => {
                  if (ele.name != "Layout") {
                     attrs.forEach(async (ele2, index2) => {
                        if (ele.fieldId == ele2.name) {
                           ele.value = ele2.value;
                        }
                     });
                  } else {
                     ele.setting.colList.forEach(async (col) => {
                        if (col) {
                           attrs.forEach(async (ele2,
                              index2) => {
                              if (col.fieldId == ele2.name) {
                                 col.value = ele2.value;
                              }
                           });
                        }
                     });
                  }
               })
            }
            //加载初始界面
            if (this.$data.param.Show_Welcom_Page) {
               this.$data.param.Welcome_Page.Img = this.$data.param.Welcome_Page.Img.replace(/ /g, '+');
@@ -237,8 +271,9 @@
            //加载Tab页签
            const pageList = this.param.Sub_Page || []
            for (let i in pageList) {
               page.DefList = [];
               const page = pageList[i]
               page.DefList = [];
               page.StyleDef = await this.Detail_UIstyleGetInfo(
                  this.ClsID,
                  page.UI_Style.ID
@@ -248,6 +283,7 @@
            this.setData({
               pageDetail: pageList
            })
            console.log(this.pageDetail);
         },
         changeSwiper(evt) {
@@ -270,135 +306,140 @@
            }
         },
         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);
                  }
                  const styledefHead = styledef ? JSON.parse(styledef) : {};
                  styledefHead.form.items.forEach(async (ele) => {
            try {
               var $this = this;
               var dataInfo = {
                  class_id: class_id,
                  ui_style_id: style_id,
               };
               const result = await getUIStyleInfo(dataInfo)
               var styledef = "";
               if (result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!result.style_def.includes('"')) styledef = Base64.decode(
                     result
                     .style_def);
               }
               const styledefHead = styledef ? JSON.parse(styledef) : {};
               if (styledefHead?.form?.items) {
                  for (let i in styledefHead.form.items) {
                     const ele = styledefHead.form.items[i]
                     if (ele.name != "Layout") {
                        if (ele?.useDict) {
                           //判断useDict是否使用字典
                           await this.DictGetInfo(ele.bind.dict, styledefHead.form.model,
                           await this.DictGetInfo(ele.bind.dict,
                              styledefHead.form.model,
                              ele);
                        }
                        if ($this.focusFieldId == "") {
                           if (ele.name == 'Input' || ele.name == 'InputNumber') {
                           if (ele.name == 'Input' || ele.name ==
                              'InputNumber') {
                              $this.setData({
                                 focusFieldId: ele.fieldId
                              })
                           }
                        }
                     } else {
                        ele.setting.colList.forEach(async (col) => {
                        for (let j in ele.setting.colList) {
                           const col = ele.setting.colList[j]
                           if (col?.useDict) {
                              //判断useDict是否使用字典
                              await this.DictGetInfo(col.bind.dict,
                                 styledefHead.form.model, col);
                              await this.DictGetInfo(col.bind
                                 .dict,
                                 styledefHead.form
                                 .model, col);
                           }
                           if ($this.focusFieldId == "") {
                              if (col.name == 'Input' || col.name ==
                              if (col.name == 'Input' || col
                                 .name ==
                                 'InputNumber') {
                                 $this.setData({
                                    focusFieldId: col.fieldId
                                    focusFieldId: col
                                       .fieldId
                                 })
                              }
                           }
                        });
                        }
                     }
                  });
                  this.setData({
                     head_styledef: styledefHead
                  })
               } else {
                  uni.showModal({
                     title: this.translateSys("error") + "1",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               }
            }).catch(ex => {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "1.1",
                  content: ex.errMsg,
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
            });
         },
         async Detail_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);
                  }
                  const detailstyledef = ret.result.style_def ? JSON.parse(styledef) : {};
                  detailstyledef.SelBut_Checked = true;
                  detailstyledef.form.items.forEach(async (ele, index) => {
                     if (ele.name != "Layout") {
                        if (ele.useDict == true) { //判断useDict是否使用字典
                           await this.DictGetInfo(ele.bind.dict, detailstyledef.form
                              .model, ele);
                        }
                     } else {
                        ele.setting.colList.forEach(async (col) => {
                           if (col?.useDict == true) {
                              await this.DictGetInfo(col.bind.dict,
                                 detailstyledef.form.model, col);
                           }
                        })
                     }
                  });
                  console.log("Detail_UIstyleGetInfo", detailstyledef);
                  return detailstyledef
               } else {
                  return {}
                  uni.showModal({
                     title: this.translateSys("error") + "2",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               }
            }).catch(ex => {
               this.setData({
                  head_styledef: styledefHead
               })
            } catch (ex) {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "2.1",
                  title: this.translateSys("error") + "1",
                  content: ex.errMsg,
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return {}
            });
            }
         },
         async Detail_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
            try {
               var $this = this;
               var dataInfo = {
                  class_id: class_id,
                  ui_style_id: style_id,
               };
               const result = await getUIStyleInfo(dataInfo)
               var styledef = "";
               if (result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!result.style_def.includes('"')) styledef = Base64
                     .decode(result
                        .style_def);
               }
               const detailstyledef = result.style_def ? JSON.parse(
                  styledef) : {};
               detailstyledef.SelBut_Checked = true;
               if (detailstyledef?.form?.items) {
                  for (let index in detailstyledef.form.items) {
                     const ele = detailstyledef.form.items[index]
                     if (ele.name != "Layout") {
                        if (ele.useDict == true) { //判断useDict是否使用字典
                           await this.DictGetInfo(ele.bind.dict,
                              detailstyledef.form
                              .model, ele);
                        }
                     } else {
                        for (let j in ele.setting.colList) {
                           const col = ele.setting.colList[j]
                           if (col?.useDict == true) {
                              await this.DictGetInfo(col
                                 .bind.dict,
                                 detailstyledef.form
                                 .model, col);
                           }
                        }
                     }
                  }
               }
               console.log("Detail_UIstyleGetInfo", detailstyledef);
               return detailstyledef
            } catch (ex) {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "2",
                  content: ex.errMsg,
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return {}
            }
         },
@@ -409,34 +450,25 @@
               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,
                     });
            try {
               const result = await dictGetInfo(dataInfo)
               var list = [];
               var itemName = '';
               (result.dict_item_list || []).forEach((item) => {
                  if (item.is_default == '1')
                     itemName = item.name
                  list.push({
                     text: item.value ? item.value : item.name,
                     value: item.name,
                  });
                  if (itemName) {
                     formItem.value = itemName;
                     formModel[formItem.fieldId] = itemName;
                  }
                  formItem.dict = list;
               } else {
                  uni.showModal({
                     title: this.translateSys("error") + "3.1",
                     content: success.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               });
               //有默认值,显示默认值
               if (itemName) {
                  formItem.value = itemName;
                  formModel[formItem.fieldId] = itemName;
               }
            }).catch(ex => {
               formItem.dict = list;
            } catch (ex) {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "3",
@@ -444,7 +476,8 @@
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
            });
            }
         },
         onClick(item) {
            this.focusFieldId = item.fieldId
@@ -457,13 +490,15 @@
               console.log(result.decodedata);
               item.value = result.decodedata;
               var $this = this;
               if (item.oldvalue != item.value) {
               if (item.oldvalue != item.value && item.value.trim() != "") {
                  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 onSuffixClickCallbackEvent = item.bind
                     .onSuffixClickCallbackEvent; //后图标点击事件
                  var onSuffixClickEvent = item.bind
                     .onSuffixClickEvent; //后图标点击回调
                  var isflag = false;
                  if (onChangeEvent.id) { //内容变化后事件
@@ -476,7 +511,8 @@
                        const ele = $this.head_styledef.form.items[i]
                        if (ele.name != "Layout") {
                           if (ele.name == 'Input' || ele.name == 'InputNumber') {
                           if (ele.name == 'Input' || ele.name ==
                              'InputNumber') {
                              if (attr == ele.fieldId) {
                                 findd = true
                              } else {
@@ -492,32 +528,39 @@
                           }
                        } else {
                           if (findd) {
                              let curIndex = ele.setting.colList.findIndex((col, index2, arr) => {
                                 return (col.name == 'Input' || col.name == 'InputNumber');
                              let curIndex = ele.setting.colList.findIndex((
                                 col, index2, arr) => {
                                 return (col.name == 'Input' || col
                                    .name == 'InputNumber');
                              })
                              if (curIndex > -1) {
                                 $this.setData({
                                    focusFieldId: ele.setting.colList[curIndex]
                                    focusFieldId: ele.setting
                                       .colList[curIndex]
                                       .fieldId
                                 })
                                 break
                              }
                           } else {
                              let curIndex = ele.setting.colList.findIndex((col, index2, arr) => {
                              let curIndex = ele.setting.colList.findIndex((
                                 col, index2, arr) => {
                                 return attr == col.fieldId;
                              })
                              if (curIndex > -1) {
                                 findd = true
                                 let curIndex2 = ele.setting.colList.findIndex((col, index2, arr) => {
                                    return (col.name == 'Input' || col.name ==
                                          'InputNumber') &&
                                       index2 >
                                       curIndex;
                                 })
                                 let curIndex2 = ele.setting.colList
                                    .findIndex((col, index2, arr) => {
                                       return (col.name == 'Input' ||
                                             col.name ==
                                             'InputNumber') &&
                                          index2 >
                                          curIndex;
                                    })
                                 if (curIndex2 > -1) {
                                    $this.setData({
                                       focusFieldId: ele.setting.colList[curIndex]
                                       focusFieldId: ele.setting
                                          .colList[curIndex]
                                          .fieldId
                                    })
                                    break
@@ -535,12 +578,13 @@
         onEnterChange(item) { //回车,点击按钮,取消节点事件
            console.log(item);
            if (item.oldvalue != item.value) {
            if (item.oldvalue != item.value && item.value.trim() != "") {
               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 onSuffixClickCallbackEvent = item.bind
                  .onSuffixClickCallbackEvent; //后图标点击事件
               var onSuffixClickEvent = item.bind.onSuffixClickEvent; //后图标点击回调
               var isflag = false;
@@ -552,43 +596,48 @@
         },
         getDetailAttrList(pageData) {
            const detailAttrList = [];
            pageData.DefList.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 (pageData.Select_Button == true) { //判断选择按钮是否为true
                  if (style.SelBut_Checked == true)
                     detailAttrList.push(detail_attr);
               } else
                  detailAttrList.push(detail_attr);
            });
            // console.log(detailAttrList);
            //获取正在码盘里没有显示的字段
            pageData.DefList.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 (pageData.DefList) {
               pageData.DefList.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;
                        });
                        if (isflag) {
                           detailAttrList[attr.attr] = attr.value;
                     } else
                        detail_attr[item.fieldId] = item.value;
                  });
                  detail_attr['id'] = style.form.objId;
                  if (pageData.Select_Button == true) { //判断选择按钮是否为true
                     if (style.SelBut_Checked == true)
                        detailAttrList.push(detail_attr);
                  } else
                     detailAttrList.push(detail_attr);
               });
               // console.log(detailAttrList);
               //获取正在码盘里没有显示的字段
               pageData.DefList.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({
@@ -612,7 +661,8 @@
                  this.head_styledef.form.items.forEach(item => {
                     if (item.name == "Layout") { //判断是否是栅栏格式
                        item.setting.colList.forEach(cols => {
                           if (cols != null) head_attr[cols.fieldId] = cols.value;
                           if (cols != null) head_attr[cols
                              .fieldId] = cols.value;
                        });
                     } else
                        head_attr[item.fieldId] = item.value;
@@ -630,12 +680,15 @@
                  var $this = this;
                  const jsonList = []
                  this.pageDetail.forEach((page) => {
                     jsonList.push({
                        page_name: page.Name,
                        item_list: $this.getDetailAttrList(page.DefList, page
                        item_list: $this.getDetailAttrList(page
                           .DefList, page
                           .Select_Button),
                        ext_data: page.ExtData || {}
                     })
                  })
                  const data_json = Base64.encode(
                     JSON.stringify(jsonList)
@@ -659,270 +712,336 @@
                     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){
                        if (this.param.Only_Script_Error) {
                           let pos = tip.indexOf(":");
                           if (pos > -1) tip = tip.substring(pos + 1);
                        }
                        uni.showModal({
                           title: this.translateSys("tip"),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                     }
                           else uni.showModal({
                              title: this.translateSys('tip'),
                              content: tip + ',' + this.translateSys('tip') + ':' + result
                                 .ret,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                           return false;
                        } else {
                           var tip = result.info ? typeof result.info == 'string' ? result.info :
                              result.info.join('<br/>') : '';
                           if (tip) uni.showModal({
                              title: this.translateSys('tip'),
                  runCustomEvent(dataInfo).then(result => {
                     console.log(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) {
                           if (this.param.Only_Script_Error) {
                              let pos = tip.indexOf(":");
                              if (pos > -1) tip = tip.substring(pos +
                                 1);
                           }
                           uni.showModal({
                              title: this.translateSys(
                                 "tip"),
                              content: tip,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                              confirmText: this.translateSys(
                                 "cancel")
                           });
                        } else uni.showModal({
                           title: this.translateSys('tip'),
                           content: tip + ',' + this
                              .translateSys('tip') + ':' +
                              result
                              .ret,
                           showCancel: false,
                           confirmText: this.translateSys(
                              "cancel")
                        });
                        return false;
                     } else {
                        var tip = result.info ? typeof result.info ==
                           'string' ? result.info :
                           result.info.join('<br/>') : '';
                        if (tip) uni.showModal({
                           title: this.translateSys('tip'),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys(
                              "cancel")
                        });
                           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;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                        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;
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page.Name;
                                    });
                                    if (value.clear_confirm != false && value.clear ==
                                       true &&
                                       pageData && pageData.DefList.length > 0
                                    ) { //判断是否清空页签内容,正在码盘是否有数据
                                       uni.showModal({
                                          title: this.translateSys('tip'),
                                          content: this.translate(
                                                "are_you_sure_clear_first") +
                                             this.translateSys(
                                                "quotation_mark_left") + value
                                             .page_name + this.translateSys(
                                                "sys.quotation_mark_right") +
                                             this.translate(
                                                "are_you_sure_clear_last"),
                                          success: function(res) {
                                             if (res.confirm) {
                                                if (pageData)
                                                   pageData.DefList = [];
                                                $this.viewAceionContent(
                                                   value);
                                             } else if (res.cancel) {
                                                if (pageData)
                                                   pageData.DefList = [];
                                                $this.viewAceionContent(
                                                   value);
                                             }
                                 if (value.clear_confirm !=
                                    false && value.clear ==
                                    true &&
                                    pageData && pageData
                                    .DefList.length > 0
                                 ) { //判断是否清空页签内容,正在码盘是否有数据
                                    uni.showModal({
                                       title: this
                                          .translateSys(
                                             'tip'
                                          ),
                                       content: this
                                          .translate(
                                             "are_you_sure_clear_first"
                                          ) +
                                          this
                                          .translateSys(
                                             "quotation_mark_left"
                                          ) +
                                          value
                                          .page_name +
                                          this
                                          .translateSys(
                                             "quotation_mark_right"
                                          ) +
                                          this
                                          .translate(
                                             "are_you_sure_clear_last"
                                          ),
                                       success: function(
                                          res
                                       ) {
                                          if (res
                                             .confirm
                                          ) {
                                             if (
                                                pageData)
                                                pageData
                                                .DefList = [];
                                             $this
                                                .viewAceionContent(
                                                   value
                                                );
                                          } else if (
                                             res
                                             .cancel
                                          ) {
                                             if (
                                                pageData)
                                                pageData
                                                .DefList = [];
                                             $this
                                                .viewAceionContent(
                                                   value
                                                );
                                          }
                                       });
                                    } else {
                                       if (pageData)
                                          pageData.DefList = [];
                                       $this.viewAceionContent(value);
                                    }
                                 } else if (item.action_type ==
                                    "select_subtable_page_row") {
                                    // value = {"page_name":"码盘中", "row":{"id":"xx"}}
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                       }
                                    });
                                    if (pageData?.DefList) {
                                       pageData.DefList.forEach(ele => {
                                          $this.activelist[index].active = false;
                                          if (ele.form.objId == value.row.id) {
                                             ele.SelBut_Checked = true;
                                             $this.active_id = ele.form
                                 } else {
                                    if (pageData)
                                       pageData
                                       .DefList = [];
                                    $this
                                       .viewAceionContent(
                                          value);
                                 }
                              } else if (item.action_type ==
                                 "select_subtable_page_row"
                              ) {
                                 // value = {"page_name":"码盘中", "row":{"id":"xx"}}
                                 var value = item.value;
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page.Name;
                                    });
                                 if (pageData?.DefList) {
                                    pageData.DefList
                                       .forEach(ele => {
                                          if (ele
                                             .form
                                             .objId ==
                                             value
                                             .row.id
                                          ) {
                                             ele.SelBut_Checked =
                                                true;
                                             $this
                                                .active_id =
                                                ele
                                                .form
                                                .htmlobjId;
                                             //自动滚动到指定元素
                                             uni.createSelectorQuery()
                                                .select("#tabpanel" + value
                                                   .page_name) //对应外层节点
                                                .boundingClientRect((
                                                   container) => {
                                                   uni.createSelectorQuery()
                                                      .select(
                                                         "#dvpanel" +
                                                         ele.form
                                                         .htmlobjId
                                                      ) //目标节点
                                                      .boundingClientRect(
                                                         (
                                                            target
                                                         ) => {
                                                            uni.pageScrollTo({
                                                               scrollTop: target
                                                                  .top -
                                                                  container
                                                                  .top, //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
                                                            });
                                                         })
                                                      .exec();
                                                })
                                                .select(
                                                   "#tabpanel" +
                                                   value
                                                   .page_name
                                                ) //对应外层节点
                                                .boundingClientRect(
                                                   (
                                                      container
                                                   ) => {
                                                      uni.createSelectorQuery()
                                                         .select(
                                                            "#dvpanel" +
                                                            ele
                                                            .form
                                                            .htmlobjId
                                                         ) //目标节点
                                                         .boundingClientRect(
                                                            (
                                                               target
                                                            ) => {
                                                               uni.pageScrollTo({
                                                                  scrollTop: target
                                                                     .top -
                                                                     container
                                                                     .top, //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
                                                               });
                                                            }
                                                         )
                                                         .exec();
                                                   }
                                                )
                                                .exec();
                                          }
                                       });
                                    }
                                 } else if (item.action_type ==
                                    "remove_subtable_page_row") { //清除面板中指定id的数据
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                 }
                              } else if (item.action_type ==
                                 "remove_subtable_page_row"
                              ) { //清除面板中指定id的数据
                                 var value = item.value;
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page.Name;
                                    });
                                    if (pageData
                                       ?.DefList
                                    ) //判断返回的action的page_name是否是待分拣//清除面板中指定id的数据
                                    {
                                       value.row.forEach(row => {
                                 if (pageData
                                    ?.DefList
                                 ) //判断返回的action的page_name是否是待分拣//清除面板中指定id的数据
                                 {
                                    value.row.forEach(
                                       row => {
                                          pageData
                                             .DefList
                                             .forEach((ele, index) => {
                                                if (ele.form.objId == row
                                                   .id) {
                                                   pageData
                                                      .DefList
                                                      .splice(index, 1);
                                                }
                                             });
                                             .forEach(
                                                (ele,
                                                   index
                                                ) => {
                                                   if (ele
                                                      .form
                                                      .objId ==
                                                      row
                                                      .id
                                                   ) {
                                                      pageData
                                                         .DefList
                                                         .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;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                    });
                                    if (pageData)
                                       pageData.ExtData = value.ext_data
                                 } else if (item.action_type == "clear_subpage_rows") {
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                    });
                                    if (pageData) {
                                       pageData.DefList = []
                                       pageData.ExtData = {}
                                    }
                                 } else if (item.action_type ==
                                    "set_dlg_current_edit_attr") {
                                    if ($this.focusOldFieldId == item.value) {
                                       $this.setData({
                                          focusFieldId: ""
                                       })
                                    } else {
                                       $this.setData({
                                          focusFieldId: $this.focusOldFieldId
                                       })
                                    }
                                    $this.$nextTick(() => {
                                       $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) => {
                                       if (ele.name != "Layout") {
                                          data.forEach(
                                             async (ele2,
                                                index
                                             ) => {
                                                if (ele
                                                   .fieldId ==
                                                   ele2
                                                   .attr
                                                ) {
                                                   ele.value =
                                                      ele2
                                                      .value;
                                                }
                                             });
                                       } else {
                                          ele.setting.colList.forEach(async (
                                             col) => {
                                             if (col) {
                                                data.forEach(
                                                   async (ele2,
                                                      index
                                                   ) => {
                                                      if (col
                                                         .fieldId ==
                                                         ele2
                                                         .attr
                                                      ) {
                                                         col.value =
                                                            ele2
                                                            .value;
                                                      }
                                                   });
                                             }
                                          })
                                       }
                                    })
                                 }
                              });
                           } else {
                              if (result.info) {
                                 uni.showModal({
                                    title: this.translateSys("error") + "4.3",
                                    content: result.info,
                                    showCancel: false,
                                    confirmText: this.translateSys("cancel")
                              } 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;
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page.Name;
                                    });
                                 if (pageData)
                                    pageData.ExtData =
                                    value.ext_data
                              } else if (item.action_type ==
                                 "clear_subpage_rows") {
                                 var value = item.value;
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page.Name;
                                    });
                                 if (pageData) {
                                    pageData.DefList = []
                                    pageData.ExtData = {}
                                 }
                              } else if (item.action_type ==
                                 "set_dlg_current_edit_attr"
                              ) {
                                 if ($this
                                    .focusOldFieldId ==
                                    item.value) {
                                    $this.setData({
                                       focusFieldId: ""
                                    })
                                 } else {
                                    $this.setData({
                                       focusFieldId: $this
                                          .focusOldFieldId
                                    })
                                 }
                                 $this.$nextTick(() => {
                                    $this.setData({
                                       focusFieldId: item
                                          .value
                                    })
                                 });
                              } else if (item.action_type ==
                                 "set_dlg_attr") {
                                 // value = {"attr":"xxx", "value":"xxx"}
                                 var data = item.value;
                                 $this.setFormValues(data)
                              }
                           }
                           });
                        } else {
                           if (result.info) {
                              uni.showModal({
                                 title: this.translateSys(
                                    "error") + "4.3",
                                 content: result.info,
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys("cancel")
                              });
                           }
                        }
                     } else {
                        uni.showModal({
                           title: this.translateSys("error") + "4",
                           content: ret.err_msg,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                     }
                  }).catch(ex => {
                     // console.log(ex);
                     let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
                     uni.showModal({
                        title: this.translateSys("error") + "4.1",
                        content: ex.errMsg,
                        content: tip,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                     });
@@ -932,9 +1051,12 @@
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error") + "4.2",
                  content: this.translate('execute_after_change_event_failed') + this.translateSys(
                  content: this.translate(
                        'execute_after_change_event_failed') + this
                     .translateSys(
                        "comma") +
                     this.translate('reason') + this.translateSys("colon") + tip,
                     this.translate('reason') + this.translateSys("colon") +
                     tip,
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
@@ -964,49 +1086,61 @@
         //更新分页签中的列表项内容
         viewActionSetRow(value) {
            const $this = this
            const pageData = $this.pageDetail.find((page) => {
            const pageIndex = $this.pageDetail.findIndex((
               page, index2, arr) => {
               return value.page_name == page.Name;
            });
            if (!pageData)
            })
            if (pageIndex < 0)
               return
            const pageData = $this.pageDetail[pageIndex]
            var detailStyleDefList = pageData.DefList || []
            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
                           if (ele2.name !=
                              'Layout') {
                              if (ele2.fieldId ==
                                 attr
                                 .attr) {
                                 ele2.value = $this
                                 ele2.value =
                                    $this
                                    .operationNumber(
                                       ele2.value,
                                       attr.value,
                                       attr.operation)
                                       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
                                             )
                              ele2.setting
                                 .colList
                                 .forEach(
                                    col => {
                                       if (
                                          col) {
                                          if (col
                                             .fieldId ==
                                             attr
                                             .attr
                                          ) {
                                             col.value =
                                                $this
                                                .operationNumber(
                                                   col
                                                   .value,
                                                   attr
                                                   .value,
                                                   attr
                                                   .operation
                                                )
                                          }
                                       }
                                    }
                                 })
                                    })
                           }
                        });
                     });
@@ -1014,6 +1148,7 @@
               })
            });
            pageData.DefList = detailStyleDefList
            $this.$set(this.pageDetail, pageIndex, pageData)
         },
         //加载正在码盘内容
@@ -1022,129 +1157,259 @@
            if (JSON.stringify(data.row) == '{}') {
               return;
            }
            const pageData = this.pageDetail.find((page) => {
               return value.page_name == page.Name;
            });
            if (!pageData)
            const pageIndex = this.pageDetail.findIndex((
               page, index2, arr) => {
               return data.page_name == page.Name;
            })
            if (pageIndex < 0)
               return
            data.row.forEach(row => {
               var styleStr = JSON.stringify(pageData.StyleDef);
            const pageData = this.pageDetail[pageIndex]
            var styleStr = JSON.stringify(pageData.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;
                           }
                        });
                     }
            var detailStyle = JSON.parse(styleStr);
            if (detailStyle.form) {
               data.row.forEach(row => {
                  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;
                                 }
                              });
                        }
                     });
                  });
                  pageData.DefList.push(detailStyle);
                  this.$set(this.pageDetail, pageIndex, pageData)
               });
               pageData.DefList.push(detailStyle);
            });
            }
         },
         //加载已码盘内容
         viewAceionContent(data) {
            var $this = this;
            const pageData = $this.pageDetail.find((page) => {
               return value.page_name == page.Name;
            });
            if (!pageData)
            const pageIndex = $this.pageDetail.findIndex((
               page, index2, arr) => {
               return data.page_name == page.Name;
            })
            if (pageIndex < 0)
               return
            const pageData = $this.pageDetail[pageIndex]
            pageData.ExtData = data.ext_data || {}
            if (JSON.stringify(data.content) == '{}') {
               return;
            }
            data.content.forEach(cont => {
               var styleStr = JSON.stringify(pageData.StyleDef);
            var styleStr = JSON.stringify(pageData.StyleDef);
            var detailStyle = JSON.parse(styleStr);
            if (detailStyle.form) {
               data.content.forEach(cont => {
                  detailStyle = JSON.parse(styleStr);
                  detailStyle.SelBut_Checked = data.checkbox ?? true;
               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;
                           }
                        });
                     }
                  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;
                                 }
                              });
                        }
                     });
                  });
               });
               //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
               if (data.clear == false) {
                  var isflag = true;
                  pageData.DefList.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;
                                          }
                                       });
                              }
                  //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
                  if (data.clear == false) {
                     var isflag = true;
                     pageData.DefList.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) pageData.DefList.push(detailStyle); //待分拣
               } else {
                  pageData.DefList.push(detailStyle); //待分拣
               }
               $this.activelist.push({
                  active: false
               });
                           isflag = false;
                        }
                     });
                     if (isflag) pageData.DefList.push(detailStyle); //待分拣
                  } else {
                     pageData.DefList.push(detailStyle); //待分拣
                  }
                  // $this.setData({pageDetail:pageD})
                  $this.$set(this.pageDetail, pageIndex, pageData)
            });
               });
            }
         },
         setFormValues(data) {
            const head_styledef = this.head_styledef
            if (JSON.stringify(data) == '{}') {
               return;
            }
            head_styledef.form.items.forEach(async (ele, index) => {
               if (ele.name != "Layout") {
                  let curIndex = data.findIndex((attr, index2, arr) => {
                     return attr.attr == ele.fieldId;
                  })
                  if (curIndex > -1) {
                     const attr = data[curIndex]
                     if (ele.name ==
                        'Select' &&
                        attr
                        .choice_list
                     ) {
                        const
                           dictItemList = [];
                        const
                           choiceList =
                           attr
                           .choice_list || [];
                        for (let d in
                              choiceList) {
                           const
                              val =
                              choiceList[
                                 d
                              ];
                           dictItemList
                              .push({
                                 text: val,
                                 value: val
                              });
                        }
                        ele.dict =
                           dictItemList;
                     }
                     ele.value =
                        attr
                        .value;
                  }
               } else {
                  ele.setting
                     .colList
                     .forEach(
                        async (
                           col
                        ) => {
                           if (
                              col) {
                              let curIndex = data.findIndex((
                                 attr, index2, arr) => {
                                 return attr.attr == col.fieldId;
                              })
                              if (curIndex > -1) {
                                 const attr = data[curIndex]
                                 if (col.name ==
                                    'Select' &&
                                    attr
                                    .choice_list
                                 ) {
                                    const
                                       dictItemList = [];
                                    const
                                       choiceList =
                                       attr
                                       .choice_list || [];
                                    for (let d in
                                          choiceList) {
                                       const
                                          val =
                                          choiceList[
                                             d
                                          ];
                                       dictItemList
                                          .push({
                                             text: val,
                                             value: val
                                          });
                                    }
                                    col.dict =
                                       dictItemList;
                                 }
                                 col.value =
                                    attr
                                    .value;
                              }
                           }
                        })
               }
            })
            this.setData({
               head_styledef: head_styledef
            })
         },
         onClickItem(e) { //选择页签
            // console.log(e);
            this.current = e.currentIndex
@@ -1173,7 +1438,8 @@
            this.$data.head_styledef.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) head_attr[cols.fieldId] = cols.value;
                     if (cols != null) head_attr[cols.fieldId] =
                        cols.value;
                  });
               } else
                  head_attr[item.fieldId] = item.value;
@@ -1185,7 +1451,8 @@
            style.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) detail_attr[cols.fieldId] = cols
                     if (cols != null) detail_attr[cols
                           .fieldId] = cols
                        .value;
                  });
               } else
@@ -1254,14 +1521,9 @@
            $this.runCustomEvent(pageData, event, input_param, list);
         },
         onPanelClick(value) {
         onPanelClick(value, id) {
            // console.log(value);
            this.active_id = '';
            this.activelist.forEach(ele => {
               ele.active = false;
            });
            this.activelist[value].active = true;
            // console.log(this.$data.activelist);
            this.active_id = id;
         },
         //确定
         ok(pageData) {
@@ -1280,23 +1542,26 @@
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: this.translate(
                        "page.tip_no_data_first") +
                        "tip_no_data_first") +
                     this.translateSys(
                        "quotation_mark_left") + pageData.Name + this.translateSys(
                        "sys.quotation_mark_right") +
                        "quotation_mark_left") + pageData.Name + this
                     .translateSys(
                        "quotation_mark_right") +
                     this.translate(
                        "page.tip_no_data_last"),
                        "tip_no_data_last"),
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return false;
            }
            //获取表头属性
            pageData.okLoading = true
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) head_attr[cols.fieldId] = cols.value;
                     if (cols != null) head_attr[cols.fieldId] =
                        cols.value;
                  });
               } else
                  head_attr[item.fieldId] = item.value;
@@ -1309,7 +1574,8 @@
               style.form.items.forEach(item => {
                  if (item.name == "Layout") { //判断是否是栅栏格式
                     item.setting.colList.forEach(cols => {
                        if (cols != null) detail_attr[cols
                        if (cols != null) detail_attr[
                           cols
                           .fieldId] = cols.value;
                     });
                  } else
@@ -1329,18 +1595,21 @@
            pageData.DefList.forEach(style => {
               style.form.attrs.forEach(attr => {
                  for (var key in detailAttrList) {
                     if (style.form.objId == detailAttrList[key][
                     if (style.form.objId == detailAttrList[key]
                        [
                           'id'
                        ]) {
                        var keys = Object.keys(detailAttrList[
                           key]);
                        var isflag = true;
                        keys.forEach((ele) => {
                           if (ele == attr.attr) isflag =
                           if (ele == attr.attr)
                              isflag =
                              false;
                        });
                        if (isflag) {
                           detailAttrList[attr.attr] = attr.value;
                           detailAttrList[attr.attr] = attr
                              .value;
                        }
                     }
                  }
@@ -1367,6 +1636,7 @@
               });
            });
            if (jsonlist.length == 0) {
               pageData.okLoading = false
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: this.translate("tip_no_select_data"),
@@ -1414,200 +1684,336 @@
            };
            // 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) {
                        if (this.param.Only_Script_Error) {
                           let pos = tip.indexOf(":");
                           if (pos > -1) tip = tip.substring(pos + 1);
                        }
                        uni.showModal({
                           title: this.translateSys("tip"),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                     }
                     else uni.showModal({
                        title: this.translateSys('tip'),
                        content: tip + ',' + this.translateSys('tip') + ':' + result.ret,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                     });
                     return false;
                  } else {
                     var tip = result.info ? typeof result.info ==
                        'string' ? result.info : result.info
                        .join('<br/>') : '';
                     if (tip) uni.showModal({
                        title: this.translateSys('tip'),
            runCustomEvent(dataInfo).then(result => {
               console.log(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) {
                     if (this.param.Only_Script_Error) {
                        let pos = tip.indexOf(":");
                        if (pos > -1) tip = tip.substring(pos +
                           1);
                     }
                     uni.showModal({
                        title: this.translateSys(
                           "tip"),
                        content: tip,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                        confirmText: this.translateSys(
                           "cancel")
                     });
                     if (result.result_type == 0) {
                        if (result.action) {
                           //   uni.showModal({title:this.translateSys("tip"),content:JSON.stringify(result.action),showCancel:false,confirmText:this.translateSys("cancel")});
                  } else uni.showModal({
                     title: this.translateSys('tip'),
                     content: tip + ',' + this
                        .translateSys('tip') + ':' +
                        result.ret,
                     showCancel: false,
                     confirmText: this.translateSys(
                        "cancel")
                  });
                  return false;
               } else {
                  var tip = result.info ? typeof result.info ==
                     'string' ? result.info : result.info
                     .join('<br/>') : '';
                  if (tip) uni.showModal({
                     title: this.translateSys('tip'),
                     content: tip,
                     showCancel: false,
                     confirmText: this.translateSys(
                        "cancel")
                  });
                  if (result.result_type == 0) {
                     if (result.action) {
                        //   uni.showModal({title:this.translateSys("tip"),content:JSON.stringify(result.action),showCancel:false,confirmText:this.translateSys("cancel")});
                           result.action.forEach(item => {
                              if (item.action_type ==
                                 "insert_subtable_page_row"
                              ) { //码盘中
                                 var value = item.value;
                                 //加载已经码盘数据
                                 $this.viewAceionRow(value, );
                                 //清空条码内容
                                 $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
                                             ] =
                                             '';
                                       }
                                    });
                        result.action.forEach(item => {
                           if (item.action_type ==
                              "insert_subtable_page_row"
                           ) { //码盘中
                              var value = item.value;
                              //加载已经码盘数据
                              $this.viewAceionRow(
                                 value, );
                              //清空条码内容
                              $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
                                          ] =
                                          '';
                                    }
                                 });
                              uni.showModal({
                                 title: this
                                    .translateSys(
                                       "tip"
                                    ),
                                 content: this
                                    .translate(
                                       'execute_event_success'
                                    ),
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys(
                                       "cancel"
                                    )
                              });
                           } else if (item.action_type ==
                              "set_subtable_page_content"
                           ) { //已码盘
                              $this.$data.param
                                 .Show_Welcom_Page =
                                 false;
                              var value = item.value;
                              const pageData = $this
                                 .pageDetail.find((
                                    page) => {
                                    return value
                                       .page_name ==
                                       page.Name;
                                 });
                              if (value.clear_confirm !=
                                 false && value.clear ==
                                 true &&
                                 pageData && pageData
                                 .DefList.length > 0
                              ) { //判断是否清空页签内容,正在码盘是否有数据
                                 uni.showModal({
                                    title: this.translateSys("tip"),
                                    content: this.translate(
                                       'execute_event_success'),
                                    showCancel: false,
                                    confirmText: this.translateSys("cancel")
                                    title: this
                                       .translateSys(
                                          'tip'
                                       ),
                                    content: this
                                       .translate(
                                          "are_you_sure_clear_first"
                                       ) +
                                       this
                                       .translateSys(
                                          "quotation_mark_left"
                                       ) +
                                       value
                                       .page_name +
                                       this
                                       .translateSys(
                                          "quotation_mark_right"
                                       ) +
                                       this
                                       .translate(
                                          "are_you_sure_clear_last"
                                       ),
                                    success: function(
                                       res
                                    ) {
                                       if (res
                                          .confirm
                                       ) {
                                          if (
                                             pageData
                                          )
                                             pageData
                                             .DefList = [];
                                          $this
                                             .viewAceionContent(
                                                value
                                             );
                                       } else if (
                                          res
                                          .cancel
                                       ) {
                                          if (
                                             pageData
                                          )
                                             pageData
                                             .DefList = [];
                                          $this
                                             .viewAceionContent(
                                                value
                                             );
                                       }
                                    }
                                 });
                              } else if (item.action_type ==
                                 "remove_subtable_page_row"
                              ) { //清除面板中指定id的数据
                                 var value = item.value;
                                 const pageData = $this.pageDetail.find((page) => {
                                    return value.page_name == page.Name;
                              } else {
                                 if (pageData)
                                    pageData
                                    .DefList = [];
                                 $this
                                    .viewAceionContent(
                                       value);
                              }
                           } else if (item
                              .action_type ==
                              "remove_subtable_page_row"
                           ) { //清除面板中指定id的数据
                              var value = item.value;
                              const pageData = $this
                                 .pageDetail.find((
                                    page) => {
                                    return value
                                       .page_name ==
                                       page
                                       .Name;
                                 });
                                 if (pageData
                                    ?.DefList
                                 ) { //判断返回的action的page_name是否是待分拣
                                    //清除面板中指定id的数据
                                    value.row.forEach(
                                       row => {
                                          pageData.DefList
                                             .forEach(
                                                (
                                                   ele,
                                                   index
                                                ) => {
                                                   if (ele
                                                      .form
                                                      .objId ==
                                                      row
                                                      .id
                                                   ) {
                                                      pageData.DefList.splice(
                                                         index, 1);
                                                   }
                                                });
                                       });
                                 }
                              } else if (item.action_type ==
                                 "set_subtable_page_row") {
                                 $this.viewActionSetRow(item
                                    .value)
                              if (pageData
                                 ?.DefList
                              ) { //判断返回的action的page_name是否是待分拣
                                 //清除面板中指定id的数据
                                 value.row.forEach(
                                    row => {
                                       pageData
                                          .DefList
                                          .forEach(
                                             (
                                                ele,
                                                index
                                             ) => {
                                                if (ele
                                                   .form
                                                   .objId ==
                                                   row
                                                   .id
                                                ) {
                                                   pageData
                                                      .DefList
                                                      .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;
                                 const pageData = $this.pageDetail.find((page) => {
                                    return value.page_name == page.Name;
                           } else if (item
                              .action_type ==
                              "set_subtable_page_ext_data"
                           ) {
                              var value = item.value;
                              const pageData = $this
                                 .pageDetail.find((
                                    page) => {
                                    return value
                                       .page_name ==
                                       page
                                       .Name;
                                 });
                                 if (pageData) {
                                    pageData.ExtData = value
                                       .ext_data
                                 }
                              if (pageData) {
                                 pageData.ExtData =
                                    value
                                    .ext_data
                              }
                              } else if (item.action_type ==
                                 "clear_subpage_rows") {
                                 var value = item.value;
                                 const pageData = $this.pageDetail.find((page) => {
                                    return value.page_name == page.Name;
                           } else if (item
                              .action_type ==
                              "clear_subpage_rows") {
                              var value = item.value;
                              const pageData = $this
                                 .pageDetail.find((
                                    page) => {
                                    return value
                                       .page_name ==
                                       page
                                       .Name;
                                 });
                                 if (pageData) {
                                    pageData.DefList = []
                                    pageData.ExtData = {}
                                 }
                              } else if (item.action_type ==
                                 "set_dlg_current_edit_attr"
                              ) {
                                 if ($this
                                    .focusOldFieldId ==
                                    item.value)
                                    $this.setData({
                                       focusFieldId: ""
                                    })
                                 else {
                                    $this.setData({
                                       focusFieldId: $this
                                          .focusOldFieldId
                                    })
                                 }
                                 $this.$nextTick(() => {
                                    $this.setData({
                              if (pageData) {
                                 pageData
                                    .DefList = []
                                 pageData
                                    .ExtData = {}
                              }
                           } else if (item
                              .action_type ==
                              "set_dlg_current_edit_attr"
                           ) {
                              if ($this
                                 .focusOldFieldId ==
                                 item.value)
                                 $this.setData({
                                    focusFieldId: ""
                                 })
                              else {
                                 $this.setData({
                                    focusFieldId: $this
                                       .focusOldFieldId
                                 })
                              }
                              $this.$nextTick(() => {
                                 $this
                                    .setData({
                                       focusFieldId: item
                                          .value
                                    })
                                 });
                              }
                           });
                        } else {
                           if ($this.$data.After_OK_Event.ID != event
                              .ID) { //判断当前事件是否是确定后事件
                              $this.sava(pageParam, $this.$data
                                 .After_OK_Event); //执行确定后事件
                              });
                           } else if (item.action_type ==
                              "set_dlg_attr") {
                              // value = {"attr":"xxx", "value":"xxx"}
                              var data = item.value;
                              $this.setFormValues(data)
                           }
                        }
                     } else {
                        if (result.info) {
                           uni.showModal({
                              title: this.translateSys("tip"),
                              content: result.info,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                        });
                     } else {
                        if ($this.$data.After_OK_Event.ID !=
                           event
                           .ID) { //判断当前事件是否是确定后事件
                           $this.sava(pageParam, $this.$data
                              .After_OK_Event); //执行确定后事件
                        }
                     }
                  } else {
                     if (result.info) {
                        uni.showModal({
                           title: this.translateSys(
                              "tip"),
                           content: result.info,
                           showCancel: false,
                           confirmText: this
                              .translateSys("cancel")
                        });
                     }
                  }
               } else {
                  uni.showModal({
                     title: this.translateSys("error") + "8",
                     content: res.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               }
               pageParam.okLoading = false
            }).catch(ex => {
               var tip = typeof ex == "string" ? ex : ex.errMsg;
               pageParam.okLoading = false
               let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
               uni.showModal({
                  title: this.translateSys("error") + "8.1",
                  content: this.translate("execute_after_ok_event_failed") + this.translateSys(
                  content: this.translate(
                        "execute_after_ok_event_failed") +
                     this.translateSys(
                        "comma") +
                     tip,
                  showCancel: false,
@@ -1651,8 +2057,8 @@
      .v-head-style {
         width: 98%;
         .uni-form-item {
            margin-bottom: 15rpx;
         .uni-forms-item {
            margin-bottom: 11rpx;
         }
         .input-wrapper {
@@ -1664,6 +2070,7 @@
            .uni-input {
               flex: 1;
               padding: 12rpx 8rpx;
               color: #2d8cf0;
               // height: 40rpx;
               // line-height: 40rpx;
            }
@@ -1729,10 +2136,6 @@
         position: relative;
         border: 0 solid #000;
         box-sizing: border-box;
      }
      .uni-input {
         /* border: none; */
      }
      .uni-icon {
@@ -1835,9 +2238,16 @@
                  font-size: 38rpx;
                  font-weight: bold;
                  float: right;
                  color: #fff;
                  display: inline-block;
               }
               .btn_disabled {
                  background-color: #ddd;
                  color: #888;
               }
            }
         }