Browse Source

事件管理处理中事件分类加验证

feature
mk 3 years ago
parent
commit
eae9cd7891
  1. 62
      src/views/modules/shequzhili/event/cpts/myCascader.vue
  2. 32
      src/views/modules/shequzhili/event/cpts/process-form-issue.vue
  3. 577
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  4. 31
      src/views/modules/shequzhili/event/cpts/process-form-replay.vue

62
src/views/modules/shequzhili/event/cpts/myCascader.vue

@ -0,0 +1,62 @@
<template>
<div>
<el-form :model="form" >
<el-form-item>
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="form.selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
clearable
@change="handleChangeCate"></el-cascader>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
form:{
selCategoryArray:{}
},
selCateObj:{},
iscascaderShow:0
};
},
props:{
casOptions:{
type:Array,
default:()=>[]
},
optionProps:{
type:Object,
default:()=>{}
}
},
created() {},
methods: {
handleChangeCate(){
if(this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]){
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
}else{
this.selCateObj = {}
}
this.$emit('handleChangeCate',this.selCateObj)
}
},
mounted(){
++this.iscascaderShow;
},
components: {},
computed: {},
watch: {},
};
</script>
<style lang="scss" scoped>
</style>>

32
src/views/modules/shequzhili/event/cpts/process-form-issue.vue

@ -10,14 +10,20 @@
:class="{'form-item':source==='visiual'}" :class="{'form-item':source==='visiual'}"
prop="categoryList"> prop="categoryList">
<div :class="{'visiual-form':source==='visiual'}"> <div :class="{'visiual-form':source==='visiual'}">
<el-cascader class="cell-width-2" <!-- <el-cascader class="cell-width-2"
ref="myCascader" ref="myCascader"
v-model="selCategoryArray" v-model="selCategoryArray"
:key="iscascaderShow" :key="iscascaderShow"
:options="casOptions" :options="casOptions"
:props="optionProps" :props="optionProps"
:show-all-levels="false" :show-all-levels="false"
@change="handleChangeCate"></el-cascader> @change="handleChangeCate"></el-cascader> -->
<my-cascader v-model="formData.categoryList"
:casOptions="casOptions"
:optionProps="optionProps"
@handleChangeCate="handleChangeCate">
</my-cascader>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="议题标题" <el-form-item label="议题标题"
@ -60,7 +66,7 @@
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper"; import formVltHelper from "dai-js/tools/formVltHelper";
import myCascader from "./myCascader.vue";
import { isCard } from "@/utils/validate"; import { isCard } from "@/utils/validate";
let loading; // let loading; //
@ -74,7 +80,7 @@ export default {
operationType: '3',//[0: 1: 2: 3:] operationType: '3',//[0: 1: 2: 3:]
suggestion: '', suggestion: '',
issueTitle: '', issueTitle: '',
categoryList:''
}, },
@ -95,7 +101,7 @@ export default {
}; };
}, },
components: {}, components: {myCascader},
computed: { computed: {
dataRule () { dataRule () {
@ -106,7 +112,9 @@ export default {
suggestion: [ suggestion: [
{ required: true, message: "处理建议不能为空", trigger: "blur" }, { required: true, message: "处理建议不能为空", trigger: "blur" },
], ],
categoryList:[
{required:true,message:"事件分类不能为空",trigger:"blur"}
]
}; };
}, },
@ -179,10 +187,14 @@ export default {
}, },
handleChangeCate () { handleChangeCate (obj) {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data) // console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = 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);
}, },
// //

577
src/views/modules/shequzhili/event/cpts/process-form-project.vue

