From 39d90ac360f55f8835920c6e12e5cd1e4246bdcc Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期二, 05 七月 2022 19:18:34 +0800
Subject: [PATCH] '风险'

---
 src/views/specialWorkSystem/workApplyManagement/workApply/index.vue |  523 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 509 insertions(+), 14 deletions(-)

diff --git a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
index 9bde059..09e11a7 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
+++ b/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
@@ -1,6 +1,8 @@
 <template>
 	<div class="home-container">
-		<el-form :model="form" label-width="120px">
+		<el-scrollbar height="100%">
+		<div class="homeCard">
+		<el-form :model="form" label-width="150px">
 			<el-row>
 				<el-col :span="8">
 					<el-form-item label="申请部门">
@@ -12,10 +14,15 @@
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="申请人">
-						<el-select v-model="form.applyName" placeholder="请选择">
-							<el-option label="胡海涛" value="胡海涛" />
-							<el-option label="其他人" value="其他人" />
-						</el-select>
+						<el-input
+							v-model="form.applyName"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -48,11 +55,332 @@
 				</el-col>
 			</el-row>
 			<el-row>
-				<el-col :span="8">
-					<el-button type="primary" size="default">添加作业人</el-button>
+				<el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col>
+				<el-col :span="21">
+					<el-table :data="form.workerList" style="width: 100%">
+						<el-table-column type="index" label="序号" width="100"/>
+						<el-table-column prop="worker" label="作业人"/>
+						<el-table-column prop="role" label="作业人角色" width="180" />
+						<el-table-column prop="unit" label="所属单位" width="180" />
+						<el-table-column prop="certificate" label="证书名称" width="180" />
+						<el-table-column prop="certificateId" label="证书号" />
+						<el-table-column fixed="right" label="操作">
+							<template #default="scope">
+								<el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="作业地点">
+						<el-input
+							v-model="form.workLocation"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="作业期限">
+						<el-date-picker
+							v-model="form.workTimeLine"
+							type="daterange"
+							unlink-panels
+							range-separator="至"
+							start-placeholder="开始日期"
+							end-placeholder="结束日期"
+							:shortcuts="shortcuts"
+						/>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="作业内容">
+						<el-input
+							v-model="form.workContent"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="作业单位">
+						<el-input
+							v-model="form.workUnit"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>选择作业单位</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="6">
+					<el-form-item label="作业负责人">
+						<el-input
+							v-model="form.responser"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="监护人">
+						<el-input
+							v-model="form.monitor"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="监护人岗位">
+						<el-input
+							v-model="form.monitorStation"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="生产车间负责人">
+						<el-input
+							v-model="form.workhouseLeader"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="申请日期">
+						<el-date-picker
+							size="large"
+							v-model="form.applyDate"
+							type="date"
+							placeholder="请选择"
+							style="width: 100%"
+						></el-date-picker>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-divider />
+			<el-row>
+				<el-col :span="24">
+					<el-form-item label="涉及的其他特殊作业">
+						<el-checkbox-group v-model="form.otherSpecialWorks">
+							<el-checkbox label="动火作业" />
+							<el-checkbox label="受限空间" />
+							<el-checkbox label="高处作业" />
+							<el-checkbox label="吊装作业" />
+							<el-checkbox label="临时用电" />
+							<el-checkbox label="设备检修" />
+							<el-checkbox label="盲板抽堵" />
+							<el-checkbox label="断路作业" />
+							<el-checkbox label="动土作业" />
+						</el-checkbox-group>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col>
+					<el-form-item label="防护用品">
+						<el-cascader
+							v-model="form.protections"
+							:options="protectOption"
+							:props="{expandTrigger: 'hover'}"
+							@change="protectionsChange"
+							placeholder="请选择"
+							style="width: 100%"
+						/>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="6"><el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button></el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
+					<el-form-item label="实施安全教育人">
+						<el-input
+							v-model="form.safetyMan"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="被教育人">
+						<el-input
+							v-model="form.educated"
+							placeholder="请输入"
+							class="input-with-select"
+						>
+							<template #append>
+								<el-button :icon="Search" />
+							</template>
+						</el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-divider />
+			<el-row>
+				<el-col :span="24" class="submitBtn">
+					<el-button type="primary" size="large" plain>发起申请</el-button>
 				</el-col>
 			</el-row>
 		</el-form>
