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/accidentManagementSystem/workInjuryDeclaration/index.vue |  658 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 397 insertions(+), 261 deletions(-)

diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue
index bfa7cb4..503246d 100644
--- a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue
+++ b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue
@@ -1,270 +1,406 @@
 <template>
-	<div class="system-user-container">
-		<el-card shadow="hover">
-			<div class="system-user-search mb15">
-				<el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="80px" :inline="true">
-					<el-form-item prop="telephone">
-						<el-input v-model="ruleForm.searchParams.accidentExpressId" placeholder="请选择应急物资" class="input-with-select">
-							<template #append>
-								<el-button :icon="Search" @click="daiInpt" />
-							</template>
-						</el-input>
-					</el-form-item>
-					<el-button size="default" type="primary" class="ml10" @click="listApi"> 查询 </el-button>
-					<el-button size="default" class="ml10" @click="submitReset"> 重置 </el-button>
-				</el-form>
-			</div>
-			<div class="button_Line">
-				<div class="button_Left">
-					<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>
-					<el-button size="default" type="danger" plain disabled>
-						<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>
-							<Download />
-						</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="申报人名称" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="teamLevel" label="申报人部门" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="teamDescription" label="事故名称" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="phone" label="工商类型" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="attachments" label="申报日期" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column prop="attachments" label="就诊医院" show-overflow-tooltip sortable></el-table-column>
-				<el-table-column label="操作" width="260" align="center" fixed="right">
-					<template #default="scope">
-						<el-button size="small" text disabled>
-							<el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报
-						</el-button>
-						<el-button size="small" text type="primary" @click="onEdit(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-button>
-					</template>
-				</el-table-column>
-			</el-table>
-			<div class="pages">
-				<el-pagination
-					v-model:currentPage="pageIndex"
-					v-model:page-size="pageSize"
-					:page-sizes="[10, 20, 30]"
-					:pager-count="5"
-					layout="total, sizes, prev, pager, next, jumper"
-					:total="40"
-					@size-change="handleSizeChange"
-					@current-change="handleCurrentChange"
-				/>
-			</div>
-		</el-card>
-		<AccidentName ref="showRef" />
-		<OpenAdd ref="addRef" />
-		<OpenEdit ref="editRef" />
-		<upData ref="upShow"></upData>
-	</div>
+    <div class="system-user-container">
+        <el-card shadow="hover">
+            <div class="system-user-search mb15">
+                <el-form ref="ruleFormRef" size="default" label-width="80px" :inline="true">
+                    <el-form-item prop="telephone">
+                        <el-input v-model="listQuery.searchParams.accidentName" placeholder="请选择事故快报" :disabled="true"
+                                  class="input-with-select">
+                            <template #append>
+                                <el-button :icon="Search" @click="daiInpt"/>
+                            </template>
+                        </el-input>
+                    </el-form-item>
+                    <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询</el-button>
+                    <el-button size="default" class="ml10" @click="submitReset"> 重置</el-button>
+                </el-form>
+            </div>
+            <div class="button_Line">
+                <div class="button_Left">
+                    <el-button size="default" type="primary" @click="onOpenAdd">
+                        <el-icon>
+                            <Plus/>
+                        </el-icon>
+                        新建
+                    </el-button>
+                    <el-button size="default" type="warning" plain :disabled="warning">
+                        <el-icon>
+                            <Edit/>
+                        </el-icon>
+                        修改
+                    </el-button>
+                    <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>
+                            <Download/>
+                        </el-icon>
+                    </el-button>
+                    <el-button>
+                        <el-icon>
+                            <Refresh/>
+                        </el-icon>
+                    </el-button>
+                </div>
+            </div>
+            <el-table :data="tableData" style="width: 100%" ref="multipleTableRef"
+                      @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="55"/>
+                <el-table-column prop="declareUserName" label="申报人名称" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column prop="deptName" label="申报人部门" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column prop="workInjuryType" label="工商类型" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column prop="declareDate" label="申报日期" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column prop="visitHospital" label="就诊医院" show-overflow-tooltip sortable></el-table-column>
+                <el-table-column label="操作" width="260" align="center" fixed="right">
+                    <template #default="scope">
+                        <!--<el-button size="small" text disabled>-->
+                        <!--<el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报-->
+                        <!--</el-button>-->
+                        <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="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.id)"> 删除</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"
+                        layout="total, sizes, prev, pager, next, jumper"
+                        :total="total"
+                        @size-change="handleSizeChange"
+                        @current-change="handleCurrentChange"
+                />
+            </div>
+        </el-card>
+        <AccidentName ref="showRef" @selectItem="onSelectItem"/>
+        <OpenAdd ref="addRef" @myAdd="onMyAdd"/>
+        <!--		<OpenEdit ref="editRef" />-->
+        <upData ref="upShow"></upData>
+    </div>
 </template>
 
 <script lang="ts">
