From 15518c9dd36749e814ab729f92b1256ae0da3ff1 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 07 七月 2022 18:27:47 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt

---
 src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue |  162 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 115 insertions(+), 47 deletions(-)

diff --git a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
similarity index 72%
rename from src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
rename to src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
index 09e11a7..42b3dff 100644
--- a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue
+++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
@@ -1,8 +1,9 @@
 <template>
 	<div class="home-container">
 		<el-scrollbar height="100%">
-		<div class="homeCard">
-		<el-form :model="form" label-width="150px">
+		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef2">
+<!--			<blind-panel-form></blind-panel-form>-->
+			<div class="homeCard">
 			<el-row>
 				<el-col :span="8">
 					<el-form-item label="申请部门">
@@ -54,13 +55,15 @@
 					</el-form-item>
 				</el-col>
 			</el-row>
+			</div>
+			<div class="homeCard">
 			<el-row>
 				<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="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="证书号" />
@@ -74,7 +77,7 @@
 			</el-row>
 			<el-row>
 				<el-col :span="12">
-					<el-form-item label="作业地点">
+					<el-form-item label="作业地点" prop="workLocation">
 						<el-input
 							v-model="form.workLocation"
 							placeholder="请输入"
@@ -87,7 +90,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="作业期限">
+					<el-form-item label="作业期限" prop="workTimeLine">
 						<el-date-picker
 							v-model="form.workTimeLine"
 							type="daterange"
@@ -102,7 +105,7 @@
 			</el-row>
 			<el-row>
 				<el-col :span="12">
-					<el-form-item label="作业内容">
+					<el-form-item label="作业内容" prop="workContent">
 						<el-input
 							v-model="form.workContent"
 							placeholder="请输入"
@@ -115,7 +118,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="作业单位">
+					<el-form-item label="作业单位" prop="workUnit">
 						<el-input
 							v-model="form.workUnit"
 							placeholder="请输入"
@@ -128,9 +131,9 @@
 			</el-row>
 			<el-row>
 				<el-col :span="6">
-					<el-form-item label="作业负责人">
+					<el-form-item label="作业负责人" prop="responsor">
 						<el-input
-							v-model="form.responser"
+							v-model="form.responsor"
 							placeholder="请输入"
 							class="input-with-select"
 						>
@@ -141,7 +144,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="6">
-					<el-form-item label="监护人">
+					<el-form-item label="监护人" prop="monitor">
 						<el-input
 							v-model="form.monitor"
 							placeholder="请输入"
@@ -154,7 +157,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="6">
-					<el-form-item label="监护人岗位">
+					<el-form-item label="监护人岗位" prop="monitorStation">
 						<el-input
 							v-model="form.monitorStation"
 							placeholder="请输入"
@@ -169,7 +172,7 @@
 			</el-row>
 			<el-row>
 				<el-col :span="12">
-					<el-form-item label="生产车间负责人">
+					<el-form-item label="生产车间负责人" prop="workhouseLeader">
 						<el-input
 							v-model="form.workhouseLeader"
 							placeholder="请输入"
@@ -182,7 +185,7 @@
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="申请日期">
+					<el-form-item label="申请日期" prop="applyDate">
 						<el-date-picker
 							size="large"
 							v-model="form.applyDate"
@@ -193,10 +196,11 @@
 					</el-form-item>
 				</el-col>
 			</el-row>
-			<el-divider />
+			</div>
+			<div class="homeCard">
 			<el-row>
 				<el-col :span="24">
-					<el-form-item label="涉及的其他特殊作业">
+					<el-form-item label="涉及的其他特殊作业" prop="otherSpecialWorks">
 						<el-checkbox-group v-model="form.otherSpecialWorks">
 							<el-checkbox label="动火作业" />
 							<el-checkbox label="受限空间" />
@@ -213,7 +217,7 @@
 			</el-row>
 			<el-row>
 				<el-col>