+		</div>
+		<el-dialog v-model="dialogAddWorker" title="添加作业人">
+			<el-form :model="addWorkerForm" label-width="120px">
+				<el-form-item label="作业人">
+					<el-input
+							v-model="addWorkerForm.worker"
+							placeholder="请输入"
+							class="input-with-select"
+					>
+						<template #append>
+							<el-button :icon="Search" />
+						</template>
+					</el-input>
+				</el-form-item>
+				<el-form-item label="作业人角色">
+					<el-input
+							v-model="addWorkerForm.role"
+							placeholder="请输入"
+							class="input-with-select"
+					>
+						<template #append>
+							<el-button :icon="Search" />
+						</template>
+					</el-input>
+				</el-form-item>
+				<el-form-item label="作业人角色">
+					<el-input
+							v-model="addWorkerForm.unit"
+							placeholder="请输入"
+							class="input-with-select"
+					>
+						<template #append>
+							<el-button :icon="Search" />
+						</template>
+					</el-input>
+				</el-form-item>
+				<el-form-item label="证书名称">
+					<el-input
+							v-model="addWorkerForm.certificate"
+							placeholder="请输入"
+							class="input-with-select"
+					>
+						<template #append>
+							<el-button :icon="Search" />
+						</template>
+					</el-input>
+				</el-form-item>
+				<el-form-item label="证书号">
+					<el-input
+							v-model="addWorkerForm.certificateId"
+							placeholder="请输入"
+							class="input-with-select"
+					>
+						<template #append>
+							<el-button :icon="Search" />
+						</template>
+					</el-input>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" @click="onSubmitAddForm" size="default">确认</el-button>
+					<el-button size="default" @click="cancleAdd">取消</el-button>
+				</el-form-item>
+			</el-form>
+		</el-dialog>
+		<el-dialog v-model="dialogAddFile" title="安全交底和风险告知">
+			<el-form :model="saftyFileForm" label-width="0" ref="ruleFormRef" :rules="saftyFileRules">
+				<el-form-item label="" prop="surrounding">
+					<div>1.作业许可范围及作业环境:</div>
+					<el-input
+							v-model="saftyFileForm.surrounding"
+							:rows="2"
+							type="textarea"
+							placeholder="请输入"
+					/>
+				</el-form-item>
+				<el-form-item label="" prop="risk">
+					<div>2.作业风险:</div>
+					<el-input
+							v-model="saftyFileForm.risk"
+							:rows="2"
+							type="textarea"
+							placeholder="请输入"
+					/>
+				</el-form-item>
+				<el-form-item label="" prop="protection">
+					<div>3.防范措施(工艺、设备、个体防护等):</div>
+					<el-input
+							v-model="saftyFileForm.protection"
+							:rows="2"
+							type="textarea"
+							placeholder="请输入"
+					/>
+				</el-form-item>
+				<el-form-item label="" prop="emergency">
+					<div>4.应急措施:</div>
+					<el-input
+							v-model="saftyFileForm.emergency"
+							:rows="2"
+							type="textarea"
+							placeholder="请输入"
+					/>
+				</el-form-item>
+				<el-form-item label="" prop="otherStuff">
+					<div>5.其他注意事项:</div>
+					<el-input
+							v-model="saftyFileForm.otherStuff"
+							:rows="2"
+							type="textarea"
+							placeholder="请输入"
+					/>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" @click="onSubmitAddFile(ruleFormRef)" size="default">确认</el-button>
+					<el-button size="default" @click="cancleAddFile">取消</el-button>
+				</el-form-item>
+			</el-form>
+		</el-dialog>
+	</el-scrollbar>
 	</div>
 </template>
 
@@ -62,6 +390,8 @@
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
 	import { Session } from '/@/utils/storage';
+	import { Search } from '@element-plus/icons-vue'
+	import type { FormInstance, FormRules } from 'element-plus'
 	let global: any = {
 		homeChartOne: null,
 		homeChartTwo: null,
@@ -88,11 +418,141 @@
 				applyName: '',
 				level: '',
 				riskIdentify: '',
-				workWay: ''
+				workWay: '',
+				workerList: [],
+				workLocation: '',
+				workTimeLine: '',
+				workContent: '',
+				workUnit: '',
+				responser: '',
+				monitor: '',
+				workMonitor: '',
+				monitorStation: '',
+				workhouseLeader: '',
+				applyDate: '',
+				otherSpecialWorks: [],
+				protections: '',
+				saftyFile: {},
+				safetyMan: '',
+				educated: ''
 			})