-import {
-	// toRefs,
-	reactive,
-	// onMounted,
-	ref,
-	defineComponent,
-	onMounted,
-} from 'vue';
-import { ElTable, ElMessage } from 'element-plus';
-import { Plus, Download, Refresh, EditPen, Edit, Delete, Search, Upload } from '@element-plus/icons-vue';
-import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue';
-import OpenAdd from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue';
-import OpenEdit from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue';
-import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue';
-import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem';
-// 定义表格数据类型
-interface User {
-	teamName: string;
-	teamLevel: string;
-	teamDescription: string;
-	teamPhone: string;
-	phone: string;
-	describe: string;
-	responsibleDepartment: string;
-	teamLeader: string;
-}
+    import {
+        // toRefs,
+        reactive,
+        // onMounted,
+        ref,
+        defineComponent,
+        onMounted,
+    } from 'vue';
+    import {
+        ElMessageBox,
+        ElMessage
+    } from 'element-plus';
+    import {
+        Plus,
+        Download,
+        Refresh,
+        View,
+        EditPen,
+        Edit,
+        Delete,
+        Search,
+        Upload
+    } from '@element-plus/icons-vue';
+    import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue';
+    import OpenAdd from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue';
+    import OpenEdit from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue';
+    import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue';
+    import {accidentManagementSystemApi} from '/@/api/accidentManagementSystem';
 
