jt
2022-08-09 b245230c28c6d39510b600649a6832b2d5f890b6
pages/modal/classAttr.vue
@@ -183,7 +183,7 @@
            <div class="dv_field_div" v-for="(attr,iindex) in classattr.Attr">
               <view class="form-group" v-if="attr.Type=='字符串' || attr.Type=='可变长字符串' || attr.Type=='整数' || attr.Type=='浮点数'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>  <!-- attr.NotEmpty=='1' -->
                     <div class="text-right" v-if="attr.ext_button==true">
                        <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
@@ -199,20 +199,20 @@
                     <div class="text-right2" v-if="attr.ext_button==true">
                        <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='布尔值'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <checkbox-group class="check_rememberPwd" @change="oncheck" :data-ischeck="attr.Value" :data-index="index" :data-iindex="iindex" :style="{'margin-left': classattr.control_style=='左右布局'?classattr.title_p_wdith+2 +'%':'10rpx'}">
                     <label>
                        <checkbox :value="attr.Value" :checked="attr.Value"/>
                        <text>{{attr.DispName}}<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                        <text>{{attr.DispName}}<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     </label>
                  </checkbox-group>
               </view>
               <view class="form-group" v-if="attr.Type=='日期' || attr.Type=='时间'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}">
                        <view class="picker">{{attr.Value}}</view>
                     </picker>
@@ -222,12 +222,12 @@
                     <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}">
                        <view class="picker">{{attr.Value}}</view>
                     </picker>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='字典' || attr.Type=='字典-字符串'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}">
                        <label class="">{{ attr.Value }}</label>
                     </picker>
@@ -237,12 +237,12 @@
                     <picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}">
                        <label class="">{{ attr.Value }}</label>
                     </picker>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='引用对象(单个)' || attr.Type=='引用对象(多个)'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <div class="text-right" v-if="attr.Type=='引用对象(单个)'">
                        <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]" ><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
@@ -266,12 +266,12 @@
                        </picker>
                        <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='引用人员'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <div class="text-right">
                        <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
@@ -283,12 +283,12 @@
                     <div class="text-right2">
                        <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='引用项目'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <div class="text-right">
                        <a href="#" class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
@@ -300,29 +300,29 @@
                     <div class="text-right2">
                        <a class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                     </div>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='编码'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :readonly="attr.edit=='Flase'?true:false" >
                  </view>
                  <view v-if="classattr.control_style=='左右布局'">
                     <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                     <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}" :readonly="attr.edit=='Flase'?true:false" >
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
               <view class="form-group" v-if="attr.Type=='省市区'" :style="{'display':attr.hidden == 'True'?'none':''}">
                  <view v-if="classattr.control_style=='上下布局'">
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i></text>
                     <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                     <pickerAddress class="date_iput" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" >{{attr.Value}}</pickerAddress>
                  </view>
                  <view v-if="classattr.control_style=='左右布局'">
                     <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                     <pickerAddress class="date_iput attr_field" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}">{{attr.Value}}</pickerAddress>
                     <i class="i_tishi" v-if="attr.NotEmpty=='1'">*</i>
                     <i class="i_tishi" v-if="attr.notempty==true">*</i>
                  </view>
               </view>
            </div>
@@ -679,14 +679,19 @@
               this.add();
         },
         add(){
            uni.showLoading({
               title:"加载中..."
            });
            var req=[];
            var attrlist = this.$data.classAttrList;
            for (var i = 0; i < attrlist.length; i++) {
               var attr = attrlist[i].Attr;
               for (var j = 0; j < attr.length; j++) {
                  var ar = attr[j];
                  if(ar.NotEmpty=='1'){
                     uni.showModal({title:"提示",content:'字段:'+ar.Name+',值不能为空!',showCancel:false,confirmText:"取消"});
                  if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {
                  // if(ar.notEmpty=='1'){
                     uni.hideLoading();
                     uni.showModal({title:"提示",content:ar.DispName+'不能为空!',showCancel:false,confirmText:"取消"});
                     return;
                  }
                  if(ar.Value=='请选择') ar.Value='';
@@ -719,15 +724,24 @@
            console.log(dataInfo);
            this.$store.dispatch('addclassattr',dataInfo).then(success=>{
               console.log(success);
               uni.hideLoading();
               if (success.code=='00000') {
                  uni.showModal({title:"提示",content:success.msg,showCancel:false,confirmText:"取消"});
                  var action = JSON.parse(success.data.Action);
                  if(action.ret=='0'){
                     if(action.result_type=='0'){
                        uni.showModal({title:"提示",content:action.result,showCancel:false,confirmText:"取消"});
                     }
                     // "{"ret":0, "result_type":0, "result":"创建成功123123123","info":""}"
                  }
                  this.class_attr_init();
               }else{
                  uni.showModal({title:"错误5",content:success.msg,showCancel:false,confirmText:"取消"});
                  uni.hideLoading();
                  uni.showModal({title:"错误",content:success.msg,showCancel:false,confirmText:"取消"});
               }
            }).catch(ex=>{
               // console.log(ex);
               uni.showModal({title:"错误5.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
               console.log(ex);
               uni.hideLoading();
               uni.showModal({title:"提示",content:ex.errMsg,showCancel:false,confirmText:"取消"});
            });
         },
         class_attr_init(){
@@ -907,23 +921,20 @@
                                    for (var l = 0; l < this.$data.classAttrList[a].Attr.length; l++) {
                                       var ca = this.$data.classAttrList[a].Attr[l];
                                       if (val[i].attr  == ca.Name) {
                                          ca.value = val[i].value;
                                          if(ca.Type=='字典' || ca.Type=='字典-字符串'){
                                             var dictItemList=[];
                                             for(var d in val[i].choice_list){
                                                var val =val[i].choice_list[d];
                                                dictItemList.push({"CN_S_NAME":val,"Name":val});
                                             }
                                             ca.dictitem = dictItemList;
                                             // attr[j].dictitem = val[i].choice_list;
                                          }else{
                                             ca.value = val[i].value;
                                          }
                                       }
                                    }
                                 }
                                      // if ($el_attr.data('type') == 'bool') {
                                      //     $el_attr.prop('checked', val[i].value == 'Y' || val[i].value == 'y' || val[i].value == '1')
                                      // }
                                      // else {
                                          // if (val[i].choice_list) {
                                          //     $el_attr.empty();
                                          //     val[i].choice_list.forEach(function (list) {
                                          //         $el_attr.append('<option value="' + list + '">' + list + '</option>');
                                          //     })
                                          // }
                                      //     $el_attr.val(val[i].value);
                                      // }
                                      // $el_attr.data('val', val[i].value);
               
                                      var length = 0;
                                      if (!this.$data.refdatastore.filter(function (s) {
@@ -1364,14 +1375,14 @@
                      }
                  }
                  }else{
                     uni.showModal({title:"错误5.2",content: '调用 before_click_button 脚本返回空,event_id' + eventid,showCancel:false,confirmText:"取消"});
                     uni.showModal({title:"提示5.2",content: '调用 before_click_button 脚本返回空,event_id' + eventid,showCancel:false,confirmText:"取消"});
                  }
               }else{
                  uni.showModal({title:"错误5",content:success.msg,showCancel:false,confirmText:"取消"});
               }
            }).catch(ex=>{
               // console.log(ex);
               uni.showModal({title:"错误5.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
               uni.showModal({title:"提示5.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
            });
          },