8 changed files with 264 additions and 502 deletions
@ -1,230 +0,0 @@ |
|||
<template> |
|||
<div class="search"> |
|||
|
|||
<el-form ref="ref_form1" :inline="false" :model="formData" :rules="dataRule"> |
|||
<el-form-item label="事件分类" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="categoryList"> |
|||
<div :class="{ 'visiual-form': source === 'visiual' }"> |
|||
<my-cascader v-model.trim="formData.categoryList" :casOptions="casOptions" :optionProps="optionProps" |
|||
@handleChangeCate="handleChangeCate"> |
|||
</my-cascader> |
|||
</div> |
|||
</el-form-item> |
|||
<el-form-item label="议题标题" prop="issueTitle" label-width="118px" :class="{ 'form-item': source === 'visiual' }" |
|||
style="display: block"> |
|||
<div :class="{ 'visiual-form': source === 'visiual' }"> |
|||
<el-input v-model.trim="formData.issueTitle" class="cell-width-2" clearable placeholder="请输入议题标题"> |
|||
</el-input> |
|||
</div> |
|||
|
|||
</el-form-item> |
|||
<el-form-item label="处理意见" prop="suggestion" label-width="118px" :class="{ 'form-item': source === 'visiual' }" |
|||
style="display: block"> |
|||
<div :class="{ 'visiual-form': source === 'visiual' }"> |
|||
<el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5" |
|||
placeholder="请输入处理意见,不超过500字" v-model.trim="formData.suggestion"></el-input> |
|||
</div> |
|||
|
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { Loading } from "element-ui"; // 引入Loading服务 |
|||
import { requestPost } from "@/js/dai/request"; |
|||
import formVltHelper from "dai-js/tools/formVltHelper"; |
|||
import myCascader from "./myCascader.vue"; |
|||
import { isCard } from "@/utils/validate"; |
|||
let loading; // 加载动画 |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
btnDisable: false, |
|||
formData: { |
|||
operationType: '3',//处理方式[0:已回复 1:已转项目 2:已转需求 3:转议题] |
|||
suggestion: '', |
|||
issueTitle: '', |
|||
categoryList: '' |
|||
}, |
|||
|
|||
|
|||
okflag: false, |
|||
|
|||
eventDetailCopy: {}, |
|||
|
|||
casOptions: [], |
|||
iscascaderShow: 0, |
|||
selCategoryArray: [], |
|||
selCateObj: {}, |
|||
optionProps: { |
|||
multiple: false, |
|||
value: 'id', |
|||
label: 'name', |
|||
children: 'subCategory', |
|||
}, |
|||
|
|||
}; |
|||
}, |
|||
components: { myCascader }, |
|||
computed: { |
|||
dataRule() { |
|||
|
|||
return { |
|||
issueTitle: [ |
|||
{ required: true, message: "议题标题不能为空", trigger: "blur" }, |
|||
], |
|||
suggestion: [ |
|||
{ required: true, message: "处理建议不能为空", trigger: "blur" }, |
|||
], |
|||
categoryList: [ |
|||
{ required: true, message: "事件分类不能为空", trigger: "blur" } |
|||
] |
|||
}; |
|||
}, |
|||
|
|||
|
|||
}, |
|||
props: { |
|||
eventId: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
eventDetailData: { |
|||
type: Object, |
|||
default() { |
|||
return {} |
|||
} |
|||
}, |
|||
source: {//展示来源:manage 管理平台 visiual 可视化平台 |
|||
type: String, |
|||
default: 'manage' |
|||
} |
|||
}, |
|||
watch: {}, |
|||
|
|||
created() { |
|||
|
|||
console.log(this.source) |
|||
|
|||
}, |
|||
|
|||
async mounted() { |
|||
|
|||
this.getCategoryList() |
|||
if (this.eventId) { |
|||
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); |
|||
|
|||
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) { |
|||
this.selCategoryArray = [] |
|||
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId) |
|||
this.selCategoryArray.push(this.eventDetailCopy.categoryId) |
|||
|
|||
this.selCateObj = { |
|||
name: this.eventDetailCopy.categoryName, |
|||
id: this.eventDetailCopy.categoryId |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
|
|||
methods: { |
|||
async getCategoryList() { |
|||
const url = "/governance/issueprojectcategorydict/list" |
|||
|
|||
let params = {} |
|||
|
|||
const { data, code, msg } = await requestPost(url, params) |
|||
|
|||
if (code === 0) { |
|||
|
|||
let treeDataNew = this.filterTree(data) |
|||
|
|||
//组织级联数据 |
|||
++this.iscascaderShow |
|||
this.casOptions = [] |
|||
|
|||
this.casOptions = treeDataNew |
|||
|
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
|
|||
}, |
|||
|
|||
handleChangeCate(obj) { |
|||
// console.log(this.$refs["myCascader"].getCheckedNodes()[0].data) |
|||
// this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data |
|||
this.selCateObj = obj |
|||
this.formData.categoryList = []; |
|||
let flag = JSON.stringify(obj) == '{}' |
|||
if (flag) this.formData.categoryList = [] |
|||
else this.formData.categoryList.push(this.selCateObj); |
|||
}, |
|||
|
|||
//重构树,去除网格 |
|||
filterTree(arr) { |
|||
let childs = arr |
|||
for (let i = childs.length; i--; i > 0) { |
|||
if (childs[i].subCategory) { |
|||
if (childs[i].subCategory.length) { |
|||
this.filterTree(childs[i].subCategory) |
|||
} else { |
|||
delete childs[i].subCategory |
|||
} |
|||
} |
|||
} |
|||
return arr |
|||
}, |
|||
async getIssueInfo() { |
|||
this.okflag = false |
|||
this.$refs["ref_form1"].validate((valid, messageObj) => { |
|||
if (!valid) { |
|||
app.util.validateRule(messageObj); |
|||
|
|||
} else { |
|||
this.formData.icEventId = this.eventId |
|||
this.formData.categoryId = this.selCateObj.id |
|||
this.formData.categoryList = [] |
|||
this.formData.categoryList.push(this.selCateObj) |
|||
|
|||
this.okflag = true |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
resetData() { |
|||
|
|||
}, |
|||
// 开启加载动画 |
|||
startLoading() { |
|||
loading = Loading.service({ |
|||
lock: true, // 是否锁定 |
|||
text: "正在加载……", // 加载中需要显示的文字 |
|||
background: "rgba(0,0,0,.7)", // 背景颜色 |
|||
}); |
|||
}, |
|||
// 结束加载动画 |
|||
endLoading() { |
|||
// clearTimeout(timer); |
|||
if (loading) { |
|||
loading.close(); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
|
|||
<style lang='scss' scoped> |
|||
@import "@/assets/scss/modules/visual/a_customize.scss"; |
|||
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
|||
</style> |
|||
|
|||
|
|||
|
|||
<style scoped> |
|||
.el-dialog__body { |
|||
padding: 0 10px 20px !important; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue