田源
2024-03-14 697c647b8a85b5997304b2b4adf16030978fca80
基础表格、表单、按钮
已修改6个文件
已添加2个文件
717 ■■■■■ 文件已修改
Source/ProjectWeb/public/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/lang/en.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/lang/zh.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/util/func.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/src/util/validate.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/ProjectWeb/public/index.html
@@ -19,7 +19,7 @@
  <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
  <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
  <link rel="icon" href="<%= BASE_URL %>favicon.png">
  <title>ubcs企业平台</title>
  <title>PLTWEB平台</title>
  <style>
    html,
    body,
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,248 @@
<template>
  <!--表格基础按钮-->
  <div v-if="type === 'table'">
    <!--top展示表格上方区域 menu展示表格操作栏区域 -->
    <el-button v-for="item in basicButtonList.top"
               v-if="LocationType === 'top'"
               :key="item.oid" :icon="item.icon"
               :type="item.type" plain
               size="small"
               @click="buttonClick(item)">
      {{ item.name }}
    </el-button>
    <el-button v-for="item in basicButtonList.menu"
               v-if="LocationType === 'menu'"
               :key="item.oid" :icon="item.icon"
               :type="item.type" plain
               size="small"
               @click="buttonClick(item)">
      {{ item.name }}
    </el-button>
    <dynamic-form :visible.sync="visible" :title="formName" ></dynamic-form>
  </div>
