From 2a078298589f4e783e1018f7a7caf9cd49c10cf2 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 13 八月 2025 14:34:26 +0800 Subject: [PATCH] 公出管理/请假/出差/报销 --- src/views/collaborativeApproval/approvalProcess/index.vue | 73 +++++++++++++++++++++++++++++------- 1 files changed, 59 insertions(+), 14 deletions(-) diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue index ab98ab8..c3b713e 100644 --- a/src/views/collaborativeApproval/approvalProcess/index.vue +++ b/src/views/collaborativeApproval/approvalProcess/index.vue @@ -2,15 +2,23 @@ <div class="app-container"> <div class="search_form"> <div> - <span class="search_title">渚涘簲鍟嗭細</span> + <span class="search_title">娴佺▼缂栧彿锛�</span> <el-input - v-model="searchForm.supplier" + v-model="searchForm.approveId" style="width: 240px" - placeholder="璇疯緭鍏ヤ緵搴斿晢鎼滅储" + placeholder="璇疯緭鍏ユ祦绋嬬紪鍙锋悳绱�" @change="handleQuery" clearable :prefix-icon="Search" /> + <span class="search_title ml10">瀹℃壒鐘舵�侊細</span> + <el-select v-model="searchForm.approveStatus" clearable @change="handleQuery" style="width: 240px"> + <el-option label="寰呭鏍�" :value="0" /> + <el-option label="瀹℃牳涓�" :value="1" /> + <el-option label="瀹℃牳瀹屾垚" :value="2" /> + <el-option label="瀹℃牳鏈�氳繃" :value="3" /> + <el-option label="宸查噸鏂版彁浜�" :value="4" /> + </el-select> <el-button type="primary" @click="handleQuery" style="margin-left: 10px" >鎼滅储</el-button > @@ -34,23 +42,37 @@ :total="page.total" ></PIMTable> </div> - <info-form-dia ref="infoFormDia" @close="handleQuery"></info-form-dia> + <info-form-dia ref="infoFormDia" @close="handleQuery" :approveType="approveType"></info-form-dia> <approval-dia ref="approvalDia" @close="handleQuery"></approval-dia> + <FileList ref="fileListRef" /> </div> </template> <script setup> +import FileList from "./fileList.vue"; import { Search } from "@element-plus/icons-vue"; import {onMounted, ref} from "vue"; import {ElMessageBox} from "element-plus"; -import {qualityInspectDel, qualityInspectListPage} from "@/api/qualityManagement/rawMaterialInspection.js"; import InfoFormDia from "@/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue"; import ApprovalDia from "@/views/collaborativeApproval/approvalProcess/components/approvalDia.vue"; -import {approveProcessDelete, approveProcessListPage} from "../../../api/collaborativeApproval/approvalProcess.js"; +import {approveProcessDelete, approveProcessListPage} from "@/api/collaborativeApproval/approvalProcess.js"; +import useUserStore from "@/store/modules/user"; + +// 瀹氫箟缁勪欢鎺ユ敹鐨刾rops +const props = defineProps({ + approveType: { + type: [Number, String], + default: 0 + } +}); + +const userStore = useUserStore(); + const data = reactive({ searchForm: { - supplier: "", + approveId: "", + approveStatus: "", }, }); const { searchForm } = toRefs(data); @@ -59,6 +81,7 @@ label: "瀹℃壒鐘舵��", prop: "approveStatus", dataType: "tag", + width: 100, formatData: (params) => { if (params == 0) { return "寰呭鏍�"; @@ -66,6 +89,8 @@ return "瀹℃牳涓�"; } else if (params == 2) { return "瀹℃牳瀹屾垚"; + } else if (params == 4) { + return "宸查噸鏂版彁浜�"; } else { return '涓嶉�氳繃'; } @@ -75,8 +100,10 @@ return "warning"; } else if (params == 1) { return "primary"; - } else if (params == 2) { + } else if (params == 2) { return "success"; + } else if (params == 4) { + return ""; } else { return 'danger'; } @@ -85,23 +112,27 @@ { label: "娴佺▼缂栧彿", prop: "approveId", - width: 230 + width: 170 }, { label: "鐢宠閮ㄩ棬", prop: "approveDeptName", + width: 220 }, { label: "瀹℃壒浜嬬敱", prop: "approveReason", + width: 200 }, { label: "鐢宠浜�", - prop: "approveUser", + prop: "approveUserName", + width: 120 }, { label: "鐢宠鏃ユ湡", prop: "approveTime", + width: 200 }, { label: "缁撴潫鏃ユ湡", @@ -110,7 +141,7 @@ }, { label: "褰撳墠瀹℃壒浜�", - prop: "checkCompany", + prop: "approveUserCurrentName", width: 120 }, { @@ -118,7 +149,7 @@ label: "鎿嶄綔", align: "center", fixed: "right", - width: 150, + width: 230, operation: [ { name: "缂栬緫", @@ -126,6 +157,7 @@ clickFun: (row) => { openForm("edit", row); }, + disabled: (row) => row.approveStatus == 2 || row.approveStatus == 1 || row.approveStatus == 4 }, { name: "瀹℃牳", @@ -133,12 +165,20 @@ clickFun: (row) => { openApprovalDia("approval", row); }, + disabled: (row) => row.approveUserCurrentId == null || row.approveStatus == 2 || row.approveStatus == 3 || row.approveStatus == 4 || row.approveUserCurrentId !== userStore.id }, { name: "璇︽儏", type: "text", clickFun: (row) => { openApprovalDia('view', row); + }, + }, + { + name: "闄勪欢", + type: "text", + clickFun: (row) => { + downLoadFile(row); }, }, ], @@ -162,6 +202,11 @@ page.current = 1; getList(); }; +const fileListRef = ref(null) +const downLoadFile = (row) => { + fileListRef.value.open(row.commonFileList) + +} const pagination = (obj) => { page.current = obj.page; page.size = obj.limit; @@ -169,7 +214,7 @@ }; const getList = () => { tableLoading.value = true; - approveProcessListPage({...page, ...searchForm.value,}).then(res => { + approveProcessListPage({...page, ...searchForm.value,approveType:props.approveType}).then(res => { tableLoading.value = false; tableData.value = res.data.records page.total = res.data.total; @@ -199,7 +244,7 @@ const handleDelete = () => { let ids = []; if (selectedRows.value.length > 0) { - ids = selectedRows.value.map((item) => item.id); + ids = selectedRows.value.map((item) => item.approveId); } else { proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁"); return; -- Gitblit v1.9.3