From 94f2a5bed82ae0281ce5b821570597f6d73c1ce9 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期六, 20 八月 2022 16:51:38 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt --- src/views/safeKnowledge/sfjs/index.vue | 2 src/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue | 110 ++++ src/views/intellectInspect/intelligentLine/index.vue | 2 src/components/contingencyManagement/panManagement/index.vue | 4 src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue | 4 src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue | 131 ++++ src/views/specialWorkSystem/workTicket/workApply/components/broken.vue | 31 src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue | 113 ++++ src/views/safeKnowledge/inner/index.vue | 2 src/views/specialWorkSystem/workTicket/workApply/components/hoist.vue | 32 src/api/specialWorkSystem/workApply/index.ts | 8 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue | 2 src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue | 6 src/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue | 113 ++++ src/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue | 110 ++++ src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue | 6 src/views/specialWorkSystem/workTicket/workApply/index.vue | 52 + src/views/safeKnowledge/df/index.vue | 2 src/views/contingencyManagement/panManagement/index.vue | 4 src/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue | 107 +++ src/views/intellectInspect/intelligentMap/index.vue | 2 src/router/backEnd.ts | 2 src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue | 4 src/views/safeKnowledge/bmgz/index.vue | 2 src/layout/navBars/tagsView/tagsView.vue | 2 /dev/null | 115 ---- src/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue | 113 ++++ src/views/intellectInspect/inspectBigScreen/index.vue | 2 src/views/specialWorkSystem/workTicket/workApply/components/plate.vue | 36 src/views/specialWorkSystem/workTicket/workApply/components/space.vue | 28 src/views/safeKnowledge/law/index.vue | 2 src/views/specialWorkSystem/workTicket/myJobApply/index.vue | 204 ++++--- src/views/safeKnowledge/index.vue | 2 src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue | 113 ++++ src/views/specialWorkSystem/workTicket/workApply/components/power.vue | 32 src/views/specialWorkSystem/workTicket/workApply/components/height.vue | 32 src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue | 2 src/views/specialWorkSystem/workTicket/workApply/components/fire.vue | 28 src/views/safeKnowledge/xzfg/index.vue | 2 src/views/specialWorkSystem/workTicket/workApply/components/ground.vue | 28 src/views/safeKnowledge/internationalRules/index.vue | 2 41 files changed, 1,145 insertions(+), 449 deletions(-) diff --git a/src/api/specialWorkSystem/workApply/index.ts b/src/api/specialWorkSystem/workApply/index.ts index 4bc3282..ae453fc 100644 --- a/src/api/specialWorkSystem/workApply/index.ts +++ b/src/api/specialWorkSystem/workApply/index.ts @@ -11,6 +11,14 @@ }); }, + // 分页获取申请列表 + getAllUsers: () => { + return request({ + url: import.meta.env.VITE_API_URL + `/account/list`, + method: 'get' + }); + }, + // 动火申请 postFireApply: (data: object) => { return request({ diff --git a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue index bba7134..a6a4c9b 100644 --- a/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue +++ b/src/components/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue @@ -231,9 +231,9 @@ Delete, EditPen, } from '@element-plus/icons-vue' -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue' +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/components/flowChart.vue' import ApprovalProgress from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; import RectificationDialog from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue'; import {emergencyDrillEvaluationApi} from '/@/api/contingencyManagement/emergencyDrillEvaluation' import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; diff --git a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue index b1a7099..8799dd8 100644 --- a/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue +++ b/src/components/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue @@ -130,7 +130,7 @@ } from '@element-plus/icons-vue' import {useRouter} from "vue-router" import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue'; -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue'; +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/components/flowChart.vue'; import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import { releaseDrillPlanApi } from '/@/api/contingencyManagement/emergencyDrillPlan'; diff --git a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue b/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue index 3544d06..f595dca 100644 --- a/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue +++ b/src/components/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue @@ -93,10 +93,10 @@ // FormInstance, } from 'element-plus'; import { Plus, Search, Delete, Edit, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/components/openSee.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; // import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue'; +// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/components/openAdd.vue'; // import { contingencyApi } from '/@/api/contingency'; // import { emergencySuppliesMaintainApi } from '/@/api/emergencySuppliesMaintain'; diff --git a/src/components/contingencyManagement/panManagement/index.vue b/src/components/contingencyManagement/panManagement/index.vue index cc2ec1b..79dd253 100644 --- a/src/components/contingencyManagement/panManagement/index.vue +++ b/src/components/contingencyManagement/panManagement/index.vue @@ -186,12 +186,12 @@ 'element-plus'; import { Plus, Edit, Delete, Upload, Download, Refresh, VideoPause, VideoPlay, EditPen, FullScreen } from '@element-plus/icons-vue'; import OpenAdd from '/@/views/contingencyManagement/panManagement/component/openAdd.vue'; -// import StartUp from '/@/views/contingencyManagement/panManagement/component/startUp.vue'; +// import StartUp from '/@/views/contingencyManagement/panManagement/components/startUp.vue'; import AbolishLibrary from '/@/views/contingencyManagement/panManagement/component/abolishLibrary.vue'; import ApprovalProcess from '/@/views/contingencyManagement/panManagement/component/approvalProcess.vue'; import InitiateApproval from '/@/views/contingencyManagement/panManagement/component/initiateApproval.vue'; import Approval from '/@/views/contingencyManagement/panManagement/component/approval.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; diff --git a/src/layout/navBars/tagsView/tagsView.vue b/src/layout/navBars/tagsView/tagsView.vue index 67e1b57..d0558d5 100644 --- a/src/layout/navBars/tagsView/tagsView.vue +++ b/src/layout/navBars/tagsView/tagsView.vue @@ -198,7 +198,7 @@ ) ); if (current.length <= 0) { - // 防止:Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead. + // 防止:Avoid app logic that relies on enumerating keys on a components instance. The keys will be empty in production mode to avoid performance overhead. let findItem = state.tagsViewRoutesList.find((v: any) => v.path === isDynamicPath); if (!findItem) return false; if (findItem.meta.isAffix) return false; diff --git a/src/router/backEnd.ts b/src/router/backEnd.ts index 83a8d37..fcec8e0 100644 --- a/src/router/backEnd.ts +++ b/src/router/backEnd.ts @@ -67,7 +67,7 @@ /** * 重新请求后端路由菜单接口 * @description 用于菜单管理界面刷新菜单(未进行测试) - * @description 路径:/src/views/system/homeMenu/component/menuDialog.vue + * @description 路径:/src/views/system/homeMenu/components/menuDialog.vue */ export function setBackEndControlRefreshRoutes() { getBackEndControlRoutes(Cookies.get('projectId')); diff --git a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue index bba7134..a6a4c9b 100644 --- a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue +++ b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue @@ -231,9 +231,9 @@ Delete, EditPen, } from '@element-plus/icons-vue' -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue' +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/components/flowChart.vue' import ApprovalProgress from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; import RectificationDialog from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue'; import {emergencyDrillEvaluationApi} from '/@/api/contingencyManagement/emergencyDrillEvaluation' import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue index b1a7099..8799dd8 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue @@ -130,7 +130,7 @@ } from '@element-plus/icons-vue' import {useRouter} from "vue-router" import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue'; -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue'; +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/components/flowChart.vue'; import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import { releaseDrillPlanApi } from '/@/api/contingencyManagement/emergencyDrillPlan'; diff --git a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue index b73c265..fee9bf1 100644 --- a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue +++ b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue @@ -93,10 +93,10 @@ // FormInstance, } from 'element-plus'; import { Plus, Search, Delete, Edit, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/components/openSee.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; // import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue'; +// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/components/openAdd.vue'; // import { contingencyApi } from '/@/api/contingency'; // import { emergencySuppliesMaintainApi } from '/@/api/emergencySuppliesMaintain'; diff --git a/src/views/contingencyManagement/panManagement/index.vue b/src/views/contingencyManagement/panManagement/index.vue index 798e7e2..46cdbb7 100644 --- a/src/views/contingencyManagement/panManagement/index.vue +++ b/src/views/contingencyManagement/panManagement/index.vue @@ -172,12 +172,12 @@ 'element-plus'; import { Plus, Edit, Delete, Upload, Download, Refresh, VideoPause, VideoPlay, EditPen, FullScreen } from '@element-plus/icons-vue'; import OpenAdd from '/@/views/contingencyManagement/panManagement/component/openAdd.vue'; -// import StartUp from '/@/views/contingencyManagement/panManagement/component/startUp.vue'; +// import StartUp from '/@/views/contingencyManagement/panManagement/components/startUp.vue'; import AbolishLibrary from '/@/views/contingencyManagement/panManagement/component/abolishLibrary.vue'; import ApprovalProcess from '/@/views/contingencyManagement/panManagement/component/approvalProcess.vue'; import InitiateApproval from '/@/views/contingencyManagement/panManagement/component/initiateApproval.vue'; import Approval from '/@/views/contingencyManagement/panManagement/component/approval.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; diff --git a/src/views/intellectInspect/inspectBigScreen/index.vue b/src/views/intellectInspect/inspectBigScreen/index.vue index 53838fc..6d33be2 100644 --- a/src/views/intellectInspect/inspectBigScreen/index.vue +++ b/src/views/intellectInspect/inspectBigScreen/index.vue @@ -259,7 +259,7 @@ }; </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> @keyframes warn { 0% { diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue index bfb9b95..ad3e7ed 100644 --- a/src/views/intellectInspect/intelligentLine/index.vue +++ b/src/views/intellectInspect/intelligentLine/index.vue @@ -237,7 +237,7 @@ }; </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> @media screen and (min-width: 1366px) { .big-title { diff --git a/src/views/intellectInspect/intelligentMap/index.vue b/src/views/intellectInspect/intelligentMap/index.vue index b11ed9f..e44e7ec 100644 --- a/src/views/intellectInspect/intelligentMap/index.vue +++ b/src/views/intellectInspect/intelligentMap/index.vue @@ -325,7 +325,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> @keyframes warn { 0% { diff --git a/src/views/safeKnowledge/bmgz/index.vue b/src/views/safeKnowledge/bmgz/index.vue index 5a754e9..39c6175 100644 --- a/src/views/safeKnowledge/bmgz/index.vue +++ b/src/views/safeKnowledge/bmgz/index.vue @@ -16,7 +16,7 @@ }; </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container { height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/df/index.vue b/src/views/safeKnowledge/df/index.vue index 1434ecb..3bfefee 100644 --- a/src/views/safeKnowledge/df/index.vue +++ b/src/views/safeKnowledge/df/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/index.vue b/src/views/safeKnowledge/index.vue index 1823bc4..c90267a 100644 --- a/src/views/safeKnowledge/index.vue +++ b/src/views/safeKnowledge/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/inner/index.vue b/src/views/safeKnowledge/inner/index.vue index 0ebea9a..bef7f39 100644 --- a/src/views/safeKnowledge/inner/index.vue +++ b/src/views/safeKnowledge/inner/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/internationalRules/index.vue b/src/views/safeKnowledge/internationalRules/index.vue index 7a96ebe..083cfbb 100644 --- a/src/views/safeKnowledge/internationalRules/index.vue +++ b/src/views/safeKnowledge/internationalRules/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/law/index.vue b/src/views/safeKnowledge/law/index.vue index a3ebad6..84b233c 100644 --- a/src/views/safeKnowledge/law/index.vue +++ b/src/views/safeKnowledge/law/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/sfjs/index.vue b/src/views/safeKnowledge/sfjs/index.vue index 84ad0a5..21348b6 100644 --- a/src/views/safeKnowledge/sfjs/index.vue +++ b/src/views/safeKnowledge/sfjs/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/safeKnowledge/xzfg/index.vue b/src/views/safeKnowledge/xzfg/index.vue index 97d134f..c661d3e 100644 --- a/src/views/safeKnowledge/xzfg/index.vue +++ b/src/views/safeKnowledge/xzfg/index.vue @@ -24,7 +24,7 @@ } </script> -<!-- Add "scoped" attribute to limit CSS to this component only --> +<!-- Add "scoped" attribute to limit CSS to this components only --> <style scoped lang="scss"> .home-container{ height: calc(100vh - 144px); diff --git a/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue b/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue deleted file mode 100644 index 5dfe941..0000000 --- a/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue +++ /dev/null @@ -1,751 +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"> - <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-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="workPermitNo" label="作业申请单号" width="180" /> - <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="申请状态" width="180"> - <template #default="scope"> - <el-tag type="success">{{ 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="作业申请详情"> - <el-form :model="details" label-width="120px"> - <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.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.statusDesc" readonly /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogStatus" title="作业申请进度"> - <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>{{ item.approvalResultDesc }}</span> - </div> - <div class="text"> - 审批类型:<span>{{ item.typeDesc }}</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 } 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 { workApplyApi } from '/@/api/specialWorkSystem/workApply'; -import type { TabsPaneContext } from 'element-plus'; - -// 定义接口来定义对象的类型 -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>; -} -interface type { - id: number; - name: string; -} - -export default defineComponent({ - name: 'myApply', - components: {}, - setup() { - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - const router = useRouter(); - const state = reactive<stateType>({ - pageIndex1: 1, - pageSize1: 10, - totalSize1: 0, - activeName: '1', - 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: 'workTicket' - }); - }; - - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - - // 分页获取工作时间组列表 - const getListByPage = async () => { - const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { name: state.searchWord } }; - let res = await workApplyApi().getApplyListtPage(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; - console.log('0212121'); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 表格数据格式化 - const toNames = (row, column, cellValue, index) => { - if (row.list == []) { - return []; - } else { - const nameList = []; - for (let i = 0; i < row.list.length; i++) { - for (let t = 0; t < state.workTimeList.length; t++) { - if (row.list[i] == state.workTimeList[t].id) { - nameList.push(state.workTimeList[t].name); - } - } - } - return nameList.join(); - } - }; - - // 关键词查询记录 - 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 workApplyApi().getStatus(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, 'steps'); - } 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 workApplyApi().cancelApply(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: res.data.msg - }); - 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) => { - row.workDetail.otherSpecialWork = JSON.parse(JSON.stringify(row.workDetail.otherSpecialWork.split(','))).map((item: Array<string>) => { - return state.workType.find((i: { id: number }) => i.id === Number(item))?.name; - }); - state.details = JSON.parse(JSON.stringify(row)); - state.dialogDetails = true; - }; - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; - await initBackEndControlRoutes(); - }; - - // 页面载入时执行方法 - onMounted(() => { - getListByPage(); - }); - - return { - View, - Edit, - Delete, - Refresh, - Plus, - Finished, - reLoadData, - toApply, - handleClick, - toNames, - 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 { - font-weight: bolder; - color: #409eff; - } - - &: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; - } - & > 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: 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: center; - span { - width: 45%; - &:first-of-type { - width: 30%; - } - } - } - } - &: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/workApplyManage/workApplyForm/components/broken.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/broken.vue deleted file mode 100644 index 2a01ede..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/broken.vue +++ /dev/null @@ -1,316 +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.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="作业时间" 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="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-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-select v-model="form.workDetail.involvedDepIds" 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> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - csDepList: Array<any>, - otherWorkList: Array<any> - } - export default defineComponent({ - name: 'brokenForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 5, - workLevel: 0, - workContent: '', - workLocation: '', - workDetail:{ - operationDepId: null, - bcReason: '', - bcExplain: '', - bcPath: '', - involvedDepIds: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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 - } - ] - }); - 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' }], - 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.otherSpecialWork": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.involvedDepIds": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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(',') - console.log(data,'data') - const res = await workApplyApi().postBrokenApply(data) - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/fire.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/fire.vue deleted file mode 100644 index fc1ed90..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/fire.vue +++ /dev/null @@ -1,316 +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.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="作业等级" 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="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="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> - </div> - </el-form> - <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 } 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: 'fireForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 1, - workLevel: null, - workContent: '', - workLocation: '', - workDetail:{ - hotMethod: '', - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - workTypeList: [ - { - label: "类型一", - value: 1 - }, - { - label: "类型二", - value: 2 - } - ], - 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' }], - workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.hotMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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().postFireApply(data) - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/ground.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/ground.vue deleted file mode 100644 index ba6e7c1..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/ground.vue +++ /dev/null @@ -1,328 +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.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="作业时间" 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="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-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> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - csDepList: Array<any>, - otherWorkList: Array<any> - } - export default defineComponent({ - name: 'groundForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 4, - workLevel: 0, - workContent: '', - workLocation: '', - workDetail:{ - operationDepId: null, - gbScope: '', - gbMethod: '', - gbPath: '', - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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' }], - workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workLocation: [{ 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' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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().postGroundApply(data) - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/height.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/height.vue deleted file mode 100644 index 4478df0..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/height.vue +++ /dev/null @@ -1,362 +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.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="作业等级" 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="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="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-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="请输入" - /> - </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-row> - </div> - </el-form> - <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 } 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>, - heDepList: Array<any>, - otherWorkList: Array<any> - } - export default defineComponent({ - name: 'heightForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 6, - workLevel: null, - workContent: '', - workLocation: '', - workDetail:{ - operationDepId: '', - operationHeight: null, - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - heDepList: [ - { - label: "单位一", - value: 1 - }, - { - label: "单位二", - value: 2 - }, - { - label: "单位三", - value: 3 - }, - { - label: "单位四", - value: 4 - }, - { - label: "单位五", - value: 5 - }, - { - label: "单位六", - value: 6 - } - ], - 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' }], - workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.operationHeight": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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().postHeightApply(data) - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/hoist.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/hoist.vue deleted file mode 100644 index f9617a3..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/hoist.vue +++ /dev/null @@ -1,267 +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.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="作业等级" 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="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="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="请输入" - /> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - workLevelList: Array<any> - } - export default defineComponent({ - name: 'hoistForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 3, - workLevel: null, - workContent: '', - workLocation: '', - workDetail:{ - hoistingToolName: '', - weightMass: null - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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' }], - workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.hoistingToolName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.weightMass": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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 - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/plate.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/plate.vue deleted file mode 100644 index c5833fd..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/plate.vue +++ /dev/null @@ -1,432 +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.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="作业等级" 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="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="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="请输入" - /> - </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="请输入" - /> - </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> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - csDepList: Array<any>, - otherWorkList: Array<any>, - workLevelList: Array<any> - } - export default defineComponent({ - name: 'brokenForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 8, - workLevel: null, - workContent: '', - workLocation: '', - workDetail:{ - bpCode: '', - mainMedia: '', - temperature: null, - pressure: null, - bpMaterialQuality: '', - bpSpecification: '', - bpLocation: '', - bpLocationMapPath: '', - installLine: [], - installBpTime: '', - uninstallBpTime: '', - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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' }], - 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' }], - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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.temperature = Number(data.workDetail.temperature) - data.workDetail.pressure = Number(data.workDetail.pressure) - console.log(data,'data') - const res = await workApplyApi().postPlateApply(data) - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields() - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/power.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/power.vue deleted file mode 100644 index 633a0eb..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/power.vue +++ /dev/null @@ -1,271 +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.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="作业时间" 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="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="请输入" - /> - </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-row> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - workLevelList: Array<any> - } - export default defineComponent({ - name: 'hoistForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 7, - workLevel: 0, - workContent: '', - workLocation: '', - workDetail:{ - powerAccessPoint: '', - workingVoltage: null, - equipmentAndPower: '' - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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' }], - 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 submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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 - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/components/space.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/space.vue deleted file mode 100644 index f93cd75..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/components/space.vue +++ /dev/null @@ -1,327 +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.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="作业时间" 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="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-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> - </div> - </el-form> - <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 } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - - - interface stateType { - form: Object, - workerList: Array<any>, - csDepList: Array<any>, - otherWorkList: Array<any> - } - export default defineComponent({ - name: 'spaceForm', - components: {}, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 2, - workLevel: 0, - workContent: '', - workLocation: '', - workDetail:{ - csDepId: null, - csName: '', - csOriginalName: '', - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], - 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' }], - workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workLocation: [{ 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 submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate(async (valid, fields) => { - if (valid) { - 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 - }); - } - } else { - console.log('error submit!', fields) - } - }) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - 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; - 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/workApplyManage/workApplyForm/index.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue deleted file mode 100644 index aad84f8..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue +++ /dev/null @@ -1,115 +0,0 @@ -<template> - <div class="home-container"> - <el-tabs type="border-card"> - <el-tab-pane label="动火作业"> - <fire-form></fire-form> - </el-tab-pane> - <el-tab-pane label="受限空间作业"> - <space-form></space-form> - </el-tab-pane> - <el-tab-pane label="吊装作业"> - <hoist-form></hoist-form> - </el-tab-pane> - <el-tab-pane label="动土作业"> - <ground-form></ground-form> - </el-tab-pane> - <el-tab-pane label="断路作业"> - <broken-form></broken-form> - </el-tab-pane> - <el-tab-pane label="高处作业"> - <height-form></height-form> - </el-tab-pane> - <el-tab-pane label="临时用电作业"> - <power-form></power-form> - </el-tab-pane> - <el-tab-pane label="盲板抽堵作业"> - <plate-form></plate-form> - </el-tab-pane> - </el-tabs> - </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 { - - } - export default defineComponent({ - name: 'workTicket', - components: { - fireForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/fire.vue')), - spaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/space.vue')), - hoistForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/hoist.vue')), - groundForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/ground.vue')), - brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/broken.vue')), - heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/height.vue')), - powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/power.vue')), - plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/plate.vue')) - }, - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - - }); - - 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/myJobApply/components/brokenLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue new file mode 100644 index 0000000..ff78b92 --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue @@ -0,0 +1,113 @@ +<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-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.statusDesc" 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/myJobApply/components/fireLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue new file mode 100644 index 0000000..5bf55f2 --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue @@ -0,0 +1,107 @@ +<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.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.statusDesc" 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/myJobApply/components/groundLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue new file mode 100644 index 0000000..f1aba23 --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue @@ -0,0 +1,113 @@ +<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.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-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.statusDesc" 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/myJobApply/components/heightLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue new file mode 100644 index 0000000..04d38f9 --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue @@ -0,0 +1,110 @@ +<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.statusDesc" 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/myJobApply/components/hoistLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue new file mode 100644 index 0000000..0e4e53b --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue @@ -0,0 +1,110 @@ +<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.statusDesc" 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/myJobApply/components/plateLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue new file mode 100644 index 0000000..7aac31b --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue @@ -0,0 +1,131 @@ +<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-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.statusDesc" 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/myJobApply/components/powerLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue new file mode 100644 index 0000000..7c3b754 --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue @@ -0,0 +1,113 @@ +<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.statusDesc" 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/myJobApply/components/spaceLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue new file mode 100644 index 0000000..c2f512b --- /dev/null +++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue @@ -0,0 +1,113 @@ +<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.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.statusDesc" 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/myJobApply/index.vue b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue index 5dfe941..1a502f1 100644 --- a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue +++ b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue @@ -1,14 +1,21 @@ <template> <div class="home-container"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="申请中" name="1"> +<!-- <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"> <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> + <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> @@ -49,54 +56,22 @@ </div> </div> </div> - <el-dialog v-model="dialogDetails" title="作业申请详情"> - <el-form :model="details" label-width="120px"> - <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.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.statusDesc" readonly /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> + <el-dialog v-model="dialogDetails" title="作业申请详情" center> + <fire v-if="dialogType == 1" :details = details></fire> + <space v-if="dialogType == 2" :details = details></space> + <hoist v-if="dialogType == 3" :details = details></hoist> + <ground v-if="dialogType == 4" :details = details></ground> + <broken v-if="dialogType == 5" :details = details></broken> + <height v-if="dialogType == 6" :details = details></height> + <power v-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="作业申请进度"> <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> @@ -171,46 +146,46 @@ </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> +<!-- </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 } from 'vue'; +import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import { useUserInfo } from '/@/stores/userInfo'; @@ -243,6 +218,8 @@ details: {}; statusInfo: {}; workType: Array<type>; + depType: Array<type>; + dialogType: number } interface type { id: number; @@ -251,7 +228,16 @@ export default defineComponent({ name: 'myApply', - components: {}, + 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')) + }, setup() { const userInfo = useUserInfo(); const { userInfos } = storeToRefs(userInfo); @@ -260,6 +246,7 @@ pageIndex1: 1, pageSize1: 10, totalSize1: 0, + dialogType: null, activeName: '1', chosenIndex: null, searchWord: '', @@ -287,6 +274,12 @@ { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, { id: 8, name: '盲板抽堵作业' } + ], + depType: [ + { id: 1, name: '部门一' }, + { id: 2, name: '部门二' }, + { id: 3, name: '部门三' }, + { id: 4, name: '部门四' } ] }); interface User { @@ -313,7 +306,7 @@ // 分页获取工作时间组列表 const getListByPage = async () => { - const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { name: state.searchWord } }; + const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } }; let res = await workApplyApi().getApplyListtPage(data); if (res.data.code === '200') { state.applyData = JSON.parse(JSON.stringify(res.data.data)); @@ -326,7 +319,7 @@ return item; }); state.totalSize1 = res.data.total; - console.log('0212121'); + console.log( state.applyData,'0212121'); } else { ElMessage({ type: 'warning', @@ -363,7 +356,7 @@ getListByPage(); } }; - + // 重置搜索 const clearSearch = async () => { state.searchWord = ''; getListByPage(); @@ -428,10 +421,29 @@ // 查看记录 const viewRecord = (row: any) => { - row.workDetail.otherSpecialWork = JSON.parse(JSON.stringify(row.workDetail.otherSpecialWork.split(','))).map((item: Array<string>) => { - return state.workType.find((i: { id: number }) => i.id === Number(item))?.name; - }); + state.dialogType = row.workType + console.log(state.dialogType,'工作类型') state.details = JSON.parse(JSON.stringify(row)); + 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.depType.find((i: { id: number }) => i.id === Number(item))?.name; + }); + } + console.log(state.details,'details') state.dialogDetails = true; }; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/broken.vue b/src/views/specialWorkSystem/workTicket/workApply/components/broken.vue index 2a01ede..54cbca4 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/broken.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/broken.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -122,13 +122,13 @@ interface stateType { form: Object, - workerList: Array<any>, csDepList: Array<any>, otherWorkList: Array<any> } export default defineComponent({ name: 'brokenForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -150,24 +150,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], csDepList: [ { label: "单位一", @@ -223,8 +205,7 @@ "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.bcExplain": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.otherSpecialWork": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - "workDetail.involvedDepIds": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] + "workDetail.otherSpecialWork": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] }); const submitForm = async (formEl: FormInstance | undefined) => { if (!formEl) return @@ -287,7 +268,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/fire.vue b/src/views/specialWorkSystem/workTicket/workApply/components/fire.vue index fc1ed90..9732afb 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/fire.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/fire.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -113,7 +113,6 @@ interface stateType { form: Object, - workerList: Array<any>, workTypeList: Array<any>, workLevelList: Array<any>, otherWorkList: Array<any> @@ -121,6 +120,7 @@ export default defineComponent({ name: 'fireForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -139,24 +139,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], workTypeList: [ { label: "类型一", @@ -287,7 +269,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/ground.vue b/src/views/specialWorkSystem/workTicket/workApply/components/ground.vue index ba6e7c1..9871118 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/ground.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/ground.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -120,13 +120,13 @@ interface stateType { form: Object, - workerList: Array<any>, csDepList: Array<any>, otherWorkList: Array<any> } export default defineComponent({ name: 'groundForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -148,24 +148,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], csDepList: [ { label: "单位一", @@ -299,7 +281,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/height.vue b/src/views/specialWorkSystem/workTicket/workApply/components/height.vue index 4478df0..d0dc61f 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/height.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/height.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -85,7 +85,9 @@ v-model="form.workDetail.operationHeight" type="number" placeholder="请输入" - /> + > + <template #append>米(m)</template> + </el-input> </el-form-item> </el-col> </el-row> @@ -126,7 +128,6 @@ interface stateType { form: Object, - workerList: Array<any>, workTypeList: Array<any>, workLevelList: Array<any>, heDepList: Array<any>, @@ -135,6 +136,7 @@ export default defineComponent({ name: 'heightForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -154,24 +156,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], heDepList: [ { label: "单位一", @@ -333,7 +317,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/hoist.vue b/src/views/specialWorkSystem/workTicket/workApply/components/hoist.vue index f9617a3..ca95264 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/hoist.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/hoist.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -83,7 +83,9 @@ v-model="form.workDetail.weightMass" type="number" placeholder="请输入" - /> + > + <template #append>吨(t)</template> + </el-input> </el-form-item> </el-col> </el-row> @@ -110,12 +112,12 @@ interface stateType { form: Object, - workerList: Array<any>, workLevelList: Array<any> } export default defineComponent({ name: 'hoistForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -134,24 +136,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], workLevelList: [ { label: "一级吊装作业", @@ -238,7 +222,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/plate.vue b/src/views/specialWorkSystem/workTicket/workApply/components/plate.vue index c5833fd..2011795 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/plate.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/plate.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -97,7 +97,9 @@ v-model="form.workDetail.temperature" type="number" placeholder="请输入" - /> + > + <template #append>摄氏度(℃)</template> + </el-input> </el-form-item> </el-col> <el-col :span="12"> @@ -106,7 +108,9 @@ v-model="form.workDetail.pressure" type="number" placeholder="请输入" - /> + > + <template #append>千帕(kPa)</template> + </el-input> </el-form-item> </el-col> </el-row> @@ -194,7 +198,6 @@ interface stateType { form: Object, - workerList: Array<any>, csDepList: Array<any>, otherWorkList: Array<any>, workLevelList: Array<any> @@ -202,6 +205,7 @@ export default defineComponent({ name: 'brokenForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -230,24 +234,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], workLevelList: [ { label: "抽盲板作业", @@ -403,7 +389,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/power.vue b/src/views/specialWorkSystem/workTicket/workApply/components/power.vue index 633a0eb..0d52888 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/power.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/power.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -73,7 +73,9 @@ v-model="form.workDetail.workingVoltage" type="number" placeholder="请输入" - /> + > + <template #append>伏特(v)</template> + </el-input> </el-form-item> </el-col> </el-row> @@ -112,12 +114,12 @@ interface stateType { form: Object, - workerList: Array<any>, workLevelList: Array<any> } export default defineComponent({ name: 'hoistForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -137,24 +139,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], workLevelList: [ { label: "一级吊装作业", @@ -242,7 +226,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/components/space.vue b/src/views/specialWorkSystem/workTicket/workApply/components/space.vue index f93cd75..afe6404 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/components/space.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/components/space.vue @@ -9,9 +9,9 @@ <el-select v-model="form.operatorUids" multiple> <el-option v-for="item in workerList" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.uid" + :label="item.username" + :value="item.uid" /> </el-select> </el-form-item> @@ -120,13 +120,13 @@ interface stateType { form: Object, - workerList: Array<any>, csDepList: Array<any>, otherWorkList: Array<any> } export default defineComponent({ name: 'spaceForm', components: {}, + props:['workerList'], setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -147,24 +147,6 @@ expStartTime: '', expEndTime: '' }, - workerList:[ - { - label: "张三", - value: 53 - }, - { - label: "李四", - value: 54 - }, - { - label: "测试一", - value: 55 - }, - { - label: "测试二", - value: 56 - } - ], csDepList: [ { label: "单位一", @@ -298,7 +280,7 @@ .applyBtn{ width: 100%; background: #fff; - height: 80px; + padding-top: 15px; z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); display: flex; diff --git a/src/views/specialWorkSystem/workTicket/workApply/index.vue b/src/views/specialWorkSystem/workTicket/workApply/index.vue index aad84f8..181b250 100644 --- a/src/views/specialWorkSystem/workTicket/workApply/index.vue +++ b/src/views/specialWorkSystem/workTicket/workApply/index.vue @@ -2,35 +2,35 @@ <div class="home-container"> <el-tabs type="border-card"> <el-tab-pane label="动火作业"> - <fire-form></fire-form> + <fire-form :workerList = allWorkers></fire-form> </el-tab-pane> <el-tab-pane label="受限空间作业"> - <space-form></space-form> + <space-form :workerList = allWorkers></space-form> </el-tab-pane> <el-tab-pane label="吊装作业"> - <hoist-form></hoist-form> + <hoist-form :workerList = allWorkers></hoist-form> </el-tab-pane> <el-tab-pane label="动土作业"> - <ground-form></ground-form> + <ground-form :workerList = allWorkers></ground-form> </el-tab-pane> <el-tab-pane label="断路作业"> - <broken-form></broken-form> + <broken-form :workerList = allWorkers></broken-form> </el-tab-pane> <el-tab-pane label="高处作业"> - <height-form></height-form> + <height-form :workerList = allWorkers></height-form> </el-tab-pane> <el-tab-pane label="临时用电作业"> - <power-form></power-form> + <power-form :workerList = allWorkers></power-form> </el-tab-pane> <el-tab-pane label="盲板抽堵作业"> - <plate-form></plate-form> + <plate-form :workerList = allWorkers></plate-form> </el-tab-pane> </el-tabs> </div> </template> <script lang="ts"> - import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; + import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import {useUserInfo} from "/@/stores/userInfo"; @@ -42,25 +42,41 @@ interface stateType { - + allWorkers: Array<any> } export default defineComponent({ name: 'workTicket', components: { - fireForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/fire.vue')), - spaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/space.vue')), - hoistForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/hoist.vue')), - groundForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/ground.vue')), - brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/broken.vue')), - heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/height.vue')), - powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/power.vue')), - plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/plate.vue')) + fireForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/fire.vue')), + spaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/space.vue')), + hoistForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/hoist.vue')), + groundForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/ground.vue')), + brokenForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/broken.vue')), + heightForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/height.vue')), + powerForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/power.vue')), + plateForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/workApply/components/plate.vue')) }, setup() { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); const state = reactive<stateType>({ + allWorkers: [] + }); + 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 + }); + } + }; + // 页面载入时执行方法 + onMounted(() => { + getAll(); }); return { -- Gitblit v1.9.2