From c64c8f43ec1a3d88feb1f915fd488040b6358e7d Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期二, 09 八月 2022 19:04:12 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqtOut

---
 src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue |  413 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 243 insertions(+), 170 deletions(-)

diff --git a/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue b/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue
index ce9cb6f..3f9dc77 100644
--- a/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue
+++ b/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue
@@ -1,273 +1,346 @@
 <template>
 	<div class="system-user-container">
 		<el-card shadow="hover">
-			<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
-				<el-tab-pane label="待评价" name="first"></el-tab-pane>
-				<el-tab-pane label="已评价" name="second"></el-tab-pane>
-			</el-tabs>
 			<div class="system-user-search mb15">
-				<el-input size="default" placeholder="物资名称" style="max-width: 215px"> </el-input>
-				<el-button size="default" type="primary" class="ml10"> 查询 </el-button>
+				<el-input size="default" v-model="listQuery.searchParams.name" placeholder="物资名称" style="max-width: 215px" />
+				<el-button size="default" type="primary" class="ml10" @click="listApi"> 查询 </el-button>
 				<el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button>
 			</div>
 			<div class="button_Line">
 				<div class="button_Left">
-					<el-button size="default" type="primary" @click="onOpenAdd('新建')">
-						<el-icon>
-							<Plus /> </el-icon
-						>新建
+					<el-button size="default" type="primary" @click="onOpenAdd">
+						<el-icon> <Plus /> </el-icon>新建
 					</el-button>
-					<el-button size="default" type="warning" plain disabled>
-						<el-icon>
-							<Edit /> </el-icon
-						>修改
+					<el-button size="default" type="warning" plain :disabled="warning">
+						<el-icon> <Edit /> </el-icon>修改
 					</el-button>
-					<el-button size="default" type="danger" plain disabled>
-						<el-icon>
-							<Delete /> </el-icon
-						>删除
+					<el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger">
+						<el-icon> <Delete /> </el-icon>删除
 					</el-button>
 				</div>
 				<div class="button_Right">
-					<el-button @click="upButton">
-						<el-icon>
-							<Upload />
-						</el-icon>
-					</el-button>
-					<el-button>
-						<el-icon>
-							<Refresh />
-						</el-icon>
-					</el-button>
+					<!--          <el-button @click="upButton">-->
+					<!--						<el-icon>-->
+					<!--							<Upload />-->
+					<!--						</el-icon>-->
+					<!--					</el-button>-->
+					<!--					<el-button>-->
+					<!--						<el-icon>-->
+					<!--							<Refresh />-->
+					<!--						</el-icon>-->
+					<!--					</el-button>-->
 				</div>
 			</div>
-			<el-table :data="tableData" style="width: 100%" ref="multipleTableRef">
-				<el-table-column type="selection" width="55" />
-				<el-table-column prop="teamName" label="物资名称" min-width="120" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="teamLevel" label="物资编号" min-width="120" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="teamDescription" label="负责部门" min-width="120" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="materialClassification" label="物资分类" min-width="120" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="location" label="存放位置" min-width="120" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="number" label="存储数量" min-width="120" show-overflow-tooltip sortable></el-table-column>
+			<el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange">
+				<el-table-column align="center" type="selection" width="55" />
+				<el-table-column align="center" prop="name" label="物资名称" min-width="120" show-overflow-tooltip sortable></el-table-column>
+				<el-table-column align="center" prop="number" label="物资编号" min-width="120" show-overflow-tooltip sortable></el-table-column>
+				<el-table-column align="center" prop="deptName" label="负责部门" min-width="120" show-overflow-tooltip sortable></el-table-column>
+				<el-table-column align="center" label="物资分类" min-width="120" show-overflow-tooltip sortable>
+					<template #default="scope">
+						<span v-if="scope.row.classification == 1">事故气体吸收装置</span><span v-if="scope.row.classification == 2">通讯设施</span
+						><span v-if="scope.row.classification == 3">交通运输工具</span><span v-if="scope.row.classification == 4">照明装置</span
+						><span v-if="scope.row.classification == 5">防护器材</span><span v-if="scope.row.classification == 6">其它</span>
+					</template>
+				</el-table-column>
+				<el-table-column align="center" prop="place" label="存放位置" min-width="120" show-overflow-tooltip sortable></el-table-column>
+				<el-table-column align="center" prop="count" label="存储数量" min-width="120" show-overflow-tooltip sortable></el-table-column>
 				<el-table-column label="操作" width="200" align="center" fixed="right">
 					<template #default="scope">
 						<el-button size="small" text type="primary" @click="onMaintain(scope.row)">
