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

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>