-export default defineComponent({
-	name: 'index',
-	components: {
-		OpenEdit,
-		EditPen,
-		Plus,
-		Upload,
-		Download,
-		Refresh,
-		Edit,
-		Delete,
-		UpData,
-		OpenAdd,
-		AccidentName,
-	},
-	setup() {
-		const ruleFormRef = ref();
-		//定义表单
-		const ruleForm = reactive({
-			pageIndex: 1,
-			pageSize: 10,
-			searchParams: {
-				accidentExpressId: "",
-			},
-		});
-		// 定义表格数据
-		const tableData = ref([]);
-		// 列表请求
-		const listApi = () => {
-			accidentManagementSystemApi()
-				.workList(ruleForm)
-				.then((res) => {
-					if (res.data.code == 200) {
-              tableData.value=res.data.data
-					} else {
-             ElMessage.error(res.data.msg)
-					}
-				});
-		};
-		onMounted(() => {
-			listApi();
-		});
-    // 重置
-  const submitReset=()=>{
-    ruleForm.searchParams.accidentExpressId=""
-    listApi();
-  }
-		// 事故名称弹窗
-		const showRef = ref();
-		const daiInpt = () => {
-			showRef.value.openDailog();
-		};
-		// 打开新增弹窗
-		const addRef = ref();
-		const onOpenAdd = () => {
-			addRef.value.openDialog();
-		};
-		const multipleTableRef = ref<InstanceType<typeof ElTable>>();
-		const multipleSelection = ref<User[]>([]);
+    export default defineComponent({
+        name: 'index',
+        components: {
+            OpenEdit,
+            EditPen,
+            Plus,
+            Upload,
+            Download,
+            Refresh,
+            Edit,
+            View,
+            Delete,
+            UpData,
+            OpenAdd,
+            AccidentName,
+        },
+        setup() {
+            //列表参数
+            const listQuery = reactive({
+                pageIndex: 1,
+                pageSize: 10,
+                searchParams: {
+                    accidentExpressId: "",
+                },
+            });
+            //搜索条件回填
+            const onSelectItem = (item: any) => {
+                console.log('item', item[0].accidentName);
+                listQuery.searchParams.accidentExpressId = item[0].id
+                listQuery.searchParams.accidentName = item[0].accidentName
+            };
+            // 定义表格数据
+            const tableData = ref([]);
+            // 请求列表数据
+            const listApi = async () => {
+                let res = await accidentManagementSystemApi().workList(listQuery);
+                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);
+                }
+            };
+            onMounted(() => {
+                listApi();
+            });
+            // 重置
+            const submitReset = () => {
+                listQuery.searchParams.accidentExpressId = ''
+                listQuery.searchParams.accidentName = ''
+                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;
+                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;
+                }
+            };
+            // 事故名称弹窗
+            const showRef = ref();
+            const daiInpt = () => {
+                showRef.value.openDailog();
+            };
+            // 打开新增弹窗
+            const addRef = ref();
+            const onOpenAdd = () => {
+                addRef.value.openDialog('新建工伤申报', false);
+            };
+            // 新增后刷新
+            const onMyAdd = (e: boolean) => {
+                if (e) {
+                    listApi();
+                } else {
+                    listApi();
+                }
+            };
+            // 上传
+            const upShow = ref();
+            const upButton = () => {
+                upShow.value.openDialog();
+            };
 
-		// 上传
-		const upShow = ref();
-		const upButton = () => {
-			upShow.value.openDialog();
-		};
-
-		// 打开修改用户弹窗
-		const editRef = ref();
-		const onEdit = (row: TableDataRow) => {
-			editRef.value.openDialog(row);
-		};
-		// 分页
-		const pageIndex = ref(4);
-		const pageSize = ref(10);
-		// 分页改变
-		const handleSizeChange = (val: number) => {
-			console.log(`${val} items per page`);
-		};
-		// 分页未改变
-		const handleCurrentChange = (val: number) => {
-			console.log(`current page: ${val}`);
-		};
-		return {
-			daiInpt,
-			showRef,
-			multipleSelection,
-			multipleTableRef,
-			upButton,
-			upShow,
-			tableData,
-			pageIndex,
-			pageSize,
-			handleSizeChange,
-			handleCurrentChange,
-			onEdit,
-			onOpenAdd,
-			addRef,
-			editRef,
-			ruleFormRef,
-			listApi,
-			ruleForm,
-			Search,
-      submitReset
-		};
-	},
-});
+            // 打开修改用户弹窗
+            // const editRef = ref();
+            const onEdit = (val: string, row: object) => {
+                if (val == '详情') {
+                    addRef.value.openDialog('查看工伤申报', row, true);
+                } else {
+                    addRef.value.openDialog('修改工伤申报', row, false);
+                }
+            };
+            // 删除用户
+            const onRowDel = (data: any) => {
+                ElMessageBox.confirm('确定删除所选项吗?', '提示', {
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消',
+                    type: 'warning',
+                })
+                    .then(() => {
+                        accidentManagementSystemApi()
+                            .workDelete([data])
+                            .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(() => {
+                        accidentManagementSystemApi()
+                            .workDelete(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();
+            const pageSize = ref();
+            const total = ref();
+            // 分页改变
+            const handleSizeChange = (val: number) => {
+                listQuery.pageSize = val;
+            };
+            // 分页未改变
+            const handleCurrentChange = (val: number) => {
+                listQuery.pageIndex = val;
+            };
+            return {
+                daiInpt,
+                showRef,
+                upButton,
+                upShow,
+                tableData,
+                pageIndex,
+                pageSize,
+                handleSizeChange,
+                handleCurrentChange,
+                onEdit,
+                onOpenAdd,
+                addRef,
+                // editRef,
+                listApi,
+                Search,
+                submitReset,
+                onDeleteAll,
+                handleSelectionChange,
+                warning,
+                danger,
+                listQuery,
+                onRowDel,
+                total,
+                onMyAdd,
+                onSelectItem
+            };
+        },
+    });
 </script>
 <style scoped lang="scss">
-.table_Box {
-	padding: 20px;
-	background-color: #fff;
-}
-.tableForm {
-	margin-top: 10px;
-}
-/*按钮行*/
-.button_Line {
-	display: flex;
-	flex-direction: row;
-	justify-content: space-between;
-}
-//分页
-.pages {
-	display: flex;
-	justify-content: flex-end;
-	margin-top: 15px;
-}
-::v-deep .el-pagination .el-pager li {
-	margin: 0 5px;
-	background-color: #f4f4f5;
-	color: #606266;
-	min-width: 30px;
-	border-radius: 2px;
-}
-::v-deep .el-pagination .el-pager li.is-active {
-	background-color: #409eff;
-	color: #fff;
-}
-::v-deep .el-pagination .btn-prev {
-	margin: 0 5px;
-	background-color: #f4f4f5;
-	color: #606266;
-	min-width: 30px;
-	border-radius: 2px;
-}
-::v-deep .el-pagination button:disabled {
-	color: #c0c4cc;
-}
-::v-deep .el-pagination .btn-next {
-	margin: 0 5px;
-	background-color: #f4f4f5;
-	color: #606266;
-	min-width: 30px;
-	border-radius: 2px;
-}
+    .table_Box {
+        padding: 20px;
+        background-color: #fff;
+    }
+
+    .tableForm {
+        margin-top: 10px;
+    }
+
+    /*按钮行*/
+    .button_Line {
+        display: flex;
+        flex-direction: row;
+        justify-content: space-between;
+    }
+
+    //分页
+    .pages {
+        display: flex;
+        justify-content: flex-end;
+        margin-top: 15px;
+    }
+
+    ::v-deep .el-pagination .el-pager li {
+        margin: 0 5px;
+        background-color: #f4f4f5;
+        color: #606266;
+        min-width: 30px;
+        border-radius: 2px;
+    }
+
+    ::v-deep .el-pagination .el-pager li.is-active {
+        background-color: #409eff;
+        color: #fff;
+    }
+
+    ::v-deep .el-pagination .btn-prev {
+        margin: 0 5px;
+        background-color: #f4f4f5;
+        color: #606266;
+        min-width: 30px;
+        border-radius: 2px;
+    }
+
+    ::v-deep .el-pagination button:disabled {
+        color: #c0c4cc;
+    }
+
+    ::v-deep .el-pagination .btn-next {
+        margin: 0 5px;
+        background-color: #f4f4f5;
+        color: #606266;
+        min-width: 30px;
+        border-radius: 2px;
+    }
 </style>
\ No newline at end of file

--
Gitblit v1.9.2