From 75a462f8ee30491f05d29ccac1b65d31e835957b Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 20 八月 2025 15:57:14 +0800 Subject: [PATCH] 档案管理调整 --- src/views/inventoryManagement/index.vue | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 309 insertions(+), 0 deletions(-) diff --git a/src/views/inventoryManagement/index.vue b/src/views/inventoryManagement/index.vue new file mode 100644 index 0000000..5e97bcb --- /dev/null +++ b/src/views/inventoryManagement/index.vue @@ -0,0 +1,309 @@ +<template> + <div class="app-container"> + <div class="search_form"> + <div> + <span class="search_title">鍙戞斁瀛e害锛�</span> + <el-select + style="width: 200px;" + @change="handleQuery" + v-model="searchForm.season" + placeholder="璇烽�夋嫨" + :clearable="false" + > + <el-option :label="item.label" :value="item.value" v-for="(item,index) in jidu" :key="item.value" /> + </el-select> + <span class="search_title ml10">鍛樺伐鍚嶇О锛�</span> + <el-input + v-model="searchForm.staffName" + style="width: 240px" + placeholder="璇疯緭鍏�" + @change="handleQuery" + clearable + prefix-icon="Search" + /> + <el-button type="primary" @click="handleQuery" style="margin-left: 10px" + >鎼滅储</el-button + > + </div> + <div> + <el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button> + <el-button @click="handleOut" icon="download">瀵煎嚭</el-button> + <el-button + type="danger" + icon="Delete" + :disabled="multipleList.length <= 0" + @click="deleteRow(multipleList.map((item) => item.id))" + > + 鎵归噺鍒犻櫎 + </el-button> + </div> + </div> + <div class="table_list"> + <el-table + ref="tableRef" + v-loading="tableLoading" + :data="tableData" + border + height="calc(100vh - 21em)" + :header-cell-style="{ background: '#F0F1F5', color: '#333333' }" + style="width: 100%" + @selection-change="handleSelectionChange" + > + <!-- 閫夋嫨鍒� --> + <el-table-column + align="center" + type="selection" + width="55" + fixed="left" + /> + + <!-- 搴忓彿鍒� --> + <el-table-column + align="center" + label="搴忓彿" + type="index" + width="60" + fixed="left" + /> + + <!-- 鍥哄畾鍒楋細濮撳悕 --> + <el-table-column + label="濮撳悕" + prop="staffName" + width="100" + show-overflow-tooltip + align="center" + fixed="left" + /> + + <!-- 鍥哄畾鍒楋細宸ュ彿 --> + <el-table-column + label="宸ュ彿" + prop="staffNo" + width="100" + show-overflow-tooltip + align="center" + fixed="left" + /> + + <!-- 鍔ㄦ�佸垪锛氭牴鎹瓧鍏告覆鏌� --> + <el-table-column + v-for="(dictItem, index) in sys_lavor_issue" + :key="dictItem.value" + :label="dictItem.label" + :prop="dictItem.value" + show-overflow-tooltip + > + </el-table-column> + + <!-- 鎿嶄綔鍒� --> + <el-table-column + label="鎿嶄綔" + width="150" + align="center" + fixed="right" + > + <template #default="scope"> + <el-button + type="primary" + link + size="small" + @click="edit(scope.row)" + > + 缂栬緫 + </el-button> + <el-button + type="danger" + link + size="small" + :disabled="!!scope.row.adoptedDate" + @click="adopted(scope.row)" + > + 棰嗙敤 + </el-button> + </template> + </el-table-column> + </el-table> + <pagination :total="total" layout="total, sizes, prev, pager, next, jumper" + :page="page.current" :limit="page.size" @pagination="paginationChange" /> + </div> + <Modal ref="modalRef" @success="handleQuery"></Modal> + <files-dia ref="filesDia"></files-dia> + </div> +</template> + +<script setup> +import { ref, onMounted, reactive, toRefs, nextTick, getCurrentInstance } from 'vue' +import dayjs from "dayjs"; +import Modal from "./Modal.vue"; +import FilesDia from "./filesDia.vue"; +import Pagination from "@/components/Pagination/index.vue"; +import {lavorIssueListPage, deleteLedger, update} from "@/api/lavorissce/ledger.js"; +import {ElMessageBox, ElMessage} from "element-plus"; +const { proxy } = getCurrentInstance(); +import { getCurrentMonth } from "@/utils/util" + +const page = ref({ + current: 1, + size: 100, +}) +const total = ref(0) +// 鍝嶅簲寮忔暟鎹� +const tableRef = ref(null) +const tableData = ref([]) +const tableLoading = ref(false) +const { sys_lavor_issue } = proxy.useDict("sys_lavor_issue") +const data = reactive({ + searchForm: { + season: "", + staffName: "", + }, +}); +const { searchForm } = toRefs(data); + +const modalRef = ref(); +const filesDia = ref(); +const multipleList = ref([]); +const jidu = ref([ + { + value: '1', + label: '绗竴瀛e害' + }, + { + value: '2', + label: '绗簩瀛e害' + }, + { + value: '3', + label: '绗笁瀛e害' + }, + { + value: '4', + label: '绗洓瀛e害' + } +]) + +/** 鎼滅储鎸夐挳鎿嶄綔 */ +const handleQuery = () => { + page.value.current = 1; + getList(); +}; +// 鑾峰彇瀛楀吀鏁版嵁 +const getList = async () => { + tableLoading.value = true; + const params = { ...searchForm.value, ...page.value }; + lavorIssueListPage(params).then(res => { + tableLoading.value = false; + tableData.value = res.data.records; + total.value = res.data.total; + }).catch(err => { + tableLoading.value = false; + }) +} +const add = () => { + modalRef.value.openModal(); +}; +const edit = (row) => { + modalRef.value.loadForm(row); +}; +const deleteRow = (id) => { + ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(async () => { + const { code } = await deleteLedger(id); + if (code == 200) { + ElMessage({ + type: "success", + message: "鍒犻櫎鎴愬姛", + }); + await getList(); + } + }); +}; +const handleOut = () => { + ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", { + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + proxy.download(`/lavorIssue/exportCopy`, {season: searchForm.value.season}, "鍔充繚鍙拌处.xlsx"); + }) + .catch(() => { + ElMessage.info("宸插彇娑�"); + }); +}; +const adopted = (row) => { + ElMessageBox.confirm("鏄惁纭棰嗙敤?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(async () => { + const params = { + id: row.id, + adoptedDate: dayjs().format("YYYY-MM-DD") + } + const { code } = await update(params); + if (code == 200) { + ElMessage({ + type: "success", + message: "棰嗙敤鎴愬姛", + }); + await getList(); + } + }) +} +// 鎵撳紑闄勪欢寮规 +const openFilesFormDia = (row) => { + nextTick(() => { + filesDia.value?.openDialog( row,'鏀跺叆') + }) +}; +// 浜嬩欢澶勭悊鍑芥暟 +const handleSelectionChange = (selection) => { + multipleList.value = selection; +} + +const paginationChange = (pagination) => { + page.value.current = pagination.page; + page.value.size = pagination.limit; + getList(); +} + +// 缁勪欢鎸傝浇鏃跺姞杞藉瓧鍏告暟鎹� +onMounted(() => { + handleQuery() +}) +</script> + +<style scoped> +.dynamic-table-container { + width: 100%; +} + +.pagination-container { + margin-top: 20px; + display: flex; + justify-content: flex-end; +} + +:deep(.el-table .el-table__header-wrapper th) { + background-color: #F0F1F5 !important; + color: #333333; + font-weight: 600; +} + +:deep(.el-table .el-table__body-wrapper td) { + padding: 8px 0; +} + +:deep(.el-select) { + width: 100%; +} + +:deep(.el-input) { + width: 100%; +} +</style> -- Gitblit v1.9.3