diff --git a/pages/apply/subPages/SK/SK003Show.vue b/pages/apply/subPages/SK/SK003Show.vue index 0346229..bbfacae 100644 --- a/pages/apply/subPages/SK/SK003Show.vue +++ b/pages/apply/subPages/SK/SK003Show.vue @@ -249,87 +249,96 @@ }) }, loadData() { - // const json = {} - const orgId = uni.getStorageSync('orgId') - const json = initFilter(orgId, "", "") - extendRule(json, 'ID', 1, this.model.ID); - extendRule(json, 'TASK_ID', 1, this.TaskID); - extendIgnoreDataRule(json) - GetSKEnterpriseLibraryRecord(json).then(res => { - this.stepLoad = false - this.model = res; - this.model.ID = this.ID - this.model.EVALUATE_LEVELName = res.EVALUATE_LEVEL !== undefined ? this.enumsData['SKEvaluateLevelEnum'].find(item => item.code === res.EVALUATE_LEVEL).name : ''; - this.model.ENABLE_STATUSName = res.ENABLE_STATUS !== undefined ? this.enumsData['FMEnableStatusEnum'].find(item => item.code === res.ENABLE_STATUS).name : ''; - if (this.model.Nav_Departs && this.model.Nav_Departs.length > 0) { - this.model.Nav_Departs.map(item => { - item.DEPARTMENT_TYPEName = item.DEPARTMENT_TYPE !== undefined ? this.enumsData['SKDepartmentTypeEnum'].find(item1 => item1.code === item.DEPARTMENT_TYPE).name : ''; - }) - } - if (this.model.Nav_Posts && this.model.Nav_Posts.length > 0) { - this.model.Nav_Posts.map(item1 => { //辨识岗位 - if (item1.Nav_PostDetails && item1.Nav_PostDetails.length > 0) { - let areaShow = '' - item1.Nav_PostDetails.map(o => { - areaShow += o.Nav_Post.NAME + ' ' - }) - item1['Nav_PostDetailsName'] = areaShow - } else { - item1['Nav_PostDetailsName'] = '' - } - }) - } - if (this.model.Nav_Details && this.model.Nav_Details.length > 0) { - this.model.Nav_Details.map(item => { - if (item.Nav_DetailContents && item.Nav_DetailContents.length > 0) { - item.Nav_DetailContents.map(item1 => { - if (item1.Nav_DetailBasics && item1.Nav_DetailBasics.length > 0) { - let areaShow = '' - item1.Nav_DetailBasics.map(o => { - areaShow += o.Nav_Law.NAME + ' ' - }) - item1['Nav_DetailBasicsName'] = areaShow - } else { - item1['Nav_DetailBasicsName'] = '' - } - if (item1.Nav_DetailHiddens && item1.Nav_DetailHiddens.length > 0) { - item1.Nav_DetailHiddens.map(item2 => { - item2.HIDDEN_LEVELName = item2.HIDDEN_LEVEL !== undefined ? (item2.HIDDEN_LEVEL == 0 ? '一般' : '重大') : ''; - }) - } - if (item1.Nav_DetailDeparts && item1.Nav_DetailDeparts.length > 0) { - item1.Nav_DetailDeparts.map(item2 => { - const checkTypeItem = item2.CHECK_TYPE !== undefined ? - this.enumsData['SKDepartmentTypeEnum'].find(item => item.code === item2.CHECK_TYPE) : - null; - item2.CHECK_TYPEName = checkTypeItem ? checkTypeItem.name : ''; + const json1 = initFilter(this.ORG_ID) + extendRule(json1, 'ID', 1, this.model.ID); + getRequest(json1, "/SK/SKRiskIdentifyResult/GetDetail").then(res => { + const orgId = uni.getStorageSync('orgId') + const json = initFilter(orgId, "", "") + extendRule(json, 'PRODUCTION_UNIT_ID', 1, res.PRODUCTION_UNIT_ID); + extendRule(json, 'AREA_ID', 1, res.AREA_ID); + extendRule(json, 'TYPE_ID', 1, res.TYPE_ID); + extendRule(json, 'RISK_NAME', 1, res.RISK_NAME); + extendRule(json, 'RISK_DESCRIPTION', 1, res.RISK_DESCRIPTION); - const cycleItem = item2.CHECK_CYCLE !== undefined ? - this.enumsData['SKPLANCHECKFREQUENCYEnum'].find(item => item.code === item2.CHECK_CYCLE) : - null; - item2.CHECK_CYCLEName = cycleItem ? cycleItem.name : ''; - if (item2.Nav_DetailPosts && item2.Nav_DetailPosts.length > 0) { - let areaShow = '' - item2.Nav_DetailPosts.map(o => { - areaShow += o.Nav_Post.NAME + ' ' - }) - item2['Nav_DetailPostsName'] = areaShow - } else { - item2['Nav_DetailPostsName'] = '' - } - }) - } - }) - } + extendIgnoreDataRule(json) + GetSKEnterpriseLibraryRecord(json).then(res => { + this.stepLoad = false + this.model = res; + this.model.ID = this.ID + this.model.EVALUATE_LEVELName = res.EVALUATE_LEVEL !== undefined ? this.enumsData['SKEvaluateLevelEnum'].find(item => item.code === res.EVALUATE_LEVEL).name : ''; + this.model.ENABLE_STATUSName = res.ENABLE_STATUS !== undefined ? this.enumsData['FMEnableStatusEnum'].find(item => item.code === res.ENABLE_STATUS).name : ''; + if (this.model.Nav_Departs && this.model.Nav_Departs.length > 0) { + this.model.Nav_Departs.map(item => { + item.DEPARTMENT_TYPEName = item.DEPARTMENT_TYPE !== undefined ? this.enumsData['SKDepartmentTypeEnum'].find(item1 => item1.code === item.DEPARTMENT_TYPE).name : ''; + }) + } + if (this.model.Nav_Posts && this.model.Nav_Posts.length > 0) { + this.model.Nav_Posts.map(item1 => { //辨识岗位 + if (item1.Nav_PostDetails && item1.Nav_PostDetails.length > 0) { + let areaShow = '' + item1.Nav_PostDetails.map(o => { + areaShow += o.Nav_Post.NAME + ' ' + }) + item1['Nav_PostDetailsName'] = areaShow + } else { + item1['Nav_PostDetailsName'] = '' + } + }) + } + if (this.model.Nav_Details && this.model.Nav_Details.length > 0) { + this.model.Nav_Details.map(item => { + if (item.Nav_DetailContents && item.Nav_DetailContents.length > 0) { + item.Nav_DetailContents.map(item1 => { + if (item1.Nav_DetailBasics && item1.Nav_DetailBasics.length > 0) { + let areaShow = '' + item1.Nav_DetailBasics.map(o => { + areaShow += o.Nav_Law.NAME + ' ' + }) + item1['Nav_DetailBasicsName'] = areaShow + } else { + item1['Nav_DetailBasicsName'] = '' + } + if (item1.Nav_DetailHiddens && item1.Nav_DetailHiddens.length > 0) { + item1.Nav_DetailHiddens.map(item2 => { + item2.HIDDEN_LEVELName = item2.HIDDEN_LEVEL !== undefined ? (item2.HIDDEN_LEVEL == 0 ? '一般' : '重大') : ''; + }) + } + if (item1.Nav_DetailDeparts && item1.Nav_DetailDeparts.length > 0) { + item1.Nav_DetailDeparts.map(item2 => { + const checkTypeItem = item2.CHECK_TYPE !== undefined ? + this.enumsData['SKDepartmentTypeEnum'].find(item => item.code === item2.CHECK_TYPE) : + null; + item2.CHECK_TYPEName = checkTypeItem ? checkTypeItem.name : ''; + + const cycleItem = item2.CHECK_CYCLE !== undefined ? + this.enumsData['SKPLANCHECKFREQUENCYEnum'].find(item => item.code === item2.CHECK_CYCLE) : + null; + item2.CHECK_CYCLEName = cycleItem ? cycleItem.name : ''; + if (item2.Nav_DetailPosts && item2.Nav_DetailPosts.length > 0) { + let areaShow = '' + item2.Nav_DetailPosts.map(o => { + areaShow += o.Nav_Post.NAME + ' ' + }) + item2['Nav_DetailPostsName'] = areaShow + } else { + item2['Nav_DetailPostsName'] = '' + } + }) + } + }) + } - }) - } + }) + } - this.stepsPage = res.STATUS == 0 ? 0 : 1 + this.stepsPage = res.STATUS == 0 ? 0 : 1 + }) + this.isLoadOK = true }) - this.isLoadOK = true + // const json = {} + }, gotoCheck(detailData) { uni.setStorageSync('detailData', detailData); diff --git a/pages/apply/subPages/SK/riskSafeIdenEdit.vue b/pages/apply/subPages/SK/riskSafeIdenEdit.vue index 8a23a23..89220e9 100644 --- a/pages/apply/subPages/SK/riskSafeIdenEdit.vue +++ b/pages/apply/subPages/SK/riskSafeIdenEdit.vue @@ -458,7 +458,7 @@ selectedItems.forEach(enterpriseItem => { // 检查是否与现有数据重复 - const isDuplicate = this.dataModel.Nav_Details.some(existingItem => + const isDuplicate = this.dataModel.Nav_Details.filter(i => !i.IS_DELETED).some(existingItem => existingItem.AREA_ID === (enterpriseItem.AREA_ID || '') && existingItem.PRODUCTION_UNIT_ID === (enterpriseItem.PRODUCTION_UNIT_ID || '') && existingItem.RISK_NAME === (enterpriseItem.RISK_NAME || '') diff --git a/pages/apply/subPages/SK/riskSafeIdenResEdit.vue b/pages/apply/subPages/SK/riskSafeIdenResEdit.vue index 47d1204..05be688 100644 --- a/pages/apply/subPages/SK/riskSafeIdenResEdit.vue +++ b/pages/apply/subPages/SK/riskSafeIdenResEdit.vue @@ -28,13 +28,9 @@ - - - - - + - + 附件: @@ -53,22 +49,22 @@ 辨识内容 - + - + {{index+1+'.辨识区域:'+item.Nav_Area.NAME}} - - - + + + - + @@ -78,64 +74,94 @@ - - - + + - - - - - - - - - - - - - - - - + + + + 新增管控措施 + + + + + + + + + + + + + + + + + + 新增辨识层级 + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + - - + + 新增检查区域 + 导入企业库内容 + 上一步 提交 - + + @@ -151,7 +177,8 @@ guid, initFilter, initFilterGroup, - handleOriginalArray + handleOriginalArray, + transformData } from '../../../../utils/common' import { FMProductionUnit, @@ -162,12 +189,18 @@ MineTypeIndex, MineTypeName } from '../../../../utils/enums.js' + import { + getEnum, + GetEnumAnyOrder + } from '../../../../services/common'; import { EvaIdentifyResGet, IdentifyResFullUpdate, getUserLists, GetSKRequestInfo, GetRiskAreaInfo, + GetDepartmentInfo, + GetPostOrderPaged, GetRiskTypeInfo, GetRiskNameInfo } from '../../../../services/apply/subPages/SK/SKServices.js' @@ -196,6 +229,19 @@ stepLoad: true, UnitLists: [], UnitDefaultIndex: [0], + selectorInfo: { + name: 'user', + isMultiple: false, + showPopup: false, + totalCount: 0, + title: '考核结果选择', + dataItem: {}, + index: 0, + columns: [], + dataLists: [], + defaultText: '', + defaultChecked: [] + }, dataModel: { YEAR: '', START_DATE: '', @@ -204,8 +250,8 @@ NAME: '' }, RequireName: '', - IDENTIFY_EVALUATION_PLAN_ID:null, - IDENTIFY_ID:null, + IDENTIFY_EVALUATION_PLAN_ID: null, + IDENTIFY_ID: null, Nav_Files: [], Nav_Details: [{ showPack: false, @@ -214,19 +260,15 @@ NAME: '' }, RISK_NAME: '', - Nav_RiskName: { - NAME: '' - }, RISK_DESCRIPTION: '', Nav_Type: { NAME: '' }, - DEPARTMENT_TYPE:'', - IDENTIFY_DEPARTMENT:'', - IDENTIFY_POST:'', + DEPARTMENT_TYPE: '', + IDENTIFY_DEPARTMENT: '', + IDENTIFY_POST: '', MEASURE: '', EMERGENCY: '', - ENABLE_STATUS: '', MARK: '', }] }, @@ -239,8 +281,8 @@ NAME: '' }, RequireName: '', - IDENTIFY_EVALUATION_PLAN_ID:null, - IDENTIFY_ID:null, + IDENTIFY_EVALUATION_PLAN_ID: null, + IDENTIFY_ID: null, Nav_Files: [], Nav_Details: [{ MineType: '', @@ -248,19 +290,15 @@ NAME: '' }, RISK_NAME: '', - Nav_RiskName: { - NAME: '' - }, RISK_DESCRIPTION: '', Nav_Type: { NAME: '' }, - DEPARTMENT_TYPE:'', - IDENTIFY_DEPARTMENT:'', - IDENTIFY_POST:'', + DEPARTMENT_TYPE: '', + IDENTIFY_DEPARTMENT: '', + IDENTIFY_POST: '', MEASURE: '', EMERGENCY: '', - ENABLE_STATUS: '', }] }, @@ -270,22 +308,39 @@ stepsPageList: 0, TaskID: '', nowName: '', + nowItem: '', nowIndex: 0, + enumsData: {}, // 存储所有枚举数据(键:枚举名称,值:处理后的枚举列表) + enumsText: {} // 存储枚举文本列表(用于下拉选择等场景) } }, onLoad(option) { this.TaskID = option.taskID ? option.taskID : ''; this.ID = option.ID ? option.ID : ''; - this.loadData() + this.fetchEnums(['SKMarkEnum', 'SKEnableStatusEnum', 'SKDepartmentTypeEnum']); }, methods: { + fetchEnums(enumNames) { + var dataParm = { + 'name': enumNames.join('|') + } + GetEnumAnyOrder(dataParm).then(res => { + let newd = transformData(res, enumNames) + this.enumsData = newd[0]; + // 生成文本列表(如需要) + this.enumsText = newd[1] + this.loadData(); + }) + }, loadData() { // const json = {} const orgId = uni.getStorageSync('orgId') const json = initFilter(orgId, "", "") extendRule(json, 'ID', 1, this.ID); extendInclude(json, 'Nav_Require'); + extendInclude(json, 'Nav_Requires'); + extendInclude(json, 'Nav_Requires.Nav_Require'); extendInclude(json, 'Nav_Files.Nav_ImgFile'); extendInclude(json, 'Nav_Details'); extendInclude(json, 'Nav_Details.Nav_Area'); @@ -300,86 +355,278 @@ this.stepsPage = res.STATUS == 0 ? 0 : res.STATUS == 20 ? 1 : 2 this.dataModel.START_DATE = uni.$u.timeFormat(res.START_DATE, 'yyyy-mm-dd') this.dataModel.END_DATE = uni.$u.timeFormat(res.END_DATE, 'yyyy-mm-dd') - this.dataModel.RequireName = res.Nav_Require ? res.Nav_Require.NAME : { - NAME: '' - }, - this.dataModel.Nav_Require = res.Nav_Require ? res.Nav_Require : { - NAME: '' - }, + let Nav_RequiresName = '' + if (this.dataModel.Nav_Requires && this.dataModel.Nav_Requires.length > 0) { + this.dataModel.Nav_Requires.map(item => { + if (item.Nav_Require && item.Nav_Require.NAME !== null) { + Nav_RequiresName += item.Nav_Require.NAME + ' '; + } + }) + } + this.dataModel.Nav_RequiresName = Nav_RequiresName this.dataModel.Nav_Details.map(item => { item['showPack'] = false - item.ENABLE_STATUS = item.ENABLE_STATUS == 0 ? '有效' : '无效' - item.MARK = item.MARK == 0 ? '自动带出' : item.MARK == 10 ? '新增' : '修改' - item.Nav_RiskName = item.Nav_RiskName? item.Nav_RiskName: { - NAME: ''} + item.MARK_NAME = item.MARK !== undefined ? this.enumsData['SKMarkEnum'].find(item1 => item1.code === item.MARK).name : ''; + + if (item.Nav_DetailPosts && item.Nav_DetailPosts.length > 0) { + item.Nav_DetailPosts.map(item1 => { + item1.DEPARTMENT_TYPE_NAME = item1.DEPARTMENT_TYPE !== undefined ? this.enumsData['SKDepartmentTypeEnum'].find(item2 => item2.code === item1.DEPARTMENT_TYPE).name : + ''; + if (item1.Nav_ResultPostDets && item1.Nav_ResultPostDets.length > 0) { + let Nav_ResultPostDetsName = '' + if (item1.Nav_ResultPostDets && item1.Nav_ResultPostDets.length > 0) { + item1.Nav_ResultPostDets.map(item2 => { + if (item2.Nav_Post && item2.Nav_Post.NAME !== null) { + Nav_ResultPostDetsName += item2.Nav_Post.NAME + ' '; + } + }) + } + item1.Nav_ResultPostDetsName = Nav_ResultPostDetsName + } + }) + + } }) this.stepLoad = false }) }, - handlePack(index) { - this.dataModel.Nav_Details[index].showPack = this.dataModel.Nav_Details[index].showPack == false ? true : false - this.dataModel.Nav_Details = [...this.dataModel.Nav_Details] + handleDelRowMeasures(item, item1) { + item1.IS_DELETED = true + this.$forceUpdate() + }, + handleDelRowPost(item, item1) { + item1.IS_DELETED = true + this.$forceUpdate() + }, + handleNewMeasures(item) { + item.Nav_DetailMeasures.unshift({ + NUM: 1, + ID: guid(), + RISK_IDENTIFY_DETAIL_ID: item.ID, + MEASURE: '', + IS_DELETED: false, + }) + }, + handleNewPost(item) { + item.Nav_DetailPosts.unshift({ + DEPARTMENT_TYPE: '', + ID: guid(), + RISK_IDENTIFY_DETAIL_ID: item.ID, + Nav_Department: { + NAME: '' + }, + DEPARTMENT_ID: '', + Nav_ResultPostDets: [], + IS_DELETED: false, + }) + }, + showDetail(id) { + uni.navigateTo({ + url: 'SK003Show?ID=' + id + '&taskID=' + this.TaskID + }) + }, + handlePack(item) { + item.showPack = item.showPack == false ? true : false + this.$forceUpdate() }, cancelUnit() { this.showPopupUnit = false }, - handleChangeUnit(index, name) { - this.nowIndex = [index, name] + handleChangeUnit(item, name) { + this.nowName = name + this.nowItem = item if (name == 'MinType') { const json = initFilter(this.ORG_ID) getRequest(json, "/FM/UserProductionUnitSet/OrderPaged").then(res => { this.UnitLists = [res] }) - } else if (this.nowIndex[1] == 'ENABLE_STATUS') { - this.UnitLists = [SKEffective] } else { - this.UnitLists = [SKMarkEnum] + this.UnitLists = [this.enumsData[name]] } this.showPopupUnit = true }, confirmUnit(e) { - if (this.nowIndex[1] == 'MinType') { - this.dataModel.Nav_Details[this.nowIndex[0]].Nav_ProductionUnit = e.value[0] - this.dataModel.Nav_Details[this.nowIndex[0]].PRODUCTION_UNIT_ID = e.value[0].ID - } else if (this.nowIndex[1] == 'ENABLE_STATUS') { - this.dataModel.Nav_Details[this.nowIndex[0]].ENABLE_STATUS = e.value[0] + console.log(e, '999') + if (this.nowName == 'MinType') { + this.nowItem.Nav_ProductionUnit = e.value[0] + this.nowItem.PRODUCTION_UNIT_ID = e.value[0].ID } else { - this.dataModel.Nav_Details[this.nowIndex[0]].MARK = e.value[0] + this.nowItem.DEPARTMENT_TYPE = e.value[0].code + this.nowItem.DEPARTMENT_TYPE_NAME = e.value[0].name } this.showPopupUnit = false + }, + async handleShowSheet(p) { + const orgId = uni.getStorageSync('orgId') + const json = initFilter(orgId, "", "", 0, p.pageIndex ?? 1) + let dataSelect = [] + // this.selectorInfo.defaultChecked = [] + var defaultChecked = [] + this.selectorInfo.isMultiple = false + if (p.val) { + extendRule(json, 'NAME', 9, p.val); + } + json.Limit = 20 + if (p.pageIndex) { + json.Start = (p.pageIndex - 1) * json.Limit; + } + json.Sort = "NAME" + if (p.name == "Nav_Area") { + dataSelect = await GetRiskAreaInfo(json).then(res => { + console.log(res, '99') + this.selectorInfo.totalCount = res.TotalCount + if (res.Data != undefined && res.Data.length > 0) { + for (let i = 0; i < res.Data.length; i++) { + res.Data[i].name = res.Data[i].NAME + } + } + return res.Data + }) + } else if (p.name == "Nav_Type") { + dataSelect = await GetRiskTypeInfo(json).then(res => { + if (res.Data != undefined && res.Data.length > 0) { + for (let i = 0; i < res.Data.length; i++) { + res.Data[i].name = res.Data[i].NAME + } + } + return res.Data + }) + } else if (p.name == "Nav_Department") { + dataSelect = await GetDepartmentInfo(json).then(res => { + if (res.Data != undefined && res.Data.length > 0) { + for (let i = 0; i < res.Data.length; i++) { + res.Data[i].name = res.Data[i].NAME + } + } + return res.Data + }) + } else if (p.name == "Nav_ResultPostDets") { + this.selectorInfo.isMultiple = true + if (p.itemData.DEPARTMENT_ID) { + extendRule(json, 'DEPARTMENT_ID', 1, p.itemData.DEPARTMENT_ID); + } + json.SelectField = ["ID", "NAME", "NAME"] + dataSelect = await GetPostOrderPaged(json).then(res => { + if (res.Data != undefined && res.Data.length > 0) { + for (let i = 0; i < res.length; i++) { + res[i].name = res.Data[i].NAME + res[i].code = res.Data[i].CODE + } + } + return res.Data + }) + if (p.itemData.Nav_ResultPostDets && p.itemData.Nav_ResultPostDets.length > 0) { + // this.selectorInfo.defaultChecked = [] + + p.itemData.Nav_ResultPostDets.filter(i => !i.IS_DELETED).forEach(e => { + if (e.Nav_Post != null && e.Nav_Post.NAME != null) + defaultChecked.push(e.Nav_Post) + }) + } else { + defaultChecked = null + } + } + if (defaultChecked == null) + defaultChecked = [] + if (dataSelect.length) { + this.selectorInfo = { + itemData: p.itemData != undefined ? p.itemData : this.selectorInfo + .itemData, //itemData: p.itemData, 搜索的时候 p.itemData为空 赋值修改 为 她自己本身 this.selectorInfo.itemData + isMultiple: this.selectorInfo.isMultiple, + totalCount: this.selectorInfo.totalCount, + showPopup: true, + title: p.title, + name: p.name, + dataLists: dataSelect, + defaultChecked: defaultChecked + } + } else { + // 暂无数据 + } + }, + //数据加载 + handleSearch(val, pageIndex) { + var p = { + name: this.selectorInfo.name, + title: this.selectorInfo.title, + val: val, + pageIndex: pageIndex, + index: this.selectorInfo.index + } + this.handleShowSheet(p) + }, + + handleSelected(e) { + this.selectorInfo.showPopup = false + console.log(e, '999') + if (this.selectorInfo.name == 'Nav_Area') { + + this.selectorInfo.itemData.Nav_Area = e + this.selectorInfo.itemData.AREA_ID = e.ID + } else if (this.selectorInfo.name == 'Nav_Type') { + this.selectorInfo.itemData.Nav_Type = e + this.selectorInfo.itemData.TYPE_ID = e.ID + } else if (this.selectorInfo.name == 'Nav_Department') { + this.selectorInfo.itemData.Nav_Department = e + this.selectorInfo.itemData.DEPARTMENT_ID = e.ID + } else if (this.selectorInfo.name == 'Nav_ResultPostDets') { + let listArea = [] + let areaShow = '' + if (e.length > 0) { + e.forEach((item, i) => { + if (item.name != null || item.NAME != null) { + if (i > 0) { + areaShow += ' ' + } + listArea.push({ + ID: guid(), + RISK_IDENTIFY_DETAIL_RESULT_POST_ID: this.selectorInfo.itemData.ID, + POST_ID: item.ID, + ORG_ID: item.ORG_ID, + Nav_Post: item + }) + areaShow += item.NAME + } + }) + } + this.selectorInfo.itemData.Nav_ResultPostDets = listArea + this.selectorInfo.itemData.Nav_ResultPostDetsName = areaShow + } + + }, stepAdd() { - if(!this.dataModel.YEAR){ + if (!this.dataModel.YEAR) { uni.showToast({ title: '年度不能为空', icon: 'none' }) return } - if(!this.dataModel.START_DATE){ + if (!this.dataModel.START_DATE) { uni.showToast({ title: '辨识开始时间不能为空', icon: 'none' }) return } - if(!this.dataModel.END_DATE){ + if (!this.dataModel.END_DATE) { uni.showToast({ title: '辨识结束时间不能为空', icon: 'none' }) return } - if(!this.dataModel.Nav_Require.NAME){ + if (!this.dataModel.Nav_Require.NAME) { uni.showToast({ title: '辨识要求不能为空', icon: 'none' }) return } - + this.stepsPageList = this.stepsPageList + 1 }, stepReduce() { @@ -388,35 +635,161 @@ handleNewCheckContent() { this.dataModel.Nav_Details.push({ showPack: false, - Nav_ProductionUnit:{ - NAME: '' + Nav_ProductionUnit: { + NAME: '' }, - PRODUCTION_UNIT_ID:'', + PRODUCTION_UNIT_ID: '', Nav_Area: { NAME: '' }, ORG_ID: this.ORG_ID, RISK_NAME: '', - Nav_RiskName:{ - NAME: '' - }, RISK_DESCRIPTION: '', Nav_Type: { NAME: '' }, - DEPARTMENT_TYPE:'', - IDENTIFY_DEPARTMENT:'', - IDENTIFY_POST:'', + DEPARTMENT_TYPE: '', + IDENTIFY_DEPARTMENT: '', + IDENTIFY_POST: '', MEASURE: '', EMERGENCY: '', - ENABLE_STATUS: '有效', + Nav_DetailMeasures: [], + Nav_DetailPosts: [], + MARK: this.enumsData['SKMarkEnum'].find(item1 => item1.name === '新增').code, + MARK_NAME: this.enumsData['SKMarkEnum'].find(item1 => item1.name === '新增').name, + ID: guid() + }) this.dataModel.Nav_Details = [...this.dataModel.Nav_Details] }, - handleDelRowBefore(index) { - this.showDelModalIndex = index - this.nowIndex = index + handleNewCheckList() { + // 将现有数据传递给选择页面用于去重判断 + const existingData = this.dataModel.Nav_Details.map(item => ({ + PRODUCTION_UNIT_ID: item.PRODUCTION_UNIT_ID, + AREA_ID: item.AREA_ID, + RISK_NAME: item.RISK_NAME + })) + + uni.navigateTo({ + url: `/pages/apply/subPages/SK/enterprise/enterpriseLibarary?existingData=${encodeURIComponent(JSON.stringify(existingData))}`, + events: { + // 监听页面返回的数据 + confirm: (data) => { + this.handleEnterpriseSelection(data.selectedItems) + } + } + }) + + }, + // 新增处理企业库选择结果的方法 + handleEnterpriseSelection(selectedItems) { + if (!selectedItems || selectedItems.length === 0) return + + const newDetails = [] + const duplicateItems = [] + + selectedItems.forEach(enterpriseItem => { + // 检查是否与现有数据重复 + const isDuplicate = this.dataModel.Nav_Details.filter(i => !i.IS_DELETED).some(existingItem => + existingItem.AREA_ID === (enterpriseItem.AREA_ID || '') && + existingItem.PRODUCTION_UNIT_ID === (enterpriseItem.PRODUCTION_UNIT_ID || '') && + existingItem.RISK_NAME === (enterpriseItem.RISK_NAME || '') + ) + + if (isDuplicate) { + duplicateItems.push({ + 生产单元: enterpriseItem.Nav_ProductionUnit?.NAME || '', + 辨识区域: enterpriseItem.Nav_Area?.NAME || '', + 风险名称: enterpriseItem.RISK_NAME || '' + }) + return + } + const convertedMeasures = (enterpriseItem.Nav_Details || []) + .map((item, index) => ({ + ...item, + MEASURE: item.MEASURES_NAME, // 措施名称 + })) + + const convertedItem = { + showPack: false, + PRODUCTION_UNIT_ID: enterpriseItem.PRODUCTION_UNIT_ID || '', + Nav_ProductionUnit: enterpriseItem.Nav_ProductionUnit || { + NAME: '' + }, + AREA_ID: enterpriseItem.AREA_ID || '', + Nav_Area: enterpriseItem.Nav_Area || { + NAME: '' + }, + RISK_NAME: enterpriseItem.RISK_NAME || '', + Nav_DetailMeasures: convertedMeasures, + Nav_DetailPosts: [], + RISK_DESCRIPTION: enterpriseItem.RISK_DESCRIPTION || '', + TYPE_ID: enterpriseItem.TYPE_ID || '', + Nav_Type: enterpriseItem.Nav_Type || { + NAME: '' + }, + MEASURE: enterpriseItem.MEASURE || '', + + EMERGENCY: enterpriseItem.EMERGENCY || '', + MARK: this.enumsData['SKMarkEnum'].find(item1 => item1.name === '新增').code, + MARK_NAME: this.enumsData['SKMarkEnum'].find(item1 => item1.name === '新增').name, + ORG_ID: this.ORG_ID, + ID: guid() + } + newDetails.push(convertedItem) + }) + // 处理重复项提示 + if (duplicateItems.length > 0) { + const duplicateCount = duplicateItems.length + let message = '' + if (duplicateCount === 1) { + const dup = duplicateItems[0] + message = `以下数据已存在,无法重复导入:\n生产单元:${dup.生产单元}\n辨识区域:${dup.辨识区域}\n风险名称:${dup.风险名称}` + } else { + message = `有 ${duplicateCount} 条数据已存在,无法重复导入:\n` + duplicateItems.slice(0, 3).forEach((dup, i) => { + message += `${i+1}. ${dup.生产单元} / ${dup.辨识区域} / ${dup.风险名称}\n` + }) + if (duplicateCount > 3) { + message += `...等共 ${duplicateCount} 条` + } + } + setTimeout(() => { + uni.showModal({ + title: '重复数据提示', + content: message, + showCancel: false, + confirmText: '知道了' + }) + }, 100) // 延迟100毫秒 + } + + if (newDetails.length > 0) { + this.dataModel.Nav_Details.push(...newDetails) + setTimeout(() => { + uni.showToast({ + title: `成功导入 ${newDetails.length} 条数据${duplicateItems.length > 0 ? `,跳过 ${duplicateItems.length} 条重复数据` : ''}`, + icon: 'success', + duration: 2000 + }) + }, 100) + + } else if (duplicateItems.length > 0) { + setTimeout(() => { + uni.showToast({ + title: `所选数据均重复,未导入任何内容`, + icon: 'none', + duration: 2000 + }) + }, 100) + } + }, + + handleDelRowBefore(item) { + item.IS_DELETED = true + this.$forceUpdate() + }, @@ -449,10 +822,11 @@ this.showPopupRecitifyDate = false }, - handleChangeStep(index, name) { + handleChangeStep(item, name) { this.currentOperateStep = {} this.showPopupStep = true - this.nowIndex = [index, name] + this.nowName = name + this.nowItem = item this.handleSearchStep('init') }, handleClosePopupStep() { @@ -460,9 +834,10 @@ // this.showPopupCertificate = false }, handleSearchStep(val, pageIndex) { - let requestInfo = this.nowIndex[1] == 'demand' ? GetSKRequestInfo : this.nowIndex[1] == 'Area' ? GetRiskAreaInfo : this.nowIndex[1] == 'RiskName' ? GetRiskNameInfo:GetRiskTypeInfo + let requestInfo = this.nowName == 'Area' ? GetRiskAreaInfo : this.nowName == 'RiskName' ? GetRiskNameInfo : this.nowName == 'Category' ? GetRiskTypeInfo : this.nowName == 'Nav_ResultPostDets' ? + GetPostOrderPaged : GetDepartmentInfo const orgId = uni.getStorageSync('orgId') - const json = initFilter(orgId, "", "",0, pageIndex ?? 1) + const json = initFilter(orgId, "", "", 0, pageIndex ?? 1) json.Limit = 20 if (pageIndex) { json.Start = (pageIndex - 1) * json.Limit; @@ -472,7 +847,7 @@ extendGroupRule(tempGroup, 'NAME', 9, val) extendFilterGroup(json, tempGroup); } - + requestInfo(json).then(res => { // if (res.IsSuccessful) { this.stepLists = (res.Data || res).map(i => { @@ -489,18 +864,17 @@ }, handleSelectedStep(val) { - if (this.nowIndex[1] == 'demand') { + if (this.nowName == 'demand') { this.dataModel.Nav_Require.NAME = val.NAME this.dataModel.REQUIRE_ID = val.ID this.dataModel.RequireName = val.NAME - } else if (this.nowIndex[1] == 'Area') { + } else if (this.nowName == 'Area') { this.dataModel.Nav_Details[this.nowIndex[0]].Nav_Area.NAME = val.NAME this.dataModel.Nav_Details[this.nowIndex[0]].AREA_ID = val.ID - } else if (this.nowIndex[1] == 'RiskName') { + } else if (this.nowName == 'RiskName') { this.dataModel.Nav_Details[this.nowIndex[0]].Nav_RiskName.NAME = val.NAME this.dataModel.Nav_Details[this.nowIndex[0]].RISK_NAME_ID = val.ID - } - else { + } else { this.dataModel.Nav_Details[this.nowIndex[0]].Nav_Type.NAME = val.NAME this.dataModel.Nav_Details[this.nowIndex[0]].TYPE_ID = val.ID } @@ -509,25 +883,25 @@ }, submit() { - let i=1 - for (let item of this.dataModel.Nav_Details) { + let i = 1 + for (let item of this.dataModel.Nav_Details.filter(i => !i.IS_DELETED)) { if (!item.PRODUCTION_UNIT_ID) { uni.showToast({ - title: '顺序'+i+'生产单元不能为空', + title: '顺序' + i + '生产单元不能为空', icon: 'none' }) return } if (!item.Nav_Area.NAME) { uni.showToast({ - title: '顺序'+i+'辨识区域不能为空', + title: '顺序' + i + '辨识区域不能为空', icon: 'none' }) return } if (!item.RISK_NAME) { uni.showToast({ - title: '顺序'+i+'风险名称不能为空', + title: '顺序' + i + '风险名称不能为空', icon: 'none' }) return @@ -541,54 +915,63 @@ // } if (!item.RISK_DESCRIPTION) { uni.showToast({ - title: '顺序'+i+'风险描述不能为空', + title: '顺序' + i + '风险描述不能为空', icon: 'none' }) return } if (!item.Nav_Type.NAME) { uni.showToast({ - title: '顺序'+i+'风险类别不能为空', + title: '顺序' + i + '风险类别不能为空', icon: 'none' }) return } i++ } + console.log(this.dataModel, 'this.dataModel') - // this.model = this.dataModel + this.model = this.dataModel this.model.ORG_ID = this.ORG_ID - let arr = [] + delete this.model.Nav_ApplyDepartment + delete this.model.Nav_ApplyUser + delete this.model.Nav_Require + delete this.model.Nav_RequiresName - this.dataModel.Nav_Details.map(item => { - arr.push({ - PRODUCTION_UNIT_ID: item.PRODUCTION_UNIT_ID, - AREA_ID: item.AREA_ID, - RISK_NAME: item.RISK_NAME, - RISK_NAME_ID: item.RISK_NAME_ID, - RISK_DESCRIPTION: item.RISK_DESCRIPTION, - TYPE_ID: item.TYPE_ID, - DEPARTMENT_TYPE:item.DEPARTMENT_TYPE, - IDENTIFY_DEPARTMENT:item.IDENTIFY_DEPARTMENT, - IDENTIFY_POST:item.IDENTIFY_POST, - MEASURE: item.MEASURE, - EMERGENCY: item.EMERGENCY, - ENABLE_STATUS: !item.ENABLE_STATUS ? 0 : item.ENABLE_STATUS == '有效' ? 0 : 10, - }) + // let arr = [] + + this.model.Nav_Details.map(item => { + delete item.Nav_Area + delete item.Nav_ProductionUnit + delete item.Nav_Type + delete item.MARK_NAME + delete item.showPack + if (item.Nav_DetailPosts && item.Nav_DetailPosts.length > 0) { + item.Nav_DetailPosts.map(item1 => { + delete item1.Nav_Department + delete item1.DEPARTMENT_TYPE_NAME + delete item1.Nav_ResultPostDetsName + if (item1.Nav_ResultPostDets && item1.Nav_ResultPostDets.length > 0) { + item1.Nav_ResultPostDets.map(item2 => { + delete item2.Nav_Post + }) + } + }) + } }) - this.model = { - ORG_ID: this.ORG_ID, - YEAR: this.dataModel.YEAR, - START_DATE: this.dataModel.START_DATE, - END_DATE: this.dataModel.END_DATE, - REQUIRE_ID: this.dataModel.REQUIRE_ID, - RequireName: this.dataModel.RequireName, - IDENTIFY_EVALUATION_PLAN_ID:this.dataModel.IDENTIFY_EVALUATION_PLAN_ID, - IDENTIFY_ID:this.dataModel.IDENTIFY_ID, - Nav_Files: this.dataModel.Nav_Files, - Nav_Details: arr - } + // this.model = { + // ORG_ID: this.ORG_ID, + // YEAR: this.dataModel.YEAR, + // START_DATE: this.dataModel.START_DATE, + // END_DATE: this.dataModel.END_DATE, + // REQUIRE_ID: this.dataModel.REQUIRE_ID, + // RequireName: this.dataModel.RequireName, + // IDENTIFY_EVALUATION_PLAN_ID: this.dataModel.IDENTIFY_EVALUATION_PLAN_ID, + // IDENTIFY_ID: this.dataModel.IDENTIFY_ID, + // Nav_Files: this.dataModel.Nav_Files, + // Nav_Details: arr + // } this.model.ID = this.ID this.model.TaskID = this.TaskID this.model.PUBLISH = "SaveAndNotify"; diff --git a/pages/apply/subPages/SK/riskSafeIdenResShow.vue b/pages/apply/subPages/SK/riskSafeIdenResShow.vue index 05db155..62705b0 100644 --- a/pages/apply/subPages/SK/riskSafeIdenResShow.vue +++ b/pages/apply/subPages/SK/riskSafeIdenResShow.vue @@ -38,7 +38,7 @@ - + 附件: @@ -56,8 +56,8 @@ {{index+1+'.辨识区域:'+item.Nav_Area.NAME}} - - + + @@ -78,26 +78,54 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -121,7 +149,12 @@ extendRule, extendIgnoreDataRule, initFilter, + transformData } from '../../../../utils/common' + import { + getEnum, + GetEnumAnyOrder + } from '../../../../services/common'; import { MineTypeName } from '../../../../utils/enums.js' @@ -218,6 +251,8 @@ TaskID: '', nowName: '', nowIndex: 0, + enumsData: {}, // 存储所有枚举数据(键:枚举名称,值:处理后的枚举列表) + enumsText: {} // 存储枚举文本列表(用于下拉选择等场景) } }, @@ -233,9 +268,21 @@ ...this.$store.state.auditModel, TaskID: option.taskID ? option.taskID : '' } - this.loadData() + this.fetchEnums(['SKMarkEnum', 'SKEnableStatusEnum', 'SKDepartmentTypeEnum']); }, methods: { + fetchEnums(enumNames) { + var dataParm = { + 'name': enumNames.join('|') + } + GetEnumAnyOrder(dataParm).then(res => { + let newd = transformData(res, enumNames) + this.enumsData = newd[0]; + // 生成文本列表(如需要) + this.enumsText = newd[1] + this.loadData(); + }) + }, loadData() { // const json = {} const orgId = uni.getStorageSync('orgId') @@ -262,21 +309,45 @@ this.dataModel.CREATE_TIME = uni.$u.timeFormat(res.CREATE_TIME, 'yyyy-mm-dd') this.dataModel.START_DATE = uni.$u.timeFormat(res.START_DATE, 'yyyy-mm-dd') this.dataModel.END_DATE = uni.$u.timeFormat(res.END_DATE, 'yyyy-mm-dd') - this.dataModel.RequireName = res.Nav_Require.NAME + let Nav_RequiresName = '' + if (this.dataModel.Nav_Requires && this.dataModel.Nav_Requires.length > 0) { + this.dataModel.Nav_Requires.map(item => { + if (item.Nav_Require && item.Nav_Require.NAME !== null) { + Nav_RequiresName += item.Nav_Require.NAME + ' '; + } + }) + } + this.dataModel.Nav_RequiresName = Nav_RequiresName this.dataModel.Nav_Details.map(item => { item['showPack'] = false - item.ENABLE_STATUS = item.ENABLE_STATUS == 0 ? '有效' : '无效' - item.Nav_RiskName = item.Nav_RiskName? item.Nav_RiskName: { - NAME: ''} + item.MARK_NAME = item.MARK !== undefined ? this.enumsData['SKMarkEnum'].find(item1 => item1.code === item.MARK).name : ''; + if (item.Nav_DetailPosts && item.Nav_DetailPosts.length > 0) { + item.Nav_DetailPosts.map(item1 => { + item1.DEPARTMENT_TYPE_NAME = item1.DEPARTMENT_TYPE !== undefined ? this.enumsData['SKDepartmentTypeEnum'].find(item2 => item2.code === item1.DEPARTMENT_TYPE).name : + ''; + if (item1.Nav_ResultPostDets && item1.Nav_ResultPostDets.length > 0) { + let Nav_ResultPostDetsName = '' + if (item1.Nav_ResultPostDets && item1.Nav_ResultPostDets.length > 0) { + item1.Nav_ResultPostDets.map(item2 => { + if (item2.Nav_Post && item2.Nav_Post.NAME !== null) { + Nav_ResultPostDetsName += item2.Nav_Post.NAME + ' '; + } + }) + } + item1.Nav_ResultPostDetsName = Nav_ResultPostDetsName + } + }) + + } }) this.stepLoad = false }) this.isLoadOK = true }, - handlePack(index) { - this.dataModel.Nav_Details[index].showPack = this.dataModel.Nav_Details[index].showPack == false ? true : false - this.dataModel.Nav_Details = [...this.dataModel.Nav_Details] + handlePack(item) { + item.showPack = item.showPack == false ? true : false + this.$forceUpdate() }, submit() { diff --git a/pages/apply/subPages/SK/riskSafeIdenSumShow.vue b/pages/apply/subPages/SK/riskSafeIdenSumShow.vue index f2e06a5..022ddcb 100644 --- a/pages/apply/subPages/SK/riskSafeIdenSumShow.vue +++ b/pages/apply/subPages/SK/riskSafeIdenSumShow.vue @@ -38,7 +38,7 @@ - + 附件: @@ -56,8 +56,8 @@ {{index+1+'.辨识区域:'+item.Nav_Area.NAME}} - - + + @@ -78,26 +78,54 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -121,10 +149,15 @@ extendRule, extendIgnoreDataRule, initFilter, + transformData } from '../../../../utils/common' import { MineTypeName } from '../../../../utils/enums.js' + import { + getEnum, + GetEnumAnyOrder + } from '../../../../services/common'; import { EvaIdentifySumGet, } from '../../../../services/apply/subPages/SK/SKServices.js' @@ -218,6 +251,8 @@ TaskID: '', nowName: '', nowIndex: 0, + enumsData: {}, // 存储所有枚举数据(键:枚举名称,值:处理后的枚举列表) + enumsText: {} // 存储枚举文本列表(用于下拉选择等场景) } }, @@ -233,9 +268,21 @@ ...this.$store.state.auditModel, TaskID: option.taskID ? option.taskID : '' } - this.loadData() + this.fetchEnums(['SKMarkEnum', 'SKEnableStatusEnum', 'SKDepartmentTypeEnum']); }, methods: { + fetchEnums(enumNames) { + var dataParm = { + 'name': enumNames.join('|') + } + GetEnumAnyOrder(dataParm).then(res => { + let newd = transformData(res, enumNames) + this.enumsData = newd[0]; + // 生成文本列表(如需要) + this.enumsText = newd[1] + this.loadData(); + }) + }, loadData() { // const json = {} const orgId = uni.getStorageSync('orgId') @@ -258,25 +305,49 @@ // extendRule(json, 'TASK_ID', 1, this.TaskID); EvaIdentifySumGet(json).then(res => { this.dataModel = res; - this.stepsPage =res.STATUS == 20 ? 0: 1 + this.stepsPage = res.STATUS == 20 ? 0 : 1 this.dataModel.CREATE_TIME = uni.$u.timeFormat(res.CREATE_TIME, 'yyyy-mm-dd') this.dataModel.START_DATE = uni.$u.timeFormat(res.START_DATE, 'yyyy-mm-dd') this.dataModel.END_DATE = uni.$u.timeFormat(res.END_DATE, 'yyyy-mm-dd') - this.dataModel.RequireName = res.Nav_Require.NAME + let Nav_RequiresName = '' + if (this.dataModel.Nav_Requires && this.dataModel.Nav_Requires.length > 0) { + this.dataModel.Nav_Requires.map(item => { + if (item.Nav_Require && item.Nav_Require.NAME !== null) { + Nav_RequiresName += item.Nav_Require.NAME + ' '; + } + }) + } + this.dataModel.Nav_RequiresName = Nav_RequiresName this.dataModel.Nav_Details.map(item => { item['showPack'] = false - item.ENABLE_STATUS = item.ENABLE_STATUS == 0 ? '有效' : '无效' - item.Nav_RiskName = item.Nav_RiskName? item.Nav_RiskName: { - NAME: ''} + item.MARK_NAME = item.MARK !== undefined ? this.enumsData['SKMarkEnum'].find(item1 => item1.code === item.MARK).name : ''; + if (item.Nav_DetailPosts && item.Nav_DetailPosts.length > 0) { + item.Nav_DetailPosts.map(item1 => { + item1.DEPARTMENT_TYPE_NAME = item1.DEPARTMENT_TYPE !== undefined ? this.enumsData['SKDepartmentTypeEnum'].find(item2 => item2.code === item1.DEPARTMENT_TYPE).name : + ''; + if (item1.Nav_SumPostDets && item1.Nav_SumPostDets.length > 0) { + let Nav_ResultPostDetsName = '' + + item1.Nav_SumPostDets.map(item2 => { + if (item2.Nav_Post && item2.Nav_Post.NAME !== null) { + Nav_ResultPostDetsName += item2.Nav_Post.NAME + ' '; + } + }) + + item1.Nav_ResultPostDetsName = Nav_ResultPostDetsName + } + }) + + } }) this.stepLoad = false }) this.isLoadOK = true }, - handlePack(index) { - this.dataModel.Nav_Details[index].showPack = this.dataModel.Nav_Details[index].showPack == false ? true : false - this.dataModel.Nav_Details = [...this.dataModel.Nav_Details] + handlePack(item) { + item.showPack = item.showPack == false ? true : false + this.$forceUpdate() }, submit() { @@ -300,6 +371,7 @@