cuiqian2004
2025-08-01 fa73abee6209cd6f7c62c61c271826f7d413035d
pages/modal/3202.vue
@@ -1,5 +1,5 @@
<template>
   <view class="uni-page-modal-3202">
   <view class="uni-page-modal-3202" :class="largeMode?'large-mode':''">
      <view class="v-content">
         <!-- 表头样式 -->
         <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
@@ -51,6 +51,7 @@
      },
      data() {
         return {
            largeMode: getApp().globalData.largeMode || false,
            title: this.translateSys('add2'),
            isFilter: true,
            param: {},
@@ -77,7 +78,7 @@
            old: {
               scrollTop: 0
            },
            isScroll: true,
            isScroll: false,
            //获取数据类的HTML页面
            click_item_view: false,
            refreshing: false
@@ -527,6 +528,7 @@
                     .info == 'string' ? result
                     .info :
                     result.info.join('<br/>') : '';
                  tip = tip || result.err_info
                  if (tip) uni.showModal({
                     title: this.translateSys(
                        "tip"),
@@ -535,38 +537,52 @@
                     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 == "jump_pda_page") {
                           // value = {"attr":"xxx", "value":"xxx"}
                           var data = item.value;
                           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);
                                 }
                              }
                     } 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 (result.info) {
                     }
                     try {
                        var actionList = result.action || []
                        actionList.forEach(item => {
                           if (item.action_type == "jump_pda_page") {
                              // value = {"attr":"xxx", "value":"xxx"}
                              var data = item.value;
                              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);
                                    }
                                 }
                              });
                           }
                        })
                     } 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: result.info,
                           title: this.translateSys('tip'),
                           content: tip,
                           showCancel: false,
                           confirmText: this
                              .translateSys(
                                 'close')
                           confirmText: this.translateSys('close')
                        });
                        console.log(ex)
                        return
                     }
                  }
               }
