5 changed files with 274 additions and 12 deletions
@ -0,0 +1,216 @@ |
|||
<!-- |
|||
* @Author: yanLu xgktv007@163.com |
|||
* @Date: 2023-09-05 10:21:34 |
|||
* @LastEditors: mk 2403457699@qq.com |
|||
* @LastEditTime: 2023-09-18 17:16:40 |
|||
* @Description: 事件转办表单 |
|||
* |
|||
--> |
|||
<template> |
|||
<div class="search"> |
|||
<el-form ref="ref_form1" :model="formData" :inline="false" :rules="dataRule" class="form"> |
|||
<el-form-item label="是否已联系当事人" label-width="150px" :class="{ 'form-item': source === 'visiual' }" |
|||
prop="returnLoseContact"> |
|||
<el-select v-model="formData.returnLoseContact" placeholder="请选择"> |
|||
<el-option label="已联系当事人" value="1"></el-option> |
|||
<el-option label="未联系当事人" value="0"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="建议办理部门" prop="returnSuggestDept" label-width="150px" |
|||
:class="{ 'form-item': source === 'visiual' }"> |
|||
<el-cascader class="cell-width-1" ref="agencyIdArray" v-model.trim="agencyIdArray" :options="orgOptions" |
|||
:props="orgOptionProps" :show-all-levels="false" @change="handleChangeAgency"></el-cascader> |
|||
</el-form-item> |
|||
|
|||
<el-form-item label="退件原因及说明" prop="returnReason" label-width="150px" :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.returnReason" @input="handelInputContent"></el-input> |
|||
</div> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { Loading } from "element-ui"; // 引入Loading服务 |
|||
import { requestPost } from "@/js/dai/request"; |
|||
let loading; // 加载动画 |
|||
export default { |
|||
data() { |
|||
return { |
|||
customerId: localStorage.getItem("customerId"), |
|||
formData: { |
|||
operationType: "13", //处理方式[13:退件] |
|||
returnReason:'', |
|||
returnSuggestDept:'', |
|||
returnSuggestDeptName:'', |
|||
returnLoseContact:'' |
|||
}, |
|||
orgOptions: [], |
|||
okflag: false, |
|||
orgOptionProps: { |
|||
multiple: false, |
|||
value: 'agencyId', |
|||
label: 'agencyName', |
|||
children: 'subAgencyList', |
|||
checkStrictly: true |
|||
}, |
|||
agencyIdArray: [], |
|||
dataRule: { |
|||
returnLoseContact: [ |
|||
{ required: true, message: "是否联系当事人不能为空", trigger: "blur" }, |
|||
], |
|||
returnSuggestDept: [ |
|||
{ required: true, message: "建议办理部门不能为空", trigger: "blur" }, |
|||
], |
|||
returnReason: [ |
|||
{ required: true, message: "退件原因不能为空", trigger: "blur" }, |
|||
] |
|||
} |
|||
}; |
|||
}, |
|||
components: {}, |
|||
computed: {}, |
|||
props: { |
|||
eventId: { |
|||
type: String, |
|||
default: "", |
|||
}, |
|||
eventDetailData: { |
|||
type: Object, |
|||
default() { |
|||
return {}; |
|||
}, |
|||
}, |
|||
source: { |
|||
//展示来源:manage 管理平台 visiual 可视化平台 |
|||
type: String, |
|||
default: "manage", |
|||
}, |
|||
}, |
|||
created() { |
|||
this.formData.createdTime = this.$dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'); |
|||
}, |
|||
async mounted() { |
|||
const { user } = this.$store.state; |
|||
this.agencyId = user.agencyId; |
|||
this.getOrgTreeList(); |
|||
if (this.eventId) { |
|||
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); |
|||
this.formData.handlingReq = this.eventDetailCopy.handlingReq; |
|||
this.formData.transferAdvice = this.eventDetailCopy.transferAdvice; |
|||
} |
|||
}, |
|||
methods: { |
|||
handelInputContent(val) { |
|||
this.$EventBus.$emit('handelInputEventContent', { type: 'returnReason', value: val }) |
|||
}, |
|||
//组织机构树 |
|||
async getOrgTreeList() { |
|||
const url = "/gov/org/customeragency/agencyGridDepttree" |
|||
let params = { |
|||
agencyId: this.agencyId, |
|||
purpose: "query" |
|||
} |
|||
const { data, code, msg } = await requestPost(url, params) |
|||
if (code === 0) { |
|||
this.orgOptions = [] |
|||
this.orgOptions.push(data) |
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
}, |
|||
|
|||
buildNode(nodes, treeId) { |
|||
for (let i = 0; i < nodes.length; i++) { |
|||
if (nodes[i].id === treeId) { |
|||
if (nodes[i].children) { |
|||
return nodes[i].children |
|||
} else { |
|||
return nodes[i] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
handleChangeAgency(val) { |
|||
let obj = this.$refs["agencyIdArray"].getCheckedNodes()[0].data |
|||
if (obj) { |
|||
this.formData.level = obj.level |
|||
this.formData.returnSuggestDept = obj.agencyId |
|||
this.formData.returnSuggestDeptName = obj.agencyName |
|||
} else { |
|||
this.form.orgType = '' |
|||
this.form.orgId = '' |
|||
} |
|||
}, |
|||
handleChangeCate() { |
|||
if (this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0]) { |
|||
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data |
|||
this.formData.categoryList = this.selCateObj |
|||
this.formData.categoryId = this.selCateObj.id |
|||
} else { |
|||
this.selCateObj = {} |
|||
} |
|||
}, |
|||
//重构树,去除网格 |
|||
deepTree(arr, children) { |
|||
if (Array.isArray(arr) && arr.length > 0) { |
|||
return arr.map((item) => { |
|||
return { |
|||
...item, |
|||
[children]: |
|||
(item[children] && |
|||
item[children].length > 0 && |
|||
this.deepTree(item[children], children)) || |
|||
null, |
|||
}; |
|||
}); |
|||
} |
|||
}, |
|||
async getReplayInfo() { |
|||
this.okflag = false; |
|||
this.$refs["ref_form1"].validate((valid, messageObj) => { |
|||
if (!valid) { |
|||
app.util.validateRule(messageObj); |
|||
} else { |
|||
this.okflag = true; |
|||
} |
|||
}); |
|||
}, |
|||
resetData() { |
|||
this.agencyIdArray = [] |
|||
}, |
|||
|
|||
// 开启加载动画 |
|||
startLoading() { |
|||
loading = Loading.service({ |
|||
lock: true, // 是否锁定 |
|||
text: "正在加载……", // 加载中需要显示的文字 |
|||
background: "rgba(0,0,0,.7)", // 背景颜色 |
|||
}); |
|||
}, |
|||
// 结束加载动画 |
|||
endLoading() { |
|||
// clearTimeout(timer); |
|||
if (loading) { |
|||
loading.close(); |
|||
} |
|||
}, |
|||
// handleChangeOperationType(val) { |
|||
// this.formData.returnLoseContact = val; |
|||
// }, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang='scss' scoped> |
|||
@import "@/assets/scss/modules/visual/a_customize.scss"; |
|||
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
|||
|
|||
.el-dialog__body { |
|||
padding: 0 10px 20px !important; |
|||
} |
|||
</style> |
Loading…
Reference in new issue