cuiqian2004
2025-08-29 f9aa1010e164e21a3c8147e0f2e13b828676800a
pages/modal/3202.vue
@@ -181,12 +181,143 @@
            await this.loadInitialEvent();
         },
         async loadInitialEvent() {
            try {
               if (this.initialEvent.id) {
                  this.onChange(this.initialEvent)
               const event = this.initialEvent
               if (event.id) {
                  var obj_attr = this.head_styledef.form.model;
                  console.log(obj_attr);
                  var input_param = Base64.encode(
                     JSON.stringify({
                        id: "",
                        attrs: Object.keys(obj_attr).map((a) => ({
                           attr: a,
                           value: obj_attr[a] || "",
                        }))
                     })
                  );
                  var $this = this;
                  var dataInfo = {
                     ed_type: 0,
                     start_transaction: true,
                     class_id: this.head_styledef.form.clsId,
                     class_name: '',
                     event_id: event.id,
                     event_name: '',
                     data_obj_id: '',
                     obj_attr: obj_attr,
                     prj_id: '',
                     ref_cls_id: '',
                     rel_obj_id: '',
                     user_login: '',
                     data_json: '',
                     compose_info: '',
                     ext_info: '',
                     global_attr: '',
                     input_param: input_param,
                  };
                  runCustomEvent(dataInfo).then(result => {
                     console.log(result);
                     if (result.ret != 0 && result.ret != 1) {
                        let cls_name = result.event_info?.cls_name
                        let event_name = result.event_info?.event_name
                        tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                           result
                           .err_info
                           .join('\n') : ''
                        if (result.ret == 801) {
                           if (this.param.Only_Script_Error) {
                              let pos = tip.indexOf(":");
                              if (pos > -1) tip = tip.substring(pos + 1);
                           }
                        }
                        if (cls_name && event_name) tip =
                           `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                        if (result.ret == 801) showInfo(tip)
                        else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                        this.saving = false
                        return false
                     } else {
                        var tip = result.info ? typeof result.info == 'string' ? result.info :
                           result.info.join('\n') : '';
                        tip = tip || result.err_info
                        let time = result.info_time || 0
                        if (time)
                           showError(tip, this.translateSys('tip'))
                        else
                           showInfo(tip)
                        if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                           if (result.result_type == 2) {
                           } else if (typeof result.result == 'string') {
                              showInfo(result.result)
                           }
                           try {
                              var actionlist = result.action || []
                              for (var j = 0; j < actionlist.length; j++) {
                                 var action = actionlist[j];
                                 var action_type = action.action_type;
                                 var value = action.value;
                                 if (action_type == "set_query_condition") {
                                    $this.wheres = value.condition;
                                    $this.orderby = value.order ? value.order : ""
                                    $this.pageindex = 1;
                                    $this.query_id = "";
                                    $this.detail1StyleDefList = [];
                                    $this.loadDataGetList();
                                 } else if (action_type ==
                                    "set_dlg_attr") {
                                    $this.setFormValues(action.value)
                                 } else if (action_type == "set_subtable_page_content") {
                                    if (value.clear_confirm != false && value.clear == true &&
                                       $this.detail1StyleDefList.length > 0
                                    ) { //判断是否清空页签内容,正在码盘是否有数据
                                       uni.showModal({
                                          title: this.translateSys('tip'),
                                          content: this.translate(
                                             "are_you_sure_clear_data"),
                                          cancelText: $this.translateSys('ok'),
                                          confirmText: $this.translateSys('cancel'),
                                          success: function(res) {
                                             if (res.cancel) {
                                                $this.detail1StyleDefList = [];
                                                $this.viewAceionContent(value);
                                             } else if (res.confirm) {
                                                $this.detail1StyleDefList = [];
                                                $this.viewAceionContent(value);
                                             }
                                          }
                                       });
                                    } else {
                                       $this.detail1StyleDefList = [];
                                       $this.viewAceionContent(value);
                                    }
                                 }
                              }
                           } catch (ex) {
                              let actionList = (result.action || []).map(a => a.action_type).join(
                                 ';')
                              let tip = typeof ex == 'string' ? ex : ex.message
                              tip = `执行脚本返回的${actionList}时出现异常,请检查脚本返回的数据格式是否正确。${tip}`
                              showError(tip, this.translateSys('tip'))
                              return
                           }
                        }
                     }
                  }).catch(ex => {
                     // console.log(ex);
                     showError(ex, this.translateSys("error") + "8.1")
                  });
               }
            } catch (ex) {
               showError(ex, this.translateSys('error'))
               showError(ex, this.translateSys('error') + "8.2")
            }
         },
@@ -540,10 +671,9 @@
                              uni.navigateTo({
                                 url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
                                 events: {
                                    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                                    ExitViewEvent: function(data) {
                                       console.log(data);
                                       this.runCustomEvent(data);
                                    ExitViewPage: function() {
                                       $this.loadInitialEvent()
                                    }
                                 }
                              });
@@ -698,14 +828,13 @@
                                 url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
                                 events: {
                                    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                                    ExitViewEvent: function(data) {
                                       console.log(data);
                                       this.runCustomEvent(data);
                                    ExitViewPage: function() {
                                       $this.loadInitialEvent()
                                    }
                                 }
                              });
                           }
                           else if (item.action_type == "goback_to_pre_page") {
                           } else if (item.action_type == "goback_to_pre_page") {
                              //返回上一页
                              uni.navigateBack({
                                 delta: 1, //返回层数,2则上上页
@@ -1198,79 +1327,76 @@
         async runCustomEvent(dataInfo) {
            try {
               var $this = this;
               runCustomEvent(dataInfo).then(result => {
                  console.log(result);
               const result = await runCustomEvent(dataInfo)
               console.log(result);
                  if (result.ret != 0 && result.ret != 1) {
                     let cls_name = result.event_info?.cls_name
                     let event_name = result.event_info?.event_name
                     tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                        result
                        .err_info
                        .join('\n') : ''
                     if (result.ret == 801) {
                        if (this.param.Only_Script_Error) {
                           let pos = tip.indexOf(":");
                           if (pos > -1) tip = tip.substring(pos + 1);
                        }
               if (result.ret != 0 && result.ret != 1) {
                  let cls_name = result.event_info?.cls_name
                  let event_name = result.event_info?.event_name
                  tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info :
                     result
                     .err_info
                     .join('\n') : ''
                  if (result.ret == 801) {
                     if (this.param.Only_Script_Error) {
                        let pos = tip.indexOf(":");
                        if (pos > -1) tip = tip.substring(pos + 1);
                     }
                     if (cls_name && event_name) tip =
                        `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                     if (result.ret == 801) showInfo(tip)
                     else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                     this.saving = false
                     return false
                  } else {
                     var tip = result.info ? typeof result.info == 'string' ? result.info :
                        result.info.join('\n') : '';
                     tip = tip || result.err_info
                     let time = result.info_time || 0
                     if (time)
                        showError(tip, this.translateSys('tip'))
                     else
                        showInfo(tip)
                     if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                        if (result.result_type == 2) {
                  }
                  if (cls_name && event_name) tip =
                     `执行“${cls_name}”数据类的“${event_name}”脚本时返回错误:${tip}`
                  if (result.ret == 801) showInfo(tip)
                  else showError(`${tip},提示:${result.ret}`, this.translateSys('tip'))
                  this.saving = false
                  return false
               } else {
                  var tip = result.info ? typeof result.info == 'string' ? result.info :
                     result.info.join('\n') : '';
                  tip = tip || result.err_info
                  let time = result.info_time || 0
                  if (time)
                     showError(tip, this.translateSys('tip'))
                  else
                     showInfo(tip)
                  if ([0, 2, 3, 4, -1].includes(result.result_type)) {
                     if (result.result_type == 2) {
                        } else if (typeof result.result == 'string') {
                           showInfo(result.result)
                        }
                        var actionList = result.action || []
                        actionList.forEach(item => {
                           if (item.action_type ==
                              "goback_to_pre_page") { //返回上一页
                              var value = item.value;
                              uni.navigateBack({
                                 delta: 1, //返回层数,2则上上页
                              });
                           } else {
                              showInfo(this
                                 .translateSys(
                                    "quotation_mark_left"
                                 ) +
                                 item
                                 .action_type +
                                 this
                                 .translateSys(
                                    "quotation_mark_right"
                                 ) +
                                 this
                                 .translate(
                                    "tip_action_unprocessed"
                                 ))
                           }
                        });
                     } else if (typeof result.result == 'string') {
                        showInfo(result.result)
                     }
                     var actionList = result.action || []
                     actionList.forEach(item => {
                        if (item.action_type ==
                           "goback_to_pre_page") { //返回上一页
                           var value = item.value;
                           uni.navigateBack({
                              delta: 1, //返回层数,2则上上页
                           });
                        } else {
                           showInfo(this
                              .translateSys(
                                 "quotation_mark_left"
                              ) +
                              item
                              .action_type +
                              this
                              .translateSys(
                                 "quotation_mark_right"
                              ) +
                              this
                              .translate(
                                 "tip_action_unprocessed"
                              ))
                        }
                     });
                  }
               }).catch(ex => {
                  // console.log(ex);
                  showError(ex, this.translateSys("error") + "9.1")
               });
               }
            } catch (ex) {
               showError(ex, this.translateSys('error') + "9.2")