Commit c3e7a640 authored by 郑秀明's avatar 郑秀明

Merge commit '33e0ae6b'

parents 262fb9af 33e0ae6b
<template>
<view class="topbar_view">
<view class="topbar_view" :style="{'color': titleColor, 'background-color': bgColor}">
<text class="eosfont left_icon" @click="back()">&#xe622;</text>
{{this.title}}
</view>
......@@ -11,6 +11,14 @@
title: {
type: String,
default: ''
},
titleColor: {
type: String,
default: '#212121'
},
bgColor: {
type: String,
default: '#fff'
}
},
methods: {
......
This diff is collapsed.
<template>
<view class="uni-calendar-item__weeks-box" :class="{
'uni-calendar-item--disable':weeks.disable,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
'uni-calendar-item--checked':(calendar.fullDate === weeks.fullDate && !weeks.isDay) ,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
}"
@click="choiceDate(weeks)">
<view class="uni-calendar-item__weeks-box-item">
<text v-if="selected&&weeks.extraInfo" class="uni-calendar-item__weeks-box-circle">{{weeks.date}}</text>
<text class="uni-calendar-item__weeks-box-text" :class="{
'uni-calendar-item--isDay-text': weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">{{weeks.date}}</text>
<text v-if="!lunar&&!weeks.extraInfo && weeks.isDay" class="uni-calendar-item__weeks-lunar-text" :class="{
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
}">今天</text>
<text v-if="lunar&&!weeks.extraInfo" class="uni-calendar-item__weeks-lunar-text" :class="{
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">{{weeks.isDay?'今天': (weeks.lunar.IDayCn === '初一'?weeks.lunar.IMonthCn:weeks.lunar.IDayCn)}}</text>
<text v-if="weeks.extraInfo&&weeks.extraInfo.info" class="uni-calendar-item__weeks-lunar-text" :class="{
'uni-calendar-item--extra':weeks.extraInfo.info,
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">{{weeks.extraInfo.info}}</text>
</view>
</view>
</template>
<script>
export default {
props: {
weeks: {
type: Object,
default () {
return {}
}
},
calendar: {
type: Object,
default: () => {
return {}
}
},
selected: {
type: Array,
default: () => {
return []
}
},
lunar: {
type: Boolean,
default: false
}
},
methods: {
choiceDate(weeks) {
this.$emit('change', weeks)
}
}
}
</script>
<style lang="scss" scoped>
.uni-calendar-item__weeks-box {
flex: 1;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
}
.uni-calendar-item__weeks-box-text {
font-size: 32rpx;
color: #000;
}
.uni-calendar-item__weeks-lunar-text {
font-size: $uni-font-size-sm;
color: $uni-text-color;
}
.uni-calendar-item__weeks-box-item {
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
width: 100rpx;
height: 100rpx;
}
.uni-calendar-item__weeks-box-circle {
position: absolute;
top: 50%;
left: 50%;
margin-left: -28rpx;
margin-top: -28rpx;
width: 56rpx;
height: 56rpx;
border-radius: 50%;
background-color: #FFED7E;
text-align: center;
font-size: 32rpx;
line-height: 56rpx;
}
.uni-calendar-item--disable {
background-color: rgba(249, 249, 249, $uni-opacity-disabled);
color: $uni-text-color-disable;
}
.uni-calendar-item--isDay-text {
color: $uni-color-primary;
}
.uni-calendar-item--isDay {
background-color: #FFED7E;
}
.uni-calendar-item--extra {
color: $uni-color-error;
}
.uni-calendar-item--checked {
background-color: #FFED7E;
color: #000;
}
.uni-calendar-item--multiple {
background-color: $uni-color-primary;
color: #fff;
}
.uni-calendar-item--before-checked {
background-color: #ff5a5f;
color: #fff;
}
.uni-calendar-item--after-checked {
background-color: #ff5a5f;
color: #fff;
}
</style>
This diff is collapsed.
import CALENDAR from './calendar.js'
class Calendar {
constructor({
date,
selected,
startDate,
endDate,
range
} = {}) {
// 当前日期
this.date = this.getDate(new Date()) // 当前初入日期
// 打点信息
this.selected = selected || [];
// 范围开始
this.startDate = startDate
// 范围结束
this.endDate = endDate
this.range = range
// 多选状态
this.cleanMultipleStatus()
// 每周日期
this.weeks = {}
// this._getWeek(this.date.fullDate)
}
/**
* 设置日期
* @param {Object} date
*/
setDate(date) {
this.selectDate = this.getDate(date)
this._getWeek(this.selectDate.fullDate)
}
/**
* 清理多选状态
*/
cleanMultipleStatus() {
this.multipleStatus = {
before: '',
after: '',
data: []
}
}
/**
* 重置开始日期
*/
resetSatrtDate(startDate) {
// 范围开始
this.startDate = startDate
}
/**
* 重置结束日期
*/
resetEndDate(endDate) {
// 范围结束
this.endDate = endDate
}
/**
* 获取任意时间
*/
getDate(date, AddDayCount = 0, str = 'day') {
if (!date) {
date = new Date()
}
if (typeof date !== 'object') {
date = date.replace(/-/g, '/')
}
const dd = new Date(date)
switch (str) {
case 'day':
dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期
break
case 'month':
if (dd.getDate() === 31) {
dd.setDate(dd.getDate() + AddDayCount)
} else {
dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期
}
break
case 'year':
dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期
break
}
const y = dd.getFullYear()
const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0
const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0
return {
fullDate: y + '-' + m + '-' + d,
year: y,
month: m,
date: d,
day: dd.getDay()
}
}
/**
* 获取上月剩余天数
*/
_getLastMonthDays(firstDay, full) {
let dateArr = []
for (let i = firstDay; i > 0; i--) {
const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate()
dateArr.push({
date: beforeDate,
month: full.month - 1,
lunar: this.getlunar(full.year, full.month - 1, beforeDate),
disable: true
})
}
return dateArr
}
/**
* 获取本月天数
*/
_currentMonthDys(dateData, full) {
let dateArr = []
let fullDate = this.date.fullDate
for (let i = 1; i <= dateData; i++) {
let isinfo = false
let nowDate = full.year + '-' + (full.month < 10 ?
full.month : full.month) + '-' + (i < 10 ?
'0' + i : i)
// 是否今天
let isDay = fullDate === nowDate
// 获取打点信息
let info = this.selected && this.selected.find((item) => {
if (this.dateEqual(nowDate, item.date)) {
return item
}
})
// 日期禁用
let disableBefore = true
let disableAfter = true
if (this.startDate) {
let dateCompBefore = this.dateCompare(this.startDate, fullDate)
disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate)
}
if (this.endDate) {
let dateCompAfter = this.dateCompare(fullDate, this.endDate)
disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate)
}
let multiples = this.multipleStatus.data
let checked = false
let multiplesStatus = -1
if (this.range) {
if (multiples) {
multiplesStatus = multiples.findIndex((item) => {
return this.dateEqual(item, nowDate)
})
}
if (multiplesStatus !== -1) {
checked = true
}
}
let data = {
fullDate: nowDate,
year: full.year,
date: i,
multiple: this.range ? checked : false,
beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate),
afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate),
month: full.month,
lunar: this.getlunar(full.year, full.month, i),
disable: !disableBefore || !disableAfter,
isDay
}
if (info) {
data.extraInfo = info
}
dateArr.push(data)
}
return dateArr
}
/**
* 获取下月天数
*/
_getNextMonthDays(surplus, full) {
let dateArr = []
for (let i = 1; i < surplus + 1; i++) {
dateArr.push({
date: i,
month: Number(full.month) + 1,
lunar: this.getlunar(full.year, Number(full.month) + 1, i),
disable: true
})
}
return dateArr
}
/**
* 获取当前日期详情
* @param {Object} date
*/
getInfo(date) {
if (!date) {
date = new Date()
}
const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate)
return dateInfo
}
/**
* 比较时间大小
*/
dateCompare(startDate, endDate) {
// 计算截止时间
startDate = new Date(startDate.replace('-', '/').replace('-', '/'))
// 计算详细项的截止时间
endDate = new Date(endDate.replace('-', '/').replace('-', '/'))
if (startDate <= endDate) {
return true
} else {
return false
}
}
/**
* 比较时间是否相等
*/
dateEqual(before, after) {
// 计算截止时间
before = new Date(before.replace('-', '/').replace('-', '/'))
// 计算详细项的截止时间
after = new Date(after.replace('-', '/').replace('-', '/'))
if (before.getTime() - after.getTime() === 0) {
return true
} else {
return false
}
}
/**
* 获取日期范围内所有日期
* @param {Object} begin
* @param {Object} end
*/
geDateAll(begin, end) {
var arr = []
var ab = begin.split('-')
var ae = end.split('-')
var db = new Date()
db.setFullYear(ab[0], ab[1] - 1, ab[2])
var de = new Date()
de.setFullYear(ae[0], ae[1] - 1, ae[2])
var unixDb = db.getTime() - 24 * 60 * 60 * 1000
var unixDe = de.getTime() - 24 * 60 * 60 * 1000
for (var k = unixDb; k <= unixDe;) {
k = k + 24 * 60 * 60 * 1000
arr.push(this.getDate(new Date(parseInt(k))).fullDate)
}
return arr
}
/**
* 计算阴历日期显示
*/
getlunar(year, month, date) {
return CALENDAR.solar2lunar(year, month, date)
}
/**
* 设置打点
*/
setSelectInfo(data, value) {
this.selected = value
this._getWeek(data)
}
/**
* 获取多选状态
*/
setMultiple(fullDate) {
let {
before,
after
} = this.multipleStatus
if (!this.range) return
if (before && after) {
this.multipleStatus.before = ''
this.multipleStatus.after = ''
this.multipleStatus.data = []
} else {
if (!before) {
this.multipleStatus.before = fullDate
} else {
this.multipleStatus.after = fullDate
if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) {
this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after);
} else {
this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before);
}
}
}
this._getWeek(fullDate)
}
/**
* 获取每周数据
* @param {Object} dateData
*/
_getWeek(dateData) {
const {
fullDate,
year,
month,
date,
day
} = this.getDate(dateData)
let firstDay = new Date(year, month - 1, 1).getDay()
let currentDay = new Date(year, month, 0).getDate()
let dates = {
lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天
currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数
nextMonthDays: [], // 下个月开始几天
weeks: []
}
let canlender = []
const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length)
dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData))
canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays)
let weeks = {}
// 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天
for (let i = 0; i < canlender.length; i++) {
if (i % 7 === 0) {
weeks[parseInt(i / 7)] = new Array(7)
}
weeks[parseInt(i / 7)][i % 7] = canlender[i]
}
this.canlender = canlender
this.weeks = weeks
}
//静态方法
// static init(date) {
// if (!this.instance) {
// this.instance = new Calendar(date);
// }
// return this.instance;
// }
}
export default Calendar
......@@ -2,7 +2,7 @@
"name": "shop_mobile_uni",
"appid": "__UNI__F904656",
"description": "",
"versionName": "1.0.14",
"versionName": "1.0.16",
"versionCode": "100",
"transformPx": false,
"app-plus": {
......@@ -51,7 +51,11 @@
"mode": "history",
"base": "/uni"
},
<<<<<<< HEAD
"publicPath": "https://dbc-static.oss-cn-beijing.aliyuncs.com/dbc-shop/uni/prod/1.0.14/",
=======
"publicPath": "https://dbc-static.oss-cn-beijing.aliyuncs.com/dbc-shop/uni/test/1.0.16/",
>>>>>>> 33e0ae6b16fefaff99580171274e902f3237a6f2
"optimization": {
"treeShaking": {
"enable": true
......@@ -62,7 +66,7 @@
"disableHostCheck": true,
"proxy": {
"/uni/api": {
"target": "http://39.96.85.45:9093/",
"target": "http://10.0.0.52:6564/",
"changeOrigin": true,
"secure": false,
"pathRewrite": {
......
{
"name": "shop_mobile_uni",
"version": "1.0.13",
"version": "1.0.16",
"description": "谛宝多多商城",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
......
{
"pages": [
{
"pages": [{
"path": "pages/home/home",
"style": {
"navigationBarTitleText": "首页-谛宝多多商城"
......@@ -144,6 +143,36 @@
"style": {
"navigationBarTitleText": "账号设置-谛宝多多商城"
}
},
{
"path": "pages/signin/signin",
"style": {
"navigationBarTitleText": "签到-谛宝多多商城"
}
},
{
"path": "pages/integralRecord/integralRecord",
"style": {
"navigationBarTitleText": "积分记录-谛宝多多商城"
}
},
{
"path": "pages/levelStrategy/levelStrategy",
"style": {
"navigationBarTitleText": "升级攻略-谛宝多多商城"
}
},
{
"path": "pages/vipCenter/vipCenter",
"style": {
"navigationBarTitleText": "会员中心-谛宝多多商城"
}
},
{
"path": "pages/signRecord/signRecord",
"style": {
"navigationBarTitleText": "签到记录-谛宝多多商城"
}
}
],
"globalStyle": {
......@@ -151,6 +180,8 @@
"navigationBarTitleText": "谛宝多多商城",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#fbfbfb",
"app-plus": {"titleNView": false}
"app-plus": {
"titleNView": false
}
}
}
......@@ -150,7 +150,7 @@
const {code, data} = res.data;
if(code === 0 && !data){
if(reg_time > timestamp && reg_time < end_timestamp){
this.$refs.popup.open();
// this.$refs.popup.open();
}
}
}
......
<template>
<view class="main">
<view class="return_icon" @click="$backup()"><view class="eosfont">&#xe622;</view></view>
<view class="card">
<view>可用积分</view>
<view>{{integral}}</view>
</view>
<view class="tabs">
<text class="tab_item" :class="{act: i_type === '1'}" @click="tabChange('1')">收入</text>
<text class="tab_item" :class="{act: i_type === '2'}" @click="tabChange('2')">支出</text>
<text class="tab_item" :class="{act: i_type === '3'}" @click="tabChange('3')">过期</text>
</view>
<view class="list" v-if="i_type === '1'">
<scroll-view
v-if="inData.length"
scroll-y
@scrolltolower="getData(i_type, inCurrent)"
:show-scrollbar="false"
style="height: 100%"
:scroll-top="scrolltop"
>
<view class="list_item" v-for="(item, index) in inData" :key="index">
<view>
<view class="title1">{{item.remark}}</view>
<view class="title2">{{item.add_time}}</view>
</view>
<view class="integral">+{{item.point}}</view>
</view>
<uni-load-more :status="inLoadingType"></uni-load-more>
</scroll-view>
<view v-else class="none_data">暂无数据</view>
</view>
<view class="list" v-if="i_type === '2'">
<scroll-view
v-if="outData.length"
scroll-y
@scrolltolower="getData(i_type, outCurrent)"
:show-scrollbar="false"
style="height: 100%"
:scroll-top="scrolltop"
>
<view class="list_item" v-for="(item, index) in outData" :key="index">
<view>
<view class="title1">{{item.remark}}</view>
<view class="title2">{{item.add_time}}</view>
</view>
<view class="integral">-{{item.point}}</view>
</view>
<uni-load-more :status="outLoadingType"></uni-load-more>
</scroll-view>
<view v-else class="none_data">暂无数据</view>
</view>
<view class="list" v-if="i_type === '3'">
<view class="none_data">暂无数据</view>
</view>
</view>
</template>
<script>
import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
export default {
data() {
return {
i_type: '1',
integral: 0,
inData: [],
outData: [],
inCurrent: 1,
outCurrent: 1,
inFlag: true,
outFlag: true,
inLoadingType: 'more',
outLoadingType: 'more',
scrolltop: 0
}
},
onLoad() {
this.getData('1', 1);
},
methods: {
tabChange(type) {
if(type === this.i_type) {
return
}
this.scrolltop = 0;
this.i_type = type;
if(type === '3') {
return
}
let current = '';
if(type === '1' && !this.inData.length) {
current = this.inCurrent;
this.getData(type, current);
} else if (type === '2' && !this.outData.length) {
current = this.outCurrent;
this.getData(type, current);
}
},
getData(type, current) {
if((!this.inFlag && type === '1') || (!this.outFlag && type === '2')) {
return
}
if(type === '1') {
this.inLoadingType = 'loading';
} else {
this.outLoadingType = 'loading';
}
uni.request({
url: '/uni/api/integral/GetMyIntegral',
data: {
current: current,
i_type: type,
page_size: 10
},
method: 'post',
dataType: 'json',
success: (res) => {
if(res.data.code === 0) {
if(this.i_type === '1') {
if(res.data.data.integral_list instanceof Array) {
this.inData = this.inData.concat(res.data.data.integral_list);
const { total, page_size } = res.data.page;
const n = Math.ceil(total/page_size);
if(n > this.inCurrent) {
this.inCurrent += 1;
} else {
this.inFlag = false;
this.inLoadingType = 'nomore';
}
}
} else {
if(res.data.data.integral_list instanceof Array) {
this.outData = this.outData.concat(res.data.data.integral_list);
const { total, page_size } = res.data.page;
const n = Math.ceil(total/page_size);
if(n > this.outCurrent) {
this.outCurrent += 1;
} else {
this.outFlag = false;
this.outLoadingType = 'nomore';
}
}
}
this.integral = res.data.data.integral || 0;
}
}
})
}
},
components: {
uniLoadMore
}
}
</script>
<style lang="less" scoped>
.main {
overflow: hidden;
padding: 0 24rpx;
.return_icon {
view {
width: 56rpx;
height: 56rpx;
border-radius: 50%;
background-color: rgba(33,33,33,0.5);
color: #fff;
font-size: 32rpx;
text-align: center;
line-height: 56rpx;
margin-top: 24rpx;
}
}
.card {
height: 216rpx;
border-radius: 16rpx;
background:linear-gradient(135deg,rgba(255,236,73,1) 0%,rgba(255,211,30,1) 100%);
box-shadow:0px 8rpx 24rpx 0px rgba(255,219,43,0.5);
padding: 0 30rpx;
overflow: hidden;
color: #21232C;
margin: 24rpx auto 40rpx;
view:nth-of-type(1) {
font-size: 30rpx;
line-height: 42rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
margin-top: 36rpx;
}
view:nth-of-type(2) {
margin-top: 8rpx;
font-family:Avenir-Heavy,Avenir;
font-weight:800;
font-size: 80rpx;
line-height: 110rpx;
}
}
.tabs {
display: flex;
align-items: center;
justify-content: center;
.tab_item {
height: 60rpx;
line-height: 60rpx;
text-align: center;
color: #333;
font-size: 30rpx;
width: 100rpx;
}
.act {
background:linear-gradient(135deg,rgba(255,236,73,1) 0%,rgba(255,211,30,1) 100%);
border-radius:30px;
color: #21232C;
}
.tab_item:nth-of-type(2) {
margin: 0 30rpx;
}
}
.list {
margin-top: 40rpx;
height: calc(100vh - 484rpx);
.list_item {
height: 120rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #ececec;
.title1 {
color: #000;
font-size: 30rpx;
height: 42rpx;
line-height: 42rpx;
margin-bottom: 2rpx;
}
.title2 {
color: #979797;
font-size: 26rpx;
height: 36rpx;
line-height: 36rpx;
}
.integral {
color: #FF6600;
font-size: 36rpx;
font-family:PingFangSC-Medium,PingFang SC;
font-weight:500;
}
}
}
.none_data {
text-align: center;
}
}
</style>
<template>
<view class="main">
<TopBar title="升级攻略" titleColor="#fff" bgColor="#21232C" />
<view class="question">
<text></text>
<text>账户等级越高有什么作用?</text>
</view>
<view class="answer">
<view class="item"><text>a.</text>等级越高,可享受的权益越多</view>
<view class="item"><text>b.</text>等级越高,特定商品可享受的优惠力度越大</view>
</view>
<view class="question">
<text></text>
<text>如何提升账户等级?</text>
</view>
<view class="answer">
<view class="item"><text>a.</text>每日登录可获取经验值,用来提升账户等级</view>
<view class="item"><text>b.</text>每次消费再确认收货之后可以获得购物积分,可以提升账户等级</view>
<view class="item"><text>c.</text>推荐新用户注册,新用户账号审核通过后推荐人可获取积分,提升等级</view>
<view class="item"><text>d.</text>由谛宝多多官方规定的其它方式</view>
</view>
<view class="diamond"></view>
</view>
</template>
<script>
import TopBar from '@/components/TopBar/TopBar.vue';
export default {
data() {
return {
}
},
components: {
TopBar
}
}
</script>
<style lang="less">
.main {
height: 100vh;
padding: 88rpx 24rpx 0;
background:linear-gradient(141deg,rgba(33,35,44,1) 0%,rgba(45,50,57,1) 100%);
box-sizing: border-box;
.question {
color: #F6CA8D;
font-size: 40rpx;
margin-top: 40rpx;
}
.answer {
padding: 30rpx;
background-color: #21232C;
font-size: 26rpx;
color: #C3B4A0;
margin: 24rpx auto 60rpx;
border-radius: 16rpx;
.item {
line-height: 36rpx;
margin-bottom: 20rpx;
display: flex;
}
.item:last-child {
margin-bottom: 0;
}
}
.diamond {
width: 304rpx;
height: 256rpx;
background: url('https://dbc-static.oss-cn-beijing.aliyuncs.com/static/dia.png') no-repeat;
background-size: 100% 100%;
position: absolute;
right: 0;
bottom: 0;
}
}
</style>
<template>
<view class="main">
<view class="card">
<view class="return_icon" @click="$backup()"><view class="eosfont">&#xe622;</view></view>
<view class="days">{{sign_days_continues}}</view>
<view class="title">连续签到</view>
</view>
<view class="calendar">
<uni-calendar
:selected="signList"
:insert="true"
:allChange="true"
@monthSwitch="monthSwitch"
/>
</view>
</view>
</template>
<script>
import uniCalendar from '@/components/uni-calendar/uni-calendar.vue'
export default {
data() {
return {
signList: [],
sign_id: '',
mon: '',
sign_days_continues: 0
}
},
onLoad(options) {
this.sign_id = options.sign_id;
this.sign_days_continues = options.sign_days_continues;
let year = new Date().getFullYear(),
month = new Date().getMonth() + 1;
month = month < 10 ? '0'+month : month+'';
this.mon = `${year}-${month}`;
this.getRecord(`${year}-${month}`, options.sign_id);
},
methods: {
getRecord(month, sign_id) {
uni.request({
url: '/uni/api/sign/GetMySignList',
data: {
mon: month,
sign_id: sign_id
},
method: 'post',
dataType: 'json',
success: (res) => {
if(res.data.code === 0) {
this.signList = res.data.data.sign_list;
}
}
});
},
monthSwitch(e) {
let {year, month} = e;
if(month < 10) {
month = '0'+month;
}
let mon = `${year}-${month}`;
this.getRecord(mon, this.sign_id);
}
},
components: {
uniCalendar
}
}
</script>
<style lang="less" scoped>
.main {
.card {
height: 360rpx;
background:linear-gradient(135deg,rgba(255,236,73,1) 0%,rgba(255,211,30,1) 100%);
overflow: hidden;
.return_icon {
view {
width: 56rpx;
height: 56rpx;
border-radius: 50%;
background-color: rgba(33,33,33,0.5);
color: #fff;
font-size: 32rpx;
text-align: center;
line-height: 56rpx;
margin: 24rpx 0 0 20rpx;
}
}
.days {
color: #000;
font-size: 80rpx;
line-height: 110rpx;
text-align: center;
margin: 8rpx auto 0;
font-family:Avenir-Heavy,Avenir;
font-weight:800;
}
.title {
font-size: 28rpx;
height: 40rpx;
line-height: 40rpx;
text-align: center;
opacity: 0.6;
}
}
.calendar {
border-radius: 24rpx 24rpx 0 0;
margin-top: -80rpx;
}
}
</style>
This diff is collapsed.
This diff is collapsed.
@font-face {font-family: "eosfont";
src: url('https://at.alicdn.com/t/font_1682539_q13x2nw5kqc.ttf') format('truetype');
@font-face {
font-family: "eosfont";
src: url('https://at.alicdn.com/t/font_1878093_yggdekpesv.eot');
src: url('https://at.alicdn.com/t/font_1878093_yggdekpesv.eot?#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_1878093_yggdekpesv.woff2') format('woff2'),
url('https://at.alicdn.com/t/font_1878093_yggdekpesv.woff') format('woff'),
url('https://at.alicdn.com/t/font_1878093_yggdekpesv.ttf') format('truetype'),
url('https://at.alicdn.com/t/font_1878093_yggdekpesv.svg#iconfont') format('svg');
}
.eosfont {
font-family: "eosfont" !important;
font-style: normal;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment