<template>
|
<div class="comm-page">
|
<div class="form-content">
|
<FormList
|
:info="formInfo"
|
:isShowDetail="isShowDetail"
|
@handleClick="isShowDetail = !isShowDetail"
|
@updateValue="updateValue"
|
@onSubmit="onSubmit"
|
@setValueInfo="setValueInfo"
|
></FormList>
|
</div>
|
<div class="list-content">
|
<TableList
|
:pageInfo="pageInfo"
|
@doAction="doAction"
|
@handleCurrentChange="handleCurrentChange"
|
@handleSizeChange="handleSizeChange"
|
:isAutoIndex="true"
|
:list="records"
|
:header="tableHeader"
|
:loading="loading"
|
></TableList>
|
</div>
|
|
<el-dialog
|
:title="title"
|
:visible.sync="dialogTableVisible"
|
custom-class="comm-dialog"
|
:modal-append-to-body="false"
|
:close-on-click-modal="false"
|
center
|
width="850px"
|
>
|
<el-form :model="form" label-width="120px" inline size="small">
|
<el-form-item label="申请编号">
|
<el-input v-model="form.serialNo" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="业务类型">
|
<el-input v-model="form.objecttypeDesc" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="统一社会信用编码">
|
<el-input v-model="form.unifiedsocialCreditCode" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="合作方名称">
|
<el-input v-model="form.channelName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="合作模式">
|
<el-input v-model="form.cooperationModeDesc" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="合作方归属地区">
|
<el-input v-model="form.channelareaName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="当前阶段">
|
<el-input v-model="form.curPhaseName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="当前处理人">
|
<el-input v-model="form.currentUserName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="新指派处理人" v-if="title != '退回任务池确认'" :rules=" { required: true, message: '新指派处理人不能为空',trigger: 'change'}">
|
<el-autocomplete
|
clearable
|
v-model="form.handler"
|
:fetch-suggestions="querySearchAsync"
|
:trigger-on-focus="false"
|
:popper-append-to-body="false"
|
:debounce="0"
|
value-key="label"
|
placeholder="请输入姓名进行选择"
|
@select="selHandler"
|
></el-autocomplete>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button plain @click="dialogTableVisible = false">取消</el-button>
|
<el-button type="primary" @click="handleComfirm(form)">确定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import TableList from '@comprehensive/components/TableList'
|
import FormList from '@comprehensive/components/FormList'
|
import { comfirm } from '@comprehensive/utils/comm'
|
import { partnerTasksAdjustmentHeader } from '@comprehensive/utils/tableHeaders'
|
import { partnerTasksAdjustmentSearch } from '@comprehensive/utils/formItems'
|
import {
|
qryFlowChannelManageTaskList,
|
channelCode,
|
getCodeByCodeNoAndBankNo,
|
qryFlowUserList,
|
turnFlowTask,
|
returnTaskPool
|
} from '@comprehensive/serve/public'
|
export default {
|
data() {
|
return {
|
records: [],
|
valueInfo: {},
|
form: {},
|
isShowDetail: false,
|
loading: false,
|
dialogTableVisible: false,
|
title: '',
|
pageInfo: {
|
turnFlag: 0,
|
currentPage: 1,
|
pageSize: 10
|
},
|
formInfo: [...partnerTasksAdjustmentSearch],
|
tableHeader: [...partnerTasksAdjustmentHeader],
|
powerControl: {
|
detailFlagControl: false,
|
returnPoolFlagControl: false,
|
normalAppointFlagControl: false
|
},
|
}
|
},
|
components: {
|
FormList,
|
TableList
|
},
|
activated() {
|
this.init()
|
},
|
mounted() {
|
const { powerControl, window } = this
|
if (window.location.host.indexOf('236') != -1 || window.location.host.indexOf('localhost') != -1) {
|
powerControl.detailFlagControl = true
|
powerControl.returnPoolFlagControl = true
|
powerControl.normalAppointFlagControl = true
|
} else {
|
powerControl.detailFlagControl = window.top._server_channel_qryChannelAdmitInDetailAndDeal
|
powerControl.returnPoolFlagControl = window.top._server_channel_returnTaskPool
|
powerControl.normalAppointFlagControl = window.top._server_channel_turnFlowTask
|
}
|
},
|
methods: {
|
init() {
|
const { formInfo } = this
|
|
if (formInfo.some(({ name }) => name === 'phaseNo')) {
|
this.channelCode('phaseno', 'phaseNo')
|
}
|
|
if (formInfo.some(({ name }) => name === 'cooperationMode')) {
|
this.channelCode('CooperationMode', 'cooperationMode')
|
}
|
|
if (formInfo.some(({ name }) => name === 'objectType')) {
|
this.getCodeByCodeNoAndBankNo()
|
}
|
|
this.qryFlowChannelManageTaskList()
|
},
|
async channelCode(code, name) {
|
const res = await channelCode({ conditionName: code })
|
const { result } = res
|
this.setOrGetFormInfo(name, { options: result })
|
},
|
// 业务类型下拉
|
async getCodeByCodeNoAndBankNo() {
|
const res = await getCodeByCodeNoAndBankNo({
|
codeNo: 'FXObjectType',
|
bankNo: '0010'
|
})
|
const { result } = res
|
this.setOrGetFormInfo('objectType', { options: result })
|
},
|
// 任务调整合作方申请单列表查询
|
async qryFlowChannelManageTaskList(){
|
this.loading = true;
|
let { valueInfo, pageInfo, powerControl } = this;
|
const { normalAppointFlagControl, detailFlagControl, returnPoolFlagControl} = powerControl
|
const res = await qryFlowChannelManageTaskList({
|
...valueInfo,
|
...pageInfo
|
})
|
const { records = [], total } = res.result
|
this.loading = false
|
this.records = records.reduce((pre, curr) => {
|
let arr = []
|
// 贷款期限处理
|
let {
|
detailFlag,
|
normalAppointFlag,
|
returnPoolFlag
|
} = curr;
|
if(detailFlag == '1' && detailFlagControl){
|
arr.push({ label: "详情" });
|
}
|
if(normalAppointFlag == '1' && normalAppointFlagControl){
|
arr.push({ label: "任务指派" });
|
}
|
if(returnPoolFlag == '1' && returnPoolFlagControl){
|
arr.push({ label: "退回任务池" });
|
}
|
let sortButtons = ['任务指派', '退回任务池', '详情']
|
arr = this.getSortButtons(sortButtons, arr)
|
pre.push({
|
...curr,
|
buttons: [...arr]
|
})
|
|
return pre
|
}, [])
|
|
this.pageInfo = {
|
...pageInfo,
|
total
|
}
|
},
|
// 表单事件触发
|
async doAction(name, item, { label }) {
|
if (name === 'lastAction') {
|
const { objectType } = item
|
const detailInfo = { ...item, objecttype: objectType }
|
|
if (label == '详情') {
|
this.toDetail(detailInfo)
|
}
|
|
if (label == '任务指派') {
|
this.form = item
|
this.$set(this.form, 'handler', '')
|
// turnFlag是0代表正常指派
|
this.title = label
|
this.form.turnFlag = true
|
this.dialogTableVisible = true
|
}
|
|
if (label == '退回任务池') {
|
this.form = item
|
this.form.turnFlag = false
|
this.title = '退回任务池确认'
|
this.dialogTableVisible = true
|
}
|
}
|
},
|
async querySearchAsync(query, cb) {
|
if (query.length > 1) {
|
const { result } = await qryFlowUserList({
|
userName: query,
|
serialNo: this.form.serialNo
|
})
|
result.forEach(val => {
|
val.label = `${val.taskUserName}-${val.taskUserId}-${val.taskOrgName}`
|
})
|
cb(result)
|
} else {
|
cb([])
|
}
|
},
|
// 指派
|
async handleComfirm(form) {
|
let res = ''
|
if (form.turnFlag) {
|
// 正常指派
|
res = await turnFlowTask(form)
|
if (res.code == '00') {
|
this.$message.success('指派成功')
|
}
|
} else {
|
// 退回任务池
|
res = await returnTaskPool({
|
objectNo: form.serialNo,
|
objectType: form.objectType
|
})
|
if (res.code == '00') {
|
this.$message.success('退回任务池成功')
|
}
|
}
|
this.dialogTableVisible = false
|
this.init()
|
},
|
// 新指派处理人
|
qryFlowUserList(serialNo) {
|
return new Promise(resolve => {
|
qryFlowUserList({ serialNo: serialNo }).then(res => {
|
resolve(res.result)
|
})
|
})
|
},
|
selHandler(obj) {
|
this.form.taskOrgId = obj.taskOrgId
|
this.form.taskOrgName = obj.taskOrgName
|
this.form.taskUserId = obj.taskUserId
|
this.form.taskUserName = obj.taskUserName
|
},
|
// 设置表单结果数据
|
setValueInfo(info = {}) {
|
this.valueInfo = info
|
},
|
// 更新表单数据或查找某项数据
|
setOrGetFormInfo(nameKey, newInfo) {
|
let { formInfo } = this
|
let index = formInfo.findIndex(({ name }) => name === nameKey)
|
let result = {}
|
if (!isNaN(index)) {
|
this.$set(this.formInfo, index, { ...formInfo[index], ...newInfo })
|
result = this.formInfo[index]
|
}
|
if (typeof newInfo === 'undefined') {
|
return result
|
}
|
},
|
// 跳转到详情页
|
toDetail(result) {
|
const params = {
|
serialno: result.serialNo,
|
objectno: result.objectNo,
|
objectType: result.objectType,
|
ftserialno: result.ftSerialNo,
|
unifiedsocialCreditCode: result.unifiedsocialCreditCode,
|
pageType: 'details',
|
mainTain: '',
|
phaseno: result.phaseNo,
|
taskAdjustment: true
|
}
|
this.$router.push({
|
path: '/area/partner/details/info',
|
query: { ...params }
|
})
|
},
|
// 查询
|
onSubmit() {
|
this.pageInfo.currentPage = 1
|
this.qryFlowChannelManageTaskList()
|
},
|
// 更新数据
|
updateValue(value, item) {
|
// console.log(value,item)
|
let { name } = item;
|
this.setOrGetFormInfo(name, { value });
|
},
|
// 按钮顺序排序
|
getSortButtons(sortButtons, arr) {
|
return sortButtons.reduce((pre, curr) => {
|
const item = arr.find(({ label }) => label === curr)
|
if (item) {
|
pre.push({ ...item })
|
}
|
return pre
|
}, [])
|
},
|
// 修改翻页条数
|
handleSizeChange(val) {
|
this.pageInfo.pageSize = val
|
this.qryFlowChannelManageTaskList()
|
},
|
|
// 修改翻页数
|
handleCurrentChange(val) {
|
this.pageInfo.currentPage = val
|
this.qryFlowChannelManageTaskList()
|
}
|
}
|
}
|
</script>
|
|
<style lang="postcss" scoped>
|
.comm-page {
|
& .list-content {
|
font-size: 14px;
|
}
|
& .export-excle {
|
margin: 2px 20px 30px 0;
|
& .el-button-primary {
|
font-size: 14px;
|
}
|
}
|
& .empty-section {
|
height: 50px;
|
}
|
& >>> .comm-dialog {
|
& .el-form {
|
display: flex;
|
justify-content: flex-start;
|
flex-wrap: wrap;
|
& .el-form-item {
|
display: flex;
|
width: 45%;
|
margin: 0 30px 20px 0;
|
& .el-form-item__label {
|
line-height: 16px;
|
}
|
& .el-form-item__content {
|
flex: 1;
|
& .el-autocomplete {
|
width: 100%;
|
& .el-autocomplete-suggestion {
|
position: absolute !important;
|
left: 0 !important;
|
min-width: 100%;
|
width: auto !important;
|
}
|
}
|
}
|
}
|
}
|
& .el-dialog__footer {
|
& .el-button {
|
width: 120px;
|
font-size: 14px;
|
line-height: 20px;
|
padding: 5px 0;
|
& + .el-button {
|
margin-left: 40px;
|
}
|
}
|
}
|
}
|
}
|
</style>
|