cuiqian2004
5 天以前 07925905f1a596e20e980de6d42db217abb753b0
pages/modal/3200_view.vue
@@ -39,6 +39,12 @@
   } from '@/js/Base64.js';
   import classUtils from "@/js/utils.js"
   import {
      showInfo,
      showError,
      showLoading,
      hideLoading
   } from "@/js/Page.js"
   import {
      appGetInfo,
      dictGetInfo
   } from "@/api/mobox.js"
@@ -92,55 +98,61 @@
            },
         };
      },
      onReady() {
         uni.setNavigationBarTitle({
            title: this.title
         }); //设置顶部标题
      },
      async onLoad(options) {
         // console.log(options);
         uni.setNavigationBarTitle({
            title: options.titlename
         }); //设置顶部标题
         this.title = options.titlename;
         this.param = JSON.parse(options.param);
         console.log(this.param);
         this.styleDef = JSON.parse(options.style);
         // console.log(this.styleDef);
         if (this.param.ViewPage.View_UIDef.ui_type == "HTML页面") {
            // HTML页面
            //获取数据类的HTML页面
            this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id, 'viewPage');
         } else {
            this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id);
         }
         //进入页面后事件
         var eventid = this.param.ViewPage.Enter_View_Event?.id;
         if (eventid) {
            try {
               var obj_attr = {
                  'S_ID': this.styleDef.form.objId
               };
               this.styleDef.form.attrs.forEach((attr) => {
                  obj_attr[attr.name] = attr.value;
               });
               // console.log(obj_attr);
               var input_param = Base64.encode(JSON.stringify(obj_attr));
               this.runCustomEvent({
                  ed_type: 0,
                  start_transaction: true,
                  class_id: this.param.DataCls.id,
                  event_id: eventid,
                  data_obj_id: this.styleDef.form.objId,
                  obj_attr,
                  input_param,
               });
            } catch (ex) {
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error"),
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
         try {
            showLoading("loading...")
            this.title = options.titlename;
            this.param = JSON.parse(options.param);
            console.log(this.param);
            this.styleDef = JSON.parse(options.style);
            // console.log(this.styleDef);
            if (this.param.ViewPage.View_UIDef.ui_type == "HTML页面") {
               // HTML页面
               //获取数据类的HTML页面
               await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id,
                  'viewPage');
            } else {
               await this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id);
            }
            //进入页面后事件
            var eventid = this.param.ViewPage.Enter_View_Event?.id;
            if (eventid) {
               try {
                  var obj_attr = {
                     'S_ID': this.styleDef.form.objId
                  };
                  this.styleDef.form.attrs.forEach((attr) => {
                     obj_attr[attr.name] = attr.value;
                  });
                  // console.log(obj_attr);
                  var input_param = Base64.encode(JSON.stringify(obj_attr));
                  await this.runCustomEvent({
                     ed_type: 0,
                     start_transaction: true,
                     class_id: this.param.DataCls.id,
                     event_id: eventid,
                     data_obj_id: this.styleDef.form.objId,
                     obj_attr,
                     input_param,
                  });
               } catch (ex) {
                  showError(ex, this.translateSys('error'))
               }
            }
            hideLoading()
         } catch (ex) {
            hideLoading()
            showError(ex, this.translateSys("error"));
         }
      },
      methods: {
@@ -212,13 +224,7 @@
               }, 100);
            } catch (ex) {
               // console.log(ex);
               let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
               uni.showModal({
                  title: this.translateSys("error") + "1.1",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               showError(ex, this.translateSys('error') + "1.1")
            }
         },
@@ -261,13 +267,7 @@
               });
            } catch (ex) {
               // console.log(ex);
               let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
               uni.showModal({
                  title: this.translateSys("error") + "6.1",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               showError(ex, this.translateSys('error') + "6.1")
            }
@@ -306,13 +306,7 @@
                  // console.log($this.detail2_styledef);
               }
            } catch (ex) {
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error") + "5.2",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               showError(ex, this.translateSys('error') + "5.2")
            }
         },
         onCheckBoxValue(e) { //绑定Model值
@@ -394,7 +388,15 @@
            })
         },
         //处理相关按钮
         async onButtonClicked(btn) {
         onButtonClicked(btn) {
            this.handleButtonClick((done) => {
               this.buttonClicked(btn);
               setTimeout(() => {
                  done(); // 重置状态
               }, 1000);
            });
         },
         async buttonClicked(btn) {
            var style = this.styleDef || '';
            try {
@@ -410,27 +412,18 @@
                  await this.triggerEvent(btn, style, enviroment);
               } else {
                  btn.disabled = false
                  uni.showModal({
                     title: this.translateSys("tip"),
                     content: this.translateSys("unrealized"),
                     showCancel: false,
                     confirmText: this.translateSys('close')
                  });
                  showInfo(this.translateSys("unrealized"))
               }
            } catch (ex) {
               btn.disabled = false
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error") + "2",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               showError(ex, this.translateSys('error') + "2")
            }
         },
         //执行触发事件
         async triggerEvent(btn, style, enviroment) {
            try {
               showLoading("loading...")
               btn.disabled = true
               var obj_attr = {
                  'S_ID': this.styleDef.form.objId
@@ -441,6 +434,7 @@
               // console.log(obj_attr);
               // let input_param = Base64.encode(JSON.stringify(obj_attr));
               // return;
               await this.runCustomEvent({
                  ed_type: 0,
                  start_transaction: true,
@@ -450,14 +444,10 @@
                  obj_attr: obj_attr,
               });
               btn.disabled = false
               hideLoading()
            } catch (ex) {
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error") + "3",
                  content: tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               hideLoading()
               showError(ex, this.translateSys('error') + "3")
            }
         },
         //事件
@@ -466,44 +456,39 @@
               var $this = this;
               const result = await runCustomEvent(dataInfo)
               console.log(result);
               if (result.ret != 0&& result.ret != 1) {
                  var tip = result.err_info ? typeof result.err_info == 'string' ? result
                     .err_info : result.err_info.join('<br/>') : '';
                  if (result.ret == 801) uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip,
                     showCancel: false,
                     confirmText: this.translateSys('close')
                  });
                  else uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip + ',' + this.translateSys('tip') + ':' + result.ret,
                     showCancel: false,
                     confirmText: this.translateSys('close')
                  });
                  return false;
               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('<br/>') : '';
                  var tip = result.info ? typeof result.info == 'string' ? result.info :
                     result.info.join('\n') : '';
                  tip = tip || result.err_info
                  if (tip) uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip,
                     showCancel: false,
                     confirmText: this.translateSys('close')
                  });
                  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') {
                        if (result.result) {
                           uni.showModal({
                              title: this.translateSys('tip'),
                              content: result.result,
                              showCancel: false,
                              confirmText: this.translateSys('close')
                           });
                        }
                        showInfo(result.result)
                     }
                     try {
                        var actionList = result.action || []
@@ -538,13 +523,7 @@
                        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)
                        showError(tip, this.translateSys('tip'))
                        return
                     }
                  }
@@ -552,15 +531,7 @@
               }
            } catch (ex) {
               var tip = typeof ex == "string" ? ex : ex.errMsg;
               uni.showModal({
                  title: this.translateSys("error") + "4.1",
                  content: this.translate('execute_after_change_event_failed') + this.translateSys(
                        "comma") +
                     this.translate('reason') + this.translateSys("colon") + tip,
                  showCancel: false,
                  confirmText: this.translateSys('close')
               });
               showError(ex, this.translateSys('error') + "4.1")
            }
         },