-					<el-form-item label="防护用品">
+					<el-form-item label="防护用品" prop="protections">
 						<el-cascader
 							v-model="form.protections"
 							:options="protectOption"
@@ -225,25 +229,25 @@
 					</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 style="justify-content: center">
+				<el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button>
 			</el-row>
 			<el-row>
 				<el-col :span="12">
-					<el-form-item label="实施安全教育人">
+					<el-form-item label="实施安全教育人" prop="safetyMan">
 						<el-input
 							v-model="form.safetyMan"
 							placeholder="请输入"
 							class="input-with-select"
 						>
 							<template #append>
-								<el-button :icon="Search" />
+								<el-button :icon="Search"/>
 							</template>
 						</el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :span="12">
-					<el-form-item label="被教育人">
+					<el-form-item label="被教育人" prop="educated">
 						<el-input
 							v-model="form.educated"
 							placeholder="请输入"
@@ -256,17 +260,18 @@
 					</el-form-item>
 				</el-col>
 			</el-row>
-			<el-divider />
+			</div>
+			<div class="homeCard applyBtn">
 			<el-row>
 				<el-col :span="24" class="submitBtn">
-					<el-button type="primary" size="large" plain>发起申请</el-button>
+					<el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button>
 				</el-col>
 			</el-row>
+			</div>
 		</el-form>
-		</div>
 		<el-dialog v-model="dialogAddWorker" title="添加作业人">
-			<el-form :model="addWorkerForm" label-width="120px">
-				<el-form-item label="作业人">
+			<el-form :model="addWorkerForm" label-width="120px" :rules="addWorkerRules" ref='ruleFormRef3'>
+				<el-form-item label="作业人" prop="worker">
 					<el-input
 							v-model="addWorkerForm.worker"
 							placeholder="请输入"
@@ -277,7 +282,7 @@
 						</template>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="作业人角色">
+				<el-form-item label="作业人角色" prop="role">
 					<el-input
 							v-model="addWorkerForm.role"
 							placeholder="请输入"
@@ -288,7 +293,7 @@
 						</template>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="作业人角色">
+				<el-form-item label="作业人角色" prop="unit">
 					<el-input
 							v-model="addWorkerForm.unit"
 							placeholder="请输入"
@@ -299,7 +304,7 @@
 						</template>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="证书名称">
+				<el-form-item label="证书名称" prop="certificate">
 					<el-input
 							v-model="addWorkerForm.certificate"
 							placeholder="请输入"
@@ -310,7 +315,7 @@
 						</template>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="证书号">
+				<el-form-item label="证书号" prop="certificateId">
 					<el-input
 							v-model="addWorkerForm.certificateId"
 							placeholder="请输入"
@@ -385,7 +390,7 @@
 </template>
 
 <script lang="ts">
