cuiqian2004
2025-08-01 8f1880cf13440b9cb57d15520ebc3b785f3dabb1
pages/modal/3018_2.vue
@@ -1,8 +1,9 @@
<template>
   <view class="uni-page-modal-3018-2">
   <view class="uni-page-modal-3018-2" :class="largeMode?'large-mode':''">
      <view class="view-content">
         <!-- 表头样式 -->
         <OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" :focusId="focusFieldId"
         <OIForm ref="refBaseForm" class="v-headStyle" :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>
@@ -75,6 +76,7 @@
      },
      data() {
         return {
            largeMode: getApp().globalData.largeMode || false,
            title: this.translateSys('add2'),
            btnName: "",
            param: {},
@@ -106,7 +108,7 @@
         if (e.index == 0) {
            const $this = this
            uni.scanCode({
               scanType: ["qrCode"],
               scanType: ["qrCode", 'barCode'],
               success: function(res) {
                  if ($this.focusFieldId) {
@@ -465,16 +467,27 @@
               } else {
                  var tip = data.info ? typeof data.info == 'string' ? data.info :
                     data.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 (data.result_type == 2) {
                  var actionlist = data.action;
                  if (actionlist) {
                     console.log(actionlist);
                  } 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 actionlist = data.action || []
                     for (var i = 0; i < actionlist.length; i++) {
                        var action = actionlist[i];
                        if (action.action_type == 'set_dlg_attr') {
@@ -522,7 +535,21 @@
                           });
                        }
                     }
                  } 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
                  }
               }
            } catch (ex) {
               // console.log(ex);
@@ -543,50 +570,12 @@
         ontap(item) { //扫码功能
            // console.log("ontap",item);
            // 打开蓝牙适配器
            // uni.openBluetoothAdapter({
            //   success: function() {
            //    // 开始搜索蓝牙设备
            //    uni.startBluetoothDevicesDiscovery({
            //      success: function() {
            //       // 监听找到新设备的事件
            //       uni.onBluetoothDeviceFound(function(devices) {
            //         // 这里可以过滤出RFID芯片,连接并读取数据
            //         console.log(devices[0].deviceId);
            //       })
            //      }
            //    })
            //   }
            // });
            // 监听NFC功能是否可用
            // uni.getNFCAdapterState({
            //   success: function(res) {
            //    console.log(res);
            //     if (res.errCode === 0) {
            //       // NFC功能可用,开始监听
            //       uni.onNFCStart((res) => {
            //         if (res.errCode === 0) {
            //           // 开始NFC标签检测
            //           uni.makeNFCReaderStart({
            //             success: function() {
            //               // 监听NFC标签
            //               uni.onNFCTagDiscovered(function(res) {
            //                                 console.log(res);
            //                 // 这里可以处理NFC标签数据
            //               })
            //             }
            //           })
            //         }
            //       })
            //     }
            //   }
            // })
            this.focusOldFieldId = item.fieldId
            getApp().onScan((result) => {
               console.log(result);
               // uni.hideKeyboard();
               this.onScanValue(item, result.decodedata)
               this.onScanValue(item, result)
            })
         },
         onScanValue(item, value) {
@@ -940,16 +929,27 @@
                     .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);
                  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: 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') {
@@ -993,15 +993,22 @@
                           });
                        }
                     }
                  }
                  // var head_styledef = JSON.parse(JSON.stringify($this.head_styledef));
                  // $this.head_styledef=[];
                  // $this.head_styledef = head_styledef;
                  console.log($this.head_styledef);
                  if (data.result) {
                     $this.setFormValues(data.result)
                  } 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
                  }
               }
            }).catch(ex => {
@@ -1112,218 +1119,230 @@
                     .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 (data.result_type == 2) {
                  if (data != "") {
                     var actions = data.action;
                     if (actions) {
                        for (var i = 0; i < actions.length; i++) {
                           var action = actions[i];
                           console.log(action)
                           var val = action.value;
                           var enviroment = JSON.stringify(enviroment);
                  } 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)
                        var val = action.value;
                        var enviroment = JSON.stringify(enviroment);
                           if (action.action_type == 'open_panel') {
                              var d = dialog({
                                 title: '<i class="ace-icon fa fa-info-circle"></i> ' +
                                    $this.translateSys("tip"),
                                 content: $this.translateSys(
                                       "quotation_mark_left") +
                                    action.action_type + $this
                                    .translateSys(
                                       "quotation_mark_right") +
                                    $this.translate(
                                       "tip_action_unprocessed")
                              });
                              d.show();
                           } else if (action.action_type ==
                              'open_select_userdlg') {
                              var style = val.style;
                              // style == 'user' ? '选择人员' : style == 'department' ? '选择部门' : style == 'role' ? '选择角色' : ''
                              var param = {
                        if (action.action_type == 'open_panel') {
                           var d = dialog({
                              title: '<i class="ace-icon fa fa-info-circle"></i> ' +
                                 $this.translateSys("tip"),
                              content: $this.translateSys(
                                    "quotation_mark_left") +
                                 action.action_type + $this
                                 .translateSys(
                                    "quotation_mark_right") +
                                 $this.translate(
                                    "tip_action_unprocessed")
                           });
                           d.show();
                        } else if (action.action_type ==
                           'open_select_userdlg') {
                           var style = val.style;
                           // style == 'user' ? '选择人员' : style == 'department' ? '选择部门' : style == 'role' ? '选择角色' : ''
                           var param = {
                              item: item,
                              button_callback: button_callback,
                              req: req,
                              data_attr: data_attr
                           }
                           uni.navigateTo({
                              url: '../selpsn/index?mulit=false&param=' +
                                 JSON
                                 .stringify(
                                    param),
                              events: {
                                 AddPer(data, param) {
                                    // console.log(param);
                                    console.log(data);
                                    var callback_eventid = param
                                       .button_callback
                                       .trim();
                                    var info = {
                                       eventid: callback_eventid,
                                       edtype: "0",
                                       projectid: '',
                                       rclsid: '',
                                       robjid: '',
                                       userlogin: '',
                                       clsid: $this.param
                                          .DataCls
                                          .id,
                                       objid: "",
                                       attr: param.req,
                                       inputparameter: data,
                                       dataJson: [],
                                    }
                                    $this.DataObjRunCustomEvent(
                                       info,
                                       param
                                       .data_attr);
                                 }
                              }
                           });
                        } else if (action.action_type ==
                           'open_data_query_dlg') {
                           var d = dialog({
                              title: '<i class="ace-icon fa fa-info-circle"></i> ' +
                                 $this.translateSys("tip"),
                              content: $this.translateSys(
                                    "quotation_mark_left") +
                                 action
                                 .action_type + $this.translateSys(
                                    "quotation_mark_right") + $this
                                 .translate(
                                    "tip_action_unprocessed")
                           });
                           d.show();
                        } else if (action.action_type == 'open_common_dlg') {
                           if (val.common_dlg_id == 'check_list') {
                              $this.setData({
                                 check_list: val.config
                              })
                              if (val.config.appear_style ==
                                 'sideslip') //判断是否是侧滑
                                 $this.setData({
                                    popupType: "right"
                                 })
                              else
                                 $this.setData({
                                    popupType: "center"
                                 })
                              // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
                              $this.$refs.popup.open($this.popupType);
                              var popupParam = {
                                 item: item,
                                 button_callback: button_callback,
                                 req: req,
                                 data_attr: data_attr
                              }
                              uni.navigateTo({
                                 url: '../selpsn/index?mulit=false&param=' +
                                    JSON
                                    .stringify(
                                       param),
                                 events: {
                                    AddPer(data, param) {
                                       // console.log(param);
                                       console.log(data);
                                       var callback_eventid = param
                                          .button_callback
                                          .trim();
                              $this.setData({
                                 popupParam: popupParam
                              })
                           }
                        } else if (action.action_type ==
                           'open_project_query_dlg') {
                           //console.log(action.value.select_range);
                           //console.log(action.value.mulit_select);
                           var priRel = '-1';
                           if (action.value.select_range == '全部相关')
                              priRel = '0';
                           else if (action.value.select_range == '我负责的项目')
                              priRel = '1';
                           else if (action.value.select_range == '我创建的')
                              priRel = '2';
                           else if (action.value.select_range == '我参与的' ||
                              action
                              .value
                              .select_range == '我参加的')
                              priRel = '3';
                           else if (action.value.select_range == '我关注的')
                              priRel = '4';
                           else if (action.value.select_range == '我下属的项目')
                              priRel = '5';
                           var param_ = {
                              item: item,
                              button_callback: button_callback,
                              req: req
                           }
                           uni.navigateTo({
                              url: '../selPrj/index?relation=' +
                                 priRel +
                                 '&param=' +
                                 JSON.stringify(param_),
                              events: {
                                 AddPer(data, param) {
                                    var attr = param.item.fieldId;
                                    $this.head_styledef.form.model[
                                          attr] =
                                       data[0].ID +
                                       ';' + data[0].Name;
                                    // $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
                                    // $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
                                    var callback_eventid = param
                                       .button_callback
                                       .trim();
                                    if (callback_eventid) {
                                       var info = {
                                          eventid: callback_eventid,
                                          edtype: "0",
                                          projectid: '',
                                          rclsid: '',
                                          robjid: '',
                                          userlogin: '',
                                          clsid: $this.param
                                             .DataCls
                                             .id,
                                          edtype: "2",
                                          projectid: data[0]
                                             .ID,
                                          rclsid: "",
                                          robjid: "",
                                          userlogin: "",
                                          clsid: $this.$data
                                             .param
                                             .DataCls.id,
                                          objid: "",
                                          attr: param.req,
                                          inputparameter: data,
                                          dataJson: [],
                                       }
                                       $this.DataObjRunCustomEvent(
                                          info,
                                          param
                                          .data_attr);
                                       $this
                                          .DataObjRunCustomEvent(
                                             info);
                                    }
                                 }
                              });
                           } else if (action.action_type ==
                              'open_data_query_dlg') {
                              var d = dialog({
                                 title: '<i class="ace-icon fa fa-info-circle"></i> ' +
                                    $this.translateSys("tip"),
                                 content: $this.translateSys(
                                       "quotation_mark_left") +
                                    action
                                    .action_type + $this.translateSys(
                                       "quotation_mark_right") + $this
                                    .translate(
                                       "tip_action_unprocessed")
                              });
                              d.show();
                           } else if (action.action_type == 'open_common_dlg') {
                              if (val.common_dlg_id == 'check_list') {
                                 $this.setData({
                                    check_list: val.config
                                 })
                                 if (val.config.appear_style ==
                                    'sideslip') //判断是否是侧滑
                                    $this.setData({
                                       popupType: "right"
                                    })
                                 else
                                    $this.setData({
                                       popupType: "center"
                                    })
                                 // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
                                 $this.$refs.popup.open($this.popupType);
                                 var popupParam = {
                                    item: item,
                                    button_callback: button_callback,
                                    req: req,
                                    data_attr: data_attr
                                 }
                                 $this.setData({
                                    popupParam: popupParam
                                 })
                              }
                           } else if (action.action_type ==
                              'open_project_query_dlg') {
                              //console.log(action.value.select_range);
                              //console.log(action.value.mulit_select);
                              var priRel = '-1';
                              if (action.value.select_range == '全部相关')
                                 priRel = '0';
                              else if (action.value.select_range == '我负责的项目')
                                 priRel = '1';
                              else if (action.value.select_range == '我创建的')
                                 priRel = '2';
                              else if (action.value.select_range == '我参与的' ||
                                 action
                                 .value
                                 .select_range == '我参加的')
                                 priRel = '3';
                              else if (action.value.select_range == '我关注的')
                                 priRel = '4';
                              else if (action.value.select_range == '我下属的项目')
                                 priRel = '5';
                              var param_ = {
                                 item: item,
                                 button_callback: button_callback,
                                 req: req
                              }
                              uni.navigateTo({
                                 url: '../selPrj/index?relation=' +
                                    priRel +
                                    '&param=' +
                                    JSON.stringify(param_),
                                 events: {
                                    AddPer(data, param) {
                                       var attr = param.item.fieldId;
                                       $this.head_styledef.form.model[
                                             attr] =
                                          data[0].ID +
                                          ';' + data[0].Name;
                                       // $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
                                       // $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
                                       var callback_eventid = param
                                          .button_callback
                                          .trim();
                                       if (callback_eventid) {
                                          var info = {
                                             eventid: callback_eventid,
                                             edtype: "2",
                                             projectid: data[0]
                                                .ID,
                                             rclsid: "",
                                             robjid: "",
                                             userlogin: "",
                                             clsid: $this.$data
                                                .param
                                                .DataCls.id,
                                             objid: "",
                                             attr: param.req,
                                             dataJson: [],
                                          }
                                          $this
                                             .DataObjRunCustomEvent(
                                                info);
                                       }
                                    }
                                 }
                              });
                           } 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')
                              });
                           }
                           });
                        } 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')
                           });
                        }
                     }
                  } else {
                  } 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') + "5.2",
                        content: $this.translateSys(
                              "quotation_mark_left") +
                           "before_click_button" + $this.translateSys(
                              "quotation_mark_right") + $this
                           .translateSys(
                              "comma") + 'event_id' + eventid,
                        title: this.translateSys('tip'),
                        content: tip,
                        showCancel: false,
                        confirmText: $this.translateSys('close')
                        confirmText: this.translateSys('close')
                     });
                     console.log(ex)
                     return
                  }
               }
            }).catch(ex => {
@@ -1605,28 +1624,28 @@
            }
         },
         hideFormItems(data) {
            const $this = this
         hideFormItems(attrs) {
            if (!Array.isArray(attrs)) {
               return
            }
            const head_styledef = this.head_styledef
            data.forEach(async (attr, key) => {
               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;
                           }
                        }
                     });
                  }
               });
            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
            })
         },
         afterOK() {
            this.saving = true
            const $this = this
@@ -1694,6 +1713,7 @@
                     .info
                     .join(
                        '<br/>') : '';
                  tip = tip || data.err_info
                  if (tip) uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip,
@@ -1709,9 +1729,20 @@
                           "&titlename=" + this.title
                     });
                  } else {
                     var actionlist = data.action;
                     if (actionlist) {
                        console.log(actionlist);
                     if (data.result_type == 2) {
                     } 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 actionlist = data.action || []
                        for (var i = 0; i < actionlist.length; i++) {
                           var action = actionlist[i];
                           if (action.action_type == 'set_dlg_attr') {
@@ -1743,7 +1774,21 @@
                           }
                        }
                     } 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
                     }
                  }
               }
@@ -1869,6 +1914,7 @@
                     .info
                     .join(
                        '<br/>') : '';
                  tip = tip || data.err_info
                  if (tip) uni.showModal({
                     title: this.translateSys("tip"),
                     content: tip,
@@ -1884,9 +1930,20 @@
                           "&titlename=" + this.title
                     });
                  } else {
                     var actionlist = data.action;
                     if (actionlist) {
                        console.log(actionlist);
                     if (data.result_type == 2) {
                     } 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 actionlist = data.action || []
                        for (var i = 0; i < actionlist.length; i++) {
                           var action = actionlist[i];
                           if (action.action_type == 'set_dlg_attr') {
@@ -1918,7 +1975,22 @@
                           }
                        }
                     } 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
                     }
                  }
               }