You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.2 KiB
169 lines
5.2 KiB
11 months ago
|
<script setup lang="ts">
|
||
|
import { reactive } from 'vue'
|
||
|
import {ItemObject, PageQuery} from '~/types/global'
|
||
|
import {getMerCategoryListApi, getMerSettledRecordApi, getMerTypeListApi} from '~/server/merchantApi'
|
||
|
import {applicationRecordAuditStatus, applicationRecordAuditStatusIcon} from "~/utils/filter";
|
||
|
import {useAppStore} from "~/stores/app";
|
||
|
import {linkNavigateTo} from "~/utils/util";
|
||
|
import {ApplicationDataQuery} from "~/types/merchant";
|
||
|
|
||
|
//窗口的高度
|
||
|
const { getWindowHeight } = useScrollHeight()
|
||
|
const ScrollHeight = ref<number>(getWindowHeight() - 176-200 )
|
||
|
|
||
|
//商户分类
|
||
|
const { data: classOptions } = useAsyncData(async () => getMerCategoryListApi())
|
||
|
const merCategoryFilter =(status:number)=> {
|
||
|
if (!status) {
|
||
|
return '';
|
||
|
}
|
||
|
let arrayList = classOptions.value;
|
||
|
let array = arrayList.filter((item:any) => status === item.id);
|
||
|
if (array.length) {
|
||
|
return array[0].name;
|
||
|
} else {
|
||
|
return '';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//商户类型
|
||
|
const { data: typeOptions } = useAsyncData(async () => getMerTypeListApi())
|
||
|
const merchantTypeFilter =(status:number)=> {
|
||
|
if (!status) {
|
||
|
return '';
|
||
|
}
|
||
|
let arrayList = typeOptions.value;
|
||
|
let array = arrayList.filter((item:any) => status === item.id);
|
||
|
if (array.length) {
|
||
|
return array[0].name;
|
||
|
} else {
|
||
|
return '';
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* 记录列表
|
||
|
*/
|
||
|
const where = reactive<PageQuery>({
|
||
|
page: 1,
|
||
|
limit: 10,
|
||
|
})
|
||
|
const {
|
||
|
data: tableData,
|
||
|
refresh,
|
||
|
pending: listLoading,
|
||
|
} = await useAsyncData(async () => getMerSettledRecordApi(where), {
|
||
|
default: () => ({
|
||
|
list: [],
|
||
|
total: 0,
|
||
|
}),
|
||
|
})
|
||
|
|
||
|
// 分页数据
|
||
|
const pageChange = (e: number) => {
|
||
|
where.page = e
|
||
|
refresh()
|
||
|
}
|
||
|
|
||
|
//重新提交
|
||
|
const useStore = useAppStore()
|
||
|
const resubmit = (item:ApplicationDataQuery)=>{
|
||
|
useStore.getApplicationData(<ApplicationDataQuery>item)
|
||
|
linkNavigateTo(`/merchant/merchant_settled`,{type: 1})
|
||
|
}
|
||
|
|
||
|
const navigateToTitle = reactive<ItemObject>({
|
||
|
title: '商户入驻',
|
||
|
linkUrl: '/merchant/merchant_settled'
|
||
|
})
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<div class="wrapper_1200" v-loading="listLoading">
|
||
|
<page-header title="申请记录" :navigateToTitle="navigateToTitle"></page-header>
|
||
|
<div v-if="tableData.total>0">
|
||
|
<div v-for="item in tableData.list" :key="item.id" class="w-100% borRadius bg-#FFF pb-20px px-30px mbtom20">
|
||
|
<div class="h-78px flex-between-center title mb-30px">
|
||
|
<div>
|
||
|
<span class="iconfont mr-6px" :class="applicationRecordAuditStatusIcon(item.auditStatus)"></span>
|
||
|
<span class="fontColor333 text-16px fontsweight mr-20px">{{ applicationRecordAuditStatus(item.auditStatus) }}</span>
|
||
|
<span v-show="item.denialReason" class="font-color text-14px">{{item.denialReason}}</span>
|
||
|
</div>
|
||
|
<div v-if="item.auditStatus === 3" class="text-right">
|
||
|
<div @click="resubmit(item)" class="w-86px h-30px lh-29px handleBtnBorder borderSolE9 font-color cursors">重新提交</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="acea-row">
|
||
|
<div class="text-14px fontColor333 w-560px">
|
||
|
<div class="mb-20px">商户名称:{{ item.name }}</div>
|
||
|
<div class="mb-20px">商户分类:{{ merCategoryFilter(item.categoryId) }}</div>
|
||
|
<div class="mb-20px">商户类型:{{ merchantTypeFilter(item.typeId) }}</div>
|
||
|
<div class="mb-20px">申请时间:{{ item.createTime }}</div>
|
||
|
</div>
|
||
|
<div class="w-1px h-124px bg-#EEEEEE"></div>
|
||
|
<div class="text-14px fontColor333 ml-30px w-549px">
|
||
|
<div class="mb-20px">商户姓名:{{ item.realName }}</div>
|
||
|
<div class="mb-20px">联系电话:{{ item.phone }}</div>
|
||
|
<div class="acea-row">
|
||
|
<div>资质证照:</div>
|
||
|
<div class="acea-row w-470px">
|
||
|
<div
|
||
|
v-for="(i, index) in JSON.parse(item.qualificationPicture)"
|
||
|
:key="index"
|
||
|
class="w-66px h-66px mr-10px qualificationPicture"
|
||
|
>
|
||
|
<el-image
|
||
|
:src="i"
|
||
|
fit="cover"
|
||
|
class="w-66px h-66px b-rd-8px"
|
||
|
:preview-src-list="JSON.parse(item.qualificationPicture)"
|
||
|
>
|
||
|
</el-image>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="acea-row row-middle pb-10px">
|
||
|
<el-pagination
|
||
|
background
|
||
|
layout="prev, pager, next"
|
||
|
:total="tableData.total"
|
||
|
class="page-item"
|
||
|
:page-size="where.limit"
|
||
|
:current-page="where.page"
|
||
|
@update:current-page="pageChange"
|
||
|
/>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div v-else class="w-100%" :style="{ height: ScrollHeight + 'px' }">
|
||
|
<empty-page title="暂无申请记录哟~">
|
||
|
<template v-slot:emptyImage>
|
||
|
<img src="@/assets/images/wuzhangdan.png" />
|
||
|
</template>
|
||
|
</empty-page>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<style scoped lang="scss">
|
||
|
.icon-shenhezhong{
|
||
|
color: #0095FF;
|
||
|
}
|
||
|
.icon-weitongguo1{
|
||
|
color: #E93323;
|
||
|
}
|
||
|
.icon-yitongguo{
|
||
|
color: #43B36D;
|
||
|
}
|
||
|
.title {
|
||
|
border-bottom: 1px dashed #dddddd;
|
||
|
}
|
||
|
.qualificationPicture {
|
||
|
margin-bottom: 10px;
|
||
|
&:nth-last-child(7)~ div{
|
||
|
margin-bottom: 0;
|
||
|
}
|
||
|
}
|
||
|
</style>
|