From 374c78f1791b7693f7c5c2e6d7e064d946df290e Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期四, 13 十月 2022 14:41:26 +0800
Subject: [PATCH] Default Changelist
---
/dev/null | 815 ------------------------------------------------------
src/views/specialWorkSystem/workTicket/wdsqjl/index.vue | 16
src/views/specialWorkSystem/workTicket/wdsq/index.vue | 16
src/views/specialWorkSystem/workTicket/wdsp/index.vue | 16
src/views/specialWorkSystem/workTicket/zysq/index.vue | 16
5 files changed, 32 insertions(+), 847 deletions(-)
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/broken.vue b/src/views/specialWorkSystem/workTicket/apply/components/broken.vue
deleted file mode 100644
index 17a7dcb..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/broken.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/fire.vue b/src/views/specialWorkSystem/workTicket/apply/components/fire.vue
deleted file mode 100644
index a62a7ec..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/fire.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/ground.vue b/src/views/specialWorkSystem/workTicket/apply/components/ground.vue
deleted file mode 100644
index fa98456..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/ground.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/height.vue b/src/views/specialWorkSystem/workTicket/apply/components/height.vue
deleted file mode 100644
index 9923e25..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/height.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue b/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue
deleted file mode 100644
index c7cf511..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/hoist.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/plate.vue b/src/views/specialWorkSystem/workTicket/apply/components/plate.vue
deleted file mode 100644
index 75ec19a..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/plate.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/power.vue b/src/views/specialWorkSystem/workTicket/apply/components/power.vue
deleted file mode 100644
index 8e37b90..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/power.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/components/space.vue b/src/views/specialWorkSystem/workTicket/apply/components/space.vue
deleted file mode 100644
index 5bc5bba..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/components/space.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/apply/index.vue b/src/views/specialWorkSystem/workTicket/apply/index.vue
deleted file mode 100644
index fafc906..0000000
--- a/src/views/specialWorkSystem/workTicket/apply/index.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue
deleted file mode 100644
index dcb6adc..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/brokenLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue
deleted file mode 100644
index ed30241..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/fireLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue
deleted file mode 100644
index 244330e..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/groundLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue
deleted file mode 100644
index 0fb8a7a..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/heightLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue
deleted file mode 100644
index 3b4dc2a..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/hoistLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue
deleted file mode 100644
index f307fc0..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/plateLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue
deleted file mode 100644
index f3c893c..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/powerLog.vue
+++ /dev/null
@@ -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/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue b/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue
deleted file mode 100644
index d9feabc..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/components/spaceLog.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/approve/index.vue b/src/views/specialWorkSystem/workTicket/approve/index.vue
deleted file mode 100644
index 13eec8e..0000000
--- a/src/views/specialWorkSystem/workTicket/approve/index.vue
+++ /dev/null
@@ -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>
diff --git a/src/views/specialWorkSystem/workTicket/wdsp/index.vue b/src/views/specialWorkSystem/workTicket/wdsp/index.vue
index 13eec8e..39b7ba9 100644
--- a/src/views/specialWorkSystem/workTicket/wdsp/index.vue
+++ b/src/views/specialWorkSystem/workTicket/wdsp/index.vue
@@ -238,14 +238,14 @@
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'))
+ fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/fireLog.vue')),
+ space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/spaceLog.vue')),
+ hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/hoistLog.vue')),
+ ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/groundLog.vue')),
+ broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/brokenLog.vue')),
+ height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/heightLog.vue')),
+ power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/powerLog.vue')),
+ plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsp/components/plateLog.vue'))
},
setup() {
const userInfo = useUserInfo();
diff --git a/src/views/specialWorkSystem/workTicket/wdsq/index.vue b/src/views/specialWorkSystem/workTicket/wdsq/index.vue
index 57d399e..25c6286 100644
--- a/src/views/specialWorkSystem/workTicket/wdsq/index.vue
+++ b/src/views/specialWorkSystem/workTicket/wdsq/index.vue
@@ -255,14 +255,14 @@
export default defineComponent({
name: 'myApply',
components: {
- fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue')),
- space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue')),
- hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue')),
- ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue')),
- broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue')),
- height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue')),
- power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue')),
- plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue'))
+ fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/fireLog.vue')),
+ space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/spaceLog.vue')),
+ hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/hoistLog.vue')),
+ ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/groundLog.vue')),
+ broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/brokenLog.vue')),
+ height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/heightLog.vue')),
+ power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/powerLog.vue')),
+ plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/plateLog.vue'))
},
setup() {
const userInfo = useUserInfo();
diff --git a/src/views/specialWorkSystem/workTicket/wdsqjl/index.vue b/src/views/specialWorkSystem/workTicket/wdsqjl/index.vue
index 7c5661e..2de816c 100644
--- a/src/views/specialWorkSystem/workTicket/wdsqjl/index.vue
+++ b/src/views/specialWorkSystem/workTicket/wdsqjl/index.vue
@@ -267,14 +267,14 @@
export default defineComponent({
name: 'myApply',
components: {
- fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue')),
- space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue')),
- hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue')),
- ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue')),
- broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue')),
- height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue')),
- power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue')),
- plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue'))
+ fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/fireLog.vue')),
+ space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/spaceLog.vue')),
+ hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/hoistLog.vue')),
+ ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/groundLog.vue')),
+ broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/brokenLog.vue')),
+ height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/heightLog.vue')),
+ power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/powerLog.vue')),
+ plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/wdsq/components/plateLog.vue'))
},
setup() {
const userInfo = useUserInfo();
diff --git a/src/views/specialWorkSystem/workTicket/zysq/index.vue b/src/views/specialWorkSystem/workTicket/zysq/index.vue
index fafc906..6a6906b 100644
--- a/src/views/specialWorkSystem/workTicket/zysq/index.vue
+++ b/src/views/specialWorkSystem/workTicket/zysq/index.vue
@@ -48,14 +48,14 @@
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'))
+ fireForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/fire.vue')),
+ spaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/space.vue')),
+ hoistForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/hoist.vue')),
+ groundForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/ground.vue')),
+ brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/broken.vue')),
+ heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/height.vue')),
+ powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/power.vue')),
+ plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/plate.vue'))
},
setup() {
const userInfo = useUserInfo()
--
Gitblit v1.9.2