cuiqian2004
2024-06-17 b1f20a79e8c5635e0f8aeea42df1d5804fd6dc1f
pages/modal/3037_2.vue
@@ -417,6 +417,8 @@
   <view class="content">
      <!-- 表头样式 -->
      <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" >
        <!-- 普通布局 -->
        <view v-if="item.name!='Layout' && item.show==true">
         <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text>
         <!-- 下拉框-单选 item.useDict?item.dict:item.selections-->
         <uni-data-select id="dv_select" v-if="item.name=='Select'"
@@ -497,7 +499,8 @@
               <view class="picker">{{item.value}}</view>
            </picker>
         </view>
        </view>
      </view>
      <!-- 从数据 -->
      <view class="v-panel">
@@ -528,11 +531,11 @@
           <view class="v-area dv-panel" v-for="(item,index) in subpanel.subClassAttr.form.items">
            <div class="dv-panel-input">
               <!-- 普通布局 -->
               <view v-if="item.name!='Layout'">
               <view v-if="item.name!='Layout' && item.show==true">
                  <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}:</text>
                  <span class="form-item-span" v-if="item.disabled">{{item.value}}</span>
                  <!-- 文本框/数字框 -->
                  <view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
                  <view class="input-wrapper" v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
                     <text v-if="item.setting.prefix" 
                        class="uni-icon" 
                        :class="[item.setting.prefix]"
@@ -602,13 +605,13 @@
                  </view>
               </view>
               <!-- 栅格布局 -->
               <uni-row class="demo-uni-row" v-if="item.name=='Layout'">
               <uni-row class="demo-uni-row" v-if="item.name=='Layout' && item.show==true">
                  <uni-col v-for="(cols,key) in item.setting.colList" 
                     :span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
                     <view v-if="cols!=null" >
                        <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}:</text>
                        <span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span>
                        <view class="dv_input" v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
                        <view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
                           <text v-if="cols.setting.prefix" 
                              class="uni-icon" 
                              :class="[cols.setting.prefix]"
@@ -789,11 +792,19 @@
            $this.$data.head_styledef = ret.result.style_def? JSON.parse(styledef): {};
            // console.log($this.$data.head_styledef);
            $this.head_styledef.form.items.forEach(async (ele,index) => {
               ele.show=true;
                if(ele.useDict==true){ //判断useDict是否使用字典
                    await this.DictGetInfo(ele.bind.dict,index,'mast');
                }
            });
            
            if($this.head_styledef.event?.length>0){
              $this.head_styledef.event.forEach(async (a)=>{  //判断是否是初始化事件
                if(a.event_id == "initial"){
                  await this.loadInitEvent(a.scrip_id,'head');
                }
              });
            }
         }else{
            uni.showModal({title:"错误1",content:ret.err_msg,showCancel:false,confirmText:"取消"});
         }
@@ -826,6 +837,13 @@
                    await this.DictGetInfo(ele.bind.dict,index,'sub');
                }
            });
            if($this.detail1_styledef.event?.length>0){
              $detail1_styledefforEach(async (a)=>{  //判断是否是初始化事件
                if(a.event_id == "initial"){
                  await this.loadInitEvent(a.scrip_id,'detail');
                }
              });
            }
            // var aa = JSON.stringify(this.detail1_styledef);
            // $this.$data.detail1StyleDefList.push(JSON.parse(aa));
            // console.log($this.$data.detail1StyleDefList);
