whj 11 månader sedan
förälder
incheckning
4e46f09e7c

+ 18 - 0
src/api/workflow/publish.js

@@ -0,0 +1,18 @@
+import { axios } from '@/utils/request'
+import { stringify } from 'qs'
+
+/**
+ * page func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getWorplacePublishPage (parameter) {
+    return axios({
+        url: '/work/place/wait/publish?' + stringify(parameter),
+        method: 'get',
+        headers: {
+            'Content-Type': 'application/json;charset=UTF-8'
+        }
+    })
+}

+ 7 - 1
src/router/generator-platform-routers.js

@@ -264,6 +264,9 @@ const constantRouterComponents = {
   'StoreWorkplaceBacklog': () => import('@/views/workplace/backlog/StoreWorkplaceBacklog'),
   'SbWorkplaceBacklog': () => import('@/views/workplace/backlog/SbWorkplaceBacklog'),
   'NewWorkplaceBacklog': () => import('@/views/workplace/backlog/NewWorkplaceBacklog'),
+  'Workplace': () => import('@/views/workplace/newWoekplace/Workplace'),
+
+
   'Supplier': () => import('@/views/purchase/supplier/Supplier'),
   'SupplierApply': () => import('@/views/purchase/supplier/SupplierApply'),
   'PurchaseDemandPlan': () => import('@/views/purchase/purchase-demand-plan/PurchaseDemandPlan'),
@@ -453,7 +456,10 @@ const constantRouterComponents = {
   // 自定义
   'CustomForm': () => import('@/views/custom/form/CustomForm.vue'),
   // threeJs
-  'Workflow': () => import('@/views/workflow/workflow/Workflow.vue')
+  'Workflow': () => import('@/views/workflow/workflow/Workflow.vue'),
+  //
+  'WaitPublish': () => import('@/views/workplace/publish/WaitPublish'), 
+
 }
 
 // 前端未找到页面路由(固定不用改)

+ 257 - 263
src/views/workflow/task/WorkflowTask.vue

@@ -1,276 +1,270 @@
 <template>
-    <a-card :bordered="false">
-        <div v-show="visible">
-            <div class="table-page-search-wrapper"  @keyup.enter="handleEnter">
-                <a-form layout="inline">
-                    <a-row :gutter="48" v-show="advanced">
-                        <a-col :md="6" :sm="24">
-                            <a-form-item label="关键字">
-                                <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称"/>
-                            </a-form-item>
-                        </a-col>
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </a-row>
-                    <a-row :gutter="48">
-                        <a-col :md="24 || 24" :sm="24" style="text-align: right">
-                            <span class="table-page-search-submitButtons">
-                              <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
-                              <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
-                              <a @click="()=>{ this.advanced = !this.advanced}" style="margin-left: 8px">
-                                  {{ advanced ? '收起' : '展开' }}
-                                  <a-icon :type="advanced ? 'up' : 'down'"/>
-                              </a>
-                            </span>
-                        </a-col>
-                    </a-row>
-                </a-form>
-            </div>
+  <a-card :bordered="false">
+    <div v-show="visible">
+      <div class="table-page-search-wrapper" @keyup.enter="handleEnter">
+        <a-form layout="inline">
+          <a-row :gutter="48" v-show="advanced">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称" />
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="48">
+            <a-col :md="24 || 24" :sm="24" style="text-align: right">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+                <a @click="()=>{ this.advanced = !this.advanced}" style="margin-left: 8px">
+                  {{ advanced ? '收起' : '展开' }}
+                  <a-icon :type="advanced ? 'up' : 'down'" />
+                </a>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
 
-            <div class="table-operator" style="margin-bottom: 8px;">
-                <a-row>
-                    <a-col :md="16">
-                        <a-button v-if="$auth('workflow-task-add')" type="primary" icon="plus" @click="handleAdd()">新增</a-button>
-                        <a-button style="margin-left: 8px" v-if="$auth('workflow-task-export')" type="primary" icon="download" @click="doExport">导出</a-button>
-                        <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('workflow-task-del')">
-                            <a-menu slot="overlay">
-                                <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
-                                    <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
-                                </a-popconfirm>
-                            </a-menu>
-                            <a-button style="margin-left: 8px">
-                                批量操作 <a-icon type="down" />
-                            </a-button>
-                        </a-dropdown>
-                    </a-col>
-                </a-row>
-            </div>
+      <div class="table-operator" style="margin-bottom: 8px;">
+        <a-row>
+          <a-col :md="16">
+            <a-button v-if="$auth('workflow-task-add')" type="primary" icon="plus" @click="handleAdd()">新增</a-button>
+            <a-button style="margin-left: 8px" v-if="$auth('workflow-task-export')" type="primary" icon="download" @click="doExport">导出</a-button>
+            <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('workflow-task-del')">
+              <a-menu slot="overlay">
+                <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
+                  <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
+                </a-popconfirm>
+              </a-menu>
+              <a-button style="margin-left: 8px">
+                批量操作 <a-icon type="down" />
+              </a-button>
+            </a-dropdown>
+          </a-col>
+        </a-row>
+      </div>
 
-            <s-table
-                    ref="table"
-                    size="default"
-                    rowKey="id"
-                    :columns="columns"
-                    :data="loadData"
-                    :alert="options.alert"
-                    :rowSelection="options.rowSelection"
-                    showPagination="auto"
-            >
-                <span slot="action" slot-scope="record">
-                  <template>
-                    <a @click="handleView(record)">查看</a>
-                    <operation-button
-                            v-if="$auth('workflow-task-edit')" @click="handleEdit(record)"
-                          >修改</operation-button>
-                    <operation-button
-                            v-if="$auth('workflow-task-del')"
-                            :type="2"
-                            title="是否要删除该条数据?"
-                            @confirm="batchDelete(record.id)">删除</operation-button>
-                  </template>
-                </span>
-            </s-table>
-        </div>
-        <base-form ref="baseModal" @ok="handleOk"/>
-        <detail ref="detailModal" @ok="handleOk"/>
-    </a-card>
+      <s-table ref="table" size="default" rowKey="id" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto">
+        <span slot="action" slot-scope="record">
+          <template>
+            <a @click="handleView(record)">查看</a>
+            <operation-button v-if="$auth('workflow-task-edit')" @click="handleEdit(record)">修改</operation-button>
+            <operation-button v-if="$auth('workflow-task-del')" :type="2" title="是否要删除该条数据?" @confirm="batchDelete(record.id)">删除</operation-button>
+          </template>
+        </span>
+      </s-table>
+    </div>
+    <base-form ref="baseModal" @ok="handleOk" />
+    <detail ref="detailModal" @ok="handleOk" />
+  </a-card>
 </template>
 
 <script>
-    import { STable, Ellipsis } from '@/components'
-    import BaseForm from './modules/BaseForm'
-    import Detail from './modules/Detail'
-    import { getWorkflowTaskPage, deleteWorkflowTasks, fetchWorkflowTask, exportWorkflowTask } from '@/api/workflow/task'
+import { STable, Ellipsis } from '@/components'
+import BaseForm from './modules/BaseForm'
+import Detail from './modules/Detail'
+import { getWorkflowTaskPage, deleteWorkflowTasks, fetchWorkflowTask, exportWorkflowTask } from '@/api/workflow/task'
 
-    export default {
-        name: 'WorkflowTaskList',
-        components: {
-            STable,
-            Ellipsis,
-            BaseForm,
-            Detail
+export default {
+  name: 'WorkflowTaskList',
+  components: {
+    STable,
+    Ellipsis,
+    BaseForm,
+    Detail,
+  },
+  data() {
+    return {
+      advanced: false,
+      visible: true,
+      // 查询参数
+      queryParam: {},
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return `${
+              (this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1
+            }`
+          },
         },
-        data () {
-            return {
-                advanced: false,
-                visible: true,
-                // 查询参数
-                queryParam: {
-                },
-                // 表头
-                columns: [
-                    {
-                        title: '序号',
-                        dataIndex: 'index',
-                        customRender: (text, record, index) => {
-                            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
-                        }
-                    },
-                                                                                                                                                                                                                                        {
-                                title: '添加时间',
-                                dataIndex: 'createdTime'
-                            },
-                                                                                                                                                                                                    {
-                                title: '创建人',
-                                dataIndex: 'createdUserName'
-                            },
-                                                                                                                                                                                                    {
-                                title: '流程ID',
-                                dataIndex: 'flowId'
-                            },
-                                                                                                                                                        {
-                                title: '表单数据表ID',
-                                dataIndex: 'formDataId'
-                            },
-                                                                                                                                                        {
-                                title: '审批层级',
-                                dataIndex: 'nodeLevel'
-                            },
-                                                                                                                                                        {
-                                title: '审批层级节点顺序',
-                                dataIndex: 'nodeSort'
-                            },
-                                                                                                                                                        {
-                                title: '待办  已办  撤回  终止 等',
-                                dataIndex: 'status'
-                            },
-                                                                                                                                                        {
-                                title: '处理人ID',
-                                dataIndex: 'userId'
-                            },
-                                                                                                                                                        {
-                                title: '处理人',
-                                dataIndex: 'userName'
-                            },
-                                                                                                                                                        {
-                                title: '处理时间',
-                                dataIndex: 'handleTime'
-                            },
-                                                                                            {
-                        title: '操作',
-                        key: 'action',
-                        width: '200px',
-                        align: 'center',
-                        scopedSlots: { customRender: 'action' }
-                    }
-                ],
-                // 下拉框map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // 加载数据方法 必须为 Promise 对象
-                loadData: parameter => {
-                    parameter = {
-                        ...parameter,
-                        ...this.queryParam,
-                        dataScope: {
-                            sortBy: 'desc',
-                            sortName: 'update_time'
-                        }
-                    }
-                    return getWorkflowTaskPage(Object.assign(parameter, this.queryParam))
-                            .then(res => {
-                                return res.data
-                            })
-                },
-                selectedRowKeys: [],
-                selectedRows: [],
+        {
+          title: '添加时间',
+          dataIndex: 'createdTime',
+        },
+        {
+          title: '创建人',
+          dataIndex: 'createdUserName',
+        },
+        {
+          title: '流程ID',
+          dataIndex: 'flowId',
+        },
+        {
+          title: '表单数据表ID',
+          dataIndex: 'formDataId',
+        },
+        {
+          title: '审批层级',
+          dataIndex: 'nodeLevel',
+        },
+        {
+          title: '审批层级节点顺序',
+          dataIndex: 'nodeSort',
+        },
+        {
+          title: '待办  已办  撤回  终止 等',
+          dataIndex: 'status',
+        },
+        {
+          title: '处理人ID',
+          dataIndex: 'userId',
+        },
+        {
+          title: '处理人',
+          dataIndex: 'userName',
+        },
+        {
+          title: '处理时间',
+          dataIndex: 'handleTime',
+        },
+        {
+          title: '操作',
+          key: 'action',
+          width: '200px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' },
+        },
+      ],
+      // 下拉框map
+      // 加载数据方法 必须为 Promise 对象
+      loadData: (parameter) => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          dataScope: {
+            sortBy: 'desc',
+            sortName: 'update_time',
+          },
+        }
+        return getWorkflowTaskPage(Object.assign(parameter, this.queryParam)).then((res) => {
+          return res.data
+        })
+      },
+      selectedRowKeys: [],
+      selectedRows: [],
 
-                options: {
-                    alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
-                    rowSelection: {
-                        selectedRowKeys: this.selectedRowKeys,
-                        onChange: this.onSelectChange
-                    }
-                },
-                optionAlertShow: false
-            }
+      options: {
+        alert: {
+          show: true,
+          clear: () => {
+            this.selectedRowKeys = []
+          },
         },
-        created () {
-            // 下拉框map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            this.tableOption()
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: this.onSelectChange,
         },
-        methods: {
-            tableOption () {
-                if (!this.optionAlertShow) {
-                    this.options = {
-                        alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
-                        rowSelection: {
-                            selectedRowKeys: this.selectedRowKeys,
-                            onChange: this.onSelectChange,
-                            getCheckboxProps: record => ({
-                                props: {
-                                    disabled: false,
-                                    name: record.id
-                                }
-                            })
-                        }
-                    }
-                    this.optionAlertShow = true
-                } else {
-                    this.options = {
-                        alert: false,
-                        rowSelection: null
-                    }
-                    this.optionAlertShow = false
-                }
-            },
-            batchDelete (id) {
-                let ids = []
-                if (this.BaseTool.String.isBlank(id)) {
-                    const length = this.selectedRows.length
-                    if (length === 0) {
-                        this.$message.info('请选择要删除的记录')
-                                return
-                    }
-                    ids = this.selectedRows.map(item => item.id)
-                } else {
-                    ids = [id]
-                }
-                deleteWorkflowTasks(ids).then(res => {
-                    this.$message.info('删除成功')
-                    this.handleOk()
-                    this.$refs.table.clearSelected()
-                })
-            },
-            handleAdd () {
-                this.visible = false
-                const modal = this.$refs.baseModal
-                modal.base()
-            },
-            handleEdit (record) {
-                this.visible = false;
-                fetchWorkflowTask({ id: record.id }).then(res => {
-                    const modal = this.$refs.baseModal
-                    modal.base(res.data)
-                })
-            },
-            handleView (record) {
-                this.visible = false;
-                fetchWorkflowTask({ id: record.id }).then(res => {
-                    const modal = this.$refs.detailModal
-                    modal.base(res.data)
-                })
-            },
-            handleOk (values) {
-                this.visible = true
-                this.$refs.table.refresh()
-            },
-            onSelectChange (selectedRowKeys, selectedRows) {
-                this.selectedRowKeys = selectedRowKeys
-                this.selectedRows = selectedRows
-            },
-            resetSearchForm () {
-                this.queryParam = {
-                }
-                this.$refs.table.refresh(true)
-            },
-            doExport () {
-                const parameter = {
-                    ...this.queryParam
-                }
-                exportWorkflowTask(parameter).then(file => {
-                    this.BaseTool.Util.downLoadExportExcel(file)
-                })
-            },
-            handleEnter () {
-                this.$refs.table.refresh(true)
-            }
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
+      },
+      optionAlertShow: false,
     }
+  },
+  created() {
+    // 下拉框map
+    this.tableOption()
+  },
+  methods: {
+    tableOption() {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: {
+            show: true,
+            clear: () => {
+              this.selectedRowKeys = []
+            },
+          },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            getCheckboxProps: (record) => ({
+              props: {
+                disabled: false,
+                name: record.id,
+              },
+            }),
+          },
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null,
+        }
+        this.optionAlertShow = false
+      }
+    },
+    batchDelete(id) {
+      let ids = []
+      if (this.BaseTool.String.isBlank(id)) {
+        const length = this.selectedRows.length
+        if (length === 0) {
+          this.$message.info('请选择要删除的记录')
+          return
+        }
+        ids = this.selectedRows.map((item) => item.id)
+      } else {
+        ids = [id]
+      }
+      deleteWorkflowTasks(ids).then((res) => {
+        this.$message.info('删除成功')
+        this.handleOk()
+        this.$refs.table.clearSelected()
+      })
+    },
+    handleAdd() {
+      this.visible = false
+      const modal = this.$refs.baseModal
+      modal.base()
+    },
+    handleEdit(record) {
+      this.visible = false
+      fetchWorkflowTask({ id: record.id }).then((res) => {
+        const modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleView(record) {
+      this.visible = false
+      fetchWorkflowTask({ id: record.id }).then((res) => {
+        const modal = this.$refs.detailModal
+        modal.base(res.data)
+      })
+    },
+    handleOk(values) {
+      this.visible = true
+      this.$refs.table.refresh()
+    },
+    onSelectChange(selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm() {
+      this.queryParam = {}
+      this.$refs.table.refresh(true)
+    },
+    doExport() {
+      const parameter = {
+        ...this.queryParam,
+      }
+      exportWorkflowTask(parameter).then((file) => {
+        this.BaseTool.Util.downLoadExportExcel(file)
+      })
+    },
+    handleEnter() {
+      this.$refs.table.refresh(true)
+    },
+  },
+}
 </script>

+ 303 - 0
src/views/workplace/newWoekplace/Workplace.vue

@@ -0,0 +1,303 @@
+<template>
+  <div>
+    <div>
+      <div class="gutter-example">
+        <div style="display:flex;justify-content: space-between;align-items: center; padding-bottom:20px;">
+          <div style="display:flex; width:100px;height:17px;justify-content: space-between;align-items: center;">
+            <div style=" width: 17px;height: 17px;background: #3462FD;border-radius: 50%;"></div>
+            <div style="font-size: 18px;font-weight: 800;color: #333333;">快捷菜单</div>
+          </div>
+        </div>
+        <div class="manage">
+          <a-button type="link" @click="$refs.menusModal.base()">
+            管理
+          </a-button>
+        </div>
+        <a-row :gutter="[20,40]">
+          <a-col class="gutter-row" :span="3" v-for="item in commonMenus" :key="item.id" @click="handleClickMenu(item)">
+            <a-badge :count="item.waitDoNum">
+              <div class="gutter-box">
+                <div style="margin-bottom:5px;">
+                  <img :src="item.menuIconPath" alt="" width="80" height="80">
+                </div>
+                {{ item.menuName }}
+              </div>
+            </a-badge>
+          </a-col>
+        </a-row>
+      </div>
+      <div class="gutter-example">
+        <a-row :gutter="20">
+          <a-col class="gutter-row" :span="24">
+            <div class="information">
+              <div style="display:flex;justify-content: space-between;align-items: center; padding-bottom:20px;">
+                <div style="display:flex; width:100px;height:17px;justify-content: space-between;align-items: center;">
+                  <div style=" width: 17px;height: 17px;background: #3462FD;border-radius: 50%;"></div>
+                  <div style="font-size: 18px;font-weight: 800;color: #333333;">待办事项</div>
+                </div>
+              </div>
+              <a-tabs size="small" :tabBarGutter="10">
+                <a-tab-pane :key="item.name" :tab="item.name+'('+item.num+')'" v-for="item in model.noticeList">
+                  <ul class="notice">
+                    <li v-for="list in item.itemList" :key="list.id" @click="handleVerify(list,item.verifyTyp)">
+                      <div class="notice-info">
+                        <div>{{ list.name }}</div>
+                        <div class="time">
+                          {{ list.createdUserName }} {{ list.createdTime }}
+                        </div>
+                      </div>
+                    </li>
+                  </ul>
+                </a-tab-pane>
+              </a-tabs>
+            </div>
+          </a-col>
+        </a-row>
+      </div>
+    </div>
+    <MenusModal ref="menusModal" @ok="getCommonMenuMine" />
+  </div>
+</template>
+
+<script>
+import { STable } from '@/components'
+import { getWaitData } from '@/api/workplace/backlog'
+import MenusModal from './modules/MenusModal'
+
+export default {
+  name: 'NewWorkplaceBacklog',
+  components: {
+    STable,
+    MenusModal,
+  },
+  data() {
+    return {
+      visible: true,
+      commonMenus: [],
+      // 加载数据方法 必须为 Promise 对象
+      model: {
+        noticeList: [],
+      },
+    }
+  },
+  computed: {},
+  created() {
+    this.getData()
+    this.getCommonMenuMine()
+  },
+  methods: {
+    getData() {
+      getWaitData().then((res) => {
+        this.model = res.data
+      })
+    },
+    getCommonMenuMine() {
+      getCommonMenuMine().then((res) => {
+        this.commonMenus = res.data
+      })
+    },
+    handleVerify(record, type) {
+      switch (type) {
+        // 招标公告审批
+        case 1:
+          fetchVerifyArticle({ id: record.objId, verifyType: type }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.articleVerify
+            modal.base(res.data, 1)
+          })
+          break
+        // 项目发布审批
+        case 2:
+          fetchInquiry({ id: record.objId, verifyType: type }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.projectReleaseVerify
+            modal.base(res.data, record)
+          })
+          break
+        // 入库单审批
+        case 3:
+          fetchInquiryInStore({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.inStoreVerify
+            modal.base(res.data, record)
+          })
+          break
+        // 供应商入库审批
+        case 5:
+          fetchCompanyInfo({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.supplierInStore
+            modal.base(res.data)
+          })
+
+          break
+        // 招标项目供应商报名审批
+        case 6:
+          fetchSupplierApply({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.supplierApplyArticleVerify
+            modal.base(res.data, record)
+          })
+          break
+        // 订单审批
+        case 7:
+          getFeeOrderInfo({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.orderVerify
+            modal.base(res.data, record)
+          })
+          break
+        // 手动开标审批
+        case 8:
+          fetchInquiry({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.bidVerify
+            modal.base(res.data, record)
+          })
+          break
+        // 询价项目评审
+        case 9:
+          this.visible = false
+          record.type = 1
+          this.$refs.projectVerify.base(record)
+          break
+        // 招标项目评审
+        case 10:
+          this.visible = false
+          record.type = 2
+          this.$refs.projectVerify.base(record)
+          break
+        // 供应商考核
+        case 11:
+          this.visible = false
+          this.$refs.supplierVerify.base(record)
+          break
+        case 12:
+          fetchInquiry({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.failureVerify
+            modal.base(res.data, record)
+          })
+          break
+        case 13:
+          fetchInquiryInStore({ id: record.objId }).then((res) => {
+            this.visible = false
+            const modal = this.$refs.inStoreVerify
+            modal.base(res.data, record)
+          })
+          break
+      }
+    },
+    handleClickMenu(record) {
+      if (record.menuName !== '过程考核') {
+        this.$router.push(record.menuRouterUrl)
+      } else {
+        this.$router.push('/process/assess/bom')
+      }
+    },
+    handleOk() {
+      this.visible = true
+      this.getData()
+    },
+  },
+}
+</script>
+
+<style scoped lang="less">
+.gutter-example .ant-row > div {
+  background: transparent;
+  border: 0;
+  font-family: PingFang SC;
+}
+.gutter-example {
+  position: relative;
+
+  .manage {
+    position: absolute;
+    z-index: 22;
+    top: -7px;
+    right: 10px;
+  }
+}
+.gutter-box {
+  text-align: center;
+  color: #666;
+  font-size: 16px;
+  cursor: pointer;
+
+  .icon {
+    color: #fff;
+    margin: 0 auto;
+    background: linear-gradient(to right, #3066ec);
+    width: 80px;
+    height: 80px;
+    border-radius: 20px;
+    font-size: 30px;
+    line-height: 80px;
+  }
+}
+.btn {
+  height: 113px;
+  width: 100%;
+  color: #fff !important;
+  font-size: 28px;
+  border-radius: 20px;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+}
+.btn:hover {
+  cursor: pointer;
+}
+.information {
+  background: #fff;
+  padding: 30px 12px;
+  height: 600px;
+  color: #666;
+}
+.discolor {
+  background: #efeffb;
+}
+.demo-infinite-container {
+  overflow: auto;
+  height: 400px;
+}
+.notice {
+  font-size: 14px;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #999999;
+  height: 450px;
+  padding: 20px 50px;
+  overflow-y: auto;
+  .notice-info {
+    display: flex;
+    margin-bottom: 20px;
+    justify-content: space-between;
+    align-items: center;
+    list-style: disc;
+    cursor: pointer;
+    div:nth-child(1) {
+      padding-right: 20px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+    }
+    .time {
+      min-width: 138px;
+    }
+  }
+}
+/deep/ .ant-table-placeholder {
+  height: 360px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+}
+::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+  color: transparent;
+}
+</style>

+ 101 - 0
src/views/workplace/newWoekplace/modules/MenusModal.vue

@@ -0,0 +1,101 @@
+<template>
+  <a-drawer title="快捷菜单配置" placement="right" :closable="false" :visible="visible" :width="350" @close="onClose">
+    <a-row :gutter="10">
+      <a-col :span="6" v-for="item in mineList" :key="item.id">
+        <div class="box">
+          <a-icon class="edit red" type="minus-circle" theme="filled" @click="minus(item)" />
+          <div class="img">
+            <img :src="item.iconPath" alt="">
+          </div>
+          {{ item.name }}
+        </div>
+      </a-col>
+    </a-row>
+    <a-divider />
+    <a-row :gutter="10">
+      <a-col :span="6" v-for="item in list" :key="item.id">
+        <div class="box">
+          <a-icon class="edit" type="plus-circle" theme="filled" @click="add(item)" />
+          <div class="img">
+            <img :src="item.iconPath" alt="">
+          </div>
+          {{ item.name }}
+        </div>
+      </a-col>
+    </a-row>
+  </a-drawer>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      visible: false,
+      placement: 'left',
+      mineList: [],
+      list: [],
+    }
+  },
+  methods: {
+    base() {
+      console.log(22)
+      this.visible = true
+      this.getData()
+    },
+    getData() {
+      const list = []
+      const mineList = []
+      getCommonMenuMineChoosePage({ pageSize: 100 }).then((res) => {
+        res.data.rows.forEach((item) => {
+          item.mineStatus ? list.push(item) : mineList.push(item)
+        })
+        this.list = list
+        this.mineList = mineList
+      })
+    },
+    add(record) {
+      addCommonMenuMine({ commonMenuId: record.id }).then((res) => {
+        this.getData()
+      })
+    },
+    minus(record) {
+      updateCommonMenuMine({ id: record.mineId, status: 1 }).then((res) => {
+        this.getData()
+      })
+    },
+    onClose() {
+      this.visible = false
+      this.$emit('ok')
+    },
+  },
+}
+</script>
+
+<style lang="less" scoped>
+.box {
+  text-align: center;
+  font-size: 12px;
+  background: #fff;
+  position: relative;
+  // border: 1px solid #ccc;
+  padding: 5px;
+  border-radius: 10px;
+  .edit {
+    position: absolute;
+    color: #1890ff;
+    font-size: 14px;
+    top: -5px;
+    right: -5px;
+    cursor: pointer;
+  }
+  .red {
+    color: #ff4d4f;
+  }
+  .img {
+    img {
+      width: 50px;
+      height: 50px;
+    }
+  }
+}
+</style>

+ 246 - 0
src/views/workplace/publish/WaitPublish.vue

@@ -0,0 +1,246 @@
+<template>
+  <a-card :bordered="false">
+    <div v-show="visible">
+      <div class="table-page-search-wrapper" @keyup.enter="handleEnter">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="6" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6 || 24" :sm="24" style="text-align: right">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+                <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+
+      <div class="table-operator" style="margin-bottom: 8px;">
+        <a-row>
+          <a-col :md="16">
+            <a-button type="primary" icon="plus" @click="handleAdd()">新增</a-button>
+            <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0">
+              <a-menu slot="overlay">
+                <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
+                  <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
+                </a-popconfirm>
+              </a-menu>
+              <a-button style="margin-left: 8px">
+                批量操作 <a-icon type="down" />
+              </a-button>
+            </a-dropdown>
+          </a-col>
+        </a-row>
+      </div>
+
+      <s-table ref="table" size="default" rowKey="id" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto">
+        <span slot="action" slot-scope="record">
+          <template>
+            <a @click="handleView(record)">查看</a>
+            <operation-button @click="handleEdit(record)">修改</operation-button>
+            <operation-button :type="2" title="是否要删除该条数据?" @confirm="batchDelete(record.id)">删除</operation-button>
+          </template>
+        </span>
+      </s-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import { getWorplacePublishPage } from '@/api/workflow/publish'
+
+export default {
+  name: 'WorkflowTaskList',
+  components: {
+    STable,
+    Ellipsis,
+  },
+  props: {
+    searchType: {
+      type: [Number, null],
+      default: 1,
+    },
+    personalType: {
+      type: [Number, null],
+      default: 1,
+    },
+    status: {
+      type: [Number, null],
+      default: null,
+    },
+  },
+  data() {
+    return {
+      advanced: false,
+      visible: true,
+      // 查询参数
+      queryParam: {},
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return `${
+              (this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1
+            }`
+          },
+        },
+        {
+          title: '标题',
+          dataIndex: 'taskName',
+        },
+        {
+          title: '创建时间',
+          dataIndex: 'taskCreatedTime',
+        },
+        {
+          title: '状态',
+          dataIndex: 'taskStatus',
+        },
+        {
+          title: '操作',
+          key: 'action',
+          width: '200px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' },
+        },
+      ],
+      // 下拉框map
+      // 加载数据方法 必须为 Promise 对象
+      loadData: (parameter) => {
+        parameter = {
+          searchType: this.searchType,
+          personalType: this.personalType,
+          status: this.status,
+          ...parameter,
+          ...this.queryParam,
+          dataScope: {
+            sortBy: 'desc',
+            sortName: 'update_time',
+          },
+        }
+        return getWorplacePublishPage(Object.assign(parameter, this.queryParam)).then((res) => {
+          return res.data
+        })
+      },
+      selectedRowKeys: [],
+      selectedRows: [],
+
+      options: {
+        alert: {
+          show: true,
+          clear: () => {
+            this.selectedRowKeys = []
+          },
+        },
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: this.onSelectChange,
+        },
+      },
+      optionAlertShow: false,
+    }
+  },
+  created() {
+    // 下拉框map
+    this.tableOption()
+  },
+  methods: {
+    tableOption() {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: {
+            show: true,
+            clear: () => {
+              this.selectedRowKeys = []
+            },
+          },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            getCheckboxProps: (record) => ({
+              props: {
+                disabled: false,
+                name: record.id,
+              },
+            }),
+          },
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null,
+        }
+        this.optionAlertShow = false
+      }
+    },
+    batchDelete(id) {
+      let ids = []
+      if (this.BaseTool.String.isBlank(id)) {
+        const length = this.selectedRows.length
+        if (length === 0) {
+          this.$message.info('请选择要删除的记录')
+          return
+        }
+        ids = this.selectedRows.map((item) => item.id)
+      } else {
+        ids = [id]
+      }
+      deleteWorkflowTasks(ids).then((res) => {
+        this.$message.info('删除成功')
+        this.handleOk()
+        this.$refs.table.clearSelected()
+      })
+    },
+    handleAdd() {
+      this.visible = false
+      const modal = this.$refs.baseModal
+      modal.base()
+    },
+    handleEdit(record) {
+      this.visible = false
+      fetchWorkflowTask({ id: record.id }).then((res) => {
+        const modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleView(record) {
+      this.visible = false
+      fetchWorkflowTask({ id: record.id }).then((res) => {
+        const modal = this.$refs.detailModal
+        modal.base(res.data)
+      })
+    },
+    handleOk(values) {
+      this.visible = true
+      this.$refs.table.refresh()
+    },
+    onSelectChange(selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm() {
+      this.queryParam = {}
+      this.$refs.table.refresh(true)
+    },
+    doExport() {
+      const parameter = {
+        ...this.queryParam,
+      }
+      exportWorkflowTask(parameter).then((file) => {
+        this.BaseTool.Util.downLoadExportExcel(file)
+      })
+    },
+    handleEnter() {
+      this.$refs.table.refresh(true)
+    },
+  },
+}
+</script>