@ -1,76 +1,105 @@
<template> <template>
<div class=""> <div class="">
<el-form ref="ref_form" <el-form
:inline="false" ref="ref_form"
:model="formData" :inline="false"
:rules="dataRule" :model="formData"
label-width="100px"> :rules="dataRule"
<el-form-item label="事件分类" label-width="100px"
label-width="150px" >
:class="{'form-item':source==='visiual'}" <el-form-item
prop="categoryList"> label="事件分类"
<div :class="{'visiual-form':source==='visiual'}"> label-width="150px"
<el-cascader class="cell-width-2" :class="{ 'form-item': source === 'visiual' }"
prop="categoryList"
>
<div :class="{ 'visiual-form': source === 'visiual' }">
<!-- <el-cascader class="cell-width-2"
ref="myCascader" ref="myCascader"
v-model="selCategoryArray" v-model="selCategoryArray"
:key="iscascaderShow" :key="iscascaderShow"
:options="casOptions" :options="casOptions"
:props="optionProps" :props="optionProps"
:show-all-levels="false" :show-all-levels="false"
@change="handleChangeCate"></el-cascader> @change="handleChangeCate"></el-cascader> -->
<my-cascader
v-model="formData.categoryList"
:casOptions="casOptions"
:props="optionProps"
:optionProps="optionProps"
@handleChangeCate="handleChangeCate"
></my-cascader>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="项目标题" <el-form-item
prop="title" label="项目标题"
:class="{'form-item':source==='visiual'}" prop="title"
label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block"> label-width="150px"
<div :class="{'visiual-form':source==='visiual'}"> style="display: block"
<el-input class="cell-width-1" >
maxlength="50" <div :class="{ 'visiual-form': source === 'visiual' }">
placeholder="请输入项目标题" <el-input
v-model="formData.title"> class="cell-width-1"
maxlength="50"
placeholder="请输入项目标题"
v-model="formData.title"
>
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="所属网格 " <el-form-item
prop="gridId" label="所属网格 "
:class="{'form-item':source==='visiual'}" prop="gridId"
label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block"> label-width="150px"
<div :class="{'visiual-form':source==='visiual'}"> style="display: block"
<el-select v-model.trim="formData.gridId" >
placeholder="请选择" <div :class="{ 'visiual-form': source === 'visiual' }">
clearable <el-select
class="cell-width-1"> v-model.trim="formData.gridId"
<el-option v-for="item in gridList" placeholder="请选择"
:key="item.value" clearable
:label="item.label" class="cell-width-1"
:value="item.value"> >
<el-option
v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="处理部门" <el-form-item
label-width="150px" label="处理部门"
:class="{'form-item':source==='visiual'}" label-width="150px"
prop="staffList"> :class="{ 'form-item': source === 'visiual' }"
<el-popover placement="bottom" prop="staffList"
width="400" >
height="400" <el-popover
v-model="visibleStaffPanel"> placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel"
>
<div class="f"> <div class="f">
<select-staff @confirm="(ret) => (formData.staffList = ret)" <select-staff
@close="visibleStaffPanel = false" /> @confirm="(ret) => (formData.staffList = ret)"
@close="visibleStaffPanel = false"
/>
</div> </div>
<div slot="reference"> <div slot="reference">
<a v-if="formData.staffList.length == 0" <a v-if="formData.staffList.length == 0" style="cursor: pointer"
style="cursor: pointer">点击选择</a> >点击选择</a
<a v-else >
style="cursor: pointer">已选 {{ formData.staffList.length }} </a> <a v-else style="cursor: pointer"
>已选 {{ formData.staffList.length }} </a
>
</div> </div>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
@ -92,116 +121,134 @@
</div> </div>
</el-form-item> --> </el-form-item> -->
<el-form-item label="项目方案" <el-form-item
label-width="150px" label="项目方案"
:class="{'form-item':source==='visiual'}" label-width="150px"
prop="publicReply"> :class="{ 'form-item': source === 'visiual' }"
<div :class="{'visiual-form':source==='visiual'}"> prop="publicReply"
<el-input type="textarea" >
class="cell-width-area" <div :class="{ 'visiual-form': source === 'visiual' }">
:rows="2" <el-input
placeholder="请输入项目方案" type="textarea"
v-model="formData.publicReply"> class="cell-width-area"
:rows="2"
placeholder="请输入项目方案"
v-model="formData.publicReply"
>
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="内部备注" <el-form-item
label-width="150px" label="内部备注"
:class="{'form-item':source==='visiual'}" label-width="150px"
prop="internalRemark"> :class="{ 'form-item': source === 'visiual' }"
<div :class="{'visiual-form':source==='visiual'}"> prop="internalRemark"
<el-input type="textarea" >
class="cell-width-area" <div :class="{ 'visiual-form': source === 'visiual' }">
:rows="2" <el-input
placeholder="请输入内部备注" type="textarea"
v-model="formData.internalRemark"> class="cell-width-area"
:rows="2"
placeholder="请输入内部备注"
v-model="formData.internalRemark"
>
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="图片/附件" <el-form-item
label-width="150px" label="图片/附件"
:class="{'form-item':source==='visiual'}" label-width="150px"
prop="internalFile"> :class="{ 'form-item': source === 'visiual' }"
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" prop="internalFile"
:action="uploadUlr" >
:data="{ customerId: customerId }" <el-upload
:show-file-list="true" :headers="$getElUploadHeaders()"
:on-success="handleImgSuccess" class="avatar-uploader"
:on-remove="handleImgRemove" :action="uploadUlr"
:before-upload="beforeImgUpload"> :data="{ customerId: customerId }"
<i v-if="source==='manage'" :show-file-list="true"
:class="['el-icon-plus']"></i> :on-success="handleImgSuccess"
<img v-else :on-remove="handleImgRemove"
style="width:27px;height:27px" :before-upload="beforeImgUpload"
src="@/assets/img/file-add.png"> >
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i>
<img
v-else
style="width: 27px; height: 27px"
src="@/assets/img/file-add.png"
/>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="标签" <el-form-item
label-width="150px" label="标签"
:class="{'form-item':source==='visiual'}" label-width="150px"
prop="tagList"> :class="{ 'form-item': source === 'visiual' }"
prop="tagList"
<fold-text v-if="tagList.length>0" >
style="width: 300px" <fold-text v-if="tagList.length > 0" style="width: 300px" :row="3">
:row="3"> <div :key="item.name" class="tag-name" v-for="item in tagList">
<div :key="item.name"
class="tag-name"
v-for="item in tagList">
{{ item.name }} {{ item.name }}
</div> </div>
</fold-text> </fold-text>
<el-popover placement="top" <el-popover
width="450" placement="top"
height="450" width="450"
v-model="visibleTagPanel"> height="450"
<div class="f" v-model="visibleTagPanel"
style="min-height: 120px"> >
<div class="f" style="min-height: 120px">
<h2>选择标签</h2> <h2>选择标签</h2>
<el-select style="width: 350px" <el-select
v-model="selectedTagData" style="width: 350px"
multiple v-model="selectedTagData"
allow-create multiple
filterable allow-create
placeholder="请选择" filterable
@change="handleTagChange"> placeholder="请选择"
@change="handleTagChange"
>
<el-option-group label="自定义标签"> <el-option-group label="自定义标签">
<el-option v-for="item in tagOptions.customized" <el-option
:key="item.id" v-for="item in tagOptions.customized"
:label="item.name" :key="item.id"
:value="item.id"> :label="item.name"
:value="item.id"
>
</el-option> </el-option>
</el-option-group> </el-option-group>
<el-option-group label="常用标签"> <el-option-group label="常用标签">
<el-option v-for="item in tagOptions.defaulted" <el-option
:key="item.id" v-for="item in tagOptions.defaulted"
:label="item.name" :key="item.id"
:value="item.id"> :label="item.name"
:value="item.id"
>
</el-option> </el-option>
</el-option-group> </el-option-group>
</el-select> </el-select>
<el-button style="margin-left: 10px" <el-button
size="small" style="margin-left: 10px"
type="danger" size="small"
@click="updateProjectTag">关闭</el-button> type="danger"
@click="updateProjectTag"
>关闭</el-button
>
</div> </div>
<div slot="reference"> <div slot="reference">
<el-button v-if="source==='manage'" <el-button v-if="source === 'manage'" size="small" type=""
size="small" >选择</el-button
type="">选择</el-button> >
<div v-else <div v-else class="one-btn">选择</div>
class="one-btn">选择</div>
</div> </div>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</template> </template>
@ -211,64 +258,64 @@ import { requestPost } from "@/js/dai/request";
import selectStaff from "@/views/components/selectStaff"; import selectStaff from "@/views/components/selectStaff";
import formVltHelper from "dai-js/tools/formVltHelper"; import formVltHelper from "dai-js/tools/formVltHelper";
import foldText from "@/views/components/foldText"; import foldText from "@/views/components/foldText";
import myCascader from "./myCascader.vue";
import { isCard } from "@/utils/validate"; import { isCard } from "@/utils/validate";
let loading; // let loading; //
function iniFmData () { function iniFmData() {
return { return {
operationType: '1',//[0: 1: 2:] operationType: "1", //[0: 1: 2:]
publicReply: '',// 1000 publicReply: "", // 1000
internalRemark: '',// 1000 internalRemark: "", // 1000
gridId: '',// gridId: "", //
assistanceUnitIndex: '', assistanceUnitIndex: "",
assistanceUnitId: '',// Id assistanceUnitId: "", // Id
assistanceUnitType: '',// 12 assistanceUnitType: "", // 12
staffList: [],// staffList: [], //
categoryList: [],// categoryList: [], //
tagList: [],// tagList: [], //
internalFile: [],// internalFile: [], //
title: '',// title: "", //
publicFile: [],// publicFile: [], //
locateAddress: '',// locateAddress: "", //
locateLongitude: '',// locateLongitude: "", //
locateDimension: '',// locateDimension: "", //
eventId: '',// eventId: "", //
}; };
} }
export default { export default {
data () { data() {
return { return {
btnDisable: false, btnDisable: false,
customerId: localStorage.getItem("customerId"), customerId: localStorage.getItem("customerId"),
gridList: [],//list-- gridList: [], //list--
myDepartmentList: [],// myDepartmentList: [], //
visibleStaffPanel: false, visibleStaffPanel: false,
assistanceUnitList: [],// assistanceUnitList: [], //
tagList: [],// tagList: [], //
tagOptions: [], tagOptions: [],
visibleTagPanel: false, visibleTagPanel: false,
selectedTagData: [], selectedTagData: [],
casOptions: [], casOptions: [],
iscascaderShow: 0, // iscascaderShow: 0,
selCategoryArray: [], selCategoryArray: [],
selCateObj: {}, selCateObj: {},
optionProps: { optionProps: {
multiple: false, multiple: false,
value: 'id', value: "id",
label: 'name', label: "name",
children: 'subCategory', children: "subCategory",
}, },
formData: iniFmData(), formData: iniFmData(),
formDataTemp: { formDataTemp: {
assistanceUnitIndex: 0, assistanceUnitIndex: 0,
assistanceUnitId: '',// Id assistanceUnitId: "", // Id
assistanceUnitType: '',// 12 assistanceUnitType: "", // 12
eventId: "", eventId: "",
gridId: "63d5ff92ea981b1c58e4914ac894c610", gridId: "63d5ff92ea981b1c58e4914ac894c610",
@ -280,38 +327,34 @@ export default {
internalFile: [], internalFile: [],
staffList: [], staffList: [],
tagList: [{ tagList: [
id: "46294b3c9f96ee4d0b00e997e06c8f97", {
isDisable: "enable", id: "46294b3c9f96ee4d0b00e997e06c8f97",
name: "车行道、人行道、盲道、无障碍通道、路名牌", isDisable: "enable",
}, name: "车行道、人行道、盲道、无障碍通道、路名牌",
{ },
id: "953bafc1191f784841d9b8da61ec7b9b", {
isDisable: "enable", id: "953bafc1191f784841d9b8da61ec7b9b",
name: "城市广场管理", isDisable: "enable",
}], name: "城市广场管理",
},
],
}, },
okflag: false, okflag: false,
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
eventDetailCopy: {} eventDetailCopy: {},
}; };
}, },
components: { selectStaff, foldText }, components: { selectStaff, foldText, myCascader },
computed: { computed: {
dataRule () { dataRule() {
return { return {
categoryList: [ categoryList: [
{ required: true, message: "请填写事件分类", trigger: "blur" }, { required: true, message: "事件分类不能为空", trigger: "blur" },
],
title: [
{ required: true, message: "标题不能为空", trigger: "blur" },
], ],
title: [{ required: true, message: "标题不能为空", trigger: "blur" }],
gridId: [ gridId: [
{ required: true, message: "所属网格不能为空", trigger: "blur" }, { required: true, message: "所属网格不能为空", trigger: "blur" },
], ],
@ -321,14 +364,12 @@ export default {
publicReply: [ publicReply: [
{ required: true, message: "项目方案不能为空", trigger: "blur" }, { required: true, message: "项目方案不能为空", trigger: "blur" },
], ],
}; };
}, },
}, },
props: { props: {
gridId: {//id gridId: {
//id
type: String, type: String,
default: "", default: "",
}, },
@ -338,23 +379,21 @@ export default {
}, },
eventDetailData: { eventDetailData: {
type: Object, type: Object,
default () { default() {
return {} return {};
} },
}, },
source: {//manage visiual source: {
//manage visiual
type: String, type: String,
default: 'manage' default: "manage",
} },
}, },
watch: { watch: {
gridId: function (val) { gridId: function (val) {
this.formData.gridId = val;
this.formData.gridId = val
}, },
"formData.assistanceUnitIndex": function (val) { "formData.assistanceUnitIndex": function (val) {
if (val === "" || this.assistanceUnitList.length === 0) { if (val === "" || this.assistanceUnitList.length === 0) {
this.formData.assistanceUnitId = ""; this.formData.assistanceUnitId = "";
this.formData.assistanceUnitType = ""; this.formData.assistanceUnitType = "";
@ -366,7 +405,7 @@ export default {
} }
}, },
async selectedTagData (val) { async selectedTagData(val) {
const { tagOptions } = this; const { tagOptions } = this;
this.tagList = await Promise.all( this.tagList = await Promise.all(
val.map(async (id) => { val.map(async (id) => {
@ -393,115 +432,112 @@ export default {
); );
this.tagList = this.tagList.filter((item) => item.id); this.tagList = this.tagList.filter((item) => item.id);
console.log(this.tagList) console.log(this.tagList);
}, },
}, },
created () { created() {},
async mounted() {
}, const { user } = this.$store.state;
this.agencyId = user.agencyId;
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
this.getCategoryList(); this.getCategoryList();
this.loadGrid(); this.loadGrid();
this.getMyDepartmentList(); this.getMyDepartmentList();
// this.getAssistanceUnitList(); // this.getAssistanceUnitList();
this.getTagList() this.getTagList();
// this.formData = { ...this.formDataTemp } // this.formData = { ...this.formDataTemp }
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
this.formData.gridId = this.eventDetailCopy.gridId this.formData.gridId = this.eventDetailCopy.gridId;
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) { if (
this.selCategoryArray = [] this.eventDetailCopy.parentCategoryId &&
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId) this.eventDetailCopy.categoryId
this.selCategoryArray.push(this.eventDetailCopy.categoryId) ) {
this.selCategoryArray = [];
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId);
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.selCateObj = { this.selCateObj = {
name: this.eventDetailCopy.categoryName, name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId id: this.eventDetailCopy.categoryId,
} };
this.formData.categoryList = [] this.formData.categoryList = [];
this.formData.categoryList.push(this.selCateObj) this.formData.categoryList.push(this.selCateObj);
} }
} else { } else {
this.formData.gridId = this.gridId this.formData.gridId = this.gridId;
} }
}, },
methods: { methods: {
async getCategoryList () { async getCategoryList() {
const url = "/governance/issueprojectcategorydict/list" const url = "/governance/issueprojectcategorydict/list";
let params = {} let params = {};
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
let treeDataNew = this.filterTree(data) let treeDataNew = this.filterTree(data);
// //
++this.iscascaderShow // ++this.iscascaderShow;
this.casOptions = [] this.casOptions = [];
this.casOptions = treeDataNew this.casOptions = treeDataNew;
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
}, },
handleChangeCate () { handleChangeCate(obj) {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data) // console.log(this.$refs["myCascader"].getCheckedNodes()[0].data);
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data // this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data;
this.formData.categoryList = [] this.selCateObj = obj
this.formData.categoryList.push(this.selCateObj) this.formData.categoryList = [];
let flag = JSON.stringify(obj) == '{}'
if(flag) this.formData.categoryList = []
else this.formData.categoryList.push(this.selCateObj);
}, },
// //
filterTree (arr) { filterTree(arr) {
let childs = arr let childs = arr;
for (let i = childs.length; i--; i > 0) { for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) { if (childs[i].subCategory) {
if (childs[i].subCategory.length) { if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory) this.filterTree(childs[i].subCategory);
} else { } else {
delete childs[i].subCategory delete childs[i].subCategory;
} }
} }
} }
return arr return arr;
}, },
async loadGrid () { async loadGrid() {
const url = "/gov/org/customergrid/gridoption" const url = "/gov/org/customergrid/gridoption";
let params = { let params = {
agencyId: this.agencyId agencyId: this.agencyId,
} };
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.gridList = data this.gridList = data;
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
}, },
// //
async getMyDepartmentList () { async getMyDepartmentList() {
const url = "/governance/trace/approvalagencylist"; const url = "/governance/trace/approvalagencylist";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
issueId: '', issueId: "",
projectStaffId: '', projectStaffId: "",
}); });
if (code === 0) { if (code === 0) {
@ -512,7 +548,7 @@ export default {
}, },
// //
async getAssistanceUnitList () { async getAssistanceUnitList() {
const url = "/heart/icpartyunit/assistanceUnitList"; const url = "/heart/icpartyunit/assistanceUnitList";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -521,17 +557,14 @@ export default {
if (code === 0) { if (code === 0) {
this.assistanceUnitList = data; this.assistanceUnitList = data;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
}, },
// //
async getTagList () { async getTagList() {
const url = "/governance/issueprojecttagdict/list"; const url = "/governance/issueprojecttagdict/list";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {});
});
if (code === 0) { if (code === 0) {
this.tagOptions = { this.tagOptions = {
@ -543,29 +576,26 @@ export default {
} }
}, },
handleTagChange (val) { handleTagChange(val) {
console.log(val); console.log(val);
}, },
updateProjectTag () { updateProjectTag() {
this.visibleTagPanel = false; this.visibleTagPanel = false;
}, },
async getProjectInfo() {
async getProjectInfo () { this.okflag = false;
this.okflag = false
this.$refs["ref_form"].validate((valid, messageObj) => { this.$refs["ref_form"].validate((valid, messageObj) => {
if (!valid) { if (!valid) {
app.util.validateRule(messageObj); app.util.validateRule(messageObj);
} else { } else {
this.formData.tagList = this.tagList;
this.formData.tagList = this.tagList this.okflag = true;
this.okflag = true
} }
}); });
}, },
beforeImgUpload (file) { beforeImgUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 10; const isLt1M = file.size / 1024 / 1024 < 10;
if (!isLt1M) { if (!isLt1M) {
@ -573,10 +603,8 @@ export default {
} }
return isLt1M; return isLt1M;
}, },
resetData () { resetData() {},
handleImgSuccess(res, file, fileList) {
},
handleImgSuccess (res, file, fileList) {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
@ -593,7 +621,7 @@ export default {
} }
}, },
handleImgRemove (file) { handleImgRemove(file) {
let index = this.formData.internalFile.findIndex( let index = this.formData.internalFile.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
@ -601,9 +629,8 @@ export default {
console.log(this.formData.internalFile); console.log(this.formData.internalFile);
}, },
// //
startLoading () { startLoading() {
loading = Loading.service({ loading = Loading.service({
lock: true, // lock: true, //
text: "正在加载……", // text: "正在加载……", //
@ -611,7 +638,7 @@ export default {
}); });
}, },
// //
endLoading () { endLoading() {
// clearTimeout(timer); // clearTimeout(timer);
if (loading) { if (loading) {
loading.close(); loading.close();

31
src/views/modules/shequzhili/event/cpts/process-form-replay.vue

@ -10,14 +10,18 @@
:class="{'form-item':source==='visiual'}" :class="{'form-item':source==='visiual'}"
prop="categoryList"> prop="categoryList">
<div :class="{'visiual-form':source==='visiual'}"> <div :class="{'visiual-form':source==='visiual'}">
<el-cascader class="cell-width-2" <!-- <el-cascader class="cell-width-2"
ref="myCascader" ref="myCascader"
v-model="selCategoryArray" v-model="selCategoryArray"
:key="iscascaderShow" :key="iscascaderShow"
:options="casOptions" :options="casOptions"
:props="optionProps" :props="optionProps"
:show-all-levels="false" :show-all-levels="false"
@change="handleChangeCate"></el-cascader> @change="handleChangeCate"></el-cascader> -->
<my-cascader v-model="formData.categoryList"
:casOptions="casOptions"
:optionProps="optionProps"
@handleChangeCate="handleChangeCate"></my-cascader>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="回复内容" <el-form-item label="回复内容"
@ -55,7 +59,7 @@ import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper"; import formVltHelper from "dai-js/tools/formVltHelper";
import { isCard } from "@/utils/validate"; import { isCard } from "@/utils/validate";
import myCascader from "./myCascader.vue";
let loading; // let loading; //
@ -66,7 +70,8 @@ export default {
formData: { formData: {
operationType: '0',//[0: 1: 2:] operationType: '0',//[0: 1: 2:]
content: '', content: '',
status: '' status: '',
categoryList:[]
}, },
status: false, status: false,
@ -87,7 +92,7 @@ export default {
}; };
}, },
components: {}, components: {myCascader},
computed: { computed: {
dataRule () { dataRule () {
@ -95,7 +100,9 @@ export default {
content: [ content: [
{ required: true, message: "回复内容不能为空", trigger: "blur" }, { required: true, message: "回复内容不能为空", trigger: "blur" },
], ],
categoryList:[
{required:true,message:"事件分类不能为空",trigger:"blur"}
]
}; };
}, },
@ -168,10 +175,14 @@ export default {
}, },
handleChangeCate () { handleChangeCate (obj) {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data) // console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = 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);
}, },
// //

Loading…
Cancel
Save