cuiqian2004
2024-07-11 0df15ed47f6e2aa5eb0610890bed7dcbaabc7c92
pages/modal/3200.vue
@@ -39,25 +39,8 @@
                  <div class="dv-listHtml-Panel" v-if="ListHtml_Panel" v-html="ListHtml_Panel[ii]" :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;':
              param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':
              param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'">
                     <!-- <div class="dv_panel_content">
                  <div class="dv_panel_attr">
                    <label>No:</label>
                    <span>TA240129-00001</span>
                  </div>
                  <div class="dv_panel_attr">
                    <div class="dv_box_node">
                     <p><span>毛料线边</span></p>
                     <label>L002-1</label>
                    </div>
                    <i class="mobox-normal-right"></i>
                    <div class="dv_box_node">
                     <p><span>毛料线边</span></p>
                     <label>L003-3</label>
                    </div>
                  </div>
               </div> -->
                  </div>
                  <!-- 自定义表单类型显示 -->
                  <div class="dv-panel-input" v-if="!ListHtml_Panel" :style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;':
              param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':
              param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'">
@@ -591,13 +574,18 @@
                        if (result.ret != 0) {
                           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("cancel")
                           });
                           else uni.showModal({
                           if (result.ret == 801) {
                              if (this.param.Only_Script_Error) {
                                 let pos = tip.indexOf(":");
                                 if (pos > -1) tip = tip.substring(pos + 1);
                              }
                              uni.showModal({
                                 title: this.translateSys("tip"),
                                 content: tip,
                                 showCancel: false,
                                 confirmText: this.translateSys("cancel")
                              });
                           } else uni.showModal({
                              title: this.translateSys("tip"),
                              content: tip + ',' + this.translateSys('tip') + ':' + result
                                 .ret,
@@ -955,6 +943,14 @@
                  this.DeleteObj(btn, style, enviroment);
                  // } else if (btn.FunCode == "TriggerEvent") {
                  //   this.triggerEvent(btn, style, enviroment);
               } else if (btn.FunCode == "TriggerEvent") {
                  this.TriggerEvent(btn, style, enviroment);
                  // } else if (btn.FunCode == "TriggerEvent") {
                  //   this.triggerEvent(btn, style, enviroment);
               } else if (btn.FunCode == "RelatedFunction") {
                  this.RelatedFunction(btn, style, enviroment);
                  // } else if (btn.FunCode == "TriggerEvent") {
                  //   this.triggerEvent(btn, style, enviroment);
               } else {
                  uni.showModal({
                     title: this.translateSys("tip"),
@@ -1056,6 +1052,92 @@
            });
         },
         //执行事件
         TriggerEvent(btn, style, enviroment) {},
         //跳转
         async RelatedFunction(btn, style, enviroment) {
            if (
               btn.Related_Function?.Def_Code == "3018" ||
               btn.Related_Function?.Def_Code == "3037" ||
               btn.Related_Function?.Def_Code == "3200" ||
               btn.Related_Function?.Def_Code == "3201" ||
               btn.Related_Function?.Def_Code == "5600" ||
               btn.Related_Function?.Def_Code == "5601" ||
               btn.Related_Function?.Def_Code == "5602"
            ) {
               let name = btn.Related_Function?.Def_Code
               if (btn.Related_Function?.Def_Code == "3018" || btn.Related_Function?.Def_Code == "3037")
                  name = btn.Related_Function?.Def_Code + "_2"
               var $this = this;
               var json = {
                  app_id: appId,
               };
               this.$store.dispatch('appGetInfo', json).then(success => {
                  // console.log(success);
                  if (success.err_code == 0) {
                     if ((success.result || []).length > 0) {
                        const app = success.result[0]
                        var param = "";
                        var appName = app.name || app.list_name
                           .Name;
                        var paramStr = app.param
                        if (paramStr) {
                           //mobox2的param是json字符串
                           param = paramStr.replace(/\\/g, "");
                           //mobox3的param是base64字符串
                           if (!paramStr.includes('"')) param = Base64.decode(paramStr);
                        }
                        if (!param) {
                           uni.showModal({
                              title: this.translateSys("tip"),
                              content: this.translate('tip_no_app_param'),
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                           return;
                        }
                        uni.navigateTo({
                           url: '../modal/' + name + '?param=' + param + "&titlename=" +
                              appName +
                              "&type=relatedFunction&attrValue=" + JSON.stringify(style
                                 .form),
                           events: {
                              relatedFunction: function(data) {
                                 console.log(data);
                                 $this.Refresh();
                              },
                           }
                        });
                     } else {
                        uni.showModal({
                           title: this.translateSys("error"),
                           content: this.translate("function_not_exist"),
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                     }
                  } else {
                     uni.showModal({
                        title: this.translateSys("error"),
                        content: success.msg,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                     });
                  }
               }).catch(ex => {
                  // console.log(ex);
                  uni.showModal({
                     title: this.translateSys("error"),
                     content: ex.errMsg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               });
            }
         },
         //执行后处理事件
         async AfterProcess_Event(clsId, afterProcess_Event, enviroment) {
            try {
@@ -1094,7 +1176,8 @@
                  var attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //后图标点击事件
                  var onSuffixClickCallbackEvent = item.bind
                     .onSuffixClickCallbackEvent; //后图标点击事件
                  var onSuffixClickEvent = item.bind.onSuffixClickEvent; //后图标点击回调
                  var isflag = false;
@@ -1196,24 +1279,34 @@
                     if (ret.err_code == 0) {
                        var result = ret.result;
                        if (result.ret != 0) {
                           var tip = result.err_info ? typeof result.err_info == 'string' ? result
                           var tip = result.err_info ? typeof result.err_info ==
                              'string' ?
                              result
                              .err_info : result.err_info.join('<br/>') : '';
                           if (result.ret == 801) uni.showModal({
                           if (result.ret == 801) {
                              if (this.param.Only_Script_Error) {
                                 let pos = tip.indexOf(":");
                                 if (pos > -1) tip = tip.substring(pos + 1);
                              }
                              uni.showModal({
                                 title: this.translateSys("tip"),
                                 content: tip,
                                 showCancel: false,
                                 confirmText: this.translateSys("cancel")
                              });
                           } else uni.showModal({
                              title: this.translateSys("tip"),
                              content: tip,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                           else uni.showModal({
                              title: this.translateSys("tip"),
                              content: tip + ',' + this.translateSys('tip') + ':' + result
                              content: tip + ',' + this.translateSys('tip') +
                                 ':' +
                                 result
                                 .ret,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                           return false;
                        } else {
                           var tip = result.info ? typeof result.info == 'string' ? result.info :
                           var tip = result.info ? typeof result.info == 'string' ? result
                              .info :
                              result.info.join('<br/>') : '';
                           if (tip) uni.showModal({
                              title: this.translateSys("tip"),
@@ -1227,16 +1320,23 @@
                                 if (item.action_type == "set_dlg_attr") {
                                    // value = {"attr":"xxx", "value":"xxx"}
                                    var data = item.value;
                                    $this.$data.head_styledef.form.items.forEach(async (
                                       ele, index) => {
                                       data.forEach(async (ele2, index) => {
                                          if (ele.fieldId == ele2
                                             .attr) {
                                             ele.value = ele2
                                                .value;
                                          }
                                       });
                                    });
                                    $this.$data.head_styledef.form.items
                                       .forEach(
                                          async (
                                             ele, index) => {
                                             data.forEach(async (ele2,
                                                index) => {
                                                if (ele
                                                   .fieldId ==
                                                   ele2
                                                   .attr
                                                ) {
                                                   ele.value =
                                                      ele2
                                                      .value;
                                                }
                                             });
                                          });
                                 }
                              });
                           } else {
@@ -1274,7 +1374,8 @@
               var tip = typeof ex == "string" ? ex : ex.message;
               uni.showModal({
                  title: this.translateSys("error") + "8.2",
                  content: this.translate('execute_after_change_event_failed') + this.translateSys(
                  content: this.translate('execute_after_change_event_failed') + this
                     .translateSys(
                        "comma") +
                     this.translate('reason') + this.translateSys("colon") + tip,
                  showCancel: false,
@@ -1301,23 +1402,33 @@
                  if (ret.err_code == 0) {
                     var result = ret.result;
                     if (result.ret != 0) {
                        var tip = result.err_info ? typeof result.err_info == 'string' ? result
                        var tip = result.err_info ? typeof result.err_info ==
                           'string' ?
                           result
                           .err_info : result.err_info.join('<br/>') : '';
                        if (result.ret == 801) uni.showModal({
                        if (result.ret == 801) {
                           if (this.param.Only_Script_Error) {
                              let pos = tip.indexOf(":");
                              if (pos > -1) tip = tip.substring(pos + 1);
                           }
                           uni.showModal({
                              title: this.translateSys("tip"),
                              content: tip,
                              showCancel: false,
                              confirmText: this.translateSys("cancel")
                           });
                        } else uni.showModal({
                           title: this.translateSys("tip"),
                           content: tip,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                        else uni.showModal({
                           title: this.translateSys("tip"),
                           content: tip + ',' + this.translateSys('tip') + ':' + result.ret,
                           content: tip + ',' + this.translateSys('tip') +
                              ':' +
                              result.ret,
                           showCancel: false,
                           confirmText: this.translateSys("cancel")
                        });
                        return false;
                     } else {
                        var tip = result.info ? typeof result.info == 'string' ? result.info : result
                        var tip = result.info ? typeof result.info == 'string' ? result
                           .info : result
                           .info.join('<br/>') : '';
                        if (tip) uni.showModal({
                           title: this.translateSys("tip"),
@@ -1328,24 +1439,31 @@
                        if (result.result_type == 0 && result.action) {
                           result.action.forEach(item => {
                              if (item.action_type == "goback_to_pre_page") { //返回上一页
                              if (item.action_type ==
                                 "goback_to_pre_page") { //返回上一页
                                 var value = item.value;
                                 uni.navigateBack({
                                    delta: 1, //返回层数,2则上上页
                                 });
                              } else if (item.action_type == "hidden_button") { //隐藏按钮
                              } else if (item.action_type ==
                                 "hidden_button") { //隐藏按钮
                                 var value = item.value;
                                 value.forEach(btn => {
                                    var index = $this.param.ListPage.Page_Button
                                       .findIndex(button => button.ShowName ==
                                    var index = $this.param
                                       .ListPage
                                       .Page_Button
                                       .findIndex(button => button
                                          .ShowName ==
                                          btn)
                                    if (index > -1)
                                       $this.param.ListPage.Page_Button.splice(
                                       $this.param.ListPage
                                       .Page_Button.splice(
                                          index, 1)
                                 })
                                 // } else if(item.action_type == "refresh_cur_row"){ //
                                 //    var value = item.value;
                              } else if (item.action_type == "set_panel_html") { //显示Html页面
                              } else if (item.action_type ==
                                 "set_panel_html") { //显示Html页面
                                 // var value = item.value;
                                 $this.ListHtml_Panel = item.value;
                                 // $this.detail1StyleDefList.forEach((ele,index)=>{
@@ -1354,15 +1472,23 @@
                              } else {
                                 uni.showModal({
                                    title: this.translateSys("tip"),
                                    title: this.translateSys(
                                       "tip"),
                                    content: this.translateSys(
                                          "quotation_mark_left") + item
                                       .action_type + this.translateSys(
                                          "quotation_mark_right") + this
                                          "quotation_mark_left"
                                       ) +
                                       item
                                       .action_type + this
                                       .translateSys(
                                          "quotation_mark_right"
                                       ) +
                                       this
                                       .translate(
                                          "tip_action_unprocessed"),
                                          "tip_action_unprocessed"
                                       ),
                                    showCancel: false,
                                    confirmText: this.translateSys("cancel")
                                    confirmText: this.translateSys(
                                       "cancel")
                                 });
                              }
                           });
@@ -1445,13 +1571,17 @@
            var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like']
            list.forEach(ls => {
               var where = ls.trim()
               if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(
               if (where.startsWith('(') && where.endsWith(')')) where = where.replace(
                  /^\(/,
                  '').replace(
                  /\)$/, '')
               if (where.toLowerCase().includes(' and ')) {
                  // 二级and放在第一级数组中
                  where.split(/ and /i).forEach(li => {
                     var l = li.trim()
                     if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(
                     if (l.startsWith('(') && l.endsWith(')')) l = l.replace(
                        /^\(/,
                        '').replace(
                        /\)$/, '')
                     var sep = ''
                     for (var i = 0; i < seps.length; i++) {
@@ -1462,21 +1592,33 @@
                     }
                     if (sep) {
                        var values = l.split(new RegExp(sep, 'i'))
                        var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
                        var field = values[0]?.trim().replace(/^\[/, '')
                           .replace(
                              /\]$/, '')
                        var value = ''
                        var op = sep.trim()
                        if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes(
                              'select ') && values[1]?.toLowerCase().includes(' from ')) {
                           value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
                           if (value.startsWith('(') && value.endsWith(')')) value = value
                        if ([' in', ' not in'].includes(sep) && values[1]
                           ?.toLowerCase().includes(
                              'select ') && values[1]?.toLowerCase()
                           .includes(
                              ' from ')) {
                           value = l.replace(field, '').replace(
                              /^\s*(in|not in)\s*/i, '').trim()
                           if (value.startsWith('(') && value.endsWith(')'))
                              value = value
                              .replace(/^\(/, '').replace(/\)$/, '').trim()
                        } else {
                           value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
                           value = values[1]?.trim().replace(/^\'/, '')
                              .replace(
                                 /\'$/, '')
                           if (['in', 'not in'].includes(op)) {
                              value = value.replace(/^\(/, '').replace(/\)$/, '')
                              value = value.split(',').map(v => v.trim().replace(/^\'/, '')
                              value = value.replace(/^\(/, '').replace(/\)$/,
                                 '')
                              value = value.split(',').map(v => v.trim()
                                 .replace(
                                    /^\'/, '')
                                 .replace(/\'$/, ''))
                           }
                        }
@@ -1492,7 +1634,9 @@
                  var s = []
                  where.split(/ or /i).forEach(li => {
                     var l = li.trim()
                     if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(
                     if (l.startsWith('(') && l.endsWith(')')) l = l.replace(
                        /^\(/,
                        '').replace(
                        /\)$/, '')
                     var sep = ''
                     for (var i = 0; i < seps.length; i++) {
@@ -1503,21 +1647,33 @@
                     }
                     if (sep) {
                        var values = l.split(new RegExp(sep, 'i'))
                        var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
                        var field = values[0]?.trim().replace(/^\[/, '')
                           .replace(
                              /\]$/, '')
                        var value = ''
                        var op = sep.trim()
                        if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes(
                              'select ') && values[1]?.toLowerCase().includes(' from ')) {
                           value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
                           if (value.startsWith('(') && value.endsWith(')')) value = value
                        if ([' in', ' not in'].includes(sep) && values[1]
                           ?.toLowerCase().includes(
                              'select ') && values[1]?.toLowerCase()
                           .includes(
                              ' from ')) {
                           value = l.replace(field, '').replace(
                              /^\s*(in|not in)\s*/i, '').trim()
                           if (value.startsWith('(') && value.endsWith(')'))
                              value = value
                              .replace(/^\(/, '').replace(/\)$/, '').trim()
                        } else {
                           value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
                           value = values[1]?.trim().replace(/^\'/, '')
                              .replace(
                                 /\'$/, '')
                           if (['in', 'not in'].includes(op)) {
                              value = value.replace(/^\(/, '').replace(/\)$/, '')
                              value = value.split(',').map(v => v.trim().replace(/^\'/, '')
                              value = value.replace(/^\(/, '').replace(/\)$/,
                                 '')
                              value = value.split(',').map(v => v.trim()
                                 .replace(
                                    /^\'/, '')
                                 .replace(/\'$/, ''))
                           }
                        }
@@ -1533,7 +1689,9 @@
                  var li = where
                  // 单一查询条件直接放在第一级数组中
                  var l = li.trim()
                  if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
                  if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '')
                     .replace(
                        /\)$/, '')
                  var sep = ''
                  for (var i = 0; i < seps.length; i++) {
                     if (l.toLowerCase().includes(seps[i])) {
@@ -1547,18 +1705,23 @@
                     var value = ''
                     var op = sep.trim()
                     if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') &&
                     if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase()
                        .includes('select ') &&
                        values[1]?.toLowerCase().includes(' from ')) {
                        value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
                        if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '')
                        value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '')
                           .trim()
                        if (value.startsWith('(') && value.endsWith(')')) value = value
                           .replace(/^\(/, '')
                           .replace(/\)$/, '').trim()
                     } else {
                        value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
                        if (['in', 'not in'].includes(op)) {
                           value = value.replace(/^\(/, '').replace(/\)$/, '')
                           value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/,
                              ''))
                           value = value.split(',').map(v => v.trim().replace(/^\'/,
                                 '')
                              .replace(/\'$/,
                                 ''))
                        }
                     }
                     sql.push([{
@@ -1696,7 +1859,7 @@
      }
      .dv-panel-buticon .btn-padding {
         padding: 0rpx 20rpx;
         padding: 10rpx 20rpx;
         display: inline-block;
         vertical-align: middle;
      }