cuiqian2004
2025-03-20 d8872903e30f0a53abefcd279ae03258341e931f
pages/modal/5601.vue
@@ -1,98 +1,10 @@
<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">
            <!-- 普通布局 -->
            <uni-forms-item v-if="item.name != 'Layout'" :label="item.label ?item.label +':':'' "
               :label-width="item.labelWidth+'px'">
               <uni-data-picker v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''"
                  v-model="item.value" :localdata="item.useDict ? item.dict : item.selections"
                  @change="onEnterChange(item)" :readonly="item.disabled" :clear-icon="false"
                  :popup-title="item.label"></uni-data-picker>
               <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'">
                  <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
                     @click="classAttr_extButton(item)">&#xe568;</text>
                  <input class="uni-input" :class="item.disabled?'input-disabled':''"
                     :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)"
                     :maxlength="-1" />
                  <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
                     @click="classAttr_extButton(item)"></text>
               </view>
               <!-- 复选框 -->
               <checkbox-group v-if="item.name=='Checkbox'" :class="item.disabled?'input-disabled':''"
                  :disabled="item.disabled" @change="onCheckBoxValue" :data-attr="item.fieldId"
                  :data-index="index">
                  <label v-for="(item2) in item.selections" :key="item2.value">
                     <checkbox :value="item2.value" :checked="item.value.includes(item2.value)" />
                     <text>{{item2.label}}</text>
                  </label>
               </checkbox-group>
               <!-- 单选框 -->
               <radio-group v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''"
                  :disabled="item.disabled" @change="onRadioBoxValue" :data-attr="item.fieldId"
                  :data-index="index">
                  <label v-for="(item2) in item.selections" :key="item2.value">
                     <radio :value="item2.value" :checked="item2.value === item.value" />
                     <text>{{item2.label}}</text>
                  </label>
               </radio-group>
               <!-- Switch开关 -->
               <switch class="input-switch" v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''"
                  :disabled="item.disabled" v-model="item.value" @change="onEnterChange(item)" />
            </uni-forms-item>
            <!-- 栅格布局 -->
            <uni-row v-else :gutter="item.setting.gutter">
               <uni-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 v-if="col!=null" :label="col.label ? col.label +':':''"
                     :label-width="col.labelWidth+'px'">
                     <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''"
                        v-model="col.value" :localdata="col.useDict ? col.dict : col.selections"
                        @change="onEnterChange(col)" :readonly="col.disabled" :clear-icon="false"
                        :popup-title="col.label"></uni-data-picker>
                     <view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'">
                        <text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]"
                           @click="classAttr_extButton(col)">&#xe568;</text>
                        <input class="uni-input" :class="col.disabled?'input-disabled':''"
                           :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)" :maxlength="-1" />
                        <text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
                           @click="classAttr_extButton(col)"></text>
                     </view>
                     <!-- 复选框 -->
                     <checkbox-group v-if="col.name=='Checkbox'" :class="col.disabled?'input-disabled':''"
                        :disabled="col.disabled" @change="onCheckBoxValue" :data-attr="col.fieldId"
                        :data-index="index" :data-iindex="key">
                        <label v-for="(col2) in col.selections" :key="col2.value">
                           <checkbox :value="col2.value" :checked="col.value.includes(col2.value)" />
                           <text>{{col2.label}}</text>
                        </label>
                     </checkbox-group>
                     <!-- 单选框 -->
                     <radio-group v-if="col.name=='Radio'" :class="col.disabled?'input-disabled':''"
                        :disabled="col.disabled" @change="onRadioBoxValue" :data-attr="col.fieldId"
                        :data-index="index" :data-iindex="key">
                        <label v-for="(col2) in col.selections" :key="col2.value">
                           <radio :value="col2.value" :checked="col2.value === col.value" />
                           <text>{{col2.label}}</text>
                        </label>
                     </radio-group>
                     <!-- Switch开关 -->
                     <switch v-if="col.name=='Switch'" :class="col.disabled?'input-disabled':''"
                        :disabled="col.disabled" v-model="col.value" @change="onEnterChange(col)" />
                  </uni-forms-item>
               </uni-col>
            </uni-row>
         </view>
      </uni-forms>
      <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" :focusId="focusFieldId"
         @click="onClick" @focus="ontap" @change="onEnterChange" @click-prefix="classAttr_extButton"
         @click-suffix="classAttr_extButton"></OIForm>
      <view class="view-content">
         <!-- 码盘子界面 -->
         <view v-if="param.Show_Welcom_Page==false" class="uni-panel-content">
