From 19965a0379a845cbb24658a275ef3402e2514579 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 09 三月 2023 17:44:52 +0800
Subject: [PATCH] lct
---
src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue | 26 ++
.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25__Default_Changelist_.xml | 4
src/api/systemManage/department/index.ts | 7
src/api/intellectInspectSystem/RFID/index.ts | 9
src/views/system/department/component/deptDialog.vue | 8
.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25_[Default_Changelist]/shelved.patch | 425 +++++++++++++++++++++++++++++++++++
src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue | 48 +++
src/views/system/user/component/userDialog.vue | 18
src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue | 64 ++++
src/views/intellectInspect/inspectBasic/discriminate/index.vue | 21 +
.env.development | 4
src/views/system/user/index.vue | 48 +--
src/views/intellectInspect/inspectBasic/facility/index.vue | 2
src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue | 30 +-
14 files changed, 644 insertions(+), 70 deletions(-)
diff --git a/.env.development b/.env.development
index 333bbc4..a3f1c75 100644
--- a/.env.development
+++ b/.env.development
@@ -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.38:8008'
#黄振接口地址
#VITE_API_URL = 'http://192.168.0.179:8008'
diff --git "a/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25_\133Default_Changelist\135/shelved.patch" "b/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25_\133Default_Changelist\135/shelved.patch"
new file mode 100644
index 0000000..6f7acc3
--- /dev/null
+++ "b/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25_\133Default_Changelist\135/shelved.patch"
@@ -0,0 +1,425 @@
+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=\"taskUnitStatus\" label=\"状态\" width=\"60\">\r\n <template #default=\"scope\">\r\n <div>\r\n <div v-if=\"scope.row.taskUnitStatus === 1\">\r\n <el-tag :type=\"''\">\r\n {{ '开启' }}\r\n </el-tag>\r\n </div>\r\n <div v-if=\"scope.row.taskUnitStatus === 2\">\r\n <el-tag :type=\"'danger'\">\r\n {{ '关闭' }}\r\n </el-tag>\r\n </div>\r\n </div>\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=\"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 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue (date 1678177430360)
+@@ -9,6 +9,13 @@
+ </el-select>
+ </div>
+ <div class="basic-line">
++ <span>部门:</span>
++ <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
++ placeholder="请选择部门" clearable v-model="tableData.params.execDepId"
++ @change="changeGroup"
++ > </el-cascader>
++ </div>
++ <div class="basic-line">
+ <span>执行班组:</span>
+ <el-select v-model="tableData.params.execClassgroupId" clearable filterable class="input-box" placeholder="执行班组">
+ <el-option v-for="item in classGroupList" :key="item.id" :label="item.groupName" :value="item.id"></el-option>
+@@ -143,6 +150,7 @@
+ params: {
+ pageIndex: number | null;
+ pageSize: number | null;
++ execDepId: number | null;
+ unitName: string | null;
+ workType: number | null;
+ createUserId: number | null;
+@@ -182,6 +190,7 @@
+ pageIndex: 1,
+ pageSize: 10,
+ unitName: null,
++ execDepId: null,
+ workType: null,
+ createUserId: null,
+ execClassgroupId: null,
+@@ -205,7 +214,7 @@
+ { id: 3, name: '日' },
+ { id: 4, name: '月' },
+ { id: 5, name: '年' }
+- ]
++ ],
+ });
+
+ //获取巡检任务数据
+@@ -300,6 +309,19 @@
+ }
+ };
+
++ const changeGroup = async () => {
++ if(state.tableData.params.execDepId === null) {
++ state.classGroupList = []
++ }else{
++ let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId})
++ if(res.data.code === '200'){
++ state.classGroupList = res.data.data
++ }else{
++
++ }
++ }
++ };
++
+ const changeStatus = async (value: { taskUnitStatus: number; id: number }) => {
+ if (value.taskUnitStatus === 2) {
+ ElMessageBox.confirm(`此操作将关闭该巡检任务”,是否继续?`, '提示', {
+@@ -407,6 +429,7 @@
+ pageIndex: 1,
+ pageSize: 10,
+ unitName: null,
++ execDepId: null,
+ workType: null,
+ createUserId: null,
+ execClassgroupId: null,
+@@ -434,6 +457,7 @@
+ Plus,
+ reset,
+ changeStatus,
++ changeGroup,
+ parseNumber,
+ deleteInspectTask,
+ getInspectionTask,
+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\r\nVITE_API_URL_OUT = 'http://192.168.0.50:8009'\r\n#张凤外包接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://192.168.0.52:7021/safeplatform-out'\r\n\r\n\r\n#VITE_API_URL = 'http://192.168.0.52:7021/safeplatform'\r\n#本地测试接口地址\r\n\r\nVITE_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 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/.env.development (date 1678175730920)
+@@ -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.38: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 <template #default=\"scope\">\r\n <div :class=\"hasJump == true && scope.row.startTime.slice(0, 10) == date && (tableData.params.taskStatus == 4 || tableData.params.taskStatus == 5) ? 'redTit' : ''\">\r\n {{ scope.row.taskName }}\r\n </div>\r\n </template>\r\n </el-table-column>\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=\"任务状态\" width=\"180\">\r\n <template #default=\"scope\">\r\n <el-tag :type=\"scope.row.resultStatus === 1 ? 'danger' : scope.row.taskStatus === 1 ? 'info' : scope.row.taskStatus === 2 ? '' : scope.row.taskStatus === 3 ? 'success' : 'danger'\">\r\n <span>\r\n {{ scope.row.resultStatus === 1 ? '已巡检存在异常' : 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 '../../inspectIndex/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\nimport { useRoute } from 'vue-router';\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 isRed: boolean;\r\n hasJump: boolean;\r\n date: string;\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 resultStatus: number | 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\ninterface timeType {}\r\nexport default {\r\n name: 'index',\r\n components: { inspectRecordDialog },\r\n setup() {\r\n const inspectRecordDialogRef = ref();\r\n const route = useRoute();\r\n const state = reactive<stateType>({\r\n hasJump: false,\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 resultStatus: null\r\n }\r\n },\r\n isRed: false,\r\n date: '',\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 { id: 2, name: '备' }\r\n ],\r\n taskStatusList: [\r\n { id: 1, name: '待巡检' },\r\n { id: 2, name: '巡检中' },\r\n { id: 3, name: '已巡检正常' },\r\n { id: 5, 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 const data = JSON.parse(JSON.stringify(state.tableData.params));\r\n if (state.tableData.params.taskStatus == 3) {\r\n data.taskStatus = 3;\r\n data.resultStatus = 0;\r\n }\r\n if (state.tableData.params.taskStatus == 5) {\r\n data.taskStatus = 3;\r\n data.resultStatus = 1;\r\n }\r\n console.log(state.tableData.params.taskStatus, data.taskStatus, 'data');\r\n let res = await inspectRecordApi().getInspectRecordList(data);\r\n if (res.data.code === '200') {\r\n state.tableData.inspectRecordData = JSON.parse(JSON.stringify(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 turnRed =()=>{\r\n // date\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 state.isRed = false;\r\n };\r\n // 时间格式化\r\n const timeForm: timeType = {\r\n hour12: false,\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit'\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 resultStatus: null,\r\n reportTime: null\r\n };\r\n };\r\n // 当前时间\r\n const getDateTime = () => {\r\n const curTime = new Date().toLocaleString('zh', timeForm).replace(/\\//g, '-');\r\n state.date = curTime.slice(0, 10);\r\n };\r\n // 页面加载时\r\n onMounted(() => {\r\n getDateTime();\r\n if (route.query.id) {\r\n state.hasJump = true;\r\n state.tableData.params.taskStatus = Number(route.query.id);\r\n state.isRed = true;\r\n getInspectRecord();\r\n getQuotaList();\r\n getDepartmentData();\r\n getClassGroupData();\r\n getInspectTaskPoint();\r\n } else {\r\n getInspectRecord();\r\n getQuotaList();\r\n getDepartmentData();\r\n getClassGroupData();\r\n getInspectTaskPoint();\r\n }\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.redTit {\r\n color: red;\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 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue (date 1678177506773)
+@@ -9,6 +9,13 @@
+ </el-select>
+ </div>
+ <div class="basic-line">
++ <span>部门:</span>
++ <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
++ placeholder="请选择部门" clearable v-model="tableData.params.execDepId"
++ @change="changeGroup"
++ > </el-cascader>
++ </div>
++ <div class="basic-line">
+ <span>执行班组:</span>
+ <el-select v-model="tableData.params.execClassgroupId" clearable filterable class="input-box" placeholder="执行班组">
+ <el-option v-for="item in classGroupList" :key="item.id" :label="item.groupName" :value="item.id"></el-option>
+@@ -278,16 +285,16 @@
+ }
+ };
+
+- //获取班组
+- const getClassGroupData = async () => {
+- let res = await teamManageApi().getRecord({ depIp: null, groupName: null, containGroupMemberEnable: null });
+- if (res.data.code === '200') {
+- state.classGroupList = res.data.data;
+- } else {
+- ElMessage({
+- type: 'warning',
+- message: res.data.msg
+- });
++ const changeGroup = async () => {
++ if(state.tableData.params.execDepId === null) {
++ state.classGroupList = []
++ }else{
++ let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId})
++ if(res.data.code === '200'){
++ state.classGroupList = res.data.data
++ }else{
++
++ }
+ }
+ };
+
+@@ -366,13 +373,11 @@
+ getInspectRecord();
+ getQuotaList();
+ getDepartmentData();
+- getClassGroupData();
+ getInspectTaskPoint();
+ } else {
+ getInspectRecord();
+ getQuotaList();
+ getDepartmentData();
+- getClassGroupData();
+ getInspectTaskPoint();
+ }
+ });
+@@ -385,6 +390,7 @@
+ Plus,
+ reset,
+ parseNumber,
++ changeGroup,
+ getInspectRecord,
+ onHandleSizeChange,
+ onHandleCurrentChange,
+Index: src/views/system/user/index.vue
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+><template>\r\n <div class=\"system-user-container\">\r\n <el-card shadow=\"hover\">\r\n <div class=\"system-user-search mb15\">\r\n <el-cascader\r\n v-model=\"userTableData.listQuery.searchParams.depId\"\r\n :props=\"props\"\r\n :options=\"departmentList\"\r\n :show-all-levels=\"false\"\r\n placeholder=\"请选择部门\"\r\n clearable\r\n size=\"default\"\r\n ></el-cascader>\r\n <el-input size=\"default\" v-model.trim=\"userTableData.listQuery.searchParams.username\" placeholder=\"请输入用户名\" style=\"max-width: 180px;margin-left: 10px;margin-right: 10px\"> </el-input>\r\n <el-input size=\"default\" v-model.trim=\"userTableData.listQuery.searchParams.realName\" placeholder=\"请输入真实姓名\" style=\"max-width: 180px\"> </el-input>\r\n <el-button size=\"default\" type=\"primary\" class=\"ml10\" @click=\"initUserTableData\">\r\n <el-icon>\r\n <ele-Search />\r\n </el-icon>\r\n 查询\r\n </el-button>\r\n <el-button size=\"default\" type=\"success\" class=\"ml10\" @click=\"onOpenUserDialog('新增', '')\">\r\n <el-icon>\r\n <ele-FolderAdd />\r\n </el-icon>\r\n 新增用户\r\n </el-button>\r\n </div>\r\n <el-table :data=\"userTableData.data\" style=\"width: 100%\">\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" />\r\n <el-table-column prop=\"username\" label=\"用户名\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"realName\" label=\"真实姓名\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"gender\" label=\"性别\" show-overflow-tooltip>\r\n <template #default=\"scope\">\r\n <el-tag type=\"success\" v-if=\"scope.row.gender == 1\">男</el-tag>\r\n <el-tag type=\"success\" v-else-if=\"scope.row.gender == 0\">女</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"positionId\" label=\"职务\" show-overflow-tooltip>\r\n <template #default=\"scope\">\r\n {{ parseNumber(scope.row.positionId) }}\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"type\" label=\"职务\" show-overflow-tooltip>\r\n <template #default=\"scope\">\r\n {{ `${userTypeList.find(item => item.id === scope.row.type)?.name}` }}\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"department.depName\" label=\"部门\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"phone\" label=\"手机号\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"email\" label=\"邮箱\" show-overflow-tooltip></el-table-column>\r\n <el-table-column prop=\"status\" label=\"用户状态\" show-overflow-tooltip>\r\n <template #default=\"scope\">\r\n <el-tag type=\"success\" v-if=\"scope.row.status\">启用</el-tag>\r\n <el-tag type=\"info\" v-else>禁用</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"gmtCreate\" label=\"创建时间\" show-overflow-tooltip></el-table-column>\r\n <el-table-column label=\"操作\" width=\"100\">\r\n <template #default=\"scope\">\r\n <el-button :disabled=\"scope.row.userName === 'admin'\" size=\"small\" text type=\"primary\" @click=\"onOpenUserDialog('修改', scope.row)\">修改</el-button>\r\n <el-button style=\"color: red\" :disabled=\"scope.row.userName === 'admin'\" size=\"small\" text type=\"primary\" @click=\"onRowDel(scope.row)\">删除</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <br />\r\n <el-pagination @size-change=\"onHandleSizeChange\" @current-change=\"onHandleCurrentChange\" class=\"page-position\" :pager-count=\"5\" :page-sizes=\"[10, 20, 30]\" v-model:current-page=\"userTableData.listQuery.pageIndex\" background v-model:page-size=\"userTableData.listQuery.pageSize\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"userTableData.total\"> </el-pagination>\r\n <br />\r\n <br />\r\n </el-card>\r\n <userDialog ref=\"userRef\" @getUserList=\"initUserTableData\" />\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';\r\nimport { ElMessageBox, ElMessage } from 'element-plus';\r\nimport userDialog from '/@/views/system/user/component/userDialog.vue';\r\nimport { userApi } from '/@/api/systemManage/user';\r\nimport { dutyApi } from '/@/api/systemManage/duty';\r\nimport { departmentApi } from '/@/api/systemManage/department';\r\nimport { useRoleApi } from '/@/api/systemManage/role';\r\n\r\n// 定义接口来定义对象的类型\r\ninterface TableDataRow {\r\n userName: string;\r\n userNickname: string;\r\n roleSign: string;\r\n department: string[];\r\n phone: string;\r\n email: string;\r\n sex: string;\r\n password: string;\r\n overdueTime: Date;\r\n status: boolean;\r\n describe: string;\r\n createTime: string;\r\n}\r\ninterface DepartmentDataRow {}\r\ninterface TableDataState {\r\n userTableData: {\r\n data: Array<TableDataRow>;\r\n total: number;\r\n loading: boolean;\r\n listQuery: {\r\n searchParams: {\r\n depId: string | null;\r\n username: string | null;\r\n realName: string | null;\r\n };\r\n pageIndex: number;\r\n pageSize: number;\r\n };\r\n };\r\n departmentList: [];\r\n roleList: [];\r\n dutyList: [];\r\n userTypeList: Array<{id:number,name:string}>;\r\n props:{}\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'systemUser',\r\n components: { userDialog },\r\n setup() {\r\n const userRef = ref();\r\n const state = reactive<TableDataState>({\r\n userTableData: {\r\n data: [],\r\n total: 0,\r\n loading: false,\r\n listQuery: {\r\n searchParams: {\r\n depId: null,\r\n username: null,\r\n realName: null\r\n },\r\n pageIndex: 1,\r\n pageSize: 10\r\n }\r\n },\r\n departmentList: [],\r\n roleList: [],\r\n dutyList: [],\r\n props: {\r\n label: 'depName',\r\n value: 'depId',\r\n checkStrictly: true,\r\n emitPath: false\r\n },\r\n userTypeList: [\r\n { id: 1, name: '超级管理员' },\r\n { id: 2, name: '管理员' },\r\n { id: 3, name: '普通员工' }\r\n ]\r\n });\r\n // 初始化表格数据\r\n const initUserTableData = async () => {\r\n let res = await userApi().getUserList(state.userTableData.listQuery);\r\n if (res.data.code === '200') {\r\n state.userTableData.data = res.data.data;\r\n state.userTableData.total = 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 parseNumber = (value: number) => {\r\n return state.dutyList.find((i) => i.positionId === value)?.positionName;\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 const getRoleData = async () => {\r\n let res = await useRoleApi().getRoleList();\r\n if (res.data.code === '200') {\r\n state.roleList = 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 getDutyData = async () => {\r\n let res = await dutyApi().getAllList({positionName: '',positionCode: ''});\r\n if (res.data.code === '200') {\r\n state.dutyList = 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 onOpenUserDialog = (type: string, value: any) => {\r\n userRef.value.openDialog(type, value, state.departmentList, state.roleList, state.dutyList);\r\n };\r\n\r\n // 删除用户\r\n const onRowDel = (row: TableDataRow) => {\r\n ElMessageBox.confirm(`此操作将永久删除账户名称:“${row.realName}”,是否继续?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(async () => {\r\n let res = await userApi().deleteUser({ uid: row.uid });\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 initUserTableData();\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 onHandleSizeChange = (val: number) => {\r\n state.userTableData.listQuery.pageSize = val;\r\n initUserTableData();\r\n };\r\n // 分页改变\r\n const onHandleCurrentChange = (val: number) => {\r\n state.userTableData.listQuery.pageIndex = val;\r\n initUserTableData();\r\n };\r\n // 页面加载时\r\n onMounted(() => {\r\n let a = { name: 1, c: { name: 1 } };\r\n let b = Object.assign({}, a);\r\n b.c.name = 2;\r\n console.log(a.c.name);\r\n initUserTableData();\r\n getDepartmentData();\r\n getRoleData();\r\n getDutyData()\r\n });\r\n return {\r\n userRef,\r\n onOpenUserDialog,\r\n onRowDel,\r\n parseNumber,\r\n onHandleSizeChange,\r\n initUserTableData,\r\n onHandleCurrentChange,\r\n ...toRefs(state)\r\n };\r\n }\r\n});\r\n</script>\r\n<style scoped>\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/system/user/index.vue b/src/views/system/user/index.vue
+--- a/src/views/system/user/index.vue (revision 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/views/system/user/index.vue (date 1678258566279)
+@@ -31,15 +31,15 @@
+ <el-table-column prop="username" label="用户名" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="realName" label="真实姓名" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="gender" label="性别" show-overflow-tooltip>
+- <template #default="scope">
+- <el-tag type="success" v-if="scope.row.gender == 1">男</el-tag>
+- <el-tag type="success" v-else-if="scope.row.gender == 0">女</el-tag>
+- </template>
++ <template #default="scope">
++ <el-tag type="success" v-if="scope.row.gender == 1">男</el-tag>
++ <el-tag type="success" v-else-if="scope.row.gender == 0">女</el-tag>
++ </template>
+ </el-table-column>
+ <el-table-column prop="positionId" label="职务" show-overflow-tooltip>
+- <template #default="scope">
+- {{ parseNumber(scope.row.positionId) }}
+- </template>
++ <template #default="scope">
++ {{ parseNumber(scope.row.positionId) }}
++ </template>
+ </el-table-column>
+ <el-table-column prop="type" label="职务" show-overflow-tooltip>
+ <template #default="scope">
+@@ -143,10 +143,10 @@
+ roleList: [],
+ dutyList: [],
+ props: {
+- label: 'depName',
+- value: 'depId',
+- checkStrictly: true,
+- emitPath: false
++ label: 'depName',
++ value: 'depId',
++ checkStrictly: true,
++ emitPath: false
+ },
+ userTypeList: [
+ { id: 1, name: '超级管理员' },
+@@ -196,17 +196,17 @@
+ }
+ };
+
+- const getDutyData = async () => {
+- let res = await dutyApi().getAllList({positionName: '',positionCode: ''});
+- if (res.data.code === '200') {
+- state.dutyList = res.data.data;
+- } else {
+- ElMessage({
+- type: 'warning',
+- message: res.data.msg
+- });
+- }
+- };
++ const getDutyData = async () => {
++ let res = await dutyApi().getAllList({positionName: '',positionCode: ''});
++ if (res.data.code === '200') {
++ state.dutyList = res.data.data;
++ } else {
++ ElMessage({
++ type: 'warning',
++ message: res.data.msg
++ });
++ }
++ };
+
+ // 打开新增修改用户弹窗
+ const onOpenUserDialog = (type: string, value: any) => {
+@@ -250,10 +250,6 @@
+ };
+ // 页面加载时
+ onMounted(() => {
+- let a = { name: 1, c: { name: 1 } };
+- let b = Object.assign({}, a);
+- b.c.name = 2;
+- console.log(a.c.name);
+ initUserTableData();
+ getDepartmentData();
+ getRoleData();
+Index: src/api/systemManage/department/index.ts
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+>import request from '/@/utils/request';\r\n\r\nexport function departmentApi() {\r\n return {\r\n // v2\r\n getDepartmentList: () => {\r\n return request({\r\n url: import.meta.env.VITE_API_URL + `/department/list`,\r\n method: 'post'\r\n });\r\n },\r\n // v2\r\n addDepartment: (data: object) => {\r\n return request({\r\n url: import.meta.env.VITE_API_URL + `/department/add`,\r\n method: 'post',\r\n data: data\r\n });\r\n },\r\n // v2\r\n modDepartment: (data: object) => {\r\n return request({\r\n url: import.meta.env.VITE_API_URL + `/department/mod`,\r\n method: 'post',\r\n data: data\r\n });\r\n },\r\n // v1\r\n deleteDepartment: (value?: object) => {\r\n return request({\r\n url: import.meta.env.VITE_API_URL + `/department/del`,\r\n method: 'post',\r\n data: value\r\n });\r\n }\r\n };\r\n}\r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/src/api/systemManage/department/index.ts b/src/api/systemManage/department/index.ts
+--- a/src/api/systemManage/department/index.ts (revision 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/api/systemManage/department/index.ts (date 1678176094256)
+@@ -32,6 +32,13 @@
+ method: 'post',
+ data: value
+ });
++ },
++ getByDepId: (value: object) => {
++ return request({
++ url: import.meta.env.VITE_API_URL + `/schedule/group/list`,
++ method: 'post',
++ data: value
++ });
+ }
+ };
+ }
+Index: src/views/system/user/component/userDialog.vue
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+><template>\r\n <div class=\"system-add-user-container\">\r\n <el-dialog :title=\"title\" v-model=\"isShowUserDialog\" width=\"769px\">\r\n <el-form :model=\"userForm\" size=\"default\" ref=\"userRef\" :rules=\"userFormRules\" label-width=\"90px\">\r\n <el-row :gutter=\"35\">\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\" v-if=\"disabled\">\r\n <el-form-item label=\"用户名\">\r\n <el-input v-model.trim=\"userForm.username\" :disabled=\"disabled\" placeholder=\"\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"真实姓名\" prop=\"realName\">\r\n <el-input v-model.trim=\"userForm.realName\" placeholder=\"请输入真实姓名\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"关联角色\" prop=\"roleId\">\r\n <el-select v-model=\"userForm.roleId\" placeholder=\"请选择\" clearable class=\"w100\">\r\n <el-option v-for=\"item in roleData\" :key=\"item.roleId\" :label=\"item.roleName\" :value=\"item.roleId\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"部门\" prop=\"depId\">\r\n <el-cascader :options=\"departmentData\" :props=\"{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }\" placeholder=\"请选择部门\" clearable class=\"w100\" v-model=\"userForm.depId\"> </el-cascader>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"职务\" prop=\"positionId\">\r\n <el-select v-model=\"userForm.positionId\" placeholder=\"请选择\" clearable class=\"w100\">\r\n <el-option v-for=\"item in dutyData\" :key=\"item.positionId\" :label=\"item.positionName\" :value=\"item.positionId\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"手机号\" prop=\"phone\">\r\n <el-input v-model.trim=\"userForm.phone\" placeholder=\"请输入手机号\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"身份证\">\r\n <el-input v-model.trim=\"userForm.identify\" placeholder=\"请输入身份证\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"邮箱\">\r\n <el-input v-model.trim=\"userForm.email\" placeholder=\"请输入\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"性别\" prop=\"gender\">\r\n <el-select v-model=\"userForm.gender\" placeholder=\"请选择\" clearable class=\"w100\">\r\n <el-option v-for=\"item in sexList\" :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 :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"账户过期\" prop=\"expireTime\">\r\n <el-date-picker v-model=\"userForm.expireTime\" type=\"date\" placeholder=\"请选择\" class=\"w100\"> </el-date-picker>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\" v-if=\"!disabled\">\r\n <el-form-item label=\"账户密码\" prop=\"password\">\r\n <el-input v-model.trim=\"userForm.password\" placeholder=\"请输入\" type=\"password\" show-password>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">\r\n <el-form-item label=\"用户类型\" prop=\"type\">\r\n <el-select v-model=\"userForm.type\" placeholder=\"请选择\" clearable class=\"w100\">\r\n <el-option v-for=\"item in userTypeList.filter(item => userForm.type === 1 ? item.id === 1 : item.id !== 1)\" :key=\"item.id\" :label=\"item.name\" :value=\"item.id\"> </el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <!--\t\t\t\t\t<el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\" class=\"mb20\">-->\r\n <!--\t\t\t\t\t\t<el-form-item label=\"用户状态\">-->\r\n <!--\t\t\t\t\t\t\t<el-switch v-model=\"userForm.status\" inline-prompt active-value = 1 inactive-value= 0 active-text=\"启\" inactive-text=\"禁\"></el-switch>-->\r\n <!--\t\t\t\t\t\t</el-form-item>-->\r\n <!--\t\t\t\t\t</el-col>-->\r\n </el-row>\r\n </el-form>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"isShowUserDialog = !isShowUserDialog\" size=\"default\">取 消</el-button>\r\n <el-button type=\"primary\" v-throttle @click=\"onSubmit\" size=\"default\">确 定</el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { reactive, toRefs, onMounted, defineComponent, ref } from 'vue';\r\nimport { ElMessageBox, ElMessage } from 'element-plus';\r\nimport { userApi } from '/@/api/systemManage/user';\r\n\r\n// 定义接口来定义对象的类型\r\ninterface DeptData {}\r\ninterface roleData {}\r\ninterface dutyData {}\r\ninterface sexData {}\r\ninterface UserState {\r\n title: string;\r\n disabled: boolean;\r\n isShowUserDialog: boolean;\r\n userForm: {\r\n username: string;\r\n realName: string;\r\n roleId: number | null;\r\n depId: number | null;\r\n positionId: number | null;\r\n phone: string;\r\n email: string;\r\n gender: number | null;\r\n password: string;\r\n expireTime: string;\r\n status: number;\r\n identify: string;\r\n };\r\n userFormRules:{\r\n\r\n },\r\n departmentData: Array<DeptData>;\r\n roleData: Array<roleData>;\r\n dutyData: Array<dutyData>;\r\n sexList: Array<sexData>;\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'user',\r\n setup(props, context) {\r\n const userRef = ref()\r\n const state = reactive<UserState>({\r\n title: '',\r\n disabled: false,\r\n isShowUserDialog: false,\r\n userForm: {\r\n username: '', // 账户名称\r\n realName: '', // 用户昵称\r\n roleId: null, // 关联角色\r\n depId: null, // 部门\r\n phone: '', // 手机号\r\n email: '', // 邮箱\r\n identify: '',\r\n gender: null, // 性别\r\n password: '', // 账户密码\r\n positionId: null, // 岗位\r\n expireTime: '', // 账户过期\r\n status: 1 // 用户状态\r\n },\r\n userFormRules:{\r\n username: [{ required: true, message: '请填写用户名', trigger: 'blur' }],\r\n realName: [{ required: true, message: '请填写真实姓名', trigger: 'blur' }],\r\n roleId: [{ required: true, message: '请选择用户角色', trigger: 'change' }],\r\n depId: [{ required: true, message: '请选择部门', trigger: 'change' }],\r\n positionId: [{ required: true, message: '请选择职务', trigger: 'change' }],\r\n phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],\r\n gender: [{ required: true, message: '请选择性别', trigger: 'change' }],\r\n expireTime: [{ required: true, message: '请输入账户过期时间', trigger: 'blur' }],\r\n password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],\r\n },\r\n departmentData: [], // 部门数据\r\n roleData: [], //角色数据\r\n dutyData:[], //职务数据\r\n sexList: [\r\n { id: 1, name: '男' },\r\n { id: 0, name: '女' }\r\n ]\r\n });\r\n // 打开弹窗\r\n const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => {\r\n state.isShowUserDialog = true;\r\n state.departmentData = departmentList;\r\n state.roleData = roleList;\r\n state.dutyData = dutyList\r\n if (type === '新增') {\r\n state.disabled = false\r\n state.title = '新增用户';\r\n state.userForm = {\r\n username: '',\r\n realName: '',\r\n roleId: null,\r\n depId: null,\r\n phone: '',\r\n email: '',\r\n identify: '',\r\n positionId: null,\r\n gender: null,\r\n password: '',\r\n expireTime: '',\r\n status: 1\r\n };\r\n } else {\r\n state.disabled = true\r\n state.title = '修改用户';\r\n state.userForm = JSON.parse(JSON.stringify(value));\r\n }\r\n };\r\n\r\n // 新增修改\r\n const onSubmit = async () => {\r\n userRef.value.validate(async (valid:Boolean) => {\r\n if(valid){\r\n if (state.title === '新增用户') {\r\n let res = await userApi().addUser(state.userForm);\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 state.isShowUserDialog = false;\r\n context.emit('getUserList');\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 userApi().modUser(state.userForm);\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 state.isShowUserDialog = false;\r\n context.emit('getUserList');\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\r\n // 页面加载时\r\n onMounted(() => {});\r\n return {\r\n userRef,\r\n openDialog,\r\n onSubmit,\r\n ...toRefs(state)\r\n };\r\n }\r\n});\r\n</script>\r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue
+--- a/src/views/system/user/component/userDialog.vue (revision 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/views/system/user/component/userDialog.vue (date 1678258555207)
+@@ -26,11 +26,11 @@
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+- <el-form-item label="职务" prop="positionId">
+- <el-select v-model="userForm.positionId" placeholder="请选择" clearable class="w100">
+- <el-option v-for="item in dutyData" :key="item.positionId" :label="item.positionName" :value="item.positionId"> </el-option>
+- </el-select>
+- </el-form-item>
++ <el-form-item label="职务" prop="positionId">
++ <el-select v-model="userForm.positionId" placeholder="请选择" clearable class="w100">
++ <el-option v-for="item in dutyData" :key="item.positionId" :label="item.positionName" :value="item.positionId"> </el-option>
++ </el-select>
++ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="手机号" prop="phone">
+@@ -72,11 +72,11 @@
+ </el-select>
+ </el-form-item>
+ </el-col>
+- <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
+- <!-- <el-form-item label="用户状态">-->
+- <!-- <el-switch v-model="userForm.status" inline-prompt active-value = 1 inactive-value= 0 active-text="启" inactive-text="禁"></el-switch>-->
+- <!-- </el-form-item>-->
+- <!-- </el-col>-->
++ <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
++ <!-- <el-form-item label="用户状态">-->
++ <!-- <el-switch v-model="userForm.status" inline-prompt active-value = 1 inactive-value= 0 active-text="启" inactive-text="禁"></el-switch>-->
++ <!-- </el-form-item>-->
++ <!-- </el-col>-->
+ </el-row>
+ </el-form>
+ <template #footer>
+@@ -99,6 +99,7 @@
+ interface roleData {}
+ interface dutyData {}
+ interface sexData {}
++interface type {}
+ interface UserState {
+ title: string;
+ disabled: boolean;
+@@ -112,6 +113,7 @@
+ phone: string;
+ email: string;
+ gender: number | null;
++ type: number | null;
+ password: string;
+ expireTime: string;
+ status: number;
+@@ -124,6 +126,7 @@
+ roleData: Array<roleData>;
+ dutyData: Array<dutyData>;
+ sexList: Array<sexData>;
++ userTypeList: Array<type>;
+ }
+
+ export default defineComponent({
+@@ -145,6 +148,7 @@
+ gender: null, // 性别
+ password: '', // 账户密码
+ positionId: null, // 岗位
++ type: null, // 用户类型
+ expireTime: '', // 账户过期
+ status: 1 // 用户状态
+ },
+@@ -155,6 +159,7 @@
+ depId: [{ required: true, message: '请选择部门', trigger: 'change' }],
+ positionId: [{ required: true, message: '请选择职务', trigger: 'change' }],
+ phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],
++ type: [{ required: true, message: '请填写用户类型', trigger: 'blur' }],
+ gender: [{ required: true, message: '请选择性别', trigger: 'change' }],
+ expireTime: [{ required: true, message: '请输入账户过期时间', trigger: 'blur' }],
+ password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],
+@@ -165,6 +170,11 @@
+ sexList: [
+ { id: 1, name: '男' },
+ { id: 0, name: '女' }
++ ],
++ userTypeList: [
++ { id: 1, name: '超级管理员' },
++ { id: 2, name: '管理员' },
++ { id: 3, name: '普通员工' }
+ ]
+ });
+ // 打开弹窗
+@@ -186,6 +196,7 @@
+ identify: '',
+ positionId: null,
+ gender: null,
++ type: null,
+ password: '',
+ expireTime: '',
+ status: 1
+Index: src/views/system/department/component/deptDialog.vue
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
+<+><template>\r\n <div class=\"system-add-dept-container\">\r\n <el-dialog :title=\"title\" v-model=\"isShowDialog\" width=\"600px\">\r\n <el-form :model=\"departmentForm\" size=\"default\" label-width=\"90px\">\r\n <el-row :gutter=\"35\">\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"部门等级\">\r\n <el-select v-model=\"departmentForm.depLevel\" placeholder=\"请输入部门等级\" class=\"input-add\" clearable>\r\n <el-option\r\n v-for=\"item in depLevelList\"\r\n :key=\"item.id\"\r\n :label=\"item.name\"\r\n :value=\"item.id\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"上级部门\">\r\n <el-cascader :options=\"deptData\" class=\"input-add\" :props=\"{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }\" placeholder=\"请选择部门\" clearable v-model=\"departmentForm.parentDepId\"> </el-cascader>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"部门名称\">\r\n <el-input v-model=\"departmentForm.depName\" class=\"input-add\" placeholder=\"请输入部门名称\" clearable></el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"部门描述\">\r\n <el-input v-model=\"departmentForm.depInfo\" class=\"input-add\" type=\"textarea\" placeholder=\"请输入部门描述\" maxlength=\"150\"></el-input>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"onCancel\" size=\"default\">取 消</el-button>\r\n <el-button type=\"primary\" v-throttle @click=\"onSubmit\" size=\"default\">确 定</el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { ElMessage } from 'element-plus';\r\nimport { reactive, toRefs, onMounted, defineComponent } from 'vue';\r\nimport { departmentApi } from '/@/api/systemManage/department';\r\n\r\n// 定义接口来定义对象的类型\r\ninterface TableDataRow {\r\n name: string;\r\n info: string;\r\n parentId: string;\r\n id: number;\r\n}\r\ninterface DeptSate {\r\n title: string;\r\n isShowDialog: boolean;\r\n departmentForm: {\r\n depName: string;\r\n depInfo: string;\r\n parentDepId: string;\r\n depLevel:null | number\r\n };\r\n deptData: Array<TableDataRow>;\r\n depLevelList: Array<Type>;\r\n}\r\ninterface Type{\r\n id:number;\r\n name:string\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'systemAddDept',\r\n setup(prop, context) {\r\n const state = reactive<DeptSate>({\r\n title: '',\r\n isShowDialog: false,\r\n departmentForm: {\r\n depName: '',\r\n parentDepId: '',\r\n depInfo: '',\r\n depLevel:null,\r\n },\r\n deptData: [], // 部门数据\r\n depLevelList: [\r\n {id:1,name:'公司'},\r\n {id:2,name:'事业部'},\r\n {id:3,name:'车间'},\r\n ] // 部门数据\r\n });\r\n\r\n // 打开弹窗\r\n const openDialog = (type: string, value: any, departmentList: []) => {\r\n state.isShowDialog = true;\r\n state.deptData = JSON.parse(JSON.stringify(departmentList));\r\n if (type === '新增') {\r\n state.title = '新增部门';\r\n state.departmentForm = {\r\n depName: '',\r\n parentDepId: '',\r\n depLevel:null,\r\n depInfo: ''\r\n };\r\n } else {\r\n state.title = '修改部门';\r\n state.departmentForm = JSON.parse(JSON.stringify(value));\r\n }\r\n };\r\n // 关闭弹窗\r\n const closeDialog = () => {\r\n state.isShowDialog = false;\r\n };\r\n // 取消\r\n const onCancel = () => {\r\n closeDialog();\r\n };\r\n // 新增\r\n const onSubmit = async () => {\r\n if (state.title === '新增部门') {\r\n let res = await departmentApi().addDepartment(state.departmentForm);\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 closeDialog();\r\n context.emit('getDepartmentList');\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 departmentApi().modDepartment(state.departmentForm);\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 closeDialog();\r\n context.emit('getDepartmentList');\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 initTableData = () => {};\r\n // 页面加载时\r\n onMounted(() => {\r\n initTableData();\r\n });\r\n return {\r\n openDialog,\r\n closeDialog,\r\n onCancel,\r\n onSubmit,\r\n ...toRefs(state)\r\n };\r\n }\r\n});\r\n</script>\r\n
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/src/views/system/department/component/deptDialog.vue b/src/views/system/department/component/deptDialog.vue
+--- a/src/views/system/department/component/deptDialog.vue (revision 38f0a9145a29f570331f11505968f90bd1c08646)
++++ b/src/views/system/department/component/deptDialog.vue (date 1678081020198)
+@@ -7,10 +7,10 @@
+ <el-form-item label="部门等级">
+ <el-select v-model="departmentForm.depLevel" placeholder="请输入部门等级" class="input-add" clearable>
+ <el-option
+- v-for="item in depLevelList"
+- :key="item.id"
+- :label="item.name"
+- :value="item.id"
++ v-for="item in depLevelList"
++ :key="item.id"
++ :label="item.name"
++ :value="item.id"
+ ></el-option>
+ </el-select>
+ </el-form-item>
diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25__Default_Changelist_.xml b/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25__Default_Changelist_.xml
new file mode 100644
index 0000000..17b34df
--- /dev/null
+++ b/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25__Default_Changelist_.xml
@@ -0,0 +1,4 @@
+<changelist name="Uncommitted_changes_before_Update_at_2023_3_9_16_25_[Default_Changelist]" date="1678350639496" recycled="true" deleted="true">
+ <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_9_16_25_[Default_Changelist]/shelved.patch" />
+ <option name="DESCRIPTION" value="Uncommitted changes before Update at 2023/3/9 16:25 [Default Changelist]" />
+</changelist>
\ No newline at end of file
diff --git a/src/api/intellectInspectSystem/RFID/index.ts b/src/api/intellectInspectSystem/RFID/index.ts
index 534ffda..abb6a97 100644
--- a/src/api/intellectInspectSystem/RFID/index.ts
+++ b/src/api/intellectInspectSystem/RFID/index.ts
@@ -34,6 +34,15 @@
data: data
});
},
+
+ // v1
+ getRFIDById: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/SafeCheckRfid/select/getRfidById`,
+ method: 'post',
+ data: data
+ });
+ },
// v1
getAllRFIDList: () => {
return request({
diff --git a/src/api/systemManage/department/index.ts b/src/api/systemManage/department/index.ts
index fb22c65..497e10a 100644
--- a/src/api/systemManage/department/index.ts
+++ b/src/api/systemManage/department/index.ts
@@ -32,6 +32,13 @@
method: 'post',
data: value
});
+ },
+ getByDepId: (value: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/schedule/group/list`,
+ method: 'post',
+ data: value
+ });
}
};
}
diff --git a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue
index a54d140..d26b305 100644
--- a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue
+++ b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue
@@ -14,6 +14,23 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="处理人所属车间" prop="exceptionHandlerDepId">
+ <el-cascader @change="getUser" :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请输入RFID所属车间" clearable class="input-add" v-model="RFIDForm.exceptionHandlerDepId"> </el-cascader>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="异常处理人" prop="exceptionHandlerId">
+ <el-select v-model="RFIDForm.exceptionHandlerId" filterable class="input-add" placeholder="请输入异常处理人">
+ <el-option v-for="item in userList" :key="item.uid" :label="item.realName" :value="item.uid"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RFID所属车间" prop="rfidDepartmentId">
+ <el-cascader :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请输入RFID所属车间" clearable class="input-add" v-model="RFIDForm. rfidDepartmentId"> </el-cascader>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="上传图片" prop="rfidImage">
<el-upload accept="image/*" :on-preview="handlePictureCardPreview" :limits="1" v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
<el-icon><Plus /></el-icon>
@@ -39,12 +56,17 @@
</template>
<script lang="ts">
+import {userApi} from "/@/api/systemManage/user";
+
interface stateType {
isShowRFIDDialog: Boolean;
RFIDForm: {
rfid: string;
rfidName: string;
rfidImage: string | null;
+ rfidDepartmentId: number | null,
+ exceptionHandlerId: number | null,
+ exceptionHandlerDepId: number | null,
};
title: string;
dialogVisible: Boolean;
@@ -52,11 +74,14 @@
RFIDFormRules: {};
uploadUrl: string;
fileList: Array<file>;
+ departmentData: [];
+ userList: [];
}
interface file {
url: string;
}
-import { reactive, toRefs, ref } from 'vue';
+
+import {reactive, toRefs, ref, onMounted} from 'vue';
import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
import { ElMessage, ElMessageBox } from 'element-plus';
import type { UploadProps, UploadUserFile } from 'element-plus';
@@ -71,6 +96,9 @@
RFIDForm: {
rfid: '',
rfidName: '',
+ rfidDepartmentId: null,
+ exceptionHandlerId: null,
+ exceptionHandlerDepId: null,
rfidImage: null
},
uploadUrl: '',
@@ -79,16 +107,20 @@
RFIDFormRules: {
rfid: [{ required: true, message: '请填写RFID编码', trigger: 'blur' }],
rfidName: [{ required: true, message: '请填写RFID名称', trigger: 'change' }],
- riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }],
- location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }]
+ rfidDepartmentId: [{ required: true, message: '请选择', trigger: 'change' }],
+ exceptionHandlerDepId: [{ required: true, message: '请选择', trigger: 'change' }],
+ exceptionHandlerId: [{ required: true, message: '请选择', trigger: 'change' }]
},
- fileList: []
+ fileList: [],
+ departmentData: [],
+ userList: []
});
//打开模态框
- const openRFIDDialog = (type: string, value: object) => {
+ const openRFIDDialog = async (type: string, value: object, departmentList: []) => {
state.fileList = [];
state.isShowRFIDDialog = true;
+ state.departmentData = departmentList;
setTimeout(() => {
RFIDFormRef.value.clearValidate();
});
@@ -97,11 +129,17 @@
state.RFIDForm = {
rfid: '',
rfidName: '',
+ rfidDepartmentId: null,
+ exceptionHandlerId: null,
+ exceptionHandlerDepId: null,
rfidImage: ''
};
} else {
state.title = '修改RFID';
- state.RFIDForm = JSON.parse(JSON.stringify(value));
+ debugger
+ let res = await RFIDApi().getRFIDById({id:parseInt(value.id)})
+ state.RFIDForm = res.data.data
+ getUser()
if (state.RFIDForm.rfidImage === null) return;
state.fileList = [{ url: state.RFIDForm.rfidImage }];
}
@@ -224,6 +262,19 @@
});
};
+ //获取用户列表
+ const getUser = async () => {
+ let res = await userApi().getUserLByDepartment(state.RFIDForm.exceptionHandlerDepId);
+ if (res.data.code === '200') {
+ state.userList = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
const handlePictureCardPreview = (uploadFile: { url: string }) => {
state.dialogImageUrl = uploadFile.url!;
state.dialogVisible = true;
@@ -235,6 +286,7 @@
// fileList,
upload,
getUploadUrl,
+ getUser,
handlePreview,
beforeRemove,
submitRFID,
diff --git a/src/views/intellectInspect/inspectBasic/discriminate/index.vue b/src/views/intellectInspect/inspectBasic/discriminate/index.vue
index d857438..8c99fb4 100644
--- a/src/views/intellectInspect/inspectBasic/discriminate/index.vue
+++ b/src/views/intellectInspect/inspectBasic/discriminate/index.vue
@@ -27,6 +27,9 @@
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="rfidName" label="RFID名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="rfid" label="RFID编码" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="exceptionHandler" label="异常处理人" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="exceptionHandlerPhone" label="异常处理人手机号" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="rfidDepartment" label="RFID所属车间" show-overflow-tooltip></el-table-column>
<el-table-column prop="createUserName" label="创建人" show-overflow-tooltip></el-table-column>
<el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
<el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
@@ -54,6 +57,7 @@
import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
import type { UploadProps, UploadUserFile } from 'element-plus'
+import {departmentApi} from "/@/api/systemManage/department";
// 定义接口来定义对象的类型
interface TableData {
quota: string;
@@ -67,6 +71,7 @@
interface TableDataState {
RFIDData: {
data: Array<TableData>;
+ departmentList: [];
total: number;
loading: boolean;
params: {
@@ -86,6 +91,7 @@
const state = reactive<TableDataState>({
RFIDData: {
data: [],
+ departmentList: [],
total: 0,
loading: false,
params: {
@@ -113,7 +119,7 @@
// 打开弹窗
const onOpenDialogRef = (type: string, value: any) => {
- RFIDDialogRef.value.openRFIDDialog(type, value);
+ RFIDDialogRef.value.openRFIDDialog(type, value, state.departmentList);
};
// 删除
const onDelProductionDevice = (row: any) => {
@@ -141,6 +147,18 @@
.catch(() => {});
};
+ const getDepartmentData = async () => {
+ let res = await departmentApi().getDepartmentList();
+ if (res.data.code === '200') {
+ state.departmentList = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
const handleSearch = () => {
initRFIDTableData();
};
@@ -157,6 +175,7 @@
// 页面加载时
onMounted(() => {
initRFIDTableData();
+ getDepartmentData();
});
return {
diff --git a/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue b/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue
index 1e9ede6..544a43a 100644
--- a/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue
+++ b/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue
@@ -5,14 +5,19 @@
<el-row :gutter="35">
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="设备区域名称" prop="region">
- <el-input class="input-length" v-model.trim="facilityAreaForm.region" placeholder="请输入设备区域名称" clearable></el-input>
+ <el-input class="input-add" v-model.trim="facilityAreaForm.region" placeholder="请输入设备区域名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="设备区域类型" prop="regionTypeId">
- <el-select class="input-length" v-model="facilityAreaForm.regionTypeId" placeholder="请选择设备区域类型" clearable filterable>
+ <el-select class="input-add" v-model="facilityAreaForm.regionTypeId" placeholder="请选择设备区域类型" clearable filterable>
<el-option v-for="item in facilityAreaTypeList" :key="item.id" :label="item.regionType" :value="item.id"></el-option>
</el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="所属部门" prop="regionDepartmentId">
+ <el-cascader :options="departmentData" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请输入RFID所属车间" clearable class="input-add" v-model="facilityAreaForm.regionDepartmentId"> </el-cascader>
</el-form-item>
</el-col>
</el-row>
@@ -28,14 +33,18 @@
</template>
<script lang="ts">
+import {departmentApi} from "/@/api/systemManage/department";
+
interface stateType {
isShowFacilityAreaDialog: Boolean;
facilityAreaForm: {
region: string;
regionTypeId: number | null;
+ regionDepartmentId: number | null;
};
title: string;
facilityAreaTypeList: Array<facilityAreaTypeState>;
+ departmentData: [];
facilityAreaFormRules: {};
}
interface facilityAreaTypeState {
@@ -43,7 +52,7 @@
id: number;
}
-import { reactive, toRefs, ref } from 'vue';
+import {reactive, toRefs, ref, onMounted} from 'vue';
import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
import { ElMessage } from 'element-plus';
export default {
@@ -53,14 +62,17 @@
const state = reactive<stateType>({
title: '',
facilityAreaTypeList: [],
+ departmentData: [],
isShowFacilityAreaDialog: false,
facilityAreaForm: {
region: '',
- regionTypeId: null
+ regionTypeId: null,
+ regionDepartmentId: null
},
facilityAreaFormRules: {
region: [{ required: true, message: '请填写设备区域名称', trigger: 'blur' }],
- regionTypeId: [{ required: true, message: '请选择设备区域类型', trigger: 'change' }]
+ regionTypeId: [{ required: true, message: '请选择设备区域类型', trigger: 'change' }],
+ regionDepartmentId: [{ required: true, message: '请选择所属部门', trigger: 'change' }]
}
});
@@ -75,7 +87,8 @@
state.title = '新增设备区域';
state.facilityAreaForm = {
region: '',
- regionTypeId: null
+ regionTypeId: null,
+ regionDepartmentId: null
};
} else {
state.title = '修改设备区域';
@@ -85,9 +98,23 @@
if (res.data.code === '200') {
state.facilityAreaForm = JSON.parse(JSON.stringify(res.data.data));
} else {
- }
- })
- .catch((error) => {});
+ }
+ })
+ .catch((error) => {
+
+ });
+ }
+ };
+
+ const getDepartmentData = async () => {
+ let res = await departmentApi().getDepartmentList();
+ if (res.data.code === '200') {
+ state.departmentData = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
}
};
@@ -136,6 +163,9 @@
}
});
};
+ onMounted(() => {
+ getDepartmentData();
+ })
return {
...toRefs(state),
diff --git a/src/views/intellectInspect/inspectBasic/facility/index.vue b/src/views/intellectInspect/inspectBasic/facility/index.vue
index 76c6efc..e84b57e 100644
--- a/src/views/intellectInspect/inspectBasic/facility/index.vue
+++ b/src/views/intellectInspect/inspectBasic/facility/index.vue
@@ -29,6 +29,7 @@
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="region" label="设备区域名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="regionType" label="设备区域类型" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="regionDepartment" label="所属部门" show-overflow-tooltip></el-table-column>
<el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column>
<el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
<el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
@@ -107,6 +108,7 @@
});
// 初始化表格数据
const initFacilityAreaTableData = async () => {
+ debugger
let res = await facilityAreaApi().getFacilityAreaList(state.facilityAreaData.params);
if (res.data.code === '200') {
state.facilityAreaData.data = res.data.data.records;
diff --git a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
index 7657aad..939361f 100644
--- a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
+++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
@@ -9,6 +9,13 @@
</el-select>
</div>
<div class="basic-line">
+ <span>部门:</span>
+ <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
+ placeholder="请选择部门" clearable v-model="tableData.params.execDepId"
+ @change="changeGroup"
+ > </el-cascader>
+ </div>
+ <div class="basic-line">
<span>执行班组:</span>
<el-select v-model="tableData.params.execClassgroupId" clearable filterable class="input-box" placeholder="执行班组">
<el-option v-for="item in classGroupList" :key="item.id" :label="item.groupName" :value="item.id"></el-option>
@@ -278,16 +285,16 @@
}
};
- //获取班组
- const getClassGroupData = async () => {
- let res = await teamManageApi().getRecord({ depIp: null, groupName: null, containGroupMemberEnable: null });
- if (res.data.code === '200') {
- state.classGroupList = res.data.data;
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
+ const changeGroup = async () => {
+ if(state.tableData.params.execDepId === null) {
+ state.classGroupList = []
+ }else{
+ let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId})
+ if(res.data.code === '200'){
+ state.classGroupList = res.data.data
+ }else{
+
+ }
}
};
@@ -366,13 +373,11 @@
getInspectRecord();
getQuotaList();
getDepartmentData();
- getClassGroupData();
getInspectTaskPoint();
} else {
getInspectRecord();
getQuotaList();
getDepartmentData();
- getClassGroupData();
getInspectTaskPoint();
}
});
@@ -385,6 +390,7 @@
Plus,
reset,
parseNumber,
+ changeGroup,
getInspectRecord,
onHandleSizeChange,
onHandleCurrentChange,
diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
index d897b89..e6e01c5 100644
--- a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
+++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
@@ -9,6 +9,13 @@
</el-select>
</div>
<div class="basic-line">
+ <span>部门:</span>
+ <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
+ placeholder="请选择部门" clearable v-model="tableData.params.execDepId"
+ @change="changeGroup"
+ > </el-cascader>
+ </div>
+ <div class="basic-line">
<span>执行班组:</span>
<el-select v-model="tableData.params.execClassgroupId" clearable filterable class="input-box" placeholder="执行班组">
<el-option v-for="item in classGroupList" :key="item.id" :label="item.groupName" :value="item.id"></el-option>
@@ -143,6 +150,7 @@
params: {
pageIndex: number | null;
pageSize: number | null;
+ execDepId: number | null;
unitName: string | null;
workType: number | null;
createUserId: number | null;
@@ -182,6 +190,7 @@
pageIndex: 1,
pageSize: 10,
unitName: null,
+ execDepId: null,
workType: null,
createUserId: null,
execClassgroupId: null,
@@ -205,7 +214,7 @@
{ id: 3, name: '日' },
{ id: 4, name: '月' },
{ id: 5, name: '年' }
- ]
+ ],
});
//获取巡检任务数据
@@ -297,6 +306,19 @@
type: 'warning',
message: res.data.msg
});
+ }
+ };
+
+ const changeGroup = async () => {
+ if(state.tableData.params.execDepId === null) {
+ state.classGroupList = []
+ }else{
+ let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId})
+ if(res.data.code === '200'){
+ state.classGroupList = res.data.data
+ }else{
+
+ }
}
};
@@ -407,6 +429,7 @@
pageIndex: 1,
pageSize: 10,
unitName: null,
+ execDepId: null,
workType: null,
createUserId: null,
execClassgroupId: null,
@@ -434,6 +457,7 @@
Plus,
reset,
changeStatus,
+ changeGroup,
parseNumber,
deleteInspectTask,
getInspectionTask,
diff --git a/src/views/system/department/component/deptDialog.vue b/src/views/system/department/component/deptDialog.vue
index 918647d..5ea28a3 100644
--- a/src/views/system/department/component/deptDialog.vue
+++ b/src/views/system/department/component/deptDialog.vue
@@ -7,10 +7,10 @@
<el-form-item label="部门等级">
<el-select v-model="departmentForm.depLevel" placeholder="请输入部门等级" class="input-add" clearable>
<el-option
- v-for="item in depLevelList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
+ v-for="item in depLevelList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
></el-option>
</el-select>
</el-form-item>
diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue
index 3cc09f5..22b5b33 100644
--- a/src/views/system/user/component/userDialog.vue
+++ b/src/views/system/user/component/userDialog.vue
@@ -26,11 +26,11 @@
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
- <el-form-item label="职务" prop="positionId">
- <el-select v-model="userForm.positionId" placeholder="请选择" clearable class="w100">
- <el-option v-for="item in dutyData" :key="item.positionId" :label="item.positionName" :value="item.positionId"> </el-option>
- </el-select>
- </el-form-item>
+ <el-form-item label="职务" prop="positionId">
+ <el-select v-model="userForm.positionId" placeholder="请选择" clearable class="w100">
+ <el-option v-for="item in dutyData" :key="item.positionId" :label="item.positionName" :value="item.positionId"> </el-option>
+ </el-select>
+ </el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="手机号" prop="phone">
@@ -172,10 +172,10 @@
{ id: 0, name: '女' }
],
userTypeList: [
- { id: 1, name: '超级管理员' },
- { id: 2, name: '管理员' },
- { id: 3, name: '普通员工' }
- ]
+ { id: 1, name: '超级管理员' },
+ { id: 2, name: '管理员' },
+ { id: 3, name: '普通员工' }
+ ],
});
// 打开弹窗
const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => {
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index f60a998..f95f087 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -31,15 +31,15 @@
<el-table-column prop="username" label="用户名" show-overflow-tooltip></el-table-column>
<el-table-column prop="realName" label="真实姓名" show-overflow-tooltip></el-table-column>
<el-table-column prop="gender" label="性别" show-overflow-tooltip>
- <template #default="scope">
- <el-tag type="success" v-if="scope.row.gender == 1">男</el-tag>
- <el-tag type="success" v-else-if="scope.row.gender == 0">女</el-tag>
- </template>
+ <template #default="scope">
+ <el-tag type="success" v-if="scope.row.gender == 1">男</el-tag>
+ <el-tag type="success" v-else-if="scope.row.gender == 0">女</el-tag>
+ </template>
</el-table-column>
<el-table-column prop="positionId" label="职务" show-overflow-tooltip>
- <template #default="scope">
- {{ parseNumber(scope.row.positionId) }}
- </template>
+ <template #default="scope">
+ {{ parseNumber(scope.row.positionId) }}
+ </template>
</el-table-column>
<el-table-column prop="type" label="职务" show-overflow-tooltip>
<template #default="scope">
@@ -143,10 +143,10 @@
roleList: [],
dutyList: [],
props: {
- label: 'depName',
- value: 'depId',
- checkStrictly: true,
- emitPath: false
+ label: 'depName',
+ value: 'depId',
+ checkStrictly: true,
+ emitPath: false
},
userTypeList: [
{ id: 1, name: '超级管理员' },
@@ -196,17 +196,17 @@
}
};
- const getDutyData = async () => {
- let res = await dutyApi().getAllList({positionName: '',positionCode: ''});
- if (res.data.code === '200') {
- state.dutyList = res.data.data;
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
+ const getDutyData = async () => {
+ let res = await dutyApi().getAllList({positionName: '',positionCode: ''});
+ if (res.data.code === '200') {
+ state.dutyList = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
// 打开新增修改用户弹窗
const onOpenUserDialog = (type: string, value: any) => {
@@ -250,10 +250,6 @@
};
// 页面加载时
onMounted(() => {
- let a = { name: 1, c: { name: 1 } };
- let b = Object.assign({}, a);
- b.c.name = 2;
- console.log(a.c.name);
initUserTableData();
getDepartmentData();
getRoleData();
--
Gitblit v1.9.2