diff --git a/src/views/modules/events/appeal-detail-view.vue b/src/views/modules/events/appeal-detail-view.vue new file mode 100644 index 00000000..5cc203ee --- /dev/null +++ b/src/views/modules/events/appeal-detail-view.vue @@ -0,0 +1,432 @@ + + + + + + + diff --git a/src/views/modules/events/appeal-enforcement-add.vue b/src/views/modules/events/appeal-enforcement-add.vue new file mode 100644 index 00000000..b3304631 --- /dev/null +++ b/src/views/modules/events/appeal-enforcement-add.vue @@ -0,0 +1,514 @@ + + + + diff --git a/src/views/modules/events/appeal-list.vue b/src/views/modules/events/appeal-list.vue new file mode 100644 index 00000000..f91eaf63 --- /dev/null +++ b/src/views/modules/events/appeal-list.vue @@ -0,0 +1,213 @@ + + + diff --git a/src/views/modules/events/appeal.vue b/src/views/modules/events/appeal.vue new file mode 100644 index 00000000..02df36a1 --- /dev/null +++ b/src/views/modules/events/appeal.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/views/modules/events/item-deal-detail-view.vue b/src/views/modules/events/item-deal-detail-view.vue index d058a6d3..d76976d6 100644 --- a/src/views/modules/events/item-deal-detail-view.vue +++ b/src/views/modules/events/item-deal-detail-view.vue @@ -2,10 +2,10 @@
-
议题详情
+
项目详情
-
{{dataForm.itemContent}}
+ +
+ +
+
+ 0 - ) { - return "吹哨"; - } else if ( - item.state === 0 && - item.itemDeptDTOS && - item.itemDeptDTOS.length === 0 - ) { - return "办理"; - } else if (item.state === 12) { - return "响应拟办"; + formatState (item) { + if (item.type === 'project') { + if (item.state === 0 && item.itemDeptDTOS && item.itemDeptDTOS.length > 0) { + return '吹哨' + } else if (item.state === 0 && item.itemDeptDTOS && item.itemDeptDTOS.length === 0) { + return '办理' + } else if (item.state === 12 || item.state === 1001) { + return '响应拟办' } else if (item.state === 13) { return "直接办理"; } else if (item.state === 5) { @@ -460,14 +462,13 @@ export default { }, ], handlerDeptIdRule: [ - { - required: true, - message: this.$t("validate.required"), - trigger: "blur", - }, + { required: true, message: this.$t('validate.required'), trigger: 'blur' } ], - }; - }, + categoryIds: [ + { required: true, message: this.$t('validate.required'), trigger: 'blur' } + ] + } + } }, watch: { "postDataForm.handleAdvice": function(val) { @@ -500,7 +501,12 @@ export default { this.evaluateDeptDTOSVisible = false; this.deptResultDTOSVisible = false; } - }, + if (val === 12 || val === 13) { + this.categoryVisible = true + } else { + this.categoryVisible = false + } + } }, created: function() { this.uploadUrl = `${ @@ -508,7 +514,6 @@ export default { }/oss/file/uploadImg?token=${Cookies.get("token")}`; }, methods: { - //刷新 refreshProgress(){ this.timeloading = true; this.$http @@ -523,7 +528,26 @@ export default { }) .catch(() => {}); }, - beforeAvatarUpload(file) { + getCategoryList () { + return this.$http.get('/events/category/list').then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } + var data = res.data + this.getSelectedNode(data, data) + this.categoryOptions = data + }).catch(() => { }) + }, + getSelectedNode (nodeData, parent) { + nodeData.forEach(item => { + if ('children' in item && item.children.length === 0) { + delete item.children + } else if ('children' in item && item.children.length) { + this.getSelectedNode(item.children, item) + } + }) + }, + beforeAvatarUpload (file) { if (this.postDataForm.outHandleImagesPC.length === 3) { this.$message.error("最多上传3张图片!"); return false; @@ -702,13 +726,14 @@ export default { this.isAble = false; this.$nextTick(() => { if (this.dataForm.id) { - this.postDataForm.handleAdvice = ""; - this.postDataForm.outHandleAdvice = ""; - this.postDataForm.handleCategory = ""; - this.postDataForm.deptResultDTOS = []; - this.postDataForm.evaluateDeptDTOS = []; - this.getInfo(); - this.getCommentList(); + this.postDataForm.handleAdvice = '' + this.postDataForm.outHandleAdvice = '' + this.postDataForm.handleCategory = '' + this.postDataForm.deptResultDTOS = [] + this.postDataForm.evaluateDeptDTOS = [] + this.getInfo() + this.getCommentList() + this.getCategoryList() } }); }, @@ -717,11 +742,59 @@ export default { this.previewImgList.push(url); }, // 获取信息 - getInfo() { - this.$http - .get(`/events/item/${this.dataForm.id}`) - .then(({ data: res }) => { + getInfo () { + this.$http.get(`/events/item/${this.dataForm.id}`).then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } this.timeloading = false; + this.dataForm = { + ...this.dataForm, + ...res.data + } + this.dataForm.handleProgressResultDTOS.forEach((item, index, arr) => { + // if (index === arr.length - 1) { + // item.type = 'issue-project' + // } else { + // item.type = 'project' + // } + item.type = 'project' // 2022.9.4 需求变更 + }) + this.dataForm.issueProgressResultDTOS.forEach((item, index, arr) => { + if (index === arr.length - 1) { + item.type = 'init' + } else { + item.type = 'issue' + } + }) + this.timeLineList = [...this.dataForm.handleProgressResultDTOS, ...this.dataForm.issueProgressResultDTOS] + this.$nextTick(() => { + this.timeLineList.forEach((item, index) => { + const oDiv = document.getElementById(`content${index}`) + const oBorder = oDiv.parentNode.parentNode.parentNode.firstChild + if (item.type === 'issue' || item.type === 'issue-project') { + oBorder.style.borderLeft = '1px solid #ffa546' + } else if (item.type === 'project') { + oBorder.style.borderLeft = '1px solid #009688' + } + }) + }) + this.initBmap(this.dataForm.issueLatitude, this.dataForm.issueLongitude) + for (let index = 0; index < res.data.handleResultDTOS.length; index++) { + const handleResultDTO = res.data.handleResultDTOS[index] + if (handleResultDTO.select === true) { + this.dataForm.handleCategory = handleResultDTO.processResult + } + } + }).catch(() => { }) + }, + deleteComment (val) { + this.$confirm('确定要屏蔽该评论吗?屏蔽后不可恢复。', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.$http['post']('/events/item/deleteComment', { commentIds: [val] }).then(({ data: res }) => { if (res.code !== 0) { return this.$message.error(res.msg); } @@ -835,29 +908,78 @@ export default { .catch(() => {}); }, // 表单提交 - dataFormSubmitHandle: debounce( - function() { - this.postDataForm.deptResultDTOS = []; - for (let i = 0; i < this.deptResult.length; i++) { - for (let j = 0; j < this.dataForm.deptResultDTOS.length; j++) { - if (this.deptResult[i] === this.dataForm.deptResultDTOS[j].deptId) { - this.postDataForm.deptResultDTOS.push( - this.dataForm.deptResultDTOS[j] - ); - break; - } + dataFormSubmitHandle: debounce(function () { + this.postDataForm.categoryId = this.categoryIds[this.categoryIds.length - 1] + this.postDataForm.deptResultDTOS = [] + for (let i = 0; i < this.deptResult.length; i++) { + for (let j = 0; j < this.dataForm.deptResultDTOS.length; j++) { + if (this.deptResult[i] === this.dataForm.deptResultDTOS[j].deptId) { + this.postDataForm.deptResultDTOS.push(this.dataForm.deptResultDTOS[j]) + break } } this.postDataForm.id = this.dataForm.id; if (this.postDataForm.handleCategory === "") { return this.$message.error("请选择处理选项"); } +<<<<<<< HEAD if (this.deptResultDTOSVisible) { if ( this.postDataForm.deptResultDTOS === undefined || this.postDataForm.deptResultDTOS.length <= 0 ) { return this.$message.error("请选择流转对象"); +======= + } else { + this.postDataForm.deptResultDTOS = [] + } + if (this.categoryVisible) { + if (this.postDataForm.categoryId === undefined || this.postDataForm.categoryId === '') { + return this.$message.error('请选择所属类别') + } + } + if (this.postDataForm.outHandleAdvice === '' && this.postDataForm.handleCategory !== 11) { + return this.$message.error('回复居民意见不能为空') + } + if (this.postDataForm.outHandleAdvice.length > 500 && this.postDataForm.handleCategory !== 11) { + return this.$message.error('回复居民意见不能超过500字') + } + if (this.postDataForm.handleAdvice === '') { + return this.$message.error('项目处理意见不能为空') + } + if (this.postDataForm.handleAdvice.length > 500) { + return this.$message.error('项目处理意见不能超过500字') + } + if (this.evaluateDeptDTOSVisible) { + this.postDataForm.evaluateDeptDTOS = this.dataForm.evaluateDeptDTOS + if (this.postDataForm.evaluateDeptDTOS.length !== this.dataForm.evaluateDeptDTOS.length) { + return this.$message.error('请完善满意度调查') + } + } else { + this.postDataForm.evaluateDeptDTOS = [] + } + this.isAble = true + // 将对象遍历成数组 + for (let oimg = 0; oimg < this.postDataForm.outHandleImagesPC.length; oimg++) { + this.postDataForm.outHandleImages[oimg] = this.postDataForm.outHandleImagesPC[oimg].url + } + for (let himg = 0; himg < this.postDataForm.handleImagesPC.length; himg++) { + this.postDataForm.handleImages[himg] = this.postDataForm.handleImagesPC[himg].url + } + this.$http['post']( + '/events/item/itemHandleSubmit', this.postDataForm).then(({ data: res }) => { + if (res.code !== 0) { + this.isAble = false + return this.$message.error(res.msg) + } + this.$message({ + message: this.$t('prompt.success'), + type: 'success', + duration: 500, + onClose: () => { + this.visible = false + this.$emit('refreshDataList') +>>>>>>> 3ee6e782587c14f04784cbef302b82aa4114e8b8 } } else { this.postDataForm.deptResultDTOS = []; diff --git a/src/views/modules/events/item-examine-detail-view.vue b/src/views/modules/events/item-examine-detail-view.vue new file mode 100644 index 00000000..c4cb53c4 --- /dev/null +++ b/src/views/modules/events/item-examine-detail-view.vue @@ -0,0 +1,628 @@ + + + + + + + + +