Authored by zhangxiaoru

favorite

Showing 67 changed files with 3556 additions and 16 deletions
... ... @@ -136,7 +136,7 @@ const _getChannelResource = (params) => {
if (result && result.code === 200) {
return resourcesProcess(result.data.list);
} else {
logger.error('首页资源位接口返回状态码 不是 200');
logger.error('index resouce is not 200');
return result;
}
});
... ... @@ -156,7 +156,7 @@ const _getLeftNav = (choosed) => {
if (result && result.code === 200) {
return _processSideBar(result.data, choosed);
} else {
logger.error('侧边栏数据接口返回状态码 不是 200');
logger.error('sidebar code is not 200');
return result;
}
});
... ... @@ -191,7 +191,7 @@ const _getChannelList = () => {
});
return Object.keys(list).length ? list : channelList;
} else {
logger.error('频道选择接口返回状态码 不是 200');
logger.error('channel select code is not 200');
return channelList;
}
});
... ... @@ -210,7 +210,7 @@ const _getChannelBg = () => {
if (result && result.code === 200) {
return result.data.length && result.data[0] && result.data[0].data && result.data[0].data.list[0];
} else {
logger.error('频道选择页背景图接口返回状态码 不是 200');
logger.error('channel select background code is not 200');
return {
src: ''
};
... ...
... ... @@ -134,6 +134,48 @@ exports.delAddress = (req, res, next) => {
};
/**
* 设置默认地址
* @param req
* @param res
* @param next
*/
exports.defaultAddress = (req, res, next) => {
addressModel.setDefaultAddress({
uid: req.user.uid || 8039759, // TODO 待删除
id: req.body.id
}).then(result => {
res.json(result);
}).catch(next);
};
/**
* 订单详情页——地址列表
* @param req
* @param res
* @param next
*/
exports.addressModify = (req, res, next) => {
let responseData = {
module: 'home',
page: 'address-modify',
pageHeader: headerModel.setNav({
navTitle: '选择地址'
}),
title: '选择地址'
};
addressModel.address({
uid: req.user.uid || 8039759 // TODO 待删除
}).then(result => {
res.render('address/address-modify', Object.assign(responseData, result, {
showAddBtn: (result.address.length <= 5),
orderCode: req.query.orderCode,
relation: req.query.relation
}));
}).catch(next);
};
/**
* 异步获取三级地址数据
* @param req
* @param res
... ...
/**
* 个人中心 controller
* @author: chengyao.guo<chengyao.guo@yoho.cn>
* @date: 2016/08/10
*/
'use strict';
const headerModel = require('../../../doraemon/models/header'); // 头部model
const indexModel = require('../models/index');
exports.index = (req, res, next) => {
let params = {
uid: req.user.uid
};
let headerData = headerModel.setNav({
navTitle: '个人中心'
});
indexModel.index(params).then(result => {
if (result) {
res.render('index', Object.assign(result, {
isLogin: params.uid ? true : false,
module: 'home',
page: 'index',
title: 'Yoho!Buy 有货',
pageHeader: headerData,
pageFooter: true
}));
}
}).catch(next);
};
... ...
... ... @@ -55,6 +55,19 @@ const _saveAddressData = (params) => {
};
/**
* 调用接口设置默认地址
* @param params
* @private
*/
const _setDefaultAddress = (params) => {
return api.get('', {
method: 'app.address.setdefault',
uid: params.id,
id: params.id
});
};
/**
* 调用接口删除地址
* @param params
* @private
... ... @@ -122,6 +135,19 @@ const saveAddress = (params) => {
};
/**
* 设置默认地址
* @param params
*/
const setDefaultAddress = (params) => {
if (params.id) {
params.id = crypto.encryption(null, params.id);
}
return _setDefaultAddress(params).then(result => {
return result;
});
};
/**
* 删除地址
* @param params
*/
... ... @@ -152,5 +178,6 @@ module.exports = {
address,
saveAddress,
delAddress,
setDefaultAddress,
locationList
};
... ...
/**
* Created by PhpStorm.
* User: Targaryen
* Date: 2016/8/10
* Time: 13:43
*/
'use strict';
const api = global.yoho.API;
const singleAPI = global.yoho.SingleAPI;
const helpers = global.yoho.helpers;
const camelCase = global.yoho.camelCase;
/**
* 个人详情数据
*/
const _userData = (params) => {
return api.get('', {
method: 'app.passport.profile',
uid: params.uid
}, {code: 200});
};
/**
* 获取个人中心公告有关数据
*/
const _noticeData = () => {
return api.get('', {
method: 'app.resources.getNotices'
}, {code: 200});
};
/**
* 收藏数量接口
* @param params
* @returns {*|Promise.<TResult>}
*/
const _favoriteData = (params) => {
return singleAPI.get('brower', {
method: 'app.favorite.getFavoriteCount',
uid: params.uid
}, {code: 200});
};
/**
* 个人中心页面优惠券,收藏的商品等的数目数据
*/
const _infoNum = (params) => {
return api.get('', {
method: 'app.home.getInfoNum',
uid: params.uid,
udid: params.udid
}, {code: 200});
};
/**
* 个人中心首页
* @param params
* @returns {function()}
*/
const index = (params) => {
let finalResult = {
myIndexPage: true,
showDownloadApp: true,
navHome: true,
pageFooter: true,
refundExchangeNum: 0,
commentTotal: 0,
cartUrl: helpers.urlFormat('/cart/index/index'),
signinUrl: helpers.urlFormat('/signin.html', {refer: helpers.urlFormat('/home')})
};
return api.all([
_userData(params),
_noticeData(),
_favoriteData(params),
_infoNum(params)
]).then(result => {
if (result[0] && result[0].data) {
Object.assign(finalResult, {
profileName: result[0].data.profile_name,
headIco: result[0].data.head_ico,
vipInfo: result[0].data.vip_info
});
}
if (result[1] && result[1].data) {
Object.assign(finalResult, {
notice: result[1].data.list
});
}
if (result[2] && result[2].data) {
Object.assign(finalResult, {
productFavoriteTotal: result[2].data.product_favorite_total
});
}
if (result[3] && result[3].data) {
Object.assign(finalResult, {
sendCargoNum: result[3].data.send_cargo_num,
waitCargoNum: result[3].data.wait_cargo_num,
waitPayNum: result[3].data.wait_pay_num,
yohoCoinNum: result[3].data.yoho_coin_num,
inboxTotal: result[3].data.inbox_total,
couponNum: result[3].data.coupon_num,
brandFavoriteTotal: result[3].data.brand_favorite_total,
productBrowse: result[3].data.product_browse
});
}
return camelCase(finalResult);
});
};
module.exports = {
index
};
... ...
... ... @@ -10,6 +10,7 @@ const router = express.Router(); // eslint-disable-line
const cRoot = './controllers';
const personalController = require(`${cRoot}/qrcode`);
const homeController = require(`${cRoot}/index`);
const addressController = require(`${cRoot}/address`);
const favorite = require(`${cRoot}/favorite`);
... ... @@ -19,9 +20,13 @@ router.get('/address', addressController.address); // 地址管理页面
router.get('/addressAct', addressController.addressAct); // 地址添加页面
router.get('/addressAct/:id', addressController.addressAct); // 地址添加修改页面
router.post('/saveAddress', addressController.saveAddress); // 新增或者保存地址
router.post('/delAddress', addressController.delAddress); // 新增或者保存地址
router.post('/defaultAddress', addressController.defaultAddress); // 设置默认地址
router.post('/delAddress', addressController.delAddress); // 删除地址
router.get('/locationList', addressController.locationList); // 异步获取三级地址数据
// 个人中心
router.get('/', homeController.index);
// 我的收藏
router.get('/favorite', favorite.favorite);
... ...
<div class="my-address-page modify-address-page select-address-page yoho-page">
<div class="page-wrap clearfix modifyAdd" data-rel="{{relation}}" data-order-code="{{orderCode}}">
{{# address}}
<div class="address-item" data-address-id="{{address_id}}" >
<span class="name">{{consignee}}</span>
<span class="tel">{{mobile}}</span>
<p class="address-info">{{area}} {{address}}</p>
</div>
{{/ address}}
<a class="add-address" data-href="/home/addressAct?refer=modify">
添加新地址
</a>
<div class="confim-modify-mask hide">
<div class="confim-box">
<div class="content">
关联订单的收货地址将一起修改且不可修改第二次,请确认是否修改?
</div>
<div class="action">
<span class="cancel">
取消
</span>
<span class="confim buriedpoint">
确认
</span>
</div>
</div>
</div>
</div>
</div>
... ...
<div class="my-page yoho-page">
<div class="my-header">
{{#isLogin}}
<a class="user-info" href="/home/mydetails">
<span class="user-avatar" data-avatar="{{image headIco 128 128}}"></span>
<span class="username">{{profileName}}</span>
{{#vipInfo}}
<span class="vip-icon vip-{{curLevel}}"></span>
{{/vipInfo}}
<div class="iconfont more-icon tap-hightlight">&#xe604;</div>
</a>
{{/isLogin}}
{{^isLogin}}
<div class="user-info">
<a class="login-btn" href="{{signinUrl}}">
登录/注册
</a>
</div>
{{/isLogin}}
</div>
<div class="my-link clearfix {{^isLogin}}no-login{{/isLogin}}">
<a class="link-item tap-hightlight" href="/home/favorite">
{{#isLogin}}{{productFavoriteTotal}}{{/isLogin}}
<p>收藏的商品</p>
</a>
<a class="link-item tap-hightlight" href="/home/favorite?tab=brand">
{{#isLogin}}{{brandFavoriteTotal}}{{/isLogin}}
<p>收藏的品牌</p>
</a>
<a class="link-item tap-hightlight" href="/home/record">
{{#isLogin}}{{productBrowse}}{{/isLogin}}
<p>浏览记录</p>
</a>
</div>
<div class="notice" data-time="{{notice.time}}">
{{#notice}}
<a class="notice-item item-{{@index}}" href="{{url}}">
<span class="notice-icon"></span>
{{title}}
</a>
{{/notice}}
</div>
<!-- {{#if notice.open}}
{{/if}}-->
<div class="my-order">
<a class="order-title" href="/home/orders">
我的订单
<span class="iconfont">
查看全部订单 &#xe604;
</span>
</a>
<div class="order-type clearfix">
<a class="type-item" href="/home/orders?type=2">
<span class="iconfont">&#xe634;</span>
<br>待付款
{{#if waitPayNum}}
<span class="num">{{waitPayNum}}</span>
{{/if}}
</a>
<a class="type-item" href="/home/orders?type=3">
<span class="iconfont">&#xe63b;</span>
<br>待发货
{{#if waitCargoNum}}
<span class="num">{{waitCargoNum}}</span>
{{/if}}
</a>
<a class="type-item" href="/home/orders?type=4">
<span class="iconfont">&#xe633;</span>
<br>待收货
{{#if sendCargoNum}}
<span class="num">{{sendCargoNum}}</span>
{{/if}}
</a>
</div>
</div>
<div class="group-list">
<a class="list-item" href="/home/address">
<span class="iconfont icon">&#xe637;</span>
地址管理
<span class="iconfont num">{{address_num}} &#xe604;</span>
</a>
</div>
<div class="group-list">
<a class="list-item" href="/home/coupons">
<span class="iconfont icon">&#xe63a;</span>
优惠券
<span class="iconfont num">{{couponNum}} &#xe604;</span>
</a>
<a class="list-item" href="/home/mycurrency">
<span class="iconfont icon">&#xe635;</span>
YOHO 币
<span class="iconfont num">{{yohoCoinNum}} &#xe604;</span>
</a>
</div>
<div class="group-list">
<a class="list-item" href="/home/message">
<span class="iconfont icon">&#xe636;</span>
消息
<span class="iconfont num">{{inboxTotal}} &#xe604;</span>
</a>
</div>
<div class="group-list">
<a class="list-item" href="/home/onlineService">
<span class="iconfont icon">&#xe63c;</span>
在线客服
<span class="iconfont num">&#xe604;</span>
</a>
<a class="list-item" href="/home/suggest">
<span class="opinion"></span>
意见反馈
<span class="iconfont num">&#xe604;</span>
</a>
</div>
<div class="group-list">
<a class="list-item" href="/home/help">
<span class="iconfont icon">&#xe639;</span>
帮助
<span class="iconfont num">&#xe604;</span>
</a>
</div>
{{> common/recommend-for-you}}
{{> common/suspend-cart}}
</div>
{{> download_app}}
... ...
... ... @@ -521,6 +521,7 @@ const _detailDataPkg = (origin, uid, vipLevel, ua) => {
dest.isCollect = false;
if (origin.isCollect !== null && typeof origin.isCollect !== 'undefined' && origin.isCollect === 'Y') {
dest.isCollect = true;
dest.cartInfo.isCollect = true;
}
// 底部简介URL链接
... ... @@ -567,7 +568,7 @@ let getProductData = (data) => {
method: 'h5.product.data'
};
if (!_.isEmpty(data.uid)) {
if (data.uid) {
params.uid = data.uid;
}
... ... @@ -575,7 +576,7 @@ let getProductData = (data) => {
data.vipLevel = (user.data && user.data.vip_info && user.data.vip_info.cur_level) || '0';
return api.get('', params, {
cache: true
cache: false
}).then(result => {
return Promise.all([_getShopsInfo(result.brandId), _getPromotionInfo(result.erpProductId)]).then((info) => {
result.promotionBoList = info[1];
... ...
... ... @@ -11,14 +11,16 @@ const isTest = process.env.NODE_ENV === 'test';
module.exports = {
app: 'h5',
appVersion: '4.6.0', // 调用api的版本
port: 6001,
siteUrl: '//m.yohobuy.com',
domains: {
// api: 'http://devapi.yoho.cn:58078/',
// service: 'http://devservice.yoho.cn:58077/'
// service: 'http://devservice.yoho.cn:58077/',
api: 'http://api.yoho.cn/',
service: 'http://service.yoho.cn/'
api: 'http://testapi.yoho.cn:28078/',
service: 'http://testservice.yoho.cn:28077/',
singleApi: 'http://192.168.102.31:8092/'
},
subDomains: {
host: '.m.yohobuy.com',
... ... @@ -60,7 +62,8 @@ module.exports = {
name: 'error',
level: 'error',
filename: 'logs/error.log',
handleExceptions: true
handleExceptions: true,
maxFiles: 7
},
udp: { // send by udp
measurement: 'yohobuywap_node_log',
... ... @@ -87,7 +90,8 @@ if (isProduction) {
appName: 'm.yohobuy.com',
domains: {
api: 'http://api.yoho.yohoops.org/',
service: 'http://service.yoho.yohoops.org/'
service: 'http://service.yoho.yohoops.org/',
singleApi: 'http://single.yoho.cn/'
},
memcache: {
master: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111'],
... ... @@ -115,7 +119,8 @@ if (isProduction) {
appName: 'm.yohobuy.com for test',
domains: {
api: 'http://testapi.yoho.cn:28078/',
service: 'http://testservice.yoho.cn:28077/'
service: 'http://testservice.yoho.cn:28077/',
singleApi: 'http://192.168.102.31:8092/'
},
memcache: {
master: ['127.0.0.1:12111'],
... ...
<div class="recommend-for-you hide">
</div>
\ No newline at end of file
... ...
{{#showDownloadApp}}
<div class="float-layer hide" id="float-layer-app">
<div class="float-layer-left">
<span class="yoho-icon iconfont">&#xe60d;</span>
<p>新用户送惊喜礼包</p>
</div>
<a href="javascript:void(0);" id="float-layer-close" >
<i class="close-icon iconfont">&#xe623;</i>
<div class="circle-rightbottom"></div>
</a>
<a href="javascript:void(0);" id="float-layer-btn">
立即下载
</a>
</div>
{{/showDownloadApp}}
\ No newline at end of file
... ...
... ... @@ -88,7 +88,7 @@
"precss": "^1.4.0",
"rewire": "^2.5.2",
"shelljs": "^0.7.0",
"stylelint": "^6.9.0",
"stylelint": "^7.0.0",
"stylelint-config-yoho": "^1.2.3",
"webpack": "^1.13.1",
"webpack-dev-server": "^1.14.1",
... ... @@ -100,7 +100,6 @@
"yoho-jquery": "^2.2.4",
"yoho-jquery-lazyload": "^1.9.7",
"yoho-mlellipsis": "0.0.3",
"yoho-node-lib": "0.0.31",
"yoho-swiper": "^3.3.1"
}
}
... ...

3.6 KB | W: | H:

23.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
/**
* 订单 地址修改
* @author: liangxiaosong
* @date: 2016/5/11
*/
var $ = require('yoho-jquery'),
tip = require('../plugin/tip');
var $confimMod = $('.confim-modify-mask'),
$modifyAdd = $('.modifyAdd'),
orderCode = $modifyAdd.data('orderCode'),
selectId;
require('../common');
$('.address-item').on('touchend', function() {
selectId = $(this).data('addressId');
if ($modifyAdd.data('rel') === true) {
$confimMod.find('.content').text('关联订单的收货地址将会一起修改且不可修改第二次,请确认是否修改?');
$confimMod.fadeIn();
} else {
$confimMod.find('.content').text('收货地址仅且只能修改一次,请确认是否修改?');
$confimMod.fadeIn();
}
});
$confimMod.on('touchend', '.cancel', function() {
selectId = null;
$confimMod.fadeOut();
return false;
}).on('touchend', '.confim', function() {
$.ajax({
method: 'GET',
url: '/home/chooseAddress',
data: {
addressId: selectId,
orderCode: orderCode
}
}).then(function(res) {
if ($.type(res) !== 'object') {
res = {};
}
if (res.code !== 200) {
$confimMod.fadeOut();
tip.show(res.message || '网络出了点问题~');
} else {
window.location.href = '/home/orderdetail?order_code=' + orderCode;
}
}).fail(function() {
tip.show('网络出了点问题~');
}).always(function() {
selectId = null;
});
return false;
});
... ...
require('./recommend-for-you-user-center');
/**
* 个人中心首页
* @author: bikai<kai.bi@yoho.cn>
* @date: 2015/11/12
*/
var $ = require('yoho-jquery'),
noticeScroll = require('../plugin/notice-scroll');
var $userAvatar = $('.user-avatar'),
$listItem = $('.list-item');
var myImage = new Image(),
avatar;
require('../common');
require('./recommend-for-you-user-center');
require('../product/suspend-cart.js');
// 部分老用户没有头像,显示默认头像
avatar = $userAvatar.data('avatar');
myImage.src = avatar;
myImage.onload = function() {
$userAvatar.css('background-image', 'url(' + avatar + ')');
};
noticeScroll('.notice', $('.notice').data('time') * 1000);
$('.yoho-page').on('touchstart', '.list-item, .type-item, .order-title', function() {
$listItem.removeClass('highlight');
$(this).addClass('highlight');
}).on('touchend touchcancel', '.list-item, .type-item, .order-title', function() {
$(this).removeClass('highlight');
});
... ...
/**
* 为您优选
* @author: bikai<kai.bi@yoho.cn>
* @date: 2015/11/16
*/
var $ = require('yoho-jquery'),
lazyLoad = require('yoho-jquery-lazyload');
var $recommendForYou = $('.recommend-for-you');
$.get('/product/recommend-for-you/userCenter').then(function(html) {
var PRDID = [];
$recommendForYou.html(html);
lazyLoad($('img.lazy'));
// 为您优选埋点 http://redmine.yoho.cn/issues/10116
$recommendForYou.find('.good-info').each(function() {
PRDID.push($(this).data('id'));
});
let $recommendSonLen = $recommendForYou.find('.good-info').length;
if ($recommendSonLen === 0) {
$recommendForYou.hide();
} else {
$recommendForYou.show();
}
window.givePoint({
'REC_POSE': 110004,
'PRD_ID': PRDID.join(','),
'PRD_NUM': $('.recommend-for-you .good-info').length,
'ACTION_ID': 0,
'page_num': 1
});
$recommendForYou.find('.good-info').on('click', 'a', function() {
var index = $(this).closest('.good-info').index() + 1;
window.givePoint({
'REC_POSE': 110004,
'PRD_ID': $(this).closest('.good-info').data('id'),
'PRD_NUM': index,
'ACTION_ID': 1,
'page_num': 1
});
return true;
});
}).fail(function() {
$recommendForYou.hide();
});
... ...
/**
* 悬浮购物车
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/11/1
*/
var $ = require('yoho-jquery');
var $cart = $('#suspend-cart');
$.ajax({
type: 'GET',
url: '/cart/index/count',
success: function(data) {
var count;
if (data.code === 200) {
count = data.data.cart_goods_count;
if (count > 99) {
count = '99+';
}
if (count === 0) {
$('.cart-count').remove();
}
$cart.find('.cart-count').html(count).removeClass('hide');
}
}
});
... ...
@import "qrcode";
@import "favorite";
@import "address/index";
@import "favorite";
... ...
.modify-address-page {
.confim-modify-mask {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 5;
}
.confim-box {
position: absolute;
left: 50%;
top: 50%;
margin-left: -270px;
margin-top: -144px;
width: 540px;
text-align: center;
color: #444;
background: #fff;
font-size: 32px;
font-weight: bold;
border-radius: 10px;
.content {
text-align: left;
padding: 30px 20px;
line-height: 80px;
}
.action {
line-height: 88px;
border-top: 1px solid #e0e0e0;
span {
display: inline-block;
width: 260px;
&:first-child {
border-right: 1px solid #e0e0e0;
}
}
}
.confim {
color: #d0021b;
}
}
}
... ...
.my-address-page {
width: 100%;
background: #f0f0f0;
.address-item {
display: block;
padding: 20px 30px;
color: #b0b0b0;
background: #fff;
border-bottom: 1px solid #e0e0e0;
.name {
display: inline-block;
max-width: 380px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 30px;
line-height: 56px;
color: #444;
font-weight: bold;
}
.tel {
float: right;
font-size: 30px;
line-height: 56px;
color: #444;
font-weight: bold;
}
.address-info {
font-size: 24px;
line-height: 38px;
}
.action {
font-size: 32px;
line-height: 60px;
text-align: right;
.edit,
.del {
display: inline-block;
text-align: center;
width: 60px;
height: 60px;
color: #999;
&:hover {
color: #666;
}
}
.edit {
margin-right: 20px;
}
}
}
.add-address {
display: block;
margin-top: 30px;
margin-bottom: 30px;
font-size: 32px;
line-height: 88px;
color: #444;
background: #fff;
text-align: center;
font-weight: bold;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
.confim-mask {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 5;
}
.confim-box {
position: absolute;
left: 50%;
top: 50%;
margin-left: -270px;
margin-top: -144px;
width: 540px;
text-align: center;
color: #444;
background: #fff;
font-size: 32px;
font-weight: bold;
border-radius: 10px;
.content {
line-height: 200px;
}
.action {
line-height: 88px;
border-top: 1px solid #e0e0e0;
span {
display: inline-block;
width: 260px;
&:first-child {
border-right: 1px solid #e0e0e0;
}
}
}
.confim {
color: #d0021b;
}
}
}
.my-edit-address-page {
width: 100%;
color: #d0d0d0;
background: #f0f0f0;
.edit-address {
padding: 0 30px;
background: #fff;
font-size: 30px;
line-height: 88px;
border-bottom: 1px solid #e0e0e0;
label {
display: block;
position: relative;
&:after {
content: "";
position: absolute;
right: -30px;
bottom: 0;
width: 610px;
height: 0;
border-top: 1px solid #e0e0e0;
}
&:last-of-type:after {
content: none;
}
.iconfont {
position: absolute;
right: 0;
top: 0;
}
}
input, textarea {
position: absolute;
top: 0;
right: 40px;
width: 360px;
height: 88px;
color: #444;
padding: 0;
border: none;
-webkit-appearance: none;
}
p{
position: absolute;
top: 0;
right: 40px;
width: 360px;
height: 88px;
color: #444;
padding: 0;
border: none;
}
.address {
height: 176px;
}
textarea {
right: 0;
width: 400px;
height: 58px * 2;
padding: 20px 0;
resize: none;
}
}
.submit {
margin: 30px auto 0;
width: 470px;
height: 88px;
color: #fff;
background: #444;
text-align: center;
font-size: 32px;
line-height: 88px;
&.highlight {
background: rgba(0, 0, 0, 0.6);
}
}
}
.my-address-list-page {
position: relative;
width: 100%;
color: #444;
background: #fff;
li {
padding: 0 30px;
font-size: 32px;
line-height: 88px;
border-bottom: 1px solid #e0e0e0;
.iconfont {
float: right;
color: #d0d0d0;
}
&.highlight {
background: #eee;
}
ul {
display: none;
position: absolute;
top: 0;
left: 0;
background: #fff;
width: 100%;
}
}
}
... ...
.browse-record-good {
position: relative;
padding: 0.5rem 0 0.5rem 0.75rem;
display: block;
.thumb {
float: left;
width: 120px;
height: 160px;
}
.sold-out {
display: inline;
}
.deps {
margin-left: 135px;
padding: 0.5rem 0;
border-bottom: 1px solid #e0e0e0;
margin-bottom: -0.75rem;
}
.name {
font-size: 28px;
max-width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.price {
margin: 0.3rem 0;
font-size: 16px;
}
.sale-price {
color: #f00;
&.original-price {
color: #000;
}
}
.market-price {
text-decoration: line-through;
color: #b0b0b0;
}
.sold-out-tag {
font-size: 16px;
line-height: 30px;
text-align: center;
color: #fff;
background: #7f7f7f;
padding: 0.125rem 0.375rem;
border-radius: 1rem;
}
.del-icon {
position: absolute;
right: 0.75rem;
width: 60px;
height: 60px;
line-height: 60px;
text-align: center;
color: #999;
}
}
.browse-record-page {
.load-more {
width: 100%;
height: 1.75rem;
line-height: 1.75rem;
text-align: center;
}
.no-record {
position: absolute;
background: #fff;
text-align: center;
top: 50%;
margin-top: -220px;
width: 100%;
.icon {
width: 196px;
height: 207px;
background: resolve('me/no-record.png') no-repeat;
background-size: 100%;
margin: 0 auto;
}
span {
display: block;
color: #b0b0b0;
font-size: 24px;
margin: 30px 0 110px;
}
.walk-way {
display: block;
height: 80px;
line-height: 80px;
width: 70%;
margin: 0 auto;
text-align: center;
font-size: 30px;
color: #fff;
background: #444;
border-radius: 5PX;
}
}
}
... ...
.my-coupon-page {
.employ{
width: 100%;
height: 90px;
border-bottom:1px solid #e0e0e0;
position: relative;
span{
width: 49%;
height: 48px;
line-height: 48px;
overflow: hidden;
border-right: 2PX solid #e0e0e0;
margin: 21px 0;
float: left;
text-align: center;
font-size: 32px;
color: #b0b0b0;
&:last-of-type{
border:none;
}
&.active{
color: #444444;
}
}
}
.coupon-list{
width:100%;
height: auto;
overflow:hidden;
.employ-main{
display: block;
width: 90.625%;
height: 180px;
overflow: hidden;
margin: 30px auto;
background-image: resolve('me/employ/employ.jpg');
background-position: top center;
background-repeat:no-repeat;
background-size: 100% 100%;
color: #fff;
position: relative;
&.focus {
background-image: resolve('me/employ/employ-red.jpg');
}
span{
width: 34.482759%;
height: 100%;
float: left;
text-align: center;
line-height: 180px;
font-size: 86px;
}
p{
width: 59.517241%;
height: auto;
margin: 0 12px;
float: left;
&:first-of-type{
margin-top: 30px;
font-size: 27.4px;
height: auto;
min-height: 80px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
}
i{
width: 100%;
height: 100%;
overflow: hidden;
display: block;
position: absolute;
top: 0;
left: 0;
background: resolve('me/employ/employsy.png') right top no-repeat;
background-size:auto 100%;
}
}
.null{
width: 100%;
height:auto;
overflow: hidden;
position: absolute;
left: 0;
top:50%;
transform: translateY(-50%);
i{
width: 100%;
height: 120px;
overflow: hidden;
display: block;
background: resolve('me/employ/not.png') center top no-repeat;
background-size:auto 100%;
}
p{
width: 100%;
height: auto;
overflow: hidden;
padding:20px 0 0;
font-size: 32px;
text-align: center;
color: #444;
}
a{
width: 73.75%;
height: 80px;
overflow: hidden;
font-size: 36px;
line-height: 80px;
display: block;
background: #444444;
color: #fff;
text-align: center;
margin: 60px auto 0;
border-radius: .2rem
}
}
}
.none{
display: none;
}
}
... ...
.yoho-favorite-page {
width: 100%;
height: auto;
.fav-tab {
width: 100%;
height: 88px;
line-height: 88px;
border-bottom: 1px solid #e0e0e0;
color: #b0b0b0;
font-size: 26px;
li {
width: 50%;
height: 100%;
float: left;
text-align: center;
&.active {
color: #444;
}
&:nth-last-of-type(1) {
float: right;
position: relative;
&:after {
content: '';
display: block;
width: 1px;
height: 44px;
position: absolute;
left: 0;
top: 22px;
background: #b0b0b0;
}
}
}
}
.fav-content {
.fav-type {
display: none;
}
.show {
display: block;
}
.fav-null {
font-size: 22px;
color: #444;
display: block;
margin-top: 100px;
text-align: center;
&:before {
content: '';
display: block;
width: 188px;
height: 171px;
background: resolve("me/fav/fav-null.png");
background-size: 100% 100%;
margin: 0 auto 45px auto;
}
}
.go-shopping {
width: 472px;
height: 88px;
line-height: 88px;
margin: 80px auto 0 auto;
background: #444;
text-align: center;
color: #fff;
display: block;
font-size: 26px;
border-radius:.2rem;
}
.fav-product-list {
list-style: none;
margin-left: 30px;
li {
height: auto;
overflow: hidden;
margin-top: 20px;
}
.fav-img-box {
width: 90px;
height: 120px;
float: left;
margin-right: 24px;
img {
display: block;
overflow: hidden;
width: 100%;
height: 100%;
}
}
.fav-info-list {
color: #444;
font-size: 24px;
border-bottom: 1px solid #e0e0e0;
padding-bottom: 20px;
height: 120px;
overflow: hidden;
position: relative;
h2 {
width: 430px;
/*white-space: nowrap;
overflow: hidden;*/
text-overflow: ellipsis;
}
.fav-price {
.new-price {
color: #d1021c;
}
.price-underline {
text-decoration: line-through;
margin-left: 15px;
color: #b0b0b0;
}
}
.save-price {
position: absolute;
bottom: 20px;
left: 0;
width: 100%;
min-height: 24px;
&.save-price-number {
text-indent: 42px;
color: #b0b0b0;
padding-top: 3px;
&:before {
content: '';
display: block;
background: url("/me/fav/save-price.png");
width: 32px;
height: 32px;
position: absolute;
top: 50%;
left: 0;
margin-top: -16px;
}
span {
margin-left: 15px;
}
.del-fav {
text-indent: 0;
margin-left: 0;
}
}
span {
color: #d1021c;
&.sell-out {
padding: 5px 18px;
color: #fffefe;
border-radius: 20px;
background: #7f7f7f;
font-size: 22px;
}
&.del-fav {
width: 2rem;
height: 1.5rem;
line-height: 1.5rem;
position: absolute;
top: 50%;
margin-top: -0.75rem;
right: 0;
color: #999;
padding-right: 0.75rem;
text-align: right;
}
}
}
}
}
/*品牌收藏*/
.fav-brand-swiper {
border-top: 1px solid #e0e0e0;
border-bottom: 28px solid #f0f0f0;
position: relative;
&:nth-of-type(1) {
border-top: 0;
}
&:after {
content: '';
position: absolute;
left: 0;
bottom: -2px;
border-top: 1px solid #e0e0e0;
display: block;
width: 100%;
height: 1px;
}
.swiper-header {
height: 100px;
padding: 20px 30px;
display: inline-block;
position: relative;
width: 100%;
box-sizing: border-box;
.swiper-logo {
height: 100%;
display: inline-block;
float: left;
margin-right: 45px;
> img {
max-height: 100%;
vertical-align: middle;
}
}
.brand-info {
float: left;
.brand-name {
font-size: 28px;
b {
color: #b0b0b0;
font-weight: normal;
}
}
.brand-update {
font-size: 22px;
b {
color: #b0b0b0;
font-weight: normal;
}
.brand-new {
color: #86bf4a;
margin-right: 24px;
}
.brand-discount {
color: #d1021c;
}
}
}
.fav-more {
width: 2.5rem;
height: 2.5rem;
position: absolute;
top: 0;
right: 0;
&:after {
background: url("/me/fav/fav-more.png");
width: 18px;
height: 29px;
position: absolute;
top: 50%;
right: 30px;
margin-top: -15px;
content: '';
}
}
}
.swiper-container {
height: 365px;
margin: 0 30px;
.swiper-slide {
width: 225px;
height: 100%;
float: left;
padding-right: 30px;
&:nth-last-of-type(1) {
padding-right: 0;
}
img {
display: block;
width: 100%;
height: 300px;
overflow: hidden;
}
.brand-product {
height: 65px;
line-height: 65px;
text-align: center;
font-size: 22px;
.price-discount {
span {
color: #d1021c
}
b {
color: #b0b0b0;
text-decoration: line-through;
font-weight: normal;
margin-left: 13px;
}
}
}
}
}
}
}
.fav-load-more,.fav-brand-load-more {
width: 100%;
height: 2rem;
line-height: 2rem;
text-align: center;
color: #444;
&.load-background {
background: resolve('loading.gif') center center no-repeat;
background-size: auto 40%;
}
}
.fav-content-loading {
width: 100%;
height: 2rem;
background: resolve('loading.gif') center center no-repeat;
background-size: auto 40%;
position: absolute;
top: 50%;
left: 0;
margin-top: -1rem;
}
}
... ...
.my-page {
color: #444;
background: #f0f0f0;
a {
color: #444;
}
.user-info {
display: block;
position: relative;
padding: 0 30px;
color: #fff;
font-size: 34px;
line-height: 168px;
height: 168px;
background: resolve("me/index/header-bg.jpg");
background-size: cover;
.user-avatar {
float: left;
position: relative;
top: 16px;
width: 126px;
height: 126px;
border-radius: 50%;
border: 6px solid #a7a8a9;
background-image: resolve("me/index/user-avatar.png");
background-size: 100%;
}
.username {
float: left;
padding: 0 16px;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: 260px;
}
.vip-icon {
display: inline-block;
width: 72px;
height: 32px;
vertical-align: middle;
}
.vip-3 {
background: url("/me/vip/vip-3.png");
}
.vip-2 {
background: url("/me/vip/vip-2.png");
}
.vip-1 {
background: url("/me/vip/vip-1.png");
}
.more-icon {
position: absolute;
top: 40px;
right: 30px;
width: 88px;
height: 88px;
line-height: 88px;
text-align: center;
&.highlight {
background: rgba(200,200,200,.1)!important;
}
}
}
.login-btn {
display: block;
position: absolute;
top: 40px;
left: 194px;
width: 244px;
height: 82px;
line-height: 82px;
color: #fff;
border: 4px solid #fff;
text-align: center;
}
.my-link {
padding: 6px 0;
text-align: center;
background: rgba(0,0,0,0.8);
height: 89px;
.link-item {
position: relative;
float: left;
color: #fff;
font-size: 28px;
width: 212px;
&.highlight {
background: rgba(200, 200, 200, 0.1) !important;
}
p {
font-size: 24px;
}
&:after {
content: '';
position: absolute;
right: 0;
top: 24px;
width: 0;
height: 44px;
border-right: 1px solid #fff;
}
&:last-of-type:after {
content: none;
}
}
&.no-login {
padding: 0;
height: 88px;
.link-item p {
font-size: 32px;
line-height: 88px;
}
}
}
.notice {
margin-bottom: 30px;
padding: 0 30px;
background: #fff;
height: 72px;
overflow: hidden;
.notice-item {
display: block;
width: 100%;
font-size: 24px;
line-height: 72px;
color: #444;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.notice-icon {
display: inline-block;
margin-right: 10px;
width: 28px;
height: 28px;
background: url("/me/index/volume.png");
vertical-align: middle;
}
}
.my-order {
margin-bottom: 30px;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #fff;
.order-title {
display: block;
padding: 0 30px;
font-size: 16PX;
line-height: 88px;
span {
color: #e0e0e0;
float: right;
}
&.highlight {
background: #eee;
}
}
.order-type {
padding: 20px 30px;
text-align: center;
border-top: 1px solid #e0e0e0;
.type-item {
position: relative;
float: left;
color: #444;
font-size: 14PX;
line-height: 1.5;
width: 193px;
&.highlight {
background: #eee;
}
.num {
position: absolute;
top: -24px;
right: 36px;
width: 72px;
height: 72px;
font-size: 40px;
line-height: 72px;
color: #fff;
background: #f03d35;
text-align: center;
border-radius: 50%;
transform: scale(0.5);
}
}
.iconfont {
font-size: 40px;
}
}
}
.group-list {
margin-bottom: 30px;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #fff;
.list-item {
display: block;
position: relative;
padding: 0 30px;
font-size: 16PX;
line-height: 88px;
.opinion{
width: 1.3rem;
height: 1.3rem;
overflow: hidden;
display: inline-block;
background: url("/me/index/talk.png");
position: relative;
top: .36rem;
margin-right: 12px;
}
&.highlight {
background: #eee;
}
&:after {
content: '';
position: absolute;
right: 0;
bottom: 0;
width: 540px;
height: 0;
border-top: 1px solid #e0e0e0;
}
&:last-child:after {
content: none;
}
}
.icon {
margin-right: 10px;
font-size: 50px;
vertical-align: top;
}
.num {
color: #e0e0e0;
float: right;
}
}
}
... ...
.iHelp{
width: 100%;
height: auto;
overflow: hidden;
ul{
width: 100%;
height: auto;
overflow: hidden;
display: block;
border-top: 1px solid #e0e0e0;
li{
width: 100%;
height: 80px;
line-height: 84px;
overflow: hidden;
font-size: 28px;
border-bottom: 1px solid #e0e0e0;
float: right;
color: #444444;
&:last-of-type{
border-bottom:none;
}
a:visited {
color: #444444;
}
span{
width: 85%;
height: 100%;
overflow: hidden;
float: left;
padding-left: 5%;
}
i{
color: #e0e0e0;
}
}
}
}
.deal_main{
margin: .5rem 3%;
font-size:1.2em;
width: 94%;
overflow: hidden;
}
... ...
@import 'suggest';
@import "home";
@import "vip-grade";
@import "order";
@import "order-detail";
@import "coupons";
@import "personal-details";
@import "yoho-coin";
@import "fav";
@import "suggest";
@import "address";
@import "address-modify";
@import "online-service";
@import "my-guang";
@import "ihelp";
@import "browse-record";
@import "logistic";
@import "pay";
@import "yoho-coin-new";
@import "yoho-coin-detail";
@import "message";
... ...
$logistic_gray: #f0f0f0;
$border_color_strong: #e5e5e5;
$border_color_light: #eee;
.logistic-page {
background-color: $logistic_gray;
.overview {
height: 120px;
line-height: 120px;
width: 100%;
margin-bottom: 40px;
background-color: #fff;
color: #464646;
border-bottom: 1px solid $border_color_strong;
.left {
width: 19%;
float: left;
text-align: center;
height: 100%;
.icon {
width: 88px;
height: 88px;
margin: 0 auto;
background-size: 100%;
background-repeat: no-repeat;
background-position: center;
margin-top: 16px;
}
}
.right {
width: 81%;
float: left;
padding-top: 20px;
padding-bottom: 20px;
height: 80px;
div {
height: 40px;
line-height: 44px;
color: #595959;
font-size: 24px;
}
}
.info {
padding-right: 4px;
}
}
.title {
height: 112px;
line-height: 112px;
background-color: #fff;
padding-left: 40px;
font-size: 40px;
}
.detail {
background-color: #fff;
padding-left: 80px;
margin-bottom: 40px;
}
.timeline-box {
border-left: 1px solid $border_color_strong;
position: relative;
padding-left: 52px;
}
.timeline-node {
position: absolute;
top: 32px;
left: -9.04444px;
display: inline-block;
width: 16.4px;
height: 16.4px;
background-color: $border_color_strong;
border-radius: 100%;
}
.timeline-box:first-child {
.timeline-node {
background-color: #989898;
}
.timeline-info-row {
color: #606060;
}
}
.timeline-info {
padding: 20px 0;
border-bottom: 1px solid $border_color_strong;
}
.timeline-box:last-child {
.timeline-info {
border: none;
}
}
.timeline-info-row {
min-height: 40px;
line-height: 40px;
font-size: 28px;
color: #bababa;
padding-right: 32px;
}
.banner {
margin-bottom: 40px;
a {
img {
width: 100%;
height: 100%;
}
}
}
}
... ...
.massage-page {
margin-top: 16px;
padding-bottom: 24px;
.massage-list {
padding: 12px 100px 12px 24px;
border-bottom: 1px solid #f8f8f8;
position: relative;
overflow: hidden;
p {
font-size: 28px;
color: #222;
}
span {
font-size: 24px;
color: #999;
}
i {
position: absolute;
right: 48px;
top: 24px;
color: #ccc;
}
strong {
width: 8px;
height: 8px;
position: absolute;
left: 16px;
top: 40px;
background: #f00;
border-radius: 50%;
}
}
.massage-main {
border-bottom: 1px solid #f8f8f8;
padding: 12px;
margin-left: 10px;
margin-bottom: 10px;
h6 {
margin-bottom: 8px;
}
span {
color: #656565;
}
}
.sale-btn {
background-color: #ea2622;
color: #fff;
padding: 5px 10px 5px 10px;
}
.coupon-item {
margin-left: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #f8f8f8;
margin-top: 10px;
.coupon-img {
width: 128px;
height: auto;
overflow: hidden;
float: left;
margin-right: 16px;
img {
width: 100%;
height: auto;
}
}
.coupon-info {
font-size: 24px;
span {
color: #f00;
}
}
.coupon-action {
width: 110px;
font-size: 24px;
letter-spacing: 2px;
margin: 3px 0 0 0;
height: 35px;
line-height: 35px;
background: #ed0010;
text-align: center;
margin-left: 144px;
a {
display: block;
color: #fff;
width: 100%;
height: 100%;
}
}
}
}
... ...
.my-guang-page {
.null {
height: 240px;
width: 100%;
position: absolute;
text-align: center;
top: 50%;
margin-top: -120px;
span {
color: #b0b0b0;
font-size: 24px;
margin-top: 20px;
}
}
.icon-null {
width: 188px;
height: 171px;
background: url("/me/fav/fav-null.png");
margin: 0 auto;
margin-bottom: 30px;
}
}
... ...
@define-extend qa {
margin-left: 30px;
padding: 0 40px 0 10px;
font-size: 30px;
line-height: 76px;
font-weight: bold;
}
.online-service-page {
background: #f0f0f0;
.question {
background: #fff;
}
.question-title {
padding: 20px 30px;
font-size: 28px;
line-height: 1;
color: #b0b0b0;
}
.question-tab {
padding: 10px 30px 30px;
font-size: 32px;
line-height: 58px;
text-align: center;
color: #b0b0b0;
.current {
color: #444;
}
.line {
margin: 0 32px;
border-left: 1px solid #b0b0b0;
}
}
.question-list {
display: none;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
&.current {
display: block;
}
li {
font-size: 28px;
line-height: 90px;
a {
display: block;
color: #444;
width: 610px;
margin-left: 30px;
border-bottom: 1px solid #ccc;
}
.iconfont {
float: right;
margin-right: 30px;
color: #ccc;
font-size: 32px;
}
&:last-child {
a {
border-bottom: none;
}
}
&.highlight {
background: #eee;
}
}
}
.connect-info {
margin-top: 30px;
font-size: 28px;
line-height: 50px;
background: #fff;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
p {
margin-top: 25px;
margin-left: -72px;
line-height: 1.5;
}
.iconfont {
font-size: 46px;
}
.icon-yoho-enter {
color: #ccc;
float: right;
font-size: 32px;
}
.connect-item {
position: relative;
a {
display: block;
padding: 20px 30px 20px 94px;
color: #444;
}
&:after {
content: '';
position: absolute;
right: 0;
bottom: 0;
width: 548px;
height: 1px;
background: #ccc;
}
&:last-child {
&:after {
content: none;
}
}
&.highlight {
background: #eee;
}
}
.icon {
display: inline-block;
margin-right: 28px;
margin-left: -70px;
vertical-align:middle;
}
}
}
.online-service-detail-page {
background: #f0f0f0;
.qa-list {
.question-item {
margin-bottom: 32px;
border-top: 1px solid #c8c7cc;
border-bottom: 1px solid #c8c7cc;
color: #444;
background: #fff;
&:last-child {
margin-bottom: 0;
}
}
.question {
@extend qa;
position: relative;
color: #000;
&:after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 100%;
border-top: 1px solid #c8c7cc;
}
}
.answer {
@extend qa;
}
}
}
... ...
.order-detail-page {
background: #f0f0f0;
.block {
position: relative;
background: #fff;
padding: 20px 30px;
.iconfont {
position: absolute;
left: 30px;
top: 50%;
font-size: 40px;
margin-top: -30px;
}
&.more-jit {
background: #fff;
padding: 30px 20px;
border-bottom: 1px solid #e0e0e0;
padding-top: 0;
padding-bottom: 0;
margin-bottom: 0;
}
.more-jit {
height: 88px;
line-height: 88px;
position: relative;
span {
font-size: 34px;
color: #444;
}
.iconfont {
position: absolute;
right: 0;
left: auto;
top: auto;
margin: 0;
}
}
}
.sub {
position: relative;
.iconfont {
left: 0;
}
}
.logistics {
display: block;
.icon-right {
right: 25px;
left: auto;
color: #b0b0b0;
}
.sub-content {
border-top: 1px solid #e0e0e0;
margin-top: 20px;
padding-top: 20px;
}
}
.owner-info {
line-height: 1.5;
}
.range{
background-image: resolve("me/rang.png");
background-size: cover;
width: 640px;
height: 20px;
background-color: #FFFFFF;
}
.beside-icon {
margin-left: 60px;
}
.name-phone {
font-size: 30px;
span {
float: right;
}
}
.address {
font-size: 24px;
margin-top: 10px;
}
.rest {
display: none;
position: relative;
width: 100%;
text-align: right;
color: #f00;
font-size: 24px;
.iconAddress {
position: static;
font-size: 24px;
}
}
.order-status {
margin: 20px 0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
padding-right: 0;
}
.sub-content span {
display: block;
color: #b0b0b0;
font-size: 24px;
}
.sub-content .sub-title {
display: block;
color: #000;
font-size: 28px;
}
.goods {
padding: 0;
margin-top: 20px;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
.cost {
/*margin-bottom: 100px; 排除被固定底部遮挡的影响*/
li {
font-size: 28px;
span {
float: right;
}
&:last-child span {
color: #f00;
}
}
}
.dollar{
background: #ffffff;
padding: 0.5rem 0.75rem;
height:1.5rem;
line-height:1.5rem;
font-size:0.7rem ;
.bg-dollar{
display: inline-block;
width: 0.6rem;
height: 0.6rem;
background: url('/me/yoho-coin/dollar.png') center center;
background-size: 100% 100%;
vertical-align: middle;
}
}
.opt {
text-align: right;
border-top: 1px solid #e0e0e0;
}
.btn {
display: inline-block;
box-sizing: border-box;
width: 140px;
height: 60px;
line-height: 60px;
border-radius: 5PX;
font-size: 26px;
text-align: center;
border: 1px solid #000;
}
.btn-pay {
color: #fff;
border: none;
background: #d0021b;
margin-left: 10px;
font-size: 24px;
}
.count-down {
list-style: none;
padding: 0;
display: inline-block;
text-align: right;
font-size: 24px;
color:#b0b0b0;
float:left;
margin-left: 30px;
margin-top: 20px;
.count-down-icon {
margin-top: -8px;
font-size: 30px;
}
&.hide {
display: none;
}
li {
display: inline-block;
}
li span {
font-size: 24px;
line-height: 24px;
}
}
.reason-mask {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(0, 0, 0, .5);
z-index: 1;
visibility: hidden;
.reason-box {
border-bottom: 1px solid #ccc;
font: inherit;
vertical-align: baseline;
position: absolute;
bottom: 0;
width: 100%;
height: 380px;
color: #444;
background: #fff;
padding-bottom: 20px;
.box-head {
height: 60px;
line-height: 60px;
text-align: right;
font-size: 24px;
background: rgb(240, 240, 240);
padding-right: 30px;
}
.box-main {
background: #FFFFFF;
padding: 20px;
height:300px;
.active-mask {
width: 500px;
height: 60px;
position: absolute;
left: 50%;
top: 50%;
margin-top: -18px;
margin-left: -250px;
z-index: 8;
background: rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgb(223,224,224);
border-top: 1px solid rgb(223,224,224);
}
}
li {
text-align: center;
background: #FFF;
color: rgba(0, 0, 0, .5);
font-size: 28px;
}
.swiper-slide-active {
padding-top: 0;
font-style: normal;
font-size: 32px;
color: rgb(0, 0, 0);
line-height: 58px;
}
}
}
.invoice-info {
margin: 20px 0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #fff;
padding: 30px;
box-sizing: border-box;
overflow: hidden;
span {
font-size: 28px;
color: #444;
line-height: 40px;
}
.invoice-fr {
float: right;
}
.invoice-title {
text-align: right;
width: 450px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.invoice-see {
color: #d0021b;
}
}
.invoice-info {
margin: 20px 0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #fff;
padding: 30px;
box-sizing: border-box;
overflow: hidden;
span {
font-size: 28px;
color: #444;
line-height: 40px;
}
.invoice-fr {
float: right;
}
.invoice-see {
color: #d0021b;
}
}
.tickets-mobile {
font-size:32px;
height: 90px;
line-height: 90px;
.pull-left {
float:left;
}
.pull-right {
float:right;
}
}
}
... ...
.order-page {
background: #f0f0f0;
.reason-mask {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(0, 0, 0, .5);
z-index: 5;
visibility: hidden;
.reason-box {
border-bottom: 1px solid #ccc;
font: inherit;
vertical-align: baseline;
position: absolute;
bottom: 0;
width: 100%;
height: 380px;
color: #444;
background: #fff;
padding-bottom: 20px;
.box-head {
height: 60px;
line-height: 60px;
text-align: right;
font-size: 36px;
background: rgb(240, 240, 240);
padding-right: 30px;
}
.box-main {
background: #FFFFFF;
padding: 20px;
height:300px;
.active-mask {
width: 500px;
height: 60px;
position: absolute;
left: 50%;
top: 50%;
margin-top: -18px;
margin-left: -250px;
z-index: 8;
background: rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgb(223,224,224);
border-top: 1px solid rgb(223,224,224);
}
}
li {
text-align: center;
background: #FFF;
color: rgba(0, 0, 0, .5);
font-size: 28px;
}
.swiper-slide-active {
padding-top: 0;
font-style: normal;
font-size: 32px;
color: rgb(0, 0, 0);
line-height: 58px;
}
}
}
.order {
position: relative;
display: block;
background: #fff;
margin: 30px 0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
&:last-child {
margin-bottom: 0;
}
.header, .footer {
height: 90px;
line-height: 90px;
font-size: 30px;
padding: 0 30px;
}
.header {
border-bottom: 1px solid #e0e0e0;
}
.order-status {
float: right;
}
.footer {
text-align: right;
border-top: 1px solid #e0e0e0;
}
.sum-cost {
color: #e01;
margin-left: 5px;
}
.order-opt {
padding: 30px 0;
padding-right: 30px;
border-top: 1px solid #e0e0e0;
text-align: right;
.btn {
display: inline-block;
box-sizing: border-box;
height: 60px;
line-height: 60px;
width: 140px;
font-size: 24px;
text-align: center;
border: 1px solid #000;
border-radius: 5PX;
}
.pay {
background: #d0021b;
color: #fff;
border: none;
margin-left: 20px;
}
.count-down {
list-style: none;
padding: 0;
display: inline-block;
text-align: right;
font-size: 24px;
color:#b0b0b0;
float:left;
margin-left: 30px;
margin-top: 20px;
.count-down-icon {
margin-top: -8px;
font-size: 30px;
}
&.hide {
display: none;
}
li {
display: inline-block;
}
li span {
font-size: 24px;
line-height: 24px;
}
}
.rebuy {
margin-left: 20px;
}
}
}
.no-order {
position: absolute;
background: #fff;
text-align: center;
top: 50%;
margin-top: -220px;
width: 100%;
.icon {
width: 153px;
height: 196px;
background: resolve('me/no-order.png') no-repeat;
background-size: 100%;
margin: 0 auto;
}
span {
display: block;
color: #444444;
font-size: 24px;
margin: 30px 0 80px;
}
.walk-way {
display: block;
height: 80px;
line-height: 80px;
width: 70%;
margin: 0 auto;
text-align: center;
font-size: 30px;
color: #fff;
background: #444;
border-radius: 5PX;
}
}
}
.order-nav {
border-bottom: 1px solid #e0e0e0;
background: #fff;
a {
display: block;
height: 100%;
width: 100%;
color: #b0b0b0;
}
> li {
float: left;
height: 90px;
width: 25%;
line-height: 90px;
color: #b0b0b0;
font-size: 26px;
text-align: center;
&.active a {
color: #000;
}
}
}
.order-good {
position: relative;
padding: 20px 0;
margin-left: 34px;
height: 160px;
border-bottom: 1px solid #e0e0e0;
font-size: 26px;
&:last-child {
border-bottom: none;
}
.thumb-wrap {
position: relative;
float: left;
width: 120px;
height: 160px;
}
.thumb {
width: 100%;
height: 100%;
}
.tag {
position: absolute;
bottom: 0;
left: 0;
right: 0;
color: #fff;
text-align: center;
font-size: 12px;
&:before {
display: block;
line-height: 1;
transform: scale(0.833);
}
}
.gift-tag {
height: 25px;
background: #a1ce4e;
&:before {
content: '赠品';
}
}
.advance-buy-tag {
height: 25px;
background: #eb76aa;
&:before {
content: '加价购';
}
}
.deps {
margin-left: 135px;
}
.name {
font-size: 28px;
max-width: 70%;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.row:nth-child(2) {
height: 45px;
line-height: 45px;
width: 90%;
> span {
margin-right: 15px;
}
}
.color, .size {
color: #b6b6b6;
}
.price-wrap {
position: absolute;
top: 20px;
right: 30px;
text-align: right;
}
.price {
color: #e01;
}
.count {
display: block;
color: #999;
text-align: right;
line-height: 45px;
}
.appear-date {
color: #f00;
}
}
... ...
.pay-page {
padding: 40px 20px 0;
.payapp-list {
visibility: hidden;
}
.box.bytouch {
background-color:#eee;
}
.box {
border: 1px solid #eee;
border-radius: 10px;
padding: 12px 20px;
margin-bottom: 20px;
display: flex;
align-items: center;
> div {
min-height: 40px;
display: flex;
align-items: center;
}
.icon {
width: 15%;
flex-basis: 15%;
img {
width: 60px;
margin: 0;
}
> div {
width: 60px;
height: 60px;
background-image: resolve("layout/pay-icon.png");
background-size: 90%;
background-position-y: 8px;
background-position-x: center;
background-repeat: no-repeat;
}
}
.app {
width: 35%;
flex-basis: 35%;
font-size: 32px;
color: #414141;
}
.hint {
width: 45%;
flex-basis: 45%;
font-size: 24px;
color: #4b4b4b;
}
.iconfont {
width: 5%;
flex-basis: 5%;
justify-content: flex-end;
color: #e0e0e0;
font-size: 28px;
}
}
/* 加载中 */
.loading-toast {
position: fixed;
z-index: 3;
width: 3.8em;
min-height: 3.8em;
top: 38%;
left: 50%;
margin-left: -1.9em;
background: rgba(40, 40, 40, 0.75);
text-align: center;
border-radius: 5px;
color: #FFFFFF;
}
.loading-toast:after{
content:'';
position: absolute;
left:50%;
top:50%;
margin-left: -20px;
margin-top: -20px;
width: 40px;
height: 40px;
background: resolve("loading-wechat.png");
background-size:40px;
animation: rotate .7s infinite;
animation-timing-function: linear;
}
}
@keyframes rotate {
0% {
transform: rotate(0deg)
}
100% {
transform: rotate(360deg)
}
}
\ No newline at end of file
... ...
.personal-details{
width: 100%;
height: auto;
overflow: hidden;
margin-top: 20px;
background-color:#fff;
border-bottom:1px solid #e0e0e0;
ul{
width: 95%;
height: auto;
overflow: hidden;
float:right;
li{
&:first-of-type{
height: 100px;
line-height:100px;
}
height: 80px;
border-bottom: 1px solid #e0e0e0;
.user-avatar {
width: 100%;
height: 100%;
background-image: resolve("me/index/user-avatar.png");
background-size: 100%;
}
>span{
&:first-of-type{
color: #444;
}
width: 42%;
height: 100%;
line-height:80px;
font-size: 32px;
margin-right: 8%;
float: left;
text-overflow:ellipsis;
white-space:nowrap;
overflow:hidden;
.head-portrait{
width:90px;
height: 90px;
overflow: hidden;
float: right;
border-radius:50%;
border:1px solid #eee;
}
.grade{
width: 100%;
height: 100%;
overflow: hidden;
display: block;
position: relative;
i{
width:72px;
height: 32px;
overflow: hidden;
display: block;
position: absolute;
right: 40px;
top:50%;
transform: translateY(-50%);
}
span{
color: #b0b0b0;
}
}
.vip-3 {
background: url("/me/vip/vip-3.png");
}
.vip-2 {
background: url("/me/vip/vip-2.png");
}
.vip-1 {
background: url("/me/vip/vip-1.png");
}
&:last-of-type{
color: #b0b0b0;
text-align: right;
}
}
&:last-of-type{
border-bottom:none;
}
}
}
}
... ...
.vip-grade-page {
background: #f0f0f0;
padding-bottom: 30px;
.block {
padding: 0 30px;
margin-bottom: 30px;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #fff;
}
.basic-info {
padding-top: 30px;
padding-bottom: 25px;
p{
width: 100%;
height: auto;
overflow: hidden;
display: block;
}
span{
overflow: hidden;
}
.user-name {
float: left;
max-width: 240px;
text-overflow:ellipsis;
white-space:nowrap;
font-size: 25px;
margin-right: 0.5rem;
}
.vip-icon {
float: left;
width: 72px;
height: 32px;
line-height: 36px;
}
.vip-3 {
background: url("/me/vip/vip-3.png");
}
.vip-2 {
background: url("/me/vip/vip-2.png");
}
.vip-1 {
background: url("/me/vip/vip-1.png");
}
.grade-desc {
margin-top: 20px;
font-size: 22px;
color: #b0b0b0;
}
.sum-cost {
font-size: 22px;
> span {
font-style: italic;
font-size: 28px;
color: #d1021c;
}
}
.progresser {
position: relative;
width: 100%;
height: 20px;
padding: 20px 0;
}
.outer {
height: 20px;
background: #e6e6e6;
border-radius: 10px;
}
.inner {
position: absolute;
top: 20px;
height: 20px;
background: #d1021c;
border-radius: 10px;
}
.beacon {
position: absolute;
margin-top: 5px;
font-style: italic;
}
.beacon-max {
right: 0;
}
.cost-limit {
position: absolute;
top: -5px;
right: 0;
color: #b0b0b0;
}
.cost-gap {
color: #000;
margin: 0 8px;
}
.sub-desc {
display: block;
}
}
.cost {
padding: 0 0 0 30px;
}
.cost li {
height: 90px;
line-height: 90px;
font-size: 30px;
padding-right: 0;
&:first-child {
border-bottom: 1px solid #e0e0e0;
}
> span {
float: right;
padding: 0 30px 0 0;
}
}
.privilege {
padding-right: 0;
padding-bottom: 40px;
.title {
height: 90px;
line-height: 90px;
font-size: 30px;
border-bottom: 1px solid #e0e0e0;
}
}
.all-privilege {
display: block;
height: 90px;
line-height: 90px;
font-size: 30px;
margin-bottom: 0;
.iconfont {
float: right;
color: #e0e0e0;
}
}
}
.vip-privilege-page {
padding: 0 20px;
}
.privilege-list {
background: #fff;
.icon {
float: left;
display: block;
width: 70px;
height: 70px;
}
li {
height: 70px;
padding: 25px 0;
}
P {
font-size: 28px;
margin-left: 100px;
}
span {
display: block;
color: #b0b0b0;
font-size: 22px;
}
}
... ...
.yoho-coin-detail-page {
background: #f0f0f0;
.money{
width: 100%;
height: 70px;
background:#fff;
margin-bottom: 20px;
line-height: 70px;
font-size: 30px;
text-indent: 1em;
span{
color: #f00;
font-weight: bold;
}
}
.coin-detail {
background: #fff;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
.detail-item {
position: relative;
margin-left: 30px;
border-bottom: 1px solid #e0e0e0;
color: #444;
padding: 15px 0;
.title {
width: 480px;
font-size: 28px;
line-height: 40px;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.time {
font-size: 20px;
line-height: 30px;
color: #b0b0b0;
}
.count {
position: absolute;
right: 0;
top: 0;
margin-right: 30px;
font-size: 28px;
font-weight: bold;
line-height: 100px;
}
}
li:last-child {
.detail-item {
border-bottom: none;
}
}
}
... ...
.yoho-coin-new-page {
background-color: #f0f0f0;
margin-top: 30px;
.coin{
text-align: center;
background-color: #fff;
}
.coin-num {
color: #d0021b;
font-size: 80px;
font-weight: bold;
line-height: 88px;
}
.info {
width: auto;
color: #b0b0b0;
font-size: 24px;
line-height: 1rem;
.dollar {
display: inline-block;
width: 24px;
height: 24px;
background: url("/me/yoho-coin/dollar.png") center center;
background-size: 100% 100%;
}
}
.more {
display: inline-block;
margin: 20px 0 30px;
color: #444;
font-size: 28px;
line-height: 44px;
width: 168px;
height: 42px;
text-align: center;
border: 1px solid #444;
border-radius: 22px;
}
.coin-tip {
margin-bottom: 30px;
padding: 20px 30px;
font-size: 24px;
line-height: 32px;
color: #d0021b;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
.icon {
display: inline-block;
width: 32px;
height: 32px;
font-weight: bold;
border: 2PX solid #d0021b;
border-radius: 50%;
}
}
.banner {
padding-top: 30px;
border-top: 1px solid #e0e0e0;
a {
img {
width: 100%;
}
}
}
}
... ...
.yoho-coin-page {
.coin-num {
font-size: 1.4em;
text-align: center;
em {
font-size: 4em;
color: #f00;
}
span{
width: 100%;
height: auto;
overflow: hidden;
display: block;
color: #b0b0b0;
margin-top: -.6rem;
}
}
.check{
width: 100%;
height: auto;
overflow: hidden;
text-align: center;
margin-top: .6rem;
padding-bottom: 1rem;
border-bottom:1px solid #b0b0b0;
a{
line-height: 1.2rem;
border:1px solid #444444;
width: 30%;
height: 100%;
font-size: 1.2em;
display: inline-block;
border-radius:.6rem;
}
}
section p {
line-height: 1.5em;
}
.title {
font-size: 16px;
line-height: 20px;
font-weight: bold;
}
.sub-title {
display: block;
font-size: 14px;
line-height: 28px;
font-weight: bold;
}
.path {
color: #f60;
}
.remark {
color: #666;
span {
color: #9c3;
}
}
}
\ No newline at end of file
... ...