commit 7b30f0c0af566ac337bc02398edb2bbf77d41e43 Author: dy-hu Date: Thu Sep 16 09:48:46 2021 +0800 小程序端工程代码 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2198d27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +.DS_Store +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +package-lock.json +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.keystore +unpackage/ +assets/css/style.css +assets/css/style.css.map diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..501e01c --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,11 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "type": "uniCloud", + "default": { + "launchtype": "remote" + } + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..2d20bb3 --- /dev/null +++ b/App.vue @@ -0,0 +1,91 @@ + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..5bb35b6 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# 使用说明 + +## Hbuilderx + +- 已支持HBuilderX最新版 + +## 小程序安装步骤 +- 先从私服上clone下来项目 +- 下载uni的开发者工具 https://www.dcloud.io/hbuilderx.html +- 登录微信开发者工具打开 菜单 > 设置 > 安全设置 勾选服务端口为开启 +- 当前项目下执行 npm install +- 命令行进入项目所在的目录,点击 hbuilderx > 菜单 > 运行 > 运行到小程序模拟器 > 微信开发者工具 +- uni会自动打开微信开发者工具并且打开uni的项目 + +## 注意事项 +- uniapp v3.1版本已经兼容h5,另外yshop有自己的H5,uniappv3.1以下版本未对H5端进行处理,如果需要请自行兼容。 +- manifest.json 中可以配置uni项目的一些信息 +- 打开manifest.json可配置小程序的 appid +- 由于需要兼容app,公共样式由 main.js 迁移到了 App.vue,公共样式请在App.vue中进行编辑 +- 由于需要兼容app,尺寸单位由之前的rem改为rpx,由于修改样式工作量太大并且容易出错,已将.css更改为.less并在其中以之前rem的单位*100,获得新的rpx单位 +- 如需修改样式问题,请编辑.less的文件,请勿编辑.css的文件 + + + +## 声明 +- app测试版已上,请通过 `https://www.pgyer.com/yRYf` 安装测试。 +- 运行app项目ios需要安装xcode,安卓需要装安卓的sdk以及安卓模拟器,建议安卓安装genymotion https://www.genymotion.com/ 登录时可选择私人使用,勾选后无需付费 + diff --git a/api/activity.js b/api/activity.js new file mode 100644 index 0000000..bda7ec5 --- /dev/null +++ b/api/activity.js @@ -0,0 +1,153 @@ +import request from "@/utils/request"; + +/** + * 拼团列表 + */ +export function getCombinationList(data) { + return request.get("/combination/list", data, { login: false }); +} + +/** + * 拼团产品详情 + * @param {*} id + */ +export function getCombinationDetail(id) { + return request.get("/combination/detail/" + id, {}, { login: true }); +} + +/** + * 拼团 开团 + * @param {*} id + */ +export function getCombinationPink(id) { + return request.get("/combination/pink/" + id); +} + +/** + * 拼团 取消开团 + */ +export function getCombinationRemove(data) { + return request.post("/combination/remove", data); +} + +/** + * 拼团海报 + * @param {*} id + */ +export function getCombinationPoster(data) { + return request.post("/combination/poster", data); +} + +/** + * 秒杀列表配置 + */ +export function getSeckillConfig() { + return request.get("/seckill/index", {}, { login: false }); +} + +/** + * 秒杀列表 + */ +export function getSeckillList(time, data) { + return request.get("/seckill/list/" + time, data, { login: false }); +} + +/** + * 秒杀产品详情 + */ +export function getSeckillDetail(id) { + return request.get("/seckill/detail/" + id, {}, { login: true }); +} + +/** + * 砍价列表 + * @param {*} data + */ +export function getBargainList(data) { + return request.get("/bargain/list", data, { login: false }); +} + +/** + * 砍价产品详情 + */ +export function getBargainDetail(id) { + return request.get("/bargain/detail/" + id); +} + +/** + * 砍价 观看/分享/参与次数 + */ +export function getBargainShare(data) { + return request.post("/bargain/share", data); +} + +/** + * 砍价开启 + * @param {*} data + */ +export function getBargainStart(data) { + return request.post("/bargain/start", data); +} + +/** + * 砍价 帮助好友砍价 + * @param {*} data + */ +export function getBargainHelp(data) { + return request.post("/bargain/help", data); +} + +/** + * 砍价 砍掉金额 + * @param {*} data + */ +export function getBargainHelpPrice(data) { + return request.post("/bargain/help/price", data); +} + +/** + * 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格 + * @param {*} data + */ +export function getBargainHelpCount(data) { + return request.post("/bargain/help/count", data); +} + +/** + * 砍价 开启砍价用户信息 + * @param {*} data + */ +export function getBargainStartUser(data) { + return request.post("/bargain/start/user", data); +} + +/** + * 砍价 砍价帮 + * @param {*} data + */ +export function getBargainHelpList(data) { + return request.post("/bargain/help/list", data); +} + +/** + * 砍价海报 + * @param {*} data + */ +export function getBargainPoster(data) { + return request.post("/bargain/poster", data); +} + +/** + * 砍价列表(已参与) + * @param {*} data + */ +export function getBargainUserList(data) { + return request.get("/bargain/user/list", data); +} + +/** + * 砍价取消 + */ +export function getBargainUserCancel(data) { + return request.post("/bargain/user/cancel", data); +} diff --git a/api/admin.js b/api/admin.js new file mode 100644 index 0000000..52f52eb --- /dev/null +++ b/api/admin.js @@ -0,0 +1,73 @@ +import request from "@/utils/request"; + +/** + * 统计数据 + */ +export function getStatisticsInfo() { + return request.get("/admin/order/statistics", {}, { login: true }); +} +/** + * 订单月统计 + */ +export function getStatisticsMonth(where) { + return request.get("/admin/order/data", where, { login: true }); +} +/** + * 订单月统计 + */ +export function getAdminOrderList(where) { + return request.get("/admin/order/list", where, { login: true }); +} +/** + * 订单改价 + */ +export function setAdminOrderPrice(data) { + return request.post("/admin/order/price", data, { login: true }); +} +/** + * 订单备注 + */ +export function setAdminOrderRemark(data) { + return request.post("/admin/order/remark", data, { login: true }); +} +/** + * 订单详情 + */ +export function getAdminOrderDetail(orderId) { + return request.get("/admin/order/detail/" + orderId, {}, { login: true }); +} +/** + * 订单发货信息获取 + */ +export function getAdminOrderDelivery(orderId) { + return request.get( + "/admin/order/detail/" + orderId, + {}, + { login: true } + ); +} + +/** + * 订单发货保存 + */ +export function setAdminOrderDelivery(data) { + return request.post("/admin/order/delivery/keep", data, { login: true }); +} +/** + * 订单统计图 + */ +export function getStatisticsTime(data) { + return request.get("/admin/order/time", data, { login: true }); +} +/** + * 线下付款订单确认付款 + */ +export function setOfflinePay(data) { + return request.post("/admin/order/offline", data, { login: true }); +} +/** + * 订单确认退款 + */ +export function setOrderRefund(data) { + return request.post("/admin/order/refund", data, { login: true }); +} diff --git a/api/live.js b/api/live.js new file mode 100644 index 0000000..33c0d81 --- /dev/null +++ b/api/live.js @@ -0,0 +1,17 @@ + + +import request from "@/utils/request"; + +/** + * 查询所有直播间 + */ +export function yxWechatLive(data) { + return request.get("/yxWechatLive", data, { login: true }); +} + +/** + * 获取直播回放 + */ +export function getLiveReplay(id, data) { + return request.get("/yxWechatLive/getLiveReplay/" + id, data, { login: false }); +} diff --git a/api/order.js b/api/order.js new file mode 100644 index 0000000..c2d50ec --- /dev/null +++ b/api/order.js @@ -0,0 +1,150 @@ +/* + * 订单确认 + * */ +import request from "@/utils/request"; + +/** + * 通过购物车 id 获取订单信息 + * @param cartId + * @returns {*} + */ +export function postOrderConfirm(cartId) { + return request.post("/order/confirm", { + cartId + }); +} + +/** + * 计算订单金额 + * @param key + * @param data + * @returns {*} + */ +export function postOrderComputed(key, data) { + return request.post("/order/computed/" + key, data); +} + +/** + * 获取指定金额可用优惠券 + * @param price + * @returns {*} + */ +export function getOrderCoupon(cartId) { + return request.get("/coupons/order/" + cartId); +} + +/** + * 生成订单 + * @param key + * @param data + * @returns {*} + */ +export function createOrder(key, data) { + return request.post("/order/create/" + key, data || {}); +} + +/** + * 订单统计数据 + * @returns {*} + */ +export function getOrderData() { + return request.get("/order/data"); +} + +/** + * 订单列表 + * @returns {*} + */ +export function getOrderList(data) { + return request.get("/order/list", data); +} + +/** + * 取消订单 + * @returns {*} + */ +export function cancelOrder(id) { + return request.post("/order/cancel", { + id + }); +} + +/** + * 订单详情 + * @returns {*} + */ +export function orderDetail(id) { + return request.get("/order/detail/" + id); +} + +/** + * 退款理由 + * @returns {*} + */ +export function getRefundReason() { + return request.get("/order/refund/reason"); +} + +/** + * 提交退款 + * @returns {*} + */ +export function postOrderRefund(data) { + return request.post("/order/refund/verify", data); +} + +/** + * 确认收货 + * @returns {*} + */ +export function takeOrder(uni) { + return request.post("/order/take", { + uni + }); +} + +/** + * 删除订单 + * @returns {*} + */ +export function delOrder(uni) { + return request.post("/order/del", { + uni + }); +} + +/** + * 订单查询物流信息 + * @returns {*} + */ +export function express(params) { + return request.post("order/express", params); +} + +/** + * 订单查询物流信息 + * @returns {*} + */ +export function payOrder(uni, paytype, from) { + return request.post("order/pay", { + uni, + paytype, + from + }); +} +/** + * 订单核销 + * @returns {*} + */ + +export function orderVerific(verifyCode, isConfirm) { + return request.post("order/order_verific", { verifyCode, isConfirm }); +} +/** + * 获取订阅消息ID + * @param price + * @returns {*} + */ +export function getSubscribeTemplate() { + return request.get("/order/getSubscribeTemplate"); +} diff --git a/api/public.js b/api/public.js new file mode 100644 index 0000000..2673dd5 --- /dev/null +++ b/api/public.js @@ -0,0 +1,108 @@ +import request from "@/utils/request"; + +/** + * 首页 + * @returns {*} + */ +export function getHomeData() { + return request.get("index", {}, { login: false }); +} + +/** + * 首页 + * @returns {*} + */ +export function getCanvas() { + return request.get("/getCanvas?terminal=3", {}, { login: false }); +} + +/** + * 文章 轮播列表 + * @returns {*} + */ +export function getArticleBanner() { + return request.get("/article/banner/list", {}, { login: false }); +} + +/** + * 文章分类列表 + * @returns {*} + */ +export function getArticleCategory() { + return request.get("/article/category/list", {}, { login: false }); +} + +/** + * 文章 热门列表 + * @returns {*} + */ +export function getArticleHotList() { + return request.get("/article/hot/list", {}, { login: false }); +} + +/** + * 文章列表 + * @returns {*} + */ +export function getArticleList(q) { + return request.get("/article/list/", q, { login: false }); +} + +/** + * 分享 + * @returns {*} + */ +export function getShare() { + return request.get("/share", {}, { login: false }); +} + +/** + * 文章详情 + * @returns {*} + */ +export function getArticleDetails(id) { + return request.get("/article/details/" + id, {}, { login: false }); +} + +/** + * 获取微信sdk配置 + * @returns {*} + */ +export function getWechatConfig() { + return request.get( + "/wechat/config", + { url: location.href }, + { login: false } + ); +} + +/** + * 获取微信sdk配置 + * @returns {*} + */ +export function wechatAuth(code, spread, login_type) { + return request.get( + "/wechat/auth", + { code, spread, login_type }, + { login: false } + ); +} +/** + * 获取快递公司 + * @returns {*} + */ +export function getLogistics() { + return request.get("/logistics", {}, { login: false }); +} + +/** + * 获取图片base64 + * @retins {*} + * */ +export function imageBase64(image, code) { + return request.post( + "/image_base64", + { image: image, code: code }, + { login: false } + ); +} diff --git a/api/store.js b/api/store.js new file mode 100644 index 0000000..1db3d56 --- /dev/null +++ b/api/store.js @@ -0,0 +1,183 @@ +import request from "@/utils/request"; + +/* + * 商品分类 + * */ +export function getCategory() { + return request.get("/category", {}, { + login: false + }); +} + +/* + * 商品详情 + * */ +export function getProductDetail(id, data) { + return request.get("/product/detail/" + id, data, { + login: true + }); +} + +/* + * 商品分销二维码 + * */ +export function getProductCode(id) { + return request.get("/product/code/" + id, {}, { + login: true + }); +} + +/* + * 商品列表 + * */ +export function getProducts(q) { + return request.get("/products", q, { + login: false + }); +} +/* + * 积分商品列表 + * */ +export function getProductsIntegral(q) { + return request.get("/products/integral", q, { + login: false + }); +} + +/* + * 购物车数量 + * */ +export function getCartNum() { + return request.get("/cart/count"); +} + +/* + * 添加收藏 + * */ +export function toCollect(id, category) { + return request.get("/collect/add/" + id + "/" + category); +} + +/* + * 为你推荐 + * */ +export function getHostProducts(page, limit) { + return request.get( + "/product/hot", { + page: page, + limit: limit + }, { + login: false + } + ); +} + +/* + * 精品、热门、首发列表 + * */ +export function getGroomList(type) { + return request.get("/groom/list/" + type, {}, { + login: true + }); +} +/* + * 获取商品海报 + * */ +export function getProductPoster(id, data) { + return request.get("/product/poster/" + id, data, { + login: true + }); +} + +/* + * 购物车 添加 + * */ +export function postCartAdd(data) { + return request.post("/cart/add", data); +} + +/* + * 购物车列表 + * */ +export function getCartList() { + return request.get("/cart/list"); +} + +/* + * 购物车 删除 + * */ +export function postCartDel(ids) { + return request.post("/cart/del", { + ids + }); +} + +/* + * 购物车 获取数量 + * */ +export function getCartCount(data) { + return request.get("/cart/count", data); +} + +/* + * 购物车 修改商品数量 + * */ +export function changeCartNum(id, number) { + return request.post("/cart/num", { + id, + number + }); +} + +/** + * 搜索推荐关键字 + */ +export function getSearchKeyword() { + return request.get("/search/keyword", {}, { + login: false + }); +} + +/** + * 产品评论列表 + */ +export function getReplyList(id, q) { + return request.get("/reply/list/" + id, q, { + login: true + }); +} + +/** + * 产品评价数量和好评度 + */ +export function getReplyConfig(id) { + return request.get("/reply/config/" + id, {}, { + login: true + }); +} + +/** + * 评价页面获取单个产品详情 + */ +export function postOrderProduct(unique) { + return request.post("/order/product", { + unique + }, { + login: true + }); +} + +/** + * 提交评价页面; + */ +export function postOrderComment(data) { + return request.post("/order/comment", data, { + login: true + }); +} + +export function storeListApi(data) { + return request.get("store_list", data, { + login: false + }); +} diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..606aa91 --- /dev/null +++ b/api/user.js @@ -0,0 +1,444 @@ +import request from '@/utils/request' + +/** + * 省市区 + */ +export function getCity(data) { + return request.get('/city_list', data, { + // return request.get("/citys", data, { + login: false, + }) +} + +export function district(data) { + // return request.get("/city_list", data, { + return request.get('/citys', data, { + login: false, + }) +} + +/** + * 用户登录 + * @param data object 用户账号密码 + */ +export function login(data) { + return request.post('/login', data, { + login: false, + }) +} + +/** + * 用户手机号登录 + * @param data object 用户手机号 也只能 + */ +export function loginMobile(data) { + return request.post('/login/mobile', data, { + login: false, + }) +} + +/** + * 用户发送验证码 + * @param data object 用户手机号 + */ +export function registerVerify(data) { + return request.post('/register/verify', data, { + login: false, + }) +} + +/** + * 用户手机号注册 + * @param data object 用户手机号 验证码 密码 + */ +export function register(data) { + return request.post('/register', data, { + login: false, + }) +} + +/** + * 用户手机号修改密码 + * @param data object 用户手机号 验证码 密码 + */ +export function registerReset(data) { + return request.post('/register/reset', data, { + login: true, + }) +} + +/* + * 领取优惠券列表 + * */ +export function getCoupon(q) { + return request.get('/coupons', q, { + login: true, + }) +} + +/* + * 点击领取优惠券 + * */ +export function getCouponReceive(id) { + return request.post( + '/coupon/receive', + { + couponId: id, + }, + { + login: true, + } + ) +} + +/* + * 批量领取优惠券 + * */ +export function couponReceiveBatch(couponId) { + return request.post('/coupon/receive/batch', { + couponId, + }) +} + +/* + * 我的优惠券 + * */ +export function getCouponsUser(type) { + return request.get('/coupons/user/' + type) +} + +/* + * 个人中心 + * */ +export function getUser() { + return request.get('/user') +} + +/* + * 用户信息 + * */ +export function getUserInfo() { + return request.get('/userinfo', { + login: true, + }) +} + +/* + * 小程序登陆 + * */ +export function wxappAuth(data) { + return request.post('/wxapp/auth', data, { + login: false, + }) +} + +/* + * 个人中心(功能列表) + * */ +export function getMenuUser() { + return request.get('/menu/user') +} + +/* + * 地址列表 + * */ +export function getAddressList(data) { + return request.get('/address/list', data || {}) +} + +/* + * 删除地址 + * */ +export function getAddressRemove(id) { + return request.post('/address/del', { + id: id, + }) +} + +/* + * 设置默认地址 + * */ +export function getAddressDefaultSet(id) { + return request.post('/address/default/set', { + id: id, + }) +} + +/* + * 获取默认地址 + * */ +export function getAddressDefault() { + return request.get('/address/default') +} + +/* + * 获取单个地址 + * */ +export function getAddress(id) { + return request.get('/address/detail/' + id) +} + +/* + * 修改 添加地址 + * */ +export function postAddress(data) { + return request.post('/address/edit', data) +} + +/* + * 获取收藏产品 + * */ +export function getCollectUser(page, limit, type) { + return request.get('/collect/user', { + page: page, + limit: limit, + type, + }) +} + +/* + * 删除收藏产品 + * */ +export function getCollectDel(id, category) { + return request.post('/collect/del', { + id: id, + category: category, + }) +} + +/* + * 批量收藏产品 + * */ +export function postCollectAll(data) { + return request.post('/collect/all', data) +} + +/* + * 添加收藏产品 + * */ +export function getCollectAdd(id, category) { + return request.post('collect/add', { + id: id, + category: category, + }) +} + +/* + * 签到配置 + * */ +export function getSignConfig() { + return request.get('/sign/config') +} + +/* + * 签到里的签到列表 + * */ +export function getSignList(page, limit) { + return request.get('/sign/list', { + page: page, + limit: limit, + }) +} + +/* + * 签到列表 + * */ +export function getSignMonth(page, limit) { + return request.get('/sign/month', { + page: page, + limit: limit, + }) +} + +/* + * 签到用户信息 + * */ +export function postSignUser(sign) { + return request.post('/sign/user', sign) +} + +/* + * 签到 + * */ +export function postSignIntegral(sign) { + return request.post('/sign/integral', sign) +} + +/* + * 推广数据 + * */ +export function getSpreadInfo() { + return request.get('/commission') +} + +/* + * 推广人列表 + * */ +export function getSpreadUser(screen) { + return request.post('/spread/people', screen) +} + +/* + * 推广人订单 + * */ +export function getSpreadOrder(where) { + return request.post('/spread/order', where) +} + +/* + * 资金明细(types|0=全部,1=消费,2=充值,3=返佣,4=提现) + * */ +export function getCommissionInfo(q, types) { + return request.get('/spread/commission/' + types, q) +} + +/* + * 积分记录 + * */ +export function getIntegralList(q) { + return request.get('/integral/list', q) +} + +/* + * 提现银行 + * */ +export function getBank() { + return request.get('/extract/bank') +} + +/* + * 提现申请 + * */ +export function postCashInfo(cash) { + return request.post('/extract/cash', cash) +} + +/* + * 会员中心 + * */ +export function getVipInfo() { + return request.get('/user/level/grade') +} + +/* + * 会员等级任务 + * */ +export function getVipTask(id) { + return request.get('/user/level/task/' + id) +} + +/* + * 资金统计 + * */ +export function getBalance() { + return request.get('/user/balance') +} + +/* + * 活动状态 + * */ +export function getActivityStatus() { + return request.get( + '/user/activity', + {}, + { + login: false, + } + ) +} + +/* + * 活动状态 + * */ +export function getSpreadImg(data) { + return request.get('/spread/banner', data) +} + +/* + * 用户修改信息 + * */ +export function postUserEdit(data) { + return request.post('/user/edit', data) +} + +/* + * 用户修改信息 + * */ +export function getChatRecord(to_uid, data) { + return request.get('user/service/record/' + to_uid, data) +} + +/* + * 用户修改信息 + * */ +export function serviceList() { + return request.get('user/service/list') +} + +/* + * 公众号充值 + * */ +export function rechargeWechat(data) { + return request.post('/recharge/wechat', data) +} + +/* + * 退出登录 + * */ +export function getLogout() { + return request.post('/auth/logout') +} + +/* + * 小程序绑定手机号 + * */ +export function bindingPhone(data) { + return request.post('/binding', data) +} + +/* + * 绑定手机号 + * */ +export function wxappBindingPhone(data) { + return request.post('wxapp/binding', data) +} + +/** + * 小程序上传用户头像 + */ +export function wxappGetUserInfo (data) { + // return request.post('/wxapp/loginAuth', data) + return request.get('/wechat/auth', data) +} + +/* + * h5切换公众号登陆 + * */ +export function switchH5Login() { + return request.post('switch_h5', { + from: 'wechat', + }) +} +/* + * 获取推广人排行 + * */ +export function getRankList(q) { + return request.get('rank', q) +} +/* + * 获取佣金排名 + * */ +export function getBrokerageRank(q) { + return request.get('brokerage_rank', q) +} + +/** + * 检测会员等级 + */ +export function setDetection() { + return request.get('user/level/detection') +} + +export function getRechargeApi() { + return request.get('recharge/index') +} diff --git a/assets/css/base.css b/assets/css/base.css new file mode 100644 index 0000000..eb24673 --- /dev/null +++ b/assets/css/base.css @@ -0,0 +1,2 @@ +@charset "UTF-8";.font-color-red{color:#eb3729 !important}.bg-color-red{background-color:#eb3729 !important}.icon-color{color:#eb3729}.cart-color{color:#eb3729 !important;border:1px solid #eb3729 !important}.padding20{padding:20rpx}.pad20{padding:0 20rpx}.padding30{padding:30rpx}.pad30{padding:0 30rpx}.acea-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.acea-row.row-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.acea-row.row-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.acea-row.row-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.acea-row.row-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.acea-row.row-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.acea-row.row-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.acea-row.row-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.acea-row.row-around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.acea-row.row-column-around{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.acea-row.row-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.acea-row.row-column-between{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.acea-row.row-center-wrapper{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.acea-row.row-between-wrapper{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.slider-banner{position:relative;width:100%;overflow:hidden}.slider-banner .swiper-container{height:100%}.slider-banner image{display:block;width:100%;height:100%}.start{width:122rpx;height:30rpx;background-image:url("https://wx.yixiang.co/static/images/start.png");background-repeat:no-repeat;-webkit-background-size:122rpx auto;background-size:122rpx auto}.start.star5{background-position:0 3rpx}.start.star4{background-position:0 -30rpx}.start.star3{background-position:0 -70rpx}.start.star2{background-position:0 -105rpx}.start.star1{background-position:0 -140rpx}.start.star0{background-position:0 -175rpx}.checkbox-wrapper{position:relative}.checkbox-wrapper input{display:none}.checkbox-wrapper .icon{position:absolute;left:0;top:50%;display:inline-block;width:18px;height:18px;border:1px solid #cccccc;-webkit-border-radius:50%;border-radius:50%;-webkit-transform:translate(0, -50%);-ms-transform:translate(0, -50%);transform:translate(0, -50%)}.checkbox-wrapper input:checked+.icon{background-color:#e93323;border-color:#e93323;background-image:url("https://wx.yixiang.co/static/images/enter.png");-webkit-background-size:21rpx 15rpx;background-size:21rpx 15rpx;background-repeat:no-repeat;background-position:center center}.Loads{height:80rpx;font-size:25rpx;color:#000}.Loads .iconfont{font-size:30rpx;margin-right:10rpx;height:32rpx;line-height:32rpx}@-webkit-keyframes load{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.loadingpic{-webkit-animation:load 3s linear 1s infinite;animation:load 3s linear 1s infinite}.loading{-webkit-animation:load linear 1s infinite;animation:load linear 1s infinite} +/*# sourceMappingURL=./base.css.map */ \ No newline at end of file diff --git a/assets/css/base.css.map b/assets/css/base.css.map new file mode 100644 index 0000000..7a64c8b --- /dev/null +++ b/assets/css/base.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["base.less"],"names":[],"mappings":"AAAA,iBAIA,gBACE,wBAAA,CAEF,cACE,mCAAA,CAEF,YACE,aAAA,CAEF,YACE,yBACA,mCAAA,CAGF,WACE,aAAA,CAGF,OACE,eAAA,CAGF,WACE,aAAA,CAGF,OACE,eAAA,CAGF,UACE,oBACA,AADA,qBACA,AADA,oBACA,AADA,aACA,uBAAA,mBAAA,cAAA,CAGF,qBACE,yBAAA,2BAAA,sBAAA,kBAAA,CAEF,kBACE,wBAAA,+BAAA,qBAAA,sBAAA,CAEF,qBACE,sBAAA,6BAAA,mBAAA,oBAAA,CAEF,qBACE,wBAAA,+BAAA,qBAAA,sBAAA,CAEF,oBACE,qBAAA,iCAAA,kBAAA,wBAAA,CAEF,mBACE,uBAAA,mCAAA,oBAAA,0BAAA,CAEF,sBACE,yBAAA,sCAAA,sBAAA,6BAAA,CAEF,qBACE,qCAAA,yBAAA,4BAAA,CAEF,4BACE,4BACA,AADA,6BACA,AADA,8BACA,AADA,0BACA,AADA,sBACA,qCAAA,yBAAA,4BAAA,CAEF,qBACE,4BAAA,6BAAA,8BAAA,0BAAA,qBAAA,CAEF,6BACE,4BACA,AADA,6BACA,AADA,8BACA,AADA,0BACA,AADA,sBACA,yBAAA,sCAAA,sBAAA,6BAAA,CAGF,6BACE,yBACA,AADA,2BACA,AADA,sBACA,AADA,mBACA,wBAAA,+BAAA,qBAAA,sBAAA,CAGF,8BACE,yBACA,AADA,2BACA,AADA,sBACA,AADA,mBACA,yBAAA,sCAAA,sBAAA,6BAAA,CAIF,eACE,kBACA,WAEA,eAAA,CAKF,iCACE,WAAA,CAEF,qBACE,cACA,WACA,WAAA,CAEF,OACE,aACA,aACA,sEACA,4BACA,oCAAA,2BAAA,CAEF,aACE,0BAAA,CAEF,aACE,4BAAA,CAEF,aACE,4BAAA,CAEF,aACE,6BAAA,CAEF,aACE,6BAAA,CAEF,aACE,6BAAA,CAGF,kBACE,iBAAA,CAEF,wBACE,YAAA,CAEF,wBACE,kBACA,OACA,QACA,qBACA,WACA,YACA,yBACA,0BACA,AADA,kBACA,qCAAW,AAAX,iCAAW,AAAX,4BAAW,CAEb,sCACE,yBACA,qBACA,sEACA,oCACA,AADA,4BACA,4BACA,iCAAA,CAEF,OACE,aACA,gBACA,UAAA,CAEF,iBACE,gBACA,mBACA,aACA,iBAAA,CAGF,wBACE,KACE,+BAAW,AAAX,sBAAW,CAEb,GACE,iCAAW,AAAX,wBAAW,CAAA,CAGf,AARA,gBACE,KACE,+BAAW,AAAX,sBAAW,CAEb,GACE,iCAAW,AAAX,wBAAW,CAAA,CAGf,YACE,6CAAA,oCAAA,CAEF,SACE,0CAAA,iCAAA,CAAA","file":"to.css","sourcesContent":[null]} \ No newline at end of file diff --git a/assets/css/base.less b/assets/css/base.less new file mode 100644 index 0000000..6ef3e59 --- /dev/null +++ b/assets/css/base.less @@ -0,0 +1,180 @@ +@charset "UTF-8"; +/** + *相关初始化 +*/ +.font-color-red { + color: #eb3729 !important; +} +.bg-color-red { + background-color: #eb3729 !important; +} +.icon-color { + color: #eb3729; +} +.cart-color { + color: #eb3729 !important; + border: 1px solid #eb3729 !important; +} +/* padding20 */ +.padding20 { + padding: 0.2*100rpx; +} +/* pad20 */ +.pad20 { + padding: 0 0.2*100rpx; +} +/* padding30 */ +.padding30 { + padding: 0.3*100rpx; +} +/*pad30 */ +.pad30 { + padding: 0 0.3*100rpx; +} +/* layout */ +.acea-row { + display: flex; + flex-wrap: wrap; + /* 辅助类 */ +} +.acea-row.row-middle { + align-items: center; +} +.acea-row.row-top { + align-items: flex-start; +} +.acea-row.row-bottom { + align-items: flex-end; +} +.acea-row.row-center { + justify-content: center; +} +.acea-row.row-right { + justify-content: flex-end; +} +.acea-row.row-left { + justify-content: flex-start; +} +.acea-row.row-between { + justify-content: space-between; +} +.acea-row.row-around { + justify-content: space-around; +} +.acea-row.row-column-around { + flex-direction: column; + justify-content: space-around; +} +.acea-row.row-column { + flex-direction: column; +} +.acea-row.row-column-between { + flex-direction: column; + justify-content: space-between; +} +/* 上下左右垂直居中 */ +.acea-row.row-center-wrapper { + align-items: center; + justify-content: center; +} +/* 上下两边居中对齐 */ +.acea-row.row-between-wrapper { + align-items: center; + justify-content: space-between; +} + +/* 轮播图 */ +.slider-banner { + position: relative; + width: 100%; + /* height:750rpx; */ + overflow: hidden; +} +.slider-banner{ + +} +.slider-banner .swiper-container { + height: 100%; +} +.slider-banner image{ + display: block; + width: 100%; + height: 100%; +} +.start { + width: 1.22*100rpx; + height: 0.3*100rpx; + background-image: url("https://wx.yixiang.co/static/images/start.png"); + background-repeat: no-repeat; + background-size: 1.22*100rpx auto; +} +.start.star5 { + background-position: 0 0.03*100rpx; +} +.start.star4 { + background-position: 0 -0.3*100rpx; +} +.start.star3 { + background-position: 0 -0.7*100rpx; +} +.start.star2 { + background-position: 0 -1.05*100rpx; +} +.start.star1 { + background-position: 0 -1.4*100rpx; +} +.start.star0 { + background-position: 0 -1.75*100rpx; +} +/* 单选框和多选框 */ +.checkbox-wrapper { + position: relative; +} +.checkbox-wrapper input { + display: none; +} +.checkbox-wrapper .icon { + position: absolute; + left: 0; + top: 50%; + display: inline-block; + width: 18px; + height: 18px; + border: 1px solid #cccccc; + border-radius: 50%; + transform: translate(0, -50%); +} +.checkbox-wrapper input:checked + .icon { + background-color: #e93323; + border-color: #e93323; + background-image: url("https://wx.yixiang.co/static/images/enter.png"); + background-size: 0.21*100rpx 0.15*100rpx; + background-repeat: no-repeat; + background-position: center center; +} +.Loads { + height: 0.8*100rpx; + font-size: 0.25*100rpx; + color: #000; +} +.Loads .iconfont { + font-size: 0.3*100rpx; + margin-right: 0.1*100rpx; + height: 0.32*100rpx; + line-height: 0.32*100rpx; +} +/*加载动画*/ +@keyframes load { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +.loadingpic { + animation: load 3s linear 1s infinite; +} +.loading { + animation: load linear 1s infinite; +} diff --git a/assets/css/reset.css b/assets/css/reset.css new file mode 100644 index 0000000..773fb4b --- /dev/null +++ b/assets/css/reset.css @@ -0,0 +1,2 @@ +input{line-height:normal;-webkit-box-sizing:border-box;box-sizing:border-box}@font-face{font-family:'GuildfordProBook 5';src:url('https://wx.yixiang.co/static/iconfont/GuildfordProBook5.otf')}[v-cloak]{display:none}.iconfont{font-size:36rpx}@media (-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5){.border-1px::after{-webkit-transform:scaleY(.7);-ms-transform:scaleY(.7);transform:scaleY(.7)}.border-1px::before{-webkit-transform:scaleY(.7);-ms-transform:scaleY(.7);transform:scaleY(.7)}}@media (-webkit-min-device-pixel-ratio:2),(min-device-pixel-ratio:2){.border-1px::after{-webkit-transform:scaleY(.5);-ms-transform:scaleY(.5);transform:scaleY(.5)}.border-1px::before{-webkit-transform:scaleY(.5);-ms-transform:scaleY(.5);transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-device-pixel-ratio:3){.border-1px::after{-webkit-transform:scaleY(.33);-ms-transform:scaleY(.33);transform:scaleY(.33)}.border-1px::before{-webkit-transform:scaleY(.33);-ms-transform:scaleY(.33);transform:scaleY(.33)}}.line1{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;width:100%}.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background-color:rgba(0,0,0,0.5)} +/*# sourceMappingURL=./reset.css.map */ \ No newline at end of file diff --git a/assets/css/reset.css.map b/assets/css/reset.css.map new file mode 100644 index 0000000..346954a --- /dev/null +++ b/assets/css/reset.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["reset.less"],"names":[],"mappings":"AAAA,MAAM,mBAAqB,8BAAA,qBAAA,CAC3B,WACE,iCACA,sEAAS,CAEX,UACE,YAAA,CAEF,UACE,eAAA,CAGF,yEACE,mBACE,6BAAW,AAAX,yBAAW,AAAX,oBAAW,CAEb,oBACE,6BAAW,AAAX,yBAAW,AAAX,oBAAW,CAAA,CAGf,qEACE,mBACE,6BAAW,AAAX,yBAAW,AAAX,oBAAW,CAEb,oBACE,6BAAW,AAAX,yBAAW,AAAX,oBAAW,CAAA,CAGf,qEACE,mBACE,8BAAW,AAAX,0BAAW,AAAX,qBAAW,CAEb,oBACE,8BAAW,AAAX,0BAAW,AAAX,qBAAW,CAAA,CAGf,OAAO,gBAAgB,0BAAuB,AAAvB,uBAAuB,mBAAmB,UAAA,CACjE,OAAO,qBAAqB,oBAAoB,qBAAqB,4BAA4B,eAAA,CACjG,MAAM,eAAe,MAAM,OAAO,QAAQ,SAAS,WAAW,gCAAA,CAAA","file":"to.css","sourcesContent":[null]} \ No newline at end of file diff --git a/assets/css/reset.less b/assets/css/reset.less new file mode 100644 index 0000000..6aa0929 --- /dev/null +++ b/assets/css/reset.less @@ -0,0 +1,43 @@ +input{line-height: normal; box-sizing:border-box;} +@font-face { + font-family: 'GuildfordProBook 5'; + src: url('https://wx.yixiang.co/static/iconfont/GuildfordProBook5.otf'); +} +[v-cloak] { + display: none; +} +.iconfont{ + font-size: .36*100rpx; +} +/* 一像素边框 */ +@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5) { + .border-1px::after { + transform: scaleY(0.7); + } + .border-1px::before { + transform: scaleY(0.7); + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2) { + .border-1px::after { + transform: scaleY(0.5); + } + .border-1px::before { + transform: scaleY(0.5); + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-device-pixel-ratio: 3) { + .border-1px::after { + transform: scaleY(0.33); + } + .border-1px::before { + transform: scaleY(0.33); + } +} +.line1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width: 100%;} +.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;} +.mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background-color:rgba(0,0,0,0.5);} + + + + diff --git a/assets/css/style.less b/assets/css/style.less new file mode 100644 index 0000000..4db2b1a --- /dev/null +++ b/assets/css/style.less @@ -0,0 +1,9377 @@ +view, +scroll-view, +swiper, +button, +input, +textarea, +label, +navigator, +image { + box-sizing: border-box; +} + +page { + background: #f5f5f5; + height: 100%; +} + +.newsList .newsSwitch .van-hairline--top-bottom::after { + border: 0; +} + +.newsList .newsSwitch .van-tab { + font-size: 0.32 * 100rpx; + padding: 0; + flex-basis: unset !important; + margin-right: 0.46 * 100rpx; +} + +.newsList .newsSwitch .van-tabs__wrap { + padding: 0 0.3 * 100rpx; +} + +.newsList .newsSwitch.van-tabs--line { + padding-top: 0.9 * 100rpx; +} + +#footer { + position: fixed; + width: 100%; + height: 100rpx; + bottom: 0; + left: 0; + background-color: #fff; + border-top: 1px solid #eee; + z-index: 9999; +} + +#footer.iphonex-footer { + height: 100rpx; + padding-bottom: 68rpx; +} + +.footer-bg { + height: 100rpx; +} + +.iphonex-footer-bg { + height: 168rpx; +} + +#footer .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.2 * 100rpx; + color: #282828; +} + +#footer .item.on { + color: #eb3729; +} + +#footer .item .iconfont { + font-size: 0.45 * 100rpx; + height: 0.55 * 100rpx; + line-height: 0.55 * 100rpx; +} + +.goodList .item { + position: relative; + padding-left: 0.3 * 100rpx; + background-color: #fff; +} + +.goodList .item .pictrue { + width: 1.8 * 100rpx; + height: 1.8 * 100rpx; + position: relative; +} + +.goodList .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.goodList .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.goodList .item .pictrue .numPic { + position: absolute; + left: 0.07 * 100rpx; + top: 0.07 * 100rpx; + width: 0.5 * 100rpx; + height: 0.5 * 100rpx; + border-radius: 50%; +} + +.goodList .item .underline { + padding: 0.3 * 100rpx 0.3 * 100rpx 0.3 * 100rpx 0; + border-bottom: 1px solid #f5f5f5; +} + +.goodList .item:nth-last-child(1) .underline { + border-bottom: 0; +} + +.goodList .item .text { + font-size: 0.3 * 100rpx; + color: #222; + width: 4.89 * 100rpx; + text-align: left; +} + +.goodList .item .text .money .num { + font-size: 0.34 * 100rpx; +} + +.goodList .item .text .vip-money { + font-size: 0.24 * 100rpx; + color: #282828; + font-weight: bold; + margin-top: 0.1 * 100rpx; +} + +.goodList .item .text .vip-money .vip { + margin-right: 0.22 * 100rpx; + text-decoration: line-through; +} + +.goodList .item .text .vip-money .image { + width: 0.46 * 100rpx; + height: 0.21 * 100rpx; + margin-left: 0.05 * 100rpx; +} + +.goodList .item .text .vip-money .num { + font-size: 0.22 * 100rpx; + color: #aaa; + font-weight: normal; + margin: -0.02 * 100rpx 0 0 0; +} + +.goodList .item .iconfont { + position: absolute; + right: 0.3 * 100rpx; + width: 0.5 * 100rpx; + height: 0.5 * 100rpx; + border-radius: 50%; + font-size: 0.3 * 100rpx; + bottom: 0.38 * 100rpx; +} + +.promotionGood { + padding: 0 0.3 * 100rpx; + background-color: #fff; +} + +.promotionGood .item { + border-bottom: 1px solid #eee; + height: 2.5 * 100rpx; +} + +.promotionGood .item .pictrue { + width: 1.88 * 100rpx; + height: 1.88 * 100rpx; +} + +.promotionGood .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.08 * 100rpx; +} + +.promotionGood .item .text { + font-size: 0.24 * 100rpx; + color: #999; + width: 4.72 * 100rpx; + text-align: left; +} + +.promotionGood .item .text .name { + font-size: 0.3 * 100rpx; + color: #333; +} + +.promotionGood .item .text .sp-money { + margin: 0.34 * 100rpx 0 0.2 * 100rpx 0; +} + +.promotionGood .item .text .sp-money .moneyCon { + // padding: 0 0.18*100rpx; + height: 0.36 * 100rpx; + line-height: 0.46 * 100rpx; + font-size: 0.26 * 100rpx; + color: #ea3526; + border-radius: 0.24 * 100rpx 0.03 * 100rpx 0.24 * 100rpx 0.03 * 100rpx; +} + +.promotionGood .item .text .sp-money .moneyCon .num { + font-size: 0.24 * 100rpx; +} + +.promotionGood .item .text .money { + text-decoration: line-through; +} + +.recommend { + background-color: #fff; +} + +.recommend .title { + height: 1.35 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.recommend .title .name { + margin: 0 0.28 * 100rpx; +} + +.recommend .title .iconfont { + font-size: 1.7 * 100rpx; + color: #454545; + height: 0.5 * 100rpx; + line-height: 0.5 * 100rpx; +} + +.recommend .title .iconfont.lefticon { + transform: rotate(180deg); +} + +.recommend .recommendList { + padding: 0 0.3 * 100rpx; +} + +.recommend .recommendList .item { + width: 3.35 * 100rpx; + margin-bottom: 0.3 * 100rpx; +} + +.recommend .recommendList .item .pictrue { + width: 100%; + height: 3.35 * 100rpx; +} + +.recommend .recommendList .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.recommend .recommendList .item .name { + font-size: 0.28 * 100rpx; + color: #282828; + margin-top: 0.2 * 100rpx; +} + +.recommend .recommendList .item .money { + font-size: 0.2 * 100rpx; + margin-top: 0.03 * 100rpx; +} + +.recommend .recommendList .item .money .num { + font-size: 0.28 * 100rpx; +} + +.noCommodity { + padding-top: 0.75 * 100rpx; +} + +.noCommodity .noPictrue { + width: 4.14 * 100rpx; + height: 3.36 * 100rpx; + margin: 0 auto 0.3 * 100rpx auto; +} + +.noCommodity .noPictrue .image { + width: 100%; + height: 100%; +} + +/*产品详情轮播*/ +.product-bg { + height: 7.5 * 100rpx; +} + +.product-bg swiper { + height: 7.5 * 100rpx; +} + +.product-bg .slide-image { + width: 100%; + height: 100%; +} + +.product-bg .pages { + position: absolute; + background-color: #fff; + height: 0.34 * 100rpx; + padding: 0 0.1 * 100rpx; + border-radius: 0.03 * 100rpx; + right: 0.3 * 100rpx; + bottom: 0.3 * 100rpx; + line-height: 0.34 * 100rpx; + font-size: 0.24 * 100rpx; + color: #050505; + z-index: 9; +} + +/*评价列表公共*/ +.evaluateWtapper .evaluateItem { + background-color: #fff; + padding-bottom: 0.25 * 100rpx; +} + +.evaluateWtapper .evaluateItem ~ .evaluateItem { + border-top: 1px solid #f5f5f5; +} + +.evaluateWtapper .evaluateItem .pic-text { + font-size: 0.26 * 100rpx; + color: #282828; + height: 0.95 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.evaluateWtapper .evaluateItem .pic-text .pictrue { + width: 0.56 * 100rpx; + height: 0.56 * 100rpx; + margin-right: 0.2 * 100rpx; +} + +.evaluateWtapper .evaluateItem .pic-text .pictrue .image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.evaluateWtapper .evaluateItem .pic-text .name { + max-width: 4.5 * 100rpx; + margin-right: 0.15 * 100rpx; +} + +.evaluateWtapper .evaluateItem .time { + font-size: 0.24 * 100rpx; + color: #82848f; + padding: 0 0.3 * 100rpx; +} + +.evaluateWtapper .evaluateItem .evaluate-infor { + font-size: 0.28 * 100rpx; + color: #282828; + margin-top: 0.19 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.evaluateWtapper .evaluateItem .imgList { + padding: 0 0.3 * 100rpx 0 0.15 * 100rpx; + margin-top: 0.25 * 100rpx; +} + +.evaluateWtapper .evaluateItem .imgList .pictrue { + width: 1.56 * 100rpx; + height: 1.56 * 100rpx; + margin: 0 0 0.15 * 100rpx 0.15 * 100rpx; +} + +.evaluateWtapper .evaluateItem .imgList .pictrue .image { + width: 100%; + height: 100%; +} + +.evaluateWtapper .evaluateItem .reply { + font-size: 0.26 * 100rpx; + color: #454545; + background-color: #f7f7f7; + border-radius: 0.05 * 100rpx; + margin: 0.2 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; + padding: 0.3 * 100rpx; + position: relative; +} + +.evaluateWtapper .evaluateItem .reply::before { + content: ''; + width: 0; + height: 0; + border-left: 0.1 * 100rpx solid transparent; + border-right: 0.1 * 100rpx solid transparent; + border-bottom: 0.2 * 100rpx solid #f7f7f7; + position: absolute; + top: -0.2 * 100rpx; + left: 1 * 100rpx; +} + +/*优惠券列表公共*/ + +.coupon-list { + padding: 0 0.3 * 100rpx; + margin-top: 0.25 * 100rpx; + box-sizing: border-box; +} + +.coupon-list .item { + width: 100%; + height: 1.7 * 100rpx; + margin-bottom: 0.16 * 100rpx; +} + +.coupon-list .item .money { + background-image: url('https://wx.yixiang.co/static/images/coupon1.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 2.4 * 100rpx; + height: 100%; + color: #fff; + font-size: 0.36 * 100rpx; + font-weight: bold; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.coupon-list .item .money.moneyGray { + background-image: url('https://wx.yixiang.co/static/images/coupon2.png'); +} + +.coupon-list .item .money .num { + font-size: 0.6 * 100rpx; +} + +.coupon-list .item .text { + width: 4.5 * 100rpx; + padding: 0 0.17 * 100rpx 0 0.24 * 100rpx; + background-color: #fff; + box-sizing: border-box; +} + +.coupon-list .item .text .condition { + font-size: 0.3 * 100rpx; + color: #282828; + height: 0.93 * 100rpx; + line-height: 0.93 * 100rpx; + border-bottom: 1px solid #f0f0f0; +} + +.coupon-list .item .text .data { + font-size: 0.2 * 100rpx; + color: #999; + height: 0.76 * 100rpx; +} + +.coupon-list .item .text .data .bnt { + width: 1.36 * 100rpx; + height: 0.44 * 100rpx; + border-radius: 0.22 * 100rpx; + font-size: 0.22 * 100rpx; + color: #fff; + text-align: center; + line-height: 0.44 * 100rpx; +} + +.coupon-list .item .text .data .bnt.gray { + background-color: #ccc; +} + +.condition .line-title { + width: 0.9 * 100rpx; + height: 0.3 * 100rpx; + line-height: 0.3 * 100rpx; + padding: 0 0.1 * 100rpx; + box-sizing: border-box; + background: rgba(255, 247, 247, 1); + border: 1rpx solid rgba(232, 51, 35, 1); + opacity: 1; + border-radius: 0.22 * 100rpx; + font-size: 0.2 * 100rpx !important; + color: #e83323; + margin-right: 0.12 * 100rpx; +} + +.coupon-list .pic-num { + color: #ffffff !important; + font-size: 0.24 * 100rpx !important; +} + +/*优惠券列表弹窗*/ +.coupon-list-window { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + background-color: #f5f5f5; + border-radius: 0.16 * 100rpx 0.16 * 100rpx 0 0; + z-index: 111; + transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); + -webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); + -moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); + -o-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); + transform: translate3d(0, 100%, 0); + -webkit-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + -moz-transform: translate3d(0, 100%, 0); + -o-transform: translate3d(0, 100%, 0); +} + +.coupon-list-window.on { + transform: translate3d(0, 0, 0); + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); +} + +.coupon-list-window .title { + height: 1.24 * 100rpx; + width: 100%; + text-align: center; + line-height: 1.24 * 100rpx; + font-size: 0.32 * 100rpx; + font-weight: bold; + position: relative; + color: #333; +} + +.coupon-list-window .title .iconfont { + position: absolute; + right: 0.3 * 100rpx; + top: 50%; + transform: translateY(-50%); + font-size: 0.35 * 100rpx; + color: #8a8a8a; + font-weight: normal; +} + +.coupon-list-window .coupon-list { + margin: 0 0 0.5 * 100rpx 0; + height: 5.5 * 100rpx; + overflow: auto; +} + +.coupon-list-window .pictrue { + width: 4.14 * 100rpx; + height: 3.36 * 100rpx; + margin: 0 auto 0.5 * 100rpx auto; +} + +.coupon-list-window .pictrue .image { + width: 100%; + height: 100%; +} + +/*详情首页弹窗*/ +.product-window { + position: fixed; + bottom: 0; + width: 100%; + left: 0; + background-color: #fff; + z-index: 88; + border-radius: 0.16 * 100rpx 0.16 * 100rpx 0 0; + padding-bottom: 1.4 * 100rpx; + transform: translate3d(0, 100%, 0); + transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); +} + +.product-window.on { + transform: translate3d(0, 0, 0); +} + +.product-window .textpic { + padding: 0 1.3 * 100rpx 0 0.3 * 100rpx; + margin-top: 0.29 * 100rpx; + position: relative; +} + +.product-window .textpic .pictrue { + width: 1.5 * 100rpx; + height: 1.5 * 100rpx; +} + +.product-window .textpic .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.1 * 100rpx; +} + +.product-window .textpic .text { + width: 4.1 * 100rpx; + font-size: 0.32 * 100rpx; + color: #202020; +} + +.product-window .textpic .text .money { + font-size: 0.24 * 100rpx; + margin-top: 0.4 * 100rpx; +} + +.product-window .textpic .text .money .num { + font-size: 0.36 * 100rpx; +} + +.product-window .textpic .text .money .stock { + color: #999; + margin-left: 0.18 * 100rpx; +} + +.product-window .textpic .iconfont { + position: absolute; + right: 0.3 * 100rpx; + top: -0.05 * 100rpx; + font-size: 0.35 * 100rpx; + color: #8a8a8a; +} + +.product-window .productWinList { + max-height: 3.95 * 100rpx; + overflow: auto; + margin-top: 0.36 * 100rpx; +} + +.product-window .productWinList .item ~ .item { + margin-top: 0.36 * 100rpx; +} + +.product-window .productWinList .item .title { + font-size: 0.3 * 100rpx; + color: #999; + padding: 0 0.3 * 100rpx; +} + +.product-window .productWinList .item .listn { + padding: 0 0.3 * 100rpx 0 0.16 * 100rpx; +} + +.product-window .productWinList .item .listn .itemn { + border: 1px solid #bbb; + font-size: 0.26 * 100rpx; + color: #282828; + padding: 0.07 * 100rpx 0.33 * 100rpx; + border-radius: 0.06 * 100rpx; + margin: 0.14 * 100rpx 0 0 0.14 * 100rpx; +} + +.product-window .productWinList .item .listn .itemn.on { + color: #fff; + background-color: #eb3729; + border-color: #eb3729; +} + +.product-window .cart { + margin-top: 0.36 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.product-window .cart .title { + font-size: 0.3 * 100rpx; + color: #999; +} + +.product-window .cart .carnum { + height: 0.54 * 100rpx; + margin-top: 0.24 * 100rpx; +} + +.product-window .cart .carnum .item { + border: 1px solid #a4a4a4; + width: 0.84 * 100rpx; + text-align: center; + height: 100%; + line-height: 0.54 * 100rpx; + color: #a4a4a4; + font-size: 0.45 * 100rpx; +} + +.product-window .cart .carnum .reduce { + border-right: 0; + border-radius: 0.06 * 100rpx 0 0 0.06 * 100rpx; + line-height: 0.48 * 100rpx; +} + +.product-window .cart .carnum .reduce.on { + border-color: #e3e3e3; + color: #dedede; +} + +.product-window .cart .carnum .plus { + border-left: 0; + border-radius: 0 0.06 * 100rpx 0.06 * 100rpx 0; + line-height: 0.46 * 100rpx; +} + +.product-window .cart .carnum .plus.on { + border-color: #e3e3e3; + color: #dedede; +} + +.product-window .cart .carnum .num { + color: #282828; + font-size: 0.28 * 100rpx; +} + +/*产品详情的分享红包*/ +.sharing-packets { + position: fixed; + left: 0.3 * 100rpx; + bottom: 1.5 * 100rpx; + z-index: 5; + transition: all 0.3s ease-in-out 0s; + opacity: 1; + transform: scale(1); +} + +.sharing-packets.on { + transform: scale(0); + opacity: 0; +} + +.sharing-packets .iconfont { + width: 0.44 * 100rpx; + height: 0.44 * 100rpx; + border-radius: 50%; + background-color: #999; + font-size: 0.2 * 100rpx; + color: #fff; + margin: 0 auto; + padding-left: 0.01 * 100rpx; +} + +.sharing-packets .line { + width: 0.02 * 100rpx; + height: 0.4 * 100rpx; + background-color: #999; + margin: 0 auto; +} + +.sharing-packets .sharing-con { + width: 1.87 * 100rpx; + height: 2.1 * 100rpx; + position: relative; +} + +.sharing-packets .sharing-con .image { + width: 100%; + height: 100%; +} + +.sharing-packets .sharing-con .text { + position: absolute; + top: 0.2 * 100rpx; + font-size: 0.2 * 100rpx; + width: 100%; + text-align: center; +} + +.sharing-packets .sharing-con .text .money { + font-size: 0.32 * 100rpx; + font-weight: bold; +} + +.sharing-packets .sharing-con .text .money .label { + font-size: 0.2 * 100rpx; +} + +.sharing-packets .sharing-con .text .tip { + font-size: 0.18 * 100rpx; + color: #999; +} + +.sharing-packets .sharing-con .text .shareBut { + font-size: 0.22 * 100rpx; + color: #fff; + margin-top: 0.27 * 100rpx; + height: 0.5 * 100rpx; + line-height: 0.5 * 100rpx; +} + +/*订单产品*/ +.orderGoods { + background-color: #fff; + margin-top: 0.12 * 100rpx; +} + +.orderGoods .total { + box-sizing: border-box; + + width: 100%; + height: 0.86 * 100rpx; + padding: 0 0.3 * 100rpx; + border-bottom: 0.01 * 100rpx solid #eee; + font-size: 0.3 * 100rpx; + color: #282828; + line-height: 0.86 * 100rpx; +} + +.goodWrapper .item { + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + border-bottom: 0.02 * 100rpx solid #f0f0f0; + height: 1.8 * 100rpx; +} + +.goodWrapper .item .pictrue { + width: 1.3 * 100rpx; + height: 1.3 * 100rpx; +} + +.goodWrapper .item .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.goodWrapper .item .text { + width: 5.37 * 100rpx; + position: relative; +} + +.goodWrapper .item .text .name { + font-size: 0.28 * 100rpx; + color: #282828; + width: 4.53 * 100rpx; +} + +.goodWrapper .item .text .num { + font-size: 0.26 * 100rpx; + color: #868686; +} + +.goodWrapper .item .text .attr { + font-size: 0.2 * 100rpx; + color: #868686; + margin-top: 0.07 * 100rpx; +} + +.goodWrapper .item .text .money { + font-size: 0.26 * 100rpx; + margin-top: 0.17 * 100rpx; +} + +.goodWrapper .item .text .evaluate { + position: absolute; + width: 1.14 * 100rpx; + height: 0.46 * 100rpx; + border: 1px solid #e93323; + color: #e93323; + border-radius: 0.04 * 100rpx; + text-align: center; + line-height: 0.46 * 100rpx; + right: 0; + bottom: -0.1 * 100rpx; +} + +.goodWrapper .item .text .evaluate.userEvaluated { + font-size: 0.26 * 100rpx; + color: #aaa; + background-color: #f7f7f7; + border-color: #f7f7f7; +} + +/*地址弹窗*/ +.address-window { + background-color: #fff; + position: fixed; + bottom: 0; + left: 0; + width: 100%; + z-index: 99; + transform: translate3d(0, 100%, 0); + transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); +} + +.address-window.on { + transform: translate3d(0, 0, 0); +} + +.address-window .title { + font-size: 0.32 * 100rpx; + font-weight: bold; + text-align: center; + height: 1.23 * 100rpx; + line-height: 1.23 * 100rpx; + position: relative; + color: #333; +} + +.address-window .title .iconfont { + position: absolute; + right: 0.3 * 100rpx; + color: #8a8a8a; + font-size: 0.35 * 100rpx; +} + +.address-window .list { + max-height: 6 * 100rpx; + overflow-y: auto; + overflow-x: hidden; +} + +.address-window .list .item { + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + border-bottom: 1px solid #eee; + height: 1.29 * 100rpx; + font-size: 0.25 * 100rpx; + color: #333; +} + +.address-window .list .item .iconfont { + font-size: 0.37 * 100rpx; + color: #2c2c2c; +} + +.address-window .list .item .iconfont.icon-complete { + font-size: 0.3 * 100rpx; + color: #fff; +} + +.address-window .list .item .addressTxt { + width: 5.6 * 100rpx; +} + +.address-window .list .item .addressTxt .name { + font-size: 0.28 * 100rpx; + font-weight: bold; + color: #282828; + margin-bottom: 0.04 * 100rpx; +} + +.address-window .list .item .addressTxt .name .phone { + margin-left: 0.18 * 100rpx; +} + +.address-window .addressBnt { + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #fff; + width: 6.9 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.43 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0.85 * 100rpx auto; +} + +.address-window .pictrue { + width: 4.14 * 100rpx; + height: 3.36 * 100rpx; + margin: 0.8 * 100rpx auto; +} + +.address-window .pictrue .image { + width: 100%; + height: 100%; +} + +/*轮播图*/ +.swiper { + height: 2.82 * 100rpx; +} + +.swiper .slide-image { + width: 100%; + height: 100%; +} + +.swiper .swiper-pagination { + text-align: right; + padding-right: 0.4 * 100rpx; + bottom: 0.1 * 100rpx; + width: 100%; +} + +.swiper .swiper-pagination-bullet { + width: 0.12 * 100rpx; + height: 0.12 * 100rpx; + border: 0.02 * 100rpx solid #fff; + border-radius: 50%; + background-color: rgba(0, 0, 0, 0); + opacity: 1; +} + +.swiper .swiper-pagination-bullet ~ .swiper-pagination-bullet { + margin-left: 0.12 * 100rpx; +} + +.swiper .swiper-pagination-bullet-active { + border-color: #e93323; + background-color: #e93323; +} + +/**/ +.goodsStyle { + background-color: #fff; + padding: 0.22 * 100rpx 0.3 * 100rpx; +} + +.goodsStyle .pictrue { + width: 1.2 * 100rpx; + height: 1.2 * 100rpx; +} + +.goodsStyle .pictrue .image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.goodsStyle .text { + width: 5.45 * 100rpx; + font-size: 0.28 * 100rpx; + color: #999; +} + +.goodsStyle .text .name { + width: 3.6 * 100rpx; + color: #282828; +} + +.goodsStyle .text .money { + text-align: right; +} + +.goodsStyle .text .money .num { + margin-top: 0.07 * 100rpx; +} + +/*所有推广头部样式*/ +.promoterHeader { + width: 100%; + height: 2.2 * 100rpx; +} + +.promoterHeader .headerCon { + width: 100%; + height: 100%; + padding: 0 0.88 * 100rpx 0 0.55 * 100rpx; + font-size: 0.28 * 100rpx; + color: #fff; + background-image: url('https://wx.yixiang.co/static/images/transparent.png'); + background-repeat: no-repeat; + background-size: 100% 100%; +} + +.promoterHeader .headerCon .name { + margin-bottom: 0.02 * 100rpx; +} + +.promoterHeader .headerCon .num { + font-size: 0.5 * 100rpx; +} + +.promoterHeader .headerCon .iconfont { + font-size: 1.25 * 100rpx; +} + +/*首页优惠券弹窗*/ +.coupon-window { + background-image: url('https://wx.yixiang.co/static/images/coupon-window.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.3 * 100rpx; + height: 6.49 * 100rpx; + position: fixed; + top: 20%; + z-index: 99; + left: 50%; + margin-left: -3.05 * 100rpx; + transform: translate3d(0, -200%, 0); + transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); +} + +.coupon-window.on { + transform: translate3d(0, 0, 0); +} + +.coupon-window .couponWinList { + width: 4.8 * 100rpx; + margin: 1.57 * 100rpx 0 0 0.6 * 100rpx; + height: 4.15 * 100rpx; + overflow: auto; +} + +.coupon-window .couponWinList .item { + width: 100%; + height: 1.2 * 100rpx; + background-color: #fff; + position: relative; + margin-bottom: 0.17 * 100rpx; +} + +.coupon-window .couponWinList .item::after { + content: ''; + position: absolute; + width: 0.18 * 100rpx; + height: 0.18 * 100rpx; + border-radius: 50%; + background-color: #eb3729; + left: 25.5%; + bottom: 0; + margin-bottom: -0.09 * 100rpx; +} + +.coupon-window .couponWinList .item::before { + content: ''; + position: absolute; + width: 0.18 * 100rpx; + height: 0.18 * 100rpx; + border-radius: 50%; + background-color: #eb3729; + left: 25.5%; + top: 0; + margin-top: -0.09 * 100rpx; +} + +.coupon-window .couponWinList .item .money { + width: 1.3 * 100rpx; + border-right: 1px dashed #ddd; + height: 100%; + text-align: center; + line-height: 1.2 * 100rpx; + font-size: 0.26 * 100rpx; + font-weight: bold; +} + +.coupon-window .couponWinList .item .money .num { + font-size: 0.4 * 100rpx; +} + +.coupon-window .couponWinList .item .text { + width: 3.49 * 100rpx; + font-size: 0.22 * 100rpx; + color: #999; + padding: 0 0.29 * 100rpx; +} + +.coupon-window .couponWinList .item .text .name { + font-size: 0.26 * 100rpx; + color: #282828; + font-weight: bold; + margin-bottom: 0.09 * 100rpx; +} + +.coupon-window .lid { + background-image: url('https://wx.yixiang.co/static/images/coupon-window2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.73 * 100rpx; + height: 2.24 * 100rpx; + position: fixed; + left: 50%; + top: 20%; + margin: 4.24 * 100rpx 0 0 -2.96 * 100rpx; +} + +.coupon-window .lid .bnt { + font-size: 0.29 * 100rpx; + width: 4.4 * 100rpx; + height: 0.8 * 100rpx; + border-radius: 0.4 * 100rpx; + background-color: #f9f1d3; + text-align: center; + line-height: 0.8 * 100rpx; + font-weight: bold; + margin: 0.98 * 100rpx auto 0 auto; +} + +.coupon-window .lid .iconfont { + color: #fff; + font-size: 0.6 * 100rpx; + text-align: center; + margin-top: 0.87 * 100rpx; +} + +/*首页*/ +.index .header { + height: 0.98 * 100rpx; + width: 100%; + padding: 0 30rpx; + box-sizing: border-box; +} + +.index .header .logo { + width: 1.27 * 100rpx; + height: 0.45 * 100rpx; + margin-right: 0.25 * 100rpx; +} + +.index .header .logo image { + width: 100%; + height: 100%; + display: block; +} + +.index .header .search { + // width: 100%; + flex: 1; + box-sizing: border-box; + height: 0.64 * 100rpx; + background-color: #f7f7f7; + border-radius: 0.5 * 100rpx; + padding: 0 0.28 * 100rpx; + font-size: 0.28 * 100rpx; + color: #bbb; +} + +.index .header .qr { + width: 0.34 * 150rpx; + height: 0.34 * 150rpx; + font-size: 0.34 * 100rpx; + margin-left: 0.16 * 100rpx; + margin-right: 0.16 * 100rpx; +} + +.index .header .qr image { + width: 0.34 * 150rpx; + height: 0.34 * 150rpx; +} + +.index .header .search .iconfont { + font-size: 0.34 * 100rpx; + margin-right: 0.16 * 100rpx; +} + +.index .banner { + height: 3.75 * 100rpx; +} + +.index .banner swiper { + height: 3.75 * 100rpx; +} + +.index .banner image { + width: 100%; + height: 3.75 * 100rpx; +} + +.index .banner .swiper-pagination { + bottom: 0.07 * 100rpx; +} + +.index .banner .swiper-pagination-bullet { + width: 0.2 * 100rpx; + height: 0.04 * 100rpx; + border-radius: 0.03 * 100rpx; + background-color: #fff; + opacity: 0.6; +} + +.index .banner .swiper-pagination-bullet-active { + opacity: 1; +} + +.index .nav { + padding-top: 0.26 * 100rpx; +} + +.index .nav .item { + width: 25%; + text-align: center; + font-size: 0.26 * 100rpx; + margin-bottom: 0.35 * 100rpx; +} + +.index .nav .item .pictrue { + width: 0.9 * 100rpx; + height: 0.9 * 100rpx; + margin: 0 auto 0.15 * 100rpx auto; +} + +.index .nav .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.index .news { + align-items: center; + height: 0.77 * 100rpx; + border-top: 1px solid #f4f4f4; + padding: 0 0.3 * 100rpx; + box-shadow: 0 0.1 * 100rpx 0.3 * 100rpx #f5f5f5; + -moz-box-shadow: 0 0.1 * 100rpx 0.3 * 100rpx #f5f5f5; + -o-box-shadow: 0 0.1 * 100rpx 0.3 * 100rpx #f5f5f5; + background: #fffbe8; +} + +.index .news .pictrue { + width: 26rpx; + height: 26rpx; + border-right: 1px solid #ddd; + padding-right: 0.23 * 100rpx; + box-sizing: content-box; + -moz-box-sizing: content-box; + margin-right: 20rpx; +} + +.index .news .pictrue image { + width: 100%; + height: 100%; + display: block; +} + +.index .news .new-banner { + flex: 1; + overflow: hidden; + height: 0.77 * 100rpx; +} + +.index .news .new-banner .swiper-wrapper { + height: 0.77 * 100rpx; + width: 100%; +} + +.index .news .new-banner .swiper-slide { + height: 0.77 * 100rpx; + width: 100%; +} + +.index .news .new-banner .swiper-slide .swiper-item { + height: 0.77 * 100rpx; + width: 100%; +} + +.index .news .new-banner .text { + width: 4.8 * 100rpx; + height: 0.77 * 100rpx; +} + +.index .news .new-banner .text .label { + font-size: 0.2 * 100rpx; + color: #eb3729; + width: 0.68 * 100rpx; + height: 0.34 * 100rpx; + border-radius: 0.2 * 100rpx; + text-align: center; + line-height: 0.34 * 100rpx; + border: 0.02 * 100rpx solid #eb3729; +} + +.index .news .new-banner .text .newsTitle { + width: 3.97 * 100rpx; + font-size: 0.24 * 100rpx; + color: #666; +} + +.index .news .new-banner .iconfont { + font-size: 0.28 * 100rpx; + color: #888; +} + +.index .specialArea { + padding: 0.3 * 100rpx; +} + +.index .specialArea .assemble { + width: 2.6 * 100rpx; + height: 2.6 * 100rpx; + position: relative; +} + +.index .specialArea .assemble image { + width: 100%; + height: 100%; + border-radius: 0.05 * 100rpx; +} + +.index .specialArea .assemble .text { + position: absolute; + top: 0.37 * 100rpx; + left: 0.22 * 100rpx; +} + +.index .specialArea .name { + font-size: 0.3 * 100rpx; + color: #fff; +} + +.index .specialArea .infor { + font-size: 0.22 * 100rpx; + color: rgba(255, 255, 255, 0.8); + margin-top: 0.05 * 100rpx; +} + +.index .specialArea .list { + height: 2.6 * 100rpx; + width: 4.16 * 100rpx; +} + +.index .specialArea .item { + width: 100%; + height: 1.24 * 100rpx; + position: relative; +} + +.index .specialArea .item image { + width: 100%; + height: 100%; +} + +.index .specialArea .item .text { + position: absolute; + top: 0.23 * 100rpx; + left: 0.28 * 100rpx; +} + +.index .wrapper .title { + border-top: 1px solid #eee; + padding-top: 0.34 * 100rpx; + margin: 0 0.3 * 100rpx; + + &.no-border { + border: 0; + } +} + +.index .wrapper.hot + .wrapper { + border-top: 0; +} + +.index .wrapper .goodList { + margin-bottom: 0.34 * 100rpx; +} + +.index .wrapper .title .text { + font-size: 0.24 * 100rpx; + color: #999; + width: 5.3 * 100rpx; + text-align: left; +} + +.index .wrapper .title .text-center .name { + justify-content: center; +} + +.index .wrapper .title .text .name { + color: #282828; + font-size: 28rpx; + font-weight: bold; + margin-bottom: 0.05 * 100rpx; + position: relative; + display: flex; + align-items: center; +} + +.index .wrapper .title .text .name .iconfont { + margin-right: 10rpx; +} + +.index .wrapper .title .text .name .new { + position: absolute; + top: 0.02 * 100rpx; + left: 1.3 * 100rpx; + font-size: 0.16 * 100rpx; + font-weight: bold; +} + +.index .wrapper .title .more { + font-size: 0.26 * 100rpx; + color: #333; +} + +.index .wrapper .title .more .iconfont { + margin-left: 0.02 * 100rpx; + font-size: 0.26 * 100rpx; +} + +.index .wrapper .scroll-product { + white-space: nowrap; + margin-top: 0.38 * 100rpx; + padding: 0 0.3 * 100rpx 0.37 * 100rpx 0.3 * 100rpx; + overflow: hidden; +} + +.index .wrapper .scroll-product .swiper-slide { + width: 1.8 * 100rpx; + display: inline-block; + margin-right: 0.19 * 100rpx; + border-bottom: 0.04 * 100rpx solid #47b479; + box-shadow: 0 0.15 * 100rpx 0.15 * 100rpx -0.1 * 100rpx #eee; + -moz-box-shadow: 0 0.15 * 100rpx 0.15 * 100rpx -0.1 * 100rpx #eee; + -o-box-shadow: 0 0.15 * 100rpx 0.15 * 100rpx -0.1 * 100rpx #eee; +} + +.index .wrapper .scroll-product .swiper-slide:nth-of-type(3n) { + border-bottom: 0.04 * 100rpx solid #ff6960; +} + +.index .wrapper .scroll-product .swiper-slide:nth-of-type(3n-1) { + border-bottom: 0.04 * 100rpx solid #579afe; +} + +.index .wrapper .scroll-product .swiper-slide:nth-last-child(1) { + margin-right: 0; +} + +.index .wrapper .scroll-product .swiper-slide .img-box { + width: 100%; + height: 1.8 * 100rpx; +} + +.index .wrapper .scroll-product .swiper-slide .img-box image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx 0.06 * 100rpx 0 0; +} + +.index .wrapper .scroll-product .swiper-slide .pro-info { + font-size: 0.24 * 100rpx; + color: #282828; + text-align: center; + height: 0.6 * 100rpx; + line-height: 0.6 * 100rpx; + border: 1px solid #f5f5f5; + border-bottom: 0; + border-top: 0; + padding: 0 0.1 * 100rpx; +} + +.index .wrapper .boutique { + width: 6.9 * 100rpx; + height: 2.9 * 100rpx; + margin: 0.28 * 100rpx auto 0 auto; +} + +.index .wrapper .boutique { + width: 6.9 * 100rpx; + height: 2.9 * 100rpx; + margin: 0.28 * 100rpx auto 0 auto; +} + +.index .wrapper .boutique image { + width: 100%; + height: 2.6 * 100rpx; +} + +.index .wrapper .boutique .swiper-pagination { + bottom: -0.08 * 100rpx; + width: 100%; +} + +.index .wrapper .boutique .swiper-pagination-bullet { + width: 0.07 * 100rpx; + height: 0.07 * 100rpx; + border-radius: 50%; + background-color: #fc4141; + opacity: 0.3; +} + +.index .wrapper .boutique .swiper-pagination-bullet ~ .swiper-pagination-bullet { + margin-left: 0.1 * 100rpx; +} + +.index .wrapper .boutique .swiper-pagination-bullet-active { + width: 0.2 * 100rpx; + height: 0.07 * 100rpx; + border-radius: 0.035 * 100rpx; + opacity: 1; +} + +.index .hotList .hot-bg { + width: 100%; + height: 2.15 * 100rpx; + background-image: url('https://wx.yixiang.co/static/images/index-bg.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + padding: 0 0.3 * 100rpx; + font-size: 0.24 * 100rpx; + color: #fff; + margin-top: 0.15 * 100rpx; +} + +.index .hotList .hot-bg .title { + height: 0.87 * 100rpx; +} + +.index .hotList .hot-bg .title .text { + width: 5.75 * 100rpx; +} + +.index .hotList .hot-bg .title .text .label { + font-size: 0.3 * 100rpx; + font-weight: bold; + margin-right: 0.2 * 100rpx; +} + +.index .hotList .hot-bg .title .more { + font-size: 0.26 * 100rpx; + color: #fff; +} + +.index .hotList .hot-bg .title .more .iconfont { + font-size: 0.25 * 100rpx; + vertical-align: 0.02 * 100rpx; + margin-left: 0.1 * 100rpx; +} + +.index .hotList .list { + width: 6.9 * 100rpx; + height: 3.3 * 100rpx; + border-radius: 0.2 * 100rpx; + background-color: #fff; + margin: -1.28 * 100rpx auto 0 auto; + padding: 0 0.22 * 100rpx; + box-shadow: 0 0 0.2 * 100rpx -0.1 * 100rpx #aaa; + -moz-box-shadow: 0 0 0.2 * 100rpx -0.1 * 100rpx #aaa; + -o-box-shadow: 0 0 0.2 * 100rpx -0.1 * 100rpx #aaa; +} + +.index .hotList .list .item { + width: 2 * 100rpx; + text-align: left; +} + +.index .hotList .list .item ~ .item { + margin-left: 0.23 * 100rpx; +} + +.index .hotList .list .item .pictrue { + width: 100%; + height: 2 * 100rpx; + position: relative; +} + +.index .hotList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1 * 100rpx; +} + +.index .hotList .list .item .pictrue .numPic { + width: 0.5 * 100rpx; + height: 0.5 * 100rpx; + border-radius: 50%; + position: absolute; + top: 0.07 * 100rpx; + left: 0.07 * 100rpx; +} + +.index .hotList .list .item .name { + font-size: 0.26 * 100rpx; + color: #282828; + margin-top: 0.12 * 100rpx; +} + +.index .hotList .list .item .money { + font-size: 0.2 * 100rpx; + font-weight: bold; + margin-top: 0.02 * 100rpx; +} + +.index .hotList .list .item .money .num { + font-size: 0.28 * 100rpx; +} + +.index .adver { + width: 100%; + height: 1.8 * 100rpx; + margin-top: 0.37 * 100rpx; +} + +.index .adver image { + width: 100%; + height: 100%; + display: block; +} + +.index .hot { + position: relative; + background: none; +} + +.index .hot .title { + position: relative; + z-index: 9; +} + +.index .hot .title .text .name { + color: #fff; +} + +.index .hot .title .more { + color: #fff; +} + +.index .hot .title .more .iconfont { + color: #fff; +} + +.index .hot .bg { + width: 100%; + position: absolute; + left: 0; + top: 0; + right: 0; +} + +.index .wrapper.hot .newProducts .newProductsItem { + border: 0; +} + +.index .wrapper.hot .title .text { + color: #fff; + font-size: 28rpx; + + .iconfont { + margin-right: 10rpx; + } +} + +.index .wrapper.hot .newProducts { + white-space: nowrap; + padding: 0 0.3 * 100rpx; + margin: 0.35 * 100rpx; + overflow: hidden; + background-color: #fff; + padding: 0.3 * 100rpx; + z-index: 99; + position: relative; + margin-bottom: 0; + border-radius: 0.2 * 100rpx; + box-shadow: 0 0 0.2 * 100rpx -0.1 * 100rpx #aaa; +} + +.index .wrapper .newProducts { + white-space: nowrap; + padding: 0 0.3 * 100rpx; + margin: 0.35 * 100rpx 0 0.42 * 100rpx 0; + overflow: hidden; +} + +.index .wrapper .newProducts .swiper-wrapper { + height: 350rpx; +} + +.index .wrapper .newProducts { +} + +.index .wrapper.hot .newProducts .newProductsItem { + width: 2.4 * 100rpx; + min-width: 2.4 * 100rpx; + margin-right: 0.2 * 100rpx; + flex: 0 2.4 * 100rpx; +} + +.index .wrapper .newProducts .newProductsScroll { + display: flex; + flex-direction: row; +} + +.index .wrapper.hot .newProducts .newProductsItem image { + width: 2.4 * 100rpx; + height: 2.4 * 100rpx; +} + +.index .wrapper .newProducts .newProductsItem { + border: 1rpx solid #eee; + width: 2.4 * 100rpx; + min-width: 2.4 * 100rpx; + border-radius: 0.12 * 100rpx; + overflow: hidden; + margin-right: 0.2 * 100rpx; + flex: 0 2.4 * 100rpx; +} + +.index .wrapper .newProducts:nth-last-child(1) { +} + +.index .wrapper .newProducts .img-box { + width: 100%; + height: 2.4 * 100rpx; +} + +.index .wrapper.hot .newProducts .img-box { + width: 2.4 * 100rpx; +} + +.index .wrapper .newProducts .img-box image { + width: 100%; + height: 100%; + border-radius: 0.12 * 100rpx 0.12 * 100rpx 0 0; +} + +.index .wrapper.hot .newProducts .img-box image { + border-radius: 0.12 * 100rpx; +} + +.index .wrapper .newProducts .pro-info { + font-size: 0.28 * 100rpx; + color: #333; + text-align: center; + padding: 0.15 * 100rpx 0.1 * 100rpx 0 0.1 * 100rpx; +} + +.index .wrapper .newProducts .money { + padding: 0 0.1 * 100rpx 0.18 * 100rpx 0.1 * 100rpx; + text-align: center; + font-size: 0.26 * 100rpx; + font-weight: bold; +} + +.index .wrapper.hot .newProducts .pro-info { + text-align: left; +} + +.index .wrapper.hot .newProducts .money { + text-align: left; +} + +/*商品列表*/ +.productList .search { + width: 100%; + height: 0.86 * 100rpx; + padding-left: 0.23 * 100rpx; + padding-right: 0.23 * 100rpx; + position: fixed; + left: 0; + top: 0; + z-index: 5; + box-sizing: border-box; +} + +.productList .search .input { + flex: 1; + height: 0.6 * 100rpx; + background-color: #fff; + border-radius: 0.5 * 100rpx; + padding: 0 0.2 * 100rpx; + margin-right: 0.23 * 100rpx; +} + +.productList .search .input input { + width: 5.48 * 100rpx; + height: 100%; + font-size: 0.26 * 100rpx; +} + +.productList .search .input input::placeholder { + color: #999; +} + +.productList .search .input .iconfont { + font-size: 0.35 * 100rpx; + color: #555; +} + +.productList .search .icon-pailie, +.productList .search .icon-tupianpailie { + margin: 0 auto; + color: #fff; + width: 0.4 * 100rpx; + font-size: 0.4 * 100rpx; + height: 0.86 * 100rpx; + line-height: 0.86 * 100rpx; +} + +.productList .nav { + height: 0.86 * 100rpx; + color: #454545; + position: fixed; + left: 0; + width: 100%; + font-size: 0.28 * 100rpx; + background-color: #fff; + top: 0.86 * 100rpx; + z-index: 5; +} + +.productList .nav .item { + width: 25%; + text-align: center; +} + +.productList .nav .item.font-color { + font-weight: bold; +} + +.productList .nav .item image { + width: 0.15 * 100rpx; + height: 0.19 * 100rpx; + margin-left: 0.1 * 100rpx; +} + +.productList .list { + padding: 0 0.2 * 100rpx; + margin-top: 1.72 * 100rpx; +} + +.productList .list.on { + background-color: #fff; + border-top: 1px solid #f6f6f6; +} + +.productList .list .item { + width: 3.45 * 100rpx; + margin-top: 0.2 * 100rpx; + background-color: #fff; + border-radius: 0.1 * 100rpx; +} + +.productList .list .item.on { + width: 100%; + display: flex; + border-bottom: 1px solid #f6f6f6; + padding: 0.3 * 100rpx 0; + margin: 0; +} + +.productList .list .item .pictrue { + width: 100%; + height: 3.45 * 100rpx; +} + +.productList .list .item .pictrue.on { + width: 1.8 * 100rpx; + height: 1.8 * 100rpx; +} + +.productList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1 * 100rpx 0.1 * 100rpx 0 0; +} + +.productList .list .item .pictrue img.on { + border-radius: 0.06 * 100rpx; +} + +.productList .list .item .text { + padding: 0.2 * 100rpx 0.17 * 100rpx 0.26 * 100rpx 0.17 * 100rpx; + font-size: 0.3 * 100rpx; + color: #222; + text-align: left; +} + +.productList .list .item .text.on { + width: 5.08 * 100rpx; + padding: 0 0 0 0.22 * 100rpx; +} + +.productList .list .item .text .money { + font-size: 0.26 * 100rpx; + font-weight: bold; + margin-top: 0.08 * 100rpx; +} + +.productList .list .item .text .money.on { + margin-top: 0.4 * 100rpx; +} + +.productList .list .item .text .money .num { + font-size: 0.34 * 100rpx; +} + +.productList .list .item .text .vip { + font-size: 0.22 * 100rpx; + color: #aaa; + margin-top: 0.07 * 100rpx; +} + +.productList .list .item .text .vip.on { + margin-top: 0.11 * 100rpx; +} + +.productList .list .item .text .vip .vip-money { + font-size: 0.24 * 100rpx; + color: #282828; + font-weight: bold; + text-decoration: line-through; +} + +.productList .list .item .text .vip .vip-money image { + width: 0.46 * 100rpx; + height: 0.21 * 100rpx; + margin-left: 0.04 * 100rpx; +} + +/*购物车*/ +.shoppingCart .labelNav { + box-sizing: border-box; + height: 0.76 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.22 * 100rpx; + color: #8c8c8c; + position: fixed; + left: 0; + width: 100%; + background-color: #f5f5f5; + z-index: 5; + top: 0; + /* #ifdef H5 */ + // top: calc(0 + env(safe-area-inset-top)); + /* #endif */ +} + +.shoppingCart .labelNav .item .iconfont { + font-size: 0.25 * 100rpx; + margin-right: 0.1 * 100rpx; +} + +.shoppingCart .nav { + box-sizing: border-box; + width: 100%; + height: 0.8 * 100rpx; + background-color: #fff; + padding: 0 0.3 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; + position: fixed; + left: 0; + z-index: 5; + top: 0.76 * 100rpx; + border-bottom: 1px solid #f5f5f5; + /* #ifdef H5 */ + // top: calc(0 + env(safe-area-inset-top) + 76rpx); + /* #endif */ +} + +.shoppingCart .nav .administrate { + font-size: 0.26 * 100rpx; + color: #282828; + width: 1.1 * 100rpx; + height: 0.46 * 100rpx; + border-radius: 0.06 * 100rpx; + border: 1px solid #868686; +} + +.shoppingCart .noCart { + margin-top: 1.71 * 100rpx; + background-color: #fff; + padding: 0.78 * 100rpx 0 0.56 * 100rpx 0; +} + +.shoppingCart .noCart .pictrue { + width: 4.14 * 100rpx; + height: 3.36 * 100rpx; + margin: 0 auto; +} + +.shoppingCart .noCart .pictrue image { + width: 100%; + height: 100%; +} + +.shoppingCart .list { + margin-top: .8 * 100rpx; +} + +.shoppingCart .list .item { + padding: 0.25 * 100rpx 0.3 * 100rpx; + background-color: #fff; + margin-bottom: 0.15 * 100rpx; +} + +.shoppingCart .list .item .picTxt { + width: 6.27 * 100rpx; + position: relative; +} + +.shoppingCart .list .item .picTxt .pictrue { + width: 1.6 * 100rpx; + height: 1.6 * 100rpx; +} + +.shoppingCart .list .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.shoppingCart .list .item .picTxt .text { + width: 4.44 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; + text-align: left; +} + +.shoppingCart .list .item .picTxt .text .infor { + font-size: 0.24 * 100rpx; + color: #868686; + margin-top: 0.16 * 100rpx; +} + +.shoppingCart .list .item .picTxt .text .money { + font-size: 0.32 * 100rpx; + color: #282828; + margin-top: 0.26 * 100rpx; +} + +.shoppingCart .list .item .picTxt .carnum { + height: 0.44 * 100rpx; + position: absolute; + bottom: 0.07 * 100rpx; + right: 0; +} + +.shoppingCart .list .item .picTxt .carnum view { + border: 1px solid #a4a4a4; + width: 0.66 * 100rpx; + text-align: center; + height: 100%; + line-height: 0.44 * 100rpx; + font-size: 0.28 * 100rpx; + color: #a4a4a4; +} + +.shoppingCart .list .item .picTxt .carnum .reduce { + border-right: 0; + border-radius: 0.03 * 100rpx 0 0 0.03 * 100rpx; + line-height: 0.39 * 100rpx; +} + +.shoppingCart .list .item .picTxt .carnum .reduce.on { + border-color: #e3e3e3; + color: #dedede; +} + +.shoppingCart .list .item .picTxt .carnum .plus { + border-left: 0; + border-radius: 0 0.03 * 100rpx 0.03 * 100rpx 0; + line-height: 0.38 * 100rpx; +} + +.shoppingCart .list .item .picTxt .carnum .num { + color: #282828; +} + +.shoppingCart .invalidGoods { + background-color: #fff; +} + +.shoppingCart .invalidGoods .goodsNav { + box-sizing: border-box; + width: 100%; + height: 0.66 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.shoppingCart .invalidGoods .goodsNav .iconfont { + color: #424242; + font-size: 0.28 * 100rpx; + margin-right: 0.17 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsNav .del { + font-size: 0.26 * 100rpx; + color: #999; +} + +.shoppingCart .invalidGoods .goodsNav .del .icon-shanchu1 { + color: #999; + font-size: 0.33 * 100rpx; + vertical-align: -0.02 * 100rpx; + margin-right: 0.08 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item { + padding: 0.2 * 100rpx 0.3 * 100rpx; + border-top: 1px solid #f5f5f5; +} + +.shoppingCart .invalidGoods .goodsList .item .invalid { + font-size: 0.22 * 100rpx; + color: #fff; + width: 0.7 * 100rpx; + height: 0.36 * 100rpx; + background-color: #aaa; + border-radius: 0.03 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .pictrue { + width: 1.4 * 100rpx; + height: 1.4 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .text { + width: 4.33 * 100rpx; + font-size: 0.28 * 100rpx; + color: #999; + height: 1.4 * 100rpx; + text-align: left; +} + +.shoppingCart .invalidGoods .goodsList .item .text .infor { + font-size: 0.24 * 100rpx; +} + +.shoppingCart .invalidGoods .goodsList .item .text .end { + font-size: 0.26 * 100rpx; + color: #bbb; +} + +.shoppingCart .footer { + box-sizing: border-box; + width: 100%; + height: 0.96 * 100rpx; + background-color: #fafafa; + position: fixed; + bottom: 0; + padding: 0 0.3 * 100rpx; + border-top: 1px solid #eee; +} + +.shoppingCart .iphonex-footer { + bottom: 168rpx; +} + +.shoppingCart .footer .checkAll { + font-size: 0.28 * 100rpx; + color: #282828; + margin-left: 0.1 * 100rpx; +} + +.shoppingCart .footer .money { + font-size: 0.3 * 100rpx; +} + +.shoppingCart .footer .placeOrder { + color: #fff; + font-size: 0.3 * 100rpx; + width: 2.26 * 100rpx; + height: 0.7 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.7 * 100rpx; + margin-left: 0.22 * 100rpx; +} + +.shoppingCart .footer .button .bnt { + font-size: 0.28 * 100rpx; + color: #999; + border-radius: 0.5 * 100rpx; + border: 1px solid #999; + width: 1.6 * 100rpx; + height: 0.6 * 100rpx; + text-align: center; + line-height: 0.6 * 100rpx; +} + +.shoppingCart .footer .button .bnt ~ .bnt { + margin-left: 0.17 * 100rpx; +} + +/*个人中心*/ +.user .header { + padding: 0 0.3 * 100rpx; + height: 1.9 * 100rpx; + position: relative; +} + +.user .header:after { + position: absolute; + left: 0; + right: 0; + bottom: -0.98 * 100rpx; + z-index: -1; + content: ''; + height: 1 * 100rpx; + width: 100%; + border-radius: 0 0 50% 50%; + background-color: #eb3729; +} + +.user .header .picTxt .pictrue { + width: 1.2 * 100rpx; + height: 1.2 * 100rpx; +} + +.user .header .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03 * 100rpx solid #f5f5f5; +} + +.user .header .picTxt .text { + width: 4.34 * 100rpx; + color: rgba(255, 255, 255, 1); + margin-left: 0.35 * 100rpx; + text-align: left; +} + +.user .header .picTxt .text .name { + font-size: 0.32 * 100rpx; + max-width: 2.6 * 100rpx; + width: unset; +} + +.user .header .picTxt .text .member { + padding: 0 0.1 * 100rpx; + height: 0.36 * 100rpx; + background-color: rgba(0, 0, 0, 0.2); + font-size: 0.2 * 100rpx; + border-radius: 0.3 * 100rpx; + margin-left: 0.17 * 100rpx; +} + +.user .header .picTxt .text .member image { + width: 0.28 * 100rpx; + height: 0.28 * 100rpx; + font-size: 0.2 * 100rpx; + margin-right: 0.08 * 100rpx; +} + +.user .header .picTxt .text .id { + color: rgba(255, 255, 255, 0.6); + font-size: 0.26 * 100rpx; + margin-top: 0.15 * 100rpx; +} + +.user .header .picTxt .text .id .iconfont { + font-size: 0.3 * 100rpx; + margin-left: 0.12 * 100rpx; +} + +.user .header .icon-shezhi { + font-size: 0.36 * 100rpx; + color: #fff; + margin-top: -0.52 * 100rpx; +} + +.user .wrapper { + padding: 0 0.2 * 100rpx; +} + +.user .wrapper .nav { + background-color: #fff; + border-radius: 0.06 * 100rpx; + height: 1.4 * 100rpx; +} + +.user .wrapper .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.26 * 100rpx; + color: #aaa; + position: relative; +} + +.user .wrapper .nav .item text { + display: block; +} + +.user .wrapper .nav .item ~ .item:after { + position: absolute; + content: ''; + left: 0; + width: 1px; + height: 0.7 * 100rpx; + background-color: #eee; + top: 50%; + margin-top: -0.35 * 100rpx; +} + +.user .wrapper .nav .item .num { + margin-top: 0.1 * 100rpx; + font-size: 0.36 * 100rpx; + color: #282828; +} + +.user .wrapper .myOrder { + background-color: #fff; + border-radius: 0.1 * 100rpx; + margin-top: 0.15 * 100rpx; +} + +.user .wrapper .myOrder .title, +.user .wrapper .myService .title { + height: 0.88 * 100rpx; + padding: 0 0.3 * 100rpx; + border-bottom: 1px dashed #eee; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.user .wrapper .myOrder .title .allOrder { + font-size: 0.26 * 100rpx; + color: #666; +} + +.user .wrapper .myOrder .title .allOrder .iconfont { + font-size: 0.25 * 100rpx; + margin-left: 0.07 * 100rpx; +} + +.user .wrapper .myOrder .orderState { + height: 1.6 * 100rpx; +} + +.user .wrapper .myOrder .orderState .item { + font-size: 0.26 * 100rpx; + color: #454545; + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; +} + +.user .wrapper .myOrder .orderState .item .pictrue { + width: 0.49 * 100rpx; + height: 0.42 * 100rpx; + margin: 0 auto 0.18 * 100rpx auto; +} + +.user .wrapper .myOrder .orderState .item .pictrue image { + width: 100%; + height: 100%; +} + +.user .wrapper .myService { + background-color: #fff; + margin-top: 0.15 * 100rpx; + border-radius: 0.1 * 100rpx; +} + +.user .wrapper .myService .serviceList { + padding: 0.08 * 100rpx 0 0.27 * 100rpx 0; +} + +.user .wrapper .myService .serviceList .item { + width: 100%; + text-align: left; + font-size: 0.26 * 100rpx; + color: #333; + display: flex; + align-items: center; + padding: 0.2 * 100rpx 0.3 * 100rpx; + position: relative; + + .iconfont { + font-size: 0.26 * 100rpx; + color: #666; + } + + &::after { + content: ''; + display: block; + position: absolute; + left: 0.3 * 100rpx; + right: 0; + bottom: 0; + border-bottom: 1rpx solid #f5f5f5; + z-index: 99; + height: 1rpx; + } +} + +.user .wrapper .myService .serviceList .item .pictrue { + width: 36rpx; + height: 36rpx; + margin-right: 0.16 * 100rpx; +} + +.user .wrapper .myService .serviceList .item .cell { + flex: 1; +} + +.user .wrapper .myService .serviceList .item .pictrue image { + width: 100%; + height: 100%; +} + +.user .support { + width: 2.19 * 100rpx; + height: 0.74 * 100rpx; + margin: 0.54 * 100rpx auto; + display: block; +} + +/*所有产品的详情公用部分*/ +.product-con .wrapper { + background-color: #fff; +} + +.product-con .wrapper .share { + margin: 0 0.3 * 100rpx; + padding-top: 0.25 * 100rpx; +} + +.product-con .wrapper .share .money { + font-size: 0.28 * 100rpx; + font-weight: bold; +} + +.product-con .wrapper .share .money .num { + font-size: 0.48 * 100rpx; +} + +.product-con .wrapper .share .money .vip-money { + color: #282828; + margin-left: 0.13 * 100rpx; +} + +.product-con .wrapper .share .money .image { + width: 0.46 * 100rpx; + height: 0.21 * 100rpx; + margin-left: 0.07 * 100rpx; +} + +.product-con .wrapper .share .money .vip-money { + color: #282828; + margin-left: 0.13 * 100rpx; +} + +.product-con .wrapper .share .iconfont { + color: #515151; + font-size: 0.4 * 100rpx; + margin-bottom: 0.1 * 100rpx; +} + +.product-con .wrapper .introduce { + font-size: 0.32 * 100rpx; + font-weight: bold; + margin: 0.1 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; +} + +.product-con .wrapper .label { + margin: 0.22 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; + font-size: 0.24 * 100rpx; + color: #82848f; + padding-bottom: 0.25 * 100rpx; +} + +.product-con .wrapper .coupon { + padding: 0 0.3 * 100rpx; + border-top: 1px solid #f5f5f5; + height: 0.8 * 100rpx; + font-size: 0.26 * 100rpx; + color: #82848f; +} + +.product-con .wrapper .coupon .hide { + text-overflow: clip; + flex: 1; + height: 0.8 * 100rpx; + line-height: 0.8 * 100rpx; +} + +.product-con .wrapper .coupon .activity { + height: 0.4 * 100rpx; + padding: 0 0.2 * 100rpx; + border: 1px solid #f2857b; + color: #e93323; + font-size: 0.24 * 100rpx; + line-height: 0.4 * 100rpx; + position: relative; + margin: 0.19 * 100rpx 0 0.19 * 100rpx 0.15 * 100rpx; +} + +.product-con .wrapper .coupon .activity:before { + content: ' '; + position: absolute; + width: 0.07 * 100rpx; + height: 0.1 * 100rpx; + border-radius: 0 0.07 * 100rpx 0.07 * 100rpx 0; + border: 1px solid #f2857b; + background-color: #fff; + bottom: 50%; + left: -0.02 * 100rpx; + margin-bottom: -0.07 * 100rpx; + border-left-color: #fff; +} + +.product-con .wrapper .coupon .activity:after { + content: ' '; + position: absolute; + width: 0.07 * 100rpx; + height: 0.1 * 100rpx; + border-radius: 0.07 * 100rpx 0 0 0.07 * 100rpx; + border: 1px solid #f2857b; + background-color: #fff; + right: -0.02 * 100rpx; + bottom: 50%; + margin-bottom: -0.05 * 100rpx; + border-right-color: #fff; +} + +.product-con .wrapper .coupon .iconfont { + color: #7a7a7a; + font-size: 0.28 * 100rpx; +} + +.product-con .attribute { + background-color: #fff; + padding: 0 0.3 * 100rpx; + font-size: 0.26 * 100rpx; + color: #82848f; + margin-top: 0.2 * 100rpx; + height: 0.8 * 100rpx; +} + +.product-con .attribute .atterTxt { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.product-con .attribute .iconfont { + font-size: 0.28 * 100rpx; + color: #7a7a7a; +} + +.product-con .userEvaluation { + margin-top: 0.2 * 100rpx; + background-color: #fff; +} + +.product-con .userEvaluation .title { + height: 0.86 * 100rpx; + border-bottom: 1px solid #eee; + font-size: 0.28 * 100rpx; + color: #282828; + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; +} + +.product-con .userEvaluation .title .praise { + font-size: 0.28 * 100rpx; + color: #808080; +} + +.product-con .userEvaluation .title .praise .iconfont { + color: #7a7a7a; + font-size: 0.28 * 100rpx; + vertical-align: 0.01 * 100rpx; + margin-left: 0.08 * 100rpx; +} + +.product-con .product-intro { + margin-top: 0.2 * 100rpx; +} + +.product-con .product-intro .title { + // font-size: 0.3 * 100rpx; + // color: #282828; + // height: 0.86 * 100rpx; + // width: 100%; + // background-color: #fff; + // text-align: center; + // line-height: 0.86 * 100rpx; + position: relative; + width: 50%; + margin: 1.5em auto; + line-height: 1.5em; + font-size: 30rpx; + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; + &:after { + content: ' '; + position: absolute; + border-bottom: 0.5px solid #e5e5e5; + -webkit-transform: scaleY(0.5); + transform: scaleY(0.5); + width: 100%; + top: 9px; + left: 0; + z-index: -1; + } + text { + background: #f5f5f5; + padding: 0 20rpx; + } +} + +.product-con .product-intro .conter { + width: 100%; +} + +.product-con .product-intro .conter * { + width: 100% !important; + display: block !important; +} + +/*产品详情*/ +.product-con .footer { + box-sizing: border-box; + padding: 0 0.2 * 100rpx 0 0.3 * 100rpx; + position: fixed; + bottom: 0; + width: 100%; + height: 1 * 100rpx; + background-color: #fff; + z-index: 99; + border-top: 1px solid #f0f0f0; +} + +.product-con .footer .item { + font-size: 0.18 * 100rpx; + color: #666; + margin-top: 0.07 * 100rpx; +} + +.product-con .footer .item .iconfont { + text-align: center; + font-size: 0.4 * 100rpx; + height: 0.4 * 100rpx; + line-height: 0.4 * 100rpx; +} + +.product-con .footer .item .iconfont.icon-gouwuche1 { + position: relative; +} + +.product-con .footer .item .iconfont.icon-gouwuche1 .num { + color: #fff; + position: absolute; + font-size: 0.18 * 100rpx; + border-radius: 2 * 100rpx; + top: -0.1 * 100rpx; + right: 0; + height: 0.3 * 100rpx; + line-height: 0.3 * 100rpx; + padding: 0 0.08 * 100rpx; + min-width: 0.3 * 100rpx; +} + +.product-con .footer .bnt { + width: 4.44 * 100rpx; + height: 0.76 * 100rpx; + color: #fff; + font-size: 0.28 * 100rpx; +} + +.product-con .footer .bnt > view { + width: 2.22 * 100rpx; + text-align: center; + line-height: 0.76 * 100rpx; +} + +.product-con .footer .bnt .joinCart { + border-radius: 0.5 * 100rpx 0 0 0.5 * 100rpx; + background-image: linear-gradient(to right, #fea10f 0%, #fea10f 100%); + background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); +} + +.product-con .footer .bnt .buy { + border-radius: 0 0.5 * 100rpx 0.5 * 100rpx 0; + background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); + background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); +} + +.product-con .footer .bnt.seckill-bnt { + flex: 1; + margin-left: 20rpx; + + .buy { + width: 100%; + border-radius: 50rpx; + } +} + +/*订单提交*/ +.order-submission .line { + width: 100%; + height: 0.03 * 100rpx; +} + +.order-submission .line image { + width: 100%; + height: 100%; + display: block; +} + +.order-submission .address { + padding: 0.28 * 100rpx 0.3 * 100rpx; + background-color: #fff; +} + +.order-submission .address .addressCon { + width: 5.7 * 100rpx; + font-size: 0.26 * 100rpx; + color: #666; +} + +.order-submission .address .addressCon .name { + font-size: 0.3 * 100rpx; + color: #282828; + font-weight: bold; + margin-bottom: 0.1 * 100rpx; +} + +.order-submission .address .addressCon .name .phone { + margin-left: 0.5 * 100rpx; +} + +.order-submission .address .addressCon .default { + margin-right: 0.12 * 100rpx; +} + +.order-submission .address .addressCon .setaddress { + color: #333; + font-size: 0.28 * 100rpx; +} + +.order-submission .address .iconfont { + font-size: 0.35 * 100rpx; + color: #707070; +} + +.order-submission .wrapper { + background-color: #fff; + margin-top: 0.13 * 100rpx; +} + +.order-submission .wrapper .item { + padding: 0.27 * 100rpx 0.3 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; + border-bottom: 1px solid #f0f0f0; +} + +.order-submission .wrapper .item .discount { + font-size: 0.3 * 100rpx; + color: #999; + width: 5 * 100rpx; + text-align: right; +} + +.order-submission .wrapper .item .discount .integral { + margin-right: 0.4 * 100rpx; +} + +.order-submission .wrapper .item .discount .checkbox-wrapper .icon { + right: 0; + left: unset; +} + +.order-submission .wrapper .item .discount .iconfont { + color: #515151; + font-size: 0.3 * 100rpx; + margin-left: 0.15 * 100rpx; +} + +.order-submission .wrapper .item .discount .num { + font-size: 0.32 * 100rpx; + margin-right: 0.2 * 100rpx; +} + +.order-submission .wrapper .item textarea { + box-sizing: border-box; + background-color: #f9f9f9; + width: 100%; + height: 1.4 * 100rpx; + border-radius: 0.03 * 100rpx; + margin-top: 0.3 * 100rpx; + padding: 0.25 * 100rpx 0.28 * 100rpx; +} + +.order-submission .wrapper .item textarea::placeholder { + color: #ccc; +} + +.order-submission .wrapper .item .list { + margin-top: 0.35 * 100rpx; +} + +.order-submission .wrapper .item .list .payItem { + border: 1px solid #eee; + border-radius: 0.06 * 100rpx; + height: 0.86 * 100rpx; + width: 100%; + margin-top: 0.2 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.order-submission .wrapper .item .list .payItem.on { + border-color: #fc5445; + color: #e93323; +} + +.order-submission .wrapper .item .list .payItem .name { + width: 50%; + text-align: center; + border-right: 1px solid #eee; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont { + width: 0.44 * 100rpx; + height: 0.44 * 100rpx; + border-radius: 50%; + text-align: center; + line-height: 0.44 * 100rpx; + background-color: #fe960f; + color: #fff; + font-size: 0.3 * 100rpx; + margin-right: 0.15 * 100rpx; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 { + background-color: #41b035; +} + +.order-submission .wrapper .item .list .payItem .name .iconfont.icon-yinhangqia { + background-color: #eb3729; +} + +.order-submission .wrapper .item .list .payItem .tip { + width: 49%; + text-align: center; + font-size: 0.26 * 100rpx; + color: #aaa; +} + +.order-submission .moneyList { + margin-top: 0.12 * 100rpx; + background-color: #fff; + padding: 0.3 * 100rpx; +} + +.order-submission .moneyList .item { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.order-submission .moneyList .item ~ .item { + margin-top: 0.2 * 100rpx; +} + +.order-submission .moneyList .item .money { + color: #868686; +} + +.order-submission .footer { + box-sizing: border-box; + width: 100%; + height: 1 * 100rpx; + background-color: #fff; + padding: 0 0.3 * 100rpx; + font-size: 0.28 * 100rpx; + color: #333; + position: fixed; + bottom: 0; + left: 0; +} + +.order-submission .footer .settlement { + font-size: 0.3 * 100rpx; + color: #fff; + width: 2.4 * 100rpx; + height: 0.7 * 100rpx; + background-color: #e93323; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.7 * 100rpx; +} + +/*地址管理*/ +.address-management .line { + width: 100%; + height: 0.03 * 100rpx; +} + +.address-management .line image { + width: 100%; + height: 100%; + display: block; +} + +.address-management .item { + background-color: #fff; + padding: 0 0.3 * 100rpx; + margin-bottom: 0.12 * 100rpx; +} + +.address-management .item .address { + padding: 0.3 * 100rpx 0; + border-bottom: 1px solid #eee; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.address-management .item .address .consignee { + font-size: 0.28 * 100rpx; + font-weight: bold; + margin-bottom: 0.08 * 100rpx; +} + +.address-management .item .address .consignee .phone { + margin-left: 0.25 * 100rpx; +} + +.address-management .item .operation { + height: 0.83 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.address-management .item .operation .default { + margin-left: 0.1 * 100rpx; +} + +.address-management .item .operation .iconfont { + color: #2c2c2c; + font-size: 0.3 * 100rpx; + vertical-align: -0.02 * 100rpx; + margin-right: 0.1 * 100rpx; +} + +.address-management .item .operation .iconfont.icon-shanchu { + margin-left: 0.4 * 100rpx; + font-size: 0.33 * 100rpx; +} + +.address-management .footer { + box-sizing: border-box; + position: fixed; + width: 100%; + background-color: #fff; + bottom: 0; + height: 1.06 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.address-management .footer .addressBnt { + width: 3.3 * 100rpx; + height: 0.76 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.76 * 100rpx; + font-size: 0.3 * 100rpx; + color: #fff; +} + +.address-management .footer .addressBnt.on { + width: 6.9 * 100rpx; + margin: 0 auto; +} + +.address-management .footer .addressBnt .iconfont { + font-size: 0.35 * 100rpx; + margin-right: 0.08 * 100rpx; + vertical-align: -0.01 * 100rpx; +} + +.address-management .footer .addressBnt.wxbnt { + background-color: #eb3729; +} + +/*添加地址*/ +.addAddress .list { + background-color: #fff; +} + +.addAddress .list .item { + padding: 0 0.3 * 100rpx; + min-height: 0.9 * 100rpx; + border-top: 0.01 * 100rpx solid #eee; + font-size: 0.3 * 100rpx; +} + +.addAddress .list .item .name { + width: 1.95 * 100rpx; + color: #333; +} + +.addAddress .list .item input { + width: 4.75 * 100rpx; + font-size: 0.3 * 100rpx; +} + +.addAddress .list .item input::placeholder { + color: #ccc; +} + +.addAddress .list .item .picker { + width: 4.75 * 100rpx; +} + +.addAddress .list .item .address { + width: 4.1 * 100rpx; +} + +.addAddress .list .item .picker .iconfont { + font-size: 0.43 * 100rpx; +} + +.addAddress .default { + padding: 0 0.3 * 100rpx; + height: 0.9 * 100rpx; + background-color: #fff; + margin-top: 0.23 * 100rpx; +} + +.addAddress .default .def { + margin-left: 0.1 * 100rpx; + height: 0.83 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.addAddress .keepBnt { + width: 6.9 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0.5 * 100rpx auto 0.3 * 100rpx auto; + font-size: 0.32 * 100rpx; + color: #fff; +} + +.addAddress .wechatAddress { + width: 6.9 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0 auto; + font-size: 0.32 * 100rpx; + color: #eb3729; + border: 1px solid #eb3729; +} + +/*我的订单*/ +.my-order .header { + height: 2.6 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.my-order .header .picTxt { + height: 1.9 * 100rpx; +} + +.my-order .header .picTxt .text { + color: rgba(255, 255, 255, 0.8); + font-size: 0.26 * 100rpx; + font-family: 'GuildfordProBook 5'; +} + +.my-order .header .picTxt .text .name { + font-size: 0.34 * 100rpx; + font-weight: bold; + color: #fff; + margin-bottom: 0.2 * 100rpx; +} + +.my-order .header .picTxt .pictrue { + width: 1.22 * 100rpx; + height: 1.09 * 100rpx; +} + +.my-order .header .picTxt .pictrue image { + width: 100%; + height: 100%; +} + +.my-order .nav { + background-color: #fff; + width: 6.9 * 100rpx; + height: 1.4 * 100rpx; + border-radius: 0.06 * 100rpx; + margin: -0.73 * 100rpx auto 0 auto; +} + +.my-order .nav .item { + text-align: center; + font-size: 0.26 * 100rpx; + color: #282828; + padding: 0.29 * 100rpx 0 0.2 * 100rpx 0; +} + +.my-order .nav .item.on { + font-weight: bold; + border-bottom: 0.05 * 100rpx solid #eb3729; +} + +.my-order .nav .item .num { + margin-top: 0.1 * 100rpx; +} + +.my-order .list { + width: 6.9 * 100rpx; + margin: 0.14 * 100rpx auto 0 auto; +} + +.my-order .list .item { + background-color: #fff; + border-radius: 0.06 * 100rpx; + margin-bottom: 0.14 * 100rpx; +} + +.my-order .list .item .title { + height: 0.84 * 100rpx; + padding: 0 0.3 * 100rpx; + border-bottom: 0.01 * 100rpx solid #eee; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.my-order .list .item .title .sign { + font-size: 0.24 * 100rpx; + padding: 0 0.07 * 100rpx; + height: 0.36 * 100rpx; + margin-right: 0.15 * 100rpx; +} + +.my-order .list .item .item-info { + padding: 0 0.3 * 100rpx; + margin-top: 0.22 * 100rpx; +} + +.my-order .list .item .item-info .pictrue { + width: 1.2 * 100rpx; + height: 1.2 * 100rpx; +} + +.my-order .list .item .item-info .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.my-order .list .item .item-info .text { + width: 4.86 * 100rpx; + font-size: 0.28 * 100rpx; + color: #999; + margin-top: 0.06 * 100rpx; +} + +.my-order .list .item .item-info .text .name { + width: 3.06 * 100rpx; + color: #282828; +} + +.my-order .list .item .item-info .text .money { + text-align: right; +} + +.my-order .list .item .totalPrice { + font-size: 0.26 * 100rpx; + color: #282828; + text-align: right; + margin: 0.27 * 100rpx 0 0 0.3 * 100rpx; + padding: 0 0.3 * 100rpx 0.3 * 100rpx 0; + border-bottom: 0.01 * 100rpx solid #eee; +} + +.my-order .list .item .totalPrice .money { + font-size: 0.28 * 100rpx; + font-weight: bold; +} + +.my-order .list .item .bottom { + height: 1.07 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.my-order .list .item .bottom .bnt { + width: 1.76 * 100rpx; + height: 0.6 * 100rpx; + text-align: center; + line-height: 0.6 * 100rpx; + color: #fff; + border-radius: 0.5 * 100rpx; + font-size: 0.27 * 100rpx; +} + +.my-order .list .item .bottom .bnt.cancelBnt { + border: 1px solid #ddd; + color: #aaa; +} + +.my-order .list .item .bottom .bnt.default { + color: #444; + border: 1px solid #444; +} + +.my-order .list .item .bottom .bnt ~ .bnt { + margin-left: 0.17 * 100rpx; +} + +/*订单详情*/ +.order-details .header { + padding: 0 0.3 * 100rpx; + height: 1.5 * 100rpx; +} + +.order-details .header.on { + background-color: #666 !important; +} + +.order-details .header .pictrue { + width: 1.1 * 100rpx; + height: 1.1 * 100rpx; +} + +.order-details .header .pictrue image { + width: 100%; + height: 100%; +} + +.order-details .header .data { + color: rgba(255, 255, 255, 0.8); + font-size: 0.24 * 100rpx; + margin-left: 0.27 * 100rpx; +} + +.order-details .header.on .data { + margin-left: 0; +} + +.order-details .header .data .state { + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #fff; + margin-bottom: 0.07 * 100rpx; +} + +.order-details .header .data .time { + margin-left: 0.2 * 100rpx; +} + +.order-details .nav { + background-color: #fff; + font-size: 0.26 * 100rpx; + color: #282828; + padding: 0.25 * 100rpx 0; +} + +.order-details .nav .navCon { + padding: 0 0.4 * 100rpx; +} + +.order-details .nav .navCon .on { + font-weight: bold; + color: #eb3729; +} + +.order-details .nav .progress { + padding: 0 0.65 * 100rpx; + margin-top: 0.1 * 100rpx; +} + +.order-details .nav .progress .line { + width: 1 * 100rpx; + height: 0.02 * 100rpx; + background-color: #939390; +} + +.order-details .nav .progress .iconfont { + font-size: 0.25 * 100rpx; + color: #939390; + margin-top: -0.02 * 100rpx; + width: 0.3 * 100rpx; + height: 0.3 * 100rpx; + line-height: 0.33 * 100rpx; + text-align: center; +} + +.order-details .address { + font-size: 0.26 * 100rpx; + color: #868686; + background-color: #fff; + padding: 0.25 * 100rpx 0.3 * 100rpx 0.3 * 100rpx 0.3 * 100rpx; +} + +.order-details .address .name { + font-size: 0.3 * 100rpx; + color: #282828; + margin-bottom: 0.1 * 100rpx; +} + +.order-details .address .name .phone { + margin-left: 0.4 * 100rpx; +} + +.order-details .line { + width: 100%; + height: 0.03 * 100rpx; +} + +.order-details .line image { + width: 100%; + height: 100%; + display: block; +} + +.order-details .wrapper { + background-color: #fff; + margin-top: 0.12 * 100rpx; + padding: 0.3 * 100rpx; +} + +.order-details .wrapper .item { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.order-details .wrapper .item ~ .item { + margin-top: 0.2 * 100rpx; +} + +.order-details .wrapper .item .conter { + color: #868686; + width: 5 * 100rpx; + text-align: right; +} + +.order-details .wrapper .item .conter .copy { + font-size: 0.2 * 100rpx; + color: #333; + border-radius: 0.03 * 100rpx; + border: 1px solid #666; + padding: 0.03 * 100rpx 0.15 * 100rpx; + margin-left: 0.24 * 100rpx; +} + +.order-details .wrapper .actualPay { + border-top: 0.01 * 100rpx solid #eee; + margin-top: 0.3 * 100rpx; + padding-top: 0.3 * 100rpx; +} + +.order-details .wrapper .actualPay .money { + font-weight: bold; + font-size: 0.3 * 100rpx; +} + +.order-details .footer { + box-sizing: border-box; + width: 100%; + height: 1 * 100rpx; + position: fixed; + bottom: 0; + left: 0; + background-color: #fff; + padding: 0 0.3 * 100rpx; + border-top: 1px solid #eee; +} + +.order-details .footer .bnt { + width: 1.76 * 100rpx; + height: 0.6 * 100rpx; + text-align: center; + line-height: 0.6 * 100rpx; + border-radius: 0.5 * 100rpx; + color: #fff; + font-size: 0.27 * 100rpx; +} + +.order-details .footer .bnt.cancel { + color: #aaa; + border: 1px solid #ddd; +} + +.order-details .footer .bnt.default { + color: #444; + border: 1px solid #444; +} + +.order-details .footer .bnt ~ .bnt { + margin-left: 0.18 * 100rpx; +} + +/*物流信息*/ +.logistics .header { + padding: 0.23 * 100rpx 0.3 * 100rpx; + background-color: #fff; + height: 1.66 * 100rpx; +} + +.logistics .header .pictrue { + width: 1.2 * 100rpx; + height: 1.2 * 100rpx; +} + +.logistics .header .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.logistics .header .text { + width: 5.4 * 100rpx; + font-size: 0.28 * 100rpx; + color: #999; + margin-top: 0.06 * 100rpx; +} + +.logistics .header .text .name { + width: 3.65 * 100rpx; + color: #282828; +} + +.logistics .header .text .money { + text-align: right; +} + +.logistics .logisticsCon { + background-color: #fff; + margin: 0.12 * 100rpx 0; +} + +.logistics .logisticsCon .company { + height: 1.2 * 100rpx; + margin: 0 0 0.45 * 100rpx 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.logistics .logisticsCon .company .picTxt { + width: 5.2 * 100rpx; +} + +.logistics .logisticsCon .company .picTxt .iconfont { + width: 0.5 * 100rpx; + height: 0.5 * 100rpx; + background-color: #666; + text-align: center; + line-height: 0.5 * 100rpx; + color: #fff; + font-size: 0.35 * 100rpx; +} + +.logistics .logisticsCon .company .picTxt .text { + width: 4.5 * 100rpx; + font-size: 0.26 * 100rpx; + color: #282828; +} + +.logistics .logisticsCon .company .picTxt .text .name { + color: #999; +} + +.logistics .logisticsCon .company .picTxt .text .express { + margin-top: 0.05 * 100rpx; +} + +.logistics .logisticsCon .company .copy { + font-size: 0.2 * 100rpx; + width: 1.06 * 100rpx; + height: 0.4 * 100rpx; + border-radius: 0.03 * 100rpx; + border: 1px solid #999; +} + +.logistics .logisticsCon .item { + padding: 0 0.4 * 100rpx; + position: relative; +} + +.logistics .logisticsCon .item .circular { + width: 0.2 * 100rpx; + height: 0.2 * 100rpx; + border-radius: 50%; + position: absolute; + top: -0.01 * 100rpx; + left: 0.315 * 100rpx; + background-color: #ddd; +} + +.logistics .logisticsCon .item .circular.on { + background-color: #eb3729; +} + +.logistics .logisticsCon .item .text { + font-size: 0.26 * 100rpx; + color: #666; + width: 6.15 * 100rpx; + border-left: 1px solid #e6e6e6; + padding: 0 0 0.6 * 100rpx 0.38 * 100rpx; +} + +.logistics .logisticsCon .item .text.on { + border-left-color: #f8c1bd; +} + +.logistics .logisticsCon .item .text .data { + font-size: 0.24 * 100rpx; + color: #999; + margin-top: 0.1 * 100rpx; +} + +.logistics .logisticsCon .item .text .data .time { + margin-left: 0.15 * 100rpx; +} + +/*支付状态*/ +.payment-status { + background-color: #fff; + margin: 1.95 * 100rpx auto 0 auto; + border-radius: 0.1 * 100rpx; + padding: 0.01 * 100rpx 0 0.28 * 100rpx 0; + width: 6.9 * 100rpx; + left: 50%; + margin-left: -3.45 * 100rpx; +} + +.payment-status .iconfont { + font-size: 0.7 * 100rpx; + width: 1.4 * 100rpx; + height: 1.4 * 100rpx; + border-radius: 50%; + color: #fff; + text-align: center; + line-height: 1.3 * 100rpx; + text-shadow: 0 4px 0 #eb3729; + border: 0.06 * 100rpx solid #f5f5f5; + margin: -0.76 * 100rpx auto 0 auto; + background-color: #999; +} + +.payment-status .iconfont.fail { + text-shadow: 0 4px 0 #7a7a7a; +} + +.payment-status .status { + font-size: 0.32 * 100rpx; + font-weight: bold; + text-align: center; + margin: 0.25 * 100rpx 0 0.37 * 100rpx 0; +} + +.payment-status .wrapper { + border: 1px solid #eee; + margin: 0 0.3 * 100rpx 0.47 * 100rpx 0.3 * 100rpx; + padding: 0.35 * 100rpx 0; + border-left: 0; + border-right: 0; +} + +.payment-status .wrapper .item { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.payment-status .wrapper .item ~ .item { + margin-top: 0.2 * 100rpx; +} + +.payment-status .wrapper .item .itemCom { + color: #666; +} + +.payment-status .returnBnt { + width: 6.3 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + color: #fff; + font-size: 0.3 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0 auto 0.2 * 100rpx auto; +} + +/*个人资料*/ +.personal-data .wrapper { + margin: 0.1 * 100rpx 0; + background-color: #fff; + padding: 0.36 * 100rpx 0.3 * 100rpx 0.13 * 100rpx 0.3 * 100rpx; +} + +.personal-data .wrapper .title { + margin-bottom: 0.3 * 100rpx; + font-size: 0.32 * 100rpx; + color: #282828; +} + +.personal-data .wrapper .wrapList .item { + width: 100%; + /*height: 1.6rem;*/ + background-color: #f8f8f8; + border-radius: 20rpx; + position: relative; + // border: 0.02rem solid #f8f8f8; +} + +.personal-data .wrapper .wrapList .item.on { + background-size: 100% 100%; + background-color: #fff; +} + +.personal-data .wrapper .wrapList .item .picTxt { + width: 4.45 * 100rpx; +} + +.personal-data .wrapper .wrapList .item .picTxt .pictrue { + width: 0.96 * 100rpx; + height: 0.96 * 100rpx; + position: relative; +} + +.personal-data .wrapper .wrapList .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.personal-data .wrapper .wrapList .item .picTxt .pictrue img { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.personal-data .wrapper .wrapList .item .picTxt .pictrue .alter { + width: 0.3 * 100rpx; + height: 0.3 * 100rpx; + border-radius: 50%; + position: absolute; + bottom: 0; + right: 0; +} + +.personal-data .wrapper .wrapList .item .picTxt .text { + width: 3.25 * 100rpx; +} + +.personal-data .wrapper .wrapList .item .picTxt .text .name { + width: 100%; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.personal-data .wrapper .wrapList .item .picTxt .text .phone { + font-size: 0.24 * 100rpx; + color: #999; + margin-top: 0.1 * 100rpx; +} + +.personal-data .wrapper .wrapList .item .bnt { + font-size: 0.24 * 100rpx; + background-color: #fff; + border-radius: 0.27 * 100rpx; + width: 1.4 * 100rpx; + height: 0.54 * 100rpx; + border: 0.02 * 100rpx solid #e93323; +} + +.personal-data .wrapper .wrapList .item .currentBnt { + position: absolute; + right: 0; + top: 0; + font-size: 0.26 * 100rpx; + background-color: rgba(233, 51, 35, 0.1); + width: 1.4 * 100rpx; + height: 0.48 * 100rpx; + border-radius: 0 0.2 * 100rpx 0 0.2 * 100rpx; +} + +.personal-data .list { + background-color: #fff; +} + +.personal-data .list .item { + padding: 0.3 * 100rpx 0.3 * 100rpx 0.3 * 100rpx 0; + border-bottom: 1px solid #f2f2f2; + margin-left: 0.3 * 100rpx; + font-size: 0.32 * 100rpx; + color: #282828; +} + +.personal-data .list .item .pictrue { + width: 0.88 * 100rpx; + height: 0.88 * 100rpx; +} + +.personal-data .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.personal-data .list .item .input { + width: 4.15 * 100rpx; + text-align: right; + color: #868686; +} + +.personal-data .list .item .input input { + color: #868686; + text-align: right; + width: 100%; +} + +.personal-data .list .item .input .id { + width: 3.65 * 100rpx; +} + +.personal-data .list .item .input .iconfont { + font-size: 0.35 * 100rpx; +} + +.personal-data .list .item .input .iconfont.icon-xiangyou { + font-size: 0.3 * 100rpx; + margin-left: 0.27 * 100rpx; +} + +.personal-data .modifyBnt { + font-size: 0.32 * 100rpx; + color: #fff; + width: 6.9 * 100rpx; + height: 0.9 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.9 * 100rpx; + margin: 0.76 * 100rpx auto 0 auto; +} + +.personal-data .logOut { + font-size: 0.32 * 100rpx; + text-align: center; + width: 6.9 * 100rpx; + height: 0.9 * 100rpx; + border-radius: 0.45 * 100rpx; + margin: 0.3 * 100rpx auto 0.7 * 100rpx auto; +} + +/*拼团海报*/ +.poster-poster .tip { + height: 0.8 * 100rpx; + font-size: 0.26 * 100rpx; + color: #e8c787; + text-align: center; + line-height: 0.8 * 100rpx; +} + +.poster-poster .tip .iconfont { + font-size: 0.36 * 100rpx; + vertical-align: -0.04 * 100rpx; + margin-right: 0.18 * 100rpx; +} + +.poster-poster .poster { + width: 6.9 * 100rpx; + height: 100%; + margin: 0 auto; +} + +.poster-poster .poster image { + width: 100%; + height: 100%; + display: block; +} + +/*分销海报*/ +.distribution-posters .slider-banner { + width: 100%; + box-sizing: border-box; + height: 100%; + padding: 0.4 * 100rpx; + position: relative; +} + +.distribution-posters .slider-banner .swiper-slide { + width: 6 * 100rpx !important; + height: 100%; +} + +.distribution-posters .slide-image { + width: 100%; + height: 100%; + border-radius: 0.15 * 100rpx; +} + +.distribution-posters .keep { + font-size: 0.3 * 100rpx; + color: #fff; + width: 6 * 100rpx; + height: 0.8 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.8 * 100rpx; + margin: 0.38 * 100rpx auto; +} + +/*会员中心*/ +.member-center .header { + background-color: #232323; + width: 100%; + padding: 0.5 * 100rpx 0; +} + +.member-center .header .slider-banner { + height: 3.28 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide { + width: 6.36 * 100rpx !important; + height: 3.28 * 100rpx; + border-radius: 0.16 * 100rpx; + color: #fff; + position: relative; + background-repeat: no-repeat; + background-size: 100% 100%; +} + +.member-center .header .slider-banner .swiper-slide.diamonds { + background-image: url('https://wx.yixiang.co/static/images/diamonds.jpg'); +} + +.member-center .header .slider-banner .swiper-slide.gold { + background-image: url('https://wx.yixiang.co/static/images/gold.jpg'); +} + +.member-center .header .slider-banner .swiper-slide.silver { + background-image: url('https://wx.yixiang.co/static/images/silver.jpg'); +} + +.member-center .header .slider-banner .swiper-slide.brass { + background-image: url('https://wx.yixiang.co/static/images/brass.jpg'); +} + +.member-center .header .slider-banner .swiper-slide.bronze { + background-image: url('https://wx.yixiang.co/static/images/bronze.jpg'); +} + +.member-center .header .slider-banner .swiper-slide.ordinary { + background-image: url('https://wx.yixiang.co/static/images/ordinary.jpg'); +} + +.member-center .header .slider-banner .swiper-slide image { + width: 0.89 * 100rpx; + height: 1.08 * 100rpx; + display: block; + position: absolute; + right: 0.6 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .name { + font-size: 0.46 * 100rpx; + font-weight: bold; + padding: 0.33 * 100rpx 0 0 0.35 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .discount { + font-size: 0.28 * 100rpx; + font-weight: bold; + margin: 0.02 * 100rpx 0 0 0.35 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .discount .iconfont { + margin-left: 0.1 * 100rpx; + font-size: 0.3 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .nav { + margin-top: 0.48 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + color: rgba(255, 255, 255, 0.6); + position: relative; +} + +.member-center .header .slider-banner .swiper-slide .nav .item .num { + font-size: 0.4 * 100rpx; + color: #fff; + font-family: 'GuildfordProBook 5'; +} + +.member-center .header .slider-banner .swiper-slide .nav .item ~ .item::before { + position: absolute; + width: 0.02 * 100rpx; + height: 0.32 * 100rpx; + background-color: rgba(255, 255, 255, 0.6); + content: ''; + left: 0; + top: 50%; + transform: translateY(-50%); +} + +.member-center .header .slider-banner .swiper-slide .lock { + font-size: 0.26 * 100rpx; + margin: 0.73 * 100rpx 0 0 0.35 * 100rpx; +} + +.member-center .header .slider-banner .swiper-slide .lock .iconfont { + font-size: 0.33 * 100rpx; + margin-right: 0.15 * 100rpx; + vertical-align: -0.04 * 100rpx; +} + +.member-center .wrapper { + background-color: #fff; + padding-bottom: 0.16 * 100rpx; + margin-bottom: 0.2 * 100rpx; +} + +.member-center .wrapper .title { + height: 0.98 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #282828; +} + +.member-center .wrapper .title .iconfont { + color: #eb3729; + font-weight: normal; + font-size: 0.4 * 100rpx; + margin-right: 0.12 * 100rpx; + vertical-align: -0.02 * 100rpx; +} + +.member-center .wrapper .title .num { + font-size: 0.28 * 100rpx; + color: #999; +} + +.member-center .wrapper .title .num .current { + color: #eb3729; +} + +.member-center .wrapper .list .item { + width: 6.9 * 100rpx; + height: 1.84 * 100rpx; + background-color: #f9f9f9; + margin: 0 auto 0.2 * 100rpx auto; + padding: 0.27 * 100rpx 0 0.22 * 100rpx 0; + border-radius: 0.12 * 100rpx; +} + +.member-center .wrapper .list .item .top { + padding-right: 0.27 * 100rpx; + font-size: 0.26 * 100rpx; + color: #999; +} + +.member-center .wrapper .list .item .top .name { + border-left: 0.06 * 100rpx solid #eb3729; + padding-left: 0.2 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; + font-weight: bold; +} + +.member-center .wrapper .list .item .top .name .iconfont { + color: #999; + font-size: 0.3 * 100rpx; + vertical-align: -0.02 * 100rpx; + margin-left: 0.1 * 100rpx; +} + +.member-center .wrapper .list .item .cu-progress { + overflow: hidden; + height: 0.12 * 100rpx; + background-color: #eee; + width: 6.36 * 100rpx; + border-radius: 0.2 * 100rpx; + margin: 0.35 * 100rpx auto 0 auto; +} + +.member-center .wrapper .list .item .cu-progress .bg-red { + width: 0; + height: 100%; + transition: width 0.6s ease; + background-color: #eb3729; + border-radius: 0.2 * 100rpx; +} + +.member-center .wrapper .list .item .experience { + margin-top: 0.17 * 100rpx; + padding: 0 0.27 * 100rpx; + font-size: 0.24 * 100rpx; + color: #999; +} + +.member-center .wrapper .list .item .experience .num { + color: #eb3729; +} + +.member-center .growthValue { + background-color: #fff; + border-radius: 0.16 * 100rpx; + position: fixed; + top: 2.66 * 100rpx; + left: 50%; + width: 5.6 * 100rpx; + height: 7.4 * 100rpx; + margin-left: -2.8 * 100rpx; + z-index: 99; + transform: translate3d(0, -200%, 0); + transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); +} + +.member-center .growthValue.on { + transform: translate3d(0, 0, 0); +} + +.member-center .growthValue .pictrue { + width: 100%; + height: 2.57 * 100rpx; + position: relative; +} + +.member-center .growthValue .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.16 * 100rpx 0.16 * 100rpx 0 0; +} + +.member-center .growthValue .conter { + padding: 0 0.35 * 100rpx; + font-size: 0.3 * 100rpx; + color: #333; + margin-top: 0.58 * 100rpx; + line-height: 1.5; + height: 3.5 * 100rpx; + overflow: auto; +} + +.member-center .growthValue .pictrue .iconfont { + position: absolute; + font-size: 0.65 * 100rpx; + color: #fff; + top: 7.75 * 100rpx; + left: 50%; + transform: translateX(-50%); +} + +/*积分详情*/ +.integral-details .header { + background-image: url('https://wx.yixiang.co/static/images/integralbg.jpg'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 3.6 * 100rpx; + font-size: 0.72 * 100rpx; + color: #fff; + padding: 0.31 * 100rpx 0 0.45 * 100rpx 0; + text-align: center; + font-family: 'GuildfordProBook 5'; +} + +.integral-details .header .currentScore { + font-size: 0.26 * 100rpx; + color: rgba(255, 255, 255, 0.8); + text-align: center; + margin-bottom: 0.05 * 100rpx; +} + +.integral-details .header .line { + width: 0.6 * 100rpx; + height: 0.03 * 100rpx; + background-color: #fff; + margin: 0.2 * 100rpx auto 0 auto; +} + +.integral-details .header .nav { + font-size: 0.22 * 100rpx; + color: rgba(255, 255, 255, 0.8); + flex: 1; + -o-flex: 1; + -ms-flex: 1; + margin-top: 0.35 * 100rpx; +} + +.integral-details .header .nav .item { + width: 33.33%; + text-align: center; +} + +.integral-details .header .nav .item .num { + color: #fff; + font-size: 0.4 * 100rpx; +} + +.integral-details .wrapper .nav { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + width: 6.9 * 100rpx; + border-radius: 0.2 * 100rpx 0.2 * 100rpx 0 0; + margin: -0.96 * 100rpx auto 0 auto; + background-color: #f7f7f7; + height: 0.96 * 100rpx; + font-size: 0.3 * 100rpx; + color: #bbb; +} + +.integral-details .wrapper .nav .item { + text-align: center; + width: 100%; +} + +/*.integral-details .wrapper .nav .item{text-align:center;width:50%;}*/ +.integral-details .wrapper .nav .item.on { + background-color: #fff; + color: #eb3729; + font-weight: bold; + border-radius: 0.2 * 100rpx 0.2 * 100rpx 0 0; +} + +.integral-details .wrapper .nav .item .iconfont { + font-size: 0.38 * 100rpx; + margin-right: 0.1 * 100rpx; +} + +.integral-details .wrapper .list { + background-color: #fff; + padding: 0.24 * 100rpx 0.3 * 100rpx; +} + +.integral-details .wrapper .list .tip { + font-size: 0.25 * 100rpx; + width: 6.9 * 100rpx; + height: 0.6 * 100rpx; + border-radius: 0.5 * 100rpx; + background-color: #fff5e2; + border: 1px solid #ffeac1; + color: #c8a86b; + padding: 0 0.2 * 100rpx; + margin-bottom: 0.24 * 100rpx; +} + +.integral-details .wrapper .list .tip .iconfont { + font-size: 0.35 * 100rpx; + margin-right: 0.15 * 100rpx; +} + +.integral-details .wrapper .list .item { + height: 1.24 * 100rpx; + border-bottom: 1px solid #eee; + font-size: 0.24 * 100rpx; + color: #999; +} + +.integral-details .wrapper .list .item .state { + font-size: 0.28 * 100rpx; + color: #282828; + margin-bottom: 0.08 * 100rpx; +} + +.integral-details .wrapper .list .item .num { + font-size: 0.36 * 100rpx; + font-family: 'GuildfordProBook 5'; + color: #16ac57; +} + +.integral-details .wrapper .list2 { + background-color: #fff; + padding: 0.24 * 100rpx 0; +} + +.integral-details .wrapper .list2 .item { + background-image: linear-gradient(to right, #fff7e7 0%, #fffdf9 100%); + background-image: -moz-linear-gradient(to right, #fff7e7 0%, #fffdf9 100%); + width: 6.9 * 100rpx; + height: 1.8 * 100rpx; + position: relative; + border-radius: 0.1 * 100rpx; + margin: 0 auto 0.2 * 100rpx auto; + padding: 0 0.25 * 100rpx 0 1.8 * 100rpx; +} + +.integral-details .wrapper .list2 .item .pictrue { + width: 0.9 * 100rpx; + height: 1.5 * 100rpx; + position: absolute; + bottom: 0; + left: 0.45 * 100rpx; +} + +.integral-details .wrapper .list2 .item .pictrue image { + width: 100%; + height: 100%; +} + +.integral-details .wrapper .list2 .item .name { + width: 2.85 * 100rpx; + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #c8a86b; +} + +.integral-details .wrapper .list2 .item .earn { + font-size: 0.26 * 100rpx; + color: #c8a86b; + border: 0.02 * 100rpx solid #c8a86b; + text-align: center; + line-height: 0.52 * 100rpx; + height: 0.52 * 100rpx; + width: 1.6 * 100rpx; + border-radius: 0.5 * 100rpx; +} + +/*金品推荐*/ +.quality-recommend .title { + height: 1.2 * 100rpx; + font-size: 0.32 * 100rpx; + color: #282828; + background-color: #f5f5f5; +} + +.quality-recommend .title .line { + width: 2.3 * 100rpx; + height: 0.02 * 100rpx; + background-color: #e9e9e9; +} + +.quality-recommend .title .name { + margin: 0 0.2 * 100rpx; +} + +.quality-recommend .title .name .iconfont { + margin-right: 0.13 * 100rpx; + font-size: 0.38 * 100rpx; + vertical-align: -0.04 * 100rpx; +} + +/*砍价列表*/ +.bargain-list .icon-xiangzuo { + font-size: 0.4 * 100rpx; + color: #fff; + position: fixed; + top: 0.51 * 100rpx; + left: 0.3 * 100rpx; + z-index: 99; +} + +.bargain-list .header { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 7.5 * 100rpx; + height: 7.13 * 100rpx; +} + +.bargain-list .list { + border-radius: 0.3 * 100rpx; + margin: 0.3 * 100rpx 0.3 * 100rpx 0.66 * 100rpx 0.3 * 100rpx; +} + +.bargain-list .list .item { + border-bottom: 1px solid #eee; + position: relative; + height: 2.23 * 100rpx; + background-color: #fff; + padding: 0 0.24 * 100rpx; + margin: 0 auto 0.2 * 100rpx auto; +} + +.bargain-list .list .item .pictrue { + width: 1.6 * 100rpx; + height: 1.6 * 100rpx; +} + +.bargain-list .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.bargain-list .list .item .text { + width: 4.5 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; + height: 1.6 * 100rpx; +} + +.bargain-list .list .item .text .num { + font-size: 0.26 * 100rpx; + color: #999; +} + +.bargain-list .list .item .text .num .iconfont { + font-size: 0.35 * 100rpx; + margin-right: 0.07 * 100rpx; +} + +.bargain-list .list .item .text .money { + font-size: 0.24 * 100rpx; + font-weight: bold; +} + +.bargain-list .list .item .text .money .price { + font-size: 0.32 * 100rpx; +} + +.bargain-list .list .item .cutBnt { + position: absolute; + width: 1.8 * 100rpx; + height: 0.5 * 100rpx; + border-radius: 0.5 * 100rpx; + font-size: 0.24 * 100rpx; + color: #fff; + text-align: center; + line-height: 0.46 * 100rpx; + right: 0.24 * 100rpx; + bottom: 0.28 * 100rpx; + box-shadow: 0 0.07 * 100rpx 0 #f8c1bd; + -moz-box-shadow: 0 0.07 * 100rpx 0 #f8c1bd; + -o-box-shadow: 0 0.07 * 100rpx 0 #f8c1bd; +} + +.bargain-list .list .item .cutBnt .iconfont { + margin-right: 0.08 * 100rpx; + font-size: 0.3 * 100rpx; +} + +.bargain-list .list .load { + font-size: 0.24 * 100rpx; + height: 0.85 * 100rpx; + text-align: center; + line-height: 0.85 * 100rpx; +} + +/*砍价*/ +.bargain .icon-xiangzuo { + font-size: 0.4 * 100rpx; + color: #fff; + position: fixed; + top: 0.51 * 100rpx; + left: 0.3 * 100rpx; + z-index: 99; +} + +.bargain .header { + /* background-image: url('https://wx.yixiang.co/static/images/cut1.png'); */ + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.98 * 100rpx; + height: 372rpx; + margin: 0 auto; + padding-top: 0.001 * 100rpx; + margin-top: 0.4 * 100rpx; +} + +.bargain .header.on { + background-image: url('https://wx.yixiang.co/static/images/cut2.png'); +} + +.bargain .header .pictxt { + margin: 2.6 * 100rpx auto 0 auto; + font-size: 0.26 * 100rpx; + color: #000; +} + +.bargain .header .pictxt .pictrue { + width: 0.56 * 100rpx; + height: 0.56 * 100rpx; + margin-right: 0.3 * 100rpx; +} + +.bargain .header .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02 * 100rpx solid #fff; +} + +.bargain .header .pictxt .text text { + margin-left: 0.2 * 100rpx; +} + +.bargain .header .time { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 4.4 * 100rpx; + height: 1.66 * 100rpx; + margin: 0.8 * 100rpx auto 0 auto; + font-size: 0.22 * 100rpx; + text-align: center; + padding-top: 0.09 * 100rpx; + color: #fc4141; +} + +.bargain .header .people { + text-align: center; + color: #fff; + font-size: 0.2 * 100rpx; + margin-top: 0.2 * 100rpx; +} + +.bargain .header .time .styleAll { + color: #333; +} + +.bargain .wrapper, +.bargain .bargainGang, +.bargain .goodsDetails { + width: 6.6 * 100rpx; + border: 0.06 * 100rpx solid #eb3729; + background-color: #fff; + border-radius: 0.2 * 100rpx; + margin: -1.62 * 100rpx auto 0 auto; + padding: 24rpx; + position: relative; +} + +.bargain .goodsDetails .conter .bargain .wrapper .pictxt { + padding: 26rpx 0; +} + +.bargain .bargain-box { + margin-bottom: 20rpx !important; +} + +.bargain .bargain-product .pictxt .pictrue { + width: 140rpx; + height: 140rpx; + position: relative; + margin-right: 30rpx; + + image { + width: 140rpx; + height: 140rpx; + } +} + +.bargain .bargain-product .text { + flex: 1; + font-size: 26rpx; +} + +.bargain .wrapper.on { + // padding-bottom: 0 !important; +} + +.bargain .wrapper .time { + font-size: 28rpx; + color: #999; + text-align: center; + color: #eb3729 !important; +} + +.bargain .user .pictxt .bargain-header { + display: flex; + align-items: center; + justify-content: center; +} + +.bargain .user .pictxt .pictrue { + margin-right: 20rpx; +} + +.bargain .user .pictxt .pictrue image { + width: 60rpx; + height: 60rpx; + border-radius: 50%; +} + +.bargain .user.on .pictxt .text { + font-size: 22rpx; + color: #999; + text-align: center; +} + +.bargain .wrapper .pictxt .text .money { + font-weight: bold; + font-size: 0.24 * 100rpx; +} + +.bargain .wrapper .pictxt .text .money .num { + font-size: 0.36 * 100rpx; +} + +.bargain .wrapper .pictxt .text .successNum { + font-size: 0.22 * 100rpx; + color: #999; + margin-right: 0.15 * 100rpx; +} + +.bargain .wrapper .cu-progress { + overflow: hidden; + height: 0.12 * 100rpx; + background-color: #eee; + width: 100%; + border-radius: 0.2 * 100rpx; +} + +.bargain .wrapper .cu-progress .bg-red { + width: 0; + height: 100%; + transition: width 0.6s ease; + border-radius: 0.2 * 100rpx; + background-image: linear-gradient(to right, #ffa363 0%, #e93323 100%); + background-image: -moz-linear-gradient(to right, #ffa363 0%, #e93323 100%); +} + +.bargain .wrapper .balance { + font-size: 0.22 * 100rpx; + color: #999; + margin-top: 0.15 * 100rpx; +} + +.bargain .wrapper .bargainSuccess { + font-size: 0.26 * 100rpx; + color: #282828; + text-align: center; +} + +.bargain .wrapper .bargainSuccess .iconfont { + font-size: 0.45 * 100rpx; + color: #54c762; + padding-right: 0.18 * 100rpx; + vertical-align: -0.05 * 100rpx; +} + +.bargain .wrapper .bargainBnt { + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #fff; + width: 100%; + height: 0.8 * 100rpx; + border-radius: 0.4 * 100rpx; + background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%); + text-align: center; + line-height: 0.8 * 100rpx; + margin-top: 0.32 * 100rpx; +} + +.bargain .wrapper .bargainBnt.on { + border: 0.02 * 100rpx solid #eb3729; + color: #eb3729; + background-image: linear-gradient(to right, #fff 0%, #fff 100%); + background-image: -moz-linear-gradient(to right, #fff 0%, #fff 100%); + width: 100%; + height: 0.76 * 100rpx; +} + +.bargain .wrapper .tip { + font-size: 0.22 * 100rpx; + color: #999; + text-align: center; + margin-top: 0.2 * 100rpx; +} + +.bargain .wrapper .lock, +.bargain .bargainGang .lock, +.bargain .goodsDetails .lock { + // background-image: url('https://wx.yixiang.co/static/images/lock.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.48 * 100rpx; + height: 0.66 * 100rpx; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -0.43 * 100rpx; + z-index: 5; +} + +.bargain .bargainGang { + margin: 0.13 * 100rpx auto 0 auto; +} + +.bargain .bargainGang .title, +.bargain .goodsDetails .title { + font-size: 0.32 * 100rpx; + font-weight: bold; + height: 0.8 * 100rpx; +} + +.bargain .bargainGang .title .pictrue, +.bargain .goodsDetails .title .pictrue { + width: 0.46 * 100rpx; + height: 0.24 * 100rpx; +} + +.bargain .bargainGang .title .pictrue.on, +.bargain .goodsDetails .title .pictrue.on { + transform: rotate(180deg); +} + +.bargain .bargainGang .title .pictrue image, +.bargain .goodsDetails .title .pictrue image { + width: 100%; + height: 100%; + display: block; +} + +.bargain .bargainGang .title .titleCon, +.bargain .goodsDetails .title .titleCon { + margin: 0 0.2 * 100rpx; +} + +.bargain .bargainGang .list .item { + border-bottom: 1px dashed #ddd; + height: 1.12 * 100rpx; +} + +.bargain .bargainGang .list .item .pictxt { + width: 3.1 * 100rpx; +} + +.bargain .bargainGang .list .item .pictxt .pictrue { + width: 0.7 * 100rpx; + height: 0.7 * 100rpx; +} + +.bargain .bargainGang .list .item .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02px solid #eb3729; +} + +.bargain .bargainGang .list .item .pictxt .text { + width: 2.25 * 100rpx; + font-size: 0.2 * 100rpx; + color: #999; +} + +.bargain .bargainGang .list .item .pictxt .text .name { + font-size: 0.25 * 100rpx; + color: #282828; + margin-bottom: 0.07 * 100rpx; +} + +.bargain .bargainGang .list .item .money { + font-size: 0.25 * 100rpx; +} + +.bargain .bargainGang .list .item .money .iconfont { + font-size: 0.35 * 100rpx; + vertical-align: middle; + margin-right: 0.1 * 100rpx; +} + +.bargain .bargainGang .load { + font-size: 0.24 * 100rpx; + text-align: center; + line-height: 0.8 * 100rpx; + height: 0.8 * 100rpx; +} + +.bargain .goodsDetails { + margin: 0.13 * 100rpx auto 0 auto; +} + +.bargain .goodsDetails ~ .goodsDetails { + margin-bottom: 0.5 * 100rpx; +} + +.bargain .goodsDetails .conter { + margin-top: 0.2 * 100rpx; +} + +.bargain .goodsDetails .conter image { + width: 100% !important; + display: block; +} + +.bargain .bargainTip { + position: fixed; + top: 50%; + left: 50%; + width: 5.6 * 100rpx; + margin-left: -2.8 * 100rpx; + z-index: 99; + border-radius: 0.2 * 100rpx; + background-color: #fff; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); + padding-bottom: 0.6 * 100rpx; + margin-top: -3.3 * 100rpx; +} + +.bargain .bargainTip.on { + opacity: 1; + transform: scale(1); +} + +.bargain .bargainTip .pictrue { + width: 100%; + height: 3.21 * 100rpx; + position: relative; +} + +.bargain .bargainTip .pictrue .iconfont { + position: absolute; + right: 0.18 * 100rpx; + top: 0.18 * 100rpx; + color: #fff; + font-size: 0.36 * 100rpx; + width: 0.5 * 100rpx; + height: 0.5 * 100rpx; + text-align: center; + line-height: 0.5 * 100rpx; +} + +.bargain .bargainTip .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.2 * 100rpx 0.2 * 100rpx 0 0; +} + +.bargain .bargainTip .cutOff { + font-size: 0.3 * 100rpx; + color: #666; + padding: 0 0.29 * 100rpx; + text-align: center; + margin-top: 0.5 * 100rpx; +} + +.bargain .bargainTip .cutOff.on { + margin-top: 0.26 * 100rpx; +} + +.bargain .bargainTip .help { + font-size: 0.32 * 100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.4 * 100rpx; +} + +.bargain .bargainTip .tipBnt { + font-size: 0.32 * 100rpx; + color: #fff; + width: 3.6 * 100rpx; + height: 0.82 * 100rpx; + border-radius: 0.41 * 100rpx; + background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%); + background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%); + text-align: center; + line-height: 0.82 * 100rpx; + margin: 0.5 * 100rpx auto 0 auto; +} + +/*砍价记录*/ +.bargain-record .item { + background-color: #fff; + margin-bottom: 0.12 * 100rpx; +} + +.bargain-record .item .picTxt { + height: 2.1 * 100rpx; + border-bottom: 1px solid #f0f0f0; + padding: 0 0.3 * 100rpx; +} + +.bargain-record .item .picTxt .pictrue { + width: 1.5 * 100rpx; + height: 1.5 * 100rpx; +} + +.bargain-record .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.bargain-record .item .picTxt .text { + width: 5.15 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; + height: 1.5 * 100rpx; +} + +.bargain-record .item .picTxt .text .time { + font-size: 0.24 * 100rpx; + color: #868686; +} + +.bargain-record .item .picTxt .text .time .styleAll { + color: #fc4141; +} + +.bargain-record .item .picTxt .text .money { + font-size: 0.24 * 100rpx; +} + +.bargain-record .item .picTxt .text .money .num { + font-size: 0.32 * 100rpx; + font-weight: bold; +} + +.bargain-record .item .picTxt .text .money .symbol { + font-weight: bold; +} + +.bargain-record .item .bottom { + height: 1 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.27 * 100rpx; +} + +.bargain-record .item .bottom .purple { + color: #f78513; +} + +.bargain-record .item .bottom .end { + color: #999; +} + +.bargain-record .item .bottom .success { + color: #e93323; +} + +.bargain-record .item .bottom .bnt { + font-size: 0.27 * 100rpx; + color: #fff; + width: 1.76 * 100rpx; + height: 0.6 * 100rpx; + border-radius: 0.06 * 100rpx; + text-align: center; + line-height: 0.6 * 100rpx; +} + +.bargain-record .item .bottom .bnt.cancel { + color: #aaa; + border: 1px solid #ddd; +} + +.bargain-record .item .bottom .bnt ~ .bnt { + margin-left: 0.18 * 100rpx; +} + +/*拼团列表*/ +.group-list .header { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 4.5 * 100rpx; +} + +.group-list .header image { + width: 100%; + height: 4.5 * 100rpx; +} + +.group-list .list { + /* margin-top: -1.20*100rpx; */ +} + +.group-list .list .item { + width: 6.9 * 100rpx; + height: 2.08 * 100rpx; + background-color: #fff; + border-radius: 0.06 * 100rpx; + padding: 0 0.24 * 100rpx; + margin: 0 auto 0.2 * 100rpx auto; +} + +.group-list .list .item .pictrue { + width: 1.6 * 100rpx; + height: 1.6 * 100rpx; +} + +.group-list .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.group-list .list .item .text { + width: 4.58 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.group-list .list .item .text .team { + height: 0.4 * 100rpx; + border-radius: 0.04 * 100rpx; + font-size: 0.22 * 100rpx; + margin-top: 0.2 * 100rpx; +} + +.group-list .list .item .text .team .iconfont { + width: 0.54 * 100rpx; + background-color: #c6f3e8; + text-align: center; + color: #eb3729; + height: 100%; + line-height: 0.38 * 100rpx; +} + +.group-list .list .item .text .team .num { + text-align: center; + padding: 0 0.1 * 100rpx; +} + +.group-list .list .item .text .bottom { + margin-top: 0.07 * 100rpx; +} + +.group-list .list .item .text .bottom .money { + font-size: 0.24 * 100rpx; + font-weight: bold; + color: #282828; +} + +.group-list .list .item .text .bottom .money .num { + font-size: 0.32 * 100rpx; +} + +.group-list .list .item .text .bottom .money .y-money { + font-size: 0.24 * 100rpx; + color: #999; + font-weight: normal; + text-decoration: line-through; + margin-left: 0.1 * 100rpx; +} + +.group-list .list .item .text .bottom .groupBnt { + font-size: 0.26 * 100rpx; + color: #fff; + width: 1.46 * 100rpx; + height: 0.54 * 100rpx; + text-align: center; + line-height: 0.54 * 100rpx; + border-radius: 0.04 * 100rpx; +} + +.group-list .list .item .text .bottom .groupBnt .iconfont { + font-size: 0.25 * 100rpx; + margin-left: 0.1 * 100rpx; +} + +/*拼团商品详情*/ +.product-con .wrapper .share .money .y-money { + color: #82848f; + margin-left: 0.13 * 100rpx; + text-decoration: line-through; + font-weight: normal; +} + +.product-con .notice { + width: 100%; + height: 0.62 * 100rpx; + background-color: #ffedeb; + margin-top: 0.2 * 100rpx; + padding: 0 0.3 * 100rpx; + box-sizing: border-box; +} + +.product-con .notice .num { + font-size: 0.24 * 100rpx; +} + +.product-con .notice .num .iconfont { + font-size: 0.3 * 100rpx; + vertical-align: -0.03 * 100rpx; + margin-right: 0.2 * 100rpx; +} + +.product-con .notice .num .line { + color: #282828; + margin-left: 0.15 * 100rpx; +} + +.product-con .notice .swiper { + height: 100%; + width: 4.7 * 100rpx; + line-height: 0.62 * 100rpx; + overflow: hidden; + margin-left: 0.14 * 100rpx; +} + +.product-con .notice .swiper swiper { + height: 100%; +} + +.product-con .notice .swiper .swiper-slide { + height: 100%; +} + +.product-con .notice .swiper .line1 { + height: 100%; + overflow: hidden; + font-size: 0.2 * 100rpx; + color: #282828; +} + +.product-con .assemble { + background-color: #fff; +} + +.product-con .assemble .item { + padding-right: 0.3 * 100rpx; + margin-left: 0.3 * 100rpx; + border-bottom: 1px solid #f0f0f0; + height: 1.32 * 100rpx; +} + +.product-con .assemble .item .pictxt { + flex: 1; +} + +.product-con .assemble .item .pictxt .text { + flex: 1; + font-size: 0.24 * 100rpx; + padding-left: 15rpx; +} + +.product-con .assemble .item .pictxt .pictrue { + width: 0.8 * 100rpx; + height: 0.8 * 100rpx; +} + +.product-con .assemble .item .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.product-con .assemble .item .right .lack { + font-size: 0.24 * 100rpx; + color: #333333; + text-align: right; +} + +.product-con .assemble .item .right .time { + font-size: 0.22 * 100rpx; + color: #82848f; + margin-top: 0.05 * 100rpx; +} + +.product-con .assemble .item .right .spellBnt { + font-size: 0.24 * 100rpx; + color: #fff; + width: 1.4 * 100rpx; + height: 0.5 * 100rpx; + border-radius: 0.5 * 100rpx; + background-image: linear-gradient(to right, #ff2358 0%, #ff0000 100%); + background-image: -moz-linear-gradient(to right, #ff2358 0%, #ff0000 100%); + text-align: center; + line-height: 0.5 * 100rpx; + margin-left: 0.3 * 100rpx; +} + +.product-con .assemble .item .right .spellBnt .iconfont { + font-size: 0.2 * 100rpx; + margin-left: 0.05 * 100rpx; +} + +.product-con .assemble .more { + font-size: 0.24 * 100rpx; + color: #282828; + text-align: center; + height: 0.9 * 100rpx; + line-height: 0.9 * 100rpx; +} + +.product-con .assemble .more .iconfont { + margin-left: 0.13 * 100rpx; + font-size: 0.25 * 100rpx; +} + +.product-con .playWay { + background-color: #fff; + padding: 0 0.3 * 100rpx; + margin-top: 0.2 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.product-con .playWay .title { + height: 0.86 * 100rpx; + border-bottom: 1px solid #eee; +} + +.product-con .playWay .title .iconfont { + margin-left: 0.13 * 100rpx; + font-size: 0.28 * 100rpx; + color: #717171; +} + +.product-con .playWay .way { + min-height: 1.1 * 100rpx; + font-size: 0.26 * 100rpx; + color: #282828; +} + +.product-con .playWay .way .iconfont { + color: #cdcdcd; + font-size: 0.4 * 100rpx; + margin: 0 0.35 * 100rpx; +} + +.product-con .playWay .way .item .num { + font-size: 0.3 * 100rpx; + margin-right: 0.06 * 100rpx; +} + +.product-con .playWay .way .item .tip { + font-size: 0.22 * 100rpx; + color: #a5a5a5; +} + +.product-con .footer-group { + position: fixed; + bottom: 0; + width: 100%; + height: 1 * 100rpx; + background-color: #fff; + font-size: 0.18 * 100rpx; + color: #666; + z-index: 99; +} + +.product-con .footer-group .customerSer { + width: 14%; + font-size: 0.2 * 100rpx; + color: #666; +} + +.product-con .footer-group .customerSer .iconfont { + font-size: 0.35 * 100rpx; +} + +.product-con .footer-group .bnt { + width: 86%; + text-align: center; + line-height: 1 * 100rpx; + height: 100%; + color: #fff; + font-size: 0.3 * 100rpx; +} + +.product-con .superior .slider-banner .swiper-pagination-bullet { + background-color: #999; +} + +.product-con .superior .slider-banner .swiper-pagination-bullet-active { + background-color: #e93323; +} + +.product-con .superior .slider-banner .swiper-container-horizontal > .swiper-pagination-bullets { + bottom: 0; +} + +/*开团*/ +.group-con .header { + width: 100%; + height: 1.86 * 100rpx; + background-color: #fff; + border-top: 1px solid #f5f5f5; + padding: 0 0.3 * 100rpx; + position: relative; +} + +.group-con .header .iconfont { + font-size: 1 * 100rpx; + position: absolute; + color: #ccc; + right: 0.33 * 100rpx; + bottom: 0.2 * 100rpx; +} + +.group-con .header .pictrue { + width: 1.4 * 100rpx; + height: 1.4 * 100rpx; +} + +.group-con .header .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.group-con .header .text { + width: 5.25 * 100rpx; + font-size: 0.3 * 100rpx; + color: #222; +} + +.group-con .header .text .money { + font-size: 0.24 * 100rpx; + font-weight: bold; + margin-top: 0.15 * 100rpx; +} + +.group-con .header .text .money .num { + font-size: 0.32 * 100rpx; +} + +.group-con .header .text .money .team { + padding: 0.01 * 100rpx 0.1 * 100rpx; + font-weight: normal; + border-radius: 0.5 * 100rpx; + font-size: 0.2 * 100rpx; + vertical-align: 0.04 * 100rpx; + margin-left: 0.15 * 100rpx; +} + +.group-con .wrapper { + background-color: #fff; + margin-top: 0.2 * 100rpx; + padding: 0.02 * 100rpx 0 0.35 * 100rpx 0; +} + +.group-con .wrapper .title { + margin-top: 0.3 * 100rpx; +} + +.group-con .wrapper .title .line { + width: 1.36 * 100rpx; + height: 1px; + background-color: #ddd; +} + +.group-con .wrapper .title .name { + margin: 0 0.45 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.group-con .wrapper .title .name .time { + margin: 0 0.14 * 100rpx; +} + +.group-con .wrapper .title .name .timeTxt { + color: #fc4141; +} + +.group-con .wrapper .title .name .time .styleAll { + background-color: #ffcfcb; + text-align: center; + border-radius: 0.03 * 100rpx; + font-size: 0.28 * 100rpx; + font-weight: bold; + display: inline-block; + vertical-align: middle; + color: #fc4141; + padding: 0.02 * 100rpx 0.05 * 100rpx; +} + +.group-con .wrapper .tips { + font-size: 0.3 * 100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.3 * 100rpx; + color: #999; +} + +.group-con .wrapper .list { + padding: 0 0.3 * 100rpx; + margin-top: 0.45 * 100rpx; +} + +.group-con .wrapper .list.result { + max-height: 2.4 * 100rpx; + overflow: hidden; +} + +.group-con .wrapper .list.result.on { + max-height: 20 * 100rpx; +} + +.group-con .wrapper .list .pictrue { + width: 0.94 * 100rpx; + height: 0.94 * 100rpx; + margin: 0 0 0.29 * 100rpx 0.35 * 100rpx; +} + +.group-con .wrapper .list .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.02 * 100rpx solid #e93323; +} + +.group-con .wrapper .list .pictrue img.img-none { + border: none; +} + +.group-con .wrapper .lookAll { + font-size: 0.24 * 100rpx; + color: #282828; + padding-top: 0.1 * 100rpx; +} + +.group-con .wrapper .lookAll .iconfont { + font-size: 0.25 * 100rpx; + margin: 0.02 * 100rpx 0 0 0.1 * 100rpx; +} + +.group-con .wrapper .teamBnt { + font-size: 0.3 * 100rpx; + width: 6.2 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + color: #fff; + margin: 0.21 * 100rpx auto 0 auto; +} + +.group-con .wrapper .cancel, +.group-con .wrapper .lookOrder { + text-align: center; + font-size: 0.24 * 100rpx; + color: #282828; + padding-top: 0.3 * 100rpx; +} + +.group-con .wrapper .cancel .iconfont { + font-size: 0.35 * 100rpx; + color: #2c2c2c; + vertical-align: -0.04 * 100rpx; + margin-right: 0.09 * 100rpx; +} + +.group-con .wrapper .lookOrder .iconfont { + font-size: 0.25 * 100rpx; + color: #2c2c2c; + margin-left: 0.1 * 100rpx; +} + +.group-con .group-recommend { + background-color: #fff; + margin-top: 0.25 * 100rpx; +} + +.group-con .group-recommend .title { + padding-right: 0.3 * 100rpx; + margin-left: 0.3 * 100rpx; + height: 0.85 * 100rpx; + border-bottom: 1px solid #eee; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.group-con .group-recommend .title .more { + color: #808080; +} + +.group-con .group-recommend .title .more .iconfont { + margin-left: 0.13 * 100rpx; + font-size: 0.28 * 100rpx; +} + +.group-con .group-recommend .list { + margin-top: 0.3 * 100rpx; +} + +.group-con .group-recommend .list .item { + width: 2.1 * 100rpx; + margin: 0 0 0.25 * 100rpx 0.3 * 100rpx; +} + +.group-con .group-recommend .list .item .pictrue { + width: 100%; + height: 2.1 * 100rpx; + position: relative; +} + +.group-con .group-recommend .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.1 * 100rpx; +} + +.group-con .group-recommend .list .item .pictrue .team { + position: absolute; + top: 0.28 * 100rpx; + left: -0.05 * 100rpx; + min-width: 1 * 100rpx; + height: 0.36 * 100rpx; + line-height: 0.36 * 100rpx; + text-align: center; + border-radius: 0 0.18 * 100rpx 0.18 * 100rpx 0; + font-size: 0.2 * 100rpx; + color: #fff; + background-image: linear-gradient(to right, #fb5445 0%, #e93323 100%); + background-image: -moz-linear-gradient(to right, #fb5445 0%, #e93323 100%); +} + +.group-con .group-recommend .list .item .name { + font-size: 0.28 * 100rpx; + color: #333; + margin-top: 0.18 * 100rpx; +} + +.group-con .group-recommend .list .item .money { + font-weight: bold; + font-size: 0.26 * 100rpx; +} + +/*商品评分*/ +.evaluate-list .generalComment { + height: 0.94 * 100rpx; + padding: 0 0.3 * 100rpx; + background-color: #fff; + font-size: 0.28 * 100rpx; + color: #808080; +} + +.evaluate-list .generalComment .evaluate { + margin-right: 0.07 * 100rpx; +} + +.evaluate-list .nav { + font-size: 0.24 * 100rpx; + color: #282828; + padding: 0 0.3 * 100rpx 0.15 * 100rpx 0.3 * 100rpx; + background-color: #fff; + border-bottom: 1px solid #f5f5f5; +} + +.evaluate-list .nav .item { + font-size: 0.24 * 100rpx; + color: #282828; + border-radius: 0.06 * 100rpx; + height: 0.54 * 100rpx; + padding: 0 0.2 * 100rpx; + background-color: #f4f4f4; + line-height: 0.54 * 100rpx; + margin: 0 0.17 * 100rpx 0.17 * 100rpx 0; +} + +.evaluate-list .nav .item.bg-color-red { + color: #fff; +} + +/*商品评价*/ +.evaluate-con .score { + background-color: #fff; + border-top: 1px solid #f5f5f5; + font-size: 0.28 * 100rpx; + color: #282828; + padding: 0.48 * 100rpx 0.3 * 100rpx 0.65 * 100rpx 0.3 * 100rpx; +} + +.evaluate-con .score .item ~ .item { + margin-top: 0.25 * 100rpx; +} + +.evaluate-con .score .item .starsList { + padding: 0 0.35 * 100rpx 0 0.4 * 100rpx; +} + +.evaluate-con .score .item .starsList .iconfont { + font-size: 0.4 * 100rpx; + color: #aaa; +} + +.evaluate-con .score .item .starsList .iconfont ~ .iconfont { + margin-left: 0.2 * 100rpx; +} + +.evaluate-con .score .item .evaluate { + color: #aaa; + font-size: 0.24 * 100rpx; +} + +.evaluate-con .score .textarea { + width: 6.9 * 100rpx; + background-color: #fafafa; + border-radius: 0.1 * 100rpx; + margin-top: 0.48 * 100rpx; +} + +.evaluate-con .score .textarea textarea { + font-size: 0.28 * 100rpx; + padding: 0.38 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; + width: 100%; + height: 1.6 * 100rpx; +} + +.evaluate-con .score .textarea textarea::placeholder { + color: #bbb; +} + +.evaluate-con .score .textarea .list { + margin-top: 0.25 * 100rpx; + padding-left: 0.05 * 100rpx; +} + +.evaluate-con .score .textarea .list .pictrue { + width: 1.4 * 100rpx; + height: 1.4 * 100rpx; + margin: 0 0 0.35 * 100rpx 0.25 * 100rpx; + position: relative; + font-size: 0.22 * 100rpx; + color: #bbb; +} + +.evaluate-con .score .textarea .list .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.03 * 100rpx; +} + +.evaluate-con .score .textarea .list .pictrue .icon-guanbi1 { + font-size: 0.45 * 100rpx; + position: absolute; + top: -0.2 * 100rpx; + right: -0.2 * 100rpx; +} + +.evaluate-con .score .textarea .list .pictrue .icon-icon25201 { + color: #bfbfbf; + font-size: 0.5 * 100rpx; +} + +.evaluate-con .score .evaluateBnt { + font-size: 0.3 * 100rpx; + color: #fff; + width: 6.9 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.43 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin-top: 0.45 * 100rpx; +} + +/*签到*/ +.sign .header { + width: 100%; + height: 3.1 * 100rpx; +} + +.sign .header .headerCon { + padding: 0 0 0 0.3 * 100rpx; + height: 2.34 * 100rpx; +} + +.sign .header .headerCon .left { + width: 5.3 * 100rpx; + font-size: 0.32 * 100rpx; + color: #fff; + font-weight: bold; +} + +.sign .header .headerCon .left .integral text { + font-size: 0.24 * 100rpx; + margin-top: 0.19 * 100rpx; + background-color: #ff9000; + text-align: center; + border-radius: 0.06 * 100rpx; + font-weight: normal; + padding: 0.06 * 100rpx 0.15 * 100rpx; +} + +.sign .header .headerCon .text { + width: 4.1 * 100rpx; +} + +.sign .header .headerCon .left .pictrue { + width: 0.86 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 50%; + border: 0.04 * 100rpx solid #ecddbc; +} + +.sign .header .headerCon .left .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.sign .header .headerCon .right { + width: 1.42 * 100rpx; + height: 0.66 * 100rpx; + background-color: #fff; + border-radius: 0.5 * 100rpx 0 0 0.5 * 100rpx; + font-size: 0.24 * 100rpx; + color: #ff9000; +} + +.sign .header .headerCon .right .iconfont { + font-size: 0.33 * 100rpx; + padding: 0 0.1 * 100rpx 0 0.3 * 100rpx; + height: 0.35 * 100rpx; + line-height: 0.35 * 100rpx; +} + +.sign .wrapper { + background-color: #fff; + margin: -0.8 * 100rpx 0.2 * 100rpx 0 0.2 * 100rpx; + border-radius: 0.15 * 100rpx; + padding-bottom: 0.8 * 100rpx; + position: relative; +} + +.sign .wrapper .list { + padding: 0 0.3 * 100rpx; + height: 2.4 * 100rpx; +} + +.sign .wrapper .list .item { + font-size: 0.22 * 100rpx; + color: #8a8886; + text-align: center; +} + +.sign .wrapper .list .item .rewardTxt { + width: 0.74 * 100rpx; + height: 0.32 * 100rpx; + background-color: #f4b409; + border-radius: 0.16 * 100rpx; + font-size: 0.2 * 100rpx; + color: #a57d3f; + line-height: 0.32 * 100rpx; +} + +.sign .wrapper .list .item .num { + font-size: 0.3 * 100rpx; + color: #999; +} + +.sign .wrapper .list .item .num.on { + color: #ff9000; +} + +.sign .wrapper .list .item .venus { + background-image: url('https://wx.yixiang.co/static/images/stars2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 0.56 * 100rpx; + height: 0.56 * 100rpx; + margin: 0.1 * 100rpx 0; +} + +.sign .wrapper .list .item .venus.venusSelect { + background-image: url('https://wx.yixiang.co/static/images/stars1.png'); +} + +.sign .wrapper .list .item .venus.reward { + background-image: url('https://wx.yixiang.co/static/images/stars3.png'); + width: 0.75 * 100rpx; + height: 0.56 * 100rpx; +} + +.sign .wrapper .but { + width: 4 * 100rpx; + height: 0.76 * 100rpx; + font-size: 0.3 * 100rpx; + line-height: 0.76 * 100rpx; + color: #fff; + border-radius: 0.5 * 100rpx; + text-align: center; + margin: 0 auto; +} + +.sign .wrapper .but.on { + background-color: #999 !important; +} + +.sign .wrapper .lock { + background-image: url('https://wx.yixiang.co/static/images/lock2.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 5.58 * 100rpx; + height: 0.68 * 100rpx; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -0.41 * 100rpx; + z-index: 9; +} + +.sign .wrapper2 { + margin-top: 0.15 * 100rpx; + padding: 0.73 * 100rpx 0 0 0; +} + +.sign .wrapper2 .tip { + font-size: 0.3 * 100rpx; + color: #666; + text-align: center; +} + +.sign .wrapper2 .list2 { + margin: 0.45 * 100rpx 0 0.49 * 100rpx 0; +} + +.sign .wrapper2 .list2 .item { + width: 0.8 * 100rpx; + height: 1.16 * 100rpx; + background-repeat: no-repeat; + background-size: 100% 100%; + color: #fff; + font-size: 0.72 * 100rpx; + text-align: center; + line-height: 1.16 * 100rpx; + margin-right: 0.19 * 100rpx; + background-image: url('https://wx.yixiang.co/static/images/redBg.png'); +} + +.sign .wrapper2 .list2 .data { + font-size: 0.3 * 100rpx; + color: #232323; +} + +.sign .wrapper2 .tip2 { + font-size: 0.3 * 100rpx; + color: #999999; + padding: 0 0.55 * 100rpx; + text-align: center; + line-height: 1.5; +} + +.sign .list3 { + margin: 0.45 * 100rpx 0.37 * 100rpx 0 0.37 * 100rpx; + border-top: 1px dashed #eee; +} + +.sign .list3 .item { + border-bottom: 1px solid #eee; + height: 1.3 * 100rpx; +} + +.sign .list3 .item .name { + color: #232323; + font-size: 0.3 * 100rpx; + width: 4 * 100rpx; +} + +.sign .list3 .item .data { + font-size: 0.24 * 100rpx; + color: #bbbbbb; + margin-top: 0.09 * 100rpx; +} + +.sign .list3 .item .num { + font-size: 0.36 * 100rpx; + font-family: 'GuildfordProBook 5'; +} + +.sign .signTip { + width: 6.44 * 100rpx; + height: 6.45 * 100rpx; + position: fixed; + top: 50%; + left: 50%; + margin-left: -3.22 * 100rpx; + margin-top: -3.225 * 100rpx; + z-index: 99; + text-align: center; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); +} + +.sign .signTip .signTipLight { + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 100%; +} + +.sign .signTip.on { + opacity: 1; + transform: scale(1); +} + +.sign .signTip .signTipCon { + background-image: url('https://wx.yixiang.co/static/images/register.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 4.2 * 100rpx; + height: 4.2 * 100rpx; + margin-top: -7 * 100rpx; + position: relative; +} + +.sign .signTip .signTipCon .state { + font-size: 0.34 * 100rpx; + color: #fff; + margin-top: 1.5 * 100rpx; +} + +.sign .signTip .signTipCon .integral { + font-size: 0.3 * 100rpx; + color: rgba(255, 255, 255, 0.6); + margin-top: 0.09 * 100rpx; +} + +.sign .signTip .signTipCon .signTipBnt { + font-size: 0.3 * 100rpx; + color: #eb4331; + width: 2.6 * 100rpx; + height: 0.76 * 100rpx; + background-color: #f8d168; + border-radius: 0.38 * 100rpx; + line-height: 0.76 * 100rpx; + margin: 0.48 * 100rpx auto 0 auto; +} + +/*签到记录、账单明细列表*/ +.sign-record .list .item .data { + height: 0.8 * 100rpx; + line-height: 0.8 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.24 * 100rpx; + color: #666; +} + +.sign-record .list .item .listn { + background-color: #fff; + font-size: 0.24 * 100rpx; + color: #999; +} + +.sign-record .list .item .listn .itemn { + height: 1.2 * 100rpx; + border-bottom: 1px solid #eee; + padding-right: 0.3 * 100rpx; + margin-left: 0.3 * 100rpx; +} + +.sign-record .list .item .listn .itemn .name { + width: 3.9 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; + margin-bottom: 0.06 * 100rpx; +} + +.sign-record .list .item .listn .itemn .num { + font-size: 0.36 * 100rpx; + font-family: 'GuildfordProBook 5'; + color: #16ac57; +} + +/*申请退货*/ +.apply-return .list { + background-color: #fff; + margin-top: 0.18 * 100rpx; +} + +.apply-return .list .item { + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + min-height: 0.9 * 100rpx; + border-bottom: 1px solid #eee; + font-size: 0.3 * 100rpx; + color: #333; +} + +.apply-return .list .item .num { + color: #282828; + flex: 1; + text-align: right; + position: relative; +} + +.apply-return .list .item .num .picker { + text-align: right; +} + +.apply-return .list .item .num .iconfont { + color: #666; + font-size: 0.3 * 100rpx; + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); +} + +.apply-return .list .item.textarea { + padding: 0.3 * 100rpx 0.3 * 100rpx 0.3 * 100rpx 0; +} + +.apply-return .list .item textarea { + height: 1 * 100rpx; + font-size: 0.3 * 100rpx; +} + +.apply-return .list .item textarea::placeholder { + color: #bbb; +} + +.apply-return .list .item .title { + height: 0.95 * 100rpx; + width: 100%; +} + +.apply-return .list .item .title .tip { + font-size: 0.3 * 100rpx; + color: #bbb; +} + +.apply-return .list .item .upload { + padding-bottom: 0.36 * 100rpx; +} + +.apply-return .list .item .upload .pictrue { + margin: 0.22 * 100rpx 0.23 * 100rpx 0 0; + width: 1.56 * 100rpx; + height: 1.56 * 100rpx; + position: relative; + font-size: 0.24 * 100rpx; + color: #bbb; + border: 1px solid #bbb; +} + +.apply-return .list .item .upload .pictrue:nth-of-type(4n) { + margin-right: 0; +} + +.apply-return .list .item .upload .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.03 * 100rpx; +} + +.apply-return .list .item .upload .pictrue .icon-guanbi1 { + position: absolute; + font-size: 0.45 * 100rpx; + top: -0.1 * 100rpx; + right: -0.1 * 100rpx; + width: 0.45 * 100rpx; + height: 0.45 * 100rpx; + line-height: 0.45 * 100rpx; +} + +.apply-return .list .item .upload .pictrue .icon-icon25201 { + color: #bfbfbf; + font-size: 0.5 * 100rpx; + width: 0.5 * 100rpx; + height: 0.6 * 100rpx; + line-height: 0.6 * 100rpx; +} + +.apply-return .list .item .upload .pictrue:nth-last-child(1) { + border: 1px solid #ddd; +} + +.apply-return .returnBnt { + font-size: 0.32 * 100rpx; + color: #fff; + width: 6.9 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0.43 * 100rpx auto; +} + +/*退货列表*/ +.return-list .goodWrapper { + background-color: #fff; + margin-bottom: 0.13 * 100rpx; + position: relative; +} + +.return-list .goodWrapper .orderNum { + padding: 0 0.3 * 100rpx; + border-bottom: 1px solid #eee; + height: 0.87 * 100rpx; + line-height: 0.87 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.return-list .goodWrapper .item { + border-bottom: 0; +} + +.return-list .goodWrapper .totalSum { + padding: 0 0.3 * 100rpx 0.32 * 100rpx 0.3 * 100rpx; + text-align: right; + font-size: 0.26 * 100rpx; + color: #282828; +} + +.return-list .goodWrapper .totalSum .price { + font-size: 0.28 * 100rpx; + font-weight: bold; +} + +.return-list .goodWrapper .iconfont { + position: absolute; + font-size: 1.09 * 100rpx; + top: 0.07 * 100rpx; + right: 0.3 * 100rpx; + color: #ccc; + width: 1.09 * 100rpx; + height: 1.09 * 100rpx; + line-height: 1.09 * 100rpx; +} + +.return-list .goodWrapper .iconfont.powder { + color: #f8c1bd; +} + +/*收藏商品*/ +.collectionGoods { + background-color: #fff; + border-top: 1px solid #eee; +} + +.collectionGoods .item { + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + border-bottom: 1px solid #eee; + height: 1.8 * 100rpx; +} + +.collectionGoods .item .pictrue { + width: 1.3 * 100rpx; + height: 1.3 * 100rpx; +} + +.collectionGoods .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.collectionGoods .item .text { + width: 5.35 * 100rpx; + height: 1.3 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.collectionGoods .item .text .infor { + width: 100%; +} + +.collectionGoods .item .text .money { + font-size: 0.26 * 100rpx; +} + +.collectionGoods .item .text .delete { + font-size: 0.26 * 100rpx; + color: #282828; + width: 1.14 * 100rpx; + height: 0.46 * 100rpx; + border: 1px solid #bbb; + border-radius: 0.04 * 100rpx; + text-align: center; + line-height: 0.46 * 100rpx; +} + +/*搜索商品*/ +.searchGood .search { + padding-left: 0.3 * 100rpx; +} + +.searchGood .search { + margin-top: 0.2 * 100rpx; +} + +.searchGood .search .input { + flex: 1; + box-sizing: border-box; + background-color: #f7f7f7; + border-radius: 0.33 * 100rpx; + padding: 0 0.35 * 100rpx; + height: 0.66 * 100rpx; +} + +.searchGood .search .input input { + flex: 1; + font-size: 0.28 * 100rpx; + margin-left: 15rpx; +} + +.searchGood .search .input input::placeholder { + color: #bbb; +} + +.searchGood .search .input .iconfont { + color: #000; + font-size: 0.35 * 100rpx; +} + +.searchGood .search .bnt { + width: 1.2 * 100rpx; + text-align: center; + height: 0.66 * 100rpx; + line-height: 0.66 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.searchGood .title { + font-size: 0.28 * 100rpx; + color: #999; + margin: 0.5 * 100rpx 0.3 * 100rpx 0.25 * 100rpx 0.3 * 100rpx; +} + +.searchGood .list { + padding-left: 0.1 * 100rpx; +} + +.searchGood .list .item { + font-size: 0.26 * 100rpx; + color: #454545; + padding: 0 0.21 * 100rpx; + height: 0.6 * 100rpx; + border-radius: 0.03 * 100rpx; + line-height: 0.6 * 100rpx; + border: 1px solid #aaa; + margin: 0 0 0.2 * 100rpx 0.2 * 100rpx; +} + +.searchGood .line { + border-bottom: 1px solid #eee; + margin: 0.2 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; +} + +.cash-withdrawal { + padding-top: 1.3 * 100rpx; +} + +// /*银行卡提现*/ +// .cash-withdrawal .nav { +// height: 1.3*100rpx; +// box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; +// -moz-box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; +// -o-box-shadow: 0 0.1*100rpx 0.1*100rpx #f8f8f8; +// } + +// .cash-withdrawal .nav .item { +// font-size: 0.26*100rpx; +// flex: 1; +// -o-flex: 1; +// -ms-flex: 1; +// text-align: center; +// } + +// .cash-withdrawal .nav .item~.item { +// border-left: 1px solid #f0f0f0; +// } + +// .cash-withdrawal .nav .item .iconfont { +// width: 0.4*100rpx; +// height: 0.4*100rpx; +// border-radius: 50%; +// border: 0.02*100rpx solid #e93323; +// text-align: center; +// line-height: 0.37*100rpx; +// margin: 0 auto 0.06*100rpx auto; +// font-size: 0.22*100rpx; +// } + +// .cash-withdrawal .nav .item .iconfont.on { +// background-color: #e93323; +// color: #fff; +// border-color: #e93323; +// } + +// .cash-withdrawal .nav .item .line { +// width: 0.02*100rpx; +// height: 0.2*100rpx; +// margin: 0 auto; +// transition: height 0.3s; +// } + +// .cash-withdrawal .nav .item .line.on { +// height: 0.39*100rpx; +// } + +.cash-withdrawal .wrapper .list { + padding: 0 0.3 * 100rpx; +} + +.cash-withdrawal .wrapper .list .item { + border-bottom: 1px solid #eee; + height: 1.07 * 100rpx; + font-size: 0.3 * 100rpx; + color: #333; +} + +.cash-withdrawal .wrapper .list .item .name { + width: 1.3 * 100rpx; +} + +.cash-withdrawal .wrapper .list .item .input { + width: 5.05 * 100rpx; +} + +.cash-withdrawal .wrapper .list .item .input input::placeholder { + color: #bbb; +} + +.cash-withdrawal .wrapper .list .tip { + font-size: 0.26 * 100rpx; + color: #999; + margin-top: 0.25 * 100rpx; +} + +.cash-withdrawal .wrapper .list .bnt { + font-size: 0.32 * 100rpx; + color: #fff; + width: 6.9 * 100rpx; + height: 0.9 * 100rpx; + text-align: center; + border-radius: 0.5 * 100rpx; + line-height: 0.9 * 100rpx; + margin: 0.64 * 100rpx auto; +} + +.cash-withdrawal .wrapper .list .tip2 { + font-size: 0.26 * 100rpx; + color: #999; + text-align: center; + margin: 0.44 * 100rpx 0 0.2 * 100rpx 0; +} + +.cash-withdrawal .wrapper .list .value { + height: 1.35 * 100rpx; + line-height: 1.35 * 100rpx; + border-bottom: 1px solid #eee; + width: 6.9 * 100rpx; + margin: 0 auto; +} + +.cash-withdrawal .wrapper .list .value input { + font-size: 0.8 * 100rpx; + color: #282828; + height: 1.35 * 100rpx; + text-align: center; + width: 100%; +} + +.cash-withdrawal .wrapper .list .value input::placeholder { + color: #bbb; +} + +/*提现审核*/ +.cash-audit { + width: 7.1 * 100rpx; + background-color: #fff; + border-radius: 0.06 * 100rpx; + margin: 0.25 * 100rpx auto 0 auto; + padding: 0.53 * 100rpx 0 0.58 * 100rpx 0; + left: 50%; + //margin-left: -3.55*100rpx; +} + +.cash-audit .pictrue { + width: 2.14 * 100rpx; + height: 1.79 * 100rpx; + margin: 0 auto; +} + +.cash-audit .pictrue image { + width: 100%; + height: 100%; +} + +.cash-audit .tip { + font-size: 0.32 * 100rpx; + color: #282828; + margin-top: 0.4 * 100rpx; + text-align: center; + padding: 0 0.4 * 100rpx; +} + +.cash-audit .time { + font-size: 0.26 * 100rpx; + color: #999; + text-align: center; + margin-top: 0.15 * 100rpx; +} + +.cash-audit .bnt { + font-size: 0.32 * 100rpx; + color: #fff; + width: 5 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 0.43 * 100rpx; + text-align: center; + line-height: 0.86 * 100rpx; + margin: 0.5 * 100rpx auto 0 auto; +} + +/*推广人订单*/ +.promoter-order .list .item .title { + height: 1.33 * 100rpx; + padding: 0 0.3 * 100rpx; + font-size: 0.26 * 100rpx; + color: #999; +} + +.promoter-order .list .item .title .data { + font-size: 0.28 * 100rpx; + color: #282828; + margin-bottom: 0.05 * 100rpx; +} + +.promoter-order .list .item .listn .itenm { + background-color: #fff; +} + +.promoter-order .list .item .listn .itenm ~ .itenm { + margin-top: 0.12 * 100rpx; +} + +.promoter-order .list .item .listn .itenm .top { + margin-left: 0.3 * 100rpx; + padding-right: 0.3 * 100rpx; + border-bottom: 1px solid #eee; + height: 1 * 100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt { + width: 3.2 * 100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .text { + width: 2.3 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .pictrue { + width: 0.66 * 100rpx; + height: 0.66 * 100rpx; +} + +.promoter-order .list .item .listn .itenm .top .pictxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03 * 100rpx solid #fff; + box-shadow: 0 0 0.1 * 100rpx #aaa; + -moz-box-shadow: 0 0 0.1 * 100rpx #aaa; + -o-box-shadow: 0 0 0.1 * 100rpx #aaa; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.promoter-order .list .item .listn .itenm .top .money { + font-size: 0.28 * 100rpx; +} + +.promoter-order .list .item .listn .itenm .bottom { + padding: 0.2 * 100rpx 0.3 * 100rpx; + font-size: 0.28 * 100rpx; + color: #666; + line-height: 1.6; +} + +.promoter-order .list .item .listn .itenm .bottom .name { + color: #999; +} + +/*推广人列表*/ +.promoter-list .header { + padding-bottom: 0.12 * 100rpx; +} + +.promoter-list .nav { + background-color: #fff; + height: 0.86 * 100rpx; + line-height: 0.86 * 100rpx; + font-size: 0.28 * 100rpx; + color: #282828; + border-bottom: 1px solid #eee; +} + +.promoter-list .nav .item { + height: 100%; +} + +.promoter-list .nav .item.on { + color: #eb3729; + border-bottom: 0.05 * 100rpx solid #eb3729; +} + +.promoter-list .search { + box-sizing: border-box; + + width: 100%; + background-color: #fff; + height: 0.86 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.promoter-list .search .input { + width: 6.3 * 100rpx; + height: 0.6 * 100rpx; + border-radius: 0.5 * 100rpx; + background-color: #f5f5f5; + text-align: center; + position: relative; +} + +.promoter-list .search .input input { + height: 100%; + font-size: 0.26 * 100rpx; + width: 6.2 * 100rpx; + text-align: center; +} + +.promoter-list .search .input input::placeholder { + color: #bbb; +} + +.promoter-list .search .input .iconfont { + position: absolute; + right: 0.28 * 100rpx; + color: #999; + font-size: 0.28 * 100rpx; + top: 50%; + transform: translateY(-50%); +} + +.promoter-list .search .iconfont { + font-size: 0.4 * 100rpx; + color: #515151; +} + +.promoter-list .list .sortNav { + background-color: #fff; + height: 0.76 * 100rpx; + border-bottom: 1px solid #eee; + color: #333; + font-size: 0.28 * 100rpx; +} + +.promoter-list .list .sortNav.on { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 5; +} + +.promoter-list .list .sortNav .sortItem { + text-align: center; + flex: 1; + -o-flex: 1; + -ms-flex: 1; +} + +.promoter-list .list .sortNav .sortItem image { + width: 0.24 * 100rpx; + height: 0.24 * 100rpx; + margin-left: 0.06 * 100rpx; + vertical-align: -0.03 * 100rpx; +} + +.promoter-list .list .sortList { + margin-top: 0.76 * 100rpx; +} + +.promoter-list .list .item { + background-color: #fff; + border-bottom: 1px solid #eee; + height: 1.52 * 100rpx; + padding: 0 0.3 * 100rpx 0 0.2 * 100rpx; + font-size: 0.24 * 100rpx; + color: #666; +} + +.promoter-list .list .item .picTxt { + width: 4.4 * 100rpx; +} + +.promoter-list .list .item .picTxt .pictrue { + width: 1.06 * 100rpx; + height: 1.06 * 100rpx; + border-radius: 50%; +} + +.promoter-list .list .item .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 50%; + border: 0.03 * 100rpx solid #fff; + box-shadow: 0 0 0.07 * 100rpx #aaa; + -moz-box-shadow: 0 0 0.07 * 100rpx #aaa; + -o-box-shadow: 0 0 0.07 * 100rpx #aaa; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.promoter-list .list .item .picTxt .text { + width: 3.04 * 100rpx; + font-size: 0.24 * 100rpx; + color: #666; +} + +.promoter-list .list .item .picTxt .text .name { + font-size: 0.28 * 100rpx; + color: #333; + margin-bottom: 0.13 * 100rpx; +} + +.promoter-list .list .item .right { + width: 2.4 * 100rpx; + text-align: right; + font-size: 0.22 * 100rpx; + color: #333; +} + +/*我的推广*/ +.my-promotion .header { + background-image: url('https://wx.yixiang.co/static/images/promotionBg.png'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 100%; + height: 3.75 * 100rpx; +} + +.my-promotion .header .name { + font-size: 0.3 * 100rpx; + color: #fff; + padding-top: 0.57 * 100rpx; + position: relative; +} + +.my-promotion .header .name .record { + font-size: 0.26 * 100rpx; + color: rgba(255, 255, 255, 0.8); + position: absolute; + right: 0.2 * 100rpx; +} + +.my-promotion .header .name .record .iconfont { + font-size: 0.25 * 100rpx; + margin-left: 0.1 * 100rpx; +} + +.my-promotion .header .num { + text-align: center; + color: #fff; + // margin-top: 0.25*100rpx; + font-size: 0.9 * 100rpx; + font-family: 'GuildfordProBook 5'; +} + +.my-promotion .header .profit { + padding: 0 0.2 * 100rpx; + margin-top: 0.33 * 100rpx; + font-size: 0.24 * 100rpx; + color: rgba(255, 255, 255, 0.8); +} + +.my-promotion .header .profit .item { + min-width: 2 * 100rpx; + text-align: center; +} + +.my-promotion .header .profit .item .money { + font-size: 0.34 * 100rpx; + color: #fff; +} + +.my-promotion .bnt { + font-size: 0.28 * 100rpx; + color: #fff; + width: 2.58 * 100rpx; + height: 0.68 * 100rpx; + border-radius: 0.5 * 100rpx; + text-align: center; + line-height: 0.68 * 100rpx; + margin: -0.32 * 100rpx auto 0 auto; +} + +.my-promotion .list { + padding: 0 0.2 * 100rpx; + margin-top: 0.1 * 100rpx; +} + +.my-promotion .list .item { + width: 3.45 * 100rpx; + height: 2.4 * 100rpx; + border-radius: 0.2 * 100rpx; + background-color: #fff; + margin-top: 0.2 * 100rpx; + font-size: 0.3 * 100rpx; + color: #666; +} + +.my-promotion .list .item .iconfont { + font-size: 0.7 * 100rpx; + /* background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); */ + /* background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); */ + margin-bottom: 0.2 * 100rpx; + color: #eb3729; +} + +/*我的账户*/ +.my-account .wrapper { + background-color: #fff; + padding: 0.32 * 100rpx 0 0.34 * 100rpx 0; + margin-bottom: 0.14 * 100rpx; +} + +.my-account .wrapper .header { + width: 6.9 * 100rpx; + height: 3.3 * 100rpx; + background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); + background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); + border-radius: 0.16 * 100rpx; + margin: 0 auto; + color: rgba(255, 255, 255, 0.6); + font-size: 0.24 * 100rpx; +} + +.my-account .wrapper .header .headerCon { + background-image: url('https://wx.yixiang.co/static/images/accountBg.png'); + background-repeat: no-repeat; + background-size: 100%; + height: 100%; + width: 100%; + padding: 0.36 * 100rpx 0 0.29 * 100rpx 0; +} + +.my-account .wrapper .header .headerCon .account { + padding: 0 0.35 * 100rpx; +} + +.my-account .wrapper .header .headerCon .account .assets .money { + font-size: 0.72 * 100rpx; + color: #fff; + font-family: 'GuildfordProBook 5'; + margin-top: 0.1 * 100rpx; + height: 0.75 * 100rpx; + line-height: 0.75 * 100rpx; +} + +.my-account .wrapper .header .headerCon .account .recharge { + font-size: 0.28 * 100rpx; + width: 1.5 * 100rpx; + height: 0.54 * 100rpx; + border-radius: 0.27 * 100rpx; + background-color: #fff9f8; + text-align: center; + line-height: 0.54 * 100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative { + margin-top: 0.46 * 100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + padding-left: 0.35 * 100rpx; +} + +.my-account .wrapper .header .headerCon .cumulative .item .money { + font-size: 0.48 * 100rpx; + font-family: 'GuildfordProBook 5'; + color: #fff; + margin-top: 0.06 * 100rpx; +} + +.my-account .wrapper .nav { + height: 1.55 * 100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.my-account .wrapper .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.26 * 100rpx; + color: #999; +} + +.my-account .wrapper .nav .item .pictrue { + width: 0.44 * 100rpx; + height: 0.44 * 100rpx; + margin: 0 auto; + margin-bottom: 0.2 * 100rpx; +} + +.my-account .wrapper .nav .item .pictrue image { + width: 100%; + height: 100%; +} + +.my-account .wrapper .advert { + padding: 0 0.3 * 100rpx; + margin-top: 0.3 * 100rpx; +} + +.my-account .wrapper .advert .item { + background-color: #fff6d1; + width: 3.32 * 100rpx; + height: 1.18 * 100rpx; + border-radius: 0.1 * 100rpx; + padding: 0 0.27 * 100rpx 0 0.25 * 100rpx; + font-size: 0.24 * 100rpx; + color: #e44609; +} + +.my-account .wrapper .advert .item.on { + background-color: #fff3f3; + color: #e96868; +} + +.my-account .wrapper .advert .item .pictrue { + width: 0.78 * 100rpx; + height: 0.78 * 100rpx; +} + +.my-account .wrapper .advert .item .pictrue image { + width: 100%; + height: 100%; +} + +.my-account .wrapper .advert .item .text .name { + font-size: 0.3 * 100rpx; + font-weight: bold; + color: #f33c2b; + margin-bottom: 0.07 * 100rpx; +} + +.my-account .wrapper .advert .item.on .text .name { + color: #f64051; +} + +.my-account .wrapper .list { + padding: 0 0.3 * 100rpx; +} + +.my-account .wrapper .list .item { + margin-top: 0.44 * 100rpx; +} + +.my-account .wrapper .list .item .picTxt .iconfont { + width: 0.82 * 100rpx; + height: 0.82 * 100rpx; + border-radius: 50%; + background-image: linear-gradient(to right, #ff9389 0%, #f9776b 100%); + background-image: -moz-linear-gradient(to right, #ff9389 0%, #f9776b 100%); + text-align: center; + line-height: 0.82 * 100rpx; + color: #fff; + font-size: 0.4 * 100rpx; +} + +.my-account .wrapper .list .item .picTxt .iconfont.yellow { + background-image: linear-gradient(to right, #ffccaa 0%, #fea060 100%); + background-image: -moz-linear-gradient(to right, #ffccaa 0%, #fea060 100%); +} + +.my-account .wrapper .list .item .picTxt .iconfont.green { + background-image: linear-gradient(to right, #a1d67c 0%, #9dd074 100%); + background-image: -moz-linear-gradient(to right, #a1d67c 0%, #9dd074 100%); +} + +.my-account .wrapper .list .item .picTxt { + width: 4.28 * 100rpx; + font-size: 0.3 * 100rpx; + color: #282828; +} + +.my-account .wrapper .list .item .picTxt .text { + width: 3.17 * 100rpx; +} + +.my-account .wrapper .list .item .picTxt .text .infor { + font-size: 0.24 * 100rpx; + color: #999; + margin-top: 0.05 * 100rpx; +} + +.my-account .wrapper .list .item .bnt { + font-size: 0.26 * 100rpx; + color: #282828; + width: 1.56 * 100rpx; + height: 0.52 * 100rpx; + border: 1px solid #ddd; + border-radius: 0.26 * 100rpx; + text-align: center; + line-height: 0.5 * 100rpx; +} + +.my-account .wrapper .list .item .bnt.end { + font-size: 0.26 * 100rpx; + color: #aaa; + background-color: #f2f2f2; + border-color: #f2f2f2; +} + +/*账单明细*/ +.bill-details .nav { + background-color: #fff; + height: 0.9 * 100rpx; + width: 100%; + line-height: 0.9 * 100rpx; +} + +.bill-details .nav .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.3 * 100rpx; + color: #282828; + height: 100%; +} + +.bill-details .nav .item.on { + color: #e93323; + border-bottom: 0.03 * 100rpx solid #e93323; +} + +/*限时抢购*/ +.flash-sale .header { + width: 100%; + height: 2.4 * 100rpx; +} + +.flash-sale .header image { + width: 100%; + height: 100%; +} + +.flash-sale .whiteFixed { + position: fixed; + top: 0; + background-color: #fff; + left: 0; + width: 100%; + z-index: 5; +} + +.flash-sale .timeLsit { + width: 100%; + white-space: nowrap; + overflow: hidden; + height: 1.1 * 100rpx; +} + +.flash-sale .timeLsit .rush-time { + overflow-y: hidden; + overflow-x: auto; + width: 100%; + height: 1.5 * 100rpx; +} + +.flash-sale .timeLsit .item { + display: inline-block; + font-size: 0.22 * 100rpx; + color: #282828; + width: 2 * 100rpx; + text-align: center; + padding: 0.11 * 100rpx 0; + height: 0.96 * 100rpx; + background-color: #efc58f; +} + +.flash-sale .timeLsit .item ~ .item { + border-left: 1px solid #e3b06e; +} + +.flash-sale .timeLsit .item .time { + font-size: 0.32 * 100rpx; + font-weight: bold; + height: 0.37 * 100rpx; + line-height: 0.37 * 100rpx; +} + +.flash-sale .timeLsit .item.on { + background-color: #e93323; + color: #fff; + position: relative; +} + +.flash-sale .timeLsit .item.on::before { + content: ''; + width: 0; + height: 0; + border-left: 0.08 * 100rpx solid transparent; + border-right: 0.08 * 100rpx solid transparent; + border-top: 0.1 * 100rpx solid #e93323; + position: absolute; + bottom: -0.09 * 100rpx; + z-index: 99; + left: 50%; + transform: translateX(-50%); +} + +.flash-sale .countDown { + height: 0.92 * 100rpx; + border-bottom: 1px solid #f0f0f0; + font-size: 0.28 * 100rpx; + color: #282828; +} + +.flash-sale .countDown .timeTxt { + color: #fc4141; +} + +.flash-sale .countDown .time { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.flash-sale .countDown .styleAll { + font-size: 0.28 * 100rpx; + font-weight: bold; + background-color: #ffcfcb; + padding: 0.04 * 100rpx 0.07 * 100rpx; + border-radius: 0.03 * 100rpx; + color: #fc4141; +} + +.flash-sale .countDown .text { +} + +.flash-sale .list.on { + margin-top: 2.02 * 100rpx; +} + +.flash-sale .list .item { + padding: 0 0.3 * 100rpx; + border-bottom: 1px solid #f0f0f0; + height: 2.27 * 100rpx; + position: relative; +} + +.flash-sale .list .item .pictrue { + width: 1.66 * 100rpx; + height: 1.66 * 100rpx; +} + +.flash-sale .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.flash-sale .list .item .text { + width: 4.7 * 100rpx; + font-size: 0.3 * 100rpx; + color: #333; + height: 1.66 * 100rpx; +} + +.flash-sale .list .item .text .money { + font-size: 0.24 * 100rpx; + color: #282828; + margin-top: -0.13 * 100rpx; +} + +.flash-sale .list .item .text .money .num { + font-size: 0.34 * 100rpx; + font-weight: bold; +} + +.tui-goods__item .progress { + overflow: hidden; + background-color: #fff; + width: 100%; + border-radius: 0.2 * 100rpx; + height: 0.34 * 100rpx; + position: relative; +} + +.tui-goods__item .progress .bg-red { + width: 0; + height: 100%; + transition: width 0.6s ease; + background-color: #ffe3e1; +} + +.tui-goods__item .progress .piece { + position: absolute; + left: 0; + right: 0; + transform: translate(0, -50%); + top: 49%; + font-size: 0.22 * 100rpx; + word-wrap: normal; + text-align: center; +} + +.tui-goods__item .grab { + font-size: 0.28 * 100rpx; + color: #fff; + width: 1.4 * 100rpx; + height: 0.54 * 100rpx; + border-radius: 0.04 * 100rpx; + text-align: center; + line-height: 0.54 * 100rpx; + position: absolute; + right: 0.3 * 100rpx; + bottom: 0.3 * 100rpx; +} + +/*抢购详情页*/ +.product-con .nav { + box-sizing: border-box; + background: url('https://wx.yixiang.co/static/images/rushBuy.jpg') #fc4141 no-repeat; + background-size: 100% 100%; + width: 100%; + height: 1 * 100rpx; + padding: 0 0.3 * 100rpx; +} + +.product-con .nav .money { + font-size: 0.28 * 100rpx; + color: #fff; +} + +.product-con .nav .money .num { + font-size: 0.48 * 100rpx; +} + +.product-con .nav .money .y-money { + font-size: 0.26 * 100rpx; + margin-left: 0.1 * 100rpx; + text-decoration: line-through; +} + +.product-con .nav .times { + font-size: 0.2 * 100rpx; + color: #fff; + text-align: center; + margin-bottom: 0.04 * 100rpx; +} + +.product-con .nav .times .time { + margin-top: 0.07 * 100rpx; +} + +.product-con .nav .times .time .styleAll { + padding: 0 0.07 * 100rpx; + font-size: 0.22 * 100rpx; + color: #ff3d3d; + background-color: #fff; + border-radius: 0.02 * 100rpx; +} + +.product-con .nav .iconfont { + color: #fff; + font-size: 0.3 * 100rpx; + margin-left: 0.2 * 100rpx; +} + +.product-con .wrapperRush { + padding: 0.32 * 100rpx 0.3 * 100rpx; + background-color: #fff; +} + +.product-con .wrapperRush .introduce .infor { + width: 5.7 * 100rpx; + font-size: 0.32 * 100rpx; + font-weight: bold; +} + +.product-con .wrapperRush .introduce .iconfont { + font-size: 0.37 * 100rpx; + color: #515151; +} + +.product-con .wrapperRush .label { + margin: 0.18 * 100rpx 0 0 0; + font-size: 0.24 * 100rpx; + color: #82848f; +} + +.product-con .wrapperRush .label .stock { + width: 2.55 * 100rpx; + margin-right: 0.28 * 100rpx; +} + +.product-con .footerRush { + position: fixed; + bottom: 0; + width: 100%; + height: 1 * 100rpx; + background-color: #fff; + font-size: 0.18 * 100rpx; + color: #666; + z-index: 99; +} + +.product-con .footerRush .customerSer { + width: 14%; + font-size: 0.2 * 100rpx; + color: #666; +} + +.product-con .footerRush .bnt { + width: 100%; + text-align: center; + line-height: 1 * 100rpx; + height: 100%; + color: #fff; + font-size: 0.3 * 100rpx; +} + +/*新闻*/ +.newsList .swiperNews { + width: 6.9 * 100rpx; + height: 3.67 * 100rpx; + margin: 0.3 * 100rpx auto 0 auto; +} + +.newsList .swiperNews .swiper-slide { + width: 100%; + height: 3.3 * 100rpx; +} + +.newsList .swiperNews .slide-image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.newsList .swiperNews .swiper-pagination-bullet { + width: 0.12 * 100rpx; + height: 0.12 * 100rpx; + border-radius: 0; + transform: rotate(-45deg); + transform-origin: 0 100%; + -ms-transform-origin: 0 100%; + -o-transform-origin: 0 100%; + background-color: #d1d1d1; + opacity: 1; + margin: 0 0.1 * 100rpx; +} + +.newsList .swiperNews .swiper-pagination-bullet-active { + background-color: #666666; + border: 0; +} + +.newsList .swiperNews .swiper-pagination { + bottom: -0.07 * 100rpx; + width: 100%; +} + +.newsList .nav { + padding: 0 0.3 * 100rpx; + width: 100%; + height: 1.05 * 100rpx; + overflow: hidden; + background-color: #fff; +} + +.newsList .nav.on { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 5; +} + +.newsList .nav .scrollNav { + white-space: nowrap; + overflow-y: hidden; + overflow-x: auto; + width: 100%; +} + +.newsList .nav .item { + display: inline-block; + font-size: 0.32 * 100rpx; + color: #999; + margin-top: 0.4 * 100rpx; +} + +.newsList .nav .item.on { + color: #282828; +} + +.newsList .nav .item ~ .item { + margin-left: 0.46 * 100rpx; +} + +.newsList .nav .item .line { + width: 0.24 * 100rpx; + height: 0.04 * 100rpx; + border-radius: 0.02 * 100rpx; + margin: 0.1 * 100rpx auto 0 auto; +} + +.newsList .list.on { + margin-top: 1.05 * 100rpx; +} + +.newsList .list .item { + margin: 0 0.3 * 100rpx; + border-bottom: 1px solid #f0f0f0; + padding: 0.35 * 100rpx 0; +} + +.newsList .list .item .pictrue { + width: 2.5 * 100rpx; + height: 1.56 * 100rpx; +} + +.newsList .list .item .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.newsList .list .item .text { + width: 4.2 * 100rpx; + height: 1.56 * 100rpx; + font-size: 0.24 * 100rpx; + color: #999; +} + +.newsList .list .item .text .name { + font-size: 0.3 * 100rpx; + color: #282828; +} + +.newsList .list .item .picList .pictrue { + width: 3.35 * 100rpx; + height: 2.1 * 100rpx; + margin-top: 0.3 * 100rpx; +} + +.newsList .list .item .picList.on .pictrue { + width: 2.17 * 100rpx; + height: 1.36 * 100rpx; +} + +.newsList .list .item .picList .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.newsList .list .item .time { + text-align: right; + font-size: 0.24 * 100rpx; + color: #999; + margin-top: 0.22 * 100rpx; +} + +.newsList .van-tabs__wrap { + top: 0 !important; +} + +/*新闻详情*/ +.newsDetail .title { + padding: 0 0.3 * 100rpx; + font-size: 0.34 * 100rpx; + color: #282828; + font-weight: bold; + margin: 0.45 * 100rpx 0 0.23 * 100rpx 0; + line-height: 1.5; +} + +.newsDetail .list { + margin: 0 0.3 * 100rpx; + border-bottom: 1px solid #eee; + padding-bottom: 0.25 * 100rpx; +} + +.newsDetail .list .label { + font-size: 0.24 * 100rpx; + height: 0.38 * 100rpx; + border-radius: 0.03 * 100rpx; + text-align: center; + line-height: 0.36 * 100rpx; + padding: 0 0.1 * 100rpx; + max-width: 1.9 * 100rpx; + width: unset; +} + +.newsDetail .list .item { + margin-left: 0.27 * 100rpx; + font-size: 0.24 * 100rpx; + color: #999; +} + +.newsDetail .list .item .iconfont { + font-size: 0.28 * 100rpx; + margin-right: 0.1 * 100rpx; +} + +.newsDetail .list .item .iconfont.icon-shenhezhong { + font-size: 0.26 * 100rpx; +} + +.newsDetail .conter { + padding: 0 0.3 * 100rpx; + font-size: 0.3 * 100rpx; + color: #333; + line-height: 1.8; + padding-top: 0.35 * 100rpx; +} + +.newsDetail .conter image { + width: 100%; + display: block; +} + +/*佣金明细*/ +.commission-details .promoterHeader .headerCon .money { + font-size: 0.36 * 100rpx; +} + +.commission-details .promoterHeader .headerCon .money .num { + font-family: 'GuildfordProBook 5'; +} + +/*立即注册*/ +.register { + // background-image: linear-gradient(to bottom, #eb3729 0%, #eb3729 100%); + // background-image: -moz-linear-gradient(to bottom, #eb3729 0%, #eb3729 100%); + width: 100%; + height: 100vh; + display: flex; + flex-direction: column; + // justify-content: center; +} + +// .register .shading { +// background-image: url("https://wx.yixiang.co/static/images/registerw.png"); +// background-repeat: no-repeat; +// background-size: 100% 100%; +// width: 100%; +// height: 2.86*100rpx; +// padding-top: 0.7*100rpx; +// } + +// .register .shading .pictrue { +// width: 1.72*100rpx; +// height: 1.72*100rpx; +// border-radius: 50%; +// background-color: rgba(255, 255, 255, 0.8); +// margin: 0 auto; +// } + +// .register .shading .pictrue image { +// width: 1.64*100rpx; +// height: 1.64*100rpx; +// border-radius: 50%; +// display: block; +// } + +.register .whiteBg { + padding: 0 60rpx; +} + +.register .whiteBg .title { + line-height: 2em; + font-size: 0.36 * 100rpx; + color: #282828; + text-align: left; + font-weight: bold; + margin-top: 100rpx; + margin-bottom: 50rpx; +} + +.register .whiteBg .title .item ~ .item { + margin-left: 0.85 * 100rpx; +} + +.register .whiteBg .title .item { + color: #999999; + border-bottom: 0.05 * 100rpx solid #fff; + padding-bottom: 0.1 * 100rpx; +} + +.register .whiteBg .title .item.on { + color: #282828; + border-bottom-color: #f35749; +} + +.register .whiteBg .list .item { + border-bottom: 1px solid #cccccc; + padding: 30rpx 0 30rpx 0rpx; + position: relative; +} + +.register .whiteBg .list .item .name { + font-size: 0.26 * 100rpx; + color: #2d3342; + margin-bottom: 0.27 * 100rpx; + text-align: left; +} + +.register .whiteBg .list .item .icon { + font-size: 0.35 * 100rpx; + margin-right: 0.32 * 100rpx; +} + +.register .whiteBg .list .item input { + font-size: 0.33 * 100rpx; + width: 100%; +} + +.register .whiteBg .list .item input::placeholder { + color: #cccccc; +} + +.register .whiteBg .list .item .codeIput { + width: 2.5 * 100rpx; +} + +.register .whiteBg .list .item .code { + position: absolute; + width: 1.5 * 100rpx; + height: 0.5 * 100rpx; + background-color: #f35446; + border-radius: 0.3 * 100rpx; + color: #fff; + line-height: 0.5 * 100rpx; + text-align: center; + bottom: 0.17 * 100rpx; + right: 0; + font-size: 0.25 * 100rpx; +} + +.register .whiteBg .list .item .code.on { + background-color: #bbbbbb; +} + +.register .whiteBg .list .forgetPwd { + text-align: right; + font-size: 0.28 * 100rpx; + color: #cccccc; + margin-top: 0.2 * 100rpx; +} + +.register .whiteBg .list .forgetPwd .iconfont { + font-size: 0.3 * 100rpx; + margin-right: 0.1 * 100rpx; + vertical-align: middle; +} + +.register .whiteBg .logon { + font-size: 0.34 * 100rpx; + color: #fff; + font-weight: bold; + height: 0.86 * 100rpx; + border-radius: 0.43 * 100rpx; + background: linear-gradient(to right, #f35447 0%, #ff8e3c 100%); + background: -moz-linear-gradient(to right, #f35447 0%, #ff8e3c 100%); + text-align: center; + line-height: 0.86 * 100rpx; + margin-top: 0.47 * 100rpx; +} + +.register .whiteBg .tip { + height: 1.1 * 100rpx; + text-align: center; + line-height: 1.05 * 100rpx; + font-size: 0.3 * 100rpx; + color: #cccccc; +} + +.register .bottom { + // background-image: url("https://wx.yixiang.co/static/images/registerB.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 6.2 * 100rpx; + height: 0.36 * 100rpx; + margin: 0 auto; +} + +/*产品分类*/ +.productSort { + background: #fff; +} + +.productSort .header { + width: 100%; + height: 0.96 * 100rpx; + background-color: #fff; + position: fixed; + left: 0; + right: 0; + top: 0; + + /* #ifdef H5 */ + top: calc(0 + env(safe-area-inset-top)); + /* #endif */ + z-index: 9; + // border-bottom: 1px solid #555; +} + +.productSort .header .input { + width: 7 * 100rpx; + height: 0.6 * 100rpx; + background-color: #f5f5f5; + border-radius: 0.5 * 100rpx; + padding: 0 0.25 * 100rpx; +} + +.productSort .header .input .iconfont { + font-size: 0.35 * 100rpx; + color: #555; +} + +.productSort .header .input input { + font-size: 0.26 * 100rpx; + height: 100%; + width: 5.97 * 100rpx; +} + +.productSort .header .input input::placeholder { + color: #999; +} + +.productSort .aside { + position: fixed; + width: 1.8 * 100rpx; + left: 0; + top: 0.96 * 100rpx; + bottom: 1 * 100rpx; + background-color: #f7f7f7; + overflow-y: auto; + overflow-x: hidden; + overflow-scrolling: touch; + + /* #ifdef H5 */ + // top: calc(0 + env(safe-area-inset-top) + 88rpx); + /* #endif */ +} + +.productSort .aside .item { + height: 0.8 * 100rpx; + width: 100%; + font-size: 0.26 * 100rpx; + color: #424242; +} + +.productSort .aside .item.on { + background-color: #fff; + border-left: 0.04 * 100rpx solid #eb3729; + width: 100%; + text-align: center; + color: #eb3729; + font-weight: bold; +} + +.productSort .conter { + margin-left: 1.8 * 100rpx; + padding: 0 0.14 * 100rpx; + // margin-top: 0.96 * 100rpx; +} + +.productSort .conter .listw { + padding-top: 0.2 * 100rpx; +} + +.productSort .conter .listw .title { + height: 0.9 * 100rpx; +} + +.productSort .conter .listw .title .line { + width: 1 * 100rpx; + height: 0.02 * 100rpx; + background-color: #999; +} + +.productSort .conter .listw .title .name { + font-size: 0.28 * 100rpx; + color: #333; + margin: 0 0.3 * 100rpx; + font-weight: bold; +} + +.productSort .conter .list { + flex-wrap: wrap; + -ms-flex-wrap: wrap; +} + +.productSort .conter .list .item { + width: 1.77 * 100rpx; + margin-top: 0.26 * 100rpx; +} + +.productSort .conter .list .item .picture { + width: 1.2 * 100rpx; + height: 1.2 * 100rpx; + border-radius: 50%; +} + +.productSort .conter .list .item .picture image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +.productSort .conter .list .item .name { + font-size: 0.24 * 100rpx; + color: #333; + height: 0.56 * 100rpx; + line-height: 0.56 * 100rpx; + width: 1.2 * 100rpx; + text-align: center; +} + +/*返回主页按钮*/ +.home { + position: fixed; + top: 7.8 * 100rpx; + color: white; + text-align: center; + z-index: 33; + right: 0.1 * 100rpx; +} + +.home .homeCon { + overflow: hidden; + width: 0.86 * 100rpx; + border-radius: 0.5 * 100rpx; + transition: all 0.3s ease-in-out 0s; + opacity: 0; + transform: scale(0); + height: 0; + color: #e93323; +} + +.home .homeCon.on { + opacity: 1; + transform: scale(1); + height: 3 * 100rpx; + padding: 0.34 * 100rpx 0; + margin-bottom: 0.2 * 100rpx; +} + +.home .homeCon .iconfont { + font-size: 0.48 * 100rpx; + color: #fff; + display: inline-block; + height: 0.9 * 100rpx; + margin: 0 auto; +} + +.home .pictrue { + width: 0.86 * 100rpx; + height: 0.86 * 100rpx; + border-radius: 50%; +} + +.home .pictrue .image { + width: 100%; + height: 100%; + border-radius: 50%; +} + +/*商户管理公共样式*/ +.pos-order-goods { + padding: 0 0.3 * 100rpx; + background-color: #fff; +} + +.pos-order-goods .goods { + height: 1.85 * 100rpx; +} + +.pos-order-goods .goods ~ .goods { + border-top: 1px dashed #e5e5e5; +} + +.pos-order-goods .goods .picTxt { + width: 5.15 * 100rpx; +} + +.pos-order-goods .goods .picTxt .pictrue { + width: 1.3 * 100rpx; + height: 1.3 * 100rpx; +} + +.pos-order-goods .goods .picTxt .pictrue image { + width: 100%; + height: 100%; + border-radius: 0.06 * 100rpx; +} + +.pos-order-goods .goods .picTxt .text { + width: 3.65 * 100rpx; + height: 1.3 * 100rpx; +} + +.pos-order-goods .goods .picTxt .text .info { + font-size: 0.28 * 100rpx; + color: #282828; +} + +.pos-order-goods .goods .picTxt .text .attr { + font-size: 0.2 * 100rpx; + color: #999; +} + +.pos-order-goods .goods .money { + width: 1.64 * 100rpx; + text-align: right; + font-size: 0.28 * 100rpx; +} + +.pos-order-goods .goods .money .x-money { + color: #282828; +} + +.pos-order-goods .goods .money .num { + color: #ff9600; + margin: 0.05 * 100rpx 0; +} + +.pos-order-goods .goods .money .y-money { + color: #999; + text-decoration: line-through; +} + +.public-total { + font-size: 0.28 * 100rpx; + color: #282828; + border-top: 1px solid #eee; + height: 0.92 * 100rpx; + line-height: 0.92 * 100rpx; + text-align: right; + padding: 0 0.3 * 100rpx; + background-color: #fff; +} + +.public-total .money { + color: #ff4c3c; +} + +.priceChange { + position: fixed; + width: 5.8 * 100rpx; + height: 6.7 * 100rpx; + background-color: #fff; + border-radius: 0.1 * 100rpx; + top: 50%; + left: 50%; + margin-left: -2.9 * 100rpx; + margin-top: -3.35 * 100rpx; + z-index: 99; + transition: all 0.3s ease-in-out 0s; + transform: scale(0); + opacity: 0; +} + +.priceChange.on { + opacity: 1; + transform: scale(1); +} + +.priceChange .priceTitle { + background: url('https://wx.yixiang.co/static/images/pricetitle.jpg') no-repeat; + background-size: 100% 100%; + width: 100%; + height: 1.6 * 100rpx; + border-radius: 0.1 * 100rpx 0.1 * 100rpx 0 0; + text-align: center; + font-size: 0.4 * 100rpx; + color: #fff; + line-height: 1.6 * 100rpx; + position: relative; +} + +.priceChange .priceTitle .iconfont { + position: absolute; + font-size: 0.4 * 100rpx; + right: 0.26 * 100rpx; + top: 0.23 * 100rpx; + width: 0.4 * 100rpx; + height: 0.4 * 100rpx; + line-height: 0.4 * 100rpx; +} + +.priceChange .listChange { + padding: 0 0.4 * 100rpx; +} + +.priceChange .listChange .item { + height: 1.03 * 100rpx; + border-bottom: 1px solid #e3e3e3; + font-size: 0.32 * 100rpx; + color: #333; +} + +.priceChange .listChange .item .money { + color: #666; + width: 3 * 100rpx; + text-align: right; +} + +.priceChange .listChange .item .money .iconfont { + font-size: 0.32 * 100rpx; + margin-left: 0.2 * 100rpx; +} + +.priceChange .listChange .item .money input { + width: 100%; + height: 100%; + text-align: right; + color: #ccc; +} + +.priceChange .listChange .item .money input.on { + color: #666; +} + +.priceChange .modify { + font-size: 0.32 * 100rpx; + color: #fff; + width: 4.9 * 100rpx; + height: 0.9 * 100rpx; + text-align: center; + line-height: 0.9 * 100rpx; + border-radius: 0.45 * 100rpx; + background-color: #2291f8; + margin: 0.53 * 100rpx auto 0 auto; +} + +.priceChange .modify1 { + font-size: 0.32 * 100rpx; + color: #312b2b; + width: 4.9 * 100rpx; + height: 0.9 * 100rpx; + text-align: center; + line-height: 0.9 * 100rpx; + border-radius: 0.45 * 100rpx; + background-color: #eee; + margin: 0.3 * 100rpx auto 0 auto; +} + +.public-wrapper .title { + font-size: 0.3 * 100rpx; + color: #282828; + padding: 0 0.3 * 100rpx; + margin-bottom: 0.2 * 100rpx; +} + +.public-wrapper .title .iconfont { + color: #2291f8; + font-size: 0.4 * 100rpx; + margin-right: 0.13 * 100rpx; + vertical-align: middle; +} + +.public-wrapper { + margin: 0.18 * 100rpx auto 0 auto; + width: 6.9 * 100rpx; + background-color: #fff; + border-radius: 0.1 * 100rpx; + padding-top: 0.25 * 100rpx; +} + +.public-wrapper .nav { + padding: 0 0.3 * 100rpx; + height: 0.7 * 100rpx; + line-height: 0.7 * 100rpx; + font-size: 0.24 * 100rpx; + color: #999; +} + +.public-wrapper .data { + width: 2.1 * 100rpx; + text-align: left; +} + +.public-wrapper .browse { + width: 1.92 * 100rpx; + text-align: right; +} + +.public-wrapper .turnover { + width: 2.27 * 100rpx; + text-align: right; +} + +.public-wrapper .conter { + padding: 0 0.3 * 100rpx; +} + +.public-wrapper .conter .item { + border-bottom: 1px solid #f7f7f7; + height: 0.7 * 100rpx; + font-size: 0.24 * 100rpx; +} + +.public-wrapper .conter .item .turnover { + color: #d84242; +} + +/*商户管理订单列表*/ +.pos-order-list .nav { + width: 100%; + height: 0.96 * 100rpx; + background-color: #fff; + font-size: 0.3 * 100rpx; + color: #282828; + position: fixed; + top: 0; + left: 0; +} + +.pos-order-list .nav .item.on { + color: #2291f8; +} + +.pos-order-list .list { + margin-top: 1.2 * 100rpx; +} + +.pos-order-list .list .item { + background-color: #fff; + width: 100%; +} + +.pos-order-list .list .item ~ .item { + margin-top: 0.24 * 100rpx; +} + +.pos-order-list .list .item .order-num { + border-bottom: 1px solid #eee; + font-size: 0.26 * 100rpx; + font-weight: bold; + color: #282828; + padding: 0.2 * 100rpx 0.3 * 100rpx; + display: flex; + align-items: center; + justify-content: space-between; +} + +.pos-order-list .list .item .order-num .time { + font-size: 0.26 * 100rpx; + font-weight: normal; + color: #999; + display: flex; + align-items: center; +} + +.pos-order-list .list .item .operation { + padding: 0.2 * 100rpx 0.3 * 100rpx; + margin-top: 0.03 * 100rpx; +} + +.pos-order-list .list .item .operation .more { + position: relative; +} + +.pos-order-list .list .item .operation .icon-gengduo { + font-size: 0.5 * 100rpx; + color: #aaa; +} + +.pos-order-list .list .item .operation .order .arrow { + width: 0; + height: 0; + border-left: 0.11 * 100rpx solid transparent; + border-right: 0.11 * 100rpx solid transparent; + border-top: 0.2 * 100rpx solid #e5e5e5; + position: absolute; + left: 0.15 * 100rpx; + bottom: -0.18 * 100rpx; +} + +.pos-order-list .list .item .operation .order .arrow:before { + content: ''; + width: 0; + height: 0; + border-left: 0.07 * 100rpx solid transparent; + border-right: 0.07 * 100rpx solid transparent; + border-top: 0.2 * 100rpx solid #fff; + position: absolute; + left: -0.07 * 100rpx; + bottom: 0; +} + +.pos-order-list .list .item .operation .order { + width: 2 * 100rpx; + background-color: #fff; + border: 1px solid #eee; + border-radius: 0.1 * 100rpx; + position: absolute; + top: -1 * 100rpx; + z-index: 9; +} + +.pos-order-list .list .item .operation .order .items { + height: 0.77 * 100rpx; + line-height: 0.77 * 100rpx; + text-align: center; +} + +.pos-order-list .list .item .operation .order .items ~ .items { + border-top: 1px solid #f5f5f5; +} + +.pos-order-list .list .item .operation .bnt { + font-size: 0.28 * 100rpx; + color: #5c5c5c; + width: 1.7 * 100rpx; + height: 0.6 * 100rpx; + border-radius: 0.3 * 100rpx; + border: 1px solid #bbb; + text-align: center; + line-height: 0.6 * 100rpx; +} + +.pos-order-list .list .item .operation .bnt ~ .bnt { + margin-left: 0.14 * 100rpx; +} + +/*商户管理订单详情*/ +.pos-order-details .header { + background: linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); + background: -moz-linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); +} + +.pos-order-details .header .state { + font-size: 0.36 * 100rpx; + color: #fff; +} + +.pos-order-details .header .data { + margin-left: 0.35 * 100rpx; + font-size: 0.28 * 100rpx; +} + +.pos-order-details .header .data .order-num { + font-size: 0.3 * 100rpx; + margin-bottom: 0.08 * 100rpx; +} + +.pos-order-details .remarks { + width: 100%; + height: 0.86 * 100rpx; + background-color: #fff; + padding: 0 0.3 * 100rpx; +} + +.pos-order-details .remarks .iconfont { + font-size: 0.4 * 100rpx; + color: #2a7efb; +} + +.pos-order-details .remarks input { + width: 6.3 * 100rpx; + height: 100%; + font-size: 0.3 * 100rpx; +} + +.pos-order-details .remarks input::placeholder { + color: #666; +} + +.pos-order-details .orderingUser { + font-size: 0.26 * 100rpx; + color: #282828; + padding: 0 0.3 * 100rpx; + height: 0 * 100rpx; + background-color: #fff; + margin-top: 0.16 * 100rpx; + border-bottom: 1px solid #f5f5f5; +} + +.pos-order-details .orderingUser .iconfont { + font-size: 0.4 * 100rpx; + color: #2a7efb; + margin-right: 0.15 * 100rpx; +} + +.pos-order-details .address { + margin-top: 0; +} + +.pos-order-details .pos-order-goods { + margin-top: 0.17 * 100rpx; +} + +.pos-order-details .footer .more { + font-size: 0.27 * 100rpx; + color: #aaa; + width: 1 * 100rpx; + height: 0.64 * 100rpx; + text-align: center; + line-height: 0.64 * 100rpx; + margin-right: 0.25 * 100rpx; + position: relative; +} + +.pos-order-details .footer .delivery { + background: linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); + background: -moz-linear-gradient(to right, #2291f8 0%, #1cd1dc 100%); +} + +.pos-order-details .footer .more .order .arrow { + width: 0; + height: 0; + border-left: 0.11 * 100rpx solid transparent; + border-right: 0.11 * 100rpx solid transparent; + border-top: 0.2 * 100rpx solid #e5e5e5; + position: absolute; + left: 0.15 * 100rpx; + bottom: -0.18 * 100rpx; +} + +.pos-order-details .footer .more .order .arrow:before { + content: ''; + width: 0; + height: 0; + border-left: 0.09 * 100rpx solid transparent; + border-right: 0.09 * 100rpx solid transparent; + border-top: 0.19 * 100rpx solid #fff; + position: absolute; + left: -0.1 * 100rpx; + bottom: 0; +} + +.pos-order-details .footer .more .order { + width: 2 * 100rpx; + background-color: #fff; + border: 1px solid #eee; + border-radius: 0.1 * 100rpx; + position: absolute; + top: -2 * 100rpx; + z-index: 9; +} + +.pos-order-details .footer .more .order .item { + height: 0.77 * 100rpx; + line-height: 0.77 * 100rpx; +} + +.pos-order-details .footer .more .order .item ~ .item { + border-top: 1px solid #f5f5f5; +} + +.pos-order-details .footer .more .moreName { + width: 100%; + height: 100%; +} + +/*发货*/ +.deliver-goods header { + width: 100%; + background-color: #fff; + margin-top: 0.1 * 100rpx; +} + +.deliver-goods header .order-num { + padding: 0 0.3 * 100rpx; + border-bottom: 1px solid #f5f5f5; + height: 0.67 * 100rpx; +} + +.deliver-goods header .order-num .num { + width: 4.3 * 100rpx; + font-size: 0.26 * 100rpx; + color: #282828; + position: relative; +} + +.deliver-goods header .order-num .num:after { + position: absolute; + content: ''; + width: 1px; + height: 0.3 * 100rpx; + background-color: #ddd; + top: 50%; + margin-top: -0.15 * 100rpx; + right: 0; +} + +.deliver-goods header .order-num .name { + width: 2.6 * 100rpx; + font-size: 0.26 * 100rpx; + color: #282828; + text-align: center; +} + +.deliver-goods header .order-num .name .iconfont { + font-size: 0.35 * 100rpx; + color: #477ef3; + vertical-align: middle; + margin-right: 0.1 * 100rpx; +} + +.deliver-goods header .address { + font-size: 0.26 * 100rpx; + color: #868686; + background-color: #fff; + padding: 0.3 * 100rpx; +} + +.deliver-goods header .address .name { + font-size: 0.3 * 100rpx; + color: #282828; + margin-bottom: 0.1 * 100rpx; +} + +.deliver-goods header .address .name .phone { + margin-left: 0.4 * 100rpx; +} + +.deliver-goods header .line { + width: 100%; + height: 0.03 * 100rpx; +} + +.deliver-goods header .line image { + width: 100%; + height: 100%; + display: block; +} + +.deliver-goods .wrapper { + width: 100%; + background-color: #fff; +} + +.deliver-goods .wrapper .item { + border-bottom: 1px solid #f0f0f0; + padding: 0 0.3 * 100rpx; + height: 0.96 * 100rpx; + font-size: 0.32 * 100rpx; + color: #282828; + position: relative; +} + +.deliver-goods .wrapper .item .mode { + width: 4.6 * 100rpx; + height: 100%; + text-align: right; +} + +.deliver-goods .wrapper .item .mode .iconfont { + font-size: 0.3 * 100rpx; + margin-left: 0.13 * 100rpx; +} + +.deliver-goods .wrapper .item .mode .goods ~ .goods { + margin-left: 0.3 * 100rpx; +} + +.deliver-goods .wrapper .item .mode .goods { + color: #bbb; +} + +.deliver-goods .wrapper .item .mode .goods.on { + color: #477ef3; +} + +.deliver-goods .wrapper .item .icon-up { + position: absolute; + font-size: 0.35 * 100rpx; + color: #2c2c2c; + right: 0.3 * 100rpx; +} + +.deliver-goods .wrapper .item select { + direction: rtl; + padding-right: 0.6 * 100rpx; + position: relative; + z-index: 2; +} + +.deliver-goods .wrapper .item input::placeholder { + color: #bbb; +} + +.deliver-goods .confirm { + font-size: 0.32 * 100rpx; + color: #fff; + width: 100%; + height: 1 * 100rpx; + background-color: #477ef3; + text-align: center; + line-height: 1 * 100rpx; + position: fixed; + bottom: 0; +} + +/*订单首页*/ +.order-index .header { + box-sizing: border-box; + background-size: 100% 100%; + width: 100%; + height: 3.02 * 100rpx; + padding: 0.45 * 100rpx 0.3 * 100rpx 0 0.3 * 100rpx; + position: relative; + // background-color: #eb3729; +} + +.order-index .image { + position: absolute; + width: 100%; + left: 0; + right: 0; + top: 0; + z-index: 0; +} + +.order-index .header:after { + position: absolute; + left: 0; + right: 0; + bottom: -0.98 * 100rpx; + z-index: -1; + content: ''; + height: 1 * 100rpx; + width: 100%; + border-radius: 0 0 50% 50%; + // background-color: #eb3729; +} + +.order-index .header .item { + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; + font-size: 0.24 * 100rpx; + color: #fff; +} + +.order-index .header .item .num { + font-size: 0.4 * 100rpx; + margin-bottom: 0.07 * 100rpx; +} + +.order-index .wrapper { + position: relative; + width: 6.9 * 100rpx; + background-color: #fff; + border-radius: 0.1 * 100rpx; + margin: -1.15 * 100rpx auto 0 auto; + padding-top: 0.25 * 100rpx; + z-index: 99; +} + +.order-index .wrapper .title { + font-size: 0.3 * 100rpx; + color: #282828; + padding: 0 0.3 * 100rpx; + margin-bottom: 0.4 * 100rpx; +} + +.order-index .wrapper .title .iconfont { + color: #2291f8; + font-size: 0.4 * 100rpx; + margin-right: 0.13 * 100rpx; + vertical-align: middle; +} + +.order-index .wrapper .list .item { + width: 33.33%; + text-align: center; + font-size: 0.24 * 100rpx; + color: #999; + margin-bottom: 0.45 * 100rpx; +} + +.order-index .wrapper .list .item .num { + font-size: 0.4 * 100rpx; + color: #333; +} + +/*交易额统计*/ +.statistical-page .navs { + width: 100%; + height: 0.96 * 100rpx; + background-color: #fff; + overflow: hidden; + line-height: 0.96 * 100rpx; + position: fixed; + top: 0; + left: 0; + z-index: 9; +} + +.statistical-page .navs .list { + overflow-y: hidden; + overflow-x: auto; + white-space: nowrap; + width: 100%; +} + +.statistical-page .navs .item { + font-size: 0.32 * 100rpx; + color: #282828; + margin-left: 0.78 * 100rpx; + display: inline-block; +} + +.statistical-page .navs .item.on { + color: #2291f8; +} + +.statistical-page .navs .item .iconfont { + font-size: 0.25 * 100rpx; + margin-left: 0.13 * 100rpx; +} + +.statistical-page .wrapper { + box-sizing: border-box; + width: 100%; + background-color: #fff; + border-radius: 0.1 * 100rpx; + margin: 1.19 * 100rpx auto 0 auto; + padding: 0.3 * 100rpx 0.6 * 100rpx; +} + +.statistical-page .wrapper .title { + font-size: 0.3 * 100rpx; + color: #999; + text-align: center; +} + +.statistical-page .wrapper .money { + font-size: 0.72 * 100rpx; + color: #fba02a; + text-align: center; + margin-top: 0.1 * 100rpx; +} + +.statistical-page .wrapper .increase { + font-size: 0.28 * 100rpx; + color: #999; + margin-top: 0.2 * 100rpx; +} + +.statistical-page .wrapper .increase .red { + color: #ff6969; +} + +.statistical-page .wrapper .increase .green { + color: #1abb1d; +} + +.statistical-page .wrapper .increase .iconfont { + font-size: 0.23 * 100rpx; + margin-left: 0.15 * 100rpx; +} + +.statistical-page .chart { + width: 6.9 * 100rpx; + height: 4.8 * 100rpx; + background-color: #fff; + border-radius: 0.1 * 100rpx; + margin: 0.23 * 100rpx auto 0 auto; + padding: 0.25 * 100rpx 0.22 * 100rpx 0 0.22 * 100rpx; +} + +.statistical-page .chart .company { + font-size: 0.26 * 100rpx; + color: #999; +} + +.statistical-page .mc-body { + padding-bottom: 0; +} + +.statistical-page .mc-body tr { + background-color: #edf8fe; + border-top: 1px solid #fff; + width: 100%; +} + +.statistical-page .mc-head-box view { + font-size: 14px; +} + +.statistical-page .mc-range-mode .selected .mc-range-bg { + background-color: #a0dcf9; +} + +.yd-confirm { + background-color: #fff; + font-size: unset; + width: 5.4 * 100rpx; + height: 2.5 * 100rpx; + border-radius: 0.4 * 100rpx; +} + +.yd-confirm-hd { + text-align: center; +} + +.yd-confirm-title { + color: #030303; + font-weight: bold; + font-size: 0.36 * 100rpx; +} + +.yd-confirm-bd { + text-align: center; + font-size: 0.28 * 100rpx; + color: #333333; +} + +.yd-confirm-ft { + line-height: 0.9 * 100rpx; + margin-top: 14px; + border-top: 0.01 * 100rpx solid #eee; +} + +.yd-confirm-ft > a { + color: #e93323; +} + +.yd-confirm-ft > a.primary { + border-left: 0.01 * 100rpx solid #eee; + color: #e93323; +} + +/*修改密码*/ +.ChangePassword .phone { + font-size: 0.32 * 100rpx; + font-weight: bold; + text-align: center; + margin-top: 0.55 * 100rpx; +} + +.ChangePassword .list { + width: 5.8 * 100rpx; + margin: 0.53 * 100rpx auto 0 auto; +} + +.ChangePassword .list .item { + width: 100%; + height: 1.1 * 100rpx; + border-bottom: 0.02 * 100rpx solid #f0f0f0; +} + +.ChangePassword .list .item input { + width: 100%; + height: 100%; + font-size: 0.32 * 100rpx; +} + +.ChangePassword .list .item input::placeholder { + color: #b9b9bc; +} + +.ChangePassword .list .item input.codeIput { + width: 3.4 * 100rpx; +} + +.ChangePassword .list .item .code { + font-size: 0.32 * 100rpx; +} + +.ChangePassword .list .item .code.on { + color: #b9b9bc !important; +} + +.ChangePassword .confirmBnt { + font-size: 0.32 * 100rpx; + width: 5.8 * 100rpx; + height: 0.9 * 100rpx; + border-radius: 0.45 * 100rpx; + color: #fff; + margin: 0.92 * 100rpx auto 0 auto; + text-align: center; + line-height: 0.9 * 100rpx; +} + +.swiper-wrapper { +} + +.posterCanvasWarp { + position: relative; + width: 0; + height: 0; + overflow: hidden; + + .posterCanvas { + position: absolute; + left: 0; + top: 0; + width: 747px !important; + height: 1326px !important; + } +} + +.text .name .icon-jingpintuijian, +.text .name .icon-xinpin { + color: #00f !important; +} + +.text .name .icon-shoucang { + color: #ea3526 !important; +} + +rich-text { + width: 100%; + display: block; + + img, + image { + display: block; + width: 100%; + } +} + +/*单行文本溢出省略号*/ +.one-t { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + transition: all linear 0.2s; +} + +/*多行文本溢出省略号*/ +.more-t { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + transition: all linear 0.2s; +} + +/* ================== + flex布局(colorui里面也有相关基础样式) + ==================== */ +/* x水平排列*/ +.x-f { + display: flex; + align-items: center; +} + +/*x两端且水平居中*/ +.x-bc { + display: flex; + justify-content: space-between; + align-items: center; +} + +/*x平分且水平居中*/ +.x-ac { + display: flex; + justify-content: space-around; + align-items: center; +} + +/*x水平靠上对齐*/ +.x-start { + display: flex; + align-items: flex-start; +} + +/*x水平靠下对齐*/ +.x-end { + display: flex; + align-items: flex-end; +} + +/*上下左右居中*/ +.x-c { + display: flex; + justify-content: center; + align-items: center; +} + +/*y竖直靠左*/ +.y-start { + display: flex; + flex-direction: column; + align-items: flex-start; +} + +/*y竖直靠右*/ +.y-end { + display: flex; + flex-direction: column; + align-items: flex-end; +} + +/*y竖直居中*/ +.y-f { + display: flex; + flex-direction: column; + align-items: center; +} + +// y竖直两端 +.y-b { + display: flex; + flex-direction: column; + justify-content: space-between; +} + +/*y竖直两端居中*/ +.y-bc { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +/* ================== + 自定义变量 + ==================== */ +/*盒子模型*/ +.mt2 { + margin-top: 2rpx; +} + +.mr2 { + margin-right: 2rpx; +} + +.mb2 { + margin-bottom: 2rpx; +} + +.ml2 { + margin-left: 2rpx; +} + +.mx2 { + margin-left: 2rpx; + margin-right: 2rpx; +} + +.my2 { + margin-top: 2rpx; + margin-bottom: 2rpx; +} + +.ma2 { + margin: 2rpx; +} + +.mt4 { + margin-top: 4rpx; +} + +.mr4 { + margin-right: 4rpx; +} + +.mb4 { + margin-bottom: 4rpx; +} + +.ml4 { + margin-left: 4rpx; +} + +.mx4 { + margin-left: 4rpx; + margin-right: 4rpx; +} + +.my4 { + margin-top: 4rpx; + margin-bottom: 4rpx; +} + +.ma4 { + margin: 4rpx; +} + +.mt8 { + margin-top: 8rpx; +} + +.mr8 { + margin-right: 8rpx; +} + +.mb8 { + margin-bottom: 8rpx; +} + +.ml8 { + margin-left: 8rpx; +} + +.mx8 { + margin-left: 8rpx; + margin-right: 8rpx; +} + +.my8 { + margin-top: 8rpx; + margin-bottom: 8rpx; +} + +.ma8 { + margin: 8rpx; +} + +.mt10 { + margin-top: 10rpx; +} + +.mr10 { + margin-right: 10rpx; +} + +.mb10 { + margin-bottom: 10rpx; +} + +.ml10 { + margin-left: 10rpx; +} + +.mx10 { + margin-left: 10rpx; + margin-right: 10rpx; +} + +.my10 { + margin-top: 10rpx; + margin-bottom: 10rpx; +} + +.ma10 { + margin: 10rpx; +} + +.mt15 { + margin-top: 15rpx; +} + +.mr15 { + margin-right: 15rpx; +} + +.mb15 { + margin-bottom: 15rpx; +} + +.ml15 { + margin-left: 15rpx; +} + +.mx15 { + margin-left: 15rpx; + margin-right: 15rpx; +} + +.my15 { + margin-top: 15rpx; + margin-bottom: 15rpx; +} + +.ma15 { + margin: 15rpx; +} + +.mt20 { + margin-top: 20rpx; +} + +.mr20 { + margin-right: 20rpx; +} + +.mb20 { + margin-bottom: 20rpx; +} + +.ml20 { + margin-left: 20rpx; +} + +.mx20 { + margin-left: 20rpx; + margin-right: 20rpx; +} + +.my20 { + margin-top: 20rpx; + margin-bottom: 20rpx; +} + +.ma20 { + margin: 20rpx; +} + +.mt24 { + margin-top: 24rpx; +} + +.mr24 { + margin-right: 24rpx; +} + +.mb24 { + margin-bottom: 24rpx; +} + +.ml24 { + margin-left: 24rpx; +} + +.mx24 { + margin-left: 24rpx; + margin-right: 24rpx; +} + +.my24 { + margin-top: 24rpx; + margin-bottom: 24rpx; +} + +.ma24 { + margin: 24rpx; +} + +.mt30 { + margin-top: 30rpx; +} + +.mr30 { + margin-right: 30rpx; +} + +.mb30 { + margin-bottom: 30rpx; +} + +.ml30 { + margin-left: 30rpx; +} + +.mx30 { + margin-left: 30rpx; + margin-right: 30rpx; +} + +.my30 { + margin-top: 30rpx; + margin-bottom: 30rpx; +} + +.ma30 { + margin: 30rpx; +} + +.pt2 { + padding-top: 2rpx; +} + +.pr2 { + padding-right: 2rpx; +} + +.pb2 { + padding-bottom: 2rpx; +} + +.pl2 { + padding-left: 2rpx; +} + +.px2 { + padding-left: 2rpx; + padding-right: 2rpx; +} + +.py2 { + padding-top: 2rpx; + padding-bottom: 2rpx; +} + +.pa2 { + padding: 2rpx; +} + +.pt4 { + padding-top: 4rpx; +} + +.pr4 { + padding-right: 4rpx; +} + +.pb4 { + padding-bottom: 4rpx; +} + +.pl4 { + padding-left: 4rpx; +} + +.px4 { + padding-left: 4rpx; + padding-right: 4rpx; +} + +.py4 { + padding-top: 4rpx; + padding-bottom: 4rpx; +} + +.pa4 { + padding: 4rpx; +} + +.pt8 { + padding-top: 8rpx; +} + +.pr8 { + padding-right: 8rpx; +} + +.pb8 { + padding-bottom: 8rpx; +} + +.pl8 { + padding-left: 8rpx; +} + +.px8 { + padding-left: 8rpx; + padding-right: 8rpx; +} + +.py8 { + padding-top: 8rpx; + padding-bottom: 8rpx; +} + +.pa8 { + padding: 8rpx; +} + +.pt10 { + padding-top: 10rpx; +} + +.pr10 { + padding-right: 10rpx; +} + +.pb10 { + padding-bottom: 10rpx; +} + +.pl10 { + padding-left: 10rpx; +} + +.px10 { + padding-left: 10rpx; + padding-right: 10rpx; +} + +.py10 { + padding-top: 10rpx; + padding-bottom: 10rpx; +} + +.pa10 { + padding: 10rpx; +} + +.pt15 { + padding-top: 15rpx; +} + +.pr15 { + padding-right: 15rpx; +} + +.pb15 { + padding-bottom: 15rpx; +} + +.pl15 { + padding-left: 15rpx; +} + +.px15 { + padding-left: 15rpx; + padding-right: 15rpx; +} + +.py15 { + padding-top: 15rpx; + padding-bottom: 15rpx; +} + +.pa15 { + padding: 15rpx; +} + +.pt20 { + padding-top: 20rpx; +} + +.pr20 { + padding-right: 20rpx; +} + +.pb20 { + padding-bottom: 20rpx; +} + +.pl20 { + padding-left: 20rpx; +} + +.px20 { + padding-left: 20rpx; + padding-right: 20rpx; +} + +.py20 { + padding-top: 20rpx; + padding-bottom: 20rpx; +} + +.pa20 { + padding: 20rpx; +} + +.pt24 { + padding-top: 24rpx; +} + +.pr24 { + padding-right: 24rpx; +} + +.pb24 { + padding-bottom: 24rpx; +} + +.pl24 { + padding-left: 24rpx; +} + +.px24 { + padding-left: 24rpx; + padding-right: 24rpx; +} + +.py24 { + padding-top: 24rpx; + padding-bottom: 24rpx; +} + +.pa24 { + padding: 24rpx; +} + +.pt30 { + padding-top: 30rpx; +} + +.pr30 { + padding-right: 30rpx; +} + +.pb30 { + padding-bottom: 30rpx; +} + +.pl30 { + padding-left: 30rpx; +} + +.px30 { + padding-left: 30rpx; + padding-right: 30rpx; +} + +.py30 { + padding-top: 30rpx; + padding-bottom: 30rpx; +} + +.pa30 { + padding: 30rpx; +} + +.min-goods { + width: 152rpx; + background: #fff; + + .img-box { + width: 152rpx; + height: 152rpx; + overflow: hidden; + position: relative; + + .tag { + position: absolute; + left: 0; + bottom: 0rpx; + z-index: 2; + line-height: 35rpx; + background: linear-gradient(132deg, rgba(243, 223, 177, 1), rgba(243, 223, 177, 1), rgba(236, 190, 96, 1)); + border-radius: 0px 18rpx 18rpx 0px; + padding: 0 10rpx; + font-size: 24rpx; + font-family: PingFang SC; + font-weight: bold; + color: rgba(120, 79, 6, 1); + } + + .img { + width: 100%; + background-color: #ccc; + } + } + + .price-box { + width: 100%; + margin-top: 10rpx; + + .seckill-current { + font-size: 30rpx; + font-weight: 500; + color: rgba(225, 33, 43, 1); + } + + .original { + font-size: 20rpx; + font-weight: 400; + // text-decoration: line-through; + color: rgba(153, 153, 153, 1); + margin-left: 14rpx; + } + } + + .title { + font-size: 26rpx; + } +} + +.contacButton { + padding: 0; + background-color: #fff; + line-height: 25rpx; +} + +.contacButton::after { + border: 0; +} + +.footer .icon-shoucang1 { + color: #eb3729; +} + +.ytabs { + .nav { + margin: 0 auto; + padding: 0 30rpx; + width: 100%; + box-sizing: border-box; + } + + .nav .item { + flex: 1; + position: relative; + } +} + +.shoppingCart, +.user, +.container { + height: 100%; +} + +.bargainGang.bargain-box, +.goodsDetails.bargain-box { + padding-top: 0 !important; + .content { + margin-top: 0; + } +} + +.bargain .bargain-product.wrapper .cu-progress { + margin-top: 30rpx; +} diff --git a/assets/iconfont/iconfont.css b/assets/iconfont/iconfont.css new file mode 100644 index 0000000..01e5991 --- /dev/null +++ b/assets/iconfont/iconfont.css @@ -0,0 +1,661 @@ +@font-face {font-family: "iconfont"; + src: /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') + } + + .iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + .icon-jingpintuijian:before { + content: "\e60d"; + } + + .icon-xiaolian:before { + content: "\e60f"; + } + + .icon-yuandianxiao:before { + content: "\e82f"; + } + + .icon-xiazai5:before { + content: "\e605"; + } + + .icon-icon34:before { + content: "\e62b"; + } + + .icon-dadianhua01:before { + content: "\e623"; + } + + .icon-webicon318:before { + content: "\e6c2"; + } + + .icon-iconfontguanbi:before { + content: "\e643"; + } + + .icon-icon25201:before { + content: "\e70d"; + } + + .icon-cuxiaoguanli:before { + content: "\e60e"; + } + + .icon-miaosha:before { + content: "\e6c3"; + } + + .icon-huiyuan:before { + content: "\e60b"; + } + + .icon-caigou-xianxing:before { + content: "\e887"; + } + + .icon-caigou:before { + content: "\e888"; + } + + .icon-yingyongchengxu-xianxing:before { + content: "\e8a1"; + } + + .icon-yingyongchengxu:before { + content: "\e8a2"; + } + + .icon-ziyuan-xianxing:before { + content: "\e8a4"; + } + + .icon-shouye-xianxing:before { + content: "\e8ba"; + } + + .icon-shouye:before { + content: "\e8b9"; + } + + .icon-yonghu-xianxing:before { + content: "\e8c8"; + } + + .icon-yonghu:before { + content: "\e8c9"; + } + + .icon-ditu:before { + content: "\e906"; + } + + .icon-sousuo2:before { + content: "\e757"; + } + + .icon-2:before { + content: "\e684"; + } + + .icon-dizhi:before { + content: "\e608"; + } + + .icon-huangguan:before { + content: "\e624"; + } + + .icon-huangguan1:before { + content: "\e625"; + } + + .icon-huangguan2:before { + content: "\e626"; + } + + .icon-wuliu:before { + content: "\e6f2"; + } + + .icon-xuanzhong:before { + content: "\e615"; + } + + .icon-xinpin:before { + content: "\e610"; + } + + .icon-arrow:before { + content: "\e627"; + } + + .icon-yuezhifu:before { + content: "\e65e"; + } + + .icon-bianji:before { + content: "\e6cc"; + } + + .icon-wenti:before { + content: "\e758"; + } + + .icon-qiandai:before { + content: "\e6b1"; + } + + .icon-xiangyou:before { + content: "\e679"; + } + + .icon-paihang:before { + content: "\e73e"; + } + + .icon-weizhi:before { + content: "\e62d"; + } + + .icon-remen:before { + content: "\e67c"; + } + + .icon-tuandui:before { + content: "\e685"; + } + + .icon-yuezhifu1:before { + content: "\e61a"; + } + + .icon-yonghu2:before { + content: "\e60a"; + } + + .icon-hebingxingzhuang:before { + content: "\e656"; + } + + .icon-gouwuche1:before { + content: "\e642"; + } + + .icon-liulan:before { + content: "\e629"; + } + + .icon-jinbi1:before { + content: "\e655"; + } + + .icon-guanbi2:before { + content: "\e61c"; + } + + .icon-sousuo:before { + content: "\e67d"; + } + + .icon-weixin:before { + content: "\e600"; + } + + .icon-weixin3:before { + content: "\e618"; + } + + .icon-paihang1:before { + content: "\e633"; + } + + .icon-tongji:before { + content: "\e687"; + } + + .icon-caidan:before { + content: "\e62a"; + } + + .icon-erweima:before { + content: "\e607"; + } + + .icon-shoucang:before { + content: "\e606"; + } + + .icon-jian:before { + content: "\e621"; + } + + .icon-jia:before { + content: "\e7e0"; + } + + .icon-guanbi:before { + content: "\e62f"; + } + + .icon-xiangshang1:before { + content: "\e622"; + } + + .icon-shuoming:before { + content: "\e630"; + } + + .icon-xiala:before { + content: "\e67f"; + } + + .icon-pailie:before { + content: "\e61b"; + } + + .icon-fenxiang:before { + content: "\e603"; + } + + .icon-yinhangqia:before { + content: "\e72c"; + } + + .icon-sousuo1:before { + content: "\e64c"; + } + + .icon-duihao:before { + content: "\e64e"; + } + + .icon-dingdan:before { + content: "\e61e"; + } + + .icon-tupianpailie:before { + content: "\e620"; + } + + .icon-chongzhi:before { + content: "\e602"; + } + + .icon-shezhi:before { + content: "\e619"; + } + + .icon-shuoming1:before { + content: "\e673"; + } + + .icon-duihao2:before { + content: "\e601"; + } + + .icon-complete:before { + content: "\e646"; + } + + .icon-weixin1:before { + content: "\e66e"; + } + + .icon-xianxiazhifu:before { + content: "\e6e1"; + } + + .icon-tianjiadizhi:before { + content: "\e640"; + } + + .icon-weixin2:before { + content: "\e604"; + } + + .icon-gouwuche:before { + content: "\e669"; + } + + .icon-jiazai:before { + content: "\e62c"; + } + + .icon-huabanfuben:before { + content: "\e654"; + } + + .icon-kefu_o:before { + content: "\eb63"; + } + + .icon-liwu_o:before { + content: "\eb65"; + } + + .icon-anniu_jiantouzhankai_o:before { + content: "\eb89"; + } + + .icon-jiantou_xiayiye_o:before { + content: "\eb8f"; + } + + .icon-jiantou_shangxiaqiehuan_o:before { + content: "\eb90"; + } + + .icon-shangxiazhankai_o:before { + content: "\eb9a"; + } + + .icon-huobiliu_o:before { + content: "\eb9f"; + } + + .icon-jinbi_o:before { + content: "\eba1"; + } + + .icon-gerentouxiang_o:before { + content: "\ebac"; + } + + .icon-qunzu_o:before { + content: "\ebad"; + } + + .icon-dianhua_o:before { + content: "\ebaf"; + } + + .icon-shoucang_o:before { + content: "\ebae"; + } + + .icon-yunshangchuan_o:before { + content: "\ebb3"; + } + + .icon-bingtu_o:before { + content: "\ebb4"; + } + + .icon-baoguo_huanbaohe_o:before { + content: "\ebb6"; + } + + .icon-baoguo_quxiaoshouhuo_o:before { + content: "\ebb7"; + } + + .icon-baoguo_shouhuo_o:before { + content: "\ebb8"; + } + + .icon-baoguo_lingjian_o:before { + content: "\ebb9"; + } + + .icon-baoguo_shouna_o:before { + content: "\ebbe"; + } + + .icon-didiandingwei_o:before { + content: "\ebba"; + } + + .icon-zhekou:before { + content: "\e790"; + } + + .icon-laba:before { + content: "\e612"; + } + + .icon-quanxianguanlisuozi:before { + content: "\e6d2"; + } + + .icon-youjian:before { + content: "\e677"; + } + + .icon-xiala1:before { + content: "\e609"; + } + + .icon-weixinzhifu:before { + content: "\e632"; + } + + .icon-jingyanzhi:before { + content: "\e62e"; + } + + .icon-up:before { + content: "\e617"; + } + + .icon-kefu:before { + content: "\e6b2"; + } + + .icon-shenhezhong:before { + content: "\e6ce"; + } + + .icon-kanjia1:before { + content: "\e613"; + } + + .icon-shanchu1:before { + content: "\e611"; + } + + .icon-zhifubao:before { + content: "\e61d"; + } + + .icon-yonghu1:before { + content: "\e644"; + } + + .icon-suozi:before { + content: "\e631"; + } + + .icon-jiantou:before { + content: "\e641"; + } + + .icon-kanjia:before { + content: "\e69b"; + } + + .icon-pintuan:before { + content: "\e60c"; + } + + .icon-bianji1:before { + content: "\e614"; + } + + .icon-youhuiquan:before { + content: "\e6e4"; + } + + .icon-xiangxia:before { + content: "\e8ca"; + } + + .icon-shanchu:before { + content: "\e628"; + } + + .icon-guanbi3:before { + content: "\e6c5"; + } + + + .icon-weixuanzhong:before { + content: "\e6f0"; + } + + .icon-xuanzhong1:before { + content: "\e6ef"; + } + + .icon-zhuangshixian:before { + content: "\e6f1"; + } + + .icon-jishuzhichi:before { + content: "\e6f3"; + } + + .icon-biankuang:before { + content: "\e6f4"; + } + + .icon-guanbi1:before { + content: "\e6f5"; + } + + .icon-xiangshang:before { + content: "\ebbb"; + } + + .icon-icon-test:before { + content: "\e6f6"; + } + + .icon-mingxi:before { + content: "\e6f7"; + } + + .icon-tishengfenzhi:before { + content: "\e6f8"; + } + + .icon-pintuanchenggong:before { + content: "\e6f9"; + } + + .icon-pintuanshibai:before { + content: "\e6fa"; + } + + .icon-kongxinxing:before { + content: "\e6fc"; + } + + .icon-shitixing:before { + content: "\e6fb"; + } + + .icon-yituikuan:before { + content: "\e6fd"; + } + + .icon-tuikuanzhong:before { + content: "\e6fe"; + } + + .icon-lingxing:before { + content: "\e6ff"; + } + + .icon-xiangzuo:before { + content: "\ebbc"; + } + + .icon-icon_im_face:before { + content: "\eb96"; + } + + .icon-icon_im_keyboard:before { + content: "\eb97"; + } + + .icon-shoucang1:before { + content: "\e714"; + } + + .icon-dianhau:before { + content: "\e634"; + } + + .icon-zhinengkefu-:before { + content: "\e616"; + } + + .icon-code_:before { + content: "\e723"; + } + + .icon-code_1:before { + content: "\e724"; + } + + .icon-phone_:before { + content: "\e725"; + } + + .icon-shijian:before { + content: "\e635"; + } + + .icon-xiangxia2:before { + content: "\ebbd"; + } + + .icon-xuanzhong2:before { + content: "\e731"; + } + + .icon-shujutongji:before { + content: "\e732"; + } + + .icon-xiangxishuju:before { + content: "\e733"; + } + + .icon-gengduo:before { + content: "\e734"; + } + + + + .icon-haibao:before { + content: "\e73b"; + } + + .icon-tupian-:before { + content: "\e73f"; + } + + .icon-xiugai:before { + content: "\e61f"; + } + + .icon-pintuan-copy:before { + content: "\ebbf"; + } + + .icon-tonghua:before { + content: "\e740"; + } + + \ No newline at end of file diff --git a/components/AddressWindow.vue b/components/AddressWindow.vue new file mode 100644 index 0000000..18300f5 --- /dev/null +++ b/components/AddressWindow.vue @@ -0,0 +1,77 @@ + + diff --git a/components/Adv.vue b/components/Adv.vue new file mode 100644 index 0000000..af6dbad --- /dev/null +++ b/components/Adv.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/components/CitySelect.vue b/components/CitySelect.vue new file mode 100644 index 0000000..8d4e887 --- /dev/null +++ b/components/CitySelect.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/components/CountDown.vue b/components/CountDown.vue new file mode 100644 index 0000000..f072777 --- /dev/null +++ b/components/CountDown.vue @@ -0,0 +1,121 @@ + + diff --git a/components/CouponListWindow.vue b/components/CouponListWindow.vue new file mode 100644 index 0000000..8cecc2d --- /dev/null +++ b/components/CouponListWindow.vue @@ -0,0 +1,122 @@ + + + diff --git a/components/CouponPop.vue b/components/CouponPop.vue new file mode 100644 index 0000000..d8c6203 --- /dev/null +++ b/components/CouponPop.vue @@ -0,0 +1,75 @@ + + diff --git a/components/CouponWindow.vue b/components/CouponWindow.vue new file mode 100644 index 0000000..77096db --- /dev/null +++ b/components/CouponWindow.vue @@ -0,0 +1,88 @@ + + diff --git a/components/DataFormat.vue b/components/DataFormat.vue new file mode 100644 index 0000000..d4a3c92 --- /dev/null +++ b/components/DataFormat.vue @@ -0,0 +1,24 @@ + + diff --git a/components/DataFormatT.vue b/components/DataFormatT.vue new file mode 100644 index 0000000..f4379a0 --- /dev/null +++ b/components/DataFormatT.vue @@ -0,0 +1,24 @@ + + diff --git a/components/Footer.vue b/components/Footer.vue new file mode 100644 index 0000000..10b839a --- /dev/null +++ b/components/Footer.vue @@ -0,0 +1,65 @@ + + diff --git a/components/GoodList.vue b/components/GoodList.vue new file mode 100644 index 0000000..1dd2fb5 --- /dev/null +++ b/components/GoodList.vue @@ -0,0 +1,49 @@ + + diff --git a/components/Home.vue b/components/Home.vue new file mode 100644 index 0000000..a6063d6 --- /dev/null +++ b/components/Home.vue @@ -0,0 +1,59 @@ + + + diff --git a/components/Loading.vue b/components/Loading.vue new file mode 100644 index 0000000..81941b4 --- /dev/null +++ b/components/Loading.vue @@ -0,0 +1,21 @@ + + + diff --git a/components/Mask.vue b/components/Mask.vue new file mode 100644 index 0000000..ebcc5b8 --- /dev/null +++ b/components/Mask.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/components/Menu.vue b/components/Menu.vue new file mode 100644 index 0000000..52d3c07 --- /dev/null +++ b/components/Menu.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/components/OrderGoods.vue b/components/OrderGoods.vue new file mode 100644 index 0000000..61554d8 --- /dev/null +++ b/components/OrderGoods.vue @@ -0,0 +1,47 @@ + + diff --git a/components/Payment.vue b/components/Payment.vue new file mode 100644 index 0000000..2c0539e --- /dev/null +++ b/components/Payment.vue @@ -0,0 +1,202 @@ + + + diff --git a/components/PriceChange.vue b/components/PriceChange.vue new file mode 100644 index 0000000..7babb01 --- /dev/null +++ b/components/PriceChange.vue @@ -0,0 +1,133 @@ + + + diff --git a/components/ProductConSwiper.vue b/components/ProductConSwiper.vue new file mode 100644 index 0000000..fb3a1dd --- /dev/null +++ b/components/ProductConSwiper.vue @@ -0,0 +1,71 @@ + + diff --git a/components/ProductWindow.vue b/components/ProductWindow.vue new file mode 100644 index 0000000..66b5c25 --- /dev/null +++ b/components/ProductWindow.vue @@ -0,0 +1,141 @@ + + diff --git a/components/PromotionGood.vue b/components/PromotionGood.vue new file mode 100644 index 0000000..57def57 --- /dev/null +++ b/components/PromotionGood.vue @@ -0,0 +1,212 @@ + + + + diff --git a/components/Recommend.vue b/components/Recommend.vue new file mode 100644 index 0000000..e2d18c6 --- /dev/null +++ b/components/Recommend.vue @@ -0,0 +1,82 @@ + + diff --git a/components/ShareInfo.vue b/components/ShareInfo.vue new file mode 100644 index 0000000..2801fb8 --- /dev/null +++ b/components/ShareInfo.vue @@ -0,0 +1,40 @@ + + + diff --git a/components/ShareRedPackets.vue b/components/ShareRedPackets.vue new file mode 100644 index 0000000..e44a58e --- /dev/null +++ b/components/ShareRedPackets.vue @@ -0,0 +1,43 @@ + + diff --git a/components/ShopLiveCard.vue b/components/ShopLiveCard.vue new file mode 100644 index 0000000..697e319 --- /dev/null +++ b/components/ShopLiveCard.vue @@ -0,0 +1,324 @@ + + + + + diff --git a/components/StorePoster.vue b/components/StorePoster.vue new file mode 100644 index 0000000..3f4ad40 --- /dev/null +++ b/components/StorePoster.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/components/SwitchWindow.vue b/components/SwitchWindow.vue new file mode 100644 index 0000000..cdf6de5 --- /dev/null +++ b/components/SwitchWindow.vue @@ -0,0 +1,155 @@ + + + diff --git a/components/UserEvaluation.vue b/components/UserEvaluation.vue new file mode 100644 index 0000000..2492bf0 --- /dev/null +++ b/components/UserEvaluation.vue @@ -0,0 +1,52 @@ + + diff --git a/components/WriteOff.vue b/components/WriteOff.vue new file mode 100644 index 0000000..099c0c6 --- /dev/null +++ b/components/WriteOff.vue @@ -0,0 +1,127 @@ + + + diff --git a/components/colorui/animation.css b/components/colorui/animation.css new file mode 100644 index 0000000..931bb51 --- /dev/null +++ b/components/colorui/animation.css @@ -0,0 +1,184 @@ +/* + Animation 微动画 + 基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28 + */ + +/* css 滤镜 控制黑白底色gif的 */ +.gif-black{ + mix-blend-mode: screen; +} +.gif-white{ + mix-blend-mode: multiply; +} + + +/* Animation css */ +[class*=animation-] { + animation-duration: .5s; + animation-timing-function: ease-out; + animation-fill-mode: both +} + +.animation-fade { + animation-name: fade; + animation-duration: .8s; + animation-timing-function: linear +} + +.animation-scale-up { + animation-name: scale-up +} + +.animation-scale-down { + animation-name: scale-down +} + +.animation-slide-top { + animation-name: slide-top +} + +.animation-slide-bottom { + animation-name: slide-bottom +} + +.animation-slide-left { + animation-name: slide-left +} + +.animation-slide-right { + animation-name: slide-right +} + +.animation-shake { + animation-name: shake +} + +.animation-reverse { + animation-direction: reverse +} + +@keyframes fade { + 0% { + opacity: 0 + } + + 100% { + opacity: 1 + } +} + +@keyframes scale-up { + 0% { + opacity: 0; + transform: scale(.2) + } + + 100% { + opacity: 1; + transform: scale(1) + } +} + +@keyframes scale-down { + 0% { + opacity: 0; + transform: scale(1.8) + } + + 100% { + opacity: 1; + transform: scale(1) + } +} + +@keyframes slide-top { + 0% { + opacity: 0; + transform: translateY(-100%) + } + + 100% { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes slide-bottom { + 0% { + opacity: 0; + transform: translateY(100%) + } + + 100% { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes shake { + + 0%, + 100% { + transform: translateX(0) + } + + 10% { + transform: translateX(-9px) + } + + 20% { + transform: translateX(8px) + } + + 30% { + transform: translateX(-7px) + } + + 40% { + transform: translateX(6px) + } + + 50% { + transform: translateX(-5px) + } + + 60% { + transform: translateX(4px) + } + + 70% { + transform: translateX(-3px) + } + + 80% { + transform: translateX(2px) + } + + 90% { + transform: translateX(-1px) + } +} + +@keyframes slide-left { + 0% { + opacity: 0; + transform: translateX(-100%) + } + + 100% { + opacity: 1; + transform: translateX(0) + } +} + +@keyframes slide-right { + 0% { + opacity: 0; + transform: translateX(100%) + } + + 100% { + opacity: 1; + transform: translateX(0) + } +} \ No newline at end of file diff --git a/components/colorui/components/cu-custom.vue b/components/colorui/components/cu-custom.vue new file mode 100644 index 0000000..0a79594 --- /dev/null +++ b/components/colorui/components/cu-custom.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/components/colorui/icon.css b/components/colorui/icon.css new file mode 100644 index 0000000..16ed121 --- /dev/null +++ b/components/colorui/icon.css @@ -0,0 +1,1226 @@ +@keyframes cuIcon-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.cuIconfont-spin { + -webkit-animation: cuIcon-spin 2s infinite linear; + animation: cuIcon-spin 2s infinite linear; + display: inline-block; +} + +.cuIconfont-pulse { + -webkit-animation: cuIcon-spin 1s infinite steps(8); + animation: cuIcon-spin 1s infinite steps(8); + display: inline-block; +} + +[class*="cuIcon-"] { + font-family: "cuIcon"; + font-size: inherit; + font-style: normal; +} + +@font-face { + font-family: "cuIcon"; + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831'); + /* IE9*/ + src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'), + /* IE6-IE8 */ + url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'), + /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#cuIconfont') format('svg'); + /* iOS 4.1- */ +} + +.cuIcon-appreciate:before { + content: "\e644"; +} + +.cuIcon-check:before { + content: "\e645"; +} + +.cuIcon-close:before { + content: "\e646"; +} + +.cuIcon-edit:before { + content: "\e649"; +} + +.cuIcon-emoji:before { + content: "\e64a"; +} + +.cuIcon-favorfill:before { + content: "\e64b"; +} + +.cuIcon-favor:before { + content: "\e64c"; +} + +.cuIcon-loading:before { + content: "\e64f"; +} + +.cuIcon-locationfill:before { + content: "\e650"; +} + +.cuIcon-location:before { + content: "\e651"; +} + +.cuIcon-phone:before { + content: "\e652"; +} + +.cuIcon-roundcheckfill:before { + content: "\e656"; +} + +.cuIcon-roundcheck:before { + content: "\e657"; +} + +.cuIcon-roundclosefill:before { + content: "\e658"; +} + +.cuIcon-roundclose:before { + content: "\e659"; +} + +.cuIcon-roundrightfill:before { + content: "\e65a"; +} + +.cuIcon-roundright:before { + content: "\e65b"; +} + +.cuIcon-search:before { + content: "\e65c"; +} + +.cuIcon-taxi:before { + content: "\e65d"; +} + +.cuIcon-timefill:before { + content: "\e65e"; +} + +.cuIcon-time:before { + content: "\e65f"; +} + +.cuIcon-unfold:before { + content: "\e661"; +} + +.cuIcon-warnfill:before { + content: "\e662"; +} + +.cuIcon-warn:before { + content: "\e663"; +} + +.cuIcon-camerafill:before { + content: "\e664"; +} + +.cuIcon-camera:before { + content: "\e665"; +} + +.cuIcon-commentfill:before { + content: "\e666"; +} + +.cuIcon-comment:before { + content: "\e667"; +} + +.cuIcon-likefill:before { + content: "\e668"; +} + +.cuIcon-like:before { + content: "\e669"; +} + +.cuIcon-notificationfill:before { + content: "\e66a"; +} + +.cuIcon-notification:before { + content: "\e66b"; +} + +.cuIcon-order:before { + content: "\e66c"; +} + +.cuIcon-samefill:before { + content: "\e66d"; +} + +.cuIcon-same:before { + content: "\e66e"; +} + +.cuIcon-deliver:before { + content: "\e671"; +} + +.cuIcon-evaluate:before { + content: "\e672"; +} + +.cuIcon-pay:before { + content: "\e673"; +} + +.cuIcon-send:before { + content: "\e675"; +} + +.cuIcon-shop:before { + content: "\e676"; +} + +.cuIcon-ticket:before { + content: "\e677"; +} + +.cuIcon-back:before { + content: "\e679"; +} + +.cuIcon-cascades:before { + content: "\e67c"; +} + +.cuIcon-discover:before { + content: "\e67e"; +} + +.cuIcon-list:before { + content: "\e682"; +} + +.cuIcon-more:before { + content: "\e684"; +} + +.cuIcon-scan:before { + content: "\e689"; +} + +.cuIcon-settings:before { + content: "\e68a"; +} + +.cuIcon-questionfill:before { + content: "\e690"; +} + +.cuIcon-question:before { + content: "\e691"; +} + +.cuIcon-shopfill:before { + content: "\e697"; +} + +.cuIcon-form:before { + content: "\e699"; +} + +.cuIcon-pic:before { + content: "\e69b"; +} + +.cuIcon-filter:before { + content: "\e69c"; +} + +.cuIcon-footprint:before { + content: "\e69d"; +} + +.cuIcon-top:before { + content: "\e69e"; +} + +.cuIcon-pulldown:before { + content: "\e69f"; +} + +.cuIcon-pullup:before { + content: "\e6a0"; +} + +.cuIcon-right:before { + content: "\e6a3"; +} + +.cuIcon-refresh:before { + content: "\e6a4"; +} + +.cuIcon-moreandroid:before { + content: "\e6a5"; +} + +.cuIcon-deletefill:before { + content: "\e6a6"; +} + +.cuIcon-refund:before { + content: "\e6ac"; +} + +.cuIcon-cart:before { + content: "\e6af"; +} + +.cuIcon-qrcode:before { + content: "\e6b0"; +} + +.cuIcon-remind:before { + content: "\e6b2"; +} + +.cuIcon-delete:before { + content: "\e6b4"; +} + +.cuIcon-profile:before { + content: "\e6b7"; +} + +.cuIcon-home:before { + content: "\e6b8"; +} + +.cuIcon-cartfill:before { + content: "\e6b9"; +} + +.cuIcon-discoverfill:before { + content: "\e6ba"; +} + +.cuIcon-homefill:before { + content: "\e6bb"; +} + +.cuIcon-message:before { + content: "\e6bc"; +} + +.cuIcon-addressbook:before { + content: "\e6bd"; +} + +.cuIcon-link:before { + content: "\e6bf"; +} + +.cuIcon-lock:before { + content: "\e6c0"; +} + +.cuIcon-unlock:before { + content: "\e6c2"; +} + +.cuIcon-vip:before { + content: "\e6c3"; +} + +.cuIcon-weibo:before { + content: "\e6c4"; +} + +.cuIcon-activity:before { + content: "\e6c5"; +} + +.cuIcon-friendaddfill:before { + content: "\e6c9"; +} + +.cuIcon-friendadd:before { + content: "\e6ca"; +} + +.cuIcon-friendfamous:before { + content: "\e6cb"; +} + +.cuIcon-friend:before { + content: "\e6cc"; +} + +.cuIcon-goods:before { + content: "\e6cd"; +} + +.cuIcon-selection:before { + content: "\e6ce"; +} + +.cuIcon-explore:before { + content: "\e6d2"; +} + +.cuIcon-present:before { + content: "\e6d3"; +} + +.cuIcon-squarecheckfill:before { + content: "\e6d4"; +} + +.cuIcon-square:before { + content: "\e6d5"; +} + +.cuIcon-squarecheck:before { + content: "\e6d6"; +} + +.cuIcon-round:before { + content: "\e6d7"; +} + +.cuIcon-roundaddfill:before { + content: "\e6d8"; +} + +.cuIcon-roundadd:before { + content: "\e6d9"; +} + +.cuIcon-add:before { + content: "\e6da"; +} + +.cuIcon-notificationforbidfill:before { + content: "\e6db"; +} + +.cuIcon-explorefill:before { + content: "\e6dd"; +} + +.cuIcon-fold:before { + content: "\e6de"; +} + +.cuIcon-game:before { + content: "\e6df"; +} + +.cuIcon-redpacket:before { + content: "\e6e0"; +} + +.cuIcon-selectionfill:before { + content: "\e6e1"; +} + +.cuIcon-similar:before { + content: "\e6e2"; +} + +.cuIcon-appreciatefill:before { + content: "\e6e3"; +} + +.cuIcon-infofill:before { + content: "\e6e4"; +} + +.cuIcon-info:before { + content: "\e6e5"; +} + +.cuIcon-forwardfill:before { + content: "\e6ea"; +} + +.cuIcon-forward:before { + content: "\e6eb"; +} + +.cuIcon-rechargefill:before { + content: "\e6ec"; +} + +.cuIcon-recharge:before { + content: "\e6ed"; +} + +.cuIcon-vipcard:before { + content: "\e6ee"; +} + +.cuIcon-voice:before { + content: "\e6ef"; +} + +.cuIcon-voicefill:before { + content: "\e6f0"; +} + +.cuIcon-friendfavor:before { + content: "\e6f1"; +} + +.cuIcon-wifi:before { + content: "\e6f2"; +} + +.cuIcon-share:before { + content: "\e6f3"; +} + +.cuIcon-wefill:before { + content: "\e6f4"; +} + +.cuIcon-we:before { + content: "\e6f5"; +} + +.cuIcon-lightauto:before { + content: "\e6f6"; +} + +.cuIcon-lightforbid:before { + content: "\e6f7"; +} + +.cuIcon-lightfill:before { + content: "\e6f8"; +} + +.cuIcon-camerarotate:before { + content: "\e6f9"; +} + +.cuIcon-light:before { + content: "\e6fa"; +} + +.cuIcon-barcode:before { + content: "\e6fb"; +} + +.cuIcon-flashlightclose:before { + content: "\e6fc"; +} + +.cuIcon-flashlightopen:before { + content: "\e6fd"; +} + +.cuIcon-searchlist:before { + content: "\e6fe"; +} + +.cuIcon-service:before { + content: "\e6ff"; +} + +.cuIcon-sort:before { + content: "\e700"; +} + +.cuIcon-down:before { + content: "\e703"; +} + +.cuIcon-mobile:before { + content: "\e704"; +} + +.cuIcon-mobilefill:before { + content: "\e705"; +} + +.cuIcon-copy:before { + content: "\e706"; +} + +.cuIcon-countdownfill:before { + content: "\e707"; +} + +.cuIcon-countdown:before { + content: "\e708"; +} + +.cuIcon-noticefill:before { + content: "\e709"; +} + +.cuIcon-notice:before { + content: "\e70a"; +} + +.cuIcon-upstagefill:before { + content: "\e70e"; +} + +.cuIcon-upstage:before { + content: "\e70f"; +} + +.cuIcon-babyfill:before { + content: "\e710"; +} + +.cuIcon-baby:before { + content: "\e711"; +} + +.cuIcon-brandfill:before { + content: "\e712"; +} + +.cuIcon-brand:before { + content: "\e713"; +} + +.cuIcon-choicenessfill:before { + content: "\e714"; +} + +.cuIcon-choiceness:before { + content: "\e715"; +} + +.cuIcon-clothesfill:before { + content: "\e716"; +} + +.cuIcon-clothes:before { + content: "\e717"; +} + +.cuIcon-creativefill:before { + content: "\e718"; +} + +.cuIcon-creative:before { + content: "\e719"; +} + +.cuIcon-female:before { + content: "\e71a"; +} + +.cuIcon-keyboard:before { + content: "\e71b"; +} + +.cuIcon-male:before { + content: "\e71c"; +} + +.cuIcon-newfill:before { + content: "\e71d"; +} + +.cuIcon-new:before { + content: "\e71e"; +} + +.cuIcon-pullleft:before { + content: "\e71f"; +} + +.cuIcon-pullright:before { + content: "\e720"; +} + +.cuIcon-rankfill:before { + content: "\e721"; +} + +.cuIcon-rank:before { + content: "\e722"; +} + +.cuIcon-bad:before { + content: "\e723"; +} + +.cuIcon-cameraadd:before { + content: "\e724"; +} + +.cuIcon-focus:before { + content: "\e725"; +} + +.cuIcon-friendfill:before { + content: "\e726"; +} + +.cuIcon-cameraaddfill:before { + content: "\e727"; +} + +.cuIcon-apps:before { + content: "\e729"; +} + +.cuIcon-paintfill:before { + content: "\e72a"; +} + +.cuIcon-paint:before { + content: "\e72b"; +} + +.cuIcon-picfill:before { + content: "\e72c"; +} + +.cuIcon-refresharrow:before { + content: "\e72d"; +} + +.cuIcon-colorlens:before { + content: "\e6e6"; +} + +.cuIcon-markfill:before { + content: "\e730"; +} + +.cuIcon-mark:before { + content: "\e731"; +} + +.cuIcon-presentfill:before { + content: "\e732"; +} + +.cuIcon-repeal:before { + content: "\e733"; +} + +.cuIcon-album:before { + content: "\e734"; +} + +.cuIcon-peoplefill:before { + content: "\e735"; +} + +.cuIcon-people:before { + content: "\e736"; +} + +.cuIcon-servicefill:before { + content: "\e737"; +} + +.cuIcon-repair:before { + content: "\e738"; +} + +.cuIcon-file:before { + content: "\e739"; +} + +.cuIcon-repairfill:before { + content: "\e73a"; +} + +.cuIcon-taoxiaopu:before { + content: "\e73b"; +} + +.cuIcon-weixin:before { + content: "\e612"; +} + +.cuIcon-attentionfill:before { + content: "\e73c"; +} + +.cuIcon-attention:before { + content: "\e73d"; +} + +.cuIcon-commandfill:before { + content: "\e73e"; +} + +.cuIcon-command:before { + content: "\e73f"; +} + +.cuIcon-communityfill:before { + content: "\e740"; +} + +.cuIcon-community:before { + content: "\e741"; +} + +.cuIcon-read:before { + content: "\e742"; +} + +.cuIcon-calendar:before { + content: "\e74a"; +} + +.cuIcon-cut:before { + content: "\e74b"; +} + +.cuIcon-magic:before { + content: "\e74c"; +} + +.cuIcon-backwardfill:before { + content: "\e74d"; +} + +.cuIcon-playfill:before { + content: "\e74f"; +} + +.cuIcon-stop:before { + content: "\e750"; +} + +.cuIcon-tagfill:before { + content: "\e751"; +} + +.cuIcon-tag:before { + content: "\e752"; +} + +.cuIcon-group:before { + content: "\e753"; +} + +.cuIcon-all:before { + content: "\e755"; +} + +.cuIcon-backdelete:before { + content: "\e756"; +} + +.cuIcon-hotfill:before { + content: "\e757"; +} + +.cuIcon-hot:before { + content: "\e758"; +} + +.cuIcon-post:before { + content: "\e759"; +} + +.cuIcon-radiobox:before { + content: "\e75b"; +} + +.cuIcon-rounddown:before { + content: "\e75c"; +} + +.cuIcon-upload:before { + content: "\e75d"; +} + +.cuIcon-writefill:before { + content: "\e760"; +} + +.cuIcon-write:before { + content: "\e761"; +} + +.cuIcon-radioboxfill:before { + content: "\e763"; +} + +.cuIcon-punch:before { + content: "\e764"; +} + +.cuIcon-shake:before { + content: "\e765"; +} + +.cuIcon-move:before { + content: "\e768"; +} + +.cuIcon-safe:before { + content: "\e769"; +} + +.cuIcon-activityfill:before { + content: "\e775"; +} + +.cuIcon-crownfill:before { + content: "\e776"; +} + +.cuIcon-crown:before { + content: "\e777"; +} + +.cuIcon-goodsfill:before { + content: "\e778"; +} + +.cuIcon-messagefill:before { + content: "\e779"; +} + +.cuIcon-profilefill:before { + content: "\e77a"; +} + +.cuIcon-sound:before { + content: "\e77b"; +} + +.cuIcon-sponsorfill:before { + content: "\e77c"; +} + +.cuIcon-sponsor:before { + content: "\e77d"; +} + +.cuIcon-upblock:before { + content: "\e77e"; +} + +.cuIcon-weblock:before { + content: "\e77f"; +} + +.cuIcon-weunblock:before { + content: "\e780"; +} + +.cuIcon-my:before { + content: "\e78b"; +} + +.cuIcon-myfill:before { + content: "\e78c"; +} + +.cuIcon-emojifill:before { + content: "\e78d"; +} + +.cuIcon-emojiflashfill:before { + content: "\e78e"; +} + +.cuIcon-flashbuyfill:before { + content: "\e78f"; +} + +.cuIcon-text:before { + content: "\e791"; +} + +.cuIcon-goodsfavor:before { + content: "\e794"; +} + +.cuIcon-musicfill:before { + content: "\e795"; +} + +.cuIcon-musicforbidfill:before { + content: "\e796"; +} + +.cuIcon-card:before { + content: "\e624"; +} + +.cuIcon-triangledownfill:before { + content: "\e79b"; +} + +.cuIcon-triangleupfill:before { + content: "\e79c"; +} + +.cuIcon-roundleftfill-copy:before { + content: "\e79e"; +} + +.cuIcon-font:before { + content: "\e76a"; +} + +.cuIcon-title:before { + content: "\e82f"; +} + +.cuIcon-recordfill:before { + content: "\e7a4"; +} + +.cuIcon-record:before { + content: "\e7a6"; +} + +.cuIcon-cardboardfill:before { + content: "\e7a9"; +} + +.cuIcon-cardboard:before { + content: "\e7aa"; +} + +.cuIcon-formfill:before { + content: "\e7ab"; +} + +.cuIcon-coin:before { + content: "\e7ac"; +} + +.cuIcon-cardboardforbid:before { + content: "\e7af"; +} + +.cuIcon-circlefill:before { + content: "\e7b0"; +} + +.cuIcon-circle:before { + content: "\e7b1"; +} + +.cuIcon-attentionforbid:before { + content: "\e7b2"; +} + +.cuIcon-attentionforbidfill:before { + content: "\e7b3"; +} + +.cuIcon-attentionfavorfill:before { + content: "\e7b4"; +} + +.cuIcon-attentionfavor:before { + content: "\e7b5"; +} + +.cuIcon-titles:before { + content: "\e701"; +} + +.cuIcon-icloading:before { + content: "\e67a"; +} + +.cuIcon-full:before { + content: "\e7bc"; +} + +.cuIcon-mail:before { + content: "\e7bd"; +} + +.cuIcon-peoplelist:before { + content: "\e7be"; +} + +.cuIcon-goodsnewfill:before { + content: "\e7bf"; +} + +.cuIcon-goodsnew:before { + content: "\e7c0"; +} + +.cuIcon-medalfill:before { + content: "\e7c1"; +} + +.cuIcon-medal:before { + content: "\e7c2"; +} + +.cuIcon-newsfill:before { + content: "\e7c3"; +} + +.cuIcon-newshotfill:before { + content: "\e7c4"; +} + +.cuIcon-newshot:before { + content: "\e7c5"; +} + +.cuIcon-news:before { + content: "\e7c6"; +} + +.cuIcon-videofill:before { + content: "\e7c7"; +} + +.cuIcon-video:before { + content: "\e7c8"; +} + +.cuIcon-exit:before { + content: "\e7cb"; +} + +.cuIcon-skinfill:before { + content: "\e7cc"; +} + +.cuIcon-skin:before { + content: "\e7cd"; +} + +.cuIcon-moneybagfill:before { + content: "\e7ce"; +} + +.cuIcon-usefullfill:before { + content: "\e7cf"; +} + +.cuIcon-usefull:before { + content: "\e7d0"; +} + +.cuIcon-moneybag:before { + content: "\e7d1"; +} + +.cuIcon-redpacket_fill:before { + content: "\e7d3"; +} + +.cuIcon-subscription:before { + content: "\e7d4"; +} + +.cuIcon-loading1:before { + content: "\e633"; +} + +.cuIcon-github:before { + content: "\e692"; +} + +.cuIcon-global:before { + content: "\e7eb"; +} + +.cuIcon-settingsfill:before { + content: "\e6ab"; +} + +.cuIcon-back_android:before { + content: "\e7ed"; +} + +.cuIcon-expressman:before { + content: "\e7ef"; +} + +.cuIcon-evaluate_fill:before { + content: "\e7f0"; +} + +.cuIcon-group_fill:before { + content: "\e7f5"; +} + +.cuIcon-play_forward_fill:before { + content: "\e7f6"; +} + +.cuIcon-deliver_fill:before { + content: "\e7f7"; +} + +.cuIcon-notice_forbid_fill:before { + content: "\e7f8"; +} + +.cuIcon-fork:before { + content: "\e60c"; +} + +.cuIcon-pick:before { + content: "\e7fa"; +} + +.cuIcon-wenzi:before { + content: "\e6a7"; +} + +.cuIcon-ellipse:before { + content: "\e600"; +} + +.cuIcon-qr_code:before { + content: "\e61b"; +} + +.cuIcon-dianhua:before { + content: "\e64d"; +} + +.cuIcon-cuIcon:before { + content: "\e602"; +} + +.cuIcon-loading2:before { + content: "\e7f1"; +} + +.cuIcon-btn:before { + content: "\e601"; +} diff --git a/components/colorui/main.css b/components/colorui/main.css new file mode 100644 index 0000000..f14df9b --- /dev/null +++ b/components/colorui/main.css @@ -0,0 +1,4040 @@ +/* + ColorUi for uniApp v2.1.6 | by 文晓港 2019-05-31 10:44:24 + 仅供学习交流,如作它用所承受的法律责任一概与作者无关 + + *使用ColorUi开发扩展与插件时,请注明基于ColorUi开发 + +*/ + +/* ================== + 初始化 + ==================== */ +body { + background-color: #f1f1f1; + font-size: 28upx; + color: #333333; + font-family: Helvetica Neue, Helvetica, sans-serif; +} + +view, +scroll-view, +swiper, +button, +input, +textarea, +label, +navigator, +image { + box-sizing: border-box; +} + +.round { + border-radius: 5000upx; +} + +.radius { + border-radius: 6upx; +} + +/* ================== + 图片 + ==================== */ + +image { + max-width: 100%; + display: inline-block; + position: relative; + z-index: 0; +} + +image.loading::before { + content: ""; + background-color: #f5f5f5; + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: -2; +} + +image.loading::after { + content: "\e7f1"; + font-family: "cuIcon"; + position: absolute; + top: 0; + left: 0; + width: 32upx; + height: 32upx; + line-height: 32upx; + right: 0; + bottom: 0; + z-index: -1; + font-size: 32upx; + margin: auto; + color: #ccc; + -webkit-animation: cuIcon-spin 2s infinite linear; + animation: cuIcon-spin 2s infinite linear; + display: block; +} + +.response { + width: 100%; +} + +/* ================== + 开关 + ==================== */ + +switch, +checkbox, +radio { + position: relative; +} + +switch::after, +switch::before { + font-family: "cuIcon"; + content: "\e645"; + position: absolute; + color: #ffffff !important; + top: 0%; + left: 0upx; + font-size: 26upx; + line-height: 26px; + width: 50%; + text-align: center; + pointer-events: none; + transform: scale(0, 0); + transition: all 0.3s ease-in-out 0s; + z-index: 9; + bottom: 0; + height: 26px; + margin: auto; +} + +switch::before { + content: "\e646"; + right: 0; + transform: scale(1, 1); + left: auto; +} + +switch[checked]::after, +switch.checked::after { + transform: scale(1, 1); +} + +switch[checked]::before, +switch.checked::before { + transform: scale(0, 0); +} + +/* #ifndef MP-ALIPAY */ +radio::before, +checkbox::before { + font-family: "cuIcon"; + content: "\e645"; + position: absolute; + color: #ffffff !important; + top: 50%; + margin-top: -8px; + right: 5px; + font-size: 32upx; + line-height: 16px; + pointer-events: none; + transform: scale(1, 1); + transition: all 0.3s ease-in-out 0s; + z-index: 9; +} + +radio .wx-radio-input, +checkbox .wx-checkbox-input, +radio .uni-radio-input, +checkbox .uni-checkbox-input { + margin: 0; + width: 24px; + height: 24px; +} + +checkbox.round .wx-checkbox-input, +checkbox.round .uni-checkbox-input { + border-radius: 100upx; +} + +/* #endif */ + +switch[checked]::before { + transform: scale(0, 0); +} + +switch .wx-switch-input, +switch .uni-switch-input { + border: none; + padding: 0 24px; + width: 48px; + height: 26px; + margin: 0; + border-radius: 100upx; +} + +switch .wx-switch-input:not([class*="bg-"]), +switch .uni-switch-input:not([class*="bg-"]) { + background: #8799a3 !important; +} + +switch .wx-switch-input::after, +switch .uni-switch-input::after { + margin: auto; + width: 26px; + height: 26px; + border-radius: 100upx; + left: 0upx; + top: 0upx; + bottom: 0upx; + position: absolute; + transform: scale(0.9, 0.9); + transition: all 0.1s ease-in-out 0s; +} + +switch .wx-switch-input.wx-switch-input-checked::after, +switch .uni-switch-input.uni-switch-input-checked::after { + margin: auto; + left: 22px; + box-shadow: none; + transform: scale(0.9, 0.9); +} + +radio-group { + display: inline-block; +} + + + +switch.radius .wx-switch-input::after, +switch.radius .wx-switch-input, +switch.radius .wx-switch-input::before, +switch.radius .uni-switch-input::after, +switch.radius .uni-switch-input, +switch.radius .uni-switch-input::before { + border-radius: 10upx; +} + +switch .wx-switch-input::before, +radio.radio::before, +checkbox .wx-checkbox-input::before, +radio .wx-radio-input::before, +switch .uni-switch-input::before, +radio.radio::before, +checkbox .uni-checkbox-input::before, +radio .uni-radio-input::before { + display: none; +} + +radio.radio[checked]::after, +radio.radio .uni-radio-input-checked::after { + content: ""; + background-color: transparent; + display: block; + position: absolute; + width: 8px; + height: 8px; + z-index: 999; + top: 0upx; + left: 0upx; + right: 0; + bottom: 0; + margin: auto; + border-radius: 200upx; + /* #ifndef MP */ + border: 7px solid #ffffff !important; + /* #endif */ + + /* #ifdef MP */ + border: 8px solid #ffffff !important; + /* #endif */ +} + +.switch-sex::after { + content: "\e71c"; +} + +.switch-sex::before { + content: "\e71a"; +} + +.switch-sex .wx-switch-input, +.switch-sex .uni-switch-input { + background: #e54d42 !important; + border-color: #e54d42 !important; +} + +.switch-sex[checked] .wx-switch-input, +.switch-sex.checked .uni-switch-input { + background: #0081ff !important; + border-color: #0081ff !important; +} + +switch.red[checked] .wx-switch-input.wx-switch-input-checked, +checkbox.red[checked] .wx-checkbox-input, +radio.red[checked] .wx-radio-input, +switch.red.checked .uni-switch-input.uni-switch-input-checked, +checkbox.red.checked .uni-checkbox-input, +radio.red.checked .uni-radio-input { + background-color: #e54d42 !important; + border-color: #e54d42 !important; + color: #ffffff !important; +} + +switch.orange[checked] .wx-switch-input, +checkbox.orange[checked] .wx-checkbox-input, +radio.orange[checked] .wx-radio-input, +switch.orange.checked .uni-switch-input, +checkbox.orange.checked .uni-checkbox-input, +radio.orange.checked .uni-radio-input { + background-color: #f37b1d !important; + border-color: #f37b1d !important; + color: #ffffff !important; +} + +switch.yellow[checked] .wx-switch-input, +checkbox.yellow[checked] .wx-checkbox-input, +radio.yellow[checked] .wx-radio-input, +switch.yellow.checked .uni-switch-input, +checkbox.yellow.checked .uni-checkbox-input, +radio.yellow.checked .uni-radio-input { + background-color: #fbbd08 !important; + border-color: #fbbd08 !important; + color: #333333 !important; +} + +switch.olive[checked] .wx-switch-input, +checkbox.olive[checked] .wx-checkbox-input, +radio.olive[checked] .wx-radio-input, +switch.olive.checked .uni-switch-input, +checkbox.olive.checked .uni-checkbox-input, +radio.olive.checked .uni-radio-input { + background-color: #8dc63f !important; + border-color: #8dc63f !important; + color: #ffffff !important; +} + +switch.green[checked] .wx-switch-input, +switch[checked] .wx-switch-input, +checkbox.green[checked] .wx-checkbox-input, +checkbox[checked] .wx-checkbox-input, +radio.green[checked] .wx-radio-input, +radio[checked] .wx-radio-input, +switch.green.checked .uni-switch-input, +switch.checked .uni-switch-input, +checkbox.green.checked .uni-checkbox-input, +checkbox.checked .uni-checkbox-input, +radio.green.checked .uni-radio-input, +radio.checked .uni-radio-input { + background-color: #39b54a !important; + border-color: #39b54a !important; + color: #ffffff !important; + border-color: #39B54A !important; +} + +switch.cyan[checked] .wx-switch-input, +checkbox.cyan[checked] .wx-checkbox-input, +radio.cyan[checked] .wx-radio-input, +switch.cyan.checked .uni-switch-input, +checkbox.cyan.checked .uni-checkbox-input, +radio.cyan.checked .uni-radio-input { + background-color: #1cbbb4 !important; + border-color: #1cbbb4 !important; + color: #ffffff !important; +} + +switch.blue[checked] .wx-switch-input, +checkbox.blue[checked] .wx-checkbox-input, +radio.blue[checked] .wx-radio-input, +switch.blue.checked .uni-switch-input, +checkbox.blue.checked .uni-checkbox-input, +radio.blue.checked .uni-radio-input { + background-color: #0081ff !important; + border-color: #0081ff !important; + color: #ffffff !important; +} + +switch.purple[checked] .wx-switch-input, +checkbox.purple[checked] .wx-checkbox-input, +radio.purple[checked] .wx-radio-input, +switch.purple.checked .uni-switch-input, +checkbox.purple.checked .uni-checkbox-input, +radio.purple.checked .uni-radio-input { + background-color: #6739b6 !important; + border-color: #6739b6 !important; + color: #ffffff !important; +} + +switch.mauve[checked] .wx-switch-input, +checkbox.mauve[checked] .wx-checkbox-input, +radio.mauve[checked] .wx-radio-input, +switch.mauve.checked .uni-switch-input, +checkbox.mauve.checked .uni-checkbox-input, +radio.mauve.checked .uni-radio-input { + background-color: #9c26b0 !important; + border-color: #9c26b0 !important; + color: #ffffff !important; +} + +switch.pink[checked] .wx-switch-input, +checkbox.pink[checked] .wx-checkbox-input, +radio.pink[checked] .wx-radio-input, +switch.pink.checked .uni-switch-input, +checkbox.pink.checked .uni-checkbox-input, +radio.pink.checked .uni-radio-input { + background-color: #e03997 !important; + border-color: #e03997 !important; + color: #ffffff !important; +} + +switch.brown[checked] .wx-switch-input, +checkbox.brown[checked] .wx-checkbox-input, +radio.brown[checked] .wx-radio-input, +switch.brown.checked .uni-switch-input, +checkbox.brown.checked .uni-checkbox-input, +radio.brown.checked .uni-radio-input { + background-color: #a5673f !important; + border-color: #a5673f !important; + color: #ffffff !important; +} + +switch.grey[checked] .wx-switch-input, +checkbox.grey[checked] .wx-checkbox-input, +radio.grey[checked] .wx-radio-input, +switch.grey.checked .uni-switch-input, +checkbox.grey.checked .uni-checkbox-input, +radio.grey.checked .uni-radio-input { + background-color: #8799a3 !important; + border-color: #8799a3 !important; + color: #ffffff !important; +} + +switch.gray[checked] .wx-switch-input, +checkbox.gray[checked] .wx-checkbox-input, +radio.gray[checked] .wx-radio-input, +switch.gray.checked .uni-switch-input, +checkbox.gray.checked .uni-checkbox-input, +radio.gray.checked .uni-radio-input { + background-color: #f0f0f0 !important; + border-color: #f0f0f0 !important; + color: #333333 !important; +} + +switch.black[checked] .wx-switch-input, +checkbox.black[checked] .wx-checkbox-input, +radio.black[checked] .wx-radio-input, +switch.black.checked .uni-switch-input, +checkbox.black.checked .uni-checkbox-input, +radio.black.checked .uni-radio-input { + background-color: #333333 !important; + border-color: #333333 !important; + color: #ffffff !important; +} + +switch.white[checked] .wx-switch-input, +checkbox.white[checked] .wx-checkbox-input, +radio.white[checked] .wx-radio-input, +switch.white.checked .uni-switch-input, +checkbox.white.checked .uni-checkbox-input, +radio.white.checked .uni-radio-input { + background-color: #ffffff !important; + border-color: #ffffff !important; + color: #333333 !important; +} + +/* ================== + 边框 + ==================== */ + +/* -- 实线 -- */ + +.solid, +.solid-top, +.solid-right, +.solid-bottom, +.solid-left, +.solids, +.solids-top, +.solids-right, +.solids-bottom, +.solids-left, +.dashed, +.dashed-top, +.dashed-right, +.dashed-bottom, +.dashed-left { + position: relative; +} + +.solid::after, +.solid-top::after, +.solid-right::after, +.solid-bottom::after, +.solid-left::after, +.solids::after, +.solids-top::after, +.solids-right::after, +.solids-bottom::after, +.solids-left::after, +.dashed::after, +.dashed-top::after, +.dashed-right::after, +.dashed-bottom::after, +.dashed-left::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; +} + +.solid::after { + border: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-top::after { + border-top: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-right::after { + border-right: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-bottom::after { + border-bottom: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solid-left::after { + border-left: 1upx solid rgba(0, 0, 0, 0.1); +} + +.solids::after { + border: 8upx solid #eee; +} + +.solids-top::after { + border-top: 8upx solid #eee; +} + +.solids-right::after { + border-right: 8upx solid #eee; +} + +.solids-bottom::after { + border-bottom: 8upx solid #eee; +} + +.solids-left::after { + border-left: 8upx solid #eee; +} + +/* -- 虚线 -- */ + +.dashed::after { + border: 1upx dashed #ddd; +} + +.dashed-top::after { + border-top: 1upx dashed #ddd; +} + +.dashed-right::after { + border-right: 1upx dashed #ddd; +} + +.dashed-bottom::after { + border-bottom: 1upx dashed #ddd; +} + +.dashed-left::after { + border-left: 1upx dashed #ddd; +} + +/* -- 阴影 -- */ + +.shadow[class*='white'] { + --ShadowSize: 0 1upx 6upx; +} + +.shadow-lg { + --ShadowSize: 0upx 40upx 100upx 0upx; +} + +.shadow-warp { + position: relative; + box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1); +} + +.shadow-warp:before, +.shadow-warp:after { + position: absolute; + content: ""; + top: 20upx; + bottom: 30upx; + left: 20upx; + width: 50%; + box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2); + transform: rotate(-3deg); + z-index: -1; +} + +.shadow-warp:after { + right: 20upx; + left: auto; + transform: rotate(3deg); +} + +.shadow-blur { + position: relative; +} + +.shadow-blur::before { + content: ""; + display: block; + background: inherit; + filter: blur(10upx); + position: absolute; + width: 100%; + height: 100%; + top: 10upx; + left: 10upx; + z-index: -1; + opacity: 0.4; + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); +} + +/* ================== + 按钮 + ==================== */ + +.cu-btn { + position: relative; + border: 0upx; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0 30upx; + font-size: 28upx; + height: 64upx; + line-height: 1; + text-align: center; + text-decoration: none; + overflow: visible; + margin-left: initial; + transform: translate(0upx, 0upx); + margin-right: initial; +} + +.cu-btn::after { + display: none; +} + +.cu-btn:not([class*="bg-"]) { + background-color: #f0f0f0; +} + +.cu-btn[class*="line"] { + background-color: transparent; +} + +.cu-btn[class*="line"]::after { + content: " "; + display: block; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1upx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: 12upx; + z-index: 1; + pointer-events: none; +} + +.cu-btn.round[class*="line"]::after { + border-radius: 1000upx; +} + +.cu-btn[class*="lines"]::after { + border: 6upx solid currentColor; +} + +.cu-btn[class*="bg-"]::after { + display: none; +} + +.cu-btn.sm { + padding: 0 20upx; + font-size: 20upx; + height: 48upx; +} + +.cu-btn.lg { + padding: 0 40upx; + font-size: 32upx; + height: 80upx; +} + +.cu-btn.cuIcon.sm { + width: 48upx; + height: 48upx; +} + +.cu-btn.cuIcon { + width: 64upx; + height: 64upx; + border-radius: 500upx; + padding: 0; +} + +button.cuIcon.lg { + width: 80upx; + height: 80upx; +} + +.cu-btn.shadow-blur::before { + top: 4upx; + left: 4upx; + filter: blur(6upx); + opacity: 0.6; +} + +.cu-btn.button-hover { + transform: translate(1upx, 1upx); +} + +.block { + display: block; +} + +.cu-btn.block { + display: flex; +} + +.cu-btn[disabled] { + opacity: 0.6; + color: #ffffff; +} + +/* ================== + 徽章 + ==================== */ + +.cu-tag { + font-size: 24upx; + vertical-align: middle; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: 0upx 16upx; + height: 48upx; + font-family: Helvetica Neue, Helvetica, sans-serif; + white-space: nowrap; +} + +.cu-tag:not([class*="bg"]):not([class*="line"]) { + background-color: #f1f1f1; +} + +.cu-tag[class*="line-"]::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border: 1upx solid currentColor; + transform: scale(0.5); + transform-origin: 0 0; + box-sizing: border-box; + border-radius: inherit; + z-index: 1; + pointer-events: none; +} + +.cu-tag.radius[class*="line"]::after { + border-radius: 12upx; +} + +.cu-tag.round[class*="line"]::after { + border-radius: 1000upx; +} + +.cu-tag[class*="line-"]::after { + border-radius: 0; +} + +.cu-tag+.cu-tag { + margin-left: 10upx; +} + +.cu-tag.sm { + font-size: 20upx; + padding: 0upx 12upx; + height: 32upx; +} + +.cu-capsule { + display: inline-flex; + vertical-align: middle; +} + +.cu-capsule+.cu-capsule { + margin-left: 10upx; +} + +.cu-capsule .cu-tag { + margin: 0; +} + +.cu-capsule .cu-tag[class*="line-"]:last-child::after { + border-left: 0upx solid transparent; +} + +.cu-capsule .cu-tag[class*="line-"]:first-child::after { + border-right: 0upx solid transparent; +} + +.cu-capsule.radius .cu-tag:first-child { + border-top-left-radius: 6upx; + border-bottom-left-radius: 6upx; +} + +.cu-capsule.radius .cu-tag:last-child::after, +.cu-capsule.radius .cu-tag[class*="line-"] { + border-top-right-radius: 12upx; + border-bottom-right-radius: 12upx; +} + +.cu-capsule.round .cu-tag:first-child { + border-top-left-radius: 200upx; + border-bottom-left-radius: 200upx; + text-indent: 4upx; +} + +.cu-capsule.round .cu-tag:last-child::after, +.cu-capsule.round .cu-tag:last-child { + border-top-right-radius: 200upx; + border-bottom-right-radius: 200upx; + text-indent: -4upx; +} + +.cu-tag.badge { + border-radius: 200upx; + position: absolute; + top: -10upx; + right: -10upx; + font-size: 20upx; + padding: 0upx 10upx; + height: 28upx; + color: #ffffff; +} + +.cu-tag.badge:not([class*="bg-"]) { + background-color: #dd514c; +} + +.cu-tag:empty:not([class*="cuIcon-"]) { + padding: 0upx; + width: 16upx; + height: 16upx; + top: -4upx; + right: -4upx; +} + +.cu-tag[class*="cuIcon-"] { + width: 32upx; + height: 32upx; + top: -4upx; + right: -4upx; +} + +/* ================== + 头像 + ==================== */ + +.cu-avatar { + font-variant: small-caps; + margin: 0; + padding: 0; + display: inline-flex; + text-align: center; + justify-content: center; + align-items: center; + background-color: #ccc; + color: #ffffff; + white-space: nowrap; + position: relative; + width: 64upx; + height: 64upx; + background-size: cover; + background-position: center; + vertical-align: middle; + font-size: 1.5em; +} + +.cu-avatar.sm { + width: 48upx; + height: 48upx; + font-size: 1em; +} + +.cu-avatar.lg { + width: 96upx; + height: 96upx; + font-size: 2em; +} + +.cu-avatar.xl { + width: 128upx; + height: 128upx; + font-size: 2.5em; +} + +.cu-avatar .avatar-text { + font-size: 0.4em; +} + +.cu-avatar-group { + direction: rtl; + unicode-bidi: bidi-override; + padding: 0 10upx 0 40upx; + display: inline-block; +} + +.cu-avatar-group .cu-avatar { + margin-left: -30upx; + border: 4upx solid #f1f1f1; + vertical-align: middle; +} + +.cu-avatar-group .cu-avatar.sm { + margin-left: -20upx; + border: 1upx solid #f1f1f1; +} + +/* ================== + 进度条 + ==================== */ + +.cu-progress { + overflow: hidden; + height: 28upx; + background-color: #ebeef5; + display: inline-flex; + align-items: center; + width: 100%; +} + +.cu-progress+view, +.cu-progress+text { + line-height: 1; +} + +.cu-progress.xs { + height: 10upx; +} + +.cu-progress.sm { + height: 20upx; +} + +.cu-progress view { + width: 0; + height: 100%; + align-items: center; + display: flex; + justify-items: flex-end; + justify-content: space-around; + font-size: 20upx; + color: #ffffff; + transition: width 0.6s ease; +} + +.cu-progress text { + align-items: center; + display: flex; + font-size: 20upx; + color: #333333; + text-indent: 10upx; +} + +.cu-progress.text-progress { + padding-right: 60upx; +} + +.cu-progress.striped view { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 72upx 72upx; +} + +.cu-progress.active view { + animation: progress-stripes 2s linear infinite; +} + +@keyframes progress-stripes { + from { + background-position: 72upx 0; + } + + to { + background-position: 0 0; + } +} + +/* ================== + 加载 + ==================== */ + +.cu-load { + display: block; + line-height: 3em; + text-align: center; +} + +.cu-load::before { + font-family: "cuIcon"; + display: inline-block; + margin-right: 6upx; +} + +.cu-load.loading::before { + content: "\e67a"; + animation: cuIcon-spin 2s infinite linear; +} + +.cu-load.loading::after { + content: "加载中..."; +} + +.cu-load.over::before { + content: "\e64a"; +} + +.cu-load.over::after { + content: "没有更多了"; +} + +.cu-load.erro::before { + content: "\e658"; +} + +.cu-load.erro::after { + content: "加载失败"; +} + +.cu-load.load-cuIcon::before { + font-size: 32upx; +} + +.cu-load.load-cuIcon::after { + display: none; +} + +.cu-load.load-cuIcon.over { + display: none; +} + +.cu-load.load-modal { + position: fixed; + top: 0; + right: 0; + bottom: 140upx; + left: 0; + margin: auto; + width: 260upx; + height: 260upx; + background-color: #ffffff; + border-radius: 10upx; + box-shadow: 0 0 0upx 2000upx rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + font-size: 28upx; + z-index: 9999; + line-height: 2.4em; +} + +.cu-load.load-modal [class*="cuIcon-"] { + font-size: 60upx; +} + +.cu-load.load-modal image { + width: 70upx; + height: 70upx; +} + +.cu-load.load-modal::after { + content: ""; + position: absolute; + background-color: #ffffff; + border-radius: 50%; + width: 200upx; + height: 200upx; + font-size: 10px; + border-top: 6upx solid rgba(0, 0, 0, 0.05); + border-right: 6upx solid rgba(0, 0, 0, 0.05); + border-bottom: 6upx solid rgba(0, 0, 0, 0.05); + border-left: 6upx solid #f37b1d; + animation: cuIcon-spin 1s infinite linear; + z-index: -1; +} + +.load-progress { + pointer-events: none; + top: 0; + position: fixed; + width: 100%; + left: 0; + z-index: 2000; +} + +.load-progress.hide { + display: none; +} + +.load-progress .load-progress-bar { + position: relative; + width: 100%; + height: 4upx; + overflow: hidden; + transition: all 200ms ease 0s; +} + +.load-progress .load-progress-spinner { + position: absolute; + top: 10upx; + right: 10upx; + z-index: 2000; + display: block; +} + +.load-progress .load-progress-spinner::after { + content: ""; + display: block; + width: 24upx; + height: 24upx; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: solid 4upx transparent; + border-top-color: inherit; + border-left-color: inherit; + border-radius: 50%; + -webkit-animation: load-progress-spinner 0.4s linear infinite; + animation: load-progress-spinner 0.4s linear infinite; +} + +@-webkit-keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load-progress-spinner { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/* ================== + 列表 + ==================== */ +.grayscale { + filter: grayscale(1); +} + +.cu-list+.cu-list { + margin-top: 30upx +} + +.cu-list>.cu-item { + transition: all .6s ease-in-out 0s; + transform: translateX(0upx) +} + +.cu-list>.cu-item.move-cur { + transform: translateX(-260upx) +} + +.cu-list>.cu-item .move { + position: absolute; + right: 0; + display: flex; + width: 260upx; + height: 100%; + transform: translateX(100%) +} + +.cu-list>.cu-item .move view { + display: flex; + flex: 1; + justify-content: center; + align-items: center +} + +.cu-list.menu-avatar { + overflow: hidden; +} + +.cu-list.menu-avatar>.cu-item { + position: relative; + display: flex; + padding-right: 10upx; + height: 140upx; + background-color: #ffffff; + justify-content: flex-end; + align-items: center +} + +.cu-list.menu-avatar>.cu-item>.cu-avatar { + position: absolute; + left: 30upx +} + +.cu-list.menu-avatar>.cu-item .flex .text-cut { + max-width: 510upx +} + +.cu-list.menu-avatar>.cu-item .content { + position: absolute; + left: 146upx; + width: calc(100% - 96upx - 60upx - 120upx - 20upx); + line-height: 1.6em; +} + +.cu-list.menu-avatar>.cu-item .content.flex-sub { + width: calc(100% - 96upx - 60upx - 20upx); +} + +.cu-list.menu-avatar>.cu-item .content>view:first-child { + font-size: 30upx; + display: flex; + align-items: center +} + +.cu-list.menu-avatar>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu-avatar>.cu-item .action { + width: 100upx; + text-align: center +} + +.cu-list.menu-avatar>.cu-item .action view+view { + margin-top: 10upx +} + +.cu-list.menu-avatar.comment>.cu-item .content { + position: relative; + left: 0; + width: auto; + flex: 1; +} + +.cu-list.menu-avatar.comment>.cu-item { + padding: 30upx 30upx 30upx 120upx; + height: auto +} + +.cu-list.menu-avatar.comment .cu-avatar { + align-self: flex-start +} + +.cu-list.menu>.cu-item { + position: relative; + display: flex; + padding: 0 30upx; + min-height: 100upx; + background-color: #ffffff; + justify-content: space-between; + align-items: center +} + +.cu-list.menu>.cu-item:last-child:after { + border: none +} + +.cu-list.menu-avatar>.cu-item:after, +.cu-list.menu>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-bottom: 1upx solid #ddd; + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.menu>.cu-item.grayscale { + background-color: #f5f5f5 +} + +.cu-list.menu>.cu-item.cur { + background-color: #fcf7e9 +} + +.cu-list.menu>.cu-item.arrow { + padding-right: 90upx +} + +.cu-list.menu>.cu-item.arrow:before { + position: absolute; + top: 0; + right: 30upx; + bottom: 0; + display: block; + margin: auto; + width: 30upx; + height: 30upx; + color: #8799a3; + content: "\e6a3"; + text-align: center; + font-size: 34upx; + font-family: cuIcon; + line-height: 30upx +} + +.cu-list.menu>.cu-item button.content { + padding: 0; + background-color: transparent; + justify-content: flex-start +} + +.cu-list.menu>.cu-item button.content:after { + display: none +} + +.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { + border-color: #ffffff +} + +.cu-list.menu>.cu-item .content>view:first-child { + display: flex; + align-items: center +} + +.cu-list.menu>.cu-item .content>text[class*=cuIcon] { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + text-align: center +} + +.cu-list.menu>.cu-item .content>image { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + height: 1.6em; + vertical-align: middle +} + +.cu-list.menu>.cu-item .content { + font-size: 30upx; + line-height: 1.6em; + flex: 1 +} + +.cu-list.menu>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu>.cu-item .action .cu-tag:empty { + right: 10upx +} + +.cu-list.menu { + display: block; + overflow: hidden +} + +.cu-list.menu.sm-border>.cu-item:after { + left: 30upx; + width: calc(200% - 120upx) +} + +.cu-list.grid>.cu-item { + position: relative; + display: flex; + padding: 20upx 0 30upx; + transition-duration: 0s; + flex-direction: column +} + +.cu-list.grid>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-right: 1px solid rgba(0, 0, 0, .1); + border-bottom: 1px solid rgba(0, 0, 0, .1); + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.grid>.cu-item text { + display: block; + margin-top: 10upx; + color: #888; + font-size: 26upx; + line-height: 40upx +} + +.cu-list.grid>.cu-item [class*=cuIcon] { + position: relative; + display: block; + margin-top: 20upx; + width: 100%; + font-size: 48upx +} + +.cu-list.grid>.cu-item .cu-tag { + right: auto; + left: 50%; + margin-left: 20upx +} + +.cu-list.grid { + background-color: #ffffff; + text-align: center +} + +.cu-list.grid.no-border>.cu-item { + padding-top: 10upx; + padding-bottom: 20upx +} + +.cu-list.grid.no-border>.cu-item:after { + border: none +} + +.cu-list.grid.no-border { + padding: 20upx 10upx +} + +.cu-list.grid.col-3>.cu-item:nth-child(3n):after, +.cu-list.grid.col-4>.cu-item:nth-child(4n):after, +.cu-list.grid.col-5>.cu-item:nth-child(5n):after { + border-right-width: 0 +} + +.cu-list.card-menu { + overflow: hidden; + margin-right: 30upx; + margin-left: 30upx; + border-radius: 20upx +} + + +/* ================== + 操作条 + ==================== */ + +.cu-bar { + display: flex; + position: relative; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-bar .action { + display: flex; + align-items: center; + height: 100%; + justify-content: center; + max-width: 100%; +} + +.cu-bar .action.border-title { + position: relative; + top: -10upx; +} + +.cu-bar .action.border-title text[class*="bg-"]:last-child { + position: absolute; + bottom: -0.5rem; + min-width: 2rem; + height: 6upx; + left: 0; +} + +.cu-bar .action.sub-title { + position: relative; + top: -0.2rem; +} + +.cu-bar .action.sub-title text { + position: relative; + z-index: 1; +} + +.cu-bar .action.sub-title text[class*="bg-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.2rem; + border-radius: 6upx; + width: 100%; + height: 0.6rem; + left: 0.6rem; + opacity: 0.3; + z-index: 0; +} + +.cu-bar .action.sub-title text[class*="text-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.7rem; + left: 0.5rem; + opacity: 0.2; + z-index: 0; + text-align: right; + font-weight: 900; + font-size: 36upx; +} + +.cu-bar.justify-center .action.border-title text:last-child, +.cu-bar.justify-center .action.sub-title text:last-child { + left: 0; + right: 0; + margin: auto; + text-align: center; +} + +.cu-bar .action:first-child { + margin-left: 30upx; + font-size: 30upx; +} + +.cu-bar .action text.text-cut { + text-align: left; + width: 100%; +} + +.cu-bar .cu-avatar:first-child { + margin-left: 20upx; +} + +.cu-bar .action:first-child>text[class*="cuIcon-"] { + margin-left: -0.3em; + margin-right: 0.3em; +} + +.cu-bar .action:last-child { + margin-right: 30upx; +} + +.cu-bar .action>text[class*="cuIcon-"], +.cu-bar .action>view[class*="cuIcon-"] { + font-size: 36upx; +} + +.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] { + margin-left: 0.5em; +} + +.cu-bar .content { + position: absolute; + text-align: center; + width: calc(100% - 340upx); + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; + height: 60upx; + font-size: 32upx; + line-height: 60upx; + cursor: none; + pointer-events: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.cu-bar.ios .content { + bottom: 7px; + height: 30px; + font-size: 32upx; + line-height: 30px; +} + +.cu-bar.btn-group { + justify-content: space-around; +} + +.cu-bar.btn-group button { + padding: 20upx 32upx; +} + +.cu-bar.btn-group button { + flex: 1; + margin: 0 20upx; + max-width: 50%; +} + +.cu-bar .search-form { + background-color: #f5f5f5; + line-height: 64upx; + height: 64upx; + font-size: 24upx; + color: #333333; + flex: 1; + display: flex; + align-items: center; + margin: 0 30upx; +} + +.cu-bar .search-form+.action { + margin-right: 30upx; +} + +.cu-bar .search-form input { + flex: 1; + padding-right: 30upx; + height: 64upx; + line-height: 64upx; + font-size: 26upx; + background-color: transparent; +} + +.cu-bar .search-form [class*="cuIcon-"] { + margin: 0 0.5em 0 0.8em; +} + +.cu-bar .search-form [class*="cuIcon-"]::before { + top: 0upx; +} + +.cu-bar.fixed, +.nav.fixed { + position: fixed; + width: 100%; + top: 0; + z-index: 1024; + box-shadow: 0 1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.foot { + position: fixed; + width: 100%; + bottom: 0; + z-index: 1024; + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar { + padding: 0; + height: calc(100upx + env(safe-area-inset-bottom) / 2); + padding-bottom: calc(env(safe-area-inset-bottom) / 2); +} + +.cu-tabbar-height { + min-height: 100upx; + height: calc(100upx + env(safe-area-inset-bottom) / 2); +} + +.cu-bar.tabbar.shadow { + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar .action { + font-size: 22upx; + position: relative; + flex: 1; + text-align: center; + padding: 0; + display: block; + height: auto; + line-height: 1; + margin: 0; + background-color: inherit; + overflow: initial; +} + +.cu-bar.tabbar.shop .action { + width: 140upx; + flex: initial; +} + +.cu-bar.tabbar .action.add-action { + position: relative; + z-index: 2; + padding-top: 50upx; +} + +.cu-bar.tabbar .action.add-action [class*="cuIcon-"] { + position: absolute; + width: 70upx; + z-index: 2; + height: 70upx; + border-radius: 50%; + line-height: 70upx; + font-size: 50upx; + top: -35upx; + left: 0; + right: 0; + margin: auto; + padding: 0; +} + +.cu-bar.tabbar .action.add-action::after { + content: ""; + position: absolute; + width: 100upx; + height: 100upx; + top: -50upx; + left: 0; + right: 0; + margin: auto; + box-shadow: 0 -3upx 8upx rgba(0, 0, 0, 0.08); + border-radius: 50upx; + background-color: inherit; + z-index: 0; +} + +.cu-bar.tabbar .action.add-action::before { + content: ""; + position: absolute; + width: 100upx; + height: 30upx; + bottom: 30upx; + left: 0; + right: 0; + margin: auto; + background-color: inherit; + z-index: 1; +} + +.cu-bar.tabbar .btn-group { + flex: 1; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0 10upx; +} + +.cu-bar.tabbar button.action::after { + border: 0; +} + +.cu-bar.tabbar .action [class*="cuIcon-"] { + width: 100upx; + position: relative; + display: block; + height: auto; + margin: 0 auto 10upx; + text-align: center; + font-size: 40upx; +} + +.cu-bar.tabbar .action .cuIcon-cu-image { + margin: 0 auto; +} + +.cu-bar.tabbar .action .cuIcon-cu-image image { + width: 50upx; + height: 50upx; + display: inline-block; +} + +.cu-bar.tabbar .submit { + align-items: center; + display: flex; + justify-content: center; + text-align: center; + position: relative; + flex: 2; + align-self: stretch; +} + +.cu-bar.tabbar .submit:last-child { + flex: 2.6; +} + +.cu-bar.tabbar .submit+.submit { + flex: 2; +} + +.cu-bar.tabbar.border .action::before { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + transform: scale(0.5); + transform-origin: 0 0; + border-right: 1upx solid rgba(0, 0, 0, 0.1); + z-index: 3; +} + +.cu-bar.tabbar.border .action:last-child:before { + display: none; +} + +.cu-bar.input { + padding-right: 20upx; + background-color: #ffffff; +} + +.cu-bar.input input { + overflow: initial; + line-height: 64upx; + height: 64upx; + min-height: 64upx; + flex: 1; + font-size: 30upx; + margin: 0 20upx; +} + +.cu-bar.input .action { + margin-left: 20upx; +} + +.cu-bar.input .action [class*="cuIcon-"] { + font-size: 48upx; +} + +.cu-bar.input input+.action { + margin-right: 20upx; + margin-left: 0upx; +} + +.cu-bar.input .action:first-child [class*="cuIcon-"] { + margin-left: 0upx; +} + +.cu-custom { + display: block; + position: relative; +} + +.cu-custom .cu-bar .content { + width: calc(100% - 440upx); +} + +/* #ifdef MP-ALIPAY */ +.cu-custom .cu-bar .action .cuIcon-back { + opacity: 0; +} + +/* #endif */ + +.cu-custom .cu-bar .content image { + height: 60upx; + width: 240upx; +} + +.cu-custom .cu-bar { + min-height: 0px; + /* #ifdef MP-WEIXIN */ + padding-right: 220upx; + /* #endif */ + /* #ifdef MP-ALIPAY */ + padding-right: 150upx; + /* #endif */ + box-shadow: 0upx 0upx 0upx; + z-index: 9999; +} + +.cu-custom .cu-bar .border-custom { + position: relative; + background: rgba(0, 0, 0, 0.15); + border-radius: 1000upx; + height: 30px; +} + +.cu-custom .cu-bar .border-custom::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border: 1upx solid #ffffff; + opacity: 0.5; +} + +.cu-custom .cu-bar .border-custom::before { + content: " "; + width: 1upx; + height: 110%; + position: absolute; + top: 22.5%; + left: 0; + right: 0; + margin: auto; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + opacity: 0.6; + background-color: #ffffff; +} + +.cu-custom .cu-bar .border-custom text { + display: block; + flex: 1; + margin: auto !important; + text-align: center; + font-size: 34upx; +} + +/* ================== + 导航栏 + ==================== */ + .nav-list { + display: flex; + flex-wrap: wrap; + padding: 0px 40upx 0px; + justify-content: space-between; + + } + + .nav-li { + padding: 30upx; + border-radius: 12upx; + width: 45%; + margin: 0 2.5% 40upx; + background-image: url(https://cdn.nlark.com/yuque/0/2019/png/280374/1552996358352-assets/web-upload/cc3b1807-c684-4b83-8f80-80e5b8a6b975.png); + background-size: cover; + background-position: center; + position: relative; + z-index: 1; + } + + .nav-li::after { + content: ""; + position: absolute; + z-index: -1; + background-color: inherit; + width: 100%; + height: 100%; + left: 0; + bottom: -10%; + border-radius: 10upx; + opacity: 0.2; + transform: scale(0.9, 0.9); + } + + .nav-li.cur { + color: #fff; + background: rgb(94, 185, 94); + box-shadow: 4upx 4upx 6upx rgba(94, 185, 94, 0.4); + } + + .nav-title { + font-size: 32upx; + font-weight: 300; + } + + .nav-title::first-letter { + font-size: 40upx; + margin-right: 4upx; + } + + .nav-name { + font-size: 28upx; + text-transform: Capitalize; + margin-top: 20upx; + position: relative; + } + + .nav-name::before { + content: ""; + position: absolute; + display: block; + width: 40upx; + height: 6upx; + background: #fff; + bottom: 0; + right: 0; + opacity: 0.5; + } + + .nav-name::after { + content: ""; + position: absolute; + display: block; + width: 100upx; + height: 1px; + background: #fff; + bottom: 0; + right: 40upx; + opacity: 0.3; + } + + .nav-name::first-letter { + font-weight: bold; + font-size: 36upx; + margin-right: 1px; + } + + .nav-li text { + position: absolute; + right: 30upx; + top: 30upx; + font-size: 52upx; + width: 60upx; + height: 60upx; + text-align: center; + line-height: 60upx; + } + + .text-light { + font-weight: 300; + } + + @keyframes show { + 0% { + transform: translateY(-50px); + } + + 60% { + transform: translateY(40upx); + } + + 100% { + transform: translateY(0px); + } + } + + @-webkit-keyframes show { + 0% { + transform: translateY(-50px); + } + + 60% { + transform: translateY(40upx); + } + + 100% { + transform: translateY(0px); + } + } + +.nav { + white-space: nowrap; +} + +::-webkit-scrollbar { + display: none; +} + +.nav .cu-item { + height: 90upx; + display: inline-block; + line-height: 90upx; + margin: 0 10upx; + padding: 0 20upx; +} + +.nav .cu-item.cur { + border-bottom: 4upx solid; +} + +/* ================== + 时间轴 + ==================== */ + +.cu-timeline { + display: block; + background-color: #ffffff; +} + +.cu-timeline .cu-time { + width: 120upx; + text-align: center; + padding: 20upx 0; + font-size: 26upx; + color: #888; + display: block; +} + +.cu-timeline>.cu-item { + padding: 30upx 30upx 30upx 120upx; + position: relative; + display: block; + z-index: 0; +} + +.cu-timeline>.cu-item:not([class*="text-"]) { + color: #ccc; +} + +.cu-timeline>.cu-item::after { + content: ""; + display: block; + position: absolute; + width: 1upx; + background-color: #ddd; + left: 60upx; + height: 100%; + top: 0; + z-index: 8; +} + +.cu-timeline>.cu-item::before { + font-family: "cuIcon"; + display: block; + position: absolute; + top: 36upx; + z-index: 9; + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item:not([class*="cuIcon-"])::before { + content: "\e763"; +} + +.cu-timeline>.cu-item[class*="cuIcon-"]::before { + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item>.content { + padding: 30upx; + border-radius: 6upx; + display: block; + line-height: 1.6; +} + +.cu-timeline>.cu-item>.content:not([class*="bg-"]) { + background-color: #f1f1f1; + color: #333333; +} + +.cu-timeline>.cu-item>.content+.content { + margin-top: 20upx; +} + +/* ================== + 聊天 + ==================== */ + +.cu-chat { + display: flex; + flex-direction: column; +} + +.cu-chat .cu-item { + display: flex; + padding: 30upx 30upx 70upx; + position: relative; +} + +.cu-chat .cu-item>.cu-avatar { + width: 80upx; + height: 80upx; +} + +.cu-chat .cu-item>.main { + max-width: calc(100% - 260upx); + margin: 0 40upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>image { + height: 320upx; +} + +.cu-chat .cu-item>.main .content { + padding: 20upx; + border-radius: 6upx; + display: inline-flex; + max-width: 100%; + align-items: center; + font-size: 30upx; + position: relative; + min-height: 80upx; + line-height: 40upx; + text-align: left; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"]) { + background-color: #ffffff; + color: #333333; +} + +.cu-chat .cu-item .date { + position: absolute; + font-size: 24upx; + color: #8799a3; + width: calc(100% - 320upx); + bottom: 20upx; + left: 160upx; +} + +.cu-chat .cu-item .action { + padding: 0 30upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>.main .content::after { + content: ""; + top: 27upx; + transform: rotate(45deg); + position: absolute; + z-index: 100; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; +} + +.cu-chat .cu-item.self>.main .content::after { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item>.main .content::before { + content: ""; + top: 30upx; + transform: rotate(45deg); + position: absolute; + z-index: -1; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; + filter: blur(5upx); + opacity: 0.3; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"])::before { + background-color: #333333; + opacity: 0.1; +} + +.cu-chat .cu-item.self>.main .content::before { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item.self { + justify-content: flex-end; + text-align: right; +} + +.cu-chat .cu-info { + display: inline-block; + margin: 20upx auto; + font-size: 24upx; + padding: 8upx 12upx; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 6upx; + color: #ffffff; + max-width: 400upx; + line-height: 1.4; +} + +/* ================== + 卡片 + ==================== */ + +.cu-card { + display: block; + overflow: hidden; +} + +.cu-card>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; + border-radius: 10upx; + margin: 30upx; +} + +.cu-card>.cu-item.shadow-blur { + overflow: initial; +} + +.cu-card.no-card>.cu-item { + margin: 0upx; + border-radius: 0upx; +} + +.cu-card .grid.grid-square { + margin-bottom: -20upx; +} + +.cu-card.case .image { + position: relative; +} + +.cu-card.case .image image { + width: 100%; +} + +.cu-card.case .image .cu-tag { + position: absolute; + right: 0; + top: 0; +} + +.cu-card.case .image .cu-bar { + position: absolute; + bottom: 0; + width: 100%; + background-color: transparent; + padding: 0upx 30upx; +} + +.cu-card.case.no-card .image { + margin: 30upx 30upx 0; + overflow: hidden; + border-radius: 10upx; +} + +.cu-card.dynamic { + display: block; +} + +.cu-card.dynamic>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; +} + +.cu-card.dynamic>.cu-item>.text-content { + padding: 0 30upx 0; + max-height: 6.4em; + overflow: hidden; + font-size: 30upx; + margin-bottom: 20upx; +} + +.cu-card.dynamic>.cu-item .square-img { + width: 100%; + height: 200upx; + border-radius: 6upx; +} + +.cu-card.dynamic>.cu-item .only-img { + width: 100%; + height: 320upx; + border-radius: 6upx; +} + +/* card.dynamic>.cu-item .comment { + padding: 20upx; + background-color: #f1f1f1; + margin: 0 30upx 30upx; + border-radius: 6upx; +} */ + +.cu-card.article { + display: block; +} + +.cu-card.article>.cu-item { + padding-bottom: 30upx; +} + +.cu-card.article>.cu-item .title { + font-size: 30upx; + font-weight: 900; + color: #333333; + line-height: 100upx; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content { + display: flex; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content>image { + width: 240upx; + height: 6.4em; + margin-right: 20upx; + border-radius: 6upx; +} + +.cu-card.article>.cu-item .content .desc { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.cu-card.article>.cu-item .content .text-content { + font-size: 28upx; + color: #888; + height: 4.8em; + overflow: hidden; +} + +/* ================== + 表单 + ==================== */ + +.cu-form-group { + background-color: #ffffff; + padding: 1upx 30upx; + display: flex; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-form-group+.cu-form-group { + border-top: 1upx solid #eee; +} + +.cu-form-group .title { + text-align: justify; + padding-right: 30upx; + font-size: 30upx; + position: relative; + height: 60upx; + line-height: 60upx; +} + +.cu-form-group input { + flex: 1; + font-size: 30upx; + color: #555; + padding-right: 20upx; +} + +.cu-form-group>text[class*="cuIcon-"] { + font-size: 36upx; + padding: 0; + box-sizing: border-box; +} + +.cu-form-group textarea { + margin: 32upx 0 30upx; + height: 4.6em; + width: 100%; + line-height: 1.2em; + flex: 1; + font-size: 28upx; + padding: 0; +} + +.cu-form-group.align-start .title { + height: 1em; + margin-top: 32upx; + line-height: 1em; +} + +.cu-form-group picker { + flex: 1; + padding-right: 40upx; + overflow: hidden; + position: relative; +} + +.cu-form-group picker .picker { + line-height: 100upx; + font-size: 28upx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; +} + +.cu-form-group picker::after { + font-family: cuIcon; + display: block; + content: "\e6a3"; + position: absolute; + font-size: 34upx; + color: #8799a3; + line-height: 100upx; + width: 60upx; + text-align: center; + top: 0; + bottom: 0; + right: -20upx; + margin: auto; +} + +.cu-form-group textarea[disabled], +.cu-form-group textarea[disabled] .placeholder { + color: transparent; +} + +/* ================== + 模态窗口 + ==================== */ + +.cu-modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1110; + opacity: 0; + outline: 0; + text-align: center; + -ms-transform: scale(1.185); + transform: scale(1.185); + backface-visibility: hidden; + perspective: 2000upx; + background: rgba(0, 0, 0, 0.6); + transition: all 0.3s ease-in-out 0s; + pointer-events: none; +} + +.cu-modal::before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.cu-modal.show { + opacity: 1; + transition-duration: 0.3s; + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; + pointer-events: auto; +} + +.cu-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 680upx; + max-width: 100%; + background-color: #f8f8f8; + border-radius: 10upx; + overflow: hidden; +} + +.cu-modal.bottom-modal::before { + vertical-align: bottom; +} + +.cu-modal.bottom-modal .cu-dialog { + width: 100%; + border-radius: 0; +} + +.cu-modal.bottom-modal { + margin-bottom: -1000upx; +} + +.cu-modal.bottom-modal.show { + margin-bottom: 0; +} + +.cu-modal.drawer-modal { + transform: scale(1); + display: flex; +} + +.cu-modal.drawer-modal .cu-dialog { + height: 100%; + min-width: 200upx; + border-radius: 0; + margin: initial; + transition-duration: 0.3s; +} + +.cu-modal.drawer-modal.justify-start .cu-dialog { + transform: translateX(-100%); +} + +.cu-modal.drawer-modal.justify-end .cu-dialog { + transform: translateX(100%); +} + +.cu-modal.drawer-modal.show .cu-dialog { + transform: translateX(0%); +} +.cu-modal .cu-dialog>.cu-bar:first-child .action{ + min-width: 100rpx; + margin-right: 0; + min-height: 100rpx; +} +/* ================== + 轮播 + ==================== */ +swiper .a-swiper-dot { + display: inline-block; + width: 16upx; + height: 16upx; + background: rgba(0, 0, 0, .3); + border-radius: 50%; + vertical-align: middle; +} + +swiper[class*="-dot"] .wx-swiper-dots, +swiper[class*="-dot"] .a-swiper-dots, +swiper[class*="-dot"] .uni-swiper-dots { + display: flex; + align-items: center; + width: 100%; + justify-content: center; +} + +swiper.square-dot .wx-swiper-dot, +swiper.square-dot .a-swiper-dot, +swiper.square-dot .uni-swiper-dot { + background-color: #ffffff; + opacity: 0.4; + width: 10upx; + height: 10upx; + border-radius: 20upx; + margin: 0 8upx !important; +} + +swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.square-dot .a-swiper-dot.a-swiper-dot-active, +swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active { + opacity: 1; + width: 30upx; +} + +swiper.round-dot .wx-swiper-dot, +swiper.round-dot .a-swiper-dot, +swiper.round-dot .uni-swiper-dot { + width: 10upx; + height: 10upx; + position: relative; + margin: 4upx 8upx !important; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after { + content: ""; + position: absolute; + width: 10upx; + height: 10upx; + top: 0upx; + left: 0upx; + right: 0; + bottom: 0; + margin: auto; + background-color: #ffffff; + border-radius: 20upx; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active { + width: 18upx; + height: 18upx; +} + +.screen-swiper { + min-height: 375upx; +} + +.screen-swiper image, +.screen-swiper video, +.swiper-item image, +.swiper-item video { + width: 100%; + display: block; + height: 100%; + margin: 0; + pointer-events: none; +} + +.card-swiper { + height: 420upx !important; +} + +.card-swiper swiper-item { + width: 610upx !important; + left: 70upx; + box-sizing: border-box; + padding: 40upx 0upx 70upx; + overflow: initial; +} + +.card-swiper swiper-item .swiper-item { + width: 100%; + display: block; + height: 100%; + border-radius: 10upx; + transform: scale(0.9); + transition: all 0.2s ease-in 0s; + overflow: hidden; +} + +.card-swiper swiper-item.cur .swiper-item { + transform: none; + transition: all 0.2s ease-in 0s; +} + + +.tower-swiper { + height: 420upx; + position: relative; + max-width: 750upx; + overflow: hidden; +} + +.tower-swiper .tower-item { + position: absolute; + width: 300upx; + height: 380upx; + top: 0; + bottom: 0; + left: 50%; + margin: auto; + transition: all 0.2s ease-in 0s; + opacity: 1; +} + +.tower-swiper .tower-item.none { + opacity: 0; +} + +.tower-swiper .tower-item .swiper-item { + width: 100%; + height: 100%; + border-radius: 6upx; + overflow: hidden; +} + +/* ================== + 步骤条 + ==================== */ + +.cu-steps { + display: flex; +} + +scroll-view.cu-steps { + display: block; + white-space: nowrap; +} + +scroll-view.cu-steps .cu-item { + display: inline-block; +} + +.cu-steps .cu-item { + flex: 1; + text-align: center; + position: relative; + min-width: 100upx; +} + +.cu-steps .cu-item:not([class*="text-"]) { + color: #8799a3; +} + +.cu-steps .cu-item [class*="cuIcon-"], +.cu-steps .cu-item .num { + display: block; + font-size: 40upx; + line-height: 80upx; +} + +.cu-steps .cu-item::before, +.cu-steps .cu-item::after, +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: ""; + display: block; + position: absolute; + height: 0px; + width: calc(100% - 80upx); + border-bottom: 1px solid #ccc; + left: calc(0px - (100% - 80upx) / 2); + top: 40upx; + z-index: 0; +} + +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: "\e6a3"; + font-family: 'cuIcon'; + height: 30upx; + border-bottom-width: 0px; + line-height: 30upx; + top: 0; + bottom: 0; + margin: auto; + color: #ccc; +} + +.cu-steps.steps-bottom .cu-item::before, +.cu-steps.steps-bottom .cu-item::after { + bottom: 40upx; + top: initial; +} + +.cu-steps .cu-item::after { + border-bottom: 1px solid currentColor; + width: 0px; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"]::after { + width: calc(100% - 80upx); + color: currentColor; +} + +.cu-steps .cu-item:first-child::before, +.cu-steps .cu-item:first-child::after { + display: none; +} + +.cu-steps .cu-item .num { + width: 40upx; + height: 40upx; + border-radius: 50%; + line-height: 40upx; + margin: 20upx auto; + font-size: 24upx; + border: 1px solid currentColor; + position: relative; + overflow: hidden; +} + +.cu-steps .cu-item[class*="text-"] .num { + background-color: currentColor; +} + +.cu-steps .cu-item .num::before, +.cu-steps .cu-item .num::after { + content: attr(data-index); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + transition: all 0.3s ease-in-out 0s; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num::before { + transform: translateY(-40upx); + color: #ffffff; +} + +.cu-steps .cu-item .num::after { + transform: translateY(40upx); + color: #ffffff; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"] .num::after { + content: "\e645"; + font-family: 'cuIcon'; + color: #ffffff; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num.err::after { + content: "\e646"; +} + +/* ================== + 布局 + ==================== */ + +/* -- flex弹性布局 -- */ + +.flex { + display: flex; +} + +.basis-xs { + flex-basis: 20%; +} + +.basis-sm { + flex-basis: 40%; +} + +.basis-df { + flex-basis: 50%; +} + +.basis-lg { + flex-basis: 60%; +} + +.basis-xl { + flex-basis: 80%; +} + +.flex-sub { + flex: 1; +} + +.flex-twice { + flex: 2; +} + +.flex-treble { + flex: 3; +} + +.flex-direction { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +.align-stretch { + align-items: stretch; +} + +.self-start { + align-self: flex-start; +} + +.self-center { + align-self: flex-center; +} + +.self-end { + align-self: flex-end; +} + +.self-stretch { + align-self: stretch; +} + +.align-stretch { + align-items: stretch; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +/* grid布局 */ + +.grid { + display: flex; + flex-wrap: wrap; +} + +.grid.grid-square { + overflow: hidden; +} + +.grid.grid-square .cu-tag { + position: absolute; + right: 0; + top: 0; + border-bottom-left-radius: 6upx; + padding: 6upx 12upx; + height: auto; + background-color: rgba(0, 0, 0, 0.5); +} + +.grid.grid-square>view>text[class*="cuIcon-"] { + font-size: 52upx; + position: absolute; + color: #8799a3; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +.grid.grid-square>view { + margin-right: 20upx; + margin-bottom: 20upx; + border-radius: 6upx; + position: relative; + overflow: hidden; +} +.grid.grid-square>view.bg-img image { + width: 100%; + height: 100%; + position: absolute; +} +.grid.col-1.grid-square>view { + padding-bottom: 100%; + height: 0; + margin-right: 0; +} + +.grid.col-2.grid-square>view { + padding-bottom: calc((100% - 20upx)/2); + height: 0; + width: calc((100% - 20upx)/2); +} + +.grid.col-3.grid-square>view { + padding-bottom: calc((100% - 40upx)/3); + height: 0; + width: calc((100% - 40upx)/3); +} + +.grid.col-4.grid-square>view { + padding-bottom: calc((100% - 60upx)/4); + height: 0; + width: calc((100% - 60upx)/4); +} + +.grid.col-5.grid-square>view { + padding-bottom: calc((100% - 80upx)/5); + height: 0; + width: calc((100% - 80upx)/5); +} + +.grid.col-2.grid-square>view:nth-child(2n), +.grid.col-3.grid-square>view:nth-child(3n), +.grid.col-4.grid-square>view:nth-child(4n), +.grid.col-5.grid-square>view:nth-child(5n) { + margin-right: 0; +} + +.grid.col-1>view { + width: 100%; +} + +.grid.col-2>view { + width: 50%; +} + +.grid.col-3>view { + width: 33.33%; +} + +.grid.col-4>view { + width: 25%; +} + +.grid.col-5>view { + width: 20%; +} + +/* -- 内外边距 -- */ + +.margin-0 { + margin: 0; +} + +.margin-xs { + margin: 10upx; +} + +.margin-sm { + margin: 20upx; +} + +.margin { + margin: 30upx; +} + +.margin-lg { + margin: 40upx; +} + +.margin-xl { + margin: 50upx; +} + +.margin-top-xs { + margin-top: 10upx; +} + +.margin-top-sm { + margin-top: 20upx; +} + +.margin-top { + margin-top: 30upx; +} + +.margin-top-lg { + margin-top: 40upx; +} + +.margin-top-xl { + margin-top: 50upx; +} + +.margin-right-xs { + margin-right: 10upx; +} + +.margin-right-sm { + margin-right: 20upx; +} + +.margin-right { + margin-right: 30upx; +} + +.margin-right-lg { + margin-right: 40upx; +} + +.margin-right-xl { + margin-right: 50upx; +} + +.margin-bottom-xs { + margin-bottom: 10upx; +} + +.margin-bottom-sm { + margin-bottom: 20upx; +} + +.margin-bottom { + margin-bottom: 30upx; +} + +.margin-bottom-lg { + margin-bottom: 40upx; +} + +.margin-bottom-xl { + margin-bottom: 50upx; +} + +.margin-left-xs { + margin-left: 10upx; +} + +.margin-left-sm { + margin-left: 20upx; +} + +.margin-left { + margin-left: 30upx; +} + +.margin-left-lg { + margin-left: 40upx; +} + +.margin-left-xl { + margin-left: 50upx; +} + +.margin-lr-xs { + margin-left: 10upx; + margin-right: 10upx; +} + +.margin-lr-sm { + margin-left: 20upx; + margin-right: 20upx; +} + +.margin-lr { + margin-left: 30upx; + margin-right: 30upx; +} + +.margin-lr-lg { + margin-left: 40upx; + margin-right: 40upx; +} + +.margin-lr-xl { + margin-left: 50upx; + margin-right: 50upx; +} + +.margin-tb-xs { + margin-top: 10upx; + margin-bottom: 10upx; +} + +.margin-tb-sm { + margin-top: 20upx; + margin-bottom: 20upx; +} + +.margin-tb { + margin-top: 30upx; + margin-bottom: 30upx; +} + +.margin-tb-lg { + margin-top: 40upx; + margin-bottom: 40upx; +} + +.margin-tb-xl { + margin-top: 50upx; + margin-bottom: 50upx; +} + +.padding-0 { + padding: 0; +} + +.padding-xs { + padding: 10upx; +} + +.padding-sm { + padding: 20upx; +} + +.padding { + padding: 30upx; +} + +.padding-lg { + padding: 40upx; +} + +.padding-xl { + padding: 50upx; +} + +.padding-top-xs { + padding-top: 10upx; +} + +.padding-top-sm { + padding-top: 20upx; +} + +.padding-top { + padding-top: 30upx; +} + +.padding-top-lg { + padding-top: 40upx; +} + +.padding-top-xl { + padding-top: 50upx; +} + +.padding-right-xs { + padding-right: 10upx; +} + +.padding-right-sm { + padding-right: 20upx; +} + +.padding-right { + padding-right: 30upx; +} + +.padding-right-lg { + padding-right: 40upx; +} + +.padding-right-xl { + padding-right: 50upx; +} + +.padding-bottom-xs { + padding-bottom: 10upx; +} + +.padding-bottom-sm { + padding-bottom: 20upx; +} + +.padding-bottom { + padding-bottom: 30upx; +} + +.padding-bottom-lg { + padding-bottom: 40upx; +} + +.padding-bottom-xl { + padding-bottom: 50upx; +} + +.padding-left-xs { + padding-left: 10upx; +} + +.padding-left-sm { + padding-left: 20upx; +} + +.padding-left { + padding-left: 30upx; +} + +.padding-left-lg { + padding-left: 40upx; +} + +.padding-left-xl { + padding-left: 50upx; +} + +.padding-lr-xs { + padding-left: 10upx; + padding-right: 10upx; +} + +.padding-lr-sm { + padding-left: 20upx; + padding-right: 20upx; +} + +.padding-lr { + padding-left: 30upx; + padding-right: 30upx; +} + +.padding-lr-lg { + padding-left: 40upx; + padding-right: 40upx; +} + +.padding-lr-xl { + padding-left: 50upx; + padding-right: 50upx; +} + +.padding-tb-xs { + padding-top: 10upx; + padding-bottom: 10upx; +} + +.padding-tb-sm { + padding-top: 20upx; + padding-bottom: 20upx; +} + +.padding-tb { + padding-top: 30upx; + padding-bottom: 30upx; +} + +.padding-tb-lg { + padding-top: 40upx; + padding-bottom: 40upx; +} + +.padding-tb-xl { + padding-top: 50upx; + padding-bottom: 50upx; +} + +/* -- 浮动 -- */ + +.cf::after, +.cf::before { + content: " "; + display: table; +} + +.cf::after { + clear: both; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +/* ================== + 背景 + ==================== */ + +.line-red::after, +.lines-red::after { + border-color: #e54d42; +} + +.line-orange::after, +.lines-orange::after { + border-color: #f37b1d; +} + +.line-yellow::after, +.lines-yellow::after { + border-color: #fbbd08; +} + +.line-olive::after, +.lines-olive::after { + border-color: #8dc63f; +} + +.line-green::after, +.lines-green::after { + border-color: #39b54a; +} + +.line-cyan::after, +.lines-cyan::after { + border-color: #1cbbb4; +} + +.line-blue::after, +.lines-blue::after { + border-color: #0081ff; +} + +.line-purple::after, +.lines-purple::after { + border-color: #6739b6; +} + +.line-mauve::after, +.lines-mauve::after { + border-color: #9c26b0; +} + +.line-pink::after, +.lines-pink::after { + border-color: #e03997; +} + +.line-brown::after, +.lines-brown::after { + border-color: #a5673f; +} + +.line-grey::after, +.lines-grey::after { + border-color: #8799a3; +} + +.line-gray::after, +.lines-gray::after { + border-color: #aaaaaa; +} + +.line-black::after, +.lines-black::after { + border-color: #333333; +} + +.line-white::after, +.lines-white::after { + border-color: #ffffff; +} + +.bg-red { + background-color: #e54d42; + color: #ffffff; +} + +.bg-orange { + background-color: #f37b1d; + color: #ffffff; +} + +.bg-yellow { + background-color: #fbbd08; + color: #333333; +} + +.bg-olive { + background-color: #8dc63f; + color: #ffffff; +} + +.bg-green { + background-color: #39b54a; + color: #ffffff; +} + +.bg-cyan { + background-color: #1cbbb4; + color: #ffffff; +} + +.bg-blue { + background-color: #0081ff; + color: #ffffff; +} + +.bg-purple { + background-color: #6739b6; + color: #ffffff; +} + +.bg-mauve { + background-color: #9c26b0; + color: #ffffff; +} + +.bg-pink { + background-color: #e03997; + color: #ffffff; +} + +.bg-brown { + background-color: #a5673f; + color: #ffffff; +} + +.bg-grey { + background-color: #8799a3; + color: #ffffff; +} + +.bg-gray { + background-color: #f0f0f0; + color: #333333; +} + +.bg-black { + background-color: #333333; + color: #ffffff; +} + +.bg-white { + background-color: #ffffff; + color: #666666; +} + +.bg-shadeTop { + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); + color: #ffffff; +} + +.bg-shadeBottom { + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); + color: #ffffff; +} + +.bg-red.light { + color: #e54d42; + background-color: #fadbd9; +} + +.bg-orange.light { + color: #f37b1d; + background-color: #fde6d2; +} + +.bg-yellow.light { + color: #fbbd08; + background-color: #fef2ced2; +} + +.bg-olive.light { + color: #8dc63f; + background-color: #e8f4d9; +} + +.bg-green.light { + color: #39b54a; + background-color: #d7f0dbff; +} + +.bg-cyan.light { + color: #1cbbb4; + background-color: #d2f1f0; +} + +.bg-blue.light { + color: #0081ff; + background-color: #cce6ff; +} + +.bg-purple.light { + color: #6739b6; + background-color: #e1d7f0; +} + +.bg-mauve.light { + color: #9c26b0; + background-color: #ebd4ef; +} + +.bg-pink.light { + color: #e03997; + background-color: #f9d7ea; +} + +.bg-brown.light { + color: #a5673f; + background-color: #ede1d9; +} + +.bg-grey.light { + color: #8799a3; + background-color: #e7ebed; +} + +.bg-gradual-red { + background-image: linear-gradient(45deg, #f43f3b, #ec008c); + color: #ffffff; +} + +.bg-gradual-orange { + background-image: linear-gradient(45deg, #ff9700, #ed1c24); + color: #ffffff; +} + +.bg-gradual-green { + background-image: linear-gradient(45deg, #39b54a, #8dc63f); + color: #ffffff; +} + +.bg-gradual-purple { + background-image: linear-gradient(45deg, #9000ff, #5e00ff); + color: #ffffff; +} + +.bg-gradual-pink { + background-image: linear-gradient(45deg, #ec008c, #6739b6); + color: #ffffff; +} + +.bg-gradual-blue { + background-image: linear-gradient(45deg, #0081ff, #1cbbb4); + color: #ffffff; +} + +.shadow[class*="-red"] { + box-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.shadow[class*="-orange"] { + box-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.shadow[class*="-yellow"] { + box-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.shadow[class*="-olive"] { + box-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.shadow[class*="-green"] { + box-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.shadow[class*="-cyan"] { + box-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.shadow[class*="-blue"] { + box-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.shadow[class*="-purple"] { + box-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.shadow[class*="-mauve"] { + box-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.shadow[class*="-pink"] { + box-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.shadow[class*="-brown"] { + box-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.shadow[class*="-grey"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-gray"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-black"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.shadow[class*="-white"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.text-shadow[class*="-red"] { + text-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.text-shadow[class*="-orange"] { + text-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.text-shadow[class*="-yellow"] { + text-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.text-shadow[class*="-olive"] { + text-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.text-shadow[class*="-green"] { + text-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.text-shadow[class*="-cyan"] { + text-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.text-shadow[class*="-blue"] { + text-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.text-shadow[class*="-purple"] { + text-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.text-shadow[class*="-mauve"] { + text-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.text-shadow[class*="-pink"] { + text-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.text-shadow[class*="-brown"] { + text-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.text-shadow[class*="-grey"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-gray"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-black"] { + text-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.bg-img { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.bg-mask { + background-color: #333333; + position: relative; +} + +.bg-mask::after { + content: ""; + border-radius: inherit; + width: 100%; + height: 100%; + display: block; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; +} + +.bg-mask view, +.bg-mask cover-view { + z-index: 5; + position: relative; +} + +.bg-video { + position: relative; +} + +.bg-video video { + display: block; + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + position: absolute; + top: 0; + z-index: 0; + pointer-events: none; +} + +/* ================== + 文本 + ==================== */ + +.text-xs { + font-size: 20upx; +} + +.text-sm { + font-size: 24upx; +} + +.text-df { + font-size: 28upx; +} + +.text-lg { + font-size: 32upx; +} + +.text-xl { + font-size: 36upx; +} + +.text-xxl { + font-size: 44upx; +} + +.text-sl { + font-size: 80upx; +} + +.text-xsl { + font-size: 120upx; +} + +.text-Abc { + text-transform: Capitalize; +} + +.text-ABC { + text-transform: Uppercase; +} + +.text-abc { + text-transform: Lowercase; +} + +.text-price::before { + content: "¥"; + font-size: 80%; + margin-right: 4upx; +} + +.text-cut { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.text-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} + +.text-content { + line-height: 1.6; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-red, +.line-red, +.lines-red { + color: #e54d42; +} + +.text-orange, +.line-orange, +.lines-orange { + color: #f37b1d; +} + +.text-yellow, +.line-yellow, +.lines-yellow { + color: #fbbd08; +} + +.text-olive, +.line-olive, +.lines-olive { + color: #8dc63f; +} + +.text-green, +.line-green, +.lines-green { + color: #39b54a; +} + +.text-cyan, +.line-cyan, +.lines-cyan { + color: #1cbbb4; +} + +.text-blue, +.line-blue, +.lines-blue { + color: #0081ff; +} + +.text-purple, +.line-purple, +.lines-purple { + color: #6739b6; +} + +.text-mauve, +.line-mauve, +.lines-mauve { + color: #9c26b0; +} + +.text-pink, +.line-pink, +.lines-pink { + color: #e03997; +} + +.text-brown, +.line-brown, +.lines-brown { + color: #a5673f; +} + +.text-grey, +.line-grey, +.lines-grey { + color: #8799a3; +} + +.text-gray, +.line-gray, +.lines-gray { + color: #aaaaaa; +} + +.text-black, +.line-black, +.lines-black { + color: #333333; +} + +.text-white, +.line-white, +.lines-white { + color: #ffffff; +} diff --git a/components/sh-activity-goods.vue b/components/sh-activity-goods.vue new file mode 100644 index 0000000..c596810 --- /dev/null +++ b/components/sh-activity-goods.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/components/sh-adv.vue b/components/sh-adv.vue new file mode 100644 index 0000000..6c04cde --- /dev/null +++ b/components/sh-adv.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/components/sh-groupon.vue b/components/sh-groupon.vue new file mode 100644 index 0000000..59ae764 --- /dev/null +++ b/components/sh-groupon.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/components/t-goods-item/t-goods-item.vue b/components/t-goods-item/t-goods-item.vue new file mode 100644 index 0000000..c07baf7 --- /dev/null +++ b/components/t-goods-item/t-goods-item.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/components/tui-button/tui-button.vue b/components/tui-button/tui-button.vue new file mode 100644 index 0000000..1293aa5 --- /dev/null +++ b/components/tui-button/tui-button.vue @@ -0,0 +1,495 @@ + + + + + diff --git a/components/tui-divider/tui-divider.vue b/components/tui-divider/tui-divider.vue new file mode 100644 index 0000000..ec96112 --- /dev/null +++ b/components/tui-divider/tui-divider.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/components/tui-tag/tui-tag.vue b/components/tui-tag/tui-tag.vue new file mode 100644 index 0000000..82b9d08 --- /dev/null +++ b/components/tui-tag/tui-tag.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js new file mode 100644 index 0000000..60b7332 --- /dev/null +++ b/components/uni-icons/icons.js @@ -0,0 +1,132 @@ +export default { + "pulldown": "\ue588", + "refreshempty": "\ue461", + "back": "\ue471", + "forward": "\ue470", + "more": "\ue507", + "more-filled": "\ue537", + "scan": "\ue612", + "qq": "\ue264", + "weibo": "\ue260", + "weixin": "\ue261", + "pengyouquan": "\ue262", + "loop": "\ue565", + "refresh": "\ue407", + "refresh-filled": "\ue437", + "arrowthindown": "\ue585", + "arrowthinleft": "\ue586", + "arrowthinright": "\ue587", + "arrowthinup": "\ue584", + "undo-filled": "\ue7d6", + "undo": "\ue406", + "redo": "\ue405", + "redo-filled": "\ue7d9", + "bars": "\ue563", + "chatboxes": "\ue203", + "camera": "\ue301", + "chatboxes-filled": "\ue233", + "camera-filled": "\ue7ef", + "cart-filled": "\ue7f4", + "cart": "\ue7f5", + "checkbox-filled": "\ue442", + "checkbox": "\ue7fa", + "arrowleft": "\ue582", + "arrowdown": "\ue581", + "arrowright": "\ue583", + "smallcircle-filled": "\ue801", + "arrowup": "\ue580", + "circle": "\ue411", + "eye-filled": "\ue568", + "eye-slash-filled": "\ue822", + "eye-slash": "\ue823", + "eye": "\ue824", + "flag-filled": "\ue825", + "flag": "\ue508", + "gear-filled": "\ue532", + "reload": "\ue462", + "gear": "\ue502", + "hand-thumbsdown-filled": "\ue83b", + "hand-thumbsdown": "\ue83c", + "hand-thumbsup-filled": "\ue83d", + "heart-filled": "\ue83e", + "hand-thumbsup": "\ue83f", + "heart": "\ue840", + "home": "\ue500", + "info": "\ue504", + "home-filled": "\ue530", + "info-filled": "\ue534", + "circle-filled": "\ue441", + "chat-filled": "\ue847", + "chat": "\ue263", + "mail-open-filled": "\ue84d", + "email-filled": "\ue231", + "mail-open": "\ue84e", + "email": "\ue201", + "checkmarkempty": "\ue472", + "list": "\ue562", + "locked-filled": "\ue856", + "locked": "\ue506", + "map-filled": "\ue85c", + "map-pin": "\ue85e", + "map-pin-ellipse": "\ue864", + "map": "\ue364", + "minus-filled": "\ue440", + "mic-filled": "\ue332", + "minus": "\ue410", + "micoff": "\ue360", + "mic": "\ue302", + "clear": "\ue434", + "smallcircle": "\ue868", + "close": "\ue404", + "closeempty": "\ue460", + "paperclip": "\ue567", + "paperplane": "\ue503", + "paperplane-filled": "\ue86e", + "person-filled": "\ue131", + "contact-filled": "\ue130", + "person": "\ue101", + "contact": "\ue100", + "images-filled": "\ue87a", + "phone": "\ue200", + "images": "\ue87b", + "image": "\ue363", + "image-filled": "\ue877", + "location-filled": "\ue333", + "location": "\ue303", + "plus-filled": "\ue439", + "plus": "\ue409", + "plusempty": "\ue468", + "help-filled": "\ue535", + "help": "\ue505", + "navigate-filled": "\ue884", + "navigate": "\ue501", + "mic-slash-filled": "\ue892", + "search": "\ue466", + "settings": "\ue560", + "sound": "\ue590", + "sound-filled": "\ue8a1", + "spinner-cycle": "\ue465", + "download-filled": "\ue8a4", + "personadd-filled": "\ue132", + "videocam-filled": "\ue8af", + "personadd": "\ue102", + "upload": "\ue402", + "upload-filled": "\ue8b1", + "starhalf": "\ue463", + "star-filled": "\ue438", + "star": "\ue408", + "trash": "\ue401", + "phone-filled": "\ue230", + "compose": "\ue400", + "videocam": "\ue300", + "trash-filled": "\ue8dc", + "download": "\ue403", + "chatbubble-filled": "\ue232", + "chatbubble": "\ue202", + "cloud-download": "\ue8e4", + "cloud-upload-filled": "\ue8e5", + "cloud-upload": "\ue8e6", + "cloud-download-filled": "\ue8e9", + "headphones":"\ue8bf", + "shop":"\ue609" +} diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..5f303e4 --- /dev/null +++ b/components/uni-icons/uni-icons.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/components/uni-notice-bar/uni-notice-bar.vue b/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 0000000..8399eca --- /dev/null +++ b/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/components/uni-popup/message.js b/components/uni-popup/message.js new file mode 100644 index 0000000..0ff9a02 --- /dev/null +++ b/components/uni-popup/message.js @@ -0,0 +1,22 @@ +export default { + created() { + if (this.type === 'message') { + // 不显示遮罩 + this.maskShow = false + // 获取子组件对象 + this.childrenMsg = null + } + }, + methods: { + customOpen() { + if (this.childrenMsg) { + this.childrenMsg.open() + } + }, + customClose() { + if (this.childrenMsg) { + this.childrenMsg.close() + } + } + } +} diff --git a/components/uni-popup/popup.js b/components/uni-popup/popup.js new file mode 100644 index 0000000..2a7f22f --- /dev/null +++ b/components/uni-popup/popup.js @@ -0,0 +1,25 @@ +import message from './message.js'; +// 定义 type 类型:弹出类型:top/bottom/center +const config = { + // 顶部弹出 + top:'top', + // 底部弹出 + bottom:'bottom', + // 居中弹出 + center:'center', + // 消息提示 + message:'top', + // 对话框 + dialog:'center', + // 分享 + share:'bottom', +} + +export default { + data(){ + return { + config:config + } + }, + mixins: [message], +} diff --git a/components/uni-popup/uni-popup-dialog.vue b/components/uni-popup/uni-popup-dialog.vue new file mode 100644 index 0000000..c91123c --- /dev/null +++ b/components/uni-popup/uni-popup-dialog.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/components/uni-popup/uni-popup-message.vue b/components/uni-popup/uni-popup-message.vue new file mode 100644 index 0000000..a32bd00 --- /dev/null +++ b/components/uni-popup/uni-popup-message.vue @@ -0,0 +1,116 @@ + + + + diff --git a/components/uni-popup/uni-popup-share.vue b/components/uni-popup/uni-popup-share.vue new file mode 100644 index 0000000..4c11a13 --- /dev/null +++ b/components/uni-popup/uni-popup-share.vue @@ -0,0 +1,165 @@ + + + + diff --git a/components/uni-popup/uni-popup.vue b/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..2d15d5f --- /dev/null +++ b/components/uni-popup/uni-popup.vue @@ -0,0 +1,294 @@ + + + + diff --git a/components/uni-transition/uni-transition.vue b/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..908a939 --- /dev/null +++ b/components/uni-transition/uni-transition.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..efe7fa5 --- /dev/null +++ b/config/index.js @@ -0,0 +1,10 @@ +// export const VUE_APP_API_URL = 'http://natapp.xinxintuan.co/api'; +// export const VUE_APP_API_URL = 'https://wxapi.yixiang.co/api' +export const VUE_APP_API_URL = '/h5api' +// export const VUE_APP_API_URL = 'http://139.186.134.205:9006/api' +// export const VUE_APP_API_URL = 'http://192.168.31.223:8008/api' +// export const VUE_APP_API_URL = 'http://natapp.xinxintuan.co/api'; +// export const VUE_APP_API_URL = 'https://thapi.xinxintuan.co/api' +// export const VUE_APP_API_URL = 'https://h5api.xinxintuan.co/api'; +// export const VUE_APP_API_URL = 'https://h5api.xinxintuan.co/api'; +export const VUE_APP_RESOURCES_URL = 'https://h5.yixiang.co/static' diff --git a/icons/1024x1024.png b/icons/1024x1024.png new file mode 100644 index 0000000..50cba04 Binary files /dev/null and b/icons/1024x1024.png differ diff --git a/icons/120x120.png b/icons/120x120.png new file mode 100644 index 0000000..66fe74f Binary files /dev/null and b/icons/120x120.png differ diff --git a/icons/144x144.png b/icons/144x144.png new file mode 100644 index 0000000..c383132 Binary files /dev/null and b/icons/144x144.png differ diff --git a/icons/152x152.png b/icons/152x152.png new file mode 100644 index 0000000..0633695 Binary files /dev/null and b/icons/152x152.png differ diff --git a/icons/167x167.png b/icons/167x167.png new file mode 100644 index 0000000..d13eeea Binary files /dev/null and b/icons/167x167.png differ diff --git a/icons/180x180.png b/icons/180x180.png new file mode 100644 index 0000000..2358d06 Binary files /dev/null and b/icons/180x180.png differ diff --git a/icons/192x192.png b/icons/192x192.png new file mode 100644 index 0000000..2cf1f69 Binary files /dev/null and b/icons/192x192.png differ diff --git a/icons/20x20.png b/icons/20x20.png new file mode 100644 index 0000000..e6dcc1a Binary files /dev/null and b/icons/20x20.png differ diff --git a/icons/29x29.png b/icons/29x29.png new file mode 100644 index 0000000..4419819 Binary files /dev/null and b/icons/29x29.png differ diff --git a/icons/40x40.png b/icons/40x40.png new file mode 100644 index 0000000..8050722 Binary files /dev/null and b/icons/40x40.png differ diff --git a/icons/58x58.png b/icons/58x58.png new file mode 100644 index 0000000..a76c2ed Binary files /dev/null and b/icons/58x58.png differ diff --git a/icons/60x60.png b/icons/60x60.png new file mode 100644 index 0000000..7f661ba Binary files /dev/null and b/icons/60x60.png differ diff --git a/icons/72x72.png b/icons/72x72.png new file mode 100644 index 0000000..b49ef92 Binary files /dev/null and b/icons/72x72.png differ diff --git a/icons/76x76.png b/icons/76x76.png new file mode 100644 index 0000000..05b477f Binary files /dev/null and b/icons/76x76.png differ diff --git a/icons/80x80.png b/icons/80x80.png new file mode 100644 index 0000000..f575089 Binary files /dev/null and b/icons/80x80.png differ diff --git a/icons/87x87.png b/icons/87x87.png new file mode 100644 index 0000000..17e99e5 Binary files /dev/null and b/icons/87x87.png differ diff --git a/icons/96x96.png b/icons/96x96.png new file mode 100644 index 0000000..2361079 Binary files /dev/null and b/icons/96x96.png differ diff --git a/libs/chat.js b/libs/chat.js new file mode 100644 index 0000000..b48e5d1 --- /dev/null +++ b/libs/chat.js @@ -0,0 +1,51 @@ +import $store from "@//store"; +import { VUE_APP_WS_URL } from "@/utils"; + +const Socket = function() { + this.ws = new WebSocket(VUE_APP_WS_URL); + this.ws.onopen = this.onOpen.bind(this); + this.ws.onerror = this.onError.bind(this); + this.ws.onmessage = this.onMessage.bind(this); + this.ws.onclose = this.onClose.bind(this); +}; + +Socket.prototype = { + vm(vm) { + this.vm = vm; + }, + close() { + clearInterval(this.timer); + this.ws.close(); + }, + onOpen: function() { + this.init(); + this.send({ + type: "login", + data: $store.state.token + }); + this.vm.$emit("socket_open"); + }, + init: function() { + var that = this; + this.timer = setInterval(function() { + that.send({ type: "ping" }); + }, 10000); + }, + send: function(data) { + return this.ws.send(JSON.stringify(data)); + }, + onMessage: function(res) { + const { type, data = {} } = JSON.parse(res.data); + this.vm.$emit(type, data); + }, + onClose: function() { + clearInterval(this.timer); + }, + onError: function(e) { + this.vm.$emit("socket_error", e); + } +}; + +Socket.prototype.constructor = Socket; + +export default Socket; diff --git a/libs/order.js b/libs/order.js new file mode 100644 index 0000000..8683691 --- /dev/null +++ b/libs/order.js @@ -0,0 +1,227 @@ +import { + cancelOrder, + takeOrder, + delOrder, + payOrder, + getSubscribeTemplate +} from "@/api/order"; +import dialog from "@/utils/dialog"; +import { + weappPay +} from "@/libs/wechat"; + +import { + _router +} from '@/utils' + +export function cancelOrderHandle(orderId) { + return new Promise((resolve, reject) => { + uni.showModal({ + title: '提示', + content: '确认取消该订单?', + success(res) { + if (res.confirm) { + cancelOrder(orderId) + .then(res => { + uni.showToast({ + title: '取消成功', + icon: 'success', + duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '取消失败', + icon: 'none', + duration: 2000 + }); + reject(err); + }); + } else if (res.cancel) {} + } + }) + }); +} + +export function takeOrderHandle(orderId) { + return new Promise((resolve, reject) => { + takeOrder(orderId) + .then(res => { + uni.showToast({ + title: '收货成功', + icon: 'success', + duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '收货失败', + icon: 'none', + duration: 2000 + }); + reject(err); + }); + }); +} + +export function delOrderHandle(orderId) { + return new Promise((resolve, reject) => { + dialog.confirm({ + mes: "确认删除该订单?", + opts() { + delOrder(orderId) + .then(res => { + uni.showToast({ + title: '删除成功', + icon: 'success', + duration: 2000 + }); + resolve(res); + }) + .catch(err => { + uni.showToast({ + title: '删除失败', + icon: 'none', + duration: 2000 + }); + reject(err); + }); + } + }); + }); +} + +// 使用订单号进行支付 +export async function payOrderHandle(orderId, type, from) { + return new Promise((resolve, reject) => { + uni.showLoading({ + title: "支付中", + mask: true + }); + payOrder(orderId, type, from) + .then(async res => { + console.log(res) + await handleOrderPayResults(res.data, type) + resolve() + }) + .catch(err => { + reject() + uni.hideLoading() + uni.showToast({ + title: err.msg || err.response.data.msg || err.response.data.message || '订单支付失败', + icon: "none", + duration: 2000, + }); + }); + }); +} + +// 处理调用支付接口的逻辑 +// @type create(创建订单)||pay(支付订单) +export function handleOrderPayResults(data, type, payType) { + return new Promise((resolve, reject) => { + uni.hideLoading() + switch (data.status) { + // 订单号已存在 + case "ORDER_EXIST": + resolve() + break; + // 取消支付 + case "EXTEND_ORDER": + uni.showToast({ + title: data.msg, + icon: "none", + duration: 2000, + }); + resolve() + goOrderDetails(data.result.orderId, type) + break; + case "PAY_DEFICIENCY": + break; + // 支付出错 + case "PAY_ERROR": + uni.showToast({ + title: data.msg, + icon: "none", + duration: 2000, + }); + reject() + goOrderDetails(data.result.orderId, type) + break; + // 未传递支付环境 + case "SUCCESS": + uni.showToast({ + title: data.msg || data.payMsg, + icon: "none", + duration: 2000, + }); + resolve() + goOrderDetails(data.result.orderId, type) + break; + // H5支付 + case "WECHAT_H5_PAY": + goOrderDetails(data.result.orderId, type) + console.log(data) + setTimeout(() => { + resolve() + // #ifdef H5 + // "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx15171343713577e9f3a418b0865ef90000&package=2547890641" + // location.href = data.result.jsConfig.mweb_url; + // #endif + }, 100); + break; + // 小程序支付 + case "WECHAT_PAY": + weappPay(data.result.jsConfig).finally(() => { + resolve() + goOrderDetails(data.result.orderId, type) + }).then(res => { + // #ifdef MP-WEIXIN + subscribeMessage() + // #endif + }) + break; + // APP支付 + case "WECHAT_APP_PAY": + weappPay(data.result.jsConfig).finally(() => { + resolve() + goOrderDetails(data.result.orderId, type) + }) + break; + } + }) +} + +export function subscribeMessage() { + // 调用订阅 + console.log('调用订阅') + getSubscribeTemplate() + .then(res => { + uni.requestSubscribeMessage({ + tmplIds: res.data, + success(res) { + console.log(res) + }, + fail(error) { + console.log(error) + } + }) + }) + .catch(err => {}); +} + + +export function goOrderDetails(id, type) { + // 创建订单时跳转到详情 + if (type == 'create') { + console.log(_router) + _router.replace({ + path: "/pages/order/OrderDetails/index", + query: { + id + }, + }); + } +} diff --git a/libs/wechat.js b/libs/wechat.js new file mode 100644 index 0000000..b95b507 --- /dev/null +++ b/libs/wechat.js @@ -0,0 +1,397 @@ +import { subscribeMessage } from '@/libs/order' +import { getProvider } from '@/utils' +import WechatJSSDK from 'wechat-jssdk/dist/client.umd' +import { getWechatConfig, wechatAuth } from '@/api/public' +import { parseQuery } from '@/utils' +import cookie from '@/utils/store/cookie' +import store from '@/store' +import dayjs from 'dayjs' + +// 支付模块 +export const weappPay = option => { + return new Promise((resolve, reject) => { + if (store.state.$deviceType == 'weixinh5') { + setTimeout(() => { + location.href = option.mweb_url + }, 100) + resolve() + return + } + if (store.state.$deviceType == 'weixin') { + pay(option) + .then(() => { + uni.showToast({ + title: '支付成功', + icon: 'success', + duration: 5000, + }) + resolve() + }) + .finally(res => { + //if(typeof(res) == "undefined") return + }) + .catch(function() { + uni.showToast({ title: '支付失败', icon: 'none', duration: 5000 }) + reject() + }) + return + } + // 吊起微信支付 + // getProvider('payment').then(provider => { + let orderInfo = { + appid: option.appid, + noncestr: option.noncestr, + package: option.package, + partnerid: option.partnerid, + prepayid: option.prepayid, + sign: option.sign, + timestamp: option.timestamp + '', + } + // 调用只接口 + uni.requestPayment({ + provider: 'wxpay', + ...option, + timestamp: orderInfo.timestamp, + orderInfo, + success: success => { + console.log(success) + uni.showToast({ + title: '支付成功', + icon: 'success', + duration: 5000, + }) + let time = setTimeout(() => { + clearTimeout(time) + resolve(success) + }, 3000) + // #ifdef MP-WEIXIN + subscribeMessage() + // #endif + }, + fail: error => { + console.log(error) + if (error.errMsg == 'requestPayment:fail cancel') { + uni.showToast({ title: '已取消支付', icon: 'none', duration: 5000 }) + } else { + uni.showToast({ title: error || error.msg, icon: 'none', duration: 5000 }) + } + reject(error) + }, + }) + // }) + }) +} + +const STATE_KEY = 'wx_authorize_state' +const WX_AUTH = 'wx_auth' +const BACK_URL = 'login_back_url' +const LOGINTYPE = 'loginType' +let instance +let wechatObj +let appId +let wechatLoading = false + +export function wechat() { + console.log('初始化微信配置') + wechatLoading = false + return new Promise((resolve, reject) => { + if (instance) return resolve(instance) + getWechatConfig() + .then(res => { + console.log(res.data) + const _wx = WechatJSSDK(res.data) + console.log(_wx) + appId = res.data.appId + wechatObj = _wx + _wx + .initialize() + .then(() => { + instance = _wx.wx + instance.initConfig = res.data + resolve(instance) + }) + .catch(error => { + console.log(error) + uni.showToast({ + title: error, + icon: 'none', + duration: 2000, + }) + reject() + }) + }) + .catch(err => { + console.log(err) + reject() + }) + }) +} + +export function clearAuthStatus() { + cookie.remove(WX_AUTH) + cookie.remove(STATE_KEY) +} + +export async function oAuth() { + console.log('处理微信授权') + console.log(store) + console.log(store.state) + return new Promise((resolve, reject) => { + // if (cookie.has(WX_AUTH)) { + if (cookie.has(WX_AUTH) && store.state.token) { + reject() + return + } + const { code } = parseQuery() + if (!code) { + toAuth() + return + } else { + auth(code) + } + resolve() + }).catch(error => { + console.log(error) + }) +} + +export async function auth(code) { + console.log('获取微信授权') + return new Promise((resolve, reject) => { + let loginType = cookie.get(LOGINTYPE) + let spread = cookie.get('spread') + console.log('微信授权登录前获取spread', spread) + wechatAuth(code, spread, loginType) + .then(({ data }) => { + console.log(data) + const expires_time = dayjs(data.expires_time) + const newTime = Math.round(new Date() / 1000) + store.commit('login', data.token, expires_time - newTime) + cookie.set(WX_AUTH, code, expires_time) + cookie.remove(STATE_KEY) + loginType && cookie.remove(LOGINTYPE) + console.log('微信公众号授权登录,获取用户信息') + store.dispatch('getUser').finally(() => { + resolve() + }) + }) + .catch(reject) + }).catch(error => { + console.log(error) + }) +} + +export async function toAuth() { + if (wechatLoading) { + return + } + wechatLoading = true + wechat().then(wx => { + location.href = getAuthUrl(appId) + }) +} + +function getAuthUrl(appId) { + // const redirect_uri = encodeURIComponent(window.location.href); + // const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index`); + + // #ifdef H5 + // #endif + cookie.set('redirect', window.location.href) + const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index`) + // const redirect_uri = encodeURIComponent(`${location.origin}/pages/Loading/index?path=${encodeURIComponent(window.location.href)}`); + // const redirect_uri = encodeURIComponent(`${window.location.origin}${window.location.pathname}`) + // const redirect_uri = encodeURIComponent(`${location.origin}`) + cookie.remove(BACK_URL) + const state = 'STATE' + // const state = encodeURIComponent(("" + Math.random()).split(".")[1] + "authorizestate"); + cookie.set(STATE_KEY, state) + return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect` +} + +function toPromise(fn, config = {}) { + return new Promise((resolve, reject) => { + fn({ + ...config, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + }, + complete(err) { + reject(err) + }, + cancel(err) { + reject(err) + }, + }) + }) +} + +export function pay(config) { + console.log(instance) + return toPromise(instance.chooseWXPay, config) +} + +export function openAddress() { + return new Promise((resolve, reject) => { + wechatEvevt('openAddress', {}) + .then(res => { + resolve(res) + }) + .catch(res => { + if (res.is_ready) { + res.wx.openAddress({ + fail(res) { + reject(res) + }, + success(res) { + resolve(res) + }, + }) + } else { + reject(res) + } + }) + }) +} + +export function openShareAll(config) { + config || {} + config.type = config.type == undefined ? 'link' : config.type + return new Promise(resolve => { + getWechatConfig().then(res => { + wechatObj.signSignature({ + nonceStr: res.data.nonceStr, + signature: res.data.signature, + timestamp: res.data.timestamp, + }) + instance = wechatObj.getOriginalWx() + instance.ready(() => { + instance.updateAppMessageShareData(config) + instance.updateTimelineShareData(config) + resolve() + }) + }) + }) +} + +export function openShareAppMessage(config) { + instance.updateAppMessageShareData(config) + instance.onMenuShareAppMessage && instance.onMenuShareAppMessage(config) +} + +export function openShareTimeline(config) { + instance.updateTimelineShareData(config) + instance.onMenuShareTimeline && instance.onMenuShareTimeline(config) +} + +export function wechatEvevt(name, config) { + return new Promise((resolve, reject) => { + let wx + let configDefault = { + fail(res) { + if (wx) return reject({ is_ready: true, wx: wx }) + getWechatConfig().then(res => { + wechatObj.signSignature({ + nonceStr: res.data.nonceStr, + signature: res.data.signature, + timestamp: res.data.timestamp, + }) + wx = wechatObj.getOriginalWx() + reject({ is_ready: true, wx: wx }) + }) + }, + success(res) { + resolve(res) + }, + } + Object.assign(configDefault, config) + if (typeof instance !== 'undefined') { + instance.ready(() => { + if (typeof name === 'object') { + name.forEach(item => { + instance[item] && instance[item](configDefault) + }) + } else instance[name] && instance[name](configDefault) + }) + } else { + getWechatConfig().then(res => { + const _wx = WechatJSSDK(res.data) + _wx.initialize().then(() => { + instance = _wx.getOriginalWx() + instance.ready(() => { + if (typeof name === 'object') { + name.forEach(item => { + instance[item] && instance[item](configDefault) + }) + } else instance[name] && instance[name](configDefault) + }) + }) + }) + } + }) +} + +export function ready() { + return new Promise(resolve => { + if (typeof instance !== 'undefined') { + instance.ready(() => { + resolve(instance) + }) + } else { + getWechatConfig().then(res => { + const _wx = WechatJSSDK(res.data) + _wx.initialize().then(() => { + instance = _wx.wx + instance.ready(() => { + resolve(instance) + }) + }) + }) + } + }) +} + +export function wxShowLocation() { + return new Promise(() => { + wechatEvevt('getLocation', { type: 'wgs84' }) + .then(res => { + let latitude = res.latitude // 纬度 + let longitude = res.longitude // 经度 + cookie.set(LATITUDE, latitude) + cookie.set(LONGITUDE, longitude) + }) + .catch(res => { + if (res.is_ready) { + res.wx.getLocation({ + success(res) { + let latitude = res.latitude // 纬度 + let longitude = res.longitude // 经度 + cookie.set(LATITUDE, latitude) + cookie.set(LONGITUDE, longitude) + }, + cancel() { + cookie.remove(LATITUDE) + cookie.remove(LONGITUDE) + uni.showToast({ + title: '取消获取位置', + icon: 'none', + duration: 2000, + }) + }, + fail() { + cookie.remove(LATITUDE) + cookie.remove(LONGITUDE) + uni.showToast({ + title: '授权失败', + icon: 'none', + duration: 2000, + }) + }, + }) + } + }) + }) +} diff --git a/main.js b/main.js new file mode 100644 index 0000000..f54133c --- /dev/null +++ b/main.js @@ -0,0 +1,122 @@ +import Vue from 'vue' +import App from './App' + +// import router from "./router"; +import store from './store' +import schema from 'async-validator' +import dialog from './utils/dialog' +import cookie from '@/utils/store/cookie' +import cuCustom from '@/components/colorui/components/cu-custom.vue' + +import { parseRoute, _router, parseQuery } from '@/utils' +import { VUE_APP_RESOURCES_URL, VUE_APP_API_URL } from '@/config' +Vue.component('cu-custom', cuCustom) +Vue.config.productionTip = false +Vue.config.devtools = process.env.NODE_ENV !== 'production' + +Vue.prototype.$validator = function(rule) { + return new schema(rule) +} + +Vue.config.productionTip = false +App.mpType = 'app' +Vue.prototype.$store = store + +const app = new Vue({ + ...App, + store, +}) + +Object.defineProperty(Vue.prototype, '$yrouter', { + get() { + return _router + }, +}) + +Object.defineProperty(Vue.prototype, '$yroute', { + get() { + return this._route + }, +}) + +Vue.prototype.$VUE_APP_API_URL = VUE_APP_API_URL +Vue.component('cu-custom', cuCustom) + +let deviceType = '' +// #ifdef APP-PLUS +// App平台编译的代码 +deviceType = 'app' +Vue.prototype.$platform = uni.getSystemInfoSync().platform +// #endif + +// #ifdef MP-WEIXIN +// 微信小程序编译的代码 +deviceType = 'routine' +// #endif + +// !!! ps 不建议在 template 中使用 $deviceType 去判断当前环境,很有可能出现 $deviceType 为 undefined 导致判断出错的问题,可以在 script 模块中正常使用 +// 建议通过 store 去获取 $deviceType 可以保证 template 中取到的值有效 +// import { mapState, mapMutations, mapActions } from 'vuex'; +// computed: { +// ...mapState(['$deviceType']) +// }, + +// #ifdef H5 +// H5编译的代码 + +import { wechat, clearAuthStatus, oAuth, auth, toAuth, pay, openAddress, openShareAll, openShareAppMessage, openShareTimeline, wechatEvevt, ready, wxShowLocation } from '@/libs/wechat' + +import { isWeixin } from '@/utils' +const CACHE_KEY = 'clear_0.0.1' + +if (!cookie.has(CACHE_KEY)) { + cookie.clearAll() + cookie.set(CACHE_KEY, 1) +} + +var urlSpread = parseQuery()['spread'] +if (urlSpread) { + cookie.set('spread', urlSpread) +} + +// #endif + +// #ifdef H5 +// H5编译的代码 +// 判断是否是微信浏览器 +async function init() { + if (isWeixin()) { + deviceType = 'weixin' + let wechatInit = wechat() + if (wechatInit) { + await oAuth() + } + } else { + deviceType = 'weixinh5' + } +} +init() +// #endif + +Vue.prototype.$deviceType = deviceType + +Vue.mixin({ + onLoad() { + const { $mp } = this.$root + this._route = parseRoute($mp) + }, + onShow() { + _router.app = this + _router.currentRoute = this._route + }, + // 这里为了解决 .vue文件中 template 无法获取 VUE.prototype 绑定的变量 + computed: { + $VUE_APP_RESOURCES_URL() { + return VUE_APP_RESOURCES_URL + }, + }, +}) + +store.commit('updateDevicetype', deviceType) + +app.$mount() diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..9850897 --- /dev/null +++ b/manifest.json @@ -0,0 +1,188 @@ +{ + "name" : "yshopmall", + "appid" : "__UNI__C7A519E", + "description" : "", + "versionName" : "1.0.1", + "versionCode" : 1, + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : false, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : { + "OAuth" : {}, + "Payment" : {}, + "Share" : {}, + "Geolocation" : {} + }, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : { + "oauth" : { + "weixin" : { + "appid" : "wx7c84ede33062d1e4", + "appsecret" : "c47ef66d3311194da44e60387d5c1abd", + "UniversalLinks" : "https://yixiang.co/app/" + } + }, + "payment" : { + "weixin" : { + "appid" : "wx7c84ede33062d1e4", + "UniversalLinks" : "https://yixiang.co/app/" + } + }, + "share" : { + "weixin" : { + "appid" : "wx7c84ede33062d1e4", + "UniversalLinks" : "https://yixiang.co/app/" + } + }, + "ad" : {}, + "geolocation" : {} + }, + "splashscreen" : { + "ios" : { + "iphone" : { + "portrait-896h@3x" : "splash/1242+2688.png", + "portrait-896h@2x" : "splash/828+1792.png", + "iphonex" : "splash/1125+2436.png", + "retina55" : "splash/1142+2208.png", + "retina47" : "splash/750+1334.png", + "retina40" : "splash/640+1136.png", + "retina35" : "splash/640+960.png" + } + }, + "android" : { + "hdpi" : "splash/480+762.png", + "xhdpi" : "splash/720+1242.png", + "xxhdpi" : "splash/1080+1882.png" + }, + "iosStyle" : "common" + }, + "icons" : { + "android" : { + "hdpi" : "icons/72x72.png", + "xhdpi" : "icons/96x96.png", + "xxhdpi" : "icons/144x144.png", + "xxxhdpi" : "icons/192x192.png" + }, + "ios" : { + "appstore" : "icons/1024x1024.png", + "ipad" : { + "app" : "icons/76x76.png", + "app@2x" : "icons/152x152.png", + "notification" : "icons/20x20.png", + "notification@2x" : "icons/40x40.png", + "proapp@2x" : "icons/167x167.png", + "settings" : "icons/29x29.png", + "settings@2x" : "icons/58x58.png", + "spotlight" : "icons/40x40.png", + "spotlight@2x" : "icons/80x80.png" + }, + "iphone" : { + "app@2x" : "icons/120x120.png", + "app@3x" : "icons/180x180.png", + "notification@2x" : "icons/40x40.png", + "notification@3x" : "icons/60x60.png", + "settings@2x" : "icons/58x58.png", + "settings@3x" : "icons/87x87.png", + "spotlight@2x" : "icons/80x80.png", + "spotlight@3x" : "icons/120x120.png" + } + } + } + } + }, + "quickapp" : {}, + "mp-weixin" : { + "appid" : "wx604d2ea4702620d2", + "setting" : { + "urlCheck" : true, + "postcss" : true, + "minified" : true + }, + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "plugins" : { + // #ifdef MP-WEIXIN + "live-player-plugin" : { + "version" : "1.2.8", + "provider" : "wx2b03c6e691cd7370" + } + } + }, + // #endif + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "h5" : { + "title" : "yshop", + "devServer" : { + "disableHostCheck" : true, + "proxy" : { + "/h5api" : { + // 需要被代理的后台地址 + "target" : "http://itxzz.51vip.biz/", + "changeOrigin" : true, + "secure" : false, + "pathRewrite" : { + "^/h5api" : "/api" + } + } + } + }, + "router" : { + "mode" : "history" + }, + "sdkConfigs" : { + "maps" : { + "qqmap" : { + "key" : "" + } + } + }, + "domain" : "h5.yixiang.co" + } +} diff --git a/mixins/SendVerifyCode.js b/mixins/SendVerifyCode.js new file mode 100644 index 0000000..d2133b0 --- /dev/null +++ b/mixins/SendVerifyCode.js @@ -0,0 +1,27 @@ +export default { + data() { + return { + disabled: false, + text: "获取验证码" + }; + }, + methods: { + sendCode() { + if (this.disabled) return; + this.disabled = true; + let n = 60; + this.text = "剩余 " + n + "s"; + const run = setInterval(() => { + n = n - 1; + if (n < 0) { + clearInterval(run); + } + this.text = "剩余 " + n + "s"; + if (this.text < "剩余 " + 0 + "s") { + this.disabled = false; + this.text = "重新获取"; + } + }, 1000); + } + } +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..44f987a --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "yshopmall_uni", + "version": "1.0.0", + "description": "", + "main": "main.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "animate.css": "^3.7.2", + "async-validator": "^3.2.4", + "dayjs": "^1.8.22", + "jweixin-module": "^1.6.0", + "miniapp-color-thief": "^1.0.5", + "vconsole": "^3.3.4", + "wechat-jssdk": "^5.0.4" + }, + "devDependencies": { + "@types/html5plus": "^1.0.1", + "@types/uni-app": "^1.4.3" + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..cdc3d76 --- /dev/null +++ b/pages.json @@ -0,0 +1,476 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/Loading/index", + "style": { + "navigationBarTitleText": "yshop商城" + } + }, + { + "path": "pages/authorization/index", + "style": { + "navigationBarTitleText": "微信授权" + } + }, + { + "path": "pages/user/Login/index", + "style": { + "navigationBarTitleText": "登录" + } + }, + { + "path": "pages/user/Register/index", + "style": { + "navigationBarTitleText": "注册" + } + }, + { + // "path": "pages/user/RetrievePassword/index", + "path": "pages/user/ChangePassword/index", + "style": { + "navigationBarTitleText": "重置密码" + } + }, + { + "path": "pages/launch/index", + "style": { + "navigationBarTitleText": "首页" + } + }, + { + "path": "pages/home/index", + "style": { + "navigationBarTitleText": "yshop商城", + "navigationBarTextStyle": "white", + "navigationStyle": "custom" + } + }, + { + "path": "pages/shop/GoodSearch/index", + "style": { + "navigationBarTitleText": "搜索商品" + } + }, + { + "path": "pages/shop/GoodsClass/index", + "style": { + "navigationBarTitleText": "商品分类" + } + }, + { + "path": "pages/shop/ShoppingCart/index", + "style": { + "navigationBarTitleText": "购物车" + } + }, + { + "path": "pages/shop/StoreList/index", + "style": { + "navigationBarTitleText": "商家列表" + } + }, + { + "path": "pages/shop/GoodsList/index", + "style": { + "navigationBarTitleText": "商品列表" + } + }, + { + "path": "pages/NotDefined/index", + "style": { + "navigationBarTitleText": "404" + } + }, + { + "path": "pages/user/User/index", + "style": { + "navigationBarTitleText": "我的" + } + }, + { + "path": "pages/shop/GoodsCollection/index", + "style": { + "navigationBarTitleText": "商品收藏" + } + }, + { + "path": "pages/shop/GoodsFoot/index", + "style": { + "navigationBarTitleText": "我的足迹" + } + }, + { + "path": "pages/shop/news/NewsDetail/index", + "style": { + "navigationBarTitleText": "新闻详情" + } + }, + { + "path": "pages/shop/news/NewsList/index", + "style": { + "navigationBarTitleText": "新闻列表" + } + }, + { + "path": "pages/shop/EvaluateList/index", + "style": { + "navigationBarTitleText": "评价列表" + } + }, + { + "path": "pages/shop/GoodsEvaluate/index", + "style": { + "navigationBarTitleText": "商品评价" + } + }, + { + "path": "pages/shop/GoodsPromotion/index", + "style": { + "navigationBarTitleText": "促销商品" + } + }, + { + "path": "pages/shop/HotNewGoods/index", + "style": { + "navigationBarTitleText": "热门商品" + } + }, + { + "path": "pages/shop/GoodsCon/index", + "style": { + "navigationBarTitleText": "商品详情" + } + }, + { + "path": "pages/shop/IntegralGoodsCon/index", + "style": { + "navigationBarTitleText": "积分商品详情" + } + }, + { + "path": "pages/user/BindingPhone/index", + "style": { + "navigationBarTitleText": "绑定手机号" + } + }, + { + "path": "pages/user/address/AddAddress/index", + "style": { + "navigationBarTitleText": "新增收货地址" + } + }, + { + "path": "pages/user/UserAccount/index", + "style": { + "navigationBarTitleText": "账户余额" + } + }, + { + "path": "pages/user/address/AddressManagement/index", + "style": { + "navigationBarTitleText": "收货地址" + } + }, + { + "path": "pages/user/promotion/Poster/index", + "style": { + "navigationBarTitleText": "推广名片" + } + }, + { + "path": "pages/user/signIn/Sign/index", + "style": { + "navigationBarTitleText": "签到" + } + }, + { + "path": "pages/user/signIn/SignRecord/index", + "style": { + "navigationBarTitleText": "签到记录" + } + }, + { + "path": "pages/user/promotion/CashAudit/index", + "style": { + "navigationBarTitleText": "提现结果" + } + }, + { + "path": "pages/user/promotion/PromoterOrder/index", + "style": { + "navigationBarTitleText": "分销详情" + } + }, + { + "path": "pages/user/promotion/PromoterList/index", + "style": { + "navigationBarTitleText": "分销列表" + } + }, + { + "path": "pages/user/promotion/UserPromotion/index", + "style": { + "navigationBarTitleText": "佣金" + } + }, + { + "path": "pages/user/UserBill/index", + "style": { + "navigationBarTitleText": "账单记录" + } + }, + { + "path": "pages/user/promotion/CashRecord/index", + "style": { + "navigationBarTitleText": "提现记录" + } + }, + { + "path": "pages/user/promotion/CommissionDetails/index", + "style": { + "navigationBarTitleText": "佣金明细" + } + }, + { + "path": "pages/user/signIn/Integral/index", + "style": { + "navigationBarTitleText": "我的积分" + } + }, + { + "path": "pages/user/UserVip/index", + "style": { + "navigationBarTitleText": "用户vip" + } + }, + { + "path": "pages/user/PersonalData/index", + "style": { + "navigationBarTitleText": "个人资料" + } + }, + { + "path": "pages/user/coupon/UserCoupon/index", + "style": { + "navigationBarTitleText": "优惠券" + } + }, + { + "path": "pages/user/coupon/GetCoupon/index", + "style": { + "navigationBarTitleText": "领取优惠券" + } + }, + { + "path": "pages/user/promotion/UserCash/index", + "style": { + "navigationBarTitleText": "提现" + } + }, + { + "path": "pages/user/CustomerList/index", + "style": { + "navigationBarTitleText": "客服列表" + } + }, + { + "path": "pages/user/Recharge/index", + "style": { + "navigationBarTitleText": "充值" + } + }, + { + "path": "pages/order/MyOrder/index", + "style": { + "navigationBarTitleText": "我的订单" + } + }, + { + "path": "pages/order/Logistics/index", + "style": { + "navigationBarTitleText": "查看物流" + } + }, + { + "path": "pages/order/OrderDetails/index", + "style": { + "navigationBarTitleText": "订单详情" + } + }, + { + "path": "pages/order/OrderSubmission/index", + "style": { + "navigationBarTitleText": "提交订单" + } + }, + { + "path": "pages/order/PaymentStatus/index", + "style": { + "navigationBarTitleText": "支付状态" + } + }, + { + "path": "pages/order/GoodsReturn/index", + "style": { + "navigationBarTitleText": "商品退货" + } + }, + { + "path": "pages/order/ReturnList/index", + "style": { + "navigationBarTitleText": "我的售后" + } + }, + { + "path": "pages/orderAdmin/OrderIndex/index", + "style": { + "navigationBarTitleText": "商家订单统计" + } + }, + { + "path": "pages/orderAdmin/AdminOrderList/index", + "style": { + "navigationBarTitleText": "订单" + } + }, + { + "path": "pages/orderAdmin/GoodsDeliver/index", + "style": { + "navigationBarTitleText": "发货" + } + }, + { + "path": "pages/orderAdmin/AdminOrder/index", + "style": { + "navigationBarTitleText": "商家订单列表" + } + }, + { + "path": "pages/orderAdmin/Statistics/index", + "style": { + "navigationBarTitleText": "商家统计数据" + } + }, + { + "path": "pages/orderAdmin/OrderCancellation/index", + "style": { + "navigationBarTitleText": "商家核销订单" + } + }, + { + "path": "pages/activity/Poster/index", + "style": { + "navigationBarTitleText": "推广海报" + } + }, + { + "path": "pages/activity/DargainDetails/index", + "style": { + "navigationBarTitleText": "帮砍价" + } + }, + { + "path": "pages/activity/GoodsBargain/index", + "style": { + "navigationBarTitleText": "砍价列表" + } + }, + { + "path": "pages/activity/BargainRecord/index", + "style": { + "navigationBarTitleText": "砍价记录" + } + }, + { + "path": "pages/activity/GoodsGroup/index", + "style": { + "navigationBarTitleText": "团购商品列表" + } + }, + { + "path": "pages/activity/GroupDetails/index", + "style": { + "navigationBarTitleText": "团购商品详情" + } + }, + { + "path": "pages/activity/GroupRule/index", + "style": { + "navigationBarTitleText": "团购规则" + } + }, + { + "path": "pages/activity/GoodsSeckill/index", + "style": { + "navigationBarTitleText": "秒杀" + } + }, + { + "path": "pages/activity/SeckillDetails/index", + "style": { + "navigationBarTitleText": "秒杀详情" + } + }, + { + "path": "pages/map/index", + "style": { + "navigationBarTitleText": "地图" + } + }, + { + "path": "pages/shop/Live/LiveList/index", + "style": { + "navigationBarTitleText": "直播列表" + } + } + ], + "easycom": { + "autoscan": true, + "custom": { + "tui-(.*)": "@/components/tui-$1/tui-$1.vue" + } + }, + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Yshop", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8", + "navigationStyle": "default" + }, + "tabBar": { + "color": "#282828", + "selectedColor": "#eb3729", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "height": "50px", + "fontSize": "10px", + "iconWidth": "24px", + "spacing": "3px", + "list": [ + { + "pagePath": "pages/home/index", + "iconPath": "static/icon-home.png", + "selectedIconPath": "static/icon-home-hot.png", + "text": "首页" + }, + { + "pagePath": "pages/shop/GoodsClass/index", + "iconPath": "static/icon-class.png", + "selectedIconPath": "static/icon-class-hot.png", + "text": "分类" + }, + { + "pagePath": "pages/shop/ShoppingCart/index", + "iconPath": "static/icon-cart.png", + "selectedIconPath": "static/icon-cart-hot.png", + "text": "购物车" + }, + { + "pagePath": "pages/user/User/index", + "iconPath": "static/icon-user.png", + "selectedIconPath": "static/icon-user-hot.png", + "text": "我的" + } + ] + } +} diff --git a/pages/Loading/index.vue b/pages/Loading/index.vue new file mode 100644 index 0000000..348fc8b --- /dev/null +++ b/pages/Loading/index.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/pages/NotDefined/index.vue b/pages/NotDefined/index.vue new file mode 100644 index 0000000..338d1fa --- /dev/null +++ b/pages/NotDefined/index.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/activity/BargainRecord/index.vue b/pages/activity/BargainRecord/index.vue new file mode 100644 index 0000000..d90ece3 --- /dev/null +++ b/pages/activity/BargainRecord/index.vue @@ -0,0 +1,131 @@ + + diff --git a/pages/activity/DargainDetails/index.vue b/pages/activity/DargainDetails/index.vue new file mode 100644 index 0000000..b26241d --- /dev/null +++ b/pages/activity/DargainDetails/index.vue @@ -0,0 +1,629 @@ + + + + diff --git a/pages/activity/GoodsBargain/index.vue b/pages/activity/GoodsBargain/index.vue new file mode 100644 index 0000000..30fc7eb --- /dev/null +++ b/pages/activity/GoodsBargain/index.vue @@ -0,0 +1,84 @@ + + + + diff --git a/pages/activity/GoodsGroup/children/activity-card.vue b/pages/activity/GoodsGroup/children/activity-card.vue new file mode 100644 index 0000000..b9fcf85 --- /dev/null +++ b/pages/activity/GoodsGroup/children/activity-card.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/pages/activity/GoodsGroup/index.vue b/pages/activity/GoodsGroup/index.vue new file mode 100644 index 0000000..ae9285b --- /dev/null +++ b/pages/activity/GoodsGroup/index.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/pages/activity/GoodsSeckill/index.vue b/pages/activity/GoodsSeckill/index.vue new file mode 100644 index 0000000..7612881 --- /dev/null +++ b/pages/activity/GoodsSeckill/index.vue @@ -0,0 +1,487 @@ + + + diff --git a/pages/activity/GroupDetails/index.vue b/pages/activity/GroupDetails/index.vue new file mode 100644 index 0000000..47b8a7a --- /dev/null +++ b/pages/activity/GroupDetails/index.vue @@ -0,0 +1,1297 @@ + + + + diff --git a/pages/activity/GroupRule/index.vue b/pages/activity/GroupRule/index.vue new file mode 100644 index 0000000..1925547 --- /dev/null +++ b/pages/activity/GroupRule/index.vue @@ -0,0 +1,673 @@ + + + + diff --git a/pages/activity/Poster/index.vue b/pages/activity/Poster/index.vue new file mode 100644 index 0000000..4a28e4f --- /dev/null +++ b/pages/activity/Poster/index.vue @@ -0,0 +1,129 @@ + + + + diff --git a/pages/activity/SeckillDetails/index.vue b/pages/activity/SeckillDetails/index.vue new file mode 100644 index 0000000..9c878e1 --- /dev/null +++ b/pages/activity/SeckillDetails/index.vue @@ -0,0 +1,822 @@ + + + + diff --git a/pages/authorization/index.vue b/pages/authorization/index.vue new file mode 100644 index 0000000..be64584 --- /dev/null +++ b/pages/authorization/index.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/pages/home/components/Banner.vue b/pages/home/components/Banner.vue new file mode 100644 index 0000000..7e66cc3 --- /dev/null +++ b/pages/home/components/Banner.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/pages/home/components/FirstNewProduct.vue b/pages/home/components/FirstNewProduct.vue new file mode 100644 index 0000000..31bde33 --- /dev/null +++ b/pages/home/components/FirstNewProduct.vue @@ -0,0 +1,216 @@ + + + + + + diff --git a/pages/home/components/HotCommodity.vue b/pages/home/components/HotCommodity.vue new file mode 100644 index 0000000..3a4b25b --- /dev/null +++ b/pages/home/components/HotCommodity.vue @@ -0,0 +1,219 @@ + + + + + + diff --git a/pages/home/components/Live.vue b/pages/home/components/Live.vue new file mode 100644 index 0000000..14c70c1 --- /dev/null +++ b/pages/home/components/Live.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/pages/home/components/ProductsRecommended.vue b/pages/home/components/ProductsRecommended.vue new file mode 100644 index 0000000..fde1ec6 --- /dev/null +++ b/pages/home/components/ProductsRecommended.vue @@ -0,0 +1,215 @@ + + + + + + diff --git a/pages/home/components/PromoteProduct.vue b/pages/home/components/PromoteProduct.vue new file mode 100644 index 0000000..1cb219a --- /dev/null +++ b/pages/home/components/PromoteProduct.vue @@ -0,0 +1,216 @@ + + + + + + diff --git a/pages/home/index.vue b/pages/home/index.vue new file mode 100644 index 0000000..55cb4a1 --- /dev/null +++ b/pages/home/index.vue @@ -0,0 +1,466 @@ + + + diff --git a/pages/launch/index.vue b/pages/launch/index.vue new file mode 100644 index 0000000..ffe3c0e --- /dev/null +++ b/pages/launch/index.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/pages/map/index.vue b/pages/map/index.vue new file mode 100644 index 0000000..d0a1a4b --- /dev/null +++ b/pages/map/index.vue @@ -0,0 +1,57 @@ + + + diff --git a/pages/order/GoodsReturn/index.vue b/pages/order/GoodsReturn/index.vue new file mode 100644 index 0000000..7f122d2 --- /dev/null +++ b/pages/order/GoodsReturn/index.vue @@ -0,0 +1,185 @@ + + + diff --git a/pages/order/GoodsReturn/productlist.vue b/pages/order/GoodsReturn/productlist.vue new file mode 100644 index 0000000..21f0243 --- /dev/null +++ b/pages/order/GoodsReturn/productlist.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/order/Logistics/index.vue b/pages/order/Logistics/index.vue new file mode 100644 index 0000000..5dff981 --- /dev/null +++ b/pages/order/Logistics/index.vue @@ -0,0 +1,385 @@ + + + + diff --git a/pages/order/MyOrder/index.vue b/pages/order/MyOrder/index.vue new file mode 100644 index 0000000..f8e7b4f --- /dev/null +++ b/pages/order/MyOrder/index.vue @@ -0,0 +1,303 @@ + + + + diff --git a/pages/order/OrderDetails/index.vue b/pages/order/OrderDetails/index.vue new file mode 100644 index 0000000..8c7d123 --- /dev/null +++ b/pages/order/OrderDetails/index.vue @@ -0,0 +1,659 @@ + + + + + diff --git a/pages/order/OrderSubmission/index.vue b/pages/order/OrderSubmission/index.vue new file mode 100644 index 0000000..192a0cd --- /dev/null +++ b/pages/order/OrderSubmission/index.vue @@ -0,0 +1,546 @@ + + + diff --git a/pages/order/PaymentStatus/index.vue b/pages/order/PaymentStatus/index.vue new file mode 100644 index 0000000..bb9e43b --- /dev/null +++ b/pages/order/PaymentStatus/index.vue @@ -0,0 +1,34 @@ + diff --git a/pages/order/ReturnList/index.vue b/pages/order/ReturnList/index.vue new file mode 100644 index 0000000..e23125f --- /dev/null +++ b/pages/order/ReturnList/index.vue @@ -0,0 +1,99 @@ + + + diff --git a/pages/orderAdmin/AdminOrder/index.vue b/pages/orderAdmin/AdminOrder/index.vue new file mode 100644 index 0000000..cafc628 --- /dev/null +++ b/pages/orderAdmin/AdminOrder/index.vue @@ -0,0 +1,377 @@ + + + diff --git a/pages/orderAdmin/AdminOrderList/index.vue b/pages/orderAdmin/AdminOrderList/index.vue new file mode 100644 index 0000000..e68e4b8 --- /dev/null +++ b/pages/orderAdmin/AdminOrderList/index.vue @@ -0,0 +1,388 @@ + + + + diff --git a/pages/orderAdmin/GoodsDeliver/index.vue b/pages/orderAdmin/GoodsDeliver/index.vue new file mode 100644 index 0000000..b25ce7b --- /dev/null +++ b/pages/orderAdmin/GoodsDeliver/index.vue @@ -0,0 +1,229 @@ + + diff --git a/pages/orderAdmin/OrderCancellation/index.vue b/pages/orderAdmin/OrderCancellation/index.vue new file mode 100644 index 0000000..122fc1f --- /dev/null +++ b/pages/orderAdmin/OrderCancellation/index.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/pages/orderAdmin/OrderIndex/index.vue b/pages/orderAdmin/OrderIndex/index.vue new file mode 100644 index 0000000..993eae4 --- /dev/null +++ b/pages/orderAdmin/OrderIndex/index.vue @@ -0,0 +1,166 @@ + + diff --git a/pages/orderAdmin/Statistics/index.vue b/pages/orderAdmin/Statistics/index.vue new file mode 100644 index 0000000..c51f9fe --- /dev/null +++ b/pages/orderAdmin/Statistics/index.vue @@ -0,0 +1,446 @@ + + + diff --git a/pages/shop/EvaluateList/index.vue b/pages/shop/EvaluateList/index.vue new file mode 100644 index 0000000..709c982 --- /dev/null +++ b/pages/shop/EvaluateList/index.vue @@ -0,0 +1,112 @@ + + + diff --git a/pages/shop/GoodSearch/index.vue b/pages/shop/GoodSearch/index.vue new file mode 100644 index 0000000..0ee76e6 --- /dev/null +++ b/pages/shop/GoodSearch/index.vue @@ -0,0 +1,77 @@ + + + diff --git a/pages/shop/GoodsClass/index.vue b/pages/shop/GoodsClass/index.vue new file mode 100644 index 0000000..8c37b4c --- /dev/null +++ b/pages/shop/GoodsClass/index.vue @@ -0,0 +1,126 @@ + + + + diff --git a/pages/shop/GoodsCollection/index.vue b/pages/shop/GoodsCollection/index.vue new file mode 100644 index 0000000..73b7227 --- /dev/null +++ b/pages/shop/GoodsCollection/index.vue @@ -0,0 +1,101 @@ + + diff --git a/pages/shop/GoodsCon/index.vue b/pages/shop/GoodsCon/index.vue new file mode 100644 index 0000000..2069987 --- /dev/null +++ b/pages/shop/GoodsCon/index.vue @@ -0,0 +1,997 @@ + + + + + diff --git a/pages/shop/GoodsEvaluate/index.vue b/pages/shop/GoodsEvaluate/index.vue new file mode 100644 index 0000000..3daf59c --- /dev/null +++ b/pages/shop/GoodsEvaluate/index.vue @@ -0,0 +1,199 @@ + + + diff --git a/pages/shop/GoodsFoot/index.vue b/pages/shop/GoodsFoot/index.vue new file mode 100644 index 0000000..a405eef --- /dev/null +++ b/pages/shop/GoodsFoot/index.vue @@ -0,0 +1,101 @@ + + diff --git a/pages/shop/GoodsList/index.vue b/pages/shop/GoodsList/index.vue new file mode 100644 index 0000000..dd0adf8 --- /dev/null +++ b/pages/shop/GoodsList/index.vue @@ -0,0 +1,294 @@ + + + diff --git a/pages/shop/GoodsPromotion/index.vue b/pages/shop/GoodsPromotion/index.vue new file mode 100644 index 0000000..8cc7da9 --- /dev/null +++ b/pages/shop/GoodsPromotion/index.vue @@ -0,0 +1,78 @@ + + diff --git a/pages/shop/HotNewGoods/index.vue b/pages/shop/HotNewGoods/index.vue new file mode 100644 index 0000000..2d4900b --- /dev/null +++ b/pages/shop/HotNewGoods/index.vue @@ -0,0 +1,84 @@ + + diff --git a/pages/shop/IntegralGoodsCon/index.vue b/pages/shop/IntegralGoodsCon/index.vue new file mode 100644 index 0000000..e8937c1 --- /dev/null +++ b/pages/shop/IntegralGoodsCon/index.vue @@ -0,0 +1,866 @@ + + + + + diff --git a/pages/shop/Live/LiveList/index.vue b/pages/shop/Live/LiveList/index.vue new file mode 100644 index 0000000..287f01a --- /dev/null +++ b/pages/shop/Live/LiveList/index.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/pages/shop/ShoppingCart/index.vue b/pages/shop/ShoppingCart/index.vue new file mode 100644 index 0000000..bb75df6 --- /dev/null +++ b/pages/shop/ShoppingCart/index.vue @@ -0,0 +1,528 @@ + + + + diff --git a/pages/shop/StoreList/index.vue b/pages/shop/StoreList/index.vue new file mode 100644 index 0000000..ccfe868 --- /dev/null +++ b/pages/shop/StoreList/index.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/pages/shop/news/NewsDetail/index.vue b/pages/shop/news/NewsDetail/index.vue new file mode 100644 index 0000000..4cc70d5 --- /dev/null +++ b/pages/shop/news/NewsDetail/index.vue @@ -0,0 +1,125 @@ + + + diff --git a/pages/shop/news/NewsList/index.vue b/pages/shop/news/NewsList/index.vue new file mode 100644 index 0000000..5505a70 --- /dev/null +++ b/pages/shop/news/NewsList/index.vue @@ -0,0 +1,108 @@ + + diff --git a/pages/user/BindingPhone/index.vue b/pages/user/BindingPhone/index.vue new file mode 100644 index 0000000..c4ee976 --- /dev/null +++ b/pages/user/BindingPhone/index.vue @@ -0,0 +1,148 @@ + + + + diff --git a/pages/user/ChangePassword/index.vue b/pages/user/ChangePassword/index.vue new file mode 100644 index 0000000..e8c4259 --- /dev/null +++ b/pages/user/ChangePassword/index.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/pages/user/CustomerList/index.vue b/pages/user/CustomerList/index.vue new file mode 100644 index 0000000..d838a58 --- /dev/null +++ b/pages/user/CustomerList/index.vue @@ -0,0 +1,73 @@ + + + diff --git a/pages/user/Login/index.vue b/pages/user/Login/index.vue new file mode 100644 index 0000000..1ab5578 --- /dev/null +++ b/pages/user/Login/index.vue @@ -0,0 +1,411 @@ + + + + diff --git a/pages/user/Login/login.vue b/pages/user/Login/login.vue new file mode 100644 index 0000000..a446787 --- /dev/null +++ b/pages/user/Login/login.vue @@ -0,0 +1,340 @@ + + diff --git a/pages/user/PersonalData/index.vue b/pages/user/PersonalData/index.vue new file mode 100644 index 0000000..0813233 --- /dev/null +++ b/pages/user/PersonalData/index.vue @@ -0,0 +1,210 @@ + + diff --git a/pages/user/Recharge/index.vue b/pages/user/Recharge/index.vue new file mode 100644 index 0000000..dd7e0c2 --- /dev/null +++ b/pages/user/Recharge/index.vue @@ -0,0 +1,378 @@ + + + + diff --git a/pages/user/Register/index.vue b/pages/user/Register/index.vue new file mode 100644 index 0000000..f8d0c92 --- /dev/null +++ b/pages/user/Register/index.vue @@ -0,0 +1,65 @@ + + + diff --git a/pages/user/RetrievePassword/index.vue b/pages/user/RetrievePassword/index.vue new file mode 100644 index 0000000..e9566a4 --- /dev/null +++ b/pages/user/RetrievePassword/index.vue @@ -0,0 +1,152 @@ + + + diff --git a/pages/user/User/index.vue b/pages/user/User/index.vue new file mode 100644 index 0000000..b98e33e --- /dev/null +++ b/pages/user/User/index.vue @@ -0,0 +1,477 @@ + + + + diff --git a/pages/user/UserAccount/index.vue b/pages/user/UserAccount/index.vue new file mode 100644 index 0000000..993adc6 --- /dev/null +++ b/pages/user/UserAccount/index.vue @@ -0,0 +1,117 @@ + + diff --git a/pages/user/UserBill/index.vue b/pages/user/UserBill/index.vue new file mode 100644 index 0000000..1359356 --- /dev/null +++ b/pages/user/UserBill/index.vue @@ -0,0 +1,110 @@ + + diff --git a/pages/user/UserVip/index.vue b/pages/user/UserVip/index.vue new file mode 100644 index 0000000..f0b9deb --- /dev/null +++ b/pages/user/UserVip/index.vue @@ -0,0 +1,208 @@ + + + + diff --git a/pages/user/address/AddAddress/index.vue b/pages/user/address/AddAddress/index.vue new file mode 100644 index 0000000..828afd0 --- /dev/null +++ b/pages/user/address/AddAddress/index.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/pages/user/address/AddressManagement/index.vue b/pages/user/address/AddressManagement/index.vue new file mode 100644 index 0000000..3bf1a14 --- /dev/null +++ b/pages/user/address/AddressManagement/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/pages/user/coupon/GetCoupon/index.vue b/pages/user/coupon/GetCoupon/index.vue new file mode 100644 index 0000000..f013867 --- /dev/null +++ b/pages/user/coupon/GetCoupon/index.vue @@ -0,0 +1,319 @@ + + + + diff --git a/pages/user/coupon/UserCoupon/index.vue b/pages/user/coupon/UserCoupon/index.vue new file mode 100644 index 0000000..eb2971e --- /dev/null +++ b/pages/user/coupon/UserCoupon/index.vue @@ -0,0 +1,72 @@ + + diff --git a/pages/user/promotion/CashAudit/index.vue b/pages/user/promotion/CashAudit/index.vue new file mode 100644 index 0000000..6c7c885 --- /dev/null +++ b/pages/user/promotion/CashAudit/index.vue @@ -0,0 +1,31 @@ + + diff --git a/pages/user/promotion/CashRecord/index.vue b/pages/user/promotion/CashRecord/index.vue new file mode 100644 index 0000000..d27a08b --- /dev/null +++ b/pages/user/promotion/CashRecord/index.vue @@ -0,0 +1,103 @@ + + diff --git a/pages/user/promotion/CommissionDetails/index.vue b/pages/user/promotion/CommissionDetails/index.vue new file mode 100644 index 0000000..0ac776e --- /dev/null +++ b/pages/user/promotion/CommissionDetails/index.vue @@ -0,0 +1,102 @@ + + diff --git a/pages/user/promotion/Poster/index.vue b/pages/user/promotion/Poster/index.vue new file mode 100644 index 0000000..e31ce10 --- /dev/null +++ b/pages/user/promotion/Poster/index.vue @@ -0,0 +1,178 @@ + + + + diff --git a/pages/user/promotion/PromoterList/index.vue b/pages/user/promotion/PromoterList/index.vue new file mode 100644 index 0000000..9f46e76 --- /dev/null +++ b/pages/user/promotion/PromoterList/index.vue @@ -0,0 +1,239 @@ + + diff --git a/pages/user/promotion/PromoterOrder/index.vue b/pages/user/promotion/PromoterOrder/index.vue new file mode 100644 index 0000000..31df1cc --- /dev/null +++ b/pages/user/promotion/PromoterOrder/index.vue @@ -0,0 +1,105 @@ + + diff --git a/pages/user/promotion/UserCash/index.vue b/pages/user/promotion/UserCash/index.vue new file mode 100644 index 0000000..6c4a8c1 --- /dev/null +++ b/pages/user/promotion/UserCash/index.vue @@ -0,0 +1,255 @@ + + + diff --git a/pages/user/promotion/UserPromotion/index.vue b/pages/user/promotion/UserPromotion/index.vue new file mode 100644 index 0000000..686dc42 --- /dev/null +++ b/pages/user/promotion/UserPromotion/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/pages/user/signIn/Integral/index.vue b/pages/user/signIn/Integral/index.vue new file mode 100644 index 0000000..8f86da5 --- /dev/null +++ b/pages/user/signIn/Integral/index.vue @@ -0,0 +1,165 @@ + + + diff --git a/pages/user/signIn/Sign/index.vue b/pages/user/signIn/Sign/index.vue new file mode 100644 index 0000000..55a61c5 --- /dev/null +++ b/pages/user/signIn/Sign/index.vue @@ -0,0 +1,185 @@ + + + diff --git a/pages/user/signIn/SignRecord/index.vue b/pages/user/signIn/SignRecord/index.vue new file mode 100644 index 0000000..e40baba --- /dev/null +++ b/pages/user/signIn/SignRecord/index.vue @@ -0,0 +1,65 @@ + + diff --git a/splash/1024+1024.png b/splash/1024+1024.png new file mode 100644 index 0000000..b348ce5 Binary files /dev/null and b/splash/1024+1024.png differ diff --git a/splash/1080+1882.png b/splash/1080+1882.png new file mode 100644 index 0000000..cf5daed Binary files /dev/null and b/splash/1080+1882.png differ diff --git a/splash/1125+2436.png b/splash/1125+2436.png new file mode 100644 index 0000000..f304e91 Binary files /dev/null and b/splash/1125+2436.png differ diff --git a/splash/1142+2208.png b/splash/1142+2208.png new file mode 100644 index 0000000..21d3aef Binary files /dev/null and b/splash/1142+2208.png differ diff --git a/splash/1242+2688.png b/splash/1242+2688.png new file mode 100644 index 0000000..24fa478 Binary files /dev/null and b/splash/1242+2688.png differ diff --git a/splash/480+762.png b/splash/480+762.png new file mode 100644 index 0000000..88b617e Binary files /dev/null and b/splash/480+762.png differ diff --git a/splash/640+1136.png b/splash/640+1136.png new file mode 100644 index 0000000..cc8b91e Binary files /dev/null and b/splash/640+1136.png differ diff --git a/splash/640+960.png b/splash/640+960.png new file mode 100644 index 0000000..9c3b8a8 Binary files /dev/null and b/splash/640+960.png differ diff --git a/splash/720+1242.png b/splash/720+1242.png new file mode 100644 index 0000000..9165b52 Binary files /dev/null and b/splash/720+1242.png differ diff --git a/splash/750+1334.png b/splash/750+1334.png new file mode 100644 index 0000000..eda7928 Binary files /dev/null and b/splash/750+1334.png differ diff --git a/splash/828+1792.png b/splash/828+1792.png new file mode 100644 index 0000000..a517e3e Binary files /dev/null and b/splash/828+1792.png differ diff --git a/static/icon-cart-hot.png b/static/icon-cart-hot.png new file mode 100644 index 0000000..c9da1f3 Binary files /dev/null and b/static/icon-cart-hot.png differ diff --git a/static/icon-cart.png b/static/icon-cart.png new file mode 100644 index 0000000..13b374a Binary files /dev/null and b/static/icon-cart.png differ diff --git a/static/icon-class-hot.png b/static/icon-class-hot.png new file mode 100644 index 0000000..b220f7f Binary files /dev/null and b/static/icon-class-hot.png differ diff --git a/static/icon-class.png b/static/icon-class.png new file mode 100644 index 0000000..ee0e775 Binary files /dev/null and b/static/icon-class.png differ diff --git a/static/icon-home-hot.png b/static/icon-home-hot.png new file mode 100644 index 0000000..11b8b7f Binary files /dev/null and b/static/icon-home-hot.png differ diff --git a/static/icon-home.png b/static/icon-home.png new file mode 100644 index 0000000..298fad7 Binary files /dev/null and b/static/icon-home.png differ diff --git a/static/icon-user-hot.png b/static/icon-user-hot.png new file mode 100644 index 0000000..a60c5cb Binary files /dev/null and b/static/icon-user-hot.png differ diff --git a/static/icon-user.png b/static/icon-user.png new file mode 100644 index 0000000..fedf6c8 Binary files /dev/null and b/static/icon-user.png differ diff --git a/static/live-logo.gif b/static/live-logo.gif new file mode 100644 index 0000000..a155913 Binary files /dev/null and b/static/live-logo.gif differ diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..3bfaa02 --- /dev/null +++ b/store/index.js @@ -0,0 +1,151 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) +const debug = process.env.NODE_ENV !== 'production' + +import cookie from '@/utils/store/cookie' +import { getUserInfo, getUser } from '@/api/user' +import dialog from '@/utils/dialog' + +const loginKey = 'login_status' + +const vuexStore = new Vuex.Store({ + state: { + // 是否已经在授权页面 + isAuthorizationPage: false, + // 是否授权 + isAuthorization: false, + // 不建议从这里取 token,但是删除掉会影响其他的页面 + token: cookie.get(loginKey) || null, + userInfo: cookie.get('userInfo'), + $deviceType: null, + location: { + latitude: '', + longitude: '', + }, + storeItems: cookie.get('storeItems') || null, + goName: cookie.get('goName') || '', + }, + mutations: { + login(state, token, expires_time) { + console.log('设置token') + state.token = token + cookie.set(loginKey, token, expires_time) + }, + logout(state) { + console.log('清除数据') + state.token = null + state.userInfo = null + cookie.clearAll() + }, + backgroundColor(state, color) { + state.color = color + // document.body.style.backgroundColor = color; + }, + updateUserInfo(state, userInfo) { + state.userInfo = userInfo + if (userInfo) { + cookie.set('userInfo', userInfo) + } else { + cookie.set('userInfo', null) + } + }, + updateAuthorizationPage(state, isAuthorizationPage) { + state.isAuthorizationPage = isAuthorizationPage + }, + updateAuthorization(state, isAuthorization) { + state.isAuthorization = isAuthorization + }, + updateDevicetype(state, $deviceType) { + state.$deviceType = $deviceType + }, + setLocation(state, location) { + state.location = location + }, + get_store(state, storeItems) { + state.storeItems = storeItems + cookie.set('storeItems', storeItems) + }, + get_to(state, goName) { + state.goName = goName + cookie.set('goName', goName) + }, + }, + actions: { + getLocation({ state, commit }, force) { + uni.getLocation({ + type: 'gcj02', + success: function(res) { + console.log(res) + commit('setLocation', { + longitude: res.longitude, + latitude: res.latitude, + }) + }, + }) + }, + userInfo({ state, commit }, force) { + if (state.userInfo !== null && !force) { + return Promise.resolve(state.userInfo) + } + return new Promise(reslove => { + getUserInfo().then(res => { + commit('updateUserInfo', res.data) + reslove(res.data) + }) + }).catch(() => { + uni.showToast({ + title: '获取信息失败!', + icon: 'none', + duration: 2000, + }) + }) + }, + getUser({ state, commit }) { + if (!state.token) { + return Promise.reject('未获取到token') + } + return new Promise(reslove => { + getUserInfo().then(res => { + console.log(res) + commit('updateUserInfo', res.data) + reslove(res.data) + }) + }).catch(error => { + console.log(error) + uni.showToast({ + title: '获取信息失败!', + icon: 'none', + duration: 2000, + }) + }) + }, + changeLogin({ state, commit }, data, date) { + commit('login', data, date) + }, + setUserInfo({ state, commit }, user) { + commit('updateUserInfo', user) + }, + changeAuthorizationPage({ state, commit }, index) { + commit('updateAuthorizationPage', index) + }, + changeAuthorization({ state, commit }, index) { + commit('updateAuthorization', index) + }, + }, + getters: { + isAuthorizationPage: state => state.isAuthorizationPage, + isAuthorization: state => state.isAuthorization, + token: state => state.token, + isLogin: state => !!state.token, + userInfo: state => state.userInfo || {}, + location: state => state.location, + storeItems: state => state.storeItems, + goName: state => state.goName, + $deviceType: state => state.$deviceType, + }, + strict: debug, +}) + +export default vuexStore diff --git a/uni.css b/uni.css new file mode 100644 index 0000000..46acb08 --- /dev/null +++ b/uni.css @@ -0,0 +1,510 @@ +@charset "UTF-8"; +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +/* ================== + 自定义变量 + ==================== */ +/*盒子模型*/ +.mt2 { + margin-top: 2rpx; +} + +.mr2 { + margin-right: 2rpx; +} + +.mb2 { + margin-bottom: 2rpx; +} + +.ml2 { + margin-left: 2rpx; +} + +.mx2 { + margin-left: 2rpx; + margin-right: 2rpx; +} + +.my2 { + margin-top: 2rpx; + margin-bottom: 2rpx; +} + +.ma2 { + margin: 2rpx; +} + +.mt4 { + margin-top: 4rpx; +} + +.mr4 { + margin-right: 4rpx; +} + +.mb4 { + margin-bottom: 4rpx; +} + +.ml4 { + margin-left: 4rpx; +} + +.mx4 { + margin-left: 4rpx; + margin-right: 4rpx; +} + +.my4 { + margin-top: 4rpx; + margin-bottom: 4rpx; +} + +.ma4 { + margin: 4rpx; +} + +.mt8 { + margin-top: 8rpx; +} + +.mr8 { + margin-right: 8rpx; +} + +.mb8 { + margin-bottom: 8rpx; +} + +.ml8 { + margin-left: 8rpx; +} + +.mx8 { + margin-left: 8rpx; + margin-right: 8rpx; +} + +.my8 { + margin-top: 8rpx; + margin-bottom: 8rpx; +} + +.ma8 { + margin: 8rpx; +} + +.mt10 { + margin-top: 10rpx; +} + +.mr10 { + margin-right: 10rpx; +} + +.mb10 { + margin-bottom: 10rpx; +} + +.ml10 { + margin-left: 10rpx; +} + +.mx10 { + margin-left: 10rpx; + margin-right: 10rpx; +} + +.my10 { + margin-top: 10rpx; + margin-bottom: 10rpx; +} + +.ma10 { + margin: 10rpx; +} + +.mt15 { + margin-top: 15rpx; +} + +.mr15 { + margin-right: 15rpx; +} + +.mb15 { + margin-bottom: 15rpx; +} + +.ml15 { + margin-left: 15rpx; +} + +.mx15 { + margin-left: 15rpx; + margin-right: 15rpx; +} + +.my15 { + margin-top: 15rpx; + margin-bottom: 15rpx; +} + +.ma15 { + margin: 15rpx; +} + +.mt20 { + margin-top: 20rpx; +} + +.mr20 { + margin-right: 20rpx; +} + +.mb20 { + margin-bottom: 20rpx; +} + +.ml20 { + margin-left: 20rpx; +} + +.mx20 { + margin-left: 20rpx; + margin-right: 20rpx; +} + +.my20 { + margin-top: 20rpx; + margin-bottom: 20rpx; +} + +.ma20 { + margin: 20rpx; +} + +.mt24 { + margin-top: 24rpx; +} + +.mr24 { + margin-right: 24rpx; +} + +.mb24 { + margin-bottom: 24rpx; +} + +.ml24 { + margin-left: 24rpx; +} + +.mx24 { + margin-left: 24rpx; + margin-right: 24rpx; +} + +.my24 { + margin-top: 24rpx; + margin-bottom: 24rpx; +} + +.ma24 { + margin: 24rpx; +} + +.mt30 { + margin-top: 30rpx; +} + +.mr30 { + margin-right: 30rpx; +} + +.mb30 { + margin-bottom: 30rpx; +} + +.ml30 { + margin-left: 30rpx; +} + +.mx30 { + margin-left: 30rpx; + margin-right: 30rpx; +} + +.my30 { + margin-top: 30rpx; + margin-bottom: 30rpx; +} + +.ma30 { + margin: 30rpx; +} + +.pt2 { + padding-top: 2rpx; +} + +.pr2 { + padding-right: 2rpx; +} + +.pb2 { + padding-bottom: 2rpx; +} + +.pl2 { + padding-left: 2rpx; +} + +.px2 { + padding-left: 2rpx; + padding-right: 2rpx; +} + +.py2 { + padding-top: 2rpx; + padding-bottom: 2rpx; +} + +.pa2 { + padding: 2rpx; +} + +.pt4 { + padding-top: 4rpx; +} + +.pr4 { + padding-right: 4rpx; +} + +.pb4 { + padding-bottom: 4rpx; +} + +.pl4 { + padding-left: 4rpx; +} + +.px4 { + padding-left: 4rpx; + padding-right: 4rpx; +} + +.py4 { + padding-top: 4rpx; + padding-bottom: 4rpx; +} + +.pa4 { + padding: 4rpx; +} + +.pt8 { + padding-top: 8rpx; +} + +.pr8 { + padding-right: 8rpx; +} + +.pb8 { + padding-bottom: 8rpx; +} + +.pl8 { + padding-left: 8rpx; +} + +.px8 { + padding-left: 8rpx; + padding-right: 8rpx; +} + +.py8 { + padding-top: 8rpx; + padding-bottom: 8rpx; +} + +.pa8 { + padding: 8rpx; +} + +.pt10 { + padding-top: 10rpx; +} + +.pr10 { + padding-right: 10rpx; +} + +.pb10 { + padding-bottom: 10rpx; +} + +.pl10 { + padding-left: 10rpx; +} + +.px10 { + padding-left: 10rpx; + padding-right: 10rpx; +} + +.py10 { + padding-top: 10rpx; + padding-bottom: 10rpx; +} + +.pa10 { + padding: 10rpx; +} + +.pt15 { + padding-top: 15rpx; +} + +.pr15 { + padding-right: 15rpx; +} + +.pb15 { + padding-bottom: 15rpx; +} + +.pl15 { + padding-left: 15rpx; +} + +.px15 { + padding-left: 15rpx; + padding-right: 15rpx; +} + +.py15 { + padding-top: 15rpx; + padding-bottom: 15rpx; +} + +.pa15 { + padding: 15rpx; +} + +.pt20 { + padding-top: 20rpx; +} + +.pr20 { + padding-right: 20rpx; +} + +.pb20 { + padding-bottom: 20rpx; +} + +.pl20 { + padding-left: 20rpx; +} + +.px20 { + padding-left: 20rpx; + padding-right: 20rpx; +} + +.py20 { + padding-top: 20rpx; + padding-bottom: 20rpx; +} + +.pa20 { + padding: 20rpx; +} + +.pt24 { + padding-top: 24rpx; +} + +.pr24 { + padding-right: 24rpx; +} + +.pb24 { + padding-bottom: 24rpx; +} + +.pl24 { + padding-left: 24rpx; +} + +.px24 { + padding-left: 24rpx; + padding-right: 24rpx; +} + +.py24 { + padding-top: 24rpx; + padding-bottom: 24rpx; +} + +.pa24 { + padding: 24rpx; +} + +.pt30 { + padding-top: 30rpx; +} + +.pr30 { + padding-right: 30rpx; +} + +.pb30 { + padding-bottom: 30rpx; +} + +.pl30 { + padding-left: 30rpx; +} + +.px30 { + padding-left: 30rpx; + padding-right: 30rpx; +} + +.py30 { + padding-top: 30rpx; + padding-bottom: 30rpx; +} + +.pa30 { + padding: 30rpx; +} +/*# sourceMappingURL=uni.css.map */ \ No newline at end of file diff --git a/uni.css.map b/uni.css.map new file mode 100644 index 0000000..0c06e82 --- /dev/null +++ b/uni.css.map @@ -0,0 +1,9 @@ +{ + "version": 3, + "mappings": "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", + "sources": [ + "uni.scss" + ], + "names": [], + "file": "uni.css" +} \ No newline at end of file diff --git a/uni.min.css b/uni.min.css new file mode 100644 index 0000000..7dc8e7f --- /dev/null +++ b/uni.min.css @@ -0,0 +1 @@ +.mt2{margin-top:2rpx}.mr2{margin-right:2rpx}.mb2{margin-bottom:2rpx}.ml2{margin-left:2rpx}.mx2{margin-left:2rpx;margin-right:2rpx}.my2{margin-top:2rpx;margin-bottom:2rpx}.ma2{margin:2rpx}.mt4{margin-top:4rpx}.mr4{margin-right:4rpx}.mb4{margin-bottom:4rpx}.ml4{margin-left:4rpx}.mx4{margin-left:4rpx;margin-right:4rpx}.my4{margin-top:4rpx;margin-bottom:4rpx}.ma4{margin:4rpx}.mt8{margin-top:8rpx}.mr8{margin-right:8rpx}.mb8{margin-bottom:8rpx}.ml8{margin-left:8rpx}.mx8{margin-left:8rpx;margin-right:8rpx}.my8{margin-top:8rpx;margin-bottom:8rpx}.ma8{margin:8rpx}.mt10{margin-top:10rpx}.mr10{margin-right:10rpx}.mb10{margin-bottom:10rpx}.ml10{margin-left:10rpx}.mx10{margin-left:10rpx;margin-right:10rpx}.my10{margin-top:10rpx;margin-bottom:10rpx}.ma10{margin:10rpx}.mt15{margin-top:15rpx}.mr15{margin-right:15rpx}.mb15{margin-bottom:15rpx}.ml15{margin-left:15rpx}.mx15{margin-left:15rpx;margin-right:15rpx}.my15{margin-top:15rpx;margin-bottom:15rpx}.ma15{margin:15rpx}.mt20{margin-top:20rpx}.mr20{margin-right:20rpx}.mb20{margin-bottom:20rpx}.ml20{margin-left:20rpx}.mx20{margin-left:20rpx;margin-right:20rpx}.my20{margin-top:20rpx;margin-bottom:20rpx}.ma20{margin:20rpx}.mt24{margin-top:24rpx}.mr24{margin-right:24rpx}.mb24{margin-bottom:24rpx}.ml24{margin-left:24rpx}.mx24{margin-left:24rpx;margin-right:24rpx}.my24{margin-top:24rpx;margin-bottom:24rpx}.ma24{margin:24rpx}.mt30{margin-top:30rpx}.mr30{margin-right:30rpx}.mb30{margin-bottom:30rpx}.ml30{margin-left:30rpx}.mx30{margin-left:30rpx;margin-right:30rpx}.my30{margin-top:30rpx;margin-bottom:30rpx}.ma30{margin:30rpx}.pt2{padding-top:2rpx}.pr2{padding-right:2rpx}.pb2{padding-bottom:2rpx}.pl2{padding-left:2rpx}.px2{padding-left:2rpx;padding-right:2rpx}.py2{padding-top:2rpx;padding-bottom:2rpx}.pa2{padding:2rpx}.pt4{padding-top:4rpx}.pr4{padding-right:4rpx}.pb4{padding-bottom:4rpx}.pl4{padding-left:4rpx}.px4{padding-left:4rpx;padding-right:4rpx}.py4{padding-top:4rpx;padding-bottom:4rpx}.pa4{padding:4rpx}.pt8{padding-top:8rpx}.pr8{padding-right:8rpx}.pb8{padding-bottom:8rpx}.pl8{padding-left:8rpx}.px8{padding-left:8rpx;padding-right:8rpx}.py8{padding-top:8rpx;padding-bottom:8rpx}.pa8{padding:8rpx}.pt10{padding-top:10rpx}.pr10{padding-right:10rpx}.pb10{padding-bottom:10rpx}.pl10{padding-left:10rpx}.px10{padding-left:10rpx;padding-right:10rpx}.py10{padding-top:10rpx;padding-bottom:10rpx}.pa10{padding:10rpx}.pt15{padding-top:15rpx}.pr15{padding-right:15rpx}.pb15{padding-bottom:15rpx}.pl15{padding-left:15rpx}.px15{padding-left:15rpx;padding-right:15rpx}.py15{padding-top:15rpx;padding-bottom:15rpx}.pa15{padding:15rpx}.pt20{padding-top:20rpx}.pr20{padding-right:20rpx}.pb20{padding-bottom:20rpx}.pl20{padding-left:20rpx}.px20{padding-left:20rpx;padding-right:20rpx}.py20{padding-top:20rpx;padding-bottom:20rpx}.pa20{padding:20rpx}.pt24{padding-top:24rpx}.pr24{padding-right:24rpx}.pb24{padding-bottom:24rpx}.pl24{padding-left:24rpx}.px24{padding-left:24rpx;padding-right:24rpx}.py24{padding-top:24rpx;padding-bottom:24rpx}.pa24{padding:24rpx}.pt30{padding-top:30rpx}.pr30{padding-right:30rpx}.pb30{padding-bottom:30rpx}.pl30{padding-left:30rpx}.px30{padding-left:30rpx;padding-right:30rpx}.py30{padding-top:30rpx;padding-bottom:30rpx}.pa30{padding:30rpx} diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..9e9c121 --- /dev/null +++ b/uni.scss @@ -0,0 +1,130 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:24upx; +$uni-font-size-base:28upx; +$uni-font-size-lg:32upx; + +/* 图片尺寸 */ +$uni-img-size-sm:40upx; +$uni-img-size-base:52upx; +$uni-img-size-lg:80upx; + +/* Border Radius */ +$uni-border-radius-sm: 4upx; +$uni-border-radius-base: 6upx; +$uni-border-radius-lg: 12upx; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 10px; +$uni-spacing-row-base: 20upx; +$uni-spacing-row-lg: 30upx; + +/* 垂直间距 */ +$uni-spacing-col-sm: 8upx; +$uni-spacing-col-base: 16upx; +$uni-spacing-col-lg: 24upx; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:40upx; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:36upx; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:30upx; + + + +/* ================== + 自定义变量 + ==================== */ + $spaceTypes: ( + m: margin, + p: padding +); +$spaceDirections: ( + t: top, + r: right, + b: bottom, + l: left +); +$spaceSizes: ( + 2: 2rpx, + 4: 4rpx, + 8: 8rpx, + 10: 10rpx, + 15: 15rpx, + 20: 20rpx, + 24: 24rpx, + 30: 30rpx +); + + +/*盒子模型*/ +@each $typeKey, $type in $spaceTypes { + @each $sizeKey, $size in $spaceSizes { + // margin-top:10rpx + @each $directionKey, $direction in $spaceDirections { + .#{$typeKey}#{$directionKey}#{$sizeKey} { + #{$type}-#{$direction}: $size; + } + } + + // margin: 10rpx 0; + .#{$typeKey}x#{$sizeKey} { + #{$type}-left: $size; + #{$type}-right: $size; + } + .#{$typeKey}y#{$sizeKey} { + #{$type}-top: $size; + #{$type}-bottom: $size; + } + + // margin: 10rpx ; + .#{$typeKey}a#{$sizeKey} { + #{$type}: $size; + } + } +} diff --git a/utils/bc.js b/utils/bc.js new file mode 100644 index 0000000..da7e13d --- /dev/null +++ b/utils/bc.js @@ -0,0 +1,115 @@ +//除法函数,用来得到精确的除法结果 +//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。 +//调用:div(arg1,arg2) +//返回值:arg1除以arg2的精确结果 +export function div(arg1, arg2) { + var t1 = 0, + t2 = 0, + r1, + r2; + try { + t1 = arg1.toString().split(".")[1].length; + } catch (e) { + t1 = 0; + } + try { + t2 = arg2.toString().split(".")[1].length; + } catch (e) { + t2 = 0; + } + r1 = Number(arg1.toString().replace(".", "")); + r2 = Number(arg2.toString().replace(".", "")); + return mul(r1 / r2, Math.pow(10, t2 - t1)); +} +//乘法函数,用来得到精确的乘法结果 +//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。 +//调用:mul(arg1,arg2) +//返回值:arg1乘以arg2的精确结果 +export function mul(arg1, arg2) { + var m = 0, + s1 = arg1.toString(), + s2 = arg2.toString(); + try { + m += s1.split(".")[1].length; + } catch (e) { + m = 0; + } + try { + m += s2.split(".")[1].length; + } catch (e) { + m = m || 0; + } + return ( + (Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) / + Math.pow(10, m) + ); +} + +//加法函数,用来得到精确的加法结果 +//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 +//调用:add(arg1,arg2) +//返回值:arg1加上arg2的精确结果 +export function add(arg1, arg2) { + var r1, r2, m, n; + try { + r1 = arg1.toString().split(".")[1].length; + } catch (e) { + r1 = 0; + } + try { + r2 = arg2.toString().split(".")[1].length; + } catch (e) { + r2 = 0; + } + m = Math.pow(10, Math.max(r1, r2)); + n = r1 >= r2 ? r1 : r2; + return ((arg1 * m + arg2 * m) / m).toFixed(n); +} + +//减法函数,用来得到精确的减法结果 +//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。 +//调用:sub(arg1,arg2) +//返回值:arg1减去arg2的精确结果 +export function sub(arg1, arg2) { + var r1, r2, m, n; + try { + r1 = arg1.toString().split(".")[1].length; + } catch (e) { + r1 = 0; + } + try { + r2 = arg2.toString().split(".")[1].length; + } catch (e) { + r2 = 0; + } + m = Math.pow(10, Math.max(r1, r2)); + //动态控制精度长度 + n = r1 >= r2 ? r1 : r2; + return ((arg1 * m - arg2 * m) / m).toFixed(n); +} + +function Compute(value) { + this.value = value; +} +Object.assign(Compute.prototype, { + add(v) { + this.value = add(this.value, v); + return this; + }, + sub(v) { + this.value = sub(this.value, v); + return this; + }, + div(v) { + this.value = div(this.value, v); + return this; + }, + mul(v) { + this.value = mul(this.value, v); + return this; + } +}); + +export default function(value) { + return new Compute(value); +} diff --git a/utils/dialog.js b/utils/dialog.js new file mode 100644 index 0000000..d6d0fc2 --- /dev/null +++ b/utils/dialog.js @@ -0,0 +1,93 @@ +const dialog = { + confirm: options => { + uni.showModal({ + title: '提示', + content: options.mes, + success(res) { + if (res.confirm) { + opts() + } else if (res.cancel) { + } + }, + }) + }, + alert: null, + // alert: Dialog.alert, + notify: null, + // notify, + loading: { + open: () => { + // uni.showLoading({ + // title: '加载中' + // }) + }, + close: () => { + uni.hideLoading() + }, + }, +} + +// const icons = { error: "操作失败", success: "操作成功" }; +// Object.keys(icons).reduce((dialog, key) => { +// dialog[key] = (mes, obj = {}) => { +// return new Promise(function (resolve) { +// toast({ +// mes: mes || icons[key], +// timeout: 1000, +// icon: key, +// callback: () => { +// resolve(); +// }, +// ...obj +// }); +// }); +// }; +// return dialog; +// }, dialog); + +dialog.message = (mes = '操作失败', obj = {}) => { + return new Promise(function(resolve) { + uni.showToast({ + title: mes, + icon: 'none', + duration: 2000, + complete: () => { + resolve() + }, + }) + }) +} + +dialog.toast = options => { + uni.showToast({ + title: options.mes, + icon: 'none', + duration: 2000, + complete: () => { + options.callback ? options.callback() : null + }, + }) +} + +dialog.error = mes => { + uni.showToast({ + title: mes, + icon: 'none', + duration: 2000, + }) +} + +dialog.validateError = (...args) => { + validatorDefaultCatch(...args) +} + +export function validatorDefaultCatch(err, type = 'message') { + uni.showToast({ + title: err.errors[0].message, + icon: 'none', + duration: 2000, + }) + return false +} + +export default dialog diff --git a/utils/index.js b/utils/index.js new file mode 100644 index 0000000..7bf9ef1 --- /dev/null +++ b/utils/index.js @@ -0,0 +1,1075 @@ +import Vue from 'vue' + +// import MpvueRouterPatch from 'mpvue-router-patch' +// Vue.use(MpvueRouterPatch) +import { wxappAuth, getUserInfo, wxappBindingPhone } from '@/api/user' +import store from '@/store' +import dayjs from 'dayjs' +import cookie from '@/utils/store/cookie' +import stringify from '@/utils/querystring' +import { VUE_APP_API_URL } from '@/config' +import { wechat, auth, oAuth, toAuth } from '@/libs/wechat' + +export function dataFormat(time, option) { + time = +time * 1000 + const d = new Date(time) + const now = new Date().getTime() + + const diff = (now - d) / 1000 + if (diff < 30) { + return '刚刚' + } else if (diff < 3600) { + // less 1 hour + return Math.ceil(diff / 60) + '分钟前' + } else if (diff < 3600 * 24) { + return Math.ceil(diff / 3600) + '小时前' + } else if (diff < 3600 * 24 * 2) { + return '1天前' + } + if (option) { + // return parseTime(time, option); + } else { + let timeStr = d.getFullYear() + '年' + (d.getMonth() + 1) + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分' + return timeStr + } +} +// 年月日,时分秒 +// "YYYY-mm-dd HH:MM" +export function dateFormatL(fmt, date) { + let ret + const opt = { + 'Y+': date.getFullYear().toString(), // 年 + 'm+': (date.getMonth() + 1).toString(), // 月 + 'd+': date.getDate().toString(), // 日 + 'H+': date.getHours().toString(), // 时 + 'M+': date.getMinutes().toString(), // 分 + 'S+': date.getSeconds().toString(), // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + } + for (let k in opt) { + ret = new RegExp('(' + k + ')').exec(fmt) + if (ret) { + fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')) + } + } + return fmt +} +export function dateFormatT(time) { + time = +time * 1000 + const d = new Date(time) + + return d.getFullYear() + '/' + (d.getMonth() + parseInt(1)) + '/' + d.getDate() +} + +export function trim(str) { + return String.prototype.trim.call(str) +} + +export function isType(arg, type) { + return Object.prototype.toString.call(arg) === '[object ' + type + ']' +} + +export function isWeixin() { + if (navigator && navigator.userAgent && navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1) { + return true + } + return false +} + +export function parseQuery() { + let res = {} + + // #ifdef H5 + const query = (location.href.split('?')[1] || '').trim().replace(/^(\?|#|&)/, '') + + if (!query) { + return res + } + + query.split('&').forEach(param => { + const parts = param.replace(/\+/g, ' ').split('=') + const key = decodeURIComponent(parts.shift()) + const val = parts.length > 0 ? decodeURIComponent(parts.join('=')) : null + + if (res[key] === undefined) { + res[key] = val + } else if (Array.isArray(res[key])) { + res[key].push(val) + } else { + res[key] = [res[key], val] + } + }) + // #endif + // #ifndef H5 + var pages = getCurrentPages() //获取加载的页面 + var currentPage = pages[pages.length - 1] //获取当前页面的对象 + var url = currentPage.route //当前页面url + res = currentPage.options //如果要获取url中所带的参数可以查看options + // #endif + + return res +} + +/*获取当前页url*/ +export function getCurrentPageUrl() { + var pages = getCurrentPages() //获取加载的页面 + var currentPage = pages[pages.length - 1] //获取当前页面的对象 + var url = currentPage.route //当前页面url + return url +} + +/*获取当前页带参数的url*/ +export function getCurrentPageUrlWithArgs() { + var pages = getCurrentPages() //获取加载的页面 + var currentPage = pages[pages.length - 1] //获取当前页面的对象 + var url = currentPage.route //当前页面url + var options = currentPage.options //如果要获取url中所带的参数可以查看options + //拼接url的参数 + var urlWithArgs = url + '?' + for (var key in options) { + var value = options[key] + urlWithArgs += key + '=' + value + '&' + } + urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) + return urlWithArgs +} + +// 复制到剪切板 +export const copyClipboard = data => { + uni.setClipboardData({ + data: data, + success: res => { + uni.showToast({ + title: '复制成功', + icon: 'success', + duration: 2000, + }) + }, + }) +} + +export const getProvider = service => { + return new Promise((resolve, reject) => { + // 获取当前环境的服务商 + uni.getProvider({ + service: service || 'oauth', + success: function(res) { + // 此处可以排除h5 + if (res.provider) { + resolve(res.provider[0]) + } + }, + fail() { + reject('获取环境服务商失败') + }, + }) + }).catch(error => { + console.log('167',error) + }) +} + +export const authorize = authorizeStr => { + return new Promise((resolve, reject) => { + console.log('检验授权', `scope.${authorizeStr}`) + uni.getSetting({ + success(res) { + console.log(res.authSetting) + if (res.authSetting[`scope.${authorizeStr}`]) { + resolve(true) + } else { + resolve(false) + } + }, + fail() { + resolve(false) + }, + }) + }) +} + +export const login = loginInfo => { + return new Promise((resolve, reject) => { + if (Vue.prototype.$deviceType == 'weixin') { + // 微信授权登录 + const { code } = parseQuery() + if (code) { + auth(code) + .then(() => { + let redirect = cookie.get('redirect').replace(/\ /g, '') + console.log('199',redirect) + if (redirect) { + redirect = redirect.split('/pages')[1] + if (!redirect) { + redirect = '/Loading/index' + } + reLaunch({ + path: '/pages' + redirect, + }) + cookie.remove('redirect') + } else { + reLaunch({ + path: '/pages/home/index', + }) + } + }) + .catch(() => { + reject('当前运行环境为微信浏览器') + reLaunch({ + path: '/pages/home/index', + }) + }) + } else { + } + return + } + if (Vue.prototype.$deviceType == 'weixinh5') { + console.log('当前运行环境为H5') + reject('当前运行环境为H5') + return + } + if (Vue.prototype.$deviceType == 'app') { + console.log('当前运行环境为app') + reject('当前运行环境为app') + return + } + console.log('————————————————————') + console.log('开始登录') + console.log('————————————————————') + console.log('获取环境商') + getProvider() + .then(provider => { + console.log('当前的环境商') + console.log(provider) + if (!provider) { + reject() + } + // 调用登录接口 + console.log('调用登录接口') + uni.login({ + provider: provider, + success: async function(loginRes) { + console.log(loginRes) + // 微信登录 + console.log('登录接口调用成功') + console.log('开始检查用户信息授权') + let code = loginRes.code + cookie.set('wxLoginCode', loginRes.code) + + let authorizeRes = await authorize('userInfo') + if (!wx.getUserProfile && !authorizeRes) { + reject('用户未授权') + return + } + if (wx.getUserProfile) { + if (loginInfo) { + wxappAuth({ + encryptedData: loginInfo.encryptedData, + iv: loginInfo.iv, + code: code, + spread: cookie.get('spread'), + }) + .then(({ data }) => { + console.log('登录接口调用成功') + console.log('开始处理登录信息保存,并获取用户详情') + uni.hideLoading() + store.commit('login', data.token, dayjs(data.expires_time)) + store.dispatch('userInfo', true) + getUserInfo() + .then(user => { + console.log('获取用户信息成功') + uni.setStorageSync('uid', user.data.uid) + store.dispatch('setUserInfo', user.data) + resolve(user) + }) + .catch(error => { + console.log('获取用户信息失败') + reject('获取用户信息失败') + }) + }) + .catch(error => { // 登录接口调用失败 + console.log(error) + reject('登录接口调用失败') + }) + } else { + reject('用户未授权') + return + } + } else { + uni.getUserInfo({ + provider: provider, + success: function(user) { + console.log('获取用户信息成功') + console.log('开始调用登录接口') + wxappAuth({ + // phone: user.phone + encryptedData: user.encryptedData, + iv: user.iv, + code: code, + spread: cookie.get('spread'), + }) + .then(({ data }) => { + console.log('登录成功,开始处理登录信息保存,并获取用户详情') + uni.hideLoading() + store.commit('login', data.token, dayjs(data.expires_time)) + store.dispatch('userInfo', true) + getUserInfo() + .then(user => { + console.log('获取用户信息成功') + uni.setStorageSync('uid', user.data.uid) + store.dispatch('setUserInfo', user.data) + resolve(user) + }) + .catch(error => { + console.log('获取用户信息失败') + reject('获取用户信息失败') + }) + }) + .catch(error => { + console.log(error) + console.log('登录接口调用失败') + reject('登录接口调用失败') + }) + }, + fail() { + console.log('获取用户信息失败') + reject('获取用户信息失败') + }, + }) + } + }, + fail() { + console.log('调用登录接口失败') + reject('调用登录接口失败') + }, + }) + }) + .catch(error => { + reject('获取环境服务商失败') + }) + }) +} + +export const handleGetUserInfo = () => { + getUserInfo().then(res => { + console.log('获取用户信息') + store.dispatch('setUserInfo', res.data) + console.log('获取用户信息后跳转回显的页面') + let redirect = cookie.get('redirect').replace(/\ /g, '') + if (redirect) { + reLaunch({ + path: redirect, + // query + }) + return + } + back() + // reLaunch({ + // path: '/pages/home/index', + // // query + // }) + + // var pages = getCurrentPages() //获取加载的页面 + // var currentPage = pages[pages.length - 1] //获取当前页面的对象 + // let url = "/pages/home/index" + // let query = {} + // if (currentPage) { + // const { + // redirect, + // ...querys + // } = currentPage.options + // // 获取到最后一个页面 + // if ( + // currentPage.route != 'pages/Loading/index' && + // currentPage.route != 'pages/user/Login/index' + // ) { + // url = currentPage.route + // query = { + // ...querys + // } + // } + // if (currentPage.route == 'pages/authorization/index') { + + // url = redirect + // query = { + // ...querys + // } + // } + + // } + // console.log(url) + // if (url == '/pages/home/index' || url == '/pages/shop/GoodsClass/index' || url == '/pages/shop/ShoppingCart/index' || url == '/pages/user/User/index') { + // switchTab({ + // path: `${url}`, + // query + // }); + // } else { + // let redirect = cookie.get('redirect') + // if (redirect) { + + // reLaunch({ + // path: redirect, + // // query + // }); + // return + // } + // console.log('获取用户信息后跳转回显的页面') + // // 为了防止返回上一页是授权页面,先重定向到首页,再跳转 + // console.log({ + // path: `/${url}`, + // query + // }) + // reLaunch({ + // path: '/pages/home/index', + // // query + // }); + + // setTimeout(() => { + // if (url.indexOf('/') == 0) { + // url = url.slice(1) + // } + // push({ + // path: `/${url}`, + // query + // }) + // }) + + // // push({ + // // path: `${url}`, + // // query + // // }) + // } + }) +} + +export function parseUrl(location) { + if (typeof location === 'string') return location + const { path, query } = location + + const queryStr = stringify(query) + + if (!queryStr) { + return path + } + + return `${path}?${queryStr}` +} + +export function parseRoute($mp) { + const _$mp = $mp || {} + const path = _$mp.page && _$mp.page.route + return { + path: `/${path}`, + params: {}, + query: _$mp.query || _$mp.page.options, + hash: '', + fullPath: parseUrl({ + path: `/${path}`, + query: _$mp.query || _$mp.page.options, + }), + name: path && path.replace(/\/(\w)/g, ($0, $1) => $1.toUpperCase()), + } +} + +export function handleAuth() { + /** + * 如何判断权限? + * 用户如果登录了系统,会留下两个东西,一个是token,一个是userInfo + * token存在会过期的问题,如果长时间没有打开小程序,会导致登录失效,出现打开一个页面瞬间跳转到授权页面的问题 + * 解决办法,保存token的时候加上过期时间,每次请求都取一下缓存里的token + * userInfo只是用来限时用户信息,作用并不是很大 + * ps:只需要判断 token 是否存在即可 + */ + if (cookie.get('login_status')) { + return true + } + return false +} + +export const handleLoginStatus = (location, complete, fail, success) => { + // 不登录可访问的页面 + let page = [ + { + path: '/pages/Loading/index', + name: 'loading页面', + }, + { + path: '/pages/home/index', + name: '首页', + }, + { + path: '/pages/shop/HotNewGoods/index', + name: '热门榜单', + }, + { + path: '/pages/activity/GoodsGroup/index', + name: '超值拼团', + }, + { + path: '/pages/shop/Live/LiveList/index', + name: '热门直播', + }, + { + path: '/pages/shop/GoodsClass/index', + name: '商品分类', + }, + { + path: '/pages/user/Login/index', + name: '登录页面', + }, + { + path: '/pages/authorization/index', + name: '授权页面', + }, + ] + + // 是否可以访问 + let isAuth = false + // console.log('即将跳转', location, parseUrl(location)) + + // 从 location 中获取当前url,location typeof string || object + let path = '' + if (typeof location === 'string') { + path = location + } else { + path = location.path + } + console.log(path) + // 判断用户是否有token + if (!handleAuth()) { + page.map(item => { + if (item.path == path) { + isAuth = true + } + }) + } else { + isAuth = true + } + console.log(isAuth) + return new Promise((resolve, reject) => { + resolve({ + url: parseUrl(location), + complete, + fail, + success, + }) + // if (isAuth) { + // // 有token + // if (path == '/pages/home/index' || path == '/pages/shop/GoodsClass/index' || path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') { + // // switchTab({ + // // path: parseUrl(location), + // // }) + // // return + // } + + // resolve({ + // url: parseUrl(location), + // complete, + // fail, + // success, + // }) + // } else { + // // 没有token,先校验用户是否授权,如果授权了,进行自动登录 + // routerPermissions(parseUrl(location)) + // reject() + // } + }).catch(error => { + console.log(error) + }) +} + +// export function checkPermissions(){ + +// } + +export function routerPermissions(url, type) { + console.log('routerPermissions', url) + console.log('————————') + console.log(url, type, 'routerPermissions') + console.log('————————') + let path = url + if (!path) { + path = '/' + getCurrentPageUrlWithArgs() + } + console.log(Vue.prototype.$deviceType) + if (Vue.prototype.$deviceType == 'routine') { + console.log('————————') + console.log('当前是微信小程序,开始处理小程序登录方法') + console.log('————————') + // 如果是微信小程序,跳转到授权页 + // 先校验用户是否授权,如果授权了,进行自动登录 + console.log('————————') + console.log('开始校验权限') + console.log('————————') + authorize('userInfo') + .then(() => { + // 自动登录 + console.log('————————') + console.log('自动登录') + console.log('————————') + login() + .then(res => { + // 登录成功,跳转到需要跳转的页面 + console.log('————————') + console.log('登录成功,跳转页面') + console.log('————————') + store.commit('updateAuthorizationPage', false) + if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') { + console.log('————————') + console.log('当前是购物车,或者个人中心') + console.log('————————') + return + } + if (type == 'reLaunch') { + reLaunch({ + path, + }) + return + } + if (type == 'replace') { + replace({ + path, + }) + return + } + push({ + path, + }) + }) + .catch(error => { + console.log('————————') + console.log('自动登录失败,跳转到授权页面') + console.log('————————') + uni.showToast({ + title: error, + icon: 'none', + duration: 2000, + }) + reLaunch({ + path: '/pages/authorization/index', + }) + cookie.set('redirect', path) + }) + }) + .catch(error => { + // 跳转到登录页面或者授权页面 + if (path == '/pages/shop/ShoppingCart/index' || path == '/pages/user/User/index') { + switchTab({ + path, + }) + store.commit('updateAuthorizationPage', false) + return + } + reLaunch({ + path: '/pages/authorization/index', + }) + cookie.set('redirect', path) + }) + } else if (Vue.prototype.$deviceType == 'weixin') { + wechat().then(() => oAuth()) + if (!type) { + push({ + path: url, + }) + } + } else { + console.log(path) + // 如果不是小程序跳转到登录页 + cookie.set('redirect', path) + push({ + path: '/pages/user/Login/index', + }) + } +} + +export function push(location, complete, fail, success) { + handleLoginStatus(location, complete, fail, success) + .then(params => { + uni.navigateTo(params) + }) + .catch(error => { + // 没有权限 + }) +} + +export function replace(location, complete, fail, success) { + handleLoginStatus(location, complete, fail, success) + .then(params => { + console.log(params) + uni.redirectTo(params) + }) + .catch(error => { + // 没有权限 + }) +} + +export function reLaunch(location, complete, fail, success) { + handleLoginStatus(location, complete, fail, success) + .then(params => { + console.log(params) + uni.reLaunch(params) + }) + .catch(error => { + // 没有权限 + console.log(error) + }) +} + +export function go(delta) { + uni.navigateBack({ + delta, + }) +} + +export function back() { + uni.navigateBack({ + delta: 1, + success: function(e) {}, + fail: function(e) {}, + }) +} + +export function switchTab(location, complete, fail, success) { + handleLoginStatus(location, complete, fail, success) + .then(params => { + uni.switchTab(params) + }) + .catch(error => { + // 没有权限 + }) +} + +export const _router = { + mode: 'history', + switchTab, + push, + replace, + go, + back, + reLaunch, +} + +export function handleQrCode() { + var urlSpread = parseQuery()['q'] + if (urlSpread) { + if (urlSpread.indexOf('%3F') != -1) { + // 通过海报二维码进来 + urlSpread = urlSpread + .split('%3F')[1] + .replace(/%3D/g, ':') + .replace(/%26/g, ',') + .split(',') + .map((item, index) => { + item = item.split(':') + return `"${item[0]}":"${item[1]}"` + }) + .join(',') + urlSpread = JSON.parse('{' + urlSpread + '}') + return urlSpread + } else { + return handleUrlParam(urlSpread) + } + } + return null +} + +export function handleUrlParam(path) { + var url = path.split('?')[1] //获取url中"?"符后的字串 + var theRequest = new Object() + if (path.includes('?')) { + var url = path.split('?')[1] //获取url中"?"符后的字串 + let strs = url.split('&') + for (var i = 0; i < strs.length; i++) { + theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]) + } + } + return theRequest +} + +const getImageInfo = images => { + return new Promise((resolve, reject) => { + let imageAry = {} + images.map((item, index) => { + uni.getImageInfo({ + src: item, + fail: function(res) { + imageAry[index] = null + if (imageAry.length == images.length) { + resolve(imageAry) + } + }, + success: function(res) { + imageAry[index] = res + if (Object.keys(imageAry).length == images.length) { + resolve(imageAry) + } + }, + }) + }) + }) +} + +/** + * 获取分享海报 + * @param array store 海报素材 + * @param string store_name 素材文字 + * @param string price 价格 + * @param function successFn 回调函数 + * + * + */ +export const PosterCanvas = (store, successCallBack) => { + uni.showLoading({ + title: '海报生成中', + mask: true, + }) + getImageInfo([store.image, store.code]).then(res => { + let contentHh = 48 * 1.3 + const ctx = uni.createCanvasContext('myCanvas') + ctx.clearRect(0, 0, 0, 0) + const WIDTH = 747 + const HEIGHT = 1326 + ctx.fillStyle = '#FFFFFF' + ctx.fillRect(0, 0, WIDTH, HEIGHT) + ctx.drawImage(res[0].path, 0, 0, WIDTH, WIDTH) + ctx.drawImage(res[1].path, 40, 1064, 200, 200) + ctx.save() + let r = 90 + let d = r * 2 + let cx = 40 + let cy = 990 + ctx.arc(cx + r, cy + r, r, 0, 2 * Math.PI) + ctx.clip() + ctx.restore() + ctx.setTextAlign('center') + ctx.setFontSize(48) + ctx.setFillStyle('#000') + ctx.fillText(store.title, WIDTH / 2, 810 + contentHh) + ctx.setTextAlign('center') + ctx.setFontSize(32) + ctx.setFillStyle('red') + ctx.fillText('¥' + store.price, WIDTH / 2, 985) + ctx.setTextAlign('center') + ctx.setFontSize(22) + ctx.setFillStyle('#333333') + ctx.fillText('长按识别二维码立即购买', WIDTH / 2, 1167) + ctx.save() + ctx.draw(true, () => { + uni.canvasToTempFilePath({ + canvasId: 'myCanvas', + fileType: 'png', + destWidth: WIDTH, + destHeight: HEIGHT, + success: function(res) { + uni.hideLoading() + successCallBack && successCallBack(res.tempFilePath) + }, + fail: function(error) { + console.log(error) + }, + }) + }) + }) + + // uni.getImageInfo({ + // src: store.image, + // fail: function (res) { + // uni.showToast({ + // title: '海报生成失败', + // icon: "none", + // duration: 2000 + // }); + // }, + // success: function (res) { + + // } + // }) +} + +export const handleLoginFailure = () => { + console.log('————————') + console.log('退出登录,标记当前页面为授权页面,防止多次跳转') + console.log('————————') + + store.commit('logout') + // 改为授权取消 + store.commit('updateAuthorization', false) + + let currentPageUrl = getCurrentPageUrl() + if (store.state.$deviceType == 'weixin') { + // 如果不是授权页面, + if (!store.getters.isAuthorizationPage) { + // 标识当前为授权页面 + store.commit('updateAuthorizationPage', true) + toAuth() + } + return + } else { + // token 失效 + // 判断当前是不是已经在登录页面或者授权页,防止二次跳转 + if (store.getters.isAuthorizationPage || currentPageUrl == '/pages/user/Login/index') { + console.log(store.getters.isAuthorizationPage, currentPageUrl, '已经是登录页面或者授权页面,跳出方法') + return + } + } + + console.log('————————') + console.log('当前是授权页面') + console.log(store.getters) + console.log('————————') + store.commit('updateAuthorizationPage', true) + + let path = '/' + getCurrentPageUrlWithArgs() + + let qrCode = handleQrCode() + + if (qrCode) { + // 当前是通过海报扫描进入的 + + // 判断是不是拼团进来的 + if (currentPageUrl == 'pages/activity/GroupRule/index') { + console.log('————————') + console.log('是拼团进来的') + console.log('————————') + if (qrCode.pinkId) { + path = parseUrl({ + path: `/ ${currentPageUrl} `, + query: { + id: qrCode.pinkId, + }, + }) + if (qrCode.spread) { + cookie.set('spread', qrCode.spread || 0) + } + } else { + console.log('————————') + console.log('是拼团进来的,但是没有获取到参数') + console.log('————————') + handleNoParameters() + } + } + + // 判断是不是扫描的砍价海报进来的 + if (currentPageUrl == 'pages/activity/DargainDetails/index') { + console.log('————————') + console.log('是扫描的砍价海报进来的') + console.log('————————') + + if (qrCode.bargainId) { + path = parseUrl({ + path: `/ ${currentPageUrl} `, + query: { + id: qrCode.bargainId, + partake: qrCode.uid, + }, + }) + if (qrCode.spread) { + cookie.set('spread', qrCode.spread || 0) + } + } else { + handleNoParameters() + console.log('————————') + console.log('是扫描的砍价海报进来的,但是没有获取到参数') + console.log('————————') + } + } + + if (currentPageUrl == 'pages/shop/GoodsCon/index') { + console.log('————————') + console.log('是扫描的商品详情') + console.log('————————') + + if (qrCode.productId) { + path = parseUrl({ + path: `/ ${currentPageUrl} `, + query: { + id: qrCode.productId, + }, + }) + if (qrCode.spread) { + cookie.set('spread', qrCode.spread || 0) + } + } else { + handleNoParameters() + console.log('————————') + console.log('是扫描的商品详情进来的,但是没有获取到参数') + console.log('————————') + } + } + } + + console.log('————————') + console.log(path, '重定向页面地址') + console.log('————————') + routerPermissions(path, 'reLaunch') +} + +const handleNoParameters = () => { + uni.showToast({ + title: '未获取到必要参数,即将跳转首页', + icon: 'success', + duration: 2000, + }) + setTimeout(() => { + clearTimeout() + switchTab({ + path: '/pages/home/index', + }) + }, 1500) +} + +export function chooseImage(callback) { + uni.chooseImage({ + count: 1, + sourceType: ['album'], + success: res => { + uni.getImageInfo({ + src: res.tempFilePaths[0], + success: image => { + console.log(image) + uni.showLoading({ title: '图片上传中', mask: true }) + uni.uploadFile({ + url: `${VUE_APP_API_URL}/api/upload`, + file: image, + filePath: image.path, + header: { + Authorization: 'Bearer ' + store.getters.token, + }, + name: 'file', + success: res => { + if (callback) { + callback(JSON.parse(res.data).link) + } + }, + fail: err => { + uni.showToast({ + title: '上传图片失败', + icon: 'none', + duration: 2000, + }) + }, + complete: res => { + uni.hideLoading() + }, + }) + }, + fail: err => { + uni.showToast({ + title: '获取图片信息失败', + icon: 'none', + duration: 2000, + }) + }, + }) + }, + }) +} + +export function handleErrorMessage(err) { + console.log(err) + uni.hideLoading() + uni.showToast({ + title: err.msg || err.response.data.msg || err.response.data.message || '创建订单失败', + icon: 'none', + duration: 2000, + }) +} diff --git a/utils/querystring.js b/utils/querystring.js new file mode 100644 index 0000000..bbc4bc8 --- /dev/null +++ b/utils/querystring.js @@ -0,0 +1,63 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var stringifyPrimitive = function (v) { + switch (typeof v) { + case 'string': + return v + + case 'boolean': + return v ? 'true' : 'false' + + case 'number': + return isFinite(v) ? v : '' + + default: + return '' + } +} + +function stringify(obj, sep, eq, name) { + sep = sep || '&' + eq = eq || '=' + if (obj === null) { + obj = undefined + } + + if (typeof obj === 'object') { + return Object.keys(obj).map(function (k) { + var ks = stringifyPrimitive(k) + eq + if (Array.isArray(obj[k])) { + return obj[k].map(function (v) { + return ks + stringifyPrimitive(v) + }).join(sep) + } else { + return ks + stringifyPrimitive(obj[k]) + } + }).filter(Boolean).join(sep) + + } + + if (!name) return '' + return stringifyPrimitive(name) + eq + stringifyPrimitive(obj) +} + +export default stringify diff --git a/utils/request.js b/utils/request.js new file mode 100644 index 0000000..0e10aec --- /dev/null +++ b/utils/request.js @@ -0,0 +1,152 @@ +// #ifdef H5 +// h5端 +import Fly from 'flyio/dist/npm/fly' +// #endif + +// #ifdef APP-PLUS +// app端 +import Fly from 'flyio/dist/npm/wx' +// #endif + +// #ifdef MP-WEIXIN +import Fly from 'flyio/dist/npm/wx' +// #endif + +import store from '../store' +import { handleLoginFailure } from '@/utils' +import { VUE_APP_API_URL } from '@/config' +import cookie from '@/utils/store/cookie' + +const fly = new Fly() +fly.config.baseURL = VUE_APP_API_URL + +// 小程序请求域名 +// #ifdef MP-WEIXIN +fly.config.baseURL = 'http://347i13244b.zicp.vip/api' +// #endif + +// #ifdef APP-PLUS +// app端 +fly.config.baseURL = 'http://347i13244b.zicp.vip/api' +// #endif + +fly.interceptors.response.use( + response => { + // console.log(response) + // 定时刷新access-token + return response + }, + error => { + console.log(error) + if (error.toString() == 'Error: Network Error') { + console.log('————————') + console.log('请求失败', error) + console.log('————————') + handleLoginFailure() + return Promise.reject({ msg: '未登录', toLogin: true }) + } + if (error.status == 401) { + console.log('————————') + console.log('登录失效 401', error) + console.log('————————') + handleLoginFailure() + return Promise.reject({ msg: '未登录', toLogin: true }) + } + if (error.response.data.status == 5109) { + uni.showToast({ + title: error.response.data.msg, + icon: 'none', + duration: 2000, + }) + } + return Promise.reject(error) + } +) + +const defaultOpt = { login: true } + +function baseRequest(options) { + // 从缓存中获取 token 防止 token 失效后还会继续请求的情况 + const token = cookie.get('login_status') + + // 合并传参过来的 headers + // 如果接口需要登录,携带 token 去请求 + + options.headers = { + ...options.headers, + } + + if (options.login === true) { + options.headers = { + ...options.headers, + Authorization: 'Bearer ' + token, + } + } + + // // 如果需要登录才可访问的接口没有拿到 token 视为登录失效 + // if (options.login === true && !token) { + // // 跳转到登录或授权页面 + // handleLoginFailure() + // // 提示错误信息 + // return Promise.reject({ msg: '未登录', toLogin: true }) + // } + // 结构请求需要的参数 + const { url, params, data, login, ...option } = options + + // 发起请求 + return fly + .request(url, params || data, { + ...option, + }) + .then(res => { + const data = res.data || {} + if (res.status !== 200) { + return Promise.reject({ msg: '请求失败', res, data }) + } + console.log(data) + if ([401, 403].indexOf(data.status) !== -1) { + handleLoginFailure() + return Promise.reject({ msg: res.data.msg, res, data, toLogin: true }) + } else if (data.status === 200) { + return Promise.resolve(data, res) + } else if (data.status == 5101) { + return Promise.reject({ msg: res.data.msg, res, data }) + } else { + return Promise.reject({ msg: res.data.msg, res, data }) + } + }) +} + +/** + * http 请求基础类 + * 参考文档 https://www.kancloud.cn/yunye/axios/234845 + * + */ +const request = ['post', 'put', 'patch'].reduce((request, method) => { + /** + * + * @param url string 接口地址 + * @param data object get参数 + * @param options object axios 配置项 + * @returns {AxiosPromise} + */ + request[method] = (url, data = {}, options = {}) => { + return baseRequest(Object.assign({ url, data, method }, defaultOpt, options)) + } + return request +}, {}); + +['get', 'delete', 'head'].forEach(method => { + /** + * + * @param url string 接口地址 + * @param params object get参数 + * @param options object axios 配置项 + * @returns {AxiosPromise} + */ + request[method] = (url, params = {}, options = {}) => { + return baseRequest(Object.assign({ url, params, method }, defaultOpt, options)) + } +}) + +export default request diff --git a/utils/store/cookie.js b/utils/store/cookie.js new file mode 100644 index 0000000..266f9f1 --- /dev/null +++ b/utils/store/cookie.js @@ -0,0 +1,62 @@ +import { trim, isType } from "@/utils"; + +const doc = null; +// const doc = window.document; + +function get(key) { + if (!key || !_has(key)) { + return ''; + } + return uni.getStorageSync(key) +} + +function all() { + return uni.getStorageInfoSync() +} + +function set(key, data, time) { + if (!key) { + return; + } + uni.setStorageSync(key, data) +} + +function remove(key) { + if (!key || !_has(key)) { + return; + } + uni.removeStorageSync(key) +} + +function clearAll() { + const res = uni.getStorageInfoSync(); + res.keys.map((item) => { + if (item == 'redirect' || item == 'spread') { + return + } + remove(item) + }) + console.log(res) + // debugger + // uni.clearStorageSync() +} + +function _has(key) { + if (!key) { + return + } + let value = uni.getStorageSync(key) + if (value) { + return true + } + return false +} + +export default { + get, + all, + set, + remove, + clearAll, + has: _has +}; diff --git a/utils/store/index.js b/utils/store/index.js new file mode 100644 index 0000000..4f7c7a7 --- /dev/null +++ b/utils/store/index.js @@ -0,0 +1,7 @@ +import cookie from "./cookie"; +import localStorage from "./localStorage"; + +export default { + cookie, + localStorage +}; diff --git a/utils/store/localStorage.js b/utils/store/localStorage.js new file mode 100644 index 0000000..4076cee --- /dev/null +++ b/utils/store/localStorage.js @@ -0,0 +1,42 @@ +function localStorage() { + return window.localStorage; +} + +function get(key) { + return JSON.parse(localStorage().getItem(key)); +} + +function set(key, data) { + return localStorage().setItem(key, JSON.stringify(data)); +} + +function all() { + const data = {}; + for (var i = localStorage().length - 1; i >= 0; i--) { + var key = localStorage().key(i); + data[key] = get(key); + } + + return data; +} + +function remove(key) { + return localStorage().removeItem(key); +} + +function clearAll() { + return localStorage().clear(); +} + +function has(key) { + return localStorage().getItem(key) !== null; +} + +export default { + get, + set, + all, + remove, + clearAll, + has +}; diff --git a/utils/validate.js b/utils/validate.js new file mode 100644 index 0000000..0584414 --- /dev/null +++ b/utils/validate.js @@ -0,0 +1,167 @@ +const bindMessage = (fn, message) => { + fn.message = field => message.replace("%s", field || ""); +}; + +export function required(message, opt = {}) { + return { + required: true, + message, + type: "string", + ...opt + }; +} + +bindMessage(required, "请输入%s"); + +export function url(message, opt = {}) { + return { + type: "url", + message, + ...opt + }; +} + +bindMessage(url, "请输入正确的链接"); + +export function email(message, opt = {}) { + return { + type: "email", + message, + ...opt + }; +} + +bindMessage(email, "请输入正确的邮箱地址"); + +/** + * 验证字段必须完全由字母构成。 + * + * @param message + * @returns {*} + */ +export function alpha(message) { + return attrs.pattern(/^[\w]+$/, message); +} + +bindMessage(alpha, "%s必须是字母"); + +/** + * 只能包含由字母、数字,以及 - 和 _ + * + * @param message + * @returns {*} + */ +export function alpha_dash(message) { + return attrs.pattern(/^[\w\d_-]+$/, message); +} + +bindMessage(alpha_dash, "%s只能包含由字母、数字,以及 - 和 _"); + +/** + * 必须是完全是字母、数字 + * + * @param message + * @returns {*} + */ +export function alpha_num(message) { + return attrs.pattern(/^[\w\d]+$/, message); +} + +bindMessage(alpha_num, "%s只能包含字母、数字"); +/** + * 正确的金额 + * + * @param message + * @returns {*} + */ +export function num(message) { + return attrs.pattern( + /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/, + message + ); +} + +bindMessage(num, "%s格式不正确"); + +/** + * 只能是汉字 + * @param message + * @returns {*} + */ +export function chs(message) { + return attrs.pattern(/^[\u4e00-\u9fa5]+$/, message); +} + +bindMessage(chs, "%s只能是汉字"); + +/** + * 只能包含汉字、字母 + * @param message + * @returns {*} + */ +export function chs_alpha(message) { + return attrs.pattern(/^[\u4e00-\u9fa5\w]+$/, message); +} + +bindMessage(chs_alpha, "%s只能包含汉字、字母"); + +/** + * 只能包含汉字、字母和数字 + * @param message + * @returns {*} + */ +export function chs_alpha_num(message) { + return attrs.pattern(/^[\u4e00-\u9fa5\w\d]+$/, message); +} + +bindMessage(chs_alpha_num, "%s只能包含汉字、字母和数字"); + +/** + * 只能包含由汉字、字母、数字,以及 - 和 _ + * @param message + * @returns {*} + */ +export function chs_dash(message) { + return attrs.pattern(/^[\u4e00-\u9fa5\w\d-_]+$/, message); +} + +bindMessage(chs_dash, "%s只能包含由汉字、字母、数字,以及 - 和 _"); + +/** + * 手机号验证 + * @param message + * @returns {*} + */ +export function chs_phone(message) { + return attrs.pattern(/^1(3|4|5|7|8|9|6)\d{9}$/i, message); +} +bindMessage(chs_phone, "请输入正确的手机号码"); + +const baseAttr = { + min: "%s最小长度为:min", + max: "%s最大长度为:max", + length: "%s长度必须为:length", + range: "%s长度为:range", + pattern: "$s格式错误" +}; + +const attrs = Object.keys(baseAttr).reduce((attrs, key) => { + attrs[key] = (attr, message = "", opt = {}) => { + const _attr = + key === "range" ? { min: attr[0], max: attr[1] } : { [key]: attr }; + + return { + message: message.replace( + `:${key}`, + key === "range" ? `${attr[0]}-${attr[1]}` : attr + ), + type: "string", + ..._attr, + ...opt + }; + }; + bindMessage(attrs[key], baseAttr[key]); + return attrs; +}, {}); + +export default attrs; diff --git a/utils/vconsole.min.js b/utils/vconsole.min.js new file mode 100644 index 0000000..ea401e1 --- /dev/null +++ b/utils/vconsole.min.js @@ -0,0 +1,10 @@ +/*! + * vConsole v3.3.4 (https://github.com/Tencent/vConsole) + * + * Tencent is pleased to support the open source community by making vConsole available. + * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VConsole",[],t):"object"==typeof exports?exports.VConsole=t():e.VConsole=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=6)}([function(e,t,o){var n,r,i;r=[t],void 0===(i="function"==typeof(n=function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return"[object Number]"==Object.prototype.toString.call(e)}function n(e){return"[object String]"==Object.prototype.toString.call(e)}function r(e){return"[object Array]"==Object.prototype.toString.call(e)}function i(e){return"[object Boolean]"==Object.prototype.toString.call(e)}function a(e){return void 0===e}function l(e){return null===e}function c(e){return"[object Symbol]"==Object.prototype.toString.call(e)}function s(e){return!("[object Object]"!=Object.prototype.toString.call(e)&&(o(e)||n(e)||i(e)||r(e)||l(e)||d(e)||a(e)||c(e)))}function d(e){return"[object Function]"==Object.prototype.toString.call(e)}function u(e){var t=Object.prototype.toString.call(e);return"[object global]"==t||"[object Window]"==t||"[object DOMWindow]"==t}function v(e){if(!s(e)&&!r(e))return[];if(r(e)){var t=[];return e.forEach(function(e,o){t.push(o)}),t}return Object.getOwnPropertyNames(e).sort()}Object.defineProperty(e,"__esModule",{value:!0}),e.getDate=function(e){var t=e>0?new Date(e):new Date,o=t.getDate()<10?"0"+t.getDate():t.getDate(),n=t.getMonth()<9?"0"+(t.getMonth()+1):t.getMonth()+1,r=t.getFullYear(),i=t.getHours()<10?"0"+t.getHours():t.getHours(),a=t.getMinutes()<10?"0"+t.getMinutes():t.getMinutes(),l=t.getSeconds()<10?"0"+t.getSeconds():t.getSeconds(),c=t.getMilliseconds()<10?"0"+t.getMilliseconds():t.getMilliseconds();return c<100&&(c="0"+c),{time:+t,year:r,month:n,day:o,hour:i,minute:a,second:l,millisecond:c}},e.isNumber=o,e.isString=n,e.isArray=r,e.isBoolean=i,e.isUndefined=a,e.isNull=l,e.isSymbol=c,e.isObject=s,e.isFunction=d,e.isElement=function(e){return"object"===("undefined"==typeof HTMLElement?"undefined":t(HTMLElement))?e instanceof HTMLElement:e&&"object"===t(e)&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName},e.isWindow=u,e.isPlainObject=function(e){var o,n=Object.prototype.hasOwnProperty;if(!e||"object"!==t(e)||e.nodeType||u(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(e){return!1}for(o in e);return void 0===o||n.call(e,o)},e.htmlEncode=function(e){return document.createElement("a").appendChild(document.createTextNode(e)).parentNode.innerHTML},e.JSONStringify=function(e){if(!s(e)&&!r(e))return JSON.stringify(e);var t="{",o="}";r(e)&&(t="[",o="]");for(var n=t,i=v(e),a=0;a-1||(r.push(t),e[o].className=r.join(" "))}}},removeClass:function(e,t){if(e){(0,n.isArray)(e)||(e=[e]);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:"newPlugin";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=t,this.name=o,this.isReady=!1,this.eventList={}}var t,o,r;return t=e,(o=[{key:"on",value:function(e,t){return this.eventList[e]=t,this}},{key:"trigger",value:function(e,t){if("function"==typeof this.eventList[e])this.eventList[e].call(this,t);else{var o="on"+e.charAt(0).toUpperCase()+e.slice(1);"function"==typeof this[o]&&this[o].call(this,t)}return this}},{key:"id",get:function(){return this._id},set:function(e){if(!e)throw"Plugin ID cannot be empty";this._id=e.toLowerCase()}},{key:"name",get:function(){return this._name},set:function(e){if(!e)throw"Plugin name cannot be empty";this._name=e}},{key:"vConsole",get:function(){return this._vConsole||void 0},set:function(e){if(!e)throw"vConsole cannot be empty";this._vConsole=e}}])&&n(t.prototype,o),r&&n(t,r),e}();o.default=r,e.exports=t.default})?n.apply(t,r):n)||(e.exports=i)},function(e,t,o){var n,r,i;r=[t,o(0),o(1),o(2),o(18),o(19),o(20)],void 0===(i="function"==typeof(n=function(o,n,r,i,a,l,c){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var o=0;o=o.scrollHeight?e.isInBottom=!0:e.isInBottom=!1)});for(var n=0;n-1&&g.splice(e,1)}},{key:"onShow",value:function(){this.isShow=!0,1==this.isInBottom&&this.autoScrollToBottom()}},{key:"onHide",value:function(){this.isShow=!1}},{key:"onShowConsole",value:function(){1==this.isInBottom&&this.autoScrollToBottom()}},{key:"onUpdateOption",value:function(){this.vConsole.option.maxLogNumber!=this.maxLogNumber&&(this.updateMaxLogNumber(),this.limitMaxLogs())}},{key:"updateMaxLogNumber",value:function(){this.maxLogNumber=this.vConsole.option.maxLogNumber||b,this.maxLogNumber=Math.max(1,this.maxLogNumber)}},{key:"limitMaxLogs",value:function(){if(this.isReady)for(;this.logNumber>this.maxLogNumber;){var e=r.default.one(".vc-item",this.$tabbox);if(!e)break;e.parentNode.removeChild(e),this.logNumber--}}},{key:"showLogType",value:function(e){var t=r.default.one(".vc-log",this.$tabbox);r.default.removeClass(t,"vc-log-partly-log"),r.default.removeClass(t,"vc-log-partly-info"),r.default.removeClass(t,"vc-log-partly-warn"),r.default.removeClass(t,"vc-log-partly-error"),"all"==e?r.default.removeClass(t,"vc-log-partly"):(r.default.addClass(t,"vc-log-partly"),r.default.addClass(t,"vc-log-partly-"+e))}},{key:"autoScrollToBottom",value:function(){this.vConsole.option.disableLogScrolling||this.scrollToBottom()}},{key:"scrollToBottom",value:function(){var e=r.default.one(".vc-content");e&&(e.scrollTop=e.scrollHeight-e.offsetHeight)}},{key:"mockConsole",value:function(){var e=this,t=this,o=["log","info","warn","debug","error"];window.console?(o.map(function(e){t.console[e]=window.console[e]}),t.console.time=window.console.time,t.console.timeEnd=window.console.timeEnd,t.console.clear=window.console.clear):window.console={},o.map(function(t){window.console[t]=function(){for(var o=arguments.length,n=new Array(o),r=0;r0&&(r=a[1].toLowerCase(),i=g.indexOf(r)>-1)}if(r===this.id||!0!==i&&"default"===this.id)if(e._id||(e._id="__vc_"+Math.random().toString(36).substring(2,8)),e.date||(e.date=+new Date),this.isReady){n.isString(t[0])&&i&&(t[0]=t[0].replace(o,""),""===t[0]&&t.shift());for(var l={_id:e._id,logType:e.logType,logText:[],hasContent:!!e.content,count:1},c=0;c "+t[p].toString()+"":n.isObject(t[p])||n.isArray(t[p])?this.getFoldedLine(t[p]):(l[p]?' '):" ")+n.htmlEncode(t[p]).replace(/\n/g,"
")+"
"}catch(e){b=" ["+d(t[p])+"]"}b&&("string"==typeof b?f.insertAdjacentHTML("beforeend",b):f.insertAdjacentElement("beforeend",b))}n.isObject(e.content)&&f.insertAdjacentElement("beforeend",e.content),r.default.one(".vc-log",this.$tabbox).insertAdjacentElement("beforeend",o),this.logNumber++,this.limitMaxLogs()}},{key:"getFoldedLine",value:function(e,t){var o=this;if(!t){var i=n.JSONStringify(e),a=i.substr(0,36);t=n.getObjName(e),i.length>36&&(a+="..."),t+=" "+a}var s=r.default.render(l.default,{outer:t,lineType:"obj"});return r.default.bind(r.default.one(".vc-fold-outer",s),"click",function(t){t.preventDefault(),t.stopPropagation(),r.default.hasClass(s,"vc-toggle")?(r.default.removeClass(s,"vc-toggle"),r.default.removeClass(r.default.one(".vc-fold-inner",s),"vc-toggle"),r.default.removeClass(r.default.one(".vc-fold-outer",s),"vc-toggle")):(r.default.addClass(s,"vc-toggle"),r.default.addClass(r.default.one(".vc-fold-inner",s),"vc-toggle"),r.default.addClass(r.default.one(".vc-fold-outer",s),"vc-toggle"));var i=r.default.one(".vc-fold-inner",s);return setTimeout(function(){if(0==i.children.length&&e){for(var t=n.getObjAllKeys(e),a=0;adocument.documentElement.offsetWidth&&(o=document.documentElement.offsetWidth-t.offsetWidth),n+t.offsetHeight>document.documentElement.offsetHeight&&(n=document.documentElement.offsetHeight-t.offsetHeight),o<0&&(o=0),n<0&&(n=0),this.switchPos.x=o,this.switchPos.y=n,i.default.one(".vc-switch").style.right=o+"px",i.default.one(".vc-switch").style.bottom=n+"px");var a=window.devicePixelRatio||1,c=document.querySelector('[name="viewport"]');if(c&&c.content){var s=c.content.match(/initial\-scale\=\d+(\.\d+)?/);(s?parseFloat(s[0].split("=")[1]):1)<1&&(this.$dom.style.fontSize=13*a+"px")}i.default.one(".vc-mask",this.$dom).style.display="none"}},{key:"_mockTap",value:function(){var e,t,o,n=!1,r=null;this.$dom.addEventListener("touchstart",function(n){if(void 0===e){var i=n.targetTouches[0];t=i.pageX,o=i.pageY,e=n.timeStamp,r=n.target.nodeType===Node.TEXT_NODE?n.target.parentNode:n.target}},!1),this.$dom.addEventListener("touchmove",function(e){var r=e.changedTouches[0];(Math.abs(r.pageX-t)>10||Math.abs(r.pageY-o)>10)&&(n=!0)}),this.$dom.addEventListener("touchend",function(t){if(!1===n&&t.timeStamp-e<700&&null!=r){var o=!1;switch(r.tagName.toLowerCase()){case"textarea":o=!0;break;case"input":switch(r.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":o=!1;break;default:o=!r.disabled&&!r.readOnly}}o?r.focus():t.preventDefault();var i=t.changedTouches[0],a=document.createEvent("MouseEvents");a.initMouseEvent("click",!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),a.forwardedTouchEvent=!0,a.initEvent("click",!0,!0),r.dispatchEvent(a)}e=void 0,n=!1,r=null},!1)}},{key:"_bindEvent",value:function(){var e=this,t=i.default.one(".vc-switch",e.$dom);i.default.bind(t,"touchstart",function(t){e.switchPos.startX=t.touches[0].pageX,e.switchPos.startY=t.touches[0].pageY}),i.default.bind(t,"touchend",function(t){e.switchPos.x=e.switchPos.endX,e.switchPos.y=e.switchPos.endY,e.switchPos.startX=0,e.switchPos.startY=0,r.setStorage("switch_x",e.switchPos.x),r.setStorage("switch_y",e.switchPos.y)}),i.default.bind(t,"touchmove",function(o){if(o.touches.length>0){var n=o.touches[0].pageX-e.switchPos.startX,r=o.touches[0].pageY-e.switchPos.startY,i=e.switchPos.x-n,a=e.switchPos.y-r;i+t.offsetWidth>document.documentElement.offsetWidth&&(i=document.documentElement.offsetWidth-t.offsetWidth),a+t.offsetHeight>document.documentElement.offsetHeight&&(a=document.documentElement.offsetHeight-t.offsetHeight),i<0&&(i=0),a<0&&(a=0),t.style.right=i+"px",t.style.bottom=a+"px",e.switchPos.endX=i,e.switchPos.endY=a,o.preventDefault()}}),i.default.bind(i.default.one(".vc-switch",e.$dom),"click",function(){e.show()}),i.default.bind(i.default.one(".vc-hide",e.$dom),"click",function(){e.hide()}),i.default.bind(i.default.one(".vc-mask",e.$dom),"click",function(t){if(t.target!=i.default.one(".vc-mask"))return!1;e.hide()}),i.default.delegate(i.default.one(".vc-tabbar",e.$dom),"click",".vc-tab",function(t){var o=this.dataset.tab;o!=e.activedTab&&e.showTab(o)}),i.default.bind(i.default.one(".vc-panel",e.$dom),"transitionend webkitTransitionEnd oTransitionEnd otransitionend",function(t){if(t.target!=i.default.one(".vc-panel"))return!1;i.default.hasClass(e.$dom,"vc-toggle")||(t.target.style.display="none")});var o=i.default.one(".vc-content",e.$dom),n=!1;i.default.bind(o,"touchstart",function(e){var t=o.scrollTop,r=o.scrollHeight,a=t+o.offsetHeight;0===t?(o.scrollTop=1,0===o.scrollTop&&(i.default.hasClass(e.target,"vc-cmd-input")||(n=!0))):a===r&&(o.scrollTop=t-1,o.scrollTop===t&&(i.default.hasClass(e.target,"vc-cmd-input")||(n=!0)))}),i.default.bind(o,"touchmove",function(e){n&&e.preventDefault()}),i.default.bind(o,"touchend",function(e){n=!1})}},{key:"_autoRun",value:function(){for(var e in this.isInited=!0,this.pluginList)this._initPlugin(this.pluginList[e]);this.tabList.length>0&&this.showTab(this.tabList[0]),this.triggerEvent("ready")}},{key:"triggerEvent",value:function(e,t){e="on"+e.charAt(0).toUpperCase()+e.slice(1),r.isFunction(this.option[e])&&this.option[e].apply(this,t)}},{key:"_initPlugin",value:function(e){var t=this;e.vConsole=this,e.trigger("init"),e.trigger("renderTab",function(o){t.tabList.push(e.id);var n=i.default.render(c.default,{id:e.id,name:e.name});i.default.one(".vc-tabbar",t.$dom).insertAdjacentElement("beforeend",n);var a=i.default.render(s.default,{id:e.id});o&&(r.isString(o)?a.innerHTML+=o:r.isFunction(o.appendTo)?o.appendTo(a):r.isElement(o)&&a.insertAdjacentElement("beforeend",o)),i.default.one(".vc-content",t.$dom).insertAdjacentElement("beforeend",a)}),e.trigger("addTopBar",function(o){if(o)for(var n=i.default.one(".vc-topbar",t.$dom),a=function(t){var a=o[t],l=i.default.render(d.default,{name:a.name||"Undefined",className:a.className||"",pluginID:e.id});if(a.data)for(var c in a.data)l.dataset[c]=a.data[c];r.isFunction(a.onClick)&&i.default.bind(l,"click",function(t){!1===a.onClick.call(l)||(i.default.removeClass(i.default.all(".vc-topbar-"+e.id),"vc-actived"),i.default.addClass(l,"vc-actived"))}),n.insertAdjacentElement("beforeend",l)},l=0;l-1&&this.tabList.splice(s,1);try{delete this.pluginList[e]}catch(t){this.pluginList[e]=void 0}return this.activedTab==e&&this.tabList.length>0&&this.showTab(this.tabList[0]),!0}},{key:"show",value:function(){if(this.isInited){var e=this;i.default.one(".vc-panel",this.$dom).style.display="block",setTimeout(function(){i.default.addClass(e.$dom,"vc-toggle"),e._triggerPluginsEvent("showConsole"),i.default.one(".vc-mask",e.$dom).style.display="block"},10)}}},{key:"hide",value:function(){if(this.isInited){i.default.removeClass(this.$dom,"vc-toggle"),this._triggerPluginsEvent("hideConsole");var e=i.default.one(".vc-mask",this.$dom),t=i.default.one(".vc-panel",this.$dom);i.default.bind(e,"transitionend",function(o){e.style.display="none",t.style.display="none"})}}},{key:"showSwitch",value:function(){this.isInited&&(i.default.one(".vc-switch",this.$dom).style.display="block")}},{key:"hideSwitch",value:function(){this.isInited&&(i.default.one(".vc-switch",this.$dom).style.display="none")}},{key:"showTab",value:function(e){if(this.isInited){var t=i.default.one("#__vc_log_"+e);i.default.removeClass(i.default.all(".vc-tab",this.$dom),"vc-actived"),i.default.addClass(i.default.one("#__vc_tab_"+e),"vc-actived"),i.default.removeClass(i.default.all(".vc-logbox",this.$dom),"vc-actived"),i.default.addClass(t,"vc-actived");var o=i.default.all(".vc-topbar-"+e,this.$dom);i.default.removeClass(i.default.all(".vc-toptab",this.$dom),"vc-toggle"),i.default.addClass(o,"vc-toggle"),o.length>0?i.default.addClass(i.default.one(".vc-content",this.$dom),"vc-has-topbar"):i.default.removeClass(i.default.one(".vc-content",this.$dom),"vc-has-topbar"),i.default.removeClass(i.default.all(".vc-tool",this.$dom),"vc-toggle"),i.default.addClass(i.default.all(".vc-tool-"+e,this.$dom),"vc-toggle"),this.activedTab&&this._triggerPluginEvent(this.activedTab,"hide"),this.activedTab=e,this._triggerPluginEvent(this.activedTab,"show")}}},{key:"setOption",value:function(e,t){if(r.isString(e))this.option[e]=t,this._triggerPluginsEvent("updateOption");else if(r.isObject(e)){for(var o in e)this.option[o]=e[o];this._triggerPluginsEvent("updateOption")}else console.debug("The first parameter of vConsole.setOption() must be a string or an object.")}},{key:"destroy",value:function(){if(this.isInited){for(var e=Object.keys(this.pluginList),t=e.length-1;t>=0;t--)this.removePlugin(e[t]);this.$dom.parentNode.removeChild(this.$dom),this.isInited=!1}}}])&&_(t.prototype,o),a&&_(t,a),e}();x.VConsolePlugin=v.default,x.VConsoleLogPlugin=f.default,x.VConsoleDefaultPlugin=p.default,x.VConsoleSystemPlugin=b.default,x.VConsoleNetworkPlugin=g.default,x.VConsoleElementPlugin=h.default,x.VConsoleStoragePlugin=m.default;var k=x;o.default=k,e.exports=t.default})?n.apply(t,r):n)||(e.exports=i)},function(e){e.exports=JSON.parse('{"name":"vconsole","version":"3.3.4","description":"A lightweight, extendable front-end developer tool for mobile web page.","homepage":"https://github.com/Tencent/vConsole","main":"dist/vconsole.min.js","typings":"dist/vconsole.min.d.ts","scripts":{"test":"mocha","build":"webpack"},"keywords":["console","debug","mobile"],"repository":{"type":"git","url":"git+https://github.com/Tencent/vConsole.git"},"dependencies":{},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-export-namespace-from":"^7.5.2","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/preset-env":"^7.5.5","babel-loader":"^8.0.6","babel-plugin-add-module-exports":"^1.0.2","chai":"^4.2.0","copy-webpack-plugin":"^5.0.4","css-loader":"^3.2.0","html-loader":"^0.5.5","jsdom":"^15.1.1","json-loader":"^0.5.7","less":"^3.10.0","less-loader":"^5.0.0","mocha":"^5.2.0","style-loader":"^1.0.0","webpack":"^4.39.2","webpack-cli":"^3.3.6"},"author":"Tencent","license":"MIT"}')},function(e,t,o){var n,r,i;r=[t],void 0===(i="function"==typeof(n=function(o){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(e,t,o){var n=/\{\{([^\}]+)\}\}/g,r="",i="",a=0,l=[],c=function(e,t){""!==e&&(t?e.match(/^ ?else/g)?r+="} "+e+" {\n":e.match(/\/(if|for|switch)/g)?r+="}\n":e.match(/^ ?if|for|switch/g)?r+=e+" {\n":e.match(/^ ?(break|continue) ?$/g)?r+=e+";\n":e.match(/^ ?(case|default)/g)?r+=e+":\n":r+="arr.push("+e+");\n":r+='arr.push("'+e.replace(/"/g,'\\"')+'");\n')};for(window.__mito_data=t,window.__mito_code="",window.__mito_result="",e=(e=e.replace(/(\{\{ ?switch(.+?)\}\})[\r\n\t ]+\{\{/g,"$1{{")).replace(/^[\r\n]/,"").replace(/\n/g,"\\\n").replace(/\r/g,"\\\r"),i="(function(){\n",r="var arr = [];\n";l=n.exec(e);)c(e.slice(a,l.index),!1),c(l[1],!0),a=l.index+l[0].length;c(e.substr(a,e.length-a),!1),i+=r="with (__mito_data) {\n"+(r+='__mito_result = arr.join("");')+"\n}",i+="})();";var s=document.getElementsByTagName("script"),d="";s.length>0&&(d=s[0].nonce||"");var u=document.createElement("SCRIPT");u.innerHTML=i,u.setAttribute("nonce",d),document.documentElement.appendChild(u);var v=__mito_result;if(document.documentElement.removeChild(u),!o){var f=document.createElement("DIV");f.innerHTML=v,v=f.children[0]}return v},e.exports=t.default})?n.apply(t,r):n)||(e.exports=i)},function(e,t,o){var n=o(12);"string"==typeof n&&(n=[[e.i,n,""]]);var r={insert:"head",singleton:!1};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,'#__vconsole {\n color: #000;\n font-size: 13px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n /* global */\n /* compoment */\n}\n#__vconsole .vc-max-height {\n max-height: 19.23076923em;\n}\n#__vconsole .vc-max-height-line {\n max-height: 3.38461538em;\n}\n#__vconsole .vc-min-height {\n min-height: 3.07692308em;\n}\n#__vconsole dd,\n#__vconsole dl,\n#__vconsole pre {\n margin: 0;\n}\n#__vconsole .vc-switch {\n display: block;\n position: fixed;\n right: 0.76923077em;\n bottom: 0.76923077em;\n color: #FFF;\n background-color: #04BE02;\n line-height: 1;\n font-size: 1.07692308em;\n padding: 0.61538462em 1.23076923em;\n z-index: 10000;\n border-radius: 0.30769231em;\n box-shadow: 0 0 0.61538462em rgba(0, 0, 0, 0.4);\n}\n#__vconsole .vc-mask {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0);\n z-index: 10001;\n transition: background 0.3s;\n -webkit-tap-highlight-color: transparent;\n overflow-y: scroll;\n}\n#__vconsole .vc-panel {\n display: none;\n position: fixed;\n min-height: 85%;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 10002;\n background-color: #EFEFF4;\n -webkit-transition: -webkit-transform 0.3s;\n transition: -webkit-transform 0.3s;\n transition: transform 0.3s;\n transition: transform 0.3s, -webkit-transform 0.3s;\n -webkit-transform: translate(0, 100%);\n transform: translate(0, 100%);\n}\n#__vconsole .vc-tabbar {\n border-bottom: 1px solid #D9D9D9;\n overflow-x: auto;\n height: 3em;\n width: auto;\n white-space: nowrap;\n}\n#__vconsole .vc-tabbar .vc-tab {\n display: inline-block;\n line-height: 3em;\n padding: 0 1.15384615em;\n border-right: 1px solid #D9D9D9;\n text-decoration: none;\n color: #000;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n#__vconsole .vc-tabbar .vc-tab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n#__vconsole .vc-tabbar .vc-tab.vc-actived {\n background-color: #FFF;\n}\n#__vconsole .vc-content {\n background-color: #FFF;\n overflow-x: hidden;\n overflow-y: auto;\n position: absolute;\n top: 3.07692308em;\n left: 0;\n right: 0;\n bottom: 3.07692308em;\n -webkit-overflow-scrolling: touch;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n}\n#__vconsole .vc-content.vc-has-topbar {\n top: 5.46153846em;\n}\n#__vconsole .vc-topbar {\n background-color: #FBF9FE;\n display: flex;\n display: -webkit-box;\n flex-direction: row;\n flex-wrap: wrap;\n -webkit-box-direction: row;\n -webkit-flex-wrap: wrap;\n width: 100%;\n}\n#__vconsole .vc-topbar .vc-toptab {\n display: none;\n flex: 1;\n -webkit-box-flex: 1;\n line-height: 2.30769231em;\n padding: 0 1.15384615em;\n border-bottom: 1px solid #D9D9D9;\n text-decoration: none;\n text-align: center;\n color: #000;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n#__vconsole .vc-topbar .vc-toptab.vc-toggle {\n display: block;\n}\n#__vconsole .vc-topbar .vc-toptab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n#__vconsole .vc-topbar .vc-toptab.vc-actived {\n border-bottom: 1px solid #3e82f7;\n}\n#__vconsole .vc-logbox {\n display: none;\n position: relative;\n min-height: 100%;\n}\n#__vconsole .vc-logbox i {\n font-style: normal;\n}\n#__vconsole .vc-logbox .vc-log {\n padding-bottom: 3em;\n -webkit-tap-highlight-color: transparent;\n}\n#__vconsole .vc-logbox .vc-log:empty:before {\n content: "Empty";\n color: #999;\n position: absolute;\n top: 45%;\n left: 0;\n right: 0;\n bottom: 0;\n font-size: 1.15384615em;\n text-align: center;\n}\n#__vconsole .vc-logbox .vc-item {\n margin: 0;\n padding: 0.46153846em 0.61538462em;\n overflow: hidden;\n line-height: 1.3;\n border-bottom: 1px solid #EEE;\n word-break: break-word;\n}\n#__vconsole .vc-logbox .vc-item-info {\n color: #6A5ACD;\n}\n#__vconsole .vc-logbox .vc-item-debug {\n color: #DAA520;\n}\n#__vconsole .vc-logbox .vc-item-warn {\n color: #FFA500;\n border-color: #FFB930;\n background-color: #FFFACD;\n}\n#__vconsole .vc-logbox .vc-item-error {\n color: #DC143C;\n border-color: #F4A0AB;\n background-color: #FFE4E1;\n}\n#__vconsole .vc-logbox .vc-log.vc-log-partly .vc-item {\n display: none;\n}\n#__vconsole .vc-logbox .vc-log.vc-log-partly-log .vc-item-log,\n#__vconsole .vc-logbox .vc-log.vc-log-partly-info .vc-item-info,\n#__vconsole .vc-logbox .vc-log.vc-log-partly-warn .vc-item-warn,\n#__vconsole .vc-logbox .vc-log.vc-log-partly-error .vc-item-error {\n display: block;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-content {\n margin-right: 4.61538462em;\n display: inline-block;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-repeat {\n display: inline-block;\n margin-right: 0.30769231em;\n padding: 0 6.5px;\n color: #D7E0EF;\n background-color: #42597F;\n border-radius: 8.66666667px;\n}\n#__vconsole .vc-logbox .vc-item.vc-item-error .vc-item-repeat {\n color: #901818;\n background-color: #DC2727;\n}\n#__vconsole .vc-logbox .vc-item.vc-item-warn .vc-item-repeat {\n color: #987D20;\n background-color: #F4BD02;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-code {\n display: block;\n white-space: pre-wrap;\n overflow: auto;\n position: relative;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-code.vc-item-code-input,\n#__vconsole .vc-logbox .vc-item .vc-item-code.vc-item-code-output {\n padding-left: 0.92307692em;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-code.vc-item-code-input:before,\n#__vconsole .vc-logbox .vc-item .vc-item-code.vc-item-code-output:before {\n content: "›";\n position: absolute;\n top: -0.23076923em;\n left: 0;\n font-size: 1.23076923em;\n color: #6A5ACD;\n}\n#__vconsole .vc-logbox .vc-item .vc-item-code.vc-item-code-output:before {\n content: "‹";\n}\n#__vconsole .vc-logbox .vc-item .vc-fold {\n display: block;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-outer {\n display: block;\n font-style: italic;\n padding-left: 0.76923077em;\n position: relative;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-outer:active {\n background-color: #E6E6E6;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-outer:before {\n content: "";\n position: absolute;\n top: 0.30769231em;\n left: 0.15384615em;\n width: 0;\n height: 0;\n border: transparent solid 0.30769231em;\n border-left-color: #000;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-outer.vc-toggle:before {\n top: 0.46153846em;\n left: 0;\n border-top-color: #000;\n border-left-color: transparent;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-inner {\n display: none;\n margin-left: 0.76923077em;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-inner.vc-toggle {\n display: block;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-inner .vc-code-key {\n margin-left: 0.76923077em;\n}\n#__vconsole .vc-logbox .vc-item .vc-fold .vc-fold-outer .vc-code-key {\n margin-left: 0;\n}\n#__vconsole .vc-logbox .vc-code-key {\n color: #905;\n}\n#__vconsole .vc-logbox .vc-code-private-key {\n color: #D391B5;\n}\n#__vconsole .vc-logbox .vc-code-function {\n color: #905;\n font-style: italic;\n}\n#__vconsole .vc-logbox .vc-code-number,\n#__vconsole .vc-logbox .vc-code-boolean {\n color: #0086B3;\n}\n#__vconsole .vc-logbox .vc-code-string {\n color: #183691;\n}\n#__vconsole .vc-logbox .vc-code-null,\n#__vconsole .vc-logbox .vc-code-undefined {\n color: #666;\n}\n#__vconsole .vc-logbox .vc-cmd {\n position: absolute;\n height: 3.07692308em;\n left: 0;\n right: 0;\n bottom: 0;\n border-top: 1px solid #D9D9D9;\n display: block!important;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-input-wrap {\n display: block;\n height: 2.15384615em;\n margin-right: 3.07692308em;\n padding: 0.46153846em 0.61538462em;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-input {\n width: 100%;\n border: none;\n resize: none;\n outline: none;\n padding: 0;\n font-size: 0.92307692em;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-input::-webkit-input-placeholder {\n line-height: 2.15384615em;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-btn {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 3.07692308em;\n border: none;\n background-color: #EFEFF4;\n outline: none;\n -webkit-touch-callout: none;\n font-size: 1em;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-btn:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-prompted {\n position: fixed;\n width: 100%;\n background-color: #FBF9FE;\n border: 1px solid #D9D9D9;\n overflow-x: scroll;\n display: none;\n}\n#__vconsole .vc-logbox .vc-cmd .vc-cmd-prompted li {\n list-style: none;\n line-height: 30px;\n padding: 0 0.46153846em;\n border-bottom: 1px solid #D9D9D9;\n}\n#__vconsole .vc-logbox .vc-group .vc-group-preview {\n -webkit-touch-callout: none;\n}\n#__vconsole .vc-logbox .vc-group .vc-group-preview:active {\n background-color: #E6E6E6;\n}\n#__vconsole .vc-logbox .vc-group .vc-group-detail {\n display: none;\n padding: 0 0 0.76923077em 1.53846154em;\n border-bottom: 1px solid #EEE;\n}\n#__vconsole .vc-logbox .vc-group.vc-actived .vc-group-detail {\n display: block;\n background-color: #FBF9FE;\n}\n#__vconsole .vc-logbox .vc-group.vc-actived .vc-table-row {\n background-color: #FFF;\n}\n#__vconsole .vc-logbox .vc-group.vc-actived .vc-group-preview {\n background-color: #FBF9FE;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-row {\n display: flex;\n display: -webkit-flex;\n flex-direction: row;\n flex-wrap: wrap;\n -webkit-box-direction: row;\n -webkit-flex-wrap: wrap;\n overflow: hidden;\n border-bottom: 1px solid #EEE;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-row.vc-left-border {\n border-left: 1px solid #EEE;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col {\n flex: 1;\n -webkit-box-flex: 1;\n padding: 0.23076923em 0.30769231em;\n border-left: 1px solid #EEE;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n /*white-space: nowrap;\n text-overflow: ellipsis;*/\n -webkit-overflow-scrolling: touch;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col:first-child {\n border: none;\n}\n#__vconsole .vc-logbox .vc-table .vc-small .vc-table-col {\n padding: 0 0.30769231em;\n font-size: 0.92307692em;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-2 {\n flex: 2;\n -webkit-box-flex: 2;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-3 {\n flex: 3;\n -webkit-box-flex: 3;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-4 {\n flex: 4;\n -webkit-box-flex: 4;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-5 {\n flex: 5;\n -webkit-box-flex: 5;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-6 {\n flex: 6;\n -webkit-box-flex: 6;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-row-error {\n border-color: #F4A0AB;\n background-color: #FFE4E1;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-row-error .vc-table-col {\n color: #DC143C;\n border-color: #F4A0AB;\n}\n#__vconsole .vc-logbox .vc-table .vc-table-col-title {\n font-weight: bold;\n}\n#__vconsole .vc-logbox.vc-actived {\n display: block;\n}\n#__vconsole .vc-toolbar {\n border-top: 1px solid #D9D9D9;\n line-height: 3em;\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n display: -webkit-box;\n flex-direction: row;\n -webkit-box-direction: row;\n}\n#__vconsole .vc-toolbar .vc-tool {\n display: none;\n text-decoration: none;\n color: #000;\n width: 50%;\n flex: 1;\n -webkit-box-flex: 1;\n text-align: center;\n position: relative;\n -webkit-touch-callout: none;\n}\n#__vconsole .vc-toolbar .vc-tool.vc-toggle,\n#__vconsole .vc-toolbar .vc-tool.vc-global-tool {\n display: block;\n}\n#__vconsole .vc-toolbar .vc-tool:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n#__vconsole .vc-toolbar .vc-tool:after {\n content: " ";\n position: absolute;\n top: 0.53846154em;\n bottom: 0.53846154em;\n right: 0;\n border-left: 1px solid #D9D9D9;\n}\n#__vconsole .vc-toolbar .vc-tool-last:after {\n border: none;\n}\n@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {\n #__vconsole .vc-toolbar,\n #__vconsole .vc-switch {\n bottom: constant(safe-area-inset-bottom);\n bottom: env(safe-area-inset-bottom);\n }\n}\n#__vconsole.vc-toggle .vc-switch {\n display: none;\n}\n#__vconsole.vc-toggle .vc-mask {\n background: rgba(0, 0, 0, 0.6);\n display: block;\n}\n#__vconsole.vc-toggle .vc-panel {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n',""])},function(e,t){e.exports='
\n
vConsole
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Hide\n
\n
\n
'},function(e,t){e.exports='{{name}}'},function(e,t){e.exports='
\n \n
'},function(e,t){e.exports='{{name}}'},function(e,t){e.exports='{{name}}'},function(e,t){e.exports='
\n\t
\n
'},function(e,t){e.exports='
\n {{if (lineType == \'obj\')}}\n {{outer}}\n
\n {{else if (lineType == \'value\')}}\n {{value}}\n {{else if (lineType == \'kv\')}}\n {{key}}: {{value}}\n {{/if}}\n
'},function(e,t){e.exports='\n {{key}}: {{value}}\n'},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,factory;factory=function(_exports,_query,tool,_log,_tabbox_default,_item_code){"use strict";function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,o):{};n.get||n.set?Object.defineProperty(t,o,n):t[o]=e[o]}return t.default=e,t}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var o=0;o=0&&o.test(e[r]);r--)n.push(e[r]);if(0==n.length){o=/\./;for(var i=t-1;i>=0&&o.test(e[i]);i--)n.push(e[i])}if(0===n.length){var a=e.match(/[\(\)\[\]\{\}]/gi)||[];return a[a.length-1]}return n.reverse().join("")};_query.default.bind(_query.default.one(".vc-cmd-input"),"keyup",function(e){var isDeleteKeyCode=8===e.keyCode||46===e.keyCode,$prompted=_query.default.one(".vc-cmd-prompted");$prompted.style.display="none",$prompted.innerHTML="";var tempValue=this.value,value=retrievePrecedingIdentifier(this.value,this.value.length);if(value&&value.length>0){if(/\(/.test(value)&&!isDeleteKeyCode)return void(_query.default.one(".vc-cmd-input").value+=")");if(/\[/.test(value)&&!isDeleteKeyCode)return void(_query.default.one(".vc-cmd-input").value+="]");if(/\{/.test(value)&&!isDeleteKeyCode)return void(_query.default.one(".vc-cmd-input").value+="}");if("."===value){var key=retrievePrecedingIdentifier(tempValue,tempValue.length-1);if(!cacheObj[key])try{cacheObj[key]=Object.getOwnPropertyNames(eval("("+key+")")).sort()}catch(e){}try{for(var _i3=0;_i3=0){var _$li=document.createElement("li");_$li.innerHTML=winKeys[_i4],_$li.onclick=function(){_query.default.one(".vc-cmd-input").value="",_query.default.one(".vc-cmd-input").value=this.innerHTML,"function"==keyTypes[this.innerHTML]&&(_query.default.one(".vc-cmd-input").value+="()"),$prompted.style.display="none"},$prompted.appendChild(_$li)}}else{var arr=value.split(".");if(cacheObj[arr[0]]){cacheObj[arr[0]].sort();for(var _i5=0;_i5=0&&(_$li2.innerHTML=_key3,_$li2.onclick=function(){_query.default.one(".vc-cmd-input").value="",_query.default.one(".vc-cmd-input").value=tempValue+this.innerHTML,$prompted.style.display="none"},$prompted.appendChild(_$li2))}}}if($prompted.children.length>0){var m=Math.min(200,31*$prompted.children.length);$prompted.style.display="block",$prompted.style.height=m+"px",$prompted.style.marginTop=-m+"px"}}else $prompted.style.display="none"}),_query.default.bind(_query.default.one(".vc-cmd",this.$tabbox),"submit",function(e){e.preventDefault();var t=_query.default.one(".vc-cmd-input",e.target),o=t.value;t.value="",""!==o&&that.evalCommand(o);var n=_query.default.one(".vc-cmd-prompted");n&&(n.style.display="none")});var code="";code+="if (!!window) {",code+="window.__vConsole_cmd_result = undefined;",code+="window.__vConsole_cmd_error = false;",code+="}";var scriptList=document.getElementsByTagName("script"),nonce="";scriptList.length>0&&(nonce=scriptList[0].nonce||"");var script=document.createElement("SCRIPT");script.innerHTML=code,script.setAttribute("nonce",nonce),document.documentElement.appendChild(script),document.documentElement.removeChild(script)}},{key:"mockConsole",value:function(){_get(_getPrototypeOf(VConsoleDefaultTab.prototype),"mockConsole",this).call(this);var e=this;tool.isFunction(window.onerror)&&(this.windowOnError=window.onerror),window.onerror=function(t,o,n,r,i){var a=t;o&&(a+="\n"+o.replace(location.origin,"")),(n||r)&&(a+=":"+n+":"+r);var l=!!i&&!!i.stack&&i.stack.toString()||"";e.printLog({logType:"error",logs:[a,l],noOrigin:!0}),tool.isFunction(e.windowOnError)&&e.windowOnError.call(window,t,o,n,r,i)}}},{key:"evalCommand",value:function(e){this.printLog({logType:"log",content:_query.default.render(_item_code.default,{content:e,type:"input"}),style:""});var t,o=void 0;try{o=eval.call(window,"("+e+")")}catch(t){try{o=eval.call(window,e)}catch(e){}}tool.isArray(o)||tool.isObject(o)?t=this.getFoldedLine(o):(tool.isNull(o)?o="null":tool.isUndefined(o)?o="undefined":tool.isFunction(o)?o="function()":tool.isString(o)&&(o='"'+o+'"'),t=_query.default.render(_item_code.default,{content:o,type:"output"})),this.printLog({logType:"log",content:t,style:""}),window.winKeys=Object.getOwnPropertyNames(window).sort()}}]),VConsoleDefaultTab}(_log.default),_default=VConsoleDefaultTab;_exports.default=_default,module.exports=exports.default},__WEBPACK_AMD_DEFINE_ARRAY__=[exports,__webpack_require__(1),__webpack_require__(0),__webpack_require__(3),__webpack_require__(22),__webpack_require__(23)],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=factory)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},function(e,t){e.exports='
\n
\n
\n \n
    \n
    \n \n
    \n
    \n
    '},function(e,t){e.exports='
    {{content}}
    '},function(e,t,o){var n,r,i;r=[t,o(3),o(25)],void 0===(i="function"==typeof(n=function(o,n,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){for(var o=0;o\n
    \n'},function(e,t,o){var n,r,i;r=[t,o(1),o(0),o(2),o(27),o(28),o(29)],void 0===(i="function"==typeof(n=function(o,n,r,i,a,l,c){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var o=0;o=t.scrollHeight?e.isInBottom=!0:e.isInBottom=!1)}),e.reqList)e.updateRequest(o,{})}},{key:"onRemove",value:function(){window.XMLHttpRequest&&(window.XMLHttpRequest.prototype.open=this._open,window.XMLHttpRequest.prototype.send=this._send,this._open=void 0,this._send=void 0)}},{key:"onShow",value:function(){this.isShow=!0,1==this.isInBottom&&this.scrollToBottom()}},{key:"onHide",value:function(){this.isShow=!1}},{key:"onShowConsole",value:function(){1==this.isInBottom&&this.scrollToBottom()}},{key:"scrollToBottom",value:function(){var e=n.default.one(".vc-content");e.scrollTop=e.scrollHeight-e.offsetHeight}},{key:"clearLog",value:function(){for(var e in this.reqList={},this.domList)this.domList[e].parentNode.removeChild(this.domList[e]),this.domList[e]=void 0;this.domList={},this.renderHeader()}},{key:"renderHeader",value:function(){var e=Object.keys(this.reqList).length,t=n.default.render(l.default,{count:e}),o=n.default.one(".vc-log",this.$tabbox);this.$header?this.$header.parentNode.replaceChild(t,this.$header):o.parentNode.insertBefore(t,o),this.$header=t}},{key:"updateRequest",value:function(e,t){var o=Object.keys(this.reqList).length,i=this.reqList[e]||{};for(var a in t)i[a]=t[a];if(this.reqList[e]=i,this.isReady){var l={id:e,url:i.url,status:i.status,method:i.method||"-",costTime:i.costTime>0?i.costTime+"ms":"-",header:i.header||null,getData:i.getData||null,postData:i.postData||null,response:null,actived:!!i.actived};switch(i.responseType){case"":case"text":if(r.isString(i.response))try{l.response=JSON.parse(i.response),l.response=JSON.stringify(l.response,null,1),l.response=r.htmlEncode(l.response)}catch(e){l.response=r.htmlEncode(i.response)}else void 0!==i.response&&(l.response=Object.prototype.toString.call(i.response));break;case"json":void 0!==i.response&&(l.response=JSON.stringify(i.response,null,1),l.response=r.htmlEncode(l.response));break;case"blob":case"document":case"arraybuffer":default:void 0!==i.response&&(l.response=Object.prototype.toString.call(i.response))}0==i.readyState||1==i.readyState?l.status="Pending":2==i.readyState||3==i.readyState?l.status="Loading":4==i.readyState||(l.status="Unknown");var s=n.default.render(c.default,l),d=this.domList[e];i.status>=400&&n.default.addClass(n.default.one(".vc-group-preview",s),"vc-table-row-error"),d?d.parentNode.replaceChild(s,d):n.default.one(".vc-log",this.$tabbox).insertAdjacentElement("beforeend",s),this.domList[e]=s,Object.keys(this.reqList).length!=o&&this.renderHeader(),this.isInBottom&&this.scrollToBottom()}}},{key:"mockAjax",value:function(){if(window.XMLHttpRequest){var e=this,t=window.XMLHttpRequest.prototype.open,o=window.XMLHttpRequest.prototype.send;e._open=t,e._send=o,window.XMLHttpRequest.prototype.open=function(){var o=this,n=[].slice.call(arguments),r=n[0],i=n[1],a=e.getUniqueID(),l=null;o._requestID=a,o._method=r,o._url=i;var c=o.onreadystatechange||function(){},s=function(){var t=e.reqList[a]||{};if(t.readyState=o.readyState,t.status=0,o.readyState>1&&(t.status=o.status),t.responseType=o.responseType,0==o.readyState)t.startTime||(t.startTime=+new Date);else if(1==o.readyState)t.startTime||(t.startTime=+new Date);else if(2==o.readyState){t.header={};for(var n=o.getAllResponseHeaders()||"",r=n.split("\n"),i=0;i0){a.getData={},l=(l=l.join("?")).split("&");var c=!0,s=!1,d=void 0;try{for(var u,v=l[Symbol.iterator]();!(c=(u=v.next()).done);c=!0){var f=u.value;f=f.split("="),a.getData[f[0]]=decodeURIComponent(f[1])}}catch(e){s=!0,d=e}finally{try{c||null==v.return||v.return()}finally{if(s)throw d}}}if("POST"==a.method)if(r.isString(i)){var p=i.split("&");a.postData={};var b=!0,g=!1,h=void 0;try{for(var m,y=p[Symbol.iterator]();!(b=(m=y.next()).done);b=!0){var _=m.value;_=_.split("="),a.postData[_[0]]=_[1]}}catch(e){g=!0,h=e}finally{try{b||null==y.return||y.return()}finally{if(g)throw h}}}else r.isPlainObject(i)&&(a.postData=i);return t._noVConsole||e.updateRequest(t._requestID,a),o.apply(t,n)}}}},{key:"getUniqueID",value:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})}}])&&u(o.prototype,s),d&&u(o,d),t}();o.default=b,e.exports=t.default})?n.apply(t,r):n)||(e.exports=i)},function(e,t){e.exports='
    \n
    \n
    '},function(e,t){e.exports='
    \n
    Name {{if (count > 0)}}({{count}}){{/if}}
    \n
    Method
    \n
    Status
    \n
    Time
    \n
    '},function(e,t){e.exports='
    \n
    \n
    {{url}}
    \n
    {{method}}
    \n
    {{status}}
    \n
    {{costTime}}
    \n
    \n
    \n {{if (header !== null)}}\n
    \n
    \n
    Headers
    \n
    \n {{for (var key in header)}}\n
    \n
    {{key}}
    \n
    {{header[key]}}
    \n
    \n {{/for}}\n
    \n {{/if}}\n {{if (getData !== null)}}\n
    \n
    \n
    Query String Parameters
    \n
    \n {{for (var key in getData)}}\n
    \n
    {{key}}
    \n
    {{getData[key]}}
    \n
    \n {{/for}}\n
    \n {{/if}}\n {{if (postData !== null)}}\n
    \n
    \n
    Form Data
    \n
    \n {{for (var key in postData)}}\n
    \n
    {{key}}
    \n
    {{postData[key]}}
    \n
    \n {{/for}}\n
    \n {{/if}}\n
    \n
    \n
    Response
    \n
    \n
    \n
    {{response || \'\'}}
    \n
    \n
    \n
    \n
    '},function(e,t,o){var n,r,i;r=[t,o(31),o(2),o(33),o(34),o(0),o(1)],void 0===(i="function"==typeof(n=function(o,n,r,i,a,l,c){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var o=0;o0&&this.onChildRemove(e),e.addedNodes.length>0&&this.onChildAdd(e);break;case"attributes":this.onAttributesChange(e);break;case"characterData":this.onCharacterDataChange(e)}}},{key:"onChildRemove",value:function(e){var t=e.target;if(t.__vconsole_node){for(var o=0;o0||(e.childNodes[r]?n.renderView(e.childNodes[r],a,"replace"):a.style.display="none"))}}}),o){case"replace":t.parentNode.replaceChild(r,t);break;case"insertBefore":t.parentNode.insertBefore(r,t);break;default:t.appendChild(r)}return r}},{key:"getNode",value:function(e){if(!this._isIgnoredElement(e)){var t=e.__vconsole_node||{};if(t.nodeType=e.nodeType,t.nodeName=e.nodeName,t.tagName=e.tagName||"",t.textContent="",t.nodeType!=e.TEXT_NODE&&t.nodeType!=e.DOCUMENT_TYPE_NODE||(t.textContent=e.textContent),t.id=e.id||"",t.className=e.className||"",t.attributes=[],e.hasAttributes&&e.hasAttributes())for(var o=0;o0)for(var n=0;n .vcelm-node {\n display: block;\n}\n.vcelm-l .vcelm-node:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vcelm-l.vcelm-noc .vcelm-node:active {\n background-color: transparent;\n}\n.vcelm-t {\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n/* level */\n.vcelm-l .vcelm-l {\n display: none;\n}\n.vcelm-l.vc-toggle > .vcelm-l {\n margin-left: 4px;\n display: block;\n}\n/* arrow */\n.vcelm-l:before {\n content: "";\n display: block;\n position: absolute;\n top: 6px;\n left: 3px;\n width: 0;\n height: 0;\n border: transparent solid 3px;\n border-left-color: #000;\n}\n.vcelm-l.vc-toggle:before {\n display: block;\n top: 6px;\n left: 0;\n border-top-color: #000;\n border-left-color: transparent;\n}\n.vcelm-l.vcelm-noc:before {\n display: none;\n}\n',""])},function(e,t){e.exports='
    \n
    \n
    '},function(e,t,o){var n,r,i;r=[t,o(35),o(36),o(0),o(1)],void 0===(i="function"==typeof(n=function(o,n,r,i,a){"use strict";function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){for(var o=0;o-1),l=i;0==e.childNodes.length&&(l=!0);var c=a.default.render(n.default,{node:e}),s=a.default.render(r.default,{node:e});if(l)a.default.addClass(t,"vcelm-noc"),t.appendChild(c),i||t.appendChild(s);else{t.appendChild(c);for(var d=0;d<{{node.tagName.toLowerCase()}}{{if (node.className || node.attributes.length)}}\n \n {{for (var i = 0; i < node.attributes.length; i++)}}\n {{if (node.attributes[i].value !== \'\')}}\n {{node.attributes[i].name}}="{{node.attributes[i].value}}"{{else}}\n {{node.attributes[i].name}}{{/if}}{{/for}}{{/if}}>
    '},function(e,t){e.exports='</{{node.tagName.toLowerCase()}}>'},function(e,t,o){var n,r,i;r=[t,o(2),o(38),o(39),o(0),o(1)],void 0===(i="function"==typeof(n=function(o,n,r,i,a,l){"use strict";function c(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var o=0;o\n
    \n'},function(e,t){e.exports='
    \n
    \n
    Name
    \n
    Value
    \n
    \n {{for (var i = 0; i < list.length; i++)}}\n
    \n
    {{list[i].name}}
    \n
    {{list[i].value}}
    \n
    \n {{/for}}\n
    '}])}); \ No newline at end of file