From 79420fccf055d3b5a89eaa16d40d815c66e3f6c1 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 10 八月 2025 14:49:05 +0800
Subject: [PATCH] 添加待办已办

---
 src/views/flow/donelist.vue  |  204 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/flow/todoindex.vue |    6 +
 2 files changed, 208 insertions(+), 2 deletions(-)

diff --git a/src/views/flow/donelist.vue b/src/views/flow/donelist.vue
new file mode 100644
index 0000000..0cb4854
--- /dev/null
+++ b/src/views/flow/donelist.vue
@@ -0,0 +1,204 @@
+<!--
+ * @Date: 2025-08-10 14:23:00
+ * @LastEditors: gaoshp
+ * @LastEditTime: 2025-08-10 14:48:40
+ * @FilePath: /mdmweb/src/views/flow/donelist.vue
+-->
+<template>
+    <basic-container>
+        <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
+            @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
+            @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" >
+        </avue-crud>
+    </basic-container>
+</template>
+<script>
+import { getList} from '@/api/flow/todolist';
+import { mapGetters } from 'vuex';
+export default {
+    data() {
+        return {
+            loading: false,
+            option: {
+                addBtn: false,
+                editBtn: false,
+                delBtn: false,
+                columnBtn: false,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                dialogWidth: '60%',
+                border: true,
+                index: true,
+                selection: false,
+                // viewBtn: true,
+                menuWidth: 100,
+                column: [
+                    {
+                        label: '鍏抽敭瀛�',
+                        prop: 'keyword',
+                        width: 300,
+                        search: true,
+                        searchType: 'input',
+                        hide: true,
+                        dicData: [
+                            {
+                                label: '娑夊瘑缃戠▼搴�',
+                                value: 1,
+                            },
+                            {
+                                label: '宸ユ帶缃戣溅搴婄▼搴�',
+                                value: 2,
+                            },
+                        ],
+                    },
+					{
+                        label: '鏍囬',
+                        prop: '',
+                        width: 100,
+						render: ({ row }) => {
+                            return h('p',
+                                {
+                                    attrs: {},
+                                    class: {},
+                                    style: {},
+                                }, row?.variables?.title)
+                        }
+                    },
+                    {
+                        label: '娴佺▼鍚嶇О',
+                        prop: 'processDefinitionName',
+                        width: 100,
+                    },/*
+                    {
+                        label: '娴佺▼绫诲瀷',
+                        width: 100,
+                        prop: 'categoryName',
+                    },*/
+
+                    {
+                        label: '鏈哄簥',
+                        width: 100,
+                        prop: '',
+                        formatter: (val, value, label) => {
+                            return `${val?.variables?.machineCode}`;
+                        },
+                    },
+                    {
+                        label: '鍒涘缓浜�',
+                        width: 100,
+                        prop: 'startUserName',
+                    },
+                    {
+                        label: '鍒涘缓鏃堕棿',
+                        width: 200,
+                        prop: 'processCreateTime',
+                        type: 'datetime',
+                        format: 'YYYY-MM-DD HH:mm:ss',
+                        valueFormat: 'YYYY-MM-DD HH:mm:ss',
+                        search: true,
+                        searchRange: true,
+                        searchSpan: 8,
+                        // hide: true,
+                    },
+                    {
+                        label: '涓婁竴姝ョ敤鎴�',
+                        width: 200,
+                        prop: '',
+                        formatter: (val, value, label) => {
+                            return `${val?.variables?.approveUserNickName || ''}`;
+                        },
+                    },
+                    {
+                        label: '褰撳墠鑺傜偣',
+                        width: 200,
+                        prop: 'taskName',
+                    },
+                    {
+                        label: '鏂囦欢',
+                        width: 200,
+                        prop: 'file',
+                    },
+                    {
+                        label: '鍒拌揪鏃堕棿',
+                        width: 200,
+                        prop: 'createTime',
+                    },
+                    {
+                        label: '鍒拌揪鎻忚堪',
+                        width: 200,
+                        prop: 'comment',
+                    },
+
+                ],
+            },
+            page: {
+                page: 1,
+                size: 10,
+                total: 0,
+            },
+            form: {},
+            data: [],
+        }
+    },
+    methods: {
+        currentChange(currentPage) {
+            this.page.currentPage = currentPage;
+        },
+        searchChange(params, done) {
+            let data = {}
+            this.query = params;
+            this.page.currentPage = 1;
+            console.log('searchChange', params);
+            params.createTimeBegin = params?.processCreateTime?.[0] || '';
+            params.createTimeEnd = params?.processCreateTime?.[1] || '';
+            console.log(params);
+            // data = {
+            //     createTimeBegin: dayjs(params.createTimeBegin).isValid() ? dayjs(params.createTimeBegin).format('YYYY-MM-DD') : '',
+            //     createTimeEnd: dayjs(params.createTimeEnd).isValid() ? dayjs(params.createTimeEnd).format('YYYY-MM-DD') : '',
+            //     keyword: params.keyword || ''
+            // }
+            data = {
+                createTimeBegin: params.createTimeBegin,
+                createTimeEnd: params.createTimeEnd,
+                keyword: params.keyword || ''
+            }
+            this.query = data
+            this.onLoad(this.page, data);
+            done();
+        },
+        searchReset () {
+            this.loading = true;
+            this.form = {};
+            this.getList();         
+        },
+        sizeChange() {
+            this.loading = true;
+        this.getList(); 
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.query);
+        },
+        onLoad(page, params = {}) {
+            const query = {
+                ...this.query,
+                // category: params.category ? flowCategory(params.category) : null,
+            };
+            try {
+                delete query.processCreateTime; // 鍒犻櫎涓嶅繀瑕佺殑鏌ヨ鏉′欢
+            } catch (error) {
+                console.error('鏃ユ湡鏍煎紡鍖栭敊璇�', error);
+            }
+
+            this.loading = true;
+            getList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => {
+                const data = res.data.data;
+                this.page.total = data.total;
+                this.data = data.records;
+                this.loading = false;
+            });
+        },
+        
+    }
+}
+</script>
diff --git a/src/views/flow/todoindex.vue b/src/views/flow/todoindex.vue
index 3318da0..a128ca8 100644
--- a/src/views/flow/todoindex.vue
+++ b/src/views/flow/todoindex.vue
@@ -1,7 +1,7 @@
 <!--
  * @Date: 2025-08-10 14:14:58
  * @LastEditors: gaoshp
- * @LastEditTime: 2025-08-10 14:18:38
+ * @LastEditTime: 2025-08-10 14:32:11
  * @FilePath: /mdmweb/src/views/flow/todoindex.vue
 -->
 <template>
@@ -15,16 +15,18 @@
                 <todolist></todolist>
             </el-tab-pane>
             <el-tab-pane label="宸插姙" name="done">
-
+                <donelist> </donelist>
             </el-tab-pane>
         </el-tabs>
     </basic-container>
 </template>
 <script>
 import todolist from './todolist.vue';
+import donelist from './donelist.vue';
 export default {
     components: {
         todolist,
+        donelist
     },
     data() {
         return {

--
Gitblit v1.9.3