对比新文件 |
| | |
| | | Index: .env.development |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+># 本地环境\r\nENV = 'development'\r\n\r\nVITE_API_URL = 'http://192.168.0.35:8008'\r\n#李宇飞接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.50:8008'\r\n#张凤接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.29:8008'\r\n#黄振接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.179:8008'\r\n#施正红接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.69:8008'\r\n#戚会山接口地址\r\n\r\n#VITE_API_URL = 'http://121.239.169.27:16006/safeplatform'\r\n#线上正式环境接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://121.239.169.27:16006/safeplatform-out'\r\n#线上正式环境外包接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.52:8011/safeplatform'\r\n#本地预发接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://192.168.0.52:8011/safeplatform-out'\r\n#本地外包预发接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.52:7021/safeplatform'\r\n#本地测试接口地址\r\n\r\n#VITE_API_URL_SOCKET = 'http://192.168.0.52:7021/safeplatform'\r\n#本地测试websocket接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.29:7008'\r\n#黄振接口test地址\r\n\r\n#VITE_API_URL_SOCKET = 'http://192.168.0.29:16107'\r\n#黄振websocket test接口地址\r\n\r\n#VITE_API_URL_SOCKET = 'http://192.168.0.29:8018'\r\n#黄振websocket接口地址\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/.env.development b/.env.development |
| | | --- a/.env.development (revision 624a145dcb9959e769fa635a4b9e2fe4758772ed) |
| | | +++ b/.env.development (date 1661216855739) |
| | | @@ -1,13 +1,13 @@ |
| | | # 本地环境 |
| | | ENV = 'development' |
| | | |
| | | -VITE_API_URL = 'http://192.168.0.35:8008' |
| | | +#VITE_API_URL = 'http://192.168.0.35:8008' |
| | | #李宇飞接口地址 |
| | | |
| | | #VITE_API_URL = 'http://192.168.0.50:8008' |
| | | #张凤接口地址 |
| | | |
| | | -#VITE_API_URL = 'http://192.168.0.29:8008' |
| | | +VITE_API_URL = 'http://192.168.0.29:8008' |
| | | #黄振接口地址 |
| | | |
| | | #VITE_API_URL = 'http://192.168.0.179:8008' |
| | | Index: src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"home-container\">\r\n <div style=\"height: 100%\">\r\n <el-row class=\"homeCard\">\r\n <div class=\"basic-line\">\r\n <span>任务类型:</span>\r\n <el-select v-model=\"tableData.params.taskType\" clearable filterable class=\"input-box\" placeholder=\"任务类型\">\r\n <el-option v-for=\"item in workTypeList\" :key=\"item.id\" :label=\"item.name\" :value=\"item.id\"></el-option>\r\n </el-select>\r\n </div>\r\n <div class=\"basic-line\">\r\n <span>执行班组:</span>\r\n <el-select v-model=\"tableData.params.execClassgroupId\" clearable filterable class=\"input-box\" placeholder=\"执行班组\">\r\n <el-option v-for=\"item in classGroupList\" :key=\"item.id\" :label=\"item.groupName\" :value=\"item.id\"></el-option>\r\n </el-select>\r\n </div>\r\n <div class=\"basic-line\">\r\n <span>任务状态:</span>\r\n <el-select v-model=\"tableData.params.taskStatus\" clearable filterable class=\"input-box\" placeholder=\"执行班组\">\r\n <el-option v-for=\"item in taskStatusList\" :key=\"item.id\" :label=\"item.name\" :value=\"item.id\"></el-option>\r\n </el-select>\r\n </div>\r\n <div style=\"padding-bottom: 10px\">\r\n <el-button type=\"primary\" @click=\"getInspectRecord\">查询</el-button>\r\n <el-button plain @click=\"reset\">重置</el-button>\r\n </div>\r\n </el-row>\r\n <div class=\"homeCard\">\r\n <div class=\"main-card\">\r\n <el-row class=\"cardTop\">\r\n <el-button type=\"primary\" :icon=\"Refresh\" size=\"default\" />\r\n </el-row>\r\n <el-table ref=\"multipleTableRef\" :data=\"tableData.inspectRecordData\" style=\"width: 100%\" height=\"calc(100% - 100px)\" :header-cell-style=\"{ background: '#fafafa' }\">\r\n <el-table-column property=\"taskName\" label=\"任务名称\" />\r\n <el-table-column property=\"taskType\" label=\"任务类型\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ parseNumber(scope.row.taskType, '任务类型') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"execClassgroupId\" label=\"巡检班组\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ parseNumber(scope.row.execClassgroupId, '巡检班组') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"frequency\" label=\"检查频次\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ scope.row.checkCycle }}\r\n </span>\r\n <span>\r\n {{ parseNumber(scope.row.checkCycleUnit, '检查频次') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"startTime\" label=\"任务开始时间\" />\r\n <el-table-column prop=\"execUserName\" label=\"执行人\" show-overflow-tooltip></el-table-column>\r\n <el-table-column property=\"taskStatus\" label=\"任务状态\">\r\n <template #default=\"scope\">\r\n <el-tag :type=\"scope.row.taskStatus === 1 ? 'info' : scope.row.taskStatus === 2 ? '' : scope.row.taskStatus === 3 ? 'success' : 'danger'\">\r\n <span>\r\n {{ parseNumber(scope.row.taskStatus, '任务状态') }}\r\n </span>\r\n </el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"resultStatus\" label=\"巡检结果\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ parseNumber(scope.row.resultStatus, '巡检状态') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column fixed=\"right\" label=\"操作\" align=\"center\" width=\"300\">\r\n <template #default=\"scope\">\r\n <el-button link type=\"primary\" size=\"small\" :icon=\"View\" @click=\"openInspectRecordDialog('查看', scope.row)\">查看</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"pageBtn\">\r\n <el-pagination @size-change=\"onHandleSizeChange\" @current-change=\"onHandleCurrentChange\" :pager-count=\"5\" :page-sizes=\"[10, 20, 30]\" v-model:current-page=\"tableData.params.pageIndex\" background v-model:page-size=\"tableData.params.pageSize\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"tableData.total\" class=\"page-position\"> </el-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <inspect-record-dialog ref=\"inspectRecordDialogRef\" @refreshInspectRecord=\"getInspectRecord\"></inspect-record-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { toRefs, reactive, ref, onMounted, nextTick } from 'vue';\r\nimport { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';\r\nimport { ElTable, ElMessage } from 'element-plus';\r\nimport { inspectRecordApi } from '/@/api/intellectInspectSystem/inspectRecord';\r\nimport inspectRecordDialog from './components/inspectRecordDialog.vue';\r\nimport { departmentApi } from '/@/api/systemManage/department';\r\nimport { teamManageApi } from '/@/api/systemManage/personShiftManage/teamManage';\r\nimport { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';\r\nimport { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask';\r\nlet global: any = {\r\n homeChartOne: null,\r\n homeChartTwo: null,\r\n homeCharThree: null,\r\n dispose: [null, '', undefined]\r\n};\r\n\r\ninterface stateType {\r\n tableData: {\r\n inspectRecordData: [];\r\n total: number;\r\n loading: boolean;\r\n params: {\r\n pageIndex: number | null;\r\n pageSize: number | null;\r\n taskName: string | null;\r\n taskType: number | null;\r\n taskStatus: number | null;\r\n execUserId: number | null;\r\n execClassgroupId: number | null;\r\n execDepId: number | null;\r\n startTime: string | null;\r\n validTime: string | null;\r\n createUserId: number | null;\r\n reportTime: string | null;\r\n };\r\n };\r\n workTypeList: Array<type>;\r\n taskStatusList: Array<type>;\r\n quotaList: [];\r\n departmentList: [];\r\n classGroupList: Array<classGroup>;\r\n inspectPointAllList: [];\r\n timeType: Array<type>;\r\n resultStatusList: Array<type>;\r\n}\r\ninterface type {\r\n id: number;\r\n name: string;\r\n}\r\ninterface classGroup {\r\n id: number;\r\n groupName: string;\r\n}\r\nexport default {\r\n name: 'index',\r\n components: { inspectRecordDialog },\r\n setup() {\r\n const inspectRecordDialogRef = ref();\r\n const state = reactive<stateType>({\r\n tableData: {\r\n inspectRecordData: [],\r\n total: 0,\r\n loading: false,\r\n params: {\r\n pageIndex: 1,\r\n pageSize: 10,\r\n taskName: null,\r\n taskType: null,\r\n taskStatus: 2,\r\n execUserId: null,\r\n execClassgroupId: null,\r\n execDepId: null,\r\n startTime: null,\r\n validTime: null,\r\n createUserId: null,\r\n reportTime: null\r\n }\r\n },\r\n workTypeList: [\r\n { id: 1, name: '单次任务' },\r\n { id: 2, name: '周期任务' }\r\n ],\r\n resultStatusList: [\r\n { id: 0, name: '正常' },\r\n { id: 1, name: '存在异常' }\r\n ],\r\n taskStatusList: [\r\n { id: 1, name: '待巡检' },\r\n { id: 2, name: '巡检中' },\r\n { id: 3, name: '已巡检' },\r\n { id: 4, name: '超时未巡检' }\r\n ],\r\n quotaList: [],\r\n departmentList: [],\r\n classGroupList: [],\r\n inspectPointAllList: [],\r\n timeType: [\r\n { id: 1, name: '分' },\r\n { id: 2, name: '小时' },\r\n { id: 3, name: '日' },\r\n { id: 4, name: '月' },\r\n { id: 5, name: '年' }\r\n ]\r\n });\r\n\r\n //获取巡检记录数据\r\n const getInspectRecord = async () => {\r\n let res = await inspectRecordApi().getInspectRecordList(state.tableData.params);\r\n if (res.data.code === '200') {\r\n state.tableData.inspectRecordData = res.data.data.records;\r\n state.tableData.total = res.data.data.total;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取部门\r\n const getDepartmentData = async () => {\r\n let res = await departmentApi().getDepartmentList();\r\n if (res.data.code === '200') {\r\n state.departmentList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取部门\r\n const getQuotaList = async () => {\r\n let res = await inspectTaskApi().getQuotaList();\r\n if (res.data.code === '200') {\r\n state.quotaList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取巡检点\r\n const getInspectTaskPoint = async () => {\r\n let res = await inspectPointApi().getInspectPointAll();\r\n if (res.data.code === '200') {\r\n state.inspectPointAllList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取班组\r\n const getClassGroupData = async () => {\r\n let res = await teamManageApi().getRecord({ depIp: null, groupName: null, containGroupMemberEnable: null });\r\n if (res.data.code === '200') {\r\n state.classGroupList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n const openInspectRecordDialog = (type: string, value: {}) => {\r\n inspectRecordDialogRef.value.showInspectRecordDialog(type, value, state.workTypeList, state.departmentList, state.timeType, state.classGroupList, state.quotaList, state.inspectPointAllList);\r\n };\r\n\r\n const parseNumber = (value: number, type: string) => {\r\n if (type === '任务类型') {\r\n return state.workTypeList.find((item) => item.id === value)?.name;\r\n } else if (type === '检查频次') {\r\n return state.timeType.find((item) => item.id == value)?.name;\r\n } else if (type === '巡检状态') {\r\n return state.resultStatusList.find((item) => item.id == value)?.name;\r\n } else if (type === '任务状态') {\r\n return state.taskStatusList.find((item) => item.id == value)?.name;\r\n } else {\r\n return state.classGroupList.find((item) => item.id == value)?.groupName;\r\n }\r\n };\r\n\r\n // 分页改变\r\n const onHandleSizeChange = (val: number) => {\r\n state.tableData.params.pageSize = val;\r\n getInspectRecord();\r\n };\r\n // 分页改变\r\n const onHandleCurrentChange = (val: number) => {\r\n state.tableData.params.pageIndex = val;\r\n getInspectRecord();\r\n };\r\n\r\n const reset = () => {\r\n state.tableData.params = {\r\n pageIndex: 1,\r\n pageSize: 10,\r\n taskName: null,\r\n taskType: null,\r\n taskStatus: null,\r\n execUserId: null,\r\n execClassgroupId: null,\r\n execDepId: null,\r\n startTime: null,\r\n validTime: null,\r\n createUserId: null,\r\n reportTime: null\r\n };\r\n };\r\n\r\n // 页面加载时\r\n onMounted(() => {\r\n getInspectRecord();\r\n getQuotaList();\r\n getDepartmentData();\r\n getClassGroupData();\r\n getInspectTaskPoint();\r\n });\r\n\r\n return {\r\n View,\r\n Edit,\r\n Delete,\r\n Refresh,\r\n Plus,\r\n reset,\r\n parseNumber,\r\n getInspectRecord,\r\n onHandleSizeChange,\r\n onHandleCurrentChange,\r\n inspectRecordDialogRef,\r\n openInspectRecordDialog,\r\n ...toRefs(state)\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n$homeNavLengh: 8;\r\n.home-container {\r\n height: calc(100vh - 144px);\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n .homeCard {\r\n width: 100%;\r\n padding: 20px;\r\n box-sizing: border-box;\r\n background: #fff;\r\n border-radius: 4px;\r\n\r\n .main-card {\r\n width: 100%;\r\n height: 100%;\r\n .cardTop {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n .mainCardBtn {\r\n margin: 0;\r\n }\r\n }\r\n .pageBtn {\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: right;\r\n\r\n .demo-pagination-block + .demo-pagination-block {\r\n margin-top: 10px;\r\n }\r\n .demo-pagination-block .demonstration {\r\n margin-bottom: 16px;\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n height: calc(100% - 100px);\r\n }\r\n }\r\n .el-row {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n .grid-content {\r\n align-items: center;\r\n min-height: 36px;\r\n }\r\n\r\n .topInfo {\r\n display: flex;\r\n align-items: center;\r\n font-size: 16px;\r\n font-weight: bold;\r\n\r\n & > div {\r\n white-space: nowrap;\r\n margin-right: 20px;\r\n }\r\n }\r\n }\r\n}\r\n.stepItem {\r\n width: 100%;\r\n display: flex;\r\n align-items: flex-start;\r\n margin-bottom: 30px;\r\n margin-left: 30px;\r\n padding-bottom: 30px;\r\n border-left: 2px solid #ccc;\r\n &:first-of-type {\r\n margin-top: 30px;\r\n }\r\n &:last-of-type {\r\n margin-bottom: 0;\r\n border-left: none;\r\n }\r\n .stepNum {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 15px;\r\n box-sizing: border-box;\r\n color: #333;\r\n border: 1px solid #999;\r\n line-height: 28px;\r\n text-align: center;\r\n margin-right: 10px;\r\n margin-left: -16px;\r\n margin-top: -30px;\r\n }\r\n .stepCard {\r\n width: 100%;\r\n margin-top: -30px;\r\n\r\n .box-card {\r\n width: 100%;\r\n &:deep(.el-card__header) {\r\n padding: 10px 15px;\r\n }\r\n .card-header {\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n & > div:first-of-type {\r\n margin-right: 80px;\r\n font-size: 18px;\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n }\r\n &:hover .card-header {\r\n color: #0098f5;\r\n }\r\n &:hover .stepNum {\r\n border: 2px solid #0098f5;\r\n color: #0098f5;\r\n }\r\n}\r\n.el-input {\r\n width: 100% !important;\r\n}\r\n:deep(.el-date-editor) {\r\n width: 100%;\r\n}\r\n.el-select {\r\n width: 100%;\r\n}\r\n:deep(.el-textarea.is-disabled .el-textarea__inner) {\r\n background-color: var(--el-card-bg-color);\r\n color: var(--el-input-text-color, var(--el-text-color-regular));\r\n}\r\n:deep(.el-input.is-disabled .el-input__inner) {\r\n color: var(--el-input-text-color, var(--el-text-color-regular));\r\n}\r\n:deep(.el-input.is-disabled .el-input__wrapper) {\r\n background-color: var(--el-card-bg-color);\r\n}\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue |
| | | --- a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue (revision 624a145dcb9959e769fa635a4b9e2fe4758772ed) |
| | | +++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue (date 1661218047847) |
| | | @@ -170,8 +170,8 @@ |
| | | } |
| | | }, |
| | | workTypeList: [ |
| | | - { id: 1, name: '单次任务' }, |
| | | - { id: 2, name: '周期任务' } |
| | | + { id: 1, name: '周期任务' }, |
| | | + { id: 2, name: '单次任务' } |
| | | ], |
| | | resultStatusList: [ |
| | | { id: 0, name: '正常' }, |
| | | Index: src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"home-container\">\r\n <div style=\"height: 100%\">\r\n <el-row class=\"homeCard\">\r\n <div class=\"basic-line\">\r\n <span>任务类型:</span>\r\n <el-select v-model=\"tableData.params.workType\" clearable filterable class=\"input-box\" placeholder=\"任务类型\">\r\n <el-option v-for=\"item in workTypeList\" :key=\"item.id\" :label=\"item.name\" :value=\"item.id\"></el-option>\r\n </el-select>\r\n </div>\r\n <div class=\"basic-line\">\r\n <span>执行班组:</span>\r\n <el-select v-model=\"tableData.params.execClassgroupId\" clearable filterable class=\"input-box\" placeholder=\"执行班组\">\r\n <el-option v-for=\"item in classGroupList\" :key=\"item.id\" :label=\"item.groupName\" :value=\"item.id\"></el-option>\r\n </el-select>\r\n </div>\r\n <div style=\"padding-bottom: 10px\">\r\n <el-button type=\"primary\" @click=\"getInspectionTask\">查询</el-button>\r\n <el-button plain @click=\"reset\">重置</el-button>\r\n </div>\r\n </el-row>\r\n <div class=\"homeCard\">\r\n <div class=\"main-card\">\r\n <el-row class=\"cardTop\">\r\n <el-col :span=\"12\" class=\"mainCardBtn\">\r\n <el-button type=\"primary\" :icon=\"Plus\" size=\"default\" @click=\"openInspectTaskDialog('新增', {})\">新建</el-button>\r\n <!-- <el-button type=\"danger\" :icon=\"Delete\" size=\"default\" plain>删除</el-button>-->\r\n </el-col>\r\n <el-button type=\"primary\" :icon=\"Refresh\" size=\"default\" />\r\n </el-row>\r\n <el-table ref=\"multipleTableRef\" :data=\"tableData.inspectTaskData\" style=\"width: 100%\" height=\"calc(100% - 100px)\" :header-cell-style=\"{ background: '#fafafa' }\" @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"55\" />\r\n <el-table-column property=\"unitName\" label=\"任务名称\" />\r\n <el-table-column property=\"workType\" label=\"任务类型\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ parseNumber(scope.row.workType, '任务类型') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"execClassgroupId\" label=\"巡检班组\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ parseNumber(scope.row.execClassgroupId, '巡检班组') }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column property=\"frequency\" label=\"检查频次\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ scope.row.checkCycle }}\r\n </span>\r\n <span>\r\n {{ scope.row.checkCycleUnit }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <!-- <el-table-column prop=\"validTime\" label=\"有效时间\" show-overflow-tooltip>-->\r\n <!-- <template #default=\"scope\">-->\r\n <!-- <span>-->\r\n <!-- {{ scope.row.validTime }}-->\r\n <!-- </span>-->\r\n <!-- <span>-->\r\n <!-- {{ parseNumber(scope.row.validTimeUnit, '检查频次') }}-->\r\n <!-- </span>-->\r\n <!-- </template>-->\r\n <!-- </el-table-column>-->\r\n <!-- <el-table-column prop=\"validTime\" label=\"提醒时间\" show-overflow-tooltip>-->\r\n <!-- <template #default=\"scope\">-->\r\n <!-- <span>-->\r\n <!-- {{ scope.row.noticeTime }}-->\r\n <!-- </span>-->\r\n <!-- <span>-->\r\n <!-- {{ parseNumber(scope.row.noticeTimeUnit, '检查频次') }}-->\r\n <!-- </span>-->\r\n <!-- </template>-->\r\n <!-- </el-table-column>-->\r\n <el-table-column property=\"firstStartTime\" label=\"任务开始时间\" />\r\n <el-table-column prop=\"createUserName\" label=\"创建人\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"gmtCreate\" label=\"创建时间\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"lastEditUserName\" label=\"最后修改人\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"gmtModitify\" label=\"最后修改时间\" show-overflow-tooltip></el-table-column>\r\n <el-table-column property=\"status\" label=\"状态\" width=\"60\" />\r\n <el-table-column fixed=\"right\" label=\"操作\" align=\"center\" width=\"300\">\r\n <template #default=\"scope\">\r\n <el-button link type=\"primary\" size=\"small\" :icon=\"View\" @click=\"openInspectTaskDialog('查看', scope.row)\">查看</el-button>\r\n <el-button link type=\"primary\" size=\"small\" :icon=\"Edit\" @click=\"openInspectTaskDialog('修改', scope.row)\">修改</el-button>\r\n <el-button link type=\"danger\" size=\"small\" :icon=\"Delete\" v-if=\"scope.row.taskUnitStatus === 2\" @click=\"deleteInspectTask(scope.row)\">删除</el-button>\r\n <div @click=\"changeStatus(scope.row)\">\r\n <el-switch v-model=\"scope.row.taskUnitStatus\" inline-prompt active-text=\"开\" inactive-text=\"关\" :active-value=\"1\" :inactive-value=\"2\" style=\"margin: 0 10px\" />\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"pageBtn\">\r\n <el-pagination @size-change=\"onHandleSizeChange\" @current-change=\"onHandleCurrentChange\" :pager-count=\"5\" :page-sizes=\"[10, 20, 30]\" v-model:current-page=\"tableData.params.pageIndex\" background v-model:page-size=\"tableData.params.pageSize\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"tableData.total\" class=\"page-position\"> </el-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <inspect-task-dialog ref=\"inspectTaskDialogRef\" @refreshInspectTask=\"getInspectionTask\"></inspect-task-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { toRefs, reactive, ref, onMounted } from 'vue';\r\nimport { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';\r\nimport { ElTable, ElMessage, ElMessageBox } from 'element-plus';\r\nimport { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask';\r\nimport inspectTaskDialog from './components/inspectTaskDialog.vue';\r\nimport { departmentApi } from '/@/api/systemManage/department';\r\nimport { teamManageApi } from '/@/api/systemManage/personShiftManage/teamManage';\r\nimport { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';\r\nimport { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';\r\nimport { RFIDApi } from '/@/api/intellectInspectSystem/RFID';\r\nlet global: any = {\r\n homeChartOne: null,\r\n homeChartTwo: null,\r\n homeCharThree: null,\r\n dispose: [null, '', undefined]\r\n};\r\n\r\ninterface stateType {\r\n tableData: {\r\n inspectTaskData: [];\r\n total: number;\r\n loading: boolean;\r\n params: {\r\n pageIndex: number | null;\r\n pageSize: number | null;\r\n unitName: string | null;\r\n workType: number | null;\r\n createUserId: number | null;\r\n execClassgroupId: number | null;\r\n checkCycle: number | null;\r\n checkCycleUnit: number | null;\r\n };\r\n };\r\n workTypeList: Array<type>;\r\n quotaList: [];\r\n departmentList: [];\r\n classGroupList: Array<classGroup>;\r\n inspectPointAllList: [];\r\n regionNameList: [];\r\n RFIDList: [];\r\n timeType: Array<type>;\r\n}\r\ninterface type {\r\n id: number;\r\n name: string;\r\n}\r\ninterface classGroup {\r\n id: number;\r\n groupName: string;\r\n}\r\nexport default {\r\n name: 'index',\r\n components: { inspectTaskDialog },\r\n setup() {\r\n const inspectTaskDialogRef = ref();\r\n const state = reactive<stateType>({\r\n tableData: {\r\n inspectTaskData: [],\r\n total: 0,\r\n loading: false,\r\n params: {\r\n pageIndex: 1,\r\n pageSize: 10,\r\n unitName: null,\r\n workType: null,\r\n createUserId: null,\r\n execClassgroupId: null,\r\n checkCycle: null,\r\n checkCycleUnit: null\r\n }\r\n },\r\n workTypeList: [\r\n { id: 1, name: '单次任务' },\r\n { id: 2, name: '周期任务' }\r\n ],\r\n quotaList: [],\r\n departmentList: [],\r\n classGroupList: [],\r\n inspectPointAllList: [],\r\n regionNameList: [],\r\n RFIDList: [],\r\n timeType: [\r\n { id: 1, name: '分' },\r\n { id: 2, name: '小时' },\r\n { id: 3, name: '日' },\r\n { id: 4, name: '月' },\r\n { id: 5, name: '年' }\r\n ]\r\n });\r\n\r\n //获取巡检任务数据\r\n const getInspectionTask = async () => {\r\n let res = await inspectTaskApi().getInspectTaskList(state.tableData.params);\r\n if (res.data.code === '200') {\r\n state.tableData.inspectTaskData = res.data.data.records;\r\n state.tableData.total = res.data.data.total;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取部门\r\n const getDepartmentData = async () => {\r\n let res = await departmentApi().getDepartmentList();\r\n if (res.data.code === '200') {\r\n state.departmentList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取部门\r\n const getQuotaList = async () => {\r\n let res = await inspectTaskApi().getQuotaList();\r\n if (res.data.code === '200') {\r\n state.quotaList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取巡检点\r\n const getInspectTaskPoint = async () => {\r\n let res = await inspectPointApi().getInspectPointAll();\r\n if (res.data.code === '200') {\r\n state.inspectPointAllList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取所有设施区域名称\r\n const initFacilityAreaType = async () => {\r\n let res = await facilityAreaApi().getAllFacilityAreaList();\r\n if (res.data.code === '200') {\r\n state.regionNameList = JSON.parse(JSON.stringify(res.data.data));\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取所有RFID名称\r\n const initRFIDList = async () => {\r\n let res = await RFIDApi().getAllRFIDList();\r\n if (res.data.code === '200') {\r\n state.RFIDList = JSON.parse(JSON.stringify(res.data.data));\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n //获取班组\r\n const getClassGroupData = async () => {\r\n let res = await teamManageApi().getRecord({ depIp: null, groupName: null, containGroupMemberEnable: null });\r\n if (res.data.code === '200') {\r\n state.classGroupList = res.data.data;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n const changeStatus = async (value: { taskUnitStatus: number; id: number }) => {\r\n if (value.taskUnitStatus === 2) {\r\n ElMessageBox.confirm(`此操作将关闭该巡检任务”,是否继续?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(async () => {\r\n let res = await inspectTaskApi().openOrCloseInspectTask({ id: value.id, taskUnitStatus: 2 });\r\n if (res.data.code === '200') {\r\n await getInspectionTask();\r\n ElMessage({\r\n type: 'success',\r\n duration: 2000,\r\n message: '关闭成功'\r\n });\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch((error) => {});\r\n } else {\r\n ElMessageBox.confirm(`此操作将开启该巡检任务”,是否继续?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(async () => {\r\n let res = await inspectTaskApi().openOrCloseInspectTask({ id: value.id, taskUnitStatus: 1 });\r\n if (res.data.code === '200') {\r\n await getInspectionTask();\r\n ElMessage({\r\n type: 'success',\r\n duration: 2000,\r\n message: '开启成功'\r\n });\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch((error) => {});\r\n }\r\n await getInspectionTask();\r\n };\r\n\r\n // 删除\r\n const deleteInspectTask = (row: any) => {\r\n ElMessageBox.confirm(`此操作将永久删除该任务:“${row.unitName}”,是否继续?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(async () => {\r\n let res = await inspectTaskApi().deleteInspectTask({ id: row.id });\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n duration: 2000,\r\n message: '删除成功'\r\n });\r\n await getInspectionTask();\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch(() => {});\r\n };\r\n\r\n const openInspectTaskDialog = (type: string, value: {}) => {\r\n inspectTaskDialogRef.value.showInspectTaskDialog(type, value, state.workTypeList, state.departmentList, state.timeType, state.classGroupList, state.quotaList, state.inspectPointAllList, state.regionNameList, state.RFIDList);\r\n };\r\n\r\n const parseNumber = (value: number, type: string) => {\r\n if (type === '任务类型') {\r\n return state.workTypeList.find((item) => item.id === value)?.name;\r\n } else if (type === '检查频次') {\r\n return state.timeType.find((item) => item.id == value)?.name;\r\n } else {\r\n return state.classGroupList.find((item) => item.id == value)?.groupName;\r\n }\r\n };\r\n\r\n // 分页改变\r\n const onHandleSizeChange = (val: number) => {\r\n state.tableData.params.pageSize = val;\r\n getInspectionTask();\r\n };\r\n // 分页改变\r\n const onHandleCurrentChange = (val: number) => {\r\n state.tableData.params.pageIndex = val;\r\n getInspectionTask();\r\n };\r\n\r\n const reset = () => {\r\n state.tableData.params = {\r\n pageIndex: 1,\r\n pageSize: 10,\r\n unitName: null,\r\n workType: null,\r\n createUserId: null,\r\n execClassgroupId: null,\r\n checkCycle: null,\r\n checkCycleUnit: null\r\n };\r\n };\r\n\r\n // 页面加载时\r\n onMounted(() => {\r\n getInspectionTask();\r\n getQuotaList();\r\n getDepartmentData();\r\n getClassGroupData();\r\n getInspectTaskPoint();\r\n initFacilityAreaType();\r\n initRFIDList();\r\n });\r\n\r\n return {\r\n View,\r\n Edit,\r\n Delete,\r\n Refresh,\r\n Plus,\r\n reset,\r\n changeStatus,\r\n parseNumber,\r\n deleteInspectTask,\r\n getInspectionTask,\r\n onHandleSizeChange,\r\n onHandleCurrentChange,\r\n inspectTaskDialogRef,\r\n openInspectTaskDialog,\r\n ...toRefs(state)\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n$homeNavLengh: 8;\r\n.home-container {\r\n height: calc(100vh - 144px);\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n .homeCard {\r\n width: 100%;\r\n padding: 20px;\r\n box-sizing: border-box;\r\n background: #fff;\r\n border-radius: 4px;\r\n\r\n .main-card {\r\n width: 100%;\r\n height: 100%;\r\n .cardTop {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n .mainCardBtn {\r\n margin: 0;\r\n }\r\n }\r\n .pageBtn {\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: right;\r\n\r\n .demo-pagination-block + .demo-pagination-block {\r\n margin-top: 10px;\r\n }\r\n .demo-pagination-block .demonstration {\r\n margin-bottom: 16px;\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n height: calc(100% - 100px);\r\n }\r\n }\r\n .el-row {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n .grid-content {\r\n align-items: center;\r\n min-height: 36px;\r\n }\r\n\r\n .topInfo {\r\n display: flex;\r\n align-items: center;\r\n font-size: 16px;\r\n font-weight: bold;\r\n\r\n & > div {\r\n white-space: nowrap;\r\n margin-right: 20px;\r\n }\r\n }\r\n }\r\n}\r\n.stepItem {\r\n width: 100%;\r\n display: flex;\r\n align-items: flex-start;\r\n margin-bottom: 30px;\r\n margin-left: 30px;\r\n padding-bottom: 30px;\r\n border-left: 2px solid #ccc;\r\n &:first-of-type {\r\n margin-top: 30px;\r\n }\r\n &:last-of-type {\r\n margin-bottom: 0;\r\n border-left: none;\r\n }\r\n .stepNum {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 15px;\r\n box-sizing: border-box;\r\n color: #333;\r\n border: 1px solid #999;\r\n line-height: 28px;\r\n text-align: center;\r\n margin-right: 10px;\r\n margin-left: -16px;\r\n margin-top: -30px;\r\n }\r\n .stepCard {\r\n width: 100%;\r\n margin-top: -30px;\r\n\r\n .box-card {\r\n width: 100%;\r\n &:deep(.el-card__header) {\r\n padding: 10px 15px;\r\n }\r\n .card-header {\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n & > div:first-of-type {\r\n margin-right: 80px;\r\n font-size: 18px;\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n }\r\n &:hover .card-header {\r\n color: #0098f5;\r\n }\r\n &:hover .stepNum {\r\n border: 2px solid #0098f5;\r\n color: #0098f5;\r\n }\r\n}\r\n.el-input {\r\n width: 100% !important;\r\n}\r\n:deep(.el-date-editor) {\r\n width: 100%;\r\n}\r\n.el-select {\r\n width: 100%;\r\n}\r\n:deep(.el-textarea.is-disabled .el-textarea__inner) {\r\n background-color: var(--el-card-bg-color);\r\n color: var(--el-input-text-color, var(--el-text-color-regular));\r\n}\r\n:deep(.el-input.is-disabled .el-input__inner) {\r\n color: var(--el-input-text-color, var(--el-text-color-regular));\r\n}\r\n:deep(.el-input.is-disabled .el-input__wrapper) {\r\n background-color: var(--el-card-bg-color);\r\n}\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue |
| | | --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue (revision 624a145dcb9959e769fa635a4b9e2fe4758772ed) |
| | | +++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue (date 1661217995642) |
| | | @@ -80,7 +80,22 @@ |
| | | <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | - <el-table-column property="status" label="状态" width="60" /> |
| | | + <el-table-column property="taskUnitStatus" label="状态" width="60"> |
| | | + <template #default="scope"> |
| | | + <div> |
| | | + <div v-if="scope.row.taskUnitStatus === 1"> |
| | | + <el-tag :type="''"> |
| | | + {{ '开启' }} |
| | | + </el-tag> |
| | | + </div> |
| | | + <div v-if="scope.row.taskUnitStatus === 2"> |
| | | + <el-tag :type="'danger'"> |
| | | + {{ '关闭' }} |
| | | + </el-tag> |
| | | + </div> |
| | | + </div> |
| | | + </template> |
| | | + </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" width="300"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" :icon="View" @click="openInspectTaskDialog('查看', scope.row)">查看</el-button> |
| | | @@ -175,8 +190,8 @@ |
| | | } |
| | | }, |
| | | workTypeList: [ |
| | | - { id: 1, name: '单次任务' }, |
| | | - { id: 2, name: '周期任务' } |
| | | + { id: 1, name: '周期任务' }, |
| | | + { id: 2, name: '单次任务' } |
| | | ], |
| | | quotaList: [], |
| | | departmentList: [], |
| | | Index: src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"system-add-menu-container\">\r\n <el-dialog v-model=\"ifShowInspectTaskDialog\" :title=\"title\" :close-on-click-modal=\"false\">\r\n <el-form :model=\"inspectTaskForm\" label-width=\"120px\" ref=\"inspectTaskFormRef\" :rules=\"inspectTaskFormRules\">\r\n <el-row>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"任务名称\" prop=\"unitName\">\r\n <el-input v-model=\"inspectTaskForm.unitName\" :disabled=\"!inspectPointConfirm\" class=\"input-add\" placeholder=\"请填写任务名称\"> </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"任务类型\" prop=\"workType\">\r\n <el-select v-model=\"inspectTaskForm.workType\" :disabled=\"!inspectPointConfirm\" class=\"input-add\" placeholder=\"请选择任务类型\">\r\n <el-option v-for=\"item in workTypeList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"巡检部门\" prop=\"execDepId\">\r\n <el-cascader @change=\"giveClassGroup\" :disabled=\"!inspectPointConfirm\" v placeholder=\"请选择巡检部门\" :options=\"departmentList\" :props=\"{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }\" clearable filterable class=\"input-add\" v-model=\"inspectTaskForm.execDepId\"> </el-cascader>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"巡检班组\" prop=\"execClassgroupId\">\r\n <el-select v-model=\"inspectTaskForm.execClassgroupId\" :disabled=\"!inspectPointConfirm\" placeholder=\"请选择巡检班组\" class=\"input-add\">\r\n <el-option v-for=\"item in classGroup\" :key=\"item.id\" :value=\"item.id\" :label=\"item.groupName\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\" v-if=\"inspectTaskForm.workType === 2\">\r\n <el-form-item label=\"巡检周期\" prop=\"checkCycle\">\r\n <el-input v-model=\"inspectTaskForm.checkCycle\" @input=\"onVerifiyNumberInteger($event, 'checkCycle')\" :disabled=\"!inspectPointConfirm\" placeholder=\"请输入巡检周期\" class=\"input-add\">\r\n <template #append>\r\n <el-form-item prop=\"checkCycleUnit\">\r\n <el-select v-model=\"inspectTaskForm.checkCycleUnit\" :disabled=\"!inspectPointConfirm\" placeholder=\"选择单位\">\r\n <el-option v-for=\"item in timeList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"提前通知时间\" prop=\"noticeTime\">\r\n <el-input @input=\"onVerifiyNumberInteger($event, 'noticeTime')\" v-model=\"inspectTaskForm.noticeTime\" :disabled=\"!inspectPointConfirm\" placeholder=\"请输入提前通知时间\" class=\"input-add\">\r\n <template #append>\r\n <el-form-item prop=\"noticeTimeUnit\">\r\n <el-select v-model=\"inspectTaskForm.noticeTimeUnit\" :disabled=\"!inspectPointConfirm\" placeholder=\"选择单位\">\r\n <el-option v-for=\"item in timeList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"有效时间\" prop=\"validTime\">\r\n <el-input v-model=\"inspectTaskForm.validTime\" @input=\"onVerifiyNumberInteger($event, 'validTime')\" :disabled=\"!inspectPointConfirm\" placeholder=\"请输入有效时间\" class=\"input-add\">\r\n <template #append>\r\n <el-form-item prop=\"noticeTimeUnit\">\r\n <el-select v-model=\"inspectTaskForm.validTimeUnit\" :disabled=\"!inspectPointConfirm\" placeholder=\"选择单位\">\r\n <el-option v-for=\"item in timeList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\" style=\"margin-bottom: 20px\">\r\n <el-form-item label=\"任务开始时间\" prop=\"firstStartTime\">\r\n <el-date-picker v-model=\"inspectTaskForm.firstStartTime\" :disabled=\"!inspectPointConfirm\" placeholder=\"请选择任务开始时间\" type=\"datetime\" format=\"YYYY/MM/DD HH:mm:ss\" value-format=\"YYYY-MM-DD HH:mm:ss\" class=\"input-add\" />\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"创建巡检链\">\r\n <div style=\"width: 100%; margin-bottom: 20px\" v-show=\"inspectPointConfirm\">\r\n <el-button type=\"primary\" :icon=\"Plus\" size=\"default\" @click=\"openInspectPointDialog('新增', '')\">新增巡检点</el-button>\r\n </div>\r\n <div style=\"width: 100%; margin-left: -30px\">\r\n <div v-for=\"(item, index) in inspectTaskForm.points\" class=\"stepItem\">\r\n <div class=\"stepNum\">{{ index + 1 }}</div>\r\n <div class=\"stepCard\">\r\n <el-card class=\"box-card\">\r\n <template #header>\r\n <div class=\"card-header\" v-for=\"i in inspectPointAllList\">\r\n <div v-if=\"i.id == item.pointId\">\r\n <span>{{ i.code }}</span>\r\n </div>\r\n </div>\r\n </template>\r\n <div class=\"text item\" v-for=\"i in regionNameList\">\r\n <div v-if=\"i.id == item.regionId\">\r\n 所属设备区域:<span>{{ i.region }}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"text item\">-->\r\n <!-- 所属设备区域:<span>{{ item.regionId }}</span>-->\r\n <!-- </div>-->\r\n <div class=\"text item\" v-for=\"i in RFIDList\">\r\n <div v-if=\"i.id == item.rfidId\">\r\n 所属设备区域:<span>{{ i.rfidName }}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"text item\">-->\r\n <!-- 关联RFID:<span>{{ item.rfidId }}</span>-->\r\n <!-- </div>-->\r\n <div class=\"text item\" v-for=\"i in quotaList\">\r\n <div v-if=\"i.id == item.quotaId\">\r\n 所属设备区域:<span>{{ i.type }}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"text item\">-->\r\n <!-- 巡检指标:<span>{{ item.quotaId }}</span>-->\r\n <!-- </div>-->\r\n <div class=\"text item\" v-for=\"i in dataReportTypeList\">\r\n <div v-if=\"i.id == item.dataReportType\">\r\n 所属设备区域:<span>{{ i.name }}</span>\r\n </div>\r\n </div>\r\n <!-- <div class=\"text item\">-->\r\n <!-- 数据填报类型:<span>{{ item.dataReportType }}</span>-->\r\n <!-- </div>-->\r\n <div class=\"text item\">\r\n 数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span>\r\n </div>\r\n </el-card>\r\n </div>\r\n <div v-show=\"inspectPointConfirm\">\r\n <!--\t\t\t\t\t\t\t\t<el-button type=\"primary\" size=\"default\" @click=\"addFlow(index)\">新增下一区域</el-button>-->\r\n <el-button type=\"primary\" style=\"margin-left: 12px\" size=\"default\" @click=\"openInspectPointDialog('修改', item)\">修改</el-button>\r\n <el-button type=\"danger\" size=\"default\" @click=\"deleteFlow(index, item)\">删除</el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <template #footer>\r\n <div v-if=\"inspectPointConfirm\" class=\"dialog-footer\">\r\n <el-button type=\"warning\" @click=\"ifShowInspectTaskDialog = false\" size=\"default\" plain>取消</el-button>\r\n <el-button type=\"primary\" @click=\"submitInspectTask()\" size=\"default\">确认</el-button>\r\n </div>\r\n </template>\r\n </el-dialog>\r\n <el-dialog v-model=\"inspectPointDialog\" :title=\"pointTitle\" :close-on-click-modal=\"false\">\r\n <el-form :model=\"inspectPointForm\" label-width=\"150px\" ref=\"inspectPointFormRef\" :rules=\"inspectPointFormRules\">\r\n <el-form-item label=\"选择巡检点\" prop=\"pointId\">\r\n <el-select v-model=\"inspectPointForm.pointId\" @change=\"giveRegionAndRFID\" class=\"input-add\">\r\n <el-option v-for=\"item in inspectPointAllList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.code\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"所属设备区域\" prop=\"regionId\">\r\n <el-input v-model=\"inspectPointForm.regionId\" class=\"input-add\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"关联RFID\" prop=\"rfidId\">\r\n <el-input v-model=\"inspectPointForm.rfidId\" class=\"input-add\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"选择巡检指标\" prop=\"quotaId\">\r\n <el-select v-model=\"inspectPointForm.quotaId\" @change=\"giveQuotaUnit\" placeholder=\"请选择巡检指标\" class=\"input-add\">\r\n <el-option v-for=\"item in quotaList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.type\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"选择巡检指标单位\" prop=\"quotaUnit\">\r\n <el-input v-model=\"inspectPointForm.quotaUnit\" placeholder=\"单位\" class=\"input-add\"> </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"数据填报类型\" prop=\"dataReportType\">\r\n <el-select v-model=\"inspectPointForm.dataReportType\" class=\"input-add\">\r\n <el-option v-for=\"item in dataReportTypeList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item v-if=\"inspectPointForm.dataReportType == '1' || inspectPointForm.dataReportType == '3'\" label=\"数据参考值\" prop=\"firstReferenceValue\">\r\n <el-select v-model=\"inspectPointForm.firstReferenceValue\" class=\"input-add\">\r\n <el-option v-for=\"item in firstReferenceValueList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item v-if=\"inspectPointForm.dataReportType == '2' || inspectPointForm.dataReportType == '3'\" label=\"数据参考值\">\r\n <el-input v-model=\"inspectPointForm.secondReferenceValue\" type=\"number\" class=\"input-add\" placeholder=\"请根据需求选择前方符号后再填写参考值,非必填\">\r\n <template #prepend>\r\n <el-select v-model=\"inspectPointForm.secondReferenceSign\" placeholder=\"Select\" style=\"width: 115px\">\r\n <el-option v-for=\"item in secondReferenceSignList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"> </el-option>\r\n </el-select>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item v-if=\"inspectPointForm.dataReportType == '2' || inspectPointForm.dataReportType == '3'\" label=\"\">\r\n <el-input v-model=\"inspectPointForm.thirdReferenceValue\" type=\"number\" class=\"input-add\" placeholder=\"请根据需求选择前方符号后再填写参考值,非必填\">\r\n <template #prepend>\r\n <el-select v-model=\"inspectPointForm.thirdReferenceSign\" placeholder=\"Select\" style=\"width: 115px\">\r\n <el-option v-for=\"item in thirdReferenceSignList\" :key=\"item.id\" :value=\"item.id\" :label=\"item.name\"> </el-option>\r\n </el-select>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n <div align=\"right\">\r\n <el-button type=\"warning\" @click=\"inspectPointDialog = false\" size=\"default\" plain>取消</el-button>\r\n <el-button type=\"primary\" @click=\"submitInspectPoint()\" size=\"default\">确认</el-button>\r\n </div>\r\n </el-form>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { reactive, toRefs, ref } from 'vue';\r\nimport { ElMessage } from 'element-plus/es';\r\nimport { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask';\r\nimport { verifiyNumberInteger } from '/@/utils/toolsValidate';\r\n\r\ninterface dataState {\r\n title: string;\r\n pointTitle: string;\r\n inspectPointConfirm: boolean;\r\n inspectPointDialog: boolean;\r\n ifShowInspectTaskDialog: boolean;\r\n inspectPointForm: inspectPointForm;\r\n inspectTaskForm: {\r\n id: number | null;\r\n uuid: number | null;\r\n unitName: number | null;\r\n taskUnitStatus: number | null;\r\n workType: number | null;\r\n execClassgroupId: number | null;\r\n execDepId: number | null;\r\n checkCycle: number | null;\r\n checkCycleUnit: number | null;\r\n noticeTime: number | null;\r\n noticeTimeUnit: number | null;\r\n validTime: number | null;\r\n validTimeUnit: number | null;\r\n firstStartTime: number | null;\r\n points: Array<inspectPointForm>;\r\n };\r\n inspectTaskFormRules: {};\r\n inspectPointFormRules: {};\r\n workTypeList: [];\r\n departmentList: [];\r\n timeList: [];\r\n dataReportTypeList: Array<dataReport>;\r\n firstReferenceValueList: Array<dataReport>;\r\n secondReferenceSignList: Array<dataReport>;\r\n thirdReferenceSignList: Array<dataReport>;\r\n classGroupList: Array<classGroup>;\r\n classGroup: Array<classGroup>;\r\n quotaList: Array<quota>;\r\n inspectPointAllList: Array<inspectPointAllState>;\r\n regionNameList: Array<inspectPointAllState>;\r\n RFIDList: Array<inspectPointAllState>;\r\n}\r\ninterface inspectPointAllState {\r\n id: number;\r\n code: string;\r\n regionId: number;\r\n rfidId: number;\r\n rfidName: string;\r\n region: string;\r\n}\r\ninterface classGroup {\r\n depId: number;\r\n}\r\ninterface dataReport {\r\n id: number;\r\n name: string;\r\n}\r\ninterface quota {\r\n id: number;\r\n type: string;\r\n unit: string;\r\n}\r\ninterface inspectPointForm {\r\n id: number | null;\r\n unitId: number | null;\r\n unitUuid: string | null;\r\n pointId: number | null;\r\n pointUuid: string | null;\r\n regionId: number | null;\r\n regionUuid: string | null;\r\n rfidId: number | null;\r\n quotaId: number | null;\r\n quotaUnit: string | null;\r\n execSequence: number | null;\r\n dataReportType: number | null;\r\n firstReferenceValue: number | null;\r\n secondReferenceSign: number | null;\r\n secondReferenceValue: number | null;\r\n thirdReferenceSign: number | null;\r\n thirdReferenceValue: number | null;\r\n}\r\nexport default {\r\n name: 'inspectTaskDialog',\r\n setup(props: any, context: any) {\r\n const inspectTaskFormRef = ref();\r\n const inspectPointFormRef = ref();\r\n const data = reactive<dataState>({\r\n title: '',\r\n pointTitle: '',\r\n inspectPointConfirm: false,\r\n inspectPointDialog: false,\r\n ifShowInspectTaskDialog: false,\r\n inspectPointForm: {\r\n id: null,\r\n unitId: null,\r\n unitUuid: null,\r\n pointId: null,\r\n pointUuid: null,\r\n regionId: null,\r\n regionUuid: null,\r\n rfidId: null,\r\n quotaId: null,\r\n quotaUnit: null,\r\n execSequence: null,\r\n dataReportType: null,\r\n firstReferenceValue: null,\r\n secondReferenceSign: null,\r\n secondReferenceValue: null,\r\n thirdReferenceSign: null,\r\n thirdReferenceValue: null\r\n },\r\n inspectTaskForm: {\r\n id: null,\r\n uuid: null,\r\n unitName: null,\r\n taskUnitStatus: null,\r\n workType: null,\r\n execClassgroupId: null,\r\n execDepId: null,\r\n checkCycle: null,\r\n checkCycleUnit: null,\r\n noticeTime: null,\r\n noticeTimeUnit: null,\r\n validTime: null,\r\n validTimeUnit: null,\r\n firstStartTime: null,\r\n points: []\r\n },\r\n inspectTaskFormRules: {\r\n unitName: [{ required: true, message: '请填写巡检任务单元名称', trigger: 'blur' }],\r\n workType: [{ required: true, message: '请选择巡检任务类型', trigger: 'change' }],\r\n execClassgroupId: [{ required: true, message: '请选择巡检班组', trigger: 'change' }],\r\n execDepId: [{ required: true, message: '请选择巡检部门', trigger: 'blur' }],\r\n checkCycle: [{ required: true, message: '请填写巡检周期', trigger: 'blur' }],\r\n checkCycleUnit: [{ required: true, message: '请选择巡检周期单位', trigger: 'change' }],\r\n noticeTime: [{ required: true, message: '请填写提前通知时间', trigger: 'blur' }],\r\n noticeTimeUnit: [{ required: true, message: '请选择提前通知时间单位', trigger: 'change' }],\r\n validTime: [{ required: true, message: '请填写有效时间', trigger: 'blur' }],\r\n validTimeUnit: [{ required: true, message: '请选择有效时间单位', trigger: 'change' }],\r\n firstStartTime: [{ required: true, message: '请选择周期开始时间', trigger: 'change' }]\r\n },\r\n inspectPointFormRules: {\r\n pointId: [{ required: true, message: '请选择巡检点', trigger: 'change' }],\r\n regionId: [{ required: true, message: '', trigger: 'change' }],\r\n rfidId: [{ required: true, message: '', trigger: 'change' }],\r\n quotaId: [{ required: true, message: '请选择巡检指标', trigger: 'change' }],\r\n quotaUnit: [{ required: true, message: '请填写巡检指标单位', trigger: 'blur' }],\r\n dataReportType: [{ required: true, message: '请选择巡检指标单位', trigger: 'change' }]\r\n },\r\n workTypeList: [],\r\n departmentList: [],\r\n timeList: [],\r\n classGroupList: [],\r\n classGroup: [],\r\n quotaList: [],\r\n inspectPointAllList: [],\r\n regionNameList: [],\r\n RFIDList: [],\r\n dataReportTypeList: [\r\n { id: 1, name: '选择' },\r\n { id: 2, name: '填空' },\r\n { id: 3, name: '选择并填空' }\r\n ],\r\n firstReferenceValueList: [\r\n { id: 0, name: '正常' },\r\n { id: 1, name: '异常' }\r\n ],\r\n secondReferenceSignList: [\r\n { id: 1, name: '>' },\r\n { id: 2, name: '>=' }\r\n ],\r\n thirdReferenceSignList: [\r\n { id: 3, name: '<' },\r\n { id: 4, name: '<=' }\r\n ]\r\n });\r\n\r\n const openInspectPointDialog = (type: string, value: {}) => {\r\n data.inspectPointDialog = true;\r\n if (type === '新增') {\r\n data.pointTitle = '新增巡检点';\r\n data.inspectPointForm = {\r\n id: null,\r\n unitId: null,\r\n unitUuid: null,\r\n pointId: null,\r\n pointUuid: null,\r\n regionId: null,\r\n regionUuid: null,\r\n rfidId: null,\r\n quotaId: null,\r\n quotaUnit: null,\r\n execSequence: null,\r\n dataReportType: null,\r\n firstReferenceValue: null,\r\n secondReferenceSign: null,\r\n secondReferenceValue: null,\r\n thirdReferenceSign: null,\r\n thirdReferenceValue: null\r\n };\r\n } else {\r\n data.pointTitle = '修改巡检点';\r\n data.inspectPointForm = JSON.parse(JSON.stringify(value));\r\n }\r\n };\r\n\r\n const showInspectTaskDialog = (type: string, value: { id: number; uuid: string }, workTypeList: [], department: [], timeType: [], classGroupList: [], quotaList: [], inspectPointAllList: [], regionNameList: [], RFIDList: []) => {\r\n data.regionNameList = regionNameList;\r\n data.RFIDList = RFIDList;\r\n data.quotaList = JSON.parse(JSON.stringify(quotaList));\r\n data.timeList = JSON.parse(JSON.stringify(timeType));\r\n data.inspectPointAllList = JSON.parse(JSON.stringify(inspectPointAllList));\r\n data.workTypeList = JSON.parse(JSON.stringify(workTypeList));\r\n data.departmentList = JSON.parse(JSON.stringify(department));\r\n data.classGroupList = JSON.parse(JSON.stringify(classGroupList));\r\n data.ifShowInspectTaskDialog = true;\r\n if (type === '新增') {\r\n data.inspectPointConfirm = true;\r\n data.title = '新增巡检任务';\r\n data.inspectTaskForm = {\r\n id: null,\r\n uuid: null,\r\n unitName: null,\r\n taskUnitStatus: null,\r\n workType: null,\r\n execClassgroupId: null,\r\n execDepId: null,\r\n checkCycle: null,\r\n checkCycleUnit: null,\r\n noticeTime: null,\r\n noticeTimeUnit: null,\r\n validTime: null,\r\n validTimeUnit: null,\r\n firstStartTime: null,\r\n points: []\r\n };\r\n } else if (type === '修改') {\r\n data.inspectPointConfirm = true;\r\n data.title = '修改巡检任务';\r\n inspectTaskApi()\r\n .getInspectTaskById({ id: value.id, uuid: value.uuid })\r\n .then((res) => {\r\n if (res.data.code === '200') {\r\n data.inspectTaskForm.execDepId = res.data.data.execDepId;\r\n giveClassGroup();\r\n data.inspectTaskForm = JSON.parse(JSON.stringify(res.data.data));\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch((error) => {});\r\n } else {\r\n data.inspectPointConfirm = false;\r\n data.title = '查看巡检任务';\r\n inspectTaskApi()\r\n .getInspectTaskById({ id: value.id, uuid: value.uuid })\r\n .then((res) => {\r\n if (res.data.code === '200') {\r\n data.inspectTaskForm = JSON.parse(JSON.stringify(res.data.data));\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch((error) => {});\r\n }\r\n };\r\n\r\n const submitInspectPoint = () => {\r\n inspectPointFormRef.value.validate(async (valid: Boolean) => {\r\n if (valid) {\r\n if (data.title === '新增巡检任务' && data.pointTitle === '新增巡检点') {\r\n if (data.inspectTaskForm.points.length === 0) {\r\n data.inspectPointForm.execSequence = 1;\r\n } else {\r\n data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;\r\n }\r\n data.inspectTaskForm.points.push(data.inspectPointForm);\r\n data.inspectPointDialog = false;\r\n } else if (data.title === '新增巡检任务' && data.pointTitle === '修改巡检点') {\r\n let result = data.inspectTaskForm.points.findIndex((item) => item.execSequence === data.inspectPointForm.execSequence);\r\n data.inspectTaskForm.points[result] = data.inspectPointForm;\r\n data.inspectPointDialog = false;\r\n } else if (data.title === '修改巡检任务' && data.pointTitle === '新增巡检点') {\r\n data.inspectPointForm.unitId = data.inspectTaskForm.id;\r\n if (data.inspectTaskForm.points.length === 0) {\r\n data.inspectPointForm.execSequence = 1;\r\n } else {\r\n data.inspectPointForm.execSequence = (data.inspectTaskForm.points[data.inspectTaskForm.points.length - 1].execSequence as number) + 1;\r\n }\r\n let res = await inspectTaskApi().addChainOfInspectTask(data.inspectPointForm);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n message: '巡检点新增成功',\r\n duration: 2000\r\n });\r\n data.inspectPointDialog = false;\r\n data.inspectTaskForm.points.push(data.inspectPointForm);\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n } else {\r\n data.inspectPointForm.unitId = data.inspectTaskForm.id;\r\n let res = await inspectTaskApi().modChainOfInspectTask(data.inspectPointForm);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n message: '巡检点修改成功',\r\n duration: 2000\r\n });\r\n let result = data.inspectTaskForm.points.findIndex((item) => item.execSequence === data.inspectPointForm.execSequence);\r\n data.inspectTaskForm.points[result] = data.inspectPointForm;\r\n data.inspectPointDialog = false;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n }\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: '请完善基本信息'\r\n });\r\n }\r\n });\r\n };\r\n const deleteFlow = async (index: number, item: { id: number }) => {\r\n if (data.pointTitle === '新增巡检点') {\r\n data.inspectTaskForm.points.splice(index, 1);\r\n } else {\r\n let res = await inspectTaskApi().deleteChainOfInspectTask({ id: item.id, unitId: data.inspectTaskForm.id });\r\n if (res.data.code === '200') {\r\n data.inspectTaskForm.points.splice(index, 1);\r\n ElMessage({\r\n type: 'success',\r\n message: '巡检点删除成功'\r\n });\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n }\r\n };\r\n\r\n const giveRegionAndRFID = () => {\r\n data.inspectPointForm.regionId = data.inspectPointAllList.find((item) => item.id === data.inspectPointForm.pointId)?.regionId as number;\r\n data.inspectPointForm.rfidId = data.inspectPointAllList.find((item) => item.id === data.inspectPointForm.pointId)?.rfidId as number;\r\n };\r\n\r\n const giveClassGroup = () => {\r\n data.inspectTaskForm.execClassgroupId = null;\r\n data.classGroup = data.classGroupList.filter((item) => item.depId === data.inspectTaskForm.execDepId);\r\n };\r\n\r\n const giveQuotaUnit = () => {\r\n data.inspectPointForm.quotaUnit = data.quotaList.find((item) => item.id === data.inspectPointForm.quotaId)?.unit as string;\r\n };\r\n\r\n const submitInspectTask = () => {\r\n inspectTaskFormRef.value.validate(async (valid: Boolean) => {\r\n if (valid) {\r\n if (data.title === '新增巡检任务') {\r\n let res = await inspectTaskApi().addInspectTask(data.inspectTaskForm);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n message: '巡检任务新增成功',\r\n duration: 2000\r\n });\r\n data.ifShowInspectTaskDialog = false;\r\n context.emit('refreshInspectTask');\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n } else {\r\n let res = await inspectTaskApi().modInspectTask(data.inspectTaskForm);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n message: '巡检指标修改成功',\r\n duration: 2000\r\n });\r\n data.ifShowInspectTaskDialog = false;\r\n context.emit('refreshInspectTask');\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n }\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: '请完善基本信息'\r\n });\r\n }\r\n });\r\n };\r\n\r\n const onVerifiyNumberInteger = (val: number, title: string) => {\r\n if (title === 'noticeTime') {\r\n data.inspectTaskForm.noticeTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));\r\n } else if (title === 'checkCycle') {\r\n data.inspectTaskForm.checkCycle = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));\r\n } else {\r\n data.inspectTaskForm.validTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));\r\n }\r\n };\r\n\r\n return {\r\n ...toRefs(data),\r\n inspectTaskFormRef,\r\n deleteFlow,\r\n giveQuotaUnit,\r\n giveClassGroup,\r\n inspectPointFormRef,\r\n onVerifiyNumberInteger,\r\n submitInspectTask,\r\n submitInspectPoint,\r\n giveRegionAndRFID,\r\n showInspectTaskDialog,\r\n openInspectPointDialog\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n$homeNavLengh: 8;\r\n.home-container {\r\n height: calc(100vh - 144px);\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n .homeCard {\r\n width: 100%;\r\n padding: 20px;\r\n box-sizing: border-box;\r\n background: #fff;\r\n border-radius: 4px;\r\n\r\n .main-card {\r\n width: 100%;\r\n height: 100%;\r\n .cardTop {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n .mainCardBtn {\r\n margin: 0;\r\n }\r\n }\r\n .pageBtn {\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: right;\r\n\r\n .demo-pagination-block + .demo-pagination-block {\r\n margin-top: 10px;\r\n }\r\n .demo-pagination-block .demonstration {\r\n margin-bottom: 16px;\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n height: calc(100% - 100px);\r\n }\r\n }\r\n .el-row {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n .grid-content {\r\n align-items: center;\r\n min-height: 36px;\r\n }\r\n\r\n .topInfo {\r\n display: flex;\r\n align-items: center;\r\n font-size: 16px;\r\n font-weight: bold;\r\n\r\n & > div {\r\n white-space: nowrap;\r\n margin-right: 20px;\r\n }\r\n }\r\n }\r\n}\r\n.stepItem {\r\n width: 100%;\r\n display: flex;\r\n align-items: flex-start;\r\n margin-bottom: 30px;\r\n margin-left: 30px;\r\n padding-bottom: 30px;\r\n border-left: 2px solid #ccc;\r\n &:first-of-type {\r\n margin-top: 30px;\r\n }\r\n &:last-of-type {\r\n margin-bottom: 0;\r\n border-left: none;\r\n }\r\n .stepNum {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 15px;\r\n box-sizing: border-box;\r\n color: #333;\r\n border: 1px solid #999;\r\n line-height: 28px;\r\n text-align: center;\r\n margin-right: 10px;\r\n margin-left: -16px;\r\n margin-top: -30px;\r\n }\r\n .stepCard {\r\n width: 100%;\r\n margin-top: -30px;\r\n\r\n .box-card {\r\n width: 100%;\r\n &:deep(.el-card__header) {\r\n padding: 10px 15px;\r\n }\r\n .card-header {\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n & > div:first-of-type {\r\n margin-right: 80px;\r\n font-size: 18px;\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n }\r\n &:hover .card-header {\r\n color: #0098f5;\r\n }\r\n &:hover .stepNum {\r\n border: 2px solid #0098f5;\r\n color: #0098f5;\r\n }\r\n}\r\n:deep(.el-date-editor) {\r\n width: 100%;\r\n}\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue |
| | | --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue (revision 624a145dcb9959e769fa635a4b9e2fe4758772ed) |
| | | +++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue (date 1661218095819) |
| | | @@ -27,7 +27,7 @@ |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | - <el-col :span="12" style="margin-bottom: 20px" v-if="inspectTaskForm.workType === 2"> |
| | | + <el-col :span="12" style="margin-bottom: 20px" v-if="inspectTaskForm.workType === 1"> |
| | | <el-form-item label="巡检周期" prop="checkCycle"> |
| | | <el-input v-model="inspectTaskForm.checkCycle" @input="onVerifiyNumberInteger($event, 'checkCycle')" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add"> |
| | | <template #append> |
| | | Index: src/views/specialWorkSystem/workTicket/myApproval/index.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"home-container\">\r\n<!-- <el-tabs v-model=\"activeName\" class=\"demo-tabs\" @tab-click=\"handleClick\">-->\r\n<!-- <el-tab-pane label=\"申请中\" name=\"1\">-->\r\n <div style=\"height: 100%\">\r\n <el-row class=\"homeCard\">\r\n <el-col :span=\"8\">\r\n <div class=\"grid-content topInfo\">\r\n <el-select v-model=\"searchWord\">\r\n <el-option\r\n v-for=\"item in workType\"\r\n :key=\"item.id\"\r\n :label=\"item.name\"\r\n :value=\"item.id\"\r\n />\r\n </el-select>\r\n <el-button type=\"primary\" @click=\"searchRecord\">查询</el-button>\r\n <el-button plain @click=\"clearSearch\">重置</el-button>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n <div class=\"homeCard\">\r\n <div class=\"main-card\">\r\n <el-row class=\"cardTop\">\r\n <el-col :span=\"12\" class=\"mainCardBtn\">\r\n <el-button type=\"primary\" :icon=\"Plus\" size=\"default\" @click=\"toApply()\">申请</el-button>\r\n <!--\t\t\t\t\t\t\t\t\t<el-button type=\"danger\" :icon=\"Delete\" size=\"default\">删除</el-button>-->\r\n <!--\t\t\t\t\t\t\t\t\t<el-button type=\"success\" size=\"default\">设置分类</el-button>-->\r\n </el-col>\r\n <el-button type=\"primary\" :icon=\"Refresh\" size=\"default\" @click=\"reLoadData()\" />\r\n </el-row>\r\n <el-table ref=\"multipleTableRef\" :data=\"applyData\" style=\"width: 100%\" height=\"calc(100% - 100px)\" :header-cell-style=\"{ background: '#fafafa' }\">\r\n <el-table-column property=\"applyUname\" label=\"申请人\" />\r\n <el-table-column property=\"depName\" label=\"部门名称\" />\r\n <el-table-column property=\"operators\" label=\"作业人\" />\r\n <el-table-column property=\"workTypeDesc\" label=\"作业类型\" />\r\n <el-table-column property=\"workLevelDesc\" label=\"作业等级\" />\r\n <el-table-column property=\"applyTime\" label=\"申请时间\" width=\"180\" />\r\n <el-table-column label=\"申请状态\" width=\"180\">\r\n <template #default=\"scope\">\r\n <el-tag type=\"success\">{{ scope.row.statusDesc }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column fixed=\"right\" label=\"操作\" align=\"center\" width=\"250\">\r\n <template #default=\"scope\">\r\n <el-button link type=\"primary\" size=\"small\" :icon=\"View\" @click=\"viewRecord(scope.row)\">查看</el-button>\r\n <el-button link type=\"success\" size=\"small\" :icon=\"Finished\" @click=\"viewStatus(scope.row)\">进度</el-button>\r\n <el-button link type=\"warning\" size=\"small\" :icon=\"Delete\" @click=\"deleteRecordBtn(scope.row)\">终止</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"pageBtn\">\r\n <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\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <el-dialog v-model=\"dialogDetails\" title=\"作业审批详情\" center>\r\n <fire v-if=\"dialogType == 1\" :details = details></fire>\r\n <space v-else-if=\"dialogType == 2\" :details = details></space>\r\n <hoist v-else-if=\"dialogType == 3\" :details = details></hoist>\r\n <ground v-else-if=\"dialogType == 4\" :details = details></ground>\r\n <broken v-else-if=\"dialogType == 5\" :details = details></broken>\r\n <height v-else-if=\"dialogType == 6\" :details = details></height>\r\n <power v-else-if=\"dialogType == 7\" :details = details></power>\r\n <plate v-else :details = details></plate>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"dialogDetails = false\"\r\n >确认</el-button\r\n >\r\n </span>\r\n </template>\r\n </el-dialog>\r\n <el-dialog v-model=\"dialogStatus\" title=\"作业审批进度\" center width=\"60%\">\r\n <el-form v-if=\"approveInfo.operators.length > 0\" style=\"margin-bottom: 40px\">\r\n <el-form-item label=\"申请作业人\">\r\n <el-input v-model=\"approveInfo.operators\" readonly type=\"textarea\" />\r\n </el-form-item>\r\n </el-form>\r\n <div style=\"display: flex; flex-direction: column-reverse\">\r\n <div v-for=\"(item, index) in approveInfo.approvalSteps\" class=\"stepItem\">\r\n <div class=\"stepNum\">{{ item.stepSerial }}</div>\r\n <div class=\"stepCard\">\r\n <el-card class=\"box-card\" shadow=\"always\">\r\n <div class=\"text\">\r\n 审批结果:<span>{{ item.approvalResultDesc }}</span>\r\n </div>\r\n <div class=\"text\">\r\n 审批类型:<span>{{ item.typeDesc }}</span>\r\n </div>\r\n <div class=\"text\" v-show=\"item.startApprovalTime != null\">\r\n 开始时间:<span>{{ item.startApprovalTime }}</span>\r\n </div>\r\n <div class=\"approveUnit\">\r\n <div class=\"item-tit\"><span>审批人</span><span>审批状态</span></div>\r\n <div class=\"item-cont\" v-for=\"i in item.stepUnits\">\r\n <span>{{ i.approvalUname }}</span\r\n ><span>{{ i.resultDesc }}</span>\r\n </div>\r\n </div>\r\n <div class=\"approveItem\">\r\n <div class=\"item-tit\">\r\n <span>审批项目</span>\r\n<!-- <span>类型</span>-->\r\n <div>措施标准</div>\r\n </div>\r\n <div class=\"item-cont\" v-for=\"i in item.stepItems\">\r\n <span>{{ i.itemName }}</span>\r\n<!-- <span>{{ i.typeDesc }}</span>-->\r\n <div v-if=\"i.measure !== null\">\r\n <div>\r\n <span>作业类型:</span><span>{{ i.measure.workTypeDesc }}</span>\r\n </div>\r\n <div>\r\n <span>措施内容:</span><span>{{ i.measure.context }}</span>\r\n </div>\r\n </div>\r\n <div v-if=\"i.stand !== null\">\r\n <div>\r\n <span>标题名称:</span><span>{{ i.stand.title }}</span>\r\n </div>\r\n <div>\r\n <span>标准内容:</span><span>{{ i.stand.typeDesc }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"text\" v-show=\"item.expFinishApprovalTime != null\">\r\n 期望结束时间:<span>{{ item.expFinishApprovalTime }}</span>\r\n </div>\r\n <div class=\"text\" v-show=\"item.finishApprovalTime != null\">\r\n 结束时间:<span>{{ item.finishApprovalTime }}</span>\r\n </div>\r\n </el-card>\r\n </div>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n <el-dialog v-model=\"deleteDialog\" title=\"提示\" width=\"30%\" center @close=\"indexClear\">\r\n <span>您确定要终止该条审批吗?</span>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"deleteDialog = false\" size=\"default\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"conFirmDelete\" size=\"default\">确认</el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n<!-- </el-tab-pane>-->\r\n<!-- <el-tab-pane label=\"已通过\" name=\"2\">-->\r\n<!-- <div style=\"height: 100%\">-->\r\n<!-- <el-row class=\"homeCard\">-->\r\n<!-- <el-col :span=\"8\">-->\r\n<!-- <div class=\"grid-content topInfo\">-->\r\n<!-- <el-input v-model=\"searchWord\" placeholder=\"作业证名称\"></el-input>-->\r\n<!-- <el-button type=\"primary\">查询</el-button>-->\r\n<!-- <el-button plain>重置</el-button>-->\r\n<!-- </div>-->\r\n<!-- </el-col>-->\r\n<!-- </el-row>-->\r\n<!-- <div class=\"homeCard\">-->\r\n<!-- <div class=\"main-card\">-->\r\n<!-- <el-table ref=\"multipleTableRef\" :data=\"passedData\" style=\"width: 100%\" height=\"calc(100% - 48px)\" :header-cell-style=\"{ background: '#fafafa' }\" @selection-change=\"handleSelectionChange\">-->\r\n<!-- <el-table-column type=\"selection\" width=\"55\" />-->\r\n<!-- <el-table-column type=\"index\" label=\"编号\" width=\"200\" />-->\r\n<!-- <el-table-column property=\"level\" label=\"作业证等级\" width=\"180\" sortable />-->\r\n<!-- <el-table-column property=\"applyDate\" label=\"申请日期\" sortable />-->\r\n<!-- <el-table-column property=\"name\" label=\"申请人\" width=\"180\" />-->\r\n<!-- <el-table-column property=\"department\" label=\"申请部门\" width=\"180\" />-->\r\n<!-- <el-table-column label=\"申请状态\" width=\"180\">-->\r\n<!-- <template #default=\"scope\">-->\r\n<!-- <el-tag type=\"success\">{{ scope.row.status }}</el-tag>-->\r\n<!-- </template>-->\r\n<!-- </el-table-column>-->\r\n<!-- </el-table>-->\r\n<!-- <div class=\"pageBtn\">-->\r\n<!-- <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\" />-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </el-tab-pane>-->\r\n<!-- </el-tabs>-->\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue';\r\nimport { storeToRefs } from 'pinia';\r\nimport { initBackEndControlRoutes } from '/@/router/backEnd';\r\nimport { useUserInfo } from '/@/stores/userInfo';\r\nimport { Session } from '/@/utils/storage';\r\nimport { useRouter } from 'vue-router';\r\nimport { Edit, View, Plus, Delete, Refresh, Search, Finished } from '@element-plus/icons-vue';\r\nimport { ElTable } from 'element-plus';\r\nimport { FormInstance, FormRules, ElMessage } from 'element-plus';\r\nimport { workApprovalApi } from '/@/api/specialWorkSystem/workApproval';\r\nimport type { TabsPaneContext } from 'element-plus';\r\nimport {teamManageApi} from \"/@/api/systemManage/basicDateManage/personShiftManage/teamManage\";\r\n\r\n// 定义接口来定义对象的类型\r\ninterface stateType {\r\n applyData: Array<string>;\r\n workTimeList: Array<string>;\r\n multipleSelection: Array<any>;\r\n deleteArr: Array<any>;\r\n approveInfo: Object;\r\n dialogDetails: boolean;\r\n dialogStatus: boolean;\r\n deleteDialog: boolean;\r\n pageIndex1: number;\r\n pageSize1: number;\r\n chosenIndex: null | number;\r\n deleteId: null | number;\r\n searchWord: string;\r\n totalSize1: number;\r\n activeName: string;\r\n addRecord: {};\r\n details: {};\r\n statusInfo: {};\r\n workType: Array<type>;\r\n dialogType: number | null;\r\n departmentList: Array<any>;\r\n departmentRecursionList: Array<DepartmentState>;\r\n}\r\ninterface type {\r\n id: number;\r\n name: string;\r\n}\r\ninterface DepartmentState {\r\n depId: number;\r\n depName: string;\r\n}\r\nexport default defineComponent({\r\n name: 'myApproval',\r\n components: {\r\n fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/fireLog.vue')),\r\n space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/spaceLog.vue')),\r\n hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/hoistLog.vue')),\r\n ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue')),\r\n broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue')),\r\n height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/heightLog.vue')),\r\n power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/powerLog.vue')),\r\n plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue'))\r\n },\r\n setup() {\r\n const userInfo = useUserInfo();\r\n const { userInfos } = storeToRefs(userInfo);\r\n const router = useRouter();\r\n const state = reactive<stateType>({\r\n pageIndex1: 1,\r\n pageSize1: 10,\r\n totalSize1: 0,\r\n dialogType: null,\r\n activeName: '1',\r\n departmentList: [],\r\n departmentRecursionList: [],\r\n chosenIndex: null,\r\n searchWord: '',\r\n applyData: [],\r\n workTimeList: [],\r\n multipleSelection: [],\r\n approveInfo: {\r\n approvalSteps: [],\r\n operators: []\r\n },\r\n dialogDetails: false,\r\n dialogStatus: false,\r\n deleteDialog: false,\r\n addRecord: {},\r\n details: {},\r\n statusInfo: {},\r\n deleteId: null,\r\n deleteArr: [],\r\n workType: [\r\n { id: 1, name: '动火作业' },\r\n { id: 2, name: '受限空间作业' },\r\n { id: 3, name: '吊装作业' },\r\n { id: 4, name: '动土作业' },\r\n { id: 5, name: '断路作业' },\r\n { id: 6, name: '高处作业' },\r\n { id: 7, name: '临时用电作业' },\r\n { id: 8, name: '盲板抽堵作业' }\r\n ]\r\n });\r\n interface User {\r\n name: string;\r\n list: [];\r\n info: string;\r\n }\r\n\r\n // 刷新\r\n const reLoadData = async () => {\r\n getListByPage();\r\n };\r\n\r\n // 填写表单\r\n const toApply = () => {\r\n router.push({\r\n path: 'workApply'\r\n });\r\n };\r\n\r\n const handleClick = (tab: TabsPaneContext, event: Event) => {\r\n console.log(tab, event);\r\n };\r\n\r\n // 获取部门列表\r\n const getAllDepartment = async () => {\r\n let res = await teamManageApi().getAllDepartment();\r\n if (res.data.code === '200') {\r\n state.departmentList = JSON.parse(JSON.stringify(res.data.data))\r\n recursion(state.departmentList);\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n // 获取层级审批数据\r\n // const getApprovalData = async (id) => {\r\n // let res = await workApprovalApi().getApprovalData({workApplyId: id});\r\n // if (res.data.code === '200') {\r\n // console.log(res.data.data,'层级数据')\r\n // // state.departmentList = JSON.parse(JSON.stringify(res.data.data))\r\n // // recursion(state.departmentList);\r\n // } else {\r\n // ElMessage({\r\n // type: 'warning',\r\n // message: res.data.msg\r\n // });\r\n // }\r\n // };\r\n\r\n const recursion = (value: any) => {\r\n for (let i of value) {\r\n if (i.children.length !== 0) {\r\n state.departmentRecursionList.push(i);\r\n recursion(i.children);\r\n } else {\r\n state.departmentRecursionList.push(i);\r\n }\r\n }\r\n };\r\n\r\n // 分页获取工作时间组列表\r\n const getListByPage = async () => {\r\n const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } };\r\n let res = await workApprovalApi().getApprovalListPage(data);\r\n if (res.data.code === '200') {\r\n console.log(res.data.data,'approval')\r\n state.applyData = JSON.parse(JSON.stringify(res.data.data));\r\n state.applyData = state.applyData.map((item) => {\r\n if (item.operators == null || item.operators == []) {\r\n item.operators = [];\r\n } else {\r\n item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname);\r\n }\r\n return item;\r\n });\r\n state.totalSize1 = res.data.total;\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n // 关键词查询记录\r\n const searchRecord = async () => {\r\n if (state.searchWord == '') {\r\n ElMessage({\r\n type: 'warning',\r\n message: '请输入查询关键词'\r\n });\r\n } else {\r\n getListByPage();\r\n }\r\n };\r\n // 重置搜索\r\n const clearSearch = async () => {\r\n state.searchWord = '';\r\n getListByPage();\r\n };\r\n\r\n // 查看进度\r\n const viewStatus = (row) => {\r\n getStatus({ workApplyId: row.workApplyId });\r\n state.dialogStatus = true;\r\n };\r\n\r\n // 查询进度方法\r\n const getStatus = async (data: any) => {\r\n let res = await workApprovalApi().getApprovalStatus(data);\r\n if (res.data.code === '200') {\r\n state.approveInfo = JSON.parse(JSON.stringify(res.data.data));\r\n state.approveInfo.operators = Array.from(state.approveInfo.operators, ({ operatorUname }) => operatorUname);\r\n console.log(state.approveInfo, '我的审批');\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n const deleteRecordBtn = (row) => {\r\n state.deleteId = row.workApplyId;\r\n state.deleteDialog = true;\r\n };\r\n\r\n // 取消申请方法\r\n const deleteRecord = async (data: any) => {\r\n let res = await workApprovalApi().postAbord(data);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n message: res.data.msg\r\n });\r\n getListByPage();\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n };\r\n\r\n const conFirmDelete = () => {\r\n deleteRecord({ workApplyId: state.deleteId });\r\n state.deleteDialog = false;\r\n };\r\n\r\n const handleSizeChange1 = (val: number) => {\r\n state.pageSize1 = val;\r\n getListByPage();\r\n };\r\n const handleCurrentChange1 = (val: number) => {\r\n state.pageIndex1 = val;\r\n getListByPage();\r\n };\r\n\r\n // 查看记录\r\n const viewRecord = (row: any) => {\r\n state.dialogType = row.workType\r\n state.details = JSON.parse(JSON.stringify(row));\r\n console.log(state.details,'details')\r\n // getApprovalData(state.details.workApplyId)\r\n if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){\r\n state.details.workDetail.otherSpecialWork=[]\r\n }\r\n else {\r\n console.log(state.details.workDetail.otherSpecialWork,'split')\r\n const a = state.details.workDetail.otherSpecialWork\r\n state.details.workDetail.otherSpecialWork = a.split(',').map((item) => {\r\n return state.workType.find((i: { id: number }) => i.id === Number(item))?.name;\r\n });\r\n }\r\n if(state.details.workDetail.involvedDepIds == '' || !state.details.workDetail.involvedDepIds){\r\n state.details.workDetail.involvedDepIds=[]\r\n }\r\n else {\r\n const a = state.details.workDetail.involvedDepIds\r\n state.details.workDetail.involvedDepIds = a.split(',').map((item) => {\r\n return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName;\r\n });\r\n }\r\n state.dialogDetails = true;\r\n };\r\n\r\n // 折线图\r\n const renderMenu = async (value: string) => {\r\n Session.set('projectId', value);\r\n userInfos.value.projectId = value;\r\n await initBackEndControlRoutes();\r\n };\r\n\r\n // 页面载入时执行方法\r\n onMounted(() => {\r\n getListByPage();\r\n getAllDepartment()\r\n });\r\n\r\n return {\r\n View,\r\n Edit,\r\n Delete,\r\n Refresh,\r\n Plus,\r\n Finished,\r\n reLoadData,\r\n toApply,\r\n handleClick,\r\n searchRecord,\r\n clearSearch,\r\n viewRecord,\r\n viewStatus,\r\n deleteRecordBtn,\r\n conFirmDelete,\r\n getListByPage,\r\n handleSizeChange1,\r\n handleCurrentChange1,\r\n ...toRefs(state)\r\n };\r\n }\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n$homeNavLengh: 8;\r\n.home-container {\r\n height: calc(100vh - 144px);\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n .demo-tabs {\r\n width: 100%;\r\n height: 100%;\r\n\r\n &::v-deep(.el-tabs__content) {\r\n height: calc(100% - 60px);\r\n }\r\n\r\n .el-tab-pane {\r\n height: 100%;\r\n }\r\n }\r\n .homeCard {\r\n width: 100%;\r\n padding: 20px;\r\n box-sizing: border-box;\r\n background: #fff;\r\n border-radius: 4px;\r\n\r\n .main-card {\r\n width: 100%;\r\n height: 100%;\r\n .cardTop {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n .mainCardBtn {\r\n margin: 0;\r\n }\r\n }\r\n .pageBtn {\r\n height: 60px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: right;\r\n\r\n .demo-pagination-block + .demo-pagination-block {\r\n margin-top: 10px;\r\n }\r\n .demo-pagination-block .demonstration {\r\n margin-bottom: 16px;\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n height: calc(100% - 100px);\r\n }\r\n }\r\n .stepItem {\r\n display: flex;\r\n align-items: flex-start;\r\n margin-top: 30px;\r\n margin-left: 30px;\r\n padding-bottom: 30px;\r\n padding-left: 40px;\r\n border-left: 1px solid #a0cfff;\r\n position: relative;\r\n &:first-of-type {\r\n margin-top: 30px;\r\n }\r\n &:first-of-type {\r\n margin-bottom: 0;\r\n border-left: none;\r\n }\r\n .stepNum {\r\n position: absolute;\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 20px;\r\n box-sizing: border-box;\r\n font-size: 18px;\r\n color: #333;\r\n border: 1px solid #a0cfff;\r\n line-height: 38px;\r\n text-align: center;\r\n left: -20px;\r\n top: -30px;\r\n background: #d9ecff;\r\n }\r\n .stepCard {\r\n width: 100%;\r\n margin-top: -30px;\r\n\r\n .box-card {\r\n width: 100%;\r\n\r\n .card-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n span {\r\n font-weight: bold;\r\n margin-left: 10px;\r\n }\r\n }\r\n\r\n .text {\r\n width: 100%;\r\n font-size: 14px;\r\n margin-bottom: 10px;\r\n padding-left: 10px;\r\n\r\n span {\r\n font-weight: bolder;\r\n color: #409eff;\r\n }\r\n\r\n &:last-of-type {\r\n margin-bottom: 0;\r\n }\r\n }\r\n .approveUnit {\r\n width: 100%;\r\n font-size: 14px;\r\n margin-bottom: 20px;\r\n padding: 10px 15px;\r\n border: 1px solid #fff;\r\n background: #ecf8ff;\r\n border-radius: 6px;\r\n .item-tit {\r\n width: 100%;\r\n display: flex;\r\n color: #409eff;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n padding-bottom: 10px;\r\n border-bottom: 1px solid #a0cfff;\r\n\r\n & > span {\r\n flex: 1;\r\n &:last-of-type{\r\n text-align: center;\r\n }\r\n }\r\n & > div {\r\n flex: 1;\r\n text-align: center;\r\n }\r\n }\r\n .item-cont {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 10px 0;\r\n border-bottom: 1px solid #c6e2ff;\r\n\r\n & > span {\r\n flex: 1;\r\n &:last-of-type{\r\n text-align: center;\r\n }\r\n }\r\n & > div {\r\n flex: 1;\r\n text-align: center;\r\n\r\n & > div {\r\n text-align: left;\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n span {\r\n width: 45%;\r\n &:first-of-type {\r\n width: 30%;\r\n }\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n border-bottom: 0;\r\n }\r\n }\r\n }\r\n .approveItem {\r\n width: 100%;\r\n font-size: 14px;\r\n margin-bottom: 20px;\r\n padding: 10px 15px;\r\n background: #ecf8ff;\r\n border: 1px solid #fff;\r\n border-radius: 6px;\r\n .item-tit {\r\n width: 100%;\r\n display: flex;\r\n color: #409eff;\r\n align-items: flex-start;\r\n justify-content: space-between;\r\n padding-bottom: 10px;\r\n border-bottom: 1px solid #a0cfff;\r\n\r\n & > span {\r\n flex: 1;\r\n }\r\n & > div {\r\n flex: 2;\r\n text-align: center;\r\n }\r\n }\r\n .item-cont {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 10px 0;\r\n border-bottom: 1px solid #c6e2ff;\r\n\r\n & > span {\r\n flex: 1;\r\n }\r\n & > div {\r\n flex: 2;\r\n text-align: center;\r\n\r\n & > div {\r\n text-align: left;\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n span {\r\n width: 50%;\r\n &:first-of-type {\r\n width: 25%;\r\n }\r\n }\r\n }\r\n }\r\n &:last-of-type {\r\n border-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n &:hover .card-header {\r\n color: #0098f5;\r\n }\r\n &:hover .stepNum {\r\n border: 2px solid #0098f5;\r\n color: #0098f5;\r\n }\r\n }\r\n .el-row {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n .grid-content {\r\n align-items: center;\r\n min-height: 36px;\r\n }\r\n\r\n .topInfo {\r\n display: flex;\r\n align-items: center;\r\n font-size: 16px;\r\n font-weight: bold;\r\n\r\n & > div {\r\n white-space: nowrap;\r\n margin-right: 20px;\r\n }\r\n }\r\n }\r\n .el-card {\r\n border: 0;\r\n }\r\n}\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/specialWorkSystem/workTicket/myApproval/index.vue b/src/views/specialWorkSystem/workTicket/myApproval/index.vue |
| | | --- a/src/views/specialWorkSystem/workTicket/myApproval/index.vue (revision 624a145dcb9959e769fa635a4b9e2fe4758772ed) |
| | | +++ b/src/views/specialWorkSystem/workTicket/myApproval/index.vue (date 1661164944383) |
| | | @@ -1,191 +1,184 @@ |
| | | <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-select v-model="searchWord"> |
| | | - <el-option |
| | | - v-for="item in workType" |
| | | - :key="item.id" |
| | | - :label="item.name" |
| | | - :value="item.id" |
| | | - /> |
| | | - </el-select> |
| | | - <el-button type="primary" @click="searchRecord">查询</el-button> |
| | | - <el-button plain @click="clearSearch">重置</el-button> |
| | | - </div> |
| | | - </el-col> |
| | | - </el-row> |
| | | - <div class="homeCard"> |
| | | - <div class="main-card"> |
| | | - <el-row class="cardTop"> |
| | | - <el-col :span="12" class="mainCardBtn"> |
| | | - <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button> |
| | | - <!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | - <!-- <el-button type="success" size="default">设置分类</el-button>--> |
| | | - </el-col> |
| | | - <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" /> |
| | | - </el-row> |
| | | - <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }"> |
| | | - <el-table-column property="applyUname" label="申请人" /> |
| | | - <el-table-column property="depName" label="部门名称" /> |
| | | - <el-table-column property="operators" label="作业人" /> |
| | | - <el-table-column property="workTypeDesc" label="作业类型" /> |
| | | - <el-table-column property="workLevelDesc" label="作业等级" /> |
| | | - <el-table-column property="applyTime" label="申请时间" width="180" /> |
| | | - <el-table-column label="申请状态" 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="作业审批详情" center> |
| | | - <fire v-if="dialogType == 1" :details = details></fire> |
| | | - <space v-else-if="dialogType == 2" :details = details></space> |
| | | - <hoist v-else-if="dialogType == 3" :details = details></hoist> |
| | | - <ground v-else-if="dialogType == 4" :details = details></ground> |
| | | - <broken v-else-if="dialogType == 5" :details = details></broken> |
| | | - <height v-else-if="dialogType == 6" :details = details></height> |
| | | - <power v-else-if="dialogType == 7" :details = details></power> |
| | | - <plate v-else :details = details></plate> |
| | | - <template #footer> |
| | | - <span class="dialog-footer"> |
| | | - <el-button type="primary" @click="dialogDetails = false" |
| | | - >确认</el-button |
| | | - > |
| | | - </span> |
| | | - </template> |
| | | - </el-dialog> |
| | | - <el-dialog v-model="dialogStatus" title="作业审批进度" center width="60%"> |
| | | - <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> |
| | | - <el-form-item label="申请作业人"> |
| | | - <el-input v-model="approveInfo.operators" readonly type="textarea" /> |
| | | - </el-form-item> |
| | | - </el-form> |
| | | - <div style="display: flex; flex-direction: column-reverse"> |
| | | - <div v-for="(item, index) in approveInfo.approvalSteps" class="stepItem"> |
| | | - <div class="stepNum">{{ item.stepSerial }}</div> |
| | | - <div class="stepCard"> |
| | | - <el-card class="box-card" shadow="always"> |
| | | - <div class="text"> |
| | | - 审批结果:<span>{{ 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>--> |
| | | + <!-- <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-select v-model="searchWord"> |
| | | + <el-option v-for="item in workType" :key="item.id" :label="item.name" :value="item.id" /> |
| | | + </el-select> |
| | | + <el-button type="primary" @click="searchRecord">查询</el-button> |
| | | + <el-button plain @click="clearSearch">重置</el-button> |
| | | + </div> |
| | | + </el-col> |
| | | + </el-row> |
| | | + <div class="homeCard"> |
| | | + <div class="main-card"> |
| | | + <el-row class="cardTop"> |
| | | + <el-col :span="12" class="mainCardBtn"> |
| | | + <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button> |
| | | + <!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> |
| | | + <!-- <el-button type="success" size="default">设置分类</el-button>--> |
| | | + </el-col> |
| | | + <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" /> |
| | | + </el-row> |
| | | + <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }"> |
| | | + <el-table-column property="applyUname" label="申请人" /> |
| | | + <el-table-column property="depName" label="部门名称" /> |
| | | + <el-table-column property="operators" label="作业人" /> |
| | | + <el-table-column property="workTypeDesc" label="作业类型" /> |
| | | + <el-table-column property="workLevelDesc" label="作业等级" /> |
| | | + <el-table-column property="applyTime" label="申请时间" width="180" /> |
| | | + <el-table-column label="申请状态" 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="作业审批详情" center> |
| | | + <fire v-if="dialogType == 1" :details="details"></fire> |
| | | + <space v-else-if="dialogType == 2" :details="details"></space> |
| | | + <hoist v-else-if="dialogType == 3" :details="details"></hoist> |
| | | + <ground v-else-if="dialogType == 4" :details="details"></ground> |
| | | + <broken v-else-if="dialogType == 5" :details="details"></broken> |
| | | + <height v-else-if="dialogType == 6" :details="details"></height> |
| | | + <power v-else-if="dialogType == 7" :details="details"></power> |
| | | + <plate v-else :details="details"></plate> |
| | | + <template #footer> |
| | | + <span class="dialog-footer"> |
| | | + <el-button type="primary" @click="dialogDetails = false">确认</el-button> |
| | | + </span> |
| | | + </template> |
| | | + </el-dialog> |
| | | + <el-dialog v-model="dialogStatus" title="作业审批进度" center width="60%"> |
| | | + <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> |
| | | + <el-form-item label="申请作业人"> |
| | | + <el-input v-model="approveInfo.operators" readonly type="textarea" /> |
| | | + </el-form-item> |
| | | + </el-form> |
| | | + <div style="display: flex; flex-direction: column-reverse"> |
| | | + <div v-for="(item, index) in approveInfo.approvalSteps" class="stepItem"> |
| | | + <div class="stepNum">{{ item.stepSerial }}</div> |
| | | + <div class="stepCard"> |
| | | + <el-card class="box-card" shadow="always"> |
| | | + <div class="text"> |
| | | + 审批结果:<span>{{ 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, defineAsyncComponent} 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'; |
| | | @@ -196,7 +189,7 @@ |
| | | import { FormInstance, FormRules, ElMessage } from 'element-plus'; |
| | | import { workApprovalApi } from '/@/api/specialWorkSystem/workApproval'; |
| | | import type { TabsPaneContext } from 'element-plus'; |
| | | -import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage"; |
| | | +import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage'; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface stateType { |
| | | @@ -309,7 +302,7 @@ |
| | | const getAllDepartment = async () => { |
| | | let res = await teamManageApi().getAllDepartment(); |
| | | if (res.data.code === '200') { |
| | | - state.departmentList = JSON.parse(JSON.stringify(res.data.data)) |
| | | + state.departmentList = JSON.parse(JSON.stringify(res.data.data)); |
| | | recursion(state.departmentList); |
| | | } else { |
| | | ElMessage({ |
| | | @@ -350,7 +343,7 @@ |
| | | const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } }; |
| | | let res = await workApprovalApi().getApprovalListPage(data); |
| | | if (res.data.code === '200') { |
| | | - console.log(res.data.data,'approval') |
| | | + console.log(res.data.data, 'approval'); |
| | | state.applyData = JSON.parse(JSON.stringify(res.data.data)); |
| | | state.applyData = state.applyData.map((item) => { |
| | | if (item.operators == null || item.operators == []) { |
| | | @@ -445,25 +438,23 @@ |
| | | |
| | | // 查看记录 |
| | | const viewRecord = (row: any) => { |
| | | - state.dialogType = row.workType |
| | | + state.dialogType = row.workType; |
| | | state.details = JSON.parse(JSON.stringify(row)); |
| | | - console.log(state.details,'details') |
| | | + console.log(state.details, 'details'); |
| | | // getApprovalData(state.details.workApplyId) |
| | | - if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){ |
| | | - state.details.workDetail.otherSpecialWork=[] |
| | | - } |
| | | - else { |
| | | - console.log(state.details.workDetail.otherSpecialWork,'split') |
| | | - const a = state.details.workDetail.otherSpecialWork |
| | | + 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 |
| | | + if (state.details.workDetail.involvedDepIds == '' || !state.details.workDetail.involvedDepIds) { |
| | | + state.details.workDetail.involvedDepIds = []; |
| | | + } else { |
| | | + const a = state.details.workDetail.involvedDepIds; |
| | | state.details.workDetail.involvedDepIds = a.split(',').map((item) => { |
| | | return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName; |
| | | }); |
| | | @@ -481,7 +472,7 @@ |
| | | // 页面载入时执行方法 |
| | | onMounted(() => { |
| | | getListByPage(); |
| | | - getAllDepartment() |
| | | + getAllDepartment(); |
| | | }); |
| | | |
| | | return { |
| | | @@ -647,7 +638,7 @@ |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | - &:last-of-type{ |
| | | + &:last-of-type { |
| | | text-align: center; |
| | | } |
| | | } |
| | | @@ -666,7 +657,7 @@ |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | - &:last-of-type{ |
| | | + &:last-of-type { |
| | | text-align: center; |
| | | } |
| | | } |