diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index fde2fed..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..c9abd4b --- /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": "local" + } + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..974c015 --- /dev/null +++ b/App.vue @@ -0,0 +1,359 @@ + + + \ No newline at end of file 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..885a438 --- /dev/null +++ b/api/user.js @@ -0,0 +1,463 @@ +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: false, + }) +} + +/* + * 领取优惠券列表 + * */ +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) +} + +/* + * 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') +} + +/* + * 获取我的课程列表 + * */ +export function getMyCourseList(q) { + return request.get('/Course/listCoursesByMemberId?type='+q) +} + +/* + * 获取我的打榜列表 + * */ +export function getStudyList(q) { + return request.get('/StudyList/getStudyListByMemberId?type='+q) +} + +/* + * 获取签到状态 + * */ +export function integral(q) { + return request.post('/user/integral') +} +/* + * 签到 + * */ +export function signIntegral(q) { + return request.post('/sign/integral') +} diff --git a/app.wxss b/app.css similarity index 100% rename from app.wxss rename to app.css diff --git a/app.js b/app.js deleted file mode 100644 index 16ab108..0000000 --- a/app.js +++ /dev/null @@ -1,221 +0,0 @@ -//app.js -App({ - onLaunch: function (e) { - var that = this; - //获取设备信息 - this.setMenuHeight() - this.autoUpdate() - }, - autoUpdate:function(){ - console.log(new Date()) - var self=this - // 获取小程序更新机制兼容 - if (wx.canIUse('getUpdateManager')) { - const updateManager = wx.getUpdateManager() - //1. 检查小程序是否有新版本发布 - updateManager.onCheckForUpdate(function (res) { - // 请求完新版本信息的回调 - if (res.hasUpdate) { - //2. 小程序有新版本,则静默下载新版本,做好更新准备 - updateManager.onUpdateReady(function () { - console.log(new Date()) - wx.showModal({ - title: '更新提示', - content: '新版本已经准备好,是否重启应用?', - success: function (res) { - if (res.confirm) { - //3. 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 - updateManager.applyUpdate() - } - } - }) - }) - updateManager.onUpdateFailed(function () { - // 新的版本下载失败 - wx.showModal({ - title: '已经有新版本了哟~', - content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', - }) - }) - } - }) - } else { - // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 - wx.showModal({ - title: '提示', - content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' - }) - } - }, - onShow(e){ - //隐藏系统tabbar - wx.hideTabBar(); - var query = {}; - if(e.query.q){ - //通过扫码进来获取二维码上的参数并存入storage - let urlSpread = e.query.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(","); - query = JSON.parse("{" + urlSpread + "}"); - } - console.log('query1',query) - this.globalData.inviterId = query.id - } - } else{ - query = e.query - console.log('query2',query) - this.globalData.inviterId = query.id - } - }, - setMenuHeight(){ - wx.getSystemInfo({ - success: res => { - // console.log(res) - this.globalData.navTopHeight = res.statusBarHeight; - this.globalData.CustomBar = res.statusBarHeight + 45; - this.globalData.systemInfo = res; - } - }); - let menuButtonObj = wx.getMenuButtonBoundingClientRect(); - this.globalData.menuTop = menuButtonObj.top; - // console.log(menuButtonObj) - this.globalData.menuHeight = menuButtonObj.height; - this.globalData.navHeight = menuButtonObj.height + (menuButtonObj.top - this.globalData.navTopHeight); - - }, - editTabbar: function () { - var tabbar = this.globalData.tabBar; - var currentPages = getCurrentPages(); - var that = currentPages[currentPages.length - 1]; - var pagePath = that.route; - (pagePath.indexOf('/') != 0) && (pagePath = '/' + pagePath); - for (var i in tabbar.list) { - tabbar.list[i].selected = false; - (tabbar.list[i].pagePath == pagePath) && (tabbar.list[i].selected = true); - } - that.setData({ - tabbar: tabbar - }); - }, - getInfo(){ - this.http('get','userinfo').then((res)=>{ - if(res.data.success){ - // console.log(res.data) - wx.setStorageSync('userInfo',res.data.data) - var pages = getCurrentPages().pop();//当前页面 - if (pages.getUser){ - pages.getUser(); - } - } else{ - wx.showToast({ - title: res.data.msg, - icon: 'none', - duration: 2000 - }) - setTimeout(()=>{ - wx.navigateTo({ - url: '/pages/login/index', - }) - },2000) - } - }) - }, - http(mathods,url, params) { - var that = this; - var header = { - 'content-type': 'application/json', - 'version': '2.0', - 'Authorization' : wx.getStorageSync('token') || '' - } - return new Promise( - (resolve,reject) => { - wx.showLoading({ - title: "正在加载中...", - }) - wx.request({ - url: this.globalData.baseURL + url, //请求地址 - method: mathods, //请求方法 - header: header, - data: params || {}, //请求参数 - success: res => { - wx.hideLoading(); - console.log(res) - //判断token是否过期 res.data.code == 40001 - if(!res.data.success && res.data.status == 401){ - console.log('登陆失效') - wx.navigateTo({ - url: '/pages/login/index', - }) - } - resolve(res); - //成功执行方法,参数值为res.data,直接将返回的数据传入 - }, - fail: function() { - //请求失败 - wx.hideLoading(); - wx.showToast({ - title: '服务器错误,请稍后再试!', - icon : 'none' - }) - reject(err) - }, - }) - } - ) - }, - globalData: { - // baseURL : 'http://192.168.0.110:8092/api/', - baseURL : 'http://192.168.0.114:8092/api/', - // baseURL : 'https://www.cyjyyjy.com:8093/api/', - userInfo: null, - navHeight : 0, - navTopHeight: 0, - menuTop: 0, - menuHeight: 0, - CustomBar: 0, - inviterId: null , //分享码 - systemInfo: null, //客户端设备信息 - tabBar: { - "backgroundColor": "#ffffff", - "color": "#979795", - "selectedColor": "#FF6F34", - "list": [ - { - "pagePath": "/pages/index/index", - "iconPath": "icon/home.png", - "selectedIconPath": "icon/home-a.png", - "text": "首页" - }, - { - "pagePath": "/pages/demandHall/index", - "iconPath": "icon/tab2.png", - "selectedIconPath": "icon/tab2-a.png", - "text": "供需大厅" - }, - { - "pagePath": "/pages/release/index", - "iconPath": "icon/icon_release.png", - "isSpecial": true, - "text": "发布" - }, - { - "pagePath": "/pages/life/index", - "iconPath": "icon/tab3.png", - "selectedIconPath": "icon/tab3-a.png", - "text": "生活" - }, - { - "pagePath": "/pages/user/index", - "iconPath": "icon/tab4.png", - "selectedIconPath": "icon/tab4-a.png", - "text": "我的" - } - ] - } - } -}) \ No newline at end of file diff --git a/app.json b/app.json deleted file mode 100644 index 32351f7..0000000 --- a/app.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "pages":[ - "pages/index/index", - "pages/user/index", - "pages/login/index", - "pages/webview/index", - "pages/demandHall/createProject/index", - "pages/demandHall/needsContact/index", - "pages/user/needsOrder/index", - "pages/user/resourcesOrder/index", - "pages/user/needsManage/index", - "pages/user/resourcesManage/index", - "pages/user/editNeeds/index", - "pages/demandHall/needsDetail/index", - "pages/demandHall/resourcesDetail/index", - "pages/demandHall/companyDetail/index", - "pages/demandHall/resourcesContact/index", - "pages/demandHall/applyDetail/index", - "pages/demandHall/platform/index", - "pages/demandHall/index", - "pages/release/index", - "pages/release/personAuth/index", - "pages/release/companyAuth/index", - "pages/release/perfectPersonInfo/index", - "pages/release/perfectCompanyInfo/index", - "pages/life/index", - "pages/user/mine/index", - "pages/user/agreement/index", - "pages/user/incomeDetail/index", - "pages/user/profession/index", - "pages/user/completeData/index", - "pages/user/personalData/index", - "pages/activity/index", - "pages/activity/detail/index", - "pages/activity/describe/index", - "pages/activity/signIn/index", - "pages/activity/signIn/confirm/index", - "pages/activity/signIn/paymentSuccess/index", - "pages/user/industry/index" - ], - "window":{ - "backgroundTextStyle":"light", - "navigationBarBackgroundColor": "#fff", - "navigationBarTitleText": "禅易云生态", - "navigationBarTextStyle":"black" - }, - "tabBar": { - "backgroundColor": "#ffffff", - "color": "#D4D4D4", - "selectedColor": "#FF6F34", - "list": [ - { - "pagePath": "pages/index/index", - "text": "首页", - "iconPath": "tabbarComponent/icon/home.png", - "selectedIconPath": "tabbarComponent/icon/home-a.png" - }, - { - "pagePath": "pages/demandHall/index", - "text": "供需大厅", - "iconPath": "tabbarComponent/icon/tab2.png", - "selectedIconPath": "tabbarComponent/icon/tab2-a.png" - }, - { - "pagePath": "pages/life/index", - "text": "生活", - "iconPath": "tabbarComponent/icon/tab3.png", - "selectedIconPath": "tabbarComponent/icon/tab3-a.png" - }, - { - "pagePath": "pages/user/index", - "text": "我的", - "iconPath": "tabbarComponent/icon/tab4.png", - "selectedIconPath": "tabbarComponent/icon/tab4-a.png" - } - ] - }, - "style": "v2", - "permission": { - "scope.userLocation": { - "desc": "你的位置信息将用于小程序位置接口的效果展示" - } - }, - "sitemapLocation": "sitemap.json" -} 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..76017af --- /dev/null +++ b/assets/css/base.less @@ -0,0 +1,186 @@ +@charset "UTF-8"; +/** + *相关初始化 +*/ + +.font-color-red { + color: #F99C10 !important; +} +.bg-color-red { + background-color: #F99C10 !important; +} +.icon-color { + color: #F99C10; +} +.cart-color { + color: #F99C10 !important; + border: 1px solid #F99C10 !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-nowrap { + display: flex; + /* 辅助类 */ +} +.acea-row { + display: flex; + flex-wrap: wrap; + /* 辅助类 */ +} +.acea-row.row-middle,.acea-row-nowrap.row-middle{ + align-items: center; +} +.acea-row.row-top,.acea-row-nowrap.row-top { + align-items: flex-start; +} +.acea-row.row-bottom { + align-items: flex-end; +} +.acea-row.row-center,.acea-row-nowrap.row-center { + justify-content: center; +} +.acea-row.row-right,.acea-row-nowrap.row-right { + justify-content: flex-end; +} +.acea-row.row-left,.acea-row-nowrap.row-left { + justify-content: flex-start; +} +.acea-row.row-between,.acea-row-nowrap.row-between { + justify-content: space-between; +} +.acea-row.row-around, .acea-row-nowrap.row-around{ + justify-content: space-around; +} +.acea-row.row-column-around,.acea-row-nowrap.row-column-around { + flex-direction: column; + justify-content: space-around; +} +.acea-row.row-column { + flex-direction: column; +} +.acea-row.row-column-between,.acea-row-nowrap.row-column-between { + flex-direction: column; + justify-content: space-between; +} +/* 上下左右垂直居中 */ +.acea-row.row-center-wrapper,.acea-row-nowrap.row-center-wrapper { + align-items: center; + justify-content: center; +} +/* 上下两边居中对齐 */ +.acea-row.row-between-wrapper,.acea-row-nowrap.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..85e9ea0 --- /dev/null +++ b/assets/css/reset.less @@ -0,0 +1,61 @@ +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; +} +.line5{ + word-break:break-all; + display:-webkit-box; + -webkit-line-clamp:5; + -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..7f0b7a9 --- /dev/null +++ b/assets/css/style.less @@ -0,0 +1,9379 @@ +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: #222; +} + +.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.24 * 100rpx; + color: #222; + flex: 1; + -o-flex: 1; + -ms-flex: 1; + text-align: center; +} + +.user .wrapper .myOrder .orderState .item .pictrue { + width: 0.52 * 100rpx; + height: 0.52* 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; + padding: 0.2 * 100rpx 0.3 * 100rpx; +} + +.user .wrapper .myService .serviceList .item { + width: 100%; + text-align: left; + font-size: 0.32 * 100rpx; + color: #222; + display: flex; + align-items: center; + padding: 0.3 * 100rpx 0; + position: relative; + border-bottom: 1px solid #ECECEC; + + .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..2c2b1c4 --- /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..007458d --- /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..98c3640 --- /dev/null +++ b/components/CountDown.vue @@ -0,0 +1,120 @@ + + 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..3dbb08b --- /dev/null +++ b/components/OrderGoods.vue @@ -0,0 +1,99 @@ + + + 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..f8d87bd --- /dev/null +++ b/components/ProductWindow.vue @@ -0,0 +1,145 @@ + + + diff --git a/components/PromotionGood.vue b/components/PromotionGood.vue new file mode 100644 index 0000000..0195099 --- /dev/null +++ b/components/PromotionGood.vue @@ -0,0 +1,215 @@ + + + + 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..a886766 --- /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/WxEmojiView.vue b/components/WxEmojiView.vue new file mode 100644 index 0000000..dee1964 --- /dev/null +++ b/components/WxEmojiView.vue @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/components/WxParseBr.vue b/components/WxParseBr.vue new file mode 100644 index 0000000..cb77d9f --- /dev/null +++ b/components/WxParseBr.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/components/api-set-tabbar.nvue b/components/api-set-tabbar.nvue new file mode 100644 index 0000000..c9c9187 --- /dev/null +++ b/components/api-set-tabbar.nvue @@ -0,0 +1,156 @@ + + + + + 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/product.vue b/components/product.vue new file mode 100644 index 0000000..bfa9726 --- /dev/null +++ b/components/product.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/components/region-picker/readme.md b/components/region-picker/readme.md new file mode 100644 index 0000000..aacd74e --- /dev/null +++ b/components/region-picker/readme.md @@ -0,0 +1,75 @@ +#### 特性说明 +1. 行政区用的是2018还是2019年的全国标准行政区划, 也可以定义远端的 json 地址, 格式看使用文档 +2. 返回的 detail.value 和官方的 mode=region 比缺少了 post_code, 主要是我的数据库中没有邮编, 剩下的 code/value 格式和官方保持一致 +3. 传参支持官方的 value, disabled, 暂不支持 custom-item +4. 事件支持 change / cancel +5. value 的传值支持 +- 行政区号数组 [省,市,区] +- 行政区号字符串 "省,市,区" / "区" +- 暂不支持城市名设置value, 有需要可以自己改造, 很简单的代码 + +#### 使用方式 +```javascript +import regionPicker from "@/components/region-picker/region-picker.vue" +``` +```javascript +components: { + regionPicker +}, +``` +将 +```html + + 请选择地区 + +``` +#### Value 传值说明 +```html + + + + + + + +``` +#### 使用远端 json +```html + +``` +返回json数据应符合格式如下 +```json +[{ + name: '福建省', + code: '350000', + children: [{ + name: '福州市', + code: '350100', + children: [{ + name: '仓山区', + code: '350104', + // id: xxx, + // post_code: xxx + // 其他自定义的数据键值对: 值 + // change 事件的 detail.data 属性会返回所选区域的完整的对象 + }, + { + //...第二个区域 + }] + }, + { + //...第二个城市 + }] +}, +{ +//...第二个省份 +}] +``` \ No newline at end of file diff --git a/components/region-picker/region-picker.js b/components/region-picker/region-picker.js new file mode 100644 index 0000000..d029d80 --- /dev/null +++ b/components/region-picker/region-picker.js @@ -0,0 +1,4 @@ +var zones_tree = [{ "id": "1", "name": "北京市", "code": "110000", "children": [{ "id": "1", "name": "市辖区", "code": "110100", "children": [{ "id": "1", "name": "东城区", "code": "110101" }, { "id": "2", "name": "西城区", "code": "110102" }, { "id": "3", "name": "朝阳区", "code": "110105" }, { "id": "4", "name": "丰台区", "code": "110106" }, { "id": "5", "name": "石景山区", "code": "110107" }, { "id": "6", "name": "海淀区", "code": "110108" }, { "id": "7", "name": "门头沟区", "code": "110109" }, { "id": "8", "name": "房山区", "code": "110111" }, { "id": "9", "name": "通州区", "code": "110112" }, { "id": "10", "name": "顺义区", "code": "110113" }, { "id": "11", "name": "昌平区", "code": "110114" }, { "id": "12", "name": "大兴区", "code": "110115" }, { "id": "13", "name": "怀柔区", "code": "110116" }, { "id": "14", "name": "平谷区", "code": "110117" }, { "id": "15", "name": "密云区", "code": "110118" }, { "id": "16", "name": "延庆区", "code": "110119" }] }] }, { "id": "2", "name": "天津市", "code": "120000", "children": [{ "id": "2", "name": "市辖区", "code": "120100", "children": [{ "id": "17", "name": "和平区", "code": "120101" }, { "id": "18", "name": "河东区", "code": "120102" }, { "id": "19", "name": "河西区", "code": "120103" }, { "id": "20", "name": "南开区", "code": "120104" }, { "id": "21", "name": "河北区", "code": "120105" }, { "id": "22", "name": "红桥区", "code": "120106" }, { "id": "23", "name": "东丽区", "code": "120110" }, { "id": "24", "name": "西青区", "code": "120111" }, { "id": "25", "name": "津南区", "code": "120112" }, { "id": "26", "name": "北辰区", "code": "120113" }, { "id": "27", "name": "武清区", "code": "120114" }, { "id": "28", "name": "宝坻区", "code": "120115" }, { "id": "29", "name": "滨海新区", "code": "120116" }, { "id": "30", "name": "宁河区", "code": "120117" }, { "id": "31", "name": "静海区", "code": "120118" }, { "id": "32", "name": "蓟州区", "code": "120119" }] }] }, { "id": "3", "name": "河北省", "code": "130000", "children": [{ "id": "3", "name": "石家庄市", "code": "130100", "children": [{ "id": "33", "name": "市辖区", "code": "130101" }, { "id": "34", "name": "长安区", "code": "130102" }, { "id": "35", "name": "桥西区", "code": "130104" }, { "id": "36", "name": "新华区", "code": "130105" }, { "id": "37", "name": "井陉矿区", "code": "130107" }, { "id": "38", "name": "裕华区", "code": "130108" }, { "id": "39", "name": "藁城区", "code": "130109" }, { "id": "40", "name": "鹿泉区", "code": "130110" }, { "id": "41", "name": "栾城区", "code": "130111" }, { "id": "42", "name": "井陉县", "code": "130121" }, { "id": "43", "name": "正定县", "code": "130123" }, { "id": "44", "name": "行唐县", "code": "130125" }, { "id": "45", "name": "灵寿县", "code": "130126" }, { "id": "46", "name": "高邑县", "code": "130127" }, { "id": "47", "name": "深泽县", "code": "130128" }, { "id": "48", "name": "赞皇县", "code": "130129" }, { "id": "49", "name": "无极县", "code": "130130" }, { "id": "50", "name": "平山县", "code": "130131" }, { "id": "51", "name": "元氏县", "code": "130132" }, { "id": "52", "name": "赵县", "code": "130133" }, { "id": "53", "name": "晋州市", "code": "130183" }, { "id": "54", "name": "新乐市", "code": "130184" }] }, { "id": "4", "name": "唐山市", "code": "130200", "children": [{ "id": "55", "name": "市辖区", "code": "130201" }, { "id": "56", "name": "路南区", "code": "130202" }, { "id": "57", "name": "路北区", "code": "130203" }, { "id": "58", "name": "古冶区", "code": "130204" }, { "id": "59", "name": "开平区", "code": "130205" }, { "id": "60", "name": "丰南区", "code": "130207" }, { "id": "61", "name": "丰润区", "code": "130208" }, { "id": "62", "name": "曹妃甸区", "code": "130209" }, { "id": "63", "name": "滦县", "code": "130223" }, { "id": "64", "name": "滦南县", "code": "130224" }, { "id": "65", "name": "乐亭县", "code": "130225" }, { "id": "66", "name": "迁西县", "code": "130227" }, { "id": "67", "name": "玉田县", "code": "130229" }, { "id": "68", "name": "遵化市", "code": "130281" }, { "id": "69", "name": "迁安市", "code": "130283" }] }, { "id": "5", "name": "秦皇岛市", "code": "130300", "children": [{ "id": "70", "name": "市辖区", "code": "130301" }, { "id": "71", "name": "海港区", "code": "130302" }, { "id": "72", "name": "山海关区", "code": "130303" }, { "id": "73", "name": "北戴河区", "code": "130304" }, { "id": "74", "name": "抚宁区", "code": "130306" }, { "id": "75", "name": "青龙满族自治县", "code": "130321" }, { "id": "76", "name": "昌黎县", "code": "130322" }, { "id": "77", "name": "卢龙县", "code": "130324" }] }, { "id": "6", "name": "邯郸市", "code": "130400", "children": [{ "id": "78", "name": "市辖区", "code": "130401" }, { "id": "79", "name": "邯山区", "code": "130402" }, { "id": "80", "name": "丛台区", "code": "130403" }, { "id": "81", "name": "复兴区", "code": "130404" }, { "id": "82", "name": "峰峰矿区", "code": "130406" }, { "id": "83", "name": "邯郸县", "code": "130421" }, { "id": "84", "name": "临漳县", "code": "130423" }, { "id": "85", "name": "成安县", "code": "130424" }, { "id": "86", "name": "大名县", "code": "130425" }, { "id": "87", "name": "涉县", "code": "130426" }, { "id": "88", "name": "磁县", "code": "130427" }, { "id": "89", "name": "肥乡县", "code": "130428" }, { "id": "90", "name": "永年县", "code": "130429" }, { "id": "91", "name": "邱县", "code": "130430" }, { "id": "92", "name": "鸡泽县", "code": "130431" }, { "id": "93", "name": "广平县", "code": "130432" }, { "id": "94", "name": "馆陶县", "code": "130433" }, { "id": "95", "name": "魏县", "code": "130434" }, { "id": "96", "name": "曲周县", "code": "130435" }, { "id": "97", "name": "武安市", "code": "130481" }] }, { "id": "7", "name": "邢台市", "code": "130500", "children": [{ "id": "98", "name": "市辖区", "code": "130501" }, { "id": "99", "name": "桥东区", "code": "130502" }, { "id": "100", "name": "桥西区", "code": "130503" }, { "id": "101", "name": "邢台县", "code": "130521" }, { "id": "102", "name": "临城县", "code": "130522" }, { "id": "103", "name": "内丘县", "code": "130523" }, { "id": "104", "name": "柏乡县", "code": "130524" }, { "id": "105", "name": "隆尧县", "code": "130525" }, { "id": "106", "name": "任县", "code": "130526" }, { "id": "107", "name": "南和县", "code": "130527" }, { "id": "108", "name": "宁晋县", "code": "130528" }, { "id": "109", "name": "巨鹿县", "code": "130529" }, { "id": "110", "name": "新河县", "code": "130530" }, { "id": "111", "name": "广宗县", "code": "130531" }, { "id": "112", "name": "平乡县", "code": "130532" }, { "id": "113", "name": "威县", "code": "130533" }, { "id": "114", "name": "清河县", "code": "130534" }, { "id": "115", "name": "临西县", "code": "130535" }, { "id": "116", "name": "南宫市", "code": "130581" }, { "id": "117", "name": "沙河市", "code": "130582" }] }, { "id": "8", "name": "保定市", "code": "130600", "children": [{ "id": "118", "name": "市辖区", "code": "130601" }, { "id": "119", "name": "竞秀区", "code": "130602" }, { "id": "120", "name": "莲池区", "code": "130606" }, { "id": "121", "name": "满城区", "code": "130607" }, { "id": "122", "name": "清苑区", "code": "130608" }, { "id": "123", "name": "徐水区", "code": "130609" }, { "id": "124", "name": "涞水县", "code": "130623" }, { "id": "125", "name": "阜平县", "code": "130624" }, { "id": "126", "name": "定兴县", "code": "130626" }, { "id": "127", "name": "唐县", "code": "130627" }, { "id": "128", "name": "高阳县", "code": "130628" }, { "id": "129", "name": "容城县", "code": "130629" }, { "id": "130", "name": "涞源县", "code": "130630" }, { "id": "131", "name": "望都县", "code": "130631" }, { "id": "132", "name": "安新县", "code": "130632" }, { "id": "133", "name": "易县", "code": "130633" }, { "id": "134", "name": "曲阳县", "code": "130634" }, { "id": "135", "name": "蠡县", "code": "130635" }, { "id": "136", "name": "顺平县", "code": "130636" }, { "id": "137", "name": "博野县", "code": "130637" }, { "id": "138", "name": "雄县", "code": "130638" }, { "id": "139", "name": "涿州市", "code": "130681" }, { "id": "140", "name": "安国市", "code": "130683" }, { "id": "141", "name": "高碑店市", "code": "130684" }] }, { "id": "9", "name": "张家口市", "code": "130700", "children": [{ "id": "142", "name": "市辖区", "code": "130701" }, { "id": "143", "name": "桥东区", "code": "130702" }, { "id": "144", "name": "桥西区", "code": "130703" }, { "id": "145", "name": "宣化区", "code": "130705" }, { "id": "146", "name": "下花园区", "code": "130706" }, { "id": "147", "name": "万全区", "code": "130708" }, { "id": "148", "name": "崇礼区", "code": "130709" }, { "id": "149", "name": "张北县", "code": "130722" }, { "id": "150", "name": "康保县", "code": "130723" }, { "id": "151", "name": "沽源县", "code": "130724" }, { "id": "152", "name": "尚义县", "code": "130725" }, { "id": "153", "name": "蔚县", "code": "130726" }, { "id": "154", "name": "阳原县", "code": "130727" }, { "id": "155", "name": "怀安县", "code": "130728" }, { "id": "156", "name": "怀来县", "code": "130730" }, { "id": "157", "name": "涿鹿县", "code": "130731" }, { "id": "158", "name": "赤城县", "code": "130732" }] }, { "id": "10", "name": "承德市", "code": "130800", "children": [{ "id": "159", "name": "市辖区", "code": "130801" }, { "id": "160", "name": "双桥区", "code": "130802" }, { "id": "161", "name": "双滦区", "code": "130803" }, { "id": "162", "name": "鹰手营子矿区", "code": "130804" }, { "id": "163", "name": "承德县", "code": "130821" }, { "id": "164", "name": "兴隆县", "code": "130822" }, { "id": "165", "name": "平泉县", "code": "130823" }, { "id": "166", "name": "滦平县", "code": "130824" }, { "id": "167", "name": "隆化县", "code": "130825" }, { "id": "168", "name": "丰宁满族自治县", "code": "130826" }, { "id": "169", "name": "宽城满族自治县", "code": "130827" }, { "id": "170", "name": "围场满族蒙古族自治县", "code": "130828" }] }, { "id": "11", "name": "沧州市", "code": "130900", "children": [{ "id": "171", "name": "市辖区", "code": "130901" }, { "id": "172", "name": "新华区", "code": "130902" }, { "id": "173", "name": "运河区", "code": "130903" }, { "id": "174", "name": "沧县", "code": "130921" }, { "id": "175", "name": "青县", "code": "130922" }, { "id": "176", "name": "东光县", "code": "130923" }, { "id": "177", "name": "海兴县", "code": "130924" }, { "id": "178", "name": "盐山县", "code": "130925" }, { "id": "179", "name": "肃宁县", "code": "130926" }, { "id": "180", "name": "南皮县", "code": "130927" }, { "id": "181", "name": "吴桥县", "code": "130928" }, { "id": "182", "name": "献县", "code": "130929" }, { "id": "183", "name": "孟村回族自治县", "code": "130930" }, { "id": "184", "name": "泊头市", "code": "130981" }, { "id": "185", "name": "任丘市", "code": "130982" }, { "id": "186", "name": "黄骅市", "code": "130983" }, { "id": "187", "name": "河间市", "code": "130984" }] }, { "id": "12", "name": "廊坊市", "code": "131000", "children": [{ "id": "188", "name": "市辖区", "code": "131001" }, { "id": "189", "name": "安次区", "code": "131002" }, { "id": "190", "name": "广阳区", "code": "131003" }, { "id": "191", "name": "固安县", "code": "131022" }, { "id": "192", "name": "永清县", "code": "131023" }, { "id": "193", "name": "香河县", "code": "131024" }, { "id": "194", "name": "大城县", "code": "131025" }, { "id": "195", "name": "文安县", "code": "131026" }, { "id": "196", "name": "大厂回族自治县", "code": "131028" }, { "id": "197", "name": "霸州市", "code": "131081" }, { "id": "198", "name": "三河市", "code": "131082" }] }, { "id": "13", "name": "衡水市", "code": "131100", "children": [{ "id": "199", "name": "市辖区", "code": "131101" }, { "id": "200", "name": "桃城区", "code": "131102" }, { "id": "201", "name": "冀州区", "code": "131103" }, { "id": "202", "name": "枣强县", "code": "131121" }, { "id": "203", "name": "武邑县", "code": "131122" }, { "id": "204", "name": "武强县", "code": "131123" }, { "id": "205", "name": "饶阳县", "code": "131124" }, { "id": "206", "name": "安平县", "code": "131125" }, { "id": "207", "name": "故城县", "code": "131126" }, { "id": "208", "name": "景县", "code": "131127" }, { "id": "209", "name": "阜城县", "code": "131128" }, { "id": "210", "name": "深州市", "code": "131182" }] }, { "id": "14", "name": "省直辖县级行政区划", "code": "139000", "children": [{ "id": "211", "name": "定州市", "code": "139001" }, { "id": "212", "name": "辛集市", "code": "139002" }] }] }, { "id": "4", "name": "山西省", "code": "140000", "children": [{ "id": "15", "name": "太原市", "code": "140100", "children": [{ "id": "213", "name": "市辖区", "code": "140101" }, { "id": "214", "name": "小店区", "code": "140105" }, { "id": "215", "name": "迎泽区", "code": "140106" }, { "id": "216", "name": "杏花岭区", "code": "140107" }, { "id": "217", "name": "尖草坪区", "code": "140108" }, { "id": "218", "name": "万柏林区", "code": "140109" }, { "id": "219", "name": "晋源区", "code": "140110" }, { "id": "220", "name": "清徐县", "code": "140121" }, { "id": "221", "name": "阳曲县", "code": "140122" }, { "id": "222", "name": "娄烦县", "code": "140123" }, { "id": "223", "name": "古交市", "code": "140181" }] }, { "id": "16", "name": "大同市", "code": "140200", "children": [{ "id": "224", "name": "市辖区", "code": "140201" }, { "id": "225", "name": "城区", "code": "140202" }, { "id": "226", "name": "矿区", "code": "140203" }, { "id": "227", "name": "南郊区", "code": "140211" }, { "id": "228", "name": "新荣区", "code": "140212" }, { "id": "229", "name": "阳高县", "code": "140221" }, { "id": "230", "name": "天镇县", "code": "140222" }, { "id": "231", "name": "广灵县", "code": "140223" }, { "id": "232", "name": "灵丘县", "code": "140224" }, { "id": "233", "name": "浑源县", "code": "140225" }, { "id": "234", "name": "左云县", "code": "140226" }, { "id": "235", "name": "大同县", "code": "140227" }] }, { "id": "17", "name": "阳泉市", "code": "140300", "children": [{ "id": "236", "name": "市辖区", "code": "140301" }, { "id": "237", "name": "城区", "code": "140302" }, { "id": "238", "name": "矿区", "code": "140303" }, { "id": "239", "name": "郊区", "code": "140311" }, { "id": "240", "name": "平定县", "code": "140321" }, { "id": "241", "name": "盂县", "code": "140322" }] }, { "id": "18", "name": "长治市", "code": "140400", "children": [{ "id": "242", "name": "市辖区", "code": "140401" }, { "id": "243", "name": "城区", "code": "140402" }, { "id": "244", "name": "郊区", "code": "140411" }, { "id": "245", "name": "长治县", "code": "140421" }, { "id": "246", "name": "襄垣县", "code": "140423" }, { "id": "247", "name": "屯留县", "code": "140424" }, { "id": "248", "name": "平顺县", "code": "140425" }, { "id": "249", "name": "黎城县", "code": "140426" }, { "id": "250", "name": "壶关县", "code": "140427" }, { "id": "251", "name": "长子县", "code": "140428" }, { "id": "252", "name": "武乡县", "code": "140429" }, { "id": "253", "name": "沁县", "code": "140430" }, { "id": "254", "name": "沁源县", "code": "140431" }, { "id": "255", "name": "潞城市", "code": "140481" }] }, { "id": "19", "name": "晋城市", "code": "140500", "children": [{ "id": "256", "name": "市辖区", "code": "140501" }, { "id": "257", "name": "城区", "code": "140502" }, { "id": "258", "name": "沁水县", "code": "140521" }, { "id": "259", "name": "阳城县", "code": "140522" }, { "id": "260", "name": "陵川县", "code": "140524" }, { "id": "261", "name": "泽州县", "code": "140525" }, { "id": "262", "name": "高平市", "code": "140581" }] }, { "id": "20", "name": "朔州市", "code": "140600", "children": [{ "id": "263", "name": "市辖区", "code": "140601" }, { "id": "264", "name": "朔城区", "code": "140602" }, { "id": "265", "name": "平鲁区", "code": "140603" }, { "id": "266", "name": "山阴县", "code": "140621" }, { "id": "267", "name": "应县", "code": "140622" }, { "id": "268", "name": "右玉县", "code": "140623" }, { "id": "269", "name": "怀仁县", "code": "140624" }] }, { "id": "21", "name": "晋中市", "code": "140700", "children": [{ "id": "270", "name": "市辖区", "code": "140701" }, { "id": "271", "name": "榆次区", "code": "140702" }, { "id": "272", "name": "榆社县", "code": "140721" }, { "id": "273", "name": "左权县", "code": "140722" }, { "id": "274", "name": "和顺县", "code": "140723" }, { "id": "275", "name": "昔阳县", "code": "140724" }, { "id": "276", "name": "寿阳县", "code": "140725" }, { "id": "277", "name": "太谷县", "code": "140726" }, { "id": "278", "name": "祁县", "code": "140727" }, { "id": "279", "name": "平遥县", "code": "140728" }, { "id": "280", "name": "灵石县", "code": "140729" }, { "id": "281", "name": "介休市", "code": "140781" }] }, { "id": "22", "name": "运城市", "code": "140800", "children": [{ "id": "282", "name": "市辖区", "code": "140801" }, { "id": "283", "name": "盐湖区", "code": "140802" }, { "id": "284", "name": "临猗县", "code": "140821" }, { "id": "285", "name": "万荣县", "code": "140822" }, { "id": "286", "name": "闻喜县", "code": "140823" }, { "id": "287", "name": "稷山县", "code": "140824" }, { "id": "288", "name": "新绛县", "code": "140825" }, { "id": "289", "name": "绛县", "code": "140826" }, { "id": "290", "name": "垣曲县", "code": "140827" }, { "id": "291", "name": "夏县", "code": "140828" }, { "id": "292", "name": "平陆县", "code": "140829" }, { "id": "293", "name": "芮城县", "code": "140830" }, { "id": "294", "name": "永济市", "code": "140881" }, { "id": "295", "name": "河津市", "code": "140882" }] }, { "id": "23", "name": "忻州市", "code": "140900", "children": [{ "id": "296", "name": "市辖区", "code": "140901" }, { "id": "297", "name": "忻府区", "code": "140902" }, { "id": "298", "name": "定襄县", "code": "140921" }, { "id": "299", "name": "五台县", "code": "140922" }, { "id": "300", "name": "代县", "code": "140923" }, { "id": "301", "name": "繁峙县", "code": "140924" }, { "id": "302", "name": "宁武县", "code": "140925" }, { "id": "303", "name": "静乐县", "code": "140926" }, { "id": "304", "name": "神池县", "code": "140927" }, { "id": "305", "name": "五寨县", "code": "140928" }, { "id": "306", "name": "岢岚县", "code": "140929" }, { "id": "307", "name": "河曲县", "code": "140930" }, { "id": "308", "name": "保德县", "code": "140931" }, { "id": "309", "name": "偏关县", "code": "140932" }, { "id": "310", "name": "原平市", "code": "140981" }] }, { "id": "24", "name": "临汾市", "code": "141000", "children": [{ "id": "311", "name": "市辖区", "code": "141001" }, { "id": "312", "name": "尧都区", "code": "141002" }, { "id": "313", "name": "曲沃县", "code": "141021" }, { "id": "314", "name": "翼城县", "code": "141022" }, { "id": "315", "name": "襄汾县", "code": "141023" }, { "id": "316", "name": "洪洞县", "code": "141024" }, { "id": "317", "name": "古县", "code": "141025" }, { "id": "318", "name": "安泽县", "code": "141026" }, { "id": "319", "name": "浮山县", "code": "141027" }, { "id": "320", "name": "吉县", "code": "141028" }, { "id": "321", "name": "乡宁县", "code": "141029" }, { "id": "322", "name": "大宁县", "code": "141030" }, { "id": "323", "name": "隰县", "code": "141031" }, { "id": "324", "name": "永和县", "code": "141032" }, { "id": "325", "name": "蒲县", "code": "141033" }, { "id": "326", "name": "汾西县", "code": "141034" }, { "id": "327", "name": "侯马市", "code": "141081" }, { "id": "328", "name": "霍州市", "code": "141082" }] }, { "id": "25", "name": "吕梁市", "code": "141100", "children": [{ "id": "329", "name": "市辖区", "code": "141101" }, { "id": "330", "name": "离石区", "code": "141102" }, { "id": "331", "name": "文水县", "code": "141121" }, { "id": "332", "name": "交城县", "code": "141122" }, { "id": "333", "name": "兴县", "code": "141123" }, { "id": "334", "name": "临县", "code": "141124" }, { "id": "335", "name": "柳林县", "code": "141125" }, { "id": "336", "name": "石楼县", "code": "141126" }, { "id": "337", "name": "岚县", "code": "141127" }, { "id": "338", "name": "方山县", "code": "141128" }, { "id": "339", "name": "中阳县", "code": "141129" }, { "id": "340", "name": "交口县", "code": "141130" }, { "id": "341", "name": "孝义市", "code": "141181" }, { "id": "342", "name": "汾阳市", "code": "141182" }] }] }, { "id": "5", "name": "内蒙古自治区", "code": "150000", "children": [{ "id": "26", "name": "呼和浩特市", "code": "150100", "children": [{ "id": "343", "name": "市辖区", "code": "150101" }, { "id": "344", "name": "新城区", "code": "150102" }, { "id": "345", "name": "回民区", "code": "150103" }, { "id": "346", "name": "玉泉区", "code": "150104" }, { "id": "347", "name": "赛罕区", "code": "150105" }, { "id": "348", "name": "土默特左旗", "code": "150121" }, { "id": "349", "name": "托克托县", "code": "150122" }, { "id": "350", "name": "和林格尔县", "code": "150123" }, { "id": "351", "name": "清水河县", "code": "150124" }, { "id": "352", "name": "武川县", "code": "150125" }] }, { "id": "27", "name": "包头市", "code": "150200", "children": [{ "id": "353", "name": "市辖区", "code": "150201" }, { "id": "354", "name": "东河区", "code": "150202" }, { "id": "355", "name": "昆都仑区", "code": "150203" }, { "id": "356", "name": "青山区", "code": "150204" }, { "id": "357", "name": "石拐区", "code": "150205" }, { "id": "358", "name": "白云鄂博矿区", "code": "150206" }, { "id": "359", "name": "九原区", "code": "150207" }, { "id": "360", "name": "土默特右旗", "code": "150221" }, { "id": "361", "name": "固阳县", "code": "150222" }, { "id": "362", "name": "达尔罕茂明安联合旗", "code": "150223" }] }, { "id": "28", "name": "乌海市", "code": "150300", "children": [{ "id": "363", "name": "市辖区", "code": "150301" }, { "id": "364", "name": "海勃湾区", "code": "150302" }, { "id": "365", "name": "海南区", "code": "150303" }, { "id": "366", "name": "乌达区", "code": "150304" }] }, { "id": "29", "name": "赤峰市", "code": "150400", "children": [{ "id": "367", "name": "市辖区", "code": "150401" }, { "id": "368", "name": "红山区", "code": "150402" }, { "id": "369", "name": "元宝山区", "code": "150403" }, { "id": "370", "name": "松山区", "code": "150404" }, { "id": "371", "name": "阿鲁科尔沁旗", "code": "150421" }, { "id": "372", "name": "巴林左旗", "code": "150422" }, { "id": "373", "name": "巴林右旗", "code": "150423" }, { "id": "374", "name": "林西县", "code": "150424" }, { "id": "375", "name": "克什克腾旗", "code": "150425" }, { "id": "376", "name": "翁牛特旗", "code": "150426" }, { "id": "377", "name": "喀喇沁旗", "code": "150428" }, { "id": "378", "name": "宁城县", "code": "150429" }, { "id": "379", "name": "敖汉旗", "code": "150430" }] }, { "id": "30", "name": "通辽市", "code": "150500", "children": [{ "id": "380", "name": "市辖区", "code": "150501" }, { "id": "381", "name": "科尔沁区", "code": "150502" }, { "id": "382", "name": "科尔沁左翼中旗", "code": "150521" }, { "id": "383", "name": "科尔沁左翼后旗", "code": "150522" }, { "id": "384", "name": "开鲁县", "code": "150523" }, { "id": "385", "name": "库伦旗", "code": "150524" }, { "id": "386", "name": "奈曼旗", "code": "150525" }, { "id": "387", "name": "扎鲁特旗", "code": "150526" }, { "id": "388", "name": "霍林郭勒市", "code": "150581" }] }, { "id": "31", "name": "鄂尔多斯市", "code": "150600", "children": [{ "id": "389", "name": "市辖区", "code": "150601" }, { "id": "390", "name": "东胜区", "code": "150602" }, { "id": "391", "name": "康巴什区", "code": "150603" }, { "id": "392", "name": "达拉特旗", "code": "150621" }, { "id": "393", "name": "准格尔旗", "code": "150622" }, { "id": "394", "name": "鄂托克前旗", "code": "150623" }, { "id": "395", "name": "鄂托克旗", "code": "150624" }, { "id": "396", "name": "杭锦旗", "code": "150625" }, { "id": "397", "name": "乌审旗", "code": "150626" }, { "id": "398", "name": "伊金霍洛旗", "code": "150627" }] }, { "id": "32", "name": "呼伦贝尔市", "code": "150700", "children": [{ "id": "399", "name": "市辖区", "code": "150701" }, { "id": "400", "name": "海拉尔区", "code": "150702" }, { "id": "401", "name": "扎赉诺尔区", "code": "150703" }, { "id": "402", "name": "阿荣旗", "code": "150721" }, { "id": "403", "name": "莫力达瓦达斡尔族自治旗", "code": "150722" }, { "id": "404", "name": "鄂伦春自治旗", "code": "150723" }, { "id": "405", "name": "鄂温克族自治旗", "code": "150724" }, { "id": "406", "name": "陈巴尔虎旗", "code": "150725" }, { "id": "407", "name": "新巴尔虎左旗", "code": "150726" }, { "id": "408", "name": "新巴尔虎右旗", "code": "150727" }, { "id": "409", "name": "满洲里市", "code": "150781" }, { "id": "410", "name": "牙克石市", "code": "150782" }, { "id": "411", "name": "扎兰屯市", "code": "150783" }, { "id": "412", "name": "额尔古纳市", "code": "150784" }, { "id": "413", "name": "根河市", "code": "150785" }] }, { "id": "33", "name": "巴彦淖尔市", "code": "150800", "children": [{ "id": "414", "name": "市辖区", "code": "150801" }, { "id": "415", "name": "临河区", "code": "150802" }, { "id": "416", "name": "五原县", "code": "150821" }, { "id": "417", "name": "磴口县", "code": "150822" }, { "id": "418", "name": "乌拉特前旗", "code": "150823" }, { "id": "419", "name": "乌拉特中旗", "code": "150824" }, { "id": "420", "name": "乌拉特后旗", "code": "150825" }, { "id": "421", "name": "杭锦后旗", "code": "150826" }] }, { "id": "34", "name": "乌兰察布市", "code": "150900", "children": [{ "id": "422", "name": "市辖区", "code": "150901" }, { "id": "423", "name": "集宁区", "code": "150902" }, { "id": "424", "name": "卓资县", "code": "150921" }, { "id": "425", "name": "化德县", "code": "150922" }, { "id": "426", "name": "商都县", "code": "150923" }, { "id": "427", "name": "兴和县", "code": "150924" }, { "id": "428", "name": "凉城县", "code": "150925" }, { "id": "429", "name": "察哈尔右翼前旗", "code": "150926" }, { "id": "430", "name": "察哈尔右翼中旗", "code": "150927" }, { "id": "431", "name": "察哈尔右翼后旗", "code": "150928" }, { "id": "432", "name": "四子王旗", "code": "150929" }, { "id": "433", "name": "丰镇市", "code": "150981" }] }, { "id": "35", "name": "兴安盟", "code": "152200", "children": [{ "id": "434", "name": "乌兰浩特市", "code": "152201" }, { "id": "435", "name": "阿尔山市", "code": "152202" }, { "id": "436", "name": "科尔沁右翼前旗", "code": "152221" }, { "id": "437", "name": "科尔沁右翼中旗", "code": "152222" }, { "id": "438", "name": "扎赉特旗", "code": "152223" }, { "id": "439", "name": "突泉县", "code": "152224" }] }, { "id": "36", "name": "锡林郭勒盟", "code": "152500", "children": [{ "id": "440", "name": "二连浩特市", "code": "152501" }, { "id": "441", "name": "锡林浩特市", "code": "152502" }, { "id": "442", "name": "阿巴嘎旗", "code": "152522" }, { "id": "443", "name": "苏尼特左旗", "code": "152523" }, { "id": "444", "name": "苏尼特右旗", "code": "152524" }, { "id": "445", "name": "东乌珠穆沁旗", "code": "152525" }, { "id": "446", "name": "西乌珠穆沁旗", "code": "152526" }, { "id": "447", "name": "太仆寺旗", "code": "152527" }, { "id": "448", "name": "镶黄旗", "code": "152528" }, { "id": "449", "name": "正镶白旗", "code": "152529" }, { "id": "450", "name": "正蓝旗", "code": "152530" }, { "id": "451", "name": "多伦县", "code": "152531" }] }, { "id": "37", "name": "阿拉善盟", "code": "152900", "children": [{ "id": "452", "name": "阿拉善左旗", "code": "152921" }, { "id": "453", "name": "阿拉善右旗", "code": "152922" }, { "id": "454", "name": "额济纳旗", "code": "152923" }] }] }, { "id": "6", "name": "辽宁省", "code": "210000", "children": [{ "id": "38", "name": "沈阳市", "code": "210100", "children": [{ "id": "455", "name": "市辖区", "code": "210101" }, { "id": "456", "name": "和平区", "code": "210102" }, { "id": "457", "name": "沈河区", "code": "210103" }, { "id": "458", "name": "大东区", "code": "210104" }, { "id": "459", "name": "皇姑区", "code": "210105" }, { "id": "460", "name": "铁西区", "code": "210106" }, { "id": "461", "name": "苏家屯区", "code": "210111" }, { "id": "462", "name": "浑南区", "code": "210112" }, { "id": "463", "name": "沈北新区", "code": "210113" }, { "id": "464", "name": "于洪区", "code": "210114" }, { "id": "465", "name": "辽中区", "code": "210115" }, { "id": "466", "name": "康平县", "code": "210123" }, { "id": "467", "name": "法库县", "code": "210124" }, { "id": "468", "name": "新民市", "code": "210181" }] }, { "id": "39", "name": "大连市", "code": "210200", "children": [{ "id": "469", "name": "市辖区", "code": "210201" }, { "id": "470", "name": "中山区", "code": "210202" }, { "id": "471", "name": "西岗区", "code": "210203" }, { "id": "472", "name": "沙河口区", "code": "210204" }, { "id": "473", "name": "甘井子区", "code": "210211" }, { "id": "474", "name": "旅顺口区", "code": "210212" }, { "id": "475", "name": "金州区", "code": "210213" }, { "id": "476", "name": "普兰店区", "code": "210214" }, { "id": "477", "name": "长海县", "code": "210224" }, { "id": "478", "name": "瓦房店市", "code": "210281" }, { "id": "479", "name": "庄河市", "code": "210283" }] }, { "id": "40", "name": "鞍山市", "code": "210300", "children": [{ "id": "480", "name": "市辖区", "code": "210301" }, { "id": "481", "name": "铁东区", "code": "210302" }, { "id": "482", "name": "铁西区", "code": "210303" }, { "id": "483", "name": "立山区", "code": "210304" }, { "id": "484", "name": "千山区", "code": "210311" }, { "id": "485", "name": "台安县", "code": "210321" }, { "id": "486", "name": "岫岩满族自治县", "code": "210323" }, { "id": "487", "name": "海城市", "code": "210381" }] }, { "id": "41", "name": "抚顺市", "code": "210400", "children": [{ "id": "488", "name": "市辖区", "code": "210401" }, { "id": "489", "name": "新抚区", "code": "210402" }, { "id": "490", "name": "东洲区", "code": "210403" }, { "id": "491", "name": "望花区", "code": "210404" }, { "id": "492", "name": "顺城区", "code": "210411" }, { "id": "493", "name": "抚顺县", "code": "210421" }, { "id": "494", "name": "新宾满族自治县", "code": "210422" }, { "id": "495", "name": "清原满族自治县", "code": "210423" }] }, { "id": "42", "name": "本溪市", "code": "210500", "children": [{ "id": "496", "name": "市辖区", "code": "210501" }, { "id": "497", "name": "平山区", "code": "210502" }, { "id": "498", "name": "溪湖区", "code": "210503" }, { "id": "499", "name": "明山区", "code": "210504" }, { "id": "500", "name": "南芬区", "code": "210505" }, { "id": "501", "name": "本溪满族自治县", "code": "210521" }, { "id": "502", "name": "桓仁满族自治县", "code": "210522" }] }, { "id": "43", "name": "丹东市", "code": "210600", "children": [{ "id": "503", "name": "市辖区", "code": "210601" }, { "id": "504", "name": "元宝区", "code": "210602" }, { "id": "505", "name": "振兴区", "code": "210603" }, { "id": "506", "name": "振安区", "code": "210604" }, { "id": "507", "name": "宽甸满族自治县", "code": "210624" }, { "id": "508", "name": "东港市", "code": "210681" }, { "id": "509", "name": "凤城市", "code": "210682" }] }, { "id": "44", "name": "锦州市", "code": "210700", "children": [{ "id": "510", "name": "市辖区", "code": "210701" }, { "id": "511", "name": "古塔区", "code": "210702" }, { "id": "512", "name": "凌河区", "code": "210703" }, { "id": "513", "name": "太和区", "code": "210711" }, { "id": "514", "name": "黑山县", "code": "210726" }, { "id": "515", "name": "义县", "code": "210727" }, { "id": "516", "name": "凌海市", "code": "210781" }, { "id": "517", "name": "北镇市", "code": "210782" }] }, { "id": "45", "name": "营口市", "code": "210800", "children": [{ "id": "518", "name": "市辖区", "code": "210801" }, { "id": "519", "name": "站前区", "code": "210802" }, { "id": "520", "name": "西市区", "code": "210803" }, { "id": "521", "name": "鲅鱼圈区", "code": "210804" }, { "id": "522", "name": "老边区", "code": "210811" }, { "id": "523", "name": "盖州市", "code": "210881" }, { "id": "524", "name": "大石桥市", "code": "210882" }] }, { "id": "46", "name": "阜新市", "code": "210900", "children": [{ "id": "525", "name": "市辖区", "code": "210901" }, { "id": "526", "name": "海州区", "code": "210902" }, { "id": "527", "name": "新邱区", "code": "210903" }, { "id": "528", "name": "太平区", "code": "210904" }, { "id": "529", "name": "清河门区", "code": "210905" }, { "id": "530", "name": "细河区", "code": "210911" }, { "id": "531", "name": "阜新蒙古族自治县", "code": "210921" }, { "id": "532", "name": "彰武县", "code": "210922" }] }, { "id": "47", "name": "辽阳市", "code": "211000", "children": [{ "id": "533", "name": "市辖区", "code": "211001" }, { "id": "534", "name": "白塔区", "code": "211002" }, { "id": "535", "name": "文圣区", "code": "211003" }, { "id": "536", "name": "宏伟区", "code": "211004" }, { "id": "537", "name": "弓长岭区", "code": "211005" }, { "id": "538", "name": "太子河区", "code": "211011" }, { "id": "539", "name": "辽阳县", "code": "211021" }, { "id": "540", "name": "灯塔市", "code": "211081" }] }, { "id": "48", "name": "盘锦市", "code": "211100", "children": [{ "id": "541", "name": "市辖区", "code": "211101" }, { "id": "542", "name": "双台子区", "code": "211102" }, { "id": "543", "name": "兴隆台区", "code": "211103" }, { "id": "544", "name": "大洼区", "code": "211104" }, { "id": "545", "name": "盘山县", "code": "211122" }] }, { "id": "49", "name": "铁岭市", "code": "211200", "children": [{ "id": "546", "name": "市辖区", "code": "211201" }, { "id": "547", "name": "银州区", "code": "211202" }, { "id": "548", "name": "清河区", "code": "211204" }, { "id": "549", "name": "铁岭县", "code": "211221" }, { "id": "550", "name": "西丰县", "code": "211223" }, { "id": "551", "name": "昌图县", "code": "211224" }, { "id": "552", "name": "调兵山市", "code": "211281" }, { "id": "553", "name": "开原市", "code": "211282" }] }, { "id": "50", "name": "朝阳市", "code": "211300", "children": [{ "id": "554", "name": "市辖区", "code": "211301" }, { "id": "555", "name": "双塔区", "code": "211302" }, { "id": "556", "name": "龙城区", "code": "211303" }, { "id": "557", "name": "朝阳县", "code": "211321" }, { "id": "558", "name": "建平县", "code": "211322" }, { "id": "559", "name": "喀喇沁左翼蒙古族自治县", "code": "211324" }, { "id": "560", "name": "北票市", "code": "211381" }, { "id": "561", "name": "凌源市", "code": "211382" }] }, { "id": "51", "name": "葫芦岛市", "code": "211400", "children": [{ "id": "562", "name": "市辖区", "code": "211401" }, { "id": "563", "name": "连山区", "code": "211402" }, { "id": "564", "name": "龙港区", "code": "211403" }, { "id": "565", "name": "南票区", "code": "211404" }, { "id": "566", "name": "绥中县", "code": "211421" }, { "id": "567", "name": "建昌县", "code": "211422" }, { "id": "568", "name": "兴城市", "code": "211481" }] }] }, { "id": "7", "name": "吉林省", "code": "220000", "children": [{ "id": "52", "name": "长春市", "code": "220100", "children": [{ "id": "569", "name": "市辖区", "code": "220101" }, { "id": "570", "name": "南关区", "code": "220102" }, { "id": "571", "name": "宽城区", "code": "220103" }, { "id": "572", "name": "朝阳区", "code": "220104" }, { "id": "573", "name": "二道区", "code": "220105" }, { "id": "574", "name": "绿园区", "code": "220106" }, { "id": "575", "name": "双阳区", "code": "220112" }, { "id": "576", "name": "九台区", "code": "220113" }, { "id": "577", "name": "农安县", "code": "220122" }, { "id": "578", "name": "榆树市", "code": "220182" }, { "id": "579", "name": "德惠市", "code": "220183" }] }, { "id": "53", "name": "吉林市", "code": "220200", "children": [{ "id": "580", "name": "市辖区", "code": "220201" }, { "id": "581", "name": "昌邑区", "code": "220202" }, { "id": "582", "name": "龙潭区", "code": "220203" }, { "id": "583", "name": "船营区", "code": "220204" }, { "id": "584", "name": "丰满区", "code": "220211" }, { "id": "585", "name": "永吉县", "code": "220221" }, { "id": "586", "name": "蛟河市", "code": "220281" }, { "id": "587", "name": "桦甸市", "code": "220282" }, { "id": "588", "name": "舒兰市", "code": "220283" }, { "id": "589", "name": "磐石市", "code": "220284" }] }, { "id": "54", "name": "四平市", "code": "220300", "children": [{ "id": "590", "name": "市辖区", "code": "220301" }, { "id": "591", "name": "铁西区", "code": "220302" }, { "id": "592", "name": "铁东区", "code": "220303" }, { "id": "593", "name": "梨树县", "code": "220322" }, { "id": "594", "name": "伊通满族自治县", "code": "220323" }, { "id": "595", "name": "公主岭市", "code": "220381" }, { "id": "596", "name": "双辽市", "code": "220382" }] }, { "id": "55", "name": "辽源市", "code": "220400", "children": [{ "id": "597", "name": "市辖区", "code": "220401" }, { "id": "598", "name": "龙山区", "code": "220402" }, { "id": "599", "name": "西安区", "code": "220403" }, { "id": "600", "name": "东丰县", "code": "220421" }, { "id": "601", "name": "东辽县", "code": "220422" }] }, { "id": "56", "name": "通化市", "code": "220500", "children": [{ "id": "602", "name": "市辖区", "code": "220501" }, { "id": "603", "name": "东昌区", "code": "220502" }, { "id": "604", "name": "二道江区", "code": "220503" }, { "id": "605", "name": "通化县", "code": "220521" }, { "id": "606", "name": "辉南县", "code": "220523" }, { "id": "607", "name": "柳河县", "code": "220524" }, { "id": "608", "name": "梅河口市", "code": "220581" }, { "id": "609", "name": "集安市", "code": "220582" }] }, { "id": "57", "name": "白山市", "code": "220600", "children": [{ "id": "610", "name": "市辖区", "code": "220601" }, { "id": "611", "name": "浑江区", "code": "220602" }, { "id": "612", "name": "江源区", "code": "220605" }, { "id": "613", "name": "抚松县", "code": "220621" }, { "id": "614", "name": "靖宇县", "code": "220622" }, { "id": "615", "name": "长白朝鲜族自治县", "code": "220623" }, { "id": "616", "name": "临江市", "code": "220681" }] }, { "id": "58", "name": "松原市", "code": "220700", "children": [{ "id": "617", "name": "市辖区", "code": "220701" }, { "id": "618", "name": "宁江区", "code": "220702" }, { "id": "619", "name": "前郭尔罗斯蒙古族自治县", "code": "220721" }, { "id": "620", "name": "长岭县", "code": "220722" }, { "id": "621", "name": "乾安县", "code": "220723" }, { "id": "622", "name": "扶余市", "code": "220781" }] }, { "id": "59", "name": "白城市", "code": "220800", "children": [{ "id": "623", "name": "市辖区", "code": "220801" }, { "id": "624", "name": "洮北区", "code": "220802" }, { "id": "625", "name": "镇赉县", "code": "220821" }, { "id": "626", "name": "通榆县", "code": "220822" }, { "id": "627", "name": "洮南市", "code": "220881" }, { "id": "628", "name": "大安市", "code": "220882" }] }, { "id": "60", "name": "延边朝鲜族自治州", "code": "222400", "children": [{ "id": "629", "name": "延吉市", "code": "222401" }, { "id": "630", "name": "图们市", "code": "222402" }, { "id": "631", "name": "敦化市", "code": "222403" }, { "id": "632", "name": "珲春市", "code": "222404" }, { "id": "633", "name": "龙井市", "code": "222405" }, { "id": "634", "name": "和龙市", "code": "222406" }, { "id": "635", "name": "汪清县", "code": "222424" }, { "id": "636", "name": "安图县", "code": "222426" }] }] }, { "id": "8", "name": "黑龙江省", "code": "230000", "children": [{ "id": "61", "name": "哈尔滨市", "code": "230100", "children": [{ "id": "637", "name": "市辖区", "code": "230101" }, { "id": "638", "name": "道里区", "code": "230102" }, { "id": "639", "name": "南岗区", "code": "230103" }, { "id": "640", "name": "道外区", "code": "230104" }, { "id": "641", "name": "平房区", "code": "230108" }, { "id": "642", "name": "松北区", "code": "230109" }, { "id": "643", "name": "香坊区", "code": "230110" }, { "id": "644", "name": "呼兰区", "code": "230111" }, { "id": "645", "name": "阿城区", "code": "230112" }, { "id": "646", "name": "双城区", "code": "230113" }, { "id": "647", "name": "依兰县", "code": "230123" }, { "id": "648", "name": "方正县", "code": "230124" }, { "id": "649", "name": "宾县", "code": "230125" }, { "id": "650", "name": "巴彦县", "code": "230126" }, { "id": "651", "name": "木兰县", "code": "230127" }, { "id": "652", "name": "通河县", "code": "230128" }, { "id": "653", "name": "延寿县", "code": "230129" }, { "id": "654", "name": "尚志市", "code": "230183" }, { "id": "655", "name": "五常市", "code": "230184" }] }, { "id": "62", "name": "齐齐哈尔市", "code": "230200", "children": [{ "id": "656", "name": "市辖区", "code": "230201" }, { "id": "657", "name": "龙沙区", "code": "230202" }, { "id": "658", "name": "建华区", "code": "230203" }, { "id": "659", "name": "铁锋区", "code": "230204" }, { "id": "660", "name": "昂昂溪区", "code": "230205" }, { "id": "661", "name": "富拉尔基区", "code": "230206" }, { "id": "662", "name": "碾子山区", "code": "230207" }, { "id": "663", "name": "梅里斯达斡尔族区", "code": "230208" }, { "id": "664", "name": "龙江县", "code": "230221" }, { "id": "665", "name": "依安县", "code": "230223" }, { "id": "666", "name": "泰来县", "code": "230224" }, { "id": "667", "name": "甘南县", "code": "230225" }, { "id": "668", "name": "富裕县", "code": "230227" }, { "id": "669", "name": "克山县", "code": "230229" }, { "id": "670", "name": "克东县", "code": "230230" }, { "id": "671", "name": "拜泉县", "code": "230231" }, { "id": "672", "name": "讷河市", "code": "230281" }] }, { "id": "63", "name": "鸡西市", "code": "230300", "children": [{ "id": "673", "name": "市辖区", "code": "230301" }, { "id": "674", "name": "鸡冠区", "code": "230302" }, { "id": "675", "name": "恒山区", "code": "230303" }, { "id": "676", "name": "滴道区", "code": "230304" }, { "id": "677", "name": "梨树区", "code": "230305" }, { "id": "678", "name": "城子河区", "code": "230306" }, { "id": "679", "name": "麻山区", "code": "230307" }, { "id": "680", "name": "鸡东县", "code": "230321" }, { "id": "681", "name": "虎林市", "code": "230381" }, { "id": "682", "name": "密山市", "code": "230382" }] }, { "id": "64", "name": "鹤岗市", "code": "230400", "children": [{ "id": "683", "name": "市辖区", "code": "230401" }, { "id": "684", "name": "向阳区", "code": "230402" }, { "id": "685", "name": "工农区", "code": "230403" }, { "id": "686", "name": "南山区", "code": "230404" }, { "id": "687", "name": "兴安区", "code": "230405" }, { "id": "688", "name": "东山区", "code": "230406" }, { "id": "689", "name": "兴山区", "code": "230407" }, { "id": "690", "name": "萝北县", "code": "230421" }, { "id": "691", "name": "绥滨县", "code": "230422" }] }, { "id": "65", "name": "双鸭山市", "code": "230500", "children": [{ "id": "692", "name": "市辖区", "code": "230501" }, { "id": "693", "name": "尖山区", "code": "230502" }, { "id": "694", "name": "岭东区", "code": "230503" }, { "id": "695", "name": "四方台区", "code": "230505" }, { "id": "696", "name": "宝山区", "code": "230506" }, { "id": "697", "name": "集贤县", "code": "230521" }, { "id": "698", "name": "友谊县", "code": "230522" }, { "id": "699", "name": "宝清县", "code": "230523" }, { "id": "700", "name": "饶河县", "code": "230524" }] }, { "id": "66", "name": "大庆市", "code": "230600", "children": [{ "id": "701", "name": "市辖区", "code": "230601" }, { "id": "702", "name": "萨尔图区", "code": "230602" }, { "id": "703", "name": "龙凤区", "code": "230603" }, { "id": "704", "name": "让胡路区", "code": "230604" }, { "id": "705", "name": "红岗区", "code": "230605" }, { "id": "706", "name": "大同区", "code": "230606" }, { "id": "707", "name": "肇州县", "code": "230621" }, { "id": "708", "name": "肇源县", "code": "230622" }, { "id": "709", "name": "林甸县", "code": "230623" }, { "id": "710", "name": "杜尔伯特蒙古族自治县", "code": "230624" }] }, { "id": "67", "name": "伊春市", "code": "230700", "children": [{ "id": "711", "name": "市辖区", "code": "230701" }, { "id": "712", "name": "伊春区", "code": "230702" }, { "id": "713", "name": "南岔区", "code": "230703" }, { "id": "714", "name": "友好区", "code": "230704" }, { "id": "715", "name": "西林区", "code": "230705" }, { "id": "716", "name": "翠峦区", "code": "230706" }, { "id": "717", "name": "新青区", "code": "230707" }, { "id": "718", "name": "美溪区", "code": "230708" }, { "id": "719", "name": "金山屯区", "code": "230709" }, { "id": "720", "name": "五营区", "code": "230710" }, { "id": "721", "name": "乌马河区", "code": "230711" }, { "id": "722", "name": "汤旺河区", "code": "230712" }, { "id": "723", "name": "带岭区", "code": "230713" }, { "id": "724", "name": "乌伊岭区", "code": "230714" }, { "id": "725", "name": "红星区", "code": "230715" }, { "id": "726", "name": "上甘岭区", "code": "230716" }, { "id": "727", "name": "嘉荫县", "code": "230722" }, { "id": "728", "name": "铁力市", "code": "230781" }] }, { "id": "68", "name": "佳木斯市", "code": "230800", "children": [{ "id": "729", "name": "市辖区", "code": "230801" }, { "id": "730", "name": "向阳区", "code": "230803" }, { "id": "731", "name": "前进区", "code": "230804" }, { "id": "732", "name": "东风区", "code": "230805" }, { "id": "733", "name": "郊区", "code": "230811" }, { "id": "734", "name": "桦南县", "code": "230822" }, { "id": "735", "name": "桦川县", "code": "230826" }, { "id": "736", "name": "汤原县", "code": "230828" }, { "id": "737", "name": "同江市", "code": "230881" }, { "id": "738", "name": "富锦市", "code": "230882" }, { "id": "739", "name": "抚远市", "code": "230883" }] }, { "id": "69", "name": "七台河市", "code": "230900", "children": [{ "id": "740", "name": "市辖区", "code": "230901" }, { "id": "741", "name": "新兴区", "code": "230902" }, { "id": "742", "name": "桃山区", "code": "230903" }, { "id": "743", "name": "茄子河区", "code": "230904" }, { "id": "744", "name": "勃利县", "code": "230921" }] }, { "id": "70", "name": "牡丹江市", "code": "231000", "children": [{ "id": "745", "name": "市辖区", "code": "231001" }, { "id": "746", "name": "东安区", "code": "231002" }, { "id": "747", "name": "阳明区", "code": "231003" }, { "id": "748", "name": "爱民区", "code": "231004" }, { "id": "749", "name": "西安区", "code": "231005" }, { "id": "750", "name": "林口县", "code": "231025" }, { "id": "751", "name": "绥芬河市", "code": "231081" }, { "id": "752", "name": "海林市", "code": "231083" }, { "id": "753", "name": "宁安市", "code": "231084" }, { "id": "754", "name": "穆棱市", "code": "231085" }, { "id": "755", "name": "东宁市", "code": "231086" }] }, { "id": "71", "name": "黑河市", "code": "231100", "children": [{ "id": "756", "name": "市辖区", "code": "231101" }, { "id": "757", "name": "爱辉区", "code": "231102" }, { "id": "758", "name": "嫩江县", "code": "231121" }, { "id": "759", "name": "逊克县", "code": "231123" }, { "id": "760", "name": "孙吴县", "code": "231124" }, { "id": "761", "name": "北安市", "code": "231181" }, { "id": "762", "name": "五大连池市", "code": "231182" }] }, { "id": "72", "name": "绥化市", "code": "231200", "children": [{ "id": "763", "name": "市辖区", "code": "231201" }, { "id": "764", "name": "北林区", "code": "231202" }, { "id": "765", "name": "望奎县", "code": "231221" }, { "id": "766", "name": "兰西县", "code": "231222" }, { "id": "767", "name": "青冈县", "code": "231223" }, { "id": "768", "name": "庆安县", "code": "231224" }, { "id": "769", "name": "明水县", "code": "231225" }, { "id": "770", "name": "绥棱县", "code": "231226" }, { "id": "771", "name": "安达市", "code": "231281" }, { "id": "772", "name": "肇东市", "code": "231282" }, { "id": "773", "name": "海伦市", "code": "231283" }] }, { "id": "73", "name": "大兴安岭地区", "code": "232700", "children": [{ "id": "774", "name": "呼玛县", "code": "232721" }, { "id": "775", "name": "塔河县", "code": "232722" }, { "id": "776", "name": "漠河县", "code": "232723" }] }] }, { "id": "9", "name": "上海市", "code": "310000", "children": [{ "id": "74", "name": "市辖区", "code": "310100", "children": [{ "id": "777", "name": "黄浦区", "code": "310101" }, { "id": "778", "name": "徐汇区", "code": "310104" }, { "id": "779", "name": "长宁区", "code": "310105" }, { "id": "780", "name": "静安区", "code": "310106" }, { "id": "781", "name": "普陀区", "code": "310107" }, { "id": "782", "name": "虹口区", "code": "310109" }, { "id": "783", "name": "杨浦区", "code": "310110" }, { "id": "784", "name": "闵行区", "code": "310112" }, { "id": "785", "name": "宝山区", "code": "310113" }, { "id": "786", "name": "嘉定区", "code": "310114" }, { "id": "787", "name": "浦东新区", "code": "310115" }, { "id": "788", "name": "金山区", "code": "310116" }, { "id": "789", "name": "松江区", "code": "310117" }, { "id": "790", "name": "青浦区", "code": "310118" }, { "id": "791", "name": "奉贤区", "code": "310120" }, { "id": "792", "name": "崇明区", "code": "310151" }] }] }, { "id": "10", "name": "江苏省", "code": "320000", "children": [{ "id": "75", "name": "南京市", "code": "320100", "children": [{ "id": "793", "name": "市辖区", "code": "320101" }, { "id": "794", "name": "玄武区", "code": "320102" }, { "id": "795", "name": "秦淮区", "code": "320104" }, { "id": "796", "name": "建邺区", "code": "320105" }, { "id": "797", "name": "鼓楼区", "code": "320106" }, { "id": "798", "name": "浦口区", "code": "320111" }, { "id": "799", "name": "栖霞区", "code": "320113" }, { "id": "800", "name": "雨花台区", "code": "320114" }, { "id": "801", "name": "江宁区", "code": "320115" }, { "id": "802", "name": "六合区", "code": "320116" }, { "id": "803", "name": "溧水区", "code": "320117" }, { "id": "804", "name": "高淳区", "code": "320118" }] }, { "id": "76", "name": "无锡市", "code": "320200", "children": [{ "id": "805", "name": "市辖区", "code": "320201" }, { "id": "806", "name": "锡山区", "code": "320205" }, { "id": "807", "name": "惠山区", "code": "320206" }, { "id": "808", "name": "滨湖区", "code": "320211" }, { "id": "809", "name": "梁溪区", "code": "320213" }, { "id": "810", "name": "新吴区", "code": "320214" }, { "id": "811", "name": "江阴市", "code": "320281" }, { "id": "812", "name": "宜兴市", "code": "320282" }] }, { "id": "77", "name": "徐州市", "code": "320300", "children": [{ "id": "813", "name": "市辖区", "code": "320301" }, { "id": "814", "name": "鼓楼区", "code": "320302" }, { "id": "815", "name": "云龙区", "code": "320303" }, { "id": "816", "name": "贾汪区", "code": "320305" }, { "id": "817", "name": "泉山区", "code": "320311" }, { "id": "818", "name": "铜山区", "code": "320312" }, { "id": "819", "name": "丰县", "code": "320321" }, { "id": "820", "name": "沛县", "code": "320322" }, { "id": "821", "name": "睢宁县", "code": "320324" }, { "id": "822", "name": "新沂市", "code": "320381" }, { "id": "823", "name": "邳州市", "code": "320382" }] }, { "id": "78", "name": "常州市", "code": "320400", "children": [{ "id": "824", "name": "市辖区", "code": "320401" }, { "id": "825", "name": "天宁区", "code": "320402" }, { "id": "826", "name": "钟楼区", "code": "320404" }, { "id": "827", "name": "新北区", "code": "320411" }, { "id": "828", "name": "武进区", "code": "320412" }, { "id": "829", "name": "金坛区", "code": "320413" }, { "id": "830", "name": "溧阳市", "code": "320481" }] }, { "id": "79", "name": "苏州市", "code": "320500", "children": [{ "id": "831", "name": "市辖区", "code": "320501" }, { "id": "832", "name": "虎丘区", "code": "320505" }, { "id": "833", "name": "吴中区", "code": "320506" }, { "id": "834", "name": "相城区", "code": "320507" }, { "id": "835", "name": "姑苏区", "code": "320508" }, { "id": "836", "name": "吴江区", "code": "320509" }, { "id": "837", "name": "常熟市", "code": "320581" }, { "id": "838", "name": "张家港市", "code": "320582" }, { "id": "839", "name": "昆山市", "code": "320583" }, { "id": "840", "name": "太仓市", "code": "320585" }] }, { "id": "80", "name": "南通市", "code": "320600", "children": [{ "id": "841", "name": "市辖区", "code": "320601" }, { "id": "842", "name": "崇川区", "code": "320602" }, { "id": "843", "name": "港闸区", "code": "320611" }, { "id": "844", "name": "通州区", "code": "320612" }, { "id": "845", "name": "海安县", "code": "320621" }, { "id": "846", "name": "如东县", "code": "320623" }, { "id": "847", "name": "启东市", "code": "320681" }, { "id": "848", "name": "如皋市", "code": "320682" }, { "id": "849", "name": "海门市", "code": "320684" }] }, { "id": "81", "name": "连云港市", "code": "320700", "children": [{ "id": "850", "name": "市辖区", "code": "320701" }, { "id": "851", "name": "连云区", "code": "320703" }, { "id": "852", "name": "海州区", "code": "320706" }, { "id": "853", "name": "赣榆区", "code": "320707" }, { "id": "854", "name": "东海县", "code": "320722" }, { "id": "855", "name": "灌云县", "code": "320723" }, { "id": "856", "name": "灌南县", "code": "320724" }] }, { "id": "82", "name": "淮安市", "code": "320800", "children": [{ "id": "857", "name": "市辖区", "code": "320801" }, { "id": "858", "name": "淮安区", "code": "320803" }, { "id": "859", "name": "淮阴区", "code": "320804" }, { "id": "860", "name": "清江浦区", "code": "320812" }, { "id": "861", "name": "洪泽区", "code": "320813" }, { "id": "862", "name": "涟水县", "code": "320826" }, { "id": "863", "name": "盱眙县", "code": "320830" }, { "id": "864", "name": "金湖县", "code": "320831" }] }, { "id": "83", "name": "盐城市", "code": "320900", "children": [{ "id": "865", "name": "市辖区", "code": "320901" }, { "id": "866", "name": "亭湖区", "code": "320902" }, { "id": "867", "name": "盐都区", "code": "320903" }, { "id": "868", "name": "大丰区", "code": "320904" }, { "id": "869", "name": "响水县", "code": "320921" }, { "id": "870", "name": "滨海县", "code": "320922" }, { "id": "871", "name": "阜宁县", "code": "320923" }, { "id": "872", "name": "射阳县", "code": "320924" }, { "id": "873", "name": "建湖县", "code": "320925" }, { "id": "874", "name": "东台市", "code": "320981" }] }, { "id": "84", "name": "扬州市", "code": "321000", "children": [{ "id": "875", "name": "市辖区", "code": "321001" }, { "id": "876", "name": "广陵区", "code": "321002" }, { "id": "877", "name": "邗江区", "code": "321003" }, { "id": "878", "name": "江都区", "code": "321012" }, { "id": "879", "name": "宝应县", "code": "321023" }, { "id": "880", "name": "仪征市", "code": "321081" }, { "id": "881", "name": "高邮市", "code": "321084" }] }, { "id": "85", "name": "镇江市", "code": "321100", "children": [{ "id": "882", "name": "市辖区", "code": "321101" }, { "id": "883", "name": "京口区", "code": "321102" }, { "id": "884", "name": "润州区", "code": "321111" }, { "id": "885", "name": "丹徒区", "code": "321112" }, { "id": "886", "name": "丹阳市", "code": "321181" }, { "id": "887", "name": "扬中市", "code": "321182" }, { "id": "888", "name": "句容市", "code": "321183" }] }, { "id": "86", "name": "泰州市", "code": "321200", "children": [{ "id": "889", "name": "市辖区", "code": "321201" }, { "id": "890", "name": "海陵区", "code": "321202" }, { "id": "891", "name": "高港区", "code": "321203" }, { "id": "892", "name": "姜堰区", "code": "321204" }, { "id": "893", "name": "兴化市", "code": "321281" }, { "id": "894", "name": "靖江市", "code": "321282" }, { "id": "895", "name": "泰兴市", "code": "321283" }] }, { "id": "87", "name": "宿迁市", "code": "321300", "children": [{ "id": "896", "name": "市辖区", "code": "321301" }, { "id": "897", "name": "宿城区", "code": "321302" }, { "id": "898", "name": "宿豫区", "code": "321311" }, { "id": "899", "name": "沭阳县", "code": "321322" }, { "id": "900", "name": "泗阳县", "code": "321323" }, { "id": "901", "name": "泗洪县", "code": "321324" }] }] }, { "id": "11", "name": "浙江省", "code": "330000", "children": [{ "id": "88", "name": "杭州市", "code": "330100", "children": [{ "id": "902", "name": "市辖区", "code": "330101" }, { "id": "903", "name": "上城区", "code": "330102" }, { "id": "904", "name": "下城区", "code": "330103" }, { "id": "905", "name": "江干区", "code": "330104" }, { "id": "906", "name": "拱墅区", "code": "330105" }, { "id": "907", "name": "西湖区", "code": "330106" }, { "id": "908", "name": "滨江区", "code": "330108" }, { "id": "909", "name": "萧山区", "code": "330109" }, { "id": "910", "name": "余杭区", "code": "330110" }, { "id": "911", "name": "富阳区", "code": "330111" }, { "id": "912", "name": "桐庐县", "code": "330122" }, { "id": "913", "name": "淳安县", "code": "330127" }, { "id": "914", "name": "建德市", "code": "330182" }, { "id": "915", "name": "临安市", "code": "330185" }] }, { "id": "89", "name": "宁波市", "code": "330200", "children": [{ "id": "916", "name": "市辖区", "code": "330201" }, { "id": "917", "name": "海曙区", "code": "330203" }, { "id": "918", "name": "江东区", "code": "330204" }, { "id": "919", "name": "江北区", "code": "330205" }, { "id": "920", "name": "北仑区", "code": "330206" }, { "id": "921", "name": "镇海区", "code": "330211" }, { "id": "922", "name": "鄞州区", "code": "330212" }, { "id": "923", "name": "象山县", "code": "330225" }, { "id": "924", "name": "宁海县", "code": "330226" }, { "id": "925", "name": "余姚市", "code": "330281" }, { "id": "926", "name": "慈溪市", "code": "330282" }, { "id": "927", "name": "奉化市", "code": "330283" }] }, { "id": "90", "name": "温州市", "code": "330300", "children": [{ "id": "928", "name": "市辖区", "code": "330301" }, { "id": "929", "name": "鹿城区", "code": "330302" }, { "id": "930", "name": "龙湾区", "code": "330303" }, { "id": "931", "name": "瓯海区", "code": "330304" }, { "id": "932", "name": "洞头区", "code": "330305" }, { "id": "933", "name": "永嘉县", "code": "330324" }, { "id": "934", "name": "平阳县", "code": "330326" }, { "id": "935", "name": "苍南县", "code": "330327" }, { "id": "936", "name": "文成县", "code": "330328" }, { "id": "937", "name": "泰顺县", "code": "330329" }, { "id": "938", "name": "瑞安市", "code": "330381" }, { "id": "939", "name": "乐清市", "code": "330382" }] }, { "id": "91", "name": "嘉兴市", "code": "330400", "children": [{ "id": "940", "name": "市辖区", "code": "330401" }, { "id": "941", "name": "南湖区", "code": "330402" }, { "id": "942", "name": "秀洲区", "code": "330411" }, { "id": "943", "name": "嘉善县", "code": "330421" }, { "id": "944", "name": "海盐县", "code": "330424" }, { "id": "945", "name": "海宁市", "code": "330481" }, { "id": "946", "name": "平湖市", "code": "330482" }, { "id": "947", "name": "桐乡市", "code": "330483" }] }, { "id": "92", "name": "湖州市", "code": "330500", "children": [{ "id": "948", "name": "市辖区", "code": "330501" }, { "id": "949", "name": "吴兴区", "code": "330502" }, { "id": "950", "name": "南浔区", "code": "330503" }, { "id": "951", "name": "德清县", "code": "330521" }, { "id": "952", "name": "长兴县", "code": "330522" }, { "id": "953", "name": "安吉县", "code": "330523" }] }, { "id": "93", "name": "绍兴市", "code": "330600", "children": [{ "id": "954", "name": "市辖区", "code": "330601" }, { "id": "955", "name": "越城区", "code": "330602" }, { "id": "956", "name": "柯桥区", "code": "330603" }, { "id": "957", "name": "上虞区", "code": "330604" }, { "id": "958", "name": "新昌县", "code": "330624" }, { "id": "959", "name": "诸暨市", "code": "330681" }, { "id": "960", "name": "嵊州市", "code": "330683" }] }, { "id": "94", "name": "金华市", "code": "330700", "children": [{ "id": "961", "name": "市辖区", "code": "330701" }, { "id": "962", "name": "婺城区", "code": "330702" }, { "id": "963", "name": "金东区", "code": "330703" }, { "id": "964", "name": "武义县", "code": "330723" }, { "id": "965", "name": "浦江县", "code": "330726" }, { "id": "966", "name": "磐安县", "code": "330727" }, { "id": "967", "name": "兰溪市", "code": "330781" }, { "id": "968", "name": "义乌市", "code": "330782" }, { "id": "969", "name": "东阳市", "code": "330783" }, { "id": "970", "name": "永康市", "code": "330784" }] }, { "id": "95", "name": "衢州市", "code": "330800", "children": [{ "id": "971", "name": "市辖区", "code": "330801" }, { "id": "972", "name": "柯城区", "code": "330802" }, { "id": "973", "name": "衢江区", "code": "330803" }, { "id": "974", "name": "常山县", "code": "330822" }, { "id": "975", "name": "开化县", "code": "330824" }, { "id": "976", "name": "龙游县", "code": "330825" }, { "id": "977", "name": "江山市", "code": "330881" }] }, { "id": "96", "name": "舟山市", "code": "330900", "children": [{ "id": "978", "name": "市辖区", "code": "330901" }, { "id": "979", "name": "定海区", "code": "330902" }, { "id": "980", "name": "普陀区", "code": "330903" }, { "id": "981", "name": "岱山县", "code": "330921" }, { "id": "982", "name": "嵊泗县", "code": "330922" }] }, { "id": "97", "name": "台州市", "code": "331000", "children": [{ "id": "983", "name": "市辖区", "code": "331001" }, { "id": "984", "name": "椒江区", "code": "331002" }, { "id": "985", "name": "黄岩区", "code": "331003" }, { "id": "986", "name": "路桥区", "code": "331004" }, { "id": "987", "name": "玉环县", "code": "331021" }, { "id": "988", "name": "三门县", "code": "331022" }, { "id": "989", "name": "天台县", "code": "331023" }, { "id": "990", "name": "仙居县", "code": "331024" }, { "id": "991", "name": "温岭市", "code": "331081" }, { "id": "992", "name": "临海市", "code": "331082" }] }, { "id": "98", "name": "丽水市", "code": "331100", "children": [{ "id": "993", "name": "市辖区", "code": "331101" }, { "id": "994", "name": "莲都区", "code": "331102" }, { "id": "995", "name": "青田县", "code": "331121" }, { "id": "996", "name": "缙云县", "code": "331122" }, { "id": "997", "name": "遂昌县", "code": "331123" }, { "id": "998", "name": "松阳县", "code": "331124" }, { "id": "999", "name": "云和县", "code": "331125" }, { "id": "1000", "name": "庆元县", "code": "331126" }, { "id": "1001", "name": "景宁畲族自治县", "code": "331127" }, { "id": "1002", "name": "龙泉市", "code": "331181" }] }] }, { "id": "12", "name": "安徽省", "code": "340000", "children": [{ "id": "99", "name": "合肥市", "code": "340100", "children": [{ "id": "1003", "name": "市辖区", "code": "340101" }, { "id": "1004", "name": "瑶海区", "code": "340102" }, { "id": "1005", "name": "庐阳区", "code": "340103" }, { "id": "1006", "name": "蜀山区", "code": "340104" }, { "id": "1007", "name": "包河区", "code": "340111" }, { "id": "1008", "name": "长丰县", "code": "340121" }, { "id": "1009", "name": "肥东县", "code": "340122" }, { "id": "1010", "name": "肥西县", "code": "340123" }, { "id": "1011", "name": "庐江县", "code": "340124" }, { "id": "1012", "name": "巢湖市", "code": "340181" }] }, { "id": "100", "name": "芜湖市", "code": "340200", "children": [{ "id": "1013", "name": "市辖区", "code": "340201" }, { "id": "1014", "name": "镜湖区", "code": "340202" }, { "id": "1015", "name": "弋江区", "code": "340203" }, { "id": "1016", "name": "鸠江区", "code": "340207" }, { "id": "1017", "name": "三山区", "code": "340208" }, { "id": "1018", "name": "芜湖县", "code": "340221" }, { "id": "1019", "name": "繁昌县", "code": "340222" }, { "id": "1020", "name": "南陵县", "code": "340223" }, { "id": "1021", "name": "无为县", "code": "340225" }] }, { "id": "101", "name": "蚌埠市", "code": "340300", "children": [{ "id": "1022", "name": "市辖区", "code": "340301" }, { "id": "1023", "name": "龙子湖区", "code": "340302" }, { "id": "1024", "name": "蚌山区", "code": "340303" }, { "id": "1025", "name": "禹会区", "code": "340304" }, { "id": "1026", "name": "淮上区", "code": "340311" }, { "id": "1027", "name": "怀远县", "code": "340321" }, { "id": "1028", "name": "五河县", "code": "340322" }, { "id": "1029", "name": "固镇县", "code": "340323" }] }, { "id": "102", "name": "淮南市", "code": "340400", "children": [{ "id": "1030", "name": "市辖区", "code": "340401" }, { "id": "1031", "name": "大通区", "code": "340402" }, { "id": "1032", "name": "田家庵区", "code": "340403" }, { "id": "1033", "name": "谢家集区", "code": "340404" }, { "id": "1034", "name": "八公山区", "code": "340405" }, { "id": "1035", "name": "潘集区", "code": "340406" }, { "id": "1036", "name": "凤台县", "code": "340421" }, { "id": "1037", "name": "寿县", "code": "340422" }] }, { "id": "103", "name": "马鞍山市", "code": "340500", "children": [{ "id": "1038", "name": "市辖区", "code": "340501" }, { "id": "1039", "name": "花山区", "code": "340503" }, { "id": "1040", "name": "雨山区", "code": "340504" }, { "id": "1041", "name": "博望区", "code": "340506" }, { "id": "1042", "name": "当涂县", "code": "340521" }, { "id": "1043", "name": "含山县", "code": "340522" }, { "id": "1044", "name": "和县", "code": "340523" }] }, { "id": "104", "name": "淮北市", "code": "340600", "children": [{ "id": "1045", "name": "市辖区", "code": "340601" }, { "id": "1046", "name": "杜集区", "code": "340602" }, { "id": "1047", "name": "相山区", "code": "340603" }, { "id": "1048", "name": "烈山区", "code": "340604" }, { "id": "1049", "name": "濉溪县", "code": "340621" }] }, { "id": "105", "name": "铜陵市", "code": "340700", "children": [{ "id": "1050", "name": "市辖区", "code": "340701" }, { "id": "1051", "name": "铜官区", "code": "340705" }, { "id": "1052", "name": "义安区", "code": "340706" }, { "id": "1053", "name": "郊区", "code": "340711" }, { "id": "1054", "name": "枞阳县", "code": "340722" }] }, { "id": "106", "name": "安庆市", "code": "340800", "children": [{ "id": "1055", "name": "市辖区", "code": "340801" }, { "id": "1056", "name": "迎江区", "code": "340802" }, { "id": "1057", "name": "大观区", "code": "340803" }, { "id": "1058", "name": "宜秀区", "code": "340811" }, { "id": "1059", "name": "怀宁县", "code": "340822" }, { "id": "1060", "name": "潜山县", "code": "340824" }, { "id": "1061", "name": "太湖县", "code": "340825" }, { "id": "1062", "name": "宿松县", "code": "340826" }, { "id": "1063", "name": "望江县", "code": "340827" }, { "id": "1064", "name": "岳西县", "code": "340828" }, { "id": "1065", "name": "桐城市", "code": "340881" }] }, { "id": "107", "name": "黄山市", "code": "341000", "children": [{ "id": "1066", "name": "市辖区", "code": "341001" }, { "id": "1067", "name": "屯溪区", "code": "341002" }, { "id": "1068", "name": "黄山区", "code": "341003" }, { "id": "1069", "name": "徽州区", "code": "341004" }, { "id": "1070", "name": "歙县", "code": "341021" }, { "id": "1071", "name": "休宁县", "code": "341022" }, { "id": "1072", "name": "黟县", "code": "341023" }, { "id": "1073", "name": "祁门县", "code": "341024" }] }, { "id": "108", "name": "滁州市", "code": "341100", "children": [{ "id": "1074", "name": "市辖区", "code": "341101" }, { "id": "1075", "name": "琅琊区", "code": "341102" }, { "id": "1076", "name": "南谯区", "code": "341103" }, { "id": "1077", "name": "来安县", "code": "341122" }, { "id": "1078", "name": "全椒县", "code": "341124" }, { "id": "1079", "name": "定远县", "code": "341125" }, { "id": "1080", "name": "凤阳县", "code": "341126" }, { "id": "1081", "name": "天长市", "code": "341181" }, { "id": "1082", "name": "明光市", "code": "341182" }] }, { "id": "109", "name": "阜阳市", "code": "341200", "children": [{ "id": "1083", "name": "市辖区", "code": "341201" }, { "id": "1084", "name": "颍州区", "code": "341202" }, { "id": "1085", "name": "颍东区", "code": "341203" }, { "id": "1086", "name": "颍泉区", "code": "341204" }, { "id": "1087", "name": "临泉县", "code": "341221" }, { "id": "1088", "name": "太和县", "code": "341222" }, { "id": "1089", "name": "阜南县", "code": "341225" }, { "id": "1090", "name": "颍上县", "code": "341226" }, { "id": "1091", "name": "界首市", "code": "341282" }] }, { "id": "110", "name": "宿州市", "code": "341300", "children": [{ "id": "1092", "name": "市辖区", "code": "341301" }, { "id": "1093", "name": "埇桥区", "code": "341302" }, { "id": "1094", "name": "砀山县", "code": "341321" }, { "id": "1095", "name": "萧县", "code": "341322" }, { "id": "1096", "name": "灵璧县", "code": "341323" }, { "id": "1097", "name": "泗县", "code": "341324" }] }, { "id": "111", "name": "六安市", "code": "341500", "children": [{ "id": "1098", "name": "市辖区", "code": "341501" }, { "id": "1099", "name": "金安区", "code": "341502" }, { "id": "1100", "name": "裕安区", "code": "341503" }, { "id": "1101", "name": "叶集区", "code": "341504" }, { "id": "1102", "name": "霍邱县", "code": "341522" }, { "id": "1103", "name": "舒城县", "code": "341523" }, { "id": "1104", "name": "金寨县", "code": "341524" }, { "id": "1105", "name": "霍山县", "code": "341525" }] }, { "id": "112", "name": "亳州市", "code": "341600", "children": [{ "id": "1106", "name": "市辖区", "code": "341601" }, { "id": "1107", "name": "谯城区", "code": "341602" }, { "id": "1108", "name": "涡阳县", "code": "341621" }, { "id": "1109", "name": "蒙城县", "code": "341622" }, { "id": "1110", "name": "利辛县", "code": "341623" }] }, { "id": "113", "name": "池州市", "code": "341700", "children": [{ "id": "1111", "name": "市辖区", "code": "341701" }, { "id": "1112", "name": "贵池区", "code": "341702" }, { "id": "1113", "name": "东至县", "code": "341721" }, { "id": "1114", "name": "石台县", "code": "341722" }, { "id": "1115", "name": "青阳县", "code": "341723" }] }, { "id": "114", "name": "宣城市", "code": "341800", "children": [{ "id": "1116", "name": "市辖区", "code": "341801" }, { "id": "1117", "name": "宣州区", "code": "341802" }, { "id": "1118", "name": "郎溪县", "code": "341821" }, { "id": "1119", "name": "广德县", "code": "341822" }, { "id": "1120", "name": "泾县", "code": "341823" }, { "id": "1121", "name": "绩溪县", "code": "341824" }, { "id": "1122", "name": "旌德县", "code": "341825" }, { "id": "1123", "name": "宁国市", "code": "341881" }] }] }, { "id": "13", "name": "福建省", "code": "350000", "children": [{ "id": "115", "name": "福州市", "code": "350100", "children": [{ "id": "1124", "name": "市辖区", "code": "350101" }, { "id": "1125", "name": "鼓楼区", "code": "350102" }, { "id": "1126", "name": "台江区", "code": "350103" }, { "id": "1127", "name": "仓山区", "code": "350104" }, { "id": "1128", "name": "马尾区", "code": "350105" }, { "id": "1129", "name": "晋安区", "code": "350111" }, { "id": "1130", "name": "闽侯县", "code": "350121" }, { "id": "1131", "name": "连江县", "code": "350122" }, { "id": "1132", "name": "罗源县", "code": "350123" }, { "id": "1133", "name": "闽清县", "code": "350124" }, { "id": "1134", "name": "永泰县", "code": "350125" }, { "id": "1135", "name": "平潭县", "code": "350128" }, { "id": "1136", "name": "福清市", "code": "350181" }, { "id": "1137", "name": "长乐市", "code": "350182" }] }, { "id": "116", "name": "厦门市", "code": "350200", "children": [{ "id": "1138", "name": "市辖区", "code": "350201" }, { "id": "1139", "name": "思明区", "code": "350203" }, { "id": "1140", "name": "海沧区", "code": "350205" }, { "id": "1141", "name": "湖里区", "code": "350206" }, { "id": "1142", "name": "集美区", "code": "350211" }, { "id": "1143", "name": "同安区", "code": "350212" }, { "id": "1144", "name": "翔安区", "code": "350213" }] }, { "id": "117", "name": "莆田市", "code": "350300", "children": [{ "id": "1145", "name": "市辖区", "code": "350301" }, { "id": "1146", "name": "城厢区", "code": "350302" }, { "id": "1147", "name": "涵江区", "code": "350303" }, { "id": "1148", "name": "荔城区", "code": "350304" }, { "id": "1149", "name": "秀屿区", "code": "350305" }, { "id": "1150", "name": "仙游县", "code": "350322" }] }, { "id": "118", "name": "三明市", "code": "350400", "children": [{ "id": "1151", "name": "市辖区", "code": "350401" }, { "id": "1152", "name": "梅列区", "code": "350402" }, { "id": "1153", "name": "三元区", "code": "350403" }, { "id": "1154", "name": "明溪县", "code": "350421" }, { "id": "1155", "name": "清流县", "code": "350423" }, { "id": "1156", "name": "宁化县", "code": "350424" }, { "id": "1157", "name": "大田县", "code": "350425" }, { "id": "1158", "name": "尤溪县", "code": "350426" }, { "id": "1159", "name": "沙县", "code": "350427" }, { "id": "1160", "name": "将乐县", "code": "350428" }, { "id": "1161", "name": "泰宁县", "code": "350429" }, { "id": "1162", "name": "建宁县", "code": "350430" }, { "id": "1163", "name": "永安市", "code": "350481" }] }, { "id": "119", "name": "泉州市", "code": "350500", "children": [{ "id": "1164", "name": "市辖区", "code": "350501" }, { "id": "1165", "name": "鲤城区", "code": "350502" }, { "id": "1166", "name": "丰泽区", "code": "350503" }, { "id": "1167", "name": "洛江区", "code": "350504" }, { "id": "1168", "name": "泉港区", "code": "350505" }, { "id": "1169", "name": "惠安县", "code": "350521" }, { "id": "1170", "name": "安溪县", "code": "350524" }, { "id": "1171", "name": "永春县", "code": "350525" }, { "id": "1172", "name": "德化县", "code": "350526" }, { "id": "1173", "name": "金门县", "code": "350527" }, { "id": "1174", "name": "石狮市", "code": "350581" }, { "id": "1175", "name": "晋江市", "code": "350582" }, { "id": "1176", "name": "南安市", "code": "350583" }] }, { "id": "120", "name": "漳州市", "code": "350600", "children": [{ "id": "1177", "name": "市辖区", "code": "350601" }, { "id": "1178", "name": "芗城区", "code": "350602" }, { "id": "1179", "name": "龙文区", "code": "350603" }, { "id": "1180", "name": "云霄县", "code": "350622" }, { "id": "1181", "name": "漳浦县", "code": "350623" }, { "id": "1182", "name": "诏安县", "code": "350624" }, { "id": "1183", "name": "长泰县", "code": "350625" }, { "id": "1184", "name": "东山县", "code": "350626" }, { "id": "1185", "name": "南靖县", "code": "350627" }, { "id": "1186", "name": "平和县", "code": "350628" }, { "id": "1187", "name": "华安县", "code": "350629" }, { "id": "1188", "name": "龙海市", "code": "350681" }] }, { "id": "121", "name": "南平市", "code": "350700", "children": [{ "id": "1189", "name": "市辖区", "code": "350701" }, { "id": "1190", "name": "延平区", "code": "350702" }, { "id": "1191", "name": "建阳区", "code": "350703" }, { "id": "1192", "name": "顺昌县", "code": "350721" }, { "id": "1193", "name": "浦城县", "code": "350722" }, { "id": "1194", "name": "光泽县", "code": "350723" }, { "id": "1195", "name": "松溪县", "code": "350724" }, { "id": "1196", "name": "政和县", "code": "350725" }, { "id": "1197", "name": "邵武市", "code": "350781" }, { "id": "1198", "name": "武夷山市", "code": "350782" }, { "id": "1199", "name": "建瓯市", "code": "350783" }] }, { "id": "122", "name": "龙岩市", "code": "350800", "children": [{ "id": "1200", "name": "市辖区", "code": "350801" }, { "id": "1201", "name": "新罗区", "code": "350802" }, { "id": "1202", "name": "永定区", "code": "350803" }, { "id": "1203", "name": "长汀县", "code": "350821" }, { "id": "1204", "name": "上杭县", "code": "350823" }, { "id": "1205", "name": "武平县", "code": "350824" }, { "id": "1206", "name": "连城县", "code": "350825" }, { "id": "1207", "name": "漳平市", "code": "350881" }] }, { "id": "123", "name": "宁德市", "code": "350900", "children": [{ "id": "1208", "name": "市辖区", "code": "350901" }, { "id": "1209", "name": "蕉城区", "code": "350902" }, { "id": "1210", "name": "霞浦县", "code": "350921" }, { "id": "1211", "name": "古田县", "code": "350922" }, { "id": "1212", "name": "屏南县", "code": "350923" }, { "id": "1213", "name": "寿宁县", "code": "350924" }, { "id": "1214", "name": "周宁县", "code": "350925" }, { "id": "1215", "name": "柘荣县", "code": "350926" }, { "id": "1216", "name": "福安市", "code": "350981" }, { "id": "1217", "name": "福鼎市", "code": "350982" }] }] }, { "id": "14", "name": "江西省", "code": "360000", "children": [{ "id": "124", "name": "南昌市", "code": "360100", "children": [{ "id": "1218", "name": "市辖区", "code": "360101" }, { "id": "1219", "name": "东湖区", "code": "360102" }, { "id": "1220", "name": "西湖区", "code": "360103" }, { "id": "1221", "name": "青云谱区", "code": "360104" }, { "id": "1222", "name": "湾里区", "code": "360105" }, { "id": "1223", "name": "青山湖区", "code": "360111" }, { "id": "1224", "name": "新建区", "code": "360112" }, { "id": "1225", "name": "南昌县", "code": "360121" }, { "id": "1226", "name": "安义县", "code": "360123" }, { "id": "1227", "name": "进贤县", "code": "360124" }] }, { "id": "125", "name": "景德镇市", "code": "360200", "children": [{ "id": "1228", "name": "市辖区", "code": "360201" }, { "id": "1229", "name": "昌江区", "code": "360202" }, { "id": "1230", "name": "珠山区", "code": "360203" }, { "id": "1231", "name": "浮梁县", "code": "360222" }, { "id": "1232", "name": "乐平市", "code": "360281" }] }, { "id": "126", "name": "萍乡市", "code": "360300", "children": [{ "id": "1233", "name": "市辖区", "code": "360301" }, { "id": "1234", "name": "安源区", "code": "360302" }, { "id": "1235", "name": "湘东区", "code": "360313" }, { "id": "1236", "name": "莲花县", "code": "360321" }, { "id": "1237", "name": "上栗县", "code": "360322" }, { "id": "1238", "name": "芦溪县", "code": "360323" }] }, { "id": "127", "name": "九江市", "code": "360400", "children": [{ "id": "1239", "name": "市辖区", "code": "360401" }, { "id": "1240", "name": "濂溪区", "code": "360402" }, { "id": "1241", "name": "浔阳区", "code": "360403" }, { "id": "1242", "name": "九江县", "code": "360421" }, { "id": "1243", "name": "武宁县", "code": "360423" }, { "id": "1244", "name": "修水县", "code": "360424" }, { "id": "1245", "name": "永修县", "code": "360425" }, { "id": "1246", "name": "德安县", "code": "360426" }, { "id": "1247", "name": "都昌县", "code": "360428" }, { "id": "1248", "name": "湖口县", "code": "360429" }, { "id": "1249", "name": "彭泽县", "code": "360430" }, { "id": "1250", "name": "瑞昌市", "code": "360481" }, { "id": "1251", "name": "共青城市", "code": "360482" }, { "id": "1252", "name": "庐山市", "code": "360483" }] }, { "id": "128", "name": "新余市", "code": "360500", "children": [{ "id": "1253", "name": "市辖区", "code": "360501" }, { "id": "1254", "name": "渝水区", "code": "360502" }, { "id": "1255", "name": "分宜县", "code": "360521" }] }, { "id": "129", "name": "鹰潭市", "code": "360600", "children": [{ "id": "1256", "name": "市辖区", "code": "360601" }, { "id": "1257", "name": "月湖区", "code": "360602" }, { "id": "1258", "name": "余江县", "code": "360622" }, { "id": "1259", "name": "贵溪市", "code": "360681" }] }, { "id": "130", "name": "赣州市", "code": "360700", "children": [{ "id": "1260", "name": "市辖区", "code": "360701" }, { "id": "1261", "name": "章贡区", "code": "360702" }, { "id": "1262", "name": "南康区", "code": "360703" }, { "id": "1263", "name": "赣县", "code": "360721" }, { "id": "1264", "name": "信丰县", "code": "360722" }, { "id": "1265", "name": "大余县", "code": "360723" }, { "id": "1266", "name": "上犹县", "code": "360724" }, { "id": "1267", "name": "崇义县", "code": "360725" }, { "id": "1268", "name": "安远县", "code": "360726" }, { "id": "1269", "name": "龙南县", "code": "360727" }, { "id": "1270", "name": "定南县", "code": "360728" }, { "id": "1271", "name": "全南县", "code": "360729" }, { "id": "1272", "name": "宁都县", "code": "360730" }, { "id": "1273", "name": "于都县", "code": "360731" }, { "id": "1274", "name": "兴国县", "code": "360732" }, { "id": "1275", "name": "会昌县", "code": "360733" }, { "id": "1276", "name": "寻乌县", "code": "360734" }, { "id": "1277", "name": "石城县", "code": "360735" }, { "id": "1278", "name": "瑞金市", "code": "360781" }] }, { "id": "131", "name": "吉安市", "code": "360800", "children": [{ "id": "1279", "name": "市辖区", "code": "360801" }, { "id": "1280", "name": "吉州区", "code": "360802" }, { "id": "1281", "name": "青原区", "code": "360803" }, { "id": "1282", "name": "吉安县", "code": "360821" }, { "id": "1283", "name": "吉水县", "code": "360822" }, { "id": "1284", "name": "峡江县", "code": "360823" }, { "id": "1285", "name": "新干县", "code": "360824" }, { "id": "1286", "name": "永丰县", "code": "360825" }, { "id": "1287", "name": "泰和县", "code": "360826" }, { "id": "1288", "name": "遂川县", "code": "360827" }, { "id": "1289", "name": "万安县", "code": "360828" }, { "id": "1290", "name": "安福县", "code": "360829" }, { "id": "1291", "name": "永新县", "code": "360830" }, { "id": "1292", "name": "井冈山市", "code": "360881" }] }, { "id": "132", "name": "宜春市", "code": "360900", "children": [{ "id": "1293", "name": "市辖区", "code": "360901" }, { "id": "1294", "name": "袁州区", "code": "360902" }, { "id": "1295", "name": "奉新县", "code": "360921" }, { "id": "1296", "name": "万载县", "code": "360922" }, { "id": "1297", "name": "上高县", "code": "360923" }, { "id": "1298", "name": "宜丰县", "code": "360924" }, { "id": "1299", "name": "靖安县", "code": "360925" }, { "id": "1300", "name": "铜鼓县", "code": "360926" }, { "id": "1301", "name": "丰城市", "code": "360981" }, { "id": "1302", "name": "樟树市", "code": "360982" }, { "id": "1303", "name": "高安市", "code": "360983" }] }, { "id": "133", "name": "抚州市", "code": "361000", "children": [{ "id": "1304", "name": "市辖区", "code": "361001" }, { "id": "1305", "name": "临川区", "code": "361002" }, { "id": "1306", "name": "南城县", "code": "361021" }, { "id": "1307", "name": "黎川县", "code": "361022" }, { "id": "1308", "name": "南丰县", "code": "361023" }, { "id": "1309", "name": "崇仁县", "code": "361024" }, { "id": "1310", "name": "乐安县", "code": "361025" }, { "id": "1311", "name": "宜黄县", "code": "361026" }, { "id": "1312", "name": "金溪县", "code": "361027" }, { "id": "1313", "name": "资溪县", "code": "361028" }, { "id": "1314", "name": "东乡县", "code": "361029" }, { "id": "1315", "name": "广昌县", "code": "361030" }] }, { "id": "134", "name": "上饶市", "code": "361100", "children": [{ "id": "1316", "name": "市辖区", "code": "361101" }, { "id": "1317", "name": "信州区", "code": "361102" }, { "id": "1318", "name": "广丰区", "code": "361103" }, { "id": "1319", "name": "上饶县", "code": "361121" }, { "id": "1320", "name": "玉山县", "code": "361123" }, { "id": "1321", "name": "铅山县", "code": "361124" }, { "id": "1322", "name": "横峰县", "code": "361125" }, { "id": "1323", "name": "弋阳县", "code": "361126" }, { "id": "1324", "name": "余干县", "code": "361127" }, { "id": "1325", "name": "鄱阳县", "code": "361128" }, { "id": "1326", "name": "万年县", "code": "361129" }, { "id": "1327", "name": "婺源县", "code": "361130" }, { "id": "1328", "name": "德兴市", "code": "361181" }] }] }, { "id": "15", "name": "山东省", "code": "370000", "children": [{ "id": "135", "name": "济南市", "code": "370100", "children": [{ "id": "1329", "name": "市辖区", "code": "370101" }, { "id": "1330", "name": "历下区", "code": "370102" }, { "id": "1331", "name": "市中区", "code": "370103" }, { "id": "1332", "name": "槐荫区", "code": "370104" }, { "id": "1333", "name": "天桥区", "code": "370105" }, { "id": "1334", "name": "历城区", "code": "370112" }, { "id": "1335", "name": "长清区", "code": "370113" }, { "id": "1336", "name": "平阴县", "code": "370124" }, { "id": "1337", "name": "济阳县", "code": "370125" }, { "id": "1338", "name": "商河县", "code": "370126" }, { "id": "1339", "name": "章丘市", "code": "370181" }] }, { "id": "136", "name": "青岛市", "code": "370200", "children": [{ "id": "1340", "name": "市辖区", "code": "370201" }, { "id": "1341", "name": "市南区", "code": "370202" }, { "id": "1342", "name": "市北区", "code": "370203" }, { "id": "1343", "name": "黄岛区", "code": "370211" }, { "id": "1344", "name": "崂山区", "code": "370212" }, { "id": "1345", "name": "李沧区", "code": "370213" }, { "id": "1346", "name": "城阳区", "code": "370214" }, { "id": "1347", "name": "胶州市", "code": "370281" }, { "id": "1348", "name": "即墨市", "code": "370282" }, { "id": "1349", "name": "平度市", "code": "370283" }, { "id": "1350", "name": "莱西市", "code": "370285" }] }, { "id": "137", "name": "淄博市", "code": "370300", "children": [{ "id": "1351", "name": "市辖区", "code": "370301" }, { "id": "1352", "name": "淄川区", "code": "370302" }, { "id": "1353", "name": "张店区", "code": "370303" }, { "id": "1354", "name": "博山区", "code": "370304" }, { "id": "1355", "name": "临淄区", "code": "370305" }, { "id": "1356", "name": "周村区", "code": "370306" }, { "id": "1357", "name": "桓台县", "code": "370321" }, { "id": "1358", "name": "高青县", "code": "370322" }, { "id": "1359", "name": "沂源县", "code": "370323" }] }, { "id": "138", "name": "枣庄市", "code": "370400", "children": [{ "id": "1360", "name": "市辖区", "code": "370401" }, { "id": "1361", "name": "市中区", "code": "370402" }, { "id": "1362", "name": "薛城区", "code": "370403" }, { "id": "1363", "name": "峄城区", "code": "370404" }, { "id": "1364", "name": "台儿庄区", "code": "370405" }, { "id": "1365", "name": "山亭区", "code": "370406" }, { "id": "1366", "name": "滕州市", "code": "370481" }] }, { "id": "139", "name": "东营市", "code": "370500", "children": [{ "id": "1367", "name": "市辖区", "code": "370501" }, { "id": "1368", "name": "东营区", "code": "370502" }, { "id": "1369", "name": "河口区", "code": "370503" }, { "id": "1370", "name": "垦利区", "code": "370505" }, { "id": "1371", "name": "利津县", "code": "370522" }, { "id": "1372", "name": "广饶县", "code": "370523" }] }, { "id": "140", "name": "烟台市", "code": "370600", "children": [{ "id": "1373", "name": "市辖区", "code": "370601" }, { "id": "1374", "name": "芝罘区", "code": "370602" }, { "id": "1375", "name": "福山区", "code": "370611" }, { "id": "1376", "name": "牟平区", "code": "370612" }, { "id": "1377", "name": "莱山区", "code": "370613" }, { "id": "1378", "name": "长岛县", "code": "370634" }, { "id": "1379", "name": "龙口市", "code": "370681" }, { "id": "1380", "name": "莱阳市", "code": "370682" }, { "id": "1381", "name": "莱州市", "code": "370683" }, { "id": "1382", "name": "蓬莱市", "code": "370684" }, { "id": "1383", "name": "招远市", "code": "370685" }, { "id": "1384", "name": "栖霞市", "code": "370686" }, { "id": "1385", "name": "海阳市", "code": "370687" }] }, { "id": "141", "name": "潍坊市", "code": "370700", "children": [{ "id": "1386", "name": "市辖区", "code": "370701" }, { "id": "1387", "name": "潍城区", "code": "370702" }, { "id": "1388", "name": "寒亭区", "code": "370703" }, { "id": "1389", "name": "坊子区", "code": "370704" }, { "id": "1390", "name": "奎文区", "code": "370705" }, { "id": "1391", "name": "临朐县", "code": "370724" }, { "id": "1392", "name": "昌乐县", "code": "370725" }, { "id": "1393", "name": "青州市", "code": "370781" }, { "id": "1394", "name": "诸城市", "code": "370782" }, { "id": "1395", "name": "寿光市", "code": "370783" }, { "id": "1396", "name": "安丘市", "code": "370784" }, { "id": "1397", "name": "高密市", "code": "370785" }, { "id": "1398", "name": "昌邑市", "code": "370786" }] }, { "id": "142", "name": "济宁市", "code": "370800", "children": [{ "id": "1399", "name": "市辖区", "code": "370801" }, { "id": "1400", "name": "任城区", "code": "370811" }, { "id": "1401", "name": "兖州区", "code": "370812" }, { "id": "1402", "name": "微山县", "code": "370826" }, { "id": "1403", "name": "鱼台县", "code": "370827" }, { "id": "1404", "name": "金乡县", "code": "370828" }, { "id": "1405", "name": "嘉祥县", "code": "370829" }, { "id": "1406", "name": "汶上县", "code": "370830" }, { "id": "1407", "name": "泗水县", "code": "370831" }, { "id": "1408", "name": "梁山县", "code": "370832" }, { "id": "1409", "name": "曲阜市", "code": "370881" }, { "id": "1410", "name": "邹城市", "code": "370883" }] }, { "id": "143", "name": "泰安市", "code": "370900", "children": [{ "id": "1411", "name": "市辖区", "code": "370901" }, { "id": "1412", "name": "泰山区", "code": "370902" }, { "id": "1413", "name": "岱岳区", "code": "370911" }, { "id": "1414", "name": "宁阳县", "code": "370921" }, { "id": "1415", "name": "东平县", "code": "370923" }, { "id": "1416", "name": "新泰市", "code": "370982" }, { "id": "1417", "name": "肥城市", "code": "370983" }] }, { "id": "144", "name": "威海市", "code": "371000", "children": [{ "id": "1418", "name": "市辖区", "code": "371001" }, { "id": "1419", "name": "环翠区", "code": "371002" }, { "id": "1420", "name": "文登区", "code": "371003" }, { "id": "1421", "name": "荣成市", "code": "371082" }, { "id": "1422", "name": "乳山市", "code": "371083" }] }, { "id": "145", "name": "日照市", "code": "371100", "children": [{ "id": "1423", "name": "市辖区", "code": "371101" }, { "id": "1424", "name": "东港区", "code": "371102" }, { "id": "1425", "name": "岚山区", "code": "371103" }, { "id": "1426", "name": "五莲县", "code": "371121" }, { "id": "1427", "name": "莒县", "code": "371122" }] }, { "id": "146", "name": "莱芜市", "code": "371200", "children": [{ "id": "1428", "name": "市辖区", "code": "371201" }, { "id": "1429", "name": "莱城区", "code": "371202" }, { "id": "1430", "name": "钢城区", "code": "371203" }] }, { "id": "147", "name": "临沂市", "code": "371300", "children": [{ "id": "1431", "name": "市辖区", "code": "371301" }, { "id": "1432", "name": "兰山区", "code": "371302" }, { "id": "1433", "name": "罗庄区", "code": "371311" }, { "id": "1434", "name": "河东区", "code": "371312" }, { "id": "1435", "name": "沂南县", "code": "371321" }, { "id": "1436", "name": "郯城县", "code": "371322" }, { "id": "1437", "name": "沂水县", "code": "371323" }, { "id": "1438", "name": "兰陵县", "code": "371324" }, { "id": "1439", "name": "费县", "code": "371325" }, { "id": "1440", "name": "平邑县", "code": "371326" }, { "id": "1441", "name": "莒南县", "code": "371327" }, { "id": "1442", "name": "蒙阴县", "code": "371328" }, { "id": "1443", "name": "临沭县", "code": "371329" }] }, { "id": "148", "name": "德州市", "code": "371400", "children": [{ "id": "1444", "name": "市辖区", "code": "371401" }, { "id": "1445", "name": "德城区", "code": "371402" }, { "id": "1446", "name": "陵城区", "code": "371403" }, { "id": "1447", "name": "宁津县", "code": "371422" }, { "id": "1448", "name": "庆云县", "code": "371423" }, { "id": "1449", "name": "临邑县", "code": "371424" }, { "id": "1450", "name": "齐河县", "code": "371425" }, { "id": "1451", "name": "平原县", "code": "371426" }, { "id": "1452", "name": "夏津县", "code": "371427" }, { "id": "1453", "name": "武城县", "code": "371428" }, { "id": "1454", "name": "乐陵市", "code": "371481" }, { "id": "1455", "name": "禹城市", "code": "371482" }] }, { "id": "149", "name": "聊城市", "code": "371500", "children": [{ "id": "1456", "name": "市辖区", "code": "371501" }, { "id": "1457", "name": "东昌府区", "code": "371502" }, { "id": "1458", "name": "阳谷县", "code": "371521" }, { "id": "1459", "name": "莘县", "code": "371522" }, { "id": "1460", "name": "茌平县", "code": "371523" }, { "id": "1461", "name": "东阿县", "code": "371524" }, { "id": "1462", "name": "冠县", "code": "371525" }, { "id": "1463", "name": "高唐县", "code": "371526" }, { "id": "1464", "name": "临清市", "code": "371581" }] }, { "id": "150", "name": "滨州市", "code": "371600", "children": [{ "id": "1465", "name": "市辖区", "code": "371601" }, { "id": "1466", "name": "滨城区", "code": "371602" }, { "id": "1467", "name": "沾化区", "code": "371603" }, { "id": "1468", "name": "惠民县", "code": "371621" }, { "id": "1469", "name": "阳信县", "code": "371622" }, { "id": "1470", "name": "无棣县", "code": "371623" }, { "id": "1471", "name": "博兴县", "code": "371625" }, { "id": "1472", "name": "邹平县", "code": "371626" }] }, { "id": "151", "name": "菏泽市", "code": "371700", "children": [{ "id": "1473", "name": "市辖区", "code": "371701" }, { "id": "1474", "name": "牡丹区", "code": "371702" }, { "id": "1475", "name": "定陶区", "code": "371703" }, { "id": "1476", "name": "曹县", "code": "371721" }, { "id": "1477", "name": "单县", "code": "371722" }, { "id": "1478", "name": "成武县", "code": "371723" }, { "id": "1479", "name": "巨野县", "code": "371724" }, { "id": "1480", "name": "郓城县", "code": "371725" }, { "id": "1481", "name": "鄄城县", "code": "371726" }, { "id": "1482", "name": "东明县", "code": "371728" }] }] }, { "id": "16", "name": "河南省", "code": "410000", "children": [{ "id": "152", "name": "郑州市", "code": "410100", "children": [{ "id": "1483", "name": "市辖区", "code": "410101" }, { "id": "1484", "name": "中原区", "code": "410102" }, { "id": "1485", "name": "二七区", "code": "410103" }, { "id": "1486", "name": "管城回族区", "code": "410104" }, { "id": "1487", "name": "金水区", "code": "410105" }, { "id": "1488", "name": "上街区", "code": "410106" }, { "id": "1489", "name": "惠济区", "code": "410108" }, { "id": "1490", "name": "中牟县", "code": "410122" }, { "id": "1491", "name": "巩义市", "code": "410181" }, { "id": "1492", "name": "荥阳市", "code": "410182" }, { "id": "1493", "name": "新密市", "code": "410183" }, { "id": "1494", "name": "新郑市", "code": "410184" }, { "id": "1495", "name": "登封市", "code": "410185" }] }, { "id": "153", "name": "开封市", "code": "410200", "children": [{ "id": "1496", "name": "市辖区", "code": "410201" }, { "id": "1497", "name": "龙亭区", "code": "410202" }, { "id": "1498", "name": "顺河回族区", "code": "410203" }, { "id": "1499", "name": "鼓楼区", "code": "410204" }, { "id": "1500", "name": "禹王台区", "code": "410205" }, { "id": "1501", "name": "金明区", "code": "410211" }, { "id": "1502", "name": "祥符区", "code": "410212" }, { "id": "1503", "name": "杞县", "code": "410221" }, { "id": "1504", "name": "通许县", "code": "410222" }, { "id": "1505", "name": "尉氏县", "code": "410223" }, { "id": "1506", "name": "兰考县", "code": "410225" }] }, { "id": "154", "name": "洛阳市", "code": "410300", "children": [{ "id": "1507", "name": "市辖区", "code": "410301" }, { "id": "1508", "name": "老城区", "code": "410302" }, { "id": "1509", "name": "西工区", "code": "410303" }, { "id": "1510", "name": "瀍河回族区", "code": "410304" }, { "id": "1511", "name": "涧西区", "code": "410305" }, { "id": "1512", "name": "吉利区", "code": "410306" }, { "id": "1513", "name": "洛龙区", "code": "410311" }, { "id": "1514", "name": "孟津县", "code": "410322" }, { "id": "1515", "name": "新安县", "code": "410323" }, { "id": "1516", "name": "栾川县", "code": "410324" }, { "id": "1517", "name": "嵩县", "code": "410325" }, { "id": "1518", "name": "汝阳县", "code": "410326" }, { "id": "1519", "name": "宜阳县", "code": "410327" }, { "id": "1520", "name": "洛宁县", "code": "410328" }, { "id": "1521", "name": "伊川县", "code": "410329" }, { "id": "1522", "name": "偃师市", "code": "410381" }] }, { "id": "155", "name": "平顶山市", "code": "410400", "children": [{ "id": "1523", "name": "市辖区", "code": "410401" }, { "id": "1524", "name": "新华区", "code": "410402" }, { "id": "1525", "name": "卫东区", "code": "410403" }, { "id": "1526", "name": "石龙区", "code": "410404" }, { "id": "1527", "name": "湛河区", "code": "410411" }, { "id": "1528", "name": "宝丰县", "code": "410421" }, { "id": "1529", "name": "叶县", "code": "410422" }, { "id": "1530", "name": "鲁山县", "code": "410423" }, { "id": "1531", "name": "郏县", "code": "410425" }, { "id": "1532", "name": "舞钢市", "code": "410481" }, { "id": "1533", "name": "汝州市", "code": "410482" }] }, { "id": "156", "name": "安阳市", "code": "410500", "children": [{ "id": "1534", "name": "市辖区", "code": "410501" }, { "id": "1535", "name": "文峰区", "code": "410502" }, { "id": "1536", "name": "北关区", "code": "410503" }, { "id": "1537", "name": "殷都区", "code": "410505" }, { "id": "1538", "name": "龙安区", "code": "410506" }, { "id": "1539", "name": "安阳县", "code": "410522" }, { "id": "1540", "name": "汤阴县", "code": "410523" }, { "id": "1541", "name": "滑县", "code": "410526" }, { "id": "1542", "name": "内黄县", "code": "410527" }, { "id": "1543", "name": "林州市", "code": "410581" }] }, { "id": "157", "name": "鹤壁市", "code": "410600", "children": [{ "id": "1544", "name": "市辖区", "code": "410601" }, { "id": "1545", "name": "鹤山区", "code": "410602" }, { "id": "1546", "name": "山城区", "code": "410603" }, { "id": "1547", "name": "淇滨区", "code": "410611" }, { "id": "1548", "name": "浚县", "code": "410621" }, { "id": "1549", "name": "淇县", "code": "410622" }] }, { "id": "158", "name": "新乡市", "code": "410700", "children": [{ "id": "1550", "name": "市辖区", "code": "410701" }, { "id": "1551", "name": "红旗区", "code": "410702" }, { "id": "1552", "name": "卫滨区", "code": "410703" }, { "id": "1553", "name": "凤泉区", "code": "410704" }, { "id": "1554", "name": "牧野区", "code": "410711" }, { "id": "1555", "name": "新乡县", "code": "410721" }, { "id": "1556", "name": "获嘉县", "code": "410724" }, { "id": "1557", "name": "原阳县", "code": "410725" }, { "id": "1558", "name": "延津县", "code": "410726" }, { "id": "1559", "name": "封丘县", "code": "410727" }, { "id": "1560", "name": "长垣县", "code": "410728" }, { "id": "1561", "name": "卫辉市", "code": "410781" }, { "id": "1562", "name": "辉县市", "code": "410782" }] }, { "id": "159", "name": "焦作市", "code": "410800", "children": [{ "id": "1563", "name": "市辖区", "code": "410801" }, { "id": "1564", "name": "解放区", "code": "410802" }, { "id": "1565", "name": "中站区", "code": "410803" }, { "id": "1566", "name": "马村区", "code": "410804" }, { "id": "1567", "name": "山阳区", "code": "410811" }, { "id": "1568", "name": "修武县", "code": "410821" }, { "id": "1569", "name": "博爱县", "code": "410822" }, { "id": "1570", "name": "武陟县", "code": "410823" }, { "id": "1571", "name": "温县", "code": "410825" }, { "id": "1572", "name": "沁阳市", "code": "410882" }, { "id": "1573", "name": "孟州市", "code": "410883" }] }, { "id": "160", "name": "濮阳市", "code": "410900", "children": [{ "id": "1574", "name": "市辖区", "code": "410901" }, { "id": "1575", "name": "华龙区", "code": "410902" }, { "id": "1576", "name": "清丰县", "code": "410922" }, { "id": "1577", "name": "南乐县", "code": "410923" }, { "id": "1578", "name": "范县", "code": "410926" }, { "id": "1579", "name": "台前县", "code": "410927" }, { "id": "1580", "name": "濮阳县", "code": "410928" }] }, { "id": "161", "name": "许昌市", "code": "411000", "children": [{ "id": "1581", "name": "市辖区", "code": "411001" }, { "id": "1582", "name": "魏都区", "code": "411002" }, { "id": "1583", "name": "许昌县", "code": "411023" }, { "id": "1584", "name": "鄢陵县", "code": "411024" }, { "id": "1585", "name": "襄城县", "code": "411025" }, { "id": "1586", "name": "禹州市", "code": "411081" }, { "id": "1587", "name": "长葛市", "code": "411082" }] }, { "id": "162", "name": "漯河市", "code": "411100", "children": [{ "id": "1588", "name": "市辖区", "code": "411101" }, { "id": "1589", "name": "源汇区", "code": "411102" }, { "id": "1590", "name": "郾城区", "code": "411103" }, { "id": "1591", "name": "召陵区", "code": "411104" }, { "id": "1592", "name": "舞阳县", "code": "411121" }, { "id": "1593", "name": "临颍县", "code": "411122" }] }, { "id": "163", "name": "三门峡市", "code": "411200", "children": [{ "id": "1594", "name": "市辖区", "code": "411201" }, { "id": "1595", "name": "湖滨区", "code": "411202" }, { "id": "1596", "name": "陕州区", "code": "411203" }, { "id": "1597", "name": "渑池县", "code": "411221" }, { "id": "1598", "name": "卢氏县", "code": "411224" }, { "id": "1599", "name": "义马市", "code": "411281" }, { "id": "1600", "name": "灵宝市", "code": "411282" }] }, { "id": "164", "name": "南阳市", "code": "411300", "children": [{ "id": "1601", "name": "市辖区", "code": "411301" }, { "id": "1602", "name": "宛城区", "code": "411302" }, { "id": "1603", "name": "卧龙区", "code": "411303" }, { "id": "1604", "name": "南召县", "code": "411321" }, { "id": "1605", "name": "方城县", "code": "411322" }, { "id": "1606", "name": "西峡县", "code": "411323" }, { "id": "1607", "name": "镇平县", "code": "411324" }, { "id": "1608", "name": "内乡县", "code": "411325" }, { "id": "1609", "name": "淅川县", "code": "411326" }, { "id": "1610", "name": "社旗县", "code": "411327" }, { "id": "1611", "name": "唐河县", "code": "411328" }, { "id": "1612", "name": "新野县", "code": "411329" }, { "id": "1613", "name": "桐柏县", "code": "411330" }, { "id": "1614", "name": "邓州市", "code": "411381" }] }, { "id": "165", "name": "商丘市", "code": "411400", "children": [{ "id": "1615", "name": "市辖区", "code": "411401" }, { "id": "1616", "name": "梁园区", "code": "411402" }, { "id": "1617", "name": "睢阳区", "code": "411403" }, { "id": "1618", "name": "民权县", "code": "411421" }, { "id": "1619", "name": "睢县", "code": "411422" }, { "id": "1620", "name": "宁陵县", "code": "411423" }, { "id": "1621", "name": "柘城县", "code": "411424" }, { "id": "1622", "name": "虞城县", "code": "411425" }, { "id": "1623", "name": "夏邑县", "code": "411426" }, { "id": "1624", "name": "永城市", "code": "411481" }] }, { "id": "166", "name": "信阳市", "code": "411500", "children": [{ "id": "1625", "name": "市辖区", "code": "411501" }, { "id": "1626", "name": "浉河区", "code": "411502" }, { "id": "1627", "name": "平桥区", "code": "411503" }, { "id": "1628", "name": "罗山县", "code": "411521" }, { "id": "1629", "name": "光山县", "code": "411522" }, { "id": "1630", "name": "新县", "code": "411523" }, { "id": "1631", "name": "商城县", "code": "411524" }, { "id": "1632", "name": "固始县", "code": "411525" }, { "id": "1633", "name": "潢川县", "code": "411526" }, { "id": "1634", "name": "淮滨县", "code": "411527" }, { "id": "1635", "name": "息县", "code": "411528" }] }, { "id": "167", "name": "周口市", "code": "411600", "children": [{ "id": "1636", "name": "市辖区", "code": "411601" }, { "id": "1637", "name": "川汇区", "code": "411602" }, { "id": "1638", "name": "扶沟县", "code": "411621" }, { "id": "1639", "name": "西华县", "code": "411622" }, { "id": "1640", "name": "商水县", "code": "411623" }, { "id": "1641", "name": "沈丘县", "code": "411624" }, { "id": "1642", "name": "郸城县", "code": "411625" }, { "id": "1643", "name": "淮阳县", "code": "411626" }, { "id": "1644", "name": "太康县", "code": "411627" }, { "id": "1645", "name": "鹿邑县", "code": "411628" }, { "id": "1646", "name": "项城市", "code": "411681" }] }, { "id": "168", "name": "驻马店市", "code": "411700", "children": [{ "id": "1647", "name": "市辖区", "code": "411701" }, { "id": "1648", "name": "驿城区", "code": "411702" }, { "id": "1649", "name": "西平县", "code": "411721" }, { "id": "1650", "name": "上蔡县", "code": "411722" }, { "id": "1651", "name": "平舆县", "code": "411723" }, { "id": "1652", "name": "正阳县", "code": "411724" }, { "id": "1653", "name": "确山县", "code": "411725" }, { "id": "1654", "name": "泌阳县", "code": "411726" }, { "id": "1655", "name": "汝南县", "code": "411727" }, { "id": "1656", "name": "遂平县", "code": "411728" }, { "id": "1657", "name": "新蔡县", "code": "411729" }] }, { "id": "169", "name": "省直辖县级行政区划", "code": "419000", "children": [{ "id": "1658", "name": "济源市", "code": "419001" }] }] }, { "id": "17", "name": "湖北省", "code": "420000", "children": [{ "id": "170", "name": "武汉市", "code": "420100", "children": [{ "id": "1659", "name": "市辖区", "code": "420101" }, { "id": "1660", "name": "江岸区", "code": "420102" }, { "id": "1661", "name": "江汉区", "code": "420103" }, { "id": "1662", "name": "硚口区", "code": "420104" }, { "id": "1663", "name": "汉阳区", "code": "420105" }, { "id": "1664", "name": "武昌区", "code": "420106" }, { "id": "1665", "name": "青山区", "code": "420107" }, { "id": "1666", "name": "洪山区", "code": "420111" }, { "id": "1667", "name": "东西湖区", "code": "420112" }, { "id": "1668", "name": "汉南区", "code": "420113" }, { "id": "1669", "name": "蔡甸区", "code": "420114" }, { "id": "1670", "name": "江夏区", "code": "420115" }, { "id": "1671", "name": "黄陂区", "code": "420116" }, { "id": "1672", "name": "新洲区", "code": "420117" }] }, { "id": "171", "name": "黄石市", "code": "420200", "children": [{ "id": "1673", "name": "市辖区", "code": "420201" }, { "id": "1674", "name": "黄石港区", "code": "420202" }, { "id": "1675", "name": "西塞山区", "code": "420203" }, { "id": "1676", "name": "下陆区", "code": "420204" }, { "id": "1677", "name": "铁山区", "code": "420205" }, { "id": "1678", "name": "阳新县", "code": "420222" }, { "id": "1679", "name": "大冶市", "code": "420281" }] }, { "id": "172", "name": "十堰市", "code": "420300", "children": [{ "id": "1680", "name": "市辖区", "code": "420301" }, { "id": "1681", "name": "茅箭区", "code": "420302" }, { "id": "1682", "name": "张湾区", "code": "420303" }, { "id": "1683", "name": "郧阳区", "code": "420304" }, { "id": "1684", "name": "郧西县", "code": "420322" }, { "id": "1685", "name": "竹山县", "code": "420323" }, { "id": "1686", "name": "竹溪县", "code": "420324" }, { "id": "1687", "name": "房县", "code": "420325" }, { "id": "1688", "name": "丹江口市", "code": "420381" }] }, { "id": "173", "name": "宜昌市", "code": "420500", "children": [{ "id": "1689", "name": "市辖区", "code": "420501" }, { "id": "1690", "name": "西陵区", "code": "420502" }, { "id": "1691", "name": "伍家岗区", "code": "420503" }, { "id": "1692", "name": "点军区", "code": "420504" }, { "id": "1693", "name": "猇亭区", "code": "420505" }, { "id": "1694", "name": "夷陵区", "code": "420506" }, { "id": "1695", "name": "远安县", "code": "420525" }, { "id": "1696", "name": "兴山县", "code": "420526" }, { "id": "1697", "name": "秭归县", "code": "420527" }, { "id": "1698", "name": "长阳土家族自治县", "code": "420528" }, { "id": "1699", "name": "五峰土家族自治县", "code": "420529" }, { "id": "1700", "name": "宜都市", "code": "420581" }, { "id": "1701", "name": "当阳市", "code": "420582" }, { "id": "1702", "name": "枝江市", "code": "420583" }] }, { "id": "174", "name": "襄阳市", "code": "420600", "children": [{ "id": "1703", "name": "市辖区", "code": "420601" }, { "id": "1704", "name": "襄城区", "code": "420602" }, { "id": "1705", "name": "樊城区", "code": "420606" }, { "id": "1706", "name": "襄州区", "code": "420607" }, { "id": "1707", "name": "南漳县", "code": "420624" }, { "id": "1708", "name": "谷城县", "code": "420625" }, { "id": "1709", "name": "保康县", "code": "420626" }, { "id": "1710", "name": "老河口市", "code": "420682" }, { "id": "1711", "name": "枣阳市", "code": "420683" }, { "id": "1712", "name": "宜城市", "code": "420684" }] }, { "id": "175", "name": "鄂州市", "code": "420700", "children": [{ "id": "1713", "name": "市辖区", "code": "420701" }, { "id": "1714", "name": "梁子湖区", "code": "420702" }, { "id": "1715", "name": "华容区", "code": "420703" }, { "id": "1716", "name": "鄂城区", "code": "420704" }] }, { "id": "176", "name": "荆门市", "code": "420800", "children": [{ "id": "1717", "name": "市辖区", "code": "420801" }, { "id": "1718", "name": "东宝区", "code": "420802" }, { "id": "1719", "name": "掇刀区", "code": "420804" }, { "id": "1720", "name": "京山县", "code": "420821" }, { "id": "1721", "name": "沙洋县", "code": "420822" }, { "id": "1722", "name": "钟祥市", "code": "420881" }] }, { "id": "177", "name": "孝感市", "code": "420900", "children": [{ "id": "1723", "name": "市辖区", "code": "420901" }, { "id": "1724", "name": "孝南区", "code": "420902" }, { "id": "1725", "name": "孝昌县", "code": "420921" }, { "id": "1726", "name": "大悟县", "code": "420922" }, { "id": "1727", "name": "云梦县", "code": "420923" }, { "id": "1728", "name": "应城市", "code": "420981" }, { "id": "1729", "name": "安陆市", "code": "420982" }, { "id": "1730", "name": "汉川市", "code": "420984" }] }, { "id": "178", "name": "荆州市", "code": "421000", "children": [{ "id": "1731", "name": "市辖区", "code": "421001" }, { "id": "1732", "name": "沙市区", "code": "421002" }, { "id": "1733", "name": "荆州区", "code": "421003" }, { "id": "1734", "name": "公安县", "code": "421022" }, { "id": "1735", "name": "监利县", "code": "421023" }, { "id": "1736", "name": "江陵县", "code": "421024" }, { "id": "1737", "name": "石首市", "code": "421081" }, { "id": "1738", "name": "洪湖市", "code": "421083" }, { "id": "1739", "name": "松滋市", "code": "421087" }] }, { "id": "179", "name": "黄冈市", "code": "421100", "children": [{ "id": "1740", "name": "市辖区", "code": "421101" }, { "id": "1741", "name": "黄州区", "code": "421102" }, { "id": "1742", "name": "团风县", "code": "421121" }, { "id": "1743", "name": "红安县", "code": "421122" }, { "id": "1744", "name": "罗田县", "code": "421123" }, { "id": "1745", "name": "英山县", "code": "421124" }, { "id": "1746", "name": "浠水县", "code": "421125" }, { "id": "1747", "name": "蕲春县", "code": "421126" }, { "id": "1748", "name": "黄梅县", "code": "421127" }, { "id": "1749", "name": "麻城市", "code": "421181" }, { "id": "1750", "name": "武穴市", "code": "421182" }] }, { "id": "180", "name": "咸宁市", "code": "421200", "children": [{ "id": "1751", "name": "市辖区", "code": "421201" }, { "id": "1752", "name": "咸安区", "code": "421202" }, { "id": "1753", "name": "嘉鱼县", "code": "421221" }, { "id": "1754", "name": "通城县", "code": "421222" }, { "id": "1755", "name": "崇阳县", "code": "421223" }, { "id": "1756", "name": "通山县", "code": "421224" }, { "id": "1757", "name": "赤壁市", "code": "421281" }] }, { "id": "181", "name": "随州市", "code": "421300", "children": [{ "id": "1758", "name": "市辖区", "code": "421301" }, { "id": "1759", "name": "曾都区", "code": "421303" }, { "id": "1760", "name": "随县", "code": "421321" }, { "id": "1761", "name": "广水市", "code": "421381" }] }, { "id": "182", "name": "恩施土家族苗族自治州", "code": "422800", "children": [{ "id": "1762", "name": "恩施市", "code": "422801" }, { "id": "1763", "name": "利川市", "code": "422802" }, { "id": "1764", "name": "建始县", "code": "422822" }, { "id": "1765", "name": "巴东县", "code": "422823" }, { "id": "1766", "name": "宣恩县", "code": "422825" }, { "id": "1767", "name": "咸丰县", "code": "422826" }, { "id": "1768", "name": "来凤县", "code": "422827" }, { "id": "1769", "name": "鹤峰县", "code": "422828" }] }, { "id": "183", "name": "省直辖县级行政区划", "code": "429000", "children": [{ "id": "1770", "name": "仙桃市", "code": "429004" }, { "id": "1771", "name": "潜江市", "code": "429005" }, { "id": "1772", "name": "天门市", "code": "429006" }, { "id": "1773", "name": "神农架林区", "code": "429021" }] }] }, { "id": "18", "name": "湖南省", "code": "430000", "children": [{ "id": "184", "name": "长沙市", "code": "430100", "children": [{ "id": "1774", "name": "市辖区", "code": "430101" }, { "id": "1775", "name": "芙蓉区", "code": "430102" }, { "id": "1776", "name": "天心区", "code": "430103" }, { "id": "1777", "name": "岳麓区", "code": "430104" }, { "id": "1778", "name": "开福区", "code": "430105" }, { "id": "1779", "name": "雨花区", "code": "430111" }, { "id": "1780", "name": "望城区", "code": "430112" }, { "id": "1781", "name": "长沙县", "code": "430121" }, { "id": "1782", "name": "宁乡县", "code": "430124" }, { "id": "1783", "name": "浏阳市", "code": "430181" }] }, { "id": "185", "name": "株洲市", "code": "430200", "children": [{ "id": "1784", "name": "市辖区", "code": "430201" }, { "id": "1785", "name": "荷塘区", "code": "430202" }, { "id": "1786", "name": "芦淞区", "code": "430203" }, { "id": "1787", "name": "石峰区", "code": "430204" }, { "id": "1788", "name": "天元区", "code": "430211" }, { "id": "1789", "name": "株洲县", "code": "430221" }, { "id": "1790", "name": "攸县", "code": "430223" }, { "id": "1791", "name": "茶陵县", "code": "430224" }, { "id": "1792", "name": "炎陵县", "code": "430225" }, { "id": "1793", "name": "醴陵市", "code": "430281" }] }, { "id": "186", "name": "湘潭市", "code": "430300", "children": [{ "id": "1794", "name": "市辖区", "code": "430301" }, { "id": "1795", "name": "雨湖区", "code": "430302" }, { "id": "1796", "name": "岳塘区", "code": "430304" }, { "id": "1797", "name": "湘潭县", "code": "430321" }, { "id": "1798", "name": "湘乡市", "code": "430381" }, { "id": "1799", "name": "韶山市", "code": "430382" }] }, { "id": "187", "name": "衡阳市", "code": "430400", "children": [{ "id": "1800", "name": "市辖区", "code": "430401" }, { "id": "1801", "name": "珠晖区", "code": "430405" }, { "id": "1802", "name": "雁峰区", "code": "430406" }, { "id": "1803", "name": "石鼓区", "code": "430407" }, { "id": "1804", "name": "蒸湘区", "code": "430408" }, { "id": "1805", "name": "南岳区", "code": "430412" }, { "id": "1806", "name": "衡阳县", "code": "430421" }, { "id": "1807", "name": "衡南县", "code": "430422" }, { "id": "1808", "name": "衡山县", "code": "430423" }, { "id": "1809", "name": "衡东县", "code": "430424" }, { "id": "1810", "name": "祁东县", "code": "430426" }, { "id": "1811", "name": "耒阳市", "code": "430481" }, { "id": "1812", "name": "常宁市", "code": "430482" }] }, { "id": "188", "name": "邵阳市", "code": "430500", "children": [{ "id": "1813", "name": "市辖区", "code": "430501" }, { "id": "1814", "name": "双清区", "code": "430502" }, { "id": "1815", "name": "大祥区", "code": "430503" }, { "id": "1816", "name": "北塔区", "code": "430511" }, { "id": "1817", "name": "邵东县", "code": "430521" }, { "id": "1818", "name": "新邵县", "code": "430522" }, { "id": "1819", "name": "邵阳县", "code": "430523" }, { "id": "1820", "name": "隆回县", "code": "430524" }, { "id": "1821", "name": "洞口县", "code": "430525" }, { "id": "1822", "name": "绥宁县", "code": "430527" }, { "id": "1823", "name": "新宁县", "code": "430528" }, { "id": "1824", "name": "城步苗族自治县", "code": "430529" }, { "id": "1825", "name": "武冈市", "code": "430581" }] }, { "id": "189", "name": "岳阳市", "code": "430600", "children": [{ "id": "1826", "name": "市辖区", "code": "430601" }, { "id": "1827", "name": "岳阳楼区", "code": "430602" }, { "id": "1828", "name": "云溪区", "code": "430603" }, { "id": "1829", "name": "君山区", "code": "430611" }, { "id": "1830", "name": "岳阳县", "code": "430621" }, { "id": "1831", "name": "华容县", "code": "430623" }, { "id": "1832", "name": "湘阴县", "code": "430624" }, { "id": "1833", "name": "平江县", "code": "430626" }, { "id": "1834", "name": "汨罗市", "code": "430681" }, { "id": "1835", "name": "临湘市", "code": "430682" }] }, { "id": "190", "name": "常德市", "code": "430700", "children": [{ "id": "1836", "name": "市辖区", "code": "430701" }, { "id": "1837", "name": "武陵区", "code": "430702" }, { "id": "1838", "name": "鼎城区", "code": "430703" }, { "id": "1839", "name": "安乡县", "code": "430721" }, { "id": "1840", "name": "汉寿县", "code": "430722" }, { "id": "1841", "name": "澧县", "code": "430723" }, { "id": "1842", "name": "临澧县", "code": "430724" }, { "id": "1843", "name": "桃源县", "code": "430725" }, { "id": "1844", "name": "石门县", "code": "430726" }, { "id": "1845", "name": "津市市", "code": "430781" }] }, { "id": "191", "name": "张家界市", "code": "430800", "children": [{ "id": "1846", "name": "市辖区", "code": "430801" }, { "id": "1847", "name": "永定区", "code": "430802" }, { "id": "1848", "name": "武陵源区", "code": "430811" }, { "id": "1849", "name": "慈利县", "code": "430821" }, { "id": "1850", "name": "桑植县", "code": "430822" }] }, { "id": "192", "name": "益阳市", "code": "430900", "children": [{ "id": "1851", "name": "市辖区", "code": "430901" }, { "id": "1852", "name": "资阳区", "code": "430902" }, { "id": "1853", "name": "赫山区", "code": "430903" }, { "id": "1854", "name": "南县", "code": "430921" }, { "id": "1855", "name": "桃江县", "code": "430922" }, { "id": "1856", "name": "安化县", "code": "430923" }, { "id": "1857", "name": "沅江市", "code": "430981" }] }, { "id": "193", "name": "郴州市", "code": "431000", "children": [{ "id": "1858", "name": "市辖区", "code": "431001" }, { "id": "1859", "name": "北湖区", "code": "431002" }, { "id": "1860", "name": "苏仙区", "code": "431003" }, { "id": "1861", "name": "桂阳县", "code": "431021" }, { "id": "1862", "name": "宜章县", "code": "431022" }, { "id": "1863", "name": "永兴县", "code": "431023" }, { "id": "1864", "name": "嘉禾县", "code": "431024" }, { "id": "1865", "name": "临武县", "code": "431025" }, { "id": "1866", "name": "汝城县", "code": "431026" }, { "id": "1867", "name": "桂东县", "code": "431027" }, { "id": "1868", "name": "安仁县", "code": "431028" }, { "id": "1869", "name": "资兴市", "code": "431081" }] }, { "id": "194", "name": "永州市", "code": "431100", "children": [{ "id": "1870", "name": "市辖区", "code": "431101" }, { "id": "1871", "name": "零陵区", "code": "431102" }, { "id": "1872", "name": "冷水滩区", "code": "431103" }, { "id": "1873", "name": "祁阳县", "code": "431121" }, { "id": "1874", "name": "东安县", "code": "431122" }, { "id": "1875", "name": "双牌县", "code": "431123" }, { "id": "1876", "name": "道县", "code": "431124" }, { "id": "1877", "name": "江永县", "code": "431125" }, { "id": "1878", "name": "宁远县", "code": "431126" }, { "id": "1879", "name": "蓝山县", "code": "431127" }, { "id": "1880", "name": "新田县", "code": "431128" }, { "id": "1881", "name": "江华瑶族自治县", "code": "431129" }] }, { "id": "195", "name": "怀化市", "code": "431200", "children": [{ "id": "1882", "name": "市辖区", "code": "431201" }, { "id": "1883", "name": "鹤城区", "code": "431202" }, { "id": "1884", "name": "中方县", "code": "431221" }, { "id": "1885", "name": "沅陵县", "code": "431222" }, { "id": "1886", "name": "辰溪县", "code": "431223" }, { "id": "1887", "name": "溆浦县", "code": "431224" }, { "id": "1888", "name": "会同县", "code": "431225" }, { "id": "1889", "name": "麻阳苗族自治县", "code": "431226" }, { "id": "1890", "name": "新晃侗族自治县", "code": "431227" }, { "id": "1891", "name": "芷江侗族自治县", "code": "431228" }, { "id": "1892", "name": "靖州苗族侗族自治县", "code": "431229" }, { "id": "1893", "name": "通道侗族自治县", "code": "431230" }, { "id": "1894", "name": "洪江市", "code": "431281" }] }, { "id": "196", "name": "娄底市", "code": "431300", "children": [{ "id": "1895", "name": "市辖区", "code": "431301" }, { "id": "1896", "name": "娄星区", "code": "431302" }, { "id": "1897", "name": "双峰县", "code": "431321" }, { "id": "1898", "name": "新化县", "code": "431322" }, { "id": "1899", "name": "冷水江市", "code": "431381" }, { "id": "1900", "name": "涟源市", "code": "431382" }] }, { "id": "197", "name": "湘西土家族苗族自治州", "code": "433100", "children": [{ "id": "1901", "name": "吉首市", "code": "433101" }, { "id": "1902", "name": "泸溪县", "code": "433122" }, { "id": "1903", "name": "凤凰县", "code": "433123" }, { "id": "1904", "name": "花垣县", "code": "433124" }, { "id": "1905", "name": "保靖县", "code": "433125" }, { "id": "1906", "name": "古丈县", "code": "433126" }, { "id": "1907", "name": "永顺县", "code": "433127" }, { "id": "1908", "name": "龙山县", "code": "433130" }] }] }, { "id": "19", "name": "广东省", "code": "440000", "children": [{ "id": "198", "name": "广州市", "code": "440100", "children": [{ "id": "1909", "name": "市辖区", "code": "440101" }, { "id": "1910", "name": "荔湾区", "code": "440103" }, { "id": "1911", "name": "越秀区", "code": "440104" }, { "id": "1912", "name": "海珠区", "code": "440105" }, { "id": "1913", "name": "天河区", "code": "440106" }, { "id": "1914", "name": "白云区", "code": "440111" }, { "id": "1915", "name": "黄埔区", "code": "440112" }, { "id": "1916", "name": "番禺区", "code": "440113" }, { "id": "1917", "name": "花都区", "code": "440114" }, { "id": "1918", "name": "南沙区", "code": "440115" }, { "id": "1919", "name": "从化区", "code": "440117" }, { "id": "1920", "name": "增城区", "code": "440118" }] }, { "id": "199", "name": "韶关市", "code": "440200", "children": [{ "id": "1921", "name": "市辖区", "code": "440201" }, { "id": "1922", "name": "武江区", "code": "440203" }, { "id": "1923", "name": "浈江区", "code": "440204" }, { "id": "1924", "name": "曲江区", "code": "440205" }, { "id": "1925", "name": "始兴县", "code": "440222" }, { "id": "1926", "name": "仁化县", "code": "440224" }, { "id": "1927", "name": "翁源县", "code": "440229" }, { "id": "1928", "name": "乳源瑶族自治县", "code": "440232" }, { "id": "1929", "name": "新丰县", "code": "440233" }, { "id": "1930", "name": "乐昌市", "code": "440281" }, { "id": "1931", "name": "南雄市", "code": "440282" }] }, { "id": "200", "name": "深圳市", "code": "440300", "children": [{ "id": "1932", "name": "市辖区", "code": "440301" }, { "id": "1933", "name": "罗湖区", "code": "440303" }, { "id": "1934", "name": "福田区", "code": "440304" }, { "id": "1935", "name": "南山区", "code": "440305" }, { "id": "1936", "name": "宝安区", "code": "440306" }, { "id": "1937", "name": "龙岗区", "code": "440307" }, { "id": "1938", "name": "盐田区", "code": "440308" }] }, { "id": "201", "name": "珠海市", "code": "440400", "children": [{ "id": "1939", "name": "市辖区", "code": "440401" }, { "id": "1940", "name": "香洲区", "code": "440402" }, { "id": "1941", "name": "斗门区", "code": "440403" }, { "id": "1942", "name": "金湾区", "code": "440404" }] }, { "id": "202", "name": "汕头市", "code": "440500", "children": [{ "id": "1943", "name": "市辖区", "code": "440501" }, { "id": "1944", "name": "龙湖区", "code": "440507" }, { "id": "1945", "name": "金平区", "code": "440511" }, { "id": "1946", "name": "濠江区", "code": "440512" }, { "id": "1947", "name": "潮阳区", "code": "440513" }, { "id": "1948", "name": "潮南区", "code": "440514" }, { "id": "1949", "name": "澄海区", "code": "440515" }, { "id": "1950", "name": "南澳县", "code": "440523" }] }, { "id": "203", "name": "佛山市", "code": "440600", "children": [{ "id": "1951", "name": "市辖区", "code": "440601" }, { "id": "1952", "name": "禅城区", "code": "440604" }, { "id": "1953", "name": "南海区", "code": "440605" }, { "id": "1954", "name": "顺德区", "code": "440606" }, { "id": "1955", "name": "三水区", "code": "440607" }, { "id": "1956", "name": "高明区", "code": "440608" }] }, { "id": "204", "name": "江门市", "code": "440700", "children": [{ "id": "1957", "name": "市辖区", "code": "440701" }, { "id": "1958", "name": "蓬江区", "code": "440703" }, { "id": "1959", "name": "江海区", "code": "440704" }, { "id": "1960", "name": "新会区", "code": "440705" }, { "id": "1961", "name": "台山市", "code": "440781" }, { "id": "1962", "name": "开平市", "code": "440783" }, { "id": "1963", "name": "鹤山市", "code": "440784" }, { "id": "1964", "name": "恩平市", "code": "440785" }] }, { "id": "205", "name": "湛江市", "code": "440800", "children": [{ "id": "1965", "name": "市辖区", "code": "440801" }, { "id": "1966", "name": "赤坎区", "code": "440802" }, { "id": "1967", "name": "霞山区", "code": "440803" }, { "id": "1968", "name": "坡头区", "code": "440804" }, { "id": "1969", "name": "麻章区", "code": "440811" }, { "id": "1970", "name": "遂溪县", "code": "440823" }, { "id": "1971", "name": "徐闻县", "code": "440825" }, { "id": "1972", "name": "廉江市", "code": "440881" }, { "id": "1973", "name": "雷州市", "code": "440882" }, { "id": "1974", "name": "吴川市", "code": "440883" }] }, { "id": "206", "name": "茂名市", "code": "440900", "children": [{ "id": "1975", "name": "市辖区", "code": "440901" }, { "id": "1976", "name": "茂南区", "code": "440902" }, { "id": "1977", "name": "电白区", "code": "440904" }, { "id": "1978", "name": "高州市", "code": "440981" }, { "id": "1979", "name": "化州市", "code": "440982" }, { "id": "1980", "name": "信宜市", "code": "440983" }] }, { "id": "207", "name": "肇庆市", "code": "441200", "children": [{ "id": "1981", "name": "市辖区", "code": "441201" }, { "id": "1982", "name": "端州区", "code": "441202" }, { "id": "1983", "name": "鼎湖区", "code": "441203" }, { "id": "1984", "name": "高要区", "code": "441204" }, { "id": "1985", "name": "广宁县", "code": "441223" }, { "id": "1986", "name": "怀集县", "code": "441224" }, { "id": "1987", "name": "封开县", "code": "441225" }, { "id": "1988", "name": "德庆县", "code": "441226" }, { "id": "1989", "name": "四会市", "code": "441284" }] }, { "id": "208", "name": "惠州市", "code": "441300", "children": [{ "id": "1990", "name": "市辖区", "code": "441301" }, { "id": "1991", "name": "惠城区", "code": "441302" }, { "id": "1992", "name": "惠阳区", "code": "441303" }, { "id": "1993", "name": "博罗县", "code": "441322" }, { "id": "1994", "name": "惠东县", "code": "441323" }, { "id": "1995", "name": "龙门县", "code": "441324" }] }, { "id": "209", "name": "梅州市", "code": "441400", "children": [{ "id": "1996", "name": "市辖区", "code": "441401" }, { "id": "1997", "name": "梅江区", "code": "441402" }, { "id": "1998", "name": "梅县区", "code": "441403" }, { "id": "1999", "name": "大埔县", "code": "441422" }, { "id": "2000", "name": "丰顺县", "code": "441423" }, { "id": "2001", "name": "五华县", "code": "441424" }, { "id": "2002", "name": "平远县", "code": "441426" }, { "id": "2003", "name": "蕉岭县", "code": "441427" }, { "id": "2004", "name": "兴宁市", "code": "441481" }] }, { "id": "210", "name": "汕尾市", "code": "441500", "children": [{ "id": "2005", "name": "市辖区", "code": "441501" }, { "id": "2006", "name": "城区", "code": "441502" }, { "id": "2007", "name": "海丰县", "code": "441521" }, { "id": "2008", "name": "陆河县", "code": "441523" }, { "id": "2009", "name": "陆丰市", "code": "441581" }] }, { "id": "211", "name": "河源市", "code": "441600", "children": [{ "id": "2010", "name": "市辖区", "code": "441601" }, { "id": "2011", "name": "源城区", "code": "441602" }, { "id": "2012", "name": "紫金县", "code": "441621" }, { "id": "2013", "name": "龙川县", "code": "441622" }, { "id": "2014", "name": "连平县", "code": "441623" }, { "id": "2015", "name": "和平县", "code": "441624" }, { "id": "2016", "name": "东源县", "code": "441625" }] }, { "id": "212", "name": "阳江市", "code": "441700", "children": [{ "id": "2017", "name": "市辖区", "code": "441701" }, { "id": "2018", "name": "江城区", "code": "441702" }, { "id": "2019", "name": "阳东区", "code": "441704" }, { "id": "2020", "name": "阳西县", "code": "441721" }, { "id": "2021", "name": "阳春市", "code": "441781" }] }, { "id": "213", "name": "清远市", "code": "441800", "children": [{ "id": "2022", "name": "市辖区", "code": "441801" }, { "id": "2023", "name": "清城区", "code": "441802" }, { "id": "2024", "name": "清新区", "code": "441803" }, { "id": "2025", "name": "佛冈县", "code": "441821" }, { "id": "2026", "name": "阳山县", "code": "441823" }, { "id": "2027", "name": "连山壮族瑶族自治县", "code": "441825" }, { "id": "2028", "name": "连南瑶族自治县", "code": "441826" }, { "id": "2029", "name": "英德市", "code": "441881" }, { "id": "2030", "name": "连州市", "code": "441882" }] }, { "id": "214", "name": "东莞市", "code": "441900", "children": [{ "id": "9004", "name": "莞城街道", "code": "441900006" }, { "id": "9003", "name": "万江街道", "code": "441900005" }, { "id": "9002", "name": "南城街道", "code": "441900004" }, { "id": "9001", "name": "东城街道", "code": "441900003" }, { "id": "9005", "name": "石碣镇", "code": "441900101" }, { "id": "9006", "name": "石龙镇", "code": "441900102" }, { "id": "9007", "name": "茶山镇", "code": "441900103" }, { "id": "9008", "name": "石排镇", "code": "441900104" }, { "id": "9009", "name": "企石镇", "code": "441900105" }, { "id": "9010", "name": "横沥镇", "code": "441900106" }, { "id": "9011", "name": "桥头镇", "code": "441900107" }, { "id": "9012", "name": "谢岗镇", "code": "441900108" }, { "id": "9013", "name": "东坑镇", "code": "441900109" }, { "id": "9014", "name": "常平镇", "code": "441900110" }, { "id": "9015", "name": "寮步镇", "code": "441900111" }, { "id": "9016", "name": "樟木头镇", "code": "441900112" }, { "id": "9017", "name": "大朗镇", "code": "441900113" }, { "id": "9018", "name": "黄江镇", "code": "441900114" }, { "id": "9019", "name": "清溪镇", "code": "441900115" }, { "id": "9020", "name": "塘厦镇", "code": "441900116" }, { "id": "9021", "name": "凤岗镇", "code": "441900117" }, { "id": "9022", "name": "大岭山镇", "code": "441900118" }, { "id": "9023", "name": "长安镇", "code": "441900119" }, { "id": "9024", "name": "虎门镇", "code": "441900121" }, { "id": "9025", "name": "厚街镇", "code": "441900122" }, { "id": "9026", "name": "沙田镇", "code": "441900123" }, { "id": "9027", "name": "道滘镇", "code": "441900124" }, { "id": "9028", "name": "洪梅镇", "code": "441900125" }, { "id": "9029", "name": "麻涌镇", "code": "441900126" }, { "id": "9030", "name": "望牛墩镇", "code": "441900127" }, { "id": "9031", "name": "中堂镇", "code": "441900128" }, { "id": "9032", "name": "高埗镇", "code": "441900129" }, { "id": "9033", "name": "松山湖管委会", "code": "441900401" }, { "id": "9034", "name": "东莞港", "code": "441900402" }, { "id": "9035", "name": "东莞生态园", "code": "441900403" }] }, { "id": "215", "name": "中山市", "code": "442000", "children": [{ "id": "9101", "name": "石岐区街道", "code": "442000001" }, { "id": "9102", "name": "东区街道", "code": "442000002" }, { "id": "9103", "name": "火炬开发区街道", "code": "442000003" }, { "id": "9104", "name": "西区街道", "code": "442000004" }, { "id": "9105", "name": "南区街道", "code": "442000005" }, { "id": "9106", "name": "五桂山街道", "code": "442000006" }, { "id": "9107", "name": "小榄镇", "code": "442000100" }, { "id": "9108", "name": "黄圃镇", "code": "442000101" }, { "id": "9109", "name": "民众镇", "code": "442000102" }, { "id": "9110", "name": "东凤镇", "code": "442000103" }, { "id": "9111", "name": "东升镇", "code": "442000104" }, { "id": "9112", "name": "古镇镇", "code": "442000105" }, { "id": "9113", "name": "沙溪镇", "code": "442000106" }, { "id": "9114", "name": "坦洲镇", "code": "442000107" }, { "id": "9115", "name": "港口镇", "code": "442000108" }, { "id": "9116", "name": "三角镇", "code": "442000109" }, { "id": "9117", "name": "横栏镇", "code": "442000110" }, { "id": "9118", "name": "南头镇", "code": "442000111" }, { "id": "9119", "name": "阜沙镇", "code": "442000112" }, { "id": "9120", "name": "南朗镇", "code": "442000113" }, { "id": "9121", "name": "三乡镇", "code": "442000114" }, { "id": "9122", "name": "板芙镇", "code": "442000115" }, { "id": "9123", "name": "大涌镇", "code": "442000116" }, { "id": "9124", "name": "神湾镇", "code": "442000117" }] }, { "id": "216", "name": "潮州市", "code": "445100", "children": [{ "id": "2031", "name": "市辖区", "code": "445101" }, { "id": "2032", "name": "湘桥区", "code": "445102" }, { "id": "2033", "name": "潮安区", "code": "445103" }, { "id": "2034", "name": "饶平县", "code": "445122" }] }, { "id": "217", "name": "揭阳市", "code": "445200", "children": [{ "id": "2035", "name": "市辖区", "code": "445201" }, { "id": "2036", "name": "榕城区", "code": "445202" }, { "id": "2037", "name": "揭东区", "code": "445203" }, { "id": "2038", "name": "揭西县", "code": "445222" }, { "id": "2039", "name": "惠来县", "code": "445224" }, { "id": "2040", "name": "普宁市", "code": "445281" }] }, { "id": "218", "name": "云浮市", "code": "445300", "children": [{ "id": "2041", "name": "市辖区", "code": "445301" }, { "id": "2042", "name": "云城区", "code": "445302" }, { "id": "2043", "name": "云安区", "code": "445303" }, { "id": "2044", "name": "新兴县", "code": "445321" }, { "id": "2045", "name": "郁南县", "code": "445322" }, { "id": "2046", "name": "罗定市", "code": "445381" }] }] }, { "id": "20", "name": "广西壮族自治区", "code": "450000", "children": [{ "id": "219", "name": "南宁市", "code": "450100", "children": [{ "id": "2047", "name": "市辖区", "code": "450101" }, { "id": "2048", "name": "兴宁区", "code": "450102" }, { "id": "2049", "name": "青秀区", "code": "450103" }, { "id": "2050", "name": "江南区", "code": "450105" }, { "id": "2051", "name": "西乡塘区", "code": "450107" }, { "id": "2052", "name": "良庆区", "code": "450108" }, { "id": "2053", "name": "邕宁区", "code": "450109" }, { "id": "2054", "name": "武鸣区", "code": "450110" }, { "id": "2055", "name": "隆安县", "code": "450123" }, { "id": "2056", "name": "马山县", "code": "450124" }, { "id": "2057", "name": "上林县", "code": "450125" }, { "id": "2058", "name": "宾阳县", "code": "450126" }, { "id": "2059", "name": "横县", "code": "450127" }] }, { "id": "220", "name": "柳州市", "code": "450200", "children": [{ "id": "2060", "name": "市辖区", "code": "450201" }, { "id": "2061", "name": "城中区", "code": "450202" }, { "id": "2062", "name": "鱼峰区", "code": "450203" }, { "id": "2063", "name": "柳南区", "code": "450204" }, { "id": "2064", "name": "柳北区", "code": "450205" }, { "id": "2065", "name": "柳江区", "code": "450206" }, { "id": "2066", "name": "柳城县", "code": "450222" }, { "id": "2067", "name": "鹿寨县", "code": "450223" }, { "id": "2068", "name": "融安县", "code": "450224" }, { "id": "2069", "name": "融水苗族自治县", "code": "450225" }, { "id": "2070", "name": "三江侗族自治县", "code": "450226" }] }, { "id": "221", "name": "桂林市", "code": "450300", "children": [{ "id": "2071", "name": "市辖区", "code": "450301" }, { "id": "2072", "name": "秀峰区", "code": "450302" }, { "id": "2073", "name": "叠彩区", "code": "450303" }, { "id": "2074", "name": "象山区", "code": "450304" }, { "id": "2075", "name": "七星区", "code": "450305" }, { "id": "2076", "name": "雁山区", "code": "450311" }, { "id": "2077", "name": "临桂区", "code": "450312" }, { "id": "2078", "name": "阳朔县", "code": "450321" }, { "id": "2079", "name": "灵川县", "code": "450323" }, { "id": "2080", "name": "全州县", "code": "450324" }, { "id": "2081", "name": "兴安县", "code": "450325" }, { "id": "2082", "name": "永福县", "code": "450326" }, { "id": "2083", "name": "灌阳县", "code": "450327" }, { "id": "2084", "name": "龙胜各族自治县", "code": "450328" }, { "id": "2085", "name": "资源县", "code": "450329" }, { "id": "2086", "name": "平乐县", "code": "450330" }, { "id": "2087", "name": "荔浦县", "code": "450331" }, { "id": "2088", "name": "恭城瑶族自治县", "code": "450332" }] }, { "id": "222", "name": "梧州市", "code": "450400", "children": [{ "id": "2089", "name": "市辖区", "code": "450401" }, { "id": "2090", "name": "万秀区", "code": "450403" }, { "id": "2091", "name": "长洲区", "code": "450405" }, { "id": "2092", "name": "龙圩区", "code": "450406" }, { "id": "2093", "name": "苍梧县", "code": "450421" }, { "id": "2094", "name": "藤县", "code": "450422" }, { "id": "2095", "name": "蒙山县", "code": "450423" }, { "id": "2096", "name": "岑溪市", "code": "450481" }] }, { "id": "223", "name": "北海市", "code": "450500", "children": [{ "id": "2097", "name": "市辖区", "code": "450501" }, { "id": "2098", "name": "海城区", "code": "450502" }, { "id": "2099", "name": "银海区", "code": "450503" }, { "id": "2100", "name": "铁山港区", "code": "450512" }, { "id": "2101", "name": "合浦县", "code": "450521" }] }, { "id": "224", "name": "防城港市", "code": "450600", "children": [{ "id": "2102", "name": "市辖区", "code": "450601" }, { "id": "2103", "name": "港口区", "code": "450602" }, { "id": "2104", "name": "防城区", "code": "450603" }, { "id": "2105", "name": "上思县", "code": "450621" }, { "id": "2106", "name": "东兴市", "code": "450681" }] }, { "id": "225", "name": "钦州市", "code": "450700", "children": [{ "id": "2107", "name": "市辖区", "code": "450701" }, { "id": "2108", "name": "钦南区", "code": "450702" }, { "id": "2109", "name": "钦北区", "code": "450703" }, { "id": "2110", "name": "灵山县", "code": "450721" }, { "id": "2111", "name": "浦北县", "code": "450722" }] }, { "id": "226", "name": "贵港市", "code": "450800", "children": [{ "id": "2112", "name": "市辖区", "code": "450801" }, { "id": "2113", "name": "港北区", "code": "450802" }, { "id": "2114", "name": "港南区", "code": "450803" }, { "id": "2115", "name": "覃塘区", "code": "450804" }, { "id": "2116", "name": "平南县", "code": "450821" }, { "id": "2117", "name": "桂平市", "code": "450881" }] }, { "id": "227", "name": "玉林市", "code": "450900", "children": [{ "id": "2118", "name": "市辖区", "code": "450901" }, { "id": "2119", "name": "玉州区", "code": "450902" }, { "id": "2120", "name": "福绵区", "code": "450903" }, { "id": "2121", "name": "容县", "code": "450921" }, { "id": "2122", "name": "陆川县", "code": "450922" }, { "id": "2123", "name": "博白县", "code": "450923" }, { "id": "2124", "name": "兴业县", "code": "450924" }, { "id": "2125", "name": "北流市", "code": "450981" }] }, { "id": "228", "name": "百色市", "code": "451000", "children": [{ "id": "2126", "name": "市辖区", "code": "451001" }, { "id": "2127", "name": "右江区", "code": "451002" }, { "id": "2128", "name": "田阳县", "code": "451021" }, { "id": "2129", "name": "田东县", "code": "451022" }, { "id": "2130", "name": "平果县", "code": "451023" }, { "id": "2131", "name": "德保县", "code": "451024" }, { "id": "2132", "name": "那坡县", "code": "451026" }, { "id": "2133", "name": "凌云县", "code": "451027" }, { "id": "2134", "name": "乐业县", "code": "451028" }, { "id": "2135", "name": "田林县", "code": "451029" }, { "id": "2136", "name": "西林县", "code": "451030" }, { "id": "2137", "name": "隆林各族自治县", "code": "451031" }, { "id": "2138", "name": "靖西市", "code": "451081" }] }, { "id": "229", "name": "贺州市", "code": "451100", "children": [{ "id": "2139", "name": "市辖区", "code": "451101" }, { "id": "2140", "name": "八步区", "code": "451102" }, { "id": "2141", "name": "平桂区", "code": "451103" }, { "id": "2142", "name": "昭平县", "code": "451121" }, { "id": "2143", "name": "钟山县", "code": "451122" }, { "id": "2144", "name": "富川瑶族自治县", "code": "451123" }] }, { "id": "230", "name": "河池市", "code": "451200", "children": [{ "id": "2145", "name": "市辖区", "code": "451201" }, { "id": "2146", "name": "金城江区", "code": "451202" }, { "id": "2147", "name": "南丹县", "code": "451221" }, { "id": "2148", "name": "天峨县", "code": "451222" }, { "id": "2149", "name": "凤山县", "code": "451223" }, { "id": "2150", "name": "东兰县", "code": "451224" }, { "id": "2151", "name": "罗城仫佬族自治县", "code": "451225" }, { "id": "2152", "name": "环江毛南族自治县", "code": "451226" }, { "id": "2153", "name": "巴马瑶族自治县", "code": "451227" }, { "id": "2154", "name": "都安瑶族自治县", "code": "451228" }, { "id": "2155", "name": "大化瑶族自治县", "code": "451229" }, { "id": "2156", "name": "宜州市", "code": "451281" }] }, { "id": "231", "name": "来宾市", "code": "451300", "children": [{ "id": "2157", "name": "市辖区", "code": "451301" }, { "id": "2158", "name": "兴宾区", "code": "451302" }, { "id": "2159", "name": "忻城县", "code": "451321" }, { "id": "2160", "name": "象州县", "code": "451322" }, { "id": "2161", "name": "武宣县", "code": "451323" }, { "id": "2162", "name": "金秀瑶族自治县", "code": "451324" }, { "id": "2163", "name": "合山市", "code": "451381" }] }, { "id": "232", "name": "崇左市", "code": "451400", "children": [{ "id": "2164", "name": "市辖区", "code": "451401" }, { "id": "2165", "name": "江州区", "code": "451402" }, { "id": "2166", "name": "扶绥县", "code": "451421" }, { "id": "2167", "name": "宁明县", "code": "451422" }, { "id": "2168", "name": "龙州县", "code": "451423" }, { "id": "2169", "name": "大新县", "code": "451424" }, { "id": "2170", "name": "天等县", "code": "451425" }, { "id": "2171", "name": "凭祥市", "code": "451481" }] }] }, { "id": "21", "name": "海南省", "code": "460000", "children": [{ "id": "233", "name": "海口市", "code": "460100", "children": [{ "id": "2172", "name": "市辖区", "code": "460101" }, { "id": "2173", "name": "秀英区", "code": "460105" }, { "id": "2174", "name": "龙华区", "code": "460106" }, { "id": "2175", "name": "琼山区", "code": "460107" }, { "id": "2176", "name": "美兰区", "code": "460108" }] }, { "id": "234", "name": "三亚市", "code": "460200", "children": [{ "id": "2177", "name": "市辖区", "code": "460201" }, { "id": "2178", "name": "海棠区", "code": "460202" }, { "id": "2179", "name": "吉阳区", "code": "460203" }, { "id": "2180", "name": "天涯区", "code": "460204" }, { "id": "2181", "name": "崖州区", "code": "460205" }] }, { "id": "235", "name": "三沙市", "code": "460300", "children": [{ "id": "9201", "name": "西沙群岛", "code": "460321" }, { "id": "9202", "name": "南沙群岛", "code": "460322" }, { "id": "9203", "name": "中沙群岛的岛礁及其海域", "code": "460323" }] }, { "id": "236", "name": "儋州市", "code": "460400", "children": [{ "id": "9301", "name": "那大镇", "code": "460400100" }, { "id": "9302", "name": "和庆镇", "code": "460400101" }, { "id": "9303", "name": "南丰镇", "code": "460400102" }, { "id": "9304", "name": "大成镇", "code": "460400103" }, { "id": "9305", "name": "雅星镇", "code": "460400104" }, { "id": "9306", "name": "兰洋镇", "code": "460400105" }, { "id": "9307", "name": "光村镇", "code": "460400106" }, { "id": "9308", "name": "木棠镇", "code": "460400107" }, { "id": "9309", "name": "海头镇", "code": "460400108" }, { "id": "9310", "name": "峨蔓镇", "code": "460400109" }, { "id": "9311", "name": "王五镇", "code": "460400111" }, { "id": "9312", "name": "白马井镇", "code": "460400112" }, { "id": "9313", "name": "中和镇", "code": "460400113" }, { "id": "9314", "name": "排浦镇", "code": "460400114" }, { "id": "9315", "name": "东成镇", "code": "460400115" }, { "id": "9316", "name": "新州镇", "code": "460400116" }, { "id": "9317", "name": "洋浦经济开发区", "code": "460400499" }, { "id": "9318", "name": "华南热作学院", "code": "460400500" }] }, { "id": "237", "name": "省直辖县级行政区划", "code": "469000", "children": [{ "id": "2182", "name": "五指山市", "code": "469001" }, { "id": "2183", "name": "琼海市", "code": "469002" }, { "id": "2184", "name": "文昌市", "code": "469005" }, { "id": "2185", "name": "万宁市", "code": "469006" }, { "id": "2186", "name": "东方市", "code": "469007" }, { "id": "2187", "name": "定安县", "code": "469021" }, { "id": "2188", "name": "屯昌县", "code": "469022" }, { "id": "2189", "name": "澄迈县", "code": "469023" }, { "id": "2190", "name": "临高县", "code": "469024" }, { "id": "2191", "name": "白沙黎族自治县", "code": "469025" }, { "id": "2192", "name": "昌江黎族自治县", "code": "469026" }, { "id": "2193", "name": "乐东黎族自治县", "code": "469027" }, { "id": "2194", "name": "陵水黎族自治县", "code": "469028" }, { "id": "2195", "name": "保亭黎族苗族自治县", "code": "469029" }, { "id": "2196", "name": "琼中黎族苗族自治县", "code": "469030" }] }] }, { "id": "22", "name": "重庆市", "code": "500000", "children": [{ "id": "238", "name": "市辖区", "code": "500100", "children": [{ "id": "2197", "name": "万州区", "code": "500101" }, { "id": "2198", "name": "涪陵区", "code": "500102" }, { "id": "2199", "name": "渝中区", "code": "500103" }, { "id": "2200", "name": "大渡口区", "code": "500104" }, { "id": "2201", "name": "江北区", "code": "500105" }, { "id": "2202", "name": "沙坪坝区", "code": "500106" }, { "id": "2203", "name": "九龙坡区", "code": "500107" }, { "id": "2204", "name": "南岸区", "code": "500108" }, { "id": "2205", "name": "北碚区", "code": "500109" }, { "id": "2206", "name": "綦江区", "code": "500110" }, { "id": "2207", "name": "大足区", "code": "500111" }, { "id": "2208", "name": "渝北区", "code": "500112" }, { "id": "2209", "name": "巴南区", "code": "500113" }, { "id": "2210", "name": "黔江区", "code": "500114" }, { "id": "2211", "name": "长寿区", "code": "500115" }, { "id": "2212", "name": "江津区", "code": "500116" }, { "id": "2213", "name": "合川区", "code": "500117" }, { "id": "2214", "name": "永川区", "code": "500118" }, { "id": "2215", "name": "南川区", "code": "500119" }, { "id": "2216", "name": "璧山区", "code": "500120" }, { "id": "2217", "name": "铜梁区", "code": "500151" }, { "id": "2218", "name": "潼南区", "code": "500152" }, { "id": "2219", "name": "荣昌区", "code": "500153" }, { "id": "2220", "name": "开州区", "code": "500154" }] }, { "id": "239", "name": "县", "code": "500200", "children": [{ "id": "2221", "name": "梁平县", "code": "500228" }, { "id": "2222", "name": "城口县", "code": "500229" }, { "id": "2223", "name": "丰都县", "code": "500230" }, { "id": "2224", "name": "垫江县", "code": "500231" }, { "id": "2225", "name": "武隆县", "code": "500232" }, { "id": "2226", "name": "忠县", "code": "500233" }, { "id": "2227", "name": "云阳县", "code": "500235" }, { "id": "2228", "name": "奉节县", "code": "500236" }, { "id": "2229", "name": "巫山县", "code": "500237" }, { "id": "2230", "name": "巫溪县", "code": "500238" }, { "id": "2231", "name": "石柱土家族自治县", "code": "500240" }, { "id": "2232", "name": "秀山土家族苗族自治县", "code": "500241" }, { "id": "2233", "name": "酉阳土家族苗族自治县", "code": "500242" }, { "id": "2234", "name": "彭水苗族土家族自治县", "code": "500243" }] }] }, { "id": "23", "name": "四川省", "code": "510000", "children": [{ "id": "240", "name": "成都市", "code": "510100", "children": [{ "id": "2235", "name": "市辖区", "code": "510101" }, { "id": "2236", "name": "锦江区", "code": "510104" }, { "id": "2237", "name": "青羊区", "code": "510105" }, { "id": "2238", "name": "金牛区", "code": "510106" }, { "id": "2239", "name": "武侯区", "code": "510107" }, { "id": "2240", "name": "成华区", "code": "510108" }, { "id": "2241", "name": "龙泉驿区", "code": "510112" }, { "id": "2242", "name": "青白江区", "code": "510113" }, { "id": "2243", "name": "新都区", "code": "510114" }, { "id": "2244", "name": "温江区", "code": "510115" }, { "id": "2245", "name": "双流区", "code": "510116" }, { "id": "2246", "name": "金堂县", "code": "510121" }, { "id": "2247", "name": "郫县", "code": "510124" }, { "id": "2248", "name": "大邑县", "code": "510129" }, { "id": "2249", "name": "蒲江县", "code": "510131" }, { "id": "2250", "name": "新津县", "code": "510132" }, { "id": "2251", "name": "都江堰市", "code": "510181" }, { "id": "2252", "name": "彭州市", "code": "510182" }, { "id": "2253", "name": "邛崃市", "code": "510183" }, { "id": "2254", "name": "崇州市", "code": "510184" }, { "id": "2255", "name": "简阳市", "code": "510185" }] }, { "id": "241", "name": "自贡市", "code": "510300", "children": [{ "id": "2256", "name": "市辖区", "code": "510301" }, { "id": "2257", "name": "自流井区", "code": "510302" }, { "id": "2258", "name": "贡井区", "code": "510303" }, { "id": "2259", "name": "大安区", "code": "510304" }, { "id": "2260", "name": "沿滩区", "code": "510311" }, { "id": "2261", "name": "荣县", "code": "510321" }, { "id": "2262", "name": "富顺县", "code": "510322" }] }, { "id": "242", "name": "攀枝花市", "code": "510400", "children": [{ "id": "2263", "name": "市辖区", "code": "510401" }, { "id": "2264", "name": "东区", "code": "510402" }, { "id": "2265", "name": "西区", "code": "510403" }, { "id": "2266", "name": "仁和区", "code": "510411" }, { "id": "2267", "name": "米易县", "code": "510421" }, { "id": "2268", "name": "盐边县", "code": "510422" }] }, { "id": "243", "name": "泸州市", "code": "510500", "children": [{ "id": "2269", "name": "市辖区", "code": "510501" }, { "id": "2270", "name": "江阳区", "code": "510502" }, { "id": "2271", "name": "纳溪区", "code": "510503" }, { "id": "2272", "name": "龙马潭区", "code": "510504" }, { "id": "2273", "name": "泸县", "code": "510521" }, { "id": "2274", "name": "合江县", "code": "510522" }, { "id": "2275", "name": "叙永县", "code": "510524" }, { "id": "2276", "name": "古蔺县", "code": "510525" }] }, { "id": "244", "name": "德阳市", "code": "510600", "children": [{ "id": "2277", "name": "市辖区", "code": "510601" }, { "id": "2278", "name": "旌阳区", "code": "510603" }, { "id": "2279", "name": "中江县", "code": "510623" }, { "id": "2280", "name": "罗江县", "code": "510626" }, { "id": "2281", "name": "广汉市", "code": "510681" }, { "id": "2282", "name": "什邡市", "code": "510682" }, { "id": "2283", "name": "绵竹市", "code": "510683" }] }, { "id": "245", "name": "绵阳市", "code": "510700", "children": [{ "id": "2284", "name": "市辖区", "code": "510701" }, { "id": "2285", "name": "涪城区", "code": "510703" }, { "id": "2286", "name": "游仙区", "code": "510704" }, { "id": "2287", "name": "安州区", "code": "510705" }, { "id": "2288", "name": "三台县", "code": "510722" }, { "id": "2289", "name": "盐亭县", "code": "510723" }, { "id": "2290", "name": "梓潼县", "code": "510725" }, { "id": "2291", "name": "北川羌族自治县", "code": "510726" }, { "id": "2292", "name": "平武县", "code": "510727" }, { "id": "2293", "name": "江油市", "code": "510781" }] }, { "id": "246", "name": "广元市", "code": "510800", "children": [{ "id": "2294", "name": "市辖区", "code": "510801" }, { "id": "2295", "name": "利州区", "code": "510802" }, { "id": "2296", "name": "昭化区", "code": "510811" }, { "id": "2297", "name": "朝天区", "code": "510812" }, { "id": "2298", "name": "旺苍县", "code": "510821" }, { "id": "2299", "name": "青川县", "code": "510822" }, { "id": "2300", "name": "剑阁县", "code": "510823" }, { "id": "2301", "name": "苍溪县", "code": "510824" }] }, { "id": "247", "name": "遂宁市", "code": "510900", "children": [{ "id": "2302", "name": "市辖区", "code": "510901" }, { "id": "2303", "name": "船山区", "code": "510903" }, { "id": "2304", "name": "安居区", "code": "510904" }, { "id": "2305", "name": "蓬溪县", "code": "510921" }, { "id": "2306", "name": "射洪县", "code": "510922" }, { "id": "2307", "name": "大英县", "code": "510923" }] }, { "id": "248", "name": "内江市", "code": "511000", "children": [{ "id": "2308", "name": "市辖区", "code": "511001" }, { "id": "2309", "name": "市中区", "code": "511002" }, { "id": "2310", "name": "东兴区", "code": "511011" }, { "id": "2311", "name": "威远县", "code": "511024" }, { "id": "2312", "name": "资中县", "code": "511025" }, { "id": "2313", "name": "隆昌县", "code": "511028" }] }, { "id": "249", "name": "乐山市", "code": "511100", "children": [{ "id": "2314", "name": "市辖区", "code": "511101" }, { "id": "2315", "name": "市中区", "code": "511102" }, { "id": "2316", "name": "沙湾区", "code": "511111" }, { "id": "2317", "name": "五通桥区", "code": "511112" }, { "id": "2318", "name": "金口河区", "code": "511113" }, { "id": "2319", "name": "犍为县", "code": "511123" }, { "id": "2320", "name": "井研县", "code": "511124" }, { "id": "2321", "name": "夹江县", "code": "511126" }, { "id": "2322", "name": "沐川县", "code": "511129" }, { "id": "2323", "name": "峨边彝族自治县", "code": "511132" }, { "id": "2324", "name": "马边彝族自治县", "code": "511133" }, { "id": "2325", "name": "峨眉山市", "code": "511181" }] }, { "id": "250", "name": "南充市", "code": "511300", "children": [{ "id": "2326", "name": "市辖区", "code": "511301" }, { "id": "2327", "name": "顺庆区", "code": "511302" }, { "id": "2328", "name": "高坪区", "code": "511303" }, { "id": "2329", "name": "嘉陵区", "code": "511304" }, { "id": "2330", "name": "南部县", "code": "511321" }, { "id": "2331", "name": "营山县", "code": "511322" }, { "id": "2332", "name": "蓬安县", "code": "511323" }, { "id": "2333", "name": "仪陇县", "code": "511324" }, { "id": "2334", "name": "西充县", "code": "511325" }, { "id": "2335", "name": "阆中市", "code": "511381" }] }, { "id": "251", "name": "眉山市", "code": "511400", "children": [{ "id": "2336", "name": "市辖区", "code": "511401" }, { "id": "2337", "name": "东坡区", "code": "511402" }, { "id": "2338", "name": "彭山区", "code": "511403" }, { "id": "2339", "name": "仁寿县", "code": "511421" }, { "id": "2340", "name": "洪雅县", "code": "511423" }, { "id": "2341", "name": "丹棱县", "code": "511424" }, { "id": "2342", "name": "青神县", "code": "511425" }] }, { "id": "252", "name": "宜宾市", "code": "511500", "children": [{ "id": "2343", "name": "市辖区", "code": "511501" }, { "id": "2344", "name": "翠屏区", "code": "511502" }, { "id": "2345", "name": "南溪区", "code": "511503" }, { "id": "2346", "name": "宜宾县", "code": "511521" }, { "id": "2347", "name": "江安县", "code": "511523" }, { "id": "2348", "name": "长宁县", "code": "511524" }, { "id": "2349", "name": "高县", "code": "511525" }, { "id": "2350", "name": "珙县", "code": "511526" }, { "id": "2351", "name": "筠连县", "code": "511527" }, { "id": "2352", "name": "兴文县", "code": "511528" }, { "id": "2353", "name": "屏山县", "code": "511529" }] }, { "id": "253", "name": "广安市", "code": "511600", "children": [{ "id": "2354", "name": "市辖区", "code": "511601" }, { "id": "2355", "name": "广安区", "code": "511602" }, { "id": "2356", "name": "前锋区", "code": "511603" }, { "id": "2357", "name": "岳池县", "code": "511621" }, { "id": "2358", "name": "武胜县", "code": "511622" }, { "id": "2359", "name": "邻水县", "code": "511623" }, { "id": "2360", "name": "华蓥市", "code": "511681" }] }, { "id": "254", "name": "达州市", "code": "511700", "children": [{ "id": "2361", "name": "市辖区", "code": "511701" }, { "id": "2362", "name": "通川区", "code": "511702" }, { "id": "2363", "name": "达川区", "code": "511703" }, { "id": "2364", "name": "宣汉县", "code": "511722" }, { "id": "2365", "name": "开江县", "code": "511723" }, { "id": "2366", "name": "大竹县", "code": "511724" }, { "id": "2367", "name": "渠县", "code": "511725" }, { "id": "2368", "name": "万源市", "code": "511781" }] }, { "id": "255", "name": "雅安市", "code": "511800", "children": [{ "id": "2369", "name": "市辖区", "code": "511801" }, { "id": "2370", "name": "雨城区", "code": "511802" }, { "id": "2371", "name": "名山区", "code": "511803" }, { "id": "2372", "name": "荥经县", "code": "511822" }, { "id": "2373", "name": "汉源县", "code": "511823" }, { "id": "2374", "name": "石棉县", "code": "511824" }, { "id": "2375", "name": "天全县", "code": "511825" }, { "id": "2376", "name": "芦山县", "code": "511826" }, { "id": "2377", "name": "宝兴县", "code": "511827" }] }, { "id": "256", "name": "巴中市", "code": "511900", "children": [{ "id": "2378", "name": "市辖区", "code": "511901" }, { "id": "2379", "name": "巴州区", "code": "511902" }, { "id": "2380", "name": "恩阳区", "code": "511903" }, { "id": "2381", "name": "通江县", "code": "511921" }, { "id": "2382", "name": "南江县", "code": "511922" }, { "id": "2383", "name": "平昌县", "code": "511923" }] }, { "id": "257", "name": "资阳市", "code": "512000", "children": [{ "id": "2384", "name": "市辖区", "code": "512001" }, { "id": "2385", "name": "雁江区", "code": "512002" }, { "id": "2386", "name": "安岳县", "code": "512021" }, { "id": "2387", "name": "乐至县", "code": "512022" }] }, { "id": "258", "name": "阿坝藏族羌族自治州", "code": "513200", "children": [{ "id": "2388", "name": "马尔康市", "code": "513201" }, { "id": "2389", "name": "汶川县", "code": "513221" }, { "id": "2390", "name": "理县", "code": "513222" }, { "id": "2391", "name": "茂县", "code": "513223" }, { "id": "2392", "name": "松潘县", "code": "513224" }, { "id": "2393", "name": "九寨沟县", "code": "513225" }, { "id": "2394", "name": "金川县", "code": "513226" }, { "id": "2395", "name": "小金县", "code": "513227" }, { "id": "2396", "name": "黑水县", "code": "513228" }, { "id": "2397", "name": "壤塘县", "code": "513230" }, { "id": "2398", "name": "阿坝县", "code": "513231" }, { "id": "2399", "name": "若尔盖县", "code": "513232" }, { "id": "2400", "name": "红原县", "code": "513233" }] }, { "id": "259", "name": "甘孜藏族自治州", "code": "513300", "children": [{ "id": "2401", "name": "康定市", "code": "513301" }, { "id": "2402", "name": "泸定县", "code": "513322" }, { "id": "2403", "name": "丹巴县", "code": "513323" }, { "id": "2404", "name": "九龙县", "code": "513324" }, { "id": "2405", "name": "雅江县", "code": "513325" }, { "id": "2406", "name": "道孚县", "code": "513326" }, { "id": "2407", "name": "炉霍县", "code": "513327" }, { "id": "2408", "name": "甘孜县", "code": "513328" }, { "id": "2409", "name": "新龙县", "code": "513329" }, { "id": "2410", "name": "德格县", "code": "513330" }, { "id": "2411", "name": "白玉县", "code": "513331" }, { "id": "2412", "name": "石渠县", "code": "513332" }, { "id": "2413", "name": "色达县", "code": "513333" }, { "id": "2414", "name": "理塘县", "code": "513334" }, { "id": "2415", "name": "巴塘县", "code": "513335" }, { "id": "2416", "name": "乡城县", "code": "513336" }, { "id": "2417", "name": "稻城县", "code": "513337" }, { "id": "2418", "name": "得荣县", "code": "513338" }] }, { "id": "260", "name": "凉山彝族自治州", "code": "513400", "children": [{ "id": "2419", "name": "西昌市", "code": "513401" }, { "id": "2420", "name": "木里藏族自治县", "code": "513422" }, { "id": "2421", "name": "盐源县", "code": "513423" }, { "id": "2422", "name": "德昌县", "code": "513424" }, { "id": "2423", "name": "会理县", "code": "513425" }, { "id": "2424", "name": "会东县", "code": "513426" }, { "id": "2425", "name": "宁南县", "code": "513427" }, { "id": "2426", "name": "普格县", "code": "513428" }, { "id": "2427", "name": "布拖县", "code": "513429" }, { "id": "2428", "name": "金阳县", "code": "513430" }, { "id": "2429", "name": "昭觉县", "code": "513431" }, { "id": "2430", "name": "喜德县", "code": "513432" }, { "id": "2431", "name": "冕宁县", "code": "513433" }, { "id": "2432", "name": "越西县", "code": "513434" }, { "id": "2433", "name": "甘洛县", "code": "513435" }, { "id": "2434", "name": "美姑县", "code": "513436" }, { "id": "2435", "name": "雷波县", "code": "513437" }] }] }, { "id": "24", "name": "贵州省", "code": "520000", "children": [{ "id": "261", "name": "贵阳市", "code": "520100", "children": [{ "id": "2436", "name": "市辖区", "code": "520101" }, { "id": "2437", "name": "南明区", "code": "520102" }, { "id": "2438", "name": "云岩区", "code": "520103" }, { "id": "2439", "name": "花溪区", "code": "520111" }, { "id": "2440", "name": "乌当区", "code": "520112" }, { "id": "2441", "name": "白云区", "code": "520113" }, { "id": "2442", "name": "观山湖区", "code": "520115" }, { "id": "2443", "name": "开阳县", "code": "520121" }, { "id": "2444", "name": "息烽县", "code": "520122" }, { "id": "2445", "name": "修文县", "code": "520123" }, { "id": "2446", "name": "清镇市", "code": "520181" }] }, { "id": "262", "name": "六盘水市", "code": "520200", "children": [{ "id": "2447", "name": "钟山区", "code": "520201" }, { "id": "2448", "name": "六枝特区", "code": "520203" }, { "id": "2449", "name": "水城县", "code": "520221" }, { "id": "2450", "name": "盘县", "code": "520222" }] }, { "id": "263", "name": "遵义市", "code": "520300", "children": [{ "id": "2451", "name": "市辖区", "code": "520301" }, { "id": "2452", "name": "红花岗区", "code": "520302" }, { "id": "2453", "name": "汇川区", "code": "520303" }, { "id": "2454", "name": "播州区", "code": "520304" }, { "id": "2455", "name": "桐梓县", "code": "520322" }, { "id": "2456", "name": "绥阳县", "code": "520323" }, { "id": "2457", "name": "正安县", "code": "520324" }, { "id": "2458", "name": "道真仡佬族苗族自治县", "code": "520325" }, { "id": "2459", "name": "务川仡佬族苗族自治县", "code": "520326" }, { "id": "2460", "name": "凤冈县", "code": "520327" }, { "id": "2461", "name": "湄潭县", "code": "520328" }, { "id": "2462", "name": "余庆县", "code": "520329" }, { "id": "2463", "name": "习水县", "code": "520330" }, { "id": "2464", "name": "赤水市", "code": "520381" }, { "id": "2465", "name": "仁怀市", "code": "520382" }] }, { "id": "264", "name": "安顺市", "code": "520400", "children": [{ "id": "2466", "name": "市辖区", "code": "520401" }, { "id": "2467", "name": "西秀区", "code": "520402" }, { "id": "2468", "name": "平坝区", "code": "520403" }, { "id": "2469", "name": "普定县", "code": "520422" }, { "id": "2470", "name": "镇宁布依族苗族自治县", "code": "520423" }, { "id": "2471", "name": "关岭布依族苗族自治县", "code": "520424" }, { "id": "2472", "name": "紫云苗族布依族自治县", "code": "520425" }] }, { "id": "265", "name": "毕节市", "code": "520500", "children": [{ "id": "2473", "name": "市辖区", "code": "520501" }, { "id": "2474", "name": "七星关区", "code": "520502" }, { "id": "2475", "name": "大方县", "code": "520521" }, { "id": "2476", "name": "黔西县", "code": "520522" }, { "id": "2477", "name": "金沙县", "code": "520523" }, { "id": "2478", "name": "织金县", "code": "520524" }, { "id": "2479", "name": "纳雍县", "code": "520525" }, { "id": "2480", "name": "威宁彝族回族苗族自治县", "code": "520526" }, { "id": "2481", "name": "赫章县", "code": "520527" }] }, { "id": "266", "name": "铜仁市", "code": "520600", "children": [{ "id": "2482", "name": "市辖区", "code": "520601" }, { "id": "2483", "name": "碧江区", "code": "520602" }, { "id": "2484", "name": "万山区", "code": "520603" }, { "id": "2485", "name": "江口县", "code": "520621" }, { "id": "2486", "name": "玉屏侗族自治县", "code": "520622" }, { "id": "2487", "name": "石阡县", "code": "520623" }, { "id": "2488", "name": "思南县", "code": "520624" }, { "id": "2489", "name": "印江土家族苗族自治县", "code": "520625" }, { "id": "2490", "name": "德江县", "code": "520626" }, { "id": "2491", "name": "沿河土家族自治县", "code": "520627" }, { "id": "2492", "name": "松桃苗族自治县", "code": "520628" }] }, { "id": "267", "name": "黔西南布依族苗族自治州", "code": "522300", "children": [{ "id": "2493", "name": "兴义市", "code": "522301" }, { "id": "2494", "name": "兴仁县", "code": "522322" }, { "id": "2495", "name": "普安县", "code": "522323" }, { "id": "2496", "name": "晴隆县", "code": "522324" }, { "id": "2497", "name": "贞丰县", "code": "522325" }, { "id": "2498", "name": "望谟县", "code": "522326" }, { "id": "2499", "name": "册亨县", "code": "522327" }, { "id": "2500", "name": "安龙县", "code": "522328" }] }, { "id": "268", "name": "黔东南苗族侗族自治州", "code": "522600", "children": [{ "id": "2501", "name": "凯里市", "code": "522601" }, { "id": "2502", "name": "黄平县", "code": "522622" }, { "id": "2503", "name": "施秉县", "code": "522623" }, { "id": "2504", "name": "三穗县", "code": "522624" }, { "id": "2505", "name": "镇远县", "code": "522625" }, { "id": "2506", "name": "岑巩县", "code": "522626" }, { "id": "2507", "name": "天柱县", "code": "522627" }, { "id": "2508", "name": "锦屏县", "code": "522628" }, { "id": "2509", "name": "剑河县", "code": "522629" }, { "id": "2510", "name": "台江县", "code": "522630" }, { "id": "2511", "name": "黎平县", "code": "522631" }, { "id": "2512", "name": "榕江县", "code": "522632" }, { "id": "2513", "name": "从江县", "code": "522633" }, { "id": "2514", "name": "雷山县", "code": "522634" }, { "id": "2515", "name": "麻江县", "code": "522635" }, { "id": "2516", "name": "丹寨县", "code": "522636" }] }, { "id": "269", "name": "黔南布依族苗族自治州", "code": "522700", "children": [{ "id": "2517", "name": "都匀市", "code": "522701" }, { "id": "2518", "name": "福泉市", "code": "522702" }, { "id": "2519", "name": "荔波县", "code": "522722" }, { "id": "2520", "name": "贵定县", "code": "522723" }, { "id": "2521", "name": "瓮安县", "code": "522725" }, { "id": "2522", "name": "独山县", "code": "522726" }, { "id": "2523", "name": "平塘县", "code": "522727" }, { "id": "2524", "name": "罗甸县", "code": "522728" }, { "id": "2525", "name": "长顺县", "code": "522729" }, { "id": "2526", "name": "龙里县", "code": "522730" }, { "id": "2527", "name": "惠水县", "code": "522731" }, { "id": "2528", "name": "三都水族自治县", "code": "522732" }] }] }, { "id": "25", "name": "云南省", "code": "530000", "children": [{ "id": "270", "name": "昆明市", "code": "530100", "children": [{ "id": "2529", "name": "市辖区", "code": "530101" }, { "id": "2530", "name": "五华区", "code": "530102" }, { "id": "2531", "name": "盘龙区", "code": "530103" }, { "id": "2532", "name": "官渡区", "code": "530111" }, { "id": "2533", "name": "西山区", "code": "530112" }, { "id": "2534", "name": "东川区", "code": "530113" }, { "id": "2535", "name": "呈贡区", "code": "530114" }, { "id": "2536", "name": "晋宁县", "code": "530122" }, { "id": "2537", "name": "富民县", "code": "530124" }, { "id": "2538", "name": "宜良县", "code": "530125" }, { "id": "2539", "name": "石林彝族自治县", "code": "530126" }, { "id": "2540", "name": "嵩明县", "code": "530127" }, { "id": "2541", "name": "禄劝彝族苗族自治县", "code": "530128" }, { "id": "2542", "name": "寻甸回族彝族自治县", "code": "530129" }, { "id": "2543", "name": "安宁市", "code": "530181" }] }, { "id": "271", "name": "曲靖市", "code": "530300", "children": [{ "id": "2544", "name": "市辖区", "code": "530301" }, { "id": "2545", "name": "麒麟区", "code": "530302" }, { "id": "2546", "name": "沾益区", "code": "530303" }, { "id": "2547", "name": "马龙县", "code": "530321" }, { "id": "2548", "name": "陆良县", "code": "530322" }, { "id": "2549", "name": "师宗县", "code": "530323" }, { "id": "2550", "name": "罗平县", "code": "530324" }, { "id": "2551", "name": "富源县", "code": "530325" }, { "id": "2552", "name": "会泽县", "code": "530326" }, { "id": "2553", "name": "宣威市", "code": "530381" }] }, { "id": "272", "name": "玉溪市", "code": "530400", "children": [{ "id": "2554", "name": "市辖区", "code": "530401" }, { "id": "2555", "name": "红塔区", "code": "530402" }, { "id": "2556", "name": "江川区", "code": "530403" }, { "id": "2557", "name": "澄江县", "code": "530422" }, { "id": "2558", "name": "通海县", "code": "530423" }, { "id": "2559", "name": "华宁县", "code": "530424" }, { "id": "2560", "name": "易门县", "code": "530425" }, { "id": "2561", "name": "峨山彝族自治县", "code": "530426" }, { "id": "2562", "name": "新平彝族傣族自治县", "code": "530427" }, { "id": "2563", "name": "元江哈尼族彝族傣族自治县", "code": "530428" }] }, { "id": "273", "name": "保山市", "code": "530500", "children": [{ "id": "2564", "name": "市辖区", "code": "530501" }, { "id": "2565", "name": "隆阳区", "code": "530502" }, { "id": "2566", "name": "施甸县", "code": "530521" }, { "id": "2567", "name": "龙陵县", "code": "530523" }, { "id": "2568", "name": "昌宁县", "code": "530524" }, { "id": "2569", "name": "腾冲市", "code": "530581" }] }, { "id": "274", "name": "昭通市", "code": "530600", "children": [{ "id": "2570", "name": "市辖区", "code": "530601" }, { "id": "2571", "name": "昭阳区", "code": "530602" }, { "id": "2572", "name": "鲁甸县", "code": "530621" }, { "id": "2573", "name": "巧家县", "code": "530622" }, { "id": "2574", "name": "盐津县", "code": "530623" }, { "id": "2575", "name": "大关县", "code": "530624" }, { "id": "2576", "name": "永善县", "code": "530625" }, { "id": "2577", "name": "绥江县", "code": "530626" }, { "id": "2578", "name": "镇雄县", "code": "530627" }, { "id": "2579", "name": "彝良县", "code": "530628" }, { "id": "2580", "name": "威信县", "code": "530629" }, { "id": "2581", "name": "水富县", "code": "530630" }] }, { "id": "275", "name": "丽江市", "code": "530700", "children": [{ "id": "2582", "name": "市辖区", "code": "530701" }, { "id": "2583", "name": "古城区", "code": "530702" }, { "id": "2584", "name": "玉龙纳西族自治县", "code": "530721" }, { "id": "2585", "name": "永胜县", "code": "530722" }, { "id": "2586", "name": "华坪县", "code": "530723" }, { "id": "2587", "name": "宁蒗彝族自治县", "code": "530724" }] }, { "id": "276", "name": "普洱市", "code": "530800", "children": [{ "id": "2588", "name": "市辖区", "code": "530801" }, { "id": "2589", "name": "思茅区", "code": "530802" }, { "id": "2590", "name": "宁洱哈尼族彝族自治县", "code": "530821" }, { "id": "2591", "name": "墨江哈尼族自治县", "code": "530822" }, { "id": "2592", "name": "景东彝族自治县", "code": "530823" }, { "id": "2593", "name": "景谷傣族彝族自治县", "code": "530824" }, { "id": "2594", "name": "镇沅彝族哈尼族拉祜族自治县", "code": "530825" }, { "id": "2595", "name": "江城哈尼族彝族自治县", "code": "530826" }, { "id": "2596", "name": "孟连傣族拉祜族佤族自治县", "code": "530827" }, { "id": "2597", "name": "澜沧拉祜族自治县", "code": "530828" }, { "id": "2598", "name": "西盟佤族自治县", "code": "530829" }] }, { "id": "277", "name": "临沧市", "code": "530900", "children": [{ "id": "2599", "name": "市辖区", "code": "530901" }, { "id": "2600", "name": "临翔区", "code": "530902" }, { "id": "2601", "name": "凤庆县", "code": "530921" }, { "id": "2602", "name": "云县", "code": "530922" }, { "id": "2603", "name": "永德县", "code": "530923" }, { "id": "2604", "name": "镇康县", "code": "530924" }, { "id": "2605", "name": "双江拉祜族佤族布朗族傣族自治县", "code": "530925" }, { "id": "2606", "name": "耿马傣族佤族自治县", "code": "530926" }, { "id": "2607", "name": "沧源佤族自治县", "code": "530927" }] }, { "id": "278", "name": "楚雄彝族自治州", "code": "532300", "children": [{ "id": "2608", "name": "楚雄市", "code": "532301" }, { "id": "2609", "name": "双柏县", "code": "532322" }, { "id": "2610", "name": "牟定县", "code": "532323" }, { "id": "2611", "name": "南华县", "code": "532324" }, { "id": "2612", "name": "姚安县", "code": "532325" }, { "id": "2613", "name": "大姚县", "code": "532326" }, { "id": "2614", "name": "永仁县", "code": "532327" }, { "id": "2615", "name": "元谋县", "code": "532328" }, { "id": "2616", "name": "武定县", "code": "532329" }, { "id": "2617", "name": "禄丰县", "code": "532331" }] }, { "id": "279", "name": "红河哈尼族彝族自治州", "code": "532500", "children": [{ "id": "2618", "name": "个旧市", "code": "532501" }, { "id": "2619", "name": "开远市", "code": "532502" }, { "id": "2620", "name": "蒙自市", "code": "532503" }, { "id": "2621", "name": "弥勒市", "code": "532504" }, { "id": "2622", "name": "屏边苗族自治县", "code": "532523" }, { "id": "2623", "name": "建水县", "code": "532524" }, { "id": "2624", "name": "石屏县", "code": "532525" }, { "id": "2625", "name": "泸西县", "code": "532527" }, { "id": "2626", "name": "元阳县", "code": "532528" }, { "id": "2627", "name": "红河县", "code": "532529" }, { "id": "2628", "name": "金平苗族瑶族傣族自治县", "code": "532530" }, { "id": "2629", "name": "绿春县", "code": "532531" }, { "id": "2630", "name": "河口瑶族自治县", "code": "532532" }] }, { "id": "280", "name": "文山壮族苗族自治州", "code": "532600", "children": [{ "id": "2631", "name": "文山市", "code": "532601" }, { "id": "2632", "name": "砚山县", "code": "532622" }, { "id": "2633", "name": "西畴县", "code": "532623" }, { "id": "2634", "name": "麻栗坡县", "code": "532624" }, { "id": "2635", "name": "马关县", "code": "532625" }, { "id": "2636", "name": "丘北县", "code": "532626" }, { "id": "2637", "name": "广南县", "code": "532627" }, { "id": "2638", "name": "富宁县", "code": "532628" }] }, { "id": "281", "name": "西双版纳傣族自治州", "code": "532800", "children": [{ "id": "2639", "name": "景洪市", "code": "532801" }, { "id": "2640", "name": "勐海县", "code": "532822" }, { "id": "2641", "name": "勐腊县", "code": "532823" }] }, { "id": "282", "name": "大理白族自治州", "code": "532900", "children": [{ "id": "2642", "name": "大理市", "code": "532901" }, { "id": "2643", "name": "漾濞彝族自治县", "code": "532922" }, { "id": "2644", "name": "祥云县", "code": "532923" }, { "id": "2645", "name": "宾川县", "code": "532924" }, { "id": "2646", "name": "弥渡县", "code": "532925" }, { "id": "2647", "name": "南涧彝族自治县", "code": "532926" }, { "id": "2648", "name": "巍山彝族回族自治县", "code": "532927" }, { "id": "2649", "name": "永平县", "code": "532928" }, { "id": "2650", "name": "云龙县", "code": "532929" }, { "id": "2651", "name": "洱源县", "code": "532930" }, { "id": "2652", "name": "剑川县", "code": "532931" }, { "id": "2653", "name": "鹤庆县", "code": "532932" }] }, { "id": "283", "name": "德宏傣族景颇族自治州", "code": "533100", "children": [{ "id": "2654", "name": "瑞丽市", "code": "533102" }, { "id": "2655", "name": "芒市", "code": "533103" }, { "id": "2656", "name": "梁河县", "code": "533122" }, { "id": "2657", "name": "盈江县", "code": "533123" }, { "id": "2658", "name": "陇川县", "code": "533124" }] }, { "id": "284", "name": "怒江傈僳族自治州", "code": "533300", "children": [{ "id": "2659", "name": "泸水市", "code": "533301" }, { "id": "2660", "name": "福贡县", "code": "533323" }, { "id": "2661", "name": "贡山独龙族怒族自治县", "code": "533324" }, { "id": "2662", "name": "兰坪白族普米族自治县", "code": "533325" }] }, { "id": "285", "name": "迪庆藏族自治州", "code": "533400", "children": [{ "id": "2663", "name": "香格里拉市", "code": "533401" }, { "id": "2664", "name": "德钦县", "code": "533422" }, { "id": "2665", "name": "维西傈僳族自治县", "code": "533423" }] }] }, { "id": "26", "name": "西藏自治区", "code": "540000", "children": [{ "id": "286", "name": "拉萨市", "code": "540100", "children": [{ "id": "2666", "name": "市辖区", "code": "540101" }, { "id": "2667", "name": "城关区", "code": "540102" }, { "id": "2668", "name": "堆龙德庆区", "code": "540103" }, { "id": "2669", "name": "林周县", "code": "540121" }, { "id": "2670", "name": "当雄县", "code": "540122" }, { "id": "2671", "name": "尼木县", "code": "540123" }, { "id": "2672", "name": "曲水县", "code": "540124" }, { "id": "2673", "name": "达孜县", "code": "540126" }, { "id": "2674", "name": "墨竹工卡县", "code": "540127" }] }, { "id": "287", "name": "日喀则市", "code": "540200", "children": [{ "id": "2675", "name": "桑珠孜区", "code": "540202" }, { "id": "2676", "name": "南木林县", "code": "540221" }, { "id": "2677", "name": "江孜县", "code": "540222" }, { "id": "2678", "name": "定日县", "code": "540223" }, { "id": "2679", "name": "萨迦县", "code": "540224" }, { "id": "2680", "name": "拉孜县", "code": "540225" }, { "id": "2681", "name": "昂仁县", "code": "540226" }, { "id": "2682", "name": "谢通门县", "code": "540227" }, { "id": "2683", "name": "白朗县", "code": "540228" }, { "id": "2684", "name": "仁布县", "code": "540229" }, { "id": "2685", "name": "康马县", "code": "540230" }, { "id": "2686", "name": "定结县", "code": "540231" }, { "id": "2687", "name": "仲巴县", "code": "540232" }, { "id": "2688", "name": "亚东县", "code": "540233" }, { "id": "2689", "name": "吉隆县", "code": "540234" }, { "id": "2690", "name": "聂拉木县", "code": "540235" }, { "id": "2691", "name": "萨嘎县", "code": "540236" }, { "id": "2692", "name": "岗巴县", "code": "540237" }] }, { "id": "288", "name": "昌都市", "code": "540300", "children": [{ "id": "2693", "name": "卡若区", "code": "540302" }, { "id": "2694", "name": "江达县", "code": "540321" }, { "id": "2695", "name": "贡觉县", "code": "540322" }, { "id": "2696", "name": "类乌齐县", "code": "540323" }, { "id": "2697", "name": "丁青县", "code": "540324" }, { "id": "2698", "name": "察雅县", "code": "540325" }, { "id": "2699", "name": "八宿县", "code": "540326" }, { "id": "2700", "name": "左贡县", "code": "540327" }, { "id": "2701", "name": "芒康县", "code": "540328" }, { "id": "2702", "name": "洛隆县", "code": "540329" }, { "id": "2703", "name": "边坝县", "code": "540330" }] }, { "id": "289", "name": "林芝市", "code": "540400", "children": [{ "id": "2704", "name": "巴宜区", "code": "540402" }, { "id": "2705", "name": "工布江达县", "code": "540421" }, { "id": "2706", "name": "米林县", "code": "540422" }, { "id": "2707", "name": "墨脱县", "code": "540423" }, { "id": "2708", "name": "波密县", "code": "540424" }, { "id": "2709", "name": "察隅县", "code": "540425" }, { "id": "2710", "name": "朗县", "code": "540426" }] }, { "id": "290", "name": "山南市", "code": "540500", "children": [{ "id": "2711", "name": "市辖区", "code": "540501" }, { "id": "2712", "name": "乃东区", "code": "540502" }, { "id": "2713", "name": "扎囊县", "code": "540521" }, { "id": "2714", "name": "贡嘎县", "code": "540522" }, { "id": "2715", "name": "桑日县", "code": "540523" }, { "id": "2716", "name": "琼结县", "code": "540524" }, { "id": "2717", "name": "曲松县", "code": "540525" }, { "id": "2718", "name": "措美县", "code": "540526" }, { "id": "2719", "name": "洛扎县", "code": "540527" }, { "id": "2720", "name": "加查县", "code": "540528" }, { "id": "2721", "name": "隆子县", "code": "540529" }, { "id": "2722", "name": "错那县", "code": "540530" }, { "id": "2723", "name": "浪卡子县", "code": "540531" }] }, { "id": "291", "name": "那曲地区", "code": "542400", "children": [{ "id": "2724", "name": "那曲县", "code": "542421" }, { "id": "2725", "name": "嘉黎县", "code": "542422" }, { "id": "2726", "name": "比如县", "code": "542423" }, { "id": "2727", "name": "聂荣县", "code": "542424" }, { "id": "2728", "name": "安多县", "code": "542425" }, { "id": "2729", "name": "申扎县", "code": "542426" }, { "id": "2730", "name": "索县", "code": "542427" }, { "id": "2731", "name": "班戈县", "code": "542428" }, { "id": "2732", "name": "巴青县", "code": "542429" }, { "id": "2733", "name": "尼玛县", "code": "542430" }, { "id": "2734", "name": "双湖县", "code": "542431" }] }, { "id": "292", "name": "阿里地区", "code": "542500", "children": [{ "id": "2735", "name": "普兰县", "code": "542521" }, { "id": "2736", "name": "札达县", "code": "542522" }, { "id": "2737", "name": "噶尔县", "code": "542523" }, { "id": "2738", "name": "日土县", "code": "542524" }, { "id": "2739", "name": "革吉县", "code": "542525" }, { "id": "2740", "name": "改则县", "code": "542526" }, { "id": "2741", "name": "措勤县", "code": "542527" }] }] }, { "id": "27", "name": "陕西省", "code": "610000", "children": [{ "id": "293", "name": "西安市", "code": "610100", "children": [{ "id": "2742", "name": "市辖区", "code": "610101" }, { "id": "2743", "name": "新城区", "code": "610102" }, { "id": "2744", "name": "碑林区", "code": "610103" }, { "id": "2745", "name": "莲湖区", "code": "610104" }, { "id": "2746", "name": "灞桥区", "code": "610111" }, { "id": "2747", "name": "未央区", "code": "610112" }, { "id": "2748", "name": "雁塔区", "code": "610113" }, { "id": "2749", "name": "阎良区", "code": "610114" }, { "id": "2750", "name": "临潼区", "code": "610115" }, { "id": "2751", "name": "长安区", "code": "610116" }, { "id": "2752", "name": "高陵区", "code": "610117" }, { "id": "2753", "name": "蓝田县", "code": "610122" }, { "id": "2754", "name": "周至县", "code": "610124" }, { "id": "2755", "name": "户县", "code": "610125" }] }, { "id": "294", "name": "铜川市", "code": "610200", "children": [{ "id": "2756", "name": "市辖区", "code": "610201" }, { "id": "2757", "name": "王益区", "code": "610202" }, { "id": "2758", "name": "印台区", "code": "610203" }, { "id": "2759", "name": "耀州区", "code": "610204" }, { "id": "2760", "name": "宜君县", "code": "610222" }] }, { "id": "295", "name": "宝鸡市", "code": "610300", "children": [{ "id": "2761", "name": "市辖区", "code": "610301" }, { "id": "2762", "name": "渭滨区", "code": "610302" }, { "id": "2763", "name": "金台区", "code": "610303" }, { "id": "2764", "name": "陈仓区", "code": "610304" }, { "id": "2765", "name": "凤翔县", "code": "610322" }, { "id": "2766", "name": "岐山县", "code": "610323" }, { "id": "2767", "name": "扶风县", "code": "610324" }, { "id": "2768", "name": "眉县", "code": "610326" }, { "id": "2769", "name": "陇县", "code": "610327" }, { "id": "2770", "name": "千阳县", "code": "610328" }, { "id": "2771", "name": "麟游县", "code": "610329" }, { "id": "2772", "name": "凤县", "code": "610330" }, { "id": "2773", "name": "太白县", "code": "610331" }] }, { "id": "296", "name": "咸阳市", "code": "610400", "children": [{ "id": "2774", "name": "市辖区", "code": "610401" }, { "id": "2775", "name": "秦都区", "code": "610402" }, { "id": "2776", "name": "杨陵区", "code": "610403" }, { "id": "2777", "name": "渭城区", "code": "610404" }, { "id": "2778", "name": "三原县", "code": "610422" }, { "id": "2779", "name": "泾阳县", "code": "610423" }, { "id": "2780", "name": "乾县", "code": "610424" }, { "id": "2781", "name": "礼泉县", "code": "610425" }, { "id": "2782", "name": "永寿县", "code": "610426" }, { "id": "2783", "name": "彬县", "code": "610427" }, { "id": "2784", "name": "长武县", "code": "610428" }, { "id": "2785", "name": "旬邑县", "code": "610429" }, { "id": "2786", "name": "淳化县", "code": "610430" }, { "id": "2787", "name": "武功县", "code": "610431" }, { "id": "2788", "name": "兴平市", "code": "610481" }] }, { "id": "297", "name": "渭南市", "code": "610500", "children": [{ "id": "2789", "name": "市辖区", "code": "610501" }, { "id": "2790", "name": "临渭区", "code": "610502" }, { "id": "2791", "name": "华州区", "code": "610503" }, { "id": "2792", "name": "潼关县", "code": "610522" }, { "id": "2793", "name": "大荔县", "code": "610523" }, { "id": "2794", "name": "合阳县", "code": "610524" }, { "id": "2795", "name": "澄城县", "code": "610525" }, { "id": "2796", "name": "蒲城县", "code": "610526" }, { "id": "2797", "name": "白水县", "code": "610527" }, { "id": "2798", "name": "富平县", "code": "610528" }, { "id": "2799", "name": "韩城市", "code": "610581" }, { "id": "2800", "name": "华阴市", "code": "610582" }] }, { "id": "298", "name": "延安市", "code": "610600", "children": [{ "id": "2801", "name": "市辖区", "code": "610601" }, { "id": "2802", "name": "宝塔区", "code": "610602" }, { "id": "2803", "name": "安塞区", "code": "610603" }, { "id": "2804", "name": "延长县", "code": "610621" }, { "id": "2805", "name": "延川县", "code": "610622" }, { "id": "2806", "name": "子长县", "code": "610623" }, { "id": "2807", "name": "志丹县", "code": "610625" }, { "id": "2808", "name": "吴起县", "code": "610626" }, { "id": "2809", "name": "甘泉县", "code": "610627" }, { "id": "2810", "name": "富县", "code": "610628" }, { "id": "2811", "name": "洛川县", "code": "610629" }, { "id": "2812", "name": "宜川县", "code": "610630" }, { "id": "2813", "name": "黄龙县", "code": "610631" }, { "id": "2814", "name": "黄陵县", "code": "610632" }] }, { "id": "299", "name": "汉中市", "code": "610700", "children": [{ "id": "2815", "name": "市辖区", "code": "610701" }, { "id": "2816", "name": "汉台区", "code": "610702" }, { "id": "2817", "name": "南郑县", "code": "610721" }, { "id": "2818", "name": "城固县", "code": "610722" }, { "id": "2819", "name": "洋县", "code": "610723" }, { "id": "2820", "name": "西乡县", "code": "610724" }, { "id": "2821", "name": "勉县", "code": "610725" }, { "id": "2822", "name": "宁强县", "code": "610726" }, { "id": "2823", "name": "略阳县", "code": "610727" }, { "id": "2824", "name": "镇巴县", "code": "610728" }, { "id": "2825", "name": "留坝县", "code": "610729" }, { "id": "2826", "name": "佛坪县", "code": "610730" }] }, { "id": "300", "name": "榆林市", "code": "610800", "children": [{ "id": "2827", "name": "市辖区", "code": "610801" }, { "id": "2828", "name": "榆阳区", "code": "610802" }, { "id": "2829", "name": "横山区", "code": "610803" }, { "id": "2830", "name": "神木县", "code": "610821" }, { "id": "2831", "name": "府谷县", "code": "610822" }, { "id": "2832", "name": "靖边县", "code": "610824" }, { "id": "2833", "name": "定边县", "code": "610825" }, { "id": "2834", "name": "绥德县", "code": "610826" }, { "id": "2835", "name": "米脂县", "code": "610827" }, { "id": "2836", "name": "佳县", "code": "610828" }, { "id": "2837", "name": "吴堡县", "code": "610829" }, { "id": "2838", "name": "清涧县", "code": "610830" }, { "id": "2839", "name": "子洲县", "code": "610831" }] }, { "id": "301", "name": "安康市", "code": "610900", "children": [{ "id": "2840", "name": "市辖区", "code": "610901" }, { "id": "2841", "name": "汉滨区", "code": "610902" }, { "id": "2842", "name": "汉阴县", "code": "610921" }, { "id": "2843", "name": "石泉县", "code": "610922" }, { "id": "2844", "name": "宁陕县", "code": "610923" }, { "id": "2845", "name": "紫阳县", "code": "610924" }, { "id": "2846", "name": "岚皋县", "code": "610925" }, { "id": "2847", "name": "平利县", "code": "610926" }, { "id": "2848", "name": "镇坪县", "code": "610927" }, { "id": "2849", "name": "旬阳县", "code": "610928" }, { "id": "2850", "name": "白河县", "code": "610929" }] }, { "id": "302", "name": "商洛市", "code": "611000", "children": [{ "id": "2851", "name": "市辖区", "code": "611001" }, { "id": "2852", "name": "商州区", "code": "611002" }, { "id": "2853", "name": "洛南县", "code": "611021" }, { "id": "2854", "name": "丹凤县", "code": "611022" }, { "id": "2855", "name": "商南县", "code": "611023" }, { "id": "2856", "name": "山阳县", "code": "611024" }, { "id": "2857", "name": "镇安县", "code": "611025" }, { "id": "2858", "name": "柞水县", "code": "611026" }] }] }, { "id": "28", "name": "甘肃省", "code": "620000", "children": [{ "id": "303", "name": "兰州市", "code": "620100", "children": [{ "id": "2859", "name": "市辖区", "code": "620101" }, { "id": "2860", "name": "城关区", "code": "620102" }, { "id": "2861", "name": "七里河区", "code": "620103" }, { "id": "2862", "name": "西固区", "code": "620104" }, { "id": "2863", "name": "安宁区", "code": "620105" }, { "id": "2864", "name": "红古区", "code": "620111" }, { "id": "2865", "name": "永登县", "code": "620121" }, { "id": "2866", "name": "皋兰县", "code": "620122" }, { "id": "2867", "name": "榆中县", "code": "620123" }] }, { "id": "304", "name": "嘉峪关市", "code": "620200", "children": [{ "id": "2868", "name": "市辖区", "code": "620201" }] }, { "id": "305", "name": "金昌市", "code": "620300", "children": [{ "id": "2869", "name": "市辖区", "code": "620301" }, { "id": "2870", "name": "金川区", "code": "620302" }, { "id": "2871", "name": "永昌县", "code": "620321" }] }, { "id": "306", "name": "白银市", "code": "620400", "children": [{ "id": "2872", "name": "市辖区", "code": "620401" }, { "id": "2873", "name": "白银区", "code": "620402" }, { "id": "2874", "name": "平川区", "code": "620403" }, { "id": "2875", "name": "靖远县", "code": "620421" }, { "id": "2876", "name": "会宁县", "code": "620422" }, { "id": "2877", "name": "景泰县", "code": "620423" }] }, { "id": "307", "name": "天水市", "code": "620500", "children": [{ "id": "2878", "name": "市辖区", "code": "620501" }, { "id": "2879", "name": "秦州区", "code": "620502" }, { "id": "2880", "name": "麦积区", "code": "620503" }, { "id": "2881", "name": "清水县", "code": "620521" }, { "id": "2882", "name": "秦安县", "code": "620522" }, { "id": "2883", "name": "甘谷县", "code": "620523" }, { "id": "2884", "name": "武山县", "code": "620524" }, { "id": "2885", "name": "张家川回族自治县", "code": "620525" }] }, { "id": "308", "name": "武威市", "code": "620600", "children": [{ "id": "2886", "name": "市辖区", "code": "620601" }, { "id": "2887", "name": "凉州区", "code": "620602" }, { "id": "2888", "name": "民勤县", "code": "620621" }, { "id": "2889", "name": "古浪县", "code": "620622" }, { "id": "2890", "name": "天祝藏族自治县", "code": "620623" }] }, { "id": "309", "name": "张掖市", "code": "620700", "children": [{ "id": "2891", "name": "市辖区", "code": "620701" }, { "id": "2892", "name": "甘州区", "code": "620702" }, { "id": "2893", "name": "肃南裕固族自治县", "code": "620721" }, { "id": "2894", "name": "民乐县", "code": "620722" }, { "id": "2895", "name": "临泽县", "code": "620723" }, { "id": "2896", "name": "高台县", "code": "620724" }, { "id": "2897", "name": "山丹县", "code": "620725" }] }, { "id": "310", "name": "平凉市", "code": "620800", "children": [{ "id": "2898", "name": "市辖区", "code": "620801" }, { "id": "2899", "name": "崆峒区", "code": "620802" }, { "id": "2900", "name": "泾川县", "code": "620821" }, { "id": "2901", "name": "灵台县", "code": "620822" }, { "id": "2902", "name": "崇信县", "code": "620823" }, { "id": "2903", "name": "华亭县", "code": "620824" }, { "id": "2904", "name": "庄浪县", "code": "620825" }, { "id": "2905", "name": "静宁县", "code": "620826" }] }, { "id": "311", "name": "酒泉市", "code": "620900", "children": [{ "id": "2906", "name": "市辖区", "code": "620901" }, { "id": "2907", "name": "肃州区", "code": "620902" }, { "id": "2908", "name": "金塔县", "code": "620921" }, { "id": "2909", "name": "瓜州县", "code": "620922" }, { "id": "2910", "name": "肃北蒙古族自治县", "code": "620923" }, { "id": "2911", "name": "阿克塞哈萨克族自治县", "code": "620924" }, { "id": "2912", "name": "玉门市", "code": "620981" }, { "id": "2913", "name": "敦煌市", "code": "620982" }] }, { "id": "312", "name": "庆阳市", "code": "621000", "children": [{ "id": "2914", "name": "市辖区", "code": "621001" }, { "id": "2915", "name": "西峰区", "code": "621002" }, { "id": "2916", "name": "庆城县", "code": "621021" }, { "id": "2917", "name": "环县", "code": "621022" }, { "id": "2918", "name": "华池县", "code": "621023" }, { "id": "2919", "name": "合水县", "code": "621024" }, { "id": "2920", "name": "正宁县", "code": "621025" }, { "id": "2921", "name": "宁县", "code": "621026" }, { "id": "2922", "name": "镇原县", "code": "621027" }] }, { "id": "313", "name": "定西市", "code": "621100", "children": [{ "id": "2923", "name": "市辖区", "code": "621101" }, { "id": "2924", "name": "安定区", "code": "621102" }, { "id": "2925", "name": "通渭县", "code": "621121" }, { "id": "2926", "name": "陇西县", "code": "621122" }, { "id": "2927", "name": "渭源县", "code": "621123" }, { "id": "2928", "name": "临洮县", "code": "621124" }, { "id": "2929", "name": "漳县", "code": "621125" }, { "id": "2930", "name": "岷县", "code": "621126" }] }, { "id": "314", "name": "陇南市", "code": "621200", "children": [{ "id": "2931", "name": "市辖区", "code": "621201" }, { "id": "2932", "name": "武都区", "code": "621202" }, { "id": "2933", "name": "成县", "code": "621221" }, { "id": "2934", "name": "文县", "code": "621222" }, { "id": "2935", "name": "宕昌县", "code": "621223" }, { "id": "2936", "name": "康县", "code": "621224" }, { "id": "2937", "name": "西和县", "code": "621225" }, { "id": "2938", "name": "礼县", "code": "621226" }, { "id": "2939", "name": "徽县", "code": "621227" }, { "id": "2940", "name": "两当县", "code": "621228" }] }, { "id": "315", "name": "临夏回族自治州", "code": "622900", "children": [{ "id": "2941", "name": "临夏市", "code": "622901" }, { "id": "2942", "name": "临夏县", "code": "622921" }, { "id": "2943", "name": "康乐县", "code": "622922" }, { "id": "2944", "name": "永靖县", "code": "622923" }, { "id": "2945", "name": "广河县", "code": "622924" }, { "id": "2946", "name": "和政县", "code": "622925" }, { "id": "2947", "name": "东乡族自治县", "code": "622926" }, { "id": "2948", "name": "积石山保安族东乡族撒拉族自治县", "code": "622927" }] }, { "id": "316", "name": "甘南藏族自治州", "code": "623000", "children": [{ "id": "2949", "name": "合作市", "code": "623001" }, { "id": "2950", "name": "临潭县", "code": "623021" }, { "id": "2951", "name": "卓尼县", "code": "623022" }, { "id": "2952", "name": "舟曲县", "code": "623023" }, { "id": "2953", "name": "迭部县", "code": "623024" }, { "id": "2954", "name": "玛曲县", "code": "623025" }, { "id": "2955", "name": "碌曲县", "code": "623026" }, { "id": "2956", "name": "夏河县", "code": "623027" }] }] }, { "id": "29", "name": "青海省", "code": "630000", "children": [{ "id": "317", "name": "西宁市", "code": "630100", "children": [{ "id": "2957", "name": "市辖区", "code": "630101" }, { "id": "2958", "name": "城东区", "code": "630102" }, { "id": "2959", "name": "城中区", "code": "630103" }, { "id": "2960", "name": "城西区", "code": "630104" }, { "id": "2961", "name": "城北区", "code": "630105" }, { "id": "2962", "name": "大通回族土族自治县", "code": "630121" }, { "id": "2963", "name": "湟中县", "code": "630122" }, { "id": "2964", "name": "湟源县", "code": "630123" }] }, { "id": "318", "name": "海东市", "code": "630200", "children": [{ "id": "2965", "name": "乐都区", "code": "630202" }, { "id": "2966", "name": "平安区", "code": "630203" }, { "id": "2967", "name": "民和回族土族自治县", "code": "630222" }, { "id": "2968", "name": "互助土族自治县", "code": "630223" }, { "id": "2969", "name": "化隆回族自治县", "code": "630224" }, { "id": "2970", "name": "循化撒拉族自治县", "code": "630225" }] }, { "id": "319", "name": "海北藏族自治州", "code": "632200", "children": [{ "id": "2971", "name": "门源回族自治县", "code": "632221" }, { "id": "2972", "name": "祁连县", "code": "632222" }, { "id": "2973", "name": "海晏县", "code": "632223" }, { "id": "2974", "name": "刚察县", "code": "632224" }] }, { "id": "320", "name": "黄南藏族自治州", "code": "632300", "children": [{ "id": "2975", "name": "同仁县", "code": "632321" }, { "id": "2976", "name": "尖扎县", "code": "632322" }, { "id": "2977", "name": "泽库县", "code": "632323" }, { "id": "2978", "name": "河南蒙古族自治县", "code": "632324" }] }, { "id": "321", "name": "海南藏族自治州", "code": "632500", "children": [{ "id": "2979", "name": "共和县", "code": "632521" }, { "id": "2980", "name": "同德县", "code": "632522" }, { "id": "2981", "name": "贵德县", "code": "632523" }, { "id": "2982", "name": "兴海县", "code": "632524" }, { "id": "2983", "name": "贵南县", "code": "632525" }] }, { "id": "322", "name": "果洛藏族自治州", "code": "632600", "children": [{ "id": "2984", "name": "玛沁县", "code": "632621" }, { "id": "2985", "name": "班玛县", "code": "632622" }, { "id": "2986", "name": "甘德县", "code": "632623" }, { "id": "2987", "name": "达日县", "code": "632624" }, { "id": "2988", "name": "久治县", "code": "632625" }, { "id": "2989", "name": "玛多县", "code": "632626" }] }, { "id": "323", "name": "玉树藏族自治州", "code": "632700", "children": [{ "id": "2990", "name": "玉树市", "code": "632701" }, { "id": "2991", "name": "杂多县", "code": "632722" }, { "id": "2992", "name": "称多县", "code": "632723" }, { "id": "2993", "name": "治多县", "code": "632724" }, { "id": "2994", "name": "囊谦县", "code": "632725" }, { "id": "2995", "name": "曲麻莱县", "code": "632726" }] }, { "id": "324", "name": "海西蒙古族藏族自治州", "code": "632800", "children": [{ "id": "2996", "name": "格尔木市", "code": "632801" }, { "id": "2997", "name": "德令哈市", "code": "632802" }, { "id": "2998", "name": "乌兰县", "code": "632821" }, { "id": "2999", "name": "都兰县", "code": "632822" }, { "id": "3000", "name": "天峻县", "code": "632823" }] }] }, { "id": "30", "name": "宁夏回族自治区", "code": "640000", "children": [{ "id": "325", "name": "银川市", "code": "640100", "children": [{ "id": "3001", "name": "市辖区", "code": "640101" }, { "id": "3002", "name": "兴庆区", "code": "640104" }, { "id": "3003", "name": "西夏区", "code": "640105" }, { "id": "3004", "name": "金凤区", "code": "640106" }, { "id": "3005", "name": "永宁县", "code": "640121" }, { "id": "3006", "name": "贺兰县", "code": "640122" }, { "id": "3007", "name": "灵武市", "code": "640181" }] }, { "id": "326", "name": "石嘴山市", "code": "640200", "children": [{ "id": "3008", "name": "市辖区", "code": "640201" }, { "id": "3009", "name": "大武口区", "code": "640202" }, { "id": "3010", "name": "惠农区", "code": "640205" }, { "id": "3011", "name": "平罗县", "code": "640221" }] }, { "id": "327", "name": "吴忠市", "code": "640300", "children": [{ "id": "3012", "name": "市辖区", "code": "640301" }, { "id": "3013", "name": "利通区", "code": "640302" }, { "id": "3014", "name": "红寺堡区", "code": "640303" }, { "id": "3015", "name": "盐池县", "code": "640323" }, { "id": "3016", "name": "同心县", "code": "640324" }, { "id": "3017", "name": "青铜峡市", "code": "640381" }] }, { "id": "328", "name": "固原市", "code": "640400", "children": [{ "id": "3018", "name": "市辖区", "code": "640401" }, { "id": "3019", "name": "原州区", "code": "640402" }, { "id": "3020", "name": "西吉县", "code": "640422" }, { "id": "3021", "name": "隆德县", "code": "640423" }, { "id": "3022", "name": "泾源县", "code": "640424" }, { "id": "3023", "name": "彭阳县", "code": "640425" }] }, { "id": "329", "name": "中卫市", "code": "640500", "children": [{ "id": "3024", "name": "市辖区", "code": "640501" }, { "id": "3025", "name": "沙坡头区", "code": "640502" }, { "id": "3026", "name": "中宁县", "code": "640521" }, { "id": "3027", "name": "海原县", "code": "640522" }] }] }, { "id": "31", "name": "新疆维吾尔自治区", "code": "650000", "children": [{ "id": "330", "name": "乌鲁木齐市", "code": "650100", "children": [{ "id": "3028", "name": "市辖区", "code": "650101" }, { "id": "3029", "name": "天山区", "code": "650102" }, { "id": "3030", "name": "沙依巴克区", "code": "650103" }, { "id": "3031", "name": "新市区", "code": "650104" }, { "id": "3032", "name": "水磨沟区", "code": "650105" }, { "id": "3033", "name": "头屯河区", "code": "650106" }, { "id": "3034", "name": "达坂城区", "code": "650107" }, { "id": "3035", "name": "米东区", "code": "650109" }, { "id": "3036", "name": "乌鲁木齐县", "code": "650121" }] }, { "id": "331", "name": "克拉玛依市", "code": "650200", "children": [{ "id": "3037", "name": "市辖区", "code": "650201" }, { "id": "3038", "name": "独山子区", "code": "650202" }, { "id": "3039", "name": "克拉玛依区", "code": "650203" }, { "id": "3040", "name": "白碱滩区", "code": "650204" }, { "id": "3041", "name": "乌尔禾区", "code": "650205" }] }, { "id": "332", "name": "吐鲁番市", "code": "650400", "children": [{ "id": "3042", "name": "高昌区", "code": "650402" }, { "id": "3043", "name": "鄯善县", "code": "650421" }, { "id": "3044", "name": "托克逊县", "code": "650422" }] }, { "id": "333", "name": "哈密市", "code": "650500", "children": [{ "id": "3045", "name": "伊州区", "code": "650502" }, { "id": "3046", "name": "巴里坤哈萨克自治县", "code": "650521" }, { "id": "3047", "name": "伊吾县", "code": "650522" }] }, { "id": "334", "name": "昌吉回族自治州", "code": "652300", "children": [{ "id": "3048", "name": "昌吉市", "code": "652301" }, { "id": "3049", "name": "阜康市", "code": "652302" }, { "id": "3050", "name": "呼图壁县", "code": "652323" }, { "id": "3051", "name": "玛纳斯县", "code": "652324" }, { "id": "3052", "name": "奇台县", "code": "652325" }, { "id": "3053", "name": "吉木萨尔县", "code": "652327" }, { "id": "3054", "name": "木垒哈萨克自治县", "code": "652328" }] }, { "id": "335", "name": "博尔塔拉蒙古自治州", "code": "652700", "children": [{ "id": "3055", "name": "博乐市", "code": "652701" }, { "id": "3056", "name": "阿拉山口市", "code": "652702" }, { "id": "3057", "name": "精河县", "code": "652722" }, { "id": "3058", "name": "温泉县", "code": "652723" }] }, { "id": "336", "name": "巴音郭楞蒙古自治州", "code": "652800", "children": [{ "id": "3059", "name": "库尔勒市", "code": "652801" }, { "id": "3060", "name": "轮台县", "code": "652822" }, { "id": "3061", "name": "尉犁县", "code": "652823" }, { "id": "3062", "name": "若羌县", "code": "652824" }, { "id": "3063", "name": "且末县", "code": "652825" }, { "id": "3064", "name": "焉耆回族自治县", "code": "652826" }, { "id": "3065", "name": "和静县", "code": "652827" }, { "id": "3066", "name": "和硕县", "code": "652828" }, { "id": "3067", "name": "博湖县", "code": "652829" }] }, { "id": "337", "name": "阿克苏地区", "code": "652900", "children": [{ "id": "3068", "name": "阿克苏市", "code": "652901" }, { "id": "3069", "name": "温宿县", "code": "652922" }, { "id": "3070", "name": "库车县", "code": "652923" }, { "id": "3071", "name": "沙雅县", "code": "652924" }, { "id": "3072", "name": "新和县", "code": "652925" }, { "id": "3073", "name": "拜城县", "code": "652926" }, { "id": "3074", "name": "乌什县", "code": "652927" }, { "id": "3075", "name": "阿瓦提县", "code": "652928" }, { "id": "3076", "name": "柯坪县", "code": "652929" }] }, { "id": "338", "name": "克孜勒苏柯尔克孜自治州", "code": "653000", "children": [{ "id": "3077", "name": "阿图什市", "code": "653001" }, { "id": "3078", "name": "阿克陶县", "code": "653022" }, { "id": "3079", "name": "阿合奇县", "code": "653023" }, { "id": "3080", "name": "乌恰县", "code": "653024" }] }, { "id": "339", "name": "喀什地区", "code": "653100", "children": [{ "id": "3081", "name": "喀什市", "code": "653101" }, { "id": "3082", "name": "疏附县", "code": "653121" }, { "id": "3083", "name": "疏勒县", "code": "653122" }, { "id": "3084", "name": "英吉沙县", "code": "653123" }, { "id": "3085", "name": "泽普县", "code": "653124" }, { "id": "3086", "name": "莎车县", "code": "653125" }, { "id": "3087", "name": "叶城县", "code": "653126" }, { "id": "3088", "name": "麦盖提县", "code": "653127" }, { "id": "3089", "name": "岳普湖县", "code": "653128" }, { "id": "3090", "name": "伽师县", "code": "653129" }, { "id": "3091", "name": "巴楚县", "code": "653130" }, { "id": "3092", "name": "塔什库尔干塔吉克自治县", "code": "653131" }] }, { "id": "340", "name": "和田地区", "code": "653200", "children": [{ "id": "3093", "name": "和田市", "code": "653201" }, { "id": "3094", "name": "和田县", "code": "653221" }, { "id": "3095", "name": "墨玉县", "code": "653222" }, { "id": "3096", "name": "皮山县", "code": "653223" }, { "id": "3097", "name": "洛浦县", "code": "653224" }, { "id": "3098", "name": "策勒县", "code": "653225" }, { "id": "3099", "name": "于田县", "code": "653226" }, { "id": "3100", "name": "民丰县", "code": "653227" }] }, { "id": "341", "name": "伊犁哈萨克自治州", "code": "654000", "children": [{ "id": "3101", "name": "伊宁市", "code": "654002" }, { "id": "3102", "name": "奎屯市", "code": "654003" }, { "id": "3103", "name": "霍尔果斯市", "code": "654004" }, { "id": "3104", "name": "伊宁县", "code": "654021" }, { "id": "3105", "name": "察布查尔锡伯自治县", "code": "654022" }, { "id": "3106", "name": "霍城县", "code": "654023" }, { "id": "3107", "name": "巩留县", "code": "654024" }, { "id": "3108", "name": "新源县", "code": "654025" }, { "id": "3109", "name": "昭苏县", "code": "654026" }, { "id": "3110", "name": "特克斯县", "code": "654027" }, { "id": "3111", "name": "尼勒克县", "code": "654028" }] }, { "id": "342", "name": "塔城地区", "code": "654200", "children": [{ "id": "3112", "name": "塔城市", "code": "654201" }, { "id": "3113", "name": "乌苏市", "code": "654202" }, { "id": "3114", "name": "额敏县", "code": "654221" }, { "id": "3115", "name": "沙湾县", "code": "654223" }, { "id": "3116", "name": "托里县", "code": "654224" }, { "id": "3117", "name": "裕民县", "code": "654225" }, { "id": "3118", "name": "和布克赛尔蒙古自治县", "code": "654226" }] }, { "id": "343", "name": "阿勒泰地区", "code": "654300", "children": [{ "id": "3119", "name": "阿勒泰市", "code": "654301" }, { "id": "3120", "name": "布尔津县", "code": "654321" }, { "id": "3121", "name": "富蕴县", "code": "654322" }, { "id": "3122", "name": "福海县", "code": "654323" }, { "id": "3123", "name": "哈巴河县", "code": "654324" }, { "id": "3124", "name": "青河县", "code": "654325" }, { "id": "3125", "name": "吉木乃县", "code": "654326" }] }, { "id": "344", "name": "自治区直辖县级行政区划", "code": "659000", "children": [{ "id": "3126", "name": "石河子市", "code": "659001" }, { "id": "3127", "name": "阿拉尔市", "code": "659002" }, { "id": "3128", "name": "图木舒克市", "code": "659003" }, { "id": "3129", "name": "五家渠市", "code": "659004" }, { "id": "3130", "name": "铁门关市", "code": "659006" }] }] }, { "id": "32", "name": "台湾省", "code": "710000", "children": [{ "id": "345", "name": "台湾", "code": "710000", "children": [{ "id": "3131", "name": "台湾", "code": "710000" }] }] }, { "id": "33", "name": "香港特别行政区", "code": "810000", "children": [{ "id": "346", "name": "香港", "code": "810000", "children": [{ "id": "3132", "name": "香港", "code": "810000" }] }] }, { "id": "34", "name": "澳门特别行政区", "code": "820000", "children": [{ "id": "347", "name": "澳门", "code": "820000", "children": [{ "id": "3133", "name": "澳门", "code": "820000" }] }] }] +module.exports={ + zones_tree:zones_tree +} \ No newline at end of file diff --git a/components/region-picker/region-picker.vue b/components/region-picker/region-picker.vue new file mode 100644 index 0000000..5997ac6 --- /dev/null +++ b/components/region-picker/region-picker.vue @@ -0,0 +1,163 @@ + + + \ No newline at end of file diff --git a/components/select-tree/select-tree.vue b/components/select-tree/select-tree.vue new file mode 100644 index 0000000..dd722ee --- /dev/null +++ b/components/select-tree/select-tree.vue @@ -0,0 +1,286 @@ + + + + + \ No newline at end of file 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/tki-tree/style.css b/components/tki-tree/style.css new file mode 100644 index 0000000..cb997b8 --- /dev/null +++ b/components/tki-tree/style.css @@ -0,0 +1,151 @@ +.tki-tree-mask { + position: fixed; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + z-index: 9998; + background-color: rgba(0, 0, 0, 0.6); + opacity: 0; + transition: all 0.3s ease; + visibility: hidden; +} +.tki-tree-mask.show { + visibility: visible; + opacity: 1; +} +.tki-tree-cnt { + position: fixed; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + z-index: 9999; + top: 160rpx; + transition: all 0.3s ease; + transform: translateY(100%); +} +.tki-tree-cnt.show { + transform: translateY(0); +} +.tki-tree-bar { + background-color: #fff; + height: 72rpx; + padding-left: 20rpx; + padding-right: 20rpx; + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + border-bottom-width: 1rpx !important; + border-bottom-style: solid; + border-bottom-color: #f5f5f5; + font-size: 32rpx; + color: #757575; + line-height: 1; +} +.tki-tree-bar-confirm { + color: #07bb07; +} +.tki-tree-view { + position: absolute; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + top: 72rpx; + background-color: #fff; + padding-top: 20rpx; + padding-right: 20rpx; + padding-bottom: 20rpx; + padding-left: 20rpx; +} +.tki-tree-view-sc { + height: 100%; + overflow: hidden; +} +.tki-tree-item { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 26rpx; + color: #757575; + line-height: 1; + height: 0; + opacity: 0; + transition: 0.2s; + position: relative; + overflow: hidden; +} +.tki-tree-item.show { + height: 80rpx; + opacity: 1; +} +.tki-tree-item.showchild:before { + transform: rotate(90deg); +} +.tki-tree-item.last:before { + opacity: 0; +} +.tki-tree-icon { + width: 26rpx; + height: 26rpx; + margin-right: 8rpx; +} +.tki-tree-label { + flex: 1; + display: flex; + align-items: center; + height: 100%; + line-height: 1.2; +} +.tki-tree-check { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; +} +.tki-tree-check-yes, +.tki-tree-check-no { + width: 20px; + height: 20px; + border-top-left-radius: 20%; + border-top-right-radius: 20%; + border-bottom-right-radius: 20%; + border-bottom-left-radius: 20%; + border-top-width: 1rpx; + border-left-width: 1rpx; + border-bottom-width: 1rpx; + border-right-width: 1rpx; + border-style: solid; + border-color: #07bb07; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; +} +.tki-tree-check-yes-b { + width: 12px; + height: 12px; + border-top-left-radius: 20%; + border-top-right-radius: 20%; + border-bottom-right-radius: 20%; + border-bottom-left-radius: 20%; + background-color: #07bb07; +} +.tki-tree-check .radio { + border-top-left-radius: 50%; + border-top-right-radius: 50%; + border-bottom-right-radius: 50%; + border-bottom-left-radius: 50%; +} +.tki-tree-check .radio .tki-tree-check-yes-b { + border-top-left-radius: 50%; + border-top-right-radius: 50%; + border-bottom-right-radius: 50%; + border-bottom-left-radius: 50%; +} +.hover-c { + opacity: 0.6; +} diff --git a/components/tki-tree/tki-tree.vue b/components/tki-tree/tki-tree.vue new file mode 100644 index 0000000..8bdc6e4 --- /dev/null +++ b/components/tki-tree/tki-tree.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/components/wxParse.vue b/components/wxParse.vue new file mode 100644 index 0000000..c497576 --- /dev/null +++ b/components/wxParse.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/components/wxParse0.vue b/components/wxParse0.vue new file mode 100644 index 0000000..4f5f602 --- /dev/null +++ b/components/wxParse0.vue @@ -0,0 +1,81 @@ + \ No newline at end of file diff --git a/components/wxParse1.vue b/components/wxParse1.vue new file mode 100644 index 0000000..32a97d6 --- /dev/null +++ b/components/wxParse1.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse10.vue b/components/wxParse10.vue new file mode 100644 index 0000000..2317098 --- /dev/null +++ b/components/wxParse10.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse11.vue b/components/wxParse11.vue new file mode 100644 index 0000000..5ee6ff1 --- /dev/null +++ b/components/wxParse11.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse2.vue b/components/wxParse2.vue new file mode 100644 index 0000000..8d18db4 --- /dev/null +++ b/components/wxParse2.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse3.vue b/components/wxParse3.vue new file mode 100644 index 0000000..2f84733 --- /dev/null +++ b/components/wxParse3.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse4.vue b/components/wxParse4.vue new file mode 100644 index 0000000..2a23839 --- /dev/null +++ b/components/wxParse4.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse5.vue b/components/wxParse5.vue new file mode 100644 index 0000000..83470be --- /dev/null +++ b/components/wxParse5.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse6.vue b/components/wxParse6.vue new file mode 100644 index 0000000..425e9db --- /dev/null +++ b/components/wxParse6.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse7.vue b/components/wxParse7.vue new file mode 100644 index 0000000..72f7763 --- /dev/null +++ b/components/wxParse7.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse8.vue b/components/wxParse8.vue new file mode 100644 index 0000000..c3f33e6 --- /dev/null +++ b/components/wxParse8.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParse9.vue b/components/wxParse9.vue new file mode 100644 index 0000000..6a7d4b7 --- /dev/null +++ b/components/wxParse9.vue @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/components/wxParseImg.vue b/components/wxParseImg.vue new file mode 100644 index 0000000..3a3c98d --- /dev/null +++ b/components/wxParseImg.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/components/wxParseVideo.vue b/components/wxParseVideo.vue new file mode 100644 index 0000000..3e4e700 --- /dev/null +++ b/components/wxParseVideo.vue @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..2fe5ba2 --- /dev/null +++ b/config/index.js @@ -0,0 +1,12 @@ +// 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 = 'http://192.168.0.112:8088/api' +export const VUE_APP_API_URL = 'http://192.168.0.112:8092/api' +// export const VUE_APP_API_URL = 'http://192.168.0.114:8092/api' +// export const VUE_APP_API_URL = 'https://www.cyjyyjy.com/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' + \ No newline at end of file diff --git a/dist/cell/index.d.ts b/dist/cell/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/cell/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/cell/index.js b/dist/cell/index.js deleted file mode 100644 index a0123d1..0000000 --- a/dist/cell/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import { link } from '../mixins/link'; -import { VantComponent } from '../common/component'; -VantComponent({ - classes: [ - 'title-class', - 'label-class', - 'value-class', - 'right-icon-class', - 'hover-class', - ], - mixins: [link], - props: { - title: null, - value: null, - icon: String, - size: String, - label: String, - center: Boolean, - isLink: Boolean, - required: Boolean, - clickable: Boolean, - titleWidth: String, - customStyle: String, - arrowDirection: String, - useLabelSlot: Boolean, - border: { - type: Boolean, - value: true, - }, - titleStyle: String, - }, - methods: { - onClick(event) { - this.$emit('click', event.detail); - this.jumpLink(); - }, - }, -}); diff --git a/dist/cell/index.json b/dist/cell/index.json deleted file mode 100644 index 0a336c0..0000000 --- a/dist/cell/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "component": true, - "usingComponents": { - "van-icon": "../icon/index" - } -} diff --git a/dist/cell/index.wxml b/dist/cell/index.wxml deleted file mode 100644 index 8387c3c..0000000 --- a/dist/cell/index.wxml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - {{ title }} - - - - - {{ label }} - - - - - {{ value }} - - - - - - - - diff --git a/dist/cell/index.wxs b/dist/cell/index.wxs deleted file mode 100644 index e3500c4..0000000 --- a/dist/cell/index.wxs +++ /dev/null @@ -1,17 +0,0 @@ -/* eslint-disable */ -var style = require('../wxs/style.wxs'); -var addUnit = require('../wxs/add-unit.wxs'); - -function titleStyle(data) { - return style([ - { - 'max-width': addUnit(data.titleWidth), - 'min-width': addUnit(data.titleWidth), - }, - data.titleStyle, - ]); -} - -module.exports = { - titleStyle: titleStyle, -}; diff --git a/dist/cell/index.wxss b/dist/cell/index.wxss deleted file mode 100644 index 605570d..0000000 --- a/dist/cell/index.wxss +++ /dev/null @@ -1 +0,0 @@ -@import '../common/index.wxss';.van-cell{position:relative;display:-webkit-flex;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);font-size:14px;font-size:var(--cell-font-size,14px);line-height:24px;line-height:var(--cell-line-height,24px);color:#323233;color:var(--cell-text-color,#323233);background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-cell--borderless:after{display:none}.van-cell-group{background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell__label{margin-top:3px;margin-top:var(--cell-label-margin-top,3px);font-size:12px;font-size:var(--cell-label-font-size,12px);line-height:18px;line-height:var(--cell-label-line-height,18px);color:#969799;color:var(--cell-label-color,#969799)}.van-cell__value{overflow:hidden;text-align:right;vertical-align:middle;color:#969799;color:var(--cell-value-color,#969799)}.van-cell__title,.van-cell__value{-webkit-flex:1;flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;height:24px;height:var(--cell-line-height,24px);font-size:16px;font-size:var(--cell-icon-size,16px)}.van-cell__left-icon-wrap{margin-right:4px;margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{margin-left:4px;margin-left:var(--padding-base,4px);color:#969799;color:var(--cell-right-icon-color,#969799)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:24px;line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:#f2f3f5;background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{position:absolute;content:"*";left:8px;left:var(--padding-xs,8px);font-size:14px;font-size:var(--cell-font-size,14px);color:#ee0a24;color:var(--cell-required-color,#ee0a24)}.van-cell--center{-webkit-align-items:center;align-items:center}.van-cell--large{padding-top:12px;padding-top:var(--cell-large-vertical-padding,12px);padding-bottom:12px;padding-bottom:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:16px;font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:16px;font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:14px;font-size:var(--cell-large-label-font-size,14px)} \ No newline at end of file diff --git a/dist/collapse-item/animate.d.ts b/dist/collapse-item/animate.d.ts deleted file mode 100644 index 0c33c00..0000000 --- a/dist/collapse-item/animate.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// -export declare function setContentAnimate( - context: WechatMiniprogram.Component.TrivialInstance, - expanded: boolean, - mounted: boolean -): void; diff --git a/dist/collapse-item/animate.js b/dist/collapse-item/animate.js deleted file mode 100644 index 7ce1dae..0000000 --- a/dist/collapse-item/animate.js +++ /dev/null @@ -1,70 +0,0 @@ -import { canIUseAnimate } from '../common/version'; -import { getRect } from '../common/utils'; -function useAnimate(context, expanded, mounted, height) { - const selector = '.van-collapse-item__wrapper'; - if (expanded) { - context.animate( - selector, - [ - { height: 0, ease: 'ease-in-out', offset: 0 }, - { height: `${height}px`, ease: 'ease-in-out', offset: 1 }, - { height: `auto`, ease: 'ease-in-out', offset: 1 }, - ], - mounted ? 300 : 0, - () => { - context.clearAnimation(selector); - } - ); - return; - } - context.animate( - selector, - [ - { height: `${height}px`, ease: 'ease-in-out', offset: 0 }, - { height: 0, ease: 'ease-in-out', offset: 1 }, - ], - 300, - () => { - context.clearAnimation(selector); - } - ); -} -function useAnimation(context, expanded, mounted, height) { - const animation = wx.createAnimation({ - duration: 0, - timingFunction: 'ease-in-out', - }); - if (expanded) { - if (height === 0) { - animation.height('auto').top(1).step(); - } else { - animation - .height(height) - .top(1) - .step({ - duration: mounted ? 300 : 1, - }) - .height('auto') - .step(); - } - context.setData({ - animation: animation.export(), - }); - return; - } - animation.height(height).top(0).step({ duration: 1 }).height(0).step({ - duration: 300, - }); - context.setData({ - animation: animation.export(), - }); -} -export function setContentAnimate(context, expanded, mounted) { - getRect(context, '.van-collapse-item__content') - .then((rect) => rect.height) - .then((height) => { - canIUseAnimate() - ? useAnimate(context, expanded, mounted, height) - : useAnimation(context, expanded, mounted, height); - }); -} diff --git a/dist/collapse-item/index.d.ts b/dist/collapse-item/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/collapse-item/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/collapse-item/index.js b/dist/collapse-item/index.js deleted file mode 100644 index c44c27e..0000000 --- a/dist/collapse-item/index.js +++ /dev/null @@ -1,59 +0,0 @@ -import { VantComponent } from '../common/component'; -import { useParent } from '../common/relation'; -import { setContentAnimate } from './animate'; -VantComponent({ - classes: ['title-class', 'content-class'], - relation: useParent('collapse'), - props: { - name: null, - title: null, - value: null, - icon: String, - label: String, - disabled: Boolean, - clickable: Boolean, - border: { - type: Boolean, - value: true, - }, - isLink: { - type: Boolean, - value: true, - }, - }, - data: { - expanded: false, - }, - mounted() { - this.updateExpanded(); - this.mounted = true; - }, - methods: { - updateExpanded() { - if (!this.parent) { - return; - } - const { value, accordion } = this.parent.data; - const { children = [] } = this.parent; - const { name } = this.data; - const index = children.indexOf(this); - const currentName = name == null ? index : name; - const expanded = accordion - ? value === currentName - : (value || []).some((name) => name === currentName); - if (expanded !== this.data.expanded) { - setContentAnimate(this, expanded, this.mounted); - } - this.setData({ index, expanded }); - }, - onClick() { - if (this.data.disabled) { - return; - } - const { name, expanded } = this.data; - const index = this.parent.children.indexOf(this); - const currentName = name == null ? index : name; - this.parent.switch(currentName, !expanded); - }, - }, -}); diff --git a/dist/collapse-item/index.json b/dist/collapse-item/index.json deleted file mode 100644 index 0e5425c..0000000 --- a/dist/collapse-item/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "component": true, - "usingComponents": { - "van-cell": "../cell/index" - } -} diff --git a/dist/collapse-item/index.wxml b/dist/collapse-item/index.wxml deleted file mode 100644 index ae4cc83..0000000 --- a/dist/collapse-item/index.wxml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/collapse-item/index.wxss b/dist/collapse-item/index.wxss deleted file mode 100644 index 0bb936c..0000000 --- a/dist/collapse-item/index.wxss +++ /dev/null @@ -1 +0,0 @@ -@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg);transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;transition:-webkit-transform var(--collapse-item-transition-duration,.3s);transition:transform var(--collapse-item-transition-duration,.3s);transition:transform var(--collapse-item-transition-duration,.3s),-webkit-transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:#c8c9cc!important;color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important;background-color:var(--white,#fff)!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{padding:15px;padding:var(--collapse-item-content-padding,15px);color:#969799;color:var(--collapse-item-content-text-color,#969799);font-size:13px;font-size:var(--collapse-item-content-font-size,13px);line-height:1.5;line-height:var(--collapse-item-content-line-height,1.5);background-color:#fff;background-color:var(--collapse-item-content-background-color,#fff)} \ No newline at end of file diff --git a/dist/collapse/index.d.ts b/dist/collapse/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/collapse/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/collapse/index.js b/dist/collapse/index.js deleted file mode 100644 index 60e4611..0000000 --- a/dist/collapse/index.js +++ /dev/null @@ -1,44 +0,0 @@ -import { VantComponent } from '../common/component'; -import { useChildren } from '../common/relation'; -VantComponent({ - relation: useChildren('collapse-item'), - props: { - value: { - type: null, - observer: 'updateExpanded', - }, - accordion: { - type: Boolean, - observer: 'updateExpanded', - }, - border: { - type: Boolean, - value: true, - }, - }, - methods: { - updateExpanded() { - this.children.forEach((child) => { - child.updateExpanded(); - }); - }, - switch(name, expanded) { - const { accordion, value } = this.data; - const changeItem = name; - if (!accordion) { - name = expanded - ? (value || []).concat(name) - : (value || []).filter((activeName) => activeName !== name); - } else { - name = expanded ? name : ''; - } - if (expanded) { - this.$emit('open', changeItem); - } else { - this.$emit('close', changeItem); - } - this.$emit('change', name); - this.$emit('input', name); - }, - }, -}); diff --git a/dist/collapse/index.json b/dist/collapse/index.json deleted file mode 100644 index 467ce29..0000000 --- a/dist/collapse/index.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "component": true -} diff --git a/dist/collapse/index.wxml b/dist/collapse/index.wxml deleted file mode 100644 index fd4e171..0000000 --- a/dist/collapse/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dist/collapse/index.wxss b/dist/collapse/index.wxss deleted file mode 100644 index 99694d6..0000000 --- a/dist/collapse/index.wxss +++ /dev/null @@ -1 +0,0 @@ -@import '../common/index.wxss'; \ No newline at end of file diff --git a/dist/common/color.d.ts b/dist/common/color.d.ts deleted file mode 100644 index 386f307..0000000 --- a/dist/common/color.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare const RED = "#ee0a24"; -export declare const BLUE = "#1989fa"; -export declare const WHITE = "#fff"; -export declare const GREEN = "#07c160"; -export declare const ORANGE = "#ff976a"; -export declare const GRAY = "#323233"; -export declare const GRAY_DARK = "#969799"; diff --git a/dist/common/color.js b/dist/common/color.js deleted file mode 100644 index 6b285bd..0000000 --- a/dist/common/color.js +++ /dev/null @@ -1,7 +0,0 @@ -export const RED = '#ee0a24'; -export const BLUE = '#1989fa'; -export const WHITE = '#fff'; -export const GREEN = '#07c160'; -export const ORANGE = '#ff976a'; -export const GRAY = '#323233'; -export const GRAY_DARK = '#969799'; diff --git a/dist/common/component.d.ts b/dist/common/component.d.ts deleted file mode 100644 index 6b0a958..0000000 --- a/dist/common/component.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// -import { VantComponentOptions } from '../definitions/index'; -declare function VantComponent< - Data extends WechatMiniprogram.Component.DataOption, - Props extends WechatMiniprogram.Component.PropertyOption, - Methods extends WechatMiniprogram.Component.MethodOption ->(vantOptions: VantComponentOptions): void; -export { VantComponent }; diff --git a/dist/common/component.js b/dist/common/component.js deleted file mode 100644 index 5530c6f..0000000 --- a/dist/common/component.js +++ /dev/null @@ -1,45 +0,0 @@ -import { basic } from '../mixins/basic'; -function mapKeys(source, target, map) { - Object.keys(map).forEach((key) => { - if (source[key]) { - target[map[key]] = source[key]; - } - }); -} -function VantComponent(vantOptions) { - const options = {}; - mapKeys(vantOptions, options, { - data: 'data', - props: 'properties', - mixins: 'behaviors', - methods: 'methods', - beforeCreate: 'created', - created: 'attached', - mounted: 'ready', - destroyed: 'detached', - classes: 'externalClasses', - }); - // add default externalClasses - options.externalClasses = options.externalClasses || []; - options.externalClasses.push('custom-class'); - // add default behaviors - options.behaviors = options.behaviors || []; - options.behaviors.push(basic); - // add relations - const { relation } = vantOptions; - if (relation) { - options.relations = relation.relations; - options.behaviors.push(relation.mixin); - } - // map field to form-field behavior - if (vantOptions.field) { - options.behaviors.push('wx://form-field'); - } - // add default options - options.options = { - multipleSlots: true, - addGlobalClass: true, - }; - Component(options); -} -export { VantComponent }; diff --git a/dist/common/index.wxss b/dist/common/index.wxss deleted file mode 100644 index 976825d..0000000 --- a/dist/common/index.wxss +++ /dev/null @@ -1 +0,0 @@ -.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/dist/common/relation.d.ts b/dist/common/relation.d.ts deleted file mode 100644 index be5f2ee..0000000 --- a/dist/common/relation.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/// -declare type TrivialInstance = WechatMiniprogram.Component.TrivialInstance; -export declare function useParent( - name: string, - onEffect?: (this: TrivialInstance) => void -): { - relations: { - [x: string]: WechatMiniprogram.Component.RelationOption; - }; - mixin: string; -}; -export declare function useChildren( - name: string, - onEffect?: (this: TrivialInstance, target: TrivialInstance) => void -): { - relations: { - [x: string]: WechatMiniprogram.Component.RelationOption; - }; - mixin: string; -}; -export {}; diff --git a/dist/common/relation.js b/dist/common/relation.js deleted file mode 100644 index 99c1a49..0000000 --- a/dist/common/relation.js +++ /dev/null @@ -1,64 +0,0 @@ -export function useParent(name, onEffect) { - const path = `../${name}/index`; - return { - relations: { - [path]: { - type: 'ancestor', - linked() { - onEffect && onEffect.call(this); - }, - linkChanged() { - onEffect && onEffect.call(this); - }, - unlinked() { - onEffect && onEffect.call(this); - }, - }, - }, - mixin: Behavior({ - created() { - Object.defineProperty(this, 'parent', { - get: () => this.getRelationNodes(path)[0], - }); - Object.defineProperty(this, 'index', { - // @ts-ignore - get: () => { - var _a, _b; - return (_b = - (_a = this.parent) === null || _a === void 0 - ? void 0 - : _a.children) === null || _b === void 0 - ? void 0 - : _b.indexOf(this); - }, - }); - }, - }), - }; -} -export function useChildren(name, onEffect) { - const path = `../${name}/index`; - return { - relations: { - [path]: { - type: 'descendant', - linked(target) { - onEffect && onEffect.call(this, target); - }, - linkChanged(target) { - onEffect && onEffect.call(this, target); - }, - unlinked(target) { - onEffect && onEffect.call(this, target); - }, - }, - }, - mixin: Behavior({ - created() { - Object.defineProperty(this, 'children', { - get: () => this.getRelationNodes(path) || [], - }); - }, - }), - }; -} diff --git a/dist/common/style/clearfix.wxss b/dist/common/style/clearfix.wxss deleted file mode 100644 index a0ca838..0000000 --- a/dist/common/style/clearfix.wxss +++ /dev/null @@ -1 +0,0 @@ -.van-clearfix:after{display:table;clear:both;content:""} \ No newline at end of file diff --git a/dist/common/style/ellipsis.wxss b/dist/common/style/ellipsis.wxss deleted file mode 100644 index 1e9dbc9..0000000 --- a/dist/common/style/ellipsis.wxss +++ /dev/null @@ -1 +0,0 @@ -.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3} \ No newline at end of file diff --git a/dist/common/style/hairline.wxss b/dist/common/style/hairline.wxss deleted file mode 100644 index 49b9e65..0000000 --- a/dist/common/style/hairline.wxss +++ /dev/null @@ -1 +0,0 @@ -.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px} \ No newline at end of file diff --git a/dist/common/style/theme.wxss b/dist/common/style/theme.wxss deleted file mode 100644 index e69de29..0000000 diff --git a/dist/common/style/var.wxss b/dist/common/style/var.wxss deleted file mode 100644 index e69de29..0000000 diff --git a/dist/common/utils.d.ts b/dist/common/utils.d.ts deleted file mode 100644 index 59dbbfb..0000000 --- a/dist/common/utils.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/// -export { isDef } from './validator'; -export declare function range(num: number, min: number, max: number): number; -export declare function nextTick(cb: (...args: any[]) => void): void; -export declare function getSystemInfoSync(): WechatMiniprogram.SystemInfo; -export declare function addUnit(value?: string | number): string | undefined; -export declare function requestAnimationFrame( - cb: () => void -): number | WechatMiniprogram.NodesRef; -export declare function pickExclude(obj: unknown, keys: string[]): {}; -export declare function getRect( - context: WechatMiniprogram.Component.TrivialInstance, - selector: string -): Promise; -export declare function getAllRect( - context: WechatMiniprogram.Component.TrivialInstance, - selector: string -): Promise; -export declare function groupSetData( - context: WechatMiniprogram.Component.TrivialInstance, - cb: () => void -): void; -export declare function toPromise( - promiseLike: Promise | unknown -): Promise; -export declare function getCurrentPage(): T & - WechatMiniprogram.OptionalInterface & - WechatMiniprogram.Page.InstanceProperties & - WechatMiniprogram.Page.InstanceMethods & - WechatMiniprogram.Page.Data & - WechatMiniprogram.IAnyObject; diff --git a/dist/common/utils.js b/dist/common/utils.js deleted file mode 100644 index 15555dd..0000000 --- a/dist/common/utils.js +++ /dev/null @@ -1,90 +0,0 @@ -import { isDef, isNumber, isPlainObject, isPromise } from './validator'; -import { canIUseGroupSetData, canIUseNextTick } from './version'; -export { isDef } from './validator'; -export function range(num, min, max) { - return Math.min(Math.max(num, min), max); -} -export function nextTick(cb) { - if (canIUseNextTick()) { - wx.nextTick(cb); - } else { - setTimeout(() => { - cb(); - }, 1000 / 30); - } -} -let systemInfo; -export function getSystemInfoSync() { - if (systemInfo == null) { - systemInfo = wx.getSystemInfoSync(); - } - return systemInfo; -} -export function addUnit(value) { - if (!isDef(value)) { - return undefined; - } - value = String(value); - return isNumber(value) ? `${value}px` : value; -} -export function requestAnimationFrame(cb) { - const systemInfo = getSystemInfoSync(); - if (systemInfo.platform === 'devtools') { - return setTimeout(() => { - cb(); - }, 1000 / 30); - } - return wx - .createSelectorQuery() - .selectViewport() - .boundingClientRect() - .exec(() => { - cb(); - }); -} -export function pickExclude(obj, keys) { - if (!isPlainObject(obj)) { - return {}; - } - return Object.keys(obj).reduce((prev, key) => { - if (!keys.includes(key)) { - prev[key] = obj[key]; - } - return prev; - }, {}); -} -export function getRect(context, selector) { - return new Promise((resolve) => { - wx.createSelectorQuery() - .in(context) - .select(selector) - .boundingClientRect() - .exec((rect = []) => resolve(rect[0])); - }); -} -export function getAllRect(context, selector) { - return new Promise((resolve) => { - wx.createSelectorQuery() - .in(context) - .selectAll(selector) - .boundingClientRect() - .exec((rect = []) => resolve(rect[0])); - }); -} -export function groupSetData(context, cb) { - if (canIUseGroupSetData()) { - context.groupSetData(cb); - } else { - cb(); - } -} -export function toPromise(promiseLike) { - if (isPromise(promiseLike)) { - return promiseLike; - } - return Promise.resolve(promiseLike); -} -export function getCurrentPage() { - const pages = getCurrentPages(); - return pages[pages.length - 1]; -} diff --git a/dist/common/validator.d.ts b/dist/common/validator.d.ts deleted file mode 100644 index ae7c48f..0000000 --- a/dist/common/validator.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export declare function isFunction(val: unknown): val is Function; -export declare function isPlainObject( - val: unknown -): val is Record; -export declare function isPromise(val: unknown): val is Promise; -export declare function isDef(value: unknown): boolean; -export declare function isObj(x: unknown): x is Record; -export declare function isNumber(value: string): boolean; -export declare function isBoolean(value: unknown): value is boolean; -export declare function isImageUrl(url: string): boolean; -export declare function isVideoUrl(url: string): boolean; diff --git a/dist/common/validator.js b/dist/common/validator.js deleted file mode 100644 index a6d416c..0000000 --- a/dist/common/validator.js +++ /dev/null @@ -1,31 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/ban-types -export function isFunction(val) { - return typeof val === 'function'; -} -export function isPlainObject(val) { - return val !== null && typeof val === 'object' && !Array.isArray(val); -} -export function isPromise(val) { - return isPlainObject(val) && isFunction(val.then) && isFunction(val.catch); -} -export function isDef(value) { - return value !== undefined && value !== null; -} -export function isObj(x) { - const type = typeof x; - return x !== null && (type === 'object' || type === 'function'); -} -export function isNumber(value) { - return /^\d+(\.\d+)?$/.test(value); -} -export function isBoolean(value) { - return typeof value === 'boolean'; -} -const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; -const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv)/i; -export function isImageUrl(url) { - return IMAGE_REGEXP.test(url); -} -export function isVideoUrl(url) { - return VIDEO_REGEXP.test(url); -} diff --git a/dist/common/version.d.ts b/dist/common/version.d.ts deleted file mode 100644 index 988b226..0000000 --- a/dist/common/version.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare function canIUseModel(): boolean; -export declare function canIUseFormFieldButton(): boolean; -export declare function canIUseAnimate(): boolean; -export declare function canIUseGroupSetData(): boolean; -export declare function canIUseNextTick(): boolean; -export declare function canIUseCanvas2d(): boolean; -export declare function canIUseGetUserProfile(): boolean; diff --git a/dist/common/version.js b/dist/common/version.js deleted file mode 100644 index 6444d7b..0000000 --- a/dist/common/version.js +++ /dev/null @@ -1,48 +0,0 @@ -import { getSystemInfoSync } from './utils'; -function compareVersion(v1, v2) { - v1 = v1.split('.'); - v2 = v2.split('.'); - const len = Math.max(v1.length, v2.length); - while (v1.length < len) { - v1.push('0'); - } - while (v2.length < len) { - v2.push('0'); - } - for (let i = 0; i < len; i++) { - const num1 = parseInt(v1[i], 10); - const num2 = parseInt(v2[i], 10); - if (num1 > num2) { - return 1; - } - if (num1 < num2) { - return -1; - } - } - return 0; -} -function gte(version) { - const system = getSystemInfoSync(); - return compareVersion(system.SDKVersion, version) >= 0; -} -export function canIUseModel() { - return gte('2.9.3'); -} -export function canIUseFormFieldButton() { - return gte('2.10.3'); -} -export function canIUseAnimate() { - return gte('2.9.0'); -} -export function canIUseGroupSetData() { - return gte('2.4.0'); -} -export function canIUseNextTick() { - return wx.canIUse('nextTick'); -} -export function canIUseCanvas2d() { - return gte('2.9.0'); -} -export function canIUseGetUserProfile() { - return !!wx.getUserProfile; -} diff --git a/dist/helpers/arrayTreeFilter.js b/dist/helpers/arrayTreeFilter.js deleted file mode 100644 index 94736eb..0000000 --- a/dist/helpers/arrayTreeFilter.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * https://github.com/afc163/array-tree-filter - */ -function arrayTreeFilter(data, filterFn, options) { - options = options || {} - options.childrenKeyName = options.childrenKeyName || 'children' - let children = data || [] - const result = [] - let level = 0 - do { - const foundItem = children.filter(function(item) { - return filterFn(item, level) - })[0] - if (!foundItem) { - break - } - result.push(foundItem) - children = foundItem[options.childrenKeyName] || [] - level += 1 - } while (children.length > 0) - return result -} - -export default arrayTreeFilter \ No newline at end of file diff --git a/dist/helpers/baseComponent.js b/dist/helpers/baseComponent.js deleted file mode 100644 index 7c5d66d..0000000 --- a/dist/helpers/baseComponent.js +++ /dev/null @@ -1,77 +0,0 @@ -import computedBehavior from './computedBehavior' -import relationsBehavior from './relationsBehavior' -import safeAreaBehavior from './safeAreaBehavior' -import safeSetDataBehavior from './safeSetDataBehavior' -import funcBehavior from './funcBehavior' -import compareVersion from './compareVersion' - -const { platform, SDKVersion } = wx.getSystemInfoSync() -const libVersion = '2.6.6' - -// check SDKVersion -if (platform === 'devtools' && compareVersion(SDKVersion, libVersion) < 0) { - if (wx && wx.showModal) { - wx.showModal({ - title: '提示', - content: `当前基础库版本(${SDKVersion})过低,无法使用 Wux Weapp 组件库,请更新基础库版本 >=${libVersion} 后重试。`, - }) - } -} - -const baseComponent = (options = {}) => { - // add default externalClasses - options.externalClasses = [ - 'wux-class', - 'wux-hover-class', - ...(options.externalClasses = options.externalClasses || []), - ] - - // add default behaviors - options.behaviors = [ - relationsBehavior, - safeSetDataBehavior, - ...(options.behaviors = options.behaviors || []), - computedBehavior, // make sure it's triggered - ] - - // use safeArea - if (options.useSafeArea) { - options.behaviors = [...options.behaviors, safeAreaBehavior] - delete options.useSafeArea - } - - // use func - if (options.useFunc) { - options.behaviors = [...options.behaviors, funcBehavior] - delete options.useFunc - } - - // use field - if (options.useField) { - options.behaviors = [...options.behaviors, 'wx://form-field'] - delete options.useField - } - - // use export - if (options.useExport) { - options.behaviors = [...options.behaviors, 'wx://component-export'] - options.methods = { - export () { - return this - }, - ...options.methods, - } - delete options.useExport - } - - // add default options - options.options = { - multipleSlots: true, - addGlobalClass: true, - ...options.options, - } - - return Component(options) -} - -export default baseComponent diff --git a/dist/helpers/checkIPhoneX.js b/dist/helpers/checkIPhoneX.js deleted file mode 100644 index 5d65c52..0000000 --- a/dist/helpers/checkIPhoneX.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 获取系统信息 - */ - -let systemInfo = null - -export const getSystemInfo = (isForce) => { - if (!systemInfo || isForce) { - try { - systemInfo = wx.getSystemInfoSync() - } catch(e) { /* Ignore */ } - } - - return systemInfo -} - -// iPhoneX 竖屏安全区域 -export const safeAreaInset = { - top: 88, // StatusBar & NavBar - left: 0, - right: 0, - bottom: 34, // Home Indicator -} - -const isIPhoneX = ({ model, platform }) => { - return /iPhone X/.test(model) && platform === 'ios' -} - -export const checkIPhoneX = (isForce) => isIPhoneX(getSystemInfo(isForce)) diff --git a/dist/helpers/classNames.js b/dist/helpers/classNames.js deleted file mode 100644 index e2eb2d4..0000000 --- a/dist/helpers/classNames.js +++ /dev/null @@ -1,39 +0,0 @@ -/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/* global define */ -'use strict'; - -var hasOwn = {}.hasOwnProperty; - -function classNames() { - var classes = []; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg) && arg.length) { - var inner = classNames.apply(null, arg); - if (inner) { - classes.push(inner); - } - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } - } - - return classes.join(' '); -} - -export default classNames \ No newline at end of file diff --git a/dist/helpers/colors.js b/dist/helpers/colors.js deleted file mode 100644 index 0ffd500..0000000 --- a/dist/helpers/colors.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Don't modify this file! - * Colors generated by themes! - */ - -/* eslint-disable */ - -export const colors = { - 'light': '#ddd', - 'stable': '#b2b2b2', - 'positive': '#EBB672', - 'calm': '#11c1f3', - 'balanced': '#33cd5f', - 'energized': '#ffc900', - 'assertive': '#ef473a', - 'royal': '#886aea', - 'dark': '#444', -} - -export const isPresetColor = (color) => { - if (!color) { - return false - } - return colors[color] ? colors[color] : color -} - -/* eslint-enable */ diff --git a/dist/helpers/compareVersion.js b/dist/helpers/compareVersion.js deleted file mode 100644 index 47a2d59..0000000 --- a/dist/helpers/compareVersion.js +++ /dev/null @@ -1,27 +0,0 @@ -function compareVersion(v1, v2) { - const $v1 = v1.split('.') - const $v2 = v2.split('.') - const len = Math.max($v1.length, $v2.length) - - while ($v1.length < len) { - $v1.push('0') - } - while ($v2.length < len) { - $v2.push('0') - } - - for (let i = 0; i < len; i++) { - const num1 = parseInt($v1[i]) - const num2 = parseInt($v2[i]) - - if (num1 > num2) { - return 1 - } else if (num1 < num2) { - return -1 - } - } - - return 0 -} - -export default compareVersion diff --git a/dist/helpers/computedBehavior.js b/dist/helpers/computedBehavior.js deleted file mode 100644 index 8650193..0000000 --- a/dist/helpers/computedBehavior.js +++ /dev/null @@ -1,48 +0,0 @@ -import isEmpty from './isEmpty' -import shallowEqual from './shallowEqual' - -const ALL_DATA_KEY = '**' - -const trim = (str = '') => str.replace(/\s/g, '') - -export default Behavior({ - lifetimes: { - attached() { - this.initComputed() - }, - }, - definitionFilter(defFields) { - const { computed = {} } = defFields - const observers = Object.keys(computed).reduce((acc, name) => { - const [field, getter] = Array.isArray(computed[name]) ? computed[name] : [ALL_DATA_KEY, computed[name]] - return { - ...acc, - [field]: function(...args) { - if (typeof getter === 'function') { - const newValue = getter.apply(this, args) - const oldValue = this.data[name] - if (!isEmpty(newValue) && !shallowEqual(newValue, oldValue)) { - this.setData({ [name]: newValue }) - } - } - }, - } - }, {}) - - Object.assign(defFields.observers = (defFields.observers || {}), observers) - Object.assign(defFields.methods = (defFields.methods || {}), { - initComputed: function(data = {}, isForce = false) { - if (!this.runInitComputed || isForce) { - this.runInitComputed = false - const context = this - const result = { ...this.data, ...data } - Object.keys(observers).forEach((key) => { - const values = trim(key).split(',').reduce((acc, name) => ([...acc, result[name]]), []) - observers[key].apply(context, values) - }) - this.runInitComputed = true - } - }, - }) - }, -}) diff --git a/dist/helpers/createFieldsStore.js b/dist/helpers/createFieldsStore.js deleted file mode 100644 index 9dbb3ee..0000000 --- a/dist/helpers/createFieldsStore.js +++ /dev/null @@ -1,75 +0,0 @@ -class FieldsStore { - constructor(fields = {}) { - this.fields = fields - } - - setFields(fields) { - Object.assign(this.fields, fields) - } - - updateFields(fields) { - this.fields = fields - } - - clearField(name) { - delete this.fields[name] - } - - getValueFromFields(name, fields) { - const field = fields[name] - if (field && 'value' in field) { - return field.value - } - return field.initialValue - } - - getAllFieldsName() { - const { fields } = this - return fields ? Object.keys(fields) : [] - } - - getField(name) { - return { - ...this.fields[name], - name, - } - } - - getFieldValuePropValue(fieldOption) { - const { name, valuePropName } = fieldOption - const field = this.getField(name) - const fieldValue = 'value' in field ? field.value : field.initialValue - - return { - [valuePropName]: fieldValue, - } - } - - getFieldValue(name) { - return this.getValueFromFields(name, this.fields) - } - - getFieldsValue(names) { - const fields = names || this.getAllFieldsName() - return fields.reduce((acc, name) => { - acc[name] = this.getFieldValue(name) - return acc - }, {}) - } - - resetFields(ns) { - const { fields } = this - const names = ns || this.getAllFieldsName() - return names.reduce((acc, name) => { - const field = fields[name] - if (field) { - acc[name] = field.initialValue - } - return acc - }, {}) - } -} - -export default function createFieldsStore(fields) { - return new FieldsStore(fields) -} diff --git a/dist/helpers/debounce.js b/dist/helpers/debounce.js deleted file mode 100644 index 207e486..0000000 --- a/dist/helpers/debounce.js +++ /dev/null @@ -1,56 +0,0 @@ -export default function debounce(func, wait, immediate) { - let timeout, - args, - context, - timestamp, - result - - function later() { - const last = +(new Date()) - timestamp - if (last < wait && last >= 0) { - timeout = setTimeout(later, wait - last) - } else { - timeout = undefined - if (!immediate) { - result = func.apply(context, args) - if (!timeout) { - context = undefined - args = undefined - } - } - } - } - - function debounced() { - context = this - args = arguments - timestamp = +(new Date()) - - const callNow = immediate && !timeout - if (!timeout) { - timeout = setTimeout(later, wait) - } - - if (callNow) { - result = func.apply(context, args) - context = undefined - args = undefined - } - - return result - } - - function cancel() { - if (timeout !== undefined) { - clearTimeout(timeout) - timeout = undefined - } - - context = undefined - args = undefined - } - - debounced.cancel = cancel - - return debounced -} \ No newline at end of file diff --git a/dist/helpers/eventsMixin.js b/dist/helpers/eventsMixin.js deleted file mode 100644 index f690335..0000000 --- a/dist/helpers/eventsMixin.js +++ /dev/null @@ -1,53 +0,0 @@ -const defaultEvents = { - onChange() {}, -} - -export default function eventsMixin(params = { defaultEvents }) { - return Behavior({ - lifetimes: { - created () { - this._oriTriggerEvent = this.triggerEvent - this.triggerEvent = this._triggerEvent - }, - }, - properties: { - events: { - type: Object, - value: defaultEvents, - }, - }, - data: { - inputEvents: defaultEvents, - }, - definitionFilter(defFields) { - // set default data - Object.assign(defFields.data = (defFields.data || {}), { - inputEvents: Object.assign({}, defaultEvents, defFields.inputEvents), - }) - - // set default methods - Object.assign(defFields.methods = (defFields.methods || {}), { - _triggerEvent(name, params, runCallbacks = true, option) { - const { inputEvents } = this.data - const method = `on${name[0].toUpperCase()}${name.slice(1)}` - const func = inputEvents[method] - - if (runCallbacks && typeof func === 'function') { - func.call(this, params) - } - - this._oriTriggerEvent(name, params, option) - }, - }) - - // set default observers - Object.assign(defFields.observers = (defFields.observers || {}), { - events(newVal) { - this.setData({ - inputEvents: Object.assign({}, defaultEvents, this.data.inputEvents, newVal), - }) - }, - }) - }, - }) -} diff --git a/dist/helpers/funcBehavior.js b/dist/helpers/funcBehavior.js deleted file mode 100644 index 948075c..0000000 --- a/dist/helpers/funcBehavior.js +++ /dev/null @@ -1,97 +0,0 @@ -/** - * 过滤对象的函数属性 - * @param {Object} opts - */ -const mergeOptionsToData = (opts = {}) => { - const options = Object.assign({}, opts) - - for (const key in options) { - if (options.hasOwnProperty(key) && typeof options[key] === 'function') { - delete options[key] - } - } - - return options -} - -/** - * Simple bind, faster than native - * - * @param {Function} fn - * @param {Object} ctx - * @return {Function} - */ -const bind = (fn, ctx) => { - return (...args) => { - return args.length ? fn.apply(ctx, args) : fn.call(ctx) - } -} - -/** - * Object assign - */ -const assign = (...args) => Object.assign({}, ...args) - -export default Behavior({ - definitionFilter(defFields) { - defFields.data = mergeOptionsToData(defFields.data) - defFields.data.in = false - defFields.data.visible = false - }, - methods: { - /** - * 过滤对象的函数属性 - * @param {Object} opts - */ - $$mergeOptionsToData: mergeOptionsToData, - /** - * 合并参数并绑定方法 - * - * @param {Object} opts 参数对象 - * @param {Object} fns 方法挂载的属性 - */ - $$mergeOptionsAndBindMethods (opts = {}, fns = this.fns) { - const options = Object.assign({}, opts) - - for (const key in options) { - if (options.hasOwnProperty(key) && typeof options[key] === 'function') { - fns[key] = bind(options[key], this) - delete options[key] - } - } - - return options - }, - /** - * Promise setData - * @param {Array} args 参数对象 - */ - $$setData (...args) { - const params = assign({}, ...args) - - return new Promise((resolve) => { - this.setData(params, resolve) - }) - }, - /** - * 延迟指定时间执行回调函数 - * @param {Function} callback 回调函数 - * @param {Number} timeout 延迟时间 - */ - $$requestAnimationFrame (callback = () => {}, timeout = 1000 / 60) { - return new Promise((resolve) => setTimeout(resolve, timeout)).then(callback) - }, - }, - /** - * 组件生命周期函数,在组件实例进入页面节点树时执行 - */ - created () { - this.fns = {} - }, - /** - * 组件生命周期函数,在组件实例被从页面节点树移除时执行 - */ - detached () { - this.fns = {} - }, -}) diff --git a/dist/helpers/gestures.js b/dist/helpers/gestures.js deleted file mode 100644 index 99a4a40..0000000 --- a/dist/helpers/gestures.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * 获取触摸点位置信息 - */ -export const getTouchPoints = (nativeEvent, index = 0) => { - const touches = nativeEvent.touches - const changedTouches = nativeEvent.changedTouches - const hasTouches = touches && touches.length > 0 - const hasChangedTouches = changedTouches && changedTouches.length > 0 - const points = !hasTouches && hasChangedTouches ? changedTouches[index] : hasTouches ? touches[index] : nativeEvent - - return { - x: points.pageX, - y: points.pageY, - } -} - -/** - * 获取触摸点个数 - */ -export const getPointsNumber = (e) => e.touches && e.touches.length || e.changedTouches && e.changedTouches.length - -/** - * 判断是否为同一点 - */ -export const isEqualPoints = (p1, p2) => p1.x === p2.x && p1.y === p2.y - -/** - * 判断是否为相近的两点 - */ -export const isNearbyPoints = (p1, p2, DOUBLE_TAP_RADIUS = 25) => { - const xMove = Math.abs(p1.x - p2.x) - const yMove = Math.abs(p1.y - p2.y) - return xMove < DOUBLE_TAP_RADIUS & yMove < DOUBLE_TAP_RADIUS -} - -/** - * 获取两点之间的距离 - */ -export const getPointsDistance = (p1, p2) => { - const xMove = Math.abs(p1.x - p2.x) - const yMove = Math.abs(p1.y - p2.y) - return Math.sqrt(xMove * xMove + yMove * yMove) -} - -/** - * 获取触摸移动方向 - */ -export const getSwipeDirection = (x1, x2, y1, y2) => { - return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down') -} diff --git a/dist/helpers/isEmpty.js b/dist/helpers/isEmpty.js deleted file mode 100644 index 56fc4f8..0000000 --- a/dist/helpers/isEmpty.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Checks if a value is empty. - */ -function isEmpty(value) { - if (Array.isArray(value)) { - return value.length === 0 - } else if (typeof value === 'object') { - if (value) { - for (const _ in value) { - return false - } - } - return true - } else { - return !value - } -} - -export default isEmpty \ No newline at end of file diff --git a/dist/helpers/mergeOptionsToData.js b/dist/helpers/mergeOptionsToData.js deleted file mode 100644 index 47f5acc..0000000 --- a/dist/helpers/mergeOptionsToData.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 过滤对象的函数属性 - * @param {Object} opts - */ -const mergeOptionsToData = (opts = {}) => { - const options = Object.assign({}, opts) - - for (const key in options) { - if (options.hasOwnProperty(key) && typeof options[key] === 'function') { - delete options[key] - } - } - - return options -} - -export default mergeOptionsToData diff --git a/dist/helpers/popupMixin.js b/dist/helpers/popupMixin.js deleted file mode 100644 index fd1d17f..0000000 --- a/dist/helpers/popupMixin.js +++ /dev/null @@ -1,314 +0,0 @@ -import classNames from './classNames' -import eventsMixin from './eventsMixin' - -const DEFAULT_TRIGGER = 'onClick' -const CELL_NAME = '../cell/index' -const FIELD_NAME = '../field/index' - -const defaultToolbar = { - title: '请选择', - cancelText: '取消', - confirmText: '确定', -} - -const defaultEvents = { - onChange() {}, - onConfirm() {}, - onCancel() {}, - onVisibleChange() {}, - onValueChange() {}, -} - -const defaultPlatformProps = { - labelPropName: 'label', - format(values, props) { - return Array.isArray(values.displayValue) ? values.displayValue.join(',') : values.displayValue - }, -} - -const defaultFieldNames = { - label: 'label', - value: 'value', - children: 'children', -} - -export default function popupMixin(selector = '#wux-picker', platformProps = defaultPlatformProps) { - return Behavior({ - behaviors: [eventsMixin({ defaultEvents })], - properties: { - toolbar: { - type: Object, - value: defaultToolbar, - }, - trigger: { - type: String, - value: DEFAULT_TRIGGER, - }, - defaultVisible: { - type: Boolean, - value: false, - }, - visible: { - type: Boolean, - value: false, - }, - controlled: { - type: Boolean, - value: false, - }, - disabled: { - type: Boolean, - value: false, - }, - }, - data: { - mounted: false, - popupVisible: false, - inputValue: [], - }, - methods: { - /** - * 设置组件显示或隐藏 - */ - setVisibleState(popupVisible, callback = () => {}) { - if (this.data.popupVisible !== popupVisible) { - const params = { - mounted: true, - inputValue: this.data.value, // forceUpdate - popupVisible, - } - this.setData(popupVisible ? params : { popupVisible }, () => { - // collect field component & forceUpdate - if (popupVisible && this.hasFieldDecorator) { - const field = this.getFieldElem() - if (field) { - field.changeValue(field.data.value) - } - } - callback() - }) - } - }, - /** - * 触发 visibleChange 事件 - */ - fireVisibleChange(popupVisible) { - if (this.data.popupVisible !== popupVisible) { - if (!this.data.controlled) { - this.setVisibleState(popupVisible) - } - this.setScrollValue(undefined) - this.triggerEvent('visibleChange', { visible: popupVisible }) - } - }, - /** - * 打开 - */ - open() { - this.fireVisibleChange(true) - }, - /** - * 关闭 - */ - close(callback) { - if (typeof callback === 'function') { - const values = this.getPickerValue(this.scrollValue || this.data.inputValue) - callback.call(this, this.formatPickerValue(values)) - } - this.fireVisibleChange(false) - }, - /** - * 组件关闭时重置其内部数据 - */ - onClosed() { - this.picker = null - this.setData({ mounted: false, inputValue: null }) - }, - /** - * 点击确定按钮时的回调函数 - */ - onConfirm() { - this.close((values) => { - this.triggerEvent('change', values) // collect field component - this.triggerEvent('confirm', values) - }) - }, - /** - * 点击取消按钮时的回调函数 - */ - onCancel() { - this.close((values) => this.triggerEvent('cancel', values)) - }, - /** - * 每列数据选择变化后的回调函数 - */ - onValueChange(e) { - if (!this.data.mounted) return - const { value } = e.detail - if (this.data.cascade) { - this.setCasecadeScrollValue(value) - } else { - this.setScrollValue(value) - } - - this.updated(value, true) - this.triggerEvent('valueChange', this.formatPickerValue(e.detail)) - }, - /** - * 获取当前 picker 的值 - */ - getPickerValue(value = this.data.inputValue) { - this.picker = this.picker || this.selectComponent(selector) - return this.picker && this.picker.getValue(value) - }, - /** - * 格式化 picker 返回值 - */ - formatPickerValue(values) { - return { - ...values, - [platformProps.labelPropName]: platformProps.format(values, this.data), - } - }, - /** - * 获取 field 父元素 - */ - getFieldElem() { - return this.field = (this.field || this.getRelationNodes(FIELD_NAME)[0]) - }, - /** - * 设置子元素 props - */ - setChildProps() { - if (this.data.disabled) return - const elements = this.getRelationNodes(CELL_NAME) - const { trigger = DEFAULT_TRIGGER } = this.data - if (elements.length > 0) { - elements.forEach((inputElem) => { - const { inputEvents } = inputElem.data - const oriInputEvents = inputElem.data.oriInputEvents || { ...inputEvents } - inputEvents[trigger] = (...args) => { - if (oriInputEvents && oriInputEvents[trigger]) { - oriInputEvents[trigger](...args) - } - this.onTriggerClick() - } - inputElem.setData({ oriInputEvents, inputEvents }) - }) - } - }, - /** - * 触发事件 - */ - onTriggerClick() { - this.fireVisibleChange(!this.data.popupVisible) - }, - /** - * 阻止移动触摸 - */ - noop() {}, - /** - * 更新值 - */ - updated(inputValue, isForce) { - if (!this.hasFieldDecorator || isForce) { - if (this.data.inputValue !== inputValue) { - this.setData({ inputValue }) - } - } - }, - /** - * 记录每列数据的变化值 - */ - setScrollValue(value) { - this.scrollValue = value - }, - /** - * 记录每列数据的变化值 - 针对于级联 - */ - setCasecadeScrollValue(value) { - if (value && this.scrollValue) { - const length = this.scrollValue.length - if (length === value.length && this.scrollValue[length - 1] === value[length - 1]) { - return - } - } - this.setScrollValue(value) - }, - }, - lifetimes: { - ready() { - const { defaultVisible, visible, controlled, value } = this.data - const popupVisible = controlled ? visible : defaultVisible - - // 若 defaultFieldNames 存在,则缓存之,并传递给子组件,只生效一次 - if ('defaultFieldNames' in this.data) { - this.setData({ - fieldNames: Object.assign({}, defaultFieldNames, this.data.defaultFieldNames), - }) - } - - this.mounted = true - this.scrollValue = undefined - this.setVisibleState(popupVisible) - this.setChildProps() - }, - detached() { - this.mounted = false - }, - }, - definitionFilter(defFields) { - // set default child - Object.assign(defFields.relations = (defFields.relations || {}), { - [CELL_NAME]: { - type: 'child', - observer() { - this.setChildProps() - }, - }, - [FIELD_NAME]: { - type: 'ancestor', - }, - }) - - // set default classes - Object.assign(defFields.computed = (defFields.computed || {}), { - classes: ['prefixCls', function(prefixCls) { - const wrap = classNames(prefixCls) - const toolbar = `${prefixCls}__toolbar` - const inner = `${prefixCls}__inner` - const cancel = classNames(`${prefixCls}__button`, { - [`${prefixCls}__button--cancel`]: true, - }) - const confirm = classNames(`${prefixCls}__button`, { - [`${prefixCls}__button--confirm`]: true, - }) - const hover = `${prefixCls}__button--hover` - const title = `${prefixCls}__title` - - return { - wrap, - toolbar, - inner, - cancel, - confirm, - hover, - title, - } - }], - }) - - // set default observers - Object.assign(defFields.observers = (defFields.observers || {}), { - visible(popupVisible) { - if (this.data.controlled) { - this.setVisibleState(popupVisible) - } - }, - value(value) { - this.updated(value) - }, - }) - }, - }) -} diff --git a/dist/helpers/relationsBehavior.js b/dist/helpers/relationsBehavior.js deleted file mode 100644 index 2f05c35..0000000 --- a/dist/helpers/relationsBehavior.js +++ /dev/null @@ -1,67 +0,0 @@ -import isEmpty from './isEmpty' -import debounce from './debounce' - -/** - * bind func to obj - */ -function bindFunc(obj, method, observer) { - const oldFn = obj[method] - obj[method] = function(target) { - if (observer) { - observer.call(this, target, { - [method]: true, - }) - } - if (oldFn) { - oldFn.call(this, target) - } - } -} - -// default methods -const methods = ['linked', 'linkChanged', 'unlinked'] - -// extra props -const extProps = ['observer'] - -export default Behavior({ - lifetimes: { - created() { - this._debounce = null - }, - detached() { - if (this._debounce && this._debounce.cancel) { - this._debounce.cancel() - } - }, - }, - definitionFilter(defFields) { - const { relations } = defFields - - if (!isEmpty(relations)) { - for (const key in relations) { - const relation = relations[key] - - // bind func - methods.forEach((method) => bindFunc(relation, method, relation.observer)) - - // delete extProps - extProps.forEach((prop) => delete relation[prop]) - } - } - - Object.assign(defFields.methods = (defFields.methods || {}), { - getRelationsName: function(types = ['parent', 'child', 'ancestor', 'descendant']) { - return Object.keys(relations || {}).map((key) => { - if (relations[key] && types.includes(relations[key].type)) { - return key - } - return null - }).filter((v) => !!v) - }, - debounce: function(func, wait = 0, immediate = false) { - return (this._debounce = this._debounce || debounce(func.bind(this), wait, immediate)).call(this) - }, - }) - }, -}) diff --git a/dist/helpers/safeAreaBehavior.js b/dist/helpers/safeAreaBehavior.js deleted file mode 100644 index c81fad0..0000000 --- a/dist/helpers/safeAreaBehavior.js +++ /dev/null @@ -1,46 +0,0 @@ -import { getSystemInfo, checkIPhoneX } from './checkIPhoneX' - -const defaultSafeArea = { - top: false, - bottom: false, -} - -const setSafeArea = (params) => { - if (typeof params === 'boolean') { - return Object.assign({}, defaultSafeArea, { - top: params, - bottom: params, - }) - } else if (params !== null && typeof params === 'object') { - return Object.assign({}, defaultSafeArea) - } else if (typeof params === 'string') { - return Object.assign({}, defaultSafeArea, { - [params]: true, - }) - } - return defaultSafeArea -} - -export default Behavior({ - properties: { - safeArea: { - type: [Boolean, String, Object], - value: false, - }, - }, - observers: { - safeArea(newVal) { - this.setData({ safeAreaConfig: setSafeArea(newVal) }) - }, - }, - definitionFilter(defFields) { - const { statusBarHeight } = getSystemInfo() || {} - const isIPhoneX = checkIPhoneX() - - Object.assign(defFields.data = (defFields.data || {}), { - safeAreaConfig: defaultSafeArea, - statusBarHeight, - isIPhoneX, - }) - }, -}) diff --git a/dist/helpers/safeSetDataBehavior.js b/dist/helpers/safeSetDataBehavior.js deleted file mode 100644 index f00f0ae..0000000 --- a/dist/helpers/safeSetDataBehavior.js +++ /dev/null @@ -1,57 +0,0 @@ -export default Behavior({ - lifetimes: { - created() { - this.nextCallback = null - }, - detached() { - this.cancelNextCallback() - }, - }, - methods: { - /** - * safeSetData - * @param {Object} nextData 数据对象 - * @param {Function} callback 回调函数 - */ - safeSetData(nextData, callback) { - this.pendingData = Object.assign({}, this.data, nextData) - callback = this.setNextCallback(callback) - - this.setData(nextData, () => { - this.pendingData = null - callback() - }) - }, - /** - * 设置下一回调函数 - * @param {Function} callback 回调函数 - */ - setNextCallback(callback) { - let active = true - - this.nextCallback = (event) => { - if (active) { - active = false - this.nextCallback = null - - callback.call(this, event) - } - } - - this.nextCallback.cancel = () => { - active = false - } - - return this.nextCallback - }, - /** - * 取消下一回调函数 - */ - cancelNextCallback() { - if (this.nextCallback !== null) { - this.nextCallback.cancel() - this.nextCallback = null - } - }, - }, -}) \ No newline at end of file diff --git a/dist/helpers/shallowEqual.js b/dist/helpers/shallowEqual.js deleted file mode 100644 index 8aece72..0000000 --- a/dist/helpers/shallowEqual.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @typechecks - * - */ - -/*eslint-disable no-self-compare */ - -'use strict'; - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ -function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - // Added the nonzero y check to make Flow happy, but it is redundant - return x !== 0 || y !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } -} - -/** - * Performs equality by iterating through keys on an object and returning false - * when any key has values which are not strictly equal between the arguments. - * Returns true when the values of all keys are strictly equal. - */ -function shallowEqual(objA, objB) { - if (is(objA, objB)) { - return true; - } - - if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { - return false; - } - - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - - if (keysA.length !== keysB.length) { - return false; - } - - // Test for A's keys different from B. - for (var i = 0; i < keysA.length; i++) { - if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { - return false; - } - } - - return true; -} - -export default shallowEqual \ No newline at end of file diff --git a/dist/helpers/styleToCssString.js b/dist/helpers/styleToCssString.js deleted file mode 100644 index 1665cf7..0000000 --- a/dist/helpers/styleToCssString.js +++ /dev/null @@ -1,138 +0,0 @@ -'use strict'; - -/** - * CSS properties which accept numbers but are not in units of "px". - */ -var isUnitlessNumber = { - boxFlex: true, - boxFlexGroup: true, - columnCount: true, - flex: true, - flexGrow: true, - flexPositive: true, - flexShrink: true, - flexNegative: true, - fontWeight: true, - lineClamp: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - widows: true, - zIndex: true, - zoom: true, - - // SVG-related properties - fillOpacity: true, - strokeDashoffset: true, - strokeOpacity: true, - strokeWidth: true -}; - -/** - * @param {string} prefix vendor-specific prefix, eg: Webkit - * @param {string} key style name, eg: transitionDuration - * @return {string} style name prefixed with `prefix`, properly camelCased, eg: - * WebkitTransitionDuration - */ -function prefixKey(prefix, key) { - return prefix + key.charAt(0).toUpperCase() + key.substring(1); -} - -/** - * Support style names that may come passed in prefixed by adding permutations - * of vendor prefixes. - */ -var prefixes = ['Webkit', 'ms', 'Moz', 'O']; - -// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an -// infinite loop, because it iterates over the newly added props too. -Object.keys(isUnitlessNumber).forEach(function(prop) { - prefixes.forEach(function(prefix) { - isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; - }); -}); - -var msPattern = /^ms-/; - -var _uppercasePattern = /([A-Z])/g; - -/** - * Hyphenates a camelcased string, for example: - * - * > hyphenate('backgroundColor') - * < "background-color" - * - * For CSS style names, use `hyphenateStyleName` instead which works properly - * with all vendor prefixes, including `ms`. - * - * @param {string} string - * @return {string} - */ -function hyphenate(string) { - return string.replace(_uppercasePattern, '-$1').toLowerCase(); -} - -/** - * Hyphenates a camelcased CSS property name, for example: - * - * > hyphenateStyleName('backgroundColor') - * < "background-color" - * > hyphenateStyleName('MozTransition') - * < "-moz-transition" - * > hyphenateStyleName('msTransition') - * < "-ms-transition" - * - * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix - * is converted to `-ms-`. - * - * @param {string} string - * @return {string} - */ -function hyphenateStyleName(string) { - return hyphenate(string).replace(msPattern, '-ms-'); -} - -var isArray = Array.isArray; -var keys = Object.keys; - -var counter = 1; -// Follows syntax at https://developer.mozilla.org/en-US/docs/Web/CSS/content, -// including multiple space separated values. -var unquotedContentValueRegex = /^(normal|none|(\b(url\([^)]*\)|chapter_counter|attr\([^)]*\)|(no-)?(open|close)-quote|inherit)((\b\s*)|$|\s+))+)$/; - -function buildRule(key, value) { - if (!isUnitlessNumber[key] && typeof value === 'number') { - value = '' + value + 'px'; - } else if (key === 'content' && !unquotedContentValueRegex.test(value)) { - value = "'" + value.replace(/'/g, "\\'") + "'"; - } - - return hyphenateStyleName(key) + ': ' + value + '; '; -} - -function styleToCssString(rules) { - var result = '' - if (typeof rules === 'string') { - return rules - } - if (!rules || keys(rules).length === 0) { - return result; - } - var styleKeys = keys(rules); - for (var j = 0, l = styleKeys.length; j < l; j++) { - var styleKey = styleKeys[j]; - var value = rules[styleKey]; - - if (isArray(value)) { - for (var i = 0, len = value.length; i < len; i++) { - result += buildRule(styleKey, value[i]); - } - } else { - result += buildRule(styleKey, value); - } - } - return result; -} - -export default styleToCssString \ No newline at end of file diff --git a/dist/icon/index.d.ts b/dist/icon/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/icon/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/icon/index.js b/dist/icon/index.js deleted file mode 100644 index 75f2c94..0000000 --- a/dist/icon/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import { VantComponent } from '../common/component'; -VantComponent({ - props: { - dot: Boolean, - info: null, - size: null, - color: String, - customStyle: String, - classPrefix: { - type: String, - value: 'van-icon', - }, - name: String, - }, - methods: { - onClick() { - this.$emit('click'); - }, - }, -}); diff --git a/dist/icon/index.json b/dist/icon/index.json deleted file mode 100644 index bf0ebe0..0000000 --- a/dist/icon/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "component": true, - "usingComponents": { - "van-info": "../info/index" - } -} diff --git a/dist/icon/index.wxml b/dist/icon/index.wxml deleted file mode 100644 index 3c70174..0000000 --- a/dist/icon/index.wxml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/dist/icon/index.wxs b/dist/icon/index.wxs deleted file mode 100644 index 45e3aa0..0000000 --- a/dist/icon/index.wxs +++ /dev/null @@ -1,39 +0,0 @@ -/* eslint-disable */ -var style = require('../wxs/style.wxs'); -var addUnit = require('../wxs/add-unit.wxs'); - -function isImage(name) { - return name.indexOf('/') !== -1; -} - -function rootClass(data) { - var classes = ['custom-class']; - - if (data.classPrefix != null) { - classes.push(data.classPrefix); - } - - if (isImage(data.name)) { - classes.push('van-icon--image'); - } else if (data.classPrefix != null) { - classes.push(data.classPrefix + '-' + data.name); - } - - return classes.join(' '); -} - -function rootStyle(data) { - return style([ - { - color: data.color, - 'font-size': addUnit(data.size), - }, - data.customStyle, - ]); -} - -module.exports = { - isImage: isImage, - rootClass: rootClass, - rootStyle: rootStyle, -}; diff --git a/dist/icon/index.wxss b/dist/icon/index.wxss deleted file mode 100644 index a9085c8..0000000 --- a/dist/icon/index.wxss +++ /dev/null @@ -1 +0,0 @@ -@import '../common/index.wxss';.van-icon{position:relative;font:normal normal normal 14px/1 vant-icon;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon,.van-icon:before{display:inline-block}.van-icon-exchange:before{content:"\e6af"}.van-icon-eye:before{content:"\e6b0"}.van-icon-enlarge:before{content:"\e6b1"}.van-icon-expand-o:before{content:"\e6b2"}.van-icon-eye-o:before{content:"\e6b3"}.van-icon-expand:before{content:"\e6b4"}.van-icon-filter-o:before{content:"\e6b5"}.van-icon-fire:before{content:"\e6b6"}.van-icon-fail:before{content:"\e6b7"}.van-icon-failure:before{content:"\e6b8"}.van-icon-fire-o:before{content:"\e6b9"}.van-icon-flag-o:before{content:"\e6ba"}.van-icon-font:before{content:"\e6bb"}.van-icon-font-o:before{content:"\e6bc"}.van-icon-gem-o:before{content:"\e6bd"}.van-icon-flower-o:before{content:"\e6be"}.van-icon-gem:before{content:"\e6bf"}.van-icon-gift-card:before{content:"\e6c0"}.van-icon-friends:before{content:"\e6c1"}.van-icon-friends-o:before{content:"\e6c2"}.van-icon-gold-coin:before{content:"\e6c3"}.van-icon-gold-coin-o:before{content:"\e6c4"}.van-icon-good-job-o:before{content:"\e6c5"}.van-icon-gift:before{content:"\e6c6"}.van-icon-gift-o:before{content:"\e6c7"}.van-icon-gift-card-o:before{content:"\e6c8"}.van-icon-good-job:before{content:"\e6c9"}.van-icon-home-o:before{content:"\e6ca"}.van-icon-goods-collect:before{content:"\e6cb"}.van-icon-graphic:before{content:"\e6cc"}.van-icon-goods-collect-o:before{content:"\e6cd"}.van-icon-hot-o:before{content:"\e6ce"}.van-icon-info:before{content:"\e6cf"}.van-icon-hotel-o:before{content:"\e6d0"}.van-icon-info-o:before{content:"\e6d1"}.van-icon-hot-sale-o:before{content:"\e6d2"}.van-icon-hot:before{content:"\e6d3"}.van-icon-like:before{content:"\e6d4"}.van-icon-idcard:before{content:"\e6d5"}.van-icon-invition:before{content:"\e6d6"}.van-icon-like-o:before{content:"\e6d7"}.van-icon-hot-sale:before{content:"\e6d8"}.van-icon-location-o:before{content:"\e6d9"}.van-icon-location:before{content:"\e6da"}.van-icon-label:before{content:"\e6db"}.van-icon-lock:before{content:"\e6dc"}.van-icon-label-o:before{content:"\e6dd"}.van-icon-map-marked:before{content:"\e6de"}.van-icon-logistics:before{content:"\e6df"}.van-icon-manager:before{content:"\e6e0"}.van-icon-more:before{content:"\e6e1"}.van-icon-live:before{content:"\e6e2"}.van-icon-manager-o:before{content:"\e6e3"}.van-icon-medal:before{content:"\e6e4"}.van-icon-more-o:before{content:"\e6e5"}.van-icon-music-o:before{content:"\e6e6"}.van-icon-music:before{content:"\e6e7"}.van-icon-new-arrival-o:before{content:"\e6e8"}.van-icon-medal-o:before{content:"\e6e9"}.van-icon-new-o:before{content:"\e6ea"}.van-icon-free-postage:before{content:"\e6eb"}.van-icon-newspaper-o:before{content:"\e6ec"}.van-icon-new-arrival:before{content:"\e6ed"}.van-icon-minus:before{content:"\e6ee"}.van-icon-orders-o:before{content:"\e6ef"}.van-icon-new:before{content:"\e6f0"}.van-icon-paid:before{content:"\e6f1"}.van-icon-notes-o:before{content:"\e6f2"}.van-icon-other-pay:before{content:"\e6f3"}.van-icon-pause-circle:before{content:"\e6f4"}.van-icon-pause:before{content:"\e6f5"}.van-icon-pause-circle-o:before{content:"\e6f6"}.van-icon-peer-pay:before{content:"\e6f7"}.van-icon-pending-payment:before{content:"\e6f8"}.van-icon-passed:before{content:"\e6f9"}.van-icon-plus:before{content:"\e6fa"}.van-icon-phone-circle-o:before{content:"\e6fb"}.van-icon-phone-o:before{content:"\e6fc"}.van-icon-printer:before{content:"\e6fd"}.van-icon-photo-fail:before{content:"\e6fe"}.van-icon-phone:before{content:"\e6ff"}.van-icon-photo-o:before{content:"\e700"}.van-icon-play-circle:before{content:"\e701"}.van-icon-play:before{content:"\e702"}.van-icon-phone-circle:before{content:"\e703"}.van-icon-point-gift-o:before{content:"\e704"}.van-icon-point-gift:before{content:"\e705"}.van-icon-play-circle-o:before{content:"\e706"}.van-icon-shrink:before{content:"\e707"}.van-icon-photo:before{content:"\e708"}.van-icon-qr:before{content:"\e709"}.van-icon-qr-invalid:before{content:"\e70a"}.van-icon-question-o:before{content:"\e70b"}.van-icon-revoke:before{content:"\e70c"}.van-icon-replay:before{content:"\e70d"}.van-icon-service:before{content:"\e70e"}.van-icon-question:before{content:"\e70f"}.van-icon-search:before{content:"\e710"}.van-icon-refund-o:before{content:"\e711"}.van-icon-service-o:before{content:"\e712"}.van-icon-scan:before{content:"\e713"}.van-icon-share:before{content:"\e714"}.van-icon-send-gift-o:before{content:"\e715"}.van-icon-share-o:before{content:"\e716"}.van-icon-setting:before{content:"\e717"}.van-icon-points:before{content:"\e718"}.van-icon-photograph:before{content:"\e719"}.van-icon-shop:before{content:"\e71a"}.van-icon-shop-o:before{content:"\e71b"}.van-icon-shop-collect-o:before{content:"\e71c"}.van-icon-shop-collect:before{content:"\e71d"}.van-icon-smile:before{content:"\e71e"}.van-icon-shopping-cart-o:before{content:"\e71f"}.van-icon-sign:before{content:"\e720"}.van-icon-sort:before{content:"\e721"}.van-icon-star-o:before{content:"\e722"}.van-icon-smile-comment-o:before{content:"\e723"}.van-icon-stop:before{content:"\e724"}.van-icon-stop-circle-o:before{content:"\e725"}.van-icon-smile-o:before{content:"\e726"}.van-icon-star:before{content:"\e727"}.van-icon-success:before{content:"\e728"}.van-icon-stop-circle:before{content:"\e729"}.van-icon-records:before{content:"\e72a"}.van-icon-shopping-cart:before{content:"\e72b"}.van-icon-tosend:before{content:"\e72c"}.van-icon-todo-list:before{content:"\e72d"}.van-icon-thumb-circle-o:before{content:"\e72e"}.van-icon-thumb-circle:before{content:"\e72f"}.van-icon-umbrella-circle:before{content:"\e730"}.van-icon-underway:before{content:"\e731"}.van-icon-upgrade:before{content:"\e732"}.van-icon-todo-list-o:before{content:"\e733"}.van-icon-tv-o:before{content:"\e734"}.van-icon-underway-o:before{content:"\e735"}.van-icon-user-o:before{content:"\e736"}.van-icon-vip-card-o:before{content:"\e737"}.van-icon-vip-card:before{content:"\e738"}.van-icon-send-gift:before{content:"\e739"}.van-icon-wap-home:before{content:"\e73a"}.van-icon-wap-nav:before{content:"\e73b"}.van-icon-volume-o:before{content:"\e73c"}.van-icon-video:before{content:"\e73d"}.van-icon-wap-home-o:before{content:"\e73e"}.van-icon-volume:before{content:"\e73f"}.van-icon-warning:before{content:"\e740"}.van-icon-weapp-nav:before{content:"\e741"}.van-icon-wechat-pay:before{content:"\e742"}.van-icon-warning-o:before{content:"\e743"}.van-icon-wechat:before{content:"\e744"}.van-icon-setting-o:before{content:"\e745"}.van-icon-youzan-shield:before{content:"\e746"}.van-icon-warn-o:before{content:"\e747"}.van-icon-smile-comment:before{content:"\e748"}.van-icon-user-circle-o:before{content:"\e749"}.van-icon-video-o:before{content:"\e74a"}.van-icon-add-square:before{content:"\e65c"}.van-icon-add:before{content:"\e65d"}.van-icon-arrow-down:before{content:"\e65e"}.van-icon-arrow-up:before{content:"\e65f"}.van-icon-arrow:before{content:"\e660"}.van-icon-after-sale:before{content:"\e661"}.van-icon-add-o:before{content:"\e662"}.van-icon-alipay:before{content:"\e663"}.van-icon-ascending:before{content:"\e664"}.van-icon-apps-o:before{content:"\e665"}.van-icon-aim:before{content:"\e666"}.van-icon-award:before{content:"\e667"}.van-icon-arrow-left:before{content:"\e668"}.van-icon-award-o:before{content:"\e669"}.van-icon-audio:before{content:"\e66a"}.van-icon-bag-o:before{content:"\e66b"}.van-icon-balance-list:before{content:"\e66c"}.van-icon-back-top:before{content:"\e66d"}.van-icon-bag:before{content:"\e66e"}.van-icon-balance-pay:before{content:"\e66f"}.van-icon-balance-o:before{content:"\e670"}.van-icon-bar-chart-o:before{content:"\e671"}.van-icon-bars:before{content:"\e672"}.van-icon-balance-list-o:before{content:"\e673"}.van-icon-birthday-cake-o:before{content:"\e674"}.van-icon-bookmark:before{content:"\e675"}.van-icon-bill:before{content:"\e676"}.van-icon-bell:before{content:"\e677"}.van-icon-browsing-history-o:before{content:"\e678"}.van-icon-browsing-history:before{content:"\e679"}.van-icon-bookmark-o:before{content:"\e67a"}.van-icon-bulb-o:before{content:"\e67b"}.van-icon-bullhorn-o:before{content:"\e67c"}.van-icon-bill-o:before{content:"\e67d"}.van-icon-calendar-o:before{content:"\e67e"}.van-icon-brush-o:before{content:"\e67f"}.van-icon-card:before{content:"\e680"}.van-icon-cart-o:before{content:"\e681"}.van-icon-cart-circle:before{content:"\e682"}.van-icon-cart-circle-o:before{content:"\e683"}.van-icon-cart:before{content:"\e684"}.van-icon-cash-on-deliver:before{content:"\e685"}.van-icon-cash-back-record:before{content:"\e686"}.van-icon-cashier-o:before{content:"\e687"}.van-icon-chart-trending-o:before{content:"\e688"}.van-icon-certificate:before{content:"\e689"}.van-icon-chat:before{content:"\e68a"}.van-icon-clear:before{content:"\e68b"}.van-icon-chat-o:before{content:"\e68c"}.van-icon-checked:before{content:"\e68d"}.van-icon-clock:before{content:"\e68e"}.van-icon-clock-o:before{content:"\e68f"}.van-icon-close:before{content:"\e690"}.van-icon-closed-eye:before{content:"\e691"}.van-icon-circle:before{content:"\e692"}.van-icon-cluster-o:before{content:"\e693"}.van-icon-column:before{content:"\e694"}.van-icon-comment-circle-o:before{content:"\e695"}.van-icon-cluster:before{content:"\e696"}.van-icon-comment:before{content:"\e697"}.van-icon-comment-o:before{content:"\e698"}.van-icon-comment-circle:before{content:"\e699"}.van-icon-completed:before{content:"\e69a"}.van-icon-credit-pay:before{content:"\e69b"}.van-icon-coupon:before{content:"\e69c"}.van-icon-debit-pay:before{content:"\e69d"}.van-icon-coupon-o:before{content:"\e69e"}.van-icon-contact:before{content:"\e69f"}.van-icon-descending:before{content:"\e6a0"}.van-icon-desktop-o:before{content:"\e6a1"}.van-icon-diamond-o:before{content:"\e6a2"}.van-icon-description:before{content:"\e6a3"}.van-icon-delete:before{content:"\e6a4"}.van-icon-diamond:before{content:"\e6a5"}.van-icon-delete-o:before{content:"\e6a6"}.van-icon-cross:before{content:"\e6a7"}.van-icon-edit:before{content:"\e6a8"}.van-icon-ellipsis:before{content:"\e6a9"}.van-icon-down:before{content:"\e6aa"}.van-icon-discount:before{content:"\e6ab"}.van-icon-ecard-pay:before{content:"\e6ac"}.van-icon-envelop-o:before{content:"\e6ae"}@font-face{font-weight:400;font-style:normal;font-display:auto;font-family:vant-icon;src:url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff2?t=1621320123079) format("woff2"),url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.woff?t=1621320123079) format("woff"),url(https://at.alicdn.com/t/font_2553510_7cds497uxwn.ttf?t=1621320123079) format("truetype")}:host{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.van-icon--image{width:1em;height:1em}.van-icon__image{width:100%;height:100%}.van-icon__info{z-index:1} \ No newline at end of file diff --git a/dist/info/index.d.ts b/dist/info/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/dist/info/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/info/index.js b/dist/info/index.js deleted file mode 100644 index 489f39c..0000000 --- a/dist/info/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import { VantComponent } from '../common/component'; -VantComponent({ - props: { - dot: Boolean, - info: null, - customStyle: String, - }, -}); diff --git a/dist/info/index.json b/dist/info/index.json deleted file mode 100644 index 467ce29..0000000 --- a/dist/info/index.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "component": true -} diff --git a/dist/info/index.wxml b/dist/info/index.wxml deleted file mode 100644 index b39b524..0000000 --- a/dist/info/index.wxml +++ /dev/null @@ -1,7 +0,0 @@ - - -{{ dot ? '' : info }} diff --git a/dist/info/index.wxss b/dist/info/index.wxss deleted file mode 100644 index 953136a..0000000 --- a/dist/info/index.wxss +++ /dev/null @@ -1 +0,0 @@ -@import '../common/index.wxss';.van-info{position:absolute;top:0;right:0;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;white-space:nowrap;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;height:16px;height:var(--info-size,16px);min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,-apple-system-font,Helvetica Neue,Arial,sans-serif);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)} \ No newline at end of file diff --git a/dist/mixins/basic.d.ts b/dist/mixins/basic.d.ts deleted file mode 100644 index b273369..0000000 --- a/dist/mixins/basic.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const basic: string; diff --git a/dist/mixins/basic.js b/dist/mixins/basic.js index 9c59dc3..0c93012 100644 --- a/dist/mixins/basic.js +++ b/dist/mixins/basic.js @@ -1,11 +1,21 @@ -export const basic = Behavior({ + +module.exports = { + data() { + return {}; + }, + + props: {}, methods: { $emit(name, detail, options) { - this.triggerEvent(name, detail, options); + this.$emit(name, { + detail: detail + }, options); }, + set(data) { this.setData(data); - return new Promise((resolve) => wx.nextTick(resolve)); - }, - }, -}); + return new Promise(resolve => uni.nextTick(resolve)); + } + + } +}; \ No newline at end of file diff --git a/dist/mixins/button.d.ts b/dist/mixins/button.d.ts deleted file mode 100644 index b51db87..0000000 --- a/dist/mixins/button.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const button: string; diff --git a/dist/mixins/button.js b/dist/mixins/button.js index 320b561..a0bcdd4 100644 --- a/dist/mixins/button.js +++ b/dist/mixins/button.js @@ -1,7 +1,13 @@ import { canIUseGetUserProfile } from '../common/version'; -export const button = Behavior({ - externalClasses: ['hover-class'], - properties: { + +module.exports = { + data() { + return { + canIUseGetUserProfile: canIUseGetUserProfile() + }; + }, + + props: { id: String, lang: String, businessId: Number, @@ -13,29 +19,45 @@ export const button = Behavior({ appParameter: String, ariaLabel: String, openType: String, - getUserProfileDesc: String, - }, - data: { - canIUseGetUserProfile: canIUseGetUserProfile(), + getUserProfileDesc: String }, + externalClasses: ['hover-class'], methods: { onGetUserInfo(event) { - this.triggerEvent('getuserinfo', event.detail); + this.$emit('getuserinfo', { + detail: event.detail + }); }, + onContact(event) { - this.triggerEvent('contact', event.detail); + this.$emit('contact', { + detail: event.detail + }); }, + onGetPhoneNumber(event) { - this.triggerEvent('getphonenumber', event.detail); + this.$emit('getphonenumber', { + detail: event.detail + }); }, + onError(event) { - this.triggerEvent('error', event.detail); + this.$emit('error', { + detail: event.detail + }); }, + onLaunchApp(event) { - this.triggerEvent('launchapp', event.detail); + this.$emit('launchapp', { + detail: event.detail + }); }, + onOpenSetting(event) { - this.triggerEvent('opensetting', event.detail); - }, - }, -}); + this.$emit('opensetting', { + detail: event.detail + }); + } + + } +}; \ No newline at end of file diff --git a/dist/mixins/link.d.ts b/dist/mixins/link.d.ts deleted file mode 100644 index d58043b..0000000 --- a/dist/mixins/link.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const link: string; diff --git a/dist/mixins/link.js b/dist/mixins/link.js index 4612e34..7a5b442 100644 --- a/dist/mixins/link.js +++ b/dist/mixins/link.js @@ -1,24 +1,32 @@ -export const link = Behavior({ - properties: { + +module.exports = { + data() { + return {}; + }, + + props: { url: String, linkType: { type: String, - value: 'navigateTo', - }, + default: 'navigateTo' + } }, methods: { jumpLink(urlKey = 'url') { - const url = this.data[urlKey]; + const url = this[urlKey]; + if (url) { - if ( - this.data.linkType === 'navigateTo' && - getCurrentPages().length > 9 - ) { - wx.redirectTo({ url }); + if (this.linkType === 'navigateTo' && getCurrentPages().length > 9) { + uni.redirectTo({ + url + }); } else { - wx[this.data.linkType]({ url }); + uni[this.linkType]({ + url + }); } } - }, - }, -}); + } + + } +}; \ No newline at end of file diff --git a/dist/mixins/page-scroll.d.ts b/dist/mixins/page-scroll.d.ts deleted file mode 100644 index a76f542..0000000 --- a/dist/mixins/page-scroll.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// -declare type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption; -declare type Scroller = ( - this: WechatMiniprogram.Component.TrivialInstance, - event?: IPageScrollOption -) => void; -export declare const pageScrollMixin: (scroller: Scroller) => string; -export {}; diff --git a/dist/mixins/page-scroll.js b/dist/mixins/page-scroll.js index 9e4a5f3..25b4803 100644 --- a/dist/mixins/page-scroll.js +++ b/dist/mixins/page-scroll.js @@ -1,33 +1,41 @@ import { getCurrentPage } from '../common/utils'; function onPageScroll(event) { - const { vanPageScroller = [] } = getCurrentPage(); - vanPageScroller.forEach((scroller) => { + const { + vanPageScroller = [] + } = getCurrentPage(); + vanPageScroller.forEach(scroller => { if (typeof scroller === 'function') { // @ts-ignore scroller(event); } }); } -export const pageScrollMixin = (scroller) => - Behavior({ - attached() { - const page = getCurrentPage(); - if (Array.isArray(page.vanPageScroller)) { - page.vanPageScroller.push(scroller.bind(this)); - } else { - page.vanPageScroller = - typeof page.onPageScroll === 'function' - ? [page.onPageScroll.bind(page), scroller.bind(this)] - : [scroller.bind(this)]; - } - page.onPageScroll = onPageScroll; - }, - detached() { - var _a; - const page = getCurrentPage(); - page.vanPageScroller = - ((_a = page.vanPageScroller) === null || _a === void 0 - ? void 0 - : _a.filter((item) => item !== scroller)) || []; - }, - }); + +module.exports = { + data() { + return {}; + }, + + props: {}, + + beforeMount() { + const page = getCurrentPage(); + + if (Array.isArray(page.vanPageScroller)) { + page.vanPageScroller.push(scroller.bind(this)); + } else { + page.vanPageScroller = typeof page.onPageScroll === 'function' ? [page.onPageScroll.bind(page), scroller.bind(this)] : [scroller.bind(this)]; + } + + page.onPageScroll = onPageScroll; + }, + + destroyed() { + var _a; + + const page = getCurrentPage(); + page.vanPageScroller = ((_a = page.vanPageScroller) === null || _a === void 0 ? void 0 : _a.filter(item => item !== scroller)) || []; + }, + + methods: {} +}; \ No newline at end of file diff --git a/dist/mixins/touch.d.ts b/dist/mixins/touch.d.ts deleted file mode 100644 index 35ee831..0000000 --- a/dist/mixins/touch.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const touch: string; diff --git a/dist/mixins/touch.js b/dist/mixins/touch.js index c6e94c3..4a1869a 100644 --- a/dist/mixins/touch.js +++ b/dist/mixins/touch.js @@ -4,12 +4,20 @@ function getDirection(x, y) { if (x > y && x > MIN_DISTANCE) { return 'horizontal'; } + if (y > x && y > MIN_DISTANCE) { return 'vertical'; } + return ''; } -export const touch = Behavior({ + +module.exports = { + data() { + return {}; + }, + + props: {}, methods: { resetTouchStatus() { this.direction = ''; @@ -18,20 +26,22 @@ export const touch = Behavior({ this.offsetX = 0; this.offsetY = 0; }, + touchStart(event) { this.resetTouchStatus(); const touch = event.touches[0]; this.startX = touch.clientX; this.startY = touch.clientY; }, + touchMove(event) { const touch = event.touches[0]; this.deltaX = touch.clientX - this.startX; this.deltaY = touch.clientY - this.startY; this.offsetX = Math.abs(this.deltaX); this.offsetY = Math.abs(this.deltaY); - this.direction = - this.direction || getDirection(this.offsetX, this.offsetY); - }, - }, -}); + this.direction = this.direction || getDirection(this.offsetX, this.offsetY); + } + + } +}; \ No newline at end of file diff --git a/dist/mixins/transition.d.ts b/dist/mixins/transition.d.ts deleted file mode 100644 index dd829e5..0000000 --- a/dist/mixins/transition.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function transition(showDefaultValue: boolean): string; diff --git a/dist/mixins/transition.js b/dist/mixins/transition.js index 3b3ec77..dd54629 100644 --- a/dist/mixins/transition.js +++ b/dist/mixins/transition.js @@ -1,52 +1,71 @@ // @ts-nocheck import { requestAnimationFrame } from '../common/utils'; import { isObj } from '../common/validator'; -const getClassNames = (name) => ({ +const getClassNames = name => ({ enter: `van-${name}-enter van-${name}-enter-active enter-class enter-active-class`, 'enter-to': `van-${name}-enter-to van-${name}-enter-active enter-to-class enter-active-class`, leave: `van-${name}-leave van-${name}-leave-active leave-class leave-active-class`, - 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class`, + 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class` }); -export function transition(showDefaultValue) { - return Behavior({ - properties: { + +export default function () { + return { + data() { + return { + type: '', + inited: false, + display: false + }; + }, + + props: { customStyle: String, // @ts-ignore show: { type: Boolean, - value: showDefaultValue, - observer: 'observeShow', + default: showDefaultValue }, // @ts-ignore duration: { type: null, - value: 300, - observer: 'observeDuration', + default: 300 }, name: { type: String, - value: 'fade', - }, + default: 'fade' + } }, - data: { - type: '', - inited: false, - display: false, + watch: { + show: { + handler: 'observeShow', + immediate: true + }, + duration: { + handler: 'observeDuration', + immediate: true + } }, - ready() { - if (this.data.show === true) { + + mounted() { + if (this.show === true) { this.observeShow(true, false); } }, + methods: { observeShow(value, old) { if (value === old) { return; } + value ? this.enter() : this.leave(); }, + enter() { - const { duration, name } = this.data; + const { + duration, + name + } = this; const classNames = getClassNames(name); const currentDuration = isObj(duration) ? duration.enter : duration; this.status = 'enter'; @@ -55,27 +74,36 @@ export function transition(showDefaultValue) { if (this.status !== 'enter') { return; } + this.$emit('enter'); this.setData({ inited: true, display: true, classes: classNames.enter, - currentDuration, + currentDuration }); requestAnimationFrame(() => { if (this.status !== 'enter') { return; } + this.transitionEnded = false; - this.setData({ classes: classNames['enter-to'] }); + this.setData({ + classes: classNames['enter-to'] + }); }); }); }, + leave() { - if (!this.data.display) { + if (!this.display) { return; } - const { duration, name } = this.data; + + const { + duration, + name + } = this; const classNames = getClassNames(name); const currentDuration = isObj(duration) ? duration.leave : duration; this.status = 'leave'; @@ -84,32 +112,45 @@ export function transition(showDefaultValue) { if (this.status !== 'leave') { return; } + this.$emit('leave'); this.setData({ classes: classNames.leave, - currentDuration, + currentDuration }); requestAnimationFrame(() => { if (this.status !== 'leave') { return; } + this.transitionEnded = false; setTimeout(() => this.onTransitionEnd(), currentDuration); - this.setData({ classes: classNames['leave-to'] }); + this.setData({ + classes: classNames['leave-to'] + }); }); }); }, + onTransitionEnd() { if (this.transitionEnded) { return; } + this.transitionEnded = true; this.$emit(`after-${this.status}`); - const { show, display } = this.data; + const { + show, + display + } = this; + if (!show && display) { - this.setData({ display: false }); + this.setData({ + display: false + }); } - }, - }, - }); -} + } + + } + }; +} \ No newline at end of file diff --git a/dist/step/index.js b/dist/step/index.js deleted file mode 100644 index 81fe7ed..0000000 --- a/dist/step/index.js +++ /dev/null @@ -1,88 +0,0 @@ -import baseComponent from '../helpers/baseComponent' -import classNames from '../helpers/classNames' - -const defaultStatus = ['wait', 'process', 'finish', 'error'] -const defaultIcon = 'ios-checkmark' - -baseComponent({ - relations: { - '../steps/index': { - type: 'parent', - }, - }, - properties: { - prefixCls: { - type: String, - value: 'wux-step', - }, - status: { - type: String, - value: '', - }, - title: { - type: String, - value: '', - }, - content: { - type: String, - value: '', - }, - icon: { - type: String, - value: '', - }, - }, - data: { - width: '100%', - length: 1, - index: 0, - current: 0, - direction: 'horizontal', - }, - computed: { - classes: ['prefixCls, direction', function(prefixCls, direction) { - const wrap = classNames(prefixCls, { - [`${prefixCls}--${direction}`]: direction, - }) - const hd = `${prefixCls}__hd` - const icon = `${prefixCls}__icon` - const thumb = `${prefixCls}__thumb` - const bd = `${prefixCls}__bd` - const title = `${prefixCls}__title` - const content = `${prefixCls}__content` - const ft = `${prefixCls}__ft` - - return { - wrap, - hd, - icon, - thumb, - bd, - title, - content, - ft, - } - }], - }, - methods: { - updateCurrent(opts = {}) { - const width = opts.direction === 'horizontal' ? 100 / opts.length + '%' : '100%' - const index = defaultStatus.indexOf(this.data.status) - const hasIcon = opts.index < opts.current || this.data.icon - const thumb = this.data.icon || defaultIcon - const suffix = index !== -1 ? defaultStatus[index] : opts.index < opts.current ? 'finish' : opts.index === opts.current ? 'process' : '' - const className = `${this.data.prefixCls}--${suffix}` - const options = Object.assign({ - width, - className, - hasIcon, - thumb, - }, opts) - - this.setData(options) - }, - }, - attached() { - this.updateCurrent(this.data) - }, -}) diff --git a/dist/step/index.json b/dist/step/index.json deleted file mode 100644 index 6505d1c..0000000 --- a/dist/step/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "component": true, - "usingComponents": { - "wux-icon": "../icon/index" - } -} \ No newline at end of file diff --git a/dist/step/index.wxml b/dist/step/index.wxml deleted file mode 100644 index 34c5c27..0000000 --- a/dist/step/index.wxml +++ /dev/null @@ -1,23 +0,0 @@ - - - {{ index + 1 }} - - - - - - - {{ title }} - - - - - - {{ content }} - - - - - - - \ No newline at end of file diff --git a/dist/step/index.wxss b/dist/step/index.wxss deleted file mode 100644 index ca7b91b..0000000 --- a/dist/step/index.wxss +++ /dev/null @@ -1,122 +0,0 @@ -.wux-step { - font-size: 0; - position: relative; - display: inline-block; - box-sizing: border-box; - padding: 0 10rpx; - vertical-align: top -} -.wux-step--vertical { - padding-bottom: 60rpx -} -.wux-step--vertical .wux-step__hd { - float: left -} -.wux-step--vertical .wux-step__bd { - overflow: hidden; - display: block; - margin-left: 80rpx; - margin-top: 0; - text-align: left; - clear: inherit -} -.wux-step--vertical .wux-step__ft { - position: absolute; - left: 38rpx; - top: 0; - height: 100%; - width: 2rpx; - padding: 60rpx 0 8rpx; - margin-left: 0 -} -.wux-step--vertical .wux-step__ft::after { - width: 2rpx; - height: 100% -} -.wux-step__ft { - position: absolute; - left: 50%; - width: 100%; - top: 24rpx; - padding: 0 48rpx; - margin-left: 6rpx; - box-sizing: border-box -} -.wux-step__ft::after { - content: ""; - display: inline-block; - background: #d9d9d9; - height: 2rpx; - border-radius: 2rpx; - width: 100%; - transition: background .3s; - position: relative; - left: -4rpx -} -.wux-step__icon { - box-sizing: border-box; - font-size: 24rpx; - width: 48rpx; - height: 100%; - border-radius: 50%; - background: #fff; - position: relative; - z-index: 2; - margin: 0 auto; - border: #e9eaec solid 2rpx -} -.wux-step__thumb { - width: 100%; - height: 100%; - display: inline-block; - overflow: hidden -} -.wux-step--process .wux-step__icon { - border: #EBB672 solid 2rpx; - color: #fff; - background: #EBB672 -} -.wux-step--wait .wux-step__icon { - border: #e9eaec solid 2rpx; - color: #e9eaec -} -.wux-step--wait .wux-step__ft::after { - background: #e9eaec -} -.wux-step--finish .wux-step__icon { - border: #EBB672 solid 2rpx; - color: #EBB672 -} -.wux-step--finish .wux-step__ft::after { - background: #EBB672 -} -.wux-step--error .wux-step__icon { - border: #ef473a solid 2rpx; - color: #ef473a -} -.wux-step--error .wux-step__ft::after { - background: #ef473a -} -.wux-step__hd { - width: auto; - height: 48rpx; - line-height: 48rpx; - text-align: center; - box-sizing: border-box -} -.wux-step__bd { - margin-top: 20rpx; - text-align: center; - clear: both -} -.wux-step__title { - font-size: 28rpx; - font-weight: 700; - color: #333; -} -.wux-step__content { - font-size: 24rpx; - margin-top: 6rpx; - color: rgba(0,0,0,.65); - line-height: 36rpx; -} \ No newline at end of file diff --git a/dist/steps/index.js b/dist/steps/index.js deleted file mode 100644 index d61b6e5..0000000 --- a/dist/steps/index.js +++ /dev/null @@ -1,49 +0,0 @@ -import baseComponent from '../helpers/baseComponent' -import classNames from '../helpers/classNames' - -baseComponent({ - relations: { - '../step/index': { - type: 'child', - observer() { - this.debounce(this.updateCurrent) - }, - }, - }, - properties: { - prefixCls: { - type: String, - value: 'wux-steps', - }, - current: { - type: Number, - value: 0, - observer: 'updateCurrent', - }, - // status: { - // type: String, - // value: '', - // }, - direction: { - type: String, - value: 'horizontal', - }, - }, - methods: { - updateCurrent() { - const elements = this.getRelationNodes('../step/index') - const { current, direction } = this.data - - if (elements.length > 0) { - elements.forEach((element, index) => { - element.updateCurrent({ - length: elements.length, - index, - current, - direction, - }) - }) - } - }, - }, -}) diff --git a/dist/steps/index.json b/dist/steps/index.json deleted file mode 100644 index fba482a..0000000 --- a/dist/steps/index.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "component": true -} \ No newline at end of file diff --git a/dist/steps/index.wxml b/dist/steps/index.wxml deleted file mode 100644 index 2779365..0000000 --- a/dist/steps/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/dist/steps/index.wxss b/dist/steps/index.wxss deleted file mode 100644 index ab579db..0000000 --- a/dist/steps/index.wxss +++ /dev/null @@ -1,4 +0,0 @@ -.wux-steps { - position: relative; - width: 100% -} \ No newline at end of file diff --git a/dist/wxs/add-unit.wxs b/dist/wxs/add-unit.wxs index 4f33462..0b80958 100644 --- a/dist/wxs/add-unit.wxs +++ b/dist/wxs/add-unit.wxs @@ -9,4 +9,4 @@ function addUnit(value) { return REGEXP.test('' + value) ? value + 'px' : value; } -module.exports = addUnit; +module.exports = addUnit; \ No newline at end of file diff --git a/dist/wxs/array.wxs b/dist/wxs/array.wxs index 610089c..7b1517f 100644 --- a/dist/wxs/array.wxs +++ b/dist/wxs/array.wxs @@ -2,4 +2,4 @@ function isArray(array) { return array && array.constructor === 'Array'; } -module.exports.isArray = isArray; +module.exports.isArray = isArray; \ No newline at end of file diff --git a/dist/wxs/bem.wxs b/dist/wxs/bem.wxs index 1efa129..b9c81fd 100644 --- a/dist/wxs/bem.wxs +++ b/dist/wxs/bem.wxs @@ -1,11 +1,24 @@ /* eslint-disable */ -var array = require('./array.wxs'); -var object = require('./object.wxs'); +///////////////////////////////////dist\wxs\array.wxs///////////////////////////////// +function isArray(array) { + return array && array.constructor === 'Array'; +} + +/* eslint-disable */ +///////////////////////////////////dist\wxs\object.wxs///////////////////////////////// +var REGEXP = getRegExp('{|}|"', 'g'); + +function keys(obj) { + return JSON.stringify(obj).replace(REGEXP, '').split(',').map(function (item) { + return item.split(':')[0]; + }); +} + var PREFIX = 'van-'; function join(name, mods) { name = PREFIX + name; - mods = mods.map(function(mod) { + mods = mods.map(function (mod) { return name + '--' + mod; }); mods.unshift(name); @@ -19,12 +32,12 @@ function traversing(mods, conf) { if (typeof conf === 'string' || typeof conf === 'number') { mods.push(conf); - } else if (array.isArray(conf)) { - conf.forEach(function(item) { + } else if (isArray(conf)) { + conf.forEach(function (item) { traversing(mods, item); }); } else if (typeof conf === 'object') { - object.keys(conf).forEach(function(key) { + keys(conf).forEach(function (key) { conf[key] && mods.push(key); }); } @@ -36,4 +49,4 @@ function bem(name, conf) { return join(name, mods); } -module.exports = bem; +module.exports = bem; \ No newline at end of file diff --git a/dist/wxs/memoize.wxs b/dist/wxs/memoize.wxs index 8f7f46d..6afde74 100644 --- a/dist/wxs/memoize.wxs +++ b/dist/wxs/memoize.wxs @@ -2,20 +2,14 @@ * Simple memoize * wxs doesn't support fn.apply, so this memoize only support up to 2 args */ -/* eslint-disable */ +/* eslint-disable */ function isPrimitive(value) { var type = typeof value; - return ( - type === 'boolean' || - type === 'number' || - type === 'string' || - type === 'undefined' || - value === null - ); -} + return type === 'boolean' || type === 'number' || type === 'string' || type === 'undefined' || value === null; +} // mock simple fn.call in wxs + -// mock simple fn.call in wxs function call(fn, args) { if (args.length === 2) { return fn(args[0], args[1]); @@ -32,18 +26,21 @@ function serializer(args) { if (args.length === 1 && isPrimitive(args[0])) { return args[0]; } + var obj = {}; + for (var i = 0; i < args.length; i++) { obj['key' + i] = args[i]; } + return JSON.stringify(obj); } function memoize(fn) { var cache = {}; - - return function() { + return function () { var key = serializer(arguments); + if (cache[key] === undefined) { cache[key] = call(fn, arguments); } @@ -52,4 +49,4 @@ function memoize(fn) { }; } -module.exports = memoize; +module.exports = memoize; \ No newline at end of file diff --git a/dist/wxs/object.wxs b/dist/wxs/object.wxs index e077107..431f623 100644 --- a/dist/wxs/object.wxs +++ b/dist/wxs/object.wxs @@ -2,12 +2,9 @@ var REGEXP = getRegExp('{|}|"', 'g'); function keys(obj) { - return JSON.stringify(obj) - .replace(REGEXP, '') - .split(',') - .map(function(item) { - return item.split(':')[0]; - }); + return JSON.stringify(obj).replace(REGEXP, '').split(',').map(function (item) { + return item.split(':')[0]; + }); } -module.exports.keys = keys; +module.exports.keys = keys; \ No newline at end of file diff --git a/dist/wxs/style.wxs b/dist/wxs/style.wxs index d88ca7c..c8f4877 100644 --- a/dist/wxs/style.wxs +++ b/dist/wxs/style.wxs @@ -1,42 +1,45 @@ /* eslint-disable */ -var object = require('./object.wxs'); -var array = require('./array.wxs'); -function kebabCase(word) { - var newWord = word - .replace(getRegExp("[A-Z]", 'g'), function (i) { - return '-' + i; - }) - .toLowerCase() +/* eslint-disable */ +///////////////////////////////////dist\wxs\object.wxs///////////////////////////////// +var REGEXP = getRegExp('{|}|"', 'g'); + +function keys(obj) { + return JSON.stringify(obj).replace(REGEXP, '').split(',').map(function (item) { + return item.split(':')[0]; + }); +} +///////////////////////////////////dist\wxs\array.wxs///////////////////////////////// +function isArray(array) { + return array && array.constructor === 'Array'; +} + +function kebabCase(word) { + var newWord = word.replace(getRegExp("[A-Z]", 'g'), function (i) { + return '-' + i; + }).toLowerCase(); return newWord; } function style(styles) { - if (array.isArray(styles)) { - return styles - .filter(function (item) { - return item != null && item !== ''; - }) - .map(function (item) { - return style(item); - }) - .join(';'); + if (isArray(styles)) { + return styles.filter(function (item) { + return item != null && item !== ''; + }).map(function (item) { + return style(item); + }).join(';'); } if ('Object' === styles.constructor) { - return object - .keys(styles) - .filter(function (key) { - return styles[key] != null && styles[key] !== ''; - }) - .map(function (key) { - return [kebabCase(key), [styles[key]]].join(':'); - }) - .join(';'); + return keys(styles).filter(function (key) { + return styles[key] != null && styles[key] !== ''; + }).map(function (key) { + return [kebabCase(key), [styles[key]]].join(':'); + }).join(';'); } return styles; } -module.exports = style; +module.exports = style; \ No newline at end of file diff --git a/dist/wxs/utils.wxs b/dist/wxs/utils.wxs index f66d33a..df59b31 100644 --- a/dist/wxs/utils.wxs +++ b/dist/wxs/utils.wxs @@ -1,10 +1,128 @@ /* eslint-disable */ -var bem = require('./bem.wxs'); -var memoize = require('./memoize.wxs'); -var addUnit = require('./add-unit.wxs'); +///////////////////////////////////dist\wxs\array.wxs///////////////////////////////// +/* eslint-disable */ +///////////////////////////////////dist\wxs\bem.wxs///////////////////////////////// +function isArray(array) { + return array && array.constructor === 'Array'; +} + +/* eslint-disable */ +///////////////////////////////////dist\wxs\object.wxs///////////////////////////////// +var REGEXP = getRegExp('{|}|"', 'g'); + +function keys(obj) { + return JSON.stringify(obj).replace(REGEXP, '').split(',').map(function (item) { + return item.split(':')[0]; + }); +} + +var PREFIX = 'van-'; + +function join(name, mods) { + name = PREFIX + name; + mods = mods.map(function (mod) { + return name + '--' + mod; + }); + mods.unshift(name); + return mods.join(' '); +} + +function traversing(mods, conf) { + if (!conf) { + return; + } + + if (typeof conf === 'string' || typeof conf === 'number') { + mods.push(conf); + } else if (isArray(conf)) { + conf.forEach(function (item) { + traversing(mods, item); + }); + } else if (typeof conf === 'object') { + keys(conf).forEach(function (key) { + conf[key] && mods.push(key); + }); + } +} + +function bem(name, conf) { + var mods = []; + traversing(mods, conf); + return join(name, mods); +} + +module.exports = bem; + +/** + * Simple memoize + * wxs doesn't support fn.apply, so this memoize only support up to 2 args + */ + +/* eslint-disable */ +///////////////////////////////////dist\wxs\memoize.wxs///////////////////////////////// +function isPrimitive(value) { + var type = typeof value; + return type === 'boolean' || type === 'number' || type === 'string' || type === 'undefined' || value === null; +} // mock simple fn.call in wxs + + +function call(fn, args) { + if (args.length === 2) { + return fn(args[0], args[1]); + } + + if (args.length === 1) { + return fn(args[0]); + } + + return fn(); +} + +function serializer(args) { + if (args.length === 1 && isPrimitive(args[0])) { + return args[0]; + } + + var obj = {}; + + for (var i = 0; i < args.length; i++) { + obj['key' + i] = args[i]; + } + + return JSON.stringify(obj); +} + +function memoize(fn) { + var cache = {}; + return function () { + var key = serializer(arguments); + + if (cache[key] === undefined) { + cache[key] = call(fn, arguments); + } + + return cache[key]; + }; +} + +module.exports = memoize; + +/* eslint-disable */ +///////////////////////////////////dist\wxs\add-unit.wxs///////////////////////////////// +var REGEXP = getRegExp('^-?\d+(\.\d+)?$'); + +function addUnit(value) { + if (value == null) { + return undefined; + } + + return REGEXP.test('' + value) ? value + 'px' : value; +} + +module.exports = addUnit; module.exports = { bem: memoize(bem), memoize: memoize, addUnit: addUnit -}; +}; \ No newline at end of file diff --git a/images/agreement1.png b/images/agreement1.png deleted file mode 100644 index 6e7b3bc..0000000 Binary files a/images/agreement1.png and /dev/null differ diff --git a/images/agreement2.png b/images/agreement2.png deleted file mode 100644 index feb0b27..0000000 Binary files a/images/agreement2.png and /dev/null differ diff --git a/images/agreement3.png b/images/agreement3.png deleted file mode 100644 index f56969a..0000000 Binary files a/images/agreement3.png and /dev/null differ diff --git a/images/home/company-img.png b/images/home/company-img.png deleted file mode 100755 index 33686d3..0000000 Binary files a/images/home/company-img.png and /dev/null differ diff --git a/images/home/company-top-bg.png b/images/home/company-top-bg.png deleted file mode 100644 index e97f170..0000000 Binary files a/images/home/company-top-bg.png and /dev/null differ diff --git a/images/home/item-bg.png b/images/home/item-bg.png deleted file mode 100755 index 74d83b3..0000000 Binary files a/images/home/item-bg.png and /dev/null differ diff --git a/images/home/welfare1.png b/images/home/welfare1.png deleted file mode 100755 index 114522c..0000000 Binary files a/images/home/welfare1.png and /dev/null differ diff --git a/images/home/welfare2.png b/images/home/welfare2.png deleted file mode 100755 index c7768d5..0000000 Binary files a/images/home/welfare2.png and /dev/null differ diff --git a/images/mail-b.png b/images/mail-b.png deleted file mode 100644 index 35beedc..0000000 Binary files a/images/mail-b.png and /dev/null differ diff --git a/images/mail-c.png b/images/mail-c.png deleted file mode 100644 index d9f7372..0000000 Binary files a/images/mail-c.png and /dev/null differ diff --git a/images/mail-t.png b/images/mail-t.png deleted file mode 100644 index 034300f..0000000 Binary files a/images/mail-t.png and /dev/null differ diff --git a/images/no-needs.png b/images/no-needs.png deleted file mode 100644 index 3e03570..0000000 Binary files a/images/no-needs.png and /dev/null differ diff --git a/images/no-order.png b/images/no-order.png deleted file mode 100644 index e895b1c..0000000 Binary files a/images/no-order.png and /dev/null differ diff --git a/images/pay1.png b/images/pay1.png deleted file mode 100644 index 540cbfd..0000000 Binary files a/images/pay1.png and /dev/null differ diff --git a/images/pay2.png b/images/pay2.png deleted file mode 100644 index b31c7b1..0000000 Binary files a/images/pay2.png and /dev/null differ diff --git a/images/personalPage-bg.png b/images/personalPage-bg.png deleted file mode 100644 index 150a7c7..0000000 Binary files a/images/personalPage-bg.png and /dev/null differ diff --git a/images/renzheng/.DS_Store b/images/renzheng/.DS_Store deleted file mode 100644 index adc4dcd..0000000 Binary files a/images/renzheng/.DS_Store and /dev/null differ diff --git a/images/renzheng/sfz1.png b/images/renzheng/sfz1.png deleted file mode 100644 index 096b3f8..0000000 Binary files a/images/renzheng/sfz1.png and /dev/null differ diff --git a/images/renzheng/sfz2.png b/images/renzheng/sfz2.png deleted file mode 100644 index 0bd2193..0000000 Binary files a/images/renzheng/sfz2.png and /dev/null differ diff --git a/images/renzheng/sfz3.png b/images/renzheng/sfz3.png deleted file mode 100644 index 9e3b4ad..0000000 Binary files a/images/renzheng/sfz3.png and /dev/null differ diff --git a/images/renzheng/sfzb.png b/images/renzheng/sfzb.png deleted file mode 100644 index 8d381a0..0000000 Binary files a/images/renzheng/sfzb.png and /dev/null differ diff --git a/images/renzheng/sfzs.png b/images/renzheng/sfzs.png deleted file mode 100644 index 9ae7f09..0000000 Binary files a/images/renzheng/sfzs.png and /dev/null differ diff --git a/images/renzheng/sfzz.png b/images/renzheng/sfzz.png deleted file mode 100644 index d1b1c70..0000000 Binary files a/images/renzheng/sfzz.png and /dev/null differ diff --git a/images/renzheng/sq.png b/images/renzheng/sq.png deleted file mode 100644 index 57bf6f0..0000000 Binary files a/images/renzheng/sq.png and /dev/null differ diff --git a/images/renzheng/sqs.png b/images/renzheng/sqs.png deleted file mode 100644 index 0898f79..0000000 Binary files a/images/renzheng/sqs.png and /dev/null differ diff --git a/images/renzheng/yyzz.png b/images/renzheng/yyzz.png deleted file mode 100644 index 616f522..0000000 Binary files a/images/renzheng/yyzz.png and /dev/null differ diff --git a/images/user/vip.png b/images/user/vip.png deleted file mode 100644 index 19bfda7..0000000 Binary files a/images/user/vip.png and /dev/null differ diff --git a/images/userIndex-top-bg.png b/images/userIndex-top-bg.png deleted file mode 100644 index 64b75b9..0000000 Binary files a/images/userIndex-top-bg.png and /dev/null 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..0241fa2 --- /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..5b94142 --- /dev/null +++ b/main.js @@ -0,0 +1,46 @@ +import Vue from 'vue'; +import App from './App'; + +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' + +import uView from "uview-ui"; +Vue.use(uView); + +// 全局mixins,用于实现setData等功能'; +import Mixin from './polyfill/mixins'; +Vue.mixin(Mixin); + +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) +app.$mount(); diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..58f2668 --- /dev/null +++ b/manifest.json @@ -0,0 +1,73 @@ +{ + "name": "zhaoshangMiniApp", + "appid": "", + "description": "", + "versionName": "1.0.0", + "versionCode": "100", + "transformPx": false, + "app-plus": { + "usingComponents": true, + "nvueCompiler": "uni-app", + "compilerVersion": 3, + "splashscreen": { + "alwaysShowBeforeRender": true, + "waiting": true, + "autoclose": true, + "delay": 0 + }, + "modules": {}, + "distribute": { + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios": {}, + "sdkConfigs": {} + } + }, + "quickapp": {}, + "mp-weixin": { + "appid": "wx5348e39dcbbefe1e", + "setting": { + "urlCheck": false + }, + "usingComponents": true, + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "plugins": {} + }, + "mp-alipay": { + "usingComponents": true + }, + "mp-baidu": { + "usingComponents": true + }, + "mp-toutiao": { + "usingComponents": true + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d873242 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "dayjs": { + "version": "1.10.7", + "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz?cache=0&sync_timestamp=1631266519235&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.7.tgz", + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" + }, + "uview-ui": { + "version": "1.8.4", + "resolved": "https://registry.npm.taobao.org/uview-ui/download/uview-ui-1.8.4.tgz", + "integrity": "sha1-4yu/I3lCHTGQIuMk4ct7U4fTvUQ=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3243a8a --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "dayjs": "^1.10.7", + "uview-ui": "^1.8.4" + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..471d075 --- /dev/null +++ b/pages.json @@ -0,0 +1,325 @@ +{ + "easycom": { + "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [ + { + "path": "pages/Loading/index", + "style": { + "navigationBarTitleText": "禅易教育研究院" + } + }, + { + "path": "pages/home/index", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/user/index", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/login/index", + "style": {} + }, + { + "path": "pages/authorization/index", + "style": {} + }, + { + "path": "pages/webview/index", + "style": {} + }, + { + "path": "pages/guide/index", + "style": {} + }, + { + "path": "pages/demandHall/createProject/index", + "style": { + "navigationBarTitleText": "发布项目" + } + }, + { + "path": "pages/demandHall/needsContact/index", + "style": { + "navigationBarTitleText": "申请沟通" + } + }, + { + "path": "pages/user/needsOrder/index", + "style": { + "navigationBarTitleText": "我发出的需求", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/user/resourcesOrder/index", + "style": { + "navigationBarTitleText": "我收到的需求", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/user/needsManage/index", + "style": { + "navigationBarTitleText": "需求管理", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/user/resourcesManage/index", + "style": { + "navigationBarTitleText": "资源管理", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/user/editNeeds/index", + "style": { + "navigationBarTitleText": "供应/需求编辑" + } + }, + { + "path": "pages/demandHall/needsDetail/index", + "style": { + "navigationBarTitleText": "需求详情", + "navigationBarBackgroundColor": "#FF5100", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/demandHall/resourcesDetail/index", + "style": { + "navigationBarTitleText": "资源详情" + } + }, + { + "path": "pages/demandHall/companyDetail/index", + "style": { + "navigationBarTitleText": "企业首页" + } + }, + { + "path": "pages/demandHall/resourcesContact/index", + "style": { + "navigationBarTitleText": "申请沟通" + } + }, + { + "path": "pages/demandHall/applyDetail/index", + "style": { + "navigationBarTitleText": "申请详情", + "navigationBarBackgroundColor": "#FF5100", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": true, + "backgroundColor": "#FF5100" + } + }, + { + "path": "pages/demandHall/platform/index", + "style": { + "navigationBarTitleText": "平台介入" + } + }, + { + "path": "pages/demandHall/index", + "style": { + "navigationBarTitleText": "供需大厅", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/release/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/release/personAuth/index", + "style": { + "navigationBarTitleText": "个人认证" + } + }, + { + "path": "pages/release/companyAuth/index", + "style": { + "navigationBarTitleText": "企业认证" + } + }, + { + "path": "pages/release/perfectPersonInfo/index", + "style": { + "navigationBarTitleText": "完善个人信息" + } + }, + { + "path": "pages/release/perfectCompanyInfo/index", + "style": { + "navigationBarTitleText": "完善企业信息" + } + }, + { + "path": "pages/life/index", + "style": {} + }, + { + "path": "pages/life/shippingTemplates/index", + "style": {} + }, + { + "path": "pages/life/addGoods/index", + "style": {} + }, + { + "path": "pages/user/mine/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/user/agreement/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/user/incomeDetail/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/user/profession/index", + "style": {} + }, + { + "path": "pages/user/completeData/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/user/personalData/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/activity/index", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "pages/activity/detail/index", + "style": { + "navigationBarTitleText": "活动详情" + } + }, + { + "path": "pages/activity/describe/index", + "style": { + "navigationBarTitleText": "活动详情" + } + }, + { + "path": "pages/activity/signIn/index", + "style": { + "navigationBarTitleText": "报名信息填写", + "navigationBarBackgroundColor": "#EBB672", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/activity/signIn/confirm/index", + "style": { + "navigationBarTitleText": "信息确认", + "navigationBarBackgroundColor": "#EBB672", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/activity/signIn/paymentSuccess/index", + "style": { + "navigationBarTitleText": "支付", + "navigationBarBackgroundColor": "#EBB672", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/shop/GoodSearch/index", + "style": { + "navigationBarTitleText": "搜索商品" + } + }, + { + "path": "pages/shop/GoodsClass/index", + "style": { + "navigationBarTitleText": "商城" + } + }, + { + "path": "pages/shop/ShoppingCart/index", + "style": { + "navigationBarTitleText": "购物车" + } + }, + { + "path": "pages/shop/GoodsCon/index", + "style": { + "navigationBarTitleText": "商品详情" + } + } + ], + "tabBar": { + "backgroundColor": "#ffffff", + "color": "#D4D4D4", + "selectedColor": "#FF6F34", + "list": [ + { + "pagePath": "pages/home/index", + "text": "首页", + "iconPath": "/static/tabbarComponent/icon/home.png", + "selectedIconPath": "/static/tabbarComponent/icon/home-a.png" + }, + { + "pagePath": "pages/demandHall/index", + "text": "供需大厅", + "iconPath": "/static/tabbarComponent/icon/tab2.png", + "selectedIconPath": "/static/tabbarComponent/icon/tab2-a.png" + }, + { + "pagePath": "pages/life/index", + "text": "生活", + "iconPath": "/static/tabbarComponent/icon/tab3.png", + "selectedIconPath": "/static/tabbarComponent/icon/tab3-a.png" + }, + { + "pagePath": "pages/user/index", + "text": "我的", + "iconPath": "/static/tabbarComponent/icon/tab4.png", + "selectedIconPath": "/static/tabbarComponent/icon/tab4-a.png" + } + ] + }, + "style": "v2", + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序位置接口的效果展示" + } + }, + "sitemapLocation": "sitemap.json", + "globalStyle": { + "backgroundTextStyle": "dark", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "禅易云生态", + "navigationBarTextStyle": "black" + }, + "subPackages": [] +} \ No newline at end of file diff --git a/pages/Loading/index.vue b/pages/Loading/index.vue new file mode 100644 index 0000000..650ba88 --- /dev/null +++ b/pages/Loading/index.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/pages/activity/describe/index.wxss b/pages/activity/describe/index.css similarity index 100% rename from pages/activity/describe/index.wxss rename to pages/activity/describe/index.css diff --git a/pages/activity/describe/index.js b/pages/activity/describe/index.js deleted file mode 100644 index 5262dc7..0000000 --- a/pages/activity/describe/index.js +++ /dev/null @@ -1,183 +0,0 @@ -// pages/activity/describe/index.js -const app = getApp(); -var WxParse = require('../../../wxParse/wxParse.js'); -import util from '../../../utils/util' -Page({ - - /** - * 页面的初始数据 - */ - data: { - activityId:'' - }, - onLoad: function (options) { - console.log(options) - if(options.id){ - this.setData({activityId:options.id}); - this.getDetail() - } - }, - getDetail(){ - var that = this; - app.http('GET','activity/activityInfo/'+this.data.activityId).then((res)=>{ - console.log(res) - if(res.data.success){ - this.setData({activityDetail:res.data.data}); - let article = res.data.data.content; - WxParse.wxParse('article', 'html', article, that,5); - } else{ - wx.showToast({ - title: res.data.msg, - icon:'none' - }) - } - }) - }, - call(){ - wx.makePhoneCall({ - phoneNumber: this.data.activityDetail.publisherVo.phone, - fail:function(){ - console.log('取消') - } - }) - }, - collect(){ - let data = {}; - data.id = this.data.activityDetail.id; - data.type = 'collect'; - data.status = this.data.activityDetail.collect ? false : true; - if(wx.getStorageSync('userInfo') != ''){ - this.requestCollect(data) - } else{ - wx.getUserProfile({ - desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 - success: (res) => { - console.log(res) - var iv = res.iv; - var encryptedData = res.encryptedData; - var userInfo = res.userInfo; - wx.login({ - success: request => { - // 发送 res.code 到后台换取 openId, sessionKey, unionId - app.http('POST','wxapp/auth',{code : request.code,iv:iv,encryptedData:encryptedData}).then( - response =>{ - if(response.data.success){ - wx.setStorageSync('token', 'Bearer '+ response.data.data.token); - wx.setStorageSync('userInfo', userInfo); - this.requestCollect(data) - } else{ - wx.showToast({ - title: response.data.msg, - icon : 'none' - }) - } - } - ) - } - }) - } - }) - } - }, - requestCollect(data){ - app.http('POST','activity/collect',data).then((res)=>{ - if(res.data.success){ - wx.showToast({ - title: '操作成功!', - }) - this.getDetail(); - } else{ - wx.showToast({ - title: res.data.msg, - icon:'none' - }) - } - }) - }, - toSignPage(){ - if(wx.getStorageSync('userInfo') != ''){ - wx.navigateTo({ - url: '../signIn/index?id='+this.data.activityId, - }) - } else{ - wx.getUserProfile({ - desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 - success: (res) => { - console.log(res) - var iv = res.iv; - var encryptedData = res.encryptedData; - var userInfo = res.userInfo; - wx.login({ - success: request => { - // 发送 res.code 到后台换取 openId, sessionKey, unionId - app.http('POST','wxapp/auth',{code : request.code,iv:iv,encryptedData:encryptedData}).then( - response =>{ - if(response.data.success){ - wx.setStorageSync('token', 'Bearer '+ response.data.data.token); - wx.setStorageSync('userInfo', userInfo); - wx.navigateTo({ - url: '../signIn/index?id='+this.data.activityId, - }) - } else{ - wx.showToast({ - title: response.data.msg, - icon : 'none' - }) - } - } - ) - } - }) - } - }) - } - }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - } -}) \ No newline at end of file diff --git a/pages/activity/describe/index.json b/pages/activity/describe/index.json deleted file mode 100644 index facafdc..0000000 --- a/pages/activity/describe/index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "usingComponents": {}, - "navigationBarTitleText": "活动详情" -} \ No newline at end of file diff --git a/pages/activity/describe/index.vue b/pages/activity/describe/index.vue new file mode 100644 index 0000000..49f38a3 --- /dev/null +++ b/pages/activity/describe/index.vue @@ -0,0 +1,299 @@ + + + + \ No newline at end of file diff --git a/pages/activity/describe/index.wxml b/pages/activity/describe/index.wxml deleted file mode 100644 index 27fb68f..0000000 --- a/pages/activity/describe/index.wxml +++ /dev/null @@ -1,31 +0,0 @@ - - - - {{activityDetail.name}} - - {{activityDetail.publisherVo.name}} - {{activityDetail.updateTime}} 发布 - - - -