-	import { toRefs, reactive, defineComponent, ref } from 'vue';
+	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
@@ -406,7 +411,17 @@
 
 	}
 	export default defineComponent({
-		name: 'workApply',
+		name: 'workApplyForm',
+		components: {
+			fireWorkForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue')),
+			limitedSpaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue')),
+			hangLoadForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue')),
+			dirtWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue')),
+			cutLineForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue')),
+			highWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue')),
+			tempElectForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue')),
+			blindPanelForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue'))
+		},
 		setup() {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
@@ -424,7 +439,7 @@
 				workTimeLine: '',
 				workContent: '',
 				workUnit: '',
-				responser: '',
+				responsor: '',
 				monitor: '',
 				workMonitor: '',
 				monitorStation: '',
@@ -514,6 +529,31 @@
 				}
 			]
 			const ruleFormRef = ref<FormInstance>()
+			const ruleFormRef2 = ref<FormInstance>()
+			const ruleFormRef3 = ref<FormInstance>()
+			const applyRules = reactive<FormRules>({
+				workLocation: [{required: true,message: '此处不能为空'}],
+				workTimeLine: [{required: true,message: '此处不能为空'}],
+				workContent: [{required: true,message: '此处不能为空'}],
+				workUnit: [{required: true,message: '此处不能为空'}],
+				responsor: [{required: true,message: '此处不能为空'}],
+				monitor: [{required: true,message: '此处不能为空'}],
+				workMonitor: [{required: true,message: '此处不能为空'}],
+				monitorStation: [{required: true,message: '此处不能为空'}],
+				workhouseLeader: [{required: true,message: '此处不能为空'}],
+				applyDate: [{required: true,message: '此处不能为空'}],
+				otherSpecialWorks: [{required: true,message: '此处不能为空'}],
+				protections: [{required: true,message: '此处不能为空'}],
+				safetyMan: [{required: true,message: '此处不能为空'}],
+				educated: [{required: true,message: '此处不能为空'}]
+			})
+			const addWorkerRules = reactive<FormRules>({
+				worker: [{required: true,message: '此处不能为空'}],
+				role: [{required: true,message: '此处不能为空'}],
+				unit: [{required: true,message: '此处不能为空'}],
+				certificate: [{required: true,message: '此处不能为空'}],
+				certificateId: [{required: true,message: '此处不能为空'}]
+			})
 			const saftyFileRules = reactive<FormRules>({
 				surrounding: [{required: true,message: '该选项不能为空'}],
 				risk: [{required: true,message: '该选项不能为空'}],
@@ -524,16 +564,23 @@
 				console.log(value)
 			}
 
-			const onSubmitAddForm = () => {
-				form.workerList.push(addWorkerForm.value)
-				addWorkerForm.value = {
-					worker: '',
-					role: '',
-					unit: '',
-					certificate: '',
-					certificateId: ''
-				}
-				dialogAddWorker.value = false
+			const onSubmitAddForm = async (formEl: FormInstance | undefined) => {
+				if (!formEl) return
+				await formEl.validate((valid, fields) => {
+					if (valid) {
+						form.workerList.push(addWorkerForm.value)
+						addWorkerForm.value = {
+							worker: '',
+							role: '',
+							unit: '',
+							certificate: '',
+							certificateId: ''
+						}
+						dialogAddWorker.value = false
+					} else {
+						console.log('error submit!', fields)
+					}
+				})
 			}
 			const onSubmitAddFile = () =>{
 
@@ -554,6 +601,16 @@
 			const deleteRow = (index) =>{
 				form.workerList.splice( index,1)
 			}
+			const handleApply = async (formEl: FormInstance | undefined) =>{
+				if (!formEl) return
+				await formEl.validate((valid, fields) => {
+					if (valid) {
+						console.log('submit!')
+					} else {
+						console.log('error submit!', fields)
+					}
+				})
+			}
 			// 折线图
 			const renderMenu = async (value: string) => {
 				Session.set('projectId',value)
@@ -571,7 +628,12 @@
 				addWorkerForm,
 				saftyFileForm,
 				ruleFormRef,
+				ruleFormRef2,
+				ruleFormRef3,
+				addWorkerRules,
 				saftyFileRules,
+				applyRules,
+				handleApply,
 				cancleAddFile,
 				deleteRow,
 				cancleAdd,
@@ -589,21 +651,27 @@
 		height: 100%;
 		overflow: hidden;
 		padding: 20px;
+		position: relative;
 		.homeCard{
 			width: 100%;
 			padding: 20px;
 			background: #fff;
 			border-radius: 4px;
+			margin-bottom: 20px;
+		}
+		.applyBtn{
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			margin-bottom: 0;
+			border-radius: 0;
+			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
 		}
 		.el-row{
 			margin-bottom: 20px;
 		}
 		.el-row:last-child {
 			margin-bottom: 0;
-		}
-		.el-col{
-			align-items: center;
-			margin-bottom: 10px;
 		}
 		.el-input{
 			width: 100% !important;

--
Gitblit v1.9.2