田源
2024-03-21 599859cbfeecf91c044ca3f5de238f997a00a425
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,10 +1,505 @@
<template>
  <basic-container>表格测试页</basic-container>
  <div :id="'UI-dynamic-'+areasName+componentVO.oid" class="UI-dynamic">
    <div>
      <avue-crud v-model="form"
                 :data="tableList"
                 :option="option"
                 :page.sync="page"
                 :table-loading="loading">
        <!--top区域按钮-->
        <template slot="menuLeft" slot-scope="scope">
          <dynamic-button :butttonList="componentVO.buttons" LocationType="top" type="table"></dynamic-button>
        </template>
        <!--menu区域按钮-->
        <template slot="menu" slot-scope="scope">
          <dynamic-button :butttonList="componentVO.buttons" :scope="scope" LocationType="menu" type="table"></dynamic-button>
        </template>
      </avue-crud>
    </div>
  </div>
</template>
<script>
export default {
  name: "dynamic-table"
  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: {}
    }
  },
  data() {
    return {
      clientHeight: 0,
      parentHeight: '100%',//当前组件根节点元素高度
      form: {},
      loading: false,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 5,
      },
      //表格数据
      tableList: [
        {
          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"
        },
        {
          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"
        },
      ],
    }
  },
  computed: {
    option() {
      return {
        index: true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        selection:true,
        height: this.parentHeight,
        calcHeight: 15,
        indexFixed: false,
        menuFixed: false,
        column: this.updatedColumns,
      };
    },
    updatedColumns() {
      return this.componentVO.tableDefineVO.cols[0].map(item => {
        const typeValue = item.fieldType === 'text' || item.fieldType === 'combox' ? 'input' : item.fieldType; // 表单Type类型
        return {
          align: item.align,
          colspan: item.colspan,
          prop: item.field,
          type: typeValue,
          hidden: item.hidden,
          label: item.title,
          width: item.width,
        };
      });
    },
  },
  watch: {
    clientHeight: {
      handler(newval) {
        if (newval > 50) {
          //父元素高度-按钮高度-分页高度
          this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5;
          console.log(this.parentHeight)
        }
      }
    },
  },
  mounted() {
    this.clientHeight = this.$el.clientHeight;
  },
  methods: {}
}
</script>