Commit bd0ad21c authored by caimeng's avatar caimeng

删除不相关的接口

parent d5688ade
BASE_URL='' BASE_URL=''
VUE_APP_API_PATH=http://47.99.245.36:8785 VUE_APP_API_PATH=http://114.55.246.69:8785
NODE_ENV=development NODE_ENV=development
BASE_URL='' BASE_URL=''
VUE_APP_API_PATH=http://47.99.245.36:8785 VUE_APP_API_PATH=http://114.55.246.69:8785
NODE_ENV=production NODE_ENV=production
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<el-descriptions-item v-else label-class-name='labelCls' label='授信状态'>{{ baseInfo.creditStatusStr }} <el-descriptions-item v-else label-class-name='labelCls' label='授信状态'>{{ baseInfo.creditStatusStr }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if='page' label-class-name='labelCls' label='申请金额'>{{ baseInfo.applyAmount }}
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='客户姓名'>{{ baseInfo.realName }}</el-descriptions-item> <el-descriptions-item label-class-name='labelCls' label='客户姓名'>{{ baseInfo.realName }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='手机号码'>{{ baseInfo.mobile }}</el-descriptions-item> <el-descriptions-item label-class-name='labelCls' label='手机号码'>{{ baseInfo.mobile }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='身份证号'>{{ baseInfo.idCard }}</el-descriptions-item> <el-descriptions-item label-class-name='labelCls' label='身份证号'>{{ baseInfo.idCard }}</el-descriptions-item>
......
...@@ -16,7 +16,7 @@ const setting = { ...@@ -16,7 +16,7 @@ const setting = {
baseURL:process.env.NODE_ENV === 'development' ? 'api' : '', baseURL:process.env.NODE_ENV === 'development' ? 'api' : '',
//baseURL:process.env.NODE_ENV === 'development' ? 'mock-server' : '', //baseURL:process.env.NODE_ENV === 'development' ? 'mock-server' : '',
//标题 (包括初次加载雪花屏的标题 页面的标题 浏览器的标题) //标题 (包括初次加载雪花屏的标题 页面的标题 浏览器的标题)
title: '百灵美选管理后台', title: '飞逸管理后台',
//标题分隔符 //标题分隔符
titleSeparator: ' - ', titleSeparator: ' - ',
//标题是否反转 如果为false:"page - title",如果为ture:"title - page" //标题是否反转 如果为false:"page - title",如果为ture:"title - page"
......
...@@ -5,7 +5,7 @@ const theme = { ...@@ -5,7 +5,7 @@ const theme = {
//布局种类 horizontal vertical gallery comprehensive common //布局种类 horizontal vertical gallery comprehensive common
layout: 'vertical', layout: 'vertical',
//主题名称 default ocean green glory white //主题名称 default ocean green glory white
themeName: 'white', themeName: 'green',
//是否固定头部 //是否固定头部
fixedHeader: true, fixedHeader: true,
//是否显示顶部进度条 //是否显示顶部进度条
......
This diff is collapsed.
<!-- 预授信申述 -->
<template>
<el-dialog
:visible.sync='dialogVisible'
:before-close='handleClose'
:destroy-on-close='true'
width='38%'
title='捞回'>
<div class='page'>
<!--搜索-->
<el-form ref='dForm' label-suffix=':' label-width='90px' :rules='rules' :model='form' class='form-inline'>
<el-form-item label='捞回结果'>
<el-radio v-model="form.radio" label="1">预授信通过</el-radio>
</el-form-item>
<el-form-item prop='memo' label='捞回备注'>
<el-input v-model='form.memo' type='textarea' clearable placeholder='请输入备注'/>
</el-form-item>
</el-form>
</div>
<span slot='footer' class='dialog-footer'>
<el-button type='primary' @click='onSubmit("dForm")'>确 定</el-button>
<el-button @click='handleClose'>取 消</el-button>
</span>
</el-dialog>
</template>
<script>
import API from '@/server/api'
import _ from 'lodash'
import {mapGetters} from 'vuex'
export default {
name: 'PrePlead',
props: {
dialogVisible: {
type: Boolean,
require: true
},
//eslint-disable-next-line vue/require-default-prop
item: {
type: Object,
require: true
}
},
data() {
return {
rules: {
memo: [
{
required: true,
trigger: 'blur',
message: '请输入捞回备注'
}
]
},
form: {
radio:'1',
memo: '',
preCreditNo: ''
}
}
},
created() {
console.log(this.item, 'nash ')
if (this.item !== null) {
this.form.preCreditNo = this.item.creditNo
console.log(this.form,'沃日')
}
},
methods: {
onSubmit(formName) {
console.log(this.item, this.form, '数据呢');
this.$refs[formName].validate(async (valid) => {
if (valid) {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async (res) => {
const form = this.form;
const result = await API.LocalPreCreditRescue({...form})
if (result.success) {
this.$message({
type: 'success',
message: '捞回成功!'
})
this.$emit('handleClose')
this.$emit('callback')
}
}).catch((e) => {
console.log(e, '取消申述了')
})
}
})
},
handleClose() {
this.$emit('handleClose')
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.custom-table-checkbox {
.el-checkbox {
display: block !important;
margin: 0 0 $base-padding/4 0;
}
}
.action-bar {
margin-bottom: 15px;
}
</style>
<!-- 预授信申述 -->
<template>
<div class='page'>
<!--搜索-->
<el-form ref='dForm' label-suffix=':' label-width='90px' :rules='rules' :model='form' class='form-inline'>
<el-row>
<el-col :span="12">
<el-form-item prop='state' label='审批意见'>
<template v-if='searchData!==null'>
<el-radio-group v-model='form.state'>
<el-radio v-for='(item,index) in searchData.approvalTypeResponses'
:key='index'
:label='item.approvalResult'>{{ item.approvalResultStr }}
</el-radio>
</el-radio-group>
</template>
</el-form-item>
<template v-if="form.state==='PASS'">
<el-form-item prop='limitList' label='期数(期)'>
<template v-if='searchData!==null'>
<el-select
v-model='form.limitList'
:popper-append-to-body='false'
style='width: 100%;'
clearable>
<el-option
v-for='(f,index) in searchData.loanLimitResponses'
:key='index'
:value='f.code'
:label='f.codeStr'>
</el-option>
</el-select>
</template>
</el-form-item>
<el-form-item prop='amount' label='额度(元)'>
<el-input v-model='form.amount' clearable placeholder='请输入'/>
</el-form-item>
<template v-if='searchData!==null'>
<el-form-item prop='capitalCode' label='选择资方'>
<el-select
v-model='form.capitalCode'
:popper-append-to-body='false'
style='width: 100%;'
clearable>
<el-option
v-for='(f,index) in searchData.loanSignResponses'
:key='index'
:value='f.code'
:label='f.codeStr'>
</el-option>
</el-select>
</el-form-item>
</template>
</template>
<el-form-item prop='memo' label='审批备注'>
<el-input v-model='form.memo' type='textarea' clearable placeholder='请输入'/>
</el-form-item>
<el-form-item>
<el-button type='primary' @click='onSubmit("dForm")'>确 定</el-button>
<el-button @click='handleClose'>取 消</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import API from '@/server/api'
import _ from 'lodash'
import {mapGetters} from 'vuex'
export default {
name: 'LocalPlead',
props: {
dialogVisible: {
type: Boolean,
require: true
},
//eslint-disable-next-line vue/require-default-prop
data: {
type: Object,
require: true
},
step: {
type: String,
require: false
}
},
data() {
return {
rules: {
amount: [
{
required: true,
trigger: 'blur',
message: '请输入审批额度'
}
],
limitList: [
{
required: true,
trigger: 'blur',
message: '请输入期数'
}
],
capitalCode: [
{
required: true,
trigger: 'change',
message: '请选择资方'
}
],
memo: [
{
required: true,
trigger: 'blur',
message: '请输入申述原因'
}
],
state: [
{
required: true,
trigger: 'change',
message: '请选择审批意见'
}
]
},
form: {
actionNo: '',
stepsNo: '',
amount: '',
capitalCode: '',
limitList: '',
memo: '',
state: '',
}
}
},
computed: {
...mapGetters(['searchData'])
},
created() {
if (this.data !== null) {
console.log(this.data, 'hh')
const {actionNo, stepsNo, manualAmount, manualNum, loanSign} = this.data;
this.form.actionNo = actionNo;
this.form.stepsNo = stepsNo;
this.form.amount = manualAmount
this.form.limitList = manualNum
this.form.capitalCode = loanSign
}
},
methods: {
onSubmit(formName) {
console.log(this.item, this.form, '数据呢');
this.$refs[formName].validate(async (valid) => {
if (valid) {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async (res) => {
const form = this.form;
let result;
if (this.step === 'first') {
// 初审提交审批
result = await API.LocalFirstCreditSubmit({
...form
})
} else {
// 复审提交审批
result = await API.LocalSecondCreditSubmit({
...form
})
}
if (result.success) {
this.$message({
type: 'success',
message: '审批成功!'
})
this.$router.back();
// this.$emit('handleClose')
// this.$emit('callback')
}
}).catch((e) => {
console.log(e, '取消申述了')
})
}
})
},
handleClose() {
this.$router.back();
// this.$emit('handleClose')
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.custom-table-checkbox {
.el-checkbox {
display: block !important;
margin: 0 0 $base-padding/4 0;
}
}
.action-bar {
margin-bottom: 15px;
}
</style>
This diff is collapsed.
<template>
<div class='page-fence'>
<!--搜索-->
<block-header title='搜索' />
<div class='search'>
<el-form label-suffix=':' :inline='true' ref='form' :model='queryForm' class='form-inline'>
<el-form-item prop='creditNo' label='授信编号'>
<el-input
v-model='queryForm.creditNo'
clearable
placeholder='请输入授信编号'
/>
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input
v-model='queryForm.clientName'
clearable
placeholder='请输入客户姓名'
/>
</el-form-item>
<el-form-item prop='mobile' label='手机号码'>
<el-input
v-model='queryForm.mobile'
clearable
placeholder='请输入手机号码'
/>
</el-form-item>
<template v-if='searchData!==null'>
<el-form-item prop='creditType' label='初审授信结果'>
<el-select :popper-append-to-body='false' v-model='queryForm.creditType' clearable placeholder='请选择授信类型'>
<el-option
v-for='(item,index) in searchData.xshcreditStatusResponseList'
:key='index'
:label='item.creditStatusStr'
:value='item.creditStatus'></el-option>
</el-select>
</el-form-item>
</template>
<el-form-item v-if="false" prop='certNo' label='身份证号'>
<el-input v-model='queryForm.certNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSearch'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!--操作菜单栏-->
<block-header title='初审授信列表' />
<!--表格-->
<el-table
ref='tableSort'
v-loading='listLoading'
border
size='small'
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<span v-if='item.label==="授信额度"'>
{{ money(row[item.prop]) }}
</span>
<span v-else-if='item.label==="授信类型"'>
<el-tag v-if='row.creditTypeStr==="提额授信"' effect='plain' size='mini'>{{ row.creditTypeStr }}</el-tag>
<el-tag v-else size='mini'>{{ row.creditTypeStr }}</el-tag>
</span>
<span v-else-if='item.label==="授信状态"'>
<el-tag v-if='row.creditState==="CREATED"' size='mini'>{{ row.creditStatusStr }}</el-tag>
<el-tag v-if='row.creditState==="授信中"' type='warning' size='mini'>{{ row.creditStatusStr }}</el-tag>
<el-tag v-if='row.creditState==="授信通过"' type='success' size='mini'>{{ row.creditStatusStr }}</el-tag>
</span>
<span v-else>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<template>
<el-table-column fixed='right' align='center' label='操作'>
<template #default='{ row }'>
<el-button size='mini' type='text' @click='handleView(row)'>详情</el-button>
</template>
</el-table-column>
</template>
</el-table>
<!--分页-->
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
:page-size='queryForm.size'
:total='total'
background
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
</div>
</template>
<script>
import _ from 'lodash'
import API from '@/server/api'
import Reassignment from './components/reassignment'
import { mapGetters } from 'vuex'
import Vue from 'vue'
export default {
name: 'LocalFirstList',
data() {
return {
checkList: ['授信编号', '客户姓名', '手机号码', '对应BD', '申请时间', '初审授信结果','授信额度' ],
columns: [
{
order: 1,
width:260,
label: '授信编号',
prop: 'creditNo'
},
{
order: 2,
label: '客户姓名',
prop: 'clientName'
},
{
order: 2,
label: '手机号码',
prop: 'mobile'
},
{
order: 3,
label: '对应BD',
prop: 'bd'
},
{
order: 4,
label: '申请时间',
prop: 'applyTime'
},
{
order: 5,
label: '初审授信结果',
prop: 'creditState'
},
{
order: 6,
label: '授信额度',
prop: 'creditLimit'
}
],
list: [],
listLoading: true,
total: 0,
pickerConfig: this.datePickerOptions,
queryForm: {
current: 1,
size: 10,
certNo:'',
creditNo: '',
clientName: '',
mobile: '',
state:'',
creditResult: '',
creditType: '',
time: '',
startTime: '',
endTime: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
},
...mapGetters(['searchData', 'user'])
},
async mounted() {
await this.fetchData()
},
methods: {
onSearch() {
const { time } = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
} else {
this.queryForm.startTime = ''
this.queryForm.endTime = ''
}
this.fetchData()
},
handleView(row) {
const { creditNo,userId,clientNo, orderNo } = row
this.$router.push({
path: '/approval/localDetail',
query: {
step:"first",
creditNo,
clientNo,
userId
}
})
},
// 页码变更
handleSizeChange(val) {
this.queryForm.size = val
this.queryForm.current = 1
this.fetchData()
},
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
// 初始化列表数据
async fetchData() {
try{
this.listLoading = true
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
params.userId = this.user.userId
const result = await API.LocalFirstCreditList({ ...params })
const { records, total } = result.result
this.list = records
this.total = total
this.listLoading = false
}catch (err){
console.log('初始化初审列表')
}
},
// 修改上下线状态
async handleChangeOnLineStatus(e) {
const userId = this.user.userId
const userDutyState = e ? 'ONLINE' : 'OFFLINE'
const result = await API.approveOnOff({
userId,
userDutyState
})
if (result.success) {
const msg = userDutyState === 'ONLINE' ? '已上线' : '已下线'
Vue.prototype.$baseMessage(msg, 'success')
}
},
// 审批
handleApproval(row) {
const { creditNo } = row
let routeUrl = this.$router.resolve({
path: '/approvalDetail',
query: {
creditNo,
approval: 'approval'
}
})
window.open(routeUrl.href, '_blank')
},
// 转派
handleReassignment(row) {
this.visible = true
this.item = row
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.action-bar {
margin-bottom: 15px;
}
</style>
<template>
<div v-if='detail!==null' class='page'>
<block-header title='基本信息'/>
<el-descriptions style='margin-bottom: 20px;' border size='small' :column='3'>
<el-descriptions-item label-class-name='labelCls' label='客户姓名'>{{ detail.clientName }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='手机号码'>{{ detail.mobile }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='身份证号'>{{ detail.certNo }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='户籍地址'>{{ detail.address }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='年龄'>{{ detail.age }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='申请时间'>{{ detail.loanTime }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='授信类型'>{{ detail.type }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='授信状态'>
<span>{{ detail.state }}</span>
<template v-if='detail.back'>
<el-button @click='handlePlead' size='mini' style='margin-left: 10px' type='primary'>捞回</el-button>
</template>
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='学历'>{{ detail.educationCode }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='婚姻状况'>{{ detail.marriage }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='现居地址'>{{
detail.liveDetailAddress
}}
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='紧急联系人1'>
<span>{{ detail.firstName }}</span>
<el-button @click='handleContact' size='mini' style='margin-left: 10px' type='text'>查看更多</el-button>
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='紧急联系人关系'>{{
detail.firstRelation
}}
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='紧急联系人电话'>{{ detail.firstPhone }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='工作行业'>{{ detail.workIndustry }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='公司全称'>{{ detail.companyName }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='工作地址'>{{ detail.companyAddressDetail }}
</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='月收入'>{{ detail.selfMonthIncome }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='申请金额'>{{ detail.loanAmt }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='申请期数'>{{ detail.loanLimit }}</el-descriptions-item>
<el-descriptions-item label-class-name='labelCls' label='贷款用途'>{{ detail.loanUse }}</el-descriptions-item>
</el-descriptions>
<!--第三方报告-->
<template v-if="preCreditNo">
<report :credit-no="preCreditNo"></report>
</template>
<template v-if="preCreditNo">
<local-pre-report :credit-no="preCreditNo"></local-pre-report>
</template>
<!--捞回-->
<template v-if='visible'>
<pre-plead
:dialog-visible='visible'
:item='item'
step="pre"
@handleClose='visible = false'
@callback='init'
/>
</template>
<!--通讯录-->
<template v-if='contactVisible'>
<contact
:CreditNo="creditNo"
:contact-visible='contactVisible'
@handleClose='contactVisible = false'
/>
</template>
</div>
</template>
<script>
import API from '@/server/api'
import PrePlead from './components/pre-plead'
import LocalPreReport from '@/components/local-pre-report'
import Contact from './components/contacts'
export default {
name: 'PreDetail',
components: {
PrePlead,
LocalPreReport,
Contact
},
data() {
return {
visible: false,
item: null,
creditNo: '',
clientNo: '',
preCreditNo: '',
preCreditState: '',
detail: null,
reportResponse: [],
operationLogResponse: [],
contactVisible: false
}
},
async created() {
const {query} = this.$route
if (query && query.clientNo) {
if (query.creditNo) this.creditNo = query.creditNo
if (query.preCreditNo) this.preCreditNo = query.preCreditNo
this.clientNo = query.clientNo;
await this.init()
}
},
methods: {
async init() {
try {
const creditNo = this.creditNo
const preCreditNo = this.preCreditNo
const clientNo = this.clientNo
const result = await API.LocalClientDetail({type: "ONE", preCreditNo, creditNo, clientNo})
const data = result.result
const {projectSituationResponse} = data;
this.detail = projectSituationResponse
console.log(data, '返回数据')
} catch (err) {
console.log("初始化预授信详情异常")
}
},
// 捞回
handlePlead() {
this.item = this.detail
this.item.preCreditNo = this.preCreditState
this.item.creditNo = this.creditNo
this.visible = true
},
// 第三方数据报告
async initDataReport() {
try {
const creditNo = this.creditNo
const clientNo = this.clientNo
const result = await API.LocalPreDataReport({creditNo, clientNo})
const data = result.result
const {projectSituationResponse} = data;
this.detail = projectSituationResponse
console.log(data, '返回数据')
} catch (err) {
console.log("初始化预授信详情异常")
}
},
// 通讯录
async handleContact() {
this.contactVisible = true;
}
}
}
</script>
<style lang='scss' src='./index.scss'></style>
<template>
<div class='page-fence'>
<!--搜索-->
<block-header title='搜索' />
<div class='search'>
<el-form ref='form' label-suffix=':' :inline='true' :model='queryForm' class='form-inline'>
<el-form-item prop='mobile' label='手机号码'>
<el-input v-model='queryForm.mobile' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input v-model='queryForm.clientName' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='preCreditNo' label='授信编号'>
<el-input v-model='queryForm.preCreditNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item v-if='searchData!==null' prop='preStatus' label='授信状态'>
<el-select v-model='queryForm.preStatus' :popper-append-to-body='false' clearable placeholder='请选择授信状态'>
<el-option
v-for='(item,index) in searchData.xshPreStatusList'
:key='index'
:label='item.preStatusStr'
:value='item.preStatus'></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item prop='certNo' label='身份证号'>-->
<!-- <el-input v-model='queryForm.certNo' clearable placeholder='请输入' />-->
<!-- </el-form-item>-->
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSubmit'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重置</el-button>
</el-form-item>
</el-form>
</div>
<block-header title='预授信列表' />
<!--表格-->
<el-table
ref='tableSort'
v-loading='listLoading'
border
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<div v-if="item.prop==='preCreditState'">
<el-tag v-if='row[item.prop]==="审核中"' type='warning'>{{ row[item.prop] }}</el-tag>
<el-tag v-else-if='row[item.prop]==="审核通过"' type='success'>{{ row[item.prop] }}</el-tag>
<el-tag v-else-if='row[item.prop]==="审核拒绝"' type='danger'>{{ row[item.prop] }}</el-tag>
<el-tag v-else size='mini'>{{ row[item.prop] }}</el-tag>
</div>
<span v-else>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<el-table-column
fixed='right'
align='center'
label='操作'
>
<template #default='{ row }'>
<el-button type='text' @click='handleDetail(row)'>详情</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
background
:page-size='queryForm.size'
:total='total'
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
<!-- 申述 -->
<!--申述弹框-->
<template v-if='visible'>
<pre-plead
:dialog-visible='visible'
:item='item'
@handleClose='visible = false'
@callback='fetchData'
/>
</template>
</div>
</template>
<script>
import _ from 'lodash'
import API from '@/server/api'
import moment from 'moment'
import { mapGetters } from 'vuex'
export default {
name: 'CreditPre',
data() {
return {
visible: false,
item: null,
checkList: ['授信编号', '客户姓名', '手机号码', '对应BD', '申请时间', '授信状态'],
columns: [
{
order: 1,
width:250,
label: '授信编号',
prop: 'preCreditNo'
},
{
order: 2,
label: '客户姓名',
prop: 'clientName'
},
{
order: 3,
label: '手机号码',
prop: 'mobile'
},
{
order: 4,
label: '对应BD',
prop: 'bd'
},
{
order: 7,
label: '申请时间',
prop: 'applyTime'
},
{
order: 8,
label: '授信状态',
prop: 'preCreditState'
}
],
list: [],
listLoading: true,
pickerConfig: this.datePickerOptions,
total: 1,
queryForm: {
current: 1,
size: 10,
mobile: '',
clientName: '',
preCreditNo: '',
certNo: '', // 身份证号码
preStatus: '',
time: '',
startTime: '',
endTime: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
},
...mapGetters(['searchData'])
},
mounted() {
this.fetchData()
},
methods: {
// 申诉弹框
handlePlead(row) {
this.item = row
console.log(row, '当前行信息')
this.visible = true
},
// 搜索
onSubmit() {
const { time } = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
} else {
this.queryForm.startTime = ''
this.queryForm.endTime = ''
}
this.fetchData()
},
// 预授信详情
handleDetail(row) {
const { preCreditNo,creditNo, clientNo } = row
this.$router.push({
path: '/approval/localPreDetail',
query: {
creditNo:creditNo,
preCreditNo:preCreditNo,
clientNo
}
})
},
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
// 页码变更
handleSizeChange(val) {
this.queryForm.size = val
this.queryForm.current = 1
this.fetchData()
},
async fetchData() {
try{
this.listLoading = true
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
const res = await API.LocalPreCreditList({ ...params })
console.log(res,'试试水')
const { records, total } = res.result
this.list = records
this.total = total
}catch (err){
console.log('初始化预授信列表报错',err);
}
this.listLoading = false
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.custom-table-checkbox {
.el-checkbox {
display: block !important;
margin: 0 0 $base-padding/4 0;
}
}
.action-bar {
margin-bottom: 15px;
}
</style>
<template>
<div class='page-fence'>
<!--搜索-->
<block-header title='搜索' />
<div class='search'>
<el-form label-suffix=':' :inline='true' ref='form' :model='queryForm' class='form-inline'>
<el-form-item prop='creditNo' label='授信编号'>
<el-input
v-model='queryForm.creditNo'
clearable
placeholder='请输入授信编号'
/>
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input
v-model='queryForm.clientName'
clearable
placeholder='请输入客户姓名'
/>
</el-form-item>
<el-form-item prop='mobile' label='手机号码'>
<el-input
v-model='queryForm.mobile'
clearable
placeholder='请输入手机号码'
/>
</el-form-item>
<template v-if='searchData!==null'>
<el-form-item prop='state' label='复审授信结果'>
<el-select :popper-append-to-body='false' v-model='queryForm.state' clearable placeholder='请选择授信类型'>
<el-option
v-for='(item,index) in searchData.xshcreditStatusResponseList'
:key='index'
:label='item.creditStatusStr'
:value='item.creditStatus'></el-option>
</el-select>
</el-form-item>
</template>
<el-form-item v-if="false" prop='certNo' label='身份证号'>
<el-input v-model='queryForm.certNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSearch'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!--操作菜单栏-->
<block-header title='复审授信列表' />
<!--表格-->
<el-table
ref='tableSort'
v-loading='listLoading'
border
size='small'
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<span v-if='item.label==="授信额度"'>
{{ money(row[item.prop]) }}
</span>
<span v-else-if='item.label==="客户信息"'>
{{ row.realName }} <br /> {{ row.mobile }}
</span>
<span v-else-if='item.label==="授信类型"'>
<el-tag v-if='row.creditTypeStr==="提额授信"' effect='plain' size='mini'>{{ row.creditTypeStr }}</el-tag>
<el-tag v-else size='mini'>{{ row.creditTypeStr }}</el-tag>
</span>
<span v-else-if='item.label==="授信状态"'>
<el-tag v-if='row.creditStatus==="CREATED"' size='mini'>{{ row.creditStatusStr }}</el-tag>
<el-tag v-if='row.creditStatus==="CREDIT_ING"' type='warning' size='mini'>{{ row.creditStatusStr }}</el-tag>
<el-tag v-if='row.creditStatus==="FINISHED"' type='success' size='mini'>{{ row.creditStatusStr }}</el-tag>
</span>
<span v-else>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<template>
<el-table-column fixed='right' align='center' label='操作'>
<template #default='{ row }'>
<el-button size='mini' type='text' @click='handleView(row)'>详情</el-button>
</template>
</el-table-column>
</template>
</el-table>
<!--分页-->
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
:page-size='queryForm.size'
:total='total'
background
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
</div>
</template>
<script>
import _ from 'lodash'
import API from '@/server/api'
import Reassignment from './components/reassignment'
import { mapGetters } from 'vuex'
import Vue from 'vue'
export default {
name: 'LocalFirstList',
data() {
return {
checkList: ['授信编号', '客户姓名', '手机号码', '对应BD', '申请时间', '复审授信结果','授信额度' ],
columns: [
{
order: 1,
width:260,
label: '授信编号',
prop: 'creditNo'
},
{
order: 2,
label: '客户姓名',
prop: 'clientName'
},
{
order: 2,
label: '手机号码',
prop: 'mobile'
},
{
order: 3,
label: '对应BD',
prop: 'bd'
},
{
order: 4,
label: '申请时间',
prop: 'applyTime'
},
{
order: 5,
label: '复审授信结果',
prop: 'creditState'
},
{
order: 6,
label: '授信额度',
prop: 'creditLimit'
}
],
list: [],
listLoading: true,
total: 0,
pickerConfig: this.datePickerOptions,
queryForm: {
current: 1,
size: 10,
certNo:'',
creditNo: '',
clientName: '',
mobile: '',
state:'',
time: '',
startTime: '',
endTime: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
},
...mapGetters(['searchData', 'user'])
},
async mounted() {
await this.fetchData()
},
methods: {
onSearch() {
const { time } = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
} else {
this.queryForm.startTime = ''
this.queryForm.endTime = ''
}
this.fetchData()
},
handleView(row) {
const { creditNo,userId,clientNo } = row
this.$router.push({
path: '/approval/localDetail',
query: {
step:"second",
creditNo,
clientNo,
userId
}
})
},
// 页码变更
handleSizeChange(val) {
this.queryForm.size = val
this.queryForm.current = 1
this.fetchData()
},
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
// 初始化列表数据
async fetchData() {
this.listLoading = true
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
params.userId = this.user.userId
const result = await API.LocalSecondCreditList({ ...params })
const { records, total } = result.result
this.list = records
this.total = total
this.listLoading = false
},
// 修改上下线状态
async handleChangeOnLineStatus(e) {
const userId = this.user.userId
const userDutyState = e ? 'ONLINE' : 'OFFLINE'
const result = await API.approveOnOff({
userId,
userDutyState
})
if (result.success) {
const msg = userDutyState === 'ONLINE' ? '已上线' : '已下线'
Vue.prototype.$baseMessage(msg, 'success')
}
},
// 审批
handleApproval(row) {
const { creditNo } = row
let routeUrl = this.$router.resolve({
path: '/approvalDetail',
query: {
creditNo,
approval: 'approval'
}
})
window.open(routeUrl.href, '_blank')
},
// 转派
handleReassignment(row) {
this.visible = true
this.item = row
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.custom-table-checkbox {
.el-checkbox {
display: block !important;
margin: 0 0 $base-padding/4 0;
}
}
.action-bar {
margin-bottom: 15px;
}
</style>
This diff is collapsed.
<template>
<div class='page-list'>
<!--搜索-->
<block-header title='搜索' />
<div class='search'>
<el-form ref='form' label-suffix=':' :inline='true' :model='queryForm' class='form-inline'>
<el-form-item prop='mobile' label='手机号码'>
<el-input v-model='queryForm.mobile' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input v-model='queryForm.clientName' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='clientNo' label='客户编号'>
<el-input v-model='queryForm.clientNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSubmit'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<block-header title='授信列表' />
<el-table
ref='tableSort'
v-loading='listLoading'
border
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<span>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<el-table-column
fixed='right'
align='center'
label='操作'
v-if="false"
>
<template #default='{ row }'>
<el-button type='text' @click='handleDetail(row)'>详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
:page-size='queryForm.size'
:total='total'
background
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
</div>
</template>
<script>
import _ from 'lodash'
import API from '@/server/api'
import { mapGetters } from 'vuex'
export default {
name: 'LocalClientList',
data() {
return {
checkList: ['客户编号', '客户姓名', '手机号码', '对应BD', '申请时间', '用户状态'],
columns: [
{
order: 1,
label: '客户编号',
width:120,
prop: 'clientNo'
},
{
order: 2,
label: '客户姓名',
prop: 'clientName'
},
{
order: 3,
label: '手机号码',
prop: 'mobile'
},
{
order: 4,
label: '对应BD',
prop: 'bd'
},
{
order: 5,
label: '申请时间',
prop: 'applyTime'
},
{
order: 6,
label: '用户状态',
prop: 'userState'
}
],
list: [],
listLoading: true,
total: 1,
pickerConfig: this.datePickerOptions,
queryForm: {
current: 1,
size: 10,
time:'',
startTime: '',
endTime: '',
certNo: '',
clientName: '',
clientNo: '',
mobile: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
},
...mapGetters(['searchData', 'user'])
},
mounted() {
this.fetchData()
},
methods: {
onSubmit() {
this.queryForm.current = 1
this.queryForm.startTime = ''
this.queryForm.endTime = ''
const { time } = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
}
this.fetchData()
},
// 页码变更
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
// 页码变更
handleSizeChange(val) {
this.queryForm.current = 1
this.queryForm.size = val
this.fetchData()
},
async fetchData() {
this.listLoading = true
try{
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
const result = await API.LocalClientList({ ...params })
const { records, total } = result.result
this.list = records
this.total = total
}catch (err){
console.log('初始化客户列表失败',err)
}
this.listLoading = false
},
// 详情
handleDetail(row){
const { creditNo,clientNo,preCreditNo } = row
const route = {
path: '/client/detail',
query: { creditNo,clientNo,preCreditNo }
}
this.$router.push(route)
}
}
}
</script>
<style lang='scss' scoped>
.page-list{
box-sizing: border-box;
padding: 20px;
}
</style>
<template>
<div class='page-list'>
<!--搜索-->
<block-header title='搜索' />
<div class='search'>
<el-form ref='form' label-suffix=':' :inline='true' :model='queryForm' class='form-inline'>
<el-form-item prop='mobile' label='手机号码'>
<el-input v-model='queryForm.mobile' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input v-model='queryForm.clientName' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='clientNo' label='客户编号'>
<el-input v-model='queryForm.clientNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='certNo' label='身份证号'>
<el-input v-model='queryForm.certNo' clearable placeholder='请输入' />
</el-form-item>
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSubmit'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<block-header title='授信列表' />
<el-table
ref='tableSort'
v-loading='listLoading'
border
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<div v-if='item.label==="商户状态"'>
<el-tag v-if='row.isShelves!==0' type='danger'>{{ row.isShelvesStr }}</el-tag>
<el-tag v-else type='success'>{{ row.isShelvesStr }}</el-tag>
</div>
<span v-else>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<el-table-column
fixed='right'
align='center'
label='操作'
>
<template #default='{ row }'>
<el-button type='text' @click='handleDetail(row)'>详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
:page-size='queryForm.size'
:total='total'
background
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
</div>
</template>
<script>
import _ from 'lodash'
import API from '@/server/api'
import { mapGetters } from 'vuex'
export default {
name: 'MerchantList',
data() {
return {
checkList: ['客户编号', '客户姓名', '手机号码', '对应BD', '申请时间', '用户状态'],
columns: [
{
order: 1,
width:120,
label: '客户编号',
prop: 'clientNo'
},
{
order: 2,
label: '客户姓名',
prop: 'clientName'
},
{
order: 3,
label: '手机号码',
prop: 'mobile'
},
{
order: 4,
label: '对应BD',
prop: 'bd'
},
{
order: 5,
label: '申请时间',
prop: 'applyTime'
},
{
order: 6,
label: '用户状态',
prop: 'userState'
}
],
list: [],
listLoading: true,
total: 1,
pickerConfig: this.datePickerOptions,
queryForm: {
current: 1,
size: 10,
time:'',
startTime: '',
endTime: '',
certNo: '',
clientName: '',
clientNo: '',
mobile: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
},
...mapGetters(['searchData', 'user'])
},
mounted() {
this.fetchData()
},
methods: {
onSubmit() {
this.queryForm.current = 1
this.queryForm.startTime = ''
this.queryForm.endTime = ''
const { time } = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
}
this.fetchData()
},
// 页码变更
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
// 页码变更
handleSizeChange(val) {
this.queryForm.current = 1
this.queryForm.size = val
this.fetchData()
},
async fetchData() {
this.listLoading = true
try{
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
const result = await API.LocalClientMine({ ...params })
const { records, total } = result.result
this.list = records
this.total = total
}catch (err){
console.log('初始化我的客户列表失败',err)
}
this.listLoading = false
},
// 详情
handleDetail(row){
const { creditNo,clientNo,preCreditNo } = row
const route = {
path: '/client/detail',
query: { creditNo,clientNo,preCreditNo }
}
this.$router.push(route)
}
}
}
</script>
<style lang='scss' scoped>
.page-list{
box-sizing: border-box;
padding: 20px;
}
</style>
<template>
<div class='page-fence'>
<!--搜索-->
<block-header title='搜索'/>
<div class='search'>
<el-form ref='form' label-suffix=':' :inline='true' :model='queryForm' class='form-inline'>
<el-form-item prop='orderNo' label='订单编号'>
<el-input v-model='queryForm.orderNo' clearable placeholder='请输入订单编号'/>
</el-form-item>
<el-form-item prop='clientName' label='客户姓名'>
<el-input v-model='queryForm.clientName' clearable placeholder='请输入客户姓名'/>
</el-form-item>
<el-form-item prop='mobile' label='手机号码'>
<el-input v-model='queryForm.mobile' clearable placeholder='请输入客户手机号码'/>
</el-form-item>
<template v-if='searchData!==null'>
<el-form-item prop='state' label='审批结果'>
<el-select v-model='queryForm.state' :popper-append-to-body='false' style='width: 100%;' clearable>
<el-option
v-for='(item,index) in searchData.xshApprovalResultResponseList'
:key='index'
:value='item.approvalResult'
:label='item.approvalResultStr'>
</el-option>
</el-select>
</el-form-item>
</template>
<el-form-item v-if="false" prop='certNo' label='身份证号'>
<el-input v-model='queryForm.certNo' clearable placeholder='请输入'/>
</el-form-item>
<el-form-item prop='time' label='申请时间'>
<el-date-picker
v-model='queryForm.time'
type='datetimerange'
:picker-options='pickerConfig'
:default-time="['00:00:00', '23:59:59']"
value-format='yyyy-MM-dd HH:mm:ss'
range-separator='至'
start-placeholder='开始时间'
end-placeholder='结束时间'
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon='el-icon-search' type='primary' @click='onSearch'>搜 索</el-button>
<el-button icon='el-icon-delete' type='default' @click="onReset('form')">重 置</el-button>
</el-form-item>
</el-form>
</div>
<!--表格-->
<block-header title='借款列表'/>
<el-table
ref='tableSort'
v-loading='listLoading'
border
:data='list'
style='width: 100%'
>
<el-table-column
v-for='(item, index) in finallyColumns'
:key='index'
align='center'
:label='item.label'
:sortable='item.sortable'
:width='item.width'
:fixed='!!item.fixed'
:show-overflow-tooltip='!!item.overflow'
>
<template #default='{ row }'>
<div v-if='item.label==="客户信息"'>
{{ row.realName }} <br/>
{{ row.mobile }}
</div>
<div v-else-if='item.label==="借款金额"'>
{{ money(row[item.prop]) }}
</div>
<!-- <div v-else-if='item.label==="借款状态"'>-->
<!-- <el-tag v-if='row.loanStatus==="CANCELED"' type='info'>{{ row.loanStatusStr }}</el-tag>-->
<!-- <el-tag v-else-if='row.loanStatus==="SETTLED"'>{{ row.loanStatusStr }}</el-tag>-->
<!-- <el-tag v-else-if='row.loanStatus==="SUBMITED"' type='warning'>{{ row.loanStatusStr }}</el-tag>-->
<!-- <el-tag v-else type='success'>{{ row.loanStatusStr }}</el-tag>-->
<!-- </div>-->
<span v-else>{{ row[item.prop] }}</span>
</template>
</el-table-column>
<el-table-column
fixed='right'
align='center'
label='操作'
>
<template #default='{ row }'>
<template v-if='row.loanStatus==="SUBMITED" && row.stepsNo==="002"'>
<el-button size='mini' type='text' @click='handleAudit(row)'>稽核审批</el-button>
</template>
<el-button size='mini' type='text' @click='handleDetail(row)'>详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page='queryForm.current'
layout='total,sizes, prev, pager, next'
:page-sizes='[10,20,30,40,50,100]'
:page-size='queryForm.size'
:total='total'
background
@size-change='handleSizeChange'
@current-change='handleCurrentChange'
/>
<!--稽核弹框-->
<template v-if='visible'>
<loan-audit
:dialog-visible='visible'
:item='item'
@handleClose='visible = false'
@callback='fetchData'
/>
</template>
</div>
</template>
<script>
import _ from 'lodash'
import {doDelete, getList} from '@/api/table'
import API from '@/server/api'
import {mapGetters} from 'vuex'
export default {
name: 'Audit',
data() {
return {
visible: false,
item: null,
checkList: ['订单编号', '客户姓名', '手机号码', '借款金额', 'BD姓名', '借款时间', '借款状态', '资金渠道', '审批结果'],
columns: [
{
order: 1,
label: '订单编号',
prop: 'orderNo'
},
{
order: 3,
label: '客户姓名',
prop: 'clientName'
},
{
order: 3,
width:120,
label: '手机号码',
prop: 'mobile'
},
{
order: 5,
label: '借款金额',
prop: 'loanAmt'
},
{
order: 7,
label: 'BD姓名',
prop: 'bd'
},
{
order: 9,
label: '借款时间',
width: 110,
prop: 'applyTime'
},
{
order: 10,
label: '借款状态',
prop: 'loanState'
},
{
order: 11,
label: '资金渠道',
prop: 'capitalCode'
},
{
order: 12,
label: '审批结果',
prop: 'auditState'
}
],
list: [],
listLoading: true,
pickerConfig: this.datePickerOptions,
total: 1,
queryForm: {
current: 1,
size: 10,
certNo: '',
mobile: '',
orderNo: '',
clientName: '',
state: '',
clientNo: '',
time: '',
startTime: '',
endTime: ''
}
}
},
computed: {
finallyColumns() {
let finallyArray = []
this.checkList.forEach((checkItem) => {
finallyArray.push(
this.columns.filter((item) => item.label === checkItem)[0]
)
})
return _.sortBy(finallyArray, (item) => item.order)
//return finallyArray
},
...mapGetters(['searchData', 'user'])
},
mounted() {
this.fetchData()
},
methods: {
onSearch() {
const {time} = this.queryForm
this.queryForm.current = 1
if (time) {
this.queryForm.startTime = time[0]
this.queryForm.endTime = time[1]
} else {
this.queryForm.startTime = ''
this.queryForm.endTime = ''
}
this.fetchData()
},
handleDetail(row) {
const {creditNo,clientNo,orderNo} = row
this.$router.push({
path: '/loan/localLoanDetail',
query: {
orderNo,
creditNo,
clientNo
}
})
},
// 页码变更
handleSizeChange(val) {
this.queryForm.size = val
this.queryForm.current = 1
this.fetchData()
},
handleCurrentChange(val) {
this.queryForm.current = val
this.fetchData()
},
async fetchData() {
try {
this.listLoading = true
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
const result = await API.LocalLoanAuditList({...params})
const {records, total} = result.result
this.list = records
this.total = total
} catch (err) {
console.log(err, '初始化稽核审批列表失败')
}
this.listLoading = false
},
// 稽核审批
handleAudit(row) {
const {orderNo} = row
this.$router.push({
path: '/loan/detail',
query: {
orderNo,
type: "audit"
}
})
}
}
}
</script>
<style lang='scss' scoped>
.page-fence {
::v-deep {
i {
cursor: pointer;
}
}
box-sizing: border-box;
padding: 20px;
}
</style>
<style lang='scss'>
.custom-table-checkbox {
.el-checkbox {
display: block !important;
margin: 0 0 $base-padding/4 0;
}
}
.action-bar {
margin-bottom: 15px;
}
</style>
This diff is collapsed.
This diff is collapsed.
<template>
<div v-if='detail!==null' class='page'>
<!--用户基础信息-->
<template v-if='detail.clientDetail!==null'>
<user-base-info :contacts='detail.linkPhoneList' page='local' :base-info='detail.clientDetail'/>
</template>
<!--其它信息-->
<user-local-info :info='detail'/>
<!-- 审批操作 -->
<template v-if='visible'>
<LocalApproval :item='detail'/>
</template>
</div>
</template>
<script>
import API from '@/server/api'
export default {
name: 'ApprovalDetail',
data() {
return {
visible: false,
creditNo: '',
detail: null
}
},
async created() {
const {query} = this.$route
if (query && query.creditNo) {
this.creditNo = query.creditNo
await this.init()
await this.initSearchData()
}
},
async mounted() {
console.log('沃日')
await this.initSearchData()
},
methods: {
async initSearchData() {
await this.$store.dispatch('common/GetSearchData')
},
async init() {
const creditNo = this.creditNo
const result = await API.localCreditDetail({
creditNo
})
this.detail = result.result
const {clientDetail} = result.result
this.visible = !!(clientDetail.creditResult && clientDetail.creditResult === 'CREDIT_RETRIAL');
console.log('审批详情', this.detail)
}
}
}
</script>
<style lang='scss' src='./index.scss'></style>
.merchant-new{
box-sizing: border-box;
padding: 20px;
}
This diff is collapsed.
...@@ -305,7 +305,7 @@ export default { ...@@ -305,7 +305,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.login-container { .login-container {
height: 100vh; height: 100vh;
background: url('~@/assets/login_images/background.jpg') center center fixed no-repeat; background: url('~@/assets/login_images/bg4.jpg') center center fixed no-repeat;
background-size: cover; background-size: cover;
} }
......
...@@ -64,7 +64,7 @@ module.exports = { ...@@ -64,7 +64,7 @@ module.exports = {
"/api": { "/api": {
//target: "http://192.168.0.199:8221", //target: "http://192.168.0.199:8221",
//target: "http://192.168.0.26:8785", //target: "http://192.168.0.26:8785",
target: "http://47.99.245.36:8785", target: "http://114.55.246.69:8785",
ws: true, ws: true,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment