cuiqian2004
2024-08-12 792a7de9550294e9ab2df42402402ef966153ff2
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)" />
                  <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)" />
                        <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
                           @click="onEnterChange(col)"></text>
                     </view>
@@ -87,7 +84,7 @@
                                    <!-- 栅格布局 -->
                                    <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"
@@ -188,10 +185,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"),
@@ -224,10 +223,34 @@
               });
            });
         },
         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, '+');
@@ -248,6 +271,7 @@
            this.setData({
               pageDetail: pageList
            })
            console.log(this.pageDetail);
         },
         changeSwiper(evt) {
@@ -275,7 +299,7 @@
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
@@ -283,43 +307,52 @@
                     //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
                     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) => {
                  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
                  })
@@ -348,7 +381,7 @@
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
@@ -356,28 +389,35 @@
                     //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);
                     if (!ret.result.style_def.includes('"')) styledef = Base64
                        .decode(ret.result
                           .style_def);
                  }
                  const detailstyledef = ret.result.style_def ? JSON.parse(styledef) : {};
                  const detailstyledef = ret.result.style_def ? JSON.parse(
                     styledef) : {};
                  detailstyledef.SelBut_Checked = true;
                  detailstyledef.form.items.forEach(async (ele, index) => {
                  for (let index in styledefHead.form.items) {
                     const ele = styledefHead.form.items[index]
                     if (ele.name != "Layout") {
                        if (ele.useDict == true) { //判断useDict是否使用字典
                           await this.DictGetInfo(ele.bind.dict, detailstyledef.form
                           await this.DictGetInfo(ele.bind.dict,
                              detailstyledef.form
                              .model, ele);
                        }
                     } else {
                        ele.setting.colList.forEach(async (col) => {
                        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);
                              await this.DictGetInfo(col
                                 .bind.dict,
                                 detailstyledef.form
                                 .model, col);
                           }
                        })
                        }
                     }
                  });
                  }
                  console.log("Detail_UIstyleGetInfo", detailstyledef);
                  return detailstyledef
               } else {
@@ -409,34 +449,28 @@
               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 res = await this.getDictInfo(dataInfo)
               var list = [];
               var itemName = '';
               res.result.dict_item_list.forEach((item) => {
                  if (item.is_default == '1')
                     itemName = item.name;
                  list.push({
                     text: item.value,
                     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;
               // $this.head_styledef.form.items[index].dictitem=success.result;
               // this.$store.commit("classAttrList", $this.$data.classAttrList);
            } catch (ex) {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "3",
@@ -444,8 +478,39 @@
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
            });
            }
         },
         getDictInfo(info) { //Mobox3得到得到字典信息字典项列表
            const loginInfo = this.$store.getters.loginid
            const mobxoSApi = this.$store.getters.getMobxoSApi
            return new Promise((resolve, reject) => {
               uni.request({
                  url: mobxoSApi + 'api/dict/GetInfo2?sessionid=' + loginInfo.result.session_id,
                  data: info,
                  method: 'POST',
                  dataType: "json",
                  success: (_res) => {
                     // console.log(_res);
                     const ret = _res.data
                     if (ret.err_code == 0) {
                        resolve(ret);
                     } else {
                        reject({
                           "errMsg": ret.err_msg
                        });
                     }
                  },
                  fail: (err) => {
                     // console.log(err);
                     reject(err);
                  }
               })
            })
         },
         onClick(item) {
            this.focusFieldId = item.fieldId
         },
@@ -462,8 +527,10 @@
                  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 +543,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 +560,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
@@ -540,7 +615,8 @@
               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;
@@ -557,7 +633,8 @@
               style.form.items.forEach(item => {
                  if (item.name == "Layout") { //判断是否是栅栏格式
                     item.setting.colList.forEach(cols => {
                        if (cols != null) detail_attr[cols.fieldId] = cols.value;
                        if (cols != null) detail_attr[cols
                           .fieldId] = cols.value;
                     });
                  } else
                     detail_attr[item.fieldId] = item.value;
@@ -575,11 +652,14 @@
            pageData.DefList.forEach(style => {
               style.form.attrs.forEach(attr => {
                  for (var key in detailAttrList) {
                     if (style.form.objId == detailAttrList[key]['id']) {
                     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 (ele == attr.attr) isflag =
                              false;
                        });
                        if (isflag) {
                           detailAttrList[attr.attr] = attr.value;
@@ -612,7 +692,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;
@@ -632,7 +713,8 @@
                  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 || {}
                     })
@@ -664,230 +746,363 @@
                     if (ret.err_code == 0) {
                        var result = ret.result;
                        if (result.ret != 0) {
                           var tip = result.err_info ? typeof result.err_info == 'string' ? result
                              .err_info : result.err_info.join('<br/>') : '';
                           if (result.ret == 801) uni.showModal({
                           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,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                           else uni.showModal({
                              title: this.translateSys('tip'),
                              content: tip + ',' + this.translateSys('tip') + ':' + result
                              content: tip + ',' + this
                                 .translateSys('tip') + ':' +
                                 result
                                 .ret,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                              confirmText: this.translateSys(
                                 "cancel")
                           });
                           return false;
                        } else {
                           var tip = result.info ? typeof result.info == 'string' ? result.info :
                           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")
                              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;
                                 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;
                                    "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 ==
                                    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
                                       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);
                                          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
                                                   );
                                             }
                                          }
                                       });
                                    } else {
                                       if (pageData)
                                          pageData.DefList = [];
                                       $this.viewAceionContent(value);
                                          pageData
                                          .DefList = [];
                                       $this
                                          .viewAceionContent(
                                             value);
                                    }
                                 } else if (item.action_type ==
                                    "select_subtable_page_row") {
                                    "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
                                                .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();
                                                })
                                                .exec();
                                          }
                                    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
                                                   .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();
                                                      }
                                                   )
                                                   .exec();
                                             }
                                          });
                                    }
                                 } else if (item.action_type ==
                                    "remove_subtable_page_row") { //清除面板中指定id的数据
                                    "remove_subtable_page_row"
                                 ) { //清除面板中指定id的数据
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                    });
                                    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);
                                                }
                                             });
                                       });
                                       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_row") {
                                    $this.viewActionSetRow(item
                                       .value)
                                 } else if (item.action_type ==
                                    "set_subtable_page_ext_data") {
                                    "set_subtable_page_ext_data"
                                 ) {
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                    });
                                    const pageData = $this
                                       .pageDetail.find((
                                          page) => {
                                          return value
                                             .page_name ==
                                             page.Name;
                                       });
                                    if (pageData)
                                       pageData.ExtData = value.ext_data
                                       pageData.ExtData =
                                       value.ext_data
                                 } else if (item.action_type == "clear_subpage_rows") {
                                 } else if (item.action_type ==
                                    "clear_subpage_rows") {
                                    var value = item.value;
                                    const pageData = $this.pageDetail.find((page) => {
                                       return value.page_name == page.Name;
                                    });
                                    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") {
                                    "set_dlg_current_edit_attr"
                                 ) {
                                    if ($this.focusOldFieldId == item.value) {
                                    if ($this
                                       .focusOldFieldId ==
                                       item.value) {
                                       $this.setData({
                                          focusFieldId: ""
                                       })
                                    } else {
                                       $this.setData({
                                          focusFieldId: $this.focusOldFieldId
                                          focusFieldId: $this
                                             .focusOldFieldId
                                       })
                                    }
                                    $this.$nextTick(() => {
                                       $this.setData({
                                          focusFieldId: item.value
                                          focusFieldId: item
                                             .value
                                       })
                                    });
                                 } else if (item.action_type == "set_dlg_attr") {
                                 } 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) {
                                    $this.$data.head_styledef
                                       .form.items.forEach(
                                          async (
                                             ele, index
                                          ) => {
                                             if (ele
                                                .name !=
                                                "Layout"
                                             ) {
                                                data.forEach(
                                                   async (ele2,
                                                      index
                                                   ) => {
                                                      if (col
                                                      if (ele
                                                         .fieldId ==
                                                         ele2
                                                         .attr
                                                      ) {
                                                         col.value =
                                                         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;
                                                                  }
                                                               });
                                                         }
                                                      })
                                             }
                                          })
                                       }
                                    })
                                 }
                              });
