716 lines
17 KiB
Vue
716 lines
17 KiB
Vue
<template>
|
||
<view class="content">
|
||
|
||
<view class="top_">
|
||
<view class="logo_imgs">
|
||
<image src="/static/imgs/logo.png" mode=""></image>
|
||
</view>
|
||
<view class="t_box">
|
||
<view class="d_s">
|
||
<view class="picture_">
|
||
<image @click="showUserDetail" style="width: 104rpx;height: 104rpx;border-radius: 50%;"
|
||
v-if="userInfo && userInfo.avatar === null" :src="defaultAvatar" mode="scaleToFill"
|
||
@error="avatarErr"></image>
|
||
<image @click="showUserDetail" style="width: 104rpx;height: 104rpx;border-radius: 50%;" v-else
|
||
:src="userInfo.avatar" mode="scaleToFill" @error="avatarErr"></image>
|
||
</view>
|
||
<view class="">
|
||
<view class="name_">
|
||
{{ userInfo.nickname }}
|
||
</view>
|
||
<view class="bqing_">{{ userInfo.roleNames }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="d_s">
|
||
<view class="icon1" @click="goNotice()">
|
||
<image src="/static/imgs/xiaoxi.png" mode=""></image>
|
||
</view>
|
||
<view class="icon1" @click="showUserDetail">
|
||
<image src="/static/imgs/gengduo.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</view>
|
||
<view class="three_">
|
||
<view class="three_box1">
|
||
<view class="">当日订单</view>
|
||
<view class="num_">{{ threenum.todayOrderNum }}</view>
|
||
</view>
|
||
<view class="three_box2">
|
||
<view class="">已完成</view>
|
||
<view class="num_">{{ threenum.workedNum }}</view>
|
||
</view>
|
||
<view class="three_box3">
|
||
<view class="">未完成</view>
|
||
<view class="num_">{{ threenum.uncompletedNum }}</view>
|
||
</view>
|
||
|
||
</view>
|
||
<view class="hang_"></view>
|
||
<view class="jg_box">
|
||
<view class="jg_top">{{ dateStr || '' }} {{ week || '' }} {{ time || '' }}</view>
|
||
<view class="jg_ds">
|
||
<view class="jg_ys">
|
||
<image src="/static/imgs/jg1.png" mode="" @click="goordermanage"></image>
|
||
<view class="">订单管理</view>
|
||
</view>
|
||
<view class="jg_ys">
|
||
<image src="/static/imgs/jg2.png" mode=""></image>
|
||
<view class="">业务统计</view>
|
||
</view>
|
||
<view class="jg_ys">
|
||
<image src="/static/imgs/jg3.png" mode="" @click="goNotice"></image>
|
||
<view class="">通知公告</view>
|
||
</view>
|
||
<view class="jg_ys" @click="goInternalManagement">
|
||
<image src="/static/imgs/jg4.png" mode=""></image>
|
||
<view class="">内部管理</view>
|
||
</view>
|
||
<view class="jg_ys" @click="show =!show">
|
||
<image src="/static/imgs/jg5.png" mode=""></image>
|
||
<view class="">更多功能</view>
|
||
</view>
|
||
</view>
|
||
<view class="jg_bt" v-if="show">
|
||
<view class="jg_ys1" @click="gorelease()">
|
||
<image src="/static/imgs/jg6.png" mode=""></image>
|
||
<view class="">发布商品</view>
|
||
</view>
|
||
<view class="jg_ys1" @click="goorder()">
|
||
<image src="/static/imgs/jg7.png" mode=""></image>
|
||
<view class="">商品管理</view>
|
||
</view>
|
||
<view class="jg_ys1" @click="gocode">
|
||
<image src="/static/imgs/jg8.png" mode=""></image>
|
||
<view class="">订单核销</view>
|
||
</view>
|
||
<view class="jg_ys1" @click="coupon()">
|
||
<image src="/static/imgs/jg9.png" mode=""></image>
|
||
<view class="">优惠券</view>
|
||
</view>
|
||
<view class="jg_ys1" @click="goPresent">
|
||
<image src="/static/imgs/jg10.png" mode=""></image>
|
||
<view class="">使用说明</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="hang_"></view>
|
||
<view class="list_">
|
||
<view class="title_">预约记录</view>
|
||
<view class="box_" v-for="(item,index) in goodsList" :key="index">
|
||
<view class="box_ds">
|
||
<view class="box_title">{{ item.goodsTitle }}</view>
|
||
<u-tag :text="item.skuName" plain size="mini" style=" height: 44rpx; "></u-tag>
|
||
<!-- <image src="/static/imgs/ns.png" mode=""></image>-->
|
||
</view>
|
||
<view class="box_bd">
|
||
<view class="box_ds">
|
||
<image src="/static/imgs/car.png" style="width: 36rpx; height: 36rpx; " mode=""></image>
|
||
<view class="size_">车牌号:{{ item.carNo || '' }}</view>
|
||
</view>
|
||
<image src="/static/imgs/tel.png" style="width: 36rpx; height: 36rpx; " @click="gettel(item)" mode=""></image>
|
||
</view>
|
||
<view class="bd">
|
||
<view class="left_">预约人</view>
|
||
<view class="right_">{{ item.buyName }}</view>
|
||
</view>
|
||
<view class="bd">
|
||
<view class="left_">电话</view>
|
||
<view class="right_">{{ item.buyPhoneNum }}</view>
|
||
</view>
|
||
<view class="bd">
|
||
<view class="left_">预约时间</view>
|
||
<view class="right_">{{ formatDateChinese(item.appointmentDay) }}</view>
|
||
</view>
|
||
<view class="bd">
|
||
<view class="left_">客户来源</view>
|
||
<view class="right_">自来客户</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!-- 底部 -->
|
||
<view style="width: 100%; height: 50px;"></view>
|
||
<tabBar :msg="msg "></tabBar>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {getStorageWithExpiry, setStorageWithExpiry} from "@/utils/auth";
|
||
import request from "@/utils/request";
|
||
import config from "@/config";
|
||
import {formatDateChinese} from "@/utils/utils";
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
titles: "首页",
|
||
msg: "1",
|
||
List: [],
|
||
show: false,
|
||
status: 'loading',
|
||
warnMsg: [],
|
||
chuan: '',
|
||
titlemodeal: '通知',
|
||
isWorking: false,
|
||
user: {},
|
||
baseUrl: '',
|
||
animate: false,
|
||
partnerId: '',
|
||
threenum: {},
|
||
showScroll: true,
|
||
scrollDuration: 3000, // 滚动间隔时间,单位为毫秒
|
||
items: [],
|
||
ping: [],
|
||
dateStr: '',
|
||
week: '',
|
||
is_mandatory: false,
|
||
url: 'http://159.75.168.143:88/apk/lanan.apk',
|
||
title: '版本升级',
|
||
contents: '新版本上线了,根据您自己的选择是否升级',
|
||
appAndPick: {
|
||
appointNum: 0,
|
||
pickNum: 0
|
||
},
|
||
baseImageUrl: this.$baseImageUrl,
|
||
noReadNum: 1,
|
||
userInfo: {},
|
||
defaultAvatar: require('@/static/icons/avatar.png'),
|
||
goodsList: [],
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
totalPages: 0,
|
||
timer: null,
|
||
}
|
||
},
|
||
onShow() {
|
||
// this.actList = ["1", "1", "1", "1", "1", ]
|
||
// this.status = "nomore" 底部刷新结束
|
||
|
||
},
|
||
onLoad() {
|
||
this.partnerId = uni.getStorageSync('partnerId')
|
||
this.getUserInfo()
|
||
this.getindex()
|
||
// this.getwarnMsglist()
|
||
this.getbottom()
|
||
this.getUserInfo()
|
||
this.getWarnCount()
|
||
this.getAppointAndPickNum()
|
||
this.getappointment()
|
||
// 初始化时间
|
||
this.timeWeekFormat();
|
||
|
||
},
|
||
onPullDownRefresh() {
|
||
console.log("刷新");
|
||
uni.stopPullDownRefresh()
|
||
},
|
||
onReachBottom() {
|
||
if (this.pageNum >= this.totalPages) {
|
||
uni.showToast({
|
||
title: '没有下一页数据',
|
||
icon: 'none'
|
||
})
|
||
} else {
|
||
this.pageNum++
|
||
this.getappointment()
|
||
}
|
||
},
|
||
|
||
methods: {
|
||
formatDateChinese,
|
||
goInternalManagement() {
|
||
uni.navigateTo({
|
||
url: '/pages/manage/internalManagement'
|
||
})
|
||
},
|
||
goordermanage() {
|
||
uni.navigateTo({
|
||
url: '/pages/index/ordermanage'
|
||
})
|
||
},
|
||
goNotice() {
|
||
uni.navigateTo({
|
||
url: '/pages/xiaoxi/notice'
|
||
})
|
||
},
|
||
goback() {
|
||
uni.navigateBack()
|
||
},
|
||
goorder() {
|
||
uni.navigateTo({
|
||
url: '/pages/order/order'
|
||
})
|
||
},
|
||
coupon() {
|
||
uni.navigateTo({
|
||
url: '/pages/coupon/coupon'
|
||
})
|
||
},
|
||
gocode() {
|
||
uni.navigateTo({
|
||
url: "/pages/my/rwm",
|
||
})
|
||
},
|
||
gohomecar() {
|
||
uni.navigateTo({
|
||
url: "/pages/index/homecar",
|
||
})
|
||
},
|
||
goPresent() {
|
||
if (!this.present?.filePath) {
|
||
uni.showToast({
|
||
title: '暂无使用说明',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
let old = this.present.filePath
|
||
if (old[0] !== '/') {
|
||
old = "/" + old
|
||
}
|
||
uni.downloadFile({
|
||
url: this.$baseImageUrl + old,
|
||
success: function (res) {
|
||
var filePath = res.tempFilePath;
|
||
uni.openDocument({
|
||
filePath: filePath,
|
||
showMenu: true,
|
||
success: function (res) {
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
gorelease() {
|
||
uni.navigateTo({
|
||
url: '/pages/Tollannouncement/Tollannouncement'
|
||
})
|
||
},
|
||
gettel(num) {
|
||
const value = num.buyPhoneNum
|
||
uni.makePhoneCall({
|
||
phoneNumber: value //仅为示例
|
||
});
|
||
},
|
||
showUserDetail() {
|
||
uni.navigateTo({
|
||
url: '/pages/index/UserInfo'
|
||
})
|
||
},
|
||
avatarErr(err) {
|
||
console.log('err', err)
|
||
this.userInfo.avatar = this.defaultAvatar
|
||
},
|
||
goWarn() {
|
||
uni.navigateTo({
|
||
url: '/pages/xiaoxi/xiaoxi?index=1'
|
||
})
|
||
},
|
||
getUserInfo() {
|
||
let roleNames = getStorageWithExpiry("roleNames")
|
||
if (!roleNames) {
|
||
request({
|
||
url: '/inspection/util/getRoleName',
|
||
method: 'get'
|
||
}).then(res => {
|
||
roleNames = res.data
|
||
setStorageWithExpiry("roleNames", roleNames)
|
||
})
|
||
}
|
||
const data = getStorageWithExpiry("userInfo")
|
||
if (!data) {
|
||
request({
|
||
url: '/system/user/profile/get',
|
||
method: 'get'
|
||
}).then(res => {
|
||
this.userInfo = res.data
|
||
if (this.userInfo.avatar) {
|
||
this.userInfo.avatar = config.baseImageUrl + this.userInfo.avatar
|
||
}
|
||
this.userInfo.roleNames = roleNames
|
||
setStorageWithExpiry("userInfo", this.userInfo)
|
||
})
|
||
} else {
|
||
this.userInfo = data
|
||
}
|
||
},
|
||
getWarnCount() {
|
||
request({
|
||
url: '/warnMsg/warnMsg/getCount',
|
||
method: 'get',
|
||
}).then(res => {
|
||
if (res.data) {
|
||
this.noReadNum = res.data
|
||
}
|
||
})
|
||
},
|
||
async getAppointAndPickNum() {
|
||
let res = await request({
|
||
url: '/partnerOwn/partner/getAppointAndPickNum',
|
||
method: 'get'
|
||
})
|
||
if (res.code == 200) {
|
||
this.appAndPick = res.data
|
||
}
|
||
},
|
||
// 底部消息
|
||
async getbottom() {
|
||
let data = {
|
||
partnerId: uni.getStorageSync('partnerId')
|
||
}
|
||
let res = await request({
|
||
url: '/appInspection/news/newMsgNum',
|
||
method: 'get',
|
||
params: data
|
||
})
|
||
if (res.code == 200) {
|
||
this.chuan = res.data
|
||
}
|
||
},
|
||
async getindex() {
|
||
// 首页信息
|
||
let res = await request({
|
||
url: '/partnerOwn/partner/shopInfo',
|
||
method: 'get',
|
||
})
|
||
this.user = res.data
|
||
this.partnerId = res.data.partnerId
|
||
uni.setStorageSync('partnerId', res.data.partnerId)
|
||
if (res.data.isWorking == "0") {
|
||
|
||
this.isWorking = false
|
||
}
|
||
if (res.data.isWorking == "1") {
|
||
this.isWorking = true
|
||
}
|
||
// 中间统计
|
||
let reszj = await request({
|
||
url: '/partnerOwn/partner/statisticsInfo?partnerId=' + this.partnerId,
|
||
method: 'get',
|
||
})
|
||
let nums = {
|
||
orderAmount: reszj.data.orderAmount / 100,
|
||
orderNum: reszj.data.orderNum,
|
||
todayOrderAmount: reszj.data.todayOrderAmount / 100,
|
||
todayOrderNum: reszj.data.todayOrderNum,
|
||
workedNum: reszj.data.workedNum,
|
||
workingNum: reszj.data.workingNum,
|
||
srlNum: reszj.data.srlNum,
|
||
hgNum: reszj.data.hgNum,
|
||
uncompletedNum: reszj.data.uncompletedNum,
|
||
|
||
}
|
||
this.threenum = nums
|
||
|
||
|
||
// 下方订单信息
|
||
// let resxf = await request({
|
||
// url:'/partnerOwn/partner/orderInfo?partnerId='+this.partnerId,
|
||
// method: 'get',
|
||
// })
|
||
// this.items = resxf.data
|
||
// 热销产品
|
||
let resrx = await request({
|
||
url: '/partnerOwn/partner/hotGoodsList?partnerId=' + this.partnerId,
|
||
method: 'get',
|
||
})
|
||
this.ping = resrx.data
|
||
// this.getswitch()
|
||
},
|
||
//预约记录
|
||
async getappointment() {
|
||
// 首页信息
|
||
let data = {
|
||
partnerId: this.partnerId,
|
||
phoneNum: this.phoneNum,
|
||
pageSize: this.pageSize,
|
||
pageNum: this.pageNum
|
||
}
|
||
let res = await request({
|
||
|
||
url: '/partnerOwn/partner/getAppointmentList',
|
||
method: 'get',
|
||
params: data
|
||
})
|
||
if (res.code == 200) {
|
||
this.goodsList = this.goodsList.concat(res.rows)
|
||
let total = res.total
|
||
this.totalPages = Math.ceil(total / this.pageSize);
|
||
}
|
||
},
|
||
timeWeekFormat() {
|
||
let dateTime = new Date();
|
||
let year = dateTime.getFullYear();
|
||
let month = dateTime.getMonth() + 1;
|
||
let day = dateTime.getDate();
|
||
let hours = dateTime.getHours();
|
||
let minutes = dateTime.getMinutes();
|
||
let second = dateTime.getSeconds();
|
||
let dayCycleArray = ["日", "一", "二", "三", "四", "五", "六"];
|
||
let dayCycle = dayCycleArray[dateTime.getDay()];
|
||
|
||
// 补零
|
||
month = month < 10 ? "0" + month : month;
|
||
day = day < 10 ? "0" + day : day;
|
||
hours = hours < 10 ? "0" + hours : hours;
|
||
minutes = minutes < 10 ? "0" + minutes : minutes;
|
||
second = second < 10 ? "0" + second : second;
|
||
|
||
this.dateStr = `${year}-${month}-${day}`;
|
||
this.week = `星期${dayCycle}`;
|
||
this.time = `${hours}:${minutes}:${second}`;
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.content {
|
||
}
|
||
|
||
|
||
.top_ {
|
||
width: 100%;
|
||
height: 284rpx;
|
||
background: linear-gradient(180deg, #054DF3 0%, #55A3FF 100%);
|
||
box-sizing: border-box;
|
||
padding: 30rpx;
|
||
padding-top: 80rpx;
|
||
}
|
||
|
||
.logo_imgs {
|
||
width: 160rpx;
|
||
height: 40rpx;
|
||
margin: 20rpx 0rpx;
|
||
|
||
}
|
||
|
||
.t_box {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.picture_ {
|
||
overflow: hidden;
|
||
width: 90rpx;
|
||
height: 90rpx;
|
||
border-radius: 50%;
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
.d_s {
|
||
display: flex;
|
||
|
||
}
|
||
|
||
.name_ {
|
||
font-size: 32rpx;
|
||
color: #FFFFFF;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
|
||
.bqing_ {
|
||
border-radius: 16rpx;
|
||
border: 2rpx solid #FFFFFF;
|
||
box-sizing: border-box;
|
||
color: #FFFFFF;
|
||
font-size: 22rpx;
|
||
|
||
padding: 2px 5px;
|
||
}
|
||
|
||
.icon1 {
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
margin-left: 30rpx;
|
||
}
|
||
|
||
.three_ {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 30rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.jg_box {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 30rpx;
|
||
}
|
||
|
||
.list_ {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 30rpx;
|
||
}
|
||
|
||
.three_box1 {
|
||
width: 216rpx;
|
||
height: 116rpx;
|
||
background-image: url('/static/imgs/t1.png');
|
||
background-size: 100% 100%;
|
||
box-sizing: border-box;
|
||
padding: 14rpx 18rpx;
|
||
font-size: 24rpx;
|
||
color: #101A3E;
|
||
|
||
}
|
||
|
||
.three_box2 {
|
||
width: 216rpx;
|
||
height: 116rpx;
|
||
background-image: url('/static/imgs/t2.png');
|
||
background-size: 100% 100%;
|
||
box-sizing: border-box;
|
||
padding: 14rpx 18rpx;
|
||
font-size: 24rpx;
|
||
color: #101A3E;
|
||
}
|
||
|
||
.three_box3 {
|
||
width: 216rpx;
|
||
height: 116rpx;
|
||
background-image: url('/static/imgs/t3.png');
|
||
background-size: 100% 100%;
|
||
box-sizing: border-box;
|
||
padding: 14rpx 18rpx;
|
||
font-size: 24rpx;
|
||
color: #101A3E;
|
||
}
|
||
|
||
.num_ {
|
||
font-size: 36rpx;
|
||
color: #101A3E;
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
.hang_ {
|
||
width: 100%;
|
||
height: 30rpx;
|
||
background: #F7F8FC;
|
||
}
|
||
|
||
.jg_top {
|
||
font-size: 32rpx;
|
||
color: #000000;
|
||
box-sizing: border-box;
|
||
padding-bottom: 30rpx;
|
||
border-bottom: 1px solid #F5F5F5;
|
||
}
|
||
|
||
.jg_ds {
|
||
width: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
box-sizing: border-box;
|
||
padding: 30rpx 0rpx;
|
||
border-bottom: 1px solid #F5F5F5;
|
||
}
|
||
|
||
.jg_bt {
|
||
width: 100%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
box-sizing: border-box;
|
||
padding: 30rpx 0rpx;
|
||
}
|
||
|
||
.jg_ys {
|
||
font-size: 24rpx;
|
||
color: #101A3E;
|
||
text-align: center;
|
||
|
||
image {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
margin-bottom: 5rpx;
|
||
}
|
||
}
|
||
|
||
.jg_ys1 {
|
||
font-size: 24rpx;
|
||
color: #101A3E;
|
||
text-align: center;
|
||
|
||
image {
|
||
width: 48rpx;
|
||
height: 48rpx;
|
||
margin-bottom: 5rpx;
|
||
}
|
||
}
|
||
|
||
.title_ {
|
||
font-size: 32rpx;
|
||
color: #000000;
|
||
margin-bottom: 30rpx;
|
||
}
|
||
|
||
.box_ {
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 30rpx;
|
||
background: #F7F8FC;
|
||
border-radius: 8rpx;
|
||
margin-bottom: 30rpx;
|
||
|
||
}
|
||
|
||
.box_ds {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.box_bd {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
margin-top: 24rpx;
|
||
box-sizing: border-box;
|
||
padding-bottom: 20rpx;
|
||
border-bottom: 1px solid #E3ECFB;
|
||
}
|
||
|
||
.bd {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
font-size: 28rpx;
|
||
margin: 20rpx 0rpx;
|
||
}
|
||
|
||
.box_title {
|
||
font-size: 32rpx;
|
||
color: #101A3E;
|
||
margin-right: 10rpx;
|
||
}
|
||
|
||
.size_ {
|
||
font-size: 24rpx;
|
||
color: #366FFF;
|
||
margin-left: 10rpx;
|
||
|
||
}
|
||
|
||
.left_ {
|
||
font-size: 28rpx;
|
||
color: #8D90A6;
|
||
}
|
||
|
||
.right_ {
|
||
font-size: 28rpx;
|
||
color: #101A3E;
|
||
}
|
||
</style>
|