@@ -888,6 +906,157 @@
         uni.showModal({title:"错误1.3",content:ex.errMsg,showCancel:false,confirmText:"取消"});
      });
   },
   async loadInitEvent(eventid,type){
      var $this = this;
      var styledef = type=='head'?this.head_styledef:this.detail1_styledef;
      if(!eventid.includes('{')) eventid = '{'+eventid+'}';
      var dataInfo={
         ed_type: 0,
         start_transaction: true,
         class_id: this.param.DataCls.id,
         event_id: eventid,
      };
      console.log(dataInfo);
      // return;
      this.$store.dispatch('runCustomEvent',dataInfo).then(success=>{
         console.log(success);
         if (success.err_code == 0) {
            var data = success.result;
            if (data.ret != 0) {
                var tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info : data.err_info.join('<br/>') : '';
                if (data.ret == 801) uni.showModal({title:'提示',content:tip,showCancel:false,confirmText:"取消"});
                else uni.showModal({title:'提示',content:tip+',提示:'+data.ret,showCancel:false,confirmText:"取消"});
               return false
            }else{
               var tip = data.info ? typeof data.info == 'string' ? data.info : data.info.join('<br/>') : '';
               if (tip) uni.showModal({title:'提示',content:tip,showCancel:false,confirmText:"取消"});
               var actionlist = data.action;
               if (actionlist) {
                  console.log(actionlist);
                  for (var i = 0; i < actionlist.length; i++) {
                     var action = actionlist[i];
                     if (action.action_type == 'set_dlg_attr') {
                        var result = action.value;
                        for (var i = 0; i < result.length; i++) {
                           if (result[i].choice_list) {
                              for (var c = 0; c < styledef.form.items.length; c++) {
                                 var attr = styledef.form.items[c];
                                 if(attr.name!='Layout'){
                                   if(attr.fieldId==result[i].attr){
                                      var dictItemList=[];
                                      for(var d in result[i].choice_list){
                                         var val =result[i].choice_list[d];
                                         dictItemList.push({"CN_S_NAME":val,"CN_S_VALUE":val,"text":val,"value":val});
                                      }
                                      attr.dict = dictItemList;
                                   }
                                 } else if(attr.name=='Layout'){
                                   attr.setting.colList.forEach(col=>{
                                     if(col){
                                       if(col.fieldId==result[i].attr){
                                          var dictItemList=[];
                                          for(var d in result[i].choice_list){
                                             var val =result[i].choice_list[d];
                                             dictItemList.push({"CN_S_NAME":val,"CN_S_VALUE":val,"text":val,"value":val});
                                          }
                                          col.dict = dictItemList;
                                       }
                                     }
                                   });
                                 }
                              }
                           }
                           for (var c = 0; c < styledef.form.items.length; c++) {
                              var attr = styledef.form.items[c];
                              // console.log(attr[j].Name+'=='+result[i].attr);
                              //判断表单里是否有返回字段,没有就装载到model里,点击确定提交的时候带上这些数据
                              if($this.head_styledef.form.model[result[i].attr]==undefined){
                                   $this.head_styledef.form.model[result[i].attr]=result[i].value;
                              }
                              //判断是否是栅格表单
                              if(attr.name!='Layout'){
                                if(attr.fieldId==result[i].attr){
                                   attr.value = '';
                                   attr.oldvalue = '';
                                   attr.value = result[i].value;
                                   attr.oldvalue = result[i].value;
                                   $this.head_styledef.form.model[attr.fieldId] =result[i].value;
                                }
                              } else if(attr.name=='Layout'){
                                attr.setting.colList.forEach(col=>{
                                  if(col){
                                    if(col.fieldId==result[i].attr){
                                       col.value = '';
                                       col.oldvalue = '';
                                       col.value = result[i].value;
                                       col.oldvalue = result[i].value;
                                       $this.head_styledef.form.model[col.fieldId] =result[i].value;
                                    }
                                  }
                                });
                              }
                           }
                           var length = 0;
                           if (!$this.$data.refdatastore.filter(function (s) {
                              return result[i].attr == s.attr
                           }).length) {
                              length = 1;
                              $this.$data.refdatastore.push(result[i]);
                           }
                           if (length == 0) {
                              for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                 if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                    $this.$data.refdatastore[j].value = result[i].value;
                                 }
                              }
                           }
                        }
                     } else if (data.action[i].action_type == 'set_dlg_attr_show') {
                        var result = action.value;
                        result.forEach(async (attr,key) => {
                          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;
                                    }
                                 }
                              });
                           }
                          });
                        });
                        var style_def = JSON.parse(JSON.stringify(styledef));
                        if(type=='head'){
                           $this.$data.head_styledef =[];
                           $this.$data.head_styledef = style_def;
                           // console.log($this.$data.head_styledef);
                        }else{
                           $this.$data.detail1_styledef =[];
                           $this.$data.detail1_styledef = style_def;
                           // console.log($this.$data.detail1_styledef);
                        }
                     } else {
                        uni.showModal({title:"提示",content:"执行初始化事件失败:"+item.action_type + '此action尚未处理!',showCancel:false,confirmText:"取消"});
                     }
                  }
               }
            }
         }else{
            uni.showModal({title:"错误3",content:"执行初始化事件失败:"+success.err_msg,showCancel:false,confirmText:"取消"});
         }
      }).catch(ex=>{
         // console.log(ex);
         uni.showModal({title:"错误3.1",content:"执行初始化事件失败:"+ex.errMsg,showCancel:false,confirmText:"取消"});
      });
   },
   
   ontap(item){ //扫码功能
      //console.log(e.target)
@@ -907,7 +1076,7 @@
               //    $this.focusMateria=true; //第二个输入框获取焦点
                  setTimeout(function(){
                     uni.hideKeyboard();
                  },100);
                  },1000);
               // },500);
            }
            //子数据类扫码区事件脚本
