cuiqian2004
2025-08-01 fa73abee6209cd6f7c62c61c271826f7d413035d
pages/modal/form/index.vue
@@ -2,7 +2,8 @@
   <view class="uni-page-modal-form" :class="largeMode?'large-mode':''">
      <view class="view-content">
         <!-- 表头样式 -->
         <OIForm ref="refBaseForm" class="v-head-style" :form="head_styledef.form" :focusId="focusFieldId"
         <OIForm ref="refBaseForm" class="v-head-style" :form="head_styledef.form"
            :hiddenIds="head_styledef.hiddenIds ?head_styledef.hiddenIds :[] " :focusId="focusFieldId"
            @on-click="onClick" @on-focus="ontap" @on-change="onEnterChange" @on-click-prefix="classAttr_extButton"
            @on-click-suffix="classAttr_extButton"></OIForm>
      </view>
@@ -64,7 +65,7 @@
      },
      data() {
         return {
               largeMode: getApp().globalData.largeMode || false,
            largeMode: getApp().globalData.largeMode || false,
            okLoading: false,
            title: this.translateSys('add2'),
            type: '',
@@ -471,6 +472,7 @@
                     var tip = result.info ? typeof result.info ==
                        'string' ? result.info :
                        result.info.join('<br/>') : '';
                     tip = tip || result.err_info
                     if (tip) uni.showModal({
                        title: this.translateSys('tip'),
                        content: tip,
@@ -478,53 +480,71 @@
                        confirmText: this.translateSys(
                           'close')
                     });
                     if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                        if (result.result_type == 2) {
                     if (result.result_type == 0 && result.action) {
                        result.action.forEach(item => {
                           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 (typeof result.result == 'string') {
                           if (result.result) {
                              uni.showModal({
                                 title: this.translateSys('tip'),
                                 content: result.result,
                                 showCancel: false,
                                 confirmText: this.translateSys('close')
                              });
                           } else if (item.action_type ==
                              "set_dlg_attr") {
                              // value = {"attr":"xxx", "value":"xxx"}
                              var data = item.value;
                              $this.setFormValues(data)
                           }
                        });
                     } else {
                        }
                        try {
                           var actionList = result.action || []
                           actionList.forEach(item => {
                        if (result.info) {
                           uni.showModal({
                              title: this.translateSys(
                                 "error") + "4.3",
                              content: result.info,
                              showCancel: false,
                              confirmText: this
                                 .translateSys('close')
                              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 (action.action_type == 'set_dlg_attr_show') {
                                 var data = action.value;
                                 $this.setFormItemVisible(data)
                              }
                           });
                        } catch (ex) {
                           let actionList = (result.action || []).map(a => a.action_type).join(';')
                           let tip = typeof ex == 'string' ? ex : ex.message
                           tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                           uni.showModal({
                              title: this.translateSys('tip'),
                              content: tip,
                              showCancel: false,
                              confirmText: this.translateSys('close')
                           });
                           console.log(ex)
                           return
                        }
                     }
                  }
               }
@@ -549,8 +569,8 @@
            //console.log(e.target)
            this.focusOldFieldId = item.fieldId
            getApp().onScan((result) => {
               console.log(result.decodedata);
               item.value = result.decodedata;
               console.log(result);
               item.value = result;
               var $this = this;
               let newVal = item.value.trim()
               if (newVal) {
@@ -776,6 +796,7 @@
                        var tip = result.info ? typeof result.info ==
                           'string' ? result.info :
                           result.info.join('<br/>') : '';
                        tip = tip || result.err_info
                        if (tip) uni.showModal({
                           title: this.translateSys('tip'),
                           content: tip,
@@ -783,50 +804,71 @@
                           confirmText: this.translateSys(
                              'close')
                        });
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                           if (result.result_type == 2) {
                        if (result.result_type == 0 && result.action) {
                           result.action.forEach(item => {
                              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 (typeof result.result == 'string') {
                              if (result.result) {
                                 uni.showModal({
                                    title: this.translateSys('tip'),
                                    content: result.result,
                                    showCancel: false,
                                    confirmText: this.translateSys('close')
                                 });
                              } else if (item.action_type ==
                                 "set_dlg_attr") {
                                 // value = {"attr":"xxx", "value":"xxx"}
                                 var data = item.value;
                                 $this.setFormValues(data)
                              }
                           });
                        } else {
                           }
                           try {
                              var actionList = result.action || []
                              actionList.forEach(item => {
                           if (result.info) {
                              uni.showModal({
                                 title: this.translateSys(
                                    "error") + "4.3",
                                 content: result.info,
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys('close')
                                 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 (action.action_type ==
                                    'set_dlg_attr_show') {
                                    var data = action.value;
                                    $this.setFormItemVisible(data)
                                 }
                              });
                           } catch (ex) {
                              let actionList = (result.action || []).map(a => a.action_type)
                                 .join(';')
                              let tip = typeof ex == 'string' ? ex : ex.message
                              tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                              uni.showModal({
                                 title: this.translateSys('tip'),
                                 content: tip,
                                 showCancel: false,
                                 confirmText: this.translateSys('close')
                              });
                              console.log(ex)
                              return
                           }
                        }
@@ -890,7 +932,8 @@
                                 if (col.useDict) {
                                    col.dict = dictItemList;
                                 } else {
                                    col.selections = dictItemList;
                                    col.selections =
                                       dictItemList;
                                 }
                              }
                           }
@@ -924,6 +967,28 @@
               head_styledef: head_styledef
            })
         },
         setFormItemVisible(attrs) {
            if (!Array.isArray(attrs)) {
               return
            }
            const head_styledef = this.head_styledef
            if (!head_styledef.hiddenIds) {
               head_styledef.hiddenIds = []
            }
            attrs.forEach((attr) => {
               let index = head_styledef.hiddenIds.findIndex((id) => id == attr.attr);
               if (attr.show) {
                  if (index > -1) head_styledef.hiddenIds.splice(index, 1);
               } else {
                  if (index == -1) head_styledef.hiddenIds.push(attr.attr);
               }
            });
            this.setData({
               head_styledef: head_styledef
            })
         },
         popupChange(e) {
            console.log('当前模式:' + e.type + ',状态:' + e.show);
         },
@@ -1089,82 +1154,71 @@
                     .info
                     .join(
                        '<br/>') : '';
                  tip = tip || data.err_info
                  if (tip) uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip,
                     showCancel: false,
                     confirmText: this.translateSys('close')
                  });
                  var actionlist = data.action;
                  if (actionlist) {
                     console.log(actionlist);
                     for (var i = 0; i < actionlist.length; i++) {
                        var action = actionlist[i];
                        if (action.action_type == 'set_dlg_attr') {
                           var result = action.value;
                           $this.setFormValues(result)
                        } else if (action.action_type == 'set_dlg_attr_show') {
                           var result = action.value;
                           result.forEach(async (attr, key) => {
                              $this.head_styledef.form.items
                                 .forEach(
                                    async (ele,
                                       index) => {
                                       //判断是否是栅格表单
                                       if (ele.name != 'Layout') {
                                          if (ele.fieldId == attr
                                             .attr) {
                                             ele.show = attr
                                                .show;
                                          }
                                       } else if (ele.name ==
                                          'Layout') {
                                          ele.setting.colList
                                             .forEach(
                                                col => {
                                                   if (col) {
                                                      if (col
                                                         .fieldId ==
                                                         attr
                                                         .attr
                                                      ) {
                                                         col.show =
                                                            attr
                                                            .show;
                                                      }
                                                   }
                                                });
                                       }
                                    });
                           });
                           var head_styledef = JSON.parse(JSON.stringify($this.$data
                              .head_styledef));
                           $this.head_styledef = [];
                           $this.head_styledef = head_styledef;
                           // console.log($this.head_styledef);
                        } else if (action.action_type == 'set_global_attr') {
                           $this.global_attr = action.value || [];
                        } else {
                  if ([0, 2, 3, 4, -1].includes(data.result_type)) {
                     if (data.result_type == 2) {
                        $this.setFormValues(data.result || [])
                     } else if (typeof data.result == 'string') {
                        if (data.result) {
                           uni.showModal({
                              title: this.translateSys("tip"),
                              content: this.translateSys(
                                    "quotation_mark_left") +
                                 action
                                 .action_type + this.translateSys(
                                    "quotation_mark_right") + this
                                 .translate(
                                    "tip_action_unprocessed"),
                              title: this.translateSys('tip'),
                              content: data.result,
                              showCancel: false,
                              confirmText: this.translateSys('close')
                           });
                        }
                     }
                     try {
                        var actionlist = data.action || []
                        for (var i = 0; i < actionlist.length; i++) {
                           var action = actionlist[i];
                           if (action.action_type == 'set_dlg_attr') {
                              var result = action.value;
                              $this.setFormValues(result)
                           } else if (action.action_type == 'set_dlg_attr_show') {
                              var result = action.value;
                              $this.setFormItemVisible(result)
                           } else if (action.action_type == 'set_global_attr') {
                              $this.global_attr = action.value || [];
                           } else {
                              uni.showModal({
                                 title: this.translateSys("tip"),
                                 content: this.translateSys(
                                       "quotation_mark_left") +
                                    action
                                    .action_type + this.translateSys(
                                       "quotation_mark_right") + this
                                    .translate(
                                       "tip_action_unprocessed"),
                                 showCancel: false,
                                 confirmText: this.translateSys('close')
                              });
                           }
                        }
                     } catch (ex) {
                        let actionList = (data.action || []).map(a => a.action_type).join(';')
                        let tip = typeof ex == 'string' ? ex : ex.message
                        tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                        uni.showModal({
                           title: this.translateSys('tip'),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys('close')
                        });
                        console.log(ex)
                        return
                     }
                  }
                  console.log($this.head_styledef);
                  if (data.result) {
                     $this.setFormValues(data.result)
                  }
               }
            }).catch(ex => {
@@ -1268,16 +1322,28 @@
                     .info
                     .join(
                        '<br/>') : '';
                  tip = tip || data.err_info
                  if (tip) uni.showModal({
                     title: $this.translateSys("tip"),
                     content: tip,
                     showCancel: false,
                     confirmText: $this.translateSys('close')
                  });
                  if ([0, 2, 3, 4, -1].includes(data.result_type)) {
                     if (data.result_type == 2) {
                  if (data != "") {
                     var actions = data.action;
                     if (actions) {
                     } else if (typeof data.result == 'string') {
                        if (data.result) {
                           uni.showModal({
                              title: this.translateSys('tip'),
                              content: data.result,
                              showCancel: false,
                              confirmText: this.translateSys('close')
                           });
                        }
                     }
                     try {
                        var actions = data.action || []
                        for (var i = 0; i < actions.length; i++) {
                           var action = actions[i];
                           console.log(action)
@@ -1356,7 +1422,8 @@
                                 $this.setData({
                                    check_list: val.config
                                 })
                                 if (val.config.appear_style == 'sideslip') //判断是否是侧滑
                                 if (val.config.appear_style ==
                                    'sideslip') //判断是否是侧滑
                                    $this.setData({
                                       popupType: "right"
                                    })
@@ -1376,7 +1443,8 @@
                                    popupParam: popupParam
                                 })
                              }
                           } else if (action.action_type == 'open_project_query_dlg') {
                           } else if (action.action_type ==
                              'open_project_query_dlg') {
                              //console.log(action.value.select_range);
                              //console.log(action.value.mulit_select);
                              var priRel = '-1';
@@ -1441,7 +1509,8 @@
                                 title: $this.translateSys("tip"),
                                 content: $this.translateSys(
                                       "quotation_mark_left") +
                                    action.action_type + $this.translateSys(
                                    action.action_type + $this
                                    .translateSys(
                                       "quotation_mark_right") + $this
                                    .translate(
                                       "tip_action_unprocessed"),
@@ -1450,17 +1519,20 @@
                              });
                           }
                        }
                     } catch (ex) {
                        let actionList = (data.action || []).map(a => a.action_type).join(';')
                        let tip = typeof ex == 'string' ? ex : ex.message
                        tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                        uni.showModal({
                           title: this.translateSys('tip'),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys('close')
                        });
                        console.log(ex)
                        return
                     }
                  } else {
                     uni.showModal({
                        title: $this.translateSys('tip') + "5.2",
                        content: $this.translateSys("quotation_mark_left") +
                           "before_click_button" + $this.translateSys(
                              "quotation_mark_right") + $this.translateSys(
                              "comma") + 'event_id' + eventid,
                        showCancel: false,
                        confirmText: $this.translateSys('close')
                     });
                  }
               }
@@ -1665,8 +1737,10 @@
                     value: obj_attr[a],
                  })),
               };
               let global_attr = Base64.encode(JSON.stringify(this.global_attr))
               let data_json = Base64.encode(JSON.stringify(this.data_json))
               let global_attr = Base64.encode(JSON.stringify(this
                  .global_attr))
               let data_json = Base64.encode(JSON.stringify(this
                  .data_json))
               let ext_info = Base64.encode(JSON.stringify(this.ext_info))
               var dataInfo = {
                  ed_type: "0",
@@ -1685,7 +1759,8 @@
                  data_json,
                  ext_info,
                  compose_info: '',
                  input_param: Base64.encode(JSON.stringify(input_param)),
                  input_param: Base64.encode(JSON.stringify(
                     input_param)),
               };
               await runCustomEvent(dataInfo)
               return true
