{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\reform-fvue\\src\\views\\reformDemandAnalysis\\municipalDemand\\dialog\\demandDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\views\\reformDemandAnalysis\\municipalDemand\\dialog\\demandDialog.vue","mtime":1721205805091},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport utils from '@/utils.js'\r\nimport RejectInfoDialog from '@/components/dialog/RejectInfoBlockDialog.vue'\r\nimport UploadFile from '@/components/uploadFile/index.vue'\r\nimport FileList from '@/components/uploadFile/newFileList.vue'\r\nimport req from '@/request.js'\r\nimport moment from 'moment'\r\nconst portal = window.context.portal\r\nexport default {\r\n name: 'demandDialog',\r\n components: {\r\n UploadFile,\r\n FileList,\r\n RejectInfoDialog\r\n },\r\n data() {\r\n var validateDemand = (rule, value, callback) => {\r\n let flag = (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '')\r\n if (flag) {\r\n callback(new Error(''));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n visible: false,\r\n title: '添加',\r\n type: 'edit',\r\n reqLoading: false,\r\n markLoading: false,\r\n parameter: {\r\n superiorRequirement: '',//上级要求\r\n systemBreakthrough: '',//制度突破\r\n problemOrientated: '', //问题向导\r\n projectName: '',// 拟生成的市级重大改革项目\r\n carryOutWork: '',//已开展的工作\r\n nextPlan: '',//改革思路举措和下步工作打算\r\n leadValue: [], //牵头单位\r\n leadObj: [], //牵头单位 对象\r\n synergyValue: [], //协同单位 id\r\n synergyObj: [], //协同单位 对象\r\n groupName: '', //专项小组\r\n projectField: '',//所属领域\r\n projectRunway: '',//所属跑道\r\n files: [],\r\n demandDate: moment(new Date()).format('YYYY-MM-DD') //需求提出日期\r\n },\r\n rules: {\r\n superiorRequirement: [\r\n { validator: validateDemand }\r\n ],\r\n systemBreakthrough: [\r\n { validator: validateDemand }\r\n ],\r\n problemOrientated: [\r\n { validator: validateDemand }\r\n ],\r\n demandDate: [\r\n { required: true, message: '请选择需求提出时间', trigger: 'change' }\r\n ],\r\n projectName: [\r\n { required: true, message: '请输入拟生成的市级重大改革项目', trigger: 'blur' }\r\n ],\r\n carryOutWork: [\r\n { required: true, message: '请输入已开展工作具体内容', trigger: 'blur' }\r\n ],\r\n groupName: [\r\n { required: true, message: '请选择专项小组', trigger: 'change' }\r\n ],\r\n leadValue: [\r\n { required: true, message: '请选择牵头单位', trigger: 'change' }\r\n ],\r\n projectField: [\r\n { required: true, message: '请选择所属领域', trigger: 'change' }\r\n ],\r\n projectRunway: [\r\n { required: true, message: '请选择所属跑道', trigger: 'change' }\r\n ],\r\n },\r\n // 所有协同单位对象\r\n allSynergyObj: [],\r\n groupList: [], //专项小组\r\n municipalTreeData: [], //牵头单位\r\n allTreeData: [], // 协同单位选项\r\n projectRunwayOptions: [], //所属跑道\r\n routeName: '',\r\n intermediate: null,\r\n isHistory: false,\r\n // 历史附件id\r\n historyFileId: [],\r\n // 需要真删除的fileid\r\n removeFileId: []\r\n }\r\n },\r\n created() {\r\n\r\n },\r\n mounted() {\r\n },\r\n methods: {\r\n setDataOptions() {\r\n return new Promise(resolve => {\r\n let { name } = this.$route\r\n this.routeName = name\r\n this.allTreeData = JSON.parse(sessionStorage.getItem('responsibilityTree'))\r\n let treeData = JSON.parse(JSON.stringify(this.allTreeData))\r\n this.municipalTreeData = treeData[0].children[0].children[0].children\r\n let data = {\r\n pageBean: {\r\n page: 1,\r\n pageSize: -1\r\n }\r\n }\r\n req\r\n .post(portal + `/fill/bizSpecialGroup/v1/queryPageList`, data)\r\n .then(res => {\r\n this.groupList = res.data.rows.filter(item => item.groupType === 2)\r\n resolve()\r\n })\r\n })\r\n },\r\n getDictName(code, value) {\r\n return utils.getDictName(code, value)\r\n },\r\n // 打开弹窗\r\n openDialog(item, title) {\r\n this.title = title\r\n this.type = title === '详情' ? 'detail' : 'edit'\r\n let reqArr = item.id ? [this.setDataOptions(),this.getDetailsById(item.id)] : [this.setDataOptions()]\r\n this.reqLoading = true\r\n Promise.all(reqArr).then(() => {\r\n this.reqLoading = false\r\n })\r\n if (item.parentId) {\r\n this.getHistory(item.parentId)\r\n }\r\n this.visible = true\r\n },\r\n // 获取详情\r\n getDetailsById(id) {\r\n return new Promise(resolve => {\r\n // 根据id查询详情\r\n req\r\n .get(portal + `/bizReformDemandAnalysisLibrary/v1/getById?id=${id}`)\r\n .then(res => {\r\n if (res.status === 200) {\r\n this.parameter = res.data\r\n this.getRunwaOoptions(res.data.projectField)\r\n res.data.projectRunway = res.data.projectRunway + ''\r\n this.parameter.leadValue = []\r\n this.parameter.leadObj = res.data.units.filter(item => item.mainType === 1)\r\n res.data.units.forEach(item => {\r\n if (item.mainType === 1) {\r\n this.parameter.leadValue = this.getParentsById(this.allTreeData, item.unitId)\r\n }\r\n })\r\n this.parameter.synergyValue = []\r\n this.parameter.synergyObj = res.data.units.filter(item => item.mainType === 2)\r\n this.allSynergyObj = res.data.units.filter(item => item.mainType === 2)\r\n res.data.units.forEach(item => {\r\n if (item.mainType === 2) {\r\n let arr = this.getParentsById(this.allTreeData, item.unitId)\r\n this.parameter.synergyValue.push(arr)\r\n }\r\n })\r\n this.parameter.files = this.parameter.files || []\r\n }\r\n resolve()\r\n })\r\n })\r\n },\r\n // 根据id查询历史更新记录\r\n getHistory(id) {\r\n req\r\n .get(portal + `/bizReformDemandAnalysisLibrary/v1/getHisById?parentId=${id}`)\r\n .then(res => {\r\n if (res.status === 200 && res.data) {\r\n this.intermediate = res.data\r\n this.intermediate.leadObj = res.data.units && res.data.units.filter(item => item.mainType === 1)\r\n this.intermediate.synergyObj = res.data.units && res.data.units.filter(item => item.mainType === 2)\r\n this.historyFileId = res.data.files && res.data.files.map(item => item.id)\r\n }\r\n })\r\n },\r\n // 历史本次切换\r\n tabToggle(e) {\r\n if (e !== this.isHistory) {\r\n this.reqLoading = true\r\n setTimeout(() => {\r\n let data = JSON.parse(JSON.stringify(this.intermediate))\r\n this.type = e ? 'detail' : 'edit'\r\n this.intermediate = this.parameter\r\n this.isHistory = e\r\n this.parameter = data\r\n this.reqLoading = false\r\n }, 500)\r\n }\r\n\r\n },\r\n // 查询专项小组\r\n getGroupList() {\r\n\r\n\r\n },\r\n // 专项小组选择\r\n // groupChange(e) {\r\n // let groupObj = {}\r\n // this.groupList.forEach(item => {\r\n // if (item.groupName === e) {\r\n // groupObj = item\r\n // }\r\n // })\r\n // let { orgId: unitId, orgName: unitName } = groupObj\r\n // let unitObj = {\r\n // mainType: 3, //1:主责单位 2:协同单位 3:专项小组\r\n // unitCode: '',\r\n // unitGrade: '',\r\n // unitId,\r\n // unitName\r\n // }\r\n // let findIndex = this.parameter.units.findIndex(item => item.mainType === 3)\r\n // if (findIndex !== -1) {\r\n // this.parameter.units[findIndex] = unitObj\r\n // } else {\r\n // this.parameter.units.push(unitObj)\r\n // }\r\n // },\r\n // 牵头单位选择\r\n leadChange() {\r\n this.$nextTick(() => {\r\n let nodesObj = this.$refs['leadCascader'].getCheckedNodes()\r\n if (nodesObj.length) {\r\n let { code, id, grade, name } = nodesObj[0].data\r\n this.parameter.leadObj = [{\r\n id: this.parameter.leadObj[0] && this.parameter.leadObj[0].id || '',\r\n mainType: 1, //1:主责单位 2:协同单位 3:专项小组\r\n unitCode: code,\r\n unitGrade: grade,\r\n unitId: id,\r\n unitName: name\r\n }]\r\n } else {\r\n this.parameter.leadObj = [{ id: this.parameter.leadObj[0] && this.parameter.leadObj[0].id || '' }]\r\n }\r\n })\r\n },\r\n // 协同单位选择\r\n synergyChange() {\r\n this.$nextTick(() => {\r\n let objArr = []\r\n let nodesObj = this.$refs['synergyCascader'].getCheckedNodes()\r\n if (nodesObj.length) {\r\n nodesObj.forEach(item => {\r\n let { code, id, grade, name } = item.data\r\n objArr.push({\r\n id: this.getId(this.parameter.synergyObj, id),\r\n mainType: 2, //1:主责单位 2:协同单位 3:专项小组\r\n unitCode: code,\r\n unitGrade: grade,\r\n unitId: id,\r\n unitName: name\r\n })\r\n })\r\n }\r\n this.parameter.synergyObj = objArr\r\n })\r\n },\r\n // 根据uniId返回协同单位数据id\r\n getId(arr, unitId) {\r\n let id = ''\r\n arr.forEach(item => {\r\n if (item.unitId === unitId) {\r\n id = item.id\r\n }\r\n })\r\n return id\r\n },\r\n // 协同单位删除\r\n removeTag(e) {\r\n console.log(e.slice(-1)[0]);\r\n let unitId = e.slice(-1)[0]\r\n let id = null\r\n let delIndex = ''\r\n this.allSynergyObj.forEach((item, index) => {\r\n if (item.unitId === unitId) {\r\n id = item.id\r\n delIndex = index\r\n }\r\n })\r\n if (id) {\r\n req\r\n .remove(portal + `/fill/bizProjectCooperativeUnit/v1/${id}`)\r\n .then(res => {\r\n if (res.data.state) {\r\n this.allSynergyObj.splice(delIndex, 1)\r\n }\r\n })\r\n }\r\n },\r\n // 根据id获取id路径\r\n getParentsById(list, id) {\r\n for (let item of list) {\r\n if (item.id == id) {\r\n return [item.id]\r\n }\r\n if (item.children) {\r\n let node = this.getParentsById(item.children, id)\r\n if (node !== undefined) {\r\n node.unshift(item.id)\r\n return node\r\n }\r\n }\r\n }\r\n },\r\n // 所属领域选择\r\n hanldeCommonSelect(val, obj) {\r\n this.parameter.projectRunway = ''\r\n this.projectRunwayOptions = obj && obj.lowerDic['ggbb_sspd']\r\n },\r\n // 根据所属领域获取所属跑道\r\n getRunwaOoptions(pilotField) {\r\n let arr = utils.getDictItemsFromCache('ggbb_ssly')\r\n arr.forEach(item => {\r\n if (item.value == pilotField) {\r\n this.projectRunwayOptions = item.lowerDic['ggbb_sspd']\r\n }\r\n })\r\n },\r\n // 附件相关\r\n uploadeFile() {\r\n this.$refs.uploadFile.open('DemandRecord')\r\n },\r\n setFileList(file) {\r\n let newFile = {\r\n ...file,\r\n id: file.response.fileId,\r\n }\r\n this.parameter.files.push(newFile)\r\n this.parameter.classified = ''\r\n },\r\n setAipher() {\r\n this.$set(this.parameter, 'classified', '文件涉密已通过内网上传')\r\n // this.parameter.classified = \r\n },\r\n changeFileList(arr) {\r\n this.parameter.files = arr\r\n },\r\n idExist(id) {\r\n console.log(!this.historyFileId.includes(id));\r\n if (!this.historyFileId.includes(id)) {\r\n this.removeFileId.push(id)\r\n }\r\n },\r\n // 附件真删除\r\n removeFiles() {\r\n console.log(this.removeFileId);\r\n if (this.removeFileId.length) {\r\n let ids = this.removeFileId.join(',')\r\n req\r\n .post(portal + `/file/v1/remove`, ids)\r\n .then(res => {\r\n })\r\n }\r\n },\r\n // 保存为草稿 审核\r\n handleSave(status) {\r\n let flag = (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '')\r\n this.$refs.formInfo.validate(valid => {\r\n if (valid && !flag) {\r\n let msg = !status ? \"保存为草稿\" : status === 1 ? '保存并上报' :\r\n status === 3 ? '报送市委改革办' : status === 5 ? '转化为三个一批重大项目' :\r\n status === -3 ? '纳入专项小组台账' : status === -4 ? '该需求为待审查论证' : ''\r\n this.$confirm(`确认${msg}吗?`, '提示', {\r\n confirmButtonText: '确定',\r\n cancelButton: '',\r\n Text: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n this.markLoading = true\r\n this.parameter.units = [...this.parameter.leadObj, ...this.parameter.synergyObj]\r\n this.parameter.status = status\r\n if (this.title === '更新') {\r\n this.parameter.id = ''\r\n this.parameter.units.forEach(item => {\r\n item.id = ''\r\n })\r\n }\r\n req\r\n .post(portal + `/bizReformDemandAnalysisLibrary/v1/`, this.parameter)\r\n .then(res => {\r\n if (res.data.state) {\r\n this.removeFiles()\r\n this.$message.success(`${msg}成功`)\r\n this.handleClose()\r\n this.$emit('refreshData')\r\n\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n } else {\r\n if (flag) {\r\n this.$message.error('改革需求至少填报两项')\r\n } else {\r\n this.$message.error('请填写完整信息...')\r\n }\r\n\r\n }\r\n })\r\n },\r\n // 修改保存\r\n updateSave() {\r\n let flag = (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.systemBreakthrough == '') ||\r\n (this.parameter.superiorRequirement == '' && this.parameter.problemOrientated == '') ||\r\n (this.parameter.systemBreakthrough == '' && this.parameter.problemOrientated == '')\r\n this.$refs.formInfo.validate(valid => {\r\n if (valid && !flag) {\r\n this.$confirm(`确认修改保存吗?`, '提示', {\r\n confirmButtonText: '确定',\r\n cancelButton: '',\r\n Text: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n this.markLoading = true\r\n this.parameter.units = [...this.parameter.leadObj, ...this.parameter.synergyObj]\r\n req\r\n .post(portal + `/bizReformDemandAnalysisLibrary/v1/`, this.parameter)\r\n .then(res => {\r\n if (res.data.state) {\r\n this.$message.success(`修改保存成功`)\r\n this.handleClose()\r\n this.$emit('refreshData')\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n } else {\r\n if (flag) {\r\n this.$message.error('改革需求至少填报两项')\r\n } else {\r\n this.$message.error('请填写完整信息...')\r\n }\r\n\r\n }\r\n })\r\n },\r\n // 审核驳回\r\n handleReject() {\r\n this.$confirm(`确认驳回吗?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'error'\r\n }).then(() => {\r\n this.$refs.RejectInfoDialog.open()\r\n })\r\n\r\n },\r\n sendRejectInfo(approvalComments) {\r\n this.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.parameter))\r\n data.units = [...data.leadObj, ...data.synergyObj]\r\n data.status = this.routeName == 'MunicipalDemandAudit' ? 2 : 4\r\n data.approvalComments = approvalComments\r\n req\r\n .post(portal + `/bizReformDemandAnalysisLibrary/v1/`, data)\r\n .then(res => {\r\n if (res.data.state) {\r\n this.$message.success(`驳回成功`)\r\n this.handleClose()\r\n this.$emit('refreshData')\r\n }\r\n this.markLoading = false\r\n })\r\n },\r\n // 关闭弹窗\r\n handleClose() {\r\n this.parameter = {\r\n superiorRequirement: '',//上级要求\r\n systemBreakthrough: '',//制度突破\r\n problemOrientated: '', //问题向导\r\n projectName: '',// 拟生成的市级重大改革项目\r\n carryOutWork: '',//已开展的工作\r\n nextPlan: '',//改革思路举措和下步工作打算\r\n leadValue: [], //牵头单位\r\n leadObj: [], //牵头单位 对象\r\n synergyValue: [], //协同单位 id\r\n synergyObj: [], //协同单位 对象\r\n groupName: '', //专项小组\r\n projectField: '',//所属领域\r\n projectRunway: '',//所属跑道\r\n files: [],\r\n demandDate: moment(new Date()).format('YYYY-MM-DD')\r\n },\r\n this.allSynergyObj = []\r\n this.isHistory = false\r\n this.intermediate = null\r\n this.visible = false\r\n this.historyFileId = []\r\n this.removeFileId = []\r\n }\r\n }\r\n}\r\n",null]}