cuiqian2004
2024-09-11 900de24644eb2c7656482d03313400e453b6ce04
pages/modal/5601.vue
@@ -65,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">
                                    <!-- 普通布局 -->
@@ -140,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: {
@@ -166,7 +175,6 @@
            After_Del_Event: {},
            active_id: '',
            activelist: [],
            selectAttrObj: {},
         };
      },
@@ -215,9 +223,11 @@
               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];
@@ -302,14 +312,14 @@
                  class_id: class_id,
                  ui_style_id: style_id,
               };
               const ret = await this.getUIStyleInfo(dataInfo)
               const result = await getUIStyleInfo(dataInfo)
               var styledef = "";
               if (ret.result.style_def) {
               if (result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  styledef = result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64.decode(
                     ret.result
                  if (!result.style_def.includes('"')) styledef = Base64.decode(
                     result
                     .style_def);
               }
               const styledefHead = styledef ? JSON.parse(styledef) : {};
@@ -369,80 +379,7 @@
               });
               return {}
            }
            // this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (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) : {};
            //       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,
            //                   ele);
            //             }
            //             if ($this.focusFieldId == "") {
            //                if (ele.name == 'Input' || ele.name ==
            //                   'InputNumber') {
            //                   $this.setData({
            //                      focusFieldId: ele.fieldId
            //                   })
            //                }
            //             }
            //          } else {
            //             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);
            //                }
            //                if ($this.focusFieldId == "") {
            //                   if (col.name == 'Input' || col
            //                      .name ==
            //                      'InputNumber') {
            //                      $this.setData({
            //                         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) { //获取自定义表单样式
@@ -452,18 +389,18 @@
                  class_id: class_id,
                  ui_style_id: style_id,
               };
               const ret = await this.getUIStyleInfo(dataInfo)
               const result = await getUIStyleInfo(dataInfo)
               var styledef = "";
               if (ret.result.style_def) {
               if (result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  styledef = result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64
                     .decode(ret.result
                  if (!result.style_def.includes('"')) styledef = Base64
                     .decode(result
                        .style_def);
               }
               const detailstyledef = ret.result.style_def ? JSON.parse(
               const detailstyledef = result.style_def ? JSON.parse(
                  styledef) : {};
               detailstyledef.SelBut_Checked = true;
               if (detailstyledef?.form?.items) {
@@ -502,64 +439,7 @@
               });
               return {}
            }
            // this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (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;
            //       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
            //    } else {
            //       return {}
            //       uni.showModal({
            //          title: this.translateSys("error") + "2",
            //          content: ret.err_msg,
            //          showCancel: false,
            //          confirmText: this.translateSys("cancel")
            //       });
            //    }
            // }).catch(ex => {
            //    // console.log(ex);
            //    uni.showModal({
            //       title: this.translateSys("error") + "2.1",
            //       content: ex.errMsg,
            //       showCancel: false,
            //       confirmText: this.translateSys("cancel")
            //    });
            //    return {}
            // });
         },
