| | |
| | | <template> |
| | | <basic-container> |
| | | <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" @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 LocationType="menu" type="table" @buttonClick="buttonClick"></dynamic-button> |
| | | <dynamic-button :butttonList="componentVO.buttons" :scope="scope" :selectList="selectList" LocationType="menu" |
| | | type="table"></dynamic-button> |
| | | </template> |
| | | </avue-crud> |
| | | <!-- 表格内按钮操作对话框表单 --> |
| | | <!-- <dynamic-form :visible.sync="visible" style="display: none"></dynamic-form>--> |
| | | </basic-container> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {validatenull} from '@/util/validate' |
| | | export default { |
| | | name: "dynamic-table", |
| | | props: { |
| | | componentVO: { |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | inDialog: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | areasName: { |
| | | type: String, |
| | | default: ''//westArea导航区 |
| | | }, |
| | | sourceData: { |
| | | //菜单源数据或者弹窗时按钮所属区域的上一区域选中数据 |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | paramVOS: { |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | isShow: { |
| | | //所在区域是否已显示,针对tab和collapse |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | dataStore: { |
| | | //弹窗时按钮所属区域选中数据 |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | tableType: { |
| | | type: String |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | parentHeight: '100%',//当前组件根节点元素高度 |
| | | form: {}, |
| | | 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: [ |
| | | { |
| | | code: "20220102", |
| | |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-02-18 14:35:53.177" |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | computed: { |
| | | option() { |
| | | return { |
| | | }, |
| | | { |
| | | code: "20220102", |
| | | lastmodifier: "jhming", |
| | | revisionseq: "1", |
| | | versionvalue: "1", |
| | | description: "", |
| | | oid: "2E66D17B-E3E6-4725-BB83-93F4A20D4E20", |
| | | versionseq: "1", |
| | | content: "第二次中期评审犹太人", |
| | | checkinby: "", |
| | | revisionrule: "ObjectVersion", |
| | | reviewtypetext: "部门级", |
| | | lctid: "ProcessReviewLC", |
| | | reviewtype: "department", |
| | | lcstatus_text: "编辑中", |
| | | id: "", |
| | | owner: "1", |
| | | checkoutby: "", |
| | | creator: "1", |
| | | createtime: "2022-01-13 13:58:43.035", |
| | | isfirstv: "1", |
| | | lastmodifier_name: "姜红明", |
| | | revisionoid: "4F400A1B-2313-4B11-894C-4F4F0B01368A", |
| | | btmname: "processreview", |
| | | checkouttime: "", |
| | | revisionvalue: "A", |
| | | versionrule: "0", |
| | | name: "1月评审3", |
| | | islastr: "1", |
| | | lastmodifytime: "2022-07-15 16:04:43.703", |
| | | copyfromversion: "", |
| | | creator_name: "测试", |
| | | nameoid: "CF350DE8-8E6D-470B-B273-4FD78D41BA4A", |
| | | lcstatus: "Editing", |
| | | islastv: "1", |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-07-15 16:04:43.703" |
| | | }, |
| | | { |
| | | code: "w02", |
| | | lastmodifier: "1", |
| | | revisionseq: "0", |
| | | versionvalue: "1", |
| | | description: "", |
| | | oid: "2f8d94b2-d65a-4f9b-9a71-caa3afd96459", |
| | | versionseq: "0", |
| | | content: "", |
| | | checkinby: "", |
| | | revisionrule: "ObjectVersion", |
| | | reviewtypetext: "部门级", |
| | | |
| | | lctid: "ProcessReviewLC", |
| | | reviewtype: "department", |
| | | lcstatus_text: "编辑中", |
| | | id: "", |
| | | owner: "1", |
| | | checkoutby: "", |
| | | creator: "1", |
| | | createtime: "2022-02-18 14:35:45.03", |
| | | isfirstv: "1", |
| | | lastmodifier_name: "测试", |
| | | revisionoid: "31612b9f-022d-4b05-a24c-370a0fd457da", |
| | | btmname: "processreview", |
| | | checkouttime: "", |
| | | revisionvalue: "A", |
| | | versionrule: "0", |
| | | name: "web页面测试02", |
| | | islastr: "1", |
| | | lastmodifytime: "2022-02-18 14:35:45.03", |
| | | copyfromversion: "", |
| | | creator_name: "测试", |
| | | nameoid: "dfc0d8a5-ebe7-40f2-af56-fa437d3866e0", |
| | | lcstatus: "Editing", |
| | | islastv: "1", |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-02-18 14:35:45.03" |
| | | }, |
| | | { |
| | | code: "webt01", |
| | | lastmodifier: "1", |
| | | revisionseq: "0", |
| | | versionvalue: "1", |
| | | description: "", |
| | | oid: "38033242-3cb4-415c-9cc4-acdb86c2ee8f", |
| | | versionseq: "0", |
| | | content: "wbtest123修改后", |
| | | checkinby: "", |
| | | revisionrule: "ObjectVersion", |
| | | reviewtypetext: "部门级", |
| | | lctid: "ProcessReviewLC", |
| | | reviewtype: "department", |
| | | lcstatus_text: "待评审", |
| | | id: "", |
| | | owner: "1", |
| | | checkoutby: "", |
| | | creator: "1", |
| | | createtime: "2022-01-21 10:04:08.053", |
| | | isfirstv: "1", |
| | | lastmodifier_name: "测试", |
| | | revisionoid: "3f3b2112-f356-4809-969b-1e63f6daa08d", |
| | | btmname: "processreview", |
| | | checkouttime: "", |
| | | revisionvalue: "A", |
| | | versionrule: "0", |
| | | name: "web端新增测试01", |
| | | islastr: "1", |
| | | lastmodifytime: "2022-02-09 09:45:56.044", |
| | | copyfromversion: "", |
| | | creator_name: "测试", |
| | | nameoid: "d8975a06-4c1e-462b-af84-093068c58e9e", |
| | | lcstatus: "Waiting", |
| | | islastv: "1", |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-02-09 09:45:56.044" |
| | | }, |
| | | { |
| | | code: "w017", |
| | | lastmodifier: "1", |
| | | revisionseq: "0", |
| | | versionvalue: "1", |
| | | description: "", |
| | | oid: "4011e1a7-9eb6-4b5c-89bf-847abff56682", |
| | | versionseq: "0", |
| | | content: "", |
| | | checkinby: "", |
| | | revisionrule: "ObjectVersion", |
| | | reviewtypetext: "部门级", |
| | | lctid: "ProcessReviewLC", |
| | | reviewtype: "department", |
| | | lcstatus_text: "编辑中", |
| | | id: "", |
| | | owner: "1", |
| | | checkoutby: "", |
| | | creator: "1", |
| | | createtime: "2022-02-18 14:37:53.247", |
| | | isfirstv: "1", |
| | | lastmodifier_name: "测试", |
| | | revisionoid: "648f5cf8-b42a-4b78-9928-883c94a83081", |
| | | btmname: "processreview", |
| | | checkouttime: "", |
| | | revisionvalue: "A", |
| | | versionrule: "0", |
| | | name: "web页面测试17", |
| | | islastr: "1", |
| | | lastmodifytime: "2022-02-18 14:37:53.247", |
| | | copyfromversion: "", |
| | | creator_name: "测试", |
| | | nameoid: "5d14e204-f085-4be0-9da6-b08c99172f8a", |
| | | lcstatus: "Editing", |
| | | islastv: "1", |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-02-18 14:37:53.247" |
| | | }, |
| | | { |
| | | code: "w03", |
| | | lastmodifier: "1", |
| | | revisionseq: "0", |
| | | versionvalue: "1", |
| | | description: "", |
| | | oid: "68583bec-b9ca-4321-8b66-a11d2298f51e", |
| | | versionseq: "0", |
| | | content: "", |
| | | checkinby: "", |
| | | revisionrule: "ObjectVersion", |
| | | reviewtypetext: "部门级", |
| | | lctid: "ProcessReviewLC", |
| | | reviewtype: "department", |
| | | lcstatus_text: "编辑中", |
| | | id: "", |
| | | owner: "1", |
| | | checkoutby: "", |
| | | creator: "1", |
| | | createtime: "2022-02-18 14:35:53.177", |
| | | isfirstv: "1", |
| | | lastmodifier_name: "测试", |
| | | revisionoid: "ff85f436-4dd1-498e-9665-44d53e27ac29", |
| | | btmname: "processreview", |
| | | checkouttime: "", |
| | | revisionvalue: "A", |
| | | versionrule: "0", |
| | | name: "web页面测试03", |
| | | islastr: "1", |
| | | lastmodifytime: "2022-02-18 14:35:53.177", |
| | | copyfromversion: "", |
| | | creator_name: "测试", |
| | | nameoid: "e0f20755-6954-4757-911e-7b9929fbe9a2", |
| | | lcstatus: "Editing", |
| | | islastv: "1", |
| | | checkintime: "", |
| | | isfirstr: "1", |
| | | ts: "2022-02-18 14:35:53.177" |
| | | }, |
| | | ], |
| | | option: { |
| | | index: true, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | column: this.updatedColumns, |
| | | }; |
| | | }, |
| | | selection: true, |
| | | tip: false, |
| | | height: '100%', |
| | | calcHeight: 15, |
| | | indexFixed: false, |
| | | menuFixed: false, |
| | | 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, |
| | |
| | | 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(id) { |
| | | console.log(id) |
| | | this.visible = true; |
| | | 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 |
| | | }); |
| | | } |
| | | } |
| | | } |