新增商家详情

This commit is contained in:
2023-10-09 09:56:56 +08:00
parent afe3d71ca5
commit b541e8ae61
4 changed files with 214 additions and 100 deletions

View File

@@ -1,7 +1,7 @@
{ {
"name": "vue-admin", "name": "vue-admin",
"private": true, "private": true,
"version": "1.2.25", "version": "1.2.26",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -198,3 +198,29 @@ export function messageChannel(userId, merchantCode) {
url: `/merchantChannel/messageChannel/${userId}/${merchantCode}` url: `/merchantChannel/messageChannel/${userId}/${merchantCode}`
}) })
} }
/**
* ip记录
* @param {*} data
* @returns
*/
export function userIpPage(params) {
return request({
method: 'get',
url: `/merchantChannel/userIpPage`,
params
})
}
/**
* 后台进件
* @param {*} params
* @returns
*/
export function manualMerchantIncom(params) {
return request({
method: 'get',
url: `/merchantChannel/manualMerchantIncom`,
params
})
}

View File

@@ -1,92 +1,109 @@
<!-- 通道进件信息 --> <!-- 通道进件信息 -->
<template> <template>
<el-form ref="formRef" :model="form" label-width="120" label-position="left"> <el-form ref="formRef" :model="form" label-width="120" label-position="left">
<div class="title_wrap"> <div v-for="(item, index) in form" :key="index">
<el-text>通道进件组1</el-text> <div class="title_wrap">
<el-text>通道进件组{{ index + 1 }}</el-text>
</div>
<!-- <el-form-item label="审核备注组" class="mt15">
<el-select v-model="item.remake">
<el-option :value="value.rejectname" :label="value.rejectname" v-for="value in reviewRemarks"
:key="value.rejectname" />
</el-select>
</el-form-item> -->
<el-form-item label="审核备注" class="mt15">
<el-input type="textarea" :autosize="{ minRows: 4 }" v-model="item.remake" placeholder="请输入审核备注"
style="width: 50%" :disabled="item.thirdStatus != '-100'" />
</el-form-item>
<el-form-item label="通道选择">
<el-radio-group v-model="item.channel" :disabled="item.thirdStatus != '-100'">
<el-radio :label="value.id" v-for="value in merchantChannels" :key="value.id">
{{ value.channelname }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="默认结算方式">
<el-input v-model="item.valid" disabled placeholder="请输入默认结算方式" style="width: 50%" />
</el-form-item>
<el-form-item label="审核状态">
<el-select v-model="item.status" :disabled="item.thirdStatus != '-100'">
<el-option :value="value.status" :label="value.label" v-for="value in status" :key="value.status" />
</el-select>
</el-form-item>
<el-form-item v-if="item.thirdStatus == '-100'">
<el-space>
<el-button type="primary" :loading="loading" @click="submitHandle(1, index)">通过</el-button>
<el-button type="danger" :loading="loading" @click="submitHandle(2, index)">驳回</el-button>
<el-button type="danger" :loading="loading" @click="submitHandle(2, index)">驳回并禁止进件</el-button>
</el-space>
</el-form-item>
</div> </div>
<el-form-item label="审核备注组" class="mt15">
<el-select v-model="form.remarkGroup">
<el-option :value="0" label="退回" />
<el-option :value="1" label="通过" />
</el-select>
</el-form-item>
<el-form-item label="审核备注">
<el-input type="textarea" :autosize="{ minRows: 4 }" v-model="form.remark" placeholder="请输入审核备注"
style="width: 50%" />
</el-form-item>
<el-form-item label="通道选择">
<el-radio-group disabled v-model="form.aisle">
<el-radio :label="1">随行付</el-radio>
<el-radio :label="2">银盛</el-radio>
<el-radio :label="3">拉卡拉</el-radio>
<el-radio :label="4">银盛D1</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="默认结算方式">
<el-input v-model="form.settle" placeholder="请输入默认结算方式" style="width: 50%" />
</el-form-item>
<el-form-item label="审核状态">
<el-input v-model="form.authStatus" disabled style="width: 50%" />
</el-form-item>
<div class="title_wrap">
<el-text>通道进件组2</el-text>
</div>
<el-form-item label="审核备注组" class="mt15">
<el-select v-model="form.remarkGroup">
<el-option :value="0" label="退回" />
<el-option :value="1" label="通过" />
</el-select>
</el-form-item>
<el-form-item label="审核备注">
<el-input type="textarea" :autosize="{ minRows: 4 }" v-model="form.remark" placeholder="请输入审核备注"
style="width: 50%" />
</el-form-item>
<el-form-item label="通道选择">
<el-radio-group disabled v-model="form.aisle">
<el-radio :label="1">随行付</el-radio>
<el-radio :label="2">银盛</el-radio>
<el-radio :label="3">拉卡拉</el-radio>
<el-radio :label="4">银盛D1</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="默认结算方式">
<el-input v-model="form.settle" placeholder="请输入默认结算方式" style="width: 50%" />
</el-form-item>
<el-form-item label="审核状态">
<el-input v-model="form.authStatus" disabled style="width: 50%" />
</el-form-item>
<el-form-item>
<el-space>
<el-button type="primary">通过</el-button>
<el-button type="danger">驳回</el-button>
<el-button type="danger">驳回并禁止进件</el-button>
</el-space>
</el-form-item>
</el-form> </el-form>
</template> </template>
<script setup> <script setup>
import { messageChannel } from '@/api/shop.js' import { ElMessage } from 'element-plus'
import { messageChannel, manualMerchantIncom } from '@/api/shop.js'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const form = reactive({ const reviewRemarks = ref([])
remarkGroup: 0, const merchantChannels = ref([])
remark: '', const status = ref([
aisle: '', {
settle: '', status: '0',
authStatus: '' label: '待审核'
}) },
{
status: '1',
label: '审核中'
},
{
status: '2',
label: '审核失败'
},
{
status: '3',
label: '审核通过'
}
])
const form = ref([])
const loading = ref(false)
// 通道进件信息 // 通道进件信息
async function messageChannelAjax() { async function messageChannelAjax() {
try { try {
const res = await messageChannel(route.query.id, route.query.merchantcode) const res = await messageChannel(route.query.id, route.query.merchantcode)
reviewRemarks.value = res.reviewRemarks
merchantChannels.value = res.merchantChannels
form.value = res.merchantChannelMessage
} catch (error) { } catch (error) {
console.error('通道进件信息===', error) console.error('通道进件信息===', error)
} }
} }
// 提交进件信息
async function submitHandle(state, index) {
try {
loading.value = true
await manualMerchantIncom({
type: state,
errMsg: form.value[index].remake || '',
userId: route.query.id,
channelId: form.value[index].channel || '',
merchantCode: route.query.merchantcode
})
loading.value = false
ElMessage.success('提交成功')
messageChannelAjax()
} catch (error) {
loading.value = false
console.error('提交进件信息', error)
}
}
onMounted(() => { onMounted(() => {
messageChannelAjax() messageChannelAjax()
}) })

View File

@@ -47,7 +47,13 @@
</div> </div>
<div class="mt15"> <div class="mt15">
<el-table :data="tableOptions.list" border height="200" v-loading="tableOptions.loading"> <el-table :data="tableOptions.list" border height="200" v-loading="tableOptions.loading">
<el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="ip" label="IP地址"></el-table-column>
<el-table-column prop="remark" label="操作"></el-table-column>
<el-table-column prop="createtime" label="操作时间">
<template #default="scope">
{{ dayjs(scope.row.createtime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
</el-table> </el-table>
<div class="mt15"> <div class="mt15">
<el-pagination layout="prev, pager, next, total, sizes, jumper" background <el-pagination layout="prev, pager, next, total, sizes, jumper" background
@@ -62,7 +68,7 @@
</template> </template>
<script setup> <script setup>
import { connectInfo, merchBaseInfo, merchantInfoDetail } from '@/api/shop.js' import { connectInfo, merchBaseInfo, merchantInfoDetail, merchBaseAccount, messageChannel, userIpPage } from '@/api/shop.js'
import authentication from './components/authentication.vue' import authentication from './components/authentication.vue'
import shopInfo from './components/shopInfo.vue' import shopInfo from './components/shopInfo.vue'
@@ -70,6 +76,8 @@ import settleInfo from './components/settleInfo.vue'
import aisleInfo from './components/aisleInfo.vue' import aisleInfo from './components/aisleInfo.vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import { reactive } from 'vue'
import { dayjs } from 'element-plus'
const route = useRoute() const route = useRoute()
const authInfo = ref({}) const authInfo = ref({})
@@ -83,28 +91,24 @@ const componentList = {
4: aisleInfo 4: aisleInfo
} }
const navs = ref([ const navs = reactive([])
{
type: 1, // {
label: '实名认证信息', // type: 1,
show: true // label: '实名认证信息'
}, // },
{ // {
type: 2, // type: 2,
label: '商户基本信息', // label: '商户基本信息'
show: true // },
}, // {
{ // type: 3,
type: 3, // label: '结算信息'
label: '结算信息', // },
show: true // {
}, // type: 4,
{ // label: '通道进件信息'
type: 4, // }
label: '通道进件信息',
show: true
}
])
// 表格参数 // 表格参数
const tableOptions = reactive({ const tableOptions = reactive({
@@ -118,6 +122,7 @@ const tableOptions = reactive({
// 分页回调 // 分页回调
function paginationChange() { function paginationChange() {
tableOptions.loading = true tableOptions.loading = true
userIpPageAjax()
} }
// 实名认证信息页面(实名个数) // 实名认证信息页面(实名个数)
@@ -130,15 +135,35 @@ async function connectInfoAjax() {
} }
} }
// ip记录
async function userIpPageAjax() {
try {
const res = await userIpPage({
userId: route.query.id,
currPage: tableOptions.pageNum,
size: tableOptions.pageSzie
})
tableOptions.loading = false
tableOptions.list = res.list
tableOptions.total = res.total
} catch (error) {
console.log('ip记录', error)
}
}
// 实名认证信息 // 实名认证信息
async function merchantInfoDetailAjax() { async function merchantInfoDetailAjax() {
try { try {
const res = await merchantInfoDetail(route.query.id) const res = await merchantInfoDetail(route.query.id)
navs.value[0].show = false if (res.bankCard.bankname) {
type.value = 2 navs.push(
{
type: 1,
label: '实名认证信息'
}
)
}
} catch (error) { } catch (error) {
navs.value[0].show = false
type.value = 2
console.error('实名认证信息===', error) console.error('实名认证信息===', error)
} }
} }
@@ -147,16 +172,62 @@ async function merchantInfoDetailAjax() {
async function merchBaseInfoAjax() { async function merchBaseInfoAjax() {
try { try {
const res = await merchBaseInfo(route.query.id) const res = await merchBaseInfo(route.query.id)
if (res.merchantBaseInfo.mccname) {
navs.push(
{
type: 2,
label: '商户基本信息'
}
)
}
} catch (error) { } catch (error) {
console.log('商户基本信息===', error) console.log('商户基本信息===', error)
} }
} }
onMounted(() => { // 结算信息
async function merchBaseAccountAjax() {
try {
const res = await merchBaseAccount(route.query.id)
if (res.D0.bankCard) {
navs.push(
{
type: 3,
label: '结算信息'
}
)
}
} catch (error) {
console.log('结算信息===', error)
}
}
// 通道进件信息
async function messageChannelAjax() {
try {
const res = await messageChannel(route.query.id, route.query.merchantcode)
if (res.merchantChannelMessage.length) {
navs.push(
{
type: 4,
label: '通道进件信息'
}
)
}
} catch (error) {
console.log('通道进件信息===', error)
}
}
onMounted(async () => {
tableOptions.loading = false tableOptions.loading = false
merchantInfoDetailAjax()
merchBaseInfoAjax()
connectInfoAjax() connectInfoAjax()
userIpPageAjax()
await merchantInfoDetailAjax()
await merchBaseInfoAjax()
await merchBaseAccountAjax()
await messageChannelAjax()
type.value = navs[0].type
}) })
</script> </script>