</template>
<script>
import func from "@/util/func";
import {validatenull} from "@/util/validate";
export default {
  name: "dynamic-button",
  props: {
    type: {
      type: String
    },
    LocationType: {
      type: String,
    },
  },
  data() {
    return {
      visible:false,
      formName:'',
      butttonList: [
        {
          actionVO: {
            actionCls: "",
            actionUsedType: "business",
            bsUrl: "null",
            createTime: "2013-11-01 15:17:45.000",
            creator: "eddieliu",
            csClass: "plm.uif.actions.client.AddAction",
            description: "创建业务对象",
            id: "add",
            lastModifier: "developer",
            lastModifyTime: "2013-11-01 15:17:45.000",
            licensors: null,
            name: "创建",
            oid: "65274704-5557-231C-E3EA-0B32B9BD5A0B"
          },
          type: 'primary',
          menu: false,
          areaType: "tab",
          authorization: true,
          children: null,
          createTime: "2022-07-18 17:29:10.000",
          creator: "developer",
          csUrl: "plm.uif.actions.client.AddAction",
          description: "",
          displayMode: "textandimage",
          hidden: false,
          iconPath: "",
          id: "add",
          lastModifier: "developer",
          lastModifyTime: "2022-07-18 17:29:10.000",
          name: "新增",
          oid: "DD34108A-5978-334C-7A2A-45F2EE158B1D",
          orderNum: 1,
          paramVOS: {
            form: "DepartmentProcessReviewForm",
            context: "EditDepartmentProcessReview",
            type: "processreview",
            initvalue: "reviewtype=department"
          },
          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
          pkParentOid: "",
          url: "null"
        },
        {
          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"
          },
          type: 'text',
          icon: "el-icon-edit",
          menu: true,
          areaType: "tab",
          authorization: true,
          children: null,
          createTime: "2022-07-18 17:29:10.000",
          creator: "developer",
          csUrl: "plm.uif.actions.client.EditAction",
          description: "",
          displayMode: "textandimage",
          hidden: false,
          iconPath: "",
          id: "edit",
          lastModifier: "developer",
          lastModifyTime: "2022-07-18 17:29:10.000",
          name: "修改",
          oid: "F50F37CE-26FF-8BC1-F87A-FFD9CFA8CE57",
          orderNum: 2,
          paramVOS: {
            form: "DepartmentProcessReviewForm",
            checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting"
          },
          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
          pkParentOid: "",
          url: "BaseEditAction#doAction"
        },
        {
          actionVO: {
            actionCls: "",
            actionUsedType: "business",
            bsUrl: "BaseDeleteAction",
            createTime: "2013-11-09 10:33:08.000",
            creator: "1",
            csClass: "plm.uif.actions.client.DeleteAction",
            description: "删除业务对象",
            id: "del",
            lastModifier: "developer",
            lastModifyTime: "2013-11-09 10:33:08.000",
            licensors: null,
            name: "删除",
            oid: "2655E9F0-014B-DFEC-6F92-A6D1C51FDA19"
          },
          type: 'text',
          icon: "el-icon-delete",
          menu: true,
          areaType: "tab",
          authorization: true,
          children: null,
          createTime: "2022-07-18 17:29:10.000",
          creator: "developer",
          csUrl: "plm.uif.actions.client.DeleteAction",
          description: "",
          displayMode: "textandimage",
          hidden: false,
          iconPath: "",
          id: "del",
          lastModifier: "developer",
          lastModifyTime: "2022-07-18 17:29:10.000",
          name: "删除",
          oid: "A8914C35-721B-A1E3-1EEE-3A9196DF5EC9",
          orderNum: 3,
          paramVOS: {
            owner: "true",
            checkNotOperation: "${lcstatus}=Auditing&${lcstatus}=Waiting",
            state: "Editing"
          },
          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
          pkParentOid: "",
          url: "BaseDeleteAction"
        },
        {
          actionVO: {
            actionCls: "",
            actionUsedType: "business",
            bsUrl: "BaseStartWorkflowAction#doAction",
            createTime: "2014-03-17 10:14:40.000",
            creator: "developer",
            csClass: "plm.uif.actions.client.LaunchWorkFlowAction",
            description: "启动流程",
            id: "launchworkflow",
            lastModifier: "developer",
            lastModifyTime: "2014-03-17 10:14:40.000",
            licensors: null,
            name: "启动流程",
            oid: "56FE9470-AA2B-403B-F029-0A120FC94536"
          },
          areaType: "tab",
          authorization: true,
          children: null,
          createTime: "2022-07-18 17:29:10.000",
          creator: "developer",
          csUrl: "plm.uif.actions.client.LaunchWorkFlowAction",
          description: "",
          displayMode: "textandimage",
          hidden: false,
          iconPath: "",
          id: "launchworkflow",
          lastModifier: "developer",
          lastModifyTime: "2022-07-18 17:29:10.000",
          name: "审签",
          oid: "9963FA86-F146-FBD3-2AC2-51A7AAAAB825",
          orderNum: 4,
          paramVOS: {
            owner: "true",
            autoSubmitFirst: "false",
            flowtemplates: "工艺评审审签流程",
            state: "Editing",
            type: "processreview"
          },
          pkComponent: "D99AD59E-563F-AB7A-F307-794B929114CD",
          pkParentOid: "",
          url: "BaseStartWorkflowAction#doAction"
        },
      ]
    }
  },
  computed: {
    basicButtonList() {
      const basicColumn = this.butttonList.filter(item => item.id !== 'launchworkflow'); // é¦–先过滤出来基础表单事件的按钮
      if (this.type === 'table') {
        const top = basicColumn.filter(item => !item.menu); // è¿‡æ»¤å‡ºæ¥è¡¨æ ¼ä¸Šé¢åŒºåŸŸå±•示的按钮
        const menu = basicColumn.filter(item => item.menu); // è¿‡æ»¤å‡ºæ¥æ“ä½œæ å±•示的按钮
        return {
          top: top,
          menu: menu
        }
      }
    }
  },
  methods: {
    buttonClick(item) {
      this.$emit('buttonClick', item.id)
      this.visible = true;
      this.formName = item.name;
    }
  }
}
</script>
<style scoped>
</style>
Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
<template>
  <basic-container>
    <el-dialog v-if="dialogFormVisible" :visible.sync="dialogFormVisible" :title="title" append-to-body>
    </el-dialog>
  </basic-container>
