From 596a6831ceb5417e2f4fb71f9e2dd1d2e2bcb6f8 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期五, 14 十月 2022 10:25:26 +0800
Subject: [PATCH] lct

---
 src/views/specialWorkSystem/flow/basicApprove/components/approveBasicDialog.vue                      |   10 
 src/views/specialWorkSystem/flow/basicApprove/index.vue                                              |   10 
 .idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41__Default_Changelist_.xml           |    4 
 .idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41_[Default_Changelist]/shelved.patch | 6817 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 6,827 insertions(+), 14 deletions(-)

diff --git "a/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41_\133Default_Changelist\135/shelved.patch" "b/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41_\133Default_Changelist\135/shelved.patch"
new file mode 100644
index 0000000..57c319d
--- /dev/null
+++ "b/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41_\133Default_Changelist\135/shelved.patch"
@@ -0,0 +1,6817 @@
+Index: src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,152 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业单位ID">
+-				<el-input v-model="details.workDetail.operationDepId" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="断路原因">
+-				<el-input v-model="details.workDetail.bcReason" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="断路地段说明">
+-				<el-input v-model="details.workDetail.bcExplain" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="涉及相关部门">
+-				<el-input v-model="details.workDetail.involvedDepIds" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="图片">
+-				<el-image v-for="item in details.workDetail.bcPath" :preview-src-list="details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/ground.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/ground.vue b/src/views/specialWorkSystem/workTicket/apply/components/ground.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/ground.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,689 +0,0 @@
+- <template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-								v-for="item in workerList"
+-								:key="item.uid"
+-								:label="item.username"
+-								:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业单位" prop="workDetail.operationDepId">
+-<!--						<el-select v-model="form.workDetail.operationDepId">-->
+-<!--							<el-option-->
+-<!--									v-for="item in csDepList"-->
+-<!--									:key="item.value"-->
+-<!--									:label="item.label"-->
+-<!--									:value="item.value"-->
+-<!--							/>-->
+-<!--						</el-select>-->
+-						<el-cascader v-model="form.workDetail.operationDepId" :options="departList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="范围" prop="workDetail.gbScope">
+-						<el-input
+-								v-model="form.workDetail.gbScope"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="动土方式" prop="workDetail.gbMethod">
+-						<el-input
+-								v-model="form.workDetail.gbMethod"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="关联作业" prop="workDetail.otherSpecialWork">
+-						<el-select v-model="form.workDetail.otherSpecialWork" multiple>
+-							<el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" />
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="24">
+-					<el-form-item label="图片上传" prop="workDetail.gbPath">
+-						<el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
+-							<el-icon><Plus /></el-icon>
+-							<template #tip>
+-								<div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传3张</div>
+-							</template>
+-						</el-upload>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	<el-dialog v-model="dialogVisible">
+-		<img w-full :src="dialogImageUrl" alt="Preview Image" />
+-	</el-dialog>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search,Plus } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-	import axios from 'axios';
+-
+-
+-	interface stateType {
+-		equipmentDialog: boolean,
+-		form: Object,
+-		csDepList: Array<any>,
+-		otherWorkList: Array<any>,
+-		fileList: Array<file>,
+-		uploadUrl: string,
+-		dialogVisible: Boolean,
+-		dialogImageUrl: string | null,
+-		imgLimit: number,
+-		casProps: {},
+-		isOverSize: Boolean,
+-		materialList: Array<any>
+-	}
+-	interface file {
+-		url: string;
+-	}
+-	export default {
+-		name: 'groundForm',
+-		components: {},
+-		props:['workerList','departList'],
+-		setup(props: any, context: any) {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				form: {
+-					operatorUids: [],
+-					workType: 4,
+-					workLevel: 0,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						operationDepId: null,
+-						gbScope: '',
+-						gbMethod: '',
+-						gbPath: [],
+-						otherSpecialWork: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				isOverSize: false,
+-				fileList: [],
+-				materialList: [],
+-				imgLimit: 3,
+-				uploadUrl: '',
+-				dialogVisible: false,
+-				dialogImageUrl: null,
+-				csDepList: [
+-					{
+-						label: "单位一",
+-						value: 1
+-					},
+-					{
+-						label: "单位二",
+-						value: 2
+-					},
+-					{
+-						label: "单位三",
+-						value: 3
+-					},
+-					{
+-						label: "单位四",
+-						value: 4
+-					},
+-					{
+-						label: "单位五",
+-						value: 5
+-					},
+-					{
+-						label: "单位六",
+-						value: 6
+-					}
+-				],
+-				otherWorkList: [
+-					{
+-						label: '动火作业',
+-						value: 1
+-					},
+-					{
+-						label: '受限空间作业',
+-						value: 2
+-					},
+-					{
+-						label: '吊装作业',
+-						value: 3
+-					},
+-					{
+-						label: '动土作业',
+-						value: 4
+-					},
+-					{
+-						label: '断路作业',
+-						value: 5
+-					},
+-					{
+-						label: '高处作业',
+-						value: 6
+-					},
+-					{
+-						label: '临时用电作业',
+-						value: 7
+-					},
+-					{
+-						label: '盲板抽堵作业',
+-						value: 8
+-					}
+-				],
+-				casProps: {
+-					emitPath: false,
+-					value: 'depId',
+-					label: 'depName',
+-					multiple: false,
+-					expandTrigger: 'hover',
+-					checkStrictly: true
+-				}
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.gbScope": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.gbMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.gbPath": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',')
+-						data.workDetail.gbPath = data.workDetail.gbPath.join(',')
+-						const res = await workApplyApi().postGroundApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-								state.form.workDetail.gbPath = []
+-								state.fileList = []
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
+-				console.log(uploadFile);
+-			};
+-
+-			const handlePictureCardPreview = (uploadFile: { url: string }) => {
+-				state.dialogImageUrl = uploadFile.url!;
+-				state.dialogVisible = true;
+-			};
+-
+-			const getUploadUrl = async (rawFile: any) => {
+-				const fileSize = rawFile.size / 1024 < 500 ? '1' : '0'
+-				if(fileSize === '0'){
+-					ElMessage({
+-						type: 'warning',
+-						message: '文件大小不能超过500k。'
+-					});
+-					state.isOverSize = true
+-					return false
+-				}else{
+-					const res = await workApplyApi().getUploadUrl(rawFile.name);
+-					state.form.workDetail.gbPath.push(res.data.data.fileName)
+-					state.uploadUrl = res.data.data.uploadUrl;
+-				}
+-			};
+-
+-			const upload = async (params: any) => {
+-				// const formData = new FormData();
+-				// formData.append('file', state.fileList[0].raw);
+-				let reader = new FileReader();
+-				reader.readAsArrayBuffer(params.file);
+-				reader.onload = async () => {
+-					axios
+-							.put(state.uploadUrl, reader.result, {
+-								header: { 'Content-Type': 'multipart/form-data' }
+-							})
+-							.then(() => {
+-								// if (state.fileList.length === 2) {
+-								// 	state.fileList.splice(0, 1);
+-								// }
+-								// console.log(state.form.workDetail.gbPath,'gbpath')
+-							});
+-				};
+-			};
+-
+-			const beforeRemove = (file: {}, fileList: []) => {
+-				const result = new Promise((resolve, reject) => {
+-					if(!state.isOverSize){
+-						ElMessageBox.confirm('此操作将删除该图片, 是否继续?', '提示', {
+-							confirmButtonText: '确定',
+-							cancelButtonText: '取消',
+-							type: 'warning'
+-						})
+-								.then(() => {
+-									// console.log(state.workDetail.gbPath,'path')
+-									const list = JSON.parse(JSON.stringify(state.form.workDetail.gbPath))
+-									fileList.map((item,index)=>{
+-										if(item.uid === file.uid){
+-											fileList.splice(index,1)
+-											state.form.workDetail.gbPath.splice(index,1)
+-											// 请求删除接口
+-											deletePic(false,list[index])
+-										}
+-									})
+-								})
+-								.catch(() => {
+-									reject(false);
+-								});
+-					}else{
+-						const list = JSON.parse(JSON.stringify(state.form.workDetail.gbPath))
+-						fileList.map((item,index)=>{
+-							if(item.uid === file.uid){
+-								fileList.splice(index,1)
+-								state.form.workDetail.gbPath.splice(index,1)
+-								deletePic(true,list[index])
+-							}
+-						})
+-						state.isOverSize = false
+-					}
+-				});
+-				return result;
+-			};
+-
+-
+-			// 删除图片接口
+-			const deletePic = async(isOverSize:boolean,fileName:string)=>{
+-				const res = await workApplyApi().deleteFile({fileName: fileName})
+-				if (res.data.code === '200') {
+-					ElMessage({
+-						type: isOverSize ? 'error' : 'success',
+-						message: isOverSize ? '上传失败':'删除成功!'
+-					});
+-				} else {
+-					ElMessage({
+-						type: 'warning',
+-						message: res.data.msg
+-					});
+-				}
+-			}
+-
+-			const showTip =()=>{
+-				ElMessage({
+-					type: 'warning',
+-					message: '超出文件上传数量'
+-				});
+-			}
+-
+-			// const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
+-			// 	console.log('2111111111111')
+-			// };
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 4,workLevel: null}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				Plus,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				handlePreview,
+-				getUploadUrl,
+-				beforeRemove,
+-				upload,
+-				showTip,
+-				submitForm,
+-				handlePictureCardPreview,
+-				...toRefs(state),
+-			};
+-		},
+-	};
+-</script>
+-
+-<style scoped lang="scss">
+-	.avatar-uploader .avatar {
+-		width: 178px;
+-		height: 178px;
+-		display: block;
+-	}
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		:deep(.el-cascader){
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+-<style>
+-	.avatar-uploader .el-upload {
+-		border: 1px dashed var(--el-border-color);
+-		border-radius: 6px;
+-		cursor: pointer;
+-		position: relative;
+-		overflow: hidden;
+-		transition: var(--el-transition-duration-fast);
+-	}
+-
+-	.avatar-uploader .el-upload:hover {
+-		border-color: var(--el-color-primary);
+-	}
+-
+-	.el-icon.avatar-uploader-icon {
+-		font-size: 28px;
+-		color: #8c939d;
+-		width: 178px;
+-		height: 178px;
+-		text-align: center;
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/index.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/index.vue b/src/views/specialWorkSystem/workTicket/apply/index.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/index.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,149 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<el-tabs type="border-card">
+-			<el-tab-pane label="动火作业">
+-				<fire-form :workerList = allWorkers></fire-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="受限空间作业">
+-				<space-form :workerList = allWorkers :departList = departmentList></space-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="吊装作业">
+-				<hoist-form :workerList = allWorkers></hoist-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="动土作业">
+-				<ground-form :workerList = allWorkers :departList = departmentList></ground-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="断路作业">
+-				<broken-form :workerList = allWorkers :departList = departmentList></broken-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="高处作业">
+-				<height-form :workerList = allWorkers :departList = departmentList></height-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="临时用电作业">
+-				<power-form :workerList = allWorkers></power-form>
+-			</el-tab-pane>
+-			<el-tab-pane label="盲板抽堵作业">
+-				<plate-form :workerList = allWorkers></plate-form>
+-			</el-tab-pane>
+-		</el-tabs>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-	import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage";
+-
+-	interface stateType {
+-		allWorkers: Array<any>
+-		departmentList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'apply',
+-		components: {
+-			fireForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/fire.vue')),
+-			spaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/space.vue')),
+-			hoistForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/hoist.vue')),
+-			groundForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/ground.vue')),
+-			brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/broken.vue')),
+-			heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/height.vue')),
+-			powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/power.vue')),
+-			plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/apply/components/plate.vue'))
+-		},
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				allWorkers: [],
+-				departmentList: []
+-			});
+-
+-			// 获取用户列表
+-			const getAll = async ()=>{
+-				const res = await workApplyApi().getAllUsers()
+-				if (res.data.code === '200') {
+-					state.allWorkers = JSON.parse(JSON.stringify(res.data.data))
+-				} else {
+-					ElMessage({
+-						type: 'warning',
+-						message: res.data.msg
+-					});
+-				}
+-			};
+-
+-			// 获取部门列表
+-			const getAllDepartment = async () => {
+-				let res = await teamManageApi().getAllDepartment();
+-				if (res.data.code === '200') {
+-					state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+-				} else {
+-					ElMessage({
+-						type: 'warning',
+-						message: res.data.msg
+-					});
+-				}
+-			};
+-
+-			// 页面载入时执行方法
+-			onMounted(() => {
+-				getAll();
+-				getAllDepartment();
+-			});
+-
+-			return {
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			height: 80px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/height.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/height.vue b/src/views/specialWorkSystem/workTicket/apply/components/height.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/height.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,547 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业等级" prop="workLevel">
+-						<el-select v-model="form.workLevel">
+-							<el-option
+-									v-for="item in workLevelList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业单位" prop="workDetail.operationDepId">
+-						<!--						<el-select v-model="form.workDetail.operationDepId">-->
+-						<!--							<el-option-->
+-						<!--									v-for="item in heDepList"-->
+-						<!--									:key="item.value"-->
+-						<!--									:label="item.label"-->
+-						<!--									:value="item.value"-->
+-						<!--							/>-->
+-						<!--						</el-select>-->
+-						<el-cascader v-model="form.workDetail.operationDepId" :options="departList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业高度" prop="workDetail.operationHeight">
+-						<el-input
+-								v-model="form.workDetail.operationHeight"
+-								type="number"
+-								placeholder="请输入"
+-						>
+-							<template #append>米(m)</template>
+-						</el-input>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="关联作业" prop="workDetail.otherSpecialWork">
+-						<el-select v-model="form.workDetail.otherSpecialWork" multiple>
+-							<el-option
+-									v-for="item in otherWorkList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-		<span class="dialog-footer">
+-			<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-			<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-		</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		equipmentDialog: boolean,
+-		form: Object,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		heDepList: Array<any>,
+-		otherWorkList: Array<any>,
+-		casProps:{},
+-		materialList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'heightForm',
+-		components: {},
+-		props:['workerList','departList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				form: {
+-					operatorUids: [],
+-					workType: 6,
+-					workLevel: null,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						operationDepId: '',
+-						operationHeight: null,
+-						otherSpecialWork: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				heDepList: [
+-					{
+-						label: "单位一",
+-						value: 1
+-					},
+-					{
+-						label: "单位二",
+-						value: 2
+-					},
+-					{
+-						label: "单位三",
+-						value: 3
+-					},
+-					{
+-						label: "单位四",
+-						value: 4
+-					},
+-					{
+-						label: "单位五",
+-						value: 5
+-					},
+-					{
+-						label: "单位六",
+-						value: 6
+-					}
+-				],
+-				materialList: [],
+-				casProps: {
+-					emitPath: false,
+-					value: 'depId',
+-					label: 'depName',
+-					multiple: false,
+-					expandTrigger: 'hover',
+-					checkStrictly: true
+-				},
+-				workTypeList: [
+-					{
+-						label: "类型一",
+-						value: 1
+-					},
+-					{
+-						label: "类型二",
+-						value: 2
+-					}
+-				],
+-				workLevelList: [
+-					{
+-						label: "一级高处作业",
+-						value: 4
+-					},
+-					{
+-						label: "二级高处作业",
+-						value: 5
+-					},
+-					{
+-						label: "三级高处作业",
+-						value: 6
+-					},
+-					{
+-						label: "特级高处作业",
+-						value: 7
+-					}
+-				],
+-				otherWorkList: [
+-					{
+-						label: "动火作业",
+-						value: 1
+-					},
+-					{
+-						label: "受限空间作业",
+-						value: 2
+-					},
+-					{
+-						label: "吊装作业",
+-						value: 3
+-					},
+-					{
+-						label: "动土作业",
+-						value: 4
+-					},
+-					{
+-						label: "断路作业",
+-						value: 5
+-					},
+-					{
+-						label: "高处作业",
+-						value: 6
+-					},
+-					{
+-						label: "临时用电作业",
+-						value: 7
+-					},
+-					{
+-						label: "盲板抽堵作业",
+-						value: 8
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.operationHeight": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',')
+-						const res = await workApplyApi().postHeightApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 6,workLevel: state.form.workLevel}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				submitForm,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		:deep(.el-cascader){
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/space.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/space.vue b/src/views/specialWorkSystem/workTicket/apply/components/space.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/space.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,513 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed" />
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="受限空间所属单位" prop="workDetail.csDepId">
+-<!--						<el-select v-model="form.workDetail.csDepId">-->
+-<!--							<el-option-->
+-<!--									v-for="item in csDepList"-->
+-<!--									:key="item.value"-->
+-<!--									:label="item.label"-->
+-<!--									:value="item.value"-->
+-<!--							/>-->
+-<!--						</el-select>-->
+-						<el-cascader v-model="form.workDetail.csDepId" :options="departList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="受限空间名称" prop="workDetail.csName">
+-						<el-input
+-								v-model="form.workDetail.csName"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="空间内原有介质" prop="workDetail.csOriginalName">
+-						<el-input
+-								v-model="form.workDetail.csOriginalName"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="关联作业" prop="workDetail.otherSpecialWork">
+-						<el-select v-model="form.workDetail.otherSpecialWork" multiple>
+-							<el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" />
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		csDepList: Array<any>,
+-		otherWorkList: Array<any>,
+-		casProps: {},
+-		equipmentDialog: boolean,
+-		materialList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'spaceForm',
+-		components: {},
+-		props:['workerList','departList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				materialList: [],
+-				form: {
+-					operatorUids: [],
+-					workType: 2,
+-					workLevel: 0,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						csDepId: null,
+-						csName: '',
+-						csOriginalName: '',
+-						otherSpecialWork: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				csDepList: [
+-					{
+-						label: "单位一",
+-						value: 1
+-					},
+-					{
+-						label: "单位二",
+-						value: 2
+-					},
+-					{
+-						label: "单位三",
+-						value: 3
+-					},
+-					{
+-						label: "单位四",
+-						value: 4
+-					},
+-					{
+-						label: "单位五",
+-						value: 5
+-					},
+-					{
+-						label: "单位六",
+-						value: 6
+-					}
+-				],
+-				casProps: {
+-					emitPath: false,
+-					value: 'depId',
+-					label: 'depName',
+-					multiple: false,
+-					expandTrigger: 'hover',
+-					checkStrictly: true
+-				},
+-				otherWorkList: [
+-					{
+-						label: '动火作业',
+-						value: 1
+-					},
+-					{
+-						label: '受限空间作业',
+-						value: 2
+-					},
+-					{
+-						label: '吊装作业',
+-						value: 3
+-					},
+-					{
+-						label: '动土作业',
+-						value: 4
+-					},
+-					{
+-						label: '断路作业',
+-						value: 5
+-					},
+-					{
+-						label: '高处作业',
+-						value: 6
+-					},
+-					{
+-						label: '临时用电作业',
+-						value: 7
+-					},
+-					{
+-						label: '盲板抽堵作业',
+-						value: 8
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.csDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.csName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.csOriginalName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',')
+-						console.log(data,'data')
+-						const res = await workApplyApi().postSpaceApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 2,workLevel: null}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				submitForm,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		:deep(.el-cascader){
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/plate.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/plate.vue b/src/views/specialWorkSystem/workTicket/apply/components/plate.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/plate.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,755 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业等级" prop="workLevel">
+-						<el-select v-model="form.workLevel">
+-							<el-option
+-									v-for="item in workLevelList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="盲板编号" prop="workDetail.bpCode">
+-						<el-input
+-								v-model="form.workDetail.bpCode"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="主要介质" prop="workDetail.mainMedia">
+-						<el-input
+-								v-model="form.workDetail.mainMedia"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="温度" prop="workDetail.temperature">
+-						<el-input
+-								v-model="form.workDetail.temperature"
+-								type="number"
+-								placeholder="请输入"
+-						>
+-							<template #append>摄氏度(℃)</template>
+-						</el-input>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="压力" prop="workDetail.pressure">
+-						<el-input
+-								v-model="form.workDetail.pressure"
+-								type="number"
+-								placeholder="请输入"
+-						>
+-							<template #append>千帕(kPa)</template>
+-						</el-input>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="盲板材质" prop="workDetail.bpMaterialQuality">
+-						<el-input
+-								v-model="form.workDetail.bpMaterialQuality"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="盲板规格" prop="workDetail.bpSpecification">
+-						<el-input
+-								v-model="form.workDetail.bpSpecification"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="盲板时间" prop="workDetail.installLine">
+-						<el-date-picker
+-								v-model="form.workDetail.installLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="--"
+-								start-placeholder="装盲板时间"
+-								end-placeholder="拆盲板时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="盲板位置" prop="workDetail.bpLocation">
+-						<el-input
+-								v-model="form.workDetail.bpLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="关联作业" prop="workDetail.otherSpecialWork">
+-						<el-select v-model="form.workDetail.otherSpecialWork" multiple>
+-							<el-option
+-									v-for="item in otherWorkList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="24">
+-					<el-form-item label="盲板位置图" prop="workDetail.bpLocationMapPath">
+-						<el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
+-							<el-icon><Plus /></el-icon>
+-							<template #tip>
+-								<div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传3张</div>
+-							</template>
+-						</el-upload>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	<el-dialog v-model="dialogVisible">
+-		<img w-full :src="dialogImageUrl" alt="Preview Image" />
+-	</el-dialog>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-	import axios from 'axios';
+-
+-	interface stateType {
+-		form: Object,
+-		csDepList: Array<any>,
+-		otherWorkList: Array<any>,
+-		workLevelList: Array<any>,
+-		fileList: Array<file>,
+-		uploadUrl: string,
+-		dialogVisible: Boolean,
+-		dialogImageUrl: string | null,
+-		imgLimit: number,
+-		isOverSize: boolean,
+-		equipmentDialog: boolean,
+-		materialList: Array<any>
+-	}
+-	interface file {
+-		url: string;
+-	}
+-	export default defineComponent({
+-		name: 'plateForm',
+-		components: {},
+-		props:['workerList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				materialList: [],
+-				form: {
+-					operatorUids: [],
+-					workType: 8,
+-					workLevel: null,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						bpCode: '',
+-						mainMedia: '',
+-						temperature: null,
+-						pressure: null,
+-						bpMaterialQuality: '',
+-						bpSpecification: '',
+-						bpLocation: '',
+-						bpLocationMapPath: [],
+-						installLine: [],
+-						installBpTime: '',
+-						uninstallBpTime: '',
+-						otherSpecialWork: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				isOverSize: false,
+-				fileList: [],
+-				imgLimit: 3,
+-				uploadUrl: '',
+-				dialogVisible: false,
+-				dialogImageUrl: null,
+-				workLevelList: [
+-					{
+-						label: "抽盲板作业",
+-						value: 11
+-					},
+-					{
+-						label: "堵盲板作业",
+-						value: 12
+-					}
+-				],
+-				csDepList: [
+-					{
+-						label: "单位一",
+-						value: 1
+-					},
+-					{
+-						label: "单位二",
+-						value: 2
+-					},
+-					{
+-						label: "单位三",
+-						value: 3
+-					},
+-					{
+-						label: "单位四",
+-						value: 4
+-					},
+-					{
+-						label: "单位五",
+-						value: 5
+-					},
+-					{
+-						label: "单位六",
+-						value: 6
+-					}
+-				],
+-				otherWorkList: [
+-					{
+-						label: "动火作业",
+-						value: 1
+-					},
+-					{
+-						label: "受限空间作业",
+-						value: 2
+-					},
+-					{
+-						label: "吊装作业",
+-						value: 3
+-					},
+-					{
+-						label: "动土作业",
+-						value: 4
+-					},
+-					{
+-						label: "断路作业",
+-						value: 5
+-					},
+-					{
+-						label: "高处作业",
+-						value: 6
+-					},
+-					{
+-						label: "临时用电作业",
+-						value: 7
+-					},
+-					{
+-						label: "盲板抽堵作业",
+-						value: 8
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bpCode": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.mainMedia": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.temperature": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.pressure": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bpMaterialQuality": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bpSpecification": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.installLine": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bpLocation": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bpLocationMapPath": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						state.form.workDetail.installBpTime = JSON.parse(JSON.stringify(state.form.workDetail.installLine))[0]
+-						state.form.workDetail.uninstallBpTime = JSON.parse(JSON.stringify(state.form.workDetail.installLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						let { installLine, ...data2 } = JSON.parse(JSON.stringify(state.form.workDetail))
+-						data.workDetail = data2
+-						data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',')
+-						data.workDetail.bpLocationMapPath = data.workDetail.bpLocationMapPath.join(',')
+-						data.workDetail.temperature = Number(data.workDetail.temperature)
+-						data.workDetail.pressure = Number(data.workDetail.pressure)
+-						const res = await workApplyApi().postPlateApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-								state.form.workDetail.bpLocationMapPath = []
+-								state.fileList = []
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-			const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
+-				console.log(uploadFile);
+-			};
+-
+-			const handlePictureCardPreview = (uploadFile: { url: string }) => {
+-				state.dialogImageUrl = uploadFile.url!;
+-				state.dialogVisible = true;
+-			};
+-
+-			const getUploadUrl = async (rawFile: any) => {
+-				const fileSize = rawFile.size / 1024 < 500 ? '1' : '0'
+-				if(fileSize === '0'){
+-					ElMessage({
+-						type: 'warning',
+-						message: '文件大小不能超过500k。'
+-					});
+-					state.isOverSize = true
+-					return false
+-				}else{
+-					const res = await workApplyApi().getUploadUrl(rawFile.name);
+-					state.form.workDetail.bpLocationMapPath.push(res.data.data.fileName)
+-					state.uploadUrl = res.data.data.uploadUrl;
+-					console.log(res.data.data.fileName,'name')
+-				}
+-			};
+-
+-			const upload = async (params: any) => {
+-				// const formData = new FormData();
+-				// formData.append('file', state.fileList[0].raw);
+-				let reader = new FileReader();
+-				reader.readAsArrayBuffer(params.file);
+-				reader.onload = async () => {
+-					axios
+-							.put(state.uploadUrl, reader.result, {
+-								header: { 'Content-Type': 'multipart/form-data' }
+-							})
+-							.then(() => {
+-								// if (state.fileList.length === 2) {
+-								// 	state.fileList.splice(0, 1);
+-								// }
+-								// console.log(state.form.workDetail.bpLocationMapPath,'bpLocationMapPath')
+-							});
+-				};
+-			};
+-
+-			const beforeRemove = (file: {}, fileList: []) => {
+-				const result = new Promise((resolve, reject) => {
+-					if(!state.isOverSize){
+-						ElMessageBox.confirm('此操作将删除该图片, 是否继续?', '提示', {
+-							confirmButtonText: '确定',
+-							cancelButtonText: '取消',
+-							type: 'warning'
+-						})
+-								.then(() => {
+-									// console.log(state.workDetail.bpLocationMapPath,'path')
+-									const list = JSON.parse(JSON.stringify(state.form.workDetail.bpLocationMapPath))
+-									fileList.map((item,index)=>{
+-										if(item.uid === file.uid){
+-											fileList.splice(index,1)
+-											state.form.workDetail.bpLocationMapPath.splice(index,1)
+-											deletePic(false,list[index])
+-										}
+-									})
+-									// 请求删除接口
+-								})
+-								.catch(() => {
+-									reject(false);
+-								});
+-					}else{
+-						const list = JSON.parse(JSON.stringify(state.form.workDetail.bpLocationMapPath))
+-						fileList.map((item,index)=>{
+-							if(item.uid === file.uid){
+-								fileList.splice(index,1)
+-								state.form.workDetail.bpLocationMapPath.splice(index,1)
+-								deletePic(true,list[index])
+-							}
+-						})
+-						state.isOverSize = false
+-					}
+-				});
+-				return result;
+-			};
+-
+-
+-			// 删除图片接口
+-			const deletePic = async(isOverSize:boolean,fileName:string)=>{
+-				console.log(fileName,'fileName')
+-				const res = await workApplyApi().deleteFile({fileName: fileName})
+-				if (res.data.code === '200') {
+-					ElMessage({
+-						type: isOverSize ? 'error' : 'success',
+-						message: isOverSize ? '上传失败':'删除成功!'
+-					});
+-				} else {
+-					ElMessage({
+-						type: 'warning',
+-						message: res.data.msg
+-					});
+-				}
+-			}
+-			const showTip =()=>{
+-				ElMessage({
+-					type: 'warning',
+-					message: '超出文件上传数量'
+-				});
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 8,workLevel: state.form.workLevel}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				handlePreview,
+-				getUploadUrl,
+-				beforeRemove,
+-				upload,
+-				showTip,
+-				submitForm,
+-				handlePictureCardPreview,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/fire.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/fire.vue b/src/views/specialWorkSystem/workTicket/apply/components/fire.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/fire.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,502 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业等级" prop="workLevel">
+-						<el-select v-model="form.workLevel">
+-							<el-option
+-									v-for="item in workLevelList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="动火方式" prop="workDetail.hotMethod">
+-						<el-input
+-								v-model="form.workDetail.hotMethod"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入动火方式"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="关联作业" prop="workDetail.otherSpecialWork">
+-						<el-select v-model="form.workDetail.otherSpecialWork" multiple>
+-							<el-option
+-									v-for="item in otherWorkList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-				<span class="dialog-footer">
+-					<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-					<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-				</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>,
+-		equipmentDialog: boolean,
+-		materialList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'fireForm',
+-		components: {},
+-		props:['workerList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				materialList: [],
+-				form: {
+-					operatorUids: [],
+-					workType: 1,
+-					workLevel: null,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						hotMethod: '',
+-						otherSpecialWork: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				workLevelList: [
+-					{
+-						label: "一级动火作业",
+-						value: 1
+-					},
+-					{
+-						label: "二级动火作业",
+-						value: 2
+-					},
+-					{
+-						label: "特级动火作业",
+-						value: 3
+-					}
+-				],
+-				otherWorkList: [
+-					{
+-						label: "动火作业",
+-						value: 1
+-					},
+-					{
+-						label: "受限空间作业",
+-						value: 2
+-					},
+-					{
+-						label: "吊装作业",
+-						value: 3
+-					},
+-					{
+-						label: "动土作业",
+-						value: 4
+-					},
+-					{
+-						label: "断路作业",
+-						value: 5
+-					},
+-					{
+-						label: "高处作业",
+-						value: 6
+-					},
+-					{
+-						label: "临时用电作业",
+-						value: 7
+-					},
+-					{
+-						label: "盲板抽堵作业",
+-						value: 8
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.hotMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			// 页面载入时执行方法
+-			onMounted(() => {
+-
+-			});
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						if (state.materialList.length == 0){
+-							ElMessage({
+-								type: 'warning',
+-								message: '请确认关联物资的配置'
+-							});
+-							return
+-						}
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(',')
+-						const res = await workApplyApi().postFireApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 1,workLevel: state.form.workLevel}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-					.then(() => {
+-						state.equipmentDialog = false
+-					})
+-					.catch(() => {
+-						// catch error
+-					})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				submitForm,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-
+-	.tab-i{
+-		margin-bottom: 15px;
+-
+-		&:last-of-type{
+-			margin-bottom: 0;
+-		}
+-		::v-deep(.el-form-item){
+-			.el-form-item__label{
+-				margin-bottom: 4px;
+-			}
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/hoist.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue b/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,445 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业等级" prop="workLevel">
+-						<el-select v-model="form.workLevel">
+-							<el-option
+-									v-for="item in workLevelList"
+-									:key="item.value"
+-									:label="item.label"
+-									:value="item.value"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="吊装工具名称" prop="workDetail.hoistingToolName">
+-						<el-input
+-								v-model="form.workDetail.hoistingToolName"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="起吊物体质量" prop="workDetail.weightMass">
+-						<el-input
+-								v-model="form.workDetail.weightMass"
+-								type="number"
+-								placeholder="请输入"
+-						>
+-							<template #append>吨(t)</template>
+-						</el-input>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		equipmentDialog: boolean,
+-		form: Object,
+-		workLevelList: Array<any>,
+-		materialList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'hoistForm',
+-		components: {},
+-		props:['workerList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				form: {
+-					operatorUids: [],
+-					workType: 3,
+-					workLevel: null,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						hoistingToolName: '',
+-						weightMass: null
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				materialList: [],
+-				workLevelList: [
+-					{
+-						label: "一级吊装作业",
+-						value: 8
+-					},
+-					{
+-						label: "二级吊装作业",
+-						value: 9
+-					},
+-					{
+-						label: "三级吊装作业",
+-						value: 10
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.hoistingToolName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.weightMass": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.weightMass = Number(data.workDetail.weightMass)
+-						const res = await workApplyApi().postHoistApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 3,workLevel: state.form.workLevel}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				submitForm,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,137 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业方式">
+-				<el-input v-model="details.workDetail.hotMethod" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'fire',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,146 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="吊装工具名称">
+-				<el-input v-model="details.workDetail.hoistingToolName" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="起吊物体重量">
+-				<el-input v-model="details.workDetail.weightMass" readonly type="textarea"><template #append>吨(t)</template></el-input>
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/power.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/power.vue b/src/views/specialWorkSystem/workTicket/apply/components/power.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/power.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,443 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="电源接入点" prop="workDetail.powerAccessPoint">
+-						<el-input
+-								v-model="form.workDetail.powerAccessPoint"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="工作电压" prop="workDetail.workingVoltage">
+-						<el-input
+-								v-model="form.workDetail.workingVoltage"
+-								type="number"
+-								placeholder="请输入"
+-						>
+-							<template #append>伏特(v)</template>
+-						</el-input>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-row>
+-					<el-col :span="12">
+-						<el-form-item label="用电设备及功率" prop="workDetail.equipmentAndPower">
+-							<el-input
+-									v-model="form.workDetail.equipmentAndPower"
+-									autosize
+-									type="textarea"
+-									placeholder="请输入"
+-							/>
+-						</el-form-item>
+-					</el-col>
+-					<el-col :span="12">
+-						<el-form-item label="选择关联物资">
+-							<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-						</el-form-item>
+-					</el-col>
+-				</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workLevelList: Array<any>,
+-		equipmentDialog: boolean,
+-		materialList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'powerForm',
+-		components: {},
+-		props:['workerList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				materialList: [],
+-				form: {
+-					operatorUids: [],
+-					workType: 7,
+-					workLevel: 0,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						powerAccessPoint: '',
+-						workingVoltage: null,
+-						equipmentAndPower: ''
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				workLevelList: [
+-					{
+-						label: "一级吊装作业",
+-						value: 8
+-					},
+-					{
+-						label: "二级吊装作业",
+-						value: 9
+-					},
+-					{
+-						label: "三级吊装作业",
+-						value: 10
+-					}
+-				]
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.powerAccessPoint": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.workingVoltage": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.equipmentAndPower": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						// data.workDetail.weightMass = Number(data.workDetail.weightMass)
+-						const res = await workApplyApi().postPowerApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 7,workLevel: null}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				submitForm,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,146 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业单位ID">
+-				<el-input v-model="details.workDetail.operationDepId" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业高度">
+-				<el-input v-model="details.workDetail.operationHeight" readonly type="textarea"><template #append>米(m)</template></el-input>
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,170 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="盲板编号">
+-				<el-input v-model="details.workDetail.bpCode" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="主要介质">
+-				<el-input v-model="details.workDetail.mainMedia" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="温度">
+-				<el-input v-model="details.workDetail.temperature" readonly type="textarea"><template #append>摄氏度(℃)</template></el-input>
+-			</el-form-item>
+-			<el-form-item label="压力">
+-				<el-input v-model="details.workDetail.pressure" readonly type="textarea"><template #append>千帕(kPa)</template></el-input>
+-			</el-form-item>
+-			<el-form-item label="盲板材质">
+-				<el-input v-model="details.workDetail.bpMaterialQuality" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="盲板规格">
+-				<el-input v-model="details.workDetail.bpSpecification" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="盲板位置">
+-				<el-input v-model="details.workDetail.bpLocation" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="装盲板时间">
+-				<el-input v-model="details.workDetail.installBpTime" readonly/>
+-			</el-form-item>
+-			<el-form-item label="拆盲板时间">
+-				<el-input v-model="details.workDetail.uninstallBpTime" readonly/>
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="盲板位置图">
+-				<el-image v-for="item in details.workDetail.bpLocationMapPath" :preview-src-list="details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,152 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业单位">
+-				<el-input v-model="details.workDetail.operationDepId" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="范围">
+-				<el-input v-model="details.workDetail.gbScope" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="动土方式">
+-				<el-input v-model="details.workDetail.gbMethod" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="图片">
+-				<el-image v-for="item in details.workDetail.gbPath" :preview-src-list="details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/index.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/index.vue b/src/views/specialWorkSystem/workTicket/approve/index.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/index.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,815 +0,0 @@
+-<template>
+-    <div class="home-container">
+-<!--        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">-->
+-<!--            <el-tab-pane label="申请中" name="1">-->
+-                <div style="height: 100%">
+-                    <el-row class="homeCard">
+-                        <span>作业类型:</span>
+-                        <el-col :span="10">
+-                            <div class="grid-content topInfo">
+-                                <el-select v-model="searchWord">
+-                                    <el-option
+-                                            v-for="item in workType"
+-                                            :key="item.id"
+-                                            :label="item.name"
+-                                            :value="item.id"
+-                                    />
+-                                </el-select>
+-                                <el-button type="primary" @click="searchRecord">查询</el-button>
+-                                <el-button plain @click="clearSearch">重置</el-button>
+-                            </div>
+-                        </el-col>
+-                    </el-row>
+-                    <div class="homeCard">
+-                        <div class="main-card">
+-                            <el-row class="cardTop">
+-                                <el-col :span="12" class="mainCardBtn">
+-                                    <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button>
+-                                    <!--									<el-button type="danger" :icon="Delete" size="default">删除</el-button>-->
+-                                    <!--									<el-button type="success" size="default">设置分类</el-button>-->
+-                                </el-col>
+-                                <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
+-                            </el-row>
+-                            <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
+-                                <el-table-column property="applyUname" label="申请人" />
+-                                <el-table-column property="depName" label="部门名称" />
+-                                <el-table-column property="operators" label="作业人" />
+-                                <el-table-column property="workTypeDesc" label="作业类型" />
+-                                <el-table-column property="workLevelDesc" label="作业等级" />
+-                                <el-table-column property="applyTime" label="申请时间" width="180" />
+-                                <el-table-column label="审批状态" align="center" width="180">
+-                                    <template #default="scope">
+-                                        <el-tag :type="scope.row.status==2?'success':(scope.row.status==8||scope.row.status==9)?'warning':'danger'">{{ scope.row.statusDesc }}</el-tag>
+-                                    </template>
+-                                </el-table-column>
+-                                <el-table-column fixed="right" label="操作" align="center" width="250">
+-                                    <template #default="scope">
+-                                        <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
+-                                        <el-button link type="success" size="small" :icon="Finished" @click="viewStatus(scope.row)">进度</el-button>
+-<!--                                        <el-button link type="warning" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">终止</el-button>-->
+-                                    </template>
+-                                </el-table-column>
+-                            </el-table>
+-                            <div class="pageBtn">
+-                                <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
+-                            </div>
+-                        </div>
+-                    </div>
+-                </div>
+-                <el-dialog v-model="dialogDetails" title="作业审批详情" center>
+-                    <fire v-if="dialogType == 1" :details = details></fire>
+-                    <space v-else-if="dialogType == 2" :details = details></space>
+-                    <hoist v-else-if="dialogType == 3" :details = details></hoist>
+-                    <ground v-else-if="dialogType == 4" :details = details></ground>
+-                    <broken v-else-if="dialogType == 5" :details = details></broken>
+-                    <height v-else-if="dialogType == 6" :details = details></height>
+-                    <power v-else-if="dialogType == 7" :details = details></power>
+-                    <plate v-else :details = details></plate>
+-                    <template #footer>
+-                      <span class="dialog-footer">
+-                        <el-button type="primary" @click="dialogDetails = false"
+-                        >确认</el-button
+-                        >
+-                      </span>
+-                    </template>
+-                </el-dialog>
+-                <el-dialog v-model="dialogStatus" title="作业审批进度" center width="60%">
+-                    <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px">
+-                        <el-form-item label="申请作业人">
+-                            <el-input v-model="approveInfo.operators" readonly type="textarea" />
+-                        </el-form-item>
+-                    </el-form>
+-                    <div style="display: flex; flex-direction: column-reverse">
+-                        <div v-for="(item, index) in approveInfo.approvalSteps" class="stepItem">
+-                            <div class="stepNum">{{ item.stepSerial }}</div>
+-                            <div class="stepCard">
+-                                <el-card class="box-card" shadow="always">
+-                                    <div class="text">
+-                                        审批结果:<span class="bold-text">{{ item.approvalResultDesc }}</span>
+-                                    </div>
+-                                    <div class="text">
+-                                        审批层级:<span class="bold-text">{{ item.typeDesc }}</span>
+-                                    </div>
+-                                    <div class="text" v-if="item.auditTypeDesc">
+-                                        审批类型:<span class="bold-text">{{ item.auditTypeDesc }}</span>
+-                                    </div>
+-                                    <div class="text" v-show="item.startApprovalTime != null">
+-                                        开始时间:<span>{{ item.startApprovalTime }}</span>
+-                                    </div>
+-                                    <div class="approveUnit">
+-                                        <div class="item-tit"><span>审批人</span><span>审批状态</span></div>
+-                                        <div class="item-cont" v-for="i in item.stepUnits">
+-                                            <span>{{ i.approvalUname }}</span
+-                                            ><span>{{ i.resultDesc }}</span>
+-                                        </div>
+-                                    </div>
+-                                    <div class="approveItem">
+-                                        <div class="item-tit">
+-                                            <span>审批项目</span>
+-<!--                                            <span>类型</span>-->
+-                                            <div>措施标准</div>
+-                                        </div>
+-                                        <div class="item-cont" v-for="i in item.stepItems">
+-                                            <span>{{ i.itemName }}</span>
+-<!--                                            <span>{{ i.typeDesc }}</span>-->
+-                                            <div v-if="i.measure !== null">
+-                                                <div>
+-                                                    <span>作业类型:</span><span>{{ i.measure.workTypeDesc }}</span>
+-                                                </div>
+-                                                <div>
+-                                                    <span>措施内容:</span><span>{{ i.measure.context }}</span>
+-                                                </div>
+-                                            </div>
+-                                            <div v-if="i.stand !== null">
+-                                                <div>
+-                                                    <span>标题名称:</span><span>{{ i.stand.title }}</span>
+-                                                </div>
+-                                                <div>
+-                                                    <span>标准内容:</span><span>{{ i.stand.typeDesc }}</span>
+-                                                </div>
+-                                            </div>
+-                                        </div>
+-                                    </div>
+-                                    <div class="text" v-show="item.expFinishApprovalTime != null">
+-                                        期望结束时间:<span>{{ item.expFinishApprovalTime }}</span>
+-                                    </div>
+-                                    <div class="text" v-show="item.finishApprovalTime != null">
+-                                        结束时间:<span>{{ item.finishApprovalTime }}</span>
+-                                    </div>
+-                                </el-card>
+-                            </div>
+-                        </div>
+-                    </div>
+-                </el-dialog>
+-                <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
+-                    <span>您确定要终止该条审批吗?</span>
+-                    <template #footer>
+-                        <span class="dialog-footer">
+-                            <el-button @click="deleteDialog = false" size="default">取消</el-button>
+-                            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
+-                        </span>
+-                    </template>
+-                </el-dialog>
+-<!--            </el-tab-pane>-->
+-<!--            <el-tab-pane label="已通过" name="2">-->
+-<!--                <div style="height: 100%">-->
+-<!--                    <el-row class="homeCard">-->
+-<!--                        <el-col :span="8">-->
+-<!--                            <div class="grid-content topInfo">-->
+-<!--                                <el-input v-model="searchWord" placeholder="作业证名称"></el-input>-->
+-<!--                                <el-button type="primary">查询</el-button>-->
+-<!--                                <el-button plain>重置</el-button>-->
+-<!--                            </div>-->
+-<!--                        </el-col>-->
+-<!--                    </el-row>-->
+-<!--                    <div class="homeCard">-->
+-<!--                        <div class="main-card">-->
+-<!--                            <el-table ref="multipleTableRef" :data="passedData" style="width: 100%" height="calc(100% - 48px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">-->
+-<!--                                <el-table-column type="selection" width="55" />-->
+-<!--                                <el-table-column type="index" label="编号" width="200" />-->
+-<!--                                <el-table-column property="level" label="作业证等级" width="180" sortable />-->
+-<!--                                <el-table-column property="applyDate" label="申请日期" sortable />-->
+-<!--                                <el-table-column property="name" label="申请人" width="180" />-->
+-<!--                                <el-table-column property="department" label="申请部门" width="180" />-->
+-<!--                                <el-table-column label="申请状态" width="180">-->
+-<!--                                    <template #default="scope">-->
+-<!--                                        <el-tag type="success">{{ scope.row.status }}</el-tag>-->
+-<!--                                    </template>-->
+-<!--                                </el-table-column>-->
+-<!--                            </el-table>-->
+-<!--                            <div class="pageBtn">-->
+-<!--                                <el-pagination v-model:currentPage="pageIndex2" v-model:page-size="pageSize2" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize2" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />-->
+-<!--                            </div>-->
+-<!--                        </div>-->
+-<!--                    </div>-->
+-<!--                </div>-->
+-<!--            </el-tab-pane>-->
+-<!--        </el-tabs>-->
+-    </div>
+-</template>
+-
+-<script lang="ts">
+-import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue';
+-import { storeToRefs } from 'pinia';
+-import { initBackEndControlRoutes } from '/@/router/backEnd';
+-import { useUserInfo } from '/@/stores/userInfo';
+-import { Session } from '/@/utils/storage';
+-import { useRouter } from 'vue-router';
+-import { Edit, View, Plus, Delete, Refresh, Search, Finished } from '@element-plus/icons-vue';
+-import { ElTable } from 'element-plus';
+-import { FormInstance, FormRules, ElMessage } from 'element-plus';
+-import { workApprovalApi } from '/@/api/specialWorkSystem/workApproval';
+-import type { TabsPaneContext } from 'element-plus';
+-import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage";
+-
+-// 定义接口来定义对象的类型
+-interface stateType {
+-    applyData: Array<string>;
+-    workTimeList: Array<string>;
+-    multipleSelection: Array<any>;
+-    deleteArr: Array<any>;
+-    approveInfo: Object;
+-    dialogDetails: boolean;
+-    dialogStatus: boolean;
+-    deleteDialog: boolean;
+-    pageIndex1: number;
+-    pageSize1: number;
+-    chosenIndex: null | number;
+-    deleteId: null | number;
+-    searchWord: string;
+-    totalSize1: number;
+-    activeName: string;
+-    addRecord: {};
+-    details: {};
+-    statusInfo: {};
+-    workType: Array<type>;
+-    dialogType: number | null;
+-    departmentList: Array<any>;
+-    departmentRecursionList: Array<DepartmentState>;
+-}
+-interface type {
+-    id: number;
+-    name: string;
+-}
+-interface DepartmentState {
+-    depId: number;
+-    depName: string;
+-}
+-export default defineComponent({
+-    name: 'myApproval',
+-    components: {
+-        fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/fireLog.vue')),
+-        space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/spaceLog.vue')),
+-        hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/hoistLog.vue')),
+-        ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue')),
+-        broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue')),
+-        height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/heightLog.vue')),
+-        power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/powerLog.vue')),
+-        plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue'))
+-    },
+-    setup() {
+-        const userInfo = useUserInfo();
+-        const { userInfos } = storeToRefs(userInfo);
+-        const router = useRouter();
+-        const state = reactive<stateType>({
+-            pageIndex1: 1,
+-            pageSize1: 10,
+-            totalSize1: 0,
+-            dialogType: null,
+-            activeName: '1',
+-            departmentList: [],
+-            departmentRecursionList: [],
+-            chosenIndex: null,
+-            searchWord: '',
+-            applyData: [],
+-            workTimeList: [],
+-            multipleSelection: [],
+-            approveInfo: {
+-                approvalSteps: [],
+-                operators: []
+-            },
+-            dialogDetails: false,
+-            dialogStatus: false,
+-            deleteDialog: false,
+-            addRecord: {},
+-            details: {},
+-            statusInfo: {},
+-            deleteId: null,
+-            deleteArr: [],
+-            workType: [
+-                { id: 1, name: '动火作业' },
+-                { id: 2, name: '受限空间作业' },
+-                { id: 3, name: '吊装作业' },
+-                { id: 4, name: '动土作业' },
+-                { id: 5, name: '断路作业' },
+-                { id: 6, name: '高处作业' },
+-                { id: 7, name: '临时用电作业' },
+-                { id: 8, name: '盲板抽堵作业' }
+-            ]
+-        });
+-        interface User {
+-            name: string;
+-            list: [];
+-            info: string;
+-        }
+-
+-        // 刷新
+-        const reLoadData = async () => {
+-            getListByPage();
+-        };
+-
+-        // 填写表单
+-        const toApply = () => {
+-            router.push({
+-                path: 'apply'
+-            });
+-        };
+-
+-        const handleClick = (tab: TabsPaneContext, event: Event) => {
+-            console.log(tab, event);
+-        };
+-
+-        // 获取部门列表
+-        const getAllDepartment = async () => {
+-            let res = await teamManageApi().getAllDepartment();
+-            if (res.data.code === '200') {
+-                state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+-                recursion(state.departmentList);
+-            } else {
+-                ElMessage({
+-                    type: 'warning',
+-                    message: res.data.msg
+-                });
+-            }
+-        };
+-
+-        // 获取层级审批数据
+-        // const getApprovalData = async (id) => {
+-        //     let res = await workApprovalApi().getApprovalData({workApplyId: id});
+-        //     if (res.data.code === '200') {
+-        //         console.log(res.data.data,'层级数据')
+-        //         // state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+-        //         // recursion(state.departmentList);
+-        //     } else {
+-        //         ElMessage({
+-        //             type: 'warning',
+-        //             message: res.data.msg
+-        //         });
+-        //     }
+-        // };
+-
+-        const recursion = (value: any) => {
+-            for (let i of value) {
+-                if (i.children.length !== 0) {
+-                    state.departmentRecursionList.push(i);
+-                    recursion(i.children);
+-                } else {
+-                    state.departmentRecursionList.push(i);
+-                }
+-            }
+-        };
+-
+-        // 分页获取工作时间组列表
+-        const getListByPage = async () => {
+-            const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } };
+-            let res = await workApprovalApi().getApprovalListPage(data);
+-            if (res.data.code === '200') {
+-                state.applyData = JSON.parse(JSON.stringify(res.data.data));
+-                state.applyData = state.applyData.map((item) => {
+-                    if (item.operators == null || item.operators == []) {
+-                        item.operators = [];
+-                    } else {
+-                        item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname);
+-                    }
+-                    return item;
+-                });
+-                state.totalSize1 = res.data.total;
+-            } else {
+-                ElMessage({
+-                    type: 'warning',
+-                    message: res.data.msg
+-                });
+-            }
+-        };
+-
+-        // 关键词查询记录
+-        const searchRecord = async () => {
+-            if (state.searchWord == '') {
+-                ElMessage({
+-                    type: 'warning',
+-                    message: '请输入查询关键词'
+-                });
+-            } else {
+-                getListByPage();
+-            }
+-        };
+-        // 重置搜索
+-        const clearSearch = async () => {
+-            state.searchWord = '';
+-            getListByPage();
+-        };
+-
+-        // 查看进度
+-        const viewStatus = (row) => {
+-            getStatus({ workApplyId: row.workApplyId });
+-            state.dialogStatus = true;
+-        };
+-
+-        // 查询进度方法
+-        const getStatus = async (data: any) => {
+-            let res = await workApprovalApi().getApprovalStatus(data);
+-            if (res.data.code === '200') {
+-                state.approveInfo = JSON.parse(JSON.stringify(res.data.data));
+-                state.approveInfo.operators = Array.from(state.approveInfo.operators, ({ operatorUname }) => operatorUname);
+-                console.log(state.approveInfo, '我的审批');
+-            } else {
+-                ElMessage({
+-                    type: 'warning',
+-                    message: res.data.msg
+-                });
+-            }
+-        };
+-
+-        const deleteRecordBtn = (row) => {
+-            state.deleteId = row.workApplyId;
+-            state.deleteDialog = true;
+-        };
+-
+-        // 取消申请方法
+-        const deleteRecord = async (data: any) => {
+-            let res = await workApprovalApi().postAbord(data);
+-            if (res.data.code === '200') {
+-                ElMessage({
+-                    type: 'success',
+-                    message: '取消成功!'
+-                });
+-                getListByPage();
+-            } else {
+-                ElMessage({
+-                    type: 'warning',
+-                    message: res.data.msg
+-                });
+-            }
+-        };
+-
+-        const conFirmDelete = () => {
+-            deleteRecord({ workApplyId: state.deleteId });
+-            state.deleteDialog = false;
+-        };
+-
+-        const handleSizeChange1 = (val: number) => {
+-            state.pageSize1 = val;
+-            getListByPage();
+-        };
+-        const handleCurrentChange1 = (val: number) => {
+-            state.pageIndex1 = val;
+-            getListByPage();
+-        };
+-
+-        // 查看记录
+-        const viewRecord = (row: any) => {
+-            state.dialogType = row.workType
+-            state.details = JSON.parse(JSON.stringify(row));
+-            console.log(state.details,'details')
+-            // getApprovalData(state.details.workApplyId)
+-            if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){
+-                state.details.workDetail.otherSpecialWork=[]
+-            }
+-            else {
+-                console.log(state.details.workDetail.otherSpecialWork,'split')
+-                const a = state.details.workDetail.otherSpecialWork
+-                state.details.workDetail.otherSpecialWork = a.split(',').map((item) => {
+-                    return state.workType.find((i: { id: number }) => i.id === Number(item))?.name;
+-                });
+-            }
+-            if(state.details.workDetail.involvedDepIds == '' || !state.details.workDetail.involvedDepIds){
+-                state.details.workDetail.involvedDepIds=[]
+-            }
+-            else {
+-                const a = state.details.workDetail.involvedDepIds
+-                state.details.workDetail.involvedDepIds = a.split(',').map((item) => {
+-                    return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName;
+-                });
+-            }
+-            if(state.details.workDetail.csDepId){
+-                state.details.workDetail.csDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.csDepId))?.depName;
+-            }
+-            if(state.details.workDetail.operationDepId){
+-                state.details.workDetail.operationDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.operationDepId))?.depName;
+-            }
+-            if(state.details.workDetail.gbPath){
+-                state.details.workDetail.gbPath = state.details.workDetail.gbPath.split(',')
+-            }
+-            if(state.details.workDetail.bcPath){
+-                state.details.workDetail.bcPath = state.details.workDetail.bcPath.split(',')
+-            }
+-            if(state.details.workDetail.bpLocationMapPath){
+-                state.details.workDetail.bpLocationMapPath = state.details.workDetail.bpLocationMapPath.split(',')
+-            }
+-            state.dialogDetails = true;
+-        };
+-
+-        // 折线图
+-        const renderMenu = async (value: string) => {
+-            Session.set('projectId', value);
+-            userInfos.value.projectId = value;
+-            await initBackEndControlRoutes();
+-        };
+-
+-        // 页面载入时执行方法
+-        onMounted(() => {
+-            getListByPage();
+-            getAllDepartment()
+-        });
+-
+-        return {
+-            View,
+-            Edit,
+-            Delete,
+-            Refresh,
+-            Plus,
+-            Finished,
+-            reLoadData,
+-            toApply,
+-            handleClick,
+-            searchRecord,
+-            clearSearch,
+-            viewRecord,
+-            viewStatus,
+-            deleteRecordBtn,
+-            conFirmDelete,
+-            getListByPage,
+-            handleSizeChange1,
+-            handleCurrentChange1,
+-            ...toRefs(state)
+-        };
+-    }
+-});
+-</script>
+-
+-<style scoped lang="scss">
+-$homeNavLengh: 8;
+-.home-container {
+-    height: calc(100vh - 144px);
+-    box-sizing: border-box;
+-    overflow: hidden;
+-    .demo-tabs {
+-        width: 100%;
+-        height: 100%;
+-
+-        &::v-deep(.el-tabs__content) {
+-            height: calc(100% - 60px);
+-        }
+-
+-        .el-tab-pane {
+-            height: 100%;
+-        }
+-    }
+-    .homeCard {
+-        width: 100%;
+-        padding: 20px;
+-        box-sizing: border-box;
+-        background: #fff;
+-        border-radius: 4px;
+-
+-        .main-card {
+-            width: 100%;
+-            height: 100%;
+-            .cardTop {
+-                display: flex;
+-                align-items: center;
+-                justify-content: space-between;
+-                margin-bottom: 20px;
+-                .mainCardBtn {
+-                    margin: 0;
+-                }
+-            }
+-            .pageBtn {
+-                height: 60px;
+-                display: flex;
+-                align-items: center;
+-                justify-content: right;
+-
+-                .demo-pagination-block + .demo-pagination-block {
+-                    margin-top: 10px;
+-                }
+-                .demo-pagination-block .demonstration {
+-                    margin-bottom: 16px;
+-                }
+-            }
+-        }
+-        &:last-of-type {
+-            height: calc(100% - 100px);
+-        }
+-    }
+-    .stepItem {
+-        display: flex;
+-        align-items: flex-start;
+-        margin-top: 30px;
+-        margin-left: 30px;
+-        padding-bottom: 30px;
+-        padding-left: 40px;
+-        border-left: 1px solid #a0cfff;
+-        position: relative;
+-        &:first-of-type {
+-            margin-top: 30px;
+-        }
+-        &:first-of-type {
+-            margin-bottom: 0;
+-            border-left: none;
+-        }
+-        .stepNum {
+-            position: absolute;
+-            width: 40px;
+-            height: 40px;
+-            border-radius: 20px;
+-            box-sizing: border-box;
+-            font-size: 18px;
+-            color: #333;
+-            border: 1px solid #a0cfff;
+-            line-height: 38px;
+-            text-align: center;
+-            left: -20px;
+-            top: -30px;
+-            background: #d9ecff;
+-        }
+-        .stepCard {
+-            width: 100%;
+-            margin-top: -30px;
+-
+-            .box-card {
+-                width: 100%;
+-
+-                .card-header {
+-                    display: flex;
+-                    justify-content: space-between;
+-                    align-items: center;
+-
+-                    span {
+-                        font-weight: bold;
+-                        margin-left: 10px;
+-                    }
+-                }
+-
+-                .text {
+-                    width: 100%;
+-                    font-size: 14px;
+-                    margin-bottom: 10px;
+-                    padding-left: 10px;
+-
+-                    span {
+-                        color: #409eff;
+-                    }
+-
+-                    .bold-text{
+-                        font-weight: bolder;
+-                    }
+-
+-                    &:last-of-type {
+-                        margin-bottom: 0;
+-                    }
+-                }
+-                .approveUnit {
+-                    width: 100%;
+-                    font-size: 14px;
+-                    margin-bottom: 20px;
+-                    padding: 10px 15px;
+-                    border: 1px solid #fff;
+-                    background: #ecf8ff;
+-                    border-radius: 6px;
+-                    .item-tit {
+-                        width: 100%;
+-                        display: flex;
+-                        color: #409eff;
+-                        align-items: flex-start;
+-                        justify-content: space-between;
+-                        padding-bottom: 10px;
+-                        border-bottom: 1px solid #a0cfff;
+-
+-                        & > span {
+-                            flex: 1;
+-                            &:last-of-type{
+-                                text-align: center;
+-                            }
+-                        }
+-                        & > div {
+-                            flex: 1;
+-                            text-align: center;
+-                        }
+-                    }
+-                    .item-cont {
+-                        width: 100%;
+-                        display: flex;
+-                        align-items: center;
+-                        justify-content: space-between;
+-                        padding: 10px 0;
+-                        border-bottom: 1px solid #c6e2ff;
+-
+-                        & > span {
+-                            flex: 1;
+-                            &:last-of-type{
+-                                text-align: center;
+-                            }
+-                        }
+-                        & > div {
+-                            flex: 1;
+-                            text-align: center;
+-
+-                            & > div {
+-                                text-align: left;
+-                                width: 100%;
+-                                display: flex;
+-                                justify-content: center;
+-                                align-items: center;
+-                                span {
+-                                    width: 45%;
+-                                    &:first-of-type {
+-                                        width: 30%;
+-                                    }
+-                                }
+-                            }
+-                        }
+-                        &:last-of-type {
+-                            border-bottom: 0;
+-                        }
+-                    }
+-                }
+-                .approveItem {
+-                    width: 100%;
+-                    font-size: 14px;
+-                    margin-bottom: 20px;
+-                    padding: 10px 15px;
+-                    background: #ecf8ff;
+-                    border: 1px solid #fff;
+-                    border-radius: 6px;
+-                    .item-tit {
+-                        width: 100%;
+-                        display: flex;
+-                        color: #409eff;
+-                        align-items: flex-start;
+-                        justify-content: space-between;
+-                        padding-bottom: 10px;
+-                        border-bottom: 1px solid #a0cfff;
+-
+-                        & > span {
+-                            flex: 1;
+-                        }
+-                        & > div {
+-                            flex: 2;
+-                            text-align: center;
+-                        }
+-                    }
+-                    .item-cont {
+-                        width: 100%;
+-                        display: flex;
+-                        align-items: center;
+-                        justify-content: space-between;
+-                        padding: 10px 0;
+-                        border-bottom: 1px solid #c6e2ff;
+-
+-                        & > span {
+-                            flex: 1;
+-                        }
+-                        & > div {
+-                            flex: 2;
+-                            text-align: center;
+-
+-                            & > div {
+-                                text-align: left;
+-                                width: 100%;
+-                                display: flex;
+-                                justify-content: center;
+-                                align-items: flex-start;
+-                                margin-bottom: 10px;
+-                                span {
+-                                    width: 50%;
+-                                    &:first-of-type {
+-                                        width: 25%;
+-                                    }
+-                                }
+-                            }
+-                        }
+-                        &:last-of-type {
+-                            border-bottom: 0;
+-                        }
+-                    }
+-                }
+-            }
+-        }
+-        &:hover .card-header {
+-            color: #0098f5;
+-        }
+-        &:hover .stepNum {
+-            border: 2px solid #0098f5;
+-            color: #0098f5;
+-        }
+-    }
+-    .el-row {
+-        display: flex;
+-        align-items: center;
+-        margin-bottom: 20px;
+-        &:last-child {
+-            margin-bottom: 0;
+-        }
+-        .grid-content {
+-            align-items: center;
+-            min-height: 36px;
+-        }
+-
+-        .topInfo {
+-            display: flex;
+-            align-items: center;
+-            font-size: 16px;
+-            font-weight: bold;
+-
+-            & > div {
+-                white-space: nowrap;
+-                margin-right: 20px;
+-            }
+-        }
+-    }
+-    .el-card {
+-        border: 0;
+-    }
+-}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,149 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="受限空间所属单位">
+-				<el-input v-model="details.workDetail.csDepId" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="受限空间名称">
+-				<el-input v-model="details.workDetail.csName" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="空间原有介质名称">
+-				<el-input v-model="details.workDetail.csOriginalName" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/apply/components/broken.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/apply/components/broken.vue b/src/views/specialWorkSystem/workTicket/apply/components/broken.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/apply/components/broken.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,632 +0,0 @@
+-<template>
+-	<div class="home-container">
+-		<div style="height: 100%">
+-		<el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef">
+-			<div class="homeCard">
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业人" prop="operatorUids">
+-						<el-select v-model="form.operatorUids" multiple>
+-							<el-option
+-									v-for="item in workerList"
+-									:key="item.uid"
+-									:label="item.username"
+-									:value="item.uid"
+-							/>
+-						</el-select>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业时间" prop="workTimeLine">
+-						<el-date-picker
+-								v-model="form.workTimeLine"
+-								format="YYYY-MM-DD HH:mm"
+-								value-format="YYYY-MM-DD HH:mm:00"
+-								type="datetimerange"
+-								range-separator="至"
+-								start-placeholder="开始时间"
+-								end-placeholder="结束时间"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业内容" prop="workContent">
+-						<el-input
+-								v-model="form.workContent"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业内容"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="作业地址" prop="workLocation">
+-						<el-input
+-								v-model="form.workLocation"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入作业地址"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="危害辨识" prop="hazardIdentification">
+-						<el-input
+-								v-model="form.hazardIdentification"
+-								placeholder="请输入危害辨识"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-				<el-divider border-style="dashed"/>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="作业单位" prop="workDetail.operationDepId">
+-<!--						<el-select v-model="form.workDetail.operationDepId">-->
+-<!--							<el-option-->
+-<!--									v-for="item in csDepList"-->
+-<!--									:key="item.value"-->
+-<!--									:label="item.label"-->
+-<!--									:value="item.value"-->
+-<!--							/>-->
+-<!--						</el-select>-->
+-						<el-cascader v-model="form.workDetail.operationDepId" :options="departList" :props="casProps2" :show-all-levels="false" @change="handleChange2" />
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="断路原因" prop="workDetail.bcReason">
+-						<el-input
+-								v-model="form.workDetail.bcReason"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="断路地段说明" prop="workDetail.bcExplain">
+-						<el-input
+-								v-model="form.workDetail.bcExplain"
+-								autosize
+-								type="textarea"
+-								placeholder="请输入"
+-						/>
+-					</el-form-item>
+-				</el-col>
+-				<el-col :span="12">
+-					<el-form-item label="涉及相关部门" prop="workDetail.involvedDepIds">
+-						<el-cascader v-model="form.workDetail.involvedDepIds" :options="departList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="24">
+-					<el-form-item label="图片上传" prop="workDetail.bcPath">
+-						<el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
+-							<el-icon><Plus /></el-icon>
+-							<template #tip>
+-								<div class="el-upload__tip">上传jpg/png图片尺寸小于500KB,最多可上传3张</div>
+-							</template>
+-						</el-upload>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			<el-row>
+-				<el-col :span="12">
+-					<el-form-item label="选择关联物资">
+-						<el-button type="primary" @click="getMaList">选择物资标准</el-button>
+-					</el-form-item>
+-				</el-col>
+-			</el-row>
+-			</div>
+-		</el-form>
+-		<el-dialog v-model="equipmentDialog" title="关联物资标准" width="40%" center @close="closeMaterial">
+-			<el-tabs tab-position="left" class="demo-tabs" type="border-card">
+-				<el-tab-pane v-for="(item,index) in materialList" :label="item.materialTypeName" :key="index">
+-					<div style="margin-bottom: 20px">
+-						<el-form label-width="150px" label-position="top">
+-							<div v-if="item.mustList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">必选</div>
+-							<el-form-item v-if="item.mustList.length>0" class="tab-i" v-for="(i,x) in item.mustList" :key="x" :label="item.mustList[x].materialName + ':'" prop="defaultVal" :rules="[{ type: 'defaultVal', required: true, message: '该内容不能为空', trigger: 'blur'}]">
+-								<el-input size="default" type="number" v-model="item.mustList[x].value" @change="(val)=>toZero(val,index,'mustList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.mustList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-							<div v-if="item.unList.length>0" style="width: 100%;border-bottom: 1px solid #ccc;padding-bottom: 6px;margin-bottom: 10px;font-weight: bolder">其他</div>
+-							<el-form-item v-if="item.unList.length>0" class="tab-i" v-for="(i,x) in item.unList" :key="x" :label="item.unList[x].materialName + ':'">
+-								<el-input size="default" type="number" v-model="item.unList[x].value" @change="(val)=>toZero(val,index,'unList',x)" placeholder="请输入配置数量,空值默认为0">
+-									<template #append>{{'库存:' + item.unList[x].stock}}</template>
+-								</el-input>
+-							</el-form-item>
+-						</el-form>
+-					</div>
+-				</el-tab-pane>
+-			</el-tabs>
+-			<template #footer>
+-			<span class="dialog-footer">
+-				<el-button @click="equipmentDialog = false" size="default">取消</el-button>
+-				<el-button type="primary" @click="conFirmDevices" size="default">确认</el-button>
+-			</span>
+-			</template>
+-		</el-dialog>
+-		<div class="applyBtn">
+-			<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button>
+-		</div>
+-	</div>
+-	<el-dialog v-model="dialogVisible">
+-		<img w-full :src="dialogImageUrl" alt="Preview Image" />
+-	</el-dialog>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage, ElMessageBox } from 'element-plus'
+-	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-	import axios from 'axios';
+-
+-	interface stateType {
+-		equipmentDialog: boolean,
+-		form: Object,
+-		csDepList: Array<any>,
+-		fileList: Array<file>,
+-		uploadUrl: string,
+-		dialogVisible: Boolean,
+-		dialogImageUrl: string | null,
+-		imgLimit: number,
+-		casProps: {},
+-		casProps2: {},
+-		isOverSize: boolean,
+-		materialList: Array<any>
+-	}
+-	interface file {
+-		url: string;
+-	}
+-	export default defineComponent({
+-		name: 'brokenForm',
+-		components: {},
+-		props:['workerList','departList'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			const state  = reactive<stateType>({
+-				equipmentDialog: false,
+-				form: {
+-					operatorUids: [],
+-					workType: 5,
+-					workLevel: 0,
+-					workContent: '',
+-					workLocation: '',
+-					hazardIdentification: '',
+-					workDetail:{
+-						operationDepId: null,
+-						bcReason: '',
+-						bcExplain: '',
+-						bcPath: [],
+-						involvedDepIds: []
+-					},
+-					wmAddReqDTOList: [],
+-					workTimeLine: [],
+-					expStartTime: '',
+-					expEndTime: ''
+-				},
+-				materialList: [],
+-				isOverSize: false,
+-				fileList: [],
+-				imgLimit: 3,
+-				uploadUrl: '',
+-				dialogVisible: false,
+-				dialogImageUrl: null,
+-				csDepList: [
+-					{
+-						label: "单位一",
+-						value: 1
+-					},
+-					{
+-						label: "单位二",
+-						value: 2
+-					},
+-					{
+-						label: "单位三",
+-						value: 3
+-					},
+-					{
+-						label: "单位四",
+-						value: 4
+-					},
+-					{
+-						label: "单位五",
+-						value: 5
+-					},
+-					{
+-						label: "单位六",
+-						value: 6
+-					}
+-				],
+-				casProps: {
+-					emitPath: false,
+-					value: 'depId',
+-					label: 'depName',
+-					multiple: true
+-				},
+-				casProps2: {
+-					emitPath: false,
+-					value: 'depId',
+-					label: 'depName',
+-					multiple: false,
+-					expandTrigger: 'hover',
+-					checkStrictly: true
+-				}
+-			});
+-			const ruleFormRef = ref<FormInstance>()
+-			const applyRules = reactive<FormRules>({
+-				operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bcExplain": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.bcPath": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+-				"workDetail.involvedDepIds": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+-			});
+-
+-			const toZero = (value: string | number,index: number,name: string,x:number) =>{
+-				if(!value){
+-					state.materialList[index][name][x].value = 0
+-				}
+-			}
+-
+-			const submitForm = async (formEl: FormInstance | undefined) => {
+-				if (!formEl) return
+-				await formEl.validate(async (valid, fields) => {
+-					if (valid) {
+-						for(let i in state.materialList){
+-							for(let j in state.materialList[i].mustList){
+-								if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							for(let j in state.materialList[i].unList){
+-								if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-									ElMessage({
+-										type: 'warning',
+-										message: '部分物资库存不足,请重新配置数量。'
+-									});
+-									return
+-								}
+-							}
+-							state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-								const obj = {
+-									defaultVal: item.value,
+-									id: item.id
+-								}
+-								return {...obj}
+-							})
+-							state.materialList[i].postList = [...state.materialList[i].mustList,...state.materialList[i].unList]
+-							state.form.wmAddReqDTOList = [...state.form.wmAddReqDTOList,...state.materialList[i].postList]
+-						}
+-						state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]
+-						state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]
+-						let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form))
+-						data.workDetail.involvedDepIds = data.workDetail.involvedDepIds.join(',')
+-						data.workDetail.bcPath = data.workDetail.bcPath.join(',')
+-						const res = await workApplyApi().postBrokenApply(data)
+-						if (res.data.code === '200') {
+-								ElMessage({
+-									type: 'success',
+-									message: '提交成功!'
+-								});
+-								formEl.resetFields()
+-								state.form.workDetail.bcPath = []
+-								state.fileList = []
+-						} else {
+-							ElMessage({
+-								type: 'warning',
+-								message: res.data.msg
+-							});
+-						}
+-						state.materialList = []
+-					} else {
+-						console.log('error submit!', fields)
+-					}
+-				})
+-			}
+-
+-			const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
+-				console.log(uploadFile);
+-			};
+-
+-			const handlePictureCardPreview = (uploadFile: { url: string }) => {
+-				state.dialogImageUrl = uploadFile.url!;
+-				state.dialogVisible = true;
+-			};
+-
+-			const getUploadUrl = async (rawFile: any) => {
+-				const fileSize = rawFile.size / 1024 < 500 ? '1' : '0'
+-				if(fileSize === '0'){
+-					ElMessage({
+-						type: 'warning',
+-						message: '文件大小不能超过500k。'
+-					});
+-					state.isOverSize = true
+-					return false
+-				}else{
+-					const res = await workApplyApi().getUploadUrl(rawFile.name);
+-					state.form.workDetail.bcPath.push(res.data.data.fileName)
+-					state.uploadUrl = res.data.data.uploadUrl;
+-					console.log(res.data.data.fileName,'name')
+-				}
+-			};
+-
+-			const upload = async (params: any) => {
+-				// const formData = new FormData();
+-				// formData.append('file', state.fileList[0].raw);
+-				let reader = new FileReader();
+-				reader.readAsArrayBuffer(params.file);
+-				reader.onload = async () => {
+-					axios
+-							.put(state.uploadUrl, reader.result, {
+-								header: { 'Content-Type': 'multipart/form-data' }
+-							})
+-							.then(() => {
+-								// if (state.fileList.length === 2) {
+-								// 	state.fileList.splice(0, 1);
+-								// }
+-								// console.log(state.form.workDetail.bcPath,'bcPath')
+-							});
+-				};
+-			};
+-
+-			const beforeRemove = (file: {}, fileList: []) => {
+-				const result = new Promise((resolve, reject) => {
+-					if(!state.isOverSize){
+-						ElMessageBox.confirm('此操作将删除该图片, 是否继续?', '提示', {
+-							confirmButtonText: '确定',
+-							cancelButtonText: '取消',
+-							type: 'warning'
+-						})
+-								.then(() => {
+-									// console.log(state.workDetail.bcPath,'path')
+-									const list = JSON.parse(JSON.stringify(state.form.workDetail.bcPath))
+-									fileList.map((item,index)=>{
+-										if(item.uid === file.uid){
+-											fileList.splice(index,1)
+-											state.form.workDetail.bcPath.splice(index,1)
+-											deletePic(false,list[index])
+-										}
+-									})
+-									// 请求删除接口
+-								})
+-								.catch(() => {
+-									reject(false);
+-								});
+-					}else{
+-						const list = JSON.parse(JSON.stringify(state.form.workDetail.bcPath))
+-						fileList.map((item,index)=>{
+-							if(item.uid === file.uid){
+-								fileList.splice(index,1)
+-								state.form.workDetail.bcPath.splice(index,1)
+-								deletePic(true,list[index])
+-							}
+-						})
+-						state.isOverSize = false
+-					}
+-				});
+-				return result;
+-			};
+-
+-
+-			// 删除图片接口
+-			const deletePic = async(isOverSize:boolean,fileName:string)=>{
+-				console.log(fileName,'fileName')
+-				const res = await workApplyApi().deleteFile({fileName: fileName})
+-				if (res.data.code === '200') {
+-					ElMessage({
+-						type: isOverSize ? 'error' : 'success',
+-						message: isOverSize ? '上传失败':'删除成功!'
+-					});
+-				} else {
+-					ElMessage({
+-						type: 'warning',
+-						message: res.data.msg
+-					});
+-				}
+-			}
+-
+-			const showTip =()=>{
+-				ElMessage({
+-					type: 'warning',
+-					message: '超出文件上传数量'
+-				});
+-			}
+-
+-			// 确认物资标准
+-			const getMaList = async() =>{
+-				if(state.materialList.length == 0){
+-					const data = {workType: 5,workLevel: null}
+-					const res = await workApplyApi().getMaterial(data)
+-					if (res.data.code === '200') {
+-						if(res.data.data.materialTypeList && res.data.data.materialTypeList!=null&&res.data.data.materialTypeList.length>0){
+-							state.materialList = JSON.parse(JSON.stringify(res.data.data.materialTypeList))
+-							for(let i in state.materialList){
+-								state.materialList[i].mustList = []
+-								state.materialList[i].unList = []
+-								state.materialList[i].mdList = state.materialList[i].mdList?.map((item:any) => {
+-									if(item.configurationLevel == 0){
+-										state.materialList[i].mustList.push(item)
+-										return
+-									}else{
+-										state.materialList[i].unList.push(item)
+-										return
+-									}
+-								})
+-								state.materialList[i].mustList = state.materialList[i].mustList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-								state.materialList[i].unList = state.materialList[i].unList.map((item:any)=>{
+-									const obj = {
+-										value: item.defaultVal,
+-										materialName: item.materialName,
+-										configurationLevel: item.configurationLevel,
+-										id: item.id,
+-										stock: item.stock
+-									}
+-									return {...obj}
+-								})
+-							}
+-							state.equipmentDialog = true
+-						}else{
+-							ElMessage({
+-								type: 'warning',
+-								message: '暂时查询不到物资标准信息'
+-							});
+-						}
+-					} else {
+-						ElMessage({
+-							type: 'warning',
+-							message: res.data.msg
+-						});
+-					}
+-				}else{
+-					state.materialList = state.materialList
+-					state.equipmentDialog = true
+-				}
+-			}
+-			const conFirmDevices = ()=>{
+-				for(let i in state.materialList){
+-					for(let j in state.materialList[i].mustList){
+-						if(state.materialList[i].mustList[j].value>state.materialList[i].mustList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-					for(let j in state.materialList[i].unList){
+-						if(state.materialList[i].unList[j].value>state.materialList[i].unList[j].stock){
+-							ElMessage({
+-								type: 'warning',
+-								message: '部分物资库存不足,请重新配置数量。'
+-							});
+-							return
+-						}
+-					}
+-
+-				}
+-				ElMessageBox.confirm('是否确认物资及数量配置?')
+-						.then(() => {
+-							state.equipmentDialog = false
+-						})
+-						.catch(() => {
+-							// catch error
+-						})
+-			}
+-
+-			const closeMaterial = ()=>{
+-
+-			}
+-
+-			// 折线图
+-			const renderMenu = async (value: string) => {
+-				Session.set('projectId',value)
+-				userInfos.value.projectId = value
+-				await initBackEndControlRoutes();
+-			};
+-			return {
+-				renderMenu,
+-				Search,
+-				ruleFormRef,
+-				applyRules,
+-				toZero,
+-				getMaList,
+-				conFirmDevices,
+-				closeMaterial,
+-				handlePreview,
+-				getUploadUrl,
+-				beforeRemove,
+-				upload,
+-				showTip,
+-				submitForm,
+-				handlePictureCardPreview,
+-				...toRefs(state),
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.homeCard{
+-			width: 100%;
+-			padding: 20px;
+-			box-sizing: border-box;
+-			background: #fff;
+-			border-radius: 4px;
+-			margin-bottom: 20px;
+-		}
+-		.applyBtn{
+-			width: 100%;
+-			background: #fff;
+-			padding-top: 15px;
+-			z-index: 5;
+-			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+-			display: flex;
+-			align-items: center;
+-			justify-content: center;
+-		}
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		:deep(.el-cascader){
+-			width: 100% !important;
+-		}
+-	}
+-</style>
+Index: src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue
+===================================================================
+diff --git a/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue
+deleted file mode 100644
+--- a/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
++++ /dev/null	(revision 2bff5e788d4f7e505961270f0624aa3e78280e25)
+@@ -1,149 +0,0 @@
+-<template>
+-	<div style="height: 100%">
+-		<el-form :model="details" label-width="150px">
+-			<el-form-item label="作业申请单号">
+-				<el-input v-model="details.workPermitNo" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请人">
+-				<el-input v-model="details.applyUname" readonly />
+-			</el-form-item>
+-			<el-form-item label="部门名称">
+-				<el-input v-model="details.depName" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业人">
+-				<el-input v-model="details.operators" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业类型">
+-				<el-input v-model="details.workTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业等级">
+-				<el-input v-model="details.workLevelDesc" readonly />
+-			</el-form-item>
+-			<el-form-item label="作业内容">
+-				<el-input v-model="details.workContent" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="作业地址">
+-				<el-input v-model="details.workLocation" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="电源接入点">
+-				<el-input v-model="details.workDetail.powerAccessPoint" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="工作电压">
+-				<el-input v-model="details.workDetail.workingVoltage" readonly type="textarea"><template #append>伏特(v)</template></el-input>
+-			</el-form-item>
+-			<el-form-item label="用电设备及功率">
+-				<el-input v-model="details.workDetail.equipmentAndPower" readonly type="textarea" />
+-			</el-form-item>
+-			<el-form-item label="关联其他作业">
+-				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
+-			</el-form-item>
+-			<el-form-item label="期望开始时间">
+-				<el-input v-model="details.expStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="期望结束时间">
+-				<el-input v-model="details.expEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="申请时间">
+-				<el-input v-model="details.applyTime" readonly />
+-			</el-form-item>
+-<!--			<el-form-item label="当前层级">-->
+-<!--				<el-input v-model="details.stepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="上一层级">-->
+-<!--				<el-input v-model="details.preStepId" readonly />-->
+-<!--			</el-form-item>-->
+-<!--			<el-form-item label="下一层级">-->
+-<!--				<el-input v-model="details.nextStepId" readonly />-->
+-<!--			</el-form-item>-->
+-			<el-form-item label="层级审批类型">
+-				<el-input v-model="details.stepTypeDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepSerial && details.stepSerial!=null" label="层级排序号">
+-				<el-input v-model="details.stepSerial" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepStartApprovalTime && details.stepStartApprovalTime!=null" label="层级预期开始审批时间">
+-				<el-input v-model="details.stepStartApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepFinishApprovalTime && details.stepFinishApprovalTime!=null" label="层级预期结束审批时间">
+-				<el-input v-model="details.stepFinishApprovalTime" readonly />
+-			</el-form-item>
+-			<el-form-item label="审批人姓名">
+-				<el-input v-model="details.unitApprovalUname" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalStartTime && details.unitApprovalStartTime!=null"  label="单元审批开始时间">
+-				<el-input v-model="details.unitApprovalStartTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitApprovalEndTime && details.unitApprovalEndTime!=null" label="单元审批结束时间">
+-				<el-input v-model="details.unitApprovalEndTime" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.unitResultDesc && details.unitResultDesc!=null" label="单元审批结果">
+-				<el-input v-model="details.unitResultDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.statusDesc && details.statusDesc!=null" label="当前状态">
+-				<el-input v-model="details.statusDesc" readonly />
+-			</el-form-item>
+-			<el-form-item v-if="details.stepApprovalResultDesc && details.stepApprovalResultDesc!=null" label="审批结果">
+-				<el-input v-model="details.stepApprovalResultDesc" readonly />
+-			</el-form-item>
+-		</el-form>
+-	</div>
+-</template>
+-
+-<script lang="ts">
+-	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue';
+-	import { storeToRefs } from 'pinia';
+-	import { initBackEndControlRoutes } from '/@/router/backEnd';
+-	import {useUserInfo} from "/@/stores/userInfo";
+-	import { Session } from '/@/utils/storage';
+-	import { Search } from '@element-plus/icons-vue'
+-	import { ElMessage } from 'element-plus'
+-	import type { FormInstance, FormRules } from 'element-plus'
+-	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+-
+-
+-	interface stateType {
+-		form: Object,
+-		workerList: Array<any>,
+-		workTypeList: Array<any>,
+-		workLevelList: Array<any>,
+-		otherWorkList: Array<any>
+-	}
+-	export default defineComponent({
+-		name: 'space',
+-		components: {},
+-		props:['details'],
+-		setup() {
+-			const userInfo = useUserInfo()
+-			const { userInfos } = storeToRefs(userInfo);
+-			return {
+-				Search
+-			};
+-		},
+-	});
+-</script>
+-
+-<style scoped lang="scss">
+-	.home-container {
+-		height: 100%;
+-		overflow: hidden;
+-		position: relative;
+-		.el-row{
+-			margin-bottom: 20px;
+-		}
+-		.el-row:last-child {
+-			margin-bottom: 0;
+-		}
+-		.el-input{
+-			width: 100% !important;
+-		}
+-		.el-date-editor::v-deep{
+-			width: 100%;
+-		}
+-		.el-select{
+-			width: 100%;
+-		}
+-		.el-cascader{
+-			width: 100% !important;
+-		}
+-	}
+-</style>
diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41__Default_Changelist_.xml b/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41__Default_Changelist_.xml
new file mode 100644
index 0000000..946ad0f
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41__Default_Changelist_.xml
@@ -0,0 +1,4 @@
+<changelist name="Uncommitted_changes_before_Update_at_2022_10_13_14_41_[Default_Changelist]" date="1665643313431" recycled="true" deleted="true">
+  <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_2022_10_13_14_41_[Default_Changelist]/shelved.patch" />
+  <option name="DESCRIPTION" value="Uncommitted changes before Update at 2022/10/13 14:41 [Default Changelist]" />
+</changelist>
\ No newline at end of file
diff --git a/src/views/specialWorkSystem/flow/basicApprove/components/approveBasicDialog.vue b/src/views/specialWorkSystem/flow/basicApprove/components/approveBasicDialog.vue
index 1f29501..9cd39ee 100644
--- a/src/views/specialWorkSystem/flow/basicApprove/components/approveBasicDialog.vue
+++ b/src/views/specialWorkSystem/flow/basicApprove/components/approveBasicDialog.vue
@@ -125,13 +125,9 @@
             departmentList: [],
             isShowApproveBasicDialog: false,
             ruleStandTypeList: [
-                { id: 1, name: '可燃气浓度' },
-                { id: 2, name: '氧气浓度' },
-                { id: 3, name: '一氧化碳浓度' },
-                { id: 4, name: '硫化氢浓度' },
-                { id: 5, name: '温度' },
-                { id: 6, name: '压力' },
-                { id: 7, name: '震动' }
+                { id: 1, name: '可燃气体' },
+                { id: 3, name: '有毒有害气体' },
+                { id: 2, name: '氧气' },
             ],
             typeList: [
                 { id: 1, name: '大于' },
diff --git a/src/views/specialWorkSystem/flow/basicApprove/index.vue b/src/views/specialWorkSystem/flow/basicApprove/index.vue
index 021a4d1..87af29a 100644
--- a/src/views/specialWorkSystem/flow/basicApprove/index.vue
+++ b/src/views/specialWorkSystem/flow/basicApprove/index.vue
@@ -141,13 +141,9 @@
                 }
             },
             ruleStandTypeList: [
-                { id: 1, name: '可燃气浓度' },
-                { id: 2, name: '氧气浓度' },
-                { id: 3, name: '一氧化碳浓度' },
-                { id: 4, name: '硫化氢浓度' },
-                { id: 5, name: '温度' },
-                { id: 6, name: '压力' },
-                { id: 7, name: '震动' }
+                { id: 1, name: '可燃气体' },
+                { id: 3, name: '有毒有害气体' },
+                { id: 2, name: '氧气' },
             ],
             typeList: [
                 { id: 1, name: '大于' },

--
Gitblit v1.9.2