@@ -1338,7 +1507,7 @@
      if(!info.eventid.includes('{')) info.eventid = '{'+info.eventid+'}';
      var dataInfo={
        ed_type: info.edtype,
        start_transaction: '',
        start_transaction: true,
        class_id: info.clsid,
        class_name: '',
        event_id: info.eventid,
@@ -1378,25 +1547,57 @@
                     if (action.action_type == 'set_dlg_attr') {
                        var result = action.value;
                        for (var i = 0; i < result.length; i++) {
                              if (result[i].choice_list) {
                           if (result[i].choice_list) {
                              for (var c = 0; c < $this.head_styledef.form.items.length; c++) {
                                 var attr = $this.head_styledef.form.items[c];
                                 if(attr.fieldId==result[i].attr){
                                    var dictItemList=[];
                                    for(var d in result[i].choice_list){
                                       var val =result[i].choice_list[d];
                                       dictItemList.push({"CN_S_NAME":val,"CN_S_VALUE":val,"text":val,"value":val});
                                    }
                                    attr.dict = dictItemList;
                                 if(attr.name!='Layout'){
                                   if(attr.fieldId==result[i].attr){
                                      var dictItemList=[];
                                      for(var d in result[i].choice_list){
                                         var val =result[i].choice_list[d];
                                         dictItemList.push({"CN_S_NAME":val,"CN_S_VALUE":val,"text":val,"value":val});
                                      }
                                      attr.dict = dictItemList;
                                   }
                                 } else if(attr.name=='Layout'){
                                   attr.setting.colList.forEach(col=>{
                                     if(col){
                                       if(col.fieldId==result[i].attr){
                                          var dictItemList=[];
                                          for(var d in result[i].choice_list){
                                             var val =result[i].choice_list[d];
                                             dictItemList.push({"CN_S_NAME":val,"CN_S_VALUE":val,"text":val,"value":val});
                                          }
                                          col.dict = dictItemList;
                                       }
                                     }
                                   });
                                 }
                              }
                           }
                           for (var c = 0; c < $this.$data.head_styledef.form.items.length; c++) {
                              var attr = $this.$data.head_styledef.form.items[c];
                              // console.log(attr[j].Name+'=='+result[i].attr);
                              if(attr.fieldId==result[i].attr){
                                 attr.value = result[i].value;
                                 $this.head_styledef.form.model[attr.fieldId] =result[i].value;
                              if(attr.name!='Layout'){
                                if(attr.fieldId==result[i].attr){
                                   attr.value = '';
                                   attr.oldvalue = '';
                                   attr.value = result[i].value;
                                   attr.oldvalue = result[i].value;
                                   $this.head_styledef.form.model[attr.fieldId] =result[i].value;
                                }
                              } else if(attr.name=='Layout'){
                                attr.setting.colList.forEach(col=>{
                                  if(col){
                                    if(col.fieldId==result[i].attr){
                                       col.value = '';
                                       col.oldvalue = '';
                                       col.value = result[i].value;
                                       col.oldvalue = result[i].value;
                                       $this.head_styledef.form.model[col.fieldId] =result[i].value;
                                    }
                                  }
                                });
                              }
                              
                           }
@@ -1415,9 +1616,35 @@
                              }
                           }
                        }
                     } else if (data.action[i].action_type == 'set_global_attr') {
                        $this.$data.global_attr = data.action[i].value || [];
                     }
                     } else if (action.action_type == 'set_dlg_attr_show') {
                        var result = action.value;
                        result.forEach(async (attr,key) => {
                          $this.$data.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;
                                    }
                                 }
                              });
                           }
                          });
                        });
                        var head_styledef = JSON.parse(JSON.stringify($this.$data.head_styledef));
                        $this.$data.head_styledef =[];
                        $this.$data.head_styledef = head_styledef;
                        // console.log($this.$data.head_styledef);
                     } else if (action.action_type == 'set_global_attr') {
                        $this.$data.global_attr = action.value || [];
                     } else {
                        uni.showModal({title:"提示",content:action.action_type + '此action尚未处理!',showCancel:false,confirmText:"取消"});
                     }
                  }
               }
               
