刘翔宇-旅管家 3 years ago
parent 38f2fb771a
commit 0b50e78f4f

@ -5,39 +5,39 @@
<view class="box-card-title">
预约的活动
</view>
<view class="box-card-content activityBox-content">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{list.name}}</text>
<view class="tag tag_green">
<text>{{list.target_name}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{list.start_time}}-{{list.end_time}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{list.area_name}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{list.address}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{list.total==0?'不限':list.total}}</text>
</view>
<view class="activityBox-row flex-row align-center" @click="tothere">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{list.distance}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
<view class="box-card-content activityBox-content">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{list.name}}</text>
<view class="tag tag_green">
<text>{{list.target_name}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{list.start_time}}-{{list.end_time}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{list.area_name}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{list.address}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{list.total==0?'不限':list.total}}</text>
</view>
<view class="activityBox-row flex-row align-center" @click="tothere">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{list.distance}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
</view>
</view>
@ -45,17 +45,20 @@
<u--form labelPosition="left" :model="form" :rules="rules" ref="form">
<view class="box-card">
<view class="box-card-title">
参与人
参与人
</view>
<view class="box-card-content">
<u-form-item label="参观人数" labelWidth="120" prop="total" ref="total">
<u-number-box slot="right" v-model="form.total" inputWidth="44" color="#EF9525"
bgColor="#FCF6E3" :min="(type=='user'?1:list.team_min_count)" :max="(type=='user'?list.person_max_count:list.team_max_count)" class="plus">
bgColor="#FCF6E3" :min="(type=='user'?1:list.team_min_count)"
:max="(type=='user'?list.person_max_count:list.team_max_count)" class="plus">
</u-number-box>
</u-form-item>
<view class="box-tips">
<text class="box-tips-txt" v-if="type=='user'">{{list.person_max_count}}1</text>
<text class="box-tips-txt" v-if="type=='team'">{{list.team_min_count}}{{list.team_max_count}}</text>
<text class="box-tips-txt"
v-if="type=='user'">每单限购{{list.person_max_count}}同一身份证当天限购1张</text>
<text class="box-tips-txt"
v-if="type=='team'">{{list.team_min_count}}人以上可团体预约一个团体最多{{list.team_max_count}}</text>
</view>
<view class="box-visitor">
<block v-for="(item,index) in form.details_list" :key="index">
@ -76,26 +79,26 @@
</block>
</view>
<view class="box-footer">
<view class="box-footer-left">
<view class="box-button" @click="openAdd">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">添加参与人</text>
</view>
</view>
<view class="box-footer-right" v-if="type=='team'">
<view class="box-button" @click="selectFile">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">批量导入参与人</text>
</view>
</view>
</view>
<view class="book-box-selectInfo" v-if="type=='team'" style="width: 100%; margin-top: 20rpx;">
<view class="book-box-selectInfo-right" @click="openNoticeInfo(1)">
<u-icon name="question-circle-fill" color="#EF9525" size="40rpx"></u-icon>
<text class="book-box-selectInfo-righttxt" style="margin-left: 20rpx;">批量导入说明</text>
</view>
<view class="box-footer">
<view class="box-footer-left">
<view class="box-button" @click="openAdd">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">添加参与人</text>
</view>
</view>
<view class="box-footer-right" v-if="type=='team'">
<view class="box-button" @click="selectFile">
<u-icon name="plus" color="#EF9525"></u-icon>
<text class="box-button-txt">批量导入参与人</text>
</view>
</view>
</view>
<view class="book-box-selectInfo" v-if="type=='team'" style="width: 100%; margin-top: 20rpx;">
<view class="book-box-selectInfo-right" @click="openNoticeInfo(1)">
<u-icon name="question-circle-fill" color="#EF9525" size="40rpx"></u-icon>
<text class="book-box-selectInfo-righttxt" style="margin-left: 20rpx;">批量导入说明</text>
</view>
</view>
</view>
</view>
@ -161,19 +164,19 @@
<u-button type="primary" @click="handleAddUser"></u-button>
</view>
</view>
</u-popup>
<u-popup :show="showInfo" mode="bottom" @close="closeInfo" :round="10" closeable>
<view class="mpopup">
<view class="mpopup-title">
{{currentNotice.title}}
</view>
<view class="mpopup-content" style="margin-top: 60rpx;">
<rich-text :nodes="currentNotice.content"></rich-text>
<view style="margin-top: 80px;"></view>
<u-button type="primary" @click="closeInfo"></u-button>
</view>
</view>
</u-popup>
<u-popup :show="showInfo" mode="bottom" @close="closeInfo" :round="10" closeable>
<view class="mpopup">
<view class="mpopup-title">
{{currentNotice.title}}
</view>
<view class="mpopup-content" style="margin-top: 60rpx;">
<rich-text :nodes="currentNotice.content"></rich-text>
<view style="margin-top: 80px;"></view>
<u-button type="primary" @click="closeInfo"></u-button>
</view>
</view>
</u-popup>
</view>
</template>
@ -181,20 +184,20 @@
<script>
export default {
data() {
return {
showAdd: false,
isEdit: false,
isEditIndex: 0,
showInfo: false,
list:{},
return {
showAdd: false,
isEdit: false,
isEditIndex: 0,
showInfo: false,
list: {},
form: {
unit: "",
leader: "",
card_type: 1,
idcard: "",
total: 1,
type: "",
mobile:"",
type: "",
mobile: "",
details_list: []
},
formUser: {
@ -230,42 +233,42 @@
id: 2,
name: '护照',
}
],
currentNotice: {},
notice: [{
title: "预约须知",
content: "预约须知的内容"
}, {
title: "批量上传帮助",
content: "<p>1.批量上传EXCEL的以xlsx结尾</p><p>2.第一列为标题列 姓名 手机号 证件号</p><p>3.文件是从微信聊天记录中选取或者微信文件传输助手</p>"
],
currentNotice: {},
notice: [{
title: "预约须知",
content: "预约须知的内容"
}, {
title: "批量上传帮助",
content: "<p>1.批量上传EXCEL的以xlsx结尾</p><p>2.第一列为标题列 姓名 手机号 证件号</p><p>3.文件是从微信聊天记录中选取或者微信文件传输助手</p>"
}]
}
},
onLoad(options) {
this.type = options.type;
this.form.type = (options.type == 'user' ? 2 : 1);
this.form.activity_id = parseInt(options.activity_id);
var that = this;
wx.getStorage({
key: 'activityinfo',
success (res) {
that.list = res.data
}
})
console.log(this.list)
that.util.getUserInfo(function(r) {
that.form.mobile = r.mobile;
this.type = options.type;
this.form.type = (options.type == 'user' ? 2 : 1);
this.form.activity_id = parseInt(options.activity_id);
var that = this;
wx.getStorage({
key: 'activityinfo',
success(res) {
that.list = res.data
}
})
console.log(this.list)
that.util.getUserInfo(function(r) {
that.form.mobile = r.mobile;
}, true);
},
methods: {
tothere() {
uni.openLocation({
latitude: parseFloat(this.list.latitude),
longitude: parseFloat(this.list.longitude),
name: this.list.name,
address: this.list.address
})
methods: {
tothere() {
uni.openLocation({
latitude: parseFloat(this.list.latitude),
longitude: parseFloat(this.list.longitude),
name: this.list.name,
address: this.list.address
})
},
closeAdd() {
this.showAdd = false
@ -283,13 +286,13 @@
},
delUser(index) {
this.form.details_list.splice(index, 1);
},
closeInfo() {
this.showInfo = false;
},
openNoticeInfo(type) {
this.showInfo = true;
this.currentNotice = this.notice[type];
},
closeInfo() {
this.showInfo = false;
},
openNoticeInfo(type) {
this.showInfo = true;
this.currentNotice = this.notice[type];
},
handleAddUser() {
var that = this;
@ -310,7 +313,7 @@
})
return false;
}
if (!uni.$u.test.idCard(that.formUser.idcard)) {
if (!that.util.isValidCardID(that.formUser.idcard)) {
uni.showToast({
icon: "none",
title: "请正确输入身份证号"
@ -333,56 +336,56 @@
//TODO handle the exception
}
},
selectFile() {
let _that = this
wx.chooseMessageFile({
count: 1, // 0100
type: 'file', //
success(res) {
// tempFilePathimgsrc
const tempFilePaths = res.tempFiles[0].path
let filename = res.tempFiles[0].name; //
//
if (filename.indexOf(".xlsx") == -1) {
uni.showToast({
icon: "none",
title: "暂时仅支持xlsx格式的文件"
})
return
} else {
console.log("开始上传");
uni.showLoading({
title: "正在上传"
})
wx.uploadFile({
url: _that.util.HOST + '/api/mobile/visit/excel-analyse', //
filePath: tempFilePaths, //data
name: 'file', //
formData: { //formData
"token": uni.getStorageSync("userInfo_token").token
},
success(res) {
var jsonlist = JSON.parse(res.data)
for (var m of jsonlist) {
_that.form.details_list.push({
name: m.name,
idcard: m.idcard,
mobile: m.mobile,
card_type: 1
})
}
uni.hideLoading();
}
})
console.log('上传到服务器')
}
}
})
},
selectFile() {
let _that = this
wx.chooseMessageFile({
count: 1, // 0100
type: 'file', //
success(res) {
// tempFilePathimgsrc
const tempFilePaths = res.tempFiles[0].path
let filename = res.tempFiles[0].name; //
//
if (filename.indexOf(".xlsx") == -1) {
uni.showToast({
icon: "none",
title: "暂时仅支持xlsx格式的文件"
})
return
} else {
console.log("开始上传");
uni.showLoading({
title: "正在上传"
})
wx.uploadFile({
url: _that.util.HOST + '/api/mobile/visit/excel-analyse', //
filePath: tempFilePaths, //data
name: 'file', //
formData: { //formData
"token": uni.getStorageSync("userInfo_token").token
},
success(res) {
var jsonlist = JSON.parse(res.data)
for (var m of jsonlist) {
_that.form.details_list.push({
name: m.name,
idcard: m.idcard,
mobile: m.mobile,
card_type: 1
})
}
uni.hideLoading();
}
})
console.log('上传到服务器')
}
}
})
},
submitOrder() {
if (this.util.isNull(this.form.leader)) {
if (this.type == "user") {
uni.showToast({
@ -416,7 +419,7 @@
}
if (this.form.card_type == 1) {
if (!uni.$u.test.idCard(this.form.idcard)) {
if (!this.util.isValidCardID(this.form.idcard)) {
uni.showToast({
icon: "none",
title: "请正确输入身份证号"
@ -478,6 +481,7 @@
<style>
@import url("@/static/css/bookbox.css");
@import url("@/static/css/activitybox.css");
.box-visitor-item {
display: flex;
justify-content: space-between;

@ -20,7 +20,7 @@
<view class="tag tag_green">
<text>{{isUnde(item.target_name)}}</text>
</view>
<view v-if="item.rate_name=='进行中'" class="activityBox-btn tag">
<view class="tag" :class="{activityBox_btn:item.isCanBook}">
<text>立即报名</text>
</view>
</view>
@ -90,24 +90,26 @@
})
},
openInfo(obj) {
if (obj.rate_name == "进行中")
uni.navigateTo({
url: "info?id=" + obj.id
})
else {
this.util.toast("当前选择活动" + obj.rate_name + "不可报名");
}
uni.navigateTo({
url: "info?id=" + obj.id
})
},
loadActivity() {
var that = this;
var nt = new Date();
this.util.request({
api: '/api/mobile/activity/index',
data: {
latitude: that.latitude,
longitude: that.longitude
longitude: that.longitude,
page_size: 100
},
utilSuccess: function(res) {
for (var mod of res.data) {
mod.isCanBook = that.$moment(nt).isBefore(mod.end_plan);
}
that.list = res.data;
},
utilFail: function(res) {

@ -4,13 +4,14 @@
<view class="activityBox">
<view class="activityBox-top">
<!-- <image src="../../static/img/img_activity.jpg" style="width: 100%;height: 333rpx;"></image> -->
<swiper autoplay="true" :interval="4000" :duration="1000" :indicator-dots="true"
indicator-active-color="rgba(255, 255, 255, 0.7)" indicator-color="rgba(239, 149, 37, 1)" :current="topSwiperIndex" @change="topSwiperTab">
<swiper-item v-for="(item,index) in list.banners" :key="index">
<view class="swiper-item">
<image :src="item.upload.url" mode="aspectFill"></image>
</view>
</swiper-item>
<swiper autoplay="true" :interval="4000" :duration="1000" :indicator-dots="true"
indicator-active-color="rgba(255, 255, 255, 0.7)" indicator-color="rgba(239, 149, 37, 1)"
:current="topSwiperIndex" @change="topSwiperTab">
<swiper-item v-for="(item,index) in list.banners" :key="index">
<view class="swiper-item">
<image :src="item.upload.url" mode="aspectFill"></image>
</view>
</swiper-item>
</swiper>
</view>
<view class="activityBox-content flex-col">
@ -46,12 +47,12 @@
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
</view>
<view class="colortext activityBox-row" v-if="list.status==1">
{{list.status==0?"已结束":"活动进行中"}} (已报名{{list.orders_total}})
</view>
</view>
<view class="colortext activityBox-row" v-if="list.status==1">
{{list.rate_name}} (已报名{{list.orders_total}})
</view>
</view>
</view>
<view class="infoBox">
@ -62,7 +63,7 @@
<rich-text :nodes="list.content"></rich-text>
</view>
</view>
<view class="infofooter flex-row" v-if="list.status!=0">
<view class="infofooter flex-row" v-if="list.isCanBook">
<view style="margin-right: 14rpx;flex: 1;">
<u-button type="primary" @click="tobook('team')"></u-button>
</view>
@ -78,25 +79,25 @@
export default {
data() {
return {
id:"",
latitude:"",
longitude:"",
list:{},
id: "",
latitude: "",
longitude: "",
list: {},
topSwiperIndex: 0,
}
},
onLoad(options){
var that = this;
that.id=options.id;
wx.getLocation({
success(res) {
console.log(res)
that.latitude=res.latitude;
that.longitude=res.longitude;
that.loadActiveInfo()
}
})
},
onLoad(options) {
var that = this;
that.id = options.id;
wx.getLocation({
success(res) {
console.log(res)
that.latitude = res.latitude;
that.longitude = res.longitude;
that.loadActiveInfo()
}
})
},
methods: {
tothere() {
@ -107,47 +108,49 @@
address: this.list.address
})
},
tobook(type) {
tobook(type) {
uni.navigateTo({
url: "book?type=" + type + "&activity_id="+this.id
url: "book?type=" + type + "&activity_id=" + this.id
})
},
loadActiveInfo() {
var that = this;
var nt = new Date();
this.util.request({
api: '/api/mobile/activity/show',
data: {
id: that.id,
latitude: that.latitude,
longitude: that.longitude
},
utilSuccess: function(res) {
res.isCanBook = that.$moment(nt).isBefore(res.end_plan);
that.list = res;
that.list.end_time = that.$moment(res.end_time).format("HH:mm");
wx.setStorage({
key: 'activityinfo',
data: res,
success: () => {
console.log('存储成功');
}
})
},
utilFail: function(res) {
}
})
},
loadActiveInfo(){
var that = this;
this.util.request({
api: '/api/mobile/activity/show',
data:{
id:that.id,
latitude:that.latitude,
longitude:that.longitude
},
utilSuccess: function(res) {
that.list = res;
that.list.end_time = that.$moment(res.end_time).format("HH:mm")
wx.setStorage({
key: 'activityinfo',
data: res,
success: ()=> {
console.log('存储成功');
}
})
},
utilFail: function(res) {
}
})
},
topSwiperTab(e) {
var that = this;
this.topSwiperIndex = Number(e.target.current);
},
isUnde(val){
if(val){
return val
}else{
return ""
}
},
topSwiperTab(e) {
var that = this;
this.topSwiperIndex = Number(e.target.current);
},
isUnde(val) {
if (val) {
return val
} else {
return ""
}
}
}
}
@ -192,15 +195,18 @@
box-shadow: 2px 3px 10px 0px rgba(107, 94, 77, 0.3);
padding: 22rpx 25rpx;
box-sizing: border-box;
}
swiper{
height:333rpx
}
swiper image{
width:100%;
height:333rpx;
}
.colortext{
color:#D98012
}
swiper {
height: 333rpx
}
swiper image {
width: 100%;
height: 333rpx;
}
.colortext {
color: #D98012
}
</style>

@ -253,10 +253,7 @@
var nt = this.$moment().format("yyyy-MM-DD");
let list = this.listDatePrice;
let cdate = list[index];
if (nt == cdate.date) {
this.util.toast("请提前一天预约");
return;
}
if (cdate.is_open === 0) {
uni.showToast({
icon: "none",
@ -401,7 +398,7 @@
var that = this;
that.listDatePrice = [];
var edate = this.$moment(sdate).add('days', 2).format("yyyy-MM-DD");
var ndate = this.$moment(sdate).add('days', 1).format("yyyy-MM-DD")
var ndate = this.$moment(sdate).add('days', 0).format("yyyy-MM-DD")
var nt = this.$moment().format("yyyy-MM-DD");
var mt = this.$moment().add('days', 1).format("yyyy-MM-DD");
var ht = this.$moment().add('days', 2).format("yyyy-MM-DD");

@ -10,7 +10,7 @@
<view class="orderBoxInfoRow flex-row" style="margin-bottom: 20rpx;">
<text class="iconfont icon-youkexuzhi"></text>
<text
class="orderBoxInfoRowTxt">订单信息{{$u.timeFormat(new Date(info.activity.start_time), 'mm月dd日')}} {{getHm(info.activity.start_time)}}-{{getHm(info.activity.end_time)}}{{info.total}}观众</text>
class="orderBoxInfoRowTxt">订单信息{{$u.timeFormat(new Date(info.activity.start_time), 'mm月dd日')}}{{getHm(info.activity.start_time)}}-{{getHm(info.activity.end_time)}}{{info.total}}人员</text>
</view>
<view class="orderBoxInfoRow flex-row">
<text class="iconfont icon-iconfontgerenzhongxin"></text>
@ -45,7 +45,7 @@
<view class="orderBoxList p0">
<view class="orderBox">
<view class="orderBoxTitle flex-row" style="justify-content: space-between;">
<text class="orderBoxTitleTxt">观众信息</text>
<text class="orderBoxTitleTxt">参与人员信息</text>
<text v-if="false" :class="isuse?'share shareuse orderBoxInfoRowTxt':'share orderBoxInfoRowTxt'">
分享二维码
</text>
@ -64,16 +64,6 @@
</view>
</view>
</view>
<view class="orderBoxList p0">
<view class="orderBoxTitle flex-row">
<text class="stars orderBoxTitleTxt">*</text>
<text class="orderBoxTitleTxt">参与须知</text>
</view>
<view class="orderBoxTitle flex-row">
<text
class="orderBoxInfoRowTxt">预约时需要个人姓名联系方式和参观时间等信息预约成功后生成预约二维码可于个人中心查看当天凭有效身份证件或预约二维码核销入场</text>
</view>
</view>
</view>
</template>

@ -630,13 +630,7 @@
var nt = this.$moment().format("yyyy-MM-DD");
let list = this.listDatePrice;
let cdate = list[index];
if (nt == cdate.date) {
uni.showToast({
icon: "none",
title: "请提前一天预约"
})
return;
}
if (cdate.is_open === 0) {
uni.showToast({
icon: "none",
@ -682,7 +676,7 @@
var that = this;
that.listDatePrice = [];
var edate = this.$moment(sdate).add('days', 2).format("yyyy-MM-DD");
var ndate = this.$moment(sdate).add('days', 1).format("yyyy-MM-DD")
var ndate = this.$moment(sdate).add('days', 0).format("yyyy-MM-DD")
var nt = this.$moment().format("yyyy-MM-DD");
var mt = this.$moment().add('days', 1).format("yyyy-MM-DD");
var ht = this.$moment().add('days', 2).format("yyyy-MM-DD");

@ -1,107 +1,106 @@
.tomap {
width: 34rpx;
height: 34rpx;
background: rgba(242, 214, 188, .4);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
align-content: center;
margin-left: 30rpx;
}
.iconfont {
color: #6EAC97;
font-size: 24rpx;
margin-right: 19rpx;
}
.icon-ditu-dibiao {
color: #787BA2;
}
.tag {
height: 37rpx;
background: #6EAC97;
border-radius: 8rpx;
padding: 7rpx 16rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.activityBox-row {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #828282;
margin-bottom: 15rpx;
}
.activityBox-btn {
background: #EF9525;
}
.activityBox {
background-color: #ffffff;
margin-bottom: 26rpx;
}
.activityBox-title {
flex: 1;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #4E4E4E;
}
.activityBox-content {
padding: 31rpx 24rpx;
box-sizing: border-box;
}
.activityBox-top {
position: relative;
}
.book-status {
background: url("@/static/img/status_bg.png") no-repeat;
background-size: cover;
width: 255rpx;
height: 48rpx;
position: absolute;
margin-left: -127.5rpx;
left: 50%;
top: 142.5rpx;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
line-height: 48rpx;
}
.book-num {
background: #FFFFFF;
opacity: 0.85;
position: absolute;
right: 0;
bottom: 21rpx;
padding: 12rpx 34rpx;
border-top-left-radius: 53rpx;
border-bottom-left-radius: 53rpx;
font-size: 20rpx;
color: #4E4E4E;
}
.book-num-y {
color: #D98012;
font-size: 34rpx;
}
.tomap {
width: 34rpx;
height: 34rpx;
background: rgba(242, 214, 188, .4);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
align-content: center;
margin-left: 30rpx;
}
.iconfont {
color: #6EAC97;
font-size: 24rpx;
margin-right: 19rpx;
}
.icon-ditu-dibiao {
color: #787BA2;
}
.tag {
height: 37rpx;
background: #ccc;
border-radius: 8rpx;
padding: 7rpx 16rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.activityBox-row {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #828282;
margin-bottom: 15rpx;
}
.activityBox_btn {
background: #EF9525;
}
.activityBox {
background-color: #ffffff;
margin-bottom: 26rpx;
}
.activityBox-title {
flex: 1;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #4E4E4E;
}
.activityBox-content {
padding: 31rpx 24rpx;
box-sizing: border-box;
}
.activityBox-top {
position: relative;
}
.book-status {
background: url("@/static/img/status_bg.png") no-repeat;
background-size: cover;
width: 255rpx;
height: 48rpx;
position: absolute;
margin-left: -127.5rpx;
left: 50%;
top: 142.5rpx;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
line-height: 48rpx;
}
.book-num {
background: #FFFFFF;
opacity: 0.85;
position: absolute;
right: 0;
bottom: 21rpx;
padding: 12rpx 34rpx;
border-top-left-radius: 53rpx;
border-bottom-left-radius: 53rpx;
font-size: 20rpx;
color: #4E4E4E;
}
.book-num-y {
color: #D98012;
font-size: 34rpx;
}

Loading…
Cancel
Save