Compare commits

..

123 Commits

Author SHA1 Message Date
7480569afe Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2026-01-14 16:44:28 +08:00
2d111ae180 update:修改提示信息“获得订单信息失败”为“获取订单信息失败” 2026-01-14 16:43:17 +08:00
lihaoyuan
5ab8745e0a build:打板 2026-01-05 15:25:57 +08:00
lihaoyuan
1bd3b228c4 update:修改砍价反馈,注释订单提交物流服务 2026-01-05 15:20:35 +08:00
b0bbe7ada4 fix:更改商品列表默认按销量排行 2026-01-05 15:10:49 +08:00
lihaoyuan
eb6339e2c6 Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-12-24 18:00:17 +08:00
lihaoyuan
a566fd4e0f build:打板骰子修改内容并发布小程序 2025-12-24 18:00:13 +08:00
lihaoyuan
dbd676bfb1 update:新增骰子个数逻辑判断和缩短骰子出现时间 2025-12-24 16:20:11 +08:00
lihaoyuan
9f46bc8179 update:修改骰子静态图片改为网络图片云存储 2025-12-24 10:42:58 +08:00
lihaoyuan
447cdfc9c1 update:修改确认收货,再来一单按钮样式 2025-12-24 09:56:59 +08:00
lihaoyuan
c2364361d3 update:砍价新增骰子(需测试) 2025-12-24 09:55:40 +08:00
cc672b7178 增加从节点部署文件同步逻辑
增加从节点部署文件同步逻辑
2025-12-12 20:59:17 +08:00
43ea49f03d fix sh bug
fix sh bug
2025-12-12 20:54:24 +08:00
2012e82d4b 去掉从节点脚本
去掉从节点脚本

Signed-off-by: panjunjie <46790855@qq.com>
2025-12-12 20:47:59 +08:00
lihaoyuan
b473f617b8 update:h5再打板 2025-12-12 17:17:18 +08:00
lihaoyuan
a72b2a850c update:h5打板 2025-12-12 17:04:03 +08:00
lihaoyuan
004efeafd2 Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-12-05 18:23:48 +08:00
lihaoyuan
84f9da386b update:更新取消订单和联系客服按钮颜色 2025-12-05 18:23:44 +08:00
mixtan
a43ff5488f update 2025-11-25 19:30:09 +08:00
lihaoyuan
cbeb006a2e update:新增未登录点击帖子收藏,提示登录 2025-11-25 16:34:42 +08:00
lihaoyuan
a8b78b20e6 update:新增帖子登录之后才可以评论 2025-11-25 16:30:19 +08:00
lihaoyuan
1a58020062 update:恢复至10月14日之前的用户帖子代码 2025-11-25 10:24:11 +08:00
lihaoyuan
851b48f822 update:优化未登录进入砍价弹窗,以及点击头像登录弹窗 2025-11-19 18:12:59 +08:00
lihaoyuan
d069df8461 Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-11-18 17:32:41 +08:00
lihaoyuan
a0c6678a9e update:新增砍价成功图片跳转店铺,新增砍价有效期倒计时时间戳 2025-11-18 17:32:38 +08:00
mixtan
101ff20634 update 2025-11-17 18:02:12 +08:00
lihaoyuan
27d2d0b231 update:新增店铺开业筹备预订单,以及正常休息的店铺不在营业时间可以下第二天之后的预订单 2025-11-15 10:13:28 +08:00
lihaoyuan
f716e5641e Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-11-10 10:45:58 +08:00
lihaoyuan
eab91ebec0 update:砍价功能修改不能立即出手,只有当达到价格才能出手 2025-11-10 10:43:53 +08:00
c63783a31d 增加从节点部署文件同步逻辑
增加从节点部署文件同步逻辑

Signed-off-by: panjunjie <46790855@qq.com>
2025-11-10 01:12:58 +08:00
lihaoyuan
16ff7c351a update:新增预订单 2025-11-01 16:07:44 +08:00
lihaoyuan
4bdab41028 update:商家入驻链接至官网 2025-11-01 16:06:52 +08:00
lihaoyuan
3c09cca6f4 fix:修复分类里面商品销量通过字段去判断显示 2025-10-30 11:27:47 +08:00
lihaoyuan
812abdfea3 update:修改店铺顶部字体样式大小 2025-10-28 11:10:42 +08:00
lihaoyuan
2e862f298b fix:新增在店铺分类传入sroteId,修复新开店铺默认传0然后导致店铺分类异常获取 2025-10-28 11:10:20 +08:00
lihaoyuan
e1a88d88f1 update:新增订单已签收状态 2025-10-28 11:08:21 +08:00
lihaoyuan
bd2d9b5076 update:修改退货显示判断字段 2025-10-22 18:27:06 +08:00
lihaoyuan
5d278a2a38 update:简单修改配送距离太远,地址填写,恢复之前社区不强制登录 2025-10-22 10:48:38 +08:00
lihaoyuan
a1524b7e9a update:新增装修分类商品组件,新增未登录不给看用户帖子 2025-10-14 17:38:28 +08:00
mixtan
9e8d512bf0 Merge branch 'main' of http://git.gpxscs.cn/front/java-mall-app 2025-10-10 14:32:26 +08:00
mixtan
615f731c38 修改 2025-10-10 14:32:19 +08:00
lihaoyuan
34d43fabd2 update:更新社区板块用户分享和管理员帖子区分 2025-10-10 09:53:25 +08:00
mixtan
966ff03967 update: 蓝驰公众号、打电话悬浮框组件多种昂显示场景适配 2025-09-30 11:34:40 +08:00
mixtan
87e67fa36a update: 订单列表和订单详情的确认收货判断逻辑判断条件修改 2025-09-30 08:53:45 +08:00
mixtan
0578fba964 update: 百度地图服务ak补充 2025-09-29 19:59:57 +08:00
mixtan
c79a1ebee5 update: 分类商品列表的微信聊天icon大小位置优化 2025-09-29 19:26:21 +08:00
mixtan
4889ce9ff9 update: 百度地图服务ak实例化 2025-09-29 19:25:40 +08:00
mixtan
24b1e33bbb update: 处理聊天im图片适配问题 2025-09-29 19:25:23 +08:00
mixtan
8dd4b5c084 update: 百度地图服务ak 2025-09-29 19:23:37 +08:00
mixtan
f04b8383bc feat: 实现用户登录完成订阅活动消息,实现活动专题商品分类大小,修复店铺加好友二维码点击打电话问题,测试订单支付完成白屏问题,调整店铺商品加购悬浮尺寸 2025-09-24 19:57:52 +08:00
mixtan
02f9fcbf5c Merge branch 'main' of http://git.gpxscs.cn/front/java-mall-app 2025-09-20 09:14:51 +08:00
mixtan
930cfd4886 update: 长按图片测试问题,实现订阅消息功能 2025-09-20 09:14:44 +08:00
lihaoyuan
99214ff83c Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-09-18 17:54:01 +08:00
lihaoyuan
fedecba65c fix:im表情显示修复,删除用户中心已完成红点 2025-09-18 17:53:55 +08:00
mixtan
41a6ada67b Merge branch 'main' of http://git.gpxscs.cn/front/java-mall-app 2025-09-18 14:41:27 +08:00
mixtan
68282cc1b3 update: 暂无数据提示,二维码长按识别 2025-09-18 14:41:16 +08:00
lihaoyuan
4391347b87 Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-09-16 12:05:23 +08:00
lihaoyuan
c74f0b91b1 update:修改了注销页面id传参接收的值 2025-09-16 12:04:57 +08:00
mixtan
e8fbaf9ff3 update: 联调微信确认收货 2025-09-15 11:22:30 +08:00
mixtan
cdb7f61cc9 Merge branch 'main' of http://git.gpxscs.cn/front/java-mall-app 2025-09-13 20:00:18 +08:00
mixtan
f37335925b update: 动态计算公众号组件位置,接入确认收货组件但是无法拉起微信收货面板 2025-09-13 20:00:11 +08:00
lihaoyuan
f6faa871eb Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-09-09 16:20:59 +08:00
mixtan
65c5ada66f update: 资讯列表和分类不需要登录态。 2025-09-09 16:20:39 +08:00
mixtan
2b1417beba update: 店铺全部商品间距适配 2025-09-09 09:53:32 +08:00
mixtan
8178ad3ea3 update: 分类标题间距 2025-09-08 15:31:13 +08:00
mixtan
39b5a36b55 fix: 优化店铺分类UI 2025-09-08 15:20:53 +08:00
mixtan
e714b00177 fix: 调整店铺分类UI 2025-09-08 14:48:59 +08:00
mixtan
76ce8a51d4 fix: 修复导航层级问题 2025-09-07 18:56:40 +08:00
mixtan
6cab276416 feat: 实现分类商品、装修商品、店铺商品的加购一键登录;商品详情分类标题和描述修改;店铺底部导航被遮挡问题修复。 2025-09-07 10:30:49 +08:00
mixtan
fe66032d7e update: 平台搜索和店铺区分商品搜索,如果店铺搜索支持仅搜索店铺商品 2025-09-06 13:55:50 +08:00
mixtan
07be220126 feat: 店铺分类 2025-09-05 16:01:30 +08:00
lihaoyuan
85b6610eaa update:修改了订单进度条样式,附近店铺列表样式,个人中心样式 2025-09-05 11:06:30 +08:00
tanjy888
a9701f4347 update: 订单总金额使用接口返回的字段,而非前端计算总价格 2025-08-28 11:46:15 +08:00
tanjy888
6e01a07d0d feat: 商品分类列表实现购物车 2025-08-26 13:48:17 +08:00
mixtan
b3cfa37bb0 fix: 店铺分类查询商品列表添加店铺id 2025-08-22 15:27:55 +08:00
lihaoyuan
5745ec68f5 Merge branch 'main' of https://git.gpxscs.cn/front/java-mall-app 2025-08-21 15:48:27 +08:00
lihaoyuan
a7861abca0 update:把发现改成社区,更新社区样式 2025-08-21 15:48:12 +08:00
qijq
e52a5fd2f3 update 修复发现需要登录没有关闭的问题 2025-08-19 10:46:22 +08:00
qijq
0344e669b4 update 修复二维码 2025-08-18 17:55:55 +08:00
qijq
6032cfc13d update 编译包 2025-08-18 10:39:55 +08:00
qijq
1155891056 update 更新打包费,和测试扫码进入问题 2025-08-18 10:26:55 +08:00
qijq
038c9ecda5 update 修复扫码小程序跳转BUG 2025-08-15 08:22:42 +08:00
17e7e59c9d 添加 Jenkinsfile 2025-08-11 21:18:17 +08:00
mixtan
3f46bf31e8 feat: 实现装修秒杀活动购物车;联调秒杀活动加购。 2025-08-11 11:04:02 +08:00
qijq
601d49f812 update 登录 2025-08-06 12:23:17 +08:00
lihaoyuan
f5ecd349b6 update:修改了一键登录弹窗文字,修改了商品分类icon展示大小 2025-08-06 11:20:23 +08:00
qijq
333b945181 update 咨询需要登录 2025-08-02 15:02:10 +08:00
mixtan
8317f9c19f update: 修复装修组件bug 2025-08-01 12:11:13 +08:00
qijq
040b6fb4ca update 扫码 2025-08-01 12:09:37 +08:00
mixtan
6cb98e9f37 update: 修复蓝驰加购异常提示问题;实现全部商品销量下拉加载商品;修复购物车刘海安全边距背景透底问题;修复蓝驰加购按钮无禁用无提示问题; 2025-07-28 23:27:42 +08:00
mixtan
27e4e817c8 update: 模板1商品列表支持一键加购;分类商品加购按钮被挡住问题修复。 2025-07-27 11:27:46 +08:00
mixtan
7d6ef1a603 feat: 店铺头部支撑动态切换,只有默认模板才显示,装修时不显示 2025-07-24 22:07:09 +08:00
mixtan
86f3712098 update: 优化提示文案长度 2025-07-23 15:01:40 +08:00
mixtan
8aa7027bf6 feat: 实现秒杀商品和分类商品的一键加购。 2025-07-23 14:40:17 +08:00
qijq
28ae2b34b1 修复加入购物车点击太快问题 2025-07-21 16:25:09 +08:00
qijq
4b0a1eaa17 更新分类下加上store_id = 0 2025-07-21 16:13:07 +08:00
mixtan
293413a7e7 update: 修改config的setTabBarItem配置,首页命名改成推荐 2025-07-21 16:05:31 +08:00
mixtan
d50c8157af update: tabbar首页命名改成推荐 2025-07-21 16:00:22 +08:00
mixtan
4ecfb6e907 update: 首页分类导航修改第一个导航为推荐,原来是程序写死的"首页" 2025-07-21 15:57:06 +08:00
mixtan
2257caed23 update: 删除多余模块的代码 2025-07-09 17:36:18 +08:00
mixtan
2fe7fbbbd9 update: 新增发现和我的栏目 2025-07-09 17:16:34 +08:00
mixtan
b6c4e65ed9 feat: 实现商户导航功能涉及首页、发现、分类、购物车、商品;实现一键快速加购。 2025-07-09 09:17:45 +08:00
qijq
0bcad2ecb1 增加休息状态,修复评价字体大小 2025-06-29 21:08:02 +08:00
mixtan
d551c03564 fix: 修复苹果手机搜索框无法跳转搜索页的问题 2025-06-25 11:06:08 +08:00
mixtan
f1fd270762 fix: 修复手机号码被截断的问题,优化一键添加微信昵称,优化一键添加微信头像 2025-05-12 17:02:32 +08:00
mixtan
d663124cf4 fix: 修复首页分类菜单按钮在安卓荣耀手机被挡住的问题 2025-05-12 14:49:52 +08:00
qijq
dcafefc065 合并冲突 修改一键登录data 取值 增加点击客服一键登录 2025-05-12 12:59:47 +08:00
mixtan
ce588ca195 update: 修改组件vue后缀 2025-05-09 11:17:18 +08:00
mixtan
f75c13cf63 update: 恢复富文本解析组件 2025-05-09 10:58:36 +08:00
qijq
908f1e8bd0 删除无用的东西 2025-05-07 16:41:49 +08:00
mixtan
ee731a4892 Merge branch 'main' of http://git.gpxscs.cn/front/java-mall-app 2025-05-07 16:27:27 +08:00
mixtan
d72b3db56e deleted: 删除装修主题css多余引用,删除富文本解析备份文件 2025-05-07 16:27:11 +08:00
qijq
ede9287ad9 update loginPopup 2025-05-07 14:24:41 +08:00
mixtan
3d8f433afd delete: 删除util-mp文件,不再使用,直接在utils入口文件做条件编译,或后续把部分工具方法重构,方便多端复用,尽量减少差异化 实现跨平台统一 2025-05-07 14:05:15 +08:00
qijq
0e768d72f7 update 2025-05-07 13:56:01 +08:00
mixtan
e53abdda81 update: gitignore添加history忽略,一键登录成功后处理用户信息数据传递并关闭弹窗 2025-05-07 11:37:15 +08:00
mixtan
5a6938a857 feat: 联调code换openid、手机code换手机号码、获取用户信息、一键登录注册并简单封装对应方法 2025-05-07 10:22:53 +08:00
qijq
b3ef52a10d update 2025-05-05 11:44:41 +08:00
qijq
3e26f6d3b4 update 2025-04-24 15:47:08 +08:00
qijq
789f8bb290 update 2024-12-11 16:35:53 +08:00
qijq
8983c50e47 update 2024-11-19 16:55:58 +08:00
qijq
dd9a270507 update 2024-11-19 00:18:22 +08:00
qijq
997aad33a7 delect 2024-11-19 00:14:02 +08:00
2946 changed files with 440180 additions and 74083 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.hbuilderx
.history

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

298
.idea/workspace.xml Normal file
View File

@ -0,0 +1,298 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="7ad6e168-2bad-4033-9487-e4cb7263474e" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/activity/cutprice/detail.vue" beforeDir="false" afterPath="$PROJECT_DIR$/activity/cutprice/detail.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/checkout/checkout.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/checkout/checkout.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/member.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/coupon/member.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/userlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/cutprice/userlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/order.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/fightgroup/order.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/gift/exchange.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/gift/exchange.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/giftbag/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/giftbag/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/giftbag/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/giftbag/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/luckydraw/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/luckydraw/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/checkin.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/checkin.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/signin.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/market/signin.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/plantform/secondlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/plantform/secondlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/smashgoldeneggs/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/smashgoldeneggs/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/smashgoldeneggs/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/activity/smashgoldeneggs/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/selectCity.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/selectCity.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/selectShippingAddress.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/selectShippingAddress.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/umask.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/address/umask.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/favorable.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/favorable.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/favorabledetail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/favorabledetail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/scan.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/chain/chain/scan.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/category.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/category.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/plate.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/plate.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/post.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/post.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/searchsq.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/searchsq.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/userspace.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/userspace.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/video.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/community/video.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/chunlei-video/chunlei-video.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/chunlei-video/chunlei-video.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/douyin-scrollview/douyin-H-scrollview.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/douyin-scrollview/douyin-H-scrollview.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/five-comment/five-comment.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/five-comment/five-comment.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/five-mul-commentlist/five-mul-commentlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/five-mul-commentlist/five-mul-commentlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/q-post-waterfall/q-post-waterfall.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/q-post-waterfall/q-post-waterfall.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/tab.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/tab.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/video-lists/video-lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/components/video-lists/video-lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/nvueSwiper/nvueSwiper.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/community/nvueSwiper/nvueSwiper.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/HM-filterDropdown/HM-filterDropdown.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/WaterfallsFlow/WaterfallsFlow.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/WaterfallsFlow/WaterfallsFlow.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/WaterfallsFlowItem/WaterfallsFlowItem.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/WaterfallsFlowItem/WaterfallsFlowItem.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/actibity-countdown.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/actibity-countdown.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/chunlei-video/chunlei-video.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/chunlei-video/chunlei-video.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/coupon/coupon.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/coupon/coupon.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/day-countdown.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/day-countdown.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/delivery-time-op/delivery-time-op.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/delivery-time-op/delivery-time-op.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/download-app.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/download-app.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/five-comment/five-comment.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/five-comment/five-comment.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/five-mul-commentlist/five-mul-commentlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/five-mul-commentlist/five-mul-commentlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/guess-you-like.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/guess-you-like.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/header-nav-menu.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/header-nav-menu.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/item-list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/item-list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/jin-attachment/jin-attachment.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/jin-attachment/jin-attachment.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/loading.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/loading.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/loginPopup.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/loginPopup.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/mpvue-citypicker/mpvueCityPicker.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/mpvue-citypicker/mpvueCityPicker.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/payment-box.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/payment-box.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/product-list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/product-list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/quick-nav.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/quick-nav.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/share-box-mp.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/share-box-mp.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/shop/category.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/shop/category.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/status-bar.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/status-bar.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/store-lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/store-lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/diy-countdown.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/diy-countdown.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/diy.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/diy.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme1.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme1.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme2.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme2.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme3.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme3.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme4.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme4.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme5.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme6.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/themes/shoptheme6.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/tp-search/tp-search.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/tp-search/tp-search.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/u-lazy-load/u-lazy-load.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/u-lazy-load/u-lazy-load.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/u-waterfall/u-waterfall.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/u-waterfall/u-waterfall.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-badge.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-badge.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-collapse-item/uni-collapse-item.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-collapse-item/uni-collapse-item.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-collapse/uni-collapse.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-collapse/uni-collapse.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-drawer.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-drawer.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-drawer/uni-drawer.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-drawer/uni-drawer.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-icons/uni-icons.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-icons/uni-icons.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-list-item/uni-list-item.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-list-item/uni-list-item.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-list/uni-list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-list/uni-list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-nav-bar.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-nav-bar.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-status-bar.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-status-bar.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-number-box/uni-number-box.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-number-box/uni-number-box.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-popup/uni-popup.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-popup/uni-popup.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-tag/uni-tag.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-tag/uni-tag.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-transition/uni-transition.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-transition/uni-transition.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/verify-code/imgcode.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/verify-code/imgcode.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/verifycode-dialog/verifycode-dialog.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/verifycode-dialog/verifycode-dialog.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/video-lists/video-lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/video-lists/video-lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/watch-login/watch-button.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/watch-login/watch-button.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/watch-login/watch-input.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/watch-login/watch-input.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/zy-search/zy-search.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/components/zy-search/zy-search.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/add.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/add.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/my.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/my.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/receive.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/hall/purchase/receive.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/chat/chat.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/chat/chat.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/chat/emotion/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/chat/emotion/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/infos/infos.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/im/infos/infos.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/exchange.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/exchange.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/integral.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/integral.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/product.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/product.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/record.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/integral/record.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/sp/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/integral/sp/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/manage.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/manage.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/umask.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/address/umask.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/user_list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/card/user_list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/balance.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/balance.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/bankcard-add.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/bankcard-add.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/bankcard-list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/bankcard-list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/commissionapply.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/commissionapply.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/commissionwithdraw.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/commissionwithdraw.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predeposit.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predeposit.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositapply.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositapply.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositapplylist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositapplylist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/predepositlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/recharge.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/recharge.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/rechargelist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/cash/rechargelist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/endorsement.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/endorsement.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/fansrank.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/fansrank.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/profitlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fans/profitlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fanxiao-sign/sigin-in.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/fanxiao-sign/sigin-in.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/manage.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/manage.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/order.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/invoice/order.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/activity.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/activity.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/bindphone.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/bindphone.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/browse.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/browse.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/card.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/card.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/carddesc.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/carddesc.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/certification.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/certification.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/certifiedsns.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/certifiedsns.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/coupon.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/coupon.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/cwx-keyboard/cwx-keyboard.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/cwx-keyboard/cwx-keyboard.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/data.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/data.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/favorites-store.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/favorites-store.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/favorites.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/favorites.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/feedback-add.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/feedback-add.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/feedback.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/feedback.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/growth.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/growth.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/logout.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/logout.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/lx-coupon/lx-coupon.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/lx-coupon/lx-coupon.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/message.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/message.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/messagedetail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/messagedetail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/options.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/options.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/paypwd.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/paypwd.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/prize.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/prize.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/receiveprize.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/receiveprize.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/returndetail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/returndetail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/returnlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/returnlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/settlement-account-manage.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/settlement-account-manage.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/settlement-account.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/settlement-account.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/sign.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/sign.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/store-apply.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/store-apply.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/supermarketlList.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/supermarketlList.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/task.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/member/task.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/logistics.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/order/logistics.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/comment.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/comment.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/coupon.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/coupon.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/return.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/product/return.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/zwy-calendar/zwy-calendar.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/member/zwy-calendar/zwy-calendar.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/cart.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/cart.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/category/category.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/category/category.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/category/storeCategory.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/category/storeCategory.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkout/checkout.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkout/checkout.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cart.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/cart.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/guide.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/guide.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/h5_merch_apply.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/h5_merch_apply.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/image.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/image.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/member.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/member.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/commentlist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/commentlist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pages/product/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/category.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/category.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/article/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/category/brands.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/category/brands.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/category/tab-nvue/brandproduct.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/category/tab-nvue/brandproduct.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/diy-page/diy-page.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/diy-page/diy-page.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/about.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/about.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/category.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/category.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/components/tabbar.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/components/tabbar.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/store.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/index/store.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/info/edit.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/info/edit.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/info/list.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/info/list.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/forget.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/forget.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/pwd.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/pwd.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/register.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/register.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/sms.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/login/sms.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/product/tag.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/product/tag.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/scan/scan.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/scan/scan.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/search/search.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/search/search.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/subsite/ss-select-city/ss-select-city.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/subsite/ss-select-city/ss-select-city.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/subsite/subsitelist.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/subsite/subsitelist.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/video/video.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/video/video.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/webpage/web.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/webpage/web.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/westore/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/pagesub/westore/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/index/index.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/index/index.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/autograph.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/autograph.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/deliver.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/deliver.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/detail.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/detail.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/pay.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/pay.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/write.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/order/write.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/add.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/add.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/lists.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/lists.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/pool.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/pool.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/sale.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/sale.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/save.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/product/save.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/account.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/account.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/address.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/address.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/express.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/express.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/manage.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/store/manage.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/uni-plate-input/uni-plate-input.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/uni-plate-input/uni-plate-input.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/add.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/add.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/address.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/address.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/cart.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/cart.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/manage.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/seller/user/manage.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/ms-activity-tag/components/ms-activity-tag/ms-activity-tag.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/ms-activity-tag/components/ms-activity-tag/ms-activity-tag.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/search-box/components/search-box/search-box.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/search-box/components/search-box/search-box.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/activity/cutprice/detail.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/activity/cutprice/detail.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/components/u-parse/components/wxParseImg.json" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/components/u-parse/components/wxParseImg.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/pages/checkout/checkout.js" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/pages/checkout/checkout.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/pages/checkout/checkout.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/pages/checkout/checkout.wxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/project.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/unpackage/dist/dev/mp-weixin/project.config.json" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"customColor": "",
"associatedIndex": 5
}]]></component>
<component name="ProjectId" id="37V4yfMUMaf2oGpicbnRZMvXDJj" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"git-widget-placeholder": "main",
"settings.editor.selected.configurable": "preferences.pluginManager",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="7ad6e168-2bad-4033-9487-e4cb7263474e" name="Changes" comment="" />
<created>1766975162564</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1766975162564</updated>
<workItem from="1766975163875" duration="113000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>

576
App.vue

File diff suppressed because it is too large Load Diff

40
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,40 @@
pipeline {
agent any
environment {
DEPLOY_DIR = '/data/nginx/www/fafamall/h5' // 主节点部署目录(保留原配置)
DIST_PATH = 'dist' // 编译产物目录(保留原配置)
SLAVE_IP = '172.16.0.10' // 从节点 IP与之前一致
SLAVE_DEPLOY_DIR = '/data/nginx/www/fafamall/h5' // 从节点目标目录(与主节点一致)
SSH_PORT = '2203' // 从节点 SSH 端口(固定配置)
SSH_KEY = '/root/.ssh/id_rsa' // 主节点免密私钥路径(固定配置)
}
stages {
stage('拉取代码并验证') {
steps {
checkout scm
sh """
[ -d "${DIST_PATH}" ] || { echo "错误:未找到 ${DIST_PATH} 文件夹"; exit 1; }
echo "${DIST_PATH} 验证通过"
"""
}
}
stage('主节点部署') {
steps {
sh """
mkdir -p ${DEPLOY_DIR}
rm -rf ${DEPLOY_DIR}/*
cp -r ${DIST_PATH}/* ${DEPLOY_DIR}/
echo "主节点部署完成:${DIST_PATH} → ${DEPLOY_DIR}"
"""
}
}
}
post {
success { echo "🎉 h5 项目 - 主节点部署+从节点同步+Nginx重启全部完成" }
failure { echo "❌ h5 项目 - 部署/同步流程失败,请排查问题后重试" }
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,247 +1,301 @@
<template> <template>
<view class="page"> <view class="page">
<scroll-view class="m-scrollBox" scroll-y="true"> <scroll-view class="m-scrollBox" scroll-y="true">
<block v-if="(UserCoupon.length>0)"> <block v-if="UserCoupon.length > 0">
<view class="m-coupon-item" @click="changecoupon" :data-id="(item.user_voucher_id)" :data-item_id="(item.item_id)" v-for="(item, index) in UserCoupon" :key="index"> <view
<image lazy-load :src="((item.voucher_state_id==1501 && item.voucher_subtotal<=amount)?'https://static.lancerdt.com/xcxfile/appicon/images/coupon_red.png':'https://static.lancerdt.com/xcxfile/appicon/images/coupon_gray.png')" class="item-bg"></image> class="m-coupon-item"
@click="changecoupon"
:data-id="item.user_voucher_id"
:data-item_id="item.item_id"
v-for="(item, index) in UserCoupon"
:key="index"
>
<image
lazy-load
:src="
item.voucher_state_id == 1501 && item.voucher_subtotal <= amount
? 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/coupon_red.png'
: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/coupon_gray.png'
"
class="item-bg"
></image>
<view class="coupon-item-left"> <view class="coupon-item-left">
<view class="item-left-top">{{__('¥')}}<label style="font-size:64rpx">{{item.voucher_price}}</label></view> <view class="item-left-top"
<view class="item-left-bottom">{{sprintf(__('满(%s)可用'), item.voucher_subtotal)}}</view> >{{ __("¥")
</view> }}<label style="font-size: 64rpx">{{
<view class="coupon-item-right"> item.voucher_price
<view class="item-title item-title-black">{{item.activity_name}}</view> }}</label></view
<view class="item-middle">{{sprintf(__('满 %s 减 %s'), item.voucher_subtotal, item.voucher_price)}}</view> >
<view class="item-middle"> <view class="item-left-bottom">{{
<label class="item-time">{{item.voucher_start_date}}~{{item.voucher_end_date}}</label> sprintf(__("满(%s)可用"), item.voucher_subtotal)
</view> }}</view>
</view>
<view class="coupon-item-right">
<view class="item-title item-title-black">{{
item.activity_name
}}</view>
<view class="item-middle">{{
sprintf(
__("满 %s 减 %s"),
item.voucher_subtotal,
item.voucher_price
)
}}</view>
<view class="item-middle">
<label class="item-time"
>{{ item.voucher_start_date }}~{{
item.voucher_end_date
}}</label
>
</view>
<view class="item-desc"></view> <view class="item-desc"></view>
</view> </view>
<image lazy-load src="/static/images/checked.png" class="image-checked" v-if="(item.user_voucher_id == id_checked)" /> <image
</view> lazy-load
src="/static/images/checked.png"
class="image-checked"
v-if="item.user_voucher_id == id_checked"
/>
</view>
<button class="u-btn u-btn-default" style="margin-top:30rpx;" @click="uesnothing">{{__('不使用优惠券')}}</button> <button
</block> class="u-btn u-btn-default"
<view class="m-nullcontent" v-else> style="margin-top: 30rpx"
<view class="m-nullpage-middle"> @click="uesnothing"
<label class="iconfont icon-meiyougengduo"></label> >
<view class="m-null-tip"> {{ __("不使用优惠券") }}
<text>{{__('亲~什么都没有')}}</text> </button>
<text>{{__('赶快去领券中心吧')}}</text> </block>
</view> <view class="m-nullcontent" v-else>
</view> <view class="m-nullpage-middle">
</view> <label class="iconfont icon-meiyougengduo"></label>
</scroll-view> <view class="m-null-tip">
</view> <text>{{ __("亲~什么都没有") }}</text>
<text>{{ __("赶快去领券中心吧") }}</text>
</view>
</view>
</view>
</scroll-view>
</view>
</template> </template>
<script> <script>
import $ from "../../helpers/util"; import $ from "../../helpers/util";
import { import { mapState, mapMutations } from "vuex";
mapState,
mapMutations
} from 'vuex'
export default {
data() {
return {
options: {},
CartSelect: [],
amount: 0,
UserCoupon: [],
id_checked: 0,
IsUseCoupon: 1,
};
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__("使用优惠券"),
});
export default { var voucher_items = $.parseJSON(options.val);
data() { this.setData({
return { UserCoupon: voucher_items,
options: {}, id_checked: options.user_voucher_id,
CartSelect: [], amount: options.amount,
amount: 0, options: options,
UserCoupon: [], });
id_checked: 0,
IsUseCoupon: 1
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
onLoad: function(options) {
uni.setNavigationBarTitle({
title: this.__('使用优惠券')
});
var voucher_items = $.parseJSON(options.val); if (options.ifcart) {
this.setData({ this.getselect();
UserCoupon: voucher_items, }
id_checked: options.user_voucher_id, },
amount: options.amount, methods: {
options: options, ...mapMutations([
}) "login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
if (options.ifcart) { getselect: function () {
this.getselect() var that = this;
} var params = {};
that.$.request({
url: this.Config.URL.cart.getselect,
data: params,
success: function (data, status, msg, code) {
var isSelect = false;
if (status == 200) {
if (data["items"].length > 0) {
that.setData({
CartSelect: data["items"],
});
}
} else {
//that.$.confirm(msg);
}
},
});
},
changecoupon: function (e) {
var that = this;
var item_id = parseInt(e.currentTarget.dataset.item_id);
}, this.setData({
methods: { IsUseCoupon: 0,
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']), id_checked: parseInt(e.currentTarget.dataset.id),
});
getselect: function() { that.goback();
var that = this; },
var params = {}; uesnothing: function () {
that.$.request({ var that = this;
url: this.Config.URL.cart.getselect,
data: params,
success: function(data, status, msg, code) {
var isSelect = false;
if (status == 200) {
if (data['items'].length > 0) {
that.setData({
CartSelect: data['items']
})
}
} else {
//that.$.confirm(msg);
}
}
})
},
changecoupon: function(e) {
var that = this;
var item_id = parseInt(e.currentTarget.dataset.item_id);
this.setData({ this.setData({
IsUseCoupon: 0, IsUseCoupon: 0,
id_checked: parseInt(e.currentTarget.dataset.id) id_checked: 0,
}); });
that.goback(); this.goback();
}, },
uesnothing: function() { goback: function () {
var that = this; var that = this;
$.navigateBack(1, function () {
var params = that.options;
this.setData({ params.user_voucher_id = that.id_checked;
IsUseCoupon: 0, that.notice.postNotificationName("RefreshCoupon", params);
id_checked: 0 });
}); },
},
this.goback(); };
},
goback: function() {
var that = this;
$.navigateBack(1, function() {
var params = that.options;
params.user_voucher_id = that.id_checked;
that.notice.postNotificationName("RefreshCoupon", params)
})
}
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; @import "../../styles/_variables";
.m-scrollBox { .m-scrollBox {
padding: 10rpx 10rpx 0rpx; padding: 10rpx 10rpx 0rpx;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.m-coupon-item { .m-coupon-item {
margin: 10rpx 10rpx 20rpx; margin: 10rpx 10rpx 20rpx;
position: relative; position: relative;
width: 100%; width: 100%;
height: 190rpx; height: 190rpx;
} }
.m-coupon-item .item-bg { .m-coupon-item .item-bg {
width: 710rpx; width: 710rpx;
height: 190rpx; height: 190rpx;
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
} }
.coupon-item-left { .coupon-item-left {
position: absolute; position: absolute;
color: white; color: white;
text-align: center; text-align: center;
width: 250rpx; width: 250rpx;
padding: 25rpx 0rpx; padding: 25rpx 0rpx;
} }
.item-left-top { .item-left-top {
line-height: 100rpx; line-height: 100rpx;
font-weight: bold; font-weight: bold;
} }
.item-left-top label { .item-left-top label {
font-size: 90rpx; font-size: 90rpx;
} }
.item-left-bottom { .item-left-bottom {
font-size: 24rpx; font-size: 24rpx;
} }
.coupon-item-right { .coupon-item-right {
position: absolute; position: absolute;
left: 250rpx; left: 250rpx;
top: 0; top: 0;
width: 420rpx; width: 420rpx;
height: 170rpx; height: 170rpx;
padding: 10rpx 20rpx; padding: 10rpx 20rpx;
font-size: 22rpx; font-size: 22rpx;
color: gray; color: gray;
} }
.item-title { .item-title {
line-height: 40rpx; line-height: 40rpx;
font-size: 28rpx; font-size: 28rpx;
height: 80rpx; height: 80rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
} }
.item-title-black { .item-title-black {
color: #333; color: #333;
} }
.item-middle { .item-middle {
height: 50rpx; height: 50rpx;
line-height: 50rpx; line-height: 50rpx;
font-size: 24rpx; font-size: 24rpx;
} }
.item-usenow { .item-usenow {
font-size: 24rpx; font-size: 24rpx;
border: 1px solid $default-skin-bg; border: 1px solid $default-skin-bg;
float: right; float: right;
color: $default-skin-bg; color: $default-skin-bg;
border-radius: 40rpx; border-radius: 40rpx;
padding: 0 15rpx; padding: 0 15rpx;
position: relative; position: relative;
top: -8rpx; top: -8rpx;
line-height: 40rpx; line-height: 40rpx;
} }
.item-desc { .item-desc {
height: 50rpx; height: 50rpx;
line-height: 50rpx; line-height: 50rpx;
margin-top: 5rpx; margin-top: 5rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 1; -webkit-line-clamp: 1;
} }
.image-checked { .image-checked {
position: absolute; position: absolute;
right: 20rpx; right: 20rpx;
bottom: 0; bottom: 0;
width: 50rpx; width: 50rpx;
height: 50rpx; height: 50rpx;
} }
</style> </style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,198 +1,240 @@
<template> <template>
<view class="page"> <view class="page">
<view class="search"> <view class="search">
<slot></slot> <slot></slot>
<template> <template>
<input maxlength="20" type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入兑换码')" v-model="code" /> <input
</template> maxlength="20"
<!-- <image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/search.svg" mode="aspectFit" @click="searchStart()" class="search-icon"></image> --> type="text"
<button mode="aspectFit" @click="searchStart()" style="background-color: crimson;color: aliceblue;margin-top: 40rpx;">立即兑换</button> value=""
</view> confirm-type="search"
@confirm="searchStart()"
:placeholder="__('请输入兑换码')"
v-model="code"
/>
</template>
<!-- <image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/zy-search/search.svg" mode="aspectFit" @click="searchStart()" class="search-icon"></image> -->
<button
mode="aspectFit"
@click="searchStart()"
style="background-color: crimson; color: aliceblue; margin-top: 40rpx"
>
立即兑换
</button>
</view>
<block v-if="(isData)"> <block v-if="isData">
<view class="m-cells m-cells-form"> <view class="m-cells m-cells-form">
<view class="m-cell"> <view class="m-cell">
<view class="m-cell-hd" style="width: 140rpx;"><label class="u-label">{{activityInfo.activity_title}}</label></view> <view class="m-cell-hd" style="width: 140rpx"
</view> ><label class="u-label">{{
</view> activityInfo.activity_title
<view class="m-product-list"> }}</label></view
<view v-for="(item, ii) in activityInfo.items" :key="ii" class="m-product-item"> >
<view class="m-product-img"> </view>
<image :src="item.product_image" mode="aspectFill" /> </view>
</view> <view class="m-product-list">
<view class="m-product-info"> <view
<view class="m-product-name"> v-for="(item, ii) in activityInfo.items"
<label>{{ item.product_name }}</label> :key="ii"
</view> class="m-product-item"
>
<view class="m-product-price"> <view class="m-product-img">
<block v-if="item.item_unit_price"> <image :src="item.product_image" mode="aspectFill" />
<label>{{ __('¥') }}</label> </view>
{{ item.item_unit_price }} <view class="m-product-info">
</block> <view class="m-product-name">
<text style="float: right;margin-right: 60rpx;">x{{ item.item_quantity }}</text> <label>{{ item.product_name }}</label>
</view> </view>
</view>
</view>
</view>
<button class="u-btn u-btn-default" @click="submitInfo" style="margin-top:40rpx;">{{ __('领取礼包') }}</button>
</block>
<view class="u-loadmore u-loadmore-line" v-else>
<text class="u-loadmore-tips">{{__('没有更多数据啦!')}}</text>
</view>
</view>
<view class="m-product-price">
<block v-if="item.item_unit_price">
<label>{{ __("¥") }}</label>
{{ item.item_unit_price }}
</block>
<text style="float: right; margin-right: 60rpx"
>x{{ item.item_quantity }}</text
>
</view>
</view>
</view>
</view>
<button
class="u-btn u-btn-default"
@click="submitInfo"
style="margin-top: 40rpx"
>
{{ __("领取礼包") }}
</button>
</block>
<view class="u-loadmore u-loadmore-line" v-else>
<text class="u-loadmore-tips">{{ __("没有更多数据啦!") }}</text>
</view>
</view>
</template> </template>
<script> <script>
import { import { mapState, mapMutations } from "vuex";
mapState,
mapMutations
} from 'vuex';
export default { export default {
data: function() { data: function () {
return { return {
code: '', code: "",
activityInfo: {}, activityInfo: {},
isData: false, isData: false,
}; };
}, },
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']), computed: mapState([
onLoad: function(options) { "Config",
uni.setNavigationBarTitle({ "StateCode",
title: this.__('礼包兑换') "notice",
}); "plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__("礼包兑换"),
});
var that = this; var that = this;
this.forceUserInfo(function(user) { this.forceUserInfo(function (user) {
console.log(user); console.log(user);
that.setData({ that.setData({
serial_code: user.serial_code serial_code: user.serial_code,
}); });
}); });
}, },
methods: { methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']), ...mapMutations([
searchStart(e) { "login",
var that = this; "logout",
if (!this.code) { "getPlantformInfo",
that.$.alert("请输入兑换码!"); "forceUserInfo",
return; "getUserInfo",
} ]),
var params = { searchStart(e) {
code: this.code var that = this;
}; if (!this.code) {
that.$.request({ that.$.alert("请输入兑换码!");
url: this.Config.URL.store.getActivityCodeList, return;
method: 'post', }
data: params, var params = {
success: function(data, status, msg, code) { code: this.code,
if (status == 200) { };
that.setData({ that.$.request({
activityInfo: data, url: this.Config.URL.store.getActivityCodeList,
isData: true, method: "post",
}) data: params,
} else { success: function (data, status, msg, code) {
that.$.alert(msg); if (status == 200) {
that.setData({ that.setData({
activityInfo: {}, activityInfo: data,
isData: false, isData: true,
}) });
} } else {
} that.$.alert(msg);
}); that.setData({
}, activityInfo: {},
isData: false,
});
}
},
});
},
submitInfo: function() { submitInfo: function () {
var that = this; var that = this;
var pat = [] var pat = [];
var items = this.activityInfo.activity_rule.quantity var items = this.activityInfo.activity_rule.quantity;
for (var i in items) { for (var i in items) {
if (items[i].quantity > 0) { if (items[i].quantity > 0) {
var t = items[i].item_id + '|' + items[i].quantity var t = items[i].item_id + "|" + items[i].quantity;
pat.push(t) pat.push(t);
} }
} }
if (pat.length <= 0) {
that.$.alert("亲~请选择商品!");
return;
}
var str = pat.join(",");
if (pat.length <= 0) { that.$.navigateTo({
that.$.alert("亲~请选择商品!"); url:
return "/pages/checkout/checkout?ifcart=0&cart_id=" +
} str +
"&activity_id=" +
var str = pat.join(','); that.activityInfo.activity_id +
that.$.navigateTo({ "&code=" +
url: "/pages/checkout/checkout?ifcart=0&cart_id=" + str + "&activity_id=" + that.activityInfo.activity_id + "&code=" + that.code that.code,
}) });
}, },
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
.search { .search {
width: 640rpx; width: 640rpx;
margin: 30rpx auto 20rpx; margin: 30rpx auto 20rpx;
position: relative; position: relative;
input { input {
background-color: #ffffff; background-color: #ffffff;
padding: 10rpx 74rpx; padding: 10rpx 74rpx;
font-size: 28rpx; font-size: 28rpx;
border-radius: 50rpx; border-radius: 50rpx;
} }
.voice-icon { .voice-icon {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 16rpx 20rpx 16rpx 0; padding: 16rpx 20rpx 16rpx 0;
position: absolute; position: absolute;
left: 16rpx; left: 16rpx;
top: 4rpx; top: 4rpx;
z-index: 10; z-index: 10;
} }
.search-icon { .search-icon {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 16rpx 20rpx 16rpx 0; padding: 16rpx 20rpx 16rpx 0;
position: absolute; position: absolute;
right: 0; right: 0;
top: -2rpx; top: -2rpx;
z-index: 10; z-index: 10;
} }
} }
.m-product-img { .m-product-img {
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
image { image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.m-product-info { .m-product-info {
height: 120rpx; height: 120rpx;
margin-left: 20rpx; margin-left: 20rpx;
} }
.m-product-item { .m-product-item {
height: 120rpx; height: 120rpx;
} }
.m-product-name { .m-product-name {
height: 120rpx; height: 120rpx;
}
} .m-product-name uni-label {
-webkit-line-clamp: 1;
.m-product-name uni-label { }
-webkit-line-clamp: 1;
}
</style> </style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3877
address/citys.js Normal file

File diff suppressed because it is too large Load Diff

488
address/selectCity.vue Normal file
View File

@ -0,0 +1,488 @@
<template>
<view class="nyn-city-list-container">
<!-- 搜索框 -->
<!-- <view class="search">
<input
type="text"
placeholder="请输入城市名称"
placeholder-style="font-size:20rpx"
@input="bindinputCitys"
/>
</view> -->
<uni-nav-bar
title=""
:fixed="true"
:border="false"
:left-width="'60rpx'"
:right-width="'160rpx'"
:statusBar="true"
:height="'34px'"
>
<block slot="left">
<view class="left-block" @click="handerSkip">
<image
style="
width: 11px;
height: 18px;
vertical-align: middle;
margin-left: 6px;
"
lazy-load
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAA2CAYAAABJN/BMAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIaADAAQAAAABAAAANgAAAADEgMuSAAAF8ElEQVRYCc2Ya2hcVRDHk91sHo3mTR5rbJrnapsYTKIfWmMSapWKICJCoeCHfgqCKGh9VFRE1FiFopQYEbRYW1SsobVfpFahjRoxEYvGmDQJeZAHTbJ5rtnNY9ffhNzl3JtNzN3cBA8Md86ce2b+Z2bOnHNvRMT/oNm3GUNkXl7ezvj4+Pnp6elFzbZNY7bjWVBQsBs756Kjo4+q9rbLEzY8UBwIBC5iXIDUJCcnBwDT4vF4FrYDhC0/P78qMjLyE4wXKB4oi42NbXe73e1bHo7CwsI78EA9dJsCIAJQP8fExDQhC0SqAxbzNnKgVEIAORXdC/CXvF7vY0NDQ/+IfKs8YcMD+/1+/xchAHyJ7IgGQEBsiSdIwrvQfRbKV20Qgkb6td3d3Td4BltUkLOGseOBiqWlpQuoS1dUzsNfIBEPt7W1Ca9rVobDjgceIATiASOAz9iOtaEACBrLwsE23Eusz6Azx6D3bFxc3JMAcIvBUM0KT9iLioruAcA3GNgFaQvzkQOny8vLH18PgIDSJggfTrOzDR8iBO8zeaeiwAf/8eLi4kv9/f0Tijwku6mKCYAqPPARmm+FggvCA6cA9kJfX99kSKsGYXCiQb5ut7q6OmpgYKCSlxoBkai87AXAp11dXbU8A4p8XdZ0TgiAwcHBh9F62gjAZrN9gPGjZgAIOtPhiIqKug/jH0K3qMvDcD30Kl6YVuUb4TccDrLcMTk5uR/jX6E4XlE+B99AFXzGrAc0HRsKxwqARwEgx7EKQA6g96gDr4QLQIBsKBwYeZB366FMmaS0dxl7kzowq8hMs+uGQzwwNTV1UE5DNMcq2j2s/AQheFmRhc2uGY4VAIcAIHVAB4D+O7Ozs3VhWzVMXDMcuPkRckAqoXoYRbAN6+bm5o6PjIxIPljSVoXD6XTuAMATeOA4LlfH5+ieJATPWWJZUaK7TwgAzvyn8MAxAwAvHmiw2+2vK3MtY3UgAHAQzc9DNxksnMMzr1GIZgxyS7q6xGT1slL1LFg2gtxJpTQCswSAKNGBoH8V8suA2ghPJVe2Ezk5OVmq3CpetzsSExNbiL3cC+QrSU1KAetibA/fkY3qd6QVQHQgOBtmU1JSrqD4dqgAUj0lfCFhKUlNTb3Ml5NlW1QHAiMRExMTHlb7LTshmW4JpEte+nlQVkZGxtWxsTE5vDbdVoEQjbh7jtA04X5JxnJIfU/43eyW3NLS0vO9vb2rcohxU01VrptIaLxc4a/4fL4MBooh1SMyr5hzJQ+wP8i7uskmO2uCED3Dw8MLGPmOLSrdOyH1DBGZizG+8pN/JIxyuQ2rqYkXUgHu9s7Pz7/N4FuQMRljkB0BSB3bWN1NIXWtJTQz0c4HzosYC1VR5VP/JDvnWEdHh+mqum44DMgDuLwpLS3NDRBJ1psN4yXIYzl/mkdHR1d9bxre1XXNgJCJgdzc3Gskq3xV10Bqjjjol7FrHNSQy/AbbmZBSLL68cg1knGAEFRhaYdizYE3Kil4dq4Dv8zMzMgPkf9spkFoGgHyB8Y66UtoUjX5yrPC4XD4AdKyESBhgxBjALlOCf+b1R+gq56y0cju5neAh3d+WgG25mNTINAaIP7deKSZ0AiQBGh5x9GPhr8fkFMJCQm/U9CCP0+R69pmQSwrY7UDGGtm9aUInFBw6yPbB6AZit6aQCwBIUjwyBBAfsWo7Jo0ka00KWh7oRG88ZsmVJ9BxKpwM7zL5crlv8R5wOxBj1qR/XhEquvnXBN1Jd4yT2jAx8fHJ9PT07+nXriQ7VKAyILlz+6NrKysPyloS/SXm+UgRCtA3ABpAkgFXfmHpbU4mH1cFa8Tvr80oeXh0BTLk6uAXJrPQfdCUlG1No9HDiUlJV1sbW3d2h/s7BpfZmbmJVYu/zLkyqh5Xp41nM49eKRDTRwNpaXP9vb2YU7Xp1n51wbFEhrZOf4tByGGOzs7x8rKyg7DnoLkFuaB3mCXnOEZ/kWEyaab5AgeeZbtO9zT09OAgk3fT02DkAnZ2dlx8vNNnfwvwX82xj5+deEAAAAASUVORK5CYII="
/>
</view>
</block>
<view class="input-view">
<uni-icons
type="search"
size="22"
color="#666666"
style="line-height: 60rpx"
/>
<input
confirm-type="search"
class="input"
type="text"
placeholder="输入城市名进行搜索"
@input="bindinputCitys"
/>
</view>
</uni-nav-bar>
<!-- 热门城市 -->
<view class="ynq-AutoAddress">
<text class="iconfontAili icon-dingwei1"></text>
<text style="margin: 0 12rpx">当前定位城市</text>
<text>{{ loactionCity }}</text>
</view>
<text>热门城市</text>
<view class="hot">
<view
class="hot-item"
v-for="item in hotList"
:key="item.id"
@tap="bindCity(item)"
:data-city="item.name"
>{{ item.name }}</view
>
</view>
<!-- 首字母检索 -->
<view class="searchLetter touchClass">
<!-- 右边字母数据数据 触摸事件-->
<view
v-for="item in searchLetter"
:key="item.name"
:data-letter="item.name"
:style="{ height: `${itemH}px` }"
@touchstart.stop="searchStart"
@touchmove.stop="searchMove"
@touchend.stop="searchEnd"
>{{ item.name }}</view
>
</view>
<!-- 左边字母跟右边字母true时 屏幕中心显示选中的首字母-->
<!-- 居中首字母样式 -->
<view class="cont_Letter" v-if="isShowLetter">
{{ showLetter }}
</view>
<scroll-view
scroll-y="true"
:style="{ height: `${winHeight}px` }"
:scroll-top="scrollTop"
enhanced
:show-scrollbar="false"
v-if="!search"
>
<!-- 循环城市数据 -->
<view v-for="(value, key) in cityList" :key="key">
<!-- 循环首字母检索信息 -->
<view class="list_letter">{{ key }}</view>
<!-- 城市ID城市名称 -->
<view
class="item_city"
v-for="item in value"
:key="item.id"
:data-city="item.name"
@tap="bindCity(item)"
>{{ item.name }}</view
>
</view>
</scroll-view>
<!-- 搜索列表 -->
<view class="list" v-if="search">
<view
class="text"
v-for="item in searchList"
:key="item.id"
@tap="bindCity(item)"
:data-city="item.name"
>{{ item.name }}</view
>
</view>
</view>
</template>
<script>
import address from "./citys.js";
export default {
name: "NynCityList",
props: {
hot: {
type: Boolean,
required: false,
default: true,
},
},
data() {
return {
isShowLetter: false, //
showLetter: "A", //
searchLetter: [], //
itemH: 0, //
startPageY: 0, //Y
bHeight: 0,
tHeight: 0,
CityName: "",
scrollTop: 0, //
winHeight: 0, //
cityList: [], //
hotList: [], //
search: false, //
searchList: [],
time: 0,
loactionCity: "无法定位",
isAdd: false,
};
},
onShow() {
let currentAddress = uni.getStorageSync("currentAddress");
let loactionCity = uni.getStorageSync("loactionCity");
if (currentAddress) {
if (currentAddress.area) {
this.loactionCity = currentAddress.area;
}
if (!currentAddress.area && currentAddress.city) {
this.loactionCity = currentAddress.city;
}
if (!currentAddress.area && !currentAddress.city && currentAddress.addr) {
let regex = /(\S+市)/g;
let matches = currentAddress.addr.match(regex);
if (matches && matches.length > 0) {
let firstMatch = matches[0]; // xx
this.loactionCity = firstMatch;
}
}
}
this.loactionCity = loactionCity;
},
onLoad(options) {
if (options.isAdd) {
this.isAdd = options.isAdd;
}
this.initList();
},
methods: {
handerSkip() {
uni.navigateBack();
},
/* 列表初始化 */
initList() {
let searchLetter = [];
for (let key in address.cities) {
searchLetter.push(key);
}
let hotList = address.hotCities;
let cityList = address.cities;
let sysInfo = uni.getSystemInfoSync();
let winHeight = sysInfo.windowHeight;
//
//
let itemH = winHeight / searchLetter.length;
let tempObj = [];
for (let i = 0; i < searchLetter.length; i++) {
let temp = {};
temp.name = searchLetter[i];
temp.tHeight = i * itemH;
temp.bHeight = (i + 1) * itemH;
tempObj.push(temp);
}
this.winHeight = winHeight;
this.itemH = itemH - "20";
this.searchLetter = tempObj;
this.cityList = cityList;
this.hotList = hotList;
},
/* 搜索城市时触发 */
bindinputCitys(e) {
if (this.time !== null) {
clearTimeout(this.time);
}
this.time = setTimeout(() => {
if (e.detail.value != "") {
this.search = true;
} else {
this.search = false;
}
let cities = this.cityList;
let cyits = [];
for (let key in cities) {
for (let i = 0; i < cities[key].length; i++) {
if (
cities[key][i].name.search(e.detail.value) != -1 ||
cities[key][i].spell.search(e.detail.value) != -1
) {
cyits.push(cities[key][i]);
}
}
}
this.searchList = cyits;
}, 300);
},
/* 检索字母拖动开始 */
searchStart(e) {
let showLetter = e.currentTarget.dataset.letter;
let pageY = e.touches[0].pageY;
this.setScrollTop(showLetter);
this.nowLetter(pageY);
this.showLetter = showLetter;
this.startPageY = pageY;
this.isShowLetter = true;
// let pageY = e.touches[0].pageY;
// this.nowLetter(pageY);
// this.startPageY = pageY;
// this.isShowLetter = true
},
/* 检索字母拖动中 */
searchMove(e) {
let pageY = e.touches[0].pageY;
let startPageY = this.startPageY;
let tHeight = this.tHeight;
let bHeight = this.bHeight;
// let showLetter = 0;
if (startPageY - pageY > 0) {
//
if (pageY < tHeight) {
this.nowLetter(pageY);
}
} else {
//
if (pageY > bHeight) {
this.nowLetter(pageY);
}
}
},
/* 检索字母拖动结束 */
searchEnd() {
setTimeout(() => {
this.isShowLetter = false;
}, 1000);
},
/* 点击城市 */
bindCity(item) {
//
// this.$emit("bindCity", item);
uni.setStorageSync("city", item.name);
uni.navigateBack();
},
/* 设置scroll-view滚动距离 */
setScrollTop(showLetter) {
let scrollTop = 0;
let cityList = this.cityList;
let cityCount = 0;
let initialCount = 0;
for (let key in cityList) {
if (showLetter == key) {
scrollTop = initialCount * 30 + cityCount * 41;
break;
} else {
initialCount++;
cityCount += cityList[key].length;
}
}
this.scrollTop = scrollTop;
},
/* */
nowLetter(pageY) {
let letterData = this.searchLetter;
let bHeight = 0;
let tHeight = 0;
let showLetter = "";
for (let i = 0; i < letterData.length; i++) {
if (letterData[i].tHeight <= pageY && pageY <= letterData[i].bHeight) {
bHeight = letterData[i].bHeight;
tHeight = letterData[i].tHeight;
showLetter = letterData[i].name;
break;
}
}
// this.setScrollTop(showLetter);
this.bHeight = bHeight;
this.tHeight = tHeight;
this.showLetter = showLetter;
this.startPageY = pageY;
},
},
};
</script>
<style lang="scss" scoped>
.nyn-city-list-container {
padding: 0 48rpx;
background: #fff;
height: 100%;
overflow: hidden;
.ynq-AutoAddress {
margin: 48rpx 0;
}
/* 隐藏滚动条 */
.scroll-view {
scrollbar-width: none; /* Firefox */
}
.scroll-view::-webkit-scrollbar {
display: none; /* Chrome, Safari */
}
.input-view {
width: 92%;
display: flex;
background-color: #f5f5f5;
height: 60rpx;
border-radius: 30rpx;
padding: 0 4%;
flex-wrap: nowrap;
margin: 10rpx 0;
line-height: 60rpx;
margin-left: 10rpx;
color: #b9b9b9;
}
.input-view .uni-icon {
line-height: 60rpx !important;
font-size: 24rpx;
}
.input-view .uni-icons {
font-size: 32rpx !important;
}
.input-view .input {
height: 60rpx;
line-height: 60rpx;
width: 94%;
padding: 0 2%;
font-size: 24rpx;
}
}
.search {
background-color: #ffffff;
border: 1px solid #cccccc;
width: 686rpx;
border-radius: 100rpx;
margin: 20rpx auto;
padding: 4rpx;
input {
line-height: 60rpx;
text-align: left;
padding-left: 20rpx;
}
}
/* 首字母样式 */
.searchLetter {
position: fixed;
right: 0;
top: 20%;
width: 30px;
height: 80%;
text-align: center;
justify-content: center;
display: flex;
flex-direction: column;
color: #666;
background-color: #fff;
z-index: 1;
view {
height: 50rpx;
}
}
/* 右边首字母样式 */
.touchClass {
color: #666;
font-size: 28rpx;
}
/* 居中显示的选中首字母 */
.cont_Letter {
background-color: #666;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 50%;
left: 50%;
margin: -50px;
width: 100px;
height: 100px;
border-radius: 10px;
font-size: 26px;
z-index: 1;
}
/* 循环数据首字母检索 */
.list_letter {
display: flex;
background-color: #fff;
height: 30px;
color: #2a2a2a;
font-size: 26rpx;
align-items: center;
position: sticky;
top: 0;
}
/* 城市样式 */
.item_city {
display: flex;
background-color: #fff;
height: 40px;
line-height: 40px;
color: #2a2a2a;
font-size: 28rpx;
align-items: center;
border-bottom: 1px solid #f8f8f8;
}
.hot {
background: #ffffff;
display: flex;
flex-flow: wrap;
margin: 10px 0px;
justify-content: space-between;
.hot-item {
font-size: 28rpx;
padding: 4px 11px;
border-radius: 6px;
margin-bottom: 8px;
background: #f5f5f6;
width: 17%;
text-align: center;
}
}
.list {
.eng {
background: #ffffff;
padding: 30rpx;
color: #212121;
}
.text {
color: #212121;
font-size: 28rpx;
height: 40px;
line-height: 40px;
border-bottom: 1px solid #e6e6e6;
}
}
</style>

View File

@ -0,0 +1,898 @@
<template>
<view class="address-container">
<view class="hander">
<uni-nav-bar
title=""
:fixed="true"
:statusBar="false"
:border="false"
:left-width="'132rpx'"
:right-width="'0rpx'"
>
<block slot="left">
<view class="left-block" @click="handerSkip">
<text class="iconfontAili icon-dingwei1"></text>
<text class="city-block">{{
originalData.result.addressComponent.city
}}</text>
<text class="iconfontAili icon-xiala"></text>
</view>
</block>
<view class="input-view">
<uni-icons
type="search"
size="22"
color="#666666"
style="line-height: 60rpx"
/>
<input
confirm-type="search"
class="input"
type="text"
placeholder="请输入收货地址"
@click="onSearch"
@input="handerAddress"
/>
</view>
</uni-nav-bar>
</view>
<scroll-view
v-if="!showSearchAddress"
class="uni-swiper-list"
scroll-y
@scroll="onScroll"
scroll-with-animation="true"
:scroll-top="scrollTop"
>
<view class="address-block">
<view class="address-box">
<view class="address-left-block">{{
originalData.result.sematic_description
}}</view>
<view class="address-right-block" @click="anewLoction">
<text class="iconfontAili icon-zhongxindingwei"></text>
<view style="padding-left: 8rpx">重新定位</view>
</view>
</view>
</view>
<view
class="list-block"
v-if="userInfo.token && formatAddreesList.length > 0"
>
<view class="list-title-block">
<text class="iconfontAili icon-dianpu"></text>
<text class="title-block">我的收货地址</text>
</view>
<view
class="list-item"
v-for="(item, index) of formatAddreesList"
:key="index"
@click="handerSetAddress(item, 'my')"
>
<view class="item-info">
<text
:class="['item-lable', lableCalss(item.ud_label)]"
v-if="
item.ud_label == 1 || item.ud_label == 2 || item.ud_label == 3
"
>{{ labelList[item.ud_label] }}</text
>
<text class="item-address">{{ item.ud_marker }}</text>
<text class="item-detailed-address">{{ item.ud_street_no }}</text>
</view>
<view class="item-role-info">
<text class="item-name">{{ item.ud_name }}</text>
<text class="item-sex">{{ item.sex == 0 ? "先生" : "女士" }}</text>
<text class="item-mobile">{{ item.ud_mobile }}</text>
</view>
</view>
<view
class="tips"
@click="handerList"
v-if="formatAddreesList.length > 4"
>
{{ showFormatAddreesList ? "收起全部地址" : "展开更多地址" }}
<text
:class="[
'iconfontAili ',
showFormatAddreesList ? 'icon-top' : 'icon-xiala',
]"
></text>
</view>
</view>
<view class="list-block">
<view class="list-title-block">
<text class="iconfontAili icon-dingwei1"></text>
<text class="title-block">附近地址</text>
</view>
<view
class="list-item"
v-for="(item, index) of nearbyAddressList"
:key="index"
>
<view class="item-info" @click="handerSetAddress(item)">
<text class="item-address">{{ item.name }}</text>
</view>
</view>
</view>
<uMask :show="showMask" :zIndex="2" @click="showMask = false"></uMask>
</scroll-view>
<scroll-view
v-if="showSearchAddress && searchAddress.length > 0"
class="uni-swiper-list"
scroll-y
@scroll="onScroll"
scroll-with-animation="true"
:scroll-top="scrollTop"
>
<view class="search-address-list">
<view
class="search-address-item"
v-for="(item, index) of searchAddress"
:key="index"
>
<view
class="search-address-item-left"
@click="handerSetAddress(item)"
>
<view class="item-left-name" v-html="item.searchName"></view>
<view class="item-left-address">{{
item.detailedInformation
}}</view>
</view>
<view class="search-address-item-right">{{ item.distance }}km</view>
</view>
</view>
</scroll-view>
<view class="u-btn u-btn-default" @click="AddAddress">
<text class="iconfontAili icon-zengjiatianjiajiahao"></text>
<text>新增收货地址</text>
</view>
<loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup>
</view>
</template>
<script>
import uMask from "./umask.vue";
import BMapLib from "../helpers/GeoUtils.js";
import { mapState, mapMutations } from "vuex";
import loginPopup from "@/components/loginPopup.vue";
var bmap = require("../libs/bmap-wx.js");
export default {
components: {
uMask,
loginPopup,
},
data() {
return {
scrollTop: 0,
showMask: false,
originalData: {
result: {
addressComponent: {
city: "正在定位",
},
sematic_description: "定位中..",
},
},
addressList: [],
formatAddreesList: [],
showFormatAddreesList: false,
nearbyAddressList: [],
showSearchAddress: false,
time: 0,
searchAddress: [],
labelList: ["", "家", "公司", "学校"],
options: {},
showLoginPopup: false,
};
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad(options) {
console.log("options", options);
if (options && options.isShopList) {
this.options = options;
}
},
onShow() {
if (this.userInfo.token) {
this.getAddressList();
}
let city = uni.getStorageSync("city");
if (!city) {
this.isPhoneLocationEnabled();
} else {
this.originalData.result.addressComponent.city = city;
}
},
onUnload() {
uni.switchTab({
url: `/pages/index/index`,
});
uni.removeStorageSync("city");
},
methods: {
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
"setCartNum",
]),
closeLoginPopup() {
this.showLoginPopup = false;
},
lableCalss(number) {
if (number == 1) {
return "item-lable-1";
}
if (number == 2) {
return "item-lable-2";
}
if (number == 3) {
return "item-lable-3";
}
},
getAddressList() {
let that = this;
that.$.request({
url: that.Config.URL.user.address_lists,
data: {},
success: function (data, status, msg, code) {
if (200 == status) {
if (data.items.length > 0) {
console.log(that.addressList);
that.addressList = data.items;
that.formatAddreesList = that.addressList.slice(0, 4);
} else {
that.setData({
isdata: false,
});
}
}
uni.stopPullDownRefresh();
},
});
},
AddAddress() {
if (!this.hasLogin) {
this.showLoginPopup = true;
return;
}
uni.navigateTo({
url: "/member/address/manage",
});
},
handerSetAddress(item, type) {
if (type == "my") {
let group = {
name: item.ud_marker,
location: {
lat: item.ud_latitude,
lng: item.ud_longitude,
},
...item,
};
uni.setStorageSync("currentAddress", group);
} else {
uni.setStorageSync("currentAddress", item);
}
if (this.options && this.options.isShopList) {
uni.navigateTo({
url: `/member/member/supermarketlList`,
});
} else {
uni.switchTab({
url: "/pages/index/index",
});
}
},
anewLoction() {
uni.removeStorageSync("currentAddress");
uni.switchTab({
url: "/pages/index/index",
});
},
isPhoneLocationEnabled() {
let _this = this;
//
uni.getSystemInfo({
success: (res) => {
const locationEnabled = res.locationEnabled;
if (locationEnabled) {
// GPSAPP访
_this.isAppAuthorized();
} else {
// GPS
uni.showModal({
title: "提示",
content:
'小程序需要基于您的手机定位信息为您提供服务,当前检测到您的手机并未打开定位开关,请关闭小程序后前往 "设置 - 定位服务/位置信息" 开启手机定位,然后重新进入小程序~',
showCancel: false,
confirmText: "我已知悉",
});
}
},
fail: (err) => {
console.log("用户手机系统信息获取失败", err);
},
});
},
isAuthorized(a = "scope.userLocation") {
// 访scope
let _this = this;
uni.getSetting({
success: (res) => {
let userLocation = res.authSetting[a];
if (!userLocation) {
//
_this.getAuthorize();
} else {
_this.getLocation();
}
},
fail: (err) => {
_this.openSetting();
},
});
},
isAppAuthorized() {
let _this = this;
// APP
const appAuthorizeSetting = uni.getAppAuthorizeSetting();
// 使
let locationAuthorized = appAuthorizeSetting.locationAuthorized;
switch (locationAuthorized) {
case "authorized":
_this.isAuthorized();
break;
case "denied":
uni.showModal({
title: "提示",
content:
"已拒绝微信获取定位权限,即将打开权限管理页面,请把定位权限设置为允许~",
confirmText: "前往设置",
success: (res) => {
if (res.confirm) {
_this.openAppAuthorizeSetting();
} else if (res.cancel) {
_this.rejectGetLocation();
}
},
});
break;
case "not determined":
uni.showModal({
title: "提示",
content: "请授权微信获取定位权限~",
confirmText: "同意授权",
success: (res) => {
if (res.confirm) {
_this.openAppAuthorizeSetting();
} else if (res.cancel) {
_this.rejectGetLocation();
}
},
});
break;
}
},
getAuthorize(a = "scope.userLocation") {
let _this = this;
// uniapp
uni.authorize({
scope: a,
success: () => {
_this.getLocation();
},
fail: () => {
_this.openSetting();
},
});
},
openSetting() {
let _this = this;
uni.showModal({
title: "提示",
content: "我们需要获取您的位置信息,为您提供服务~",
success: (res) => {
if (res.confirm) {
uni.openSetting({
success: (res) => {
if (res.authSetting["scope.userLocation"] === true) {
_this.getLocation();
} else {
_this.rejectGetLocation();
}
},
fail: (err) => {
console.log("小程序授权弹窗打开失败", err);
},
});
} else if (res.cancel) {
_this.rejectGetLocation();
}
},
});
},
rejectGetLocation() {
uni.showToast({
title: "您拒绝了位置授权,小程序无法继续提供出行服务~",
icon: "none",
duration: 3000,
});
},
openAppAuthorizeSetting() {
let _this = this;
uni.openAppAuthorizeSetting({
success: (res) => {
console.log("打开系统微信授权管理页成功", res);
_this.isAuthorized();
},
fail: (err) => {
console.log("打开系统微信授权管理页失败", err);
},
});
},
getLocation() {
var that = this;
let location = "";
let currentAddress = uni.getStorageSync("currentAddress");
if (currentAddress) {
if (currentAddress.point) {
location = currentAddress.point.y + "," + currentAddress.point.x;
} else {
location =
currentAddress.location.lat + "," + currentAddress.location.lng;
}
let BMap = new bmap.BMapWX({
// ak: "LkqqCMB1qZmjYEkzx0Y1PTfmAUrkWPog",
ak: that.bdMapAk,
});
let fail = function (res) {
console.log("fail", res);
};
let success = function (res) {
console.log("结果地址", res);
that.originalData = res.originalData;
that.originalData.result.sematic_description = currentAddress.name;
let city = uni.getStorageSync("city");
if (city) {
that.originalData.result.addressComponent.city = city;
}
that.nearbyAddressList = res.originalData.result.pois;
};
BMap.regeocoding({
location: location,
coordtype: "gcj02ll",
ret_coordtype: "gcj02ll",
fail: fail,
success: success,
});
} else {
uni.getLocation({
type: "wgs84",
isHighAccuracy: true,
success: function (res) {
location = res.latitude + "," + res.longitude;
let BMap = new bmap.BMapWX({
// ak: "LkqqCMB1qZmjYEkzx0Y1PTfmAUrkWPog",
ak: that.bdMapAk,
});
let fail = function (res) {
console.log("fail", res);
};
let success = function (res) {
console.log("结果地址", res);
that.address = res.originalData.result.sematic_description;
that.originalData = res.originalData;
let city = uni.getStorageSync("city");
if (city) {
that.originalData.result.addressComponent.city = city;
}
that.nearbyAddressList = res.originalData.result.pois;
};
BMap.regeocoding({
location: location,
coordtype: "wgs84ll",
ret_coordtype: "gcj02ll",
fail: fail,
success: success,
});
},
fail: function (error) {
console.error("获取位置失败:", error);
},
});
}
},
handerSkip() {
uni.navigateTo({
url: `/address/selectCity`,
});
},
onSearch() {
this.showMask = true;
},
handerList() {
this.showFormatAddreesList = !this.showFormatAddreesList;
if (this.showFormatAddreesList) {
this.formatAddreesList = this.addressList;
} else {
this.formatAddreesList = this.addressList.slice(0, 4);
}
},
onScroll() {},
//
handerAddress(e) {
let that = this;
let value = e.target.value;
if (value.length == 0) {
this.showSearchAddress = false;
} else {
this.showSearchAddress = true;
}
var fail = function (res) {
console.log("fail", res);
};
var currentPoint = {
lat: that.originalData.result.location.lat,
lng: that.originalData.result.location.lng,
};
var metersToKilometers = function (meters) {
let kilometers = meters / 1000;
//
return kilometers.toFixed(2);
};
var success = function (res) {
console.log("结果地址", res);
if (res.data.status != 0) {
uni.showToast({
title: res.message,
icon: "none",
duration: 3000,
});
return;
}
that.searchAddress = res.data.result
.filter((item) => "location" in item)
.map((item) => {
let obj = {
...item,
name: item.name,
detailedInformation: item.address.replace(/-/g, ""),
distance: metersToKilometers(
BMapLib.GeoUtils.getDistance(currentPoint, item.location)
),
};
return obj;
});
console.log("that.searchAddress", that.searchAddress);
that.searchAddress.forEach((item) => {
if (item.name.indexOf(value) >= 0) {
item.searchName = item.name.replaceAll(
value,
"<font style='color:#ee852f;padding:0 4px'>" + value + "</font>"
);
} else {
item.searchName = item.name;
}
});
console.log("searchAddress", that.searchAddress);
};
let params = {
query: value,
region: this.originalData.result.addressComponent.city,
output: "json",
city_limit: true,
ret_coordtype: "gcj02ll",
// ak: "qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v",
ak: that.bdMapAk,
};
let city = that.originalData.result.addressComponent.city;
if (city) {
params.center = "";
}
if (this.time !== null) {
clearTimeout(this.time);
}
this.time = setTimeout(() => {
uni.request({
url: `https://api.map.baidu.com/place/v2/suggestion`,
data: params,
success: success,
fail: fail,
});
}, 600);
},
},
};
</script>
<style lang="scss">
.address-container {
height: calc(100vh - 88rpx);
background: #fff;
overflow: hidden;
.item-lable-1 {
background: #fdf3da;
color: #de8a48;
}
.item-lable-2 {
background: #e5eefb;
color: #4687e4;
}
.item-lable-3 {
background: #eff9e7;
color: #6eb768;
}
.hander {
.uni-navbar__header {
align-items: center;
padding: 10rpx 20rpx !important;
}
.left-block {
display: flex;
align-items: center;
line-height: 60rpx;
}
.city-block {
white-space: nowrap; /* 确保文本在一行内显示 */
overflow: hidden; /* 隐藏超出容器的文本 */
text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
max-width: 140rpx;
padding-right: 4rpx;
}
.icon-dingwei {
font-size: 40rpx;
}
.icon-right {
font-size: 24rpx;
}
}
.address-block {
margin: 20rpx 0;
padding: 20rpx 32rpx;
border-top: 2rpx solid #f0f0f0;
border-bottom: 2rpx solid #f0f0f0;
.address-box {
display: flex;
justify-content: space-between;
align-items: center;
.address-left-block {
font-size: 32rpx;
white-space: nowrap; /* 确保文本在一行内显示 */
overflow: hidden; /* 隐藏超出容器的文本 */
text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
max-width: 520rpx;
}
.address-right-block {
display: flex;
align-items: center;
color: #de8a48;
}
}
}
.list-block {
padding: 0 32rpx;
border-bottom: 2rpx solid #f8f8f8;
.list-title-block {
position: sticky;
top: 0;
padding: 12rpx 0;
background: #fff;
.title-block {
font-size: 28rpx;
padding-left: 6rpx;
}
}
.list-item {
margin: 0 32rpx;
padding: 20rpx 0;
border-bottom: 2rpx solid #f0f0f0;
.item-lable {
display: inline-block;
margin-right: 9px;
padding: 0px 8px;
width: 32px;
border-radius: 4px;
text-align: center;
font-weight: 700;
}
.item-address {
margin-right: 8rpx;
font-weight: 700;
font-size: 30rpx;
}
.item-detailed-address {
font-weight: 700;
font-size: 30rpx;
}
.item-role-info {
color: #848484;
font-size: 24rpx;
.item-name {
padding-right: 20rpx;
}
.item-mobile {
margin-left: 40rpx;
}
}
}
.tips {
display: flex;
align-items: center;
margin: 20rpx 32rpx;
font-size: 24rpx;
}
}
.icon-zengjiatianjiajiahao {
font-size: 40rpx;
color: #3579ff;
margin-right: 12rpx;
}
.search-address-list {
margin: 40rpx;
.search-address-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
border-bottom: 2rpx solid #f0f0f0;
.search-address-item-left {
width: 80%;
}
.search-address-item-right {
color: #d7d7d7;
width: 20%;
text-align: right;
}
rich-text {
// max-width: 90%;
max-height: 27px;
overflow: hidden;
word-break: break-all; /* break-all(允许在单词内换行。) */
text-overflow: ellipsis; /* 超出部分省略号 */
display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
-webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
-webkit-line-clamp: 2; /** 显示的行数 **/
}
// .item-left-name rich-text {
// white-space: nowrap; /* */
// overflow: hidden; /* */
// text-overflow: ellipsis; /* 使 */
// -webkit-box-orient: vertical;
// max-width: 90%;
// display: -webkit-box;
// box-sizing: border-box;
// }
.item-left-address {
font-size: 24rpx;
color: #848484;
white-space: nowrap; /* 确保文本在一行内显示 */
overflow: hidden; /* 隐藏超出容器的文本 */
text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
max-width: 90%;
}
}
}
.input-view {
width: 92%;
display: flex;
background-color: #f5f5f5;
height: 60rpx;
border-radius: 30rpx;
padding: 0 4%;
flex-wrap: nowrap;
margin: 10rpx 0;
line-height: 60rpx;
margin-left: 10rpx;
color: #b9b9b9;
}
.input-view .uni-icon {
line-height: 60rpx !important;
font-size: 24rpx;
}
.input-view .uni-icons {
font-size: 32rpx !important;
}
.input-view .input {
height: 60rpx;
line-height: 60rpx;
width: 94%;
padding: 0 2%;
font-size: 24rpx;
}
.uni-swiper-list {
height: calc(100vh - 98px);
}
.u-btn-default {
position: fixed;
left: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
background: #fff;
color: #000;
z-index: 1;
margin: 0;
height: 120rpx;
line-height: 120rpx;
bottom: constant(safe-area-inset-bottom);
// bottom: env(safe-area-inset-bottom);
}
}
</style>.

130
address/umask.vue Normal file
View File

@ -0,0 +1,130 @@
<template>
<view
class="u-mask"
hover-stop-propagation
:style="[maskStyle, zoomStyle]"
@tap="click"
@touchmove.stop.prevent="() => {}"
:class="{
'u-mask-zoom': zoom,
'u-mask-show': show,
}"
>
<slot />
</view>
</template>
<script>
/**
* mask 遮罩
* @description 创建一个遮罩层用于强调特定的页面元素并阻止用户对遮罩下层的内容进行操作一般用于弹窗场景
* @tutorial https://www.uviewui.com/components/mask.html
* @property {Boolean} show 是否显示遮罩默认false
* @property {String Number} z-index z-index 层级默认1070
* @property {Object} custom-style 自定义样式对象见上方说明
* @property {String Number} duration 动画时长单位毫秒默认300
* @property {Boolean} zoom 是否使用scale对遮罩进行缩放默认true
* @property {Boolean} mask-click-able 遮罩是否可点击为false时点击不会发送click事件默认true
* @event {Function} click mask-click-able为true时点击遮罩发送此事件
* @example <u-mask :show="show" @click="show = false"></u-mask>
*/
export default {
name: "u-mask",
props: {
//
show: {
type: Boolean,
default: false,
},
// z-index
zIndex: {
type: [Number, String],
default: "",
},
//
customStyle: {
type: Object,
default() {
return {};
},
},
// 使使zoomscale
zoom: {
type: Boolean,
default: true,
},
// ms
duration: {
type: [Number, String],
default: 300,
},
//
maskClickAble: {
type: Boolean,
default: true,
},
},
data() {
return {
zoomStyle: {
transform: "",
},
scale: "scale(1.2, 1.2)",
};
},
watch: {
show(n) {
if (n && this.zoom) {
// scale1(1.2)
this.zoomStyle.transform = "scale(1, 1)";
} else if (!n && this.zoom) {
// scale1.2(1)
this.zoomStyle.transform = this.scale;
}
},
},
computed: {
maskStyle() {
let style = {};
style.backgroundColor = "rgba(0, 0, 0, 0.6)";
if (this.show)
style.zIndex = this.zIndex ? this.zIndex : this.$u.zIndex.mask;
else style.zIndex = -1;
style.transition = `all ${this.duration / 1000}s ease-in-out`;
//
if (Object.keys(this.customStyle).length)
style = {
...style,
...this.customStyle,
};
return style;
},
},
methods: {
click() {
if (!this.maskClickAble) return;
this.$emit("click");
},
},
};
</script>
<style lang="scss" scoped>
.u-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
transition: transform 0.3s;
}
.u-mask-show {
opacity: 1;
}
.u-mask-zoom {
transform: scale(1.2, 1.2);
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,367 +1,454 @@
<template> <template>
<view class="page"> <view class="page">
<movable-area class="move-area"> <movable-area class="move-area">
<movable-view v-if="info.IsRedPacketIcon" inertia class="move-img" direction="all" @tap='IsShowRPK'> <movable-view
<image src="https://static.lancerdt.com/xcxfile/appicon/rpk_min.png"></image> v-if="info.IsRedPacketIcon"
</movable-view> inertia
<view style="background:#f8f8f8"> class="move-img"
<view class="paysuccess"><label> direction="all"
<image src="https://static.lancerdt.com/xcxfile/appicon/images/true.png" style="width:40rpx;height:40rpx;margin-top:8rpx"></image> @tap="IsShowRPK"
</label><text style="margin-left:10rpx">{{info.trade_is_paid==StateCode.ORDER_PAID_STATE_YES ? __('已支付') : __('待付款')}}</text></view> >
<view class="content"> <image
<view class="store">{{info.store_name}} src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/rpk_min.png"
</view> ></image>
<view class="details"> </movable-view>
<view class="details-left"> <view style="background: #f8f8f8">
<view class="charge"><text>{{__('消费金额')}}<text style="color:red">{{Currency}}{{info.order_payment_amount}}</text></text></view> <view class="paysuccess"
<view class="pay"><text>{{__('实际支付')}}<text style="color:red">{{Currency}}{{info.trade_amount}}</text></text></view> ><label>
<view class="monetary"><text>{{__('优惠金额')}}<text style="color:red">{{Currency}}{{info.trade_discount}}</text></text></view> <image
</view> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/true.png"
<view class="details-right"> style="width: 40rpx; height: 40rpx; margin-top: 8rpx"
<view class="num"><text>{{__('订单编号')}}{{info.order_id}}</text></view> ></image> </label
<view class="time"><text>{{__('消费时间')}}{{info.trade_create_time}}</text></view> ><text style="margin-left: 10rpx">{{
<view class="monetary"><text>{{__('余额抵扣')}}<text style="color:red">{{Currency}}{{info.trade_payment_money}}</text></text></view> info.trade_is_paid == StateCode.ORDER_PAID_STATE_YES
</view> ? __("已支付")
</view> : __("待付款")
</view> }}</text></view
</view> >
</movable-area> <view class="content">
<view class="shareRPK " v-if="showRPK && info.IsRedPacketIcon && type==1" @tap='IsShowRPK'> <view class="store">{{ info.store_name }} </view>
<view :class="'shareRPKBox ' + showRPK ? 'animated bounceIn':'animated bounceOut'" catchtap style='background:url(https://static.lancerdt.com/xcxfile/appicon/rpk_box.png) no-repeat;background-size: cover;'> <view class="details">
<view class="sendRPK" catchtap='shareBox'></view> <view class="details-left">
<view class="closeRPK" catchtap='IsShowRPK'></view> <view class="charge"
</view> ><text
</view> >{{ __("消费金额") }}<text style="color: red"
<view class="u-top-default"> >{{ Currency }}{{ info.order_payment_amount }}</text
<navigator url='/pages/index/index' open-type="switchTab" class="u-back2"> ></text
<image src='https://static.lancerdt.com/xcxfile/appicon/img/gohome.png'></image> ></view
</navigator> >
</view> <view class="pay"
><text
</view> >{{ __("实际支付") }}<text style="color: red"
>{{ Currency }}{{ info.trade_amount }}</text
></text
></view
>
<view class="monetary"
><text
>{{ __("优惠金额") }}<text style="color: red"
>{{ Currency }}{{ info.trade_discount }}</text
></text
></view
>
</view>
<view class="details-right">
<view class="num"
><text>{{ __("订单编号") }}{{ info.order_id }}</text></view
>
<view class="time"
><text
>{{ __("消费时间") }}{{ info.trade_create_time }}</text
></view
>
<view class="monetary"
><text
>{{ __("余额抵扣") }}<text style="color: red"
>{{ Currency }}{{ info.trade_payment_money }}</text
></text
></view
>
</view>
</view>
</view>
</view>
</movable-area>
<view
class="shareRPK"
v-if="showRPK && info.IsRedPacketIcon && type == 1"
@tap="IsShowRPK"
>
<view
:class="
'shareRPKBox ' + showRPK ? 'animated bounceIn' : 'animated bounceOut'
"
catchtap
style="
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/rpk_box.png)
no-repeat;
background-size: cover;
"
>
<view class="sendRPK" catchtap="shareBox"></view>
<view class="closeRPK" catchtap="IsShowRPK"></view>
</view>
</view>
<view class="u-top-default">
<navigator url="/pages/index/index" open-type="switchTab" class="u-back2">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/gohome.png"
></image>
</navigator>
</view>
</view>
</template> </template>
<script> <script>
import { import { mapState, mapMutations } from "vuex";
mapState,
mapMutations
} from 'vuex'
export default { export default {
data: function() { data: function () {
return { return {
info: {}, info: {},
deduction: 0, deduction: 0,
showRPK: false, showRPK: false,
ActivityGroupId: 0, ActivityGroupId: 0,
maxRPK: 0, maxRPK: 0,
order_id: "", order_id: "",
isshow1: false, isshow1: false,
Currency: "¥" Currency: "¥",
} };
}, },
components: {}, components: {},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']), computed: mapState([
onLoad(options) { "Config",
uni.setNavigationBarTitle({ "StateCode",
title: this.__('优惠买单') "notice",
}); "plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad(options) {
uni.setNavigationBarTitle({
title: this.__("优惠买单"),
});
var that = this; var that = this;
that.setData({ that.setData({
order_id: options.order_id || '' order_id: options.order_id || "",
}); });
that.load(); that.load();
}, },
onUnload() { onUnload() {
// //
var that = this var that = this;
}, },
/* /*
onShareAppMessage: function() { onShareAppMessage: function() {
return { return {
title: "拼手气红包,第" + this.data.maxRPK + "个领取的红包最大!", title: "拼手气红包,第" + this.data.maxRPK + "个领取的红包最大!",
imageUrl: "https://static.lancerdt.com/xcxfile/appicon/shareImg.png", imageUrl: "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/shareImg.png",
path: "pages/redpacket/redpacket?g=" + this.data.ActivityGroupId + "&n=" + this.data.maxRPK + "&uid=" + app.globalData path: "pages/redpacket/redpacket?g=" + this.data.ActivityGroupId + "&n=" + this.data.maxRPK + "&uid=" + app.globalData
.UserInfo.Id, .UserInfo.Id,
success: function() { success: function() {
} }
} }
},*/ },*/
methods: { methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']), ...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
load: function() { load: function () {
let that = this; let that = this;
// //
that.$.request({ that.$.request({
type: 'post', type: "post",
url: this.Config.URL.pay.consume_trade_detail, url: this.Config.URL.pay.consume_trade_detail,
data: { data: {
order_id: that.order_id order_id: that.order_id,
}, },
dataType: 'json', dataType: "json",
success: function(data, status, msg, code) { success: function (data, status, msg, code) {
//console.log("", data); //console.log("", data);
that.setData({ that.setData({
info: data, info: data,
Currency: data.currency_symbol_left Currency: data.currency_symbol_left,
}); });
false ? that.setData({ false
isshow1: false ? that.setData({
}) : that.setData({ isshow1: false,
isshow1: true })
}); : that.setData({
isshow1: true,
});
that.inputVal() that.inputVal();
} },
}); });
}, },
shareQRCode: function(a) { shareQRCode: function (a) {
var e = this, var e = this,
t = { t = {
store_id: app.globalData.VendorInfo.Id, store_id: app.globalData.VendorInfo.Id,
sponsorId: app.globalData.UserInfo.Id, sponsorId: app.globalData.UserInfo.Id,
imageUrl: "https://static.lancerdt.com/xcxfile/appicon/shareImg.png", imageUrl:
path: "pages/redpacket/redpacket?g=" + this.data.ActivityGroupId + "&n=" + this.data.maxRPK + "&uid=" + app.globalData "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/shareImg.png",
.UserInfo.Id, path:
luckyOrder: this.data.maxRPK "pages/redpacket/redpacket?g=" +
}; this.data.ActivityGroupId +
$.xsr($.makeUrl(orderapi.ShareLuckyRedPacket, t), function(a) { "&n=" +
e.setData({ this.data.maxRPK +
PageQRCodeInfo: { "&uid=" +
Path: a.Info, app.globalData.UserInfo.Id,
IsShare: true, luckyOrder: this.data.maxRPK,
IsShareBox: false, };
IsJT: true $.xsr($.makeUrl(orderapi.ShareLuckyRedPacket, t), function (a) {
} e.setData({
}) PageQRCodeInfo: {
}) Path: a.Info,
}, IsShare: true,
shareBox: function() { IsShareBox: false,
this.setData({ IsJT: true,
PageQRCodeInfo: { },
Path: "", });
IsShare: true, });
IsShareBox: true, },
IsJT: false shareBox: function () {
} this.setData({
}) PageQRCodeInfo: {
}, Path: "",
cancelShare: function() { IsShare: true,
this.setData({ IsShareBox: true,
PageQRCodeInfo: { IsJT: false,
Path: "", },
IsShare: false, });
IsShareBox: false, },
IsJT: false cancelShare: function () {
} this.setData({
}) PageQRCodeInfo: {
}, Path: "",
saveImg: function() { IsShare: false,
var e = this; IsShareBox: false,
$.loading(), wx.downloadFile({ IsJT: false,
url: this.data.PageQRCodeInfo.Path, },
success: function(a) { });
$.hideloading(), wx.saveImageToPhotosAlbum({ },
filePath: a.tempFilePath, saveImg: function () {
success: function() { var e = this;
e.setData({ $.loading(),
PageQRCodeInfo: { wx.downloadFile({
Path: "", url: this.data.PageQRCodeInfo.Path,
IsShare: false, success: function (a) {
IsShareBox: false, $.hideloading(),
IsJT: false wx.saveImageToPhotosAlbum({
} filePath: a.tempFilePath,
}), $.alert("保存图片成功!"), $.xsr1($.makeUrl(orderapi.ShareCount, { success: function () {
sponsorId: app.globalData.UserInfo.Id, e.setData({
audienceType: 3, PageQRCodeInfo: {
audienceId: 0, Path: "",
ContentType: 22, IsShare: false,
contentId: e.data.ActivityGroupId IsShareBox: false,
})) IsJT: false,
}, },
fail: function(a) { }),
$.hideloading(), console.log("保存图片失败:", a) $.alert("保存图片成功!"),
} $.xsr1(
}) $.makeUrl(orderapi.ShareCount, {
}, sponsorId: app.globalData.UserInfo.Id,
fail: function(a) { audienceType: 3,
$.hideloading() audienceId: 0,
} ContentType: 22,
}) contentId: e.data.ActivityGroupId,
}, })
showCodeImg: function() { );
wx.previewImage({ },
current: this.data.PageQRCodeInfo.Path, fail: function (a) {
urls: [this.data.PageQRCodeInfo.Path] $.hideloading(), console.log("保存图片失败:", a);
}) },
}, });
IsShowRPK: function() { },
var a = this; fail: function (a) {
a.data.showRPK ? setTimeout(function() { $.hideloading();
a.setData({ },
showRPK: false, });
type: 1 },
}) showCodeImg: function () {
}, 250) : a.setData({ wx.previewImage({
showRPK: true, current: this.data.PageQRCodeInfo.Path,
type: 1 urls: [this.data.PageQRCodeInfo.Path],
}) });
} },
} IsShowRPK: function () {
var a = this;
} a.data.showRPK
? setTimeout(function () {
a.setData({
showRPK: false,
type: 1,
});
}, 250)
: a.setData({
showRPK: true,
type: 1,
});
},
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; @import "../../styles/_variables";
.paysuccess { .paysuccess {
height: 160rpx; height: 160rpx;
margin-left: 30rpx; margin-left: 30rpx;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 36rpx; font-size: 36rpx;
color: #000; color: #000;
} }
.content { .content {
height: 400rpx; height: 400rpx;
background: #fff; background: #fff;
padding: 0 30rpx padding: 0 30rpx;
} }
.store { .store {
font-size: 28rpx; font-size: 28rpx;
color: #000; color: #000;
height: 80rpx; height: 80rpx;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
line-height: 90rpx; line-height: 90rpx;
} }
.details { .details {
display: flex; display: flex;
font-size: 24rpx; font-size: 24rpx;
color: #000; color: #000;
} }
.details-left { .details-left {
width: 35%; width: 35%;
} }
.details-left view { .details-left view {
margin-top: 40rpx; margin-top: 40rpx;
} }
.details-right { .details-right {
width: 65%; width: 65%;
} }
.details-right view { .details-right view {
margin-top: 40rpx; margin-top: 40rpx;
} }
.m-footer-btn { .m-footer-btn {
width: 100%; width: 100%;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
background-color: #fff; background-color: #fff;
text-align: right; text-align: right;
border-top: 1rpx solid #d5d5d5; border-top: 1rpx solid #d5d5d5;
box-sizing: border-box; box-sizing: border-box;
padding: 20rpx; padding: 20rpx;
} }
.u-link-btn { .u-link-btn {
margin: 0 10rpx; margin: 0 10rpx;
vertical-align: middle; vertical-align: middle;
display: inline-block; display: inline-block;
line-height: 40rpx; line-height: 40rpx;
} }
.move-area { .move-area {
position: absolute; position: absolute;
min-height: 100%; min-height: 100%;
width: 100%; width: 100%;
} }
.move-img { .move-img {
height: 126rpx; height: 126rpx;
width: 100rpx; width: 100rpx;
z-index: 5; z-index: 5;
margin-top: 70%; margin-top: 70%;
margin-left: 650rpx; margin-left: 650rpx;
} }
.move-img image { .move-img image {
height: 126rpx; height: 126rpx;
width: 100rpx; width: 100rpx;
} }
.shareRPK { .shareRPK {
position: fixed; position: fixed;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, 0.5);
top: 0; top: 0;
left: 0; left: 0;
z-index: 5; z-index: 5;
} }
.shareRPKBox { .shareRPKBox {
width: 640rpx; width: 640rpx;
height: 698rpx; height: 698rpx;
background-color: red; background-color: red;
position: absolute; position: absolute;
top: 40%; top: 40%;
left: 50%; left: 50%;
margin-left: -320rpx; margin-left: -320rpx;
margin-top: -349rpx; margin-top: -349rpx;
} }
.sendRPK { .sendRPK {
width: 222rpx; width: 222rpx;
height: 70rpx; height: 70rpx;
position: absolute; position: absolute;
left: 50%; left: 50%;
margin-left: -100rpx; margin-left: -100rpx;
top: 50%; top: 50%;
margin-top: 140rpx; margin-top: 140rpx;
} }
.closeRPK { .closeRPK {
width: 50rpx; width: 50rpx;
height: 50rpx; height: 50rpx;
position: absolute; position: absolute;
left: 50%; left: 50%;
margin-left: -22rpx; margin-left: -22rpx;
bottom: 25rpx; bottom: 25rpx;
} }
.shareCodeImg { .shareCodeImg {
height: 800rpx; height: 800rpx;
} }
.u-back2 image { .u-back2 image {
border-radius: 100%; border-radius: 100%;
width: 77rpx; width: 77rpx;
height: 77rpx; height: 77rpx;
border: 1px solid #eee; border: 1px solid #eee;
font-size: 20rpx; font-size: 20rpx;
text-align: center; text-align: center;
background-color: #fff; background-color: #fff;
box-shadow: 0px 4rpx 8rpx rgba(0, 0, 0, 0.35); box-shadow: 0px 4rpx 8rpx rgba(0, 0, 0, 0.35);
z-index: 999; z-index: 999;
opacity: 0.8; opacity: 0.8;
line-height: 77rpx; line-height: 77rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
</style> </style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -63,7 +63,7 @@
<view class="m-nullpage-middle"> <view class="m-nullpage-middle">
<label class="iconfont icon-sousuo-sousuo"></label> <label class="iconfont icon-sousuo-sousuo"></label>
<view class="m-null-tip"> <view class="m-null-tip">
<text>{{ __('亲~找不到您想要的信息') }}</text> <text>暂无数据</text>
</view> </view>
</view> </view>
</view> </view>

File diff suppressed because it is too large Load Diff

View File

@ -100,8 +100,7 @@
<view class="m-nullpage-middle"> <view class="m-nullpage-middle">
<label class="iconfont icon-sousuo-sousuo"></label> <label class="iconfont icon-sousuo-sousuo"></label>
<view class="m-null-tip"> <view class="m-null-tip">
<text>{{ __('亲~找不到您想要的帖子') }}</text> <text>暂无数据</text>
<text>{{ __('再多点提示呗') }}</text>
</view> </view>
</view> </view>
</view> </view>

View File

@ -63,9 +63,9 @@
<cover-view class="right-text"></cover-view> <cover-view class="right-text"></cover-view>
<!-- #endif --> <!-- #endif -->
<cover-image v-if="item.IsFabulous" src="https://static.lancerdt.com/xcxfile/appicon/video/aixinRed.png" class="img" @click.stop="onUnLike" :data-story_id="item.story_id"></cover-image> <cover-image v-if="item.IsFabulous" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/aixinRed.png" class="img" @click.stop="onUnLike" :data-story_id="item.story_id"></cover-image>
<cover-image v-if="!(item.IsFabulous)" src="https://static.lancerdt.com/xcxfile/appicon/video/aixin.png" class="img" @click.stop="onLike" :data-story_id="item.story_id"></cover-image> <cover-image v-if="!(item.IsFabulous)" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/aixin.png" class="img" @click.stop="onLike" :data-story_id="item.story_id"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{item.story_like_count}}</text> <text class="right-text">{{item.story_like_count}}</text>
@ -75,7 +75,7 @@
<!-- #endif --> <!-- #endif -->
<block v-if="true"> <block v-if="true">
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/xiaoxi.png" class="img" :data-story_id="item.story_id" :data-user_id="item.user_id" @click.stop="tapMsg"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/xiaoxi.png" class="img" :data-story_id="item.story_id" :data-user_id="item.user_id" @click.stop="tapMsg"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{item.story_comment_count}}</text> <text class="right-text">{{item.story_comment_count}}</text>
@ -84,7 +84,7 @@
<cover-view class="right-text">{{item.story_comment_count}}</cover-view> <cover-view class="right-text">{{item.story_comment_count}}</cover-view>
<!-- #endif --> <!-- #endif -->
<block v-if="false"> <block v-if="false">
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/share-fill.png" class="img" @click.stop="tapShare"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/share-fill.png" class="img" @click.stop="tapShare"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{__('分享')}}</text> <text class="right-text">{{__('分享')}}</text>
@ -95,7 +95,7 @@
</block> </block>
</block> </block>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/changpian.png" class="musicIcon img" v-if="false"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/changpian.png" class="musicIcon img" v-if="false"></cover-image>
</cover-view> </cover-view>
</div> </div>

View File

@ -57,9 +57,9 @@
<cover-view class="right-text"></cover-view> <cover-view class="right-text"></cover-view>
<!-- #endif --> <!-- #endif -->
<cover-image v-if="item.IsFabulous" src="https://static.lancerdt.com/xcxfile/appicon/video/aixinRed.png" class="img" @click.stop="onUnLike" :data-story_id="item.story_id"></cover-image> <cover-image v-if="item.IsFabulous" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/aixinRed.png" class="img" @click.stop="onUnLike" :data-story_id="item.story_id"></cover-image>
<cover-image v-if="!(item.IsFabulous)" src="https://static.lancerdt.com/xcxfile/appicon/video/aixin.png" class="img" @click.stop="onLike" :data-story_id="item.story_id"></cover-image> <cover-image v-if="!(item.IsFabulous)" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/aixin.png" class="img" @click.stop="onLike" :data-story_id="item.story_id"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{item.story_like_count}}</text> <text class="right-text">{{item.story_like_count}}</text>
@ -69,7 +69,7 @@
<!-- #endif --> <!-- #endif -->
<block v-if="true"> <block v-if="true">
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/xiaoxi.png" class="img" :data-story_id="item.story_id" :data-user_id="item.user_id" @click.stop="tapMsg"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/xiaoxi.png" class="img" :data-story_id="item.story_id" :data-user_id="item.user_id" @click.stop="tapMsg"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{item.story_comment_count}}</text> <text class="right-text">{{item.story_comment_count}}</text>
@ -78,7 +78,7 @@
<cover-view class="right-text">{{item.story_comment_count}}</cover-view> <cover-view class="right-text">{{item.story_comment_count}}</cover-view>
<!-- #endif --> <!-- #endif -->
<block v-if="false"> <block v-if="false">
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/share-fill.png" class="img" @click.stop="tapShare"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/share-fill.png" class="img" @click.stop="tapShare"></cover-image>
<!-- #ifdef APP-PLUS-NVUE --> <!-- #ifdef APP-PLUS-NVUE -->
<text class="right-text">{{__('分享')}}</text> <text class="right-text">{{__('分享')}}</text>
@ -89,7 +89,7 @@
</block> </block>
</block> </block>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/changpian.png" class="musicIcon img" v-if="false"></cover-image> <cover-image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/changpian.png" class="musicIcon img" v-if="false"></cover-image>
</cover-view> </cover-view>
</div> </div>

View File

@ -1,369 +0,0 @@
<template>
<view class="swiperContent">
<swiper
@change="change"
@animationfinish="animationfinish"
:indicator-dots="indicatorDots"
:indicator-active-color="indicatorActiveColor"
:indicator-color="indicatorColor"
:current="current"
:interval="interval"
:duration="duration"
:circular="circular"
:vertical="vertical"
:previous-margin="previousMargin"
:next-margin="nextMargin"
:display-multiple-items="displayMultipleItems"
:skip-hidden-item-layout="skipHiddenItemLayout"
:autoplay="(autoplay && flag)"
:style="{'height':swiperHeight+'px'}"
:class="(swiperType && displayMultipleItems ==1 && !vertical && !fullScreen)?'cardSwiper':'' "
class="screen-swiper"
>
<swiper-item class="swiper-item" v-for="(item,index) in swiperList" :key="index" :class="(cardCur==index && displayMultipleItems ==1 && !vertical && !fullScreen)?'cur':''" @tap="tplGoToPage" :data-id="(item.did)" :data-name="(item.name)" :data-type="(item.selectType)" :data-keyword="(item.keyWord)" :data-appid="(item.AppId)" :data-appurl="(item.AppUrl)" :data-MinAppUrl="(item.MinAppUrl)">
<view v-if="item[imageKey] && !item[videoKey]">
<image :src="item[imageKey]" :style="{'height':swiperHeight+'px'}"></image>
<text v-if="textTip" class="swiperText" :style="{
'bottom':(swiperType?(textStyleBottom+12):textStyleBottom)+'%',
'right':textStyleRight+'%',
'color':textStyleColor,
'background':textStyleBgcolor,
'font-size':rpxtopx(textStyleSize)
}">{{item[textKey]}}</text>
</view>
<view v-if="item[videoKey]">
<video :src="item[videoKey]" @play="play" @pause="pause" :style="{'height':swiperHeight+'px'}" autoplay loop muted :autoplay="videoAutoplay" objectFit="cover"></video>
</view>
</swiper-item>
<swiper-item class="swiper-item" v-if="swiperList.length==0" >
<text></text>
</swiper-item>
</swiper>
</view>
</template>
<script>
export default {
name:'bw-swiper',
created:function(){
var that = this;
if(this.fullScreen){
uni.getSystemInfo({
success:function(e){
that.swiperHeight = e.screenHeight -44
}})
}
},
mounted:function(){
if(!this.fullScreen){
const query = uni.createSelectorQuery().in(this);
query.select('.swiper-item').boundingClientRect(data => {
if(!!data){
this.swiperHeight = data.width/this.w_h;
}
}).exec();
}
},
props: {
fullScreen:{ //
type:Boolean,
default:false
},
swiperList:{ //
type:Array,
required: true,
default:function(){
return []
}
},
swiperType:{ // false => true =>
type:Boolean,
default:false
},
videoAutoplay:{ // true =>
type:Boolean,
default:false
},
videoKey:{ //
type:String,
default:'src'
},
imageKey:{ //
type:String,
default:'img'
},
textKey:{ //
type:String,
default:'text'
},
textTip:{ // false =>
type:Boolean,
default:false
},
textStyleSize:{ //
type:Number,
default:24
},
textStyleBottom:{ //
type:Number,
default:5
},
textStyleRight:{ //
type:Number,
default:5
},
textStyleColor:{ //
type:String,
default:'#ffffff'
},
textStyleBgcolor:{ //
type:String,
default:'transparent'
},
w_h:{ // w/h => 2
type:Number,
default:2
},
skipHiddenItemLayout:{ // true
type:Boolean,
default:false
},
displayMultipleItems:{ //
type:Number,
default:1
},
nextMargin:{ // px rpx
type:String,
default:'0px'
},
previousMargin:{// px rpx
type:String,
default:'0px'
},
vertical:{ // 2
type:Boolean,
default:false
},
circular:{ //
type:Boolean,
default:true
},
duration:{ //
type:Number,
default:400
},
interval:{ //
type:Number,
default:2500
},
current:{ // index
type:Number,
default:0
},
autoplay:{ //
type:Boolean,
default:false
},
indicatorColor:{ //
type:String,
default:'#CCCCCC'
},
indicatorActiveColor: { //
type: String,
default: '#ffffff'
},
indicatorDots: { //
type: Boolean,
default: true
}
},
data() {
return {
flag:true,
cardCur:0,
swiperHeight:300
}
},
computed:{
},
methods: {
rpxtopx:function(size){
// #ifdef MP-WEIXIN
return uni.upx2px(size)+'px'
// #endif
// #ifndef MP-WEIXIN
return size+'rpx';
// #endif
},
play:function(){
this.flag = false
},
pause:function(){
this.flag = true
},
tplGoToPage: function(e) {
let that = this;
var t = e.currentTarget.dataset;
switch (parseInt(t.type)) {
case 1:
that.$.gopage("/pages/product/detail?pid=" + t.id);
break;
case 2:
that.$.gopage("/pages/product/list?category_id=" + (t.id || 0) + "&cname=" + t.name);
break;
case 3:
that.$.gopage("/pages/product/list?pname=" + t.keyword);
break;
case 4: //
if (t.appurl.indexOf("article-list") >= 0) {
that.$.gopage('/pagesub/article/list');
} else if (t.appurl.indexOf("fightgroupsorderlist") >= 0) {
that.$.gopage('/activity/fightgroup/order');
} else if (t.appurl.indexOf("fightgroupslist/fightgroupslist") >= 0) {
that.$.gopage('/activity/fightgroup/list');
} else if (t.appurl.indexOf("bargainlist/bargainlist") >= 0) {
that.$.gopage('/activity/cutprice/list');
} else if (t.appurl.indexOf("receivecontent/receivecontent") >= 0) {
that.$.gopage('/activity/coupon/list');
} else if (t.appurl.indexOf("cashaccount/cashaccount") >= 0) {
that.$.gopage('/member/cash/predeposit');
} else if (t.appurl.indexOf("fanslist/fanslist") >= 0) {
that.$.gopage('/member/fans/list');
} else if (t.appurl.indexOf("nearbylist/nearbylist") >= 0) {
that.$.gopage('/chain/chain/list');
} else if (t.appurl.indexOf("kind_id=1202") >= 0) {
that.$.gopage('/member/order/list?kind_id=1202');
} else if (t.appurl.indexOf("endorsement/endorsement") >= 0) {
that.$.gopage('/member/fans/endorsement');
} else if (t.appurl.indexOf("?type=3&sl=3") >= 0) {
that.$.gopage('/member/order/list?type=3&sl=3');
} else if (t.appurl.indexOf("goodcollection/goodcollection") >= 0) {
that.$.gopage('/member/member/favorites');
} else if (t.appurl.indexOf("fansrank/fansrank") >= 0) {
that.$.gopage('/member/fans/fansrank');
} else if (t.appurl.indexOf("favorable/favorable") >= 0) {
that.$.gopage('/chain/chain/favorable');
} else if (t.appurl.indexOf("fanslist/fanslist") >= 0) {
that.$.gopage('/member/fans/list');
} else if (t.appurl.indexOf("scan/scan") >= 0) {
that.$.gopage('/chain/chain/scan');
} else if (t.appurl.indexOf("smashgoldeneggs/smashgoldeneggs") >= 0) {
that.$.gopage('/activity/smashgoldeneggs/detail');
} else if (t.appurl.indexOf("luckydraw/luckydraw") >= 0) {
that.$.gopage('/member/luckydraw/detail');
} else {
that.$.gopage(t.appurl);
}
break;
case 5:
if (t.appurl.indexOf("fanslist/fanslist") >= 0) {
that.$.gopage('/member/fans/list');
} else {
that.$.gopage("/pagesub/article/list?category_id=" + (t.id || 0));
}
//that.$.gopage(t.appurl);
break;
case 6:
that.$.gopage("/pagesub/article/detail?id=" + t.id);
//that.$.gopage(t.appurl);
break;
case 7:
uni.navigateToMiniProgram({
appId: t.appid,
path: t.appurl || ""
});
break;
case 8:
that.$.gopage("/pagesub/diy-page/diy-page?id=" + t.id);
break;
case 9:
that.$.gopage("/pagesub/webpage/webpage?u=" + encodeURIComponent(t.appurl) + "&tn=" + t.name + "&tc=" + t.appid + "&tb=" +
t.keyword);
break;
case 99:
that.$.gopage(
'/pagesub/webpage/web?u=' +
encodeURIComponent(t.appurl) +
'&tn=' +
t.name +
'&tc=' +
t.appid +
'&tb=' +
t.keyword
);
case 10:
that.$.gopage(t.appurl);
break;
case 11:
that.$.gopage(t.appurl);
break;
}
},
clickItem:function(index){
if(this.swiperList.length>0){
this.$emit('clickItem',this.swiperList[index])
}
},
change:function(e){
this.$emit('change',e)
},
animationfinish:function(e){
this.cardCur = e.detail.current;
this.$emit('animationfinish',e)
}
}
}
</script>
<style>
.cardSwiper .swiper-item{
width:86%!important;
overflow: initial;
}
.cardSwiper .swiper-item view{
width: 100%;
display: block;
height: 100%;
border-radius: 10rpx;
transform: scale(0.9,0.8);
opacity: 0.7;
transition: all 0.1s ease-in 0s;
overflow: hidden;
box-sizing: border-box;
margin-left:8.1%;
}
.cardSwiper .cur view{
transform: initial;
opacity: 1;
transition: all 0.1s ease-in 0s;
}
.swiper-item view{
height:100%;
width:100%;
position: relative;
}
.swiperText{
position: absolute;
color:#ffffff;
z-index:2;
border-radius: 4rpx;
padding:0 4rpx;
}
.screen-swiper image{
width:100%;
}
.screen-swiper video,
.swiper-item video {
width: 100%;
display: block;
height: 100%;
}
.swiperContent{
width:100%;
}
</style>

View File

@ -1,171 +1,202 @@
<template> <template>
<view> <view>
<!-- 新手大礼包 --> <!-- 新手大礼包 -->
<view :class="['msk', (!user_is_new || isClosed)?'hide':'']" @tap="cancel"> <view
<view class="msk_box" url="../receivecontent/receivecontent" @tap="innertouch"> :class="['msk', !user_is_new || isClosed ? 'hide' : '']"
<image src="https://static.lancerdt.com/xcxfile/appicon/Package.png" style='width:100%'></image> @tap="cancel"
<view class="msk_box_info" style='right:16%;top:40%;'><text>{{__('¥')}}</text><label>{{CouponAmount}}</label> >
<view
</view> class="msk_box"
<view class="btn_receivenow" @tap="receivenow"></view> url="../receivecontent/receivecontent"
<view class="btn_cancel" @tap="cancel"></view> @tap="innertouch"
</view> >
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/Package.png"
style="width: 100%"
></image>
<view class="msk_box_info" style="right: 16%; top: 40%"
><text>{{ __("¥") }}</text
><label>{{ CouponAmount }}</label>
</view> </view>
<view class="btn_receivenow" @tap="receivenow"></view>
<view class="btn_cancel" @tap="cancel"></view>
</view>
</view>
<view class="msk1" @tap="cancelsuccess" v-if="isShowSuccessBox">
<view class="msk1" @tap="cancelsuccess" v-if="isShowSuccessBox"> <view class="m-coupon-box" @tap="innertouch">
<view class="m-coupon-box" @tap="innertouch"> <view
<view :class="mskType==1?'m-coupon-box-top':'m-coupon-box-top2'"></view> :class="mskType == 1 ? 'm-coupon-box-top' : 'm-coupon-box-top2'"
<view class="m-coupon-box-content"> ></view>
<scroll-view scroll-y="true" class="m-coupon-box-list"> <view class="m-coupon-box-content">
<view class="m-coupon-box-item" v-for="(item, index) in coupon_rows" :key="index"> <scroll-view scroll-y="true" class="m-coupon-box-list">
<view class='m-coupon-box-item-left'><label style='font-size:24rpx;margin-top:14rpx'>{{__("¥")}}</label>{{item.voucher_price || item.activity_rule.voucher_price}} <view
</view> class="m-coupon-box-item"
<view class='m-coupon-box-item-right'><label>{{sprintf(__('有效日期至:%s'), item.voucher_end_date || item.activity_endtime)}}</label> v-for="(item, index) in coupon_rows"
<text>{{item.activity_name}}</text> :key="index"
</view> >
</view> <view class="m-coupon-box-item-left"
</scroll-view> ><label style="font-size: 24rpx; margin-top: 14rpx">{{
</view> __("¥")
<view class="m-coupon-box-bottom"></view> }}</label
<view class="close_msk" @tap="cancelsuccess"> >{{ item.voucher_price || item.activity_rule.voucher_price }}
<image style="width:50rpx;height:50rpx" </view>
src="https://static.lancerdt.com/xcxfile/appicon/img/delete.png"></image> <view class="m-coupon-box-item-right"
</view> ><label>{{
sprintf(
__("有效日期至:%s"),
item.voucher_end_date || item.activity_endtime
)
}}</label>
<text>{{ item.activity_name }}</text>
</view>
</view> </view>
</scroll-view>
</view> </view>
<view class="m-coupon-box-bottom"></view>
</view> <view class="close_msk" @tap="cancelsuccess">
<image
style="width: 50rpx; height: 50rpx"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/delete.png"
></image>
</view>
</view>
</view>
</view>
</template> </template>
<script> <script>
import { import { mapState, mapMutations } from "vuex";
mapState,
mapMutations
} from 'vuex'
import $ from "../../helpers/util"; import $ from "../../helpers/util";
export default{ export default {
props:{ props: {
Coupons:{ Coupons: {
type:Object, type: Object,
default:{} default: {},
}, },
user_is_new:{ user_is_new: {
type:Number, type: Number,
default:0 default: 0,
}, },
CouponAmount:{ CouponAmount: {
type:Number, type: Number,
default:0.00 default: 0.0,
}, },
mskType:{ mskType: {
type:Number, type: Number,
default:1 default: 1,
} },
}, },
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin', '__']), computed: mapState([
data(){ "Config",
return{ "StateCode",
isShowSuccessBox:false, "notice",
isClosed:false, "plantformInfo",
coupon_rows:[] "shopInfo",
} "userInfo",
}, "hasLogin",
mounted() { "__",
}, ]),
methods:{ data() {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo', 'showCartNum']), return {
receivenow: function () { isShowSuccessBox: false,
this.userReceiveCoupon() isClosed: false,
}, coupon_rows: [],
cancel: function () { };
this.setData({isClosed: true}) },
}, mounted() {},
cancelsuccess: function () { methods: {
this.setData({isShowSuccessBox: false}) ...mapMutations([
}, "login",
innertouch: function () { "logout",
}, "getPlantformInfo",
userReceiveCoupon: function () { "forceUserInfo",
let that = this; "getUserInfo",
var params = { "showCartNum",
CouponIds: "", ]),
user_is_new: this.userInfo.user_is_new receivenow: function () {
}; this.userReceiveCoupon();
},
cancel: function () {
this.setData({ isClosed: true });
},
cancelsuccess: function () {
this.setData({ isShowSuccessBox: false });
},
innertouch: function () {},
userReceiveCoupon: function () {
let that = this;
var params = {
CouponIds: "",
user_is_new: this.userInfo.user_is_new,
};
this.forceUserInfo((user) => {
if (user) {
$.request({
url: this.Config.URL.user.receive_new_gift,
data: params,
success: function (data, status, msg, code) {
if (200 == status) {
$.alert(that.__("领取成功!"));
this.forceUserInfo((user) => { that.login({ user_is_new: 0 });
if (user) {
$.request({
url: this.Config.URL.user.receive_new_gift,
data: params,
success: function(data, status, msg, code) {
if (200 == status) {
$.alert(that.__("领取成功!"));
that.login({user_is_new:0}); that.setData({
isShowSuccessBox: true,
that.setData({isShowSuccessBox: true, coupon_rows: data.items}) coupon_rows: data.items,
} else {
$.alert(msg);
}
},
});
}
}); });
} else {
} $.alert(msg);
}
},
});
} }
} });
},
},
};
</script> </script>
<style scoped> <style scoped>
.video{ .video {
width: 750rpx; width: 750rpx;
} }
.top{ .top {
position: absolute; position: absolute;
top:0; top: 0;
background-image: linear-gradient(to top , rgba(0,0,0,0) , rgba(0,0,0,0.7)); background-image: linear-gradient(
width: 750rpx; to top,
height: 300rpx; rgba(0, 0, 0, 0),
} rgba(0, 0, 0, 0.7)
.bottom{ );
position: absolute; width: 750rpx;
bottom: 0; height: 300rpx;
background-image: linear-gradient(to top , rgba(0,0,0,0.7) , rgba(0,0,0,0)); }
width: 750rpx; .bottom {
height: 300rpx; position: absolute;
} bottom: 0;
.progressBar{ background-image: linear-gradient(
border-radius: 2rpx; to top,
height: 4rpx; rgba(0, 0, 0, 0.7),
background-color: #FFFFFF; rgba(0, 0, 0, 0)
z-index: 999999; );
position: absolute; width: 750rpx;
bottom: 40rpx; height: 300rpx;
//#ifndef APP-PLUS-NVUE }
animation: flicker 4s linear infinite; .progressBar {
animation-direction:alternate; border-radius: 2rpx;
//#endif height: 4rpx;
} background-color: #ffffff;
//#ifndef APP-PLUS-NVUE z-index: 999999;
@keyframes flicker { position: absolute;
0% { box-shadow:0 0 0 #FFFFFF; } bottom: 40rpx;
/** 暂停效果 */ }
10% { box-shadow:0 0 2rpx #FFFFFF; }
50% { box-shadow:0 0 10rpx #FFFFFF; }
60% { box-shadow:0 0 12rpx #FFFFFF; }
90% { box-shadow:0 0 18rpx #FFFFFF; }
100% { box-shadow:0 0 20rpx #FFFFFF; }
}
//#endif
</style> </style>

View File

@ -1,267 +0,0 @@
<template>
<view class='keyboard' @click.stop='_handleKeyPress'>
<view class='key-row'>
<view class='key-cell cell_b' data-num='7'>7</view>
<view class='key-cell cell_b' data-num='8'>8</view>
<view class='key-cell cell_b' data-num='9'>9</view>
<view class='key-cell cell_b' data-num='-1'></view>
</view>
<view class='key-row'>
<view class='key-cell cell_b' data-num='4'>4</view>
<view class='key-cell cell_b' data-num='5'>5</view>
<view class='key-cell cell_b' data-num='6'>6</view>
<view class='key-cell cell_b' data-num='-1'></view>
</view>
<view class='key-row'>
<view class='key-cell cell_b' data-num='1'>1</view>
<view class='key-cell cell_b' data-num='2'>2</view>
<view class='key-cell cell_b' data-num='3'>3</view>
<view class='key-cell cell_b' data-num='-1'></view>
</view>
<view class="key-zero-and-point">
<view class="a cell_b zero" data-num='0'>0</view>
<view class="a cell_b point" data-num='.'>.</view>
</view>
<view @touchstart="touchstart" @touchend="touchend" data-num='D' class="key-confirm2">
<text data-num='D'>C</text>
</view>
<view class='key-confirm' :style="{'background':btnColor}" data-num='S'>
<view data-num='S' class="">
<view data-num='S' class="title">{{title}}</view>
</view>
</view>
</view>
</template>
<script>
export default{
name:"keyBoard",
props:{
title:{
default:'确认',
type:String
},
btnColor:{
default:'green',
}
},
data(){
return {
money:'',
Cdel:'',
Time:''
}
},
watch:{
money(val){
this.$emit('update:money',val);
}
},
methods : {
touchstart(){
this.Time=setInterval(()=>{
//console.log(this.money);
if(this.money==''){
clearInterval();
}
this.money = this.money.substring(0,this.money.length - 1);
},200)
},
touchend(){
clearInterval(this.Time);
},
//
_handleKeyPress(e) {
// //console.log('e',e.target.dataset.num);
let num = e.target.dataset.num;
//
// -1
if (num == -1) return false;
switch (String(num)) {
//
case '.':
this._handleDecimalPoint();
break;
//
case 'D':
this._handleDeleteKey();
break;
//
case 'C':
this._handleClearKey();
break;
//
case 'S':
this._handleConfirmKey();
break;
default:
this._handleNumberKey(num);
break;
}
},
//
_handleDecimalPoint() {
//
if (this.money.indexOf('.') > -1) return false;
//0
if (!this.money.length)
this.money = '0.';
//
else
this.money = this.money + '.';
},
//
_handleDeleteKey() {
let S = this.money;
//
if (!S.length) return false;
//
this.money = S.substring(0, S.length - 1);
},
//
_handleClearKey() {
this.money = '';
},
//
_handleNumberKey(num) {
if(this.money.length==10){
return
}
let S = this.money;
//2
if ( S.indexOf('.') > -1 && S.substring(S.indexOf('.') + 1).length < 2)
this.money = S + num;
//
if (!(S.indexOf('.') > -1)) {
//0
if (num == 0 && S.length == 0)
this.money = '0.';
else {
if (S.length && Number(S.charAt(0)) === 0) return;
this.money = S + num;
}
}
},
//
_handleConfirmKey() {
let S = this.money;
//
if (!S.length||S==0){
uni.showToast({
title: '请输入正确的数值',
icon:'none',
duration: 1000
});
return false;
}
// 8. 8.00
if (S.indexOf('.') > -1 && S.indexOf('.') == (S.length - 1))
S = Number(S.substring(0, S.length - 1)).toFixed(2);
//
S = Number(S).toFixed(2);
this.$emit('confirmEvent',S); //
}
}
}
</script>
<style lang="less" scoped>
.cell_b{
border-right: 1px solid #d5d5d6;
border-bottom: 1px solid #d5d5d6;
}
.key-container {
width: 100%;
display: flex;
flex-direction: column;
}
.keyboard {
flex: 1;
position: fixed;
bottom: 0;
left: 0;
height: 40vh;
width: 100%;
background: #FFFFFF;
}
.keyboard .key-row {
display: flex;
display: -webkit-flex;
position: relative;
height: 10vh;
line-height: 10vh;
}
.keyboard .key-cell {
flex: 1;
-webkit-box-flex: 1;
font-size: 60rpx;
display: flex;
justify-content: center;
align-items: center;
}
.keyboard .key-confirm {
position: absolute;
text-align: center;
height: 30vh;
width: 25%;
line-height: 30vh;
color: #FFFFFF;
z-index: 5;
right: 0;
bottom: 0;
display:flex;
justify-content: center;
align-items: center;
}
.keyboard .key-confirm2 {
position: absolute;
height: 10vh;
width: 25%;
line-height: 10vh;
z-index: 9999;
right: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
}
.key-zero-and-point{
display: flex;height: 10vh;justify-content: center;align-items: center;width:75%;font-size: 60rpx;
.zero{
display: flex;justify-content: center;align-items: center;width: 66.66%;font-size: 60rpx;text-align: center;height: 100%;
}
.point{
display: flex;justify-content: center;align-items: center;width: 33.33%;font-size: 60rpx;text-align: center;height: 100%;
}
}
.key-cell:active{
color: white;
background: black; //
opacity: 0.1; //
}
.a:active,.key-confirm2:active{
color: white;
background: black; //
opacity: 0.1; //
}
</style>

View File

@ -0,0 +1,325 @@
<template>
<view>
<!-- 模态框 -->
<view @tap="Modal" :class="{ mask: model }"></view>
<!-- 弹窗主体 -->
<view
class="active"
:class="{ add: model }"
>
<view class="title">
<text class="title-text">{{ title }}</text>
<text @tap="close" class="close-btn">×</text>
</view>
<view class="cont" :style="{ height: barHidth - 80 + 'rpx' }">
<!-- -->
<scroll-view class="day" :scroll-y="true">
<view
:class="index === isIndex ? 'active_copy' : ''"
v-for="(item, index) in content"
:key="item.date"
@tap="dataCallback(index, item)"
>
<view class="date-week">{{ item.date_title }}</view>
</view>
</scroll-view>
<!-- -->
<scroll-view class="content" :scroll-y="true" :scroll-top="scrollTop">
<view
class="appoint"
:class="index === Indexes ? 'longActive' : ''"
@tap="timeCallback(index, item)"
v-for="(item, index) in Days"
:key="index"
>
{{ item.time_title }}
<text :class="index === Indexes ? 'cuIcon-check' : ''"></text>
</view>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
title: {
type: String,
default: "选择预送达时间",
},
content: {
type: Array,
default: () => [
{
date_title: "B-12 (周五)",
date_str: "B-12",
date: "2025-10-12",
items: [
{
time_title: "16:35",
booking_at: 1,
booking_state: 1,
},
],
},
{
date_title: "B-13 (周六)",
date_str: "B-13",
date: "2025-10-13",
items: [
{
time_title: "17:05",
booking_at: 2,
booking_state: 2,
},
],
},
{
date_title: "B-14 (周日)",
date_str: "B-14",
date: "2025-10-14",
items: [
{
time_title: "17:35",
booking_at: 3,
booking_state: 2,
},
],
},
{
date_title: "B-15 (周一)",
date_str: "B-15",
date: "2025-10-15",
items: [
{
time_title: "18:05",
booking_at: 4,
booking_state: 1,
},
],
},
{
date_title: "B-15 (周二)",
date_str: "B-15",
date: "2025-10-16",
items: [
{
time_title: "18:35",
booking_at: 5,
booking_state: 1,
},
],
},
],
},
barHidth: {
type: Number,
default: 500,
},
dodge: {
type: Boolean,
default: false,
},
},
data() {
return {
scrollTop: 0,
isIndex: 0,
Indexes: 0,
Days: [],
model: false,
};
},
watch: {
content: {
immediate: true,
handler(newValue) {
if (newValue && newValue.length > 0 && newValue[0].items) {
this.Days = newValue[0].items;
} else {
console.warn('content 数据格式不正确', newValue);
this.Days = [];
}
},
},
},
methods: {
close() {
this.model = false;
},
open() {
this.model = true;
},
Modal() {
if (this.dodge) {
this.close();
}
},
gotop() {
this.scrollTop = 1;
this.$nextTick(() => {
this.scrollTop = 0;
});
},
dataCallback(index, item) {
this.isIndex = index;
this.Days = this.content[index].items;
this.Indexes = 0;
this.gotop();
this.$emit("dataCallback", item);
},
timeCallback(index, item) {
this.Indexes = index;
const selectedDate = this.content[this.isIndex]; //
const selectedTime = item; //
this.$emit("timeCallback", {
date_title: selectedDate.date_title, //
time_title: selectedTime.time_title, //
booking_at: selectedTime.booking_at, //
booking_begin_time: selectedTime.booking_begin_time, //
booking_end_time: selectedTime.booking_end_time, //
});
this.$emit("close"); //
},
},
};
</script>
<style scoped>
.mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
.active {
position: fixed;
bottom: 0;
left: 0;
z-index: 1000;
width: 100%;
background-color: #fff;
border-top-left-radius: 20rpx;
border-top-right-radius: 20rpx;
overflow: hidden;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.add {
height: 380px;
transform: translateY(0);
}
.title {
display: flex;
justify-content: space-between;
align-items: center;
padding: 24rpx 30rpx;
border-bottom: 2rpx solid #eee;
background-color: #fff;
}
.title-text {
font-size: 34rpx;
font-weight: 500;
color: #333;
max-width: 80%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 关闭按钮样式 */
.close-btn {
font-size: 50rpx;
color: #999;
padding: 10rpx; /* 增加点击区域 */
border-radius: 50%;
/* 右对齐(通过 flex 布局已实现,无需绝对定位) */
}
.close-btn:active {
background-color: #f5f5f5; /* 点击时轻微反馈 */
}
.cont {
display: flex;
height: calc(100% - 80rpx);
}
.day {
flex: 2;
background-color: #f5f5f5;
text-align: center;
}
.day view {
padding: 28rpx 0;
font-size: 28rpx;
}
.date-week {
font-weight: 500;
color: #333; /* 日期颜色 */
}
.active_copy {
background-color: #fff;
color: #27c866;
font-weight: 500;
}
.content {
flex: 3;
font-size: 28rpx;
background-color: #fff;
}
.appoint {
position: relative;
text-align: left;
padding: 30rpx 36rpx;
border-bottom: 2rpx solid #f5f5f5;
color: #333; /* 时间颜色 */
}
.longActive {
color: #27c866;
background-color: #f6fffa;
}
.cuIcon-check {
position: absolute;
right: 36rpx;
top: 50%;
transform: translateY(-50%);
width: 36rpx;
height: 36rpx;
background-color: #27c866;
border-radius: 50%;
display: inline-block;
}
.cuIcon-check::after {
content: "";
position: absolute;
left: 10rpx;
top: 16rpx;
width: 12rpx;
height: 6rpx;
border-bottom: 4rpx solid white;
border-left: 4rpx solid white;
transform: rotate(-45deg);
}
scroll-view ::-webkit-scrollbar {
display: none;
}
</style>

View File

@ -1,52 +0,0 @@
#### **1. 使用方法:**
```javascript
<!--
@param: commentList展示的评论列表数据
@method: clickPraise 点赞评论
@method: clickDelete 删除父级评论
@method: clickRecommentChild 点赞子评论
@method: clickDeleteChild 删除子评论
-->
<five-mul-commentlist
:commentList="commentList"
@clickPraise="clickPraiseComment"
@clickDelete="clickDeleteComment"
@clickDeleteChild="clickDeleteCommentChild"
@clickRecomment="clickRecomment"
@clickRecommentChild="clickRecommentChild"
></five-mul-commentlist>
```
#### **2. commentList数据格式参照如下**
```json
[{
{
"COMMENT_TIME": "",
"FIRSTNICKNAME": "",
"IS_PRAISE": null,
"COMMENT": "",
"PRAISE_NUM": 0,
"CANDELETE": 0,
"HEADIMGURL": "",
"PARENTID": "",
"SECONDNICKNAME": null,
"CHILD_ANWSER_LIST": [{
"COMMENT_TIME": "",
"FIRSTNICKNAME": "",
"IS_PRAISE": null,
"COMMENT": "",
"PRAISE_NUM": 0,
"CANDELETE": 1,
"HEADIMGURL": ",
"SECONDNICKNAME": ""
}]
}
]
```

View File

@ -85,8 +85,7 @@
<view class="m-nullpage-middle"> <view class="m-nullpage-middle">
<label class="iconfont icon-sousuo-sousuo"></label> <label class="iconfont icon-sousuo-sousuo"></label>
<view class="m-null-tip"> <view class="m-null-tip">
<text>{{__('亲~找不到您想要的商品')}}</text> <text>暂无数据</text>
<text>{{__('再多点提示呗')}}</text>
</view> </view>
</view> </view>
</navigator> </navigator>

File diff suppressed because it is too large Load Diff

335
components/loginPopup.vue Normal file
View File

@ -0,0 +1,335 @@
<template>
<view class="loginPopup-container">
<uni-popup ref="popup" type="bottom" :mask-click="false" :safe-area="true" :borderRadius="'10px 10x 10px 10px'">
<view class="popup-box">
<view class="head-img"></view>
<view v-if="showCloseIcon" class="uni-icon uni-icon-closeempty" color="#888" @click="close"></view>
<view class="popup-content">
<!-- <view class="title"> 微信账号登录小发同城小程序 </view> -->
<button class="btn-login" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
<view>手机号快捷登录</view>
</button>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import { mapState, mapMutations, mapGetters } from "vuex";
export default {
name: "loginPopup",
props: {
show: {
type: Boolean,
default: false,
},
showCloseIcon: {
type: Boolean,
default: true,
},
},
data() {
return {
tmplIds: [
"kiDj_hSF_ASwD-Dlgxnypi6IJBQZ12a-hEpd3zZ-Uxc",
// "Lq6_OHOemtmBoWGrd9zvyJ3ultzXB5metmqPtYeV0pc",
],
};
},
computed: {
...mapState(["showLoginPopup", "Config"]),
},
watch: {
show: {
handler(newValue, oldValue) {
if (newValue) {
this.open();
// this.getWXLoginCode();
}
},
// deep: true,
// immediate: true,
},
},
onUnload() { },
onHide() {
this.close();
},
methods: {
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
"reloadUserResource",
]),
open() {
this.$refs["popup"].open("bottom");
},
close() {
this.$refs["popup"].close();
this.$emit("close");
},
getWXLoginCode() {
let that = this;
wx.login({
success: (res) => {
//
if (res.code) {
// res.code openId, sessionKey, unionId
let params = { code: res.code };
that.$.request({
url: that.cf.URL.get_miniapp_open_id,
data: params,
success: (data, status, msg, code) => { },
fail: (err, status) => { },
});
} else {
that.$.showModal({
content: that.__("授权失败"),
showCancel: false,
});
}
},
});
},
// code openid sessionkey uid
async getWxOpenId() {
return new Promise((resolve, reject) => {
var that = this;
wx.login({
success: (res) => {
if (res.code) {
that.$.request({
url: this.Config.URL.wx.get_wx_openid,
data: {
code: res.code,
},
dataType: "json",
success: function (res) {
resolve(res.openid);
},
});
}
},
});
});
},
//
async getUserprofile() {
return new Promise((resolve, reject) => {
wx.getUserInfo({
success: (res) => {
resolve(res);
},
});
});
},
//
async getPhoneNumber(e) {
var that = this;
if (e.detail.errMsg == "getPhoneNumber:ok") {
that.$.request({
url: this.Config.URL.wx.get_wx_phone_number,
data: {
code: e.detail.code,
},
success: function (res) {
that.doWxUserRegisterAndLogin(res.phoneNumber);
setTimeout(() => {
that.$.showModal({
title: "订阅提示",
content: "是否订阅活动消息通知?",
cancelText: "暂不订阅",
confirmText: "立即订阅",
success: async function (n) {
if (n.confirm) {
wx.requestSubscribeMessage({
tmplIds: that.tmplIds,
success(rsp) {
let acceptCount = 0;
let rejectCount = 0;
console.log("success res====", rsp);
for (const templateId in rsp) {
if (that.tmplIds.includes(templateId)) {
const result = rsp[templateId];
if (result === "accept") {
acceptCount++;
} else if (
result === "reject" ||
result === "ban"
) {
rejectCount++;
}
}
}
if (acceptCount > 0 && rejectCount === 0) {
uni.showToast({
title: "订阅成功",
});
} else if (acceptCount === 0 && rejectCount > 0) {
uni.showToast({
title: "已拒绝订阅",
});
} else {
uni.showToast({
title: "已订阅或拒绝",
});
}
},
fail(res) {
that.$.showModal({
content: `${res.errCode}:${res.errMsg}`,
showCancel: false,
confirmText: "好的",
})
},
});
}
},
});
}, 500);
},
});
} else {
that.$.confirm(that.__("授权失败"));
}
},
//
async doWxUserRegisterAndLogin(phoneNumber) {
const openId = await this.getWxOpenId();
const {
userInfo: { nickName, avatarUrl },
} = await this.getUserprofile();
const that = this;
this.$.request({
url: this.Config.URL.wx.doWxUserRegisterAndLogin,
data: {
nickName,
avatarUrl,
phoneNumber,
openId,
},
method: "POST",
header: {
"Content-Type": "application/json;charset=utf-8",
},
dataType: "json",
success: function (data, status, msg, code) {
if (status != 200) {
that.$.confirm(that.__(msg || "登录失败,请重试!"));
return;
}
that.loginSuccess(data);
},
});
},
//
loginSuccess(data) {
const that = this;
that.$.setStorageSync("uid", data.user_id);
that.$.setStorageSync("ukey", data.key);
// #ifdef H5
$cookies.set("uid", data.user_id);
$cookies.set("ukey", data.key);
// #endif
that.$.request({
url: that.Config.URL.user.overview,
success: function (results, status, msg, code) {
that.login(data);
that.reloadUserResource(function (user_info) {
that.setData({
UserInfo: user_info,
});
});
//
that.$emit("loginSuccess"); //
that.close();
},
fail: function () {
// 使
that.$emit("loginSuccess");
that.close();
that.$.confirm("登录成功,但获取用户信息失败,请重试");
},
});
},
},
};
</script>
<style lang="scss">
.loginPopup-container {
background: #fff;
.popup-box {
// padding: 40rpx;
position: relative;
width: 100%;
border-top-left-radius: 32rpx;
border-top-right-radius: 32rpx;
.head-img {
width: 100%;
height: 190px;
background-image: url("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/login-bg.png");
background-size: 100% 100%;
}
.uni-icon-closeempty {
position: absolute;
right: 10px;
top: 10px;
}
.popup-content {
padding: 40rpx;
width: 90%;
height: 400rpx;
background: #fff;
}
.title {
font-size: 18px;
text-align: center;
font-weight: 700;
color: #000;
}
.btn-login {
display: flex;
align-items: center;
justify-content: center;
margin: 0 40rpx;
margin-top: 80rpx;
height: 100rpx;
font-size: 32rpx;
background: #0787f4;
border-radius: 40px;
color: #fff;
.icon-weixin {
font-size: 48rpx;
margin-right: 16rpx;
}
}
}
}
</style>

View File

@ -1,131 +1,167 @@
<template> <template>
<div class="mpvue-picker"> <div class="mpvue-picker">
<div :class="{'pickerMask':showPicker}" @click="maskClick" catchtouchmove="true"></div> <div
<div class="mpvue-picker-content " :class="{'mpvue-picker-view-show':showPicker}"> :class="{ pickerMask: showPicker }"
<div class="mpvue-picker__hd" catchtouchmove="true"> @click="maskClick"
<div class="mpvue-picker__action" @click="pickerCancel">{{__('取消')}}</div> catchtouchmove="true"
<div class="mpvue-picker__action" :style="{color:themeColor}" @click="pickerConfirm">{{__('确定')}}</div> ></div>
</div> <div
<picker-view indicator-style="height: 40px;" class="mpvue-picker-view" :value="pickerValue" @change="pickerChange"> class="mpvue-picker-content"
<block> :class="{ 'mpvue-picker-view-show': showPicker }"
<picker-view-column> >
<div class="picker-item" v-for="(item,index) in provinceDataList" :key="index">{{item.label}}</div> <div class="mpvue-picker__hd" catchtouchmove="true">
</picker-view-column> <div class="mpvue-picker__action" @click="pickerCancel">
<picker-view-column> {{ __("取消") }}
<div class="picker-item" v-for="(item,index) in cityDataList" :key="index">{{item.label}}</div> </div>
</picker-view-column> <div
<picker-view-column> class="mpvue-picker__action"
<div class="picker-item" v-for="(item,index) in areaDataList" :key="index">{{item.label}}</div> :style="{ color: themeColor }"
</picker-view-column> @click="pickerConfirm"
</block> >
</picker-view> {{ __("确定") }}
</div> </div>
</div> </div>
<picker-view
indicator-style="height: 40px;"
class="mpvue-picker-view"
:value="pickerValue"
@change="pickerChange"
>
<block>
<picker-view-column>
<div
class="picker-item"
v-for="(item, index) in provinceDataList"
:key="index"
>
{{ item.label }}
</div>
</picker-view-column>
<picker-view-column>
<div
class="picker-item"
v-for="(item, index) in cityDataList"
:key="index"
>
{{ item.label }}
</div>
</picker-view-column>
<picker-view-column>
<div
class="picker-item"
v-for="(item, index) in areaDataList"
:key="index"
>
{{ item.label }}
</div>
</picker-view-column>
</block>
</picker-view>
</div>
</div>
</template> </template>
<script> <script>
export default {
data() {
return {
pickerValue: [0, 0, 0],
provinceDataList: [],
cityDataList: [],
areaDataList: [],
/* 是否显示控件 */
showPicker: false,
provinceData: [],
cityData: [],
areaData: [],
};
},
created() {
this.init();
},
props: {
/* 默认值 */
pickerValueDefault: {
type: Array,
default() {
return [0, 0, 0];
},
},
/* 主题色 */
themeColor: String,
},
watch: {
pickerValueDefault() {
this.init();
},
},
methods: {
init() {
let that = this;
// 使
let district_data = uni.getStorageSync("district_data");
if (!district_data) {
that.$.request({
url: that.cf.URL.getAppDistrict,
data: {},
loading: false,
ajaxCache: {
timeout: this.cf.CACHE_EXPIRE,
},
success: function (data, status, msg, code) {
if (status == 200) {
uni.setStorageSync("district_data", data);
that.setDistrictData(data);
}
},
});
} else {
that.setDistrictData(district_data);
}
},
export default { setDistrictData(district_data) {
data() { this.provinceData = district_data.provinceData;
return { this.cityData = district_data.cityData;
pickerValue: [0, 0, 0], this.areaData = district_data.areaData;
provinceDataList: [],
cityDataList: [],
areaDataList: [],
/* 是否显示控件 */
showPicker: false,
this.handPickValueDefault(); // pickerValueDefault
provinceData : [], this.provinceDataList = district_data.provinceData;
cityData : [], this.cityDataList = district_data.cityData[this.pickerValueDefault[0]];
areaData : [],
};
},
created() {
this.init()
},
props: {
/* 默认值 */
pickerValueDefault: {
type: Array,
default () {
return [0, 0, 0]
}
},
/* 主题色 */
themeColor: String
},
watch: {
pickerValueDefault() {
this.init();
}
},
methods: {
init() {
let that = this;
// 使
let district_data = uni.getStorageSync('district_data');
if (!district_data) {
that.$.request({
url: that.cf.URL.getAppDistrict,
data: {},
loading: false,
ajaxCache: {
timeout: this.cf.CACHE_EXPIRE
},
success: function(data, status, msg, code) {
if (status == 200) {
uni.setStorageSync('district_data', data);
that.setDistrictData(data);
}
}
});
} else {
that.setDistrictData(district_data);
}
},
setDistrictData(district_data) { this.areaDataList =
this.provinceData = district_data.provinceData; district_data.areaData[this.pickerValueDefault[0]][
this.cityData = district_data.cityData; this.pickerValueDefault[1]
this.areaData = district_data.areaData; ];
this.pickerValue = this.pickerValueDefault;
},
this.handPickValueDefault(); // pickerValueDefault show() {
setTimeout(() => {
this.showPicker = true;
}, 0);
},
maskClick() {
this.pickerCancel();
},
pickerCancel() {
this.showPicker = false;
this._$emit("onCancel");
},
pickerConfirm(e) {
this.showPicker = false;
this._$emit("onConfirm");
},
showPickerView() {
this.showPicker = true;
},
handPickValueDefault() {
let that = this;
this.provinceDataList = district_data.provinceData; /*
this.cityDataList = district_data.cityData[this.pickerValueDefault[0]];
this.areaDataList = district_data.areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]];
this.pickerValue = this.pickerValueDefault;
},
show() {
setTimeout(() => {
this.showPicker = true;
}, 0);
},
maskClick() {
this.pickerCancel();
},
pickerCancel() {
this.showPicker = false;
this._$emit('onCancel');
},
pickerConfirm(e) {
this.showPicker = false;
this._$emit('onConfirm');
},
showPickerView() {
this.showPicker = true;
},
handPickValueDefault() {
let that = this;
/*
// //
for (let i = 0; i < provinceData; i++) { for (let i = 0; i < provinceData; i++) {
@ -151,141 +187,157 @@
} }
*/ */
if (this.pickerValueDefault !== [0, 0, 0]) { if (this.pickerValueDefault !== [0, 0, 0]) {
if (this.pickerValueDefault[0] > that.provinceData.length - 1) { if (this.pickerValueDefault[0] > that.provinceData.length - 1) {
this.pickerValueDefault[0] = that.provinceData.length - 1; this.pickerValueDefault[0] = that.provinceData.length - 1;
} }
if (this.pickerValueDefault[1] > that.cityData[this.pickerValueDefault[0]].length - 1) { if (
this.pickerValueDefault[1] = that.cityData[this.pickerValueDefault[0]].length - 1; this.pickerValueDefault[1] >
} that.cityData[this.pickerValueDefault[0]].length - 1
if (this.pickerValueDefault[2] > that.areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]].length - 1) { ) {
this.pickerValueDefault[2] = that.areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]].length - 1; this.pickerValueDefault[1] =
} that.cityData[this.pickerValueDefault[0]].length - 1;
} }
}, if (
pickerChange(e) { this.pickerValueDefault[2] >
let that = this; that.areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]]
let changePickerValue = e.mp.detail.value; .length -
if (this.pickerValue[0] !== changePickerValue[0]) { 1
// ) {
this.cityDataList = that.cityData[changePickerValue[0]]; this.pickerValueDefault[2] =
this.areaDataList = that.areaData[changePickerValue[0]][0]; that.areaData[this.pickerValueDefault[0]][
changePickerValue[1] = 0; this.pickerValueDefault[1]
changePickerValue[2] = 0; ].length - 1;
} else if (this.pickerValue[1] !== changePickerValue[1]) { }
// }
this.areaDataList = },
that.areaData[changePickerValue[0]][changePickerValue[1]]; pickerChange(e) {
changePickerValue[2] = 0; let that = this;
} let changePickerValue = e.mp.detail.value;
this.pickerValue = changePickerValue; if (this.pickerValue[0] !== changePickerValue[0]) {
this._$emit('onChange'); //
}, this.cityDataList = that.cityData[changePickerValue[0]];
_$emit(emitName) { this.areaDataList = that.areaData[changePickerValue[0]][0];
let pickObj = { changePickerValue[1] = 0;
label: this._getLabel(), changePickerValue[2] = 0;
value: this._getVale(), } else if (this.pickerValue[1] !== changePickerValue[1]) {
cityCode: this._getCityCode() //
}; this.areaDataList =
this.$emit(emitName, pickObj); that.areaData[changePickerValue[0]][changePickerValue[1]];
}, changePickerValue[2] = 0;
_getLabel() { }
let pcikerLabel = [this.provinceDataList[this.pickerValue[0]].label, this.cityDataList[this.pickerValue[1]].label, this.pickerValue = changePickerValue;
this.areaDataList[this.pickerValue[2]].label this._$emit("onChange");
]; },
_$emit(emitName) {
let pickObj = {
label: this._getLabel(),
value: this._getVale(),
cityCode: this._getCityCode(),
};
this.$emit(emitName, pickObj);
},
_getLabel() {
let pcikerLabel = [
this.provinceDataList[this.pickerValue[0]].label,
this.cityDataList[this.pickerValue[1]].label,
this.areaDataList[this.pickerValue[2]].label,
];
return pcikerLabel; return pcikerLabel;
}, },
_getVale() { _getVale() {
let pcikerValue = [this.provinceDataList[this.pickerValue[0]].value, this.cityDataList[this.pickerValue[1]].value, let pcikerValue = [
this.areaDataList[this.pickerValue[2]].value this.provinceDataList[this.pickerValue[0]].value,
]; this.cityDataList[this.pickerValue[1]].value,
this.areaDataList[this.pickerValue[2]].value,
];
return pcikerValue; return pcikerValue;
}, },
_getCityCode() { _getCityCode() {
return this.areaDataList[this.pickerValue[2]].value; return this.areaDataList[this.pickerValue[2]].value;
} },
} },
}; };
</script> </script>
<style> <style>
.pickerMask { .pickerMask {
position: fixed; position: fixed;
z-index: 1000; z-index: 1000;
top: 0; top: 0;
right: 0; right: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
background: rgba(0, 0, 0, 0.6); background: rgba(0, 0, 0, 0.6);
} }
.mpvue-picker-content { .mpvue-picker-content {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
transition: all 0.3s ease; transition: all 0.3s ease;
transform: translateY(100%); transform: translateY(100%);
z-index: 3000; z-index: 3000;
} }
.mpvue-picker-view-show { .mpvue-picker-view-show {
transform: translateY(0); transform: translateY(0);
} }
.mpvue-picker__hd { .mpvue-picker__hd {
display: flex; display: flex;
padding: 9px 15px; padding: 9px 15px;
background-color: #fff; background-color: #fff;
position: relative; position: relative;
text-align: center; text-align: center;
font-size: 17px; font-size: 17px;
} }
.mpvue-picker__hd:after { .mpvue-picker__hd:after {
content: ' '; content: " ";
position: absolute; position: absolute;
left: 0; left: 0;
bottom: 0; bottom: 0;
right: 0; right: 0;
height: 1px; height: 1px;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
color: #e5e5e5; color: #e5e5e5;
transform-origin: 0 100%; transform-origin: 0 100%;
transform: scaleY(0.5); transform: scaleY(0.5);
} }
.mpvue-picker__action { .mpvue-picker__action {
display: block; display: block;
flex: 1; flex: 1;
color: #1aad19; color: #1aad19;
} }
.mpvue-picker__action:first-child { .mpvue-picker__action:first-child {
text-align: left; text-align: left;
color: #888; color: #888;
} }
.mpvue-picker__action:last-child { .mpvue-picker__action:last-child {
text-align: right; text-align: right;
} }
.picker-item { .picker-item {
text-align: center; text-align: center;
line-height: 40px; line-height: 40px;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
font-size: 16px; font-size: 16px;
} }
.mpvue-picker-view { .mpvue-picker-view {
position: relative; position: relative;
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 238px; height: 238px;
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
} }
</style> </style>

View File

@ -1,155 +0,0 @@
<template name="pay-box">
<block></block>
</template>
<script>
export default {
name: "pay-box",
props: {
shareDataDefault: {
type: Object,
default() {
return {
shareTitle: '',
shareText: '',
href: '',
image: ''
}
},
},
},
data(){
return {
showBoxView:false,
shareType:0
}
},
created() {
uni.getProvider({
service: "share",
success: (e) => {
//console.log("success", e);
let data = []
for (let i = 0; i < e.provider.length; i++) {
switch (e.provider[i]) {
case 'weixin':
data.push({
name: '分享到微信好友',
id: 'weixin',
sort: 0
})
data.push({
name: '分享到微信朋友圈',
id: 'weixin',
type: 'WXSenceTimeline',
sort: 1
})
break;
case 'sinaweibo':
data.push({
name: '分享到新浪微博',
id: 'sinaweibo',
sort: 2
})
break;
case 'qq':
data.push({
name: '分享到QQ',
id: 'qq',
sort: 3
})
break;
default:
break;
}
}
this.providerList = data.sort((x, y) => {
return x.sort - y.sort
});
},
fail: (e) => {
//console.log("", e);
uni.showModal({
content: "获取登录通道失败",
showCancel: false
})
}
});
},
methods:{
share() {
if (this.providerList.length === 0) {
uni.showModal({
title: '当前环境无分享渠道!',
showCancel: false
})
return;
}
let itemList = this.providerList.map(function (value) {
return value.name
})
var that = this;
uni.showActionSheet({
itemList: itemList,
success: (res) => {
uni.share({
provider: this.providerList[res.tapIndex].id,
scene: this.providerList[res.tapIndex].type && this.providerList[res.tapIndex].type === 'WXSenceTimeline' ? 'WXSenceTimeline' : "WXSceneSession",
type: this.shareType,
summary : this.shareDataDefault.shareText,
imageUrl : this.shareDataDefault.image,
title : this.shareDataDefault.shareTitle,
href : this.shareDataDefault.href,
success: (res) => {
//console.log("success:" + JSON.stringify(res));
},
fail: (e) => {
uni.showModal({
//content: e.errMsg,
content: '用户取消',
showCancel:false
})
}
});
}
})
},
save(){
uni.showActionSheet({
itemList:['保存图片到相册'],
success: () => {
plus.gallery.save('https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/app_download.png', function() {
uni.showToast({
title:'保存成功',
icon:'none'
})
}, function() {
uni.showToast({
title:'保存失败,请重试!',
icon:'none'
})
});
}
})
},
cancel() {
this.showBoxView = false;
this.$emit('onCancel');
},
show() {
this.share();
}
}
}
</script>
<style>
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,323 +1,376 @@
<template name="quick-nav"> <template name="quick-nav">
<view :class="[animation ? '' : 'zhezhaoceng']" > <view :class="[animation ? '' : 'zhezhaoceng']">
<movable-area class="movableArea"> <movable-area class="movableArea">
<movable-view class="movableView" @touchmove.stop.prevent="doNothing" direction="all" :x="initX" :y="initY"> <movable-view
<view class="u-top1" v-if="isnav"> class="movableView"
<image v-if="false" src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_nav.png' class="quicknav" @click='nav'></image> @touchmove.stop.prevent="doNothing"
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_gotop.png' :class="[!isquicknav ?'hide':'quicknav']" @click="returnTop"></image> direction="all"
</view> :x="initX"
<view v-else @click='outnav'> :y="initY"
<view class="u-top1"> >
<navigator :class="[animation ? 'navtext1' : 'navtext']" url='/pages/index/member' open-type='switchTab'><text>{{__('个人中心')}}</text> <view class="u-top1" v-if="isnav">
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_usercenter.png' class='quicknav'></image> <image
</navigator> v-if="false"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_icon_nav.png"
class="quicknav"
@click="nav"
></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_gotop.png"
:class="[!isquicknav ? 'hide' : 'quicknav']"
@click="returnTop"
></image>
</view>
<view v-else @click="outnav">
<view class="u-top1">
<navigator
:class="[animation ? 'navtext1' : 'navtext']"
url="/pages/index/member"
open-type="switchTab"
><text>{{ __("个人中心") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_usercenter.png"
class="quicknav"
></image>
</navigator>
<navigator :class="[animation ? 'navtext1' : 'navtext']" url='/member/member/favorites'><text>{{__('我的收藏')}}</text> <navigator
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_my_favor.png' class='quicknav'></image> :class="[animation ? 'navtext1' : 'navtext']"
</navigator> url="/member/member/favorites"
<!-- #ifndef H5 --> ><text>{{ __("我的收藏") }}</text>
<view :class="[animation ? 'navtext1' : 'navtext']" @click='shareBox'><text>{{__('分享')}}</text> <image
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_share.png' class='quicknav'></image> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_my_favor.png"
</view> class="quicknav"
<!-- #endif --> ></image>
<!-- #ifdef H5 --> </navigator>
<view :class="[animation ? 'navtext1' : 'navtext']" @click='shareBoxPoster'><text>{{__('生成海报')}}</text> <!-- #ifndef H5 -->
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_share.png' class='quicknav'></image> <view
</view> :class="[animation ? 'navtext1' : 'navtext']"
<!-- #endif --> @click="shareBox"
<navigator :class="[animation ? 'navtext1' : 'navtext']" url='/pages/index/index' open-type='switchTab'> ><text>{{ __("分享") }}</text>
<text>{{__('首页')}}</text> <image
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_home.png' class='quicknav'></image> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_share.png"
</navigator> class="quicknav"
<view class='open-nav'><text></text> ></image>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_close.png' class='quicknav'></image> </view>
</view> <!-- #endif -->
</view> <!-- #ifdef H5 -->
</view> <view
</movable-view> :class="[animation ? 'navtext1' : 'navtext']"
</movable-area> @click="shareBoxPoster"
</view> ><text>{{ __("生成海报") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_share.png"
class="quicknav"
></image>
</view>
<!-- #endif -->
<navigator
:class="[animation ? 'navtext1' : 'navtext']"
url="/pages/index/index"
open-type="switchTab"
>
<text>{{ __("首页") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_home.png"
class="quicknav"
></image>
</navigator>
<view class="open-nav"
><text></text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_icon_close.png"
class="quicknav"
></image>
</view>
</view>
</view>
</movable-view>
</movable-area>
</view>
</template> </template>
<script> <script>
export default { export default {
name: "quick-nav", name: "quick-nav",
props: { props: {
isquicknav: { isquicknav: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
},
data() {
return {
isnav: true,
animation: true,
initX: "690",
initY: "1336",
};
},
}, mounted() {
data() { let view = uni.createSelectorQuery().in(this).select(".movableArea");
return { let that = this;
isnav: true,
animation: true,
initX: '690',
initY: '1336',
}
},
mounted() { view
let view = uni.createSelectorQuery().in(this).select(".movableArea"); .fields(
let that = this; {
size: true,
scrollOffset: true,
},
(data) => {
if (data) {
that.setData({
initX: data.width,
initY: data.height - 100,
});
}
}
)
.exec();
},
view.fields({ methods: {
size: true, shareBox: function () {
scrollOffset: true this.$emit("onShareBox", 3);
}, data => { },
if (data) {
that.setData({
initX: data.width,
initY: data.height - 100,
});
}
}).exec();
},
methods: { shareBoxPoster: function () {
shareBox: function() { this.$emit("onShareBox", 3);
this.$emit('onShareBox', 3); },
},
shareBoxPoster: function() { returnTop: function () {
this.$emit('onShareBox', 3); this.$emit("onReturnTop");
}, },
doNothing: function () {},
nav: function () {
this.setData({
isnav: false,
animation: false,
});
},
outnav: function () {
var that = this;
this.setData({
animation: true,
});
returnTop: function() { setTimeout(function () {
this.$emit('onReturnTop'); that.setData({
}, isnav: true,
doNothing: function() { });
}, }, 250);
nav: function() { },
this.setData({ },
isnav: false, };
animation: false
})
},
outnav: function() {
var that = this;
this.setData({
animation: true
});
setTimeout(function() {
that.setData({
isnav: true
})
}, 250)
}
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../styles/_variables.scss"; @import "../styles/_variables.scss";
/* 快捷导航 */ /* 快捷导航 */
.u-tap-btn { .u-tap-btn {
position: fixed; position: fixed;
right: 20rpx; right: 20rpx;
bottom: 100rpx; bottom: 100rpx;
z-index: 999 z-index: 999;
} }
.u-go-home { .u-go-home {
border-radius: 100%; border-radius: 100%;
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
border: 1px solid #eee; border: 1px solid #eee;
font-size: 20rpx; font-size: 20rpx;
text-align: center; text-align: center;
background-color: #fff; background-color: #fff;
box-shadow: 0px 4rpx 8rpx rgba(0, 0, 0, 0.35); box-shadow: 0px 4rpx 8rpx rgba(0, 0, 0, 0.35);
z-index: 2; z-index: 2;
opacity: 0.8; opacity: 0.8;
line-height: 80rpx; line-height: 80rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.u-go-home .iconfont { .u-go-home .iconfont {
font-size: 36rpx; font-size: 36rpx;
} }
.zhezhaoceng { .zhezhaoceng {
position: fixed; position: fixed;
top: 0; top: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
z-index: 99; z-index: 99;
animation: opacity 500ms; animation: opacity 500ms;
animation-fill-mode: forwards animation-fill-mode: forwards;
} }
@keyframes opacity { @keyframes opacity {
from { from {
background: rgba(0, 0, 0, 0); background: rgba(0, 0, 0, 0);
} }
to { to {
background: rgba(0, 0, 0, 0.4); background: rgba(0, 0, 0, 0.4);
} }
} }
@keyframes opacity1 { @keyframes opacity1 {
from { from {
background: rgba(0, 0, 0, 0.4); background: rgba(0, 0, 0, 0.4);
} }
to { to {
background: rgba(0, 0, 0, 0); background: rgba(0, 0, 0, 0);
} }
} }
.quicknav { .quicknav {
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
border-radius: 50%; border-radius: 50%;
} }
@keyframes mymove1 {
from {
bottom: 0rpx;
opacity: 0;
}
@keyframes mymove1 { to {
from { bottom: 420rpx;
bottom: 0rpx; opacity: 1;
opacity: 0 }
} }
to { @keyframes mymove2 {
bottom: 420rpx; from {
opacity: 1 bottom: 0rpx;
} opacity: 0;
} }
@keyframes mymove2 { to {
from { bottom: 320rpx;
bottom: 0rpx; opacity: 1;
opacity: 0 }
} }
to { @keyframes mymove3 {
bottom: 320rpx; from {
opacity: 1 bottom: 0rpx;
} opacity: 0;
} }
@keyframes mymove3 { to {
from { bottom: 220rpx;
bottom: 0rpx; opacity: 1;
opacity: 0 }
} }
to { @keyframes mymove4 {
bottom: 220rpx; from {
opacity: 1 bottom: 0rpx;
} opacity: 0;
} }
@keyframes mymove4 { to {
from { bottom: 120rpx;
bottom: 0rpx; opacity: 1;
opacity: 0 }
} }
to { @keyframes mymove5 {
bottom: 120rpx; from {
opacity: 1 bottom: 420rpx;
} opacity: 1;
} }
@keyframes mymove5 { to {
from { bottom: 10rpx;
bottom: 420rpx; }
opacity: 1 }
}
to { @keyframes mymove6 {
bottom: 10rpx; from {
} bottom: 320rpx;
} opacity: 1;
}
@keyframes mymove6 { to {
from { bottom: 10rpx;
bottom: 320rpx; opacity: 0;
opacity: 1 }
} }
to { @keyframes mymove7 {
bottom: 10rpx; from {
opacity: 0 bottom: 220rpx;
} opacity: 1;
} }
@keyframes mymove7 { to {
from { bottom: 10rpx;
bottom: 220rpx; opacity: 0;
opacity: 1 }
} }
to { @keyframes mymove8 {
bottom: 10rpx; from {
opacity: 0 bottom: 120rpx;
} opacity: 1;
} }
@keyframes mymove8 { to {
from { bottom: 10rpx;
bottom: 120rpx; opacity: 0;
opacity: 1 }
} }
to { .navtext text {
bottom: 10rpx; font-size: 24rpx;
opacity: 0 color: #fff;
} text-align: right;
} min-width: 120rpx;
margin-right: 20rpx;
}
.navtext text { .navtext1 text {
font-size: 24rpx; font-size: 24rpx;
color: #fff; color: #fff;
text-align: right; text-align: right;
min-width: 120rpx; min-width: 120rpx;
margin-right: 20rpx margin-right: 20rpx;
} }
.navtext1 text { .u-tuan-label {
font-size: 24rpx; padding: 5rpx 8rpx;
color: #fff; background-color: #db384c;
text-align: right; border-radius: 4rpx;
min-width: 120rpx; font-size: 24rpx;
margin-right: 20rpx color: #fff;
} margin-right: 8rpx;
}
.u-tuan-label { .m-product-name2 {
padding: 5rpx 8rpx; font-size: 28rpx;
background-color: #DB384C; box-sizing: border-box;
border-radius: 4rpx; padding-right: 20rpx;
font-size: 24rpx; position: relative;
color: #fff; overflow: hidden;
margin-right: 8rpx; text-overflow: ellipsis;
} display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.m-product-name2 { .m-listv .m-product-name2 {
font-size: 28rpx; width: 345rpx;
box-sizing: border-box; box-sizing: border-box;
padding-right: 20rpx; padding: 0 20rpx;
position: relative; overflow: hidden;
overflow: hidden; text-overflow: ellipsis;
text-overflow: ellipsis; display: -webkit-box;
display: -webkit-box; -webkit-box-orient: vertical;
-webkit-box-orient: vertical; }
-webkit-line-clamp: 2;
}
.m-listv .m-product-name2 {
width: 345rpx;
box-sizing: border-box;
padding: 0 20rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
}
</style> </style>

View File

@ -1,128 +0,0 @@
<template>
<view class="tagController">
<view class="tagContainer">
<view class="tagItem" :class="tagBgColor" v-bind:key="index" v-for="(tagText,index) in value">
<text @tap="tapTag" :data-text="tagText">{{tagText}}</text>
<text v-if="isShowDelIcon" class="tagDelIcon" @tap="delTag" :data-text="tagText">x</text>
</view>
</view>
<view class="tagInput" v-if="isShowAdd">
<input type="text" v-model="tagString" placeholder-class="placeholder-class" placeholder="输入新的标签" />
<button type="default" size="mini" @tap="createTags">添加</button>
</view>
</view>
</template>
<script>
export default {
name:'robby-tags',
props: ['enableDel','bgColorType','value', 'enableAdd'],
data() {
return {
tagString:'',
isShowDelIcon: this.enableDel || false,
isShowAdd: this.enableAdd || false
}
},
computed:{
tagBgColor: function(){
if(this.bgColorType === null){
return 'tagBgDefault'
}else if(this.bgColorType === 'primary'){
return 'tagBgPrimary'
}else if(this.bgColorType === 'success'){
return 'tagBgSuccess'
}else if(this.bgColorType === 'warn'){
return 'tagBgWarning'
}else if(this.bgColorType === 'error'){
return 'tagBgError'
}else{
return 'tagBgDefault'
}
}
},
methods: {
createTags: function(){
let tempTagArr = []
if(this.tagString.length>0){
let newvalue = this.tagString.split(/,|/)
for(let i=0;i<newvalue.length;i++){
let newTag = newvalue[i].trim()
if(newTag !== '' && this.value.indexOf(newTag) < 0){
tempTagArr.push(newTag)
}
}
}
this.tagString = ''
this.value.splice(this.value.length,0, ...tempTagArr)
this.$emit('add', {
currentTag: tempTagArr,
allTags: this.value
})
this.$emit('input', this.value)
},
delTag: function(e){
let delTagText = e.currentTarget.dataset.text
let delTagIndex = this.value.indexOf(delTagText)
this.value.splice(delTagIndex,1)
this.$emit("delete", {
currentTag: delTagText,
allTags: this.value
})
this.$emit('input', this.value)
},
tapTag: function(e){
let selTagText = e.currentTarget.dataset.text
this.$emit("click", selTagText)
}
}
}
</script>
<style>
.placeholder-class{
font-size: 24rpx;
}
.tagController{
padding: 10rpx;
}
.tagContainer{
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
}
.tagItem{
padding: 10rpx 20rpx;
margin: 10rpx;
border-radius: 40rpx;
color: white;
}
.tagBgDefault{
background-color: #cfcfcf;
color: black;
}
.tagBgPrimary{
background-color: #007aff;
}
.tagBgSuccess{
background-color: #4cd964;
}
.tagBgWarning{
background-color: #f0ad4e;
}
.tagBgError{
background-color: #dd524d;
}
.tagDelIcon{
padding-left: 20rpx;
}
.tagInput{
padding: 10rpx;
}
.tagInput input{
width: 60%;
display: inline-block;
}
</style>

View File

@ -1,239 +1,258 @@
<template name="share-box-mp"> <template name="share-box-mp">
<view :class="['shareMsk', isShare?'':'hide']"> <view :class="['shareMsk', isShare ? '' : 'hide']">
<view :class="['sharebox', isShareBox?'bounceInUp animated':'bounceOutDown animated']"> <view
<view class='shareList g-flex '> :class="[
<!-- #ifdef MP-WEIXIN --> 'sharebox',
<view class='shareItem g-flex-item'> isShareBox ? 'bounceInUp animated' : 'bounceOutDown animated',
<view class='shareBtn'> ]"
<button open-type="share" style='line-height:0' hover-class="none"> >
<image src='https://static.lancerdt.com/xcxfile/appicon/images/friend.png' style='width:100rpx;height:100rpx;margin-bottom:6rpx'></image> <view class="shareList g-flex">
</button> <!-- #ifdef MP-WEIXIN -->
<label>{{__('分享给朋友')}}</label> <view class="shareItem g-flex-item">
</view> <view class="shareBtn">
</view> <button open-type="share" style="line-height: 0" hover-class="none">
<!-- #endif --> <image
<view class='shareItem g-flex-item'> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/friend.png"
<view class='shareBtn' @click='shareQRCode'> style="width: 100rpx; height: 100rpx; margin-bottom: 6rpx"
<image src='https://static.lancerdt.com/xcxfile/appicon/images/allfriend.png' style='width:100rpx;height:100rpx'></image> ></image>
<label>{{__('生成海报')}}</label> </button>
</view> <label>{{ __("分享给朋友") }}</label>
</view> </view>
</view> </view>
<view class='cancelShare' @click='cancelShare'>{{__('取消')}}</view> <!-- #endif -->
</view> <view class="shareItem g-flex-item">
<view :class="['shareCodeImg', IsJT?'':'hide']"> <view class="shareBtn" @click="shareQRCode">
<uni-icons class="uni-icon uni-icon-clear mp-clean-icon hide" type="clear" size="20" @click='cancelShare' v-if="false"/> <image
<view class="uni-icon uni-icon-clear mp-clean-icon" @click='cancelShare'></view> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/allfriend.png"
<view @click='showCodeImg'> style="width: 100rpx; height: 100rpx"
<image mode="widthFix" :src='Path'></image> ></image>
</view> <label>{{ __("生成海报") }}</label>
<label>{{__('保存至相册 生成海报')}}</label> </view>
<button type="primary" size="mini" @click="saveImg">{{__('保存图片')}}</button> </view>
</view> </view>
</view> <view class="cancelShare" @click="cancelShare">{{ __("取消") }}</view>
</view>
<view :class="['shareCodeImg', IsJT ? '' : 'hide']">
<uni-icons
class="uni-icon uni-icon-clear mp-clean-icon hide"
type="clear"
size="20"
@click="cancelShare"
v-if="false"
/>
<view
class="uni-icon uni-icon-clear mp-clean-icon"
@click="cancelShare"
></view>
<view @click="showCodeImg">
<image mode="widthFix" :src="Path"></image>
</view>
<label>{{ __("保存至相册 生成海报") }}</label>
<button type="primary" size="mini" @click="saveImg">
{{ __("保存图片") }}
</button>
</view>
</view>
</template> </template>
<script> <script>
export default {
name: "share-box-mp",
props: {
shareDataDefault: {
type: Object,
default() {
return {
shareTitle: "",
shareText: "",
href: "",
image: "",
price: 0,
};
},
},
},
data() {
return {
IsJT: false,
Path: "",
isShare: false,
isShareBox: false,
};
},
methods: {
cancel() {
this.isShareBox = false;
this.isShare = false;
this.$emit("onCancel");
},
show() {
this.isShareBox = true;
this.isShare = true;
},
export default { cancelShare: function () {
name: "share-box-mp", this.isShareBox = false;
props: { this.isShare = false;
shareDataDefault: { this.IsJT = false;
type: Object,
default() {
return {
shareTitle: '',
shareText: '',
href: '',
image: '',
price: 0
}
},
},
},
data(){
return {
IsJT:false,
Path:"",
isShare:false,
isShareBox:false
}
},
methods: {
cancel() {
this.isShareBox = false;
this.isShare = false;
this.$emit('onCancel');
},
show() {
this.isShareBox = true;
this.isShare = true;
},
cancelShare: function() { this.$emit("cancelShare");
this.isShareBox = false; },
this.isShare = false; shareQRCode: function (e) {
this.IsJT = false; var that = this;
var params = {
MainPrice: this.shareDataDefault.price,
this.$emit('cancelShare') summary: this.shareDataDefault.shareText,
}, MainImg: this.shareDataDefault.image,
shareQRCode: function(e) { MainTitle: this.shareDataDefault.shareTitle,
var that = this; Path: this.shareDataDefault.href,
var params = { source_from: "wxminiapp",
MainPrice: this.shareDataDefault.price,
summary : this.shareDataDefault.shareText, poster_name: this.shareDataDefault.shareText,
MainImg : this.shareDataDefault.image, path: this.shareDataDefault.href,
MainTitle : this.shareDataDefault.shareTitle, };
Path : this.shareDataDefault.href,
source_from: 'wxminiapp',
poster_name:this.shareDataDefault.shareText, let url = that.cf.URL.wx.getMiniAppQRCodeUnlimitPoster;
path : this.shareDataDefault.href,
};
let url = that.cf.URL.wx.getMiniAppQRCodeUnlimitPoster; if (this.shareDataDefault.price > 0) {
// #ifdef H5
url = that.cf.URL.fx.poster;
params["poster_type"] = 1;
// #endif
// #ifdef MP-WEIXIN
params["poster_type"] = 2;
// #endif
// #ifdef APP-PLUS
params["poster_type"] = 1;
// #endif
} else {
url = that.cf.URL.fx.poster;
if (this.shareDataDefault.price > 0) // #ifdef H5
{ params["poster_type"] = 1;
// #ifdef H5 // #endif
url = that.cf.URL.fx.poster; // #ifdef MP-WEIXIN
params['poster_type'] = 1; params["poster_type"] = 2;
// #endif // #endif
// #ifdef MP-WEIXIN // #ifdef APP-PLUS
params['poster_type'] = 2 params["poster_type"] = 1;
// #endif // #endif
// #ifdef APP-PLUS }
params['poster_type'] = 1
// #endif
}
else
{
url = that.cf.URL.fx.poster;
// #ifdef H5 // -
params['poster_type'] = 1; that.$.request({
// #endif url: url,
// #ifdef MP-WEIXIN data: params,
params['poster_type'] = 2 method: "POST",
// #endif success: function (data, status, msg, code) {
// #ifdef APP-PLUS that.setData({
params['poster_type'] = 1 Path: data.url || data.poster_url,
// #endif isShare: true,
} isShareBox: false,
IsJT: true,
});
},
});
// - this.$emit("shareQRCode");
that.$.request({ },
url: url, saveImg: function (e) {
data: params, var that = this;
method:"POST", // #ifdef MP-WEIXIN
success: function(data, status, msg, code) { //
that.setData({ uni.authorize({
Path: data.url || data.poster_url, scope: "scope.writePhotosAlbum",
isShare: true, success() {
isShareBox: false, //
IsJT: true that.saveImgFun();
}) },
} fail() {
}); //
uni.showModal({
title: "授权提示",
content: "您拒绝了授权,如需下载图片,请点击下方按钮重新授权。",
confirmText: "重新授权",
success(res) {
if (res.confirm) {
//
uni.openSetting({
success(res) {
if (res.authSetting["scope.writePhotosAlbum"]) {
//
that.saveImgFun();
} else {
//
uni.showToast({
title: "授权失败",
icon: "none",
});
}
},
});
}
},
});
},
});
// #endif
// #ifndef MP-WEIXIN
this.saveImgFun();
// #endif
},
saveImgFun: function (e) {
var that = this;
that.$.showLoading();
that.$.downloadFile({
url: that.Path,
success: function (t) {
that.$.hideLoading();
that.$.saveImageToPhotosAlbum({
filePath: t.tempFilePath,
success: function () {
that.setData({
Path: "",
isShare: false,
isShareBox: false,
IsJT: false,
}),
that.$.alert("保存图片成功!");
},
fail: function (e) {
that.$.hideLoading();
},
});
},
fail: function (e) {
that.$.hideLoading();
},
});
this.$emit('shareQRCode') that.$.hideLoading();
},
saveImg: function(e) {
var that = this;
// #ifdef MP-WEIXIN
//
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
//
that.saveImgFun();
},
fail() {
//
uni.showModal({
title: '授权提示',
content: '您拒绝了授权,如需下载图片,请点击下方按钮重新授权。',
confirmText: '重新授权',
success(res) {
if (res.confirm) {
//
uni.openSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
//
that.saveImgFun();
} else {
//
uni.showToast({
title: '授权失败',
icon: 'none'
})
}
}
})
}
}
})
}
})
// #endif
// #ifndef MP-WEIXIN
this.saveImgFun();
// #endif
},
saveImgFun: function(e) {
var that = this;
that.$.showLoading();
that.$.downloadFile({
url: that.Path,
success: function(t) {
that.$.hideLoading();
that.$.saveImageToPhotosAlbum({
filePath: t.tempFilePath,
success: function() {
that.setData({
Path: "",
isShare: false,
isShareBox: false,
IsJT: false
}), that.$.alert("保存图片成功!")
},
fail: function(e) {
that.$.hideLoading()
}
})
},
fail: function(e) {
that.$.hideLoading()
}
})
that.$.hideLoading() this.$emit("saveImg");
},
showCodeImg: function () {
let that = this;
that.$.previewImage({
current: that.Path,
urls: [that.Path],
});
this.$emit('saveImg') this.$emit("showCodeImg");
}, },
showCodeImg: function() { },
let that = this; };
that.$.previewImage({
current: that.Path,
urls: [that.Path]
})
this.$emit('showCodeImg')
}
}
}
</script> </script>
<style> <style>
.mp-clean-icon{ .mp-clean-icon {
position: absolute; position: absolute;
right: 8rpx; right: 8rpx;
top: 8rpx; top: 8rpx;
color: #999999; color: #999999;
} }
</style> </style>

View File

@ -1,351 +0,0 @@
<template>
<view>
<!-- 商品分类 -->
<uni-drawer :visible="rightDrawerVisible" mode="right" @close="closeDrawer()" >
<view class="m-tab">
<view class="m-navbar">
<view :class="['m-navbar-item', tapindex==1?'m-navbar-item-on':'']" @click="onecategorys">
{{__('一级分类')}}
</view>
<view :class="['m-navbar-item', tapindex==2?'m-navbar-item-on':'']">
{{__('二级分类')}}
</view>
<view :class="['m-navbar-item', tapindex==3?'m-navbar-item-on':'']">
{{__('三级分类')}}
</view>
</view>
</view>
<scroll-view scroll-y="true" style="height: 100%">
<view class="m-cells" style="padding:20rpx 20rpx;" v-for="(category,ii) in categorys" :key="ii">
<view class="m-cell m-cell-access m-info-sp" :data-category_id="category.category_id" :data-category_name="category.category_name" @click="getCate">
<view class="m-cell-bd">
<view class="m-order-title">
<label class="m-ber-n">{{category.category_name}}</label>
<label>
<image class="nav-image" lazy-load src="/static/images/nav.png" mode="scaleToFill" />
</label>
</view>
</view>
</view>
</view>
</scroll-view>
</uni-drawer>
</view>
</template>
<script>
import uniDrawer from '@/components/uni-drawer.vue';
import { mapState, mapMutations } from 'vuex';
export default {
props: {
rightDrawerVisible: {
type: Boolean,
default: false
}
},
data() {
return {
index:0,
tapindex: 1,
deep:0,
categorys:[]
};
},
components: {
uniDrawer
},
computed: mapState([
'Config',
'StateCode',
'notice',
'plantformInfo',
'shopInfo',
'userInfo',
'hasLogin'
]),
created() {
var that = this;
this.GetPlist(function() {
that.pdlist.length == 0 ? that.setData({ isdata: false }) : that.setData({ isdata: true });
});
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
onecategorys: function(){
this.setData({
deep:1,
category_id:0,
tapindex:1
})
this.getcategorys()
},
getCate: function(e){
var that = this;
switch (that.tapindex) {
case 1:
that.setData({
deep:that.tapindex,
category_id:e.currentTarget.dataset.category_id,
onecategory:e.currentTarget.dataset.category_name,
tapindex:2
})
that.getcategorys()
break;
case 2:
that.setData({
deep:that.tapindex,
category_id:e.currentTarget.dataset.category_id,
twocategory:e.currentTarget.dataset.category_name,
tapindex:3
})
that.getcategorys()
break;
case 3:
that.setData({
threecategory:e.currentTarget.dataset.category_name,
category_id:e.currentTarget.dataset.category_id,
tapindex:1,
deep:1,
rightDrawerVisible:false
})
that.commodity_name = that.onecategory + '>' + that.twocategory + '>' + that.threecategory
break;
}
},
getcategorys: function(e){
var that = this;
var params = {
deep:that.deep
};
if(that.category_id !== 0){
params.category_id= that.category_id
}
that.$.request({
url: that.Config.URL.product.category,
data: params,
success: function(data, status, msg, code) {
if(status == 200){
that.setData({
categorys:data.items
})
}
}
})
}
}
};
</script>
<style lang="scss" scoped>
@import '../styles/_variables.scss';
/*全部商品 start*/
.m-navbar-item {
padding: 20rpx 0;
font-size: 24rpx;
i {
font-size: 0rpx;
line-height: 0;
vertical-align: middle;
display: inline-block;
width: 0rpx;
height: 0rpx;
margin-left: 9.375rpx;
border-width: 9.375rpx;
border-color: #aaa transparent transparent transparent;
border-style: solid dashed dashed dashed;
}
}
.m-navbar-item:after {
border: none;
}
.m-navbar-item.m-navbar-item-on {
background-color: #fff;
color: $default-skin-bg;
i {
border-color: $default-skin-bg transparent transparent;
}
}
.m-navbar-item.m-navbar-item-on::before {
content: ' ';
position: absolute;
left: 0;
bottom: 0;
right: 0;
height: 6rpx;
border-bottom: 6rpx solid $default-skin-bg;
color: #cccccc;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
z-index: 3;
}
.m-sort {
position: relative;
}
.m-sort image {
width: 24rpx;
height: 24rpx;
position: absolute;
/*top: 50%;*/
margin-top: 10rpx;
margin-left: 2rpx;
}
/*全部商品 end*/
.m-product-price1 {
width: 100%;
display: flex;
justify-content: space-between;
}
.num {
font-size: 24rpx;
color: #717171;
padding-right: 20rpx;
/*margin-left:260rpx; */
}
.u-pa .m-tab {
top: var(--window-top);
}
.u-pa .m-tab-top {
top: 0;
}
.filter-box {
top: var(--window-top);
}
.filter-box-top {
top: 0;
}
.tag-view {
margin: 10rpx 20rpx;
display: inline-block;
}
.uni-numbox-value {
border: 2rpx solid #cccccc;
background-color: #ffffff;
width: 150rpx;
height: 48rpx;
text-align: center;
display: inline-block;
}
.uni-dot {
width: 30rpx;
height: 100%;
text-align: center;
display: inline-block;
line-height: 44rpx;
height: 44rpx;
}
.uni-padding-wrap {
overflow: hidden;
max-width: 400rpx;
}
/* */
.product-list {
position: relative;
z-index: 1;
&:hover {
z-index: 2;
}
.flag {
position: absolute;
top: 0;
left: 50%;
z-index: 2;
width: 64px;
height: 20px;
margin-left: -32px;
font-size: 12px;
line-height: 20px;
text-align: center;
color: #fff;
}
.flag-reduction {
background-color: #e50dbb;
z-index: 8;
}
.flag-saleoff {
background-color: #e53935;
z-index: 7;
}
.flag-postfree {
background-color: #ffac13;
z-index: 6;
}
.flag-bargain {
background-color: #ffac13;
z-index: 4;
}
.flag-gift {
background-color: #2196f3;
z-index: 3;
}
.flag-new {
background-color: #83c44e;
z-index: 5;
}
.flag-selfsupport {
background-color: #f44336;
z-index: 10;
position: absolute;
top: 1px;
right: 5px;
left: auto;
width: 40px;
}
}
.placeholder-class{
font-size: 25rpx;
}
.button{
line-height: 2;
font-size: 34rpx;
}
.uni-common-mt{
margin-top: 20rpx;
}
.u-pa {
position: inherit!important;
}
.u-pa .m-product-list
{
padding-top:0rpx;
}
.u-pa .m-tab{
position: relative;
}
</style>

View File

@ -1,184 +0,0 @@
const citys = [
{
"letter": "A",
"list": [
"安远","安义","安溪","安丘","安宁","安吉","安福","阿城","安阳","安顺","鞍山","安庆","安康","阿里",
"阿勒泰","阿拉善盟","阿克苏","阿坝"
]
},
{
"letter": "B",
"list": [
"北京","博兴","博罗","博爱","璧山","宾阳","宾县","滨海","巴彦","宝应","亳州","博尔塔拉","滨州","毕节",
"本溪","北海","巴中","巴音郭楞","巴彦淖尔","包头","保山","宝鸡","保定","蚌埠","白银","白山","百色","白城"
]
},
{
"letter": "C",
"list": [
"成都","常州","长沙","长春","重庆","朝阳","巢湖","长治","昌吉","昌都","常德","沧州","郴州","承德","潮州",
"滁州","楚雄","崇左","池州","赤峰","枞阳","从化","慈溪","淳安","崇州","崇义","崇仁","茌平","成武","城口",
"呈贡","潮安","昌邑","长兴","长汀","长泰","常熟","常山","昌乐","长乐","长海","长丰","长岛","曹县","苍山",
"苍南"
]
},
{
"letter": "D",
"list": [
"丹东","大理","东莞","大连","大兴安岭","大同","大庆","德州","德阳","德宏","达州","大丰","东营","迪庆",
"定西","单县","当涂","砀山","岱山","大邑","大田","大埔","丹阳","德化","德安","大足","大余","德庆","德清",
"登封","德惠","定南","垫江","电白","德兴","东海","东阿","定远","定陶","东台","东山","东平","东明","东源",
"东阳","东乡","洞头","都江堰","都昌","东至"
]
},
{
"letter": "E",
"list": [
"鄂尔多斯","恩施","恩平","鄂州"
]
},
{
"letter": "F",
"list": [
"佛山","福州","防城港","抚顺","阜新","阜阳","抚州","法库","富阳","福清","阜宁","阜南","富民","浮梁","福鼎",
"福安","佛冈","分宜","凤阳","奉新","丰县","凤台","丰顺","封开","奉节","奉化","丰都","丰城","费县","肥西",
"肥东","肥城","方正","繁昌"
]
},
{
"letter": "G",
"list": [
"广州","贵阳","甘南","赣州","甘孜","广安","广元","贵港","桂林","果洛","固原","赣县","赣榆","高安","固镇",
"古田","贵溪","灌云","冠县","灌南","光泽","广饶","广宁","广丰","广德","广昌","巩义","高州","高邮","高邑",
"高要","高唐","高青","高密","高陵","皋兰","高淳","藁城"
]
},
{
"letter": "H",
"list": [
"杭州","哈尔滨","邯郸","海口","黑河","合肥","鹤岗","河池","鹤壁","汉中","哈密","海西","海南","海东","海北",
"惠州","呼伦贝尔","葫芦岛","呼和浩特","黄石","黄山","黄南","黄冈","淮南","怀化","淮北","淮安","红河","贺州",
"菏泽","河源","和田地","衡阳","衡水","怀远","怀宁","怀集","桦甸","华安","洪泽","和县","鹤山","和平","横县",
"横峰","合川","含山","海阳","海盐","海宁","海门","海丰","海安","湖州","户县","霍山","霍邱","呼兰","湖口",
"惠民","惠来","惠东","会昌","惠安","化州","桓台"
]
},
{
"letter": "J",
"list": [
"鸡西","酒泉","九江","锦州","晋中","济宁","金华","荆州","荆门","景德镇","晋城","金昌","揭阳","嘉峪关","吉安",
"江门","佳木斯","济南","吉林","嘉兴","焦作","井冈山","旌德","靖安","即墨","揭西","界首","揭东","嘉祥","嘉善",
"胶州","胶南","蕉岭","蛟河","吉安","建阳","建瓯","建宁","建湖","江阴","姜堰","江山","将乐","江津","江都","建德",
"九台","九江","吉水","晋州","金寨","缙云","金乡","金溪","进贤","金堂","金坛","晋宁","金门","晋江","金湖","井陉",
"泾县","景宁","靖江","巨野","莒县","句容","莒南","鄄城","济源","济阳","绩溪"
]
},
{
"letter": "K",
"list": [
"昆明","开封","喀什地","克拉玛依","克孜勒","开化","开平","开县","开阳","康平","垦利","昆山"
]
},
{
"letter": "L",
"list": [
"连云港","凉山","乐山","拉萨","廊坊","莱芜","来宾","洛阳","柳州","兰州","六盘水","六安","丽水","林芝","临沂","临夏",
"临汾","临沧","丽江","辽源","辽阳","聊城","乐亭","乐清","乐平","乐陵","雷州","乐昌","乐安","兰溪","蓝田","郎溪",
"莱州","莱阳","莱西","来安","吕梁","泸州","漯河","娄底","龙岩","陇南","临邑","临沭","临朐","临泉","临清","临海",
"陵县","灵寿","灵璧","临安","利津","黎川","辽中","连州","涟水","连山","连平","连南","廉江","连江","莲花","梁山",
"梁平","连城","鹿寨","芦溪","禄劝","鹿泉","罗源","洛宁","罗定","庐江","陆河","陆丰","滦县","滦南","栾川","栾城",
"龙游","龙泉","龙南","龙门","龙口","龙海","龙川","隆安","溧阳","利辛","浏阳","柳江","柳城","溧水"
]
},
{
"letter": "M",
"list": [
"马鞍山","茂名","眉山","梅州","绵阳","牡丹江","马山","梅县","蒙城","孟津","蒙阴","孟州","明光","明溪","闽侯","闽清",
"木兰"
]
},
{
"letter": "N",
"list": [
"南昌","南京","南宁","南通","宁波","南充","南平","南阳","那曲","内江","宁德","怒江","南安","南澳","南城","南川","南丰",
"南靖","南康","南陵","南雄","宁都","宁国","宁海","宁化","宁津","宁乡","宁阳","农安"
]
},
{
"letter": "P",
"list": [
"盘锦","攀枝花","平顶山","平凉","萍乡","普洱","莆田","濮阳","磐安","磐石","沛县","蓬莱","彭水","彭泽","彭州","平度",
"平和","平湖","屏南","平山","平潭","平阳","平阴","平邑","平原","平远","郫县","邳州","鄱阳","浦城","浦江","蒲江","普兰店",
"普宁"
]
},
{
"letter": "Q",
"list": [
"青岛","泉州","黔东","黔南","黔西南","庆阳","清远","秦皇岛","钦州","齐齐哈尔","七台河","曲靖","衢州","迁安","潜山","铅山",
"迁西","启东","齐河","綦江","祁门","清流","青田","清新","青阳","庆元","庆云","清镇","青州","沁阳","邛崃","栖霞","全椒",
"曲江","曲阜","全南"
]
},
{
"letter": "R",
"list": [
"日喀则","日照","饶平","仁化","融安","荣昌","荣成","融水","如东","如皋","瑞安","瑞昌","瑞金","乳山","汝阳","乳源"
]
},
{
"letter": "S",
"list": [
"上海","沈阳","深圳","石家庄","苏州","三门峡","三明","三亚","商丘","商洛","上饶","汕尾","汕头","绍兴","韶关","山南","邵阳",
"十堰","双鸭山","石嘴山","绥化","松原","四平","朔州","泗阳","泗县","泗水","四会","泗洪","沭阳","顺昌","舒兰","舒城","双流",
"双城","寿县","寿宁","寿光","石柱","始兴","石台","石狮","石林","石城","射阳","歙县","深泽","莘县","嵊州","嵊泗","沙县","绍兴",
"邵武","尚志","上虞","上犹","上饶","上林","上栗","商河","上杭","上高","诏安","三门","三江","松阳","嵩县","松溪","嵩明","宿州",
"宿迁","随州","遂宁","宿松","遂溪","濉溪","睢宁","遂川","遂昌","宿豫"
]
},
{
"letter": "T",
"list": [
"天津","台州","唐山","塔城地","泰安","太原","泰州","天水","铁岭","铜川","通化","通辽","铜陵","铜仁", "通州","桐乡","铜山","潼南",
"桐庐","铜陵","铜梁","通河","铜鼓","桐城","天台","天长","滕州","唐海","郯城","泰兴","泰顺","台山","泰宁","太湖","泰和","太和","太仓",
"吐鲁番"
]
},
{
"letter": "W",
"list": [
"潍坊","威海","武汉","无锡","渭南","文山","温州","乌海","芜湖","乌兰察布","乌鲁木齐","武威","吴忠","武陟","婺源","武夷山","武义","巫溪",
"无为","巫山","武平","武宁","武鸣","武隆","五莲","吴江","无极","五华","芜湖","五河","无棣","吴川","武城","五常","涡阳","温县","汶上",
"温岭","翁源","文登","文成","微山","万载","万年","望江","望城","万安","瓦房店","梧州"
]
},
{
"letter": "X",
"list": [
"厦门","西安","许昌","徐州","襄樊","湘潭","湘西","咸宁","咸阳","孝感","锡林郭勒盟","兴安盟","邢台","西宁","新乡","信阳","新余","忻州",
"西双版纳","宣城","峡江","夏津","象山","响水","仙居","仙游","萧县","霞浦","息烽","新安","新昌","信丰","新丰","新干","兴国","兴化","兴宁",
"行唐","荥阳","星子","辛集","新建","新津","新乐","新民","新密","新泰","新兴","新沂","信宜","新郑","休宁","秀山","修水","修文","修武",
"寻甸","盱眙","徐闻","寻乌"
]
},
{
"letter": "Y",
"list": [
"扬州","烟台","雅安","延安","延边","盐城","阳江","阳泉","宜宾","宜昌","伊春","宜春","伊犁哈萨克","银川","营口","鹰潭","益阳","永州","岳阳",
"玉林","榆林","运城","云浮","玉树","玉溪","阳春","阳东","阳谷","阳山","阳信","阳西","扬中","偃师","延寿","兖州","伊川","宜丰","宜黄","依兰",
"宜良","沂南","英德","颍上","沂水","义乌","黟县","宜兴","弋阳","宜阳","沂源","仪征","永安","永川","永春","永登","永定","永丰","永吉","永嘉",
"永康","邕宁","永泰","永新","永修","尤溪","酉阳","元氏","禹城","于都","岳西","余干","玉环","余江","郁南","云安","郓城","云和","云霄","云阳",
"玉山","榆树","鱼台","玉田","余姚","榆中"
]
},
{
"letter": "Z",
"list": [
"漳州","遵化","郑州","中山","珠海","枣庄","张家界","张家口","张掖","湛江","肇庆","昭通","镇江","中卫","周口","舟山","驻马店","株洲","淄博",
"自贡","资阳","遵义","赞皇","增城","张家港","漳平","漳浦","章丘","樟树","沾化","赵县","招远","正定","政和","柘荣","中牟","忠县","周宁",
"周至","庄河","诸城","诸暨","紫金","资溪","邹城","邹平"
]
}
]
export default citys

View File

@ -1,150 +0,0 @@
<template>
<view class="select-city-wrap">
<view class="select-city">
<view class="index">
<view class="index-item" @click="scrollTo('#')">#</view>
<view class="index-item" v-for="item in citys" :key="item.letter" @click="scrollTo(item.letter)">{{item.letter}}</view>
</view>
<scroll-view :scroll-into-view="scrollIntoId" :scroll-y="true" :scroll-with-animation="true" :style="{height:windowHeight}">
<view class="content">
<view class="section" id="current">
<view class="city-title">{{__('当前城市')}}</view>
<view class="city-list">
<view class="city-item">{{current}}</view>
</view>
</view>
<view class="section" id="hot" v-if="hotCitys.length">
<view class="city-title">{{__('热门城市')}}</view>
<view class="city-list">
<view class="city-item" :class="{active: current === city.subsite_name}" v-for="(city, i) in hotCitys" :key="i" @click="onSelect(city)">{{city.subsite_name}}</view>
</view>
</view>
<view class="section" :id="item.letter" v-for="item in citys" :key="item.letter">
<view class="letter">{{item.letter}}</view>
<view class="city-list">
<view class="city-item" :class="{active: current === city.subsite_name}" v-for="(city,itemIndex) in item.list" :key="itemIndex" @click="onSelect(city)">{{city.subsite_name}}</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
//import Citys from './citys'
export default {
props: {
citys: {
type: Array,
default () {
return []
}
},
hotCitys: {
type: Array,
default () {
return []
}
},
subsite_current: {
type: Object,
default () {
return {}
}
}
},
data() {
return {
windowHeight: '',
scrollIntoId: 'F',
current: this.subsite_current.subsite_name
}
},
mounted() {
let that = this;
this.getSystemInfo()
setTimeout(function(){that.current = that.subsite_current.subsite_name}, 400)
},
methods: {
getSystemInfo() {
uni.getSystemInfo().then(res => {
let [error, data] = res
this.windowHeight = `${data.windowHeight}px`
})
},
scrollTo(letter) {
this.scrollIntoId = letter === '#' ? 'current' : letter
},
onSelect(city) {
this.current = city.subsite_name
this.$emit('input', city)
this.$emit('on-select', city)
}
}
}
</script>
<style lang="scss" scoped>
.select-city-wrap {
position: relative;
padding: 0 30rpx;
background-color: #fff;
}
.select-city {
.index {
position: absolute;
right: 0;
bottom: 20rpx;
z-index: 999;
color: #2f9bfe;
font-size: 32rpx;
.index-item {
width: 40rpx;
height: 42rpx;
line-height: 42rpx;
text-align: center;
}
}
.section {
margin-bottom: 19rpx;
.city-title {
color: #333;
font-size: 28rpx;
margin-bottom: 28rpx;
}
.letter {
width: 44rpx;
height: 44rpx;
color: #fff;
border-radius: 100%;
background-color: #2f9bfe;
font-size: 28rpx;
line-height: 44rpx;
text-align: center;
margin-bottom: 30rpx;
}
.city-list {
display: flex;
flex-wrap: wrap;
.city-item {
width: 190rpx;
height: 55rpx;
margin-right: 36rpx;
margin-bottom: 28rpx;
line-height: 55rpx;
text-align: center;
border: 1px solid #dcdcdc;
border-radius: 6rpx;
color: #999;
font-size: 28rpx;
&.active {
background-color: #d5ebff;
border-color: #2f9bfe;
color: #2f9bfe;
}
}
}
}
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,113 +1,167 @@
<template name="shoptheme1"> <template name="shoptheme1">
<view> <view>
<view class="m-supermarket-ad"> <view class="m-supermarket-ad">
<view v-if="(commonTPL.AdContent.F1ProductContents.length>0)"> <view v-if="commonTPL.AdContent.F1ProductContents.length > 0">
<view class="m-supermarket-tip-list"> <!-- <view class="m-supermarket-tip-list">
<navigator :url="'/pages/product/list?is_store_flag=' + (commonTPL.isStoreFlag) + '&store_category_id=' + (item.store_product_cat_id) + '&cname=' + (item.name)" <navigator :url="'/pages/product/list?is_store_flag=' + (commonTPL.isStoreFlag) + '&store_category_id=' + (item.store_product_cat_id) + '&cname=' + (item.name)"
v-for="(item, i) in commonTPL.smallCategory" :key="i" class="m-supermarket-tip-item"> v-for="(item, i) in commonTPL.smallCategory" :key="i" class="m-supermarket-tip-item">
<label>{{item.name}}</label> <label>{{item.name}}</label>
</navigator> </navigator>
</view> </view> -->
<view class="m-product-list m-listv"> <view class="m-product-list m-listv">
<navigator v-for="(item, i) in commonTPL.AdContent.F1ProductContents" :key="i" :url="'/pages/product/detail?is_store_flag=' + (commonTPL.isStoreFlag) + '&pid=' + (item.ProductContentID)" <navigator
class="m-product-item"> v-for="(item, i) in commonTPL.AdContent.F1ProductContents"
<view class="m-product-img"> :key="i"
<image :src="(item.ImagePath)" mode="aspectFill" /> :url="
</view> '/pages/product/detail?is_store_flag=' +
<view class="m-product-info"> commonTPL.isStoreFlag +
<view class="m-product-name"> '&pid=' +
<label>{{item.ProductName}}</label> item.ProductContentID
</view> "
<view class="m-product-price"> class="m-product-item"
<block v-if="item.item_color[0].item_sale_price"> >
<label>{{__('¥')}}</label>{{number_format(item.item_color[0].item_sale_price, 2)}} <view class="m-product-img">
</block> <image :src="item.ImagePath" mode="aspectFill" />
</view>
<view class="m-product-info">
<view class="m-product-name">
<label>{{ item.ProductName }}</label>
</view>
<view class="m-product-price">
<block v-if="item.item_color[0].item_sale_price">
<label>{{ __("¥") }}</label
>{{ number_format(item.item_color[0].item_sale_price, 2) }}
</block>
<block v-if="item.product_unit_points"> <block v-if="item.product_unit_points">
<label style="margin: 0rpx 10rpx;">+</label><label style="font-size:32rpx">{{number_format(item.product_unit_points)}}</label> <label>{{__('积分')}}</label> <label style="margin: 0rpx 10rpx">+</label
</block> ><label style="font-size: 32rpx">{{
number_format(item.product_unit_points)
}}</label>
<label>{{ __("积分") }}</label>
</block>
<block v-if="item.product_unit_sp"> <block v-if="item.product_unit_sp">
<label style="margin: 0rpx 10rpx;">+</label><label style="font-size:32rpx">{{item.product_unit_sp}}</label> <label>{{__('众宝')}}</label> <label style="margin: 0rpx 10rpx">+</label
</block> ><label style="font-size: 32rpx">{{
</view> item.product_unit_sp
</view> }}</label>
</navigator> <label>{{ __("众宝") }}</label>
</view> </block>
</view> <view
<view class="m-nullcontent" v-else> class="btn_addcard"
<view class="m-nullpage-middle"> @click.stop="handleAddcard(item, $event)"
<label class="iconfont icon-meiyougengduo"></label> ></view>
<view class="m-null-tip"> </view>
<text>{{__('亲~什么都没有')}}</text> </view>
<text>{{__('暂时没有商品哦')}}</text> </navigator>
</view> </view>
</view> </view>
</view> <view class="m-nullcontent" v-else>
</view> <view class="m-nullpage-middle">
</view> <label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip">
<text>{{ __("亲~什么都没有") }}</text>
<text>{{ __("暂时没有商品哦") }}</text>
</view>
</view>
</view>
</view>
<loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup>
</view>
</template> </template>
<script> <script>
import $ from "../../helpers/util";
import loginPopup from "@/components/loginPopup.vue";
import { mapMutations, mapState } from "vuex";
import $ from "../../helpers/util"; export default {
name: "shoptheme1",
export default { props: {
name: "shoptheme1", commonTPL: {
props: { type: Object,
commonTPL: { default() {
type: Object, return {
default () { isStoreFlag: 1,
return { ProductInfo: {},
isStoreFlag: 1, addCar: false,
ProductInfo: {}, count: 0,
addCar: false, windowHeight: 0,
count: 0, categoryname: "",
windowHeight: 0, click6: true,
categoryname: "", cid: 0,
click6: true, cartlist: {},
cid: 0, isdata: false,
cartlist: {}, select_cart_ids: [],
isdata: false, tapindex: 1,
select_cart_ids: [], viewtype: 0,
tapindex: 1, shopInfo: {},
viewtype: 0, pdlist: [],
shopInfo: {}, sort: 2,
pdlist: [], ispage: true,
sort: 2, flag: true,
ispage: true, distance: 0,
flag: true, istop: false,
distance: 0, TemplateKey: "",
istop: false, smallCategory: {},
TemplateKey: "", AdContent: {},
smallCategory: {}, post: {
AdContent: {}, store_id: 0,
post: { orderby: 1,
store_id: 0, sort: 2,
orderby: 1, isnew: false,
sort: 2, curpage: 1,
isnew: false, },
curpage: 1 formdate: "",
}, pageId: 0,
formdate: "", };
pageId: 0 },
} },
}, },
}, components: {
}, loginPopup,
data() { },
return {} data() {
}, return {
created: function() {}, showLoginPopup: false,
methods: {} };
} },
computed: mapState(["hasLogin"]),
created: function () {},
methods: {
handleAddcard(data, event) {
this.$emit("addCart", data);
},
closeLoginPopup() {
this.showLoginPopup = false;
},
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
.m-product-info {
width: auto;
}
.m-product-price {
position: relative;
width: auto;
}
.btn_addcard {
position: absolute;
right: 20rpx;
bottom: 8rpx;
width: 40rpx;
height: 40rpx;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/pc1.png)
center no-repeat;
background-size: cover;
}
</style> </style>

View File

@ -109,10 +109,10 @@
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
</style> </style>

View File

@ -83,9 +83,9 @@
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
</style> </style>

View File

@ -98,9 +98,9 @@
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
</style> </style>

View File

@ -60,9 +60,9 @@
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
</style> </style>

View File

@ -1139,10 +1139,10 @@
<style lang="scss"> <style lang="scss">
@import "../../styles/_variables"; // @import "../../styles/_variables";
@import '../../styles/layout.scss'; // @import '../../styles/layout.scss';
@import '../../styles/store_themes.scss'; // @import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss'; // @import '../../styles/store_tpl.scss';
</style> </style>

View File

@ -4,6 +4,7 @@
:lazy-load="node.attr.lazyLoad" :lazy-load="node.attr.lazyLoad"
:class="node.classStr" :class="node.classStr"
:style="newStyleStr || node.styleStr" :style="newStyleStr || node.styleStr"
style="width:100% !important"
:data-src="node.attr.src" :data-src="node.attr.src"
:src="node.attr.src" :src="node.attr.src"
@tap="wxParseImgTap" @tap="wxParseImgTap"
@ -52,11 +53,11 @@ export default {
if ('chatimg' == this.node.attr.class) if ('chatimg' == this.node.attr.class)
{ {
this.newStyleStr = `${styleStr}; width: 100%; padding: 0 ${+padding}px;`; this.newStyleStr = `${styleStr}; max-width: 100%; padding: 0 ${+padding}px;`;
} }
else else
{ {
this.newStyleStr = `${styleStr}; ${imageHeightStyle}; width: ${imageWidth}px; padding: 0 ${+padding}px;`; this.newStyleStr = `${styleStr}; ${imageHeightStyle}; max-width: ${imageWidth}px; padding: 0 ${+padding}px;`;
} }
}, },
// //

View File

@ -1,349 +1,388 @@
<template> <template>
<view class="uni-navbar" :class="{'uni-dark':dark}"> <view class="uni-navbar" :class="{ 'uni-dark': dark }">
<view :class="{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }" <view
:style="{ 'background-color': themeBgColor }" class="uni-navbar__content"> :class="{
<status-bar v-if="statusBar" /> 'uni-navbar--fixed': fixed,
<view :style="{ color: themeColor,backgroundColor: themeBgColor ,height:navbarHeight}" 'uni-navbar--shadow': shadow,
class="uni-navbar__header"> 'uni-navbar--border': border,
<view @tap="onClickLeft" class="uni-navbar__header-btns uni-navbar__header-btns-left" }"
:style="{width:leftIconWidth}"> :style="{ 'background-color': themeBgColor }"
<slot name="left"> class="uni-navbar__content"
<view class="uni-navbar__content_view" v-if="leftIcon.length > 0"> >
<uni-icons :color="themeColor" :type="leftIcon" size="20" /> <status-bar v-if="statusBar" />
</view> <view
<view :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length > 0 }" class="uni-navbar-btn-text" :style="{
v-if="leftText.length"> color: themeColor,
<text :style="{ color: themeColor, fontSize: '12px' }">{{ leftText }}</text> backgroundColor: themeBgColor,
</view> height: navbarHeight,
</slot> }"
</view> class="uni-navbar__header"
<view class="uni-navbar__header-container " @tap="onClickTitle"> >
<slot> <view
<view class="uni-navbar__header-container-inner" v-if="title.length>0"> @tap="onClickLeft"
<text class="uni-nav-bar-text uni-ellipsis-1" class="uni-navbar__header-btns uni-navbar__header-btns-left"
:style="{color: themeColor }">{{ title }}</text> :style="{ minWidth: leftIconWidth }"
</view> >
</slot> <slot name="left">
</view> <view class="uni-navbar__content_view" v-if="leftIcon.length > 0">
<view @click="onClickRight" class="uni-navbar__header-btns uni-navbar__header-btns-right" <uni-icons :color="themeColor" :type="leftIcon" size="20" />
:style="{width:rightIconWidth}"> </view>
<slot name="right"> <view
<view v-if="rightIcon.length"> :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length > 0 }"
<uni-icons :color="themeColor" :type="rightIcon" size="22" /> class="uni-navbar-btn-text"
</view> v-if="leftText.length"
<view class="uni-navbar-btn-text" v-if="rightText.length && !rightIcon.length"> >
<text class="uni-nav-bar-right-text" :style="{ color: themeColor}">{{ rightText }}</text> <text :style="{ color: themeColor, fontSize: '12px' }">{{
</view> leftText
</slot> }}</text>
</view> </view>
</view> </slot>
</view> </view>
<view class="uni-navbar__placeholder" v-if="fixed"> <view class="uni-navbar__header-container" @tap="onClickTitle">
<status-bar v-if="statusBar" /> <slot>
<view class="uni-navbar__placeholder-view" :style="{ height:navbarHeight}" /> <view
</view> class="uni-navbar__header-container-inner"
</view> v-if="title.length > 0"
>
<text
class="uni-nav-bar-text uni-ellipsis-1"
:style="{ color: themeColor }"
>{{ title }}</text
>
</view>
</slot>
</view>
<view
@click="onClickRight"
class="uni-navbar__header-btns uni-navbar__header-btns-right"
:style="{ width: rightIconWidth }"
>
<slot name="right">
<view v-if="rightIcon.length">
<uni-icons :color="themeColor" :type="rightIcon" size="22" />
</view>
<view
class="uni-navbar-btn-text"
v-if="rightText.length && !rightIcon.length"
>
<text
class="uni-nav-bar-right-text"
:style="{ color: themeColor }"
>{{ rightText }}</text
>
</view>
</slot>
</view>
</view>
</view>
<view class="uni-navbar__placeholder" v-if="fixed">
<status-bar v-if="statusBar" />
<view
class="uni-navbar__placeholder-view"
:style="{ height: navbarHeight }"
/>
</view>
</view>
</template> </template>
<script> <script>
import statusBar from "./uni-status-bar.vue"; import statusBar from "./uni-status-bar.vue";
const getVal = (val) => typeof val === 'number' ? val + 'px' : val; const getVal = (val) => (typeof val === "number" ? val + "px" : val);
/** /**
* NavBar 自定义导航栏 * NavBar 自定义导航栏
* @description 导航栏组件主要用于头部导航 * @description 导航栏组件主要用于头部导航
* @tutorial https://ext.dcloud.net.cn/plugin?id=52 * @tutorial https://ext.dcloud.net.cn/plugin?id=52
* @property {Boolean} dark 开启黑暗模式 * @property {Boolean} dark 开启黑暗模式
* @property {String} title 标题文字 * @property {String} title 标题文字
* @property {String} leftText 左侧按钮文本 * @property {String} leftText 左侧按钮文本
* @property {String} rightText 右侧按钮文本 * @property {String} rightText 右侧按钮文本
* @property {String} leftIcon 左侧按钮图标图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type * @property {String} leftIcon 左侧按钮图标图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type
* @property {String} rightIcon 右侧按钮图标图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type * @property {String} rightIcon 右侧按钮图标图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type
* @property {String} color 图标和文字颜色 * @property {String} color 图标和文字颜色
* @property {String} backgroundColor 导航栏背景颜色 * @property {String} backgroundColor 导航栏背景颜色
* @property {Boolean} fixed = [true|false] 是否固定顶部 * @property {Boolean} fixed = [true|false] 是否固定顶部
* @property {Boolean} statusBar = [true|false] 是否包含状态栏 * @property {Boolean} statusBar = [true|false] 是否包含状态栏
* @property {Boolean} shadow = [true|false] 导航栏下是否有阴影 * @property {Boolean} shadow = [true|false] 导航栏下是否有阴影
* @property {Boolean} stat 是否开启统计标题上报 * @property {Boolean} stat 是否开启统计标题上报
* @event {Function} clickLeft 左侧按钮点击时触发 * @event {Function} clickLeft 左侧按钮点击时触发
* @event {Function} clickRight 右侧按钮点击时触发 * @event {Function} clickRight 右侧按钮点击时触发
* @event {Function} clickTitle 中间标题点击时触发 * @event {Function} clickTitle 中间标题点击时触发
*/ */
export default { export default {
name: "UniNavBar", name: "UniNavBar",
components: { components: {
statusBar statusBar,
}, },
emits: ['clickLeft', 'clickRight', 'clickTitle'], emits: ["clickLeft", "clickRight", "clickTitle"],
props: { props: {
dark: { dark: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
title: { title: {
type: String, type: String,
default: "" default: "",
}, },
leftText: { leftText: {
type: String, type: String,
default: "" default: "",
}, },
rightText: { rightText: {
type: String, type: String,
default: "" default: "",
}, },
leftIcon: { leftIcon: {
type: String, type: String,
default: "" default: "",
}, },
rightIcon: { rightIcon: {
type: String, type: String,
default: "" default: "",
}, },
fixed: { fixed: {
type: [Boolean, String], type: [Boolean, String],
default: false default: false,
}, },
color: { color: {
type: String, type: String,
default: "" default: "",
}, },
backgroundColor: { backgroundColor: {
type: String, type: String,
default: "" default: "",
}, },
statusBar: { statusBar: {
type: [Boolean, String], type: [Boolean, String],
default: false default: false,
}, },
shadow: { shadow: {
type: [Boolean, String], type: [Boolean, String],
default: false default: false,
}, },
border: { border: {
type: [Boolean, String], type: [Boolean, String],
default: true default: true,
}, },
height: { height: {
type: [Number, String], type: [Number, String],
default: 44 default: 44,
}, },
leftWidth: { leftWidth: {
type: [Number, String], type: [Number, String],
default: 60 default: 60,
}, },
rightWidth: { rightWidth: {
type: [Number, String], type: [Number, String],
default: 60 default: 60,
}, },
stat: { stat: {
type: [Boolean, String], type: [Boolean, String],
default: '' default: "",
} },
}, },
computed: { computed: {
themeBgColor() { themeBgColor() {
if (this.dark) { if (this.dark) {
// //
if (this.backgroundColor) { if (this.backgroundColor) {
return this.backgroundColor return this.backgroundColor;
} else { } else {
return this.dark ? '#333' : '#FFF' return this.dark ? "#333" : "#FFF";
} }
} }
return this.backgroundColor || '#FFF' return this.backgroundColor || "#FFF";
}, },
themeColor() { themeColor() {
if (this.dark) { if (this.dark) {
// //
if (this.color) { if (this.color) {
return this.color return this.color;
} else { } else {
return this.dark ? '#fff' : '#333' return this.dark ? "#fff" : "#333";
} }
} }
return this.color || '#333' return this.color || "#333";
}, },
navbarHeight() { navbarHeight() {
return getVal(this.height) return getVal(this.height);
}, },
leftIconWidth() { leftIconWidth() {
return getVal(this.leftWidth) return getVal(this.leftWidth);
}, },
rightIconWidth() { rightIconWidth() {
return getVal(this.rightWidth) return getVal(this.rightWidth);
} },
}, },
mounted() { mounted() {
if (uni.report && this.stat && this.title !== '') { if (uni.report && this.stat && this.title !== "") {
uni.report('title', this.title) uni.report("title", this.title);
} }
}, },
methods: { methods: {
onClickLeft() { onClickLeft() {
this.$emit("clickLeft"); this.$emit("clickLeft");
}, },
onClickRight() { onClickRight() {
this.$emit("clickRight"); this.$emit("clickRight");
}, },
onClickTitle() { onClickTitle() {
this.$emit("clickTitle"); this.$emit("clickTitle");
} },
} },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
$nav-height: 44px; $nav-height: 44px;
.uni-navbar { .uni-navbar {
// box-sizing: border-box; // box-sizing: border-box;
} }
.uni-nav-bar-text { .uni-nav-bar-text {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
font-size: 34rpx; font-size: 34rpx;
/* #endif */ /* #endif */
/* #ifndef APP-PLUS */ /* #ifndef APP-PLUS */
font-size: 14px; font-size: 14px;
/* #endif */ /* #endif */
} }
.uni-nav-bar-right-text { .uni-nav-bar-right-text {
font-size: 12px; font-size: 12px;
} }
.uni-navbar__content { .uni-navbar__content {
position: relative; position: relative;
// background-color: #fff; // background-color: #fff;
// box-sizing: border-box; // box-sizing: border-box;
background-color: transparent; background-color: transparent;
} }
.uni-navbar__content_view { .uni-navbar__content_view {
// box-sizing: border-box; // box-sizing: border-box;
} }
.uni-navbar-btn-text { .uni-navbar-btn-text {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
line-height: 12px; line-height: 12px;
} }
.uni-navbar__header { .uni-navbar__header {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
padding: 0 10px; padding: 5px 10px;
padding-top: 10rpx; flex-direction: row;
flex-direction: row; height: $nav-height;
height: $nav-height; font-size: 12px;
font-size: 12px; align-items: center;
} }
.uni-navbar__header-btns { .uni-navbar__header-btns {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
overflow: hidden; overflow: hidden;
display: flex; display: flex;
/* #endif */ /* #endif */
flex-wrap: nowrap; flex-wrap: nowrap;
flex-direction: row; flex-direction: row;
width: 120rpx; // width: 120rpx;
// padding: 0 6px; // padding: 0 6px;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
/* #ifdef H5 */ /* #ifdef H5 */
cursor: pointer; cursor: pointer;
/* #endif */ /* #endif */
} }
.uni-navbar__header-btns-left { .uni-navbar__header-btns-left {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
width: 120rpx; min-width: 120rpx;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
} }
.uni-navbar__header-btns-right { .uni-navbar__header-btns-right {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
flex-direction: row; flex-direction: row;
// width: 150rpx; // width: 150rpx;
// padding-right: 30rpx; // padding-right: 30rpx;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
} }
.uni-navbar__header-container { .uni-navbar__header-container {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
flex: 1; flex: 1;
padding: 0 10px; padding: 0 10px;
overflow: hidden; overflow: hidden;
} }
.uni-navbar__header-container-inner { .uni-navbar__header-container-inner {
/* #ifndef APP-NVUE */ /* #ifndef APP-NVUE */
display: flex; display: flex;
/* #endif */ /* #endif */
flex: 1; flex: 1;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 12px; font-size: 12px;
overflow: hidden; overflow: hidden;
// box-sizing: border-box; // box-sizing: border-box;
} }
.uni-navbar__placeholder-view {
height: $nav-height;
}
.uni-navbar__placeholder-view { .uni-navbar--fixed {
height: $nav-height; position: fixed;
} z-index: 998;
/* #ifdef H5 */
left: var(--window-left);
right: var(--window-right);
/* #endif */
/* #ifndef H5 */
left: 0;
right: 0;
/* #endif */
}
.uni-navbar--fixed { .uni-navbar--shadow {
position: fixed; box-shadow: 0 1px 6px #ccc;
z-index: 998; }
/* #ifdef H5 */
left: var(--window-left);
right: var(--window-right);
/* #endif */
/* #ifndef H5 */
left: 0;
right: 0;
/* #endif */
} .uni-navbar--border {
border-bottom-width: 1rpx;
border-bottom-style: solid;
border-bottom-color: #eee;
}
.uni-navbar--shadow { .uni-ellipsis-1 {
box-shadow: 0 1px 6px #ccc; overflow: hidden;
} /* #ifndef APP-NVUE */
white-space: nowrap;
text-overflow: ellipsis;
/* #endif */
/* #ifdef APP-NVUE */
lines: 1;
text-overflow: ellipsis;
/* #endif */
}
.uni-navbar--border { //
border-bottom-width: 1rpx; .uni-dark {
border-bottom-style: solid; }
border-bottom-color: #eee;
}
.uni-ellipsis-1 {
overflow: hidden;
/* #ifndef APP-NVUE */
white-space: nowrap;
text-overflow: ellipsis;
/* #endif */
/* #ifdef APP-NVUE */
lines: 1;
text-overflow: ellipsis;
/* #endif */
}
//
.uni-dark {}
</style> </style>

View File

@ -1,396 +1,436 @@
<template> <template>
<view style="position: relative;" <view
style="position: relative"
@touchmove="ListTouchMove"
@touchend.stop="ListTouchEnd"
@touchstart="ListTouchStart"
>
<video
:src="video_url"
preload
:show-play-btn="true"
:controls="false"
:style="{ height: height, width: width }"
:loop="true"
:id="`video_${video_id}`"
objectFit="fill"
:enable-progress-gesture="false"
ref="video_url"
play-btn-position="center"
class="video"
:poster="cover_url"
@timeupdate="timeupdate"
@click.stop="clickVideo"
></video>
<cover-image
class="play"
v-if="show_play"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/play_1.png"
@click.stop="clickVideo"
></cover-image>
<cover-view class="cover-view-left">
<text class="view-left-text">@{{ nickname }}</text>
<view class="view-left-text-content">
<text class="text-content-text">{{ video_describe }}</text>
</view>
</cover-view>
<cover-view class="cover-view-right">
<cover-image
:src="cover_url"
class="avater cimg"
@click.stop="tapAvater"
></cover-image>
<text class="right-follow">+</text>
<cover-image
v-if="is_like"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/axc.png"
class="img-left"
@click.stop="onUnLike"
:data-story_id="video_id"
></cover-image>
@touchmove="ListTouchMove" <cover-image
@touchend.stop="ListTouchEnd" v-if="!is_like"
@touchstart="ListTouchStart"> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/bed.png"
<video class="img-left"
:src="video_url" @click.stop="onLike"
preload :data-story_id="video_id"
:show-play-btn="true" ></cover-image>
:controls="false"
:style="{ height: height, width: width }"
:loop="true"
:id="`video_${video_id}`"
objectFit="fill"
:enable-progress-gesture="false"
ref="video_url"
play-btn-position="center"
class="video"
:poster="cover_url"
@timeupdate="timeupdate"
@click.stop="clickVideo" <text class="right-text">{{ story_like_count }}</text>
> <cover-image
</video> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/ay2.png"
<cover-image class="play" v-if="show_play" src="https://static.lancerdt.com/xcxfile/appicon/video/play_1.png" style="height: 80rpx"
@click.stop="clickVideo"></cover-image> class="img-left"
<cover-view class="cover-view-left"> @click.stop="tapMsg"
<text class="view-left-text">@{{ nickname }}</text> ></cover-image>
<view class="view-left-text-content"> <text class="right-text">{{ pinglun }}</text>
<text class="text-content-text">{{ video_describe }}</text> <cover-image
</view> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/b6p.png"
</cover-view> style="height: 76rpx"
<cover-view class="cover-view-right"> class="img-left"
<cover-image :src="cover_url" class="avater cimg" @click.stop="tapAvater"></cover-image> @click.stop="tapShare"
<text class="right-follow">+</text> ></cover-image>
<cover-image v-if="is_like" src="https://static.lancerdt.com/xcxfile/appicon/video/img/axc.png" class="img-left" @click.stop="onUnLike" :data-story_id="video_id"></cover-image> <text class="right-text">{{ zhuanfa }}</text>
<cover-image
<cover-image v-if="!is_like" src="https://static.lancerdt.com/xcxfile/appicon/video/img/bed.png" class="img-left" @click.stop="onLike" :data-story_id="video_id"></cover-image> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/changpian.png"
class="musicIcon cimg"
></cover-image>
<text class="right-text">{{ story_like_count }}</text> </cover-view>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/img/ay2.png" style="height: 80rpx;" class="img-left" @click.stop="tapMsg"></cover-image> <!-- <cover-view class="progressBar" :animation="animationData" :style="`width:${barWidth}px`"></cover-view> -->
<text class="right-text">{{ pinglun }}</text> </view>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/img/b6p.png" style="height: 76rpx;" class="img-left" @click.stop="tapShare"></cover-image>
<text class="right-text">{{ zhuanfa }}</text>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/changpian.png" class="musicIcon cimg"></cover-image>
</cover-view>
<!-- <cover-view class="progressBar" :animation="animationData" :style="`width:${barWidth}px`"></cover-view> -->
</view>
</template> </template>
<script> <script>
import { import { mapState, mapMutations } from "vuex";
mapState,
mapMutations
} from 'vuex'
export default { export default {
props: { props: {
video_id: { video_id: {
type: Number, type: Number,
default: 0 default: 0,
}, },
user_id: { user_id: {
type: Number, type: Number,
default: 0 default: 0,
}, },
nickname: { nickname: {
type: String, type: String,
default: '' default: "",
}, },
video_describe: { video_describe: {
type: String, type: String,
default: '' default: "",
}, },
cover_url: { cover_url: {
type: String, type: String,
default: '' default: "",
}, },
video_url: { video_url: {
type: String, type: String,
default: '' default: "",
}, },
dianzan: { dianzan: {
type: Number, type: Number,
default: 0 default: 0,
}, },
is_dianzan: { is_dianzan: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
pinglun: { pinglun: {
type: Number, type: Number,
default: 0 default: 0,
}, },
zhuanfa: { zhuanfa: {
type: Number, type: Number,
default: 0 default: 0,
}, },
play: { play: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
index: { index: {
type: Number, type: Number,
default: 0 default: 0,
}, },
cur_index: { cur_index: {
type: Number, type: Number,
default: 0 default: 0,
}, },
height: { height: {
type: String, type: String,
default: '' default: "",
}, },
width: { width: {
type: String, type: String,
default: '' default: "",
} },
}, },
data() { data() {
return { return {
time: 0, time: 0,
duration: 10, duration: 10,
barWidth:0, barWidth: 0,
animationData: {}, animationData: {},
times:null, times: null,
show_play:false, show_play: false,
is_like: false,
story_like_count: 0,
};
},
created() {
this.is_like = this.is_dianzan;
this.story_like_count = this.dianzan;
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
methods: {
...mapMutations([
"logout",
"getPlantformInfo",
"forceUserInfo",
"getStoreInfo",
]),
ListTouchStart(e) {
//console.log(1, e);
this.$emit("ListTouchStart", e);
},
ListTouchMove(e) {
//console.log(2, e);
this.$emit("ListTouchMove", e);
},
ListTouchEnd(e) {
//console.log(3, e);
this.$emit("ListTouchEnd", e);
},
is_like: false, timeupdate(event) {
story_like_count: 0, let t_w = parseInt(this.width);
}; this.duration = event.detail.duration;
}, this.time = event.detail.currentTime;
created() { let width = (this.time / this.duration) * t_w;
this.is_like = this.is_dianzan; let w = 0;
this.story_like_count = this.dianzan; // //console.log(t_w);
}, // //console.log(width);
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']), // //console.log(this.barWidth);
methods: { // if(width > this.barWidth){
...mapMutations(['logout', 'getPlantformInfo', 'forceUserInfo', 'getStoreInfo']), // w = (width - this.barWidth) /20;
ListTouchStart(e) { // //#ifndef APP-PLUS-NVUE
//console.log(1, e); // w = (width - this.barWidth) /5;
this.$emit('ListTouchStart', e); // //#endif
}, // }
ListTouchMove(e) { // if(this.barWidth >= t_w || width >= t_w || (this.barWidth >= 300 && width <= 150)){
//console.log(2, e); // this.barWidth = 0;
this.$emit('ListTouchMove', e); // clearInterval(this.times);
}, // //console.log('');
ListTouchEnd(e) { // }else{
//console.log(3, e); // clearInterval(this.times);
this.$emit('ListTouchEnd', e); // this.times = setInterval(()=>{
}, // this.barWidth += w;
// },50)
// }
},
tapAvater() {
this.$.gopage("/community/community/userspace?uid=" + this.user_id);
//uni.showToast({icon: "success", title: "", duration: 2e3})
},
tapLove() {
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
tapMsg() {
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
tapShare() {
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
clickVideo(e) {
//console.log('');
this.$emit("clickVideo", e);
},
videoPlay() {
if (this.play) {
//console.log('',`video_${this.video_id}`);
this.videoCtx = uni.createVideoContext(`video_${this.video_id}`, this);
this.videoCtx.play();
this.show_play = false;
} else {
//console.log('',`video_${this.video_id}`);
this.videoCtx = uni.createVideoContext(`video_${this.video_id}`, this);
this.videoCtx.pause();
this.show_play = true;
}
},
timeupdate(event) { onLike: function (a) {
let t_w = parseInt(this.width); let that = this;
this.duration = event.detail.duration; that.forceUserInfo(function (user) {
this.time = event.detail.currentTime; that.doLike(a.currentTarget.dataset.story_id);
let width = (this.time / this.duration) * t_w; });
let w = 0; },
// //console.log(t_w); doLike: function (story_id) {
// //console.log(width); var that = this,
// //console.log(this.barWidth); params = {
// if(width > this.barWidth){ story_id: story_id,
// w = (width - this.barWidth) /20; };
// //#ifndef APP-PLUS-NVUE
// w = (width - this.barWidth) /5;
// //#endif
// }
// if(this.barWidth >= t_w || width >= t_w || (this.barWidth >= 300 && width <= 150)){
// this.barWidth = 0;
// clearInterval(this.times);
// //console.log('');
// }else{
// clearInterval(this.times);
// this.times = setInterval(()=>{
// this.barWidth += w;
// },50)
// }
},
tapAvater(){
this.$.gopage('/community/community/userspace?uid=' + this.user_id);
//uni.showToast({icon: "success", title: "", duration: 2e3})
},
tapLove(){
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
},
tapMsg(){
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
},
tapShare(){
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
},
clickVideo(e) {
//console.log('');
this.$emit('clickVideo', e);
},
videoPlay() {
if (this.play) {
//console.log('',`video_${this.video_id}`);
this.videoCtx = uni.createVideoContext(`video_${this.video_id}`, this);
this.videoCtx.play();
this.show_play = false;
} else {
//console.log('',`video_${this.video_id}`);
this.videoCtx = uni.createVideoContext(`video_${this.video_id}`, this);
this.videoCtx.pause();
this.show_play = true;
}
},
that.$.request({
url: this.Config.URL.sns.story_like_add,
data: params,
success: function (data, status, msg, code) {
if (200 == status) {
that.is_like = true;
that.story_like_count++;
} else {
}
},
});
},
onUnLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.canceldianzan(a.currentTarget.dataset.story_id);
});
},
canceldianzan: function (story_id) {
var that = this,
params = {
story_id: story_id,
};
onLike: function (a) { that.$.request({
let that = this; url: this.Config.URL.sns.story_like_remove,
that.forceUserInfo(function(user) { data: params,
that.doLike(a.currentTarget.dataset.story_id) success: function (data, status, msg, code) {
}); if (200 == status) {
}, //
doLike: function (story_id) { that.is_like = false;
var that = this, params = { that.story_like_count--;
story_id: story_id } else {
}; }
},
that.$.request({ });
url: this.Config.URL.sns.story_like_add, },
data: params, },
success: function (data, status, msg, code) { watch: {
if (200 == status) { play(newVal, oldVal) {
that.is_like = true; //console.info('watch play:');
that.story_like_count ++ //console.info(newVal, oldVal);
} else { this.videoPlay();
} },
} },
});
},
onUnLike: function (a) {
let that = this;
that.forceUserInfo(function(user) {
that.canceldianzan(a.currentTarget.dataset.story_id)
});
},
canceldianzan: function (story_id) {
var that = this, params = {
story_id: story_id
};
that.$.request({
url: this.Config.URL.sns.story_like_remove,
data: params,
success: function (data, status, msg, code) {
if (200 == status) {
//
that.is_like = false;
that.story_like_count --
} else {
}
}
});
},
},
watch: {
play(newVal, oldVal) {
//console.info('watch play:');
//console.info(newVal, oldVal);
this.videoPlay();
}
}
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.video { .video {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
} }
.play{ .play {
position: absolute; position: absolute;
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
left: 300rpx; left: 300rpx;
top: 510rpx; top: 510rpx;
opacity: 0.5; opacity: 0.5;
} }
.progressBar { .progressBar {
border-radius: 2rpx; border-radius: 2rpx;
height: 4rpx; height: 4rpx;
background-color: #FF4500; background-color: #ff4500;
z-index: 999999; z-index: 999999;
position: absolute; position: absolute;
bottom: 68rpx; bottom: 68rpx;
/* #ifndef APP-PLUS-NVUE */ /* #ifndef APP-PLUS-NVUE */
bottom: 0rpx; bottom: 0rpx;
/* #endif */ /* #endif */
} }
.cover-view-left { .cover-view-left {
position: absolute; position: absolute;
margin-left: 20rpx; margin-left: 20rpx;
width: 580rpx; width: 580rpx;
bottom: 100rpx; bottom: 100rpx;
z-index: 9999; z-index: 9999;
font-size: 14px; font-size: 14px;
color: #ffffff; color: #ffffff;
/* #ifndef APP-PLUS-NVUE */ /* #ifndef APP-PLUS-NVUE */
bottom: 30rpx; bottom: 30rpx;
/* #endif */ /* #endif */
} }
.left-text { .left-text {
font-size: 14px; font-size: 14px;
color: #ffffff; color: #ffffff;
} }
.cover-view-right { .cover-view-right {
position: absolute; position: absolute;
bottom: 40px; bottom: 40px;
right: 30rpx; right: 30rpx;
z-index: 9999; z-index: 9999;
text-align: center; text-align: center;
/* #ifndef APP-PLUS-NVUE */ /* #ifndef APP-PLUS-NVUE */
bottom: 0rpx; bottom: 0rpx;
/* #endif */ /* #endif */
} }
.avater { .avater {
border-radius: 50%; border-radius: 50%;
border-width: 2px; border-width: 2px;
border-style: solid; border-style: solid;
border-color: #ffffff; border-color: #ffffff;
} }
.cimg { .cimg {
height: 90rpx; height: 90rpx;
width: 90rpx; width: 90rpx;
margin-bottom: 50rpx; margin-bottom: 50rpx;
} }
.img-left { .img-left {
width: 80rpx; width: 80rpx;
height: 66rpx; height: 66rpx;
padding-left: 4px; padding-left: 4px;
} }
.right-follow { .right-follow {
position: absolute; position: absolute;
z-index: 100; z-index: 100;
top: 75rpx; top: 75rpx;
left: 28rpx; left: 28rpx;
color: #ffffff; color: #ffffff;
font-size: 16px; font-size: 16px;
width: 34rpx; width: 34rpx;
height: 34rpx; height: 34rpx;
background-color: #f12f5b; background-color: #f12f5b;
text-align: center; text-align: center;
line-height: 34rpx; line-height: 34rpx;
border-radius: 17rpx; border-radius: 17rpx;
} }
.right-text { .right-text {
color: #ffffff; color: #ffffff;
font-size: 11px; font-size: 11px;
text-align: center; text-align: center;
margin-bottom: 40rpx; margin-bottom: 40rpx;
} }
.musicIcon { .musicIcon {
margin-top: 40rpx; margin-top: 40rpx;
/* #ifndef APP-PLUS-NVUE */ /* #ifndef APP-PLUS-NVUE */
animation: rotating 3s linear infinite; animation: rotating 3s linear infinite;
/* #endif */ /* #endif */
} }
@keyframes rotating { @keyframes rotating {
from { from {
transform: rotate(0); transform: rotate(0);
} }
to { to {
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
.view-left-text-content { .view-left-text-content {
flex: 1; flex: 1;
} }
.view-left-text { .view-left-text {
color: #ffffff; color: #ffffff;
font-size: 18px; font-size: 18px;
margin-bottom: 10rpx; margin-bottom: 10rpx;
font-weight: bold; font-weight: bold;
} }
.text-content-text { .text-content-text {
color: #ffffff; color: #ffffff;
font-size: 16px; font-size: 16px;
line-height: 50rpx; line-height: 50rpx;
height: 100rpx; height: 100rpx;
overflow: hidden; overflow: hidden;
} }
</style> </style>

View File

@ -1,323 +1,368 @@
<template name="zy-search"> <template name="zy-search">
<view> <view>
<view class="search"> <view class="search">
<slot></slot> <slot></slot>
<!-- 使用$emit触发实例上(父组件)的自定义方法并传入参数 --> <!-- 使用$emit触发实例上(父组件)的自定义方法并传入参数 -->
<!-- <button type="primary" @click="$emit('test','block')">方形</button> --> <!-- <button type="primary" @click="$emit('test','block')">方形</button> -->
<!-- sync双向数据绑定语法糖 --> <!-- sync双向数据绑定语法糖 -->
<!-- <button type="primary" @click="changeStyle">双向数据绑定改变style</button> --> <!-- <button type="primary" @click="changeStyle">双向数据绑定改变style</button> -->
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/voice.svg" mode="aspectFit" @click="startRecognize()" class="voice-icon"></image> <image
<!-- #endif --> src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/zy-search/voice.svg"
<template v-if="isFocus"> mode="aspectFit"
<input maxlength="20" focus type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入关键词搜索')" v-model.trim="searchText"/> @click="startRecognize()"
</template> class="voice-icon"
<template v-else> ></image>
<input maxlength="20" type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入关键词搜索')" v-model.trim="searchText"/> <!-- #endif -->
</template> <template v-if="isFocus">
<image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/search.svg" mode="aspectFit" @click="searchStart()" class="search-icon"></image> <input
</view> maxlength="20"
<view :class="'s-' + theme" v-if="hList.length > 0"> focus
<view class="header"> type="text"
{{__('历史记录')}} value=""
<image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/delete.svg" mode="aspectFit" @click="delhistory"></image> confirm-type="search"
</view> @confirm="searchStart()"
<view class="list"> :placeholder="__('请输入关键词搜索')"
<view v-for="(item,index) in hList" :key="index" @click="keywordsClick(item)">{{item}}</view> v-model.trim="searchText"
</view> />
</view> </template>
<view :class="'wanted-' + theme" v-if="showWant"> <template v-else>
<view class="header">{{__('猜你想搜的')}}</view> <input
<view class="list"> maxlength="20"
<view v-for="(item,index) in hotList" :key="index" @click="keywordsClick(item)">{{item}}</view> type="text"
</view> value=""
</view> confirm-type="search"
</view> @confirm="searchStart()"
:placeholder="__('请输入关键词搜索')"
v-model.trim="searchText"
/>
</template>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/zy-search/search.svg"
mode="aspectFit"
@click="searchStart()"
class="search-icon"
></image>
</view>
<view :class="'s-' + theme" v-if="hList.length > 0">
<view class="header">
{{ __("历史记录") }}
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/zy-search/delete.svg"
mode="aspectFit"
@click="delhistory"
></image>
</view>
<view class="list">
<view
v-for="(item, index) in hList"
:key="index"
@click="keywordsClick(item)"
>{{ item }}</view
>
</view>
</view>
<view :class="'wanted-' + theme" v-if="showWant">
<view class="header">{{ __("猜你想搜的") }}</view>
<view class="list">
<view
v-for="(item, index) in hotList"
:key="index"
@click="keywordsClick(item)"
>{{ item }}</view
>
</view>
</view>
</view>
</template> </template>
<script> <script>
export default{ export default {
name:"zy-search", name: "zy-search",
props:{ props: {
isFocus:{ // isFocus: {
type: Boolean, //
default: false type: Boolean,
}, default: false,
theme:{ // },
type: String, theme: {
default: 'block' //
}, type: String,
showWant:{ // default: "block",
type: Boolean, },
default: false showWant: {
}, //
hotList: { // type: Boolean,
type: Array, default: false,
default () { },
return [] hotList: {
} //
}, type: Array,
searchHisList: { default() {
type: Array, return [];
default () { },
return [] },
} searchHisList: {
}, type: Array,
suggestText: { default() {
type: String, return [];
default: '' },
}, },
suggestText: {
type: String,
default: "",
},
speechEngine: { //=>:iFly,:'baidu' speechEngine: {
type: String, //=>:iFly,:'baidu'
default: 'baidu' type: String,
} default: "baidu",
}, },
data() { },
return { data() {
searchText:'', // return {
hList:[] // searchText: "", //
}; hList: [], //
}, };
created() { },
var that = this; created() {
setTimeout(()=>{ var that = this;
this.setData({ setTimeout(() => {
searchText: this.suggestText
});
if (this.searchHisList.length > 0) // this.setData({
{ // searchText: this.suggestText,
//this.hList = this.searchHisList; // });
this.hList = uni.getStorageSync('search_cache');
}
else
{
this.hList = uni.getStorageSync('search_cache');
}
}, 200)
},
methods: {
searchStart: function() { //
let _this = this;
if (_this.searchText == '') {
uni.showToast({
title: _this.__('请输入关键字'),
icon: 'none',
duration: 1000
});
}else{
uni.getStorage({ if (this.searchHisList.length > 0) {
key:'search_cache', //this.hList = this.searchHisList;
success(res){ this.hList = uni.getStorageSync("search_cache");
let list = res.data; } else {
let t = true; this.hList = uni.getStorageSync("search_cache");
if(list.length > 5){ }
for(let item of list){ }, 200);
if(item == _this.searchText){ },
return; methods: {
} searchStart: function () {
} //
list.pop(); let _this = this;
list.unshift(_this.searchText); if (_this.searchText == "") {
}else{ uni.showToast({
for(let item of list){ title: _this.__("请输入关键字"),
if(item == _this.searchText){ icon: "none",
t = false; duration: 1000,
} });
} } else {
if(t) uni.getStorage({
{ key: "search_cache",
list.unshift(_this.searchText); success(res) {
} let list = res.data;
let t = true;
} if (list.length > 5) {
_this.hList = list; for (let item of list) {
uni.setStorage({ if (item == _this.searchText) {
key: 'search_cache', return;
data: _this.hList }
}); }
_this.$emit('getSearchText', _this.searchText); list.pop();
}, list.unshift(_this.searchText);
fail() { } else {
_this.hList = []; for (let item of list) {
_this.hList.push(_this.searchText); if (item == _this.searchText) {
uni.setStorage({ t = false;
key: 'search_cache', }
data: _this.hList }
}); if (t) {
_this.$emit('getSearchText', _this.searchText); list.unshift(_this.searchText);
} }
}) }
} _this.hList = list;
}, uni.setStorage({
keywordsClick (item) { // key: "search_cache",
this.searchText = item; data: _this.hList,
this.$emit('getSearchText', item); });
}, _this.$emit("getSearchText", _this.searchText);
delhistory () { // },
this.hList = []; fail() {
uni.setStorage({ _this.hList = [];
key: 'search_cache', _this.hList.push(_this.searchText);
data: [] uni.setStorage({
}); key: "search_cache",
}, data: _this.hList,
startRecognize: function() { // });
let _this = this; _this.$emit("getSearchText", _this.searchText);
let options = {}; },
options.engine = _this.speechEngine; });
options.punctuation = false; // }
options.timeout = 10 * 1000; },
plus.speech.startRecognize(options, function(s) { keywordsClick(item) {
_this.searchText = _this.searchText + s; //
}); this.searchText = item;
} this.$emit("getSearchText", item);
} },
} delhistory() {
//
this.hList = [];
uni.setStorage({
key: "search_cache",
data: [],
});
},
startRecognize: function () {
//
let _this = this;
let options = {};
options.engine = _this.speechEngine;
options.punctuation = false; //
options.timeout = 10 * 1000;
plus.speech.startRecognize(options, function (s) {
_this.searchText = _this.searchText + s;
});
},
},
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.search{ .search {
width: 640rpx; width: 640rpx;
margin: 30rpx auto 0; margin: 30rpx auto 0;
position: relative; position: relative;
input{ input {
background-color: #F7F7F7; background-color: #f7f7f7;
padding: 10rpx 74rpx; padding: 10rpx 74rpx;
font-size: 28rpx; font-size: 28rpx;
border-radius: 50rpx; border-radius: 50rpx;
} }
.voice-icon{ .voice-icon {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 16rpx 20rpx 16rpx 0; padding: 16rpx 20rpx 16rpx 0;
position: absolute; position: absolute;
left: 16rpx; left: 16rpx;
top: 4rpx; top: 4rpx;
z-index: 10; z-index: 10;
} }
.search-icon{ .search-icon {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 16rpx 20rpx 16rpx 0; padding: 16rpx 20rpx 16rpx 0;
position: absolute; position: absolute;
right: 0; right: 0;
top: -2rpx; top: -2rpx;
z-index: 10; z-index: 10;
} }
} }
.s-block{ .s-block {
margin-top: 30rpx; margin-top: 30rpx;
.header{ .header {
font-size: 32rpx; font-size: 32rpx;
padding: 30rpx; padding: 30rpx;
position: relative; position: relative;
image{ image {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 10rpx; padding: 10rpx;
position: absolute; position: absolute;
right: 40rpx; right: 40rpx;
top: 24rpx; top: 24rpx;
} }
} }
.list{ .list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
view{ view {
width: 50%; width: 50%;
color: #8A8A8A; color: #8a8a8a;
font-size: 28rpx; font-size: 28rpx;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
padding: 20rpx 0; padding: 20rpx 0;
border-top: 2rpx solid #FFF; border-top: 2rpx solid #fff;
border-left: 2rpx solid #FFF; border-left: 2rpx solid #fff;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
background-color: #F7F7F7; background-color: #f7f7f7;
} }
} }
} }
.s-circle{ .s-circle {
margin-top: 30rpx; margin-top: 30rpx;
.header{ .header {
font-size: 32rpx; font-size: 32rpx;
padding: 30rpx; padding: 30rpx;
border-bottom: 2rpx solid #F9F9F9; border-bottom: 2rpx solid #f9f9f9;
position: relative; position: relative;
image{ image {
width: 36rpx; width: 36rpx;
height: 36rpx; height: 36rpx;
padding: 10rpx; padding: 10rpx;
position: absolute; position: absolute;
right: 40rpx; right: 40rpx;
top: 24rpx; top: 24rpx;
} }
} }
.list{ .list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 0 30rpx 20rpx; padding: 0 30rpx 20rpx;
view{ view {
padding: 8rpx 30rpx; padding: 8rpx 30rpx;
margin: 20rpx 30rpx 0 0; margin: 20rpx 30rpx 0 0;
font-size: 28rpx; font-size: 28rpx;
color: #8A8A8A; color: #8a8a8a;
background-color: #F7F7F7; background-color: #f7f7f7;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border-radius: 20rpx; border-radius: 20rpx;
} }
} }
} }
.wanted-block{ .wanted-block {
margin-top: 30rpx; margin-top: 30rpx;
.header{ .header {
font-size: 32rpx; font-size: 32rpx;
padding: 30rpx; padding: 30rpx;
} }
.list{ .list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
view{ view {
width: 50%; width: 50%;
color: #8A8A8A; color: #8a8a8a;
font-size: 28rpx; font-size: 28rpx;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
padding: 20rpx 0; padding: 20rpx 0;
border-top: 2rpx solid #FFF; border-top: 2rpx solid #fff;
border-left: 2rpx solid #FFF; border-left: 2rpx solid #fff;
background-color: #F7F7F7; background-color: #f7f7f7;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
} }
.wanted-circle{ .wanted-circle {
margin-top: 30rpx; margin-top: 30rpx;
.header{ .header {
font-size: 32rpx; font-size: 32rpx;
padding: 30rpx; padding: 30rpx;
} }
.list{ .list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 0 30rpx 20rpx; padding: 0 30rpx 20rpx;
view{ view {
padding: 8rpx 30rpx; padding: 8rpx 30rpx;
margin: 20rpx 30rpx 0 0; margin: 20rpx 30rpx 0 0;
font-size: 28rpx; font-size: 28rpx;
color: #8A8A8A; color: #8a8a8a;
background-color: #F7F7F7; background-color: #f7f7f7;
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border-radius: 20rpx; border-radius: 20rpx;
} }
} }
} }
</style> </style>

View File

@ -266,7 +266,10 @@ export default {
"pay": bu + "/account/modules/pay/api/payment/wx/pay.php", "pay": bu + "/account/modules/pay/api/payment/wx/pay.php",
"get_tpl_msg_config": au + "?ctl=Connect_Weixin&met=getTmpMsgConfig&typ=json&flag=app", "get_tpl_msg_config": au + "?ctl=Connect_Weixin&met=getTmpMsgConfig&typ=json&flag=app",
"send_tpl_msg": au + "?ctl=Connect_Weixin&met=sendTplMsg&typ=json&flag=app", "send_tpl_msg": au + "?ctl=Connect_Weixin&met=sendTplMsg&typ=json&flag=app",
"get_user_phone_number": ip + "account/weiXin/getUserPhoneNumber" "get_user_phone_number": ip + "account/weiXin/getUserPhoneNumber",
"get_wx_phone_number": ip + "account/weiXin/getWxUserPhoneNumber",
"get_wx_openid": ip + "account/weiXin/getWxOpenId",
"doWxUserRegisterAndLogin": ip + "account/login/doWxUserRegisterAndLogin",
}, },
"store": { "store": {
"get": iu + "?ctl=Store&met=get&typ=json", "get": iu + "?ctl=Store&met=get&typ=json",
@ -284,7 +287,9 @@ export default {
"menu": iu + "?ctl=Store&met=menu&typ=json", "menu": iu + "?ctl=Store&met=menu&typ=json",
// "lists":iu + "?ctl=Store&met=lists&typ=json", // "lists":iu + "?ctl=Store&met=lists&typ=json",
"lists": ip + "shop/store/lists", "lists": ip + "shop/store/lists",
"category": ip + "shop/store/category",
// 附近门店列表
"nearList": ip + 'shop/store/near/list',
"listsChain": iu + "?ctl=Chain&met=lists&typ=json", "listsChain": iu + "?ctl=Chain&met=lists&typ=json",
// "getChain":iu + "?ctl=Chain&met=getChainInfo&typ=json", // "getChain":iu + "?ctl=Chain&met=getChainInfo&typ=json",
"getChain": ip + "shop/shop-chain-base/getChainInfo", "getChain": ip + "shop/shop-chain-base/getChainInfo",
@ -378,6 +383,7 @@ export default {
"sel": ip + "shop/userCart/sel", "sel": ip + "shop/userCart/sel",
// "checkout": iu + "?ctl=Cart&met=checkout&typ=json", // "checkout": iu + "?ctl=Cart&met=checkout&typ=json",
"checkout": ip + "shop/userCart/checkout", "checkout": ip + "shop/userCart/checkout",
"getTimeSlots":ip+"/shop/userOrder/booking_time_args",
"checkDelivery": iu + "?ctl=Cart&met=checkDelivery&typ=json", "checkDelivery": iu + "?ctl=Cart&met=checkDelivery&typ=json",
"order": iu + "?ctl=Cart&met=order&typ=e", "order": iu + "?ctl=Cart&met=order&typ=e",
// "getselect":iu + "?ctl=Cart&met=getselect&typ=json", // "getselect":iu + "?ctl=Cart&met=getselect&typ=json",
@ -580,6 +586,7 @@ export default {
"listsCutPriceActivity": iu + "?ctl=Activity&met=listsCutPriceActivity&typ=json", "listsCutPriceActivity": iu + "?ctl=Activity&met=listsCutPriceActivity&typ=json",
// "getCutPriceActivity": iu + "?ctl=Activity&met=getCutPriceActivity&typ=json", // "getCutPriceActivity": iu + "?ctl=Activity&met=getCutPriceActivity&typ=json",
"getCutPriceActivity": ip + "shop/userActivity/getCutPriceActivity", "getCutPriceActivity": ip + "shop/userActivity/getCutPriceActivity",
"dolookTurnCutPrice":ip+"shop/userActivity/dolookTurnCutPrice",
// "listsCutPriceHistory": iu + "?ctl=Activity&met=listsCutPriceHistory&typ=json", // "listsCutPriceHistory": iu + "?ctl=Activity&met=listsCutPriceHistory&typ=json",
"listsCutPriceHistory": ip + "shop/userActivity/listsCutPriceHistory", "listsCutPriceHistory": ip + "shop/userActivity/listsCutPriceHistory",
"listsGroupbookingActivity": iu + "?ctl=Activity&met=listsGroupbookingActivity&typ=json", "listsGroupbookingActivity": iu + "?ctl=Activity&met=listsGroupbookingActivity&typ=json",
@ -1086,7 +1093,17 @@ export default {
"card": { "card": {
"card_list": mu + "/card/pay/pay-card-info/getListByUserid", "card_list": mu + "/card/pay/pay-card-info/getListByUserid",
"card_info_get": mu + "/card/pay/pay-card-info/getInfoByCardTypeId" "card_info_get": mu + "/card/pay/pay-card-info/getInfoByCardTypeId"
} },
// 顺丰同城
"SF":{
"createOrder": ip + 'shop/sf-express/create-order',
"addOrderGratuityFee" : ip + 'shop/sf-express/add-order-gratuity-fee',
"reminderOrder" : ip + 'shop/sf-express/reminder-order',
"cancelOrder" : ip + 'shop/sf-express/cancel-order',
"listOrderFeed" : ip + 'shop/sf-express/list-order-feed',
"riderLatestPosition" : ip + 'shop/sf-express/rider-latest-position',
"mapH5" : ip + 'shop/sf-express/rider-view/v2'
}
}, },
"tabBar": { "tabBar": {
"color": "#7A7E83", "color": "#7A7E83",
@ -1098,10 +1115,10 @@ export default {
"pagePath": "pages/index/index", "pagePath": "pages/index/index",
"iconPath": "static/images/tabBar1.png", "iconPath": "static/images/tabBar1.png",
"selectedIconPath": "static/images/tabBar_sel1.png", "selectedIconPath": "static/images/tabBar_sel1.png",
"text": "首页" "text": "推荐"
}, },
{ {
"pagePath": "pages/category/category", "pagePath": "pages/category/storeCategory",
"iconPath": "static/images/tabBar2.png", "iconPath": "static/images/tabBar2.png",
"selectedIconPath": "static/images/tabBar_sel2.png", "selectedIconPath": "static/images/tabBar_sel2.png",
"text": "分类" "text": "分类"
@ -1110,7 +1127,7 @@ export default {
"pagePath": "pages/index/image", "pagePath": "pages/index/image",
"iconPath": "static/images/tabBarSns.png", "iconPath": "static/images/tabBarSns.png",
"selectedIconPath": "static/images/tabBarSns_sel.png", "selectedIconPath": "static/images/tabBarSns_sel.png",
"text": "发现" "text": "社区"
}, },
{ {
"pagePath": "pages/cart/cart", "pagePath": "pages/cart/cart",

View File

@ -7,7 +7,7 @@ var data = {
symbol_right:'CNY', symbol_right:'CNY',
label:'中文', label:'中文',
standard:true, standard:true,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc4d56.png', img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc4d56.png',
items:[ items:[
{ {
lang:'zh-CN', lang:'zh-CN',
@ -16,7 +16,7 @@ var data = {
symbol_right:'CNY', symbol_right:'CNY',
label:'中文', label:'中文',
standard:true, standard:true,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc4d56.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc4d56.png'
}/*, }/*,
{ {
lang:'zh-HK', lang:'zh-HK',
@ -25,7 +25,7 @@ var data = {
symbol_right:'CNY', symbol_right:'CNY',
label:'中国香港', label:'中国香港',
standard:true, standard:true,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc4d56.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc4d56.png'
}, },
{ {
lang:'zh-TW', lang:'zh-TW',
@ -34,7 +34,7 @@ var data = {
symbol_right:'TWD', symbol_right:'TWD',
label:'中国台湾', label:'中国台湾',
standard:true, standard:true,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc4d56.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc4d56.png'
}, },
{ {
lang:'en-GB', lang:'en-GB',
@ -43,7 +43,7 @@ var data = {
symbol_right:'USD', symbol_right:'USD',
label:'English', label:'English',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbd2fde.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbd2fde.png'
}, },
{ {
lang:'ja-JP', lang:'ja-JP',
@ -52,7 +52,7 @@ var data = {
standard:false, standard:false,
symbol:'J.¥', symbol:'J.¥',
symbol_right:'JPY', symbol_right:'JPY',
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affba1acd.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affba1acd.png'
}, },
{ {
lang:'th-TH', lang:'th-TH',
@ -61,7 +61,7 @@ var data = {
symbol_right:'THB', symbol_right:'THB',
label:'ภาษาไทย', label:'ภาษาไทย',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affba41e4.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affba41e4.png'
}, },
{ {
lang:'es-MX', lang:'es-MX',
@ -70,7 +70,7 @@ var data = {
symbol_right:'MXP', symbol_right:'MXP',
label:'México', label:'México',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affb9d481.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affb9d481.png'
}, },
{ {
lang:'ar-SA', lang:'ar-SA',
@ -79,7 +79,7 @@ var data = {
symbol_right:'SAR', symbol_right:'SAR',
standard:true, standard:true,
label:'عربي ،', label:'عربي ،',
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbcc280.png', img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbcc280.png',
}, },
{ {
lang:'vi-VN', lang:'vi-VN',
@ -88,7 +88,7 @@ var data = {
symbol_right:'THB', symbol_right:'THB',
label:'ViệtName', label:'ViệtName',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbaedc0.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbaedc0.png'
}, },
{ {
lang:'tr-TR', lang:'tr-TR',
@ -97,7 +97,7 @@ var data = {
symbol_right:'TRL', symbol_right:'TRL',
label:'Türkçe', label:'Türkçe',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbba93b.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbba93b.png'
}, },
{ {
lang:'id-ID', lang:'id-ID',
@ -106,7 +106,7 @@ var data = {
symbol_right:'IDR', symbol_right:'IDR',
label:'IndonesiaName', label:'IndonesiaName',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbefcd4.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbefcd4.png'
}, },
{ {
lang:'en-GB', lang:'en-GB',
@ -115,7 +115,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Britain', label:'Britain',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc9b6c.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc9b6c.png'
}, },
{ {
lang:'es-ES', lang:'es-ES',
@ -124,7 +124,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'España', label:'España',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affb9d481.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affb9d481.png'
}, },
{ {
lang:'de-DE', lang:'de-DE',
@ -133,7 +133,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Deutsch', label:'Deutsch',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc0ecf.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc0ecf.png'
}, },
{ {
lang:'fr-FR', lang:'fr-FR',
@ -142,7 +142,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Français', label:'Français',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affb9fb8a.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affb9fb8a.png'
}, },
{ {
lang:'pt-PT', lang:'pt-PT',
@ -151,7 +151,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Português', label:'Português',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbf0c70.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbf0c70.png'
}, },
{ {
lang:'it-IT', lang:'it-IT',
@ -160,7 +160,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Italiano', label:'Italiano',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbba16a.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbba16a.png'
}, },
{ {
lang:'ru-RU', lang:'ru-RU',
@ -169,7 +169,7 @@ var data = {
symbol_right:'RUB', symbol_right:'RUB',
label:'Русский язык', label:'Русский язык',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affba229e.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affba229e.png'
}, },
{ {
lang:'ro-RO', lang:'ro-RO',
@ -178,7 +178,7 @@ var data = {
symbol_right:'RON', symbol_right:'RON',
label:'România', label:'România',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affb9ccab.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affb9ccab.png'
}, },
{ {
lang:'az-AZ', lang:'az-AZ',
@ -187,7 +187,7 @@ var data = {
symbol_right:'AZN', symbol_right:'AZN',
label:'AzerbayjanlıName', label:'AzerbayjanlıName',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbd2044.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbd2044.png'
}, },
{ {
lang:'el-GR', lang:'el-GR',
@ -196,7 +196,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Ελληνικά', label:'Ελληνικά',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbec621.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbec621.png'
}, },
{ {
lang:'fi-FI', lang:'fi-FI',
@ -205,7 +205,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Suomi', label:'Suomi',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbdd3f1.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbdd3f1.png'
}, },
{ {
lang:'lv-LV', lang:'lv-LV',
@ -214,7 +214,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Latvijas', label:'Latvijas',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbe29e1.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbe29e1.png'
}, },
{ {
lang:'nl-NL', lang:'nl-NL',
@ -223,7 +223,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Nederlands', label:'Nederlands',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbd7633.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbd7633.png'
}, },
{ {
lang:'da-DK', lang:'da-DK',
@ -232,7 +232,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Denmark', label:'Denmark',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbe9741.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbe9741.png'
}, },
{ {
lang:'sr-RS', lang:'sr-RS',
@ -241,7 +241,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Република Србија', label:'Република Србија',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affb99601.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affb99601.png'
}, },
{ {
lang:'pl-PL', lang:'pl-PL',
@ -250,7 +250,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'Polski', label:'Polski',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbb5356.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbb5356.png'
}, },
{ {
lang:'uk-UA', lang:'uk-UA',
@ -259,7 +259,7 @@ var data = {
symbol_right:'EUR', symbol_right:'EUR',
label:'УкраїнськаName', label:'УкраїнськаName',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbd5ec1.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbd5ec1.png'
}, },
{ {
lang:'kk-KZ', lang:'kk-KZ',
@ -268,7 +268,7 @@ var data = {
symbol_right:'KZT', symbol_right:'KZT',
label:азақстанName', label:азақстанName',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc2e0f.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc2e0f.png'
}, },
{ {
lang:'my-MM', lang:'my-MM',
@ -277,7 +277,7 @@ var data = {
symbol_right:'BUK', symbol_right:'BUK',
label:'မြန်မာ', label:'မြန်မာ',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affba323e.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affba323e.png'
}, },
{ {
lang:'ko-KR', lang:'ko-KR',
@ -286,7 +286,7 @@ var data = {
symbol_right:'KRW', symbol_right:'KRW',
label:'한국.', label:'한국.',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/ko_KR.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/ko_KR.png'
}, },
{ {
lang:'ms-MY', lang:'ms-MY',
@ -295,7 +295,7 @@ var data = {
symbol_right:'MYR', symbol_right:'MYR',
label:'Malay', label:'Malay',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/5322affbc939c.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/5322affbc939c.png'
}, },
{ {
lang:'lo-LA', lang:'lo-LA',
@ -304,7 +304,7 @@ var data = {
symbol_right:'LAK', symbol_right:'LAK',
label:'ເມືອງລາວ', label:'ເມືອງລາວ',
standard:false, standard:false,
img:'https://static.lancerdt.com/lancerdt/flags/square/lo_LA.png' img:'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/lancerdt/flags/square/lo_LA.png'
}*/ }*/
] ]
} }

BIN
dist/assets/no-sele.ef212994.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
dist/community/static/false.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
dist/community/static/img/false.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
dist/community/static/img/index/play.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
dist/community/static/img/index/sc-2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
dist/community/static/img/index/sc.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
dist/community/static/img/index/xin.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
dist/community/static/jihao.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
dist/community/static/youjiantou.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

133
dist/hybrid/html/scanbox.html vendored Normal file
View File

@ -0,0 +1,133 @@
<!doctype html>
<html lang="zh-CN" >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-touch-fullscreen" content="yes" />
<meta name="format-detection" content="telephone=no"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="initial-scale=1,maximum-scale=1,minimum-scale=1" />
<title>扫码核销</title>
<style>
.jsbridge {
height: 200px;
width: 200px;
background-color: red;
}
.upimg {
height: 200px;
width: 200px;
background-color: green;
margin-bottom: 50px;
}
input[node-type=jsbridge]{
visibility: hidden;
width: 1rem;
}
</style>
<script type="text/javascript" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/js/jquery.min.js"></script>
<script type="text/javascript" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/js/qrcode.lib.min.js"></script>
<script type="text/javascript" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/js/qrcode.js"></script>
</head>
<body>
<div class="sstouch-main-layout" style="margin-bottom: 14rem!important">
<div class="sstouch-order-search" style="height: auto !important">
<form class="sstouch-inp-con">
<input type="text" autocomplete="on" maxlength="50" placeholder="请输入提货码/服务码进行核销" name="pickup_code" id="pickup_code" style="display:none;" >
<span class="input-del"></span>
<div id="scan_btn" class="zc" style="width: 100%;height: 100%;line-height: 500px;font-size: 1rem;/* float: right; */opacity: 0.6;display: inline-grid;text-align: center;vertical-align: middle;">点击扫码<input class="no-follow" node-type="jsbridge" type="file" name="myPhoto" id="myPhoto" value="扫描二维码1" /></div>
<div class="form-btn"><a class="btn J_search" href="javascript:;" style="display:none;">查询订单</a></div>
</form>
</div>
</div>
<!-- 微信 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<!-- 支付宝的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript">
if (navigator.userAgent.indexOf('AlipayClient') > -1) {
document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
}
</script>
<!-- 百度 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-1.7.0.js"></script>
<!-- uni 的 SDK -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.4.9.js"></script>
<script type="text/javascript">
function scanPickupCode(pickupcode)
{
console.info(pickupcode);
//$('#pickup_code').val(pickupcode);
//$('.form-btn').addClass('ok');
//$(".J_search").click()
if ('error decoding QR Code' == pickupcode)
{
alert('请重新扫描!');
}
else
{
uni.getEnv(function(res) {
/*
else if (res.miniprogram) {
console.log('当前环境为【微信小程序】');
}else if (res.plus) {
console.log('当前环境为【微信小程序】');
}
*/
if (res.h5) {
window.parent.window.scan_code = pickupcode
}
else
{
uni.postMessage({ data: { action: pickupcode } });
uni.navigateBack()
}
});
}
}
document.addEventListener('UniAppJSBridgeReady', function() {
//初始化扫描二维码按钮
Qrcode.init($('#scan_btn'), scanPickupCode);
});
/*
document.addEventListener('UniAppJSBridgeReady', function() {
uni.postMessage({
data: {
action: 'postMessage'
}
});
});
document.addEventListener('UniAppJSBridgeReady', function() {
uni.getEnv(function(res) {
if (res.plus) {
console.log('当前环境为【5+App】');
} else if (res.miniprogram) {
console.log('当前环境为【微信小程序】');
}
});
});
*/
</script>
</body>
</html>

972
dist/im/static/emoji/emojiData.js vendored Normal file
View File

@ -0,0 +1,972 @@
//模拟数据
var emojiData = {
"imgArr" : [
{
emojiName:"",
emojiSort:0,
minEmoji:false,
emojiPath:"",
emojiList: [
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
],
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
],
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
]
]
},
{
// QQ 表情
emojiName:"QQemoji",
emojiSort:1,
minEmoji:true,
emojiPath:"https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/",
// emojiPath: "static/img/qq/",
emojiList: [
[
{ url: '0.gif', alt: '[微笑]' },
{ url: '1.gif', alt: '[撇嘴]' },
{ url: '2.gif', alt: '[色]' },
{ url: '3.gif', alt: '[发呆]' },
{ url: '4.gif', alt: '[得意]' },
{ url: '5.gif', alt: '[流泪]' },
{ url: '6.gif', alt: '[害羞]' },
{ url: '7.gif', alt: '[闭嘴]' },
{ url: '8.gif', alt: '[睡]' },
{ url: '9.gif', alt: '[大哭]' },
{ url: '10.gif', alt: '[尴尬]' },
{ url: '11.gif', alt: '[发怒]' },
{ url: '12.gif', alt: '[调皮]' },
{ url: '13.gif', alt: '[呲牙]' },
{ url: '14.gif', alt: '[惊讶]' },
{ url: '15.gif', alt: '[难过]' },
{ url: '16.gif', alt: '[酷]' },
{ url: '17.gif', alt: '[冷汗]' },
{ url: '18.gif', alt: '[抓狂]' },
{ url: '19.gif', alt: '[吐]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '20.gif', alt: '[偷笑]' },
{ url: '21.gif', alt: '[愉快]' },
{ url: '22.gif', alt: '[白眼]' },
{ url: '23.gif', alt: '[傲慢]' },
{ url: '24.gif', alt: '[饥饿]' },
{ url: '25.gif', alt: '[困]' },
{ url: '26.gif', alt: '[惊恐]' },
{ url: '27.gif', alt: '[流汗]' },
{ url: '28.gif', alt: '[憨笑]' },
{ url: '29.gif', alt: '[悠闲]' },
{ url: '30.gif', alt: '[奋斗]' },
{ url: '31.gif', alt: '[咒骂]' },
{ url: '32.gif', alt: '[疑问]' },
{ url: '33.gif', alt: '[嘘]' },
{ url: '34.gif', alt: '[晕]' },
{ url: '35.gif', alt: '[疯了]' },
{ url: '36.gif', alt: '[衰]' },
{ url: '37.gif', alt: '[骷髅]' },
{ url: '38.gif', alt: '[敲打]' },
{ url: '39.gif', alt: '[再见]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '40.gif', alt: '[擦汗]' },
{ url: '41.gif', alt: '[抠鼻]' },
{ url: '42.gif', alt: '[鼓掌]' },
{ url: '43.gif', alt: '[糗大了]' },
{ url: '44.gif', alt: '[坏笔]' },
{ url: '45.gif', alt: '[左哼哼]' },
{ url: '46.gif', alt: '[右哼哼]' },
{ url: '47.gif', alt: '[哈欠]' },
{ url: '48.gif', alt: '[鄙视]' },
{ url: '49.gif', alt: '[委屈]' },
{ url: '50.gif', alt: '[快哭了]' },
{ url: '51.gif', alt: '[阴险]' },
{ url: '52.gif', alt: '[亲亲]' },
{ url: '53.gif', alt: '[吓]' },
{ url: '54.gif', alt: '[可怜]' },
{ url: '55.gif', alt: '[菜刀]' },
{ url: '56.gif', alt: '[西瓜]' },
{ url: '57.gif', alt: '[啤酒]' },
{ url: '58.gif', alt: '[篮球]' },
{ url: '59.gif', alt: '[乒乓]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '60.gif', alt: '[咖啡]' },
{ url: '61.gif', alt: '[饭]' },
{ url: '62.gif', alt: '[猪头]' },
{ url: '63.gif', alt: '[玫瑰]' },
{ url: '64.gif', alt: '[凋谢]' },
{ url: '65.gif', alt: '[嘴唇]' },
{ url: '66.gif', alt: '[爱心]' },
{ url: '67.gif', alt: '[心碎]' },
{ url: '68.gif', alt: '[蛋糕]' },
{ url: '69.gif', alt: '[闪电]' },
{ url: '70.gif', alt: '[炸弹]' },
{ url: '71.gif', alt: '[刀]' },
{ url: '72.gif', alt: '[足球]' },
{ url: '73.gif', alt: '[瓢虫]' },
{ url: '74.gif', alt: '[便便]' },
{ url: '75.gif', alt: '[月亮]' },
{ url: '76.gif', alt: '[太阳]' },
{ url: '77.gif', alt: '[礼物]' },
{ url: '78.gif', alt: '[拥抱]' },
{ url: '79.gif', alt: '[强]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '80.gif', alt: '[弱]' },
{ url: '81.gif', alt: '[握手]' },
{ url: '82.gif', alt: '[胜利]' },
{ url: '83.gif', alt: '[抱拳]' },
{ url: '84.gif', alt: '[勾引]' },
{ url: '85.gif', alt: '[拳头]' },
{ url: '86.gif', alt: '[差劲]' },
{ url: '87.gif', alt: '[爱你]' },
{ url: '88.gif', alt: '[NO]' },
{ url: '89.gif', alt: '[OK]' },
{ url: '90.gif', alt: '[爱情]' },
{ url: '91.gif', alt: '[飞吻]' },
{ url: '92.gif', alt: '[跳跳]' },
{ url: '93.gif', alt: '[发抖]' },
{ url: '94.gif', alt: '[怄火]' },
{ url: '95.gif', alt: '[转圈]' },
{ url: '96.gif', alt: '[磕头]' },
{ url: '97.gif', alt: '[回头]' },
{ url: '98.gif', alt: '[跳绳]' },
{ url: '99.gif', alt: '[投降]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '100.gif', alt: '[激动]' },
{ url: '101.gif', alt: '[乱舞]' },
{ url: '102.gif', alt: '[献吻]' },
{ url: '103.gif', alt: '[左太极]' },
{ url: '104.gif', alt: '[右太极]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
]
]
},
{
// 火信表情
emojiName:"huoxinList",
emojiSort:2,
minEmoji:true,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/huoxin/",
emojiList: [
[
{ url: 'q_000.png', alt: '[测试1]' },
{ url: 'q_001.png', alt: '[测试2]' },
{ url: 'q_002.png', alt: '[测试3]' },
{ url: 'q_003.png', alt: '[]' },
{ url: 'q_004.png', alt: '[]' },
{ url: 'q_005.png', alt: '[]' },
{ url: 'q_006.png', alt: '[]' },
{ url: 'q_007.png', alt: '[]' },
{ url: 'q_008.png', alt: '[]' },
{ url: 'q_009.png', alt: '[]' },
{ url: 'q_010.png', alt: '[]' },
{ url: 'q_011.png', alt: '[]' },
{ url: 'q_012.png', alt: '[]' },
{ url: 'q_013.png', alt: '[]' },
{ url: 'q_014.png', alt: '[]' },
{ url: 'q_015.png', alt: '[]' },
{ url: 'q_016.png', alt: '[]' },
{ url: 'q_017.png', alt: '[]' },
{ url: 'q_018.png', alt: '[]' },
{ url: 'q_019.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_020.png', alt: '[]' },
{ url: 'q_021.png', alt: '[]' },
{ url: 'q_022.png', alt: '[]' },
{ url: 'q_023.png', alt: '[]' },
{ url: 'q_024.png', alt: '[]' },
{ url: 'q_025.png', alt: '[]' },
{ url: 'q_026.png', alt: '[]' },
{ url: 'q_027.png', alt: '[]' },
{ url: 'q_028.png', alt: '[]' },
{ url: 'q_029.png', alt: '[]' },
{ url: 'q_030.png', alt: '[]' },
{ url: 'q_031.png', alt: '[]' },
{ url: 'q_032.png', alt: '[]' },
{ url: 'q_033.png', alt: '[]' },
{ url: 'q_034.png', alt: '[]' },
{ url: 'q_035.png', alt: '[]' },
{ url: 'q_036.png', alt: '[]' },
{ url: 'q_037.png', alt: '[]' },
{ url: 'q_038.png', alt: '[]' },
{ url: 'q_039.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_040.png', alt: '[]' },
{ url: 'q_041.png', alt: '[]' },
{ url: 'q_042.png', alt: '[]' },
{ url: 'q_043.png', alt: '[]' },
{ url: 'q_044.png', alt: '[]' },
{ url: 'q_045.png', alt: '[]' },
{ url: 'q_046.png', alt: '[]' },
{ url: 'q_047.png', alt: '[]' },
{ url: 'q_048.png', alt: '[]' },
{ url: 'q_049.png', alt: '[]' },
{ url: 'q_050.png', alt: '[]' },
{ url: 'q_051.png', alt: '[]' },
{ url: 'q_052.png', alt: '[]' },
{ url: 'q_053.png', alt: '[]' },
{ url: 'q_054.png', alt: '[]' },
{ url: 'q_055.png', alt: '[]' },
{ url: 'q_056.png', alt: '[]' },
{ url: 'q_057.png', alt: '[]' },
{ url: 'q_058.png', alt: '[]' },
{ url: 'q_059.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_060.png', alt: '[]' },
{ url: 'q_061.png', alt: '[]' },
{ url: 'q_062.png', alt: '[]' },
{ url: 'q_063.png', alt: '[]' },
{ url: 'q_064.png', alt: '[]' },
{ url: 'q_065.png', alt: '[]' },
{ url: 'q_066.png', alt: '[]' },
{ url: 'q_067.png', alt: '[]' },
{ url: 'q_068.png', alt: '[]' },
{ url: 'q_069.png', alt: '[]' },
{ url: 'q_070.png', alt: '[]' },
{ url: 'q_071.png', alt: '[]' },
{ url: 'q_072.png', alt: '[]' },
{ url: 'q_073.png', alt: '[]' },
{ url: 'q_074.png', alt: '[]' },
{ url: 'q_075.png', alt: '[]' },
{ url: 'q_076.png', alt: '[]' },
{ url: 'q_077.png', alt: '[]' },
{ url: 'q_078.png', alt: '[]' },
{ url: 'q_079.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_080.png', alt: '[]' },
{ url: 'q_081.png', alt: '[]' },
{ url: 'q_082.png', alt: '[]' },
{ url: 'q_083.png', alt: '[]' },
{ url: 'q_084.png', alt: '[]' },
{ url: 'q_085.png', alt: '[]' },
{ url: 'q_086.png', alt: '[]' },
{ url: 'q_087.png', alt: '[]' },
{ url: 'q_088.png', alt: '[]' },
{ url: 'q_089.png', alt: '[]' },
{ url: 'q_090.png', alt: '[]' },
{ url: 'q_091.png', alt: '[]' },
{ url: 'q_092.png', alt: '[]' },
{ url: 'q_093.png', alt: '[]' },
{ url: 'q_094.png', alt: '[]' },
{ url: 'q_095.png', alt: '[]' },
{ url: 'q_096.png', alt: '[]' },
{ url: 'q_097.png', alt: '[]' },
{ url: 'q_098.png', alt: '[]' },
{ url: 'q_099.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_101.png', alt: '[]' },
{ url: 'q_102.png', alt: '[]' },
{ url: 'q_103.png', alt: '[]' },
{ url: 'q_104.png', alt: '[]' },
{ url: 'q_105.png', alt: '[]' },
{ url: 'q_106.png', alt: '[]' },
{ url: 'q_107.png', alt: '[]' },
{ url: 'q_108.png', alt: '[]' },
{ url: 'q_109.png', alt: '[]' },
{ url: 'q_110.png', alt: '[]' },
{ url: 'q_111.png', alt: '[]' },
{ url: 'q_112.png', alt: '[]' },
{ url: 'q_113.png', alt: '[]' },
{ url: 'q_114.png', alt: '[]' },
{ url: 'q_115.png', alt: '[]' },
{ url: 'q_116.png', alt: '[]' },
{ url: 'q_117.png', alt: '[]' },
{ url: 'q_118.png', alt: '[]' },
{ url: 'q_119.png', alt: '[]' },
{ url: 'q_120.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_121.png', alt: '[]' },
{ url: 'q_122.png', alt: '[]' },
{ url: 'q_123.png', alt: '[]' },
{ url: 'q_124.png', alt: '[]' },
{ url: 'q_125.png', alt: '[]' },
{ url: 'q_126.png', alt: '[]' },
{ url: 'q_127.png', alt: '[]' },
{ url: 'q_128.png', alt: '[]' },
{ url: 'q_129.png', alt: '[]' },
{ url: 'q_130.png', alt: '[]' },
{ url: 'q_131.png', alt: '[]' },
{ url: 'q_132.png', alt: '[]' },
{ url: 'q_133.png', alt: '[]' },
{ url: 'q_134.png', alt: '[]' },
{ url: 'q_135.png', alt: '[]' },
{ url: 'q_136.png', alt: '[]' },
{ url: 'q_137.png', alt: '[]' },
{ url: 'q_138.png', alt: '[]' },
{ url: 'q_139.png', alt: '[]' },
{ url: 'q_140.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_141.png', alt: '[]' },
{ url: 'q_142.png', alt: '[]' },
{ url: 'q_143.png', alt: '[]' },
{ url: 'q_144.png', alt: '[]' },
{ url: 'q_145.png', alt: '[]' },
{ url: 'q_146.png', alt: '[]' },
{ url: 'q_147.png', alt: '[]' },
{ url: 'q_148.png', alt: '[]' },
{ url: 'q_149.png', alt: '[]' },
{ url: 'q_150.png', alt: '[]' },
{ url: 'q_151.png', alt: '[]' },
{ url: 'q_152.png', alt: '[]' },
{ url: 'q_153.png', alt: '[]' },
{ url: 'q_154.png', alt: '[]' },
{ url: 'q_155.png', alt: '[]' },
{ url: 'q_156.png', alt: '[]' },
{ url: 'q_157.png', alt: '[]' },
{ url: 'q_158.png', alt: '[]' },
{ url: 'q_159.png', alt: '[]' },
{ url: 'q_160.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'q_161.png', alt: '[]' },
{ url: 'q_162.png', alt: '[]' },
{ url: 'q_163.png', alt: '[]' },
{ url: 'q_164.png', alt: '[]' },
{ url: 'q_165.png', alt: '[]' },
{ url: 'q_166.png', alt: '[]' },
{ url: 'q_167.png', alt: '[]' },
{ url: 'q_168.png', alt: '[]' },
{ url: 'q_169.png', alt: '[]' },
{ url: 'q_170.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
]
]
},
{
// 钉钉表情
emojiName:"dingdingList",
emojiSort:2,
minEmoji:true,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/dingding/",
emojiList: [
[
{ url: 'emotion_001.png', alt: '[微笑]' },
{ url: 'emotion_002.png', alt: '[可爱]' },
{ url: 'emotion_003.png', alt: '[憨笑]' },
{ url: 'emotion_004.png', alt: '[色]' },
{ url: 'emotion_005.png', alt: '[发呆]' },
{ url: 'emotion_006.png', alt: '[老板]' },
{ url: 'emotion_007.png', alt: '[流泪]' },
{ url: 'emotion_008.png', alt: '[害羞]' },
{ url: 'emotion_009.png', alt: '[闭嘴]' },
{ url: 'emotion_010.png', alt: '[睡]' },
{ url: 'emotion_011.png', alt: '[大哭]' },
{ url: 'emotion_012.png', alt: '[尴尬]' },
{ url: 'emotion_013.png', alt: '[感谢]' },
{ url: 'emotion_014.png', alt: '[赞]' },
{ url: 'emotion_015.png', alt: '[鼓掌]' },
{ url: 'emotion_016.png', alt: '[打招呼]' },
{ url: 'emotion_017.png', alt: '[666]' },
{ url: 'emotion_018.png', alt: '[抱拳]' },
{ url: 'emotion_019.png', alt: '[握手]' },
{ url: 'emotion_020.png', alt: '[OK]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_021.png', alt: '[]' },
{ url: 'emotion_022.png', alt: '[]' },
{ url: 'emotion_023.png', alt: '[]' },
{ url: 'emotion_024.png', alt: '[]' },
{ url: 'emotion_025.png', alt: '[]' },
{ url: 'emotion_026.png', alt: '[]' },
{ url: 'emotion_027.png', alt: '[]' },
{ url: 'emotion_028.png', alt: '[]' },
{ url: 'emotion_029.png', alt: '[]' },
{ url: 'emotion_030.png', alt: '[]' },
{ url: 'emotion_031.png', alt: '[]' },
{ url: 'emotion_032.png', alt: '[]' },
{ url: 'emotion_033.png', alt: '[]' },
{ url: 'emotion_034.png', alt: '[]' },
{ url: 'emotion_035.png', alt: '[]' },
{ url: 'emotion_036.png', alt: '[]' },
{ url: 'emotion_037.png', alt: '[]' },
{ url: 'emotion_038.png', alt: '[]' },
{ url: 'emotion_039.png', alt: '[]' },
{ url: 'emotion_040.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_041.png', alt: '[]' },
{ url: 'emotion_042.png', alt: '[]' },
{ url: 'emotion_043.png', alt: '[]' },
{ url: 'emotion_044.png', alt: '[]' },
{ url: 'emotion_045.png', alt: '[]' },
{ url: 'emotion_046.png', alt: '[]' },
{ url: 'emotion_047.png', alt: '[]' },
{ url: 'emotion_048.png', alt: '[]' },
{ url: 'emotion_049.png', alt: '[]' },
{ url: 'emotion_050.png', alt: '[]' },
{ url: 'emotion_051.png', alt: '[]' },
{ url: 'emotion_052.png', alt: '[]' },
{ url: 'emotion_053.png', alt: '[]' },
{ url: 'emotion_054.png', alt: '[]' },
{ url: 'emotion_055.png', alt: '[]' },
{ url: 'emotion_056.png', alt: '[]' },
{ url: 'emotion_057.png', alt: '[]' },
{ url: 'emotion_058.png', alt: '[]' },
{ url: 'emotion_059.png', alt: '[]' },
{ url: 'emotion_060.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_061.png', alt: '[]' },
{ url: 'emotion_062.png', alt: '[]' },
{ url: 'emotion_063.png', alt: '[]' },
{ url: 'emotion_064.png', alt: '[]' },
{ url: 'emotion_065.png', alt: '[]' },
{ url: 'emotion_066.png', alt: '[]' },
{ url: 'emotion_067.png', alt: '[]' },
{ url: 'emotion_068.png', alt: '[]' },
{ url: 'emotion_069.png', alt: '[]' },
{ url: 'emotion_070.png', alt: '[]' },
{ url: 'emotion_071.png', alt: '[]' },
{ url: 'emotion_072.png', alt: '[]' },
{ url: 'emotion_073.png', alt: '[]' },
{ url: 'emotion_074.png', alt: '[]' },
{ url: 'emotion_075.png', alt: '[]' },
{ url: 'emotion_076.png', alt: '[]' },
{ url: 'emotion_077.png', alt: '[]' },
{ url: 'emotion_078.png', alt: '[]' },
{ url: 'emotion_079.png', alt: '[]' },
{ url: 'emotion_080.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_081.png', alt: '[]' },
{ url: 'emotion_082.png', alt: '[]' },
{ url: 'emotion_083.png', alt: '[]' },
{ url: 'emotion_084.png', alt: '[]' },
{ url: 'emotion_085.png', alt: '[]' },
{ url: 'emotion_086.png', alt: '[]' },
{ url: 'emotion_087.png', alt: '[]' },
{ url: 'emotion_088.png', alt: '[]' },
{ url: 'emotion_089.png', alt: '[]' },
{ url: 'emotion_090.png', alt: '[]' },
{ url: 'emotion_091.png', alt: '[]' },
{ url: 'emotion_092.png', alt: '[]' },
{ url: 'emotion_093.png', alt: '[]' },
{ url: 'emotion_094.png', alt: '[]' },
{ url: 'emotion_095.png', alt: '[]' },
{ url: 'emotion_096.png', alt: '[]' },
{ url: 'emotion_097.png', alt: '[]' },
{ url: 'emotion_098.png', alt: '[]' },
{ url: 'emotion_099.png', alt: '[]' },
{ url: 'emotion_100.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_101.png', alt: '[]' },
{ url: 'emotion_102.png', alt: '[]' },
{ url: 'emotion_103.png', alt: '[]' },
{ url: 'emotion_104.png', alt: '[]' },
{ url: 'emotion_105.png', alt: '[]' },
{ url: 'emotion_106.png', alt: '[]' },
{ url: 'emotion_107.png', alt: '[]' },
{ url: 'emotion_108.png', alt: '[]' },
{ url: 'emotion_109.png', alt: '[]' },
{ url: 'emotion_110.png', alt: '[]' },
{ url: 'emotion_111.png', alt: '[]' },
{ url: 'emotion_112.png', alt: '[]' },
{ url: 'emotion_113.png', alt: '[]' },
{ url: 'emotion_114.png', alt: '[]' },
{ url: 'emotion_115.png', alt: '[]' },
{ url: 'emotion_116.png', alt: '[]' },
{ url: 'emotion_117.png', alt: '[]' },
{ url: 'emotion_118.png', alt: '[]' },
{ url: 'emotion_119.png', alt: '[]' },
{ url: 'emotion_120.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: 'emotion_121.png', alt: '[]' },
{ url: 'emotion_122.png', alt: '[]' },
{ url: 'emotion_123.png', alt: '[]' },
{ url: 'emotion_124.png', alt: '[]' },
{ url: 'emotion_125.png', alt: '[]' },
{ url: 'emotion_126.png', alt: '[]' },
{ url: 'emotion_127.png', alt: '[]' },
{ url: 'emotion_128.png', alt: '[]' },
{ url: 'emotion_129.png', alt: '[]' },
{ url: 'emotion_130.png', alt: '[]' },
{ url: 'emotion_131.png', alt: '[]' },
{ url: 'emotion_132.png', alt: '[]' },
{ url: 'emotion_133.png', alt: '[]' },
{ url: 'emotion_134.png', alt: '[]' },
{ url: 'emotion_135.png', alt: '[]' },
{ url: 'emotion_136.png', alt: '[]' },
{ url: 'emotion_137.png', alt: '[]' },
{ url: 'emotion_138.png', alt: '[]' },
{ url: 'emotion_139.png', alt: '[]' },
{ url: 'emotion_140.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
]
]
},
{
// 抖音表情
emojiName:"douyinList",
emojiSort:3,
minEmoji:true,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/douyin/",
emojiList: [
[
{ url: '0.png', alt: '[抖音1]' },
{ url: '1.png', alt: '[抖音2]' },
{ url: '2.png', alt: '[抖音3]' },
{ url: '3.png', alt: '[抖音4]' },
{ url: '4.png', alt: '[]' },
{ url: '5.png', alt: '[]' },
{ url: '6.png', alt: '[]' },
{ url: '7.png', alt: '[]' },
{ url: '8.png', alt: '[]' },
{ url: '9.png', alt: '[]' },
{ url: '10.png', alt: '[]' },
{ url: '11.png', alt: '[]' },
{ url: '12.png', alt: '[]' },
{ url: '13.png', alt: '[]' },
{ url: '14.png', alt: '[]' },
{ url: '15.png', alt: '[]' },
{ url: '16.png', alt: '[]' },
{ url: '17.png', alt: '[]' },
{ url: '18.png', alt: '[]' },
{ url: '19.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '20.png', alt: '[]' },
{ url: '21.png', alt: '[]' },
{ url: '22.png', alt: '[]' },
{ url: '23.png', alt: '[]' },
{ url: '24.png', alt: '[]' },
{ url: '25.png', alt: '[]' },
{ url: '26.png', alt: '[]' },
{ url: '27.png', alt: '[]' },
{ url: '28.png', alt: '[]' },
{ url: '29.png', alt: '[]' },
{ url: '30.png', alt: '[]' },
{ url: '31.png', alt: '[]' },
{ url: '32.png', alt: '[]' },
{ url: '33.png', alt: '[]' },
{ url: '34.png', alt: '[]' },
{ url: '35.png', alt: '[]' },
{ url: '36.png', alt: '[]' },
{ url: '37.png', alt: '[]' },
{ url: '38.png', alt: '[]' },
{ url: '39.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '40.png', alt: '[]' },
{ url: '41.png', alt: '[]' },
{ url: '42.png', alt: '[]' },
{ url: '43.png', alt: '[]' },
{ url: '44.png', alt: '[]' },
{ url: '25.png', alt: '[]' },
{ url: '46.png', alt: '[]' },
{ url: '47.png', alt: '[]' },
{ url: '48.png', alt: '[]' },
{ url: '49.png', alt: '[]' },
{ url: '50.png', alt: '[]' },
{ url: '51.png', alt: '[]' },
{ url: '52.png', alt: '[]' },
{ url: '53.png', alt: '[]' },
{ url: '54.png', alt: '[]' },
{ url: '55.png', alt: '[]' },
{ url: '56.png', alt: '[]' },
{ url: '57.png', alt: '[]' },
{ url: '58.png', alt: '[]' },
{ url: '59.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '60.png', alt: '[]' },
{ url: '61.png', alt: '[]' },
{ url: '62.png', alt: '[]' },
{ url: '63.png', alt: '[]' },
{ url: '64.png', alt: '[]' },
{ url: '65.png', alt: '[]' },
{ url: '66.png', alt: '[]' },
{ url: '67.png', alt: '[]' },
{ url: '68.png', alt: '[]' },
{ url: '69.png', alt: '[]' },
{ url: '70.png', alt: '[]' },
{ url: '71.png', alt: '[]' },
{ url: '72.png', alt: '[]' },
{ url: '73.png', alt: '[]' },
{ url: '74.png', alt: '[]' },
{ url: '75.png', alt: '[]' },
{ url: '76.png', alt: '[]' },
{ url: '77.png', alt: '[]' },
{ url: '78.png', alt: '[]' },
{ url: '79.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '80.png', alt: '[]' },
{ url: '81.png', alt: '[]' },
{ url: '82.png', alt: '[]' },
{ url: '83.png', alt: '[]' },
{ url: '84.png', alt: '[]' },
{ url: '85.png', alt: '[]' },
{ url: '86.png', alt: '[]' },
{ url: '87.png', alt: '[]' },
{ url: '88.png', alt: '[]' },
{ url: '89.png', alt: '[]' },
{ url: '90.png', alt: '[]' },
{ url: '91.png', alt: '[]' },
{ url: '92.png', alt: '[]' },
{ url: '93.png', alt: '[]' },
{ url: '94.png', alt: '[]' },
{ url: '95.png', alt: '[]' },
{ url: '96.png', alt: '[]' },
{ url: '97.png', alt: '[]' },
{ url: '98.png', alt: '[]' },
{ url: '99.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '100.png', alt: '[]' },
{ url: '101.png', alt: '[]' },
{ url: '102.png', alt: '[]' },
{ url: '103.png', alt: '[]' },
{ url: '104.png', alt: '[]' },
{ url: '105.png', alt: '[]' },
{ url: '106.png', alt: '[]' },
{ url: '107.png', alt: '[]' },
{ url: '108.png', alt: '[]' },
{ url: '109.png', alt: '[]' },
{ url: '110.png', alt: '[]' },
{ url: '111.png', alt: '[]' },
{ url: '112.png', alt: '[]' },
{ url: '113.png', alt: '[]' },
{ url: '114.png', alt: '[]' },
{ url: '115.png', alt: '[]' },
{ url: '116.png', alt: '[]' },
{ url: '117.png', alt: '[]' },
{ url: '118.png', alt: '[]' },
{ url: '119.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '120.png', alt: '[]' },
{ url: '121.png', alt: '[]' },
{ url: '122.png', alt: '[]' },
{ url: '123.png', alt: '[]' },
{ url: '124.png', alt: '[]' },
{ url: '125.png', alt: '[]' },
{ url: '126.png', alt: '[]' },
{ url: '127.png', alt: '[]' },
{ url: '128.png', alt: '[]' },
{ url: '129.png', alt: '[]' },
{ url: '130.png', alt: '[]' },
{ url: '131.png', alt: '[]' },
{ url: '132.png', alt: '[]' },
{ url: '133.png', alt: '[]' },
{ url: '134.png', alt: '[]' },
{ url: '135.png', alt: '[]' },
{ url: '136.png', alt: '[]' },
{ url: '137.png', alt: '[]' },
{ url: '138.png', alt: '[]' },
{ url: '139.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
],
[
{ url: '140.png', alt: '[]' },
{ url: '141.png', alt: '[]' },
{ url: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/tab/delete2.png', alt: '[删除]' }
]
]
},
{
emojiName:"ajmdList",
emojiSort:4,
minEmoji:false,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/ajmd/",
emojiList: [
[
{ url: '0.png', alt: '[ajmd1]' },
{ url: '1.png', alt: '[ajmd2]' },
{ url: '2.png', alt: '[ajmd3]' },
{ url: '3.png', alt: '[ajmd4]' },
{ url: '4.png', alt: '[]' },
{ url: '5.png', alt: '[]' },
{ url: '6.png', alt: '[]' },
{ url: '7.png', alt: '[]' },
],
[
{ url: '8.png', alt: '[]' },
{ url: '9.png', alt: '[]' },
{ url: '10.png', alt: '[]' },
{ url: '11.png', alt: '[]' },
{ url: '12.png', alt: '[]' },
{ url: '13.png', alt: '[]' },
{ url: '14.png', alt: '[]' },
{ url: '15.png', alt: '[]' },
],
[
{ url: '16.png', alt: '[]' },
{ url: '17.png', alt: '[]' },
{ url: '18.png', alt: '[]' },
{ url: '19.png', alt: '[]' },
{ url: '20.png', alt: '[]' },
{ url: '21.png', alt: '[]' },
{ url: '22.png', alt: '[]' },
{ url: '23.png', alt: '[]' },
],
[
{ url: '24.png', alt: '[]' },
{ url: '25.png', alt: '[]' },
{ url: '26.png', alt: '[]' },
{ url: '27.png', alt: '[]' },
{ url: '28.png', alt: '[]' },
{ url: '29.png', alt: '[]' },
{ url: '30.png', alt: '[]' },
{ url: '31.png', alt: '[]' },
],
[
{ url: '32.png', alt: '[]' },
{ url: '33.png', alt: '[]' },
{ url: '34.png', alt: '[]' },
{ url: '35.png', alt: '[]' },
{ url: '36.png', alt: '[]' },
{ url: '37.png', alt: '[]' },
{ url: '38.png', alt: '[]' },
{ url: '39.png', alt: '[]' },
],
[
{ url: '40.png', alt: '[]' },
{ url: '41.png', alt: '[]' },
{ url: '42.png', alt: '[]' },
{ url: '43.png', alt: '[]' },
{ url: '44.png', alt: '[]' },
{ url: '45.png', alt: '[]' },
{ url: '46.png', alt: '[]' },
{ url: '47.png', alt: '[]' },
],
]
},
{
emojiName:"gongfuhuList",
emojiSort:5,
minEmoji:false,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/gongfuhu/",
emojiList: [
[
{ url: '0.gif', alt: '[]' },
{ url: '1.gif', alt: '[]' },
{ url: '2.gif', alt: '[]' },
{ url: '3.gif', alt: '[]' },
{ url: '4.gif', alt: '[]' },
{ url: '5.gif', alt: '[]' },
{ url: '6.gif', alt: '[]' },
{ url: '7.gif', alt: '[]' },
],
[
{ url: '8.gif', alt: '[]' },
{ url: '9.gif', alt: '[]' },
{ url: '10.gif', alt: '[]' },
{ url: '11.gif', alt: '[]' },
{ url: '12.gif', alt: '[]' },
{ url: '13.gif', alt: '[]' },
{ url: '14.gif', alt: '[]' },
{ url: '15.gif', alt: '[]' },
],
[
{ url: '16.gif', alt: '[]' },
{ url: '17.gif', alt: '[]' },
{ url: '18.gif', alt: '[]' },
{ url: '19.gif', alt: '[]' },
{ url: '20.gif', alt: '[]' },
{ url: '21.gif', alt: '[]' },
{ url: '22.gif', alt: '[]' },
{ url: '23.gif', alt: '[]' },
],
[
{ url: '24.gif', alt: '[]' },
{ url: '25.gif', alt: '[]' },
{ url: '26.gif', alt: '[]' },
{ url: '27.gif', alt: '[]' },
{ url: '28.gif', alt: '[]' },
{ url: '29.gif', alt: '[]' },
]
]
},
{
emojiName:"xxyList",
emojiSort:6,
minEmoji: false,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/xxy/",
emojiList: [
[
{ url: '0.png', alt: '[]' },
{ url: '1.png', alt: '[]' },
{ url: '2.png', alt: '[]' },
{ url: '3.png', alt: '[]' },
{ url: '4.png', alt: '[]' },
{ url: '5.png', alt: '[]' },
{ url: '6.png', alt: '[]' },
{ url: '7.png', alt: '[]' },
],
[
{ url: '8.png', alt: '[]' },
{ url: '9.png', alt: '[]' },
{ url: '10.png', alt: '[]' },
{ url: '11.png', alt: '[]' },
{ url: '12.png', alt: '[]' },
{ url: '13.png', alt: '[]' },
{ url: '14.png', alt: '[]' },
{ url: '15.png', alt: '[]' },
],
[
{ url: '16.png', alt: '[]' },
{ url: '17.png', alt: '[]' },
{ url: '18.png', alt: '[]' },
{ url: '19.png', alt: '[]' },
{ url: '20.png', alt: '[]' },
{ url: '21.png', alt: '[]' },
{ url: '22.png', alt: '[]' },
{ url: '23.png', alt: '[]' },
],
[
{ url: '24.png', alt: '[]' },
{ url: '25.png', alt: '[]' },
{ url: '26.png', alt: '[]' },
{ url: '27.png', alt: '[]' },
{ url: '28.png', alt: '[]' },
{ url: '29.png', alt: '[]' },
{ url: '30.png', alt: '[]' },
{ url: '31.png', alt: '[]' },
],
[
{ url: '32.png', alt: '[]' },
{ url: '33.png', alt: '[]' },
{ url: '34.png', alt: '[]' },
{ url: '35.png', alt: '[]' },
{ url: '36.png', alt: '[]' },
{ url: '37.png', alt: '[]' },
{ url: '38.png', alt: '[]' },
{ url: '39.png', alt: '[]' },
]
]
},
{
emojiName:"feineneList",
emojiSort:7,
minEmoji: false,
emojiPath:"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/im/img/feinene/",
emojiList: [
[
{ url: '0.gif', alt: '[]' },
{ url: '1.gif', alt: '[]' },
{ url: '2.gif', alt: '[]' },
{ url: '3.gif', alt: '[]' },
{ url: '4.gif', alt: '[]' },
{ url: '5.gif', alt: '[]' },
{ url: '6.gif', alt: '[]' },
{ url: '7.gif', alt: '[]' },
],
[
{ url: '8.gif', alt: '[]' },
{ url: '9.gif', alt: '[]' },
{ url: '10.gif', alt: '[]' },
{ url: '11.gif', alt: '[]' },
{ url: '12.gif', alt: '[]' },
{ url: '13.gif', alt: '[]' },
{ url: '14.gif', alt: '[]' },
{ url: '15.gif', alt: '[]' },
],
[
{ url: '16.gif', alt: '[]' },
{ url: '17.gif', alt: '[]' },
{ url: '18.gif', alt: '[]' },
{ url: '19.gif', alt: '[]' },
{ url: '20.gif', alt: '[]' },
{ url: '21.gif', alt: '[]' },
{ url: '22.gif', alt: '[]' },
{ url: '23.gif', alt: '[]' },
],
[
{ url: '24.gif', alt: '[]' },
{ url: '25.gif', alt: '[]' },
]
]
},
{
emojiName:"",
emojiSort:8,
minEmoji:false,
emojiPath:"",
emojiList: [
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
],
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
],
[
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },{ url: '', alt: '[]' },
]
]
}
]
}
// export与export default均可用于导出常量、函数、文件、模块等
// 在一个文件或模块中export、import可以有多个export default仅有一个
// 通过export方式导出在导入时要加{ }export default则不需要
// export能直接导出变量表达式export default不行。
export default emojiData;

110
dist/index.html vendored Normal file
View File

@ -0,0 +1,110 @@
<!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"><title>商城系统</title><script>var UA = window.navigator.userAgent.toLowerCase();
var isAndroid = UA.indexOf('android') > 0;
var isIOS = /iphone|ipad|ipod|ios/.test(UA);
if (!(isAndroid || isIOS)) {
// TODO 正式发布的时候使用,开发期间不启用。
//window.location.href = '/pcguide.html';
}
let SYS = {};
SYS.DEBUG = false;
SYS.SW_ENABLE = false;
SYS.VER = '1.0.6';
if (SYS.SW_ENABLE && !SYS.DEBUG && navigator.serviceWorker) {
// 注册Service Worker scope表示作用的页面的path
// register函数返回Promise
navigator.serviceWorker.register('/h5/../sw.js?ver=' + SYS.VER, {
scope: '/h5/../'
})
.then(function(registration) {
//像我之前说的,当页面刷新或者执行功能性事件时,浏览器会自动检查更新,其实我们也可以手动的来触发更新:
registration.update();
// 主页面监听 message 事件
navigator.serviceWorker.addEventListener('message', function(e) {
// Service Worker 如果更新成功会 postMessage 给页面,内容为 'sw.update'
if (e.data === 'sw.update') {
// 开发者这自定义处理函数,也可以使用默认提供的用户提示,引导用户刷新
// 这里建议引导用户 reload 处理,详细查看项目具体文件
// location.reload();
}
});
console.log(registration);
})
.catch(function(e) {
console.error(e);
})
} else {
console.log('Service Worker is not supported in this browser.')
}</script><script>document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})</script><link rel=stylesheet href=/h5/static/index.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script>if (/uni-app/i.test(navigator.userAgent))
{
//读取状态栏高度
//document.querySelector("body").style.marginTop = "30px";
}
// H5 plus事件处理
function plusReady(){
// 获取自身webview窗口
var ws=plus.webview.currentWebview();
console.log('窗口标识: '+ws.id);
console.info(JSON.stringify(plus))
uni.getSystemInfo({
success: (res) => {
console.info(JSON.stringify(res))
}
})
/*
//定义全局变量保存分享对象
var shareObj = null, wxShareObj = null;
//1. 初始化加载分享模块
plus.share.getServices(function(s){console.log(JSON.stringify(s)); shareObj = s;},function(e){
alert( "获取分享服务列表失败:"+e.message );
});
function share(){
if(shareObj == null){plus.nativeUI.toast('分享组件加载中,请稍候!'); return false;}
//微信分享
//1、判断微信分享模块是否存在
for(var k in shareObj){if(shareObj[k].id == 'weixin'){wxShareObj = shareObj[k];}}
if(wxShareObj == null){plus.nativeUI.toast('微信分享组件启动失败!'); return false;}
//2、分享
wxShareObj.send(
{
content : "hcoder.net 为了更好的开发!",
href : "http://www.hcoder.net/",
thumbs : ["_www/img/share.jpg"],
extra : {scene : "WXSceneTimeline"}
},
function(){plus.nativeUI.toast( "分享成功!" );},
function(e){plus.nativeUI.toast( "分享失败:"+e.message );}
);
}
setTimeout(share, 5000)
*/
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready', plusReady, false);
}
document.addEventListener('UniAppJSBridgeReady', function() {
console.info(plus)
uni.getEnv(function(res) {
console.log('当前环境:' + JSON.stringify(res));
});
});</script><script src=/h5/static/js/chunk-vendors.f8d1c5eb.js></script><script src=/h5/static/js/index.d441414c.js></script></body></html>

629
dist/static/HM-chat/css/style.scss vendored Normal file
View File

@ -0,0 +1,629 @@
page{
background-color: #e5e5e5;
}
@font-face {font-family:"HMfont-home";
src:url(
'data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAn8AAsAAAAAE1wAAAmvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFDAqWYJI9ATYCJANACyIABCAFhFUHgV8bThBRlFFWNdkXBXbDsSFQq221McNWrxUbYqGhiTju98MTeXqNh/9fo90388cEMe0bwSOJRIjavZIgESqnE5J5JqQVDZH/XdNfoHSAjqKqRsA+Tf/Ruya33E/bkdHsJtycY2XWAGbM5oenzf173A3lHrEilsmMbu74Y5VmYtxpgza9DMxkWL0gfjGbGRE54AL2f2ut3h2u8Q7RaZRCjDPLIv8cfAUR30MtEUWbSReVJkk0RB4lWWkNg7WVA1sBKmIUdr0uzibQOmxA4vrWwQXkJUweKHPfdwXkA+FSik2o1aVizyTegEKdvWINwGv59bEGY9GeTJFjW95pswIrzz3LYi//0O4JEaDrY3DZjxwXgUR8V3IfIeXARaloVRXT3mK/tsi3LubcJfese8l96Xbd1l1ve2z7eJp5lv3zB7URSdJNYd3Dfm7UUxxkGu0sLFcbVEa5pP3D6/QmokQw3OGzfJp/2kBkLJYQDYuziJbFJUSweIkoWXQRNYuEGFi0BLzFOhAjS4+InKUPRGI5I2a+kg7VSWUGoXoos2BNmGIWexwFroD8IUD6C1A9lYp8F3ClwsFgcgPdNpN08v1czkEOJ4aeieaC3QyVfb9PX2kbn9/0CwTeNAm79H1Kc2x3i9C7LcEZtMSLfE6T4aM+YWOm06dZ5cm9I+xoYw+rqGlScKKlHytu9h6Dw0E5nXK7nbTZknT1jFldR9cuzNMz9Srf7FydqpYW5mRr6Dq1OC9HqzYzoiw1cjohV2tX1Ji1K9bSdVkEbaxS1xQwpmpVpUFheyyzPyGdbXKHexkByib+vtgeK1X75xKqWl+grUNIbRZDXT31tBMiPZAyF0KmniCQhSgACkh5+gIxtvTS/si+VjbAuY6SMdCzbqInzwkjk5ENzMCkNv+ghQQ0qSSAUGmAMQoBozoAIrUe6qpzM+tma1T1jDgvVzdBWcIcLT170njGQU3cCpnUTSdkHH3ltwPHpKotTIP6HH12Lvd4czCWgbJYhY1U5ddlTCICSs1is0in8tXExk7VVRuMQhIQGgOtFcolPmMkIqDVduTGEOn1jI4gFERmSUsv3rGmoKUEQLITLUyzqpFukq8T6U+omVQsT8XHxsnipPEyBAlKNmkNMlMJgOT5Tpsoo2RGP3lOTQyk5GRBgJKw2WQsarWzSa1aLF/+UBk2PkA3wEkBM/RwOLJ0ORWiVCR3YYAAFyIlAdaNqEnmh0sTqOsAq97R85Jt+HGHrNKWgDHmxOPxumKmRGzudayPtogu9D2Zx688C3D6XJSgpgF6MJbomdtyOYBgcXOGSgMAPXqy+F11pMYHlFLCkkKM0S1T+U5SN0Ynh39SxcxmTPNHrTFIuieyxYgZXSDUAPpLLT2ZciVvihOh05k+JIAjoL7HtNsVFc5Rl+1hgAAIlNqGX3GEK0llMm0nZUdmhQzymg3Q9j6yO4FQsmqtQbXmZ+z+sOynUrt3nmbeXu3MYW9f8y38128LpWAVeyLMz4cTORbEDPYKHU19Oyx0OF12GIhfEx+/RRIm2RzPeIPE2yYRM7HBWBx+GvANWXAlMYcmWriz1/Tt2bk+jq7CdOzMu5zsn3zZXwg2Gu14YCBuh3NggN0DI8BbJpCXZb2I4xh+kdAmbU0IA6HYquya81nqYSk87Xgi35ur4HnxZWEvnoLrzbOEjHmJiY2JjV6I8c4ynSEsJTKcHxuWYPRFFleV2Sbi0Dsk4XmDSToXTMnUnW/PW9J9W4UCgP+h0rTi9tiJd6qQgk2lPI/KKeybAPx+c7vZHdimbruzyCP9iZvd0VuBuIniuXirHQ8oG2IThFIUI8QOhjfNMg86GH4Bv4ixLlr4BDi2wDDwXTYYTgfnBJur1nAw2yGngw96JhQo+48cMWVE8kWwcA55ZuzwkSP/mpp9D6wFm2e1Bc8cPVraL2Ng7y6KfSNHqQfTYByYMmbT73WNmwZs6m8sBR54XCndTHwvu6v+8N+Jze9/jeGd8bpoHePtMv0/9U6e78bTtf+aly55P40cNtJ3PH3U6xQ9DkRNos+Chp2TpNwX4lZOwkTa4nOLPxpMLc8Sm0srSwD6Y1KW7ftPZ68x3DWS8d4cJbAKE6QJEfRrhAafMLV0RoCRLhKdBaJzNtzPD7dxLIgZ7Al4006exyHEYXMewjqApFokPRIu9FvLiPf96uWlpuZmRZKiH1i0OCNj1ar7zSDqYiRbCQsMrKUXZswxBkQEbCmv2RJgKK82+UcGbpk+0woVSxekQrYCzp4Hk30E3oHhAh+4fLcOPCfzOVu3cvKkHAWzNAVyjAyOQsrJix47n0OZpbTUDKdJp8CZs+BkAKfMnDkF+kJmmrcN4OSZs8CRuwZ+N76gampCxtj83XWO5X1GYc7hIypq+N32eTe6Wr/GfXW5GukBLnvJ1gEPhlmsuUHzg3Osp/vJCZ4flGsFf27fjV18spjdTfQUuVANcgldRA3hKhSUutCGgGhDaMo0tXMHwiUq3gG5entO2xmnECa3H53AjRpKFFYIK7qrHjMJ75sEC91BPlGc0TlZY9qlsdcuZaXy0D3hfz4cmLd2WzbK3Xhhdw7c2VLCxtxsFCMEo8bArEww9ruOrc5joK9g1xp85MghQ4wyuPV71+/tMVxAMmzA1lSt+WmbjFkwL/lV6az7APzZ5qvVmmy7b1bJGrTDhmRfMBYbWMZmNOu3bJdPlLL/5WOR2XZCTJpmU4mx8lv9Fg76T8NagO4vUacJ+n/Sr0b/LYb8+1z5QCb935a0m6WWYXzwh4DO2Sa9g2jEnJ6tYwTU5jp7N2RmaHkn/gjEb/fXpmpXbkpAGaAv7pnKAfdc6bg4GZx1L3QuQ8lVC3BvXbC8f2eHQEqkBuc9aO6h9849M3oPucrgAyQY/HEv7PYJJQy23Ft3/R+xczqmsHWDgrDCyzfcl1o5ehKxnUOr5Bm6NhTGR4u1rtDEvlZ8dGgklLeNCk3ZbeKaO0bkcMfoKt+6ng/DUPPI6AAlDXlE0dzwsKPadkjqKjDXGEgg4b2CK7vx65M0xSlPmNsOA58/g1xWSDDKeq/KV5AR89+zc6OGjKSKtxUqR4NtF47VuMZemcTBDQxGqzqqrXIMCnm2xkXq1QJIIkO8EpmROcOkIyevYmhUqurWBmgCe4U5WJFHiiLKqKKOJtrooo8hxphihl6g5bGv3MAXkfBvPaFbVq6ga4Uq+wWdEfo6NVTmr1oVkYoye2NvfCWLmYQx0sjozFSxszhZ4Ctjb7QtavLQDNa0L5HRZQYJYxrNLbJR4QhZvOV46Fm/lqB428nsrJSx/OwbEgYA') format('woff2');}
.icon {
font-family:"HMfont-home" !important;
font-size:56upx;
font-style:normal;
color: #333;
&.biaoqing:before {
content: "\e797";
}
&.jianpan:before {
content: "\e7b2";
}
&.yuyin:before {
content: "\e805";
}
&.tupian:before {
content: "\e639";
}
&.chehui:before {
content: "\e904";
}
&.luyin:before {
content: "\e905";
}
&.luyin2:before {
content: "\e677";
}
&.other-voice:before {
content: "\e667";
}
&.my-voice:before {
content: "\e906";
}
&.hongbao:before {
content: "\e626";
}
&.tupian2:before {
content: "\e674";
}
&.paizhao:before {
content: "\e63e";
}
&.add:before {
content: "\e655";
}
&.close:before {
content: "\e607";
}
&.to:before {
content: "\e675";
}
}
.hidden{
display: none !important;
}
.popup-layer{
&.showLayer{transform: translate3d(0,-64vw,0);}
transition: all .15s linear;
width: 100%;
height: 64vw;
// padding: 20upx 2%;
padding-bottom: 30upx;
background-color: #f3f3f3;
border-top: solid 1upx #ddd;
position: fixed;
z-index: 20;
top: 100%;
// .emoji-swiper{
// height: 40vw;
// swiper-item{
// display: flex;
// align-content: flex-start;
// flex-wrap: wrap;
// view{
// width: 12vw;
// height: 12vw;
// display: flex;
// justify-content: center;
// align-items: center;
// image{
// width: 8.4vw;
// height: 8.4vw;
// }
// }
// }
// }
.more-layer{
width: 100%;
height: 64vw;
.list{
width: 100%;
display: flex;
flex-wrap: wrap;
.box{
width: 18vw;
height: 18vw;
border-radius: 20upx;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
// margin: 0 3vw 2vw 3vw;
margin: 5vw 3vw 5vw 4vw;
.icon{
font-size: 70upx;
}
}
}
}
}
.input-box{
width: 100%;
min-height: 100upx;
padding: 0 1%;
background-color: #f2f2f2;
display: flex;
position: fixed;
z-index: 20;
bottom:-2upx;
&.showLayer{transform: translate3d(0,-64vw,0);}
transition: all .15s linear;
border-bottom: solid 1upx #ddd;
.voice,.more{
flex-shrink: 0;
width: 90upx;
height: 100upx;
display: flex;
justify-content: center;
align-items: center;
}
.send{
//H5发送按钮左边距
/* #ifdef H5 */
margin-left: 20upx;
/* #endif */
flex-shrink: 0;
width: 100upx;
height: 100upx;
display: flex;
align-items: center;
.btn{
width: 90upx;
height: 56upx;
display: flex;
justify-content: center;
align-items: center;
background:linear-gradient(to right,#cf3c35,#cf3c35);
color: #fff;
border-radius: 6upx;
font-size: 24upx;
}
}
.textbox{
width: 100%;
min-height: 70upx;
margin-top: 15upx;
.voice-mode{
width: calc(100% - 2upx);
height: 68upx;
border-radius: 70upx;
border:solid 1upx #cdcdcd;
display: flex;
justify-content: center;
align-items: center;
font-size: 28upx;
background-color: #fff;
color: #555;
&.recording{
background-color: #e5e5e5;
}
}
.text-mode{
width: 100%;
min-height: 70upx;
display: flex;
background-color: #fff;
border-radius: 40upx;
.box{
width: 100%;
padding-left: 30upx;
min-height: 70upx;
display: flex;
align-items: center;
textarea{
width: 100%;
}
}
.em{
flex-shrink: 0;
width: 80upx;
padding-left: 10upx;
height: 70upx;
display: flex;
justify-content: center;
align-items: center;
}
}
}
}
.record{
width: 40vw;
height: 40vw;
position: fixed;
top: 55%;
left: 30%;
background-color: rgba(0,0,0,.6);
border-radius: 20upx;
.ing{
width: 100%;
height: 30vw;
display: flex;
justify-content: center;
align-items: center;
// 模拟录音音效动画
@keyframes volatility {
0% {background-position: 0% 130%;}
20% {background-position: 0% 150%;}
30% {background-position: 0% 155%;}
40% {background-position: 0% 150%;}
50% {background-position: 0% 145%;}
70% {background-position: 0% 150%;}
80% {background-position: 0% 155%;}
90% {background-position: 0% 140%;}
100% {background-position: 0% 135%;}
}
.icon{
background-image:linear-gradient(to bottom,#f09b37,#fff 50%);
background-size:100% 200%;
animation: volatility 1.5s ease-in-out -1.5s infinite alternate;
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
font-size: 150upx;
color: #f09b37;
}
}
.cancel{
width: 100%;
height: 30vw;
display: flex;
justify-content: center;
align-items: center;
.icon{
color: #fff;
font-size: 150upx;
}
}
.tis{
width: 100%;
height: 10vw;
display: flex;
justify-content: center;
font-size: 28upx;
color: #fff;
&.change{
color: #f09b37;
}
}
}
.content{
width: 100%;
.msg-list{
width: 96%;
padding: 0 2%;
position: absolute;
top: 0;
bottom: 100upx;
.loading{
//loading动画
display: flex;
justify-content: center;
@keyframes stretchdelay {
0%, 40%, 100% {
transform: scaleY(0.6);
}
20% {
transform: scaleY(1.0);
}
}
.spinner {
margin: 20upx 0;
width: 60upx;
height: 100upx;
display: flex;
align-items: center;
justify-content: space-between;
view {
background-color: #5FB878;
height: 50upx;
width: 6upx;
border-radius: 6upx;
animation: stretchdelay 1.2s infinite ease-in-out;
}
.rect2 {
animation-delay: -1.1s;
}
.rect3 {
animation-delay: -1.0s;
}
.rect4 {
animation-delay: -0.9s;
}
.rect5 {
animation-delay: -0.8s;
}
}
}
.row{
.system{
display: flex;
justify-content: center;
view{
padding: 0 30upx;
height: 50upx;
display: flex;
justify-content: center;
align-items: center;
background-color: #c9c9c9;
color: #fff;
font-size: 24upx;
border-radius: 40upx;
}
.red-envelope{
image{
margin-right: 5upx;
width: 30upx;
height: 30upx;
}
}
}
&:first-child{
margin-top: 20upx;
}
padding: 20upx 0;
.my .left,.other .right{
width: 100%;
display: flex;
.bubble{
max-width: 70%;
min-height: 50upx;
border-radius: 10upx;
padding: 15upx 20upx;
display: flex;
align-items: center;
font-size: 32upx;
word-break: break-word;
&.img{
/*
background-color: transparent;
padding:0;
overflow: hidden;
*/
image{
flex:1;
max-width: 350upx;
max-height: 350upx;
}
}
&.red-envelope{
background-color: transparent;
padding:0;
overflow: hidden;
position: relative;
justify-content: center;
align-items: flex-start;
image{
width: 250upx;
height: 313upx;
}
.tis{
position: absolute;
top: 6%;
font-size: 26upx;
color: #9c1712;
}
.blessing{
position: absolute;
bottom: 14%;
color: #e9b874;
width: 80%;
text-align: center;
overflow: hidden;
// 最多两行
display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;
}
}
&.voice{
.icon{
font-size: 40upx;
display: flex;
align-items: center;
}
.icon:after
{
content:" ";
width: 53upx;
height: 53upx;
border-radius: 100%;
position: absolute;
box-sizing: border-box;
}
.length{
font-size: 28upx;
}
}
}
}
.my .right,.other .left{
flex-shrink: 0;
width: 80upx;
height: 80upx;
image{
width: 80upx;
height: 80upx;
border-radius: 10upx;
}
}
.my{
width: 100%;
display: flex;
justify-content: flex-end;
.left{
min-height: 80upx;
align-items: center;
justify-content: flex-end;
.bubble{
background-color: #fff;
color: #fff;
&.voice{
.icon{
color: #fff;
}
.length{
margin-right: 20upx;
}
}
&.play{
@keyframes my-play {
0% {
transform: translateX(80%);
}
100% {
transform: translateX(0%);
}
}
.icon:after
{
border-left: solid 10upx rgba(240,108,122,.5);
animation: my-play 1s linear infinite;
}
}
}
}
.right{
margin-left: 15upx;
}
}
.other{
width: 100%;
display: flex;
.left{
margin-right: 15upx;
}
.right{
flex-wrap: wrap;
.username{
width: 100%;
height: 45upx;
font-size: 24upx;
color: #999;
display: flex;
.name{
margin-right: 50upx;
}
}
.bubble{
background-color: #fff;
color: #333;
&.voice{
.icon{
color: #333;
}
.length{
margin-left: 20upx;
}
}
&.play{
@keyframes other-play {
0% {
transform: translateX(-80%);
}
100% {
transform: translateX(0%);
}
}
.icon:after
{
border-right: solid 10upx rgba(255,255,255,.8);
animation: other-play 1s linear infinite;
}
}
}
}
}
}
}
}
.windows{
.mask{
position: fixed;
top: 100%;
width: 100%;
height: 100%;
z-index: 1000;
background-color: rgba(0,0,0,.6);
opacity: 0;
transition: opacity .2s ease-out;
}
.layer{
position: fixed;
width: 80%;
height: 70%;
left: 10%;
z-index: 1001;
border-radius: 20upx;
overflow: hidden;
top:100%;
transform: scale3d(.5,.5,1);
transition: all .2s ease-out;
}
&.show{
display: block;
.mask{
top: 0;
opacity: 1;
}
.layer{
transform: translate3d(0,-85vh,0) scale3d(1,1,1);
}
}
&.hide{
display: block;
.mask{
top: 0;
opacity: 0;
}
.layer{
//transform: translate3d(0,-85vh,0) scale3d(.5,.5,1);
}
}
}
.open-redenvelope{
width: 100%;
height: 70vh;
background-color: #cf3c35;
position: relative;
.top{
width: 100%;
background-color: #fe5454;
display: flex;
justify-content: center;
flex-wrap: wrap;
border-radius: 0 0 100% 100%;
box-shadow: inset 0 -20upx 0 #9c1712;
.close-btn{
width: 100%;
height: 80upx;
display: flex;
justify-content: flex-end;
margin-bottom: 30upx;
.icon{
color: #9c1712;
margin-top: 10upx;
margin-right: 10upx;
}
}
image{
width: 130upx;
height: 130upx;
border: solid 12upx #cf3c35;
border-radius: 100%;
margin-bottom: -65upx;
}
margin-bottom: 65upx;
}
.from,.blessing,.money,.showDetails{
width: 90%;
padding: 5upx 5%;
display: flex;
justify-content: center;
font-size: 32upx;
color: #fff;
}
.money{
font-size: 100upx;
color: #f8d757;
display: flex;
padding-top: 20upx;
}
.showDetails{
position: absolute;
bottom: 20upx;
align-items: center;
font-size: 28upx;
color: #f8d757;
.icon{
font-size: 26upx;
color: #f8d757;
}
}
}

Some files were not shown because too many files have changed in this diff Show More