whj 11 mesi fa
parent
commit
326bdf3712

+ 2 - 0
src/router/generator-platform-routers.js

@@ -461,6 +461,8 @@ const constantRouterComponents = {
   'WaitPublish': () => import('@/views/workplace/publish/WaitPublish'), 
   'WaitWork': () => import('@/views/workplace/publish/WaitWork'), 
   'Executed': () => import('@/views/workplace/publish/Executed'), 
+  'MyPublish': () => import('@/views/workplace/publish/MyPublish'), 
+  //
   'CommonMenu': () => import('@/views/common/menu/CommonMenu'), // 常用菜单库
 }
 

+ 284 - 0
src/views/workplace/publish/MyPublish.vue

@@ -0,0 +1,284 @@
+<template>
+  <a-card :bordered="false">
+    <a-drawer title="筛选" placement="top" :closable="false" :visible="filterVisible" @close="filterVisible=false">
+      <div class="table-page-search-wrapper" @keyup.enter="handleEnter">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="8" :sm="24">
+              <a-form-item label="关键字">
+                <a-input v-model.trim="queryParam.taskName" placeholder="请输入标题" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="任务创建时间">
+                <a-range-picker style="width:100%" showTime :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN" v-model="createdTime" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="任务发起时间">
+                <a-range-picker style="width:100%" PICKER_NORM_DATE_PATTERN :format="BaseTool.Date.PICKER_NORM_DATETIME_PATTERN" v-model="applyTime" />
+              </a-form-item>
+            </a-col>
+
+            <a-col :md="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>
+    </a-drawer>
+    <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.trim="queryParam.taskName" placeholder="请输入标题" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="6 || 24" :sm="24">
+              <span class="table-page-search-submitButtons">
+                <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+                <a-button type="primary" style="margin-left: 8px" @click="filterVisible=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" :scroll="{x: 1300, y: BaseTool.Constant.scrollY }" 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="handleSend(record.id)">发送</operation-button>
+          </template>
+        </span>
+      </s-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import { getWorplacePublishPage, sendWorkflow } from '@/api/workflow/publish'
+
+export default {
+  name: 'WorkflowTaskList',
+  components: {
+    STable,
+    Ellipsis,
+  },
+  props: {},
+  data() {
+    return {
+      advanced: false,
+      filterVisible: false,
+      visible: true,
+      // 查询参数
+      queryParam: {},
+      createdTime: [],
+      applyTime: [],
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          checked: true,
+          width: 80,
+          customRender: (text, record, index) => {
+            return `${
+              (this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1
+            }`
+          },
+        },
+        {
+          title: '标题',
+          checked: true,
+          width: 200,
+          dataIndex: 'taskName',
+        },
+        {
+          title: '发起时间',
+          checked: true,
+          width: 140,
+          dataIndex: 'applyTime',
+        },
+        {
+          title: '上一处理人',
+          checked: true,
+          width: 140,
+          dataIndex: 'lastUserName',
+        },
+        {
+          title: '处理时间',
+          dataIndex: 'handleTime',
+          checked: true,
+          width: 140,
+        },
+        {
+          title: '当前处理人',
+          checked: true,
+          width: 140,
+          dataIndex: 'currentUserName',
+        },
+        {
+          title: '操作',
+          key: 'action',
+          width: '200px',
+          checked: true,
+          align: 'center',
+          scopedSlots: { customRender: 'action' },
+        },
+      ],
+      // 下拉框map
+      // 加载数据方法 必须为 Promise 对象
+      loadData: (parameter) => {
+        parameter = {
+          searchType: 2,
+          ...parameter,
+          ...this.queryParam,
+          dataScope: {
+            sortBy: 'desc',
+            sortName: 'task.created_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,
+      statusMap: {},
+    }
+  },
+  watch: {
+    createdTime(newVal) {
+      ;[this.queryParam.taskCreatedTimeStart, this.queryParam.taskCreatedTimeEnd] = newVal.map((item) => {
+        return this.BaseTool.Date.formatter(item, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      })
+    },
+    applyTime(newVal) {
+      ;[this.queryParam.applyTimeStart, this.queryParam.applyTimeEnd] = newVal.map((item) => {
+        return this.BaseTool.Date.formatter(item, this.BaseTool.Date.PICKER_NORM_DATETIME_PATTERN)
+      })
+    },
+  },
+  created() {
+    // 下拉框map
+    this.tableOption()
+    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.FLOW_TASK_STATUS)
+  },
+  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() {},
+    handleEdit(record) {},
+    handleView(record) {},
+    handleSend(id) {
+      sendWorkflow({ id }).then((res) => {
+        this.$message.info('发送成功')
+        this.$refs.table.refresh()
+      })
+    },
+    handleOk(values) {
+      this.visible = true
+      this.$refs.table.refresh()
+    },
+    onSelectChange(selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm() {
+      this.queryParam = {}
+      this.createdTime = []
+      this.applyTime = []
+      this.$refs.table.refresh(true)
+    },
+    handleEnter() {
+      this.$refs.table.refresh(true)
+    },
+  },
+}
+</script>