Commit 24a0de06 authored by caimeng's avatar caimeng

新增编辑

parent 5281cb65
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
"js-cookie": "^2.2.1", "js-cookie": "^2.2.1",
"jsencrypt": "^3.0.0-rc.1", "jsencrypt": "^3.0.0-rc.1",
"jsplumb": "^2.14.6", "jsplumb": "^2.14.6",
"local-storage": "^2.0.0",
"lodash": "^4.17.20", "lodash": "^4.17.20",
"mockjs": "^1.1.0", "mockjs": "^1.1.0",
"moment": "^2.29.3", "moment": "^2.29.3",
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<el-form-item prop='loanIntentionNum' label='申请期数(期)'> <el-form-item prop='loanIntentionNum' label='申请期数(期)'>
<el-row> <el-row>
<el-col :span='14'> <el-col :span='14'>
<span>{{ loanIntentionNum }}</span> <span>{{ manualNum }}</span>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
...@@ -220,6 +220,7 @@ ...@@ -220,6 +220,7 @@
hasRisk: false, hasRisk: false,
riskResult: null, riskResult: null,
manualAmount: '', manualAmount: '',
manualNum:'',
creditNo: '', creditNo: '',
opinionEnum: [], opinionEnum: [],
...@@ -247,14 +248,15 @@ ...@@ -247,14 +248,15 @@
if (this.item !== null) { if (this.item !== null) {
const { clientDetail, projectInfoResponse } = this.item const { clientDetail, projectInfoResponse } = this.item
const { creditNo, creditType } = clientDetail const { creditNo, creditType } = clientDetail
const { manualAmount, loanIntentionNum } = projectInfoResponse const { manualAmount, manualNum } = projectInfoResponse
this.creditNo = creditNo this.creditNo = creditNo
this.manualAmount = manualAmount this.manualAmount = manualAmount
this.loanIntentionNum = loanIntentionNum this.manualNum = manualNum
this.form.perAllotAmount = manualAmount this.form.perAllotAmount = manualAmount
this.form.loanIntentionNum = loanIntentionNum this.form.loanIntentionNum = manualNum
this.form.creditNo = creditNo this.form.creditNo = creditNo
this.form.creditType = creditType this.form.creditType = creditType
...@@ -292,7 +294,7 @@ ...@@ -292,7 +294,7 @@
this.$refs['dForm'].clearValidate('loanIntentionNum') this.$refs['dForm'].clearValidate('loanIntentionNum')
if (this.hasRisk) { if (this.hasRisk) {
this.form.perAllotAmount = this.manualAmount this.form.perAllotAmount = this.manualAmount
this.form.loanIntentionNum = this.loanIntentionNum this.form.loanIntentionNum = this.manualNum
} }
} }
this.form.capitalCode = capitalCode this.form.capitalCode = capitalCode
...@@ -356,9 +358,15 @@ ...@@ -356,9 +358,15 @@
const form = this.form const form = this.form
if (this.handleRisk && form.capitalCode === 'FENGSHENGBUSINESS') { if (this.handleRisk && form.capitalCode === 'FENGSHENGBUSINESS') {
form.perAllotAmount = this.manualAmount form.perAllotAmount = this.manualAmount;
form.loanIntentionNum = this.loanIntentionNum;
} }
form.userId = this.user.userId form.userId = this.user.userId;
console.log(form,'提交内容');
//return;
const result = await API.approveSubmit({ const result = await API.approveSubmit({
...form ...form
}) })
......
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
<div class="b-header-inner"> <div class="b-header-inner">
<h3>{{ title }}</h3> <h3>{{ title }}</h3>
</div> </div>
<div class="b-header-extra">
<slot></slot>
</div>
</div> </div>
</template> </template>
...@@ -28,10 +32,10 @@ export default { ...@@ -28,10 +32,10 @@ export default {
} }
.b-header-inner { .b-header-inner {
flex:1;
display: flex; display: flex;
align-items: center; align-items: center;
} }
.b-header-inner::before { .b-header-inner::before {
content: ""; content: "";
background-color: #155bd4; background-color: #155bd4;
...@@ -48,4 +52,12 @@ export default { ...@@ -48,4 +52,12 @@ export default {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.b-header-extra{
flex:1;
display: flex;
align-items: center;
justify-content: flex-end;
}
</style> </style>
...@@ -61,7 +61,9 @@ export const constantRoutes = [ ...@@ -61,7 +61,9 @@ export const constantRoutes = [
name: '404', name: '404',
component: () => import('@/views/404'), component: () => import('@/views/404'),
hidden: true hidden: true
} },
] ]
export const asyncRoutes = [ export const asyncRoutes = [
...@@ -252,6 +254,40 @@ export const asyncRoutes = [ ...@@ -252,6 +254,40 @@ export const asyncRoutes = [
} }
] ]
}, },
{
path: '/merchant',
name: 'merchant',
component: Layout,
redirect: '/merchant/list',
alwaysShow: true,
meta: {
noKeepAlive: true,
title: '商户管理',
remixIcon: 'home-4-line'
},
children: [
{
path: 'list',
name: 'merchantList',
component: () => import('@/views/merchant/list'),
meta: {
noKeepAlive: true,
title: '商户列表'
}
},
{
path: 'detail',
name: 'merchantDetail',
component: () => import('@/views/merchant/detail'),
hidden: true,
meta: {
noKeepAlive: true,
title: '商户信息',
tagHidden: true
}
}
]
},
{ {
path: '/admin', path: '/admin',
name: 'admin', name: 'admin',
......
...@@ -270,7 +270,7 @@ export default { ...@@ -270,7 +270,7 @@ export default {
// 用户管理 // 用户管理
// 用户列表 // 用户列表
userList(data){ userList(data) {
return request({ return request({
url: '/user/searchAll', url: '/user/searchAll',
method: 'post', method: 'post',
...@@ -278,7 +278,7 @@ export default { ...@@ -278,7 +278,7 @@ export default {
}) })
}, },
// 用户详情 // 用户详情
userDetail(params){ userDetail(params) {
return request({ return request({
url: '/user/searchAll', url: '/user/searchAll',
method: 'get', method: 'get',
...@@ -286,7 +286,7 @@ export default { ...@@ -286,7 +286,7 @@ export default {
}) })
}, },
// 用户新增 // 用户新增
userNew(data){ userNew(data) {
return request({ return request({
url: '/user/insert', url: '/user/insert',
method: 'post', method: 'post',
...@@ -294,7 +294,7 @@ export default { ...@@ -294,7 +294,7 @@ export default {
}) })
}, },
// 用户编辑 // 用户编辑
userUpdate(data){ userUpdate(data) {
return request({ return request({
url: '/user/update', url: '/user/update',
method: 'post', method: 'post',
...@@ -302,7 +302,7 @@ export default { ...@@ -302,7 +302,7 @@ export default {
}) })
}, },
// 用户重置密码 // 用户重置密码
userResetPwd(data){ userResetPwd(data) {
return request({ return request({
url: '/user/resetPassword', url: '/user/resetPassword',
method: 'post', method: 'post',
...@@ -310,7 +310,7 @@ export default { ...@@ -310,7 +310,7 @@ export default {
}) })
}, },
// 用户修改密码 // 用户修改密码
userUpdatePwd(data){ userUpdatePwd(data) {
return request({ return request({
url: '/user/updatePassword', url: '/user/updatePassword',
method: 'post', method: 'post',
...@@ -319,7 +319,7 @@ export default { ...@@ -319,7 +319,7 @@ export default {
}, },
// 初始化用户角色 // 初始化用户角色
GetAllUserRole(params){ GetAllUserRole(params) {
return request({ return request({
url: '/role/select', url: '/role/select',
method: 'get', method: 'get',
...@@ -327,7 +327,7 @@ export default { ...@@ -327,7 +327,7 @@ export default {
}) })
}, },
// 查询用户角色 // 查询用户角色
GetUserRole(params){ GetUserRole(params) {
return request({ return request({
url: '/user/selectUserRole', url: '/user/selectUserRole',
method: 'get', method: 'get',
...@@ -336,7 +336,7 @@ export default { ...@@ -336,7 +336,7 @@ export default {
}, },
// 设置用户角色 // 设置用户角色
SetUserRole(data){ SetUserRole(data) {
return request({ return request({
url: '/user/userRole', url: '/user/userRole',
method: 'post', method: 'post',
...@@ -346,7 +346,7 @@ export default { ...@@ -346,7 +346,7 @@ export default {
// 获取OSS验签 // 获取OSS验签
initOssSign(params){ initOssSign(params) {
return request({ return request({
url: '/common/oss', url: '/common/oss',
method: 'get', method: 'get',
...@@ -355,11 +355,80 @@ export default { ...@@ -355,11 +355,80 @@ export default {
}, },
// 获取OSS验签 // 获取OSS验签
saveExtraImg(data){ saveExtraImg(data) {
return request({ return request({
url: '/credit/uploadExtraAnnex', url: '/credit/uploadExtraAnnex',
method: 'post', method: 'post',
data data
}) })
}, },
/*商户管理*/
// 商户列表
merchantList(data) {
return request({
url: '/partner/selectPartnerList',
method: 'post',
data
})
},
// 商户新增编辑
merchantUpdate(data) {
return request({
url: '/partner/addOrUpdateBasic',
method: 'post',
data
})
},
// 商户详情
merchantDetail(data) {
return request({
url: '/partner/selectPartnerDetail',
method: 'get',
params:data
})
},
// 上下架(修改状态)
merchantChangeStatus(data) {
return request({
url: '/partner/updatePartnerShelves',
method: 'post',
data
})
},
// 商户银行卡列表
merchantBankList(data) {
return request({
url: '/partner/selectAccountByPartnerNo',
method: 'get',
params:data
})
},
// 商户银行卡更新
merchantBankUpdate(data) {
return request({
url: '/partner/addOrUpdateAccount',
method: 'post',
data
})
},
// 商户产品配置列表
merchantProductList(data) {
return request({
url: '/partner/getLrdConfigList',
method: 'get',
params:data
})
},
// 商户产品配置更新
merchantProductUpdate(data) {
return request({
url: '/partner/addOrUpdateLrdConfig',
method: 'post',
data
})
},
} }
import ls from 'local-storage'
import API from '@/server/api' import API from '@/server/api'
const common = { const common = {
state: { state: {
searchData: null, searchData: ls.get('SearchData') ? JSON.parse(ls.get('SearchData')) : null
}, },
actions: { actions: {
GetSearchData({commit}){ GetSearchData({ commit }) {
return new Promise(resolve => { return new Promise(resolve => {
API.initSearchData().then((res) => { API.initSearchData().then(async (res) => {
const data = res.result; const data = res.result
commit("SET_SEARCH_DATA", data); commit('SET_SEARCH_DATA', data)
resolve(data); await ls.set('SearchData', JSON.stringify(data))
}); resolve(data)
}); })
})
} }
}, },
mutations: { mutations: {
......
...@@ -25,53 +25,8 @@ const actions = { ...@@ -25,53 +25,8 @@ const actions = {
let routes = asyncRoutes let routes = asyncRoutes
console.log(mode, '路由模式') console.log(mode, '路由模式')
if (mode === 'all' && process.env.NODE_ENV !== 'development') { if (mode === 'all' && process.env.NODE_ENV !== 'development') {
//let data = [
// {
// path: '/',
// component: 'Layout',
// name: 'Home',
// meta: {
// title: '首页',
// remixIcon: 'home-4-line',
// },
// children: [
// {
// path: 'index',
// name: 'Index',
// component: '@/views/index',
// meta: {
// title: '首页',
// affix: true
// }
// }
// ],
// },
// {
// path: '/user',
// name: 'User',
// component: 'Layout',
// redirect: '/user/list',
// alwaysShow: true,
// meta: {
// title: '用户管理',
// remixIcon: 'apps-line',
// },
// children: [
// {
// path: 'list',
// name: '用户列表',
// component: '@/views/user/list',
// meta: {
// title: '用户列表'
// }
// }
// ]
// }
//];
let { result } = await API.userInfo() let { result } = await API.userInfo()
const data = result.menuList const data = result.menuList
if (data[data.length - 1].path !== '*') { if (data[data.length - 1].path !== '*') {
data.push({ path: '*', redirect: '/404', hidden: true }) data.push({ path: '*', redirect: '/404', hidden: true })
} }
......
const a = {
'code':
'200', 'success':
true, 'message':
'操作成功!', 'result':
{
'partnerBasicResponse':
{
'partnerNo':
'830136976731013003264',
'regName':
'贵州悦美熹亚医疗服务有限公司',
'realName':
'贵州悦美熹亚医疗服务有限公司',
'establishDate':
'2021-05-13T00:00:00',
'regAmt':
'100',
'companyIndustry':
6,
'companyIndustryStr':
'医疗防疫',
'qualificationType':
2,
'qualificationTypeStr':
'医学美容',
'branchStatus':
0,
'branchStatusStr':
'诊所及个体户',
'bizProperty':
1,
'bizPropertyStr':
'私营',
'isShelves':
0,
'isShelvesStr':
'已上架',
'addressNature':
1,
'addressNatureStr':
'租用',
'addressSize':
'677.21',
'employeesNumber':
40,
'customerSource':
1,
'monthSales':
'300',
'bizScope':
'法律、法规、国务院决定规定禁止的不得经营;法律、法规、国务院决定规定应当许可(审批)的,经审批机关批准后凭许可(审批)文件经营;法律、法规、国务院决定规定无需许可(审批)的,市场主体自主选择经营。(其他未列明商务服务业;医疗美容服务(依法须经批准的项目,经相关部门批准后方可开展经营活动))',
'registerAddress':
'金华园街道办事处中渝·第一城B2地块第B2-14栋3层1、2号;4层2号',
'actualAddress':
'金华园街道办事处中渝·第一城B2地块第B2-14栋3层1、2号;4层2号',
'lng':
'106.639644',
'lat':
' 26.656524',
'regionCode':
'100123',
'regionName':
'贵阳(南宁)',
'grade':
'0',
'coopAgreementExpire':
'2023-06-13',
'leaseExpire':
'2026-03-03',
'instLicenceLongTime':
null,
'instLicenceExpire':
'长期',
'stagingOrdersPercent':
null,
'residentDoctorsNumber':
null,
'operatingRoomsNumber':
0,
'mainProject':
'',
'managementMode':
'渠道医院,无返利平台合作',
'unifiedCode':
'91520115MAAL1JGH2B',
'bankLicenseNo':
'J7010041421801',
'creditCode':
'91520115MAAL1JGH2B',
'medicalLicenseName':
'',
'medicalLicenseLegal':
null,
'medicalLicensePrincipal':
null,
'medicalLicenseExpire':
'2027-06-08',
'medicalLicenseAddress':
'',
'hospitalCategory':
null,
'hospitalCategoryStr':
null,
'medicalSubjects':
null
}
,
'contactsResponse':
{
'partnerNo':
'830136976731013003264', 'reprName':
'李晶晶', 'reprIdNo':
'511324199701257546', 'reprTel':
'13310404169', 'linkerPosition':
'法人', 'linker':
'李晶晶', 'linkerTel':
'13310404169', 'linkerEmail':
'', 'isDelete':
0, 'gmtCreated':
'2022-06-21T05:57:14.000+00:00', 'gmtModified':
'2022-06-21T05:57:14.000+00:00', 'memo':
null
}
,
'annexResponseList':
[{
'type': 'yiyaunzhaopian',
'typeStr': '医院照片',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'zufanghetong',
'typeStr': '租房合同',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'yingyezhizhao',
'typeStr': '营业执照',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'yiliaoxukezheng',
'typeStr': '医疗许可证',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'shoushudan',
'typeStr': '手术单',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'shenfenzheng',
'typeStr': '法人身份证',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'duisishenfenzheng',
'typeStr': '对私账户身份证',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'yinhangka',
'typeStr': '银行卡',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}, {
'type': 'hezuoxieyi',
'typeStr': '合作协议',
'imgData': ['https://wxres.jqtianxia.com/LRD-FILE/20220822/4f94709217074796ac7d6ee92f24075f.jpg']
}]
}
}
<template>
<div class='merchant-account'>
<div>账户管理</div>
</div>
</template>
<script>
import API from '@/server/api'
import { mapGetters } from 'vuex'
import Axios from 'axios'
export default {
name: 'MerchantAccount',
data() {
return {
}
},
computed: {
...mapGetters(['searchData', 'user'])
},
async created() {
const { query } = this.$route
if (query && query.orderNo) {
this.orderNo = query.orderNo
await this.init()
}
},
methods: {
// 上传
async handleUpload(obj) {
const { clientDetail, addAttachInfo } = this.detail
const { file } = obj
let fileName = 'jpg'
let fileType = 'LRD-ADMIN/audit'
const resOssSign = await API.initOssSign({ fileName, fileType })
console.log(resOssSign, 'oss返回信息')
if (resOssSign.success) {
const { accessId, dir, expire, host, policy, signature } = resOssSign.result
const data = new FormData()
data.append('key', dir)
data.append('OSSAccessKeyId', accessId)
data.append('policy', policy)
data.append('Signature', signature)
data.append('success_action_status', '200')
data.append('file', file)
try {
Axios({
url: host,
method: 'post',
data: data,
headers: { 'Content-Type': 'multipart/form-data' }
}).then(async (res) => {
console.log(res, 'w')
const uploadFileUrl = host + dir
const annexList = [uploadFileUrl]
const result = await API.saveExtraImg({
annexList,
creditNo: clientDetail.creditNo
})
if (result.success) {
this.$message.success('上传成功')
addAttachInfo.push(uploadFileUrl)
this.detail.addAttachInfo = addAttachInfo
}
}).catch(e => {
throw new Error(e)
})
} catch (e) {
this.$message.error('上传报错')
}
}
},
// 初始化详情
async init() {
const orderNo = this.orderNo
const result = await API.loanDetail({
orderNo
})
const data = result.result
const {
bdInfoResponse,
clientDetail,
capitalName,
clientIdCardInfoResponse,
collectionAccountResponse,
creditAttachInfo,
faceInfoResponse,
approvalResultResponse,
projectInfoResponse,
repayAccountResponse,
reportResponse,
supplAttachInfo,
thirdPartyReport,
xcxSupplAttachInfo,
addAttachInfo
} = data
this.project = projectInfoResponse
this.client = clientDetail
this.capitalName = capitalName // 资金方
this.collectionAccountResponse = collectionAccountResponse // 收款方信息
this.repayAccountResponse = repayAccountResponse // 还款方信息
this.bdInfoResponse = bdInfoResponse // 还款方信息
this.approvalResultResponse = approvalResultResponse
this.clientIdCardInfoResponse = Object.entries(clientIdCardInfoResponse)
this.faceInfoResponse = Object.entries(faceInfoResponse)
this.creditAttachInfo = creditAttachInfo // 授信图片信息
this.reportResponse = reportResponse
this.thirdPartyReport = JSON.parse(thirdPartyReport)
this.supplAttachInfo = supplAttachInfo // 附件信息
this.addAttachInfo = addAttachInfo
if (xcxSupplAttachInfo && xcxSupplAttachInfo.length > 0) {
this.xcxSupplAttachInfo = xcxSupplAttachInfo
}
this.detail = data
if (this.$route.query && this.$route.query.type) {
this.visible = true
this.dForm.orderNo = this.orderNo
this.dForm.stepsNo = projectInfoResponse.stepsNo
this.dForm.currentAction = projectInfoResponse.currentAction
}
},
// 手风琴折叠那啥
handleChange(val) {
this.activeNames = val
},
// 稽核审批提交
onSubmit(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async (res) => {
console.log(res, '是啥')
const form = this.dForm
base.userId = this.user.userId
console.log(base, '表单数据')
const result = await API.loanAuditSubmit({
...base
})
if (result.success) {
this.$message({
type: 'success',
message: '操作成功!'
})
}
this.onBack()
}).catch((e) => {
console.log(e, '取消申述了')
})
} else {
console.log('哈哈错误了')
}
})
},
// 返回
onBack() {
this.$router.back()
},
// 图片上传
arraySplice(obj, result) {
if (Array.isArray(obj)) {
obj.forEach(item => {
result = result.concat(item.screenList)
})
} else {
const { values } = Object
for (let val of values(obj)) {
if (val) result.push(val)
}
}
return result
},
showImgViewer(firstImg) {
const {
clientIdCardInfoResponse,
creditAttachInfo,
faceInfoResponse,
supplAttachInfo,
xcxSupplAttachInfo,
addAttachInfo
} = this.detail
let imgArray = []
// 客户身份证
if (clientIdCardInfoResponse) {
imgArray = this.arraySplice(clientIdCardInfoResponse, imgArray)
}
// 补充图片
if (xcxSupplAttachInfo && xcxSupplAttachInfo.length) {
imgArray = this.arraySplice(xcxSupplAttachInfo, imgArray)
}
// 活体
if (faceInfoResponse) {
imgArray = this.arraySplice(faceInfoResponse, imgArray)
}
// 授信图片
if (creditAttachInfo && creditAttachInfo.length) {
imgArray = this.arraySplice(creditAttachInfo, imgArray)
}
// 附件图片
if (supplAttachInfo && supplAttachInfo.length) {
imgArray = this.arraySplice(supplAttachInfo, imgArray)
}
// 额外的图片
if (addAttachInfo && addAttachInfo.length) {
addAttachInfo.forEach(item => {
imgArray.push(item)
})
}
// 获取当前点击图片的索引
const curIndex = imgArray.findIndex((item) => item === firstImg)
// 把索引之前的内容copy一份
const ArrayHeader = imgArray.slice(0, curIndex)
// 删除索引之前的内容
imgArray.splice(0, curIndex)
console.log(ArrayHeader, imgArray)
imgArray = imgArray.concat(ArrayHeader)
console.log(imgArray)
this.imgList = imgArray
this.imgList = imgArray
this.imgViewerVisible = true
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'hidden'
document.addEventListener('touchmove', m, false) // 禁止页面滑动
},
closeImgViewer() {
this.imgViewerVisible = false
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'auto'
document.removeEventListener('touchmove', m, true)
},
// 上下架
handleChangeStatus() {
}
}
}
</script>
<style lang='scss' src='../index.scss'></style>
<template>
<div class='merchant-base'>
<el-form ref='form'
label-suffix=':'
:show-message='false'
:inline-message='false'
label-width='140px'
:model='form'
class='form-inline'>
<block-header title='基本信息' />
<div class='form-box'>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.regName' required :rules='rules.input' label='商户注册名称'>
<el-input v-model='form.partnerBasicRequest.regName' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.realName' required label='实际经营名称'>
<el-input v-model='form.partnerBasicRequest.realName' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.establishDate' required label='成立日期'>
<el-date-picker v-model='form.partnerBasicRequest.establishDate' class='m-select' type='date'
placeholder='选择日期' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.regAmt' required label='注册资本(万元)'>
<el-input v-model='form.partnerBasicRequest.regAmt' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.companyIndustry' required label='所属行业'>
<el-select
v-model='form.partnerBasicRequest.companyIndustry'
class='m-select'
placeholder='请选择'
:popper-append-to-body='false'
style='width: 100%;'
clearable>
<el-option
v-for='(item,index) in searchData.companyIndustryResponseList'
:key='index'
:value='item.companyIndustry'
:label='item.companyIndustryStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.qualificationType' required label='资质类型'>
<el-select
v-model='form.partnerBasicRequest.qualificationType'
class='m-select'
placeholder='请选择'
clearable>
<el-option
v-for='(item,index) in searchData.qualificationTypeResponseList'
:key='index'
:value='item.qualificationType'
:label='item.qualificationTypeStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.branchStatus' required label='分支机构情况'>
<el-select v-model='form.partnerBasicRequest.branchStatus' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.branchStatusResponseList'
:key='index'
:value='item.branchStatus'
:label='item.branchStatusSre'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.bizProperty' required label='商户性质'>
<el-select v-model='form.partnerBasicRequest.bizProperty' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.bizPropertyResponseList'
:key='index'
:value='item.bizProperty'
:label='item.bizPropertyStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.employeesNumber' required label='员工人数'>
<el-input v-model='form.partnerBasicRequest.employeesNumber' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.addressNature' required label='营业用地性质'>
<el-select v-model='form.partnerBasicRequest.addressNature' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.addressNatureResponseList'
:key='index'
:value='item.addressNature'
:label='item.addressNatureStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.addressSize' required label='营业用地面积'>
<el-input v-model='form.partnerBasicRequest.addressSize' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.customerSource' required label='客群来源'>
<el-select v-model='form.partnerBasicRequest.customerSource' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.customerSourceResponseList'
:key='index'
:value='item.customerSource'
:label='item.customerSourceStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.monthSales' required label='预计月均交易金额'>
<el-input v-model='form.partnerBasicRequest.monthSales' />
</el-form-item>
</el-col>
<!--@click.native='handleRegionChange(item)'-->
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.regionCode' required label='区域'>
<el-select v-model='form.partnerBasicRequest.regionCode' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.partnerRegionResponseList'
:key='index'
:value='item.regionCode'
:label='item.regionName'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.grade' required label='商户等级'>
<el-select v-model='form.partnerBasicRequest.grade' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.partnerGrade'
:key='index'
:value='item'
:label='item'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.bizScope' required label='经营范围'>
<el-input v-model='form.partnerBasicRequest.bizScope' type='textarea' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.registerAddress' required label='注册地址'>
<el-input v-model='form.partnerBasicRequest.registerAddress' type='textarea' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.actualAddress' required label='实际营业地址'>
<el-input v-model='form.partnerBasicRequest.actualAddress' type='textarea' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.coopAgreementExpire' required label='合作协议到期日'>
<el-date-picker v-model='form.partnerBasicRequest.coopAgreementExpire' class='m-select' type='date'
placeholder='选择日期' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-row>
<el-col :span='12'>
<el-form-item prop='partnerBasicRequest.instLicenceLongTime' required label='营业执照是否长期'>
<el-radio-group v-model="form.partnerBasicRequest.instLicenceLongTime">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span='12'>
<template v-if='!form.partnerBasicRequest.instLicenceLongTime'>
<el-form-item label-width='80px' prop='partnerBasicRequest.instLicenceExpire' required label='到期日'>
<el-date-picker v-model='form.partnerBasicRequest.instLicenceExpire' class='m-select' type='date'
placeholder='选择日期' />
</el-form-item>
</template>
</el-col>
</el-row>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.leaseExpire' required label='租赁场所到期日'>
<el-date-picker v-model='form.partnerBasicRequest.leaseExpire' class='m-select' type='date'
placeholder='选择日期' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.lat' required label='纬度'>
<el-input v-model='form.partnerBasicRequest.lat' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.lng' required label='经度'>
<el-input v-model='form.partnerBasicRequest.lng' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.stagingOrdersPercent' required label='分期订单数占比%'>
<el-input v-model='form.partnerBasicRequest.stagingOrdersPercent' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.residentDoctorsNumber' required label='医院常驻医生数'>
<el-input v-model='form.partnerBasicRequest.residentDoctorsNumber' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.operatingRoomsNumber' required label='手术室数量'>
<el-input v-model='form.partnerBasicRequest.operatingRoomsNumber' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.mainProject' required label='主做项目'>
<el-input v-model='form.partnerBasicRequest.mainProject' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.managementMode' required label='机构经营模式'>
<el-input v-model='form.partnerBasicRequest.managementMode' type='textarea' placeholder='请输入' />
</el-form-item>
</el-col>
</el-row>
</div>
<block-header title='联系人信息' />
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.reprName' required label='法人姓名'>
<el-input v-model='form.updateContactsRequest.reprName' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.reprIdNo' required label='法人身份证号码'>
<el-input v-model='form.updateContactsRequest.reprIdNo' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.reprTel' required label='法人手机号'>
<el-input v-model='form.updateContactsRequest.reprTel' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.linker' required label='联系人姓名'>
<el-input v-model='form.updateContactsRequest.linker' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.linkerTel' required label='联系人电话'>
<el-input v-model='form.updateContactsRequest.linkerTel' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='updateContactsRequest.linkerPosition' required label='联系人职位'>
<el-input v-model='form.updateContactsRequest.linkerPosition' />
</el-form-item>
</el-col>
</el-row>
<block-header title='证照信息' />
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.unifiedCode' required label='社会统一信用代码'>
<el-input v-model='form.partnerBasicRequest.unifiedCode' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.bankLicenseNo' required label='开户许可证'>
<el-input v-model='form.partnerBasicRequest.bankLicenseNo' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.creditCode' required label='机构信用代码'>
<el-input v-model='form.partnerBasicRequest.creditCode' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalLicenseName' required label='医疗许可证名称'>
<el-input v-model='form.partnerBasicRequest.medicalLicenseName' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalLicenseLegal' required label='医疗许可证法人'>
<el-input v-model='form.partnerBasicRequest.medicalLicenseLegal' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalLicensePrincipal' required label='医疗许可证负责人'>
<el-input v-model='form.partnerBasicRequest.medicalLicensePrincipal' />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalLicenseExpire' required label='医疗许可证到期日'>
<el-input v-model='form.partnerBasicRequest.medicalLicenseExpire' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalSubjects' required label='诊疗科目'>
<el-input v-model='form.partnerBasicRequest.medicalSubjects' />
</el-form-item>
</el-col>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.hospitalCategory' required label='医院类别'>
<el-select v-model='form.partnerBasicRequest.hospitalCategory' class='m-select' placeholder='请选择'>
<el-option
v-for='(item,index) in searchData.hospitalCategoryResponseList'
:key='index'
:value='item.hospitalCategory'
:label='item.hospitalCategoryStr'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter='20'>
<el-col :span='8'>
<el-form-item prop='partnerBasicRequest.medicalLicenseAddress' required label='医疗许可证地址'>
<el-input v-model='form.partnerBasicRequest.medicalLicenseAddress' type='textarea' />
</el-form-item>
</el-col>
</el-row>
<block-header title='附件信息' />
<template v-if='form.annexRequestList.length'>
<template v-for='(o, index) in form.annexRequestList'>
<el-form-item :key='index'
:prop="'annexRequestList.'+index+'.imgData'"
required
:label='o.typeStr'>
<el-upload
class='auditUpload'
:action='UploadUrl'
:data='uploadParams'
:multiple='true'
:headers='headers'
list-type='picture-card'
:show-file-list='true'
:with-credentials='true'
:disabled='false'
:file-list='o.imgData'
:on-remove='(file,fileList)=>uploadRemove(file,fileList,o.type,index)'
:http-request='(params)=>handleUpload(params,o.type,index)'>
<i class='el-icon-plus avatar-uploader-icon'></i>
</el-upload>
</el-form-item>
</template>
</template>
<!-- 按钮部分-->
<div class='fixed'>
<el-button type='primary'>暂存</el-button>
<el-button type='primary' @click="onSubmit('form')">提交</el-button>
</div>
</el-form>
<!-- 图片预览-->
<el-image-viewer v-if='imgViewerVisible' :on-close='closeImgViewer' :url-list='imgList' />
</div>
</template>
<script>
import API from '@/server/api'
import { mapGetters } from 'vuex'
import Axios from 'axios'
export default {
name: 'MerchantBase',
props: {
//eslint-disable-next-line vue/require-default-prop
merchantNo: {
type: String,
require: false
}
},
data() {
return {
imgViewerVisible: false,
imgList: [],
// 图片上传相关
headers: {},
uploadParams: {},
UploadUrl: process.env.VUE_APP_API_PATH,
rules: {
input: [
{ required: true, trigger: 'blur' }
]
},
form: {
partnerNo: '', // 商户编号,如果有值就是编辑
stagingStatus: '2',// 暂存状态
partnerBasicRequest: {
area: '',
qualificationType: '',
monthSales: '',
residentDoctorsNumber: '',
medicalLicenseAddress: '',
unifiedCode: '',
actualAddress: '',
hospitalCategory: '',
operatingRoomsNumber: '',
isShelves: '',
regName: '',
managementMode: '',
hospitalCategoryStr: '',
instLicenceLongTime: false,
establishDate: '',
coopAgreementExpire: '',
medicalSubjects: '',
addressSize: '',
bankLicenseNo: '',
bizProperty: '',
medicalLicenseLegal: '',
branchStatus: '',
regionCode: '',
customerSource: '',
companyIndustry: '',
registerAddress: '',
leaseExpire: '',
addressNature: '',
medicalLicensePrincipal: '',
partnerNo: '',
medicalLicenseName: '',
realName: '',
regAmt: '',
creditCode: '',
bizScope: '',
instLicenceExpire: '',
employeesNumber: '',
mainProject: '',
grade: '',
medicalLicenseExpire: '',
regionName: '',
stagingOrdersPercent: '',
lat: '',
lng: ''
},
updateContactsRequest: {
linker: '',
linkerPosition: '',
linkerTel: '',
reprIdNo: '',
reprName: '',
reprTel: '',
memo: ''
},
annexRequestList: []
},
annexRequestList: []
}
},
computed: {
...mapGetters(['searchData', 'user'])
},
async mounted() {
if (this.searchData && this.searchData.annexTypeResponseList.length) {
const annex = []
this.searchData.annexTypeResponseList.forEach(item => {
const obj = {}
obj.type = item.annexType
obj.typeStr = item.annexTypeStr
obj.imgData = []
annex.push(obj)
})
this.annexRequestList = annex
this.form.annexRequestList = annex
}
if (this.merchantNo) {
this.form.partnerNo = this.merchantNo
await this.init()
}
},
methods: {
// 区域选择
handleRegionChange(item) {
if (item) {
const { regionCode, regionName } = item
this.form.partnerBasicRequest.regionCode = regionCode
this.form.partnerBasicRequest.regionName = regionName
}
},
// 上传
async handleUpload(obj, type, index) {
const { file } = obj
let fileName = 'jpg'
let fileType = 'LRD-ADMIN/merchant'
const resOssSign = await API.initOssSign({ fileName, fileType })
if (resOssSign.success) {
const { accessId, dir, expire, host, policy, signature } = resOssSign.result
const data = new FormData()
data.append('key', dir)
data.append('OSSAccessKeyId', accessId)
data.append('policy', policy)
data.append('Signature', signature)
data.append('success_action_status', '200')
data.append('file', file)
try {
Axios({
url: host,
method: 'post',
data: data,
headers: { 'Content-Type': 'multipart/form-data' }
}).then(async (res) => {
console.log(res, '我哈哈')
const uploadFileUrl = host + dir
this.annexRequestList[index]['imgData'].push({
name: file.name,
uid: file.name,
url: uploadFileUrl
})
// 清除校验
this.$refs['form'].clearValidate('annexRequestList.' + index + '.imgData')
console.log(this.form.annexRequestList,'我我我')
console.log(this.annexRequestList,'我我我1')
}).catch(e => {
throw new Error(e)
})
} catch (e) {
this.$message.error('上传报错')
}
}
},
uploadRemove(file, fileList, type, index) {
console.log(file, fileList, type, index, this.annexRequestList)
const cacheFileList = this.annexRequestList[index]['imgData']
this.annexRequestList[index]['imgData'] = cacheFileList.filter(item => {
if (item.uid !== file.uid) {
return item
}
})
console.log(this.annexRequestList,this.form.annexRequestList,'wo -')
},
// 初始化详情
async init() {
const partnerNo = this.merchantNo
const result = await API.merchantDetail({
partnerNo
})
console.log(result, '商户详情')
const data = result.result
this.detail = data
const { annexResponseList, contactsResponse, partnerBasicResponse } = data
this.form.partnerBasicRequest = partnerBasicResponse
this.form.updateContactsRequest = contactsResponse
this.form.partnerNo = partnerNo
// 图片啥
annexResponseList.forEach(item => {
const imgData = []
item.imgData.forEach((img, index) => {
const obj = {
name: img,
uid: `${index}`,
url: img
}
imgData.push(obj)
})
item.imgData = imgData
})
console.log(annexResponseList, '哈哈哈')
this.form.annexRequestList = annexResponseList
this.annexRequestList = annexResponseList;
},
// 稽核审批提交
onSubmit(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async (res) => {
const form = this.form
const params = Object.assign({}, form)
const annexList = params.annexRequestList
annexList.forEach(item => {
const cacheImgData = []
item.imgData.forEach(img => {
cacheImgData.push(img.url)
})
item.imgData = cacheImgData
})
params.annexRequestList = annexList
console.log(form, '提交的表单信息')
const result = await API.merchantUpdate({
...params
})
if (result.success) {
this.$message({
type: 'success',
message: '操作成功!'
})
}
this.onBack()
}).catch((e) => {
console.log(e, '取消申述了')
})
} else {
this.$message.error('请完善表单信息')
console.log(this.form, '信息')
console.log(this.annexRequestList, '信息2')
}
})
},
// 返回
onBack() {
this.$router.back()
}
}
}
</script>
<style lang='scss' src='../index.scss'></style>
<template>
<div class='merchant-product'>
<el-form ref='form'
label-suffix=':'
:show-message='false'
:inline-message='false'
:model='form' class='form-inline'>
<block-header title='自营-鼎荣' />
<el-table
size='mini'
ref='tableRef'
border
:data='tableData'
style='width: 100%;margin-bottom: 20px'>
<el-table-column
prop='repayType'
align='center'
label='还款方式'>
</el-table-column>
<el-table-column
prop='repayPeriods'
align='center'
label='支持期数'>
</el-table-column>
<el-table-column
prop='interest'
align='center'
label='利息费率(%/年)'>
<template slot-scope='scope'>
<el-form-item style='margin-bottom: 0; text-align: center' :prop="'tableData.'+scope.$index+'.interest'" :rules='rules.interest'>
<el-input v-model='scope.row.interest'
class='el-table-input'></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop='service'
align='center'
label='服务费率(%/年)'>
<template slot-scope='scope'>
<el-form-item style='margin-bottom: 0; text-align: center' :prop="'tableData.'+scope.$index+'.service'" :rules='rules.service'>
<el-input v-model='scope.row.service'
class='el-table-input'></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop='warrant'
align='center'
label='担保费率(%/年)'>
<template slot-scope='scope'>
<el-form-item style='margin-bottom: 0; text-align: center' :prop="'tableData.'+scope.$index+'.warrant'" :rules='rules.warrant'>
<el-input v-model='scope.row.warrant'
class='el-table-input'></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop='synthesize'
align='center'
label='综合年化费率(%/年)'>
<template slot-scope='scope'>
<el-form-item style='margin-bottom: 0; text-align: center' :prop="'tableData.'+scope.$index+'.synthesize'" :rules='rules.synthesize'>
<el-input v-model='scope.row.synthesize'
class='el-table-input'></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table>
<block-header title='中盈-丰盛' />
</el-form>
</div>
</template>
<script>
import API from '@/server/api'
import { mapGetters } from 'vuex'
import Axios from 'axios'
export default {
name: 'LoanDetail',
data() {
return {
form:{},
rules: {
interest: [
{ required: true, message: '请填写活动价', trigger: 'blur' }
],
service: [
{ required: true, message: '请填写活动价', trigger: 'blur' }
],
warrant: [
{ required: true, message: '请填写活动价', trigger: 'blur' }
],
synthesize: [
{ required: true, message: '请填写活动价', trigger: 'blur' }
],
},
tableData: [
{
repayType: '等本等息',
repayPeriods: 12,
interest: '',
service: '',
warrant: '',
synthesize: ''
}
]
}
},
computed: {
...mapGetters(['searchData', 'user'])
},
async created() {
const { query } = this.$route
if (query && query.orderNo) {
this.orderNo = query.orderNo
await this.init()
}
},
methods: {
// 上传
async handleUpload(obj) {
const { clientDetail, addAttachInfo } = this.detail
const { file } = obj
let fileName = 'jpg'
let fileType = 'LRD-ADMIN/audit'
const resOssSign = await API.initOssSign({ fileName, fileType })
console.log(resOssSign, 'oss返回信息')
if (resOssSign.success) {
const { accessId, dir, expire, host, policy, signature } = resOssSign.result
const data = new FormData()
data.append('key', dir)
data.append('OSSAccessKeyId', accessId)
data.append('policy', policy)
data.append('Signature', signature)
data.append('success_action_status', '200')
data.append('file', file)
try {
Axios({
url: host,
method: 'post',
data: data,
headers: { 'Content-Type': 'multipart/form-data' }
}).then(async (res) => {
console.log(res, 'w')
const uploadFileUrl = host + dir
const annexList = [uploadFileUrl]
const result = await API.saveExtraImg({
annexList,
creditNo: clientDetail.creditNo
})
if (result.success) {
this.$message.success('上传成功')
addAttachInfo.push(uploadFileUrl)
this.detail.addAttachInfo = addAttachInfo
}
}).catch(e => {
throw new Error(e)
})
} catch (e) {
this.$message.error('上传报错')
}
}
},
// 初始化详情
async init() {
const orderNo = this.orderNo
const result = await API.loanDetail({
orderNo
})
const data = result.result
const {
bdInfoResponse,
clientDetail,
capitalName,
clientIdCardInfoResponse,
collectionAccountResponse,
creditAttachInfo,
faceInfoResponse,
approvalResultResponse,
projectInfoResponse,
repayAccountResponse,
reportResponse,
supplAttachInfo,
thirdPartyReport,
xcxSupplAttachInfo,
addAttachInfo
} = data
this.project = projectInfoResponse
this.client = clientDetail
this.capitalName = capitalName // 资金方
this.collectionAccountResponse = collectionAccountResponse // 收款方信息
this.repayAccountResponse = repayAccountResponse // 还款方信息
this.bdInfoResponse = bdInfoResponse // 还款方信息
this.approvalResultResponse = approvalResultResponse
this.clientIdCardInfoResponse = Object.entries(clientIdCardInfoResponse)
this.faceInfoResponse = Object.entries(faceInfoResponse)
this.creditAttachInfo = creditAttachInfo // 授信图片信息
this.reportResponse = reportResponse
this.thirdPartyReport = JSON.parse(thirdPartyReport)
this.supplAttachInfo = supplAttachInfo // 附件信息
this.addAttachInfo = addAttachInfo
if (xcxSupplAttachInfo && xcxSupplAttachInfo.length > 0) {
this.xcxSupplAttachInfo = xcxSupplAttachInfo
}
this.detail = data
if (this.$route.query && this.$route.query.type) {
this.visible = true
this.dForm.orderNo = this.orderNo
this.dForm.stepsNo = projectInfoResponse.stepsNo
this.dForm.currentAction = projectInfoResponse.currentAction
}
},
// 手风琴折叠那啥
handleChange(val) {
this.activeNames = val
},
// 稽核审批提交
onSubmit(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
this.$confirm('是否确认提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async (res) => {
console.log(res, '是啥')
const form = this.dForm
base.userId = this.user.userId
console.log(base, '表单数据')
const result = await API.loanAuditSubmit({
...base
})
if (result.success) {
this.$message({
type: 'success',
message: '操作成功!'
})
}
this.onBack()
}).catch((e) => {
console.log(e, '取消申述了')
})
} else {
console.log('哈哈错误了')
}
})
},
// 返回
onBack() {
this.$router.back()
},
// 图片上传
arraySplice(obj, result) {
if (Array.isArray(obj)) {
obj.forEach(item => {
result = result.concat(item.screenList)
})
} else {
const { values } = Object
for (let val of values(obj)) {
if (val) result.push(val)
}
}
return result
},
showImgViewer(firstImg) {
const {
clientIdCardInfoResponse,
creditAttachInfo,
faceInfoResponse,
supplAttachInfo,
xcxSupplAttachInfo,
addAttachInfo
} = this.detail
let imgArray = []
// 客户身份证
if (clientIdCardInfoResponse) {
imgArray = this.arraySplice(clientIdCardInfoResponse, imgArray)
}
// 补充图片
if (xcxSupplAttachInfo && xcxSupplAttachInfo.length) {
imgArray = this.arraySplice(xcxSupplAttachInfo, imgArray)
}
// 活体
if (faceInfoResponse) {
imgArray = this.arraySplice(faceInfoResponse, imgArray)
}
// 授信图片
if (creditAttachInfo && creditAttachInfo.length) {
imgArray = this.arraySplice(creditAttachInfo, imgArray)
}
// 附件图片
if (supplAttachInfo && supplAttachInfo.length) {
imgArray = this.arraySplice(supplAttachInfo, imgArray)
}
// 额外的图片
if (addAttachInfo && addAttachInfo.length) {
addAttachInfo.forEach(item => {
imgArray.push(item)
})
}
// 获取当前点击图片的索引
const curIndex = imgArray.findIndex((item) => item === firstImg)
// 把索引之前的内容copy一份
const ArrayHeader = imgArray.slice(0, curIndex)
// 删除索引之前的内容
imgArray.splice(0, curIndex)
console.log(ArrayHeader, imgArray)
imgArray = imgArray.concat(ArrayHeader)
console.log(imgArray)
this.imgList = imgArray
this.imgList = imgArray
this.imgViewerVisible = true
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'hidden'
document.addEventListener('touchmove', m, false) // 禁止页面滑动
},
closeImgViewer() {
this.imgViewerVisible = false
const m = (e) => {
e.preventDefault()
}
document.body.style.overflow = 'auto'
document.removeEventListener('touchmove', m, true)
},
// 上下架
handleChangeStatus() {
}
}
}
</script>
<style lang='scss' src='../index.scss'></style>
<template>
<div class='page merchant-form'>
<!--判断是否有商户编号-->
<template v-if='partnerNo'>
<el-tabs v-model='activeName' @tab-click='handleTabClick'>
<el-tab-pane label='基础信息' name='Base' />
<el-tab-pane label='产品信息' name='Product' />
<el-tab-pane label='收款信息' name='Account' />
</el-tabs>
</template>
<!-- 这里加载组件 -->
<component :is='currentTabComponent' :merchant-no='partnerNo'></component>
</div>
</template>
<script>
import Base from './com/base'
import Product from './com/product'
import Account from './com/account'
export default {
name: 'MerchantDetail',
components: {
Base,
Product,
Account
},
data() {
return {
partnerNo: '',
activeName: 'Base',
currentTabComponent: 'Base'
}
},
async created() {
const { query } = this.$route
if (query && query.partnerNo) {
this.partnerNo = query.partnerNo
}
},
methods: {
// 选项卡切换
handleTabClick(tab) {
this.currentTabComponent = tab.name
}
}
}
</script>
<style lang='scss' src='./index.scss'></style>
/* 商户表单 */
.merchant-form {
box-sizing: border-box;
padding: 20px;
background: #fff;
.m-select {
width: 100%;
}
}
.merchant-base {
.fixed{
position: fixed;
bottom:80px;
left: 0;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
}
.auditUpload {
.el-icon-close-tip {
display: none !important;
}
.el-upload-list__item-actions {
display: inherit !important;
}
}
.is-error .el-upload--picture-card{
border-color: #ff4d4f;
}
}
.merchant-product {
.el-table-input {
margin-bottom: 0;
}
}
<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='partnerName' label='商户注册名称'>
<el-input v-model='queryForm.partnerName' clearable placeholder='请输入商户注册名称' />
</el-form-item>
<template v-if='searchData!==null'>
<el-form-item prop='isShelves' label='商户状态'>
<el-select v-model='queryForm.isShelves' :popper-append-to-body='false' style='width: 100%;'
clearable>
<el-option
v-for='(item,index) in searchData.partnerStatusResponseList'
:key='index'
:value='item.partnerStatus'
:label='item.partnerStatusStr'>
</el-option>
</el-select>
</el-form-item>
</template>
<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-button type='primary' size='mini' @click='JumpForm'>新增商户</el-button>
</block-header>
<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='handleClick(row)'>查看详情</el-button>
<el-button type='text' @click='handleClick(row)'>编辑</el-button>
<el-button v-if='row.isShelves' type='text' @click='handleChangeStatus(row,"down")'>下架</el-button>
<el-button v-else type='text' @click='handleChangeStatus(row,"up")'>上架</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: ['商户注册名称', '实际经营名称', '联系人姓名', '联系人电话', '商户状态'],
columns: [
{
order: 1,
label: '商户注册名称',
prop: 'regName'
},
{
order: 2,
label: '实际经营名称',
prop: 'realName'
},
{
order: 3,
label: '联系人姓名',
prop: 'linker'
},
{
order: 3,
label: '联系人电话',
prop: 'linkerTel'
},
{
order: 5,
label: '商户状态',
prop: 'isShelvesStr'
}
],
list: [],
listLoading: true,
total: 1,
queryForm: {
current: 1,
size: 10,
partnerName: '',
isShelves: '',
regionCode: '',
partnerNo: ''
}
}
},
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: {
onSearch() {
this.queryForm.current = 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
const form = this.queryForm
const params = Object.assign({}, form)
delete params.time
const result = await API.merchantList({ ...params })
const { data, total } = result.result
this.list = data
this.total = total
this.listLoading = false
},
JumpForm(partnerNo) {
const route = {
path: '/merchant/detail'
}
if (partnerNo) route.query = { partnerNo }
this.$router.push(route)
},
handleClick(row) {
const { partnerNo } = row
this.JumpForm(partnerNo)
}
}
}
</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>
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