@@ -1743,7 +1818,8 @@
                  .global_attr))
               let data_json = Base64.encode(JSON.stringify(this
                  .data_json))
               let ext_info = Base64.encode(JSON.stringify(this.ext_info))
               let ext_info = Base64.encode(JSON.stringify(this
                  .ext_info))
               await runCustomEvent({
                  ed_type: 0,
@@ -1762,9 +1838,11 @@
               let exStr = JSON.stringify(ex)
               if (exStr == "{}")
                  exStr = ex
               let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
               let tip = typeof ex.errMsg == "string" ? ex
                  .errMsg : exStr
               uni.showModal({
                  title: this.translateSys("tip") + "8.1",
                  title: this.translateSys("tip") +
                     "8.1",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
@@ -1778,18 +1856,22 @@
               var obj_attr = this.head_styledef.form.model;
               let inputParam = {
                  id: "",
                  attrs: Object.keys(obj_attr).map((a) => ({
                     attr: a,
                     value: obj_attr[a],
                  })),
                  attrs: Object.keys(obj_attr).map((a) =>
                     ({
                        attr: a,
                        value: obj_attr[a],
                     })),
               };
               let input_param = Base64.encode(JSON.stringify(
                  inputParam));
               let global_attr = Base64.encode(JSON.stringify(this
               let global_attr = Base64.encode(JSON.stringify(
                  this
                  .global_attr))
               let data_json = Base64.encode(JSON.stringify(this
               let data_json = Base64.encode(JSON.stringify(
                  this
                  .data_json))
               let ext_info = Base64.encode(JSON.stringify(this
               let ext_info = Base64.encode(JSON.stringify(
                  this
                  .ext_info))
               await runCustomEvent({
@@ -1809,13 +1891,16 @@
               let exStr = JSON.stringify(ex)
               if (exStr == "{}")
                  exStr = ex
               let tip = typeof ex.errMsg == "string" ? ex.errMsg :
               let tip = typeof ex.errMsg == "string" ? ex
                  .errMsg :
                  exStr
               uni.showModal({
                  title: this.translateSys("tip") + "8.2",
                  title: this.translateSys("tip") +
                     "8.2",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
                  confirmText: this.translateSys(
                     'close')
               });
               return false
            }
@@ -1823,9 +1908,11 @@
         showError(ex) {
            uni.showModal({
               title: this.translateSys('error'),
               content: typeof ex == "string" ? ex : typeof ex.errMsg == "string" ? ex.errMsg : "",
               content: typeof ex == "string" ? ex : typeof ex.errMsg == "string" ? ex
                  .errMsg : "",
               showCancel: false,
               confirmText: this.translateSys('cancel')
               confirmText: this.translateSys(
                  'cancel')
            })
         },
         translate(t) {