@@ -895,10 +1110,12 @@
                              if (result.info) {
                                 uni.showModal({
                                    title: this.translateSys("error") + "4.3",
                                    title: this.translateSys(
                                       "error") + "4.3",
                                    content: result.info,
                                    showCancel: false,
                                    confirmText: this.translateSys("cancel")
                                    confirmText: this
                                       .translateSys("cancel")
                                 });
                              }
                           }
@@ -906,10 +1123,12 @@
                        }
                     } else {
                        uni.showModal({
                           title: this.translateSys("error") + "4",
                           title: this.translateSys("error") +
                              "4",
                           content: ret.err_msg,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                           confirmText: this.translateSys(
                              "cancel")
                        });
                     }
                  }).catch(ex => {
@@ -926,9 +1145,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")
               });
@@ -969,38 +1191,48 @@
                  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
                                                )
                                          }
                                       }
                                    }
                                 })
                                    })
                           }
                        });
                     });
@@ -1026,23 +1258,28 @@
               var detailStyle = JSON.parse(styleStr);
               detailStyle.form.objId = row.id;
               detailStyle.form.htmlobjId = row.id ? row.id.replace(/-/g, '').replace(
                  '{', '').replace('}',
                  '') : 'null';
               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 =
                        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;
                           }
                        });
                        ele.setting.colList.forEach(
                           col => {
                              if (col) {
                                 if (col.fieldId ==
                                    attr
                                    .attr) col
                                    .value = attr
                                    .value;
                              }
                           });
                     }
                  });
               });