@@ -115,38 +27,8 @@
                              @tap="onPanelClick(ii,style.form.htmlobjId)"
                              :id="'dvpanel'+style.form.htmlobjId"
                              :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">
                                    <!-- 普通布局 -->
                                    <view v-if="item.name!='Layout'">
                                       <text class="txt_title"
                                          :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text>
                                       <span class="form-item-span"
                                          v-if="item.disabled">{{item.value}}</span>
                                       <input class="uni-input" v-if="!item.disabled"
                                          :type="item.name=='InputNumber'?'number':'text'"
                                          v-model="item.value" :disabled="item.disabled"
                                          :placeholder="item.placeholder" :maxlength="-1" />
                                    </view>
                                    <!-- 栅格布局 -->
                                    <uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter">
                                       <uni-col
                                          :span=" item.setting.spanList && item.setting.spanList[key]? 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"
                                                :style="{'width':cols.labelWidth+'px'}">{{cols.label}}:</text>
                                             <span class="form-item-span"
                                                v-if="cols.disabled">{{cols.value}}</span>
                                             <input class="uni-input" v-if="!cols.disabled"
                                                :type="cols.name=='InputNumber'?'number':'text'"
                                                v-model="cols.value" :disabled="cols.disabled"
                                                :placeholder="cols.placeholder" :maxlength="-1" />
                                          </view>
                                       </uni-col>
                                    </uni-row>
                                 </div>
                              </div>
                              <OIForm class="dv-panel-form" :form="style.form" viewMode></OIForm>
                              <div class="dv-panel-button"
                                 v-if="pageData.Select_Button==true || pageData.Row_Button.length > 0">
@@ -163,6 +45,7 @@
                                    {{(btn.Style == 'text'|| btn.Style == 'img_text') ? btn.ShowName :""}}
                                 </button>
                              </div>
                           </div>
                        </checkbox-group>
                     </view>