@@ -1426,9 +1653,26 @@
                  for (var i = 0; i < result.length; i++) {
                     for (var c = 0; c < $this.$data.head_styledef.form.items.length; c++) {
                        var attr = $this.$data.head_styledef.form.items[c];
                        if(attr.fieldId==result[i].attr){
                           attr.value = result[i].value;
                           $this.head_styledef.form.model[attr.fieldId] =result[i].value;
                        if(attr.name!='Layout'){
                          if(attr.fieldId==result[i].attr){
                             attr.value = '';
                             attr.oldvalue = '';
                             attr.value = result[i].value;
                             attr.oldvalue = result[i].value;
                             $this.head_styledef.form.model[attr.fieldId] =result[i].value;
                          }
                        } else if(attr.name=='Layout'){
                          attr.setting.colList.forEach(col=>{
                            if(col){
                              if(col.fieldId==result[i].attr){
                                 col.value = '';
                                 col.oldvalue = '';
                                 col.value = result[i].value;
                                 col.oldvalue = result[i].value;
                                 $this.head_styledef.form.model[col.fieldId] =result[i].value;
                              }
                            }
                          });
                        }
                        
                     }
@@ -1500,7 +1744,7 @@
      if(!info.eventid.includes('{')) info.eventid= '{'+ info.eventid +'}';
      var dataInfo={
        ed_type: info.edtype,
        start_transaction: '',
        start_transaction: true,
        class_id: info.clsid,
        class_name: '',
        event_id: info.eventid,
@@ -1567,6 +1811,10 @@
                                    console.log(attr[j].Name+'=='+result[i].attr);
                                    if(attr[j].Name==result[i].attr){
                                       attr[j].Value = result[i].value;
                                       // attr.value = '';
                                       // attr.oldvalue = '';
                                       // attr.value = result[i].value;
                                       // attr.oldvalue = result[i].value;
                                    }
                                 }
                              }
@@ -1660,7 +1908,9 @@
                              }
                           }
                        }
                     }
                     } else {
                        uni.showModal({title:"提示",content:action.action_type + '此action尚未处理!',showCancel:false,confirmText:"取消"});
                     }
                  }
               }
               
@@ -1795,7 +2045,7 @@
       if(!eventID.includes('{')) eventID= '{'+ eventID +'}';
       var dataInfo={
         ed_type: "7",
         start_transaction: '',
        start_transaction: true,
         class_id: 'MBOX',
         class_name: '',
         event_id: eventID,