</template>
<script>
export default {
  name: "dynamic-form",
  props:{
    visible:{
      type: Boolean,
      default: false,
    },
    title:{
      type:String
    }
  },
  data() {
    return {
      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: false,
          selectLibFlag: null,
          showField: null,
          suffix: null,
          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: true,
          referConfig: null,
          required: false,
          selectLibFlag: null,
          showField: null,
          suffix: null,
          text: "类型",
          tooltips: null,
          type: "combox",
          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: ""
        },
        {
          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: "date",
          unique: false,
          verify: ""
        }
      ],
    }
  },
  computed:{
    dialogFormVisible: {
      get() {
        return this.visible;
      },
      set(val) {
        this.$emit("update:visible", val);
      },
    },
  }
}
</script>
<style scoped>
</style>
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -1,5 +1,23 @@
<template>
  <basic-container>表格测试页</basic-container>
  <basic-container>
    <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" @buttonClick="buttonClick"></dynamic-button>
      </template>
      <!--menu区域按钮-->
      <template slot="menu" slot-scope="scope">
        <dynamic-button LocationType="menu" type="table" @buttonClick="buttonClick"></dynamic-button>
      </template>
    </avue-crud>
    <!-- è¡¨æ ¼å†…按钮操作对话框表单   -->
<!--    <dynamic-form :visible.sync="visible" style="display: none"></dynamic-form>-->
  </basic-container>
</template>
<script>
@@ -7,7 +25,15 @@
  name: "dynamic-table",
  data() {
    return {
      tableList:[
      form: {},
      loading: false,
      visible:false,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 5,
      },
      tableHeadList: [
        {
          align: "left",
          colspan: 1,
@@ -15,7 +41,7 @@
          fieldType: "text",
          hidden: false,
          title: "名称",
          width: 100
          width: 100,
        },
        {
          align: "left",
@@ -60,7 +86,7 @@
        {
          align: "left",
          colspan: 1,
          field: "creator_name,(,creator,)",
          field: "creator_name",
          fieldType: "text",
          hidden: false,
          sortField: "creator",
@@ -77,8 +103,238 @@
          title: "创建日期",
          width: 160
        }
      ],
      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"
        }
      ]
    }
  },
  computed: {
    option() {
      return {
        index: true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        column: this.updatedColumns,
      };
    },
    updatedColumns() {
      return this.tableHeadList.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,
        };
      });
    },
  },
  methods: {
    buttonClick(id) {
      console.log(id)
      this.visible = true;
    }
  }
}
</script>
Source/ProjectWeb/src/lang/en.js
@@ -1,5 +1,5 @@
export default {
  title: 'Saber Admin',
  title: 'PLTWEB Admin',
  logoutTip: 'Exit the system, do you want to continue?',
  submitText: 'submit',
  cancelText: 'cancel',
Source/ProjectWeb/src/lang/zh.js
@@ -1,5 +1,5 @@
export default {
  title: 'Ubcs企业管理平台',
  title: 'PLTWEB平台',
  logoutTip: '退出系统, æ˜¯å¦ç»§ç»­?',
  submitText: '确定',
  cancelText: '取消',
Source/ProjectWeb/src/util/func.js
@@ -6,6 +6,7 @@
   * ä¸ä¸ºç©º
   * @param val
   * @returns {boolean}
   * ä¸èƒ½åˆ¤æ–­æ•°ç»„和对象 å¦‚判断"null"、"undefined"会返回不为空
   */
  static notEmpty(val) {
    return !this.isEmpty(val);
@@ -24,6 +25,7 @@
   * ä¸ºç©º
   * @param val
   * @returns {boolean}
   * ä¸èƒ½åˆ¤æ–­æ•°ç»„和对象 å¦‚判断"null"、"undefined"会返回不为空
   */
  static isEmpty(val) {
    if (
Source/ProjectWeb/src/util/validate.js
@@ -179,7 +179,7 @@
    let result = true;
    let msg = '';
    var isPhone = /^0\d{2,3}-?\d{7,8}$/;
    //增加134 å‡å°‘|1349[0-9]{7},增加181,增加145,增加17[678]
    //增加134 å‡å°‘|1349[0-9]{7},增加181,增加145,增加17[678]
    if (!validatenull(phone)) {
        if (phone.length == 11) {
            if (isPhone.test(phone)) {
@@ -233,6 +233,7 @@
}
/**
 * åˆ¤æ–­æ˜¯å¦ä¸ºç©º
 * å¯ä»¥åˆ¤æ–­æ•°ç»„和对象 å¦‚判断"null"、"undefined"也会返回是空
 */
export function validatenull(val) {
    if (typeof val == 'boolean') {
@@ -250,4 +251,4 @@
        return false;
    }
    return false;
}
}