@@ -238,11 +121,16 @@
      getUIStyleInfo,
      runCustomEvent,
   } from "@/api/data.js"
   import dayjs from "dayjs";
   import OIForm from '@/components/oi-form/index.vue'
   export default {
      name: "PageModal5601",
      modules: {
         Base64,
      },
      components: {
         OIForm,
      },
      data() {
         return {
@@ -738,10 +626,11 @@
               console.log(result.decodedata);
               item.value = result.decodedata;
               var $this = this;
               if (item.oldvalue != item.value && item.value.trim() != "") {
                  item.oldvalue = item.value;
               let newVal = item.value.trim()
               if (newVal) {
                  item.oldvalue = newVal;
                  var attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  this.head_styledef.form.model[attr] = newVal;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  var onSuffixClickCallbackEvent = item.bind
                     .onSuffixClickCallbackEvent; //后图标点击事件
@@ -752,36 +641,60 @@
                  if (onChangeEvent?.id) { //内容变化后事件
                     $this.onChange(onChangeEvent);
                  }
                  if (item.value) { //第一个输入框不为空
                     //初始化,下个输入框focus属性
                     var findd = false
                     for (let i in $this.head_styledef.form.items) {
                        const ele = $this.head_styledef.form.items[i]
                        if (ele.name != "Layout") {
                           if (ele.name == 'Input' || ele.name ==
                              'InputNumber') {
                              if (attr == ele.fieldId) {
                                 findd = true
                              } else {
                                 if (findd) {
                                    $this.setData({
                                       focusFieldId: ele.fieldId
                                    })
                                    break
                                 }
                  //初始化,下个输入框focus属性
                  var findd = false
                  for (let i in $this.head_styledef.form.items) {
                     const ele = $this.head_styledef.form.items[i]
                     if (ele.name != "Layout") {
                        if (ele.name == 'Input' || ele.name ==
                           'InputNumber') {
                           if (attr == ele.fieldId) {
                              findd = true
                           } else {
                              if (findd) {
                                 $this.setData({
                                    focusFieldId: ele.fieldId
                                 })
                                 break
                              }
                           }
                        } else {
                           if (findd) {
                              let curIndex = ele.setting.colList.findIndex((
                                 col, index2, arr) => {
                                 return (col.name == 'Input' || col
                                    .name == 'InputNumber');
                        }
                     } else {
                        if (findd) {
                           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]
                                    .fieldId
                              })
                              if (curIndex > -1) {
                              break
                           }
                        } else {
                           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;
                                 })
                              if (curIndex2 > -1) {
                                 $this.setData({
                                    focusFieldId: ele.setting
                                       .colList[curIndex]
@@ -789,47 +702,27 @@
                                 })
                                 break
                              }
                           } else {
                              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;
                                    })
                                 if (curIndex2 > -1) {
                                    $this.setData({
                                       focusFieldId: ele.setting
                                          .colList[curIndex]
                                          .fieldId
                                    })
                                    break
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            })
         },
         onEnterChange(item) { //回车,点击按钮,取消节点事件
            console.log(item);
            if (item.oldvalue != item.value && item.value.trim() != "") {
               item.oldvalue = item.value;
            let newVal = item.value
            if (typeof item.value == "string") {
               newVal = item.value.trim()
               if (!newVal)
                  return
            }
            if (item.oldvalue != newVal) {
               item.oldvalue = newVal;
               var attr = item.fieldId;
               this.head_styledef.form.model[attr] = item.value;
               this.head_styledef.form.model[attr] = newVal;
               var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
               if (onChangeEvent?.id) { //内容变化后事件
@@ -838,63 +731,7 @@
            }
         },
         onCheckBoxValue(e) { //绑定Model值
            let values = e.detail.value || []
            const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0]
            if (item?.setting?.colList) {
               const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0]
               if (col) {
                  col.value = values
                  let attr = col.fieldId;
                  this.head_styledef.form.model[attr] = col.value;
                  var onChangeEvent = col.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
                  return
               }
            } else {
               if (item) {
                  item.value = values
                  let attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
               }
            }
         },
         onRadioBoxValue(e) { //绑定Model值
            let values = e.detail.value || ""
            const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0]
            if (item?.setting?.colList) {
               const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0]
               if (col) {
                  col.value = values
                  let attr = col.fieldId;
                  this.head_styledef.form.model[attr] = col.value;
                  var onChangeEvent = col.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
                  return
               }
            } else {
               if (item) {
                  item.value = values
                  let attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
               }
            }
         },
         classAttr_extButton(item) {
            var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //后图标点击事件
            var onSuffixClickEvent = item.bind.onSuffixClickEvent; //后图标点击回调
@@ -933,9 +770,9 @@
                  var detail_attr = {};
                  style.form.items.forEach(item => {
                     if (item.name == "Layout") { //判断是否是栅栏格式
                        item.setting.colList.forEach(cols => {
                           if (cols != null) detail_attr[cols
                              .fieldId] = cols.value;
                        item.setting.colList.forEach(col => {
                           if (col != null) detail_attr[col
                              .fieldId] = col.value;
                        });
                     } else
                        detail_attr[item.fieldId] = item.value;
@@ -993,9 +830,9 @@
                  var head_attr = {};
                  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;
                        item.setting.colList.forEach(col => {
                           if (col != null) head_attr[col
                              .fieldId] = col.value;
                        });
                     } else
                        head_attr[item.fieldId] = item.value;
@@ -1091,262 +928,99 @@
                        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 ==
                                    true &&
                                    pageData && pageData
                                    .DefList.length > 0
                                 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
                                                );
                                       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"),
                                       cancelText: $this.translateSys('ok'),
                                       confirmText: $this.translateSys('cancel'),
                                       success: function(res) {
                                          if (res.cancel) {
                                             if (pageData)
                                                pageData.DefList = [];
                                             $this.viewAceionContent(value);
                                          } else if (res.confirm) {
                                             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"
                              ) {
                              } 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();
                                          }
                                       });
                                 }
                                 $this.viewActionSelectRow(value)
                              } 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;
                                    });
                                 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
                                                         );
                                                   }
                                                });
                                       });
                                 }
                                 $this.viewActionRemoveRow(value)
                              } 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"
                              ) {
                              } 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.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;
                                    });
                                 if (pageData) {
                                 const pageIndex = $this.pageDetail.findIndex((page) => {
                                    return value.page_name == page.Name;
                                 });
                                 if (pageIndex > -1) {
                                    const pageData = $this.pageDetail[pageIndex]
                                    pageData.DefList = []
                                    pageData.ExtData = {}
                                    $this.$set(this.pageDetail, pageIndex, pageData)
                                 }
                              } else if (item.action_type ==
                                 "set_dlg_current_edit_attr"
                              ) {
                              } else if (item.action_type == "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.setFormValues(data)
@@ -1424,11 +1098,59 @@
            }
         },
         viewActionSelectRow(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();
                  }
               });
            }
         },
         viewActionRemoveRow(value) {
            if (JSON.stringify(value.row) == '{}') {
               return;
            }
            const pageIndex = $this.pageDetail.findIndex((page, index2, arr) => {
               return value.page_name == page.Name;
            })
            if (pageIndex < 0)
               return
            const pageData = $this.pageDetail[pageIndex]
            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);
                     }
                  });
               });
            }
            $this.$set(this.pageDetail, pageIndex, pageData)
         },
         //更新分页签中的列表项内容
         viewActionSetRow(value) {
            const $this = this
            const pageIndex = $this.pageDetail.findIndex((
               page, index2, arr) => {
            const pageIndex = $this.pageDetail.findIndex((page, index2, arr) => {
               return value.page_name == page.Name;
            })
            if (pageIndex < 0)
@@ -1733,7 +1455,7 @@
               });
            }
            $this.$set(this.pageDetail, pageIndex, pageData)
         },
         setFormValues(attrs) {
            const head_styledef = this.head_styledef
@@ -1815,9 +1537,9 @@
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) head_attr[cols.fieldId] =
                        cols.value;
                  item.setting.colList.forEach(col => {
                     if (col != null) head_attr[col.fieldId] =
                        col.value;
                  });
               } else
                  head_attr[item.fieldId] = item.value;