-							<el-icon style="margin-right: 5px">
-								<EditPen /> </el-icon
-							>保养
+							<el-icon style="margin-right: 5px"> <EditPen /> </el-icon>保养
 						</el-button>
-						<el-button size="small" text type="primary" @click="onMaintain(scope.row)">
-							<el-icon style="margin-right: 5px">
-								<EditPen /> </el-icon
-							>检查
+						<el-button size="small" text type="primary" @click="onInspect(scope.row)">
+							<el-icon style="margin-right: 5px"> <EditPen /> </el-icon>检查
 						</el-button>
-						<el-button size="small" text type="primary" @click="onOpenEdit(scope.row)">
-							<el-icon style="margin-right: 5px">
-								<View /> </el-icon
-							>查看
+						<el-button size="small" text type="primary" @click="onEdit('详情', scope.row.id)">
+							<el-icon style="margin-right: 5px"> <View /> </el-icon>查看
 						</el-button>
-						<el-button size="small" text type="primary" @click="onOpenEdit(scope.row)">
+						<el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)">
 							<el-icon style="margin-right: 5px">
 								<EditPen />
 							</el-icon>
 							修改
 						</el-button>
-						<el-button size="small" text type="primary" @click="onRowDel(scope.row)">
-							<el-icon>
-								<Delete /> </el-icon
-							>删除
+						<el-button size="small" text type="primary" @click="onRowDel(scope.row.id)">
+							<el-icon> <Delete /> </el-icon>删除
 						</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
 			<div class="pages">
 				<el-pagination
+					v-if="tableData.length == 0 ? false : true"
 					v-model:currentPage="pageIndex"
 					v-model:page-size="pageSize"
 					:page-sizes="[10, 20, 30]"
 					:pager-count="5"
-					:small="small"
-					:disabled="disabled"
-					:background="background"
 					layout="total, sizes, prev, pager, next, jumper"
-					:total="40"
+					:total="total"
 					@size-change="handleSizeChange"
 					@current-change="handleCurrentChange"
 				/>
 			</div>
 		</el-card>
-		<Maintain ref="seeRef" />
-		<OpenAdd ref="addRef" />
-		<OpenEdit ref="editRef" />
-		<upData ref="upShow"></upData>
+		<Maintain ref="seeRef" @myadd="onMaintainAdd" />
+		<Inspect ref="spectRef" @myadd="onInspectAdd" />
+		<OpenAdd ref="addRef" @myAdd="onMyAdd" />
+		<OpenEdit ref="editRef" @myAdd="onMyAdds" />
+		<!--		<upData ref="upShow"></upData>-->
 	</div>
 </template>
 
 <script lang="ts">
+import { ref, defineComponent, reactive, onMounted } from 'vue';
 import {
-	// toRefs,
-	// reactive,
-	// onMounted,
-	ref,
-	defineComponent,
-} from 'vue';
-import { ElMessageBox, ElMessage, ElTable } from 'element-plus';
-import {
-	Plus,
-	Edit,
-	Delete,
-	Upload,
-	// Download,
-	Refresh,
-	View,
-	EditPen,
-} from '@element-plus/icons-vue';
+	ElMessageBox,
+	ElMessage,
+	// ElTable
+} from 'element-plus';
+import { Plus, Edit, Delete, Upload, Refresh, View, EditPen } from '@element-plus/icons-vue';
 import OpenAdd from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/openAdd.vue';
-import OpenEdit from '/@/views/contingencyManagement/panManagement/component/openEdit.vue';
 import Maintain from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue';
+import Inspect from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue';
+import OpenEdit from '/@/views/contingencyManagement/emergencyResources/emergencySupplies/component/openEdit.vue';
 import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue';
