From 13b22edeb1c60505be93e7af1903f7c5e00bbc6d Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期一, 22 五月 2023 18:08:30 +0800 Subject: [PATCH] 对使用分类的主键获取表单的定义、根据模板的主键获取表格的定义、标记流程中业务数据是否通过、使用分类的主键获取业务数据等接口的移植工作,其中对以前查询平台数据的方式使用的QueryWrapper实现数据的查询 --- Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue | 1653 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 1,360 insertions(+), 293 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..23f3bcc 100644 --- a/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue +++ b/Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue @@ -5,74 +5,242 @@ append-to-body :visible.sync="isShowReferConfig" width="90%" + id="refer-config" @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 #referTypeName="{disabled,size}"> + <el-input :disabled="disabled" + :size="size" + v-model="form.referTypeName" + ref="referTypeName" + placeholder="璇烽�夋嫨 鍙傜収鐨勪笟鍔$被鍨�" + prefix-icon="el-icon-search" + readonly="true" + @focus="openSelectionTable('referType')"> + <i v-show="!disabled" slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('referType')" style="margin-right: 5px;cursor: pointer;"></i> + </el-input> + </template> + <template #sortField="{disabled,size}"> + <el-input :disabled="disabled" + :size="size" + v-model="form.sortField" + ref="sortField" + placeholder="璇烽�夋嫨 鎺掑簭瀛楁" + prefix-icon="el-icon-search" + readonly="true" + @focus="openSelectionTable('sortField')"> + <i slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('sortField')" 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" + class="crud-attr" + :option="attrOption" + @cell-click="clickAttrEdit" + :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="openSelectionTable('selectAttr')">閫夋嫨灞炴�� + </el-button> + <div class="tag-group" style="display: inline"> + <el-tag + v-for="item in attrData" + v-show="item.isquery && item.title!=''" + style="margin-left: 3px" + :key="item.title" + type="info" + size="small" + effect="dark"> + {{ item.title }} + </el-tag> + </div> + </template> + </avue-crud> + </el-row> + <el-row style="margin-top: 10px"> + <avue-crud + ref="crudAddCondition" + :option="addSearchCondtionOption" + @cell-click="clickAddSearchCondtionEdit" + :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="openSelectionTable('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="selectReferConfigOption" + :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> <el-button @click="isShowReferConfig = false">鍙� 娑�</el-button> </div> + + <el-dialog title="涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊�" + append-to-body + :visible.sync="isShowReferBtmType" + width="70%" + destroy-on-close + @close="clearTableRowSelection('referType')" + style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> + <avue-crud :option="selectionReferBtmTypeOption" + :table-loading="selectReferBtmTypeLoading" + :data="selectReferBtmTypeData" + :page.sync="selectReferBtmTypePage" + ref="selectReferBtmTypeCrud" + class="referBtmType-crud" + @row-click="referBtmTypeRowClick" + @search-change="referBtmTypeSearchChange" + @search-reset="referBtmTypeSearchReset" + @current-change="referBtmTypeCurrentChange" + @size-change="referBtmTypeSizeChange"> + <template #radio="{row}"> + <el-radio v-model="referBtmTypeSelectRow" + :label="row.$index"> + - + </el-radio> + </template> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="selectedReferBtmType">纭� 瀹�</el-button> + <el-button @click="isShowReferBtmType = false">鍙� 娑�</el-button> + </div> + </el-dialog> + + <el-dialog title="涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊�" + append-to-body + :visible.sync="isShowSortField" + width="70%" + destroy-on-close + @close="clearTableRowSelection('sortField')" + style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> + <avue-crud :option="selectionSortFieldOption" + :table-loading="selectSortFieldLoading" + :data="selectSortFieldData" + :page.sync="selectSortFieldPage" + ref="selectSortFieldCrud" + @row-click="sortFieldRowClick" + @search-change="sortFieldChange" + @search-reset="sortFieldSearchReset" + @current-change="sortFieldCurrentChange" + @size-change="sortFieldSizeChange"> + <template #radio="{row}"> + <el-radio v-model="sortFieldSelectRow" + :label="row.$index"> + - + </el-radio> + </template> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="selectedSortField">纭� 瀹�</el-button> + <el-button @click="isShowSortField = false">鍙� 娑�</el-button> + </div> + </el-dialog> + + <el-dialog title="閫夋嫨鏄剧ず瀛楁" + append-to-body + :visible.sync="isShowShowField" + width="70%" + destroy-on-close + style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> + <avue-crud :option="selectionShowFieldOption" + :table-loading="selectShowFieldLoading" + :data="selectShowFieldData" + ref="selectShowFieldCrud" + @row-click="showFieldRowClick" + @selection-change="selectionShowFieldDataChange" + @search-change="showFieldSearchChange" + @search-reset="showFieldSearchReset"> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="selectedShowField">纭� 瀹�</el-button> + <el-button @click="isShowShowField = false">鍙� 娑�</el-button> + </div> + </el-dialog> + + <el-dialog title="閫夋嫨鏌ヨ鏉′欢" + append-to-body + :visible.sync="isShowSearchCondition" + width="70%" + destroy-on-close + style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> + <avue-crud :option="selectionSearchConditionOption" + :table-loading="selectSearchConditionLoading" + :data="selectSearchConditionData" + ref="selectSearchConditionCrud" + @row-click="searchConditionRowClick" + @selection-change="searchConditionDataChange" + @search-change="searchConditionSearchChange" + @search-reset="searchConditionSearchReset"> + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="selectedSearchCondition">纭� 瀹�</el-button> + <el-button @click="isShowSearchCondition = false">鍙� 娑�</el-button> + </div> + </el-dialog> + </el-dialog> </template> @@ -83,42 +251,163 @@ props: { //鏈満鏅彉閲� thisSceneTableData: { - type: Array, + type: Array, }, }, data() { + let element = ''; return { + //娴嬭瘯琛ㄦ牸琛岀紪杈戞晥鏋� + // tableData:[{ + // field: 'id', + // title: '缂栧彿', + // fieldType: 'text', + // fieldTypeText: '鏂囨湰妗�', + // sort: true, + // sortField: 'id', + // width: '150', + // isquery: true, + // $cellEdit: false + // },{ + // field: 'name', + // title: '鍚嶇О', + // fieldType: 'text', + // fieldTypeText: '鏂囨湰妗�', + // sort: true, + // sortField: 'name', + // width: '180', + // isquery: true, + // $cellEdit: false + // }], + // tableOption:{ + // tableData:[], //琛ㄦ牸鏁版嵁 + // options:[] //琛ㄦ牸閰嶇疆椤逛俊鎭紙琛ㄥご锛宭abel瀹藉害绛夛級 + // }, + + activeName: 'first', //褰撳墠娲诲姩鐨則abs labelWidth: '150', // 鏍囬瀹藉害 - isShowReferConfig: false, // 瀵硅瘽妗嗘樉绀洪殣钘忔帶鍒� + isShowReferConfig: false, // 绗竴灞傚璇濇鏄剧ず闅愯棌鎺у埗 + referTypeIsReadOnly: false, // 琛ㄥ崟瀵硅薄 form: { - text: '', - text1: '', - text2: '', - referWindowType: 0, //鍙傜収绐楀彛绫诲瀷 + referTypeName: '', //鏄剧ず鐨勫�� + 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: [ - { - 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, - } - ], + attrData: [], attrOption: { + height:'180', + 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", + cell: true, + clearable: false, + blur: (value) => this.updateAttrBlur(value), + },{ + label: "鍒楀悕(*)", + prop: "title", + cell: true, + clearable: false, + blur: (value) => this.updateAttrBlur(value), + },{ + label: "瀛楁绫诲瀷(*)", + prop: "fieldTypeText", + cell: true, + clearable: false, + type:"select", + value: 'text', + dicData: [{ + value: 'text', label: '鏂囨湰妗�' + }, { + value: 'combox', label: '涓嬫媺鑿滃崟' + }, { + value: 'radio',label: '鍗曢��' + }, { + value: 'swtich', label: '寮�鍏�' + }, { + value: 'date', label: '鏃堕棿' + }, { + value: 'textarea', label: '鏂囨湰鍩�' + }], + blur: (value) => this.updateAttrBlur(value), + },{ + label: "鍒楄〃鍙帓搴�", + prop: "sort", + cell: true, + clearable: false, + type:"switch", + width: '80px', + value: true, + blur: (value) => this.updateAttrBlur(value), + },{ + label: "鎺掑簭瀛楁", + prop: "sortField", + cell: true, + clearable: false, + blur: (value) => this.updateAttrBlur(value), + },{ + label: "瀛楁瀹藉害", + prop: "width", + cell: true, + clearable: false, + blur: (value) => this.updateAttrBlur(value), + },{ + label: "鍒楀浐瀹氫綅缃�", + prop: "fixedText", + cell: true, + type:"select", + clearable: false, + value: 'noFixed', + dicData: [{value: 'noFixed', label: '涓嶅浐瀹�'}, {value: 'left', label: '宸﹁竟'}, {value: 'right', label: '鍙宠竟'}], + blur: (value) => this.updateAttrBlur(value), + },{ + label: "js鏄剧ず浠g爜", + prop: "templet", + cell: true, + clearable: false, + blur: (value) => this.updateAttrBlur(value), + }, + ] + }, + addSearchCondtionData: [], + addSearchCondtionOption: { height:'150', tip: false, addBtn: false, @@ -133,6 +422,59 @@ disablePage: false, refreshBtn: false, columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, + column: [ + { + label: "绛涢�夊瓧娈�", + prop: "filterField", + cell: true, + clearable: false, + },{ + label: "绛涢�夌被鍨�", + prop: "filterType", + type: "select", + cell: true, + clearable: false, + dicData: [{ + value: 'like', label: '鍖呭惈' + }, { + value: '=', label: '绛変簬' + }, { + value: '>', label: '澶т簬' + }, { + value: '<', label: '灏忎簬' + }, { + value: '!=', label: '涓嶇瓑浜�' + }, { + value: '>=', label: '澶т簬绛変簬' + }, { + value: '<=', label: '灏忎簬绛変簬' + }] + },{ + label: "绛涢�夊��", + prop: "filterValue", + cell: true, + clearable: false, + } + ] + }, + + selectReferConfigOption: { + 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: [ @@ -163,60 +505,260 @@ }, ] }, - addSearchCondtionData: [ - { - id: 'test', - cate: 'test', - value: 1 - },{ - id: 'test1', - cate: 'test1', - value: 2 - },{ - id: 'test2', - cate: 'test2', - value: 3 - },{ - id: 'test4', - cate: 'test4', - value: 4 - } + 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, + } ], - addSearchCondtionOption: { - height:'150', + selectReferConfigPage: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + selectReferConfigQuery: {}, + + //涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊煎璇濇 + selectionReferBtmTypeOption: { + border: true, + height: '260', tip: false, - addBtn: false, - editBtn: false, - searchShow: false, - searchMenuSpan: 6, - border: false, + //searchShow: false, index: true, - viewBtn: false, - delBtn: false, selection: false, - disablePage: false, + menu: false, + addBtn: false, refreshBtn: false, + searchShowBtn: false, columnBtn: false, dialogClickModal: false, highlightCurrentRow: true, - column: [ - { - label: "绛涢�夊瓧娈�", - prop: "id", - },{ - label: "绛涢�夌被鍨�", - prop: "cate", - },{ - label: "绛涢�夊��", - prop: "value", - } - ] - } + align: 'center', + menuAlign: 'center', + column: [{ + label: '-', + prop: 'radio', + width: 60, + hide: false + },{ + label: '涓氬姟绫诲瀷缂栧彿', + width: 120, + search: true, + searchSpan: 8, + searchLabelWidth: 100, + prop: 'id' + },{ + label: '涓氬姟绫诲瀷鍚嶇О', + search: true, + searchSpan: 8, + searchLabelWidth: 100, + prop: 'name' + },{ + label: '鎻忚堪', + search: false, + prop: 'description' + }], + }, + selectReferBtmTypeLoading: false, + selectReferBtmTypeData: [], + selectReferBtmTypePage: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + referBtmTypeQuery: {}, + isShowReferBtmType: false, + referBtmTypeSelectRowData: '', + referBtmTypeSelectRow: '', + + + // 涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊煎璇濇 + isShowSortField: false, + selectionSortFieldOption: { + border: true, + height: '220px', + tip: false, + //searchShow: false, + index: true, + selection: false, + addBtn: false, + menu: false, + refreshBtn: false, + searchShowBtn: false, + columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, + align: 'center', + menuAlign: 'center', + border: true, + column: [{ + label: '-', + prop: 'radio', + width: 60, + hide: false + },{ + 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' + }], + }, + selectSortFieldLoading: false, + selectSortFieldData: [], + selectSortFieldPage: { + pageSize: 10, + currentPage: 1, + total: 0 + }, + sortFieldQuery: {}, + sortFieldSelectRow: '', + sortFieldSelectRowData: '', + + + //閫夋嫨鏄剧ず瀛楁 + isShowShowField: false, + selectionShowFieldOption: { + border: true, + height: '220px', + tip: false, + //searchShow: false, + index: true, + selection: true, + addBtn: false, + menu: false, + refreshBtn: false, + searchShowBtn: false, + columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, + align: 'center', + menuAlign: 'center', + 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' + }], + }, + showFieldQuery: {}, + selectShowFieldLoading: false, + selectShowFieldData: [], + showFieldSelectList: [], + + //娣诲姞鏌ヨ鏉′欢 + isShowSearchCondition: false, + selectionSearchConditionOption: { + border: true, + height: '220px', + tip: false, + //searchShow: false, + index: true, + selection: true, + addBtn: false, + menu: false, + refreshBtn: false, + searchShowBtn: false, + columnBtn: false, + dialogClickModal: false, + highlightCurrentRow: true, + align: 'center', + menuAlign: 'center', + 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' + }], + }, + selectSearchConditionLoading: false, + selectSearchConditionData: [], + searchConditionQuery: {}, + searchConditionSelectList: [], + + //涓婁竴娆$偣鍑荤殑琛岀紪杈戞暟鎹� + preClickAttrRow: '', + preClickAddSearchConditionRow: '', + }; }, // 琛ㄥ崟鐣岄潰鏄剧ず鍐呭閰嶇疆 computed: { formOption() { + /** 妫�楠屾槸鍚︿负鏁板瓧 */ + let validateNumber = ""; + validateNumber = (rule, value,callback) => { + if(/[^\d]/g.test(value)){ + callback(new Error('绐楀彛鏄剧ず鐨勯珮搴﹀繀椤讳负鏁板�肩被鍨�')); + }else { + callback(); + } + }; return { submitBtn: false, emptyBtn: false, @@ -225,41 +767,24 @@ column: [ { label: '鍙傜収鐨勪笟鍔$被鍨�', - prop: 'text1', + prop: 'referTypeName', span: 7, - 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: 'description' - }], - }, + disabled: this.referTypeIsReadOnly, + clearable: !this.referTypeIsReadOnly, + tip: '鍙傜収鏁版嵁鏌ヨ鐨勪笟鍔$被鍨嬨��', + tipPlacement: 'right', rules: [{ required: true, message: "(鍙傜収鐨勪笟鍔$被鍨�)蹇呭~椤逛笉鑳戒负绌�", - trigger: "blur", + trigger: ["blur","change"], }], },{ 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 +792,9 @@ }], },{ label: '瀛樺偍鍊肩殑灞炴��', - prop: 'text2', + prop: 'valueField', tip: '閫夋嫨鏁版嵁鍚庯紝淇濆瓨鍒版暟鎹簱閲岀殑灞炴�э紝涓�鑸兘鏄痮id鎴栬�卛d锛屽鏋滄槸澶氫釜灞炴�т娇鐢ㄩ�楀彿鍒嗗壊锛屽oid ,id', + value: 'oid', tipPlacement: 'right', span: 7, rules: [{ @@ -278,101 +804,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,52 +964,36 @@ // 鍙樺姩鐨勮〃鍗曞尯鍩� 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', - 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' - }], - }, + tip: '鏌ヨ鏁版嵁鏃剁殑鎺掑簭瀛楁', + //clearable: false, + tipPlacement: 'right', },{ label: '鎺掑簭绫诲瀷', - prop: 'text1', + prop: 'sortType', span: 7, + dicData: [{ + label: '鍗囧簭', value: 'asc' + }, { + label: '闄嶅簭', value: 'desc' + }], + //value: 'asc', type: 'select', tip: '鏌ヨ鏁版嵁鏃剁殑鎺掑簭绫诲瀷', tipPlacement: 'right', @@ -434,137 +1001,223 @@ ] }, { - 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: { - 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' - }], - }, + //type: 'table', + tip: '鏌ヨ鏁版嵁鏃剁殑鎺掑簭瀛楁', + tipPlacement: 'right', + // 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' + // }], + // }, + // 杩欏効闇�瑕佹坊鍔犱笟鍔$被鍨嬫帴鍙h姹傚疄鐜板脊绐楃晫闈㈣〃鏍兼覆鏌� },{ label: '鎺掑簭绫诲瀷', - prop: 'text1', + prop: 'sortType', span: 7, type: 'select', + value: 'asc', + dicData: [{ + label: '鍗囧簭', value: 'asc' + }, { + label: '闄嶅簭', value: 'desc' + }], }, ] }, ] } }, + + }, + mounted() { + // 楹荤殑杩欎釜鍦版柟璋冩鎴戜簡 + this.element = document.getElementById('refer-config'); + this.element.addEventListener("click", (e) => { + //<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 911px;"> + //console.log(e.target); + // console.log(this.$refs.crudAttr); + // console.log(this.$refs.crudAttr.$el.contains(e.target)); + //console.log(!this.$refs.crudAttr.$el.contains(e.target) && this.preClickAttrRow != null); + if (!this.$refs.crudAttr.$el.contains(e.target) && + this.preClickAttrRow != '') { + this.preClickAttrRow.$cellEdit = false; + } + if (!this.$refs.crudAddCondition.$el.contains(e.target) && + this.preClickAddSearchConditionRow != '') { + this.preClickAddSearchConditionRow.$cellEdit = false; + } + }); + }, + watch: { + // 璐煎潙锛屽垏鎹㈢被鍨嬫椂琛ㄦ牸锛岄殣钘忓啀鏄剧ず灏变細鍑虹幇琛ㄦ牸閿欎綅闂锛� + 'form.type'(val) { + //console.log(val); + this.onloadAttrData(); + } }, methods: { + + // 鍗曞嚮琛ㄦ牸瀹炵幇琛ㄦ牸琛岀紪杈� + clickAttrEdit(row, column, event){ + if(this.preClickAttrRow && this.preClickAttrRow != row){ + //console.log(this.attrData[this.preClickAttrRow.$index]); + this.attrData[this.preClickAttrRow.$index].$cellEdit = false; + } + row.$cellEdit = true; + this.preClickAttrRow = row; + }, + // 灞炴�ц〃鏍艰缂栬緫澶卞幓鐒︾偣鏃朵繚瀛樻柟娉� + updateAttrBlur(value){ + //console.log(this.attrData[0]); + + }, + // 鍗曞嚮琛ㄦ牸瀹炵幇琛ㄦ牸琛岀紪杈� + clickAddSearchCondtionEdit(row, column, event){ + if(this.preClickAddSearchConditionRow && this.preClickAddSearchConditionRow != row){ + //console.log(this.attrData[this.preClickAttrRow.$index]); + this.addSearchCondtionData[this.preClickAddSearchConditionRow.$index].$cellEdit = false; + } + row.$cellEdit = true; + this.preClickAddSearchConditionRow = row; + }, + //涓婁竴涓〉闈㈠凡缁忛�変腑鍙傜収搴旂敤鐨勪笟鍔$被鍨嬬殑鎯呭喌锛屽拰涓婁竴娆″凡缁忛厤缃繃鍙傜収閰嶇疆鐨勬儏鍐典笅杩涜椤甸潰鍒濆鍖栨覆鏌� + initPageData(val){ + let value = JSON.parse(val); + if(value != null || value != 'undefined' ){ + this.form = value; + //console.log(val); + this.referTypeIsReadOnly = true; + } + //console.log(localStorage.getItem("userId")); + }, + // 鍒囨崲褰撳墠娲诲姩鐨則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) { + // 鏍规嵁绫诲瀷瀵筬orm琛ㄥ崟涓殑鍙傛暟杩涜杩囨护锛屽彧淇濈暀闈炵┖涓旈渶瑕佺殑灞炴�� + let submitForm = this.filterForm(); + //console.log(submitForm); + this.$emit('echoReferConfig', submitForm) // 瑙﹀彂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; + } + }) + }, + //浠庣紦瀛樹腑閭orm琛ㄥ崟瀵硅薄 + getLocalStoregeForm(){ + localStorage.getItem("userId"); + }, /** 鍏跺疄閫夊彇灞炴�ц〃鏍肩殑榛樿鏁版嵁涓嶉渶瑕佸姞杞斤紝 浣嗘槸寮圭獥鎵撳紑浼氭湁琛ㄦ牸閿欒闂鎵�浠ラ渶瑕佸湪杩欒皟鐢╠oLayout鏂规硶*/ @@ -572,6 +1225,29 @@ this.$nextTick(() => { this.$refs.crudAttr.doLayout() }) + this.attrData = [ + { + field: 'id', + title: '缂栧彿', + fieldType: 'text', + fieldTypeText: '鏂囨湰妗�', + sort: true, + sortField: 'id', + width: '150', + isquery: true, + $cellEdit: false + },{ + field: 'name', + title: '鍚嶇О', + fieldType: 'text', + fieldTypeText: '鏂囨湰妗�', + sort: true, + sortField: 'name', + width: '180', + isquery: true, + $cellEdit: false + } + ]; }, // 灞炴�ч�夋嫨琛ㄦ牸涓殑绉婚櫎鎸夐挳鍔熻兘 removeCurrentRow(row,condition){ @@ -584,25 +1260,416 @@ // 璇ョ晫闈㈢殑鏁版嵁杩涜鍒濆鍖栧鍘� recoveryDataAndForm(condition){ if(condition=='initForm'){ + this.referTypeIsReadOnly = false; + let currentType = this.form.type; this.form = this.$options.data().form; + this.form.type = currentType; + // this.form.referContent = ''; + // this.form.displayTable = ''; return; } - Object.assign(this.$data,this.$options.data()); + Object.assign(this.$data,this.$options.data()); + // 绉婚櫎缁戝畾鍦ㄨ椤甸潰瀵硅瘽妗嗕笂鐨勫叏灞�鐩戝惉浜嬩欢 + if(this.element != ''){ + let te = window.removeEventListener('click', this.element) + } }, - // 鎵撳紑娣诲姞鏌ヨ鏉′欢瀵硅瘽妗� - openAddSearchOrAttrDialog(condition){ - if(condition=='addSearchCondition'){ - console.log('this is open addSearchCondition'); - }else { - console.log('this is open selectAttr'); + // 鎻愪氦琛ㄥ崟涔嬪墠杩囨护鎺夌┖鎴栦笉闇�瑕佺殑琛ㄥ崟鏁版嵁 + filterForm(){ + const oldForm = this.form; + let submittDefaultForm = [ + 'referTypeName', + 'referType', + 'textField', + 'valueField', + 'type', //鍙傜収绐楀彛绫诲瀷 + 'url', + 'backPath', + 'method', + 'height', + 'useFormKey', + 'paramForFormKey', + 'isMuti', + 'mapFields', + 'searchCondition', + ]; + 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); + if(!this.checkArrayIsUndefined(this.addSearchCondtionData)){ + newForm = { + searchCondition: this.addSearchCondtionData, + } + } + if((oldForm.type == 'default' || oldForm.type == 'grid') && (this.attrData.length >= 0 && !this.checkArrayIsUndefined(this.addSearchCondtionData))){ + newForm = Object.assign(newForm,{attrData:this.attrData}); + } + // 杩囨护鍑虹┖鍊煎睘鎬у拰涓嶉渶瑕佺殑灞炴�� + submittDefaultForm.forEach(item=>{ + // console.log(!this.checkStringIsEmpty(oldForm[item]) || !this.checkArrayIsUndefined(oldForm[item])); + if((item == 'isMuti' || item == 'onlyLeaf') || (!this.checkStringIsEmpty(oldForm[item]) || !this.checkArrayIsUndefined(oldForm[item]))){ + //console.log(item,oldForm[item]); + newForm = Object.assign(newForm,{[item]:oldForm[item]}); + } + }); + // console.log(newForm); + return newForm; + }, + /** + * 涓虹┖ + * @param val + * @returns {boolean} + */ + checkStringIsEmpty(val){ + if ( + val === null || + typeof val === 'undefined' || + (typeof val === 'string' && val === "" && val !== 'undefined') + ) { + return true; + } + return false; + }, + /** + * 鏄惁涓哄畾涔� + * @param val + * @returns {boolean} + */ + checkArrayIsUndefined(val){ + return typeof val === 'array' && (val.length === 0 ||val === null || typeof val === 'undefined'); + }, + onloadSelectReferConfigData(){ + this.$nextTick(() => { + this.$refs.selectReferConfigCrud.doLayout() + }) + this.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, + }]; + }, + // 鎵撳紑琛ㄦ牸閫夋嫨妗� + openSelectionTable(condition){ + if (condition == 'referType'){ + this.isShowReferBtmType = true; + this.referBtmTypeOnLoad(); + }else if (condition == 'sortField'){ + this.isShowSortField = true; + this.sortFieldOnLoad(); + }else { + if(this.form.referType == '' || this.form.referType == null){ + this.$message.warning("璇疯緭鍏ュ弬鐓х殑涓氬姟绫诲瀷") + return; + } + if(condition == 'addSearchCondition'){ + this.isShowSearchCondition = true; + this.selectSearchConditionDataOnload(); + }else { + this.isShowShowField = true; + this.selectShowFieldDataOnload(); + } + } + }, + // 娓呯┖琛ㄦ牸閫夋嫨妗� + clearSelectionTable(condition){ + if(condition == 'referType'){ + this.form.referType = ''; + this.form.referTypeName = ''; + }else { + this.form.sortField = ''; + } + }, + // 鍏抽棴瀵硅瘽妗嗘椂瀵归�変腑鍐呭杩涜娓呯┖锛屽苟瑙g粦鍏ㄥ眬鐩戝惉浜嬩欢 + clearTableRowSelection(condition){ + if(condition == 'sortField'){ + this.sortFieldSelectRow = ''; + this.sortFieldSelectRowData = ''; + }else if(condition == 'referType'){ + this.referBtmTypeSelectRow=''; + this.referBtmTypeSelectRowData = ''; + } + + }, + + // 涓恒�愬弬鐓х殑涓氬姟绫诲瀷銆戦�夊彇鍊� + referBtmTypeOnLoad(page, params = {}){ + this.selectReferBtmTypeLoading = true; + // 璋冪敤api璇锋眰 + const data = { + total: 2, + data: [{ + id: 't2', + name: 'test2', + description: 'test2', + }, { + id: 't3', + name: 'test3', + description: 'test3', + }] + } + this.selectReferBtmTypeData = data.data; + this.selectReferBtmTypePage.total = data.total; + this.selectReferBtmTypeLoading = false; + }, + referBtmTypeSizeChange(pageSize){ + this.selectReferBtmTypePage.pageSize = pageSize; + }, + referBtmTypeSearchChange(params, done){ + this.referBtmTypeQuery = params; + this.selectReferBtmTypePage.currentPage = 1; + this.referBtmTypeOnLoad(this.page, params); + done(); + }, + referBtmTypeSearchReset(){ + this.referBtmTypeQuery = {}; + this.referBtmTypeOnLoad(this.selectReferBtmTypePage); + }, + referBtmTypeRowClick(row){ + this.referBtmTypeSelectRowData = row; + this.referBtmTypeSelectRow = row.$index + //console.log( this.referBtmTypeSelectRowData); + }, + referBtmTypeCurrentChange(currentPage){ + this.selectReferBtmTypePage.currentPage = currentPage; + }, + selectedReferBtmType(){ + if(!this.referBtmTypeSelectRowData) { + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); + return; + } + this.form.referTypeName = this.referBtmTypeSelectRowData.name; + this.form.referType = this.referBtmTypeSelectRowData.id; + this.isShowReferBtmType = false; + }, + + // 涓恒�愭帓搴忓瓧娈点�戦�夊彇鍊� + sortFieldOnLoad(page, params = {}){ + this.selectSortFieldLoading = true; + // 璋冪敤api璇锋眰 + const data = { + total: 2, + data: [{ + id: 'test', + name: '娴嬭瘯', + attrLength: 11, + attrType: '瀛楃涓�' + }, { + id: 'test1', + name: '娴嬭瘯1', + attrLength: 12, + attrType: '鏁板瓧' + }] + } + this.selectSortFieldData = data.data; + this.selectSortFieldPage.total = data.total; + this.selectSortFieldLoading = false; + }, + sortFieldSizeChange(pageSize){ + this.selectSortFieldPage.pageSize = pageSize; + }, + sortFieldSearchChange(params, done){ + this.sortFieldQuery = params; + this.selectSortFieldPage.currentPage = 1; + this.sortFieldOnLoad(this.page, params); + done(); + }, + sortFieldSearchReset(){ + this.sortFieldQuery = {}; + this.sortFieldOnLoad(this.selectSortFieldPage); + }, + sortFieldRowClick(row){ + this.sortFieldSelectRowData = row; + this.sortFieldSelectRow = row.$index + //console.log( this.sortFieldSelectRowData); + }, + sortFieldCurrentChange(currentPage){ + this.selectReferBtmTypePage.currentPage = currentPage; + }, + selectedSortField(){ + if(!this.sortFieldSelectRowData) { + this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�"); + return; + } + this.form.sortField = this.sortFieldSelectRowData.id; + this.isShowSortField = false; + }, + + // 閫夋嫨鏄剧ず瀛楁 + selectShowFieldDataOnload(params = {}){ + this.selectShowFieldLoading = true; + // 璋冪敤api璇锋眰 + const data = { + total: 2, + data: [{ + id: 'test', + name: '娴嬭瘯', + attrLength: 11, + attrType: 'text', + attrTypeText: '鏂囨湰妗�' + }, { + id: 'test1', + name: '娴嬭瘯1', + attrLength: 12, + attrType: 'number', + attrTypeText: '鏁板瓧' + }, { + id: 'test2', + name: '娴嬭瘯2', + attrLength: 13, + attrType: 'date', + attrTypeText: '鏃ユ湡' + }] + } + this.selectShowFieldData = data.data; + this.selectShowFieldLoading = false; + }, + selectionShowFieldDataChange(list){ + this.showFieldSelectList = list; + this.$refs.selectShowFieldCrud.setCurrentRow(this.showFieldSelectList[list.length-1]); + }, + showFieldRowClick(row){ + //this.showFieldSelectList.push(row); + this.$refs.selectShowFieldCrud.setCurrentRow(row); + this.$refs.selectShowFieldCrud.toggleRowSelection(row); //閫変腑褰撳墠琛� + }, + showFieldSearchChange(params, done){ + this.showFieldQuery = params; + this.selectShowFieldDataOnload(params); + done(); + }, + showFieldSearchReset(){ + this.showFieldQuery = {}; + this.sortFieldOnLoad(); + }, + selectedShowField(){ + //console.log(this.showFieldSelectList); + if(this.showFieldSelectList.length <= 0) { + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�"); + return; + } + //this.showFieldSelectList; + this.showFieldSelectList.forEach(item => { + this.attrData.push( + { + field: item.id, + title: item.id, + fieldType: item.attrType, + fieldTypeText: item.attrTypeText, + sort: false, + sortField: item.id, + width: item.attrLength, + isquery: false, + $cellEdit: false + } + ) + + }) + this.isShowShowField = false; + }, + + + // 閫夋嫨鏌ヨ鏉′欢 + selectSearchConditionDataOnload(params = {}){ + this.selectSearchConditionLoading = true; + // 璋冪敤api璇锋眰 + this.selectSearchConditionData = [{ + id: 'test', + name: '娴嬭瘯', + attrLength: 11, + attrType: '瀛楃涓�', + $cellEdit: false, + }, { + id: 'test1', + name: '娴嬭瘯1', + attrLength: 12, + attrType: '鏁板瓧', + $cellEdit: false, + }, { + id: 'test2', + name: '娴嬭瘯2', + attrLength: 13, + attrType: '鏃ユ湡', + $cellEdit: false, + }]; + this.selectSearchConditionLoading = false; + }, + searchConditionRowClick(row){ + this.$refs.selectSearchConditionCrud.setCurrentRow(row); + this.$refs.selectSearchConditionCrud.toggleRowSelection(row); //閫変腑褰撳墠琛� + }, + searchConditionDataChange(list){ + this.searchConditionSelectList = list; + this.$refs.selectSearchConditionCrud.setCurrentRow(this.searchConditionSelectList[list.length-1]); + }, + searchConditionSearchChange(params, done){ + this.searchConditionQuery = params; + this.selectSearchConditionDataOnload(params); + done(); + }, + searchConditionSearchReset(){ + this.searchConditionQuery = {}; + this.sortFieldOnLoad(); + }, + selectedSearchCondition(){ + console.log(this.searchConditionSelectList); + if(this.searchConditionSelectList.length <= 0) { + this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�"); + return; + } + this.searchConditionSelectList.forEach(item => { + this.addSearchCondtionData.push( + { + filterField: item.id, + filterType: '=', + filterValue: '', + $cellEdit: false + } + ) + + }) + this.isShowSearchCondition = false; + }, + } }; </script> <style> + .referBtmType-crud > .el-card > .el-card__body > .avue-crud__menu { + display: none!important; + } + /* 鎻愮ず鏂囨湰鍑虹幇鐨勯�熷害 */ .el-tooltip__popper{ width: 200px !important; -- Gitblit v1.9.3