田源
2024-03-22 f9b749d2ae804869b09d035de44ba1ce71214dc1
top区域和menu区域事件
已修改5个文件
252 ■■■■ 文件已修改
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/views/base/uiDefineVO.js 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -18,7 +18,7 @@
                 :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)">
                 @click="buttonClick(item)">
        {{ item.name }}
      </el-button>
      <!-- 表格内按钮操作对话框表单   -->
@@ -29,7 +29,7 @@
      <el-button v-for="item in basicButtonList"
                 :key="item.oid"
                 :icon="item.paramVOS.webUiButtonIcon"
                 :type="(item.paramVOS.webUiButtonType !== 'text' ? item.paramVOS.buttonType : 'primary') || 'primary'"
                 :type="(item.paramVOS.webUiButtonType !== 'text' ? item.paramVOS.webUiButtonType : 'primary') || 'primary'"
                 plain
                 size="small"
                 @click="buttonClick(item)">
@@ -56,6 +56,9 @@
      type: Object,
    },
    butttonList: {
      type: Array
    },
    selectList: {
      type: Array
    }
  },
@@ -228,15 +231,11 @@
  },
  computed: {
    basicButtonList() {
      // const basicColumn = this.butttonList.filter(item => item.id !== 'launchworkflow'); // 首先过滤出来基础表单事件的按钮
      const basicColumn = this.butttonList;
      if (this.type === 'form') {
        return basicColumn;
      } else if (this.type === 'table') {
        const top = basicColumn.filter(item => item.paramVOS.webUiButtonLocation === 'top' || func.isEmpty(item.paramVOS.webUiButtonLocation)); // 过滤出来表格上面区域展示的按钮
        const menu = basicColumn.filter(item => item.paramVOS.webUiButtonLocation === 'menu'); // 过滤出来操作栏展示的按钮
@@ -256,12 +255,30 @@
      }
      function handleEdit() {
        this.visible = true;
        this.$refs.dynamicForm.form = this.scope.row;
        const location = item.paramVOS.webUiButtonLocation;
        if (location === 'menu') {
          this.visible = true;
          this.$refs.dynamicForm.form = this.scope.row;
        } else if (location === 'top' && this.selectList.length === 1) {
          this.visible = true;
          this.$refs.dynamicForm.form = this.selectList[0];
        } else {
          const messageText = this.selectList.length > 1 ? '只能选择一条数据进行编辑!' : '请选择一条数据进行编辑!';
          this.$message.warning(messageText);
        }
      }
      function handleDelete() {
        this.$message.success('删除成功!');
        const location = item.paramVOS.webUiButtonLocation;
        if (location === 'top') {
          if (this.selectList.length <= 0) {
            this.$message.warning('请至少选择一条数据!')
          } else {
            this.$message.success('删除成功!');
          }
        } else if (location === 'menu') {
          this.$message.success('删除成功!');
        }
      }
      const methodHandlers = {
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -59,7 +59,6 @@
    }
  },
  mounted() {
    // console.log('componentVO--',this.componentVO.tableDefineVO.cols[0])
  },
  computed: {
    option() {
Source/ProjectWeb/src/components/dynamic-components/dynamic-table-form.vue
@@ -4,7 +4,7 @@
      <avue-form v-model="form" :option="option" @submit="submitHandler" @reset-change="changeHandler">
        <template v-for="item in slotData" :slot="item.prop + 'Label'">
        <span>
          <span>{{ item.label }} </span>
          <span>{{ item.label }}</span>
          <el-tooltip
            v-if="item.keyAttr"
            class="item"
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,22 +1,23 @@
<template>
  <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
    <avue-crud v-model="form"
               ref="dataTable"
               :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" ></dynamic-button>
      </template>
      <avue-crud v-model="form"
                 ref="dataTable"
                 :data="tableList"
                 :option="option"
                 :page.sync="page"
                 :table-loading="loading"
                 @selection-change="selectChange">
        <!--top区域按钮-->
        <template slot="menuLeft" slot-scope="scope">
          <dynamic-button LocationType="top" type="table":butttonList="componentVO.buttons" :selectList="selectList"></dynamic-button>
        </template>
      <!--menu区域按钮-->
      <template slot="menu" slot-scope="scope">
        <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="componentVO.buttons" ></dynamic-button>
      </template>
    </avue-crud>
  </div>
        <!--menu区域按钮-->
        <template slot="menu" slot-scope="scope">
          <dynamic-button :scope="scope" LocationType="menu" type="table":butttonList="componentVO.buttons" :selectList="selectList"></dynamic-button>
        </template>
      </avue-crud>
    </div>
</template>
<script>
@@ -48,6 +49,11 @@
      //所在区域是否已显示,针对tab和collapse
      type: Boolean,
      default: true
    },
    dataStore:{
      //弹窗时按钮所属区域选中数据
      type:Array,
      default: []
    },
  },
  data() {
@@ -462,12 +468,14 @@
        addBtn: false,
        editBtn: false,
        delBtn: false,
        selection:true,
        height: '100%',
        calcHeight: 15,
        indexFixed: false,
        menuFixed: false,
        column: [],
      },
      selectList:[]
    }
  },
  computed: {
@@ -520,6 +528,9 @@
    }
  },
  methods: {
    selectChange(row){
      this.selectList = row;
    }
  }
}
</script>
Source/ProjectWeb/src/views/base/uiDefineVO.js
@@ -52,7 +52,176 @@
              "pkComponent": "2D6D571B-BB6E-677D-9764-191BC5D5D3F1",
              "pkParentOid": "",
              "url": "RefreshAction"
            }
            },
            {
              "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:30:52.000",
              "creator": "developer",
              "csUrl": "plm.uif.actions.client.EditAction",
              "description": "",
              "displayMode": "textandimage",
              "hidden": false,
              "iconPath": "",
              "id": "edit",
              "lastModifier": "developer",
              "lastModifyTime": "2022-07-18 17:30:52.000",
              "name": "修改",
              "oid": "43F34DC1-C229-359B-AED3-38CA9E7D1534",
              "orderNum": 1,
              "paramVOS": {
                "owner": "true",
                "context": "CreateAuditQuestionDocume",
                "type": "document",
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'edit',
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
              "url": "BaseEditAction#doAction"
            },
            {
              "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:30:52.000",
              "creator": "developer",
              "csUrl": "plm.uif.actions.client.EditAction",
              "description": "",
              "displayMode": "textandimage",
              "hidden": false,
              "iconPath": "",
              "id": "edit",
              "lastModifier": "developer",
              "lastModifyTime": "2022-07-18 17:30:52.000",
              "name": "修改",
              "oid": "43F34DC1-C229-359B-AED3-38CA9E7D1534",
              "orderNum": 1,
              "paramVOS": {
                "owner": "true",
                "context": "CreateAuditQuestionDocume",
                "type": "document",
                'webUiButtonLocation': 'menu',
                'webUiButtonMethods': 'edit',
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
              "url": "BaseEditAction#doAction"
            },
            {
              "actionVO": {
                "actionCls": "",
                "actionUsedType": "business",
                "bsUrl": "",
                "createTime": "2021-12-03 15:28:19.000",
                "creator": "developer",
                "csClass": "net=VCI.Plugin.631.Actions.dll",
                "description": "删除工艺问题",
                "id": "deleteprocessquestion",
                "lastModifier": "developer",
                "lastModifyTime": "2021-12-03 15:28:19.000",
                "licensors": null,
                "name": "删除工艺问题",
                "oid": "FD73DF30-7269-8A85-1B62-B92435000280"
              },
              "areaType": "tab",
              "authorization": true,
              "children": null,
              "createTime": "2022-07-18 17:30:52.000",
              "creator": "developer",
              "csUrl": "net=VCI.Plugin.631.Actions.dll",
              "description": "",
              "displayMode": "textandimage",
              "hidden": false,
              "iconPath": "",
              "id": "deleteprocessquestion",
              "lastModifier": "developer",
              "lastModifyTime": "2022-07-18 17:30:52.000",
              "name": "删除",
              "oid": "BE973D4A-CB99-10FC-3E31-F3010259F823",
              "orderNum": 2,
              "paramVOS": {
                "owner": "true",
                'webUiButtonLocation': 'menu',
                'webUiButtonType': 'text',
                'webUiButtonMethods': 'delete'
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
              "url": ""
            },
            {
              "actionVO": {
                "actionCls": "",
                "actionUsedType": "business",
                "bsUrl": "",
                "createTime": "2021-12-03 15:28:19.000",
                "creator": "developer",
                "csClass": "net=VCI.Plugin.631.Actions.dll",
                "description": "删除工艺问题",
                "id": "deleteprocessquestion",
                "lastModifier": "developer",
                "lastModifyTime": "2021-12-03 15:28:19.000",
                "licensors": null,
                "name": "删除工艺问题",
                "oid": "FD73DF30-7269-8A85-1B62-B92435000280"
              },
              "areaType": "tab",
              "authorization": true,
              "children": null,
              "createTime": "2022-07-18 17:30:52.000",
              "creator": "developer",
              "csUrl": "net=VCI.Plugin.631.Actions.dll",
              "description": "",
              "displayMode": "textandimage",
              "hidden": false,
              "iconPath": "",
              "id": "deleteprocessquestion",
              "lastModifier": "developer",
              "lastModifyTime": "2022-07-18 17:30:52.000",
              "name": "删除",
              "oid": "BE973D4A-CB99-10FC-3E31-F3010259F823",
              "orderNum": 2,
              "paramVOS": {
                "owner": "true",
                'webUiButtonLocation': 'top',
                'webUiButtonMethods': 'delete'
              },
              "pkComponent": "E00C3C31-D27F-E3AC-6C2B-1882EE8B6FEE",
              "pkParentOid": "",
              "url": ""
            },
          ],
          "checkInBy": null,
          "checkInTime": null,