田源
2024-03-21 599859cbfeecf91c044ca3f5de238f997a00a425
修改paramVOS字段名
已修改3个文件
553 ■■■■ 文件已修改
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue 244 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/views/base/uiDefineVO.js 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -5,8 +5,8 @@
      <!--top展示表格上方区域 menu展示表格操作栏区域 -->
      <el-button v-for="item in basicButtonList.top"
                 v-if="LocationType === 'top'"
                 :key="item.oid" :icon="item.icon"
                 :type="item.paramVOS.buttonType || 'primary'" plain
                 :key="item.oid" :icon="item.paramVOS.webUiButtonIcon"
                 :type="item.paramVOS.webUiButtonType || 'primary'" plain
                 size="small"
                 @click="buttonClick(item)">
        {{ item.name }}
@@ -15,18 +15,21 @@
      <el-button v-for="item in basicButtonList.menu"
                 v-if="LocationType === 'menu'"
                 :key="item.oid"
                 :icon="item.paramVOS.icon ? item.paramVOS.icon : (item.paramVOS.buttonMethods === 'edit' ? 'el-icon-edit' : (item.paramVOS.buttonMethods === 'delete' ? 'el-icon-delete' : ''))"
                 :type="item.paramVOS.buttonType || 'text'" plain
                 :icon="item.paramVOS.webUiButtonIcon ? item.paramVOS.webUiButtonIcon : (item.paramVOS.webUiButtonMethods === 'edit' ? 'el-icon-edit' : (item.paramVOS.webUiButtonMethods === 'delete' ? 'el-icon-delete' : ''))"
                 :type="item.paramVOS.webUiButtonType || 'text'" plain
                 size="small"
                 @click="buttonClick(item,scope)">
        {{ item.name }}
      </el-button>
      <!-- 表格内按钮操作对话框表单   -->
      <dynamic-table-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible"
                          style="display: none"></dynamic-table-form>
    </div>
    <div v-else-if="type === 'form'">
      <el-button v-for="item in basicButtonList"
                 :key="item.oid"
                 :icon="item.icon"
                 :type="(item.paramVOS.buttonType !== 'text' ? item.paramVOS.buttonType : 'primary') || 'primary'"
                 :icon="item.paramVOS.webUiButtonIcon"
                 :type="(item.paramVOS.webUiButtonType !== 'text' ? item.paramVOS.buttonType : 'primary') || 'primary'"
                 plain
                 size="small"
                 @click="buttonClick(item)">