@@ -1071,23 +1308,28 @@
               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, '')
               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 =
                        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;
                           }
                        });
                        ele.setting.colList.forEach(
                           col => {
                              if (col) {
                                 if (col.fieldId ==
                                    attr
                                    .attr) col
                                    .value = attr
                                    .value;
                              }
                           });
                     }
                  });
               });
@@ -1095,35 +1337,42 @@
               if (data.clear == false) {
                  var isflag = true;
                  pageData.DefList.forEach((style, index) => {
                     if (style.form.objId == detailStyle.form.objId) {
                     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
                                             )
                           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
                                                .value =
                                                attr
                                                .value;
                                          }
                                       });
                              }
                           });
                                             ) {
                                                if (col
                                                   .fieldId ==
                                                   attr
                                                   .attr
                                                )
                                                   col
                                                   .value =
                                                   attr
                                                   .value;
                                             }
                                          });
                                 }
                              });
                        });
                        isflag = false;
                     }
@@ -1167,7 +1416,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;
@@ -1179,7 +1429,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
@@ -1276,7 +1527,8 @@
                  content: this.translate(
                        "page.tip_no_data_first") +
                     this.translateSys(
                        "quotation_mark_left") + pageData.Name + this.translateSys(
                        "quotation_mark_left") + pageData.Name + this
                     .translateSys(
                        "sys.quotation_mark_right") +
                     this.translate(
                        "page.tip_no_data_last"),
@@ -1290,7 +1542,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;
@@ -1303,7 +1556,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
@@ -1323,18 +1577,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;
                        }
                     }
                  }
