|
@@ -0,0 +1,124 @@
|
|
|
+<template>
|
|
|
+ <div class="message-reminder flex flex-col h-full">
|
|
|
+ <SearchForm :fields="fields" :params="params">
|
|
|
+ <template #service="{ item, params }">
|
|
|
+ <select-service-unit
|
|
|
+ v-model="params[item.prop]"
|
|
|
+ clearable
|
|
|
+ ></select-service-unit>
|
|
|
+ </template>
|
|
|
+ </SearchForm>
|
|
|
+ <div class="page-wrap flex-1">
|
|
|
+ <t-tabs
|
|
|
+ v-model="params.flowTaskTypeEnum"
|
|
|
+ class="h-full"
|
|
|
+ @change="tabChange"
|
|
|
+ v-loading="loading"
|
|
|
+ >
|
|
|
+ <t-tab-panel value="ALL" label="全部">
|
|
|
+ <TaskList
|
|
|
+ :loading="loading"
|
|
|
+ :tableData="tableData"
|
|
|
+ :pagination="pagination"
|
|
|
+ :onChange="onChange"
|
|
|
+ ></TaskList>
|
|
|
+ </t-tab-panel>
|
|
|
+ <t-tab-panel value="OVER_TIME" label="已超时">
|
|
|
+ <TaskList
|
|
|
+ :loading="loading"
|
|
|
+ :tableData="tableData"
|
|
|
+ :pagination="pagination"
|
|
|
+ :onChange="onChange"
|
|
|
+ ></TaskList>
|
|
|
+ </t-tab-panel>
|
|
|
+ <t-tab-panel value="DRAFT" label="暂存">
|
|
|
+ <TaskList
|
|
|
+ :loading="loading"
|
|
|
+ :tableData="tableData"
|
|
|
+ :pagination="pagination"
|
|
|
+ :onChange="onChange"
|
|
|
+ ></TaskList>
|
|
|
+ </t-tab-panel>
|
|
|
+ </t-tabs>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup name="MyTasks">
|
|
|
+import { reactive, computed, ref } from 'vue';
|
|
|
+import useFetchTable from '@/hooks/useFetchTable';
|
|
|
+import { getMyWaits } from '@/api/my-workbenches';
|
|
|
+import { WAIT_HANDLE_TYPE } from '@/config/constants';
|
|
|
+import { dictToOptionList } from '@/utils/tool';
|
|
|
+import TaskList from './waits-list.vue';
|
|
|
+const params = reactive({
|
|
|
+ types: '',
|
|
|
+ serviceId: '',
|
|
|
+ customName: '',
|
|
|
+ flowTaskTypeEnum: 'ALL',
|
|
|
+});
|
|
|
+
|
|
|
+const {
|
|
|
+ loading: loading,
|
|
|
+ pagination: pagination,
|
|
|
+ tableData: tableData,
|
|
|
+ onChange: onChange,
|
|
|
+ search: search,
|
|
|
+} = useFetchTable(getMyWaits, {
|
|
|
+ params: params,
|
|
|
+});
|
|
|
+const tabChange = () => {
|
|
|
+ search();
|
|
|
+};
|
|
|
+const fields = ref([
|
|
|
+ {
|
|
|
+ prop: 'types',
|
|
|
+ label: '待办类型',
|
|
|
+ type: 'multipleSelect',
|
|
|
+ labelWidth: 100,
|
|
|
+ colSpan: 5,
|
|
|
+ options: dictToOptionList(WAIT_HANDLE_TYPE),
|
|
|
+ attrs: {
|
|
|
+ clearable: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'serviceId',
|
|
|
+ label: '服务单元',
|
|
|
+ type: 'select',
|
|
|
+ labelWidth: 100,
|
|
|
+ colSpan: 5,
|
|
|
+ cell: 'service',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'custom',
|
|
|
+ label: '客户名称',
|
|
|
+ labelWidth: 100,
|
|
|
+ colSpan: 5,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'buttons',
|
|
|
+ colSpan: 3,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ type: 'button',
|
|
|
+ text: '查询',
|
|
|
+ onClick: () => {
|
|
|
+ search();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+]);
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.message-reminder {
|
|
|
+ .page-wrap {
|
|
|
+ :deep(.t-tabs__content) {
|
|
|
+ height: calc(100% - var(--td-comp-size-xxl));
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|