@@ -1828,9 +1550,9 @@
            var detail_attr = {};
            style.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) detail_attr[cols
                           .fieldId] = cols
                  item.setting.colList.forEach(col => {
                     if (col != null) detail_attr[col
                           .fieldId] = col
                        .value;
                  });
               } else
@@ -2557,11 +2279,14 @@
            const $this = this
            if (btn.Prompt) {
               const sContent = btn.PromptContent || this.translate("confirm")
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: btn.PromptContent || this.translate("confirm"),
                  cancelText: this.translateSys('ok'),
                  confirmText: this.translateSys('cancel'),
                  success: function(res) {
                     if (res.confirm) {
                     if (res.cancel) {
                        $this.onButtonClicked(btn, pageData, -1);
                     }
@@ -2579,8 +2304,10 @@
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: btn.PromptContent || this.translate("confirm"),
                  cancelText: this.translateSys('ok'),
                  confirmText: this.translateSys('cancel'),
                  success: function(res) {
                     if (res.confirm) {
                     if (res.cancel) {
                        $this.onButtonClicked(btn, pageData, index);
                     }
@@ -2651,9 +2378,9 @@
            const objAttr = {}
            row.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) objAttr[cols
                        .fieldId] = cols.value;
                  item.setting.colList.forEach(col => {
                     if (col != null) objAttr[col
                        .fieldId] = col.value;
                  });
               } else
                  objAttr[item.fieldId] = item.value;
@@ -2703,9 +2430,8 @@
            const objAttr = {}
            row.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) objAttr[cols
                        .fieldId] = cols.value;
                  item.setting.colList.forEach(col => {
                     if (col != null) objAttr[col.fieldId] = col.value;
                  });
               } else
                  objAttr[item.fieldId] = item.value;
@@ -2782,9 +2508,9 @@
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) head_attr[cols.fieldId] =
                        cols.value;
                  item.setting.colList.forEach(col => {
                     if (col != null) head_attr[col.fieldId] =
                        col.value;
                  });
               } else
                  head_attr[item.fieldId] = item.value;
