| | |
| | | <template> |
| | | <view class="content"> |
| | | <view class="v-area" v-for="(classattr,index) in classAttrList"> |
| | | <div class="class_attr_title"> |
| | | <div class="class_attr_title" style="display: none;"> |
| | | <div class="title_line"></div> |
| | | <div class="title_icon" :style="{'background-color':classattr.BkColor}"> |
| | | <i class="ace-icon fa" :class="classattr.ImgFontStyle"></i> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | }, |
| | | onLoad(options) { |
| | | // console.log(options); |
| | | this.$data.title = options.titlename; //设置按钮文字 |
| | | uni.setNavigationBarTitle({ title: options.titlename}); //设置顶部标题 |
| | | var param = JSON.parse(options.param); |
| | | this.$data.title = param.Add_BtnName?param.Add_BtnName:options.titlename; //设置按钮文字 |
| | | // console.log(param); |
| | | if(!param.EditDlgMode){ |
| | | uni.showModal({title:"提示",content:"该功能点未配置编辑窗口,请重新配置!",showCancel:false,confirmText:"取消"}); |
| | |
| | | // console.log(ex); |
| | | uni.showModal({title:"错误1.1",content:ex.errMsg,showCancel:false,confirmText:"取消"}); |
| | | }); |
| | | |
| | | |
| | | }, |
| | | methods: { |
| | |
| | | this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=e.target.value; |
| | | }, |
| | | onchange(e) { |
| | | // console.log(e.target); |
| | | console.log(e.target); |
| | | var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value]; |
| | | var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']]; |
| | | // console.log(data_attr); |
| | | console.log(data_attr); |
| | | if (value.Name != data_attr.Value) { |
| | | this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value.Name; |
| | | console.log(this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value); |
| | | var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action; |
| | | if (eventid) { |
| | | // self.event_no_sub = 1; |
| | |
| | | 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=''; |
| | |
| | | console.log(dataInfo); |
| | | this.$store.dispatch('addclassattr',dataInfo).then(success=>{ |
| | | console.log(success); |
| | | uni.hideLoading(); |
| | | if (success.code=='00000') { |
| | | 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(){ |
| | |
| | | ca.before_click_button = attrs[j].before_click_button; |
| | | ca.button_callback = attrs[j].button_callback; |
| | | ca.hidden = attrs[j].hidden; |
| | | attr.push(ca); |
| | | ca.Value =""; |
| | | if(ca.dictitem){ |
| | | // var dictitem=ca.dictitem; |
| | | // var dictitemlist=[]; |
| | |
| | | if(ca.Type=='省市区') |
| | | ca.Value = '请选择'; |
| | | if(ca.Type=='布尔值') |
| | | ca.Value = false; |
| | | ca.Value = false |
| | | |
| | | attr.push(ca); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 result[i].choice_list){ |
| | | var val =result[i].choice_list[d]; |
| | | dictItemList.push({"CN_S_NAME":val,"Name":val}); |
| | | } |
| | | ca.dictitem = dictItemList; |
| | | // attr[j].dictitem = result[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) { |
| | |
| | | for (var j = 0; j < attr.length; j++) { |
| | | if(attr[j].Name==result[i].attr){ |
| | | if(attr[j].Type=='字典' || attr[j].Type=='字典-字符串'){ |
| | | attr[j].dictitem = result[i].choice_list; |
| | | var dictItemList=[]; |
| | | for(var d in result[i].choice_list){ |
| | | var val =result[i].choice_list[d]; |
| | | dictItemList.push({"CN_S_NAME":val,"Name":val}); |
| | | } |
| | | attr[j].dictitem = dictItemList; |
| | | // attr[j].dictitem = result[i].choice_list; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | }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:"取消"}); |
| | | }); |
| | | }, |
| | | |