From eb706c505406a6a38ca396ad73262f364badea7e Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期四, 07 七月 2022 18:05:13 +0800 Subject: [PATCH] 添加页面组件 --- src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue | 160 +++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue | 162 +++- src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue | 210 +++++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue | 154 +++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue | 143 ++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue | 143 ++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue | 212 +++++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue | 166 +++++ src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue | 337 +++++++++++ 9 files changed, 1,640 insertions(+), 47 deletions(-) diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue new file mode 100644 index 0000000..39513f7 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue @@ -0,0 +1,337 @@ +<template> + <div class="comp-container"> + <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="bpDepartment"> + <el-select v-model="bpForm.bpDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="bpApplyName"> + <el-input + v-model="bpForm.bpApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="设备管道名称" prop="bpTubeName"> + <el-input + v-model="bpForm.bpTubeName" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="主要介质" prop="bpMainMatter"> + <el-input + v-model="bpForm.bpMainMatter" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="温度" prop="bpTemperature"> + <el-input + v-model="bpForm.bpTemperature" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="压力" prop="bpPressure"> + <el-input + v-model="bpForm.bpPressure" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板材质" prop="bpMaterial"> + <el-input + v-model="bpForm.bpMaterial" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板规格" prop="bpFormat"> + <el-input + v-model="bpForm.bpFormat" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板编号" prop="bpNum"> + <el-input + v-model="bpForm.bpNum" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板位置" prop="bpLocation"> + <el-input + v-model="bpForm.bpLocation" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板位置图" prop="fileList"> + <el-upload + v-model:file-list="fileList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="装盲板负责人" prop="bpPrincipals"> + <el-select v-model="bpForm.bpPrincipals" placeholder="请选择" multiple> + <el-option label="负责人一" value="负责人一" /> + <el-option label="负责人二" value="负责人二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="装盲板时间" prop="bpInstallTime"> + <el-date-picker + v-model="bpForm.bpInstallTime" + type="datetime" + placeholder="请选择" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="拆盲板负责人" prop="bpDePrincipals"> + <el-select v-model="bpForm.bpDePrincipals" placeholder="请选择" multiple> + <el-option label="负责人一" value="负责人一" /> + <el-option label="负责人二" value="负责人二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="拆盲板时间" prop="bpUninstallTime"> + <el-date-picker + v-model="bpForm.bpUninstallTime" + type="datetime" + placeholder="请选择" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'blindPanelForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const bpForm = reactive({ + bpDepartment: '', + bpApplyName: '', + bpTubeName: '', + bpMainMatter: '', + bpTemperature: '', + bpPressure: '', + bpMaterial: '', + bpFormat: '', + bpNum: '', + bpLocation: '', + fileList: [], + bpPrincipals: [], + bpInstallTime: '', + bpDePrincipals: [], + bpUninstallTime: '' + }) + const ruleFormRef = ref<FormInstance>() + const bpFormRules = reactive<FormRules>({ + bpDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + bpApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + bpTubeName: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpMainMatter: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpTemperature: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpPressure: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpMaterial: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpFormat: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpNum: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpLocation: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], + bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], + bpInstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}], + bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}], + bpUninstallTime: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + bpForm, + bpFormRules, + ruleFormRef, + fileList, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue new file mode 100644 index 0000000..49e1f46 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue @@ -0,0 +1,210 @@ +<template> + <div class="comp-container"> + <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="clDepartment"> + <el-select v-model="clForm.clDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="clApplyName"> + <el-input + v-model="clForm.clApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="断路原因" prop="clReason"> + <el-input + v-model="clForm.clReason" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="涉及相关单位(部门)" prop="clUnits"> + <el-select v-model="clForm.clUnits" placeholder="请选择" multiple> + <el-option label="单位一" value="单位一" /> + <el-option label="单位二" value="单位二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="断路地段示意图" prop="fileList"> + <el-upload + v-model:file-list="fileList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'cutLineForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const clForm = reactive({ + clDepartment: '', + clApplyName: '', + clReason: '', + clUnits: [], + fileList: [] + }) + const ruleFormRef = ref<FormInstance>() + const clFormRules = reactive<FormRules>({ + clDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + clApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + clReason: [{required: true,message: '此处不可为空',trigger: 'blur'}], + clUnits: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + clForm, + clFormRules, + ruleFormRef, + fileList, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue new file mode 100644 index 0000000..ceb729f --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue @@ -0,0 +1,212 @@ +<template> + <div class="comp-container"> + <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="dwDepartment"> + <el-select v-model="dwForm.dwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="dwApplyName"> + <el-input + v-model="dwForm.dwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土范围" prop="dwRange"> + <el-input + v-model="dwForm.dwRange" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土方式" prop="dwWay"> + <el-input + v-model="dwForm.dwWay" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土简图" prop="fileList"> + <el-upload + v-model:file-list="fileList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'dirtWorkForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const dwForm = reactive({ + dwDepartment: '', + dwApplyName: '', + dwRange: '', + dwWay: '', + fileList: [] + }) + const ruleFormRef = ref<FormInstance>() + const dwFormRules = reactive<FormRules>({ + dwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + dwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + dwRange: [{required: true,message: '此处不可为空',trigger: 'blur'}], + dwWay: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + dwForm, + dwFormRules, + ruleFormRef, + fileList, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue new file mode 100644 index 0000000..313ad5c --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue @@ -0,0 +1,154 @@ +<template> + <div class="comp-container"> + <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="fwDepartment"> + <el-select v-model="fwForm.fwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="fwApplyName"> + <el-input + v-model="fwForm.fwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="fwLevel"> + <el-select v-model="fwForm.fwLevel" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="危害辨识" prop="fwRiskIdentify"> + <el-select v-model="fwForm.fwRiskIdentify" placeholder="请选择"> + <el-option label="辨识一" value="辨识一" /> + <el-option label="辨识二" value="辨识二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="动火方式" prop="fwWorkWay"> + <el-select v-model="fwForm.fwWorkWay" placeholder="请选择"> + <el-option label="方式一" value="方式一" /> + <el-option label="方式二" value="方式二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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 type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'fireWorkForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const fwForm = reactive({ + fwDepartment: '', + fwApplyName: '', + fwLevel: '', + fwRiskIdentify: '', + fwWorkWay: '' + }) + const ruleFormRef = ref<FormInstance>() + const fwRules = reactive<FormRules>({ + fwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + fwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + fwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fwRiskIdentify: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fwWorkWay: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + fwForm, + ruleFormRef, + fwRules, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue new file mode 100644 index 0000000..858080e --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue @@ -0,0 +1,160 @@ +<template> + <div class="comp-container"> + <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="hlDepartment"> + <el-select v-model="hlForm.hlDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="hlApplyName"> + <el-input + v-model="hlForm.hlApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="hlLevel"> + <el-select v-model="hlForm.hlLevel" placeholder="请选择等级"> + <el-option label="等级一" value="等级一" /> + <el-option label="等级二" value="等级二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="起吊重物质量" prop="hlWeight"> + <el-input + v-model="hlForm.hlWeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="吊装工具名称" prop="hlToolsName"> + <el-input + v-model="hlForm.hlToolsName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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 type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'hangLoadForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const hlForm = reactive({ + hlDepartment: '', + hlApplyName: '', + hlLevel: '', + hlWeight: '', + hlToolsName: '' + }) + const ruleFormRef = ref<FormInstance>() + const hlFormRules = reactive<FormRules>({ + hlDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hlApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hlLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hlWeight: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hlToolsName: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + hlForm, + hlFormRules, + ruleFormRef, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue new file mode 100644 index 0000000..198b18b --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue @@ -0,0 +1,143 @@ +<template> + <div class="comp-container"> + <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="hwDepartment"> + <el-select v-model="hwForm.hwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="hwApplyName"> + <el-input + v-model="hwForm.hwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="hwLevel"> + <el-select v-model="hwForm.hwLevel" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="作业高度" prop="hwHeight"> + <el-input + v-model="hwForm.hwHeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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 type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'highWorkForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const hwForm = reactive({ + hwDepartment: '', + hwApplyName: '', + hwLevel: '', + hwHeight: '' + }) + const ruleFormRef = ref<FormInstance>() + const hwRules = reactive<FormRules>({ + hwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hwHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + hwForm, + ruleFormRef, + hwRules, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue new file mode 100644 index 0000000..e5bcb8d --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue @@ -0,0 +1,166 @@ +<template> + <div class="comp-container"> + <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="lsDepartment"> + <el-select v-model="lsForm.lsDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="lsApplyName"> + <el-input + v-model="lsForm.lsApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间名称" prop="lsUnitName"> + <el-input + v-model="lsForm.lsUnitName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间所属单位" prop="lsUnit"> + <el-select v-model="lsForm.lsUnit" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间内原有介质名称" prop="lsUnitName"> + <el-input + v-model="lsForm.lsUnitMatterName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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 type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'limitedSpaceForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const lsForm = reactive({ + lsDepartment: '', + lsApplyName: '', + lsUnitName: '', + lsUnit: '', + lsUnitMatterName: '' + }) + const ruleFormRef = ref<FormInstance>() + const lsFormRules = reactive<FormRules>({ + lsDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + lsApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnitName: [{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnit: [{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnitMatterName: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + lsForm, + lsFormRules, + ruleFormRef, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue new file mode 100644 index 0000000..296b5a1 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue @@ -0,0 +1,143 @@ +<template> + <div class="comp-container"> + <el-form :model="teForm" label-width="150px" :rules="teRules" ref="ruleFormRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="teDepartment"> + <el-select v-model="teForm.teDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="teApplyName"> + <el-input + v-model="teForm.teApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="teLevel"> + <el-select v-model="teForm.teLevel" placeholder="请选择等级"> + <el-option label="等级一" value="等级一" /> + <el-option label="等级二" value="等级二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="作业高度" prop="teHeight"> + <el-input + v-model="teForm.teHeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } 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 type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'tempElectForm', + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const teForm = reactive({ + teDepartment: '', + teApplyName: '', + teLevel: '', + teHeight: '' + }) + const ruleFormRef = ref<FormInstance>() + const teRules = reactive<FormRules>({ + teDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + teApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + teLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + teHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + teForm, + ruleFormRef, + teRules, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .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; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue similarity index 72% rename from src/views/specialWorkSystem/workApplyManagement/workApply/index.vue rename to src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue index 09e11a7..42b3dff 100644 --- a/src/views/specialWorkSystem/workApplyManagement/workApply/index.vue +++ b/src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue @@ -1,8 +1,9 @@ <template> <div class="home-container"> <el-scrollbar height="100%"> - <div class="homeCard"> - <el-form :model="form" label-width="150px"> + <el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef2"> +<!-- <blind-panel-form></blind-panel-form>--> + <div class="homeCard"> <el-row> <el-col :span="8"> <el-form-item label="申请部门"> @@ -54,13 +55,15 @@ </el-form-item> </el-col> </el-row> + </div> + <div class="homeCard"> <el-row> <el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col> <el-col :span="21"> <el-table :data="form.workerList" style="width: 100%"> <el-table-column type="index" label="序号" width="100"/> <el-table-column prop="worker" label="作业人"/> - <el-table-column prop="role" label="作业人角色" width="180" /> + <el-table-column prop="role" label="作业人角色" width="180"/> <el-table-column prop="unit" label="所属单位" width="180" /> <el-table-column prop="certificate" label="证书名称" width="180" /> <el-table-column prop="certificateId" label="证书号" /> @@ -74,7 +77,7 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="作业地点"> + <el-form-item label="作业地点" prop="workLocation"> <el-input v-model="form.workLocation" placeholder="请输入" @@ -87,7 +90,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="作业期限"> + <el-form-item label="作业期限" prop="workTimeLine"> <el-date-picker v-model="form.workTimeLine" type="daterange" @@ -102,7 +105,7 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="作业内容"> + <el-form-item label="作业内容" prop="workContent"> <el-input v-model="form.workContent" placeholder="请输入" @@ -115,7 +118,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="作业单位"> + <el-form-item label="作业单位" prop="workUnit"> <el-input v-model="form.workUnit" placeholder="请输入" @@ -128,9 +131,9 @@ </el-row> <el-row> <el-col :span="6"> - <el-form-item label="作业负责人"> + <el-form-item label="作业负责人" prop="responsor"> <el-input - v-model="form.responser" + v-model="form.responsor" placeholder="请输入" class="input-with-select" > @@ -141,7 +144,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="监护人"> + <el-form-item label="监护人" prop="monitor"> <el-input v-model="form.monitor" placeholder="请输入" @@ -154,7 +157,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="监护人岗位"> + <el-form-item label="监护人岗位" prop="monitorStation"> <el-input v-model="form.monitorStation" placeholder="请输入" @@ -169,7 +172,7 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="生产车间负责人"> + <el-form-item label="生产车间负责人" prop="workhouseLeader"> <el-input v-model="form.workhouseLeader" placeholder="请输入" @@ -182,7 +185,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="申请日期"> + <el-form-item label="申请日期" prop="applyDate"> <el-date-picker size="large" v-model="form.applyDate" @@ -193,10 +196,11 @@ </el-form-item> </el-col> </el-row> - <el-divider /> + </div> + <div class="homeCard"> <el-row> <el-col :span="24"> - <el-form-item label="涉及的其他特殊作业"> + <el-form-item label="涉及的其他特殊作业" prop="otherSpecialWorks"> <el-checkbox-group v-model="form.otherSpecialWorks"> <el-checkbox label="动火作业" /> <el-checkbox label="受限空间" /> @@ -213,7 +217,7 @@ </el-row> <el-row> <el-col> - <el-form-item label="防护用品"> + <el-form-item label="防护用品" prop="protections"> <el-cascader v-model="form.protections" :options="protectOption" @@ -225,25 +229,25 @@ </el-form-item> </el-col> </el-row> - <el-row> - <el-col :span="6"><el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button></el-col> + <el-row style="justify-content: center"> + <el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button> </el-row> <el-row> <el-col :span="12"> - <el-form-item label="实施安全教育人"> + <el-form-item label="实施安全教育人" prop="safetyMan"> <el-input v-model="form.safetyMan" placeholder="请输入" class="input-with-select" > <template #append> - <el-button :icon="Search" /> + <el-button :icon="Search"/> </template> </el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="被教育人"> + <el-form-item label="被教育人" prop="educated"> <el-input v-model="form.educated" placeholder="请输入" @@ -256,17 +260,18 @@ </el-form-item> </el-col> </el-row> - <el-divider /> + </div> + <div class="homeCard applyBtn"> <el-row> <el-col :span="24" class="submitBtn"> - <el-button type="primary" size="large" plain>发起申请</el-button> + <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button> </el-col> </el-row> + </div> </el-form> - </div> <el-dialog v-model="dialogAddWorker" title="添加作业人"> - <el-form :model="addWorkerForm" label-width="120px"> - <el-form-item label="作业人"> + <el-form :model="addWorkerForm" label-width="120px" :rules="addWorkerRules" ref='ruleFormRef3'> + <el-form-item label="作业人" prop="worker"> <el-input v-model="addWorkerForm.worker" placeholder="请输入" @@ -277,7 +282,7 @@ </template> </el-input> </el-form-item> - <el-form-item label="作业人角色"> + <el-form-item label="作业人角色" prop="role"> <el-input v-model="addWorkerForm.role" placeholder="请输入" @@ -288,7 +293,7 @@ </template> </el-input> </el-form-item> - <el-form-item label="作业人角色"> + <el-form-item label="作业人角色" prop="unit"> <el-input v-model="addWorkerForm.unit" placeholder="请输入" @@ -299,7 +304,7 @@ </template> </el-input> </el-form-item> - <el-form-item label="证书名称"> + <el-form-item label="证书名称" prop="certificate"> <el-input v-model="addWorkerForm.certificate" placeholder="请输入" @@ -310,7 +315,7 @@ </template> </el-input> </el-form-item> - <el-form-item label="证书号"> + <el-form-item label="证书号" prop="certificateId"> <el-input v-model="addWorkerForm.certificateId" placeholder="请输入" @@ -385,7 +390,7 @@ </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -406,7 +411,17 @@ } export default defineComponent({ - name: 'workApply', + name: 'workApplyForm', + components: { + fireWorkForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/fireWorkForm.vue')), + limitedSpaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/limitedSpaceForm.vue')), + hangLoadForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/hangLoadForm.vue')), + dirtWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/dirtWorkForm.vue')), + cutLineForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/cutLineForm.vue')), + highWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/highWorkForm.vue')), + tempElectForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/tempElectForm.vue')), + blindPanelForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManagement/workApplyForm/components/blindPanelForm.vue')) + }, setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -424,7 +439,7 @@ workTimeLine: '', workContent: '', workUnit: '', - responser: '', + responsor: '', monitor: '', workMonitor: '', monitorStation: '', @@ -514,6 +529,31 @@ } ] const ruleFormRef = ref<FormInstance>() + const ruleFormRef2 = ref<FormInstance>() + const ruleFormRef3 = ref<FormInstance>() + const applyRules = reactive<FormRules>({ + workLocation: [{required: true,message: '此处不能为空'}], + workTimeLine: [{required: true,message: '此处不能为空'}], + workContent: [{required: true,message: '此处不能为空'}], + workUnit: [{required: true,message: '此处不能为空'}], + responsor: [{required: true,message: '此处不能为空'}], + monitor: [{required: true,message: '此处不能为空'}], + workMonitor: [{required: true,message: '此处不能为空'}], + monitorStation: [{required: true,message: '此处不能为空'}], + workhouseLeader: [{required: true,message: '此处不能为空'}], + applyDate: [{required: true,message: '此处不能为空'}], + otherSpecialWorks: [{required: true,message: '此处不能为空'}], + protections: [{required: true,message: '此处不能为空'}], + safetyMan: [{required: true,message: '此处不能为空'}], + educated: [{required: true,message: '此处不能为空'}] + }) + const addWorkerRules = reactive<FormRules>({ + worker: [{required: true,message: '此处不能为空'}], + role: [{required: true,message: '此处不能为空'}], + unit: [{required: true,message: '此处不能为空'}], + certificate: [{required: true,message: '此处不能为空'}], + certificateId: [{required: true,message: '此处不能为空'}] + }) const saftyFileRules = reactive<FormRules>({ surrounding: [{required: true,message: '该选项不能为空'}], risk: [{required: true,message: '该选项不能为空'}], @@ -524,16 +564,23 @@ console.log(value) } - const onSubmitAddForm = () => { - form.workerList.push(addWorkerForm.value) - addWorkerForm.value = { - worker: '', - role: '', - unit: '', - certificate: '', - certificateId: '' - } - dialogAddWorker.value = false + const onSubmitAddForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + form.workerList.push(addWorkerForm.value) + addWorkerForm.value = { + worker: '', + role: '', + unit: '', + certificate: '', + certificateId: '' + } + dialogAddWorker.value = false + } else { + console.log('error submit!', fields) + } + }) } const onSubmitAddFile = () =>{ @@ -554,6 +601,16 @@ const deleteRow = (index) =>{ form.workerList.splice( index,1) } + const handleApply = async (formEl: FormInstance | undefined) =>{ + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + console.log('submit!') + } else { + console.log('error submit!', fields) + } + }) + } // 折线图 const renderMenu = async (value: string) => { Session.set('projectId',value) @@ -571,7 +628,12 @@ addWorkerForm, saftyFileForm, ruleFormRef, + ruleFormRef2, + ruleFormRef3, + addWorkerRules, saftyFileRules, + applyRules, + handleApply, cancleAddFile, deleteRow, cancleAdd, @@ -589,21 +651,27 @@ height: 100%; overflow: hidden; padding: 20px; + position: relative; .homeCard{ width: 100%; padding: 20px; background: #fff; border-radius: 4px; + margin-bottom: 20px; + } + .applyBtn{ + position: absolute; + bottom: 0; + left: 0; + margin-bottom: 0; + border-radius: 0; + box-shadow: 0 -3px 8px rgba(150,150,150,.1); } .el-row{ margin-bottom: 20px; } .el-row:last-child { margin-bottom: 0; - } - .el-col{ - align-items: center; - margin-bottom: 10px; } .el-input{ width: 100% !important; -- Gitblit v1.9.2