@@ -2796,10 +2522,9 @@
               var detail_attr = {};
               style.form.items.forEach(item => {
                  if (item.name == "Layout") { //判断是否是栅栏格式
                     item.setting.colList.forEach(cols => {
                        if (cols != null) detail_attr[
                           cols
                           .fieldId] = cols.value;
                     item.setting.colList.forEach(col => {
                        if (col != null)
                           detail_attr[col.fieldId] = col.value;
                     });
                  } else
                     detail_attr[item.fieldId] = item.value;
@@ -2953,247 +2678,106 @@
                        //   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"
                           ) { //码盘中
                           if (item.action_type == "insert_subtable_page_row") { //码盘中
                              var value = item.value;
                              //加载已经码盘数据
                              $this.viewAceionRow(
                                 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
                                          ] =
                                          '';
                                    }
                                 });
                              $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'
                                    ),
                                 title: $this.translateSys("tip"),
                                 content: $this.translate('execute_event_success'),
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys(
                                       'close'
                                    )
                                 confirmText: $this.translateSys('close')
                              });
                           } else if (item.action_type ==
                              "set_subtable_page_content"
                           ) { //已码盘
                              $this.$data.param
                                 .Show_Welcom_Page =
                                 false;
                              $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
                              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
                                             );
                                    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"),
                                    cancelText: $this.translateSys('ok'),
                                    confirmText: $this.translateSys('cancel'),
                                    success: function(res) {
                                       if (res.cancel) {
                                          if (pageData)
                                             pageData.DefList = [];
                                          $this.viewAceionContent(value);
                                       } else if (res.confirm) {
                                          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 ==
                              "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;
                                 });
                           } else if (item.action_type ==
                              "remove_subtable_page_row") { //清除面板中指定id的数据
                              let value = item.value;
                              $this.viewActionRemoveRow(value)
                           } else if (item.action_type == "set_subtable_page_row") {
                              $this.viewActionSetRow(item.value)
                           } else if (item.action_type == "set_subtable_page_ext_data") {
                              let value = item.value;
                              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;
                                 });
                              if (pageData) {
                                 pageData
                                    .DefList = []
                                 pageData
                                    .ExtData = {}
                              const pageIndex = $this.pageDetail.findIndex((page) => {
                                 return value.page_name == page.Name;
                              });
                              if (pageIndex > -1) {
                                 const pageData = $this.pageDetail[pageIndex]
                                 pageData.DefList = []
                                 pageData.ExtData = {}
                                 $this.$set(this.pageDetail, pageIndex, pageData)
                              }
                           } else if (item
                              .action_type ==
                              "set_dlg_current_edit_attr"
                           ) {
                              if ($this
                                 .focusOldFieldId ==
                                 item.value)
                           } else if (item.action_type == "set_dlg_current_edit_attr") {
                              if ($this.focusOldFieldId == item.value)
                                 $this.setData({
                                    focusFieldId: ""
                                 })
                              else {
                                 $this.setData({
                                    focusFieldId: $this
                                       .focusOldFieldId
                                    focusFieldId: $this.focusOldFieldId
                                 })
                              }
                              $this.$nextTick(() => {
                                 $this
                                    .setData({
                                       focusFieldId: item
                                          .value
                                    })
                                 $this.setData({
                                    focusFieldId: item.value
                                 })
                              });
                           } else if (item.action_type ==
                              "set_dlg_attr") {
@@ -3204,12 +2788,8 @@
                        });
                     } else {
                        if ($this.$data.After_OK_Event.ID !=
                           event
                           .ID) { //判断当前事件是否是确定后事件
                           $this.sava(pageParam, $this.$data
                              .After_OK_Event); //执行确定后事件
                        if ($this.$data.After_OK_Event.ID != event.ID) { //判断当前事件是否是确定后事件
                           $this.sava(pageParam, $this.$data.After_OK_Event); //执行确定后事件
                        }
                     }
@@ -3217,12 +2797,10 @@
                     if (result.info) {
                        uni.showModal({
                           title: this.translateSys(
                              "tip"),
                           title: this.translateSys("tip"),
                           content: result.info,
                           showCancel: false,
                           confirmText: this
                              .translateSys('close')
                           confirmText: this.translateSys('close')
                        });
                     }
                  }
