From 7d07eee93def69bffbe35b02c830b0b03fa07458 Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期日, 10 八月 2025 15:01:33 +0800
Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/mdmweb

---
 src/views/flow/components/TodolistRightTop.vue |   38 ++++---
 src/views/flow/donelist.vue                    |  204 ++++++++++++++++++++++++++++++++++++++++
 src/views/flow/todoindex.vue                   |   42 ++++++++
 3 files changed, 267 insertions(+), 17 deletions(-)

diff --git a/src/views/flow/components/TodolistRightTop.vue b/src/views/flow/components/TodolistRightTop.vue
index 0acc71c..3c697a8 100644
--- a/src/views/flow/components/TodolistRightTop.vue
+++ b/src/views/flow/components/TodolistRightTop.vue
@@ -1,59 +1,62 @@
 <!--
  * @Date: 2025-07-01 20:45:15
  * @LastEditors: gaoshp
- * @LastEditTime: 2025-08-02 21:54:27
+ * @LastEditTime: 2025-08-10 14:12:27
  * @FilePath: /mdmweb/src/views/flow/components/TodolistRightTop.vue
 -->
 <template>
     <basic-container>
     <el-form :inline="true" :model="formInline" class="demo-form-inline" label-width="120px" disabled>
+        <el-form-item label="鏍囬">
+            <el-input v-model="formInline.title" placeholder="" style="width: 200px"></el-input>
+        </el-form-item>
         <el-form-item label="浠诲姟鍚嶇О">
-            <el-input v-model="formInline.processDefinitionName" placeholder=""></el-input>
+            <el-input v-model="formInline.processDefinitionName" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="鍒涘缓浜�">
-            <el-input v-model="formInline.startUserName" placeholder=""></el-input>
+            <el-input v-model="formInline.startUserName" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="鍥惧彿鐗堟">
-            <el-input v-model="formInline.drawingNoEdition" placeholder=""></el-input>
+            <el-input v-model="formInline.drawingNoEdition" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="宸ヨ壓鐗堟">
-            <el-input v-model="formInline.craftEdition" placeholder=""></el-input>
+            <el-input v-model="formInline.craftEdition" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="浠诲姟杞﹂棿">
-            <el-input v-model="formInline.workshop" placeholder=""></el-input>
+            <el-input v-model="formInline.workshop" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="浜у搧鍨嬪彿">
-            <el-input v-model="formInline.productModel" placeholder=""></el-input>
+            <el-input v-model="formInline.productModel" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="宸ュ簭鍙�">
-            <el-input v-model="formInline.processNo" placeholder=""></el-input>
+            <el-input v-model="formInline.processNo" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="宸ュ簭鍚嶇О">
-            <el-input v-model="formInline.processName" placeholder=""></el-input>
+            <el-input v-model="formInline.processName" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
 		<el-form-item label="宸ュ簭鐗堟">
-            <el-input v-model="formInline.processEdition" placeholder=""></el-input>
+            <el-input v-model="formInline.processEdition" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="闆剁粍浠跺彿">
-            <el-input v-model="formInline.drawingNo" placeholder=""></el-input>
+            <el-input v-model="formInline.drawingNo" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="鍔犲伐鏈哄簥">
-            <el-input v-model="formInline.machineCode" placeholder=""></el-input>
+            <el-input v-model="formInline.machineCode" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="杩囩▼鍗″彿">
-            <el-input v-model="formInline.empty" placeholder=""></el-input>
+            <el-input v-model="formInline.empty" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="鍒涘缓鏃堕棿">
-            <el-input v-model="formInline.createTime" placeholder=""></el-input>
+            <el-input v-model="formInline.createTime" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="璁″垝鍔犲伐鏃堕棿">
-            <el-input v-model="formInline.planStartTime" placeholder=""></el-input>
+            <el-input v-model="formInline.planStartTime" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="绋嬪簭鍖呭悕">
-            <el-input v-model="formInline.programPackageName" placeholder=""></el-input>
+            <el-input v-model="formInline.programPackageName" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
         <el-form-item label="褰撳墠鑺傜偣">
-            <el-input v-model="formInline.taskName" placeholder=""></el-input>
+            <el-input v-model="formInline.taskName" placeholder="" style="width: 200px"></el-input>
         </el-form-item>
     </el-form>
     </basic-container>
@@ -75,6 +78,7 @@
         // Initialize formInline with row data
         this.formInline = {
             ...this.row,
+            title: this.row.variables.title || '',
             processDefinitionName: this.row.processDefinitionName || '',
             taskName: this.row.taskName || '',
             createTime: this.row.createTime || '',
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
new file mode 100644
index 0000000..a128ca8
--- /dev/null
+++ b/src/views/flow/todoindex.vue
@@ -0,0 +1,42 @@
+<!--
+ * @Date: 2025-08-10 14:14:58
+ * @LastEditors: gaoshp
+ * @LastEditTime: 2025-08-10 14:32:11
+ * @FilePath: /mdmweb/src/views/flow/todoindex.vue
+-->
+<template>
+    <basic-container>
+        <el-tabs
+            v-model="activeName"
+            type="card"
+            class="demo-tabs"
+        >
+            <el-tab-pane label="寰呭姙" name="todo">
+                <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 {
+            activeName: 'todo',
+        };
+    },
+    methods: {
+        handleTabClick(tab, event) {
+            console.log(tab, event);
+        },
+    },
+}
+</script>
\ No newline at end of file

--
Gitblit v1.9.3