From fecc7305a48f8ce6e283434718da33e143885c75 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 09 四月 2024 10:03:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 566 ++++++++++---------------------------------------------- 1 files changed, 100 insertions(+), 466 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue index 8f724ff..5c04b55 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue @@ -1,27 +1,31 @@ <template> - <div> - <avue-crud v-model="form" + <div :id="'UI-dynamic-'+areasName+componentVO.oid" class="UI-dynamic"> + <avue-crud ref="dataTable" + v-model="form" :data="tableList" :option="option" - :page.sync="page" - :table-loading="loading"> + :page.sync="pageType" + :table-loading="loading" + @row-click="rowClickChange" + @search-change='searchChange' + @selection-change="selectChange"> <!--top鍖哄煙鎸夐挳--> <template slot="menuLeft" slot-scope="scope"> - <dynamic-button LocationType="top" type="table":butttonList="butttonList" @buttonClick="buttonClick" ></dynamic-button> + <dynamic-button :butttonList="componentVO.buttons" :selectList="selectList" LocationType="top" + type="table"></dynamic-button> </template> <!--menu鍖哄煙鎸夐挳--> <template slot="menu" slot-scope="scope"> - <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="butttonList" @buttonClick="buttonClick" ></dynamic-button> + <dynamic-button :butttonList="componentVO.buttons" :scope="scope" :selectList="selectList" LocationType="menu" + type="table"></dynamic-button> </template> </avue-crud> - <!-- 琛ㄦ牸鍐呮寜閽搷浣滃璇濇琛ㄥ崟 --> - <dynamic-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible" - style="display: none"></dynamic-form> </div> </template> <script> +import {validatenull} from '@/util/validate' export default { name: "dynamic-table", props: { @@ -45,91 +49,37 @@ paramVOS: { type: Object, default: {} + }, + isShow: { + //鎵�鍦ㄥ尯鍩熸槸鍚﹀凡鏄剧ず锛岄拡瀵箃ab鍜宑ollapse + type: Boolean, + default: true + }, + dataStore: { + //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 + type: Array, + default: [] + }, + tableType: { + type: String } }, data() { return { + parentHeight: '100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴� form: {}, - formName: '', loading: false, - visible: false, page: { pageSize: 10, currentPage: 1, - total: 5, + total: 50, }, - //琛ㄦ牸澶� - tableHeadList: [ - { - align: "left", - colspan: 1, - field: "name", - fieldType: "text", - hidden: false, - title: "鍚嶇О", - width: 100, - }, - { - align: "left", - colspan: 1, - field: "code", - fieldType: "text", - hidden: false, - title: "缂栫爜", - width: 100 - }, - { - align: "left", - colspan: 1, - comboxKey: "EnumReviewType", - field: "reviewtypetext", - fieldType: "combox", - hidden: false, - sortField: "reviewtype", - title: "绫诲瀷", - width: 80 - }, - { - align: "left", - colspan: 1, - field: "content", - fieldType: "textarea", - hidden: false, - title: "澶囨敞", - width: 150 - }, - { - align: "left", - colspan: 1, - comboxKey: "ProcessReviewLC${lcstatus}", - field: "lcstatus_text", - fieldType: "text", - hidden: false, - sortField: "lcstatus", - title: "鐘舵��", - width: 100 - }, - { - align: "left", - colspan: 1, - field: "creator_name", - fieldType: "text", - hidden: false, - sortField: "creator", - title: "鍒涘缓浜�", - width: 80 - }, - { - align: "left", - colspan: 1, - dateFormate: "yyyy-MM-dd HH:mm:ss", - field: "createtime", - fieldType: "date", - hidden: false, - title: "鍒涘缓鏃ユ湡", - width: 160 - } - ], + simplePage: { + currentPage: 1, + total: 100, + pagerCount: 4, + layout: "prev, pager, next" + }, //琛ㄦ牸鏁版嵁 tableList: [ { @@ -525,367 +475,31 @@ ts: "2022-02-18 14:35:53.177" }, ], - // 琛ㄥ崟鏁版嵁 - formList: [ - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "name", - hidden: false, - keyAttr: true, - prefix: null, - readOnly: false, - referConfig: null, - required: true, - selectLibFlag: null, - showField: null, - suffix: '$', - text: "鍚嶇О", - tooltips: '鍚嶇О', - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "code", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - disabled:true, - text: "缂栫爜", - tooltips: null, - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: "EnumReviewType", - customClass: null, - data: null, - dateFormate: null, - defaultValue: "department", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "reviewtype", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "绫诲瀷", - tooltips: null, - type: "combox", - unique: false, - verify: "", - dicData: [{ - label: '娴嬭瘯1', - value: 'department' - }, { - label: '娴嬭瘯2', - value: 'departments' - }] - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "creator", - hidden: true, - keyAttr: false, - prefix: null, - readOnly: true, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "鍒涘缓浜�", - tooltips: null, - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "yyyy-MM-dd HH:mm:ss", - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "createtime", - hidden: true, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "鍒涘缓鏃堕棿", - tooltips: null, - type: "datetime", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "content", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "澶囨敞", - tooltips: null, - type: "textarea", - unique: false, - verify: "" - }, - ], - // 鎸夐挳鏁版嵁 - butttonList: [ - { - actionVO: { - actionCls: "", - actionUsedType: "business", - bsUrl: "null", - createTime: "2013-11-01 15:17:45.000", - creator: "eddieliu", - csClass: "plm.uif.actions.client.AddAction", - description: "鍒涘缓涓氬姟瀵硅薄", - id: "add", - lastModifier: "developer", - lastModifyTime: "2013-11-01 15:17:45.000", - licensors: null, - name: "鍒涘缓", - oid: "65274704-5557-231C-E3EA-0B32B9BD5A0B" - }, - areaType: "tab", - authorization: true, - children: null, - createTime: "2022-07-18 17:29:10.000", - creator: "developer", - csUrl: "plm.uif.actions.client.AddAction", - description: "", - displayMode: "textandimage", - hidden: false, - iconPath: "", - id: "add", - lastModifier: "developer", - lastModifyTime: "2022-07-18 17:29:10.000", - name: "鏂板", - oid: "DD34108A-5978-334C-7A2A-45F2EE158B1D", - orderNum: 1, - paramVOS: { - form: "DepartmentProcessReviewForm", - context: "EditDepartmentProcessReview", - type: "processreview", - initvalue: "reviewtype=department", - location: 'top', - buttonType: 'primary', - buttonMethods: 'add' - }, - pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD", - pkParentOid: "", - url: "null" - }, - { - actionVO: { - actionCls: "", - actionUsedType: "business", - bsUrl: "BaseEditAction#doAction", - createTime: "2013-11-09 10:32:41.000", - creator: "eddieliu", - csClass: "plm.uif.actions.client.EditAction", - description: "淇敼涓氬姟瀵硅薄", - id: "edit", - lastModifier: "developer", - lastModifyTime: "2013-11-09 10:32:41.000", - licensors: null, - name: "淇敼", - oid: "F8534EFE-130B-0CB3-D477-2AC7B19B7DC4" - }, - areaType: "tab", - authorization: true, - children: null, - createTime: "2022-07-18 17:29:10.000", - creator: "developer", - csUrl: "plm.uif.actions.client.EditAction", - description: "", - displayMode: "textandimage", - hidden: false, - iconPath: "", - id: "edit", - lastModifier: "developer", - lastModifyTime: "2022-07-18 17:29:10.000", - name: "淇敼", - oid: "F50F37CE-26FF-8BC1-F87A-FFD9CFA8CE57", - orderNum: 2, - paramVOS: { - form: "DepartmentProcessReviewForm", - checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting", - location: 'menu', - buttonType: 'text', - icon: "el-icon-edit", - buttonMethods: 'edit' - }, - pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD", - pkParentOid: "", - url: "BaseEditAction#doAction" - }, - { - actionVO: { - actionCls: "", - actionUsedType: "business", - bsUrl: "BaseDeleteAction", - createTime: "2013-11-09 10:33:08.000", - creator: "1", - csClass: "plm.uif.actions.client.DeleteAction", - description: "鍒犻櫎涓氬姟瀵硅薄", - id: "del", - lastModifier: "developer", - lastModifyTime: "2013-11-09 10:33:08.000", - licensors: null, - name: "鍒犻櫎", - oid: "2655E9F0-014B-DFEC-6F92-A6D1C51FDA19" - }, - areaType: "tab", - authorization: true, - children: null, - createTime: "2022-07-18 17:29:10.000", - creator: "developer", - csUrl: "plm.uif.actions.client.DeleteAction", - description: "", - displayMode: "textandimage", - hidden: false, - iconPath: "", - id: "del", - lastModifier: "developer", - lastModifyTime: "2022-07-18 17:29:10.000", - name: "鍒犻櫎", - oid: "A8914C35-721B-A1E3-1EEE-3A9196DF5EC9", - orderNum: 3, - paramVOS: { - owner: "true", - checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting", - state: "Editing", - location: 'menu', - buttonType: 'text', - icon: "el-icon-delete", - buttonMethods: 'delete' - }, - pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD", - pkParentOid: "", - url: "BaseDeleteAction" - }, - { - actionVO: { - actionCls: "", - actionUsedType: "business", - bsUrl: "BaseStartWorkflowAction#doAction", - createTime: "2014-03-17 10:14:40.000", - creator: "developer", - csClass: "plm.uif.actions.client.LaunchWorkFlowAction", - description: "鍚姩娴佺▼", - id: "launchworkflow", - lastModifier: "developer", - lastModifyTime: "2014-03-17 10:14:40.000", - licensors: null, - name: "鍚姩娴佺▼", - oid: "56FE9470-AA2B-403B-F029-0A120FC94536" - }, - areaType: "tab", - authorization: true, - children: null, - createTime: "2022-07-18 17:29:10.000", - creator: "developer", - csUrl: "plm.uif.actions.client.LaunchWorkFlowAction", - description: "", - displayMode: "textandimage", - hidden: false, - iconPath: "", - id: "launchworkflow", - lastModifier: "developer", - lastModifyTime: "2022-07-18 17:29:10.000", - name: "瀹$", - oid: "9963FA86-F146-FBD3-2AC2-51A7AAAAB825", - orderNum: 4, - paramVOS: { - owner: "true", - autoSubmitFirst: "false", - flowtemplates: "宸ヨ壓璇勫瀹$娴佺▼", - state: "Editing", - type: "processreview", - location: 'top', - buttonMethods: 'form' - }, - pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD", - pkParentOid: "", - url: "BaseStartWorkflowAction#doAction" - }, - ] - } - }, - computed: { - option() { - return { + option: { index: true, addBtn: false, editBtn: false, delBtn: false, - height: 'auto', + selection: true, + tip: false, + height: '100%', + calcHeight: 15, indexFixed: false, menuFixed: false, - column: this.updatedColumns, - }; - }, + searchMenuSpan:12, + searchShow:false, + column: [], + }, + selectList: [], + } + }, + computed: { updatedColumns() { - return this.tableHeadList.map(item => { + const queryFields = !validatenull(this.componentVO.tableDefineVO.queryColumns) ? this.componentVO.tableDefineVO.queryColumns.map(item => item.field) : []; + + return this.componentVO.tableDefineVO.cols[0].map(item => { const typeValue = item.fieldType === 'text' || item.fieldType === 'combox' ? 'input' : item.fieldType; // 琛ㄥ崟Type绫诲瀷 + const search = queryFields.includes(item.field); // 鍒ゆ柇 field 鏄惁鍦� queryColumns 閲� return { align: item.align, @@ -895,40 +509,60 @@ hidden: item.hidden, label: item.title, width: item.width, + search: search }; }); }, + pageType() { + return this.areasName === 'westArea' ? this.simplePage : this.page; + } + }, + watch: { + parentHeight: { + handler(newval) { + if (newval > 50) { + this.option.height = newval; + //doLayout涓嶇敓鏁堬紝鎵嬪姩璁剧疆琛ㄦ牸楂樺害 + this.$children[0].$children[1].$children[1].$children[0].$el.style.height = newval + 'px'; + /*this.$nextTick(() => { + if (this.$refs.dataTable && this.$refs.dataTable.doLayout) { + this.$refs.dataTable.doLayout(); + } + })*/ + } + } + }, + isShow: { + handler(newval) { + if (newval && this.$el.clientHeight > 50) { + this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5; + } + } + } + }, + created() { + this.option.column = this.updatedColumns; + }, + mounted() { + if (this.$el.clientHeight > 50) { + //鐖跺厓绱犻珮搴�-鎸夐挳楂樺害-鍒嗛〉楂樺害 + this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5; + } }, methods: { - buttonClick(scope, item) { - this.formName = item.name; - - function handleAdd() { - this.visible = true; - } - - function handleEdit() { - this.visible = true; - this.$refs.dynamicForm.form = scope.row; - } - - function handleDelete() { - this.$message.success('鍒犻櫎鎴愬姛锛�'); - } - - const methodHandlers = { - add: handleAdd.bind(this), - edit: handleEdit.bind(this), - delete: handleDelete.bind(this), - }; - - const method = item.paramVOS.buttonMethods; - const handler = methodHandlers[method]; - if (handler) { - handler(); - } else { - this.$message.error('璇烽噸鏂伴厤缃寜閽紒') - } + rowClickChange(row){ + this.$refs.dataTable.toggleRowSelection(row); + }, + selectChange(row) { + this.selectList = row; + }, + searchChange(form,done){ + console.log(form) + done() + this.$emit("setDataStore", { + area: this.areasName, + dataStore:row + }); } } } -- Gitblit v1.9.3