@@ -589,8 +605,8 @@
            // var $ele = e;
            //console.log(e.target)
            getApp().onScan((result) => {
               console.log(result.decodedata);
               item.value = result.decodedata;
               console.log(result);
               item.value = result;
               uni.hideKeyboard();
               var $this = this;
               console.log(item);
@@ -730,6 +746,7 @@
                           .info == 'string' ? result
                           .info :
                           result.info.join('<br/>') : '';
                        tip = tip || result.err_info
                        if (tip) uni.showModal({
                           title: this.translateSys(
                              "tip"),
@@ -738,35 +755,75 @@
                           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_query_condition") {
                                 var value = item.value;
                                 $this.wheres = value.condition;
                                 $this.orderby = value.order ? value.order :
                                    ""
                                 $this.pageindex = 1;
                                 $this.query_id = "";
                                 $this.detail1StyleDefList = [];
                                 $this.loadDataGetList();
                           } 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 (result.info) {
                           }
                           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_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}`
                              uni.showModal({
                                 title: this
                                    .translateSys(
                                       "tip"),
                                 content: result.info,
                                 title: this.translateSys('tip'),
                                 content: tip,
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys(
                                       'close')
                                 confirmText: this.translateSys('close')
                              });
                              console.log(ex)
                              return
                           }
                        }
                     }
@@ -888,6 +945,79 @@
               head_styledef: head_styledef
            })
         },
         //加载已码盘内容
         viewAceionContent(data) {
            var $this = this;
            if (JSON.stringify(data.content) == '{}') {
               return;
            }
            var styleStr = JSON.stringify($this.detail1_styledef);
            var detailStyle = JSON.parse(styleStr);
            data.content.forEach(cont => {
               var detailStyle = JSON.parse(styleStr);
               if (detailStyle.form) {
                  detailStyle.SelBut_Checked = data.checkbox ?? true;
                  detailStyle.form.objId = cont.id;
                  detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g,
                        '')
                     .replace('{', '').replace('}',
                        '') : 'null';
                  detailStyle.form.attrs = cont.attrs;
                  cont.attrs.forEach(attr => {
                     detailStyle.form.items.forEach(ele => {
                        if (ele.name != 'Layout') {
                           if (ele.fieldId == attr.attr)
                              ele.value = attr.value;
                        } else if (ele.name == 'Layout') {
                           ele.setting.colList.forEach(
                              col => {
                                 if (col) {
                                    if (col.fieldId ==
                                       attr.attr)
                                       col.value = attr.value;
                                 }
                              });
                        }
                     });
                  });
                  //如果 clear = false 则不需要清除,根据id判断是否存在,不存在插入到页面,如果存在用新的属性覆盖
                  if (data.clear == false) {
                     var isflag = true;
                     $this.detail1StyleDefList.forEach((style, index) => {
                        if (style.form.objId == detailStyle.form.objId) {
                           cont.attrs.forEach(attr => {
                              style.form.items.forEach(ele => {
                                 if (ele.name != 'Layout') {
                                    if (ele.fieldId == attr.attr)
                                       ele.value = attr.value;
                                 } else if (ele.name == 'Layout') {
                                    ele.setting.colList.forEach(
                                       col => {
                                          if (col) {
                                             if (col.fieldId ==
                                                attr
                                                .attr)
                                                col.value =
                                                attr.value;
                                          }
                                       });
                                 }
                              });
                           });
                           isflag = false;
                        }
                     });
                     if (isflag) $this.detail1StyleDefList.push(detailStyle); //待分拣
                  } else {
                     $this.detail1StyleDefList.push(detailStyle); //待分拣
                  }
               }
            });
         },
         //点中表单
         onPanelClick(value) { //点击面板高亮显示
            // console.log(value);
@@ -942,6 +1072,7 @@
                        .info == 'string' ? result
                        .info : result
                        .info.join('<br/>') : '';
                     tip = tip || result.err_info
                     if (tip) uni.showModal({
                        title: this.translateSys(
                           "tip"),
@@ -950,57 +1081,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 ==
                              "goback_to_pre_page") { //返回上一页
                              var value = item.value;
                              uni.navigateBack({
                                 delta: 1, //返回层数,2则上上页
                              });
                           } else {
                        } else if (typeof result.result == 'string') {
                           if (result.result) {
                              uni.showModal({
                                 title: this
                                    .translateSys(
                                       "tip"
                                    ),
                                 content: this
                                    .translateSys(
                                       "quotation_mark_left"
                                    ) +
                                    item
                                    .action_type +
                                    this
                                    .translateSys(
                                       "quotation_mark_right"
                                    ) +
                                    this
                                    .translate(
                                       "tip_action_unprocessed"
                                    ),
                                 title: this.translateSys('tip'),
                                 content: result.result,
                                 showCancel: false,
                                 confirmText: this
                                    .translateSys(
                                       'close'
                                    )
                                 confirmText: this.translateSys('close')
                              });
                           }
                        });
                     } else {
                        if (result.info) {
                           uni.showModal({
                              title: this
                                 .translateSys(
                                    "tip"),
                              content: result.info,
                              showCancel: false,
                              confirmText: this
                                 .translateSys(
                                    'close')
                        }
                        try {
                           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 {
                                 uni.showModal({
                                    title: this
                                       .translateSys(
                                          "tip"
                                       ),
                                    content: this
                                       .translateSys(
                                          "quotation_mark_left"
                                       ) +
                                       item
                                       .action_type +
                                       this
                                       .translateSys(
                                          "quotation_mark_right"
                                       ) +
                                       this
                                       .translate(
                                          "tip_action_unprocessed"
                                       ),
                                    showCancel: false,
                                    confirmText: this
                                       .translateSys(
                                          'close'
                                       )
                                 });
                              }
                           });
                        } 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
                        }
                     }
                  }
               }).catch(ex => {
                  // console.log(ex);