<template>
|
<div>
|
<div class="form-content">
|
<FormList
|
:info="formInfo"
|
:isShowDetail="isShowDetail"
|
@handleClick="isShowDetail = !isShowDetail"
|
@updateValue="updateValue"
|
@onSubmit="onSubmit"
|
@setValueInfo="setValueInfo"
|
:isChangeArray="true"
|
></FormList>
|
</div>
|
|
<div class="list-content">
|
<TableList
|
:pageInfo="pageInfo"
|
@doAction="doAction"
|
@handleCurrentChange="handleCurrentChange"
|
@handleSizeChange="handleSizeChange"
|
:isAutoIndex="true"
|
:isPaddingRight="false"
|
:list="records"
|
:header="tableHeader"
|
:height="tableHeight"
|
:loading="loading"
|
></TableList>
|
</div>
|
|
<el-dialog
|
title="补录延期信息"
|
:visible.sync="dialogDelay"
|
custom-class="comm-dialog"
|
:modal-append-to-body="false"
|
:close-on-click-modal='false'
|
:destroy-on-close="true"
|
center
|
>
|
<Delay
|
v-if="dialogDelay"
|
:delaySupply='delaySupply'
|
@close="dialogDelay = false;init()"
|
></Delay>
|
</el-dialog>
|
|
</div>
|
</template>
|
|
<script>
|
/**
|
* 招标贷 延期开标信息补录
|
*/
|
import FormList from './components/FormList'
|
import TableList from './components/TableList'
|
import Delay from './components/Delay'
|
import { delaySupplySearch } from '@comprehensive/utils/formItems'
|
import { delaySupplyHeader } from '@comprehensive/utils/tableHeaders'
|
import {
|
delaySupplyList,
|
getDictionaryList,
|
getAllCityAreaList
|
} from '@comprehensive/serve/public'
|
|
const queryFlag = '02'
|
|
export default {
|
components: {
|
FormList,
|
TableList,
|
Delay
|
},
|
data() {
|
return {
|
// 是否显示所有表单项
|
isShowDetail: false,
|
// 搜索表单字段及描述
|
formInfo: [...delaySupplySearch],
|
tableHeader: [...delaySupplyHeader],
|
// 表单结果数据
|
valueInfo: {},
|
records: [],
|
pageInfo: {
|
currentPage: 1,
|
pageSize: 10,
|
total: 0
|
},
|
tableHeight: '560px',
|
loading: false,
|
dialogDelay: false,
|
delaySupply:{}
|
}
|
},
|
created(){
|
this.init()
|
},
|
methods:{
|
// 初始化数据
|
init(){
|
this.getDictionaryList()
|
this.getAllCityAreaList()
|
this.delaySupplyList()
|
},
|
|
// 延期开标信息补录列表查询
|
async delaySupplyList(){
|
this.loading = true
|
const { valueInfo, pageInfo } = this;
|
const res = await delaySupplyList({
|
...valueInfo,
|
...pageInfo
|
})
|
const { records = [], total, pages } = res.result
|
this.loading = false
|
this.records = records.reduce((pre, curr) => {
|
// 贷款期限处理
|
let arr = [];
|
arr.push(
|
{ label: "详情", id: 1 },
|
{ label: "补录延期信息", id: 2 }
|
);
|
let sortButtons = [
|
"详情",
|
"补录延期信息"
|
];
|
arr = this.getSortButtons(sortButtons, arr);
|
const { termUnit, businessTermMonth, businessTermDay } = curr
|
let businessTerm = ''
|
if (termUnit === 'M' && businessTermMonth) {
|
businessTerm = `${businessTermMonth}月`
|
}
|
if (termUnit === 'D' && businessTermDay) {
|
businessTerm = `${businessTermDay}天`
|
}
|
pre.push({
|
...curr,
|
buttons: [...arr],
|
businessTerm
|
})
|
return pre
|
}, [])
|
|
this.pageInfo = {
|
...pageInfo,
|
total
|
}
|
},
|
|
// 业务城市下拉列表
|
async getAllCityAreaList() {
|
const res = await getAllCityAreaList({ queryFlag });
|
const { result } = res;
|
this.setOrGetFormInfo("businessCity", { options: result });
|
},
|
|
// 是否下拉列表
|
async getDictionaryList() {
|
const res = await getDictionaryList({ codeNo: "YesNo" });
|
const { result } = res;
|
this.setOrGetFormInfo("bidisdelay", { options: result });
|
},
|
|
// 更新表单数据或查找某项数据
|
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
|
}
|
},
|
|
// 设置表单结果数据
|
setValueInfo(info = {}) {
|
this.valueInfo = info
|
},
|
|
// 更新数据
|
updateValue(value, item) {
|
let { name } = item
|
this.setOrGetFormInfo(name, { value })
|
if (name === 'productid') {
|
this.qryDimensionList()
|
}
|
},
|
|
// 查询操作
|
onSubmit() {
|
this.pageInfo.currentPage = 1
|
this.delaySupplyList()
|
},
|
|
// 表单事件回调
|
doAction(name, item, { id, label }) {
|
if (name === "lastAction") {
|
const { objectType } = item;
|
const detailInfo = { ...item, objecttype: objectType };
|
|
// 查看详情
|
if (id === 1) {
|
this.toDetail(detailInfo);
|
}
|
|
// 延期补录信息
|
if (id === 2) {
|
this.dialogDelay = true;
|
this.delaySupply = item;
|
}
|
}
|
},
|
|
// 按钮顺序排序
|
getSortButtons(sortButtons, arr) {
|
return sortButtons.reduce((pre, curr) => {
|
const item = arr.find(({ label }) => label === curr);
|
if (item) {
|
pre.push({ ...item });
|
}
|
return pre;
|
}, []);
|
},
|
|
// 跳转到详情页
|
toDetail(result) {
|
const {
|
serialNo,
|
flowno,
|
customerid: customerID,
|
objecttype: objectType,
|
occurtype
|
} = result;
|
|
this.$router.push(
|
`/comprehensiveTransaction/loanDetail/${serialNo}?occurType=${occurtype}&flowno=${flowno}&objectType=${objectType}&customerID=${customerID}`
|
);
|
},
|
|
// 修改翻页条数
|
handleSizeChange(val) {
|
this.pageInfo.pageSize = val
|
this.delaySupplyList()
|
},
|
|
// 修改翻页数
|
handleCurrentChange(val) {
|
this.pageInfo.currentPage = val
|
this.delaySupplyList()
|
},
|
}
|
}
|
</script>
|