From 5845950aa395da1a1f56a5fff4c80358cf4b5f7f Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 16 五月 2023 21:03:56 +0800 Subject: [PATCH] 新增引用码段下的参照配置界面,代码整合 --- Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue | 662 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 507 insertions(+), 155 deletions(-) diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue index 38708a5..120dca7 100644 --- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue +++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue @@ -6,68 +6,104 @@ :visible.sync="isShowReferConfig" width="90%" @close="recoveryDataAndForm('initData')" - style="height: 110vh; margin-top: -13vh; overflow-y: hidden"> - <div style="width: 100%; overflow-y: auto; height: 70vh"> - <el-row> - <avue-form :option="formOption" v-model="form"></avue-form> - </el-row> - <el-row v-show="form.referWindowType==0 || form.referWindowType==3"> - <avue-crud - ref="crudAttr" - :option="attrOption" - :data="attrData"> - <!-- 琛ㄦ牸鍐呮搷浣滄寜閽� --> - <template slot="menu" slot-scope="scope"> - <el-button type="text" - size="small" - icon="el-icon-search" - plain - @click="scope.row.isquery=!scope.row.isquery"> - {{scope.row.isquery ? "蹇�熸煡璇�":"鍙栨秷蹇�熸煡璇�"}} - </el-button> - <el-button type="text" - size="small" - icon="el-icon-minus" - plain - @click="removeCurrentRow(scope.row,'removeAttr')">绉婚櫎 - </el-button> - </template> - <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� --> - <template slot="menuLeft" slot-scope="scope"> - <el-button type="primary" - size="small" - icon="el-icon-plus" - @click="openAddSearchOrAttrDialog('selectAttr')">閫夋嫨灞炴�� - </el-button> - </template> - </avue-crud> - </el-row> - <el-row> - <avue-crud - ref="crudAddCondition" - :option="addSearchCondtionOption" - :data="addSearchCondtionData"> - <!-- 琛ㄦ牸鍐呮搷浣滄寜閽� --> - <template slot="menu" slot-scope="scope"> - <el-button type="text" - size="small" - icon="el-icon-minus" - plain - @click="removeCurrentRow(scope.row,'removeaddSearchCondtion')">绉婚櫎 - </el-button> - </template> - <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� --> - <template slot="menuLeft" slot-scope="scope"> - <el-button type="primary" - size="small" - icon="el-icon-plus" - @click="openAddSearchOrAttrDialog('addSearchCondition')"> - 娣诲姞鏌ヨ鏉′欢 - </el-button> - </template> - </avue-crud> - </el-row> - </div> + style="height: 115vh; margin-top: -14vh; overflow-y: hidden"> + <el-tabs v-model="activeName" @tab-click="handleClick"> + <el-tab-pane label="鑷畾涔夊弬鐓ч厤缃�" name="first"> + <div style="width: 100%; overflow-y: auto; height: 65vh"> + <el-row> + <avue-form ref="form" :option="formOption" v-model="form" class="referTypeForm"> + <template> + <el-input + ref="referType" + placeholder="璇烽�夋嫨 鍙傜収鐨勪笟鍔$被鍨�" + prefix-icon="el-icon-search" + readonly="true" + v-model="form.referType" + @focus="openAttrSelectOrGetValue('referType')"> + <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referType')" style="margin-right: 5px;cursor: pointer;"></i> + </el-input> + </template> + </avue-form> + </el-row> + <el-row v-show="form.type=='default' || form.type=='grid'"> + <avue-crud + ref="crudAttr" + :option="attrOption" + @cell-click="clicktest" + :data="attrData"> + <!-- 琛ㄦ牸鍐呮搷浣滄寜閽� --> + <template slot="menu" slot-scope="scope"> + <el-button type="text" + size="small" + icon="el-icon-search" + plain + @click="scope.row.isquery=!scope.row.isquery"> + {{scope.row.isquery ? "鍙栨秷蹇�熸煡璇�":"蹇�熸煡璇�"}} + </el-button> + <el-button type="text" + size="small" + icon="el-icon-minus" + plain + @click="removeCurrentRow(scope.row,'removeAttr')">绉婚櫎 + </el-button> + </template> + <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� --> + <template slot="menuLeft" slot-scope="scope"> + <el-button type="primary" + size="small" + icon="el-icon-plus" + @click="openAddSearchOrAttrDialog('selectAttr')">閫夋嫨灞炴�� + </el-button> + </template> + </avue-crud> + </el-row> + <el-row> + <avue-crud + ref="crudAddCondition" + :option="addSearchCondtionOption" + :data="addSearchCondtionData"> + <!-- 琛ㄦ牸鍐呮搷浣滄寜閽� --> + <template slot="menu" slot-scope="scope"> + <el-button type="text" + size="small" + icon="el-icon-minus" + plain + @click="removeCurrentRow(scope.row,'removeaddSearchCondtion')">绉婚櫎 + </el-button> + </template> + <!-- 琛ㄦ牸宸︿笂鏂规寜閽尯鍩� --> + <template slot="menuLeft" slot-scope="scope"> + <el-button type="primary" + size="small" + icon="el-icon-plus" + @click="openAddSearchOrAttrDialog('addSearchCondition')"> + 娣诲姞鏌ヨ鏉′欢 + </el-button> + </template> + </avue-crud> + </el-row> + </div> + </el-tab-pane> + <el-tab-pane label="鐩存帴閫夊彇鍙傜収閰嶇疆" name="second"> + <div style="width: 100%; overflow-y: auto; height: 65vh"> + <avue-crud + :option="optionSelectReferConfig" + :table-loading="selectReferConfigLoading" + :data="selectReferConfigData" + :page.sync="selectReferConfigPage" + ref="selectReferConfigCrud" + @row-click="codeRuleRowClick" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad"> + </avue-crud> + </div> + </el-tab-pane> + </el-tabs> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="selectedListReferConfig">纭� 瀹�</el-button> <el-button @click="recoveryDataAndForm('initForm')">娓呯┖鍐呭</el-button> @@ -83,19 +119,38 @@ props: { //鏈満鏅彉閲� thisSceneTableData: { - type: Array, + type: Array, }, }, data() { return { + activeName: 'first', //褰撳墠娲诲姩鐨則abs labelWidth: '150', // 鏍囬瀹藉害 isShowReferConfig: false, // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒� // 琛ㄥ崟瀵硅薄 form: { - text: '', - text1: '', - text2: '', - referWindowType: 0, //鍙傜収绐楀彛绫诲瀷 + referType: '', + textField: 'name', + valueField: 'oid', + type: 'default', //鍙傜収绐楀彛绫诲瀷 + url: '', + backPath: '', + method: 'GET', + height: '', + useFormKey: '', + paramForFormKey: '', + isMuti: false, + mapFields: '', + // limit: '15', + // sortField: '', + // sortType: 'asc', + // referContent: '', + // displayTable: '', + // parentFieldName: '', + // parentUsedField: 'oid', + // parentValue: '', + // loadType: 'all', + // onlyLeaf: false, }, attrData: [ { @@ -211,12 +266,96 @@ prop: "value", } ] - } + }, + + optionSelectReferConfig: { + height:'auto', + tip: false, + addBtn: false, + editBtn: false, + //searchShow: false, + searchMenuSpan: 6, + border: false, + index: true, + viewBtn: false, + delBtn: false, + //selection: false, + //disablePage: false, + //refreshBtn: false, + //columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, + column: [ + { + label: "鍒楀瓧娈�(*)", + prop: "field", + },{ + label: "鍒楀悕(*)", + prop: "title", + },{ + label: "瀛楁绫诲瀷(*)", + prop: "fieldTypeText", + },{ + label: "鍒楄〃鍙帓搴�", + prop: "sort", + },{ + label: "鎺掑簭瀛楁", + prop: "sortField", + },{ + label: "瀛楁瀹藉害", + prop: "width", + },{ + label: "鍒楀浐瀹氫綅缃�", + prop: "fixedText", + },{ + label: "js鏄剧ず浠g爜", + prop: "templet", + }, + ] + }, + selectReferConfigLoading: false, + selectReferConfigData: [ + { + field: 'id', + title: '缂栧彿', + fieldType: 'text', + fieldTypeText: '鏂囨湰妗�', + sort: "true", + sortField: 'id', + width: '150', + isquery: true, + },{ + field: 'name', + title: '鍚嶇О', + fieldType: 'text', + fieldTypeText: '鏂囨湰妗�', + sort: "true", + sortField: 'name', + width: '180', + isquery: true, + } + ], + selectReferConfigPage: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + selectReferConfigQuery: {}, + }; }, // 琛ㄥ崟鐣岄潰鏄剧ず鍐呭閰嶇疆 computed: { formOption() { + /** 妫�楠屾槸鍚︿负鏁板瓧 */ + let validateNumber = ""; + validateNumber = (rule, value,callback) => { + if(/[^\d]/g.test(value)){ + callback(new Error('绐楀彛鏄剧ず鐨勯珮搴﹀繀椤讳负鏁板�肩被鍨�')); + }else { + callback(); + } + }; return { submitBtn: false, emptyBtn: false, @@ -225,11 +364,27 @@ column: [ { label: '鍙傜収鐨勪笟鍔$被鍨�', - prop: 'text1', + prop: 'referType', span: 7, - type: 'table', + tip: '鍙傜収鏁版嵁鏌ヨ鐨勪笟鍔$被鍨嬨��', + tipPlacement: 'right', + type: 'input', + rules: [{ + required: true, + message: "(鍙傜収鐨勪笟鍔$被鍨�)蹇呭~椤逛笉鑳戒负绌�", + trigger: "blur", + }], children: { border: true, + height: '200px', + tip: false, + //searchShow: false, + index: true, + selection: true, + //refreshBtn: false, + //columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, column: [{ label: '涓氬姟绫诲瀷缂栧彿', width: 120, @@ -249,17 +404,60 @@ prop: 'description' }], }, - rules: [{ - required: true, - message: "(鍙傜収鐨勪笟鍔$被鍨�)蹇呭~椤逛笉鑳戒负绌�", - trigger: "blur", - }], + // formatter: (row) => { + // console.log(row.name); + // if (!row.name) + // return '' + // return row.name; + // }, + // onLoad: ({ page, value, data }, callback) => { + // console.log(page); + // console.log(value); + // console.log(data); + // //棣栨鍔犺浇鍘绘煡璇㈠搴旂殑鍊� + // if (value) { + // console.log(111+"======="+ value); + // this.$message.success('棣栨鏌ヨ' + value) + // callback({ + // id: 't1', + // name: 'test1', + // description: 'test1', + // }) + // return; + // } + // if (data) { + // console.log(111+"======="+ data); + // this.$message.success('鎼滅储鏌ヨ鍙傛暟' + JSON.stringify(data)) + // } + // if (page) { + // console.log(111+"======="+ page); + // this.$message.success('鍒嗛〉鍙傛暟' + JSON.stringify(page)) + // } + // //鍒嗛〉鏌ヨ淇℃伅 + // callback({ + // total: 2, + // data: [{ + // id: 't2', + // name: 'test2', + // description: 'test2', + // }, { + // id: 't3', + // name: 'test3', + // description: 'test3', + // }] + // }) + // }, + // props: { + // label: 'name', + // value: 'id', + // } },{ label: '鏄剧ず鐨勫睘鎬�', - prop: 'text2', - tip: '閫夋嫨鏁版嵁鍚庯紝鏄剧ず鍒板瓧娈典笂鐨勪俊鎭墍灞炵殑灞炴�э紝涓�鑸兘鏄痭ame,濡傛灉鏄涓睘鎬т娇鐢ㄩ�楀彿鍒嗗壊锛屽id,name', + prop: 'textField', + tip: '閫夋嫨鏁版嵁鍚庯紝鏄剧ず鍒板瓧娈典笂鐨勪俊鎭墍灞炵殑灞炴�э紝涓�鑸兘鏄痭ame,濡傛灉鏄涓睘鎬т娇鐢ㄩ�楀彿鍒嗗壊锛屽id,name銆�', tipPlacement: 'right', span: 7, + value: 'name', rules: [{ required: true, message: "(鏄剧ず鐨勫睘鎬�)蹇呭~椤逛笉鑳戒负绌�", @@ -267,8 +465,9 @@ }], },{ label: '瀛樺偍鍊肩殑灞炴��', - prop: 'text2', + prop: 'valueField', tip: '閫夋嫨鏁版嵁鍚庯紝淇濆瓨鍒版暟鎹簱閲岀殑灞炴�э紝涓�鑸兘鏄痮id鎴栬�卛d锛屽鏋滄槸澶氫釜灞炴�т娇鐢ㄩ�楀彿鍒嗗壊锛屽oid ,id', + value: 'oid', tipPlacement: 'right', span: 7, rules: [{ @@ -278,101 +477,158 @@ }], },{ label: '鍙傜収绐楀彛绫诲瀷', - prop: 'referWindowType', - //tip: '鎴戞槸涓�涓乏杈规彁绀鸿', - //tipPlacement: 'left', + prop: 'type', + tip: 'default:榛樿鐨勫弬鐓х獥鍙f牱寮�; stand:UI涓婁笅鏂囬厤缃殑鏂瑰紡; classify:鍒嗙被+妗f鐨勬樉绀�; 鑷畾涔夌殑鍙傜収鐩存帴鍐檍s鐨勭粍浠惰矾寰勶紱tree:鏍戝舰灞曠ず;grid:鍒楄〃灞曠ず', + tipPlacement: 'right', span: 7, + value: 'default', type: 'select', dicData: [{ label: '榛樿鏍峰紡', - value: 0 + value: 'default' }, { label: '骞冲彴閰嶇疆', - value: 1 + value: 'stand' }, { label: '鏍戝舰', - value: 2 + value: 'tree' }, { label: '鍒楄〃', - value: 3 + value: 'grid' }, { label: '閮ㄩ棬鏍�', - value: 4 + value: 'refer/OrgDepartmentRefer' }, { label: '閮ㄩ棬鍒楄〃', - value: 5 + value: 'refer/OrgDepartmentGridRefers' }, { label: '鐢ㄦ埛', - value: 6 + value: 'refer/SmUserRefer' }, { label: '鐢ㄦ埛鍒楄〃', - value: 7 + value: 'refer/SmUserGridRefer' }, { label: '瑙掕壊鍒楄〃', - value: 8 + value: 'refer/SmRoleRefer' }, { label: '鑱屽姟', - value: 9 + value: 'refer/OrgDutyRefer' }, { label: '宸ョ', - value: 10 + value: 'refer/SmWorkTypeRefer' }, { label: '娴佺▼妯℃澘', - value: 11 + value: 'refer/WfProcessTemplateRefer' }], rules: [{ required: true, message: "(鍙傜収绐楀彛绫诲瀷)蹇呭~椤逛笉鑳戒负绌�", trigger: "blur", }], + change: ({ value, column }) => { + // 澶嶅師琛ㄥ崟,鍥犱负鍏朵粬鍒嗙粍涓鏋滃瓨鍦ㄥ�硷紝鍦ㄥ垏鎹㈡椂,浼氫繚鐣欒緭鍏ョ殑瀛楁鍊兼墍浠ラ渶瑕佽繕鍘� + let oldForm = this.form; + this.form = {}; // 琛ㄥ崟瀵硅薄璧嬬┖ + this.form.referType = oldForm.referType + this.form.textField = oldForm.textField + this.form.valueField = oldForm.valueField + this.form.type = oldForm.type //鍙傜収绐楀彛绫诲瀷 + this.form.url = oldForm.url + this.form.backPath = oldForm.backPath + this.form.method = oldForm.method + this.form.height = oldForm.height + this.form.useFormKey = oldForm.useFormKey + this.form.paramForFormKey = oldForm.paramForFormKey + this.form.isMuti = oldForm.isMuti + this.form.mapFields = oldForm.mapFields + let addFrom = {}; //鏍规嵁绫诲瀷闇�瑕佹坊鍔犵殑涓嶅悓灞炴�� + if(value == 'stand'){ + addFrom = { + referContent: '', + displayTable: '', + } + } else if(value == 'default' || value == 'grid'){ + addFrom = { + limit: '15', + sortField: '', + sortType: 'asc', + } + } else if(value == 'tree'){ + addFrom = { + parentFieldName: '', + parentUsedField: 'oid', + parentValue: '', + loadType: 'all', + onlyLeaf: false, + sortField: '', + sortType: 'asc', + } + } + // 鍚堝苟涓や釜琛ㄥ崟 + this.form = Object.assign(addFrom,this.form); + //console.log(this.form); + }, },{ label: '鑷畾涔夌殑鍚庡彴璺緞', - prop: 'text2', - tip: '閫氬父涓虹┖;濡傛灉鏄垪琛紝鍚庡彴蹇呴』杩斿洖DataGrid锛屽鏋滄槸鏍戯紝鍚庡彴蹇呴』杩斿洖List', + prop: 'url', + tip: '閫氬父涓虹┖;濡傛灉鏄垪琛紝鍚庡彴蹇呴』杩斿洖DataGrid锛屽鏋滄槸鏍戯紝鍚庡彴蹇呴』杩斿洖List<Tree>', tipPlacement: 'right', span: 7, },{ label: '鏈嶅姟鐨勫湴鍧�', - prop: 'text2', + prop: 'backPath', tip: '閫氬父涓虹┖锛屽湪鏀寔寰湇鍔℃垨鑰呭垎甯冨紡閮ㄧ讲鐨勬椂鍊欐墠閰嶇疆', tipPlacement: 'right', span: 7, },{ label: '璇锋眰鍚庡彴鐨勫崗璁柟寮�', - prop: 'text2', - //tip: '', - //tipPlacement: 'right', + prop: 'method', + tip: 'HTTP鐨勫崗璁柟寮忥紝鏀寔POST,PUT,GET锛屼竴鑸兘鏄疓ET', + tipPlacement: 'right', span: 7, + value: 'GET', type: 'select', + dicData: [{ + label:'GET',value: "GET" + },{ + label:'PUT',value: "PUT" + }, + { + label:'POST',value: "POST" + }], },{ label: '绐楀彛鏄剧ず鐨勯珮搴�', - prop: 'text2', + prop: 'height', tip: '榛樿绌虹潃锛岃缃悗琛ㄧず寮哄埗鏄剧ず杩欐牱鐨勯珮搴�', tipPlacement: 'right', span: 7, + rules:[{ + validator: validateNumber, + message: "绐楀彛鏄剧ず鐨勯珮搴﹀繀椤讳负鏁板�肩被鍨�", + trigger: "blur", + }] },{ label: '杩囨护(绾ц仈)灞炴��', - prop: 'text2', + prop: 'useFormKey', tip: '鑾峰彇琛ㄥ崟涓婄殑鍏朵粬灞炴�х殑灞炴�х殑鍊兼潵杩囨护,鎴栬�呬娇鐢ㄦ煇涓睘鎬ф潵绾ц仈閫夋嫨', tipPlacement: 'right', span: 7, },{ label: '杩囨护灞炴�ц姹傚弬鏁�', - prop: 'text2', + prop: 'paramForFormKey', tip: '浣跨敤杩囨护灞炴�ф椂锛屽彂閫佺粰鍚庡彴鐨勮姹傚弬鏁�', tipPlacement: 'right', span: 7, },{ label: '鏄惁澶氶��', type: 'switch', - prop: 'text2', - //tip: '', - //tipPlacement: 'right', + prop: 'isMuti', + value: false, span: 7, row: true, },{ label: '鏄犲皠鍏朵粬灞炴��', - prop: 'text2', + prop: 'mapFields', tip: '閫夋嫨鏁版嵁鍚庯紝灏嗛�夋嫨鐨勬暟鎹嫹璐濆埌琛ㄥ崟閲岀殑鍏朵粬灞炴�э紝涔﹀啓鏍煎紡涓簕褰撳墠琛ㄥ崟涓婄殑灞炴��:閫夋嫨鏁版嵁閲岀殑灞炴��,XXXXx:yyyy}', tipPlacement: 'right', span: 18, @@ -381,23 +637,26 @@ // 鍙樺姩鐨勮〃鍗曞尯鍩� group: [ { - display: this.form.referWindowType==0||this.form.referWindowType==3, + display: this.form.type=='default'||this.form.type=='grid', icon: 'el-icon-info', - label: this.form.referWindowType==0 ? '榛樿鍙傜収鐨勯厤缃�(涓嬫柟鍒楄〃)':'鍒楄〃鍙傜収鐨勯厤缃紙涓嬫柟鍒楄〃)', + label: this.form.type=='default' ? '榛樿鍙傜収鐨勯厤缃�(涓嬫柟鍒楄〃)':'鍒楄〃鍙傜収鐨勯厤缃紙涓嬫柟鍒楄〃)', collapse: true, - prop: 'group1', + prop: 'groupDdefaultOrGrid', column: [ { label: '姣忛〉鏄剧ず鏉℃暟', - prop: 'text1', + prop: 'limit', span: 7, tip: '鍒嗛〉鏃舵瘡椤垫樉绀虹殑鏁伴噺锛屼笉鍒嗛〉濉�-1', + //value: 15, tipPlacement: 'right', },{ label: '鎺掑簭瀛楁', - prop: 'text1', + prop: 'sortField', span: 7, type: 'table', + tip: '鏌ヨ鏁版嵁鏃剁殑鎺掑簭瀛楁', + tipPlacement: 'right', children: { border: true, column: [{ @@ -423,10 +682,18 @@ prop: 'attrType' }], }, + // 杩欏効闇�瑕佹坊鍔犱笟鍔$被鍨嬫帴鍙� + },{ label: '鎺掑簭绫诲瀷', - prop: 'text1', + prop: 'sortType', span: 7, + dicData: [{ + label: '鍗囧簭', value: 'asc' + }, { + label: '闄嶅簭', value: 'desc' + }], + //value: 'asc', type: 'select', tip: '鏌ヨ鏁版嵁鏃剁殑鎺掑簭绫诲瀷', tipPlacement: 'right', @@ -434,93 +701,80 @@ ] }, { - display: this.form.referWindowType==1, + display: this.form.type=='stand', icon: 'el-icon-info', label: 'stand(骞冲彴閰嶇疆)鍙傜収', collapse: true, - prop: 'group2', + prop: 'groupStand', column: [ { label: '鍙傝�冪殑UI涓婁笅鏂�', - prop: 'text1', + prop: 'referContent', span: 7, tip: '鍙湁鍙傜収绐楀彛绫诲瀷鏄痵tand鏃舵墠蹇呴』璁剧疆,涓斿湪stand绫诲瀷涓嬫墠鑳界敓鏁�', tipPlacement: 'right', }, { label: '骞冲彴鐨勮〃鏍肩紪鍙�', - prop: 'text1', + prop: 'displayTable', span: 7, tip: '涓庡弬鐓х殑UI涓婁笅鏂囦簰鏂ワ紝鍙湁鍙傜収绐楀彛绫诲瀷鏄痵tand鏃舵墠蹇呴』璁剧疆锛屼笖鍦╯tand绫诲瀷涓嬫墠鑳界敓鏁�', tipPlacement: 'right', - type: 'table', - children: { - border: true, - column: [{ - label: '灞炴�ц嫳鏂囩紪鍙�', - width: 120, - search: true, - searchSpan: 8, - searchLabelWidth: 100, - prop: 'id' - },{ - label: '灞炴�т腑鏂囧悕绉�', - search: true, - searchSpan: 8, - searchLabelWidth: 100, - prop: 'name' - },{ - label: '灞炴�ч暱搴�', - search: false, - prop: 'attrLength' - },{ - label: '灞炴�х被鍨�', - search: false, - prop: 'attrType' - }], - }, }, ] }, { - display: this.form.referWindowType==2, + display: this.form.type=='tree', icon: 'el-icon-info', label: '鏍戝舰鍙傜収淇℃伅', collapse: true, - prop: 'group3', + prop: 'groupTree', labelWidth: '158', column: [ { - label: '鏍戝舰鐨勪笂绾ф爲褰�', - prop: 'text1', + label: '鏍戝舰鐨勪笂绾у睘鎬�', + prop: 'parentFieldName', span: 7, tip: '鏍戝舰灞曠ず鐨勬椂鍊欙紝涓婁笅绾у叧绯绘煡鎵剧殑灞炴�с��', tipPlacement: 'right', + rules: [{ + required: true, + message: "(鏍戝舰鐨勪笂绾у睘鎬�)蹇呭~椤逛笉鑳戒负绌�", + trigger: "blur", + }], },{ label: '涓婄骇灞炴�у�煎搴斿睘鎬�', - prop: 'text1', + prop: 'parentUsedField', span: 7, tip: '涓婄骇灞炴�у瓨鍌ㄧ殑鍊�,鏄笂绾ф暟鎹殑浠�涔堝睘鎬с�備竴鑸兘鏄痮id銆�', + value: 'oid', tipPlacement: 'right', },{ label: '鏍硅妭鐐圭殑鍊�', - prop: 'text1', + prop: 'parentValue', span: 7, tip: '鏍戝舰灞曠ず鐨勬椂鍊欙紝涓婄骇鐨勫�笺��', tipPlacement: 'right', },{ label: '鏍戝姞杞芥柟寮�', - prop: 'text1', + prop: 'loadType', span: 7, + value: 'all', + dicData: [{ + label: '鍏ㄩ儴', value: 'all' + }, { + label: '閫愮骇鍔犺浇', value: 'node' + }], type: 'select', },{ label: '鏄惁鍙兘閫夋嫨鍙跺瓙鑺傜偣', - prop: 'text1', + prop: 'onlyLeaf', span: 7, + value: false, type: 'switch', },{ label: '鎺掑簭瀛楁', - prop: 'text1', + prop: 'sortField', span: 7, type: 'table', children: { @@ -548,11 +802,18 @@ prop: 'attrType' }], }, + // 杩欏効闇�瑕佹坊鍔犱笟鍔$被鍨嬫帴鍙h姹傚疄鐜板脊绐楃晫闈㈣〃鏍兼覆鏌� },{ label: '鎺掑簭绫诲瀷', - prop: 'text1', + prop: 'sortType', span: 7, type: 'select', + value: 'asc', + dicData: [{ + label: '鍗囧簭', value: 'asc' + }, { + label: '闄嶅簭', value: 'desc' + }], }, ] }, @@ -561,10 +822,40 @@ }, }, methods: { + clicktest(cell){ + + //cell.$cellEdit = true; + }, + // 鍒囨崲褰撳墠娲诲姩鐨則abs + handleClick(tab, event) { + if(tab.index=='0'){ + this.onloadAttrData(); + }else{ + this.onloadselectReferConfigData(); + } + }, // 閫夋嫨瀹屽弬鐓ч厤缃箣鍚庣偣鍑讳繚瀛樻寜閽Е鍙� selectedListReferConfig(){ - console.log(this.option); - console.log(this.form.referWindowType); + //琛ㄥ崟楠岃瘉 + this.$refs.form.validate((valid, done, msg) => { + if (valid) { + let submitForm = this.filterForm(); + //console.log(submitForm); + //杞崲鎴怞SON瀛楃涓茶繘琛岀埗缁勪欢鍥炴樉 + let submitFormJson = JSON.stringify(submitForm); + //console.log(submitFormJson); + this.$emit('echoReferConfig', submitFormJson) // 瑙﹀彂update:data灏嗗瓙缁勪欢鍊间紶閫掔粰鐖剁粍浠� + //this.isShowReferConfig = false; + done() + } else { + for(let attr in msg) { + //console.log(msg[attr][0].message); + this.$message.warning(msg[attr][0].message); + break; + } + return false; + } + }) }, /** 鍏跺疄閫夊彇灞炴�ц〃鏍肩殑榛樿鏁版嵁涓嶉渶瑕佸姞杞斤紝 浣嗘槸寮圭獥鎵撳紑浼氭湁琛ㄦ牸閿欒闂鎵�浠ラ渶瑕佸湪杩欒皟鐢╠oLayout鏂规硶*/ @@ -584,7 +875,12 @@ // 璇ョ晫闈㈢殑鏁版嵁杩涜鍒濆鍖栧鍘� recoveryDataAndForm(condition){ if(condition=='initForm'){ + let currentType = this.form.type; this.form = this.$options.data().form; + this.form.type = currentType; + console.log(this.form); + // this.form.referContent = ''; + // this.form.displayTable = ''; return; } Object.assign(this.$data,this.$options.data()); @@ -594,9 +890,65 @@ if(condition=='addSearchCondition'){ console.log('this is open addSearchCondition'); }else { + if(this.form.referType == '' || this.form.referType == null){ + this.$message.warning("璇疯緭鍏ュ弬鐓х殑涓氬姟绫诲瀷") + return; + } + console.log('this is open selectAttr'); } - } + }, + // 鎻愪氦琛ㄥ崟涔嬪墠杩囨护鎺夌┖鎴栦笉闇�瑕佺殑琛ㄥ崟鏁版嵁 + filterForm(){ + const oldForm = this.form; + let submittDefaultForm = [ + 'referType', + 'textField', + 'valueField', + 'type', //鍙傜収绐楀彛绫诲瀷 + 'url', + 'backPath', + 'method', + 'height', + 'useFormKey', + 'paramForFormKey', + 'isMuti', + 'mapFields', + ]; + let addArray = []; + let newForm ={}; + // 鏍规嵁涓嶅悓绫诲瀷杩囨护鍑轰笉鍚岀殑鐨勮〃鍗曞睘鎬� + if(oldForm.type == 'stand'){ + addArray = ['referContent', 'displayTable']; + } else if(oldForm.type == 'default' || oldForm.type == 'grid'){ + addArray = ['limit', 'sortField', 'sortType']; + } else if(oldForm.type == 'tree'){ + addArray = [ + "parentFieldName", + 'parentUsedField', + 'parentValue', + 'loadType', + 'onlyLeaf', + 'sortField', + 'sortType' + ]; + } + submittDefaultForm = submittDefaultForm.concat(addArray); + submittDefaultForm.forEach(item=>{ + //console.log(item); + if(item == 'isMuti' || item == 'onlyLeaf' || oldForm[item] != '' || oldForm[item] != ''){ + newForm = Object.assign(newForm,{[item]:oldForm[item]}); + } + }); + // console.log(newForm); + return newForm; + }, + onloadselectReferConfigData(){ + this.$nextTick(() => { + this.$refs.selectReferConfigCrud.doLayout() + }) + }, + } }; </script> -- Gitblit v1.9.3