Loading src/api/system/currentRiskPost.js +17 −0 Original line number Original line Diff line number Diff line Loading @@ -58,3 +58,20 @@ export function saveCurrentPost(data) { data: data data: data }) }) } } // 隐患清单库 export function getlibraryListFun(query) { return request({ url: '/system/risk/existing/list', method: 'get', params: query }) } // 岗位用户巡查清单列表 export function getCurrentRiskPatrol(query) { return request({ url: '/risk/riskPostList/list', method: 'get', params: query }) } src/views/risk/currentProject/projectPost.vue +319 −19 Original line number Original line Diff line number Diff line Loading @@ -78,7 +78,7 @@ </div> </div> <!-- 添加或修改现状风险岗位对话框 --> <!-- 添加或修改现状风险岗位对话框 --> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body> <el-tabs v-model="activeName"> <el-tabs v-model="activeName" @tab-click="tabChange"> <el-tab-pane label="基础信息" name="first"> <el-tab-pane label="基础信息" name="first"> <el-form ref="form" :model="form" :rules="rules" label-width="84px"> <el-form ref="form" :model="form" :rules="rules" label-width="84px"> <el-form-item label="岗位名称" prop="riskPostName"> <el-form-item label="岗位名称" prop="riskPostName"> Loading Loading @@ -112,49 +112,135 @@ <el-tab-pane label="清单匹配" name="second"> <el-tab-pane label="清单匹配" name="second"> <el-form ref="listForm" :model="listForm" :rules="listRules" label-width="120px" label-position="top"> <el-form ref="listForm" :model="listForm" :rules="listRules" label-width="120px" label-position="top"> <el-form-item label="匹配模式" prop="postState"> <el-form-item label="匹配模式" prop="postState"> <el-radio-group v-model="listForm.postState" @change="radioChange"> <el-radio-group v-model="listForm.postState" @input="radioChange"> <el-radio label="1">一岗一人巡查模式</el-radio> <el-radio label="0">一岗一人巡查模式</el-radio> <el-radio label="0">一岗多人巡查模式</el-radio> <el-radio label="1">一岗多人巡查模式</el-radio> </el-radio-group> </el-radio-group> </el-form-item> </el-form-item> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '1'"> <el-form-item label="岗位清单配置" prop="currentRiskTypeList" v-if="listForm.postState == '0'" id="currentRiskTypeList"> <el-input v-model="listForm.hdType" style="width:80%;margin-right:20px"></el-input> <!-- <el-input v-model="listForm.currentRiskTypeList" style="width:80%;margin-right:20px"></el-input> --> <el-button type="primary">隐患清单库</el-button> <div style="display:inline-block;width:80%;margin-right:20px;border:1px solid #eee;padding:5px 10px;min-height:40px"> <span style="display:inline-block;margin-right:10px;line-height:15px;background-color:#1890FF;padding:5px 10px;color:#fff;" v-for="(item, index) in listForm.currentRiskTypeList" :key="index" >{{item.type || item.currentRiskType}}</span> </div> <el-button type="primary" @click="getPatrolLibrary" style="height:35px">隐患清单库</el-button> </el-form-item> </el-form-item> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '0'"> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '1'"> <el-table :data="listUserTabel" > <el-table :data="listUserTabel" empty-text="暂无数据,请先在‘基础信息’中选择岗位成员!"> <el-table-column type="index" label="序号" width="50"/> <el-table-column type="index" label="序号" width="50"/> <el-table-column label="姓名" align="center" prop="userName" width="140" :show-overflow-tooltip="true"/> <el-table-column label="姓名" align="center" prop="userName" width="140" :show-overflow-tooltip="true"/> <el-table-column label="工号" align="center" prop="nickName" width="140" :show-overflow-tooltip="true" /> <el-table-column label="状态" align="center" prop="status" width="140"> <el-table-column label="状态" align="center" prop="postName" width="140" :show-overflow-tooltip="true" /> <template slot-scope="scope"> <el-table-column label="巡查清单" align="center" prop="postName" :show-overflow-tooltip="true" /> <el-switch v-model="scope.row.status" @change="statusChange(scope.$index, $event)"> </el-switch> </template> </el-table-column> <el-table-column label="巡查清单" align="center" prop="postNameShow" :show-overflow-tooltip="true"> <template slot-scope="scope"> <el-button size="mini" type="text" v-for="(item, index) in scope.row.postNameShow" :key="index" >{{item.type || item.currentRiskType}}</el-button> </template> </el-table-column> <el-table-column label="操作" align="center" width="140"> <el-table-column label="操作" align="center" width="140"> <template slot-scope="scope"> <template slot-scope="scope"> <el-button <el-button size="mini" size="mini" type="text" type="text" icon="el-icon-edit" icon="el-icon-edit" @click="selectList(scope.row)" @click="selectList(scope.row, scope.$index)" >清单库选择</el-button> >清单库选择</el-button> </template> </template> </el-table-column> </el-table-column> </el-table> </el-table> </el-form-item> </el-form-item> <p> <span style="color: red;">系统提示:可根据工程进度调整巡查类型及内容。</span></p> <p> <span style="color: red;">系统提示:可根据实际情况任意增加或减少巡查类型及巡查内容。</span></p> </el-form> </el-form> </el-tab-pane> </el-tab-pane> </el-tabs> </el-tabs> <div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button> </div> </div> </el-dialog> </el-dialog> <el-dialog title="选择隐患清单库" :visible.sync="patrolLibraryOpen" width="60%" append-to-body> <el-table :data="libraryList" @selection-change="handleSelectionChange" ref="libraryListTabel" :key="isUpdate"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="场所位置" width="200" show-overflow-tooltip align="center" > <template slot-scope="scope">{{ scope.row.buildingName }}{{ scope.row.floorName }}{{ scope.row.roomName }}</template> </el-table-column> <el-table-column label="风险源" width="120" align="center" > <template slot-scope="scope">{{ scope.row.name }}</template> </el-table-column> <el-table-column label="辨识标准" width="120" show-overflow-tooltip align="center"> <template slot-scope="scope">{{ scope.row.referenceBasis }}</template> </el-table-column> <el-table-column label="存在部位" width="120" align="center"> <template slot-scope="scope">{{ scope.row.presenceLocation }}</template> </el-table-column> <el-table-column label="风险类型(GB6441)" width="120" show-overflow-tooltip align="center"> <template slot-scope="scope">{{ scope.row.type }}</template> </el-table-column> <el-table-column label="风险等级" width="120" align="center"> <template slot-scope="scope">{{ scope.row.level }}</template> </el-table-column> <el-table-column label="周期" width="120" align="center" prop="cycle"> <template slot-scope="scope"> <el-select v-model="scope.row.cycle" placeholder="请选择" @change="cycleSelChange"> <el-option v-for="(item, index) in cycleList" :key="index" :label="item.name" :value="item.cycle"> </el-option> </el-select> </template> </el-table-column> </el-table> <pagination v-show="libraryTotal > 0" :total="libraryTotal" :page.sync="libraryParams.pageNum" :limit.sync="libraryParams.pageSize" @pagination="getlibraryList" /> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="patrolLibrarySubmit">确 定</el-button> <el-button @click="patrolLibraryOpen = false">取 消</el-button> </div> </el-dialog> </div> </div> </template> </template> <script> <script> import { listCurrentRiskPost, userCurrentRiskPost, saveCurrentPost, getCurrentRiskPost, delCurrentRiskPost, addCurrentRiskPost, updateCurrentRiskPost } from "@/api/system/currentRiskPost"; import { listCurrentRiskPost, userCurrentRiskPost, getlibraryListFun, saveCurrentPost, delCurrentRiskPost, getCurrentRiskPatrol } from "@/api/system/currentRiskPost"; export default { export default { name: "projectPost", name: "projectPost", Loading @@ -178,12 +264,17 @@ export default { title: "", title: "", // 是否显示弹出层 // 是否显示弹出层 open: false, open: false, patrolLibraryOpen:false, // 查询参数 // 查询参数 queryParams: { queryParams: { pageNum: 1, pageNum: 1, pageSize: 9999, pageSize: 9999, riskPostName: null, riskPostName: null, }, }, libraryParams: { pageNum: 1, pageSize: 10, }, form:{}, form:{}, patrolTypeList:[],// 岗位类型 patrolTypeList:[],// 岗位类型 userList:[], userList:[], Loading @@ -195,9 +286,40 @@ export default { postState:[{ required: true, message: '请选择匹配模式', trigger: 'change' }] postState:[{ required: true, message: '请选择匹配模式', trigger: 'change' }] }, }, listForm:{//清单匹配 listForm:{//清单匹配 postState:'1' postState:'0', currentRiskTypeList:[] } , listUserTabel:[], libraryList:[], libraryTotal:0, currentRiskList:[], multipleSelection:[], cycleList:[ { name:'日查', cycle:'0' }, { name:'周查', cycle:'1' }, { name:'月查', cycle:'2' }, { name:'季查', cycle:'3' }, }, listUserTabel:[] { name:'年查', cycle:'4' }, ], isUpdate:false, postList:[], userId:'', userIndex:'' }; }; }, }, created() { created() { Loading Loading @@ -227,11 +349,18 @@ export default { cancel() { cancel() { this.open = false; this.open = false; this.reset(); this.reset(); this.postList = [] this.listForm.currentRiskTypeList = [] }, }, // 表单重置 // 表单重置 reset() { reset() { this.form = {} this.form = {} this.activeName = 'first' this.activeName = 'first' this.listForm = {//清单匹配 postState:'0', currentRiskTypeList:[] } this.listUserTabel = [] }, }, /** 搜索按钮操作 */ /** 搜索按钮操作 */ handleQuery() { handleQuery() { Loading Loading @@ -263,6 +392,7 @@ export default { row.userId = arr2 row.userId = arr2 } } this.form = row this.form = row this.listForm.postState = this.form.patrolType this.getUserList() this.getUserList() this.open = true; this.open = true; this.title = "修改现状风险岗位"; this.title = "修改现状风险岗位"; Loading @@ -275,10 +405,21 @@ export default { "projectId":this.$route.params.id, "projectId":this.$route.params.id, "riskPostCode":this.form.riskPostCode, "riskPostCode":this.form.riskPostCode, "riskPostName":this.form.riskPostName, "riskPostName":this.form.riskPostName, "patrolType":this.form.patrolType, "riskPostDesc":this.form.riskPostDesc, "riskPostDesc":this.form.riskPostDesc, "userId":this.form.userId.join(), "userId":this.form.userId.join(), "patrolType":this.listForm.postState, "list":this.postList } if (this.listForm.postState == '0') { // 一岗一人巡查模式 params.list = this.postList }else{ let arr = [] this.listUserTabel.forEach((item) => { arr = [...item.postName, ...arr] }) params.list = arr } } console.log('params==>>',params) if (this.form.id != null) { if (this.form.id != null) { params.id = this.form.id params.id = this.form.id saveCurrentPost(params).then(response => { saveCurrentPost(params).then(response => { Loading @@ -305,6 +446,160 @@ export default { this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功"); }).catch(() => {}); }).catch(() => {}); }, }, // 匹配模式radio radioChange(e){ if (e == '1') { this.listUserTabel = [] let arr = this.form.userId arr.forEach((item, index) => { let data = { userName: this.userList.find( i => i.userId == item).nickName, postName:[], postNameShow:[], userId:item, status:true } this.listUserTabel.push(data) }) console.log('this.listUserTabel==>>',this.listUserTabel) } }, // 一岗一人巡查模式 清单库 getPatrolLibrary(){ this.patrolLibraryOpen = true this.getlibraryList() }, getlibraryList(){ getlibraryListFun(this.libraryParams).then(response => { this.libraryList = response.rows; this.libraryList.forEach((item) => { item.cycle = '0' }) this.libraryTotal = response.total; }); }, // 选择清单库确定 patrolLibrarySubmit(){ this.postList = [] this.listForm.currentRiskTypeList = [] this.patrolLibraryOpen = false this.multipleSelection.forEach((item) => { if (this.listForm.postState == '0') { // 一岗一人巡查模式 let data = { id: item.id, patrolType: item.cycle, } this.postList.push(data) if(!this.listForm.currentRiskTypeList.some( items => items.type === item.type)){ this.listForm.currentRiskTypeList.push(item) } }else{ // 一岗多人巡查模式 let data = { id: item.id, patrolType: item.cycle, userId:this.userId, status:this.userStatus ? '0' : '1' } this.listUserTabel[this.userIndex].postName.push(data) if(!this.listUserTabel[this.userIndex].postNameShow.some( items => items.type === item.type)){ this.listUserTabel[this.userIndex].postNameShow.push(item) } } }) // console.log('listUserTabel==>>',this.listUserTabel) }, // 状态切换 statusChange(num, e){ // console.log('num==>>', num) this.listUserTabel.forEach((item, index) => { if (index == num) { item.postName.forEach((items) => { items.status = e ? '0' : '1' }) } }) console.log(',this.listUserTabel==>>',this.listUserTabel) }, // 一岗多人巡查模式 清单库 selectList(row, index){ // console.log('row==>>',row) this.patrolLibraryOpen = true this.userId = row.userId this.userIndex = index this.userStatus = row.status this.getlibraryList() }, // tabs切换 tabChange(tab, event){ // console.log('tab==>>',tab.name) if (tab.name == 'second' && this.title =='修改现状风险岗位' ) { //清单匹配 // 岗位用户巡查清单列表 this.listUserTabel = [] this.getCurrentRiskPatrol() }else{ this.listForm.postState = '0' } }, getCurrentRiskPatrol(){ this.listForm.currentRiskTypeList = [] let params = { postId: this.form.id, pageNum: 1, pageSize: 9999, } getCurrentRiskPatrol(params).then(response => { if (this.listForm.postState == '0') { // 一岗一人巡查模式 response.rows.forEach((item) => { let data = { id: item.currentRiskId, patrolType: item.patrolType, } this.postList.push(data) if(!this.listForm.currentRiskTypeList.some( items => items.currentRiskType === item.currentRiskType)){ this.listForm.currentRiskTypeList.push(item) } }) console.log('==>>',this.listForm.currentRiskTypeList) }else{ // 一岗多人巡查模式 let arr = this.form.nickName.split(',') arr.forEach((item, index) => { let data = { userName: item, postName:[], postNameShow:[], userId:this.userList.find( i => i.nickName == item).userId, status:'' } this.listUserTabel.push(data) }) for (const val of response.rows) { this.listUserTabel.forEach((item) => { if (item.userId == val.userId) { item.status = val.status == '0' ? true : false if (!item.postNameShow.some( items => items.currentRiskType === val.currentRiskType)) { item.postNameShow.push(val) } let data = { id: val.currentRiskId, patrolType: val.patrolType, userId:val.userId, status: val.status } item.postName.push(data) } }) } // console.log('this.listUserTabel==>>',this.listUserTabel) } }) }, handleSelectionChange(val){ this.multipleSelection = val; }, cycleSelChange(){ this.isUpdate = !this.isUpdate } } } }; }; </script> </script> Loading Loading @@ -399,4 +694,9 @@ export default { ::v-deep .el-form-item--medium .el-form-item__content{ ::v-deep .el-form-item--medium .el-form-item__content{ margin-left: 20px; margin-left: 20px; } } #currentRiskTypeList ::v-deep .el-form-item__content { display: flex; align-items: center; justify-content: space-between; } </style> </style> Loading
src/api/system/currentRiskPost.js +17 −0 Original line number Original line Diff line number Diff line Loading @@ -58,3 +58,20 @@ export function saveCurrentPost(data) { data: data data: data }) }) } } // 隐患清单库 export function getlibraryListFun(query) { return request({ url: '/system/risk/existing/list', method: 'get', params: query }) } // 岗位用户巡查清单列表 export function getCurrentRiskPatrol(query) { return request({ url: '/risk/riskPostList/list', method: 'get', params: query }) }
src/views/risk/currentProject/projectPost.vue +319 −19 Original line number Original line Diff line number Diff line Loading @@ -78,7 +78,7 @@ </div> </div> <!-- 添加或修改现状风险岗位对话框 --> <!-- 添加或修改现状风险岗位对话框 --> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body> <el-tabs v-model="activeName"> <el-tabs v-model="activeName" @tab-click="tabChange"> <el-tab-pane label="基础信息" name="first"> <el-tab-pane label="基础信息" name="first"> <el-form ref="form" :model="form" :rules="rules" label-width="84px"> <el-form ref="form" :model="form" :rules="rules" label-width="84px"> <el-form-item label="岗位名称" prop="riskPostName"> <el-form-item label="岗位名称" prop="riskPostName"> Loading Loading @@ -112,49 +112,135 @@ <el-tab-pane label="清单匹配" name="second"> <el-tab-pane label="清单匹配" name="second"> <el-form ref="listForm" :model="listForm" :rules="listRules" label-width="120px" label-position="top"> <el-form ref="listForm" :model="listForm" :rules="listRules" label-width="120px" label-position="top"> <el-form-item label="匹配模式" prop="postState"> <el-form-item label="匹配模式" prop="postState"> <el-radio-group v-model="listForm.postState" @change="radioChange"> <el-radio-group v-model="listForm.postState" @input="radioChange"> <el-radio label="1">一岗一人巡查模式</el-radio> <el-radio label="0">一岗一人巡查模式</el-radio> <el-radio label="0">一岗多人巡查模式</el-radio> <el-radio label="1">一岗多人巡查模式</el-radio> </el-radio-group> </el-radio-group> </el-form-item> </el-form-item> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '1'"> <el-form-item label="岗位清单配置" prop="currentRiskTypeList" v-if="listForm.postState == '0'" id="currentRiskTypeList"> <el-input v-model="listForm.hdType" style="width:80%;margin-right:20px"></el-input> <!-- <el-input v-model="listForm.currentRiskTypeList" style="width:80%;margin-right:20px"></el-input> --> <el-button type="primary">隐患清单库</el-button> <div style="display:inline-block;width:80%;margin-right:20px;border:1px solid #eee;padding:5px 10px;min-height:40px"> <span style="display:inline-block;margin-right:10px;line-height:15px;background-color:#1890FF;padding:5px 10px;color:#fff;" v-for="(item, index) in listForm.currentRiskTypeList" :key="index" >{{item.type || item.currentRiskType}}</span> </div> <el-button type="primary" @click="getPatrolLibrary" style="height:35px">隐患清单库</el-button> </el-form-item> </el-form-item> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '0'"> <el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '1'"> <el-table :data="listUserTabel" > <el-table :data="listUserTabel" empty-text="暂无数据,请先在‘基础信息’中选择岗位成员!"> <el-table-column type="index" label="序号" width="50"/> <el-table-column type="index" label="序号" width="50"/> <el-table-column label="姓名" align="center" prop="userName" width="140" :show-overflow-tooltip="true"/> <el-table-column label="姓名" align="center" prop="userName" width="140" :show-overflow-tooltip="true"/> <el-table-column label="工号" align="center" prop="nickName" width="140" :show-overflow-tooltip="true" /> <el-table-column label="状态" align="center" prop="status" width="140"> <el-table-column label="状态" align="center" prop="postName" width="140" :show-overflow-tooltip="true" /> <template slot-scope="scope"> <el-table-column label="巡查清单" align="center" prop="postName" :show-overflow-tooltip="true" /> <el-switch v-model="scope.row.status" @change="statusChange(scope.$index, $event)"> </el-switch> </template> </el-table-column> <el-table-column label="巡查清单" align="center" prop="postNameShow" :show-overflow-tooltip="true"> <template slot-scope="scope"> <el-button size="mini" type="text" v-for="(item, index) in scope.row.postNameShow" :key="index" >{{item.type || item.currentRiskType}}</el-button> </template> </el-table-column> <el-table-column label="操作" align="center" width="140"> <el-table-column label="操作" align="center" width="140"> <template slot-scope="scope"> <template slot-scope="scope"> <el-button <el-button size="mini" size="mini" type="text" type="text" icon="el-icon-edit" icon="el-icon-edit" @click="selectList(scope.row)" @click="selectList(scope.row, scope.$index)" >清单库选择</el-button> >清单库选择</el-button> </template> </template> </el-table-column> </el-table-column> </el-table> </el-table> </el-form-item> </el-form-item> <p> <span style="color: red;">系统提示:可根据工程进度调整巡查类型及内容。</span></p> <p> <span style="color: red;">系统提示:可根据实际情况任意增加或减少巡查类型及巡查内容。</span></p> </el-form> </el-form> </el-tab-pane> </el-tab-pane> </el-tabs> </el-tabs> <div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button> </div> </div> </el-dialog> </el-dialog> <el-dialog title="选择隐患清单库" :visible.sync="patrolLibraryOpen" width="60%" append-to-body> <el-table :data="libraryList" @selection-change="handleSelectionChange" ref="libraryListTabel" :key="isUpdate"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column label="场所位置" width="200" show-overflow-tooltip align="center" > <template slot-scope="scope">{{ scope.row.buildingName }}{{ scope.row.floorName }}{{ scope.row.roomName }}</template> </el-table-column> <el-table-column label="风险源" width="120" align="center" > <template slot-scope="scope">{{ scope.row.name }}</template> </el-table-column> <el-table-column label="辨识标准" width="120" show-overflow-tooltip align="center"> <template slot-scope="scope">{{ scope.row.referenceBasis }}</template> </el-table-column> <el-table-column label="存在部位" width="120" align="center"> <template slot-scope="scope">{{ scope.row.presenceLocation }}</template> </el-table-column> <el-table-column label="风险类型(GB6441)" width="120" show-overflow-tooltip align="center"> <template slot-scope="scope">{{ scope.row.type }}</template> </el-table-column> <el-table-column label="风险等级" width="120" align="center"> <template slot-scope="scope">{{ scope.row.level }}</template> </el-table-column> <el-table-column label="周期" width="120" align="center" prop="cycle"> <template slot-scope="scope"> <el-select v-model="scope.row.cycle" placeholder="请选择" @change="cycleSelChange"> <el-option v-for="(item, index) in cycleList" :key="index" :label="item.name" :value="item.cycle"> </el-option> </el-select> </template> </el-table-column> </el-table> <pagination v-show="libraryTotal > 0" :total="libraryTotal" :page.sync="libraryParams.pageNum" :limit.sync="libraryParams.pageSize" @pagination="getlibraryList" /> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="patrolLibrarySubmit">确 定</el-button> <el-button @click="patrolLibraryOpen = false">取 消</el-button> </div> </el-dialog> </div> </div> </template> </template> <script> <script> import { listCurrentRiskPost, userCurrentRiskPost, saveCurrentPost, getCurrentRiskPost, delCurrentRiskPost, addCurrentRiskPost, updateCurrentRiskPost } from "@/api/system/currentRiskPost"; import { listCurrentRiskPost, userCurrentRiskPost, getlibraryListFun, saveCurrentPost, delCurrentRiskPost, getCurrentRiskPatrol } from "@/api/system/currentRiskPost"; export default { export default { name: "projectPost", name: "projectPost", Loading @@ -178,12 +264,17 @@ export default { title: "", title: "", // 是否显示弹出层 // 是否显示弹出层 open: false, open: false, patrolLibraryOpen:false, // 查询参数 // 查询参数 queryParams: { queryParams: { pageNum: 1, pageNum: 1, pageSize: 9999, pageSize: 9999, riskPostName: null, riskPostName: null, }, }, libraryParams: { pageNum: 1, pageSize: 10, }, form:{}, form:{}, patrolTypeList:[],// 岗位类型 patrolTypeList:[],// 岗位类型 userList:[], userList:[], Loading @@ -195,9 +286,40 @@ export default { postState:[{ required: true, message: '请选择匹配模式', trigger: 'change' }] postState:[{ required: true, message: '请选择匹配模式', trigger: 'change' }] }, }, listForm:{//清单匹配 listForm:{//清单匹配 postState:'1' postState:'0', currentRiskTypeList:[] } , listUserTabel:[], libraryList:[], libraryTotal:0, currentRiskList:[], multipleSelection:[], cycleList:[ { name:'日查', cycle:'0' }, { name:'周查', cycle:'1' }, { name:'月查', cycle:'2' }, { name:'季查', cycle:'3' }, }, listUserTabel:[] { name:'年查', cycle:'4' }, ], isUpdate:false, postList:[], userId:'', userIndex:'' }; }; }, }, created() { created() { Loading Loading @@ -227,11 +349,18 @@ export default { cancel() { cancel() { this.open = false; this.open = false; this.reset(); this.reset(); this.postList = [] this.listForm.currentRiskTypeList = [] }, }, // 表单重置 // 表单重置 reset() { reset() { this.form = {} this.form = {} this.activeName = 'first' this.activeName = 'first' this.listForm = {//清单匹配 postState:'0', currentRiskTypeList:[] } this.listUserTabel = [] }, }, /** 搜索按钮操作 */ /** 搜索按钮操作 */ handleQuery() { handleQuery() { Loading Loading @@ -263,6 +392,7 @@ export default { row.userId = arr2 row.userId = arr2 } } this.form = row this.form = row this.listForm.postState = this.form.patrolType this.getUserList() this.getUserList() this.open = true; this.open = true; this.title = "修改现状风险岗位"; this.title = "修改现状风险岗位"; Loading @@ -275,10 +405,21 @@ export default { "projectId":this.$route.params.id, "projectId":this.$route.params.id, "riskPostCode":this.form.riskPostCode, "riskPostCode":this.form.riskPostCode, "riskPostName":this.form.riskPostName, "riskPostName":this.form.riskPostName, "patrolType":this.form.patrolType, "riskPostDesc":this.form.riskPostDesc, "riskPostDesc":this.form.riskPostDesc, "userId":this.form.userId.join(), "userId":this.form.userId.join(), "patrolType":this.listForm.postState, "list":this.postList } if (this.listForm.postState == '0') { // 一岗一人巡查模式 params.list = this.postList }else{ let arr = [] this.listUserTabel.forEach((item) => { arr = [...item.postName, ...arr] }) params.list = arr } } console.log('params==>>',params) if (this.form.id != null) { if (this.form.id != null) { params.id = this.form.id params.id = this.form.id saveCurrentPost(params).then(response => { saveCurrentPost(params).then(response => { Loading @@ -305,6 +446,160 @@ export default { this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功"); }).catch(() => {}); }).catch(() => {}); }, }, // 匹配模式radio radioChange(e){ if (e == '1') { this.listUserTabel = [] let arr = this.form.userId arr.forEach((item, index) => { let data = { userName: this.userList.find( i => i.userId == item).nickName, postName:[], postNameShow:[], userId:item, status:true } this.listUserTabel.push(data) }) console.log('this.listUserTabel==>>',this.listUserTabel) } }, // 一岗一人巡查模式 清单库 getPatrolLibrary(){ this.patrolLibraryOpen = true this.getlibraryList() }, getlibraryList(){ getlibraryListFun(this.libraryParams).then(response => { this.libraryList = response.rows; this.libraryList.forEach((item) => { item.cycle = '0' }) this.libraryTotal = response.total; }); }, // 选择清单库确定 patrolLibrarySubmit(){ this.postList = [] this.listForm.currentRiskTypeList = [] this.patrolLibraryOpen = false this.multipleSelection.forEach((item) => { if (this.listForm.postState == '0') { // 一岗一人巡查模式 let data = { id: item.id, patrolType: item.cycle, } this.postList.push(data) if(!this.listForm.currentRiskTypeList.some( items => items.type === item.type)){ this.listForm.currentRiskTypeList.push(item) } }else{ // 一岗多人巡查模式 let data = { id: item.id, patrolType: item.cycle, userId:this.userId, status:this.userStatus ? '0' : '1' } this.listUserTabel[this.userIndex].postName.push(data) if(!this.listUserTabel[this.userIndex].postNameShow.some( items => items.type === item.type)){ this.listUserTabel[this.userIndex].postNameShow.push(item) } } }) // console.log('listUserTabel==>>',this.listUserTabel) }, // 状态切换 statusChange(num, e){ // console.log('num==>>', num) this.listUserTabel.forEach((item, index) => { if (index == num) { item.postName.forEach((items) => { items.status = e ? '0' : '1' }) } }) console.log(',this.listUserTabel==>>',this.listUserTabel) }, // 一岗多人巡查模式 清单库 selectList(row, index){ // console.log('row==>>',row) this.patrolLibraryOpen = true this.userId = row.userId this.userIndex = index this.userStatus = row.status this.getlibraryList() }, // tabs切换 tabChange(tab, event){ // console.log('tab==>>',tab.name) if (tab.name == 'second' && this.title =='修改现状风险岗位' ) { //清单匹配 // 岗位用户巡查清单列表 this.listUserTabel = [] this.getCurrentRiskPatrol() }else{ this.listForm.postState = '0' } }, getCurrentRiskPatrol(){ this.listForm.currentRiskTypeList = [] let params = { postId: this.form.id, pageNum: 1, pageSize: 9999, } getCurrentRiskPatrol(params).then(response => { if (this.listForm.postState == '0') { // 一岗一人巡查模式 response.rows.forEach((item) => { let data = { id: item.currentRiskId, patrolType: item.patrolType, } this.postList.push(data) if(!this.listForm.currentRiskTypeList.some( items => items.currentRiskType === item.currentRiskType)){ this.listForm.currentRiskTypeList.push(item) } }) console.log('==>>',this.listForm.currentRiskTypeList) }else{ // 一岗多人巡查模式 let arr = this.form.nickName.split(',') arr.forEach((item, index) => { let data = { userName: item, postName:[], postNameShow:[], userId:this.userList.find( i => i.nickName == item).userId, status:'' } this.listUserTabel.push(data) }) for (const val of response.rows) { this.listUserTabel.forEach((item) => { if (item.userId == val.userId) { item.status = val.status == '0' ? true : false if (!item.postNameShow.some( items => items.currentRiskType === val.currentRiskType)) { item.postNameShow.push(val) } let data = { id: val.currentRiskId, patrolType: val.patrolType, userId:val.userId, status: val.status } item.postName.push(data) } }) } // console.log('this.listUserTabel==>>',this.listUserTabel) } }) }, handleSelectionChange(val){ this.multipleSelection = val; }, cycleSelChange(){ this.isUpdate = !this.isUpdate } } } }; }; </script> </script> Loading Loading @@ -399,4 +694,9 @@ export default { ::v-deep .el-form-item--medium .el-form-item__content{ ::v-deep .el-form-item--medium .el-form-item__content{ margin-left: 20px; margin-left: 20px; } } #currentRiskTypeList ::v-deep .el-form-item__content { display: flex; align-items: center; justify-content: space-between; } </style> </style>