田源
2024-03-18 3b5faa420d89c2ee7f3973c043ea997e4885e0ec
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container>
  <div>
    <avue-crud v-model="form"
               :data="tableList"
               :option="option"
@@ -12,27 +12,53 @@
      <!--menu区域按钮-->
      <template slot="menu" slot-scope="scope">
        <dynamic-button LocationType="menu" type="table" @buttonClick="buttonClick"></dynamic-button>
        <dynamic-button :scope="scope" LocationType="menu" type="table" @buttonClick="buttonClick"></dynamic-button>
      </template>
    </avue-crud>
    <!-- 表格内按钮操作对话框表单   -->
<!--    <dynamic-form :visible.sync="visible" style="display: none"></dynamic-form>-->
  </basic-container>
    <dynamic-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible"
                  style="display: none"></dynamic-form>
  </div>
</template>
<script>
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: {}
    }
  },
  data() {
    return {
      form: {},
      formName: '',
      loading: false,
      visible:false,
      visible: false,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 5,
      },
      //表格头
      tableHeadList: [
        {
          align: "left",
@@ -104,6 +130,7 @@
          width: 160
        }
      ],
      //表格数据
      tableList: [
        {
          code: "20220102",
@@ -300,7 +327,363 @@
          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"
        },
      ],
      // 表单数据
      formList: [
        {
          comboxKey: null,
          customClass: null,
          data: null,
          dateFormate: null,
          defaultValue: "",
          displayExtension: "",
          extendAttrMap: null,
          extendAttrString: null,
          field: "name",
          hidden: false,
          keyAttr: false,
          prefix: null,
          readOnly: false,
          referConfig: null,
          required: true,
          selectLibFlag: null,
          showField: null,
          suffix: '$',
          text: "名称",
          tooltips: null,
          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,
          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: ""
        },
      ]
    }
  },
@@ -311,6 +694,9 @@
        addBtn: false,
        editBtn: false,
        delBtn: false,
        height: 'auto',
        indexFixed: false,
        menuFixed: false,
        column: this.updatedColumns,
      };
    },
@@ -331,9 +717,35 @@
    },
  },
  methods: {
    buttonClick(id) {
      console.log(id)
      this.visible = true;
    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('请重新配置按钮!')
      }
    }
  }
}