@@ -571,15 +451,15 @@
               dict_name: dict.name
            };
            try {
               const res = await this.getDictInfo(dataInfo)
               const result = await dictGetInfo(dataInfo)
               var list = [];
               var itemName = '';
               res.result.dict_item_list.forEach((item) => {
               (result.dict_item_list || []).forEach((item) => {
                  if (item.is_default == '1')
                     itemName = item.name;
                  list.push({
                     text: item.value,
                     value: item.name,
                     text: item.name,
                     value: item.id,
                  });
               });
               //有默认值,显示默认值
@@ -588,9 +468,6 @@
                  formModel[formItem.fieldId] = itemName;
               }
               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({
@@ -602,83 +479,6 @@
            }
         },
         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);
                  }
               })
            })
         },
         getUIStyleInfo(info) { //Mobox3数据类界面样式
            const loginInfo = this.$store.getters.loginid
            const dataSApi = this.$store.getters.getDataSApi
            return new Promise((resolve, reject) => {
               uni.request({
                  url: dataSApi + 'api/class/uistyle/GetInfo?sessionid=' + loginInfo.result
                     .session_id,
                  data: info,
                  method: 'POST',
                  dataType: "json",
                  success: (_res) => {
                     // console.log(_res);
                     var ret = _res.data
                     if (typeof ret == 'string') {
                        try {
                           try {
                              try {
                                 ret = JSON.parse(ret.replace(/\\"/g, '"'));
                              } catch (ex) {
                                 ret = JSON.parse(ret.replace(/\\/g, '\\\\'))
                              }
                           } catch (ex) {
                              ret = JSON.parse(ret.replace(/\\"/g, "'").replace(/[\r\n]/g,
                                 '<br>').replace(/[\t]/g, '    '));
                           }
                        } catch (ex) {
                           console.log(ret)
                           return reject('将getUIStyleInfo【json string】转换为【json object】失败')
                        }
                     }
                     if (ret.err_code == 0) {
                        resolve(ret);
                     } else {
                        reject({
                           "errMsg": ret.err_msg || ret.errMsg
                        });
                     }
                  },
                  fail: (err) => {
                     // console.log(err);
                     reject(err);
                  }
               })
            })
         },
         onClick(item) {
            this.focusFieldId = item.fieldId
         },
@@ -912,458 +712,330 @@
                     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")
                           });
                           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(
                                                "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
                                                   .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的数据
                                    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)
                                 } 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
                                                      ) {
                                                         if (ele.name ==
                                                            'Select' &&
                                                            ele2
                                                            .choice_list
                                                         ) {
                                                            const
                                                               dictItemList = [];
                                                            const
                                                               choiceList =
                                                               ele2
                                                               .choice_list ||
                                                               [];
                                                            for (let d in
                                                                  choiceList) {
                                                               const
                                                                  val =
                                                                  choiceList[
                                                                     d
                                                                  ];
                                                               dictItemList
                                                                  .push({
                                                                     text: val,
                                                                     value: val
                                                                  });
                                                            }
                                                            ele.dict =
                                                               dictItemList;
                                                         }
                                                         ele.value =
                                                            ele2
                                                            .value;
                                                      }
                                                   });
                                             } else {
                                                ele.setting
                                                   .colList
                                                   .forEach(
                                                      async (
                                                         col
                                                      ) => {
                                                         if (
                                                            col) {
                                                            data.forEach(
                                                               async (ele2,
                                                                  index
                                                               ) => {
                                                                  if (col
                                                                     .fieldId ==
                                                                     ele2
                                                                     .attr
                                                                  ) {
                                                                     if (col
                                                                        .name ==
                                                                        'Select' &&
                                                                        ele2
                                                                        .choice_list
                                                                     ) {
                                                                        const
                                                                           dictItemList = [];
                                                                        const
                                                                           choiceList =
                                                                           ele2
                                                                           .choice_list ||
                                                                           [];
                                                                        for (
                                                                           let d in
                                                                              choiceList
                                                                        ) {
                                                                           const
                                                                              val =
                                                                              choiceList[
                                                                                 d
                                                                              ];
                                                                           dictItemList
                                                                              .push({
                                                                                 text: val,
                                                                                 value: val
                                                                              });
                                                                        }
                                                                        col.dict =
                                                                           dictItemList;
                                                                     }
                                                                     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 {
                        uni.showModal({
                           title: this.translateSys("error") +
                              "4",
                           content: ret.err_msg,
                        } 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 (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 => {
                                          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的数据
                                 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)
                              } 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")
                              });
                           }
                        }
                     }
                  }).catch(ex => {
                     // console.log(ex);
                     let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
@@ -1414,11 +1086,13 @@
         //更新分页签中的列表项内容
         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) => {
@@ -1474,6 +1148,7 @@
               })
            });
            pageData.DefList = detailStyleDefList
            $this.$set(this.pageDetail, pageIndex, pageData)
         },
         //加载正在码盘内容
@@ -1482,11 +1157,13 @@
            if (JSON.stringify(data.row) == '{}') {
               return;
            }
            const pageData = this.pageDetail.find((page) => {
            const pageIndex = this.pageDetail.findIndex((
               page, index2, arr) => {
               return data.page_name == page.Name;
            });
            if (!pageData)
            })
            if (pageIndex < 0)
               return
            const pageData = this.pageDetail[pageIndex]
            var styleStr = JSON.stringify(pageData.StyleDef);
            var detailStyle = JSON.parse(styleStr);
@@ -1521,6 +1198,7 @@
                  });
                  pageData.DefList.push(detailStyle);
                  this.$set(this.pageDetail, pageIndex, pageData)
               });
            }
@@ -1528,11 +1206,14 @@
         //加载已码盘内容
         viewAceionContent(data) {
            var $this = this;
            const pageData = $this.pageDetail.find((page) => {
            const pageIndex = $this.pageDetail.findIndex((
               page, index2, arr) => {
               return data.page_name == page.Name;
            });
            if (!pageData)
            })
            if (pageIndex < 0)
               return
            const pageData = $this.pageDetail[pageIndex]
            pageData.ExtData = data.ext_data || {}
            if (JSON.stringify(data.content) == '{}') {
@@ -1619,13 +1300,116 @@
                  } else {
                     pageData.DefList.push(detailStyle); //待分拣
                  }
                  $this.activelist.push({
                     active: false
                  });
                  // $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
@@ -1737,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) {
@@ -1905,250 +1684,327 @@
            };
            // 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")
                     });
                     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
                                             ] =
                                             '';
                                       }
                                    });
                                 uni.showModal({
                                    title: this
                                       .translateSys(
                                          "tip"
                                       ),
                                    content: this
                                       .translate(
                                          'execute_event_success'
                                       ),
                                    showCancel: false,
                                    confirmText: this
                                       .translateSys(
                                          "cancel"
                                       )
                                 });
                              } 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)
                              } 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 ($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,
                  } 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
                                          ] =
                                          '';
                                    }
                                 });
                              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(
                                          "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 ==
                              "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)
                           } 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 ($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")
                        });
                     }
                  }
               }
               pageParam.okLoading = false
            }).catch(ex => {
               pageParam.okLoading = false