web/seller/src/views/home/home.vue

298 lines
8.9 KiB
Vue
Raw Normal View History

2021-05-13 10:56:04 +08:00
<template>
<div>
<Modal v-model="noticeFlage" :title="noticesDetail.title">
<div v-if="noticesDetail" v-html="noticesDetail.content">
</div>
</Modal>
<div class="box flex">
<div class="box-left">
<div class="card shop flex">
<div>
2022-12-29 18:20:06 +08:00
<h4>Hi,<span style="margin-left:5px;">{{ userData.nickName }}</span></h4>
2021-05-13 10:56:04 +08:00
<img class="shop-logo" :src="userData.storeLogo || require('@/assets/logo1.png')" alt="">
</div>
<div class="shop-box">
<div class="box-item">
2022-12-29 18:20:06 +08:00
<div>店铺名称{{ userData.storeName || '暂无' }}</div>
2021-05-13 10:56:04 +08:00
</div>
<div class="box-item">
2022-12-29 18:20:06 +08:00
<div>店铺状态{{ userData.storeDisable == 'OPEN' ? '开启中' : '关闭' }}</div>
2021-05-13 10:56:04 +08:00
</div>
2022-02-22 01:32:36 +08:00
<div class="box-item" @click="im()">
<Button type="info" :loading='load'>点击登录客服</Button>
2022-02-22 01:32:36 +08:00
</div>
2021-05-13 10:56:04 +08:00
</div>
<div class="rate-box">
<div>
2022-12-29 18:20:06 +08:00
<i-circle :size="120" stroke-color="#fecb89" :trail-width="4" :stroke-width="5"
:percent="(userData.serviceScore * 20)" stroke-linecap="square">
2021-05-13 10:56:04 +08:00
<div class="demo-Circle-custom">
2022-12-29 18:20:06 +08:00
<p class="bold">{{ userData.serviceScore }}</p>
2021-05-13 10:56:04 +08:00
</div>
</i-circle>
<h5>服务得分</h5>
</div>
<div>
2022-12-29 18:20:06 +08:00
<i-circle :size="120" stroke-color="#a7c5eb" :trail-width="4" :stroke-width="5"
:percent="(userData.deliveryScore * 20)" stroke-linecap="square">
2021-05-13 10:56:04 +08:00
<div>
2022-12-29 18:20:06 +08:00
<p class="bold">{{ userData.deliveryScore }}</p>
2021-05-13 10:56:04 +08:00
</div>
</i-circle>
<h5>交货得分</h5>
</div>
<div>
2022-12-29 18:20:06 +08:00
<i-circle :size="120" stroke-color="#848ccf" :trail-width="4" :stroke-width="5"
:percent="(userData.descriptionScore * 20)" stroke-linecap="square">
2021-05-13 10:56:04 +08:00
<div>
2022-12-29 18:20:06 +08:00
<p class="bold">{{ userData.descriptionScore }}</p>
2021-05-13 10:56:04 +08:00
</div>
</i-circle>
<h5>评价得分</h5>
</div>
</div>
</div>
<div class="card">
<h4>待办事项</h4>
<div class="detail-list">
2021-05-21 10:24:56 +08:00
<div class="detail-item" @click="navigateTo('orderList')">
2021-05-13 10:56:04 +08:00
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.unPaidOrder || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待付款</div>
</div>
<div class="detail-title">
交易前
</div>
</div>
2021-05-21 10:24:56 +08:00
<div class="detail-item" @click="navigateTo('orderList')">
2021-05-13 10:56:04 +08:00
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.unDeliveredOrder || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待发货</div>
</div>
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.deliveredOrder || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待收货</div>
</div>
<div class="detail-title">
交易中
</div>
</div>
<div class="detail-item">
<div @click="navigateTo('returnMoneyOrder')">
2022-12-29 18:20:06 +08:00
<span>{{ homeData.returnMoney || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>退款</div>
</div>
<div @click="navigateTo('returnGoodsOrder')">
2022-12-29 18:20:06 +08:00
<span>{{ homeData.returnGoods || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>退货</div>
</div>
<div @click="navigateTo('memberComment')">
2022-12-29 18:20:06 +08:00
<span>{{ homeData.memberEvaluation || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待评价</div>
</div>
<div class="detail-title">
交易后
</div>
</div>
<div class="detail-item" @click="navigateTo('orderComplaint')">
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.complaint || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待处理</div>
</div>
<div class="detail-title">
投诉
</div>
</div>
<div class="detail-item" @click="navigateTo('goods')">
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.waitUpper || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>待上架</div>
</div>
<div>
2022-12-29 18:20:06 +08:00
<span>{{ homeData.waitAuth || 0 }}</span>
2021-05-13 10:56:04 +08:00
<div>审核中</div>
</div>
<div class="detail-title">
商品
</div>
</div>
<div class="detail-item">
2021-06-28 18:16:41 +08:00
<div @click="navigateTo('seckill')">
2022-12-29 18:20:06 +08:00
<span>{{ homeData.seckillNum || 0 }}</span>
<div>秒杀活动</div>
2021-05-13 10:56:04 +08:00
</div>
2021-05-21 10:24:56 +08:00
<div @click="navigateTo('accountStatementBill')">
2022-12-29 18:20:06 +08:00
<span>{{ homeData.waitPayBill || 0 }}</span>
<div>等待对账</div>
2021-05-13 10:56:04 +08:00
</div>
<div class="detail-title">
其他
</div>
</div>
</div>
</div>
</div>
<!-- 公告 -->
<div class="card box-right">
<h4>平台公告</h4>
<div>
2022-12-29 18:20:06 +08:00
<div class="notice-title" v-for="(item, index) in notices" :key="index">
<a @click="clickLinkNotices(item)">{{ item.title }}</a>
2021-05-13 10:56:04 +08:00
</div>
</div>
</div>
</div>
<div class="card ">
2023-07-24 15:10:52 +08:00
<h4>统计数据</h4>
2021-05-13 10:56:04 +08:00
<div class="count-list flex">
<div class="count-item" @click="navigateTo('goods')">
<div>
<Icon class="icon" size="31" type="md-photos" />
</div>
<div>
2022-12-29 18:20:06 +08:00
<div class="counts">{{ homeData.goodsNum || 0 }}</div>
2023-09-14 15:06:59 +08:00
<div>上架商品数量</div>
2021-05-13 10:56:04 +08:00
</div>
</div>
2021-05-21 10:24:56 +08:00
<div class="count-item" @click="navigateTo('orderStatistics')">
2021-05-13 10:56:04 +08:00
<div>
<Icon class="icon" size="31" type="ios-card" />
</div>
<div>
2022-12-29 18:20:06 +08:00
<div class="counts">{{ homeData.orderPrice || 0 | unitPrice('¥') }}</div>
2023-07-24 15:10:52 +08:00
<div>今日订单总额</div>
2021-05-13 10:56:04 +08:00
</div>
</div>
2021-05-21 10:24:56 +08:00
<div class="count-item" @click="navigateTo('orderList')">
2021-05-13 10:56:04 +08:00
<div>
<Icon class="icon" size="31" type="md-list" />
</div>
<div>
2022-12-29 18:20:06 +08:00
<div class="counts">{{ homeData.orderNum || 0 }}</div>
2023-07-24 15:10:52 +08:00
<div>今日订单数量</div>
2021-05-13 10:56:04 +08:00
</div>
</div>
2021-05-21 10:24:56 +08:00
<div class="count-item" @click="navigateTo('trafficStatistics')">
2021-05-13 10:56:04 +08:00
<div>
<Icon class="icon" size="31" type="md-person" />
</div>
<div>
2022-12-29 18:20:06 +08:00
<div class="counts">{{ homeData.storeUV || 0 }}</div>
2023-07-24 15:10:52 +08:00
<div>今日访客数量</div>
2021-05-13 10:56:04 +08:00
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { getSellerHomeData, getHomeNotice } from "@/api/index";
2022-02-22 01:32:36 +08:00
import { getIMDetail } from "@/api/common"
2021-05-13 10:56:04 +08:00
import { seeArticle } from "@/api/pages";
import Cookies from "js-cookie";
import { userMsg } from "@/api/index";
2021-05-13 10:56:04 +08:00
export default {
name: "home",
2022-12-29 18:20:06 +08:00
data () {
2021-05-13 10:56:04 +08:00
return {
noticeFlage: false, // 控制平台公告显隐
homeData: {}, // 首页数据
userData: "", // 店铺信息
notices: "", // 平台公告列表
noticesDetail: { // 平台公告详情
title: "",
},
2022-12-29 18:20:06 +08:00
IMLink: "",
load:false, //加载Im
2021-05-13 10:56:04 +08:00
};
},
2021-05-13 10:56:04 +08:00
methods: {
2021-07-14 18:00:59 +08:00
// 跳转页面
2022-12-29 18:20:06 +08:00
navigateTo (name) {
2021-05-13 10:56:04 +08:00
this.$router.push({
name,
});
},
2021-07-14 18:00:59 +08:00
// 初始化数据
2022-12-29 18:20:06 +08:00
async init () {
let userInfo = JSON.parse(Cookies.get("userInfoSeller"));
2021-05-13 10:56:04 +08:00
this.userData = userInfo;
let res = await getHomeNotice();
if (res.success) {
this.notices = res.result.records;
}
},
2021-07-14 18:00:59 +08:00
// 跳转文章页
2022-12-29 18:20:06 +08:00
async clickLinkNotices (val) {
2021-05-13 10:56:04 +08:00
let res = await seeArticle(val.id);
if (res.success) {
this.noticesDetail = res.result;
this.noticeFlage = true;
}
},
/**
* 点击登录im的时候需要去判断一下当前店铺信息是否失效
* 失效的话重新请求刷新token保证最新的token去访问im
*/
2022-12-29 18:20:06 +08:00
async im () {
2022-02-22 01:32:36 +08:00
// 获取访问Token
let accessToken = this.getStore("accessToken");
this.load = true
2022-02-22 01:32:36 +08:00
await this.getIMDetailMethods();
const userInfo = await userMsg();
this.load = false
if (userInfo.success && this.IMLink) {
window.open(`${this.IMLink}?token=` + accessToken);
}
else{
2022-02-22 01:32:36 +08:00
this.$Message.error("请登录后再联系客服");
}
},
// 获取im信息
2022-12-29 18:20:06 +08:00
async getIMDetailMethods () {
2022-02-22 01:32:36 +08:00
let res = await getIMDetail();
if (res.success) {
this.IMLink = res.result;
}
},
2021-07-14 18:00:59 +08:00
// 获取首页数据
2022-12-29 18:20:06 +08:00
async getHomeData () {
2021-05-13 10:56:04 +08:00
let res = await getSellerHomeData();
if (res.success) {
this.homeData = res.result;
}
},
},
2022-12-29 18:20:06 +08:00
mounted () {
2021-05-13 10:56:04 +08:00
this.init();
this.getHomeData();
},
};
</script>
<style lang="scss" scoped>
@import "./home.scss";
</style>