{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\reform-fvue\\src\\views\\MajorProjectManagement\\ProjectDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\views\\MajorProjectManagement\\ProjectDialog.vue","mtime":1740106413624},{"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\r\nimport utils from '@/utils.js'\r\nimport dictUtils from '@/components/dict/DictSelectUtils.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 moment from 'moment'\r\nimport { TableMixin } from '@/mixins/tableMixin'\r\nimport apiList from '@/api/MajorProject'\r\nimport publicApi from '@/api/publicApi'\r\nimport req from '@/request.js'\r\nconst portal = window.context.portal\r\nexport default {\r\n name: 'ProjectDialog',\r\n components: {\r\n UploadFile,\r\n FileList,\r\n RejectInfoDialog,\r\n },\r\n mixins: [TableMixin],\r\n data() {\r\n return {\r\n demandRunwaOoptionsForm: [], // 所属跑道数据(表单内)\r\n reqLoading: false,\r\n activeCollapse1: ['1', '3'],\r\n visible: false,\r\n title: '新增',\r\n disabled: false,\r\n saveloading: false,\r\n rules: {\r\n projectName: [\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 unitValue: [\r\n {\r\n required: true,\r\n message: '请选择主责单位',\r\n trigger: 'change',\r\n },\r\n ],\r\n // year: [\r\n // {\r\n // required: true,\r\n // message: '请选择部署时间',\r\n // trigger: 'change',\r\n // },\r\n // ],\r\n // projectField: [\r\n // {\r\n // required: true,\r\n // message: '请选择所属领域',\r\n // trigger: 'change'\r\n // }\r\n // ],\r\n // projectRunway: [\r\n // {\r\n // required: true,\r\n // message: '请选择所属跑道',\r\n // trigger: 'change'\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 treeData: [],\r\n parameter: {\r\n projectName: '',\r\n projectField: '',\r\n projectRunway: '',\r\n groupName: '',\r\n unitValue: [],\r\n unitId: '',\r\n unitName: '',\r\n unitCode: '',\r\n unitGrade: '',\r\n // year: '',\r\n },\r\n advanceData: {},\r\n hisAdvanceData: null,\r\n ggbb_ssly: [],\r\n markLoading: false,\r\n clickType: null,\r\n currentUser: null,\r\n treeItem: null,\r\n monthOptions: [\r\n { name: '一月', value: 1 },\r\n { name: '二月', value: 2 },\r\n { name: '三月', value: 3 },\r\n { name: '四月', value: 4 },\r\n { name: '五月', value: 5 },\r\n { name: '六月', value: 6 },\r\n { name: '七月', value: 7 },\r\n { name: '八月', value: 8 },\r\n { name: '九月', value: 9 },\r\n { name: '十月', value: 10 },\r\n { name: '十一月', value: 11 },\r\n { name: '十二月', value: 12 },\r\n ],\r\n routeName: '',\r\n fileIndex: 0,\r\n fileIds: [],\r\n delIds: [],\r\n groupOptions: [],\r\n workingOptions: [],\r\n yearOptions: [],\r\n historyDate: ''\r\n }\r\n },\r\n created() {\r\n this.ggbb_ssly = dictUtils.getDictItemsFromCache('ggbb_ssly')\r\n this.groupOptions = dictUtils.getDictItemsFromCache('zxxz')\r\n this.groupOptions.splice(6, 1)\r\n this.treeData = JSON.parse(sessionStorage.getItem('responsibilityTree'))\r\n let { name } = this.$route\r\n this.routeName = name\r\n },\r\n mounted() { },\r\n methods: {\r\n getNowDate() {\r\n this.reqLoading = true\r\n return new Promise(resolve => {\r\n publicApi.getNowDate(res => {\r\n if (res) {\r\n let time = moment(res).format('YYYY-MM-DD')\r\n resolve(time)\r\n }\r\n })\r\n })\r\n \r\n }, \r\n openDialog(title, data) {\r\n this.setYearOptions()\r\n let { projectType } = data\r\n this.workingOptions = dictUtils.getDictItemsFromCache('zbqdyp_zt')\r\n if (projectType === 2) {\r\n this.workingOptions.splice(-1)\r\n }\r\n this.title = title\r\n this.disabled = title === '详情' ? true : false\r\n if (title === '新增') {\r\n this.parameter.projectType = data.type\r\n // this.parameter.year = new Date().getFullYear()\r\n } else {\r\n this.parameter = JSON.parse(JSON.stringify(data))\r\n !this.parameter.projectRunway &&\r\n this.$set(this.parameter, 'projectRunway', '')\r\n this.parameter.unitValue = this.getParentsById(\r\n this.treeData,\r\n data.unitId\r\n )\r\n // this.parameter.year = this.parameter.year\r\n if (data.pid) {\r\n this.reqLoading = true\r\n // apiList.getfillDetailById(data.id, (res) => {\r\n // if (res.length) {\r\n // res[0].files = res[0].files || []\r\n // res[0].approvalComments =\r\n // res[0].approvalComments &&\r\n // res[0].approvalComments.split('$_$')\r\n // this.advanceData = res[0]\r\n // if (res[1]) {\r\n // res[1].approvalComments =\r\n // res[1].approvalComments &&\r\n // res[1].approvalComments.split('$_$')\r\n // this.hisAdvanceData = res[1]\r\n // this.fileIds =\r\n // res[1].files && res[1].files.length\r\n // ? res[1].files.map((item) => item.id)\r\n // : []\r\n // }\r\n // }\r\n // this.reqLoading = false\r\n // })\r\n apiList.getNewDataById(data.id, res => {\r\n res.files = res.files || []\r\n res.approvalComments = res.approvalComments && res.approvalComments.split('$_$')\r\n this.advanceData = res\r\n this.advanceData.requestReadyToStart = res.requestReadyToStart - 0\r\n this.historyDate = res.planDate\r\n this.getHistoryData(data.id, res.planDate, 'open')\r\n })\r\n\r\n } else {\r\n this.getNowDate().then(res => {\r\n this.$set(this.advanceData, 'planDate', res)\r\n this.reqLoading = false\r\n })\r\n // let time = moment(new Date()).format('YYYY-MM-DD')\r\n \r\n if (projectType === 3) {\r\n this.advanceData = {\r\n requestReadyToStart: '15',\r\n buildArchitecture: '15',\r\n defineThreeCoreIndicators: '15',\r\n formList: '15',\r\n issueDocument: '15',\r\n requestToStart: '15',\r\n }\r\n }\r\n }\r\n if (data.projectField) {\r\n let arr = utils.getDictItemsFromCache('ggbb_ssly')\r\n arr.forEach((item) => {\r\n if (item.value == data.projectField) {\r\n this.demandRunwaOoptionsForm =\r\n item.lowerDic['ggbb_sspd']\r\n }\r\n })\r\n this.parameter.projectRunway += ''\r\n }\r\n }\r\n this.visible = true\r\n },\r\n // 历史数据查询\r\n getHistoryData(id, planDate, type) {\r\n apiList.getHistoryData({ id, planDate }, res => {\r\n if (res) {\r\n res.approvalComments = res.approvalComments && res.approvalComments.split('$_$')\r\n this.hisAdvanceData = res\r\n if (type === 'open') {\r\n this.fileIds = res.files && res.files.length ? res.files.map((item) => item.id) : []\r\n }\r\n } else {\r\n this.hisAdvanceData = null\r\n }\r\n this.reqLoading = false\r\n })\r\n },\r\n hisDateChange(e) {\r\n this.reqLoading = true\r\n this.getHistoryData(this.parameter.id, e)\r\n },\r\n setYearOptions() {\r\n let year = new Date().getFullYear()\r\n for (let i = 0; i < 6; i++) {\r\n this.yearOptions.push({\r\n label: year + i + '年',\r\n value: year + i,\r\n })\r\n }\r\n },\r\n // 获取字典值翻译\r\n getDictName(code, value) {\r\n return utils.getDictName(code, value)\r\n },\r\n // 所属跑道选择\r\n hanldeCommonSelect(val, obj, key) {\r\n if (obj) {\r\n this.demandRunwaOoptionsForm = obj.lowerDic['ggbb_sspd']\r\n } else {\r\n this.demandRunwaOoptionsForm = []\r\n }\r\n this.parameter.projectRunway = ''\r\n },\r\n changeUnit(value) {\r\n this.$nextTick(() => {\r\n let nodesObj = this.$refs['cascader'].getCheckedNodes()\r\n console.log(nodesObj)\r\n if (nodesObj.length) {\r\n this.parameter.unitId = nodesObj[0].data.id\r\n this.parameter.unitName = nodesObj[0].data.name\r\n this.parameter.unitCode = nodesObj[0].data.code\r\n this.parameter.unitGrade = nodesObj[0].data.grade\r\n } else {\r\n this.parameter.unitId = ''\r\n this.parameter.unitName = ''\r\n this.parameter.unitCode = ''\r\n this.parameter.unitGrade = ''\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 handleClose() {\r\n this.$refs.formInfo1.resetFields()\r\n this.visible = false\r\n this.parameter = {\r\n projectName: '',\r\n projectField: '',\r\n projectRunway: '',\r\n groupName: '',\r\n unitValue: [],\r\n unitId: '',\r\n unitName: '',\r\n unitCode: '',\r\n unitGrade: '',\r\n // year: '',\r\n }\r\n this.advanceData = {}\r\n this.hisAdvanceData = null\r\n this.fileIds = []\r\n this.delIds = []\r\n },\r\n // 通过\r\n handleVerify() {\r\n this.$confirm('确认通过吗?', this.$t('common.tips'), {\r\n confirmButtonText: this.$t('common.confirm'),\r\n cancelButtonText: this.$t('common.cancel'),\r\n type: 'warning',\r\n }).then(() => { })\r\n },\r\n // 驳回确认\r\n handleReject() {\r\n this.$confirm('确认驳回吗?', this.$t('common.tips'), {\r\n confirmButtonText: this.$t('common.confirm'),\r\n cancelButtonText: this.$t('common.cancel'),\r\n type: 'error',\r\n }).then(() => {\r\n this.$refs.RejectInfoDialog.open()\r\n })\r\n },\r\n // 驳回提交数据\r\n sendRejectInfo(rejectInfo) {\r\n this.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.advanceData))\r\n data.approvalComments = rejectInfo\r\n data.status = 2\r\n apiList.advanceSaveOrUpdate(data, (res) => {\r\n if (res.state) {\r\n this.$message.success(`审核驳回成功`)\r\n this.$emit('getData')\r\n this.handleClose()\r\n }\r\n this.markLoading = false\r\n })\r\n },\r\n // 项目基础信息录入\r\n handleSave(status) {\r\n this.$refs['formInfo'].validate((valid) => {\r\n if (valid) {\r\n let msg = status ? '保存并下发' : '保存为草稿'\r\n this.$confirm(`确认${msg}吗?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then(() => {\r\n this.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.parameter))\r\n delete data.unitValue\r\n data.status = status\r\n let api = data.id\r\n ? 'majorProjectUpdate'\r\n : 'majorProjectAdd'\r\n apiList[api](data, (res) => {\r\n if (res.state) {\r\n this.$message.success(`${msg}成功`)\r\n this.$emit('getData')\r\n this.handleClose()\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n }\r\n })\r\n },\r\n // 推进录入\r\n propelSave(status) {\r\n this.$refs['formInfo1'].validate((valid) => {\r\n if (valid) {\r\n let msg = status\r\n ? status === 3\r\n ? '审核通过'\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.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.advanceData))\r\n if (\r\n this.parameter.pstatus > 1 &&\r\n (this.routeName === 'StartAdvanceEntry' ||\r\n this.routeName === 'ReserveAdvanceEntry')\r\n ) {\r\n data.id = ''\r\n }\r\n data.approvalComments = ''\r\n data.projectId = data.projectId || this.parameter.id\r\n data.produceReport = data.produceReport - 0\r\n data.status = status\r\n apiList.advanceSaveOrUpdate(data, (res) => {\r\n if (res.state) {\r\n this.$message.success(`${msg}成功`)\r\n this.$emit('getData')\r\n if (this.delIds.length) {\r\n this.saveRemoveFiles()\r\n }\r\n this.handleClose()\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n }\r\n })\r\n },\r\n // 改革办修改\r\n propelUpdateSave() {\r\n this.$refs['formInfo1'].validate((valid) => {\r\n if (valid) {\r\n this.$confirm(`确认保存吗?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }).then(() => {\r\n this.markLoading = true\r\n let data = JSON.parse(JSON.stringify(this.advanceData))\r\n apiList.advanceSaveOrUpdate(data, (res) => {\r\n if (res.state) {\r\n this.$message.success(`保存成功`)\r\n this.$emit('getData')\r\n this.handleClose()\r\n }\r\n this.markLoading = false\r\n })\r\n })\r\n }\r\n })\r\n },\r\n // ------------文件相关--------------\r\n // 根据id查询附件\r\n getFiles(id, index) {\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 }\r\n })\r\n },\r\n openUploade() {\r\n let { projectType } = this.parameter\r\n let code =\r\n projectType === 2 ? 'ReadyStartProject' : 'PlanStartProject'\r\n this.$refs.uploadFile.open(code)\r\n },\r\n // 文件涉密\r\n setAipher() {\r\n this.$set(this.advanceData, 'classified', '文件涉密已通过内网上传')\r\n },\r\n // 上传附件\r\n setFileList(file) {\r\n let newFile = {\r\n ...file,\r\n id: file.response.fileId,\r\n }\r\n this.advanceData.files =\r\n this.advanceData.files ||\r\n this.$set(this.advanceData, 'files', [])\r\n this.advanceData.files.push(newFile)\r\n this.advanceData.classified = ''\r\n },\r\n changeFileList(arr) {\r\n this.advanceData.files = arr\r\n },\r\n idExist(id) {\r\n console.log(id, this.fileIds)\r\n if (!this.fileIds.includes(id) && this.parameter.pstatus === 0) {\r\n this.delIds.push(id)\r\n }\r\n console.log(this.delIds)\r\n },\r\n saveRemoveFiles() {\r\n let ids = this.delIds.join(',')\r\n req.remove(portal + `/file/v1/?ids=${ids}`).then((res) => {\r\n // console.log(res)\r\n })\r\n },\r\n },\r\n}\r\n",null]}