+			const dialogAddWorker = ref(false)
+			const dialogAddFile = ref(false)
+			const addWorkerForm = ref({
+				worker: '',
+				role: '',
+				unit: '',
+				certificate: '',
+				certificateId: ''
+			})
+			const saftyFileForm = reactive({
+				surrounding: '',
+				risk: '',
+				protection: '',
+				emergency: '',
+				otherStuff: ''
+			})
+			const shortcuts = [
+				{
+					text: 'Last week',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+						return [start, end]
+					},
+				},
+				{
+					text: 'Last month',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+						return [start, end]
+					},
+				},
+				{
+					text: 'Last 3 months',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+						return [start, end]
+					},
+				},
+			]
+			const protectOption = [
+				{
+					value: 'guide',
+					label: 'Guide',
+					children: [
+						{
+							value: 'disciplines',
+							label: 'Disciplines',
+							children: [
+								{
+									value: 'consistency',
+									label: 'Consistency',
+								},
+								{
+									value: 'feedback',
+									label: 'Feedback',
+								}
+							],
+						},
+						{
+							value: 'navigation',
+							label: 'Navigation',
+							children: [
+								{
+									value: 'side nav',
+									label: 'Side Navigation',
+								}
+							],
+						},
+					],
+				}
+			]
+			const ruleFormRef = ref<FormInstance>()
+			const saftyFileRules = reactive<FormRules>({
+				surrounding: [{required: true,message: '该选项不能为空'}],
+				risk: [{required: true,message: '该选项不能为空'}],
+				protection: [{required: true,message: '该选项不能为空'} ],
+				emergency: [{required: true,message: '该选项不能为空'} ]
+			})
+			const protectionsChange = (value) => {
+				console.log(value)
+			}
 
-			const onSubmit = () => {
-				console.log('submit!')
+			const onSubmitAddForm = () => {
+				form.workerList.push(addWorkerForm.value)
+				addWorkerForm.value = {
+					worker: '',
+					role: '',
+					unit: '',
+					certificate: '',
+					certificateId: ''
+				}
+				dialogAddWorker.value = false
+			}
+			const onSubmitAddFile = () =>{
+
+			}
+			const cancleAdd = ()=> {
+				addWorkerForm.value = {
+					worker: '',
+					role: '',
+					unit: '',
+					certificate: '',
+					certificateId: ''
+				}
+				dialogAddWorker.value = false
+			}
+			const cancleAddFile = ()=>{
+
+			}
+			const deleteRow = (index) =>{
+				form.workerList.splice( index,1)
 			}
 			// 折线图
 			const renderMenu = async (value: string) => {
@@ -103,7 +563,21 @@
 			return {
 				renderMenu,
 				form,
-				onSubmit,
+				Search,
+				shortcuts,
+				protectOption,
+				dialogAddWorker,
+				dialogAddFile,
+				addWorkerForm,
+				saftyFileForm,
+				ruleFormRef,
+				saftyFileRules,
+				cancleAddFile,
+				deleteRow,
+				cancleAdd,
+				onSubmitAddForm,
+				onSubmitAddFile,
+				protectionsChange,
 				...toRefs(state),
 			};
 		},
@@ -111,10 +585,16 @@
 </script>
 
 <style scoped lang="scss">
-	$homeNavLengh: 8;
 	.home-container {
+		height: 100%;
 		overflow: hidden;
-		padding: 40px;
+		padding: 20px;
+		.homeCard{
+			width: 100%;
+			padding: 20px;
+			background: #fff;
+			border-radius: 4px;
+		}
 		.el-row{
 			margin-bottom: 20px;
 		}
@@ -122,9 +602,24 @@
 			margin-bottom: 0;
 		}
 		.el-col{
-			display: flex;
 			align-items: center;
 			margin-bottom: 10px;
 		}
+		.el-input{
+			width: 100% !important;
+		}
+		.el-date-editor::v-deep{
+			width: 100%;
+		}
+		.el-select{
+			width: 100%;
+		}
+		.el-cascader{
+			width: 100% !important;
+		}
+		.submitBtn{
+			display: flex;
+			justify-content: center;
+		}
 	}
 </style>

--
Gitblit v1.9.2