@@ -3234,11 +2812,8 @@
               let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
               uni.showModal({
                  title: this.translateSys("error") + "8.1",
                  content: this.translate(
                        "execute_after_ok_event_failed") +
                     this.translateSys(
                        "comma") +
                     tip,
                  content: this.translate("execute_after_ok_event_failed") +
                     this.translateSys("comma") + tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
@@ -3309,7 +2884,7 @@
            }
            .uni-icon {
               padding: 8rpx;
               padding: 10rpx 5rpx;
               font-size: 32rpx;
               color: rgb(192, 196, 204);
            }
@@ -3366,8 +2941,6 @@
            background-color: #ddd !important;
            color: #888 !important;
         }
         .btn-left {
            padding: 20rpx;
@@ -3439,7 +3012,7 @@
      .uni-icon {
         /* border: 1px solid red; */
         width: 8%;
         width: 30rpx;
         font-family: uniicons;
         font-size: 40rpx;
         font-weight: 400;
@@ -3455,46 +3028,55 @@
      .dv-panel {
         background-color: #efefef;
         padding: 20rpx 20rpx 10rpx 0px;
         padding: 10rpx 10rpx 10rpx 0px;
         border-radius: 12rpx;
         margin: 10rpx 0 20rpx 0;
         text-align: right;
         .txt_title {
            font-size: 28rpx;
            text-align: right;
            display: inline-block;
         }
         .dv-panel-form {
            padding: 0px;
            margin: 0;
         input {
            vertical-align: middle;
            display: inline-block;
            border: 1px solid #d5d5d5;
            width: 68%;
            height: 48rpx;
            line-height: 28rpx;
            background: #FFF;
            border-radius: 7px !important;
            color: #2d8cf0;
            padding: 6rpx 8rpx 8rpx;
            font-size: 28rpx;
            font-family: inherit;
            box-shadow: none !important;
            transition-duration: 0.1s;
            margin-top: 0rpx;
         }
            .dv-panel-form-item {
               margin: 0;
               padding: 0px;
            }
         input::-webkit-input-placeholder {
            font-size: 10rpx;
         }
            .uni-forms-item {
               padding-bottom: 5rpx;
               margin-bottom: 0;
         .form-item-span {
            vertical-align: text-top;
            color: #2d8cf0;
            white-space: normal;
            word-break: break-all;
            display: inline-block;
            width: calc(100% - 100px);
               .uni-forms-item__label {
                  height: 20px !important;
                  padding: 0 10rpx 0 0 !important;
               }
               .uni-input {
                  width: calc(100% - 12rpx);
                  padding: 5rpx;
                  border: 1px solid #d5d5d5;
                  color: #2d8cf0;
                  height: 20px;
                  background: #FFF;
                  line-height: 20px;
                  border-radius: 6px !important;
                  font-size: 14px;
                  font-family: inherit;
                  box-shadow: none !important;
                  transition-duration: 0.1s;
                  vertical-align: middle;
               }
               .form-item-span {
                  vertical-align: text-top;
                  color: #2d8cf0;
                  white-space: normal;
                  word-break: break-all;
                  width: 100%;
               }
            }
         }
         .dv-panel-button {
@@ -3522,15 +3104,6 @@
      }
      .dv-panel-input {
         width: 100%;
         display: inline-block;
         text-align: left;
         .dv-input {
            margin-bottom: 2rpx;
         }
      }
      .logo {
         height: 100rpx;
@@ -3675,7 +3248,7 @@
      .popup-footer {
         float: right;
         position: absolute;
         bottom:10rpx;
         bottom: 10rpx;
         right: 20rpx;
      }