uniapp一周备份

master
十七 5 years ago
parent 08035094ba
commit 1d241305c0

@ -0,0 +1,433 @@
<template>
<view class="calendar-content" v-if="show">
<view @click="close" style="height: 100%;"></view>
<view class="calendar-body">
<view class="calendar-header">
<view :class="{
'not-clear': pickerArray[0] == null,
'clear': pickerArray[0] !=null,
}" @click="clear">清除</view>
<view class="title">
<text v-if="pickerArray.length==0"></text>
<text v-else-if="pickerArray.length==1 && multi == false">{{pickerArray[0].slice(5).replace('/','月')+ '日'}}</text>
<view class="date-range" v-else>
<!-- <view v-show="pickerArray[0]==null" style="color: #8F8F94;"></view> -->
<text v-show="pickerArray[0]!=null">{{pickerArray[0].slice(5).replace('/','')+ ''}}</text>
<text>-</text>
<view v-show="pickerArray[1]==null" style="color: #8F8F94;"></view>
<text v-if="pickerArray[1]!=null">{{pickerArray[1].slice(5).replace('/','')+ ''}}</text>
</view>
</view>
<view
:class="{
'not-confirm': true,
'confirm': (pickerArray[0] != null && multi == false)|| (pickerArray[1] != null && multi == true)
}"
@click="save"
>保存</view>
</view>
<view class="calendar-picker">
<view class="calendar-week">
<view v-for="(v, i) in weekArray" :key="i" class="week">
{{v}}
</view>
</view>
<scroll-view
:scroll-y="true"
class="calendar-scroll"
>
<block v-for="(v, i) in calendarEmptyTempArray" :key="i">
<view class="monthAndyear">{{v[3]}}{{v[2]}}</view>
<view class="calendar-days-content">
<view class="calendar-empty-day" v-for="(e) in v[0]" :key="e.id"></view>
<view class="calendar-day-content" v-for="(d, i) in v[4]" :key="i" @click="picker([v[3], v[2], i+1])">
<view :class="{
'calendar-day': true,
'calendar-disable-day': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}`< today,
'calendar-today': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` == today,
'calendar-picker-start': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` == pickerArray[0] && pickerArray.length > 1,
'calendar-picker-day': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` > pickerArray[0] && `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` < pickerArray[1],
'calendar-picker-end': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` == pickerArray[1],
'calnedar-picker-single': `${v[3]}/${prefixZero(v[2])}/${prefixZero(i+1)}` == pickerArray[0] && pickerArray.length == 1
}" >
{{i+1}}
</view>
</view>
</view>
</block>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
/*
* @description 组件可以对日期进行单选多选使用酒店预定飞机票火车票预定
* @__author__:Sorry_hx, __email__:1317205072@qq.com
* @property {String} starDate 单选为选中日期多选为选中开始日期默认选择为今天需要autoChoose = true, YYYY/MM/DD
* @property {String} endDate 单选无效多选为选中结束日期默认选择为明天 需要autoChoose = true, YYYY/MM/DD
* @property {Boolean} multi 多选模式
* @property {Boolean} autoChoose 自动选择输入日期默认为false
* @property {Boolean} autoClear 保存自动清除选择默认为true
* @property {Number} range 日历月份数自本月起的往后几个月的日历默认为13个月即明年的本月
* @event {Array} change 触发change时间返回日期数组
*/
export default{
props:{
startDate:{
type: String,
default: ''
},
endDate:{
type: String,
default: ''
},
multi:{
type: Boolean,
default: true
},
autoChoose:{
type: Boolean,
default: false
},
autoClear:{
type: Boolean,
default: true
},
range: {
type: Number,
default: 13
}, // ,
},
data(){
return{
weekArray: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
monthDaysArray: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
year: 1970,
month: 1,
date: 1,
weekDay: 0,
calendarEmptyTempArray: [] ,// [, .]
pickerArray:[], //
pickerStartDate:'',
pickerEndDate:'',
today: '',
rangeArray: [],
pickerStamp: 0,
show: false
}
},
computed:{
},
methods:{
getCalendar(){
const date = new Date()
this.year = date.getFullYear()
this.updateFebruarydays(this.year)
this.month = date.getMonth() + 1
this.date = date.getDate()
this.weekDay = date.getDay()
this.today = this.getDate(date)
const tomorrowDate = this.getDate(new Date(date.getTime() + 24*60*60*1000))
if (this.multi && this.autoChoose){
if (this.startDate != '' && this.endDate != '' && this.startDate < this.endDate && this.startDate.replace(/-/g, '/') >= this.today){
this.pickerArray=[this.startDate.replace(/-/g, '/'), this.endDate.replace(/-/g, '/')]
}else{
this.pickerArray=[this.today, tomorrowDate]
}
}else if(!this.multi && this.autoChoose){
if (this.startDate != '' && this.startDate.replace(/-/g, '/') >= this.today){
this.pickerArray=[this.startDate.replace(/-/g, '/')]
}else{
this.pickerArray=[this.today]
}
}
const firstDay = new Date(`${this.year}-${this.month}-01`).getDay() //
// [, .]
let month //
let year = this.year
for (let i=0; i<this.range; i++){
if(i > 0){
let preDay = (this.calendarEmptyTempArray[i-1][1]+1)%7
month = month + 1
if(month > 12){
year ++
month = month - 12
this.updateFebruarydays(year)
}
let monthDays = this.monthDaysArray[month-1]
let laterDay = (preDay + monthDays)%7 - 1
this.calendarEmptyTempArray[i] = [preDay, laterDay, month, year, monthDays]
}else{
month = this.month
let monthDays = this.monthDaysArray[month-1]
let laterDay = (firstDay + monthDays)%7 - 1
this.calendarEmptyTempArray[0] = [firstDay, laterDay, month, year, monthDays]
}
}
},
getDate(date){
return `${date.getFullYear()}/${this.prefixZero(date.getMonth() + 1)}/${this.prefixZero(date.getDate())}`
},
updateFebruarydays(year){
// created
if(year%4==0&&year%100!=0||year%400==0){
this.monthDaysArray[1] = 29
}else{
this.monthDaysArray[1] = 28
}
},
getDayClass(date, month, year){
//
if (date<this.date && month == this.month && year == this.year){
return 'calendar-disable-day'
}else if(date == this.date && month == this.month && year == this.year){
return 'calendar-today'
}
return 'calendar-day'
},
prefixZero(num){
// ,
if (num>10){
return num
}else{
return (Array(2).join(0) + num).slice(-2)
}
},
getTomorrowDate(todayDate, month){
const d = todayDate + 1
// if (d>)
},
dateScope(startDateStr, endDateStr){
const startTime = new Date(startDateStr).getTime()
const endTime = new Date(endDateStr).getTime()
const oneDay = 24*60*60*1000
let l = []
let i
for (i=startTime; i<=endTime;){
l.push(this.getDate(new Date(i)).replace(/\//g, '-'))
i += oneDay
}
return l
},
picker(dateArray){
let [year, month, day] = dateArray
let date = `${year}/${this.prefixZero(month)}/${this.prefixZero(day)}`
if (date < this.today){
//
return null
}
if (this.multi == true){
if (this.pickerStamp == 0){
this.pickerArray = [date]
this.pickerStamp = 1
}else{
if (date>this.pickerArray[0]){
this.pickerArray.push(date)
this.pickerStamp = 0
}else{
//
this.pickerArray = [date]
this.pickerStamp = 1
}
}
}else{
this.pickerArray = [date]
}
},
clear(){
//
this.pickerArray = []
},
save(e){
if (this.multi == true){
if (this.pickerArray.length == 2){
this.$emit('change', this.dateScope(this.pickerArray[0], this.pickerArray[1]))
this.show = false
if (this.autoClear){
this.clear()
}
}
}else{
this.$emit('change', [this.pickerArray[0].replace(/\//g, '-')])
this.show = false
if (this.autoClear){
this.clear()
}
}
},
close(){
this.show = false
},
open(){
this.show = true
}
},
created() {
this.getCalendar()
}
}
</script>
<style lang="scss" scoped>
@mixin border-bottom {
border-bottom-color: #d4d4d4;
border-bottom-style: solid;
border-bottom-width: thin;
}
.calendar-content{
position: fixed;
top: 0;
width: 100%;
height: 100%;
background-color: rgba($color: #000000, $alpha: 0.5);
left: 0;
z-index: 99;
.calendar-body{
height: 800rpx;
width: 100%;
background-color: #FFFFFF;
position: fixed;
bottom: 0;
.calendar-header{
@include border-bottom;
height: 100rpx;
display: flex;
justify-content: space-between;
padding: 0 40rpx;
align-items: center;
.clear{
color: $uni-color-primary;
}
.not-clear{
color: rgba($color: $uni-color-primary, $alpha: 0.5);
}
.confirm{
color: $uni-color-primary !important;
}
.not-confirm{
color: rgba($color: $uni-color-primary, $alpha: 0.5);
}
.title{
font-size: 32rpx;
.date-range{
display: flex;
width: 300rpx;
justify-content: space-between;
}
}
}
.calendar-picker{
display: flex;
flex-direction: column;
align-items: center;
.calendar-week{
display: flex;
justify-content: flex-start;
height: 70rpx;
align-items: center;
width: 700rpx;
@include border-bottom;
.week{
width: 100rpx;
text-align: center;
font-size: 30rpx;
}
}
.calendar-scroll{
width: 700rpx;
height: 610rpx;
.monthAndyear{
font-size: 32rpx;
padding-left: 34rpx;
height: 60rpx;
display: flex;
align-items: flex-end;
}
.calendar-days-content{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
width: 700rpx;
@include border-bottom;
.calendar-empty-day{
width: 100rpx;
height: 100rpx;
}
.calendar-day-content{
height: 110rpx;
width: 100rpx;
display: flex;
align-items: center;
justify-content: center;
.calendar-day{
width: 100rpx;
height: 100rpx;
text-align: center;
line-height: 100rpx;
font-size: 30rpx;
}
.calendar-today{
// @extend .calendar-day;
border-radius: 50%;
border-style: solid;
border-width: thin;
border-color: #d4d4d4;
box-sizing: border-box;
}
.calendar-disable-day{
// @extend .calendar-day;
color: #d4d4d4;
}
.calendar-picker-start{
border-top-left-radius: 50%;
border-bottom-left-radius: 50%;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
background-color: $uni-color-primary;
border-color: $uni-color-primary;
color: #FFFFFF;
// box-sizing: inherit !important;
}
.calendar-picker-day{
background-color: $uni-color-primary;
border-color: $uni-color-primary;
color: #FFFFFF;
}
.calendar-picker-end{
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-top-right-radius: 50%;
border-bottom-right-radius: 50%;
background-color: $uni-color-primary;
color: #FFFFFF;
border-color: $uni-color-primary;
}
.calnedar-picker-single{
border-radius: 50%;
border-color: $uni-color-primary;
background-color: $uni-color-primary;
color: #FFFFFF;
}
}
}
}
}
}
}
</style>

@ -0,0 +1,819 @@
<template>
<view v-if="isShow" class="picker">
<!-- 日期选择器 -->
<view v-if="type!='time'" class="picker-modal">
<view class="picker-modal-header">
<view class="picker-icon picker-icon-zuozuo" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetYear('-1')"></view>
<view class="picker-icon picker-icon-zuo" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetMonth('-1')"></view>
<text class="picker-modal-header-title">{{title}}</text>
<view class="picker-icon picker-icon-you" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetMonth('+1')"></view>
<view class="picker-icon picker-icon-youyou" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetYear('+1')"></view>
</view>
<swiper class="picker-modal-body" :circular="true" :duration="200" :skip-hidden-item-layout="true" :current="calendarIndex" @change="onSwiperChange">
<swiper-item class="picker-calendar" v-for="(calendar,calendarIndex2) in calendars" :key="calendarIndex2">
<view class="picker-calendar-view" v-for="(week,index) in weeks" :key="index - 7">
<view class="picker-calendar-view-item">{{week}}</view>
</view>
<view class="picker-calendar-view" v-for="(date,dateIndex) in calendar" :key="dateIndex" @click="onSelectDate(date)">
<!-- 背景样式 -->
<view v-show="date.bgStyle.type" :class="'picker-calendar-view-'+date.bgStyle.type" :style="{background: date.bgStyle.background}"></view>
<!-- 正常和选中样式 -->
<view class="picker-calendar-view-item" :style="{opacity: date.statusStyle.opacity, color: date.statusStyle.color, background: date.statusStyle.background}">
<text>{{date.title}}</text>
</view>
<!-- 小圆点样式 -->
<view class="picker-calendar-view-dot" :style="{opacity: date.dotStyle.opacity, background: date.dotStyle.background}"></view>
<!-- 信息样式 -->
<view v-show="date.tips" class="picker-calendar-view-tips">{{date.tips}}</view>
</view>
</swiper-item>
</swiper>
<view class="picker-modal-footer">
<view class="picker-modal-footer-info">
<block v-if="isMultiSelect">
<view class="picker-display">
<text>{{beginText}}日期</text>
<text class="picker-display-text">{{BeginTitle}}</text>
<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
:style="{color}" @click="onShowTimePicker('begin')">{{BeginTimeTitle}}</view>
</view>
<view class="picker-display">
<text>{{endText}}日期</text>
<text class="picker-display-text">{{EndTitle}}</text>
<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
:style="{color}" @click="onShowTimePicker('end')">{{EndTimeTitle}}</view>
</view>
</block>
<block v-else>
<view class="picker-display">
<text>当前选择</text>
<text class="picker-display-text">{{BeginTitle}}</text>
<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
:style="{color}" @click="onShowTimePicker('begin')">{{BeginTimeTitle}}</view>
</view>
</block>
</view>
<view class="picker-modal-footer-btn">
<view class="picker-btn" :hover-stay-time="100" hover-class="picker-btn-active" @click="onCancel"></view>
<view class="picker-btn" :style="{color}" :hover-stay-time="100" hover-class="picker-btn-active" @click="onConfirm"></view>
</view>
</view>
</view>
<!-- 时间选择器 -->
<view v-if="showTimePicker" class="picker">
<view class="picker-modal picker-time">
<view class="picker-modal-header">
<text class="picker-modal-header-title">选择日期</text>
</view>
<picker-view class="picker-modal-time" indicator-class="picker-modal-time-item" :value="timeValue" @change="onTimeChange">
<picker-view-column>
<view v-for="(v,i) in 24" :key="i">{{i<10?'0'+i:i}}</view>
</picker-view-column>
<picker-view-column>
<view v-for="(v,i) in 60" :key="i">{{i<10?'0'+i:i}}</view>
</picker-view-column>
<picker-view-column v-if="showSeconds">
<view v-for="(v,i) in 60" :key="i">{{i<10?'0'+i:i}}</view>
</picker-view-column>
</picker-view>
<view class="picker-modal-footer">
<view class="picker-modal-footer-info">
<view class="picker-display">
<text>当前选择</text>
<text class="picker-display-text">{{PickerTimeTitle}}</text>
</view>
</view>
<view class="picker-modal-footer-btn">
<view class="picker-btn" :hover-stay-time="100" hover-class="picker-btn-active" @click="onCancelTime"></view>
<view class="picker-btn" :style="{color}" :hover-stay-time="100" hover-class="picker-btn-active" @click="onConfirmTime"></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
/**
* 工具函数库
*/
const DateTools = {
/**
* 获取公历节日
* @param date Date对象
*/
getHoliday(date) {
let holidays = {
'0101': '元旦',
'0214': '情人',
'0308': '妇女',
'0312': '植树',
'0401': '愚人',
'0501': '劳动',
'0504': '青年',
'0601': '儿童',
'0701': '建党',
'0801': '建军',
'0903': '抗日',
'0910': '教师',
'1001': '国庆',
'1031': '万圣',
'1224': '平安',
'1225': '圣诞'
};
let value = this.format(date, 'mmdd');
if (holidays[value]) return holidays[value];
return false;
},
/**
* 解析标准日期格式
* @param s 日期字符串
* @return 返回Date对象
*/
parse: s => new Date(s.replace(/(年|月|-)/g, '/').replace(/(日)/g, '')),
/**
* 比较日期是否为同一天
* @param a Date对象
* @param b Date对象
* @return Boolean
*/
isSameDay: (a, b) => a.getMonth() == b.getMonth() && a.getFullYear() == b.getFullYear() && a.getDate() == b.getDate(),
/**
* 格式化Date对象
* @param d 日期对象
* @param f 格式字符串
* @return 返回格式化后的字符串
*/
format(d, f) {
var o = {
"m+": d.getMonth() + 1,
"d+": d.getDate(),
"h+": d.getHours(),
"i+": d.getMinutes(),
"s+": d.getSeconds(),
"q+": Math.floor((d.getMonth() + 3) / 3),
};
if (/(y+)/.test(f))
f = f.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(f))
f = f.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return f;
},
/**
* 用于format格式化后的反解析
* @param s 日期字符串
* @param f 格式字符串
* @return 返回Date对象
*/
inverse(s, f) {
var o = {
"y": '',
"m": '',
"d": '',
"h": '',
"i": '',
"s": '',
};
let d = new Date();
if (s.length != f.length) return d;
for (let i in f)
if (o[f[i]] != undefined) o[f[i]] += s[i];
if (o.y) d.setFullYear(o.y.length < 4 ? (d.getFullYear() + '').substr(0, 4 - o.y.length) + o.y : o.y);
o.m && d.setMonth(o.m - 1, 1);
o.d && d.setDate(o.d - 0);
o.h && d.setHours(o.h - 0);
o.i && d.setMinutes(o.i - 0);
o.s && d.setSeconds(o.s - 0);
return d;
},
/**
* 获取日历数组42
* @param date 日期对象或日期字符串
* @param proc 处理日历(和forEach类似)传递一个数组中的item
* @return Array
*/
getCalendar(date, proc) {
let it = new Date(date),
calendars = [];
it.setDate(1);
it.setDate(it.getDate() - ((it.getDay() == 0 ? 7 : it.getDay()) - 1)); //
for (let i = 0; i < 42; i++) {
let tmp = {
dateObj: new Date(it),
title: it.getDate(),
isOtherMonth: it.getMonth() < date.getMonth() || it.getMonth() > date.getMonth()
};
calendars.push(Object.assign(tmp, proc ? proc(tmp) : {}));
it.setDate(it.getDate() + 1);
}
return calendars;
},
/**
* 获取日期到指定的月份1号(不改变原来的date对象)
* @param d Date对象
* @param v 指定的月份
* @return Date对象
*/
getDateToMonth(d, v) {
let n = new Date(d);
n.setMonth(v, 1);
return n;
},
/**
* 把时间数组转为时间字符串
* @param t Array[,,]
* @param showSecinds 是否显示秒
* @return 字符串 :[:]
*/
formatTimeArray(t, s) {
let r = [...t];
if (!s) r.length = 2;
r.forEach((v, k) => r[k] = ('0' + v).slice(-2));
return r.join(':');
}
};
export default {
props: {
//
color: {
type: String,
default: '#409eff'
},
// typedatetimetime
showSeconds: {
type: Boolean,
default: false
},
//
value: [String, Array],
//date time datetime range rangetime
type: {
type: String,
default: 'range'
},
//
show: {
type: Boolean,
default: false
},
//
format: {
type: String,
default: ''
},
//
showHoliday: {
type: Boolean,
default: true
},
//
showTips: {
type: Boolean,
default: false
},
// type
beginText: {
type: String,
default: '开始'
},
// type
endText: {
type: String,
default: '结束'
}
},
data() {
return {
isShow: false, //
isMultiSelect: false, //
isContainTime: false, //
date: {}, //
weeks: ["一", "二", "三", "四", "五", "六", "日"],
title: '初始化', //
calendars: [[],[],[]], //
calendarIndex: 1, //
checkeds: [], //
showTimePicker: false, //
timeValue: [0, 0, 0], //
timeType: 'begin', //
beginTime: [0, 0, 0], //
endTime: [0, 0, 0], //
};
},
methods: {
//
setValue(value) {
this.date = new Date();
this.checkeds = [];
this.isMultiSelect = this.type.indexOf('range') >= 0;
this.isContainTime = this.type.indexOf('time') >= 0;
//Date
let parseDateStr = (str) => (this.format ? DateTools.inverse(str, this.format) : DateTools.parse(str));
if (value) {
if (this.isMultiSelect) {
Array.isArray(value) && value.forEach((dateStr, index) => {
let date = parseDateStr(dateStr);
let time = [date.getHours(), date.getMinutes(), date.getSeconds()];
if (index == 0) this.beginTime = time;
else this.endTime = time;
this.checkeds.push(date);
});
} else {
if (this.type == 'time') {
let date = parseDateStr('2019/1/1 ' + value);
this.beginTime = [date.getHours(), date.getMinutes(), date.getSeconds()];
this.onShowTimePicker('begin');
} else {
this.checkeds.push(parseDateStr(value));
if (this.isContainTime) this.beginTime = [
this.checkeds[0].getHours(),
this.checkeds[0].getMinutes(),
this.checkeds[0].getSeconds()
];
}
}
if (this.checkeds.length) this.date = new Date(this.checkeds[0]);
} else {
if (this.isContainTime) {
this.beginTime = [this.date.getHours(), this.date.getMinutes(), this.date.getSeconds()];
if (this.isMultiSelect) this.endTime = [...this.beginTime];
}
this.checkeds.push(new Date(this.date));
}
if (this.type != 'time') this.refreshCalendars(true);
else this.onShowTimePicker('begin');
},
//
onSetYear(value) {
this.date.setFullYear(this.date.getFullYear() + parseInt(value));
this.refreshCalendars(true);
},
//
onSetMonth(value) {
this.date.setMonth(this.date.getMonth() + parseInt(value));
this.refreshCalendars(true);
},
//
onTimeChange(e) {
this.timeValue = e.detail.value;
},
//
onShowTimePicker(type) {
this.showTimePicker = true;
this.timeType = type;
this.timeValue = type == 'begin' ? [...this.beginTime] : [...this.endTime];
},
//
procCalendar(item) {
//
item.statusStyle = {
opacity: 1,
color: item.isOtherMonth ? '#ddd' : '#000',
background: 'transparent'
};
item.bgStyle = {
type: '',
background: 'transparent'
};
item.dotStyle = {
opacity: 1,
background: 'transparent'
};
item.tips = "";
//
if (DateTools.isSameDay(new Date(), item.dateObj)) {
item.statusStyle.color = this.color;
if (item.isOtherMonth) item.statusStyle.opacity = 0.3;
}
//
this.checkeds.forEach(date => {
if (DateTools.isSameDay(date, item.dateObj)) {
item.statusStyle.background = this.color;
item.statusStyle.color = '#fff';
item.statusStyle.opacity = 1;
if (this.isMultiSelect && this.showTips) item.tips = this.beginText;
}
});
//
if (item.statusStyle.background != this.color) {
let holiday = this.showHoliday ? DateTools.getHoliday(item.dateObj) : false;
if (holiday || DateTools.isSameDay(new Date(), item.dateObj)) {
item.title = holiday || item.title;
item.dotStyle.background = this.color;
if (item.isOtherMonth) item.dotStyle.opacity = 0.2;
}
} else {
item.title = item.dateObj.getDate();
}
//
if (this.checkeds.length == 2) {
if (DateTools.isSameDay(this.checkeds[0], item.dateObj)) { //
item.bgStyle.type = 'bgbegin';
}
if (DateTools.isSameDay(this.checkeds[1], item.dateObj)) { //
if (this.isMultiSelect && this.showTips) item.tips = item.bgStyle.type ? this.beginText + ' / ' + this.endText : this.endText;
if (!item.bgStyle.type) { //
item.bgStyle.type = 'bgend';
} else {
item.bgStyle.type = '';
}
}
if (!item.bgStyle.type && (+item.dateObj > +this.checkeds[0] && +item.dateObj < +this.checkeds[1])) { //
item.bgStyle.type = 'bg';
item.statusStyle.color = this.color;
}
if (item.bgStyle.type) {
item.bgStyle.background = this.color;
item.dotStyle.opacity = 1;
item.statusStyle.opacity = 1;
}
}
},
//
refreshCalendars(refresh = false) {
let date = new Date(this.date);
let before = DateTools.getDateToMonth(date, date.getMonth() - 1);
let after = DateTools.getDateToMonth(date, date.getMonth() + 1);
if (this.calendarIndex == 0) {
if(refresh) this.calendars.splice(0, 1, DateTools.getCalendar(date, this.procCalendar));
this.calendars.splice(1, 1, DateTools.getCalendar(after, this.procCalendar));
this.calendars.splice(2, 1, DateTools.getCalendar(before, this.procCalendar));
} else if (this.calendarIndex == 1) {
this.calendars.splice(0, 1, DateTools.getCalendar(before, this.procCalendar));
if(refresh) this.calendars.splice(1, 1, DateTools.getCalendar(date, this.procCalendar));
this.calendars.splice(2, 1, DateTools.getCalendar(after, this.procCalendar));
} else if (this.calendarIndex == 2) {
this.calendars.splice(0, 1, DateTools.getCalendar(after, this.procCalendar));
this.calendars.splice(1, 1, DateTools.getCalendar(before, this.procCalendar));
if(refresh) this.calendars.splice(2, 1, DateTools.getCalendar(date, this.procCalendar));
}
this.title = DateTools.format(this.date, 'yyyy年mm月');
},
//
onSwiperChange(e) {
this.calendarIndex = e.detail.current;
let calendar = this.calendars[this.calendarIndex];
this.date = new Date(calendar[22].dateObj); //
this.refreshCalendars();
},
//
onSelectDate(date) {
if (~this.type.indexOf('range') && this.checkeds.length == 2) this.checkeds = [];
else if (!(~this.type.indexOf('range')) && this.checkeds.length) this.checkeds = [];
this.checkeds.push(new Date(date.dateObj));
this.checkeds.sort((a, b) => a - b); //
this.calendars.forEach(calendar => {
calendar.forEach(this.procCalendar); //
});
},
//
onCancelTime() {
this.showTimePicker = false;
this.type == 'time' && this.onCancel();
},
//
onConfirmTime() {
if (this.timeType == 'begin') this.beginTime = this.timeValue;
else this.endTime = this.timeValue;
this.showTimePicker = false;
this.type == 'time' && this.onConfirm();
},
//
onCancel() {
this.$emit('cancel', false);
},
//
onConfirm() {
let result = {
value: null,
date: null
};
//
let defaultFormat = {
'date': 'yyyy/mm/dd',
'time': 'hh:ii' + (this.showSeconds ? ':ss' : ''),
'datetime': ''
};
defaultFormat['datetime'] = defaultFormat.date + ' ' + defaultFormat.time;
let fillTime = (date, timeArr) => {
date.setHours(timeArr[0], timeArr[1]);
if (this.showSeconds) date.setSeconds(timeArr[2]);
};
if (this.type == 'time') {
let date = new Date();
fillTime(date, this.beginTime);
result.value = DateTools.format(date, this.format ? this.format : defaultFormat.time);
result.date = date;
} else {
if (this.isMultiSelect) {
let values = [],
dates = [];
if (this.checkeds.length < 2) return uni.showToast({
icon: 'none',
title: '请选择两个日期'
});
this.checkeds.forEach((date, index) => {
let newDate = new Date(date);
if (this.isContainTime) {
let time = [this.beginTime, this.endTime];
fillTime(newDate, time[index]);
}
values.push(DateTools.format(newDate, this.format ? this.format : defaultFormat[this.isContainTime ?
'datetime' : 'date']));
dates.push(newDate);
});
result.value = values;
result.date = dates;
} else {
let newDate = new Date(this.checkeds[0]);
if (this.isContainTime) {
newDate.setHours(this.beginTime[0], this.beginTime[1]);
if (this.showSeconds) newDate.setSeconds(this.beginTime[2]);
}
result.value = DateTools.format(newDate, this.format ? this.format : defaultFormat[this.isContainTime ?
'datetime' : 'date']);
result.date = newDate;
}
}
this.$emit('confirm', result);
}
},
computed: {
BeginTitle() {
let value = '未选择';
if (this.checkeds.length) value = DateTools.format(this.checkeds[0], 'yy/mm/dd');
return value;
},
EndTitle() {
let value = '未选择';
if (this.checkeds.length == 2) value = DateTools.format(this.checkeds[1], 'yy/mm/dd');
return value;
},
PickerTimeTitle() {
return DateTools.formatTimeArray(this.timeValue, this.showSeconds);
},
BeginTimeTitle() {
return this.BeginTitle != '未选择' ? DateTools.formatTimeArray(this.beginTime, this.showSeconds) : '';
},
EndTimeTitle() {
return this.EndTitle != '未选择' ? DateTools.formatTimeArray(this.endTime, this.showSeconds) : '';
}
},
watch: {
show(newValue, oldValue) {
newValue && this.setValue(this.value);
this.isShow = newValue;
},
value(newValue, oldValue) {
setTimeout(()=>{
this.setValue(newValue);
}, 0);
}
}
}
</script>
<style lang="scss" scoped>
$z-index: 100;
$cell-spacing: 20upx;
$calendar-size: 630upx;
$calendar-item-size: 90upx;
.picker {
position: fixed;
z-index: $z-index;
background: rgba(255, 255, 255, 0);
left: 0;
top: 0;
width: 100%;
height: 100%;
font-size: 28upx;
&-btn {
padding: $cell-spacing*0.5 $cell-spacing;
border-radius: 12upx;
color: #666;
&-active {
background: rgba(0, 0, 0, .1);
}
}
&-display {
color: #666;
&-text {
color: #000;
margin: 0 $cell-spacing*0.5;
}
&-link {
display: inline-block;
&-active {
background: rgba(0, 0, 0, .1);
}
}
}
&-time {
width: $calendar-size - 80upx !important;
left: ((750upx - $calendar-size) / 2 + 40upx) !important;
}
&-modal {
background: #fff;
position: absolute;
top: 50%;
left: (750upx - $calendar-size) / 2;
width: $calendar-size;
transform: translateY(-50%);
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
border-radius: 12upx;
&-header {
text-align: center;
line-height: 80upx;
font-size: 32upx;
&-title {
display: inline-block;
width: 40%;
}
.picker-icon {
display: inline-block;
line-height: 50upx;
width: 50upx;
height: 50upx;
border-radius: 50upx;
text-align: center;
margin: 10upx;
background: #fff;
font-size: 36upx;
&-active {
background: rgba(0, 0, 0, .1);
}
}
}
&-body {
width: $calendar-size !important;
height: $calendar-size !important;
position: relative;
}
&-time {
width: 100%;
height: 180upx;
text-align: center;
line-height: 60upx;
}
&-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: $cell-spacing;
&-info {
flex-grow: 1;
}
&-btn {
flex-shrink: 0;
display: flex;
}
}
}
&-calendar {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
&-view {
position: relative;
width: $calendar-item-size;
height: $calendar-item-size;
text-align: center;
&-bgbegin,
&-bg,
&-bgend,
&-item,
&-dot,
&-tips {
position: absolute;
transition: .2s;
}
&-bgbegin,
&-bg,
&-bgend {
opacity: .15;
height: 80%;
}
&-bg {
left: 0;
top: 10%;
width: 100%;
}
&-bgbegin {
border-radius: $calendar-item-size 0 0 $calendar-item-size;
top: 10%;
left: 10%;
width: 90%;
}
&-bgend {
border-radius: 0 $calendar-item-size $calendar-item-size 0;
top: 10%;
left: 0%;
width: 90%;
}
&-item {
left: 5%;
top: 5%;
width: 90%;
height: 90%;
border-radius: $calendar-item-size;
display: flex;
align-items: center;
justify-content: center;
}
&-dot {
right: 10%;
top: 10%;
width: 12upx;
height: 12upx;
border-radius: 12upx;
}
&-tips {
bottom: 100%;
left: 50%;
transform: translateX(-50%);
background: #4E4B46;
color: #fff;
border-radius: 12upx;
padding: 10upx 20upx;
font-size: 24upx;
width: max-content;
margin-bottom: 5px;
pointer-events: none;
&:after {
content: "";
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-style: solid;
border-width: 5px 5px 0 5px;
border-color: #4E4B46 transparent transparent transparent;
}
}
}
}
}
@font-face {
font-family: "mxdatepickericon";
src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMYAAsAAAAACBgAAALMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDIgqDRIJiATYCJAMUCwwABCAFhG0HSRvfBsg+QCa3noNAyAQ9w6GDvbwpNp2vloCyn8bD/x+y+/5qDhtj+T4eRVEcbsCoKMFASzCgLdDkmqYDwgxkWQ6YH5L/YnppOlLEjlnter43YRjU7M6vJ3iGADVAgJn5kqjv/wEii23T86UsAQT+04fV+o97VTMx4PPZt4DlorLXwIQiGMA5uhaVrBWqGHfQXcTEiE+PE+g2SUlxWlLVBHwUYFMgrgwSB3wstTKSGzqF1nOyiGeeOtNjV4An/vvxR58PSc3AzrMViyDvPo/7dVEUzn5GROfIWAcU4rLXfMFdhte56y4We9gGNEVIezkBOOaQXUrbTf/hJVkhGpDdCw7dSOEzByMEn3kIic98hMxnAfeFPKWCbjRcA148/HxhCEkaA94eGWFaGolsblpaWz8/Po2WVuNHh1fmBpZHIpqal9fOjizhTteY+RZ9rv02I/pq0W6QVH3pSncBz3m55r9ZIPycHfmenvxe4uyutIgfT5u4bgkDusl9gcF0rnfnz+b2NpSaQWBFeu8GIL1xQj5AH/6FAsEr/50F28e/gA9ny6KjLrxIp0TE+UucmQOl5AFNLXkzZufWamWHYEI39PEP2If97CMdm51N6DSmIekwAVmneXTBr0PVYx+aTgfQbU3p+R4jKHdRurBq0oEw6AKSfm+QDbpGF/w3VOP+oBnMHbqdx409FjP4RRHHkAj5IWgQiBUjHfMTuQ1Icpg5avI4sQVRu8EHdWptM1aKrIjuscfeL+kZwxBTYoElztOQ2UygjRIjEphaZsyWodHgvm9SC8QC/JygEA6DiCDeEMhAQFhhOpvxa/18A0TiYMahIy0L2hYIZWeYH9JR085Al4qts1re5St2/SR6DINBGEVYQCWOETHDMAHZ+pcZIQJGTV4RtMmg8UbhuWL1+VLLA2RFHYC71kiRo0SNpjwQh8pj2EFU3oTNmS1WqgIA') format('woff2');
}
.picker-icon {
font-family: "mxdatepickericon" !important;
}
.picker-icon-you:before {
content: "\e63e";
}
.picker-icon-zuo:before {
content: "\e640";
}
.picker-icon-zuozuo:before {
content: "\e641";
}
.picker-icon-youyou:before {
content: "\e642";
}
</style>

@ -23,34 +23,30 @@
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
"sdkConfigs" : {
"ad" : {},
"oauth" : {},
"geolocation" : {},
"push" : {},
"speech" : {
"ifly" : {}
}
}
}
},
/* */

@ -32,6 +32,11 @@ module.exports = {
appraise(data){
return request('/demay/ssm/memberCs/appraise','post',data);
},
// 会员查询消费记录 (会员小程序-会员查询消费记录)
selectByMember(data){
return request('/demay/ssm/memberCs/selectByMember','post',data);
},
/** --------------------------------员工 -------------------------------------------------------*/
@ -59,6 +64,12 @@ module.exports = {
achiCommList(data){
return request('/demay/ssm/staff/achiCommList','post',data);
},
// 查询门店员工会员评价记录list 会员微信小程序-查询门店员工会员评价记录list
selectMemberCsByStaff(data){
return request('/demay/ssm/memberCs/selectMemberCsByStaff','post',data);
},

@ -4,7 +4,7 @@
"path": "pages/tabBar/mySet/mySet",
"style": {
"navigationBarTitleText": "我的",
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"app-plus": {
"bounce": "vertical",
"titleNView": {
@ -16,7 +16,7 @@
}, {
"path": "pages/tabBar/mySet/common/message/message",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "我的信息",
"enablePullDownRefresh": false,
"app-plus": {
@ -30,7 +30,7 @@
}, {
"path": "pages/tabBar/mySet/common/my-card/my-card",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "我的卡包",
"enablePullDownRefresh": false,
"app-plus": {
@ -44,8 +44,8 @@
}, {
"path": "pages/tabBar/mySet/common/expense/expense",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarTitleText": "消费记录",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "评价记录",
"enablePullDownRefresh": false,
"app-plus": {
"bounce": "vertical",
@ -58,7 +58,7 @@
}, {
"path": "pages/tabBar/mySet/common/change-password/change-password",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "修改密码",
"enablePullDownRefresh": false,
"app-plus": {
@ -72,7 +72,7 @@
}, {
"path": "pages/login/login",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "登录",
"app-plus": {
"titleNView": {
@ -84,7 +84,7 @@
}, {
"path": "pages/tabBar/mySet/common/expense/appraise/appraise",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "服务评价",
"enablePullDownRefresh": false,
"app-plus": {
@ -98,7 +98,7 @@
}, {
"path": "pages/tabBar/myHome/myHome",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "首页",
"enablePullDownRefresh": false,
"app-plus": {
@ -112,7 +112,7 @@
}, {
"path": "pages/tabBar/myHome/service-log/service-log",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "疗程服务日志",
"app-plus": {
"titleNView": {
@ -123,7 +123,7 @@
}, {
"path": "pages/tabBar/myHome/sales-commission/sales-commission",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "业绩提成",
"enablePullDownRefresh": false,
"app-plus": {
@ -137,7 +137,7 @@
}, {
"path": "pages/tabBar/myHome/client-evaluation/client-evaluation",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "客户评价",
"enablePullDownRefresh": false,
"app-plus": {
@ -171,7 +171,7 @@
}, {
"path": "pages/tabBar/myHome/sales-commission/sales-month/sales-month",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "本月业绩提成",
"enablePullDownRefresh": false,
"app-plus": {
@ -185,7 +185,7 @@
}, {
"path": "pages/tabBar/myHome/sales-commission/last-month/last-month",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "上月业绩提成",
"enablePullDownRefresh": false,
"app-plus": {
@ -198,7 +198,7 @@
}, {
"path": "pages/tabBar/myHome/sales-commission/classify/classify",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "分类",
"enablePullDownRefresh": false,
"app-plus": {
@ -212,7 +212,7 @@
}, {
"path": "pages/tabBar/myHome/sales-commission/detail/detail",
"style": {
"navigationBarBackgroundColor": "#ff0000",
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "明细",
"enablePullDownRefresh": false,
"app-plus": {
@ -222,8 +222,67 @@
}
}
}
}, {
"path": "pages/tabBar/mySet/common/expense-record/expense-record",
"style": {
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "消费记录",
"enablePullDownRefresh": false,
"app-plus": {
"bounce": "vertical",
"titleNView": {
"titleColor": "#eeeeee"
}
}
}
}
, {
"path": "pages/tabBar/myHome/todays-star/todays-star",
"style": {
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "今日之星",
"enablePullDownRefresh": false,
"app-plus": {
"bounce": "vertical",
"titleNView": {
"titleColor": "#eeeeee"
}
}
}
}
],
,{
"path" : "pages/tabBar/myHome/reservation/reservation",
"style": {
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "我的预约",
"enablePullDownRefresh": false,
"app-plus": {
"bounce": "vertical",
"titleNView": {
"titleColor": "#eeeeee"
}
}
}
}
,{
"path" : "pages/tabBar/myHome/service-feedback/service-feedback",
"style": {
"navigationBarBackgroundColor": "#e83131",
"navigationBarTitleText": "服务反馈",
"enablePullDownRefresh": false,
"app-plus": {
"bounce": "vertical",
"titleNView": {
"titleColor": "#eeeeee"
}
}
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",

@ -1,35 +1,28 @@
<template>
<view class="client-appraise">
<scroll-view scroll-x class=" nav">
<view class="flex text-center">
<view class="cu-item light flex-sub" :class="[TabCur==0?'bg-red text-white':'']" @tap="tabSelect" :data-id="0">
今日
</view>
<view class="cu-item light flex-sub" :class="[TabCur==1?'bg-red text-white':'']" @tap="tabSelect" :data-id="1">
昨日
</view>
<view class="cu-item light flex-sub" :class="[TabCur==2?'bg-red text-white':'']" @tap="tabSelect" :data-id="2">
本月
</view>
<view class="cu-item light flex-sub" :class="[TabCur==3?'bg-red text-white':'']" @tap="tabSelect" :data-id="3">
上月
</view>
<view class="cu-item light flex-sub" :class="[TabCur==4?'bg-red text-white':'']" @tap="tabSelect" :data-id="4">
本季
</view>
<view class="cu-item light flex-sub" :class="[TabCur==5?'bg-red text-white':'']" @tap="tabSelect" :data-id="5">
半年
</view>
<view class="operation">
<view class="">
<button v-if="index!=5" @click="upday()" class="cu-btn round line-red"></button>
</view>
</scroll-view>
<view v-if="TabCur==0" class="client radius shadow shadow-lg bg-white " v-for="(item,index) in todayList" :key="index">
<view class="">
<picker mode="date" :value="date" :start="timeArr[5]" :end="currentDate" @change="bindDateChange">
<text class="text-red">{{date}}</text>
</picker>
</view>
<view class="">
<button v-if="index!=-1" @click="dowmday" class="cu-btn round line-red"></button>
</view>
</view>
<view v-if="todayList.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="client radius shadow shadow-lg bg-white " v-for="(item,index) in todayList" :key="index">
<!-- 今日 -->
<view class="cu-bar bg-white margin-top">
<view class='action '>
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>{{item.projectName}}</text>
<text class='text-black'>{{item.tradeName}}</text>
</view>
</view>
<view class="cu-card case no-card ">
@ -52,170 +45,121 @@
<view v-for="n in 5" :class="{'on':item.csOtherStar>=n}"></view>
</view>
</view>
<view class="appraise">
<view class="appraise" style="margin-bottom: 10upx;">
<text>评价内容:</text>
<text style="width: 60%; padding: 0 20upx;">{{item.nr}}</text>
<text style="width: 60%; padding: 0 20upx; ">{{item.nr}}</text>
</view>
</view>
</view>
</view>
<view v-if="TabCur==1" >
<!-- 昨日 -->
<view class="client radius shadow shadow-lg bg-white " v-for="(item,index) in yesterdayList" :key="index">
<view class="cu-bar bg-white margin-top">
<view class='action '>
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>{{item.projectName}}</text>
</view>
</view>
<view class="cu-card case no-card ">
<view class="cu-item shadow">
<view class="appraise">
<text>态度评价:</text>
<view class="stars-wrapper">
<view v-for="n in 5" :class="{'on':item.csAttitudeStar>=n}"></view>
</view>
</view>
<view class="appraise">
<text>技术评价:</text>
<view class="stars-wrapper">
<view v-for="n in 5" :class="{'on':item.csTechnicalStar>=n}"></view>
</view>
</view>
<view class="appraise">
<text>其他评价:</text>
<view class="stars-wrapper">
<view v-for="n in 5" :class="{'on':item.csOtherStar>=n}"></view>
</view>
</view>
<view class="appraise">
<text>评价内容:</text>
<text style="width: 60%; padding: 0 20upx;">{{item.nr}}</text>
</view>
</view>
</view>
</view>
<view v-if="yesterdayList.length == 0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
</view>
<view v-if="TabCur==2" class="the-month">
<!-- 本月 -->
<view class="month-title">
<view class="projectname">项目</view>
<view class="servicenums">次数</view>
<view class="averagescore">平均分</view>
</view>
<view class="month-content" v-for="(item,index) in monthList" :key='index'>
<view class="projectname-list">{{item.projectName}}</view>
<view class="servicenums-list">{{item.content}}</view>
<view class="averagescore-list">
<view class="averagescore-fraction">{{item.score}}</view>
</view>
</view>
</view>
<view v-if="TabCur==3" class="the-month">
<!-- 上月 -->
<view class="month-title">
<view class="projectname">项目</view>
<view class="servicenums">次数</view>
<view class="averagescore">平均分</view>
</view>
<view class="month-content" v-for="(item,index) in lostMonthList" :key='index'>
<view class="projectname-list">{{item.projectName}}</view>
<view class="servicenums-list">{{item.content}}</view>
<view class="averagescore-list">
<view class="averagescore-fraction">{{item.score}}</view>
</view>
</view>
<view v-if="yesterdayList.length == 0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
</view>
<view v-if="TabCur==4" class="the-month">
<!-- 本季 -->
<view class="month-title">
<view class="projectname">项目</view>
<view class="servicenums">次数</view>
<view class="averagescore">平均分</view>
</view>
<view class="month-content" v-for="(item,index) in seasonList" :key='index'>
<view class="projectname-list">{{item.projectName}}</view>
<view class="servicenums-list">{{item.content}}</view>
<view class="averagescore-list">
<view class="averagescore-fraction">{{item.score}}</view>
</view>
</view>
<view v-if="yesterdayList.length == 0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
</view>
<view v-if="TabCur==5" class="the-month">
<!-- 半年 -->
<view class="month-title">
<view class="projectname">项目</view>
<view class="servicenums">次数</view>
<view class="averagescore">平均分</view>
</view>
<view class="month-content" v-for="(item,index) in halfYearList" :key='index'>
<view class="projectname-list">{{item.projectName}}</view>
<view class="servicenums-list">{{item.content}}</view>
<view class="averagescore-list">
<view class="averagescore-fraction">{{item.score}}</view>
</view>
</view>
<view v-if="yesterdayList.length == 0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
const currentDate = this.getDate({
format: true
})
return {
TabCur: 0,
userInfo: null,
todayList: [{
projectName: '精品玻尿酸疗程',
tradeName: '精品玻尿酸疗程',
csOtherStar: 5, //
csTechnicalStar: 5, //
csAttitudeStar: 2, //
nr: '这是评价内容这是评价内容这是评价是评价内容'
}, {
projectName: '精品玻尿酸疗程',
tradeName: '精品玻尿酸疗程',
csOtherStar: 5, //
csTechnicalStar: 5, //
csAttitudeStar: 2, //
nr: '这是评价内容这是评价内容这是评价是评价内容'
}],
yesterdayList: [],
monthList: [{
projectName: "精品小瘦脸",
content: 10,
score: 5
}],
lostMonthList: [],
seasonList: [],
halfYearList: []
currentDate: currentDate,
date: currentDate,
timeArr: [],
index: -1,
}
},
onLoad() {
this.timeArr = this.GetTime()
},
methods: {
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
}
bindDateChange(e){
this.date = e.detail.value
this.timeArr.forEach((item,index)=>{
if(this.date==item){
this.index = index
}
})
this.selectMemberCsByStaff()
},
GetTime() {
var date = new Date();
var base = Date.parse(date); //
var year = date.getFullYear(); //
var mon = date.getMonth() + 1; //
var day = date.getDate(); //
var oneDay = 24 * 3600 * 1000
var daytime = `${year}${mon >= 10 ? mon : '0' + mon}${day >= 10 ? day : '0' + day}`; //
this.$data.daytime = daytime; //
var daytimeArr = []
for (var i = 1; i < 7; i++) { //
var now = new Date(base -= oneDay);
var myear = now.getFullYear();
var month = now.getMonth() + 1;
var mday = now.getDate()
daytimeArr.push([myear, month >= 10 ? month : '0' + month, mday >= 10 ? mday : '0' + mday].join('-'))
}
return daytimeArr
},
upday() {
this.index += 1
this.date = this.timeArr[this.index]
this.selectMemberCsByStaff()
},
dowmday() {
this.index -= 1
this.date = this.timeArr[this.index]
if (this.index == -1) {
this.date = this.currentDate
}
this.selectMemberCsByStaff()
},
selectMemberCsByStaff() {
this.userInfo = uni.getStorageSync('userInfo')
var form = {
docDate: new Date(this.date),
staffIds: this.userInfo.id,
storeId: this.userInfo.storeId,
state: 1
}
this.$api.selectMemberCsByStaff(form).then(res => {
if (res.code == '000000') {
this.todayList = res.rows
}
})
},
getDate(type) {
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate()
month = month > 9 ? month : '0' + month;;
day = day > 9 ? day : '0' + day;;
return `${year}-${month}-${day}`
},
},
created() {
this.newdate = new Date()
this.selectMemberCsByStaff()
}
}
</script>
@ -226,6 +170,26 @@
border-radius: 20upx;
}
.operation {
width: 100%;
height: 80upx;
background-color: #FFFFFF;
}
.operation view {
padding: 10upx 0;
display: inline-block;
text-align: center;
}
.operation view:nth-child(2n-1) {
width: 30%;
}
.operation view:nth-child(2n) {
width: 40%;
}
.client-appraise .appraise {
padding: 5upx 5%;
font-size: 24upx;

@ -1,6 +1,6 @@
<template>
<view class="home">
<view class='main' v-if="userInfo.user==1">
<view class='main' v-if="userInfo.user==1">
<scroll-view scroll-x class=" nav">
<view class="flex text-center">
<view class="cu-item light flex-sub" :class="[TabCur==0?'bg-red text-white':'']" @tap="tabSelect" :data-id="0">
@ -54,7 +54,7 @@
<view class="cuIcon-rankfill text-red"></view>
<text>门店排行榜</text>
</navigator>
<navigator url='./all-powerful/all-powerful' class="cu-item">
<navigator url='./todays-star/todays-star' class="cu-item">
<view class="cuIcon-favorfill text-red"></view>
<text>今日之星</text>
</navigator>
@ -62,6 +62,22 @@
</view>
<!-- 未开发菜单 -->
<view>
</view>
</view>
<view class='main' v-if="userInfo.user==0" style="margin-top: 40upx;">
<view class="cu-list grid ">
<!-- 我的预约 -->
<navigator url='./reservation/reservation' class="cu-item">
<view class="cuIcon-formfill text-red"></view>
<text>我的预约</text>
</navigator>
<!-- 服务反馈 -->
<navigator url='./service-feedback/service-feedback' class="cu-item">
<view class="cuIcon-rankfill text-red"></view>
<text>服务反馈</text>
</navigator>
</view>
</view>
</view>
@ -72,7 +88,7 @@
data() {
return {
TabCur: 0,
userInfo:null,
userInfo: null,
};
},
methods: {
@ -91,6 +107,7 @@
navigator {
width: 33.3%;
}
.home .nav .cu-item {
padding: 0;
margin: 0;

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -9,27 +9,27 @@
<view class="cu-item " :class="TabCur==5?'text-red cur':''" @tap="tabSelect" :data-id="5">疗程退</view>
<view class="cu-item " :class="TabCur==6?'text-red cur':''" @tap="tabSelect" :data-id="6">消费退</view>
</scroll-view>
<view v-if="form==null">
<view v-if="detailList.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view v-else class="module">
<!-- <view class="module-top">
<view v-else class="module" v-for="(item,index) in detailList" :key='index'>
<view class="module-top">
<view class='module-top-title'>
<text class="cuIcon-titles text-red"></text> {{form.tradeName}}
<text class="cuIcon-titles text-red"></text> {{item.tradeName}}
</view>
</view -->
</view>
<view class="module-top">
<view class='module-top-title'>
<text class="cuIcon-titles text-red"></text> 业绩
</view>
<view class='module-top-title'>
<text class="cuIcon-title text-red"></text> 卡付
<text class="text-red">{{form.cardAchi}}</text>
<text class="text-red">{{item.cardAchi}}</text>
</view>
<view class='module-top-title'>
<text class="cuIcon-title text-red"></text> 现付
<text class="text-red">{{form.cashAchi}}</text>
<text class="text-red">{{item.cashAchi}}</text>
</view>
</view>
<view class="module-top">
@ -38,11 +38,11 @@
</view>
<view class='module-top-title'>
<text class="cuIcon-title text-red"></text> 卡付
<text class="text-red">{{form.cardPayMoney}}</text>
<text class="text-red">{{item.cardComm}}</text>
</view>
<view class='module-top-title'>
<text class="cuIcon-title text-red"></text> 现付
<text class="text-red">{{form.cashPayMoney}}</text>
<text class="text-red">{{item.cashComm}}</text>
</view>
</view>
@ -54,16 +54,55 @@
export default {
data() {
return {
TabCur: 0,
TabCur: "0",
scrollLeft: 0,
form: {cardAchi:450},
detailList:[],
form: {},
}
},
methods: {
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id;
this.form.classify = e.currentTarget.dataset.id
this.achiCommList()
},
achiCommList() {
this.$api.achiCommList(this.form).then(res => {
console.log(res);
if (res.code == '000000') {
this.detailList = res.rows
}
})
},
},
onLoad: function(option) { //optionobject
this.userInfo = uni.getStorageSync('userInfo')
this.form = {
storeId: this.userInfo.storeId,
staffId: this.userInfo.id,
classify:this.TabCur
}
}
console.log(option.type); //
if (option.type == 'lastDay') {
//
this.form.date = new Date(new Date().setTime(new Date().getTime()-24*60*60*1000))
this.form.type = 1
} else if (option.type == 'today') {
//
this.form.date = new Date()
this.form.type = 2
} else {
//
this.form.date = option.type
if((new Date(this.form.date).getMonth())==(new Date().getMonth())){
this.form.type=3
}else{
this.form.type=0
}
}
this.achiCommList()
},
}
</script>

@ -83,6 +83,7 @@
this.form.date = new Date()
} else {
//
this.form.date = option.type
}
this.achiCommDetailList()
},

@ -2,13 +2,15 @@
<!-- 上月的日业绩提成 -->
<view>
<!-- -->
<view class='common-no-result'>
<view class='text-gray'>暂时还没有数据</view>
</view>
<view>
<view class="module-button">
<navigator url="../classify/classify" class="sort-button button bg-red">分类</navigator>
<navigator url="../detail/detail" class="detail-button button bg-red">单据明细</navigator>
<navigator :url="'../classify/classify?type='+form.date" class="sort-button button bg-red">分类</navigator>
<navigator :url="'../detail/detail?type='+form.date" class="detail-button button bg-red">单据明细</navigator>
</view>
<view v-if="form=={}">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="cu-bar bg-white margin-top">
<view class='action' style="display: flex;justify-content: flex-start;width: 100%;">
@ -19,11 +21,11 @@
<view style="display: flex;justify-content: space-around;width: 60%;">
<view>
<text class="cuIcon-title text-red"></text> 卡付
<text class='text-red'></text>
<text class='text-red'>{{form.cardAchi}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 现付
<text class='text-red'></text>
<text class='text-red'>{{form.cashAchi}}</text>
</view>
</view>
@ -39,11 +41,11 @@
<view style="display: flex;justify-content: space-around;width: 60%;">
<view>
<text class="cuIcon-title text-red"></text> 卡付
<text class='text-red'></text>
<text class='text-red'>{{form.cardComm}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 现付
<text class='text-red'></text>
<text class='text-red'>{{form.cashComm}}</text>
</view>
</view>
@ -57,11 +59,16 @@
export default {
data() {
return {
form:{},
}
},
methods: {
},
onLoad(option){
const item = JSON.parse(decodeURIComponent(option.item));
this.form = item
console.log(item);
}
}
</script>

@ -26,7 +26,7 @@
</view>
<view v-for="(item,index) in lastodaylist " :key='index'>
<view class="module-button">
<navigator url="classify/classify" class="sort-button button bg-red">分类</navigator>
<navigator url="classify/classify?type=lastDay" class="sort-button button bg-red">分类</navigator>
<navigator url="detail/detail?type=lastDay" class="detail-button button bg-red">单据明细</navigator>
</view>
<view class="cu-bar bg-white margin-top">
@ -79,7 +79,7 @@
</view>
<view v-for="(item,index) in todaylist " :key='index'>
<view class="module-button">
<navigator url="classify/classify" class="sort-button button bg-red">分类</navigator>
<navigator url="classify/classify?type=today" class="sort-button button bg-red">分类</navigator>
<navigator url="detail/detail?type=today" class="detail-button button bg-red">单据明细</navigator>
</view>
<view class="cu-bar bg-white margin-top">
@ -126,75 +126,89 @@
<view v-if='TabCur == 3 '>
<!-- 本月 -->
<view v-if="false">
<view v-if="monthList.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view>
<navigator url="./sales-month/sales-month">
<view v-for="(item,index) in monthList " :key='index'>
<navigator :url="'./sales-month/sales-month?item='+ encodeURIComponent(JSON.stringify(item))">
<view class="cu-bar bg-white margin-top">
<view class='action' style="display: flex;justify-content: flex-start;width: 100%;">
<view class="text-header">
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>01-26</text>
<text class='text-black'>{{item.date}}</text>
</view>
<view class="text-main">
<view>
<text class="cuIcon-title text-red"></text> 业绩
<text class='text-red'></text>
<text class='text-red'>{{(item.achievementAmount)}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 提成
<text class='text-red'></text>
<text class='text-red'>{{item.commissionAmount}}</text>
</view>
</view>
</view>
</view>
</navigator>
<view class="cu-bar bg-white margin-top">
<view class='action '>
</view>
<view v-if="monthList.length!=0" class="cu-bar bg-white margin-top">
<view class='action ' style="width: 100%;">
<view style="width:50%">
<text class='cuIcon-titles text-orange'></text>
<text class='text-red'>总业绩: {{monthlistAchi}}</text>
</view>
<view style="width:50%">
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>总业绩</text>
<text class='text-red'>总提成: {{monthlistComm}}</text>
</view>
</view>
</view>
</view>
<view v-if='TabCur == 0 '>
<!-- 上月 -->
<view v-if="false">
<view v-if="lastMonth.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view>
<view v-for="(item,index) in lastMonth " :key='index'>
<navigator url="./last-month/last-month">
<view class="cu-bar bg-white margin-top">
<view class='action' style="display: flex;justify-content: flex-start;width: 100%;">
<view class="text-header">
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>01-27</text>
<text class='text-black'>{{item.date}}</text>
</view>
<view class="text-main">
<view>
<text class="cuIcon-title text-red"></text> 业绩
<text class='text-red'></text>
<text class='text-red'>{{item.achievementAmount}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 提成
<text class='text-red'></text>
<text class='text-red'>{{item.commissionAmount}}</text>
</view>
</view>
</view>
</view>
</navigator>
<view class="cu-bar bg-white margin-top">
<view class='action '>
</view>
<view v-if="lastMonth.length!=0" class="cu-bar bg-white margin-top">
<view class='action' style="width: 100%;">
<view style="width:50%">
<text class='cuIcon-titles text-orange'></text>
<text class='text-red'>总业绩: {{lastMonthAchi}}</text>
</view>
<view style="width:50%">
<text class='cuIcon-titles text-orange'></text>
<text class='text-black'>总业绩</text>
<text class='text-red'>总提成: {{lastMonthComm}}</text>
</view>
</view>
</view>
@ -213,9 +227,15 @@
userInfo: null,
todaylist: [],
lastodaylist: [],
dayDate:new getDate(),
lastDayDate:null,
monthList: [],
monthlistAchi: 0,
monthlistComm: 0,
lastMonth: [],
lastMonthAchi: 0,
lastMonthComm: 0,
dayDate: new getDate(),
lastDayDate: null,
};
},
methods: {
@ -224,7 +244,6 @@
this.achiCommList()
},
achiCommList() {
console.log(this.userInfo);
var form = {
storeId: this.userInfo.storeId,
staffId: this.userInfo.id,
@ -234,6 +253,11 @@
if (res.code == '000000') {
if (this.TabCur == 0) {
//
res.rows.forEach(item => {
this.lastMonthAchi += item.achievementAmount
this.lastMonthComm += item.commissionAmount
})
this.lastMonth = res.rows
} else if (this.TabCur == 1) {
//
this.lastodaylist = res.rows
@ -241,26 +265,35 @@
//
this.todaylist = res.rows
} else {
//
//+
res.rows.forEach(item => {
this.monthlistAchi += item.achievementAmount
this.monthlistComm += item.commissionAmount
})
this.monthList = res.rows
}
} else {
this.monthList = []
this.todaylist = []
this.lastodaylist = []
this.lastMonth = []
}
})
},
getDate(){
getDate() {
},
},
created() {
this.userInfo = uni.getStorageSync('userInfo')
this.achiCommList()
console.log(new Date());
var day1 = new Date();
console.log(day1.toISOString());
console.log(new Date().setTime(new Date().getTime()-24*60*60*1000));
this.lastDayDate = new Date(new Date().setTime(new Date().getTime()-24*60*60*1000)).toISOString();
var day1 = new Date();
console.log(day1.toISOString());
console.log(new Date().setTime(new Date().getTime() - 24 * 60 * 60 * 1000));
this.lastDayDate = new Date(new Date().setTime(new Date().getTime() - 24 * 60 * 60 * 1000)).toISOString();
console.log(Date("2021-01-29"));
}
}
</script>
@ -273,7 +306,7 @@
.text-main {
/* display: flex;
justify-content: space-around; */
width: 70%;
width: 60%;
display: inline-block;
font-size: 28upx;
}
@ -283,7 +316,7 @@
}
.text-header {
width: 30%;
width: 40%;
}
.module-button {

@ -2,15 +2,17 @@
<!-- 上月的日业绩提成 -->
<view>
<!-- -->
<view class='common-no-result'>
<view class='text-gray'>暂时还没有数据</view>
</view>
<view>
<view class="module-button">
<navigator url="../classify/classify" class="sort-button button bg-red">分类</navigator>
<navigator url="../detail/detail" class="detail-button button bg-red">单据明细</navigator>
<navigator :url="'../classify/classify?type=' +form.date" class="sort-button button bg-red">分类</navigator>
<navigator :url="'../detail/detail?type=' +form.date" class="detail-button button bg-red">单据明细</navigator>
</view>
<view v-if="form=={}">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="cu-bar bg-white margin-top">
<view class="cu-bar bg-white margin-top">
<view class='action' style="display: flex;justify-content: flex-start;width: 100%;">
<view style='width: 30%;'>
<text class='cuIcon-titles text-orange'></text>
@ -19,17 +21,17 @@
<view style="display: flex;justify-content: space-around;width: 60%;">
<view>
<text class="cuIcon-title text-red"></text> 卡付
<text class='text-red'></text>
<text class='text-red'>{{form.cardAchi}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 现付
<text class='text-red'></text>
<text class='text-red'>{{form.cashAchi}}</text>
</view>
</view>
</view>
</view>
<view class="cu-bar bg-white margin-top">
<view class='action' style="display: flex;justify-content: flex-start;width: 100%;">
<view style='width: 30%;'>
@ -39,14 +41,14 @@
<view style="display: flex;justify-content: space-around;width: 60%;">
<view>
<text class="cuIcon-title text-red"></text> 卡付
<text class='text-red'></text>
<text class='text-red'>{{form.cardComm}}</text>
</view>
<view>
<text class="cuIcon-title text-red"></text> 现付
<text class='text-red'></text>
<text class='text-red'>{{form.cashComm}}</text>
</view>
</view>
</view>
</view>
</view>
@ -57,28 +59,34 @@
export default {
data() {
return {
form: {},
}
},
methods: {
},
onLoad(option) {
const item = JSON.parse(decodeURIComponent(option.item));
this.form = item
console.log(item);
}
}
</script>
<style>
.module-button{
margin: 20rpx 0;
display: flex;
justify-content: space-between;
padding: 0 10%;
.module-button {
margin: 20rpx 0;
display: flex;
justify-content: space-between;
padding: 0 10%;
}
.module-button .button{
width: 40%;
padding: 20rpx 0;
text-align: center;
font-size: 28rpx !important;
font-weight: 550;
border-radius: 20rpx;
.module-button .button {
width: 40%;
padding: 20rpx 0;
text-align: center;
font-size: 28rpx !important;
font-weight: 550;
border-radius: 20rpx;
}
</style>

@ -0,0 +1,187 @@
<template>
<view>
<view class="cu-bar bg-white margin-top">
<view class="action">
<text class="cuIcon-title text-orange "></text> 选择时间
</view>
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<picker fields="month" mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
<button class="cu-btn bg-green shadow" data-target="Modal">{{date}}</button>
</picker>
</view>
</view>
</view>
</view>
<view v-if="list.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="list">
<view class="items padding-xl radius shadow shadow-lg bg-white margin-top flex solid-bottom justify-between align-end"
v-for="(item,index) in list" :key="index">
<view class="">
<view class="item">
<view class="title">消费单号</view>
<view class="content">{{item.cashNum}}</view>
</view>
<view class="item">
<view class="title">消费名称</view>
<view class="content">{{item.projectName}}</view>
</view>
<view class="item">
<view class="title">消费金额</view>
<view class="content">{{item.transactionPrice}}</view>
</view>
<view class="item">
<view class="title">支付方式</view>
<view class="content">
<text v-if="item.courseAccountId!=null"></text>
<text v-if="item.collectionRechargeAmount!=0">:{{item.collectionRechargeAmount}} </text>
<text v-if="item.collectionCashAmount!=0">:{{item.collectionCashAmount}} </text>
<text v-if="item.collectionIntegralAmount!=0">:{{item.collectionIntegralAmount}} </text>
</view>
</view>
<view class="item">
<view class="title">消费时间</view>
<view class="content">{{item.cashDate}}</view>
</view>
</view>
<view class="item-goin">
<navigator :url="'./appraise/appraise?id='+item.id">
<button class=" cu-btn round bg-red">反馈</button>
</navigator>
</view>
</view>
<text> {{list.length}} 记录</text>
</view>
</view>
</template>
<script>
export default {
data() {
const currentDate = this.getDate({
format: true
})
return {
date: currentDate,
list: [],
userInfo: null,
pageSize: 10,
pageNum: 1,
total:-1,
}
},
computed: {
startDate() {
return this.getDate('start');
},
endDate() {
return this.getDate('end');
}
},
methods: {
bindDateChange: function(e) {
this.date = e.target.value
this.selectByMember()
},
getDate(type) {
//
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
if (type === 'start') {
year = year - 60;
} else if (type === 'end') {
year = year + 2;
}
month = month > 9 ? month : '0' + month;;
return `${year}-${month}`;
},
selectByMember() {
let date = this.date.replace(/[^0-9]/g, '')
let form = {
memberId: this.userInfo.id,
storeId: this.userInfo.storeId,
selectDate: date,
pageSize: this.pageSize,
pageNum: this.pageNum,
isCancel: 0
}
console.log(form);
this.$api.selectByMember(form).then(res => {
console.log(res);
if (res.code == '000000') {
this.list = [...res.pageInfo.list,...this.list]
this.total = res.pageInfo.size
}else{
this.list = []
}
})
},
},
onReachBottom: function() { //
this.pageNum += 1
if(this.total!=0){
this.selectByMember()
}
},
created() {
this.userInfo = uni.getStorageSync('userInfo')
this.selectByMember()
}
}
</script>
<style>
.list {
margin: 15upx 10upx;
}
.list .item-goin {
width: 120upx;
display: inline-block;
}
.list .items {
background-color: #FFF;
padding: 20upx;
border-radius: 10upx;
margin-bottom: 20upx;
}
.list .list_footer {
position: fixed;
bottom: 0;
}
.list .items .item {
display: flex;
align-items: center;
margin-bottom: 10upx;
}
.list .items .item:last-child {
margin-bottom: 0upx;
}
.list .items .item .title {
width: 130upx;
font-size: 27upx;
}
.list .items .item .content {
/* width: 75%; */
font-size: 27 upx;
}
.content text {
padding-right: 5upx;
}
</style>

@ -1,10 +1,10 @@
<template>
<!-- 疗程服务日志 -->
<view class='main'>
<view v-if=" projectProgress.length == 0" class='common-no-result'>
<image class="cuIcon-creative" />
<view class='text-gray'>暂时还没有数据</view>
</view>
<view v-if="projectProgress.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="cu-card article isCard">
<view class="cu-item" hover-class='common-hover' v-for="(item,index) in projectProgress" :key='index' data-proprogressid="item.proProgressId" data-docnum="item.docNum" data-projectnum="item.projectNum"
data-memberid="item.memberId" data-membernum="item.memberNum" data-membername="item.memberName" data-storenum="item.storeNum" data-storename="item.storeName" data-docnumtime=" item.docNumTime " data-projectname="item.projectName ">

@ -0,0 +1,111 @@
<template>
<view class="todaystar ">
<scroll-view scroll-x class="bg-white nav text-center ">
<view class="cu-item" :class="TabCur==0?'text-white light bg-red':''" @tap="tabSelect" :data-id="0">今日</view>
<view class="cu-item" :class="TabCur==1?'text-white light bg-red':''" @tap="tabSelect" :data-id="1">作日</view>
<view class="cu-item" :class="TabCur==2?'text-white light bg-red':''" @tap="tabSelect" :data-id="2">本月</view>
<view class="cu-item" :class="TabCur==3?'text-white light bg-red':''" @tap="tabSelect" :data-id="3">上月</view>
</scroll-view>
<view class="">
<view style="margin: 10upx auto;" class="bg-red flex solid-bottom padding justify-start text-white text-center">
<view class="text-header" style="width: 15%;">
<text>排名</text>
</view>
<view class="text-header" style="width: 25%;">
<text>水牌号</text>
</view>
<view class="text-header" style="width: 25%;">
<text>员工</text>
</view>
<view class="text-header" style="width: 35%;">
<text>总业绩</text>
</view>
</view>
<view v-if="starList.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class=" light flex justify-start text-black text-center text-main" v-for="(item,index) in starList" :key='index'
:class="item.content==1?'bg-pink':'bg-grey' && item.content==2?'bg-red':'bg-grey' &&item.content==3?'bg-orange':'bg-grey' ">
<view class="cur" style="width: 15%;">
<text>{{item.content}}</text>
</view>
<view class="text-header" style="width: 25%;">
<text>{{item.brandNumber}}</text>
</view>
<view class="text-header" style="width: 25%;">
<text>{{item.staffName}}</text>
</view>
<view class="text-header" style="width: 35%;">
<text>{{item.sumAich}}</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
TabCur: 0,
daylist:[],
starList: [{
content: 1,
brandNumber: 100023,
staffName: "疾风弟弟",
sumAich: 10560
},
{
content: 2,
brandNumber: 100023,
staffName: "疾风弟弟",
sumAich: 10500
},
{
content: 3,
brandNumber: 100023,
staffName: "疾风弟弟",
sumAich: 10160
},
{
content: 4,
brandNumber: 100023,
staffName: "疾风弟弟",
sumAich: 10060
},
{
content: 5,
brandNumber: 100023,
staffName: "疾风弟弟",
sumAich: 10060
},
],
}
},
methods: {
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id * 1
this.starList = []
if(e.currentTarget.dataset.id * 1==0){
this.starList= this.daylist
}
}
},
created() {
this.daylist = this.starList
}
}
</script>
<style>
.text-main {
font-size: 28upx;
height: 80upx;
width: 100%;
line-height: 80upx;
margin-top: 10upx;
color: #000000;
}
</style>

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

@ -14,6 +14,10 @@
</view>
</view>
</view> -->
<view v-if="list.length==0">
<view class='empty cuIcon-info'></view>
<view class='empty-text text-gray'>暂无数据</view>
</view>
<view class="list">
<view class="items padding-xl radius shadow shadow-lg bg-white margin-top" v-for="(item,index) in list" :key="index"
style="display: flex;justify-content: space-between;">
@ -158,7 +162,7 @@
}
.list .items .item .title {
width: 150upx;
width: 180upx;
font-size: 27upx;
}

@ -19,6 +19,12 @@
</navigator>
<view v-if="userInfo.user==0" class="hr"></view>
<navigator v-if="userInfo.user==0" url="./common/expense/expense">
<view class="text_icon cuIcon-font text-olive"></view>
评价记录
<view class="text_icon_right cuIcon-right"> </view>
</navigator>
<view v-if="userInfo.user==0" class="hr"></view>
<navigator v-if="userInfo.user==0" url="./common/expense-record/expense-record">
<view class="text_icon cuIcon-font text-olive"></view>
消费记录
<view class="text_icon_right cuIcon-right"> </view>

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

@ -0,0 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/tabBar/mySet/mySet","pages/tabBar/mySet/common/message/message","pages/tabBar/mySet/common/my-card/my-card","pages/tabBar/mySet/common/expense/expense","pages/tabBar/mySet/common/change-password/change-password","pages/login/login","pages/tabBar/mySet/common/expense/appraise/appraise","pages/tabBar/myHome/myHome","pages/tabBar/myHome/service-log/service-log","pages/tabBar/myHome/sales-commission/sales-commission","pages/tabBar/myHome/client-evaluation/client-evaluation","pages/tabBar/myHome/client-follow/client-follow","pages/tabBar/myHome/all-powerful/all-powerful","pages/tab/tab","pages/tabBar/myHome/sales-commission/sales-month/sales-month","pages/tabBar/myHome/sales-commission/last-month/last-month","pages/tabBar/myHome/sales-commission/classify/classify","pages/tabBar/myHome/sales-commission/detail/detail","pages/tabBar/mySet/common/expense-record/expense-record","pages/tabBar/myHome/todays-star/todays-star"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"black","backgroundColor":"#ffffff","list":[{"pagePath":"pages/tabBar/myHome/myHome","iconPath":"static/image/home.ico","selectedIconPath":"static/image/home.ico","text":"首页"},{"pagePath":"pages/tabBar/mySet/mySet","iconPath":"static/image/mySet.ico","selectedIconPath":"static/image/my.ico","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"DeMay","compilerVersion":"2.9.8","entryPagePath":"pages/tabBar/mySet/mySet","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/tabBar/mySet/mySet","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的","navigationBarBackgroundColor":"#ff0000","bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/message/message","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"我的信息","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/my-card/my-card","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"我的卡包","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense/expense","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"评价记录","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/change-password/change-password","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"修改密码","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/login/login","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"登录","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense/appraise/appraise","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"服务评价","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/myHome","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"首页","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/service-log/service-log","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"疗程服务日志","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/sales-commission","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/client-evaluation/client-evaluation","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"客户评价","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/client-follow/client-follow","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tabBar/myHome/all-powerful/all-powerful","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tab/tab","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tabBar/myHome/sales-commission/sales-month/sales-month","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"本月业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/last-month/last-month","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"上月业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/classify/classify","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"分类","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/detail/detail","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"明细","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense-record/expense-record","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"消费记录","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/todays-star/todays-star","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"今日之星","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

@ -0,0 +1 @@
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__4D77F26","name":"DeMay","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"permissions":["<uses-feature android:name=\"android.hardware.camera\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>","<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.CALL_PHONE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"]},"apple":{},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"2.9.8","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"pagePath":"pages/tabBar/myHome/myHome","iconPath":"static/image/home.ico","selectedIconPath":"static/image/home.ico","text":"首页"},{"pagePath":"pages/tabBar/mySet/mySet","iconPath":"static/image/mySet.ico","selectedIconPath":"static/image/my.ico","text":"我的"}],"height":"50px","child":["lauchwebview"],"selected":1},"launch_path":"__uniappview.html"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

@ -0,0 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/tabBar/mySet/mySet","pages/tabBar/mySet/common/message/message","pages/tabBar/mySet/common/my-card/my-card","pages/tabBar/mySet/common/expense/expense","pages/tabBar/mySet/common/change-password/change-password","pages/login/login","pages/tabBar/mySet/common/expense/appraise/appraise","pages/tabBar/myHome/myHome","pages/tabBar/myHome/service-log/service-log","pages/tabBar/myHome/sales-commission/sales-commission","pages/tabBar/myHome/client-evaluation/client-evaluation","pages/tabBar/myHome/client-follow/client-follow","pages/tabBar/myHome/all-powerful/all-powerful","pages/tab/tab","pages/tabBar/myHome/sales-commission/sales-month/sales-month","pages/tabBar/myHome/sales-commission/last-month/last-month","pages/tabBar/myHome/sales-commission/classify/classify","pages/tabBar/myHome/sales-commission/detail/detail","pages/tabBar/mySet/common/expense-record/expense-record","pages/tabBar/myHome/todays-star/todays-star"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"black","backgroundColor":"#ffffff","list":[{"pagePath":"pages/tabBar/myHome/myHome","iconPath":"static/image/home.ico","selectedIconPath":"static/image/home.ico","text":"首页"},{"pagePath":"pages/tabBar/mySet/mySet","iconPath":"static/image/mySet.ico","selectedIconPath":"static/image/my.ico","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"DeMay","compilerVersion":"2.9.8","entryPagePath":"pages/tabBar/mySet/mySet","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/tabBar/mySet/mySet","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的","navigationBarBackgroundColor":"#ff0000","bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/message/message","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"我的信息","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/my-card/my-card","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"我的卡包","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense/expense","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"评价记录","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/change-password/change-password","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"修改密码","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/login/login","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"登录","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense/appraise/appraise","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"服务评价","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/myHome","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"首页","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/service-log/service-log","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"疗程服务日志","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/sales-commission","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/client-evaluation/client-evaluation","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"客户评价","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/client-follow/client-follow","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tabBar/myHome/all-powerful/all-powerful","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tab/tab","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/tabBar/myHome/sales-commission/sales-month/sales-month","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"本月业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/last-month/last-month","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"上月业绩提成","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/classify/classify","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"分类","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/sales-commission/detail/detail","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"明细","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/mySet/common/expense-record/expense-record","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"消费记录","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}},{"path":"/pages/tabBar/myHome/todays-star/todays-star","meta":{},"window":{"navigationBarBackgroundColor":"#ff0000","navigationBarTitleText":"今日之星","enablePullDownRefresh":false,"bounce":"vertical","titleNView":{"titleColor":"#eeeeee"}}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

@ -0,0 +1 @@
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__4D77F26","name":"DeMay","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueCompiler":"uni-app","compilerVersion":3,"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"2.9.8","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"pagePath":"pages/tabBar/myHome/myHome","iconPath":"static/image/home.ico","selectedIconPath":"static/image/home.ico","text":"首页"},{"pagePath":"pages/tabBar/mySet/mySet","iconPath":"static/image/mySet.ico","selectedIconPath":"static/image/my.ico","text":"我的"}],"height":"50px","child":["lauchwebview"],"selected":1},"launch_path":"__uniappview.html"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save