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