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.
141 lines
4.4 KiB
141 lines
4.4 KiB
10 months ago
|
<!--商户头像 资质 星级等-->
|
||
|
<script setup lang="ts">
|
||
|
import { toRefs } from 'vue'
|
||
|
const props = defineProps({
|
||
|
//商户信息
|
||
|
merchantInfo: {
|
||
|
type: Object,
|
||
|
default: null,
|
||
|
},
|
||
|
//商户id
|
||
|
merId: {
|
||
|
type: Number,
|
||
|
default: 0,
|
||
|
},
|
||
|
//使用的来源,productDetail:商品页面使用
|
||
|
fromType: {
|
||
|
type: String,
|
||
|
default: '',
|
||
|
},
|
||
|
})
|
||
|
const { merchantInfo,merId,fromType } = toRefs(props)
|
||
|
|
||
|
const useMerchants = useMerchant()
|
||
|
//关注
|
||
|
const emit = defineEmits(['handleSubmitSuccess'])
|
||
|
const handleFollow = () =>{
|
||
|
if(merchantInfo.value.isCollect){
|
||
|
//取消关注
|
||
|
useMerchants.onUnfollowMerchant(merId?.value).then(() => {
|
||
|
emit('handleSubmitSuccess')
|
||
|
})
|
||
|
}else{
|
||
|
// 关注
|
||
|
useMerchants.onfollowMerchant(merId?.value).then(() => {
|
||
|
emit('handleSubmitSuccess')
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 跳入页面
|
||
|
import { linkNavigateTo } from '~/utils/util'
|
||
|
import useOrder from "~/composables/useOrder";
|
||
|
const handleGoPage = () => {
|
||
|
linkNavigateTo(`/merchant/merchant_home`, { merId: merId.value })
|
||
|
}
|
||
|
|
||
|
//营业执照
|
||
|
const { bool: dialogVisible, DialogOpen, DialogClose } = useDialog()
|
||
|
|
||
|
|
||
|
//联系客服
|
||
|
const { chatConfig } = useOrder()
|
||
|
const handleChat = async () => {
|
||
|
let chatConfigData = {
|
||
|
serviceLink:merchantInfo?.value.serviceLink,
|
||
|
servicePhone:merchantInfo?.value.servicePhone,
|
||
|
serviceType:merchantInfo?.value.serviceType
|
||
|
}
|
||
|
await chatConfig(chatConfigData)
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<div>
|
||
|
<div class="w-210px b-rd-12px bg-#FFFFFF overflow-hidden flex-col px-20px py-20px merchantNews">
|
||
|
<el-image @click="handleGoPage" class="w-60px h-60px b-rd-50%" :class="fromType ==='productDetail'?'cursors':''" :src="merchantInfo.avatar" lazy style="margin: 0 auto"></el-image>
|
||
|
<div @click="handleGoPage" class="flex-center w-170px mt-16px mb-20px" :class="fromType ==='productDetail'?'cursors':''">
|
||
|
<div v-if="merchantInfo.isSelf" class="text-12px bg-color text-#fff b-rd-2px py-2px mr-6px px-4px lh-12px min-w-33px">自营</div>
|
||
|
<div class="fontColor333 text-14px">{{ merchantInfo.name }}</div>
|
||
|
</div>
|
||
|
|
||
|
<div v-if="fromType !=='productDetail'" @click="DialogOpen()" class="text-12px text-#999 mb-15px cursors">资质证照:<img src="@/assets/images/zhizhao.png"></div>
|
||
|
<div class="text-12px text-#999 flex-y-center">店铺星级:<el-rate size="small" v-model="merchantInfo.starLevel" disabled /></div>
|
||
|
<el-divider border-style="dashed" />
|
||
|
<div class="acea-row">
|
||
|
<div v-if="fromType ==='productDetail'" class="cursors w-79px h-30px lh-29px borderSol text-12px text-#333 text-center b-rd-15px mr-10px" @click="handleGoPage">进店逛逛</div>
|
||
|
<div v-else @click="handleChat" class="cursors w-79px h-30px lh-29px borderSol text-12px text-#333 text-center b-rd-15px mr-10px">联系客服</div>
|
||
|
<div @click="handleFollow" :class="merchantInfo.isCollect?'borderSol text-#333':'borderSolE9 font-color'" class="w-79px h-30px lh-29px text-12px text-center b-rd-15px cursors">{{merchantInfo.isCollect?'已关注':'关注店铺'}}</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<el-dialog
|
||
|
class="merchantNewsDialog"
|
||
|
v-model="dialogVisible"
|
||
|
:append-to-body="true"
|
||
|
:show-close="false"
|
||
|
center
|
||
|
align-center
|
||
|
width="532px"
|
||
|
title="资质证照"
|
||
|
>
|
||
|
<span class="closeBtn iconfont icon-danchuangguanbi" @click="DialogClose()"></span>
|
||
|
<div class="">
|
||
|
<el-carousel :interval="5000" height="340px" arrow="always" class="w-100% m-auto">
|
||
|
<el-carousel-item v-for="item in JSON.parse(merchantInfo.qualificationPicture)" :key="item" class="w-340px h-340px el-image">
|
||
|
<el-image :src="item" class="w-340px h-340px el-image b-rd-12px" fit="fill" />
|
||
|
</el-carousel-item>
|
||
|
</el-carousel>
|
||
|
</div>
|
||
|
</el-dialog>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<style>
|
||
|
.merchantNews{
|
||
|
:deep(.el-dialog__header){
|
||
|
padding: 30px 0 !important;
|
||
|
}
|
||
|
}
|
||
|
</style>
|
||
|
<style scoped lang="scss">
|
||
|
//星级
|
||
|
:deep(.el-rate){
|
||
|
height:auto !important;
|
||
|
--el-rate-icon-margin: 0 !important;
|
||
|
--el-rate-fill-color:#E93323 !important;
|
||
|
--el-rate-icon-size: 12px !important;
|
||
|
}
|
||
|
.merchantNewsDialog{
|
||
|
.el-carousel__item{
|
||
|
width: 340px !important;
|
||
|
left: 71px !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.closeBtn {
|
||
|
color: #fff;
|
||
|
position: absolute;
|
||
|
top: -33px;
|
||
|
right: -33px;
|
||
|
text-align: center;
|
||
|
font-size: 24px;
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
.merchantNews{
|
||
|
:deep(.el-divider--horizontal){
|
||
|
margin: 15px 0 15px 0 !important;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
</style>
|