-
-// 定义表格数据类型
-interface User {
-	teamName: string;
-	teamLevel: string;
-	teamDescription: string;
-	location: string;
-	materialClassification: string;
-	number: string;
-}
-
-// 定义接口来定义对象的类型
-interface TableDataRow {
-	// userName: string;
-	// userNickname: string;
-	// roleSign: string;
-	// department: string[];
-	// phone: string;
-	// email: string;
-	// sex: string;
-	// password: string;
-	// overdueTime: Date;
-	// // describe: string;
-	// createTime: string;
-}
+import { emergencySuppliesApi } from '/@/api/contingencyManagement/emergencyResources';
 
 export default defineComponent({
 	name: 'systemUser',
 	components: {
 		OpenAdd,
 		Maintain,
-		OpenEdit,
 		View,
+		OpenEdit,
 		EditPen,
 		Plus,
 		Edit,
 		Delete,
 		Upload,
 		// Download,
+		Inspect,
 		Refresh,
 		UpData,
 	},
 	setup() {
-		const multipleTableRef = ref<InstanceType<typeof ElTable>>();
-		const multipleSelection = ref<User[]>([]);
-
-		// 上传
-		const upShow = ref();
-		const upButton = () => {
-			upShow.value.openDialog();
-		};
+		// 列表参数
+		const listQuery = reactive({
+			pageIndex: 1,
+			pageSize: 10,
+			searchParams: {
+				name: '',
+			},
+		});
 		// 定义表格数据
-		const tableData: User[] = [
-			{
-				teamName: '消防安全绳',
-				teamLevel: 'YJWZ20210208104332',
-				teamDescription: '安全管理部',
-				materialClassification: '事故气体吸收装置',
-				location: '3#岗微型消防站',
-				number: '5',
-			},
-			{
-				teamName: '消防安全绳',
-				teamLevel: 'YJWZ20210208104332',
-				teamDescription: '安全管理部',
-				materialClassification: '事故气体吸收装置',
-				location: '3#岗微型消防站',
-				number: '5',
-			},
-			{
-				teamName: '消防安全绳',
-				teamLevel: 'YJWZ20210208104332',
-				teamDescription: '安全管理部',
-				materialClassification: '事故气体吸收装置',
-				location: '3#岗微型消防站',
-				number: '5',
-			},
-			{
-				teamName: '消防安全绳',
-				teamLevel: 'YJWZ20210208104332',
-				teamDescription: '安全管理部',
-				materialClassification: '事故气体吸收装置',
-				location: '3#岗微型消防站',
-				number: '5',
-			},
-		];
-		//查看用户弹窗
-		const seeRef = ref();
-		const onMaintain = (row: TableDataRow) => {
-			seeRef.value.openDialog(row);
+		const tableData = ref([]);
+		// 请求列表数据
+		const listApi = async () => {
+			let res = await emergencySuppliesApi().getEmergencySuppliesList(listQuery);
+			// console.log(res);
+			if (res.data.code == 200) {
+				tableData.value = res.data.data;
+				pageIndex.value = res.data.pageIndex;
+				pageSize.value = res.data.pageSize;
+				total.value = res.data.total;
+			} else {
+				ElMessage.error(res.data.msg);
+			}
 		};
-		// 打开新增用户弹窗
+		//重置
+		const submitReset = () => {
+			listQuery.searchParams.name = '';
+			listApi();
+		};
+		const warning = ref(true);
+		const danger = ref(true);
+		const deletAll = ref();
+		const handleSelectionChange = (val: any) => {
+			let valId = JSON.parse(JSON.stringify(val));
+			let arr = [];
+			for (let i = 0; i < valId.length; i++) {
+				arr.push(valId[i].id);
+			}
+			deletAll.value = arr;
+			// console.log(deletAll.value);
+			if (val.length == 1) {
+				warning.value = false;
+				danger.value = false;
+			} else if (val.length == 0) {
+				warning.value = true;
+				danger.value = true;
+			} else {
+				warning.value = true;
+				danger.value = false;
+			}
+		};
+		// 页面加载时
+		onMounted(() => {
+			listApi();
+		});
+		// 上传
+		// const upShow = ref();
+		// const upButton = () => {
+		// 	upShow.value.openDialog();
+		// };
+
+		//新增应急物资检查弹窗
+		const seeRef = ref();
+		const onMaintain = (data: any) => {
+			seeRef.value.openDialog(data);
+		};
+		// 应急物资保养新增后刷新
+		const onMaintainAdd = () => {
+			listApi();
+		};
+		//修改应急物资检查弹窗
+		const spectRef = ref();
+		const onInspect = (data: any) => {
+			spectRef.value.openDialog(data);
+		};
+		// 应急物资检查新增后刷新
+		const onInspectAdd = (e: boolean) => {
+			if (e) {
+				listApi();
+			} else {
+				listApi();
+			}
+		};
+		// 新建应急物资代码弹窗
 		const addRef = ref();
 		const onOpenAdd = () => {
-			addRef.value.openDialog();
+			addRef.value.openDialog('新建应急物资代码', false);
+		};
+		// 新增后刷新
+		const onMyAdd = (e: boolean) => {
+			if (e) {
+				listApi();
+			} else {
+				listApi();
+			}
 		};
 		// 打开修改用户弹窗
 		const editRef = ref();
-		const onOpenEdit = (row: TableDataRow) => {
-			editRef.value.openDialog(row);
+		const onEdit = (val: string, row: object) => {
+			if (val == '详情') {
+				editRef.value.openDialog('查看应急物资代码', row, true);
+			} else {
+				editRef.value.openDialog('修改应急物资代码', row, false);
+			}
+		};
+		// 新增后刷新
+		const onMyAdds = (e: boolean) => {
+			if (e) {
+				listApi();
+			} else {
+				listApi();
+			}
 		};
 		// 删除用户
-		const onRowDel = (row: TableDataRow) => {
-			ElMessageBox.confirm(`此操作将永久删除账户名称:“${row}”,是否继续?`, '提示', {
+		const onRowDel = (id: number) => {
+			let arr = [];
+			arr.push(id);
+			ElMessageBox.confirm('确定删除所选项吗?', '提示', {
 				confirmButtonText: '确认',
 				cancelButtonText: '取消',
 				type: 'warning',
 			})
 				.then(() => {
-					ElMessage.success('删除成功');
+					emergencySuppliesApi()
+						.deleteEmergencySupplies(arr)
+						.then((res) => {
+							if (res.data.code == 200) {
+								ElMessage({
+									showClose: true,
+									message: res.data.msg,
+									type: 'success',
+								});
+								listApi();
+							} else {
+								ElMessage({
+									showClose: true,
+									message: res.data.msg,
+									type: 'error',
+								});
+								listApi();
+							}
+						});
+				})
+				.catch(() => {});
+		};
+		// 多选删除
+		const onDeleteAll = () => {
+			ElMessageBox.confirm('确定删除所选项吗?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+			})
+				.then(() => {
+					emergencySuppliesApi()
+						.deleteEmergencySupplies(deletAll.value)
+						.then((res) => {
+							if (res.data.code == 200) {
+								ElMessage({
+									showClose: true,
+									message: res.data.msg,
+									type: 'success',
+								});
+								listApi();
+							} else {
+								ElMessage({
+									showClose: true,
+									message: res.data.msg,
+									type: 'error',
+								});
+								listApi();
+							}
+						});
 				})
 				.catch(() => {});
 		};
 		// 分页
-		const pageIndex = ref(4);
-		const pageSize = ref(10);
-		// 分页改变
+		const pageIndex = ref();
+		const pageSize = ref();
+		const total = ref();
+		// 分页条数
 		const handleSizeChange = (val: number) => {
-			console.log(`${val} items per page`);
+			// console.log(`${val} items per page`);
+			listQuery.pageSize = val;
 		};
-		// 分页未改变
+		// 分页数
 		const handleCurrentChange = (val: number) => {
-			console.log(`current page: ${val}`);
+			// console.log(`current page: ${val}`);
+			listQuery.pageIndex = val;
 		};
 		return {
-			multipleSelection,
-			multipleTableRef,
-			upButton,
-			upShow,
+			// upButton,
+			// upShow,
 			tableData,
 			onMaintain, //保养
 			seeRef,
-			onOpenEdit, //编辑
-			editRef,
 			onOpenAdd, //新增
 			addRef,
 			onRowDel,
 			pageIndex,
 			pageSize,
+			total,
 			handleSizeChange,
 			handleCurrentChange,
-			// ...toRefs(state),
+			listQuery,
+			listApi,
+			onMounted,
+			submitReset,
+			onMyAdd,
+			onEdit,
+			editRef,
+			onDeleteAll,
+			handleSelectionChange,
+			warning,
+			danger,
+			spectRef,
+			onInspect,
+			onMaintainAdd,
+			onInspectAdd,
+			onMyAdds,
 		};
 	},
 });

--
Gitblit v1.9.2