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