{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\reform-fvue\\src\\views\\ReformPilotManage\\components\\MunicipalPilotDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\views\\ReformPilotManage\\components\\MunicipalPilotDialog.vue","mtime":1740996014313},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 pilot from '@/api/pilotprojects'\r\nimport FormResultsDialog from './FormResultsDialog'\r\nimport filePreview from '@/components/FilePreview/filePreview.vue'\r\nimport UploadFile from '@/components/uploadFile/index.vue'\r\nimport FileList from '@/components/uploadFile/newFileList.vue'\r\nimport FileList1 from '@/components/uploadFile/FileList.vue'\r\nimport RejectInfoDialog from '@/components/dialog/RejectInfoDialog.vue'\r\nimport reformSituationDialig from './reformSituationDialig.vue'\r\nimport { TableMixin } from '@/mixins/tableMixin'\r\nimport req from '@/request.js'\r\nimport utils from '@/utils.js'\r\nconst portal = window.context.portal\r\nexport default {\r\n name: 'MunicipalPilotDialog',\r\n components: {\r\n FormResultsDialog,\r\n filePreview,\r\n UploadFile,\r\n RejectInfoDialog,\r\n FileList,\r\n FileList1,\r\n reformSituationDialig,\r\n },\r\n mixins: [TableMixin],\r\n data() {\r\n var checkUnitName = (rule, value, callback) => {\r\n if (this.unitValue && !this.unitValue.length) {\r\n return callback(new Error('请选择市级主管部门'))\r\n } else {\r\n callback()\r\n }\r\n }\r\n var checkAcceptanceTime = (rule, value, callback) => {\r\n if (this.parameter.timePeriod == 1) {\r\n if (!value) {\r\n return callback(\r\n new Error('请根据文件规定的试点期限选择验收时间')\r\n )\r\n } else {\r\n callback()\r\n }\r\n } else {\r\n callback()\r\n }\r\n }\r\n var checkInvs = (rule, value, callback) => {\r\n if (!this.districtValue.length) {\r\n return callback(\r\n new Error(\r\n '请选择部署该试点项目的文件中明确的所有参与试点区县'\r\n )\r\n )\r\n } else {\r\n callback()\r\n }\r\n }\r\n var checkDocNo = (rule, value, callback) => {\r\n let { docNum, docYear, docName } = this.parameter\r\n console.log(docNum, docYear);\r\n \r\n if ((!docNum && docNum !== 0) || (!docYear && docYear !== 0) || !docName) {\r\n return callback(new Error('请输入完整的试点文件文号'))\r\n } else {\r\n if (this.passOrNot) {\r\n let docNo = `${docName}【${docYear}】${docNum}号`\r\n console.log(docNo)\r\n let data = {\r\n docNo,\r\n id: this.parameter.id || '',\r\n }\r\n pilot.munCheckDocNo(data, (res) => {\r\n if (res) {\r\n this.passOrNot = false\r\n return callback()\r\n } else {\r\n this.passOrNot = true\r\n return callback(\r\n new Error('该试点文件文号已存在,请勿重复录入')\r\n )\r\n }\r\n })\r\n } else {\r\n return callback()\r\n }\r\n }\r\n }\r\n var checkFiles = (rele, value, callback) => {\r\n if (\r\n (this.updataTime.iterFiles &&\r\n this.updataTime.iterFiles.length) ||\r\n this.updataTime.iterClassified\r\n ) {\r\n callback()\r\n } else {\r\n callback(new Error('请选择上传佐证材料'))\r\n }\r\n }\r\n return {\r\n myDialog: {\r\n title: '新增',\r\n },\r\n classified: 0, //0代表不涉密, 1代表涉密\r\n options: [\r\n {\r\n value: 0,\r\n label: '长期',\r\n },\r\n {\r\n value: 1,\r\n label: '限时',\r\n },\r\n ],\r\n showDetail: false,\r\n reqLoading: false,\r\n markLoading: false,\r\n fileList: [],\r\n treeData: [],\r\n unitValue: [],\r\n formIsShow: true,\r\n activeCollapse1: ['1', '2', '3'],\r\n visible: false,\r\n rules: {\r\n timePeriod: [\r\n {\r\n required: true,\r\n message: '请选择试点期限',\r\n trigger: 'change',\r\n },\r\n ],\r\n leadUnitIds: [\r\n {\r\n required: true,\r\n message: '请选择市级牵头部门',\r\n trigger: 'change',\r\n },\r\n ],\r\n groupName: [\r\n {\r\n required: true,\r\n message: '请选择专项小组',\r\n trigger: 'change',\r\n },\r\n ],\r\n unitName: [\r\n {\r\n required: true,\r\n validator: checkUnitName,\r\n trigger: 'change',\r\n },\r\n ],\r\n pilotRange: [\r\n {\r\n required: true,\r\n message: '请输入试点范围',\r\n trigger: 'blur',\r\n },\r\n ],\r\n taskDetails: [\r\n {\r\n required: true,\r\n message:\r\n '请条目式总结提炼部署该试点项目文件中关于试点任务的描述',\r\n trigger: 'blur',\r\n },\r\n ],\r\n documentBasis: [\r\n {\r\n required: true,\r\n message: '请输入部署该试点项目的文件名称',\r\n trigger: 'blur',\r\n },\r\n ],\r\n pilotProjectName: [\r\n {\r\n required: true,\r\n message: '请输入试点项目名称',\r\n trigger: 'blur',\r\n },\r\n ],\r\n pilotLevel: [\r\n {\r\n required: true,\r\n message: '请选择试点层级',\r\n trigger: 'blur',\r\n },\r\n ],\r\n invs: [\r\n {\r\n required: true,\r\n validator: checkInvs,\r\n trigger: 'change',\r\n },\r\n ],\r\n pilotSupervisor: [\r\n {\r\n required: true,\r\n message: '请选择国家级主管部委',\r\n trigger: 'blur',\r\n },\r\n ],\r\n pilotField: [\r\n {\r\n required: true,\r\n message: '请选择所属领域',\r\n trigger: 'blur',\r\n },\r\n ],\r\n pilotRunway: [\r\n {\r\n required: true,\r\n message: '请选择所属跑道',\r\n trigger: 'blur',\r\n },\r\n ],\r\n startTime: [\r\n {\r\n required: true,\r\n message: '请选择部署该试点项目的文件印发时间',\r\n trigger: 'blur',\r\n },\r\n ],\r\n acceptanceTime: [\r\n {\r\n required: true,\r\n // message: '请根据文件规定的试点期限选择验收时间',\r\n validator: checkAcceptanceTime,\r\n trigger: 'blur',\r\n },\r\n ],\r\n pilotTarget: [\r\n {\r\n required: true,\r\n message:\r\n '请条目式总结提炼部署该试点项目文件中关于目标的描述',\r\n trigger: 'blur',\r\n },\r\n ],\r\n docNo: [\r\n {\r\n required: true,\r\n validator: checkDocNo,\r\n trigger: 'blur',\r\n },\r\n ],\r\n },\r\n queryParam: {\r\n pageBean: {\r\n page: 1,\r\n pageSize: -1,\r\n },\r\n },\r\n parameter: {},\r\n updateInfo: {},\r\n rules2: {\r\n propulsiveStatus: [\r\n {\r\n required: true,\r\n message: '请选择推进状态',\r\n trigger: 'change',\r\n },\r\n ],\r\n actualTime: [\r\n {\r\n required: true,\r\n message: '请选择验收时间',\r\n trigger: 'change',\r\n },\r\n ],\r\n },\r\n reqData: {\r\n pageBean: {\r\n page: 1,\r\n pageSize: 10,\r\n showTotal: true,\r\n },\r\n querys: [\r\n {\r\n group: 'main',\r\n operation: 'EQUAL',\r\n parentGroup: '',\r\n property: '',\r\n relation: 'AND',\r\n value: {},\r\n },\r\n ],\r\n },\r\n tableData: [],\r\n pickerOptions: {\r\n disabledDate: (time) => {\r\n return time.getTime() > Date.now()\r\n },\r\n },\r\n pickerOptions2: {\r\n disabledDate: (time) => {\r\n return time.getTime() < new Date(this.parameter.startTime)\r\n },\r\n },\r\n groupList: [],\r\n RunwaOoptions: [],\r\n fileType: '',\r\n saveType: '',\r\n status: 0,\r\n histroyData: null,\r\n recordOptions: [],\r\n // 文件文号是否存在\r\n passOrNot: true,\r\n // 历史验收材料附件ids\r\n checkIds: [],\r\n // 历史成果附件ids\r\n reslultIds: [],\r\n isRequest: true,\r\n removeIds: [],\r\n districtList: [],\r\n disValue: [],\r\n treeData1: [],\r\n // 修改验收时间相关\r\n updataTime: {},\r\n timeVisible: false,\r\n timeRules: {\r\n iterTimePeriod: [\r\n {\r\n required: true,\r\n message: '请选择试点期限',\r\n trigger: 'change',\r\n },\r\n ],\r\n iterAcceptanceTime: [\r\n {\r\n required: true,\r\n message: '请根据文件规定的试点期限选择完成时间',\r\n trigger: 'change',\r\n },\r\n ],\r\n cause: [\r\n {\r\n required: true,\r\n message: '请填写修改完成时间的理由',\r\n trigger: 'change',\r\n },\r\n ],\r\n iterFiles: [\r\n {\r\n required: true,\r\n validator: checkFiles,\r\n trigger: 'change',\r\n },\r\n ],\r\n },\r\n timeTitle: '编辑',\r\n timeLoading: false,\r\n }\r\n },\r\n\r\n created() {\r\n this.treeData = JSON.parse(sessionStorage.getItem('responsibilityTree'))\r\n let data = JSON.parse(JSON.stringify(this.treeData))\r\n this.treeData1 = data[0].children[0].children[0].children\r\n this.recordOptions = utils.getDictItemsFromCache('sjsd_tjzt')\r\n this.getGroupList()\r\n this.districtList = JSON.parse(sessionStorage.getItem('districtList'))\r\n },\r\n methods: {\r\n handleCurrentChange1(data) {\r\n this.parameter = { ...this.parameter, ...data }\r\n },\r\n selectProject() {\r\n let id = this.parameter.reformSituationId || ''\r\n this.$refs.reformSituationDialig.open(id)\r\n },\r\n setdocName(e) {\r\n this.parameter.docName = e.replace(/\\s+/g, '')\r\n },\r\n changeDisabled(title) {\r\n this.timeTitle = title\r\n let { id, pilotProjectName, iterId, iterStatus } = this.parameter\r\n if (iterId) {\r\n this.timeLoading = true\r\n pilot.getEntityById(iterId, (res) => {\r\n let {\r\n classified,\r\n acceptanceTime,\r\n timePeriod,\r\n iterTimePeriod,\r\n iterAcceptanceTime,\r\n iterateCause,\r\n approvalComments,\r\n } = res\r\n this.updataTime = {\r\n id,\r\n iterClassified: classified,\r\n pilotProjectName,\r\n timePeriod,\r\n acceptanceTime,\r\n cause: iterateCause,\r\n iterTimePeriod, //试点期限\r\n iterAcceptanceTime, //完成时间\r\n }\r\n this.updataTime.approvalComments =\r\n iterStatus === 2\r\n ? approvalComments && approvalComments.split('$_$')\r\n : []\r\n\r\n let data = JSON.parse(JSON.stringify(this.reqData))\r\n data.querys = [\r\n {\r\n group: 'main',\r\n operation: 'EQUAL',\r\n parentGroup: '',\r\n property: 'biz_id_',\r\n relation: 'AND',\r\n value: iterId,\r\n },\r\n ]\r\n pilot.getIds(data, (res) => {\r\n let arr = []\r\n res.rows.forEach((item) => {\r\n let { id, fileName, extensionName } = item\r\n let url = `${portal}/file/onlinePreviewController/v1/getFileById_${id}`\r\n let obj = {\r\n id,\r\n name: `${fileName}.${extensionName}`,\r\n url,\r\n fileType: extensionName,\r\n }\r\n arr.push(obj)\r\n })\r\n this.$set(this.updataTime, 'iterFiles', arr)\r\n this.timeLoading = false\r\n })\r\n })\r\n } else if (title == '编辑') {\r\n let { timePeriod, acceptanceTime } = this.parameter\r\n this.updataTime = {\r\n id,\r\n pilotProjectName,\r\n timePeriod,\r\n acceptanceTime,\r\n iterClassified: 0,\r\n iterFiles: [],\r\n cause: '',\r\n iterTimePeriod: timePeriod, //试点期限\r\n iterAcceptanceTime: acceptanceTime, //完成时间\r\n }\r\n }\r\n this.timeVisible = true\r\n // this.$nextTick(() => {\r\n // this.$refs['timeInfo'].resetFields()\r\n // })\r\n },\r\n // 确认修改\r\n confirmChange() {\r\n this.$refs['timeInfo'].validate((valid) => {\r\n if (valid) {\r\n this.$confirm(\r\n '确认修改完成时间并提交改革办审核吗?',\r\n this.$t('common.tips'),\r\n {\r\n confirmButtonText: this.$t('common.confirm'),\r\n cancelButtonText: this.$t('common.cancel'),\r\n type: 'success',\r\n }\r\n ).then(() => {\r\n this.markLoading = true\r\n let data = this.updataTime\r\n data.iterAcceptanceTime = data.iterTimePeriod\r\n ? data.iterAcceptanceTime\r\n : ''\r\n data.approvalComments = ''\r\n data.status = 1\r\n data.pilotType = 1\r\n pilot.updateMunAcceptanceTime(data, (res) => {\r\n if (res.state) {\r\n this.$message.success('提交审核成功')\r\n this.parameter.iterStatus = 1\r\n this.parameter.iterId = res.value\r\n this.handleCloseTime()\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n }\r\n })\r\n },\r\n uploadeTime() {\r\n this.$refs.uploadTime.open('PoiltAccept')\r\n },\r\n setTimeFileList(file) {\r\n file.id = file.response.fileId\r\n this.updataTime.iterFiles.push(file)\r\n this.updataTime.iterClassified = 0\r\n },\r\n changeTimeFileList(arr) {\r\n this.updataTime.iterFiles = arr\r\n },\r\n setTimeAipher(val) {\r\n if (val) {\r\n this.updataTime.iterClassified = 1\r\n }\r\n },\r\n handleCloseTime() {\r\n this.timeVisible = false\r\n this.updateInfo = {}\r\n if (this.timeTitle == '编辑') {\r\n this.$refs['timeInfo'].resetFields()\r\n }\r\n },\r\n // 试点范围\r\n // 查询列表\r\n // 拼接试点文件文号\r\n closeMenu() {\r\n let { docNum, docYear, docName } = this.parameter\r\n if (docNum && docYear && docName) {\r\n this.parameter.docNo = `${docName}【${docYear}】${docNum}号`\r\n }\r\n },\r\n munNameChange(e) {\r\n this.$nextTick(() => {\r\n this.parameter.leadUnitName =\r\n this.$refs['cascader'].getCheckedNodes()[0] &&\r\n this.$refs['cascader'].getCheckedNodes()[0].label\r\n })\r\n },\r\n unitChange() {\r\n this.$nextTick(() => {\r\n let nodesObj = this.$refs['unitCascader'].getCheckedNodes()\r\n if (nodesObj.length) {\r\n this.parameter.unitCode = nodesObj[0].data.code\r\n this.parameter.unitName = nodesObj[0].label\r\n this.parameter.unitId = nodesObj[0].data.id\r\n this.parameter.unitGrade = nodesObj[0].data.grade\r\n } else {\r\n this.parameter.unitCode = ''\r\n this.parameter.unitName = ''\r\n this.parameter.unitId = ''\r\n this.parameter.unitGrade = ''\r\n }\r\n })\r\n },\r\n // 获取专项小组列表\r\n getGroupList() {\r\n let data = JSON.parse(JSON.stringify(this.queryParam))\r\n data.pageBean.pageSize = -1\r\n req.post(\r\n portal + `/fill/bizSpecialGroup/v1/queryPageList`,\r\n data\r\n ).then((res) => {\r\n res.data.rows.forEach((item) => (item.check = false))\r\n this.groupList = res.data.rows.filter(\r\n (item) => item.groupType === 2\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 this.parameter.pilotField = groupObj.groupField\r\n ? groupObj.groupField + ''\r\n : ''\r\n this.unitValue = this.getParentsById(this.treeData, groupObj.orgId)\r\n this.unitChange()\r\n this.getRunwaOoptions(this.parameter.pilotField)\r\n // this.$set(this.parameter, 'pilotRunway', '')\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.RunwaOoptions = item.lowerDic['ggbb_sspd']\r\n }\r\n })\r\n },\r\n // ------------文件相关--------------\r\n openUploade(fileType, type) {\r\n this.fileType = fileType\r\n this.saveType = type\r\n this.$refs.uploadFile.open('Pilot')\r\n },\r\n // 文件涉密\r\n setAipher(val) {\r\n if (val) {\r\n if (this.fileType === 'pilot') {\r\n this.$set(this.parameter, 'classified', '1')\r\n } else {\r\n this.$set(this.updateInfo, 'classified', '1')\r\n }\r\n if (this.saveType === 'Auto') {\r\n this.handlSaveOrUpdate()\r\n }\r\n }\r\n },\r\n // 上传附件\r\n setFileList(file) {\r\n if (this.fileType === 'pilot') {\r\n this.parameter.files\r\n ? this.parameter.files.push(file)\r\n : this.$set(this.parameter, 'files', [file])\r\n this.parameter.classified = ''\r\n } else {\r\n this.updateInfo.files\r\n ? this.updateInfo.files.push(file)\r\n : this.$set(this.updateInfo, 'files', [file])\r\n this.updateInfo.classified = ''\r\n }\r\n },\r\n changeFileList(arr, type) {\r\n if (type === 'pilot') {\r\n this.parameter.files = arr\r\n // this.$set(this.parameter, 'files', arr)\r\n } else if (type === 'record') {\r\n this.updateInfo.files = arr\r\n // this.$set(this.parameter1, 'files', arr)\r\n }\r\n },\r\n idExist(id) {\r\n console.log(this.parameter)\r\n if (\r\n !this.checkIds.includes(id) ||\r\n !this.checkIds.length ||\r\n this.parameter.status < 1\r\n ) {\r\n this.removeIds.push(id)\r\n }\r\n // if (this.checkIds.includes(id)) {\r\n // this.isRequest = false\r\n // } else {\r\n // this.isRequest = true\r\n // }\r\n },\r\n // 批量删除附件\r\n // 保存时删除\r\n saveRemoveFiles() {\r\n let ids = this.removeIds.join(',')\r\n req.remove(portal + `/file/v1/?ids=${ids}`).then((res) => { })\r\n },\r\n getParentsByName(list, name) {\r\n for (let item of list) {\r\n if (item.name == name) {\r\n return [item.id]\r\n }\r\n if (item.children) {\r\n let node = this.getParentsByName(item.children, name)\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 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 add(item, title) {\r\n this.recordOptions.forEach((item) => {\r\n item.disabled = false\r\n })\r\n this.parameter = JSON.parse(JSON.stringify(item))\r\n if (title !== '新增') {\r\n // this.parameter.pilotRange = this.parameter.pilotRange && this.parameter.pilotRange.split(',')\r\n // this.parameter.pilotRunway = item.pilotRunway + ''\r\n this.unitValue = this.getParentsById(this.treeData, item.unitId)\r\n this.getRunwaOoptions(item.pilotField)\r\n this.$set(\r\n this.parameter,\r\n 'leadUnitIds',\r\n this.getParentsByName(this.treeData1, item.leadUnitName)\r\n )\r\n this.getFiles(item.id, 'pilot')\r\n this.getRecordAndResults(item.id)\r\n }\r\n this.myDialog.title = title\r\n this.visible = true\r\n },\r\n // 打开成果形式弹窗\r\n addResult(item, index) {\r\n this.tableIndex = index\r\n item.fileList = item.files || []\r\n this.$refs.FormResultsDialog.reslultIds = this.reslultIds || []\r\n this.$refs.FormResultsDialog.open(item)\r\n },\r\n // 添加成果形式\r\n pushTableData(data) {\r\n let arr = JSON.parse(JSON.stringify(this.tableData))\r\n if (!arr.length || this.tableIndex === undefined) {\r\n arr.push(data)\r\n } else {\r\n arr.splice(this.tableIndex, 1, data)\r\n }\r\n this.tableData = arr\r\n console.log(arr)\r\n\r\n this.updateInfo.results = arr\r\n },\r\n // 删除成果形式\r\n deleteDate(row, index) {\r\n this.$confirm(\r\n `确认删除试点成果${row.resultName}吗?`,\r\n this.$t('common.tips'),\r\n {\r\n confirmButtonText: this.$t('common.confirm'),\r\n cancelButtonText: this.$t('common.cancel'),\r\n type: 'error',\r\n }\r\n ).then(() => {\r\n this.markLoading = true\r\n if (row.id) {\r\n pilot.deleteResultById(row.id, (res) => {\r\n if (res.state) {\r\n this.tableData.splice(index, 1)\r\n this.$message.success('试点成果删除成果')\r\n this.markLoading = false\r\n } else {\r\n this.$message.error(\r\n '试点成果删除失败,请稍后重试!'\r\n )\r\n }\r\n })\r\n } else {\r\n this.tableData.splice(index, 1)\r\n this.$message.success('试点成果删除成果')\r\n this.markLoading = false\r\n }\r\n })\r\n //\r\n },\r\n // 提交保存判断校验是否通过\r\n handlSaveOrUpdate(status) {\r\n if (typeof status === 'number') {\r\n this.status = status\r\n }\r\n this.$refs.pilotForm.validate((valid1) => {\r\n if (valid1) {\r\n let { classified, files } = this.parameter\r\n if (\r\n (classified != '1' || !classified) &&\r\n (!files || !files.length)\r\n ) {\r\n this.$confirm(\r\n '请上传项目基本信息佐证材料后保存。',\r\n '提示',\r\n {\r\n confirmButtonText: '立即上传',\r\n cancelButtonText: '关闭',\r\n type: 'error',\r\n }\r\n ).then(() => {\r\n this.openUploade('pilot', 'Auto')\r\n })\r\n } else {\r\n this.$refs.recordForm.validate((valid2) => {\r\n if (valid2) {\r\n let {\r\n classified,\r\n files,\r\n propulsiveStatus,\r\n results,\r\n } = this.updateInfo\r\n if (\r\n propulsiveStatus == '3' &&\r\n (!classified || classified != '1') &&\r\n (!files || !files.length)\r\n ) {\r\n this.$confirm(\r\n '推进状态为已完成,请上传相关验收材料后保存。',\r\n '提示',\r\n {\r\n confirmButtonText: '立即上传',\r\n cancelButtonText: '关闭',\r\n type: 'error',\r\n }\r\n ).then(() => {\r\n this.openUploade('record', 'Auto')\r\n })\r\n } else {\r\n if (propulsiveStatus != '3') {\r\n this.updateInfo.actualTime = ''\r\n }\r\n if (\r\n (!this.status || this.status === 1) &&\r\n (!results || !results.length)\r\n ) {\r\n this.$confirm(\r\n '没有录入试点成果内容,是否保存?',\r\n '提示',\r\n {\r\n confirmButtonText: '保存',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }\r\n )\r\n .then(() => {\r\n this.saveData()\r\n })\r\n .catch(() => { })\r\n } else {\r\n let msg =\r\n this.status === 0\r\n ? '保存为草稿'\r\n : this.status == 1\r\n ? '保存并上报'\r\n : (this.status == 2 ||\r\n this.status == 4 ||\r\n this.status == 6) &&\r\n this.title === '审核'\r\n ? '驳回'\r\n : this.status ===\r\n this.updateInfo.status\r\n ? '修改保存'\r\n : '通过'\r\n this.$confirm(`确认${msg}?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then(() => {\r\n this.saveData()\r\n })\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n })\r\n },\r\n // 提交数据\r\n saveData(approvalComments) {\r\n this.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.parameter))\r\n let record = JSON.parse(JSON.stringify(this.updateInfo))\r\n record.status = this.status\r\n record.approvalComments = approvalComments && approvalComments\r\n data.files &&\r\n data.files.forEach((item) => {\r\n item.id = item.id || item.response.fileId\r\n })\r\n // data.pilotRange = data.pilotRange && data.pilotRange.join(\",\")\r\n if (!data.timePeriod) {\r\n data.acceptanceTime = ''\r\n }\r\n record.files &&\r\n record.files.forEach((item) => {\r\n item.id = item.id || item.response.fileId\r\n })\r\n record.results &&\r\n record.results.forEach((item) => {\r\n item.files =\r\n item.fileList &&\r\n item.fileList.map((file) => {\r\n file.id = file.id || file.response.fileId\r\n return file\r\n })\r\n delete item.fileList\r\n })\r\n delete data.leadUnitIds\r\n data.record = record\r\n let msg =\r\n this.status == 0\r\n ? '保存为草稿'\r\n : this.status == 1\r\n ? '保存并上报'\r\n : this.status == 2 || this.status == 4 || this.status == 6\r\n ? '驳回'\r\n : this.status === this.updateInfo.status\r\n ? '修改保存'\r\n : '通过'\r\n pilot.saveOrUpdate(data, (res) => {\r\n if (res.state) {\r\n this.$message.success(`${msg}成功`)\r\n this.$emit('sendMsg')\r\n this.removeIds.length && this.saveRemoveFiles()\r\n this.handleClose()\r\n } else {\r\n this.$message.error(`${msg}失败,请稍后重试`)\r\n }\r\n this.markLoading = false\r\n })\r\n },\r\n // 根据推进id查询推进信息及成果信息\r\n getRecordAndResults(id) {\r\n this.reqLoading = true\r\n pilot.getRecordAndResults(id, (res) => {\r\n if (res.length) {\r\n this.updateInfo = res[0] || {}\r\n this.updateInfo.approvalComments =\r\n this.updateInfo.approvalComments &&\r\n this.updateInfo.approvalComments.split('$_$')\r\n if (res[0].results && res[0].results.length) {\r\n this.tableData = res[0].results.map((item) => {\r\n item.fileList = item.files\r\n return item\r\n })\r\n } else {\r\n this.tableData = []\r\n }\r\n\r\n if (this.updateInfo.propulsiveStatus == 3) {\r\n this.getFiles(res[0].id, 'record')\r\n }\r\n if (\r\n this.myDialog.title === '更新' &&\r\n (res[0].status == 2 ||\r\n res[0].status == 4 ||\r\n res[0].status == 6 ||\r\n res[0].status == 7)\r\n ) {\r\n this.histroyData = JSON.parse(\r\n JSON.stringify(this.updateInfo)\r\n )\r\n if (this.histroyData.propulsiveStatus == 3) {\r\n this.getFiles(res[0].id, 'his')\r\n }\r\n this.updateInfo.id = ''\r\n this.updateInfo.results &&\r\n this.updateInfo.results.forEach((item) => {\r\n item.id = ''\r\n })\r\n if (res[0].status === 7) {\r\n this.recordOptions.forEach((item) => {\r\n if (item.value - 0 < res[0].propulsiveStatus) {\r\n item.disabled = true\r\n }\r\n })\r\n }\r\n // 历史成果附件ids\r\n this.histroyData.results &&\r\n this.histroyData.results.forEach((item) => {\r\n let arr = item.fileList\r\n ? item.fileList.map((file) => file.id)\r\n : []\r\n this.reslultIds = [...this.reslultIds, ...arr]\r\n })\r\n } else {\r\n if (res[1]) {\r\n this.histroyData = res[1] || null\r\n this.histroyData.approvalComments =\r\n res[1].approvalComments &&\r\n res[1].approvalComments.split('$_$')\r\n if (res[1] && res[1].propulsiveStatus == 3) {\r\n this.getFiles(res[1].id, 'his')\r\n }\r\n if (res[1].status === 7) {\r\n this.recordOptions.forEach((item) => {\r\n if (\r\n item.value - 0 <\r\n res[1].propulsiveStatus\r\n ) {\r\n item.disabled = true\r\n }\r\n })\r\n }\r\n // 历史成果附件ids\r\n this.histroyData.results &&\r\n this.histroyData.results.forEach((item) => {\r\n let arr = item.fileList\r\n ? item.fileList.map((file) => file.id)\r\n : []\r\n this.reslultIds = [\r\n ...this.reslultIds,\r\n ...arr,\r\n ]\r\n })\r\n }\r\n }\r\n }\r\n this.reqLoading = false\r\n })\r\n },\r\n // 根据id查询附件列表\r\n getFiles(id, type) {\r\n let data = JSON.parse(JSON.stringify(this.queryParam))\r\n data.querys = [\r\n {\r\n group: 'main',\r\n operation: 'EQUAL',\r\n parentGroup: '',\r\n property: 'BIZ_ID_',\r\n relation: 'AND',\r\n value: id,\r\n },\r\n ]\r\n req.post(portal + '/file/v1/list', data).then((res) => {\r\n if (res) {\r\n if (type === 'pilot') {\r\n this.$set(this.parameter, 'files', res.data.rows)\r\n } else if (type === 'record') {\r\n this.$set(this.updateInfo, 'files', res.data.rows)\r\n this.checkIds =\r\n (res.data.rows &&\r\n res.data.rows.map((item) => item.id)) ||\r\n []\r\n } else if (type === 'his') {\r\n this.$set(this.histroyData, 'files', res.data.rows)\r\n }\r\n }\r\n })\r\n },\r\n // 审核通过\r\n handleApprove() {\r\n let { name } = this.$route\r\n this.status =\r\n name == 'MunicipalPilotAudit'\r\n ? 3\r\n : name == 'MunicipalPilotValidation'\r\n ? 5\r\n : 7\r\n if (name === 'MunicipalPilotAudit') {\r\n this.$confirm(`确认通过?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'success',\r\n }).then(() => {\r\n let data = {\r\n status: 3,\r\n groupName: this.parameter.groupName,\r\n id: this.parameter.recId,\r\n }\r\n this.markLoading = true\r\n pilot.updateMunStatus(data, (res) => {\r\n if (res.state) {\r\n this.$message.success('通过成功')\r\n this.handleClose()\r\n this.$emit('sendMsg')\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n } else {\r\n this.handlSaveOrUpdate()\r\n }\r\n },\r\n // 审核驳回\r\n handleReject() {\r\n let { name } = this.$route\r\n this.status =\r\n name == 'MunicipalPilotAudit'\r\n ? 2\r\n : name == 'MunicipalPilotValidation'\r\n ? 4\r\n : 6\r\n if (name === 'MunicipalPilotAudit') {\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 } else {\r\n this.$refs.pilotForm.validate((valid1) => {\r\n if (valid1) {\r\n let { classified, files } = this.parameter\r\n if (\r\n (classified != '1' || !classified) &&\r\n (!files || !files.length)\r\n ) {\r\n this.$confirm('请上传佐证材料后保存。', '提示', {\r\n confirmButtonText: '立即上传',\r\n cancelButtonText: '关闭',\r\n type: 'error',\r\n }).then(() => {\r\n this.openUploade('pilot', 'Auto')\r\n })\r\n } else {\r\n this.$refs.recordForm.validate((valid2) => {\r\n if (valid2) {\r\n let { classified, files, propulsiveStatus } =\r\n this.updateInfo\r\n if (\r\n propulsiveStatus == '3' &&\r\n (!classified || classified != '1') &&\r\n (!files || !files.length)\r\n ) {\r\n this.$confirm(\r\n '请上传相关验收材料后保存。',\r\n '提示',\r\n {\r\n confirmButtonText: '立即上传',\r\n cancelButtonText: '关闭',\r\n type: 'error',\r\n }\r\n ).then(() => {\r\n this.openUploade('record', 'Auto')\r\n })\r\n } else {\r\n if (propulsiveStatus != '3') {\r\n this.updateInfo.actualTime = ''\r\n }\r\n this.$confirm(`确认驳回?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then(() => {\r\n this.$refs.RejectInfoDialog.open()\r\n })\r\n }\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n },\r\n sendRejectInfo(approvalComments) {\r\n this.saveData(approvalComments)\r\n },\r\n // 关闭新增人员窗口\r\n handleClose() {\r\n // this.$nextTick(() => {\r\n // this.$refs.pilotForm.resetField()\r\n // this.$refs.recordForm.resetField()\r\n // })\r\n this.passOrNot = true\r\n this.status = 0\r\n this.updataTime = {}\r\n this.parameter = {}\r\n this.tableData = []\r\n this.removeIds = []\r\n this.unitValue = []\r\n this.updateInfo = {}\r\n this.activeCollapse1 = ['1', '2', '3']\r\n this.histroyData = null\r\n this.visible = false\r\n },\r\n },\r\n}\r\n",null]}