@@ -1416,17 +1673,28 @@
                     var tip = result.err_info ? typeof result
                        .err_info == 'string' ? result.err_info :
                        result.err_info.join('<br/>') : '';
                     if (result.ret == 801) uni.showModal({
                     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,
                        content: tip + ',' + this
                           .translateSys('tip') + ':' +
                           result.ret,
                        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")
                        confirmText: this.translateSys(
                           "cancel")
                     });
                     return false;
                  } else {
@@ -1437,7 +1705,8 @@
                        title: this.translateSys('tip'),
                        content: tip,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                        confirmText: this.translateSys(
                           "cancel")
                     });
                     if (result.result_type == 0) {
                        if (result.action) {
@@ -1449,10 +1718,13 @@
                              ) { //码盘中
                                 var value = item.value;
                                 //加载已经码盘数据
                                 $this.viewAceionRow(value, );
                                 $this.viewAceionRow(
                                    value, );
                                 //清空条码内容
                                 $this.$data.head_styledef
                                    .form.items.forEach((
                                 $this.$data
                                    .head_styledef
                                    .form.items
                                    .forEach((
                                       item,
                                       index) => {
                                       if (item
@@ -1463,7 +1735,8 @@
                                             '';
                                          item.oldvalue =
                                             '';
                                          $this.$data
                                          $this
                                             .$data
                                             .head_styledef
                                             .form
                                             .model[
@@ -1475,26 +1748,41 @@
                                    });
                                 uni.showModal({
                                    title: this.translateSys("tip"),
                                    content: this.translate(
                                       'execute_event_success'),
                                    title: this
                                       .translateSys(
                                          "tip"
                                       ),
                                    content: this
                                       .translate(
                                          'execute_event_success'
                                       ),
                                    showCancel: false,
                                    confirmText: this.translateSys("cancel")
                                    confirmText: this
                                       .translateSys(
                                          "cancel"
                                       )
                                 });
                              } else if (item.action_type ==
                              } 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;
                                 });
                                 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
                                          pageData
                                             .DefList
                                             .forEach(
                                                (
                                                   ele,
@@ -1506,40 +1794,64 @@
                                                      row
                                                      .id
                                                   ) {
                                                      pageData.DefList.splice(
                                                         index, 1);
                                                      pageData
                                                         .DefList
                                                         .splice(
                                                            index,
                                                            1
                                                         );
                                                   }
                                                });
                                                }
                                             );
                                       });
                                 }
                              } else if (item.action_type ==
                                 "set_subtable_page_row") {
                                 $this.viewActionSetRow(item
                              } else if (item
                                 .action_type ==
                                 "set_subtable_page_row"
                              ) {
                                 $this.viewActionSetRow(
                                    item
                                    .value)
                              } else if (item.action_type ==
                              } 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;
                                 });
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page
                                          .Name;
                                    });
                                 if (pageData) {
                                    pageData.ExtData = value
                                    pageData.ExtData =
                                       value
                                       .ext_data
                                 }
                              } else if (item.action_type ==
                              } else if (item
                                 .action_type ==
                                 "clear_subpage_rows") {
                                 var value = item.value;
                                 const pageData = $this.pageDetail.find((page) => {
                                    return value.page_name == page.Name;
                                 });
                                 const pageData = $this
                                    .pageDetail.find((
                                       page) => {
                                       return value
                                          .page_name ==
                                          page
                                          .Name;
                                    });
                                 if (pageData) {
                                    pageData.DefList = []
                                    pageData.ExtData = {}
                                    pageData
                                       .DefList = []
                                    pageData
                                       .ExtData = {}
                                 }
                              } else if (item.action_type ==
                              } else if (item
                                 .action_type ==
                                 "set_dlg_current_edit_attr"
                              ) {
                                 if ($this
@@ -1555,15 +1867,17 @@
                                    })
                                 }
                                 $this.$nextTick(() => {
                                    $this.setData({
                                       focusFieldId: item
                                          .value
                                    })
                                    $this
                                       .setData({
                                          focusFieldId: item
                                             .value
                                       })
                                 });
                              }
                           });
                        } else {
                           if ($this.$data.After_OK_Event.ID != event
                           if ($this.$data.After_OK_Event.ID !=
                              event
                              .ID) { //判断当前事件是否是确定后事件
                              $this.sava(pageParam, $this.$data
@@ -1575,27 +1889,33 @@
                        if (result.info) {
                           uni.showModal({
                              title: this.translateSys("tip"),
                              title: this.translateSys(
                                 "tip"),
                              content: result.info,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                              confirmText: this
                                 .translateSys("cancel")
                           });
                        }
                     }
                  }
               } else {
                  uni.showModal({
                     title: this.translateSys("error") + "8",
                     title: this.translateSys("error") +
                        "8",
                     content: res.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                     confirmText: this.translateSys(
                        "cancel")
                  });
               }
            }).catch(ex => {
               var tip = typeof ex == "string" ? ex : ex.errMsg;
               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,