@@ -60,6 +63,167 @@
    return {
      visible: false,
      formName: '',
      // 表单数据
      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: ""
        },
      ],
    }
  },
  computed: {
@@ -73,8 +237,8 @@
      } else if (this.type === 'table') {
        const top = basicColumn.filter(item => item.paramVOS.location === 'top' || func.isEmpty(item.paramVOS.location)); // 过滤出来表格上面区域展示的按钮
        const menu = basicColumn.filter(item => item.paramVOS.location === 'menu'); // 过滤出来操作栏展示的按钮
        const top = basicColumn.filter(item => item.paramVOS.webUiButtonLocation === 'top' || func.isEmpty(item.paramVOS.webUiButtonLocation)); // 过滤出来表格上面区域展示的按钮
        const menu = basicColumn.filter(item => item.paramVOS.webUiButtonLocation === 'menu'); // 过滤出来操作栏展示的按钮
        return {
          top: top,
@@ -85,7 +249,34 @@
  },
  methods: {
    buttonClick(item) {
      this.$emit('buttonClick', this.scope, item)
      this.formName = item.name;
      function handleAdd() {
        this.visible = true;
      }
      function handleEdit() {
        this.visible = true;
        this.$refs.dynamicForm.form = this.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.webUiButtonMethods;
      const handler = methodHandlers[method];
      if (handler) {
        handler();
      } else {
        this.$message.error('请重新配置按钮!')
      }
    }
  }
}
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,23 +1,22 @@
<template>
  <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
    <avue-crud v-model="form"
               :data="tableList"
               :option="option"
               :page.sync="page"
               :table-loading="loading">
      <!--top区域按钮-->
      <template slot="menuLeft" slot-scope="scope">
        <dynamic-button LocationType="top" type="table":butttonList="componentVO.buttons" @buttonClick="buttonClick" ></dynamic-button>
      </template>
  <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 :scope="scope" LocationType="menu" type="table":butttonList="componentVO.buttons" @buttonClick="buttonClick" ></dynamic-button>
      </template>
    </avue-crud>
    <!-- 表格内按钮操作对话框表单   -->
    <dynamic-table-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible"
                  style="display: none"></dynamic-table-form>
        <!--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>
@@ -49,12 +48,10 @@
  },
  data() {
    return {
      clientHeight:0,
      parentHeight:'100%',//当前组件根节点元素高度
      clientHeight: 0,
      parentHeight: '100%',//当前组件根节点元素高度
      form: {},
      formName: '',
      loading: false,
      visible: false,
      page: {
        pageSize: 10,
        currentPage: 1,
@@ -455,167 +452,6 @@
          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: ""
        },
      ],
    }
  },
  computed: {
@@ -625,6 +461,7 @@
        addBtn: false,
        editBtn: false,
        delBtn: false,
        selection:true,
        height: this.parentHeight,
        calcHeight: 15,
        indexFixed: false,
@@ -648,52 +485,21 @@
      });
    },
  },
  watch:{
  watch: {
    clientHeight: {
      handler(newval) {
        if(newval>50){
        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;
          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;
    this.clientHeight = this.$el.clientHeight;
  },
  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('请重新配置按钮!')
      }
    }
  }
  methods: {}
}
</script>
Source/ProjectWeb/src/views/base/uiDefineVO.js
@@ -45,9 +45,9 @@
              "oid": "E20C314B-E741-FBE0-534A-D68E9C0D8E2C",
              "orderNum": 6,
              "paramVOS": {
                'location': 'top',
                'buttonType': 'primary',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonType': 'primary',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "2D6D571B-BB6E-677D-9764-191BC5D5D3F1",
              "pkParentOid": "",
@@ -955,9 +955,9 @@
                "owner": "true",
                "context": "CreateAuditQuestionDocume",
                "type": "document",
                'location': 'edit',
                'buttonMethods': 'edit',
                'buttonType':'text'
                'webUiButtonLocation': 'edit',
                'webUiButtonMethods': 'edit',
                'webUiButtonType':'text'
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
@@ -997,9 +997,9 @@
              "orderNum": 2,
              "paramVOS": {
                "owner": "true",
                'location': 'menu',
                'buttonType': 'text',
                'buttonMethods': 'delete'
                'webUiButtonLocation': 'menu',
                'webUiButtonType': 'text',
                'webUiButtonMethods': 'delete'
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
@@ -1038,9 +1038,9 @@
              "oid": "A860B3E6-8FA5-92AE-8D8A-A2AE5CC552F4",
              "orderNum": 3,
              "paramVOS": {
                'location': 'top',
                'buttonType': 'primary',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonType': 'primary',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
@@ -1557,9 +1557,9 @@
                "form": "CreateDocument",
                "type": "document",
                "initvalue": "doctype=9;processreviewoid=root.${oid}",
                'location': 'top',
                'buttonType': 'primary',
                'buttonMethods': 'add'
                'webUiButtonLocation': 'top',
                'webUiButtonType': 'primary',
                'webUiButtonMethods': 'add'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -1600,8 +1600,8 @@
              "paramVOS": {
                "form": "CreateDocument",
                "checkNotOperation": "${lcstatus}=Editing",
                'location': 'menu',
                'buttonMethods': 'edit'
                'webUiButtonLocation': 'menu',
                'webUiButtonMethods': 'edit'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -1642,9 +1642,9 @@
              "paramVOS": {
                "owner": "true",
                "checkNotOperation": "${lcstatus}=Editing",
                'location': 'menu',
                'buttonType': 'text',
                'buttonMethods': 'delete'
                'webUiButtonLocation': 'menu',
                'webUiButtonType': 'text',
                'webUiButtonMethods': 'delete'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -1686,8 +1686,8 @@
                "owner": "true",
                "forsourcedata": "false",
                "state": "Editing",
                'location': 'top',
                'buttonMethods': 'upload'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'upload'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -1729,8 +1729,8 @@
                "owner": "true",
                "flowtemplates": "工艺文档审签流程",
                "type": "document",
                'location': 'top',
                'buttonMethods': 'launchworkflow'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'launchworkflow'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -1769,8 +1769,8 @@
              "oid": "110B50FD-67F2-8EA2-0400-D25D591218BA",
              "orderNum": 6,
              "paramVOS": {
                'location': 'top',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "8FA7A8BD-5063-B118-D4FC-E5233404D182",
              "pkParentOid": "",
@@ -2487,9 +2487,9 @@
              "orderNum": 2,
              "paramVOS": {
                "setpath": "true",
                'location': 'top',
                'buttonType': 'primary',
                'buttonMethods': 'download'
                'webUiButtonLocation': 'top',
                'webUiButtonType': 'primary',
                'webUiButtonMethods': 'download'
              },
              "pkComponent": "F6380995-A148-5EA4-46B8-65168D9F187C",
              "pkParentOid": "",
@@ -2528,9 +2528,9 @@
              "oid": "2D6CF3C0-8E18-CEED-0C04-A50628626D7D",
              "orderNum": 4,
              "paramVOS": {
                'location': 'top',
                'buttonType': 'primary',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonType': 'primary',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "F6380995-A148-5EA4-46B8-65168D9F187C",
              "pkParentOid": "",
@@ -3051,8 +3051,8 @@
              "paramVOS": {
                "state": "Editing",
                "checkout": "me;null",
                'location': 'top',
                'buttonMethods': 'upload'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'upload'
              },
              "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
              "pkParentOid": "",
@@ -3092,8 +3092,8 @@
              "orderNum": 2,
              "paramVOS": {
                "setpath": "true",
                'location': 'top',
                'buttonMethods': 'download',
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'download',
              },
              "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
              "pkParentOid": "",
@@ -3135,8 +3135,8 @@
                "owner": "true",
                "state": "Editing",
                "checkout": "me;null",
                'location': 'menu',
                'buttonMethods': 'delete'
                'webUiButtonLocation': 'menu',
                'webUiButtonMethods': 'delete'
              },
              "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
              "pkParentOid": "",
@@ -3175,8 +3175,8 @@
              "oid": "E9119347-26C4-3BE8-2EA2-B4FCC54120CF",
              "orderNum": 4,
              "paramVOS": {
                'location': 'top',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "A8572D5B-444E-C223-D5C7-7B02698852DA",
              "pkParentOid": "",
@@ -4087,8 +4087,8 @@
                "form": "createAuditTask_web",
                "state": "Waiting",
                "type": "audittask",
                'location': 'top',
                'buttonMethods': 'add'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'add'
              },
              "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
              "pkParentOid": "",
@@ -4127,8 +4127,8 @@
              "oid": "1E72BCA6-4FB2-0BC8-BE99-F6EDC43CCA10",
              "orderNum": 2,
              "paramVOS": {
                'location': 'top',
                'buttonMethods': 'conductinternalreview'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'conductinternalreview'
              },
              "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
              "pkParentOid": "",
@@ -4170,8 +4170,8 @@
                "context": "CreateAuditQuestionDocume",
                "type": "document",
                "initvalue": "processreviewoid=${oid};doctype=8",
                'location': 'top',
                'buttonMethods': 'add'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'add'
              },
              "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
              "pkParentOid": "",
@@ -4212,8 +4212,8 @@
              "paramVOS": {
                "form": "CreateAuditQuestionDocument",
                "type": "document",
                'location': 'top',
                'buttonMethods': 'opinionsummary'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'opinionsummary'
              },
              "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
              "pkParentOid": "",
@@ -4252,8 +4252,8 @@
              "oid": "F52BE746-4D0E-9E00-1D5E-E3729DEEE1FA",
              "orderNum": 9,
              "paramVOS": {
                'location': 'top',
                'buttonMethods': 'refresh'
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'refresh'
              },
              "pkComponent": "8D269B20-03E4-A9B0-7D06-4BE074EEF4DD",
              "pkParentOid": "",