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>

580
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 项目 - 部署/同步流程失败,请排查问题后重试" }
}
}

View File

@ -1,118 +1,353 @@
<template>
<view>
<view class='tails_box' :style='"height:" + CenterCoupon.AllowOfflineWriteOff?"640rpx":"400rpx"'>
<view class='tails_couname'>
<view
class="tails_box"
:style="
'height:' + CenterCoupon.AllowOfflineWriteOff ? '640rpx' : '400rpx'
"
>
<view class="tails_couname">
<text>
{{ CenterCoupon.activity_name }}
<span style="font-size: 12rpx;margin-left:6rpx;color:#FF9933" v-if="CenterCoupon.activity_on_is_off === 1">(线下使用)</span>
<span
style="font-size: 12rpx; margin-left: 6rpx; color: #ff9933"
v-if="CenterCoupon.activity_on_is_off === 1"
>(线下使用)</span
>
</text>
</view>
<view class='tails_mon'><label style='font-size:30rpx;margin-right:8rpx;margin-left:25%'>{{__('¥')}}</label><label style='font-size:60rpx;margin-right: 24rpx;ont-weight:bold;'>{{CenterCoupon.voucher_price || CenterCoupon.activity_rule.voucher_price}}</label><label style='font-size:24rpx;color:#9B9B9B'>{{sprintf(__('满¥%s可用'), CenterCoupon.voucher_subtotal || CenterCoupon.activity_rule.requirement.buy.subtotal )}}</label></view>
<view class='tails_time' style='width:100%'>{{sprintf(__('有效日期至:%s'), CenterCoupon.voucher_end_date || CenterCoupon.activity_endtime)}}
<view class="tails_mon"
><label
style="font-size: 30rpx; margin-right: 8rpx; margin-left: 25%"
>{{ __("¥") }}</label
><label
style="font-size: 60rpx; margin-right: 24rpx; ont-weight: bold"
>{{
CenterCoupon.voucher_price ||
CenterCoupon.activity_rule.voucher_price
}}</label
><label style="font-size: 24rpx; color: #9b9b9b">{{
sprintf(
__("满¥%s可用"),
CenterCoupon.voucher_subtotal ||
CenterCoupon.activity_rule.requirement.buy.subtotal
)
}}</label></view
>
<view class="tails_time" style="width: 100%"
>{{
sprintf(
__("有效日期至:%s"),
CenterCoupon.voucher_end_date || CenterCoupon.activity_endtime
)
}}
</view>
<view class='tails_time' v-if="CenterCoupon.AllowOfflineWriteOff">
<image :src='CenterCoupon.WriteOffCodeUrl' style="width: 64%;height: 289rpx;"></image>
<view class="tails_time" v-if="CenterCoupon.AllowOfflineWriteOff">
<image
:src="CenterCoupon.WriteOffCodeUrl"
style="width: 64%; height: 289rpx"
></image>
</view>
<view class='tails_time' style='font-size:24rpx;color:#9B9B9B ' v-if="CenterCoupon.AllowOfflineWriteOff">
<view
class="tails_time"
style="font-size: 24rpx; color: #9b9b9b"
v-if="CenterCoupon.AllowOfflineWriteOff"
>
{{ CenterCoupon.WriteOffCode }}
</view>
<view class='btn_box' v-if="!CenterCoupon.AllowOfflineWriteOff" style="height: 100rpx;">
<view class='but-stl' style="margin-right: 86rpx;" @tap="receivenowWeixin" v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL && CenterCoupon.CouponType==2" :data-id="CenterCoupon.activity_id">{{__('立即领取')}}
<view
class="btn_box"
v-if="!CenterCoupon.AllowOfflineWriteOff"
style="height: 100rpx"
>
<view
class="but-stl"
style="margin-right: 86rpx"
@tap="receivenowWeixin"
v-if="
CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL &&
CenterCoupon.CouponType == 2
"
:data-id="CenterCoupon.activity_id"
>{{ __("立即领取") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" @tap="receivenow" v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL" :data-id="CenterCoupon.activity_id">{{__('立即领取')}}
<view
class="but-stl"
style="margin-right: 86rpx"
@tap="receivenow"
v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL"
:data-id="CenterCoupon.activity_id"
>{{ __("立即领取") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" v-if="(CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_FINISHED || CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_CLOSED) && CenterCoupon.voucher_state_id != StateCode.VOUCHER_STATE_USED" :data-id="CenterCoupon.activity_id">{{__('已领完')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="
(CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_FINISHED ||
CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_CLOSED) &&
CenterCoupon.voucher_state_id != StateCode.VOUCHER_STATE_USED
"
:data-id="CenterCoupon.activity_id"
>{{ __("已领完") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" :data-id="CenterCoupon.activity_id" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_USED">{{__('已使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
:data-id="CenterCoupon.activity_id"
v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_USED"
>{{ __("已使用") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" :data-id="CenterCoupon.activity_id" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_TIMEOUT">{{__('已过期')}}
<view
class="but-stl"
style="margin-right: 86rpx"
:data-id="CenterCoupon.activity_id"
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_TIMEOUT
"
>{{ __("已过期") }}
</view>
<block v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED && CenterCoupon.AllowOfflineWriteOff == false">
<view class='but-stl' style="margin-right: 86rpx;" v-if="(isOnLine)" :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" @tap="usenow">{{__('立即使用')}}
<block
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED &&
CenterCoupon.AllowOfflineWriteOff == false
"
>
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="isOnLine"
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
@tap="usenow"
>{{ __("立即使用") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" v-else :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" :data-writeoff_code="CenterCoupon.writeoff_code" @tap="Make">{{__('立即使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-else
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
:data-writeoff_code="CenterCoupon.writeoff_code"
@tap="Make"
>{{ __("立即使用") }}
</view>
</block>
<view class='but-stl' style="margin-right: 86rpx;" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED && CenterCoupon.AllowOfflineWriteOff" :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" @tap="usenow">{{__('在线使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED &&
CenterCoupon.AllowOfflineWriteOff
"
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
@tap="usenow"
>{{ __("在线使用") }}
</view>
<view :data-id="CenterCoupon.activity_id" :data-name="CenterCoupon.Name" @tap="shareBox" class='but-stl02' v-if="false">{{__('分享给好友')}}
<view
:data-id="CenterCoupon.activity_id"
:data-name="CenterCoupon.Name"
@tap="shareBox"
class="but-stl02"
v-if="false"
>{{ __("分享给好友") }}
</view>
</view>
</view>
<view class='img_box'>
<image src="https://static.lancerdt.com/xcxfile/appicon/coupon/partingLine.png" style="width:100%;height:100%;vertical-align:top;"></image>
<view class="img_box">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/coupon/partingLine.png"
style="width: 100%; height: 100%; vertical-align: top"
></image>
</view>
<view class='tailfoli' style="overflow: hidden;">
<view class='btn_box' style='margin:9px auto 0 auto;overflow: hidden' v-if="CenterCoupon.AllowOfflineWriteOff">
<view class='but-stl' style="margin-right: 86rpx;" @tap="receivenowWeixin" v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL && CenterCoupon.CouponType==2" :data-id="CenterCoupon.activity_id">{{__('立即领取')}}
<view class="tailfoli" style="overflow: hidden">
<view
class="btn_box"
style="margin: 9px auto 0 auto; overflow: hidden"
v-if="CenterCoupon.AllowOfflineWriteOff"
>
<view
class="but-stl"
style="margin-right: 86rpx"
@tap="receivenowWeixin"
v-if="
CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL &&
CenterCoupon.CouponType == 2
"
:data-id="CenterCoupon.activity_id"
>{{ __("立即领取") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" @tap="receivenow" v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL" :data-id="CenterCoupon.activity_id">{{__('立即领取')}}
<view
class="but-stl"
style="margin-right: 86rpx"
@tap="receivenow"
v-if="CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_NORMAL"
:data-id="CenterCoupon.activity_id"
>{{ __("立即领取") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" v-if="(CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_FINISHED || CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_CLOSED) && CenterCoupon.voucher_state_id != StateCode.VOUCHER_STATE_USED" :data-id="CenterCoupon.activity_id">{{__('已领完')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="
(CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_FINISHED ||
CenterCoupon.activity_state == StateCode.ACTIVITY_STATE_CLOSED) &&
CenterCoupon.voucher_state_id != StateCode.VOUCHER_STATE_USED
"
:data-id="CenterCoupon.activity_id"
>{{ __("已领完") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" :data-id="CenterCoupon.activity_id" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_USED">{{__('已使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
:data-id="CenterCoupon.activity_id"
v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_USED"
>{{ __("已使用") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" :data-id="CenterCoupon.activity_id" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_TIMEOUT">{{__('已过期')}}
<view
class="but-stl"
style="margin-right: 86rpx"
:data-id="CenterCoupon.activity_id"
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_TIMEOUT
"
>{{ __("已过期") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED && CenterCoupon.AllowOfflineWriteOff == false" :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" @tap="usenow">{{__('立即使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED &&
CenterCoupon.AllowOfflineWriteOff == false
"
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
@tap="usenow"
>{{ __("立即使用") }}
</view>
<view class='but-stl' style="margin-right: 86rpx;" v-if="CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED && CenterCoupon.AllowOfflineWriteOff " :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" @tap="usenow">{{__('在线使用')}}
<view
class="but-stl"
style="margin-right: 86rpx"
v-if="
CenterCoupon.voucher_state_id == StateCode.VOUCHER_STATE_UNUSED &&
CenterCoupon.AllowOfflineWriteOff
"
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
@tap="usenow"
>{{ __("在线使用") }}
</view>
<view class='but-stl02' :data-id="CenterCoupon.activity_id" @tap="shareBox" :data-name="CenterCoupon.Name" v-if="false">{{__('分享给好友')}}
<view
class="but-stl02"
:data-id="CenterCoupon.activity_id"
@tap="shareBox"
:data-name="CenterCoupon.Name"
v-if="false"
>{{ __("分享给好友") }}
</view>
<view class='btn_mx' v-if="CenterCoupon.AllowOfflineWriteOff">{{__('支持线下使用在门店购物时向店员出示此码抵扣')}}</view>
<view class="btn_mx" v-if="CenterCoupon.AllowOfflineWriteOff">{{
__("支持线下使用(在门店购物时,向店员出示此码抵扣)")
}}</view>
</view>
<view class='tails_tox' v-if="!CenterCoupon.AllowOfflineWriteOff">
<view class='tail_fo1'>{{__('使用条件')}}</view>
<view class='tail_fo2'>
<view style="margin-bottom: 10rpx; ">1{{sprintf(__('满¥%s可用'), CenterCoupon.voucher_subtotal || CenterCoupon.activity_rule.requirement.buy.subtotal)}}</view>
<view class="tails_tox" v-if="!CenterCoupon.AllowOfflineWriteOff">
<view class="tail_fo1">{{ __("使用条件") }}</view>
<view class="tail_fo2">
<view style="margin-bottom: 10rpx"
>1{{
sprintf(
__("满¥%s可用"),
CenterCoupon.voucher_subtotal ||
CenterCoupon.activity_rule.requirement.buy.subtotal
)
}}</view
>
<view>
<label style="margin-right: 57rpx;">2{{CenterCoupon.store_name}}{{__('可用')}}</label>
<label v-if="CenterCoupon.activity_on_is_off === 0" style="color: #FFCA81;" :data-id="CenterCoupon.activity_id" @tap="usenow" :data-store_id="(CenterCoupon.store_id)">{{__('查看')}}</label>
<label style="margin-right: 57rpx"
>2{{ CenterCoupon.store_name }}{{ __("可用") }}</label
>
<label
v-if="CenterCoupon.activity_on_is_off === 0"
style="color: #ffca81"
:data-id="CenterCoupon.activity_id"
@tap="usenow"
:data-store_id="CenterCoupon.store_id"
>{{ __("查看") }}</label
>
</view>
</view>
</view>
</view>
<view class='tails_tox' v-if="CenterCoupon.AllowOfflineWriteOff">
<view class='tail_fo5'>{{__('使用条件')}}</view>
<view class='tail_fo6'>
<view style="margin-bottom: 10rpx; ">1{{sprintf(__('满¥%s可用'), CenterCoupon.voucher_subtotal || CenterCoupon.activity_rule.requirement.buy.subtotal)}}</view>
<view><label style="margin-right: 57rpx;">2{{CenterCoupon.store_name}}{{__('可用')}}</label><label style="color: #FFCA81;" :data-id="CenterCoupon.activity_id" :data-store_id="(CenterCoupon.store_id)" @tap="usenow">{{__('查看')}}</label>
<view class="tails_tox" v-if="CenterCoupon.AllowOfflineWriteOff">
<view class="tail_fo5">{{ __("使用条件") }}</view>
<view class="tail_fo6">
<view style="margin-bottom: 10rpx"
>1{{
sprintf(
__("满¥%s可用"),
CenterCoupon.voucher_subtotal ||
CenterCoupon.activity_rule.requirement.buy.subtotal
)
}}</view
>
<view
><label style="margin-right: 57rpx"
>2{{ CenterCoupon.store_name }}{{ __("可用") }}</label
><label
style="color: #ffca81"
:data-id="CenterCoupon.activity_id"
:data-store_id="CenterCoupon.store_id"
@tap="usenow"
>{{ __("查看") }}</label
>
</view>
</view>
</view>
<view style='width:100%' v-if="CenterCoupon.Description != ''&& CenterCoupon.Description != null || CenterCoupon.AllowOfflineWriteOff">
<view class='tails_tox' style="width: 85%;padding-bottom: 60rpx;">
<view class='tail_fo1' style='color:#fff '>{{__('使用说明')}}</view>
<view class='tail_fo3' style='color:#fff;height:43rpx' v-if="CenterCoupon.AllowOfflineWriteOff">
{{__('支持线下使用,领取后向店员展示优惠券详情')}}
<view
style="width: 100%"
v-if="
(CenterCoupon.Description != '' && CenterCoupon.Description != null) ||
CenterCoupon.AllowOfflineWriteOff
"
>
<view class="tails_tox" style="width: 85%; padding-bottom: 60rpx">
<view class="tail_fo1" style="color: #fff">{{ __("使用说明") }}</view>
<view
class="tail_fo3"
style="color: #fff; height: 43rpx"
v-if="CenterCoupon.AllowOfflineWriteOff"
>
{{ __("支持线下使用,领取后向店员展示优惠券详情") }}
</view>
<rich-text style='color:#fff;white-space: pre-line;font-size:22rpx;word-break:break-all' v-if='CenterCoupon.Description' nodes='CenterCoupon.Description'></rich-text>
<rich-text
style="
color: #fff;
white-space: pre-line;
font-size: 22rpx;
word-break: break-all;
"
v-if="CenterCoupon.Description"
nodes="CenterCoupon.Description"
></rich-text>
</view>
</view>
<template is="shareMskTpl" data="PageQRCodeInfo" />
<view :class="bannerShow ? 'canvas' : 'hide'" @click="setHide">
<canvas class="m-canvas" canvas-id="qrcode" style="width: 200px;height: 200px;" />
<canvas
class="m-canvas"
canvas-id="qrcode"
style="width: 200px; height: 200px"
/>
</view>
</view>
</template>
<script>
import $ from "../../helpers/util";
import uniQrcode from '@/components/uni-qrcode/uni-qrcode.vue';
import uQRCode from '@/components/uni-qrcode/uqrcode.js';
import {
mapState,
mapMutations
} from 'vuex'
import uQRCode from "@/components/uni-qrcode/uqrcode.js";
import { mapState, mapMutations } from "vuex";
export default {
data() {
@ -121,9 +356,9 @@
CenterCoupon: {
activity_rule: {
requirement: {
buy: {}
}
}
buy: {},
},
},
},
cid: "",
couponItemId: "",
@ -131,19 +366,27 @@
isOnLine: false, //线
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('优惠券详情')
title: this.__("优惠券详情"),
});
this.setData({
cid: options.cid,
couponItemId: options.couponItemId
couponItemId: options.couponItemId,
});
var that = this;
that.GetCouponInfo()
that.GetCouponInfo();
/*
this.forceUserInfo(function(user) {
@ -154,16 +397,21 @@
*/
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
GetCouponInfo: function (e) {
var params = {
activity_id: this.cid,
user_voucher_id: this.couponItemId
user_voucher_id: this.couponItemId,
},
that = this;
that.$.request({
url: this.Config.URL.user.voucher_get,
data: params,
@ -171,10 +419,10 @@
if (status == 200) {
data.AllowOfflineWriteOff = false;
that.setData({
CenterCoupon: data
CenterCoupon: data,
});
}
}
},
});
},
onGotUserInfo: function (e) {
@ -182,11 +430,15 @@
var a = {
Photo: e.detail.userInfo.avatarUrl,
NickName: e.detail.userInfo.nickName,
UserName: app.globalData.UserInfo.UserName
UserName: app.globalData.UserInfo.UserName,
};
$.xsr($.makeUrl(userapi.UpdateUserPhotoAndNickName, a), function (e) {
//console.log("", e)
}), app.imageUrl = e.detail.userInfo.avatarUrl, app.nickName = e.detail.userInfo.nickName, app.authorize = true, this.shareQRCode()
}),
(app.imageUrl = e.detail.userInfo.avatarUrl),
(app.nickName = e.detail.userInfo.nickName),
(app.authorize = true),
this.shareQRCode();
}
},
shareQRCode: function (e) {
@ -195,24 +447,26 @@
o = {
vendorId: app.globalData.VendorInfo.Id,
userId: app.globalData.UserInfo.Id,
couponId: this.cid
couponId: this.cid,
};
$.xsr($.makeUrl(userapi.QRCouponCodePoster, o), function (e) {
//console.log("", e), a.setData({PageQRCodeInfo: {Path: e.Info, IsShare: true, IsShareBox: false, IsJT: true}})
})
});
},
showCodeImg: function () {
wx.previewImage({
current: this.PageQRCodeInfo.Path,
urls: [this.PageQRCodeInfo.Path]
})
urls: [this.PageQRCodeInfo.Path],
});
},
saveImg: function () {
var a = this;
$.loading(), wx.downloadFile({
$.loading(),
wx.downloadFile({
url: this.PageQRCodeInfo.Path,
success: function (e) {
$.hideloading(), wx.saveImageToPhotosAlbum({
$.hideloading(),
wx.saveImageToPhotosAlbum({
filePath: e.tempFilePath,
success: function () {
a.setData({
@ -220,19 +474,20 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
}), $.alert("保存图片成功!")
IsJT: false,
},
}),
$.alert("保存图片成功!");
},
fail: function (e) {
$.hideloading()
}
})
$.hideloading();
},
});
},
fail: function (e) {
$.hideloading()
}
})
$.hideloading();
},
});
},
cancelShare: function () {
this.setData({
@ -240,26 +495,26 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
})
IsJT: false,
},
});
},
usenow: function (e) {
let that = this;
var t = e.currentTarget.dataset.store_id;
that.$.redirectTo({
url: "/member/product/coupon?store_id=" + t
})
url: "/member/product/coupon?store_id=" + t,
});
},
receivenow: function (e) {
let that = this;
that.getCoupon(e.currentTarget.dataset.id)
that.getCoupon(e.currentTarget.dataset.id);
},
setHide: function () {
this.setData({
bannerShow: false
bannerShow: false,
});
},
@ -267,36 +522,36 @@
var that = this;
that.setData({
bannerShow: true
bannerShow: true,
});
let writeoff_code = e.currentTarget.dataset.writeoff_code;
if (writeoff_code != null && writeoff_code != '') {
if (writeoff_code != null && writeoff_code != "") {
that.couponItemId = writeoff_code;
}
uQRCode.make({
canvasId: 'qrcode',
canvasId: "qrcode",
componentInstance: this,
text: that.couponItemId,
size: 200,
margin: 10,
backgroundColor: '#ffffff',
foregroundColor: '#000000',
fileType: 'jpg',
backgroundColor: "#ffffff",
foregroundColor: "#000000",
fileType: "jpg",
// correctLevel: uQRCode.errorCorrectLevel.H,
success: res => {
success: (res) => {
// console.log(res);
},
fail: error => {
fail: (error) => {
console.log(error);
}
},
});
},
getCoupon: function (t) {
let that = this;
var params = {
activity_id: t,
user_is_new: 0
user_is_new: 0,
};
this.forceUserInfo((user) => {
@ -311,10 +566,11 @@
that.$.confirm(that.__("领取成功!,去消费"), function (a) {
if (a.confirm) {
that.$.navigateTo({
url: "/pagesub/index/store?store_id=" + that.CenterCoupon.store_id
})
url:
"/pagesub/index/store?store_id=" +
that.CenterCoupon.store_id,
});
}
});
} else {
$.alert(msg);
@ -324,7 +580,6 @@
}
});
/*
t && $.clearxsr($.makeUrl(userapi.UserReceiveCoupon, params), function (t) {
0 == t.Code ? (that.setData({isCancelSuccess: false, mskType: 2, Coupons: t.Info}), wx.showToast({
@ -341,12 +596,12 @@
Path: "",
IsShare: true,
IsShareBox: true,
IsJT: false
}
})
}
}
}
IsJT: false,
},
});
},
},
};
</script>
@ -356,7 +611,7 @@
/* pages/Receivetails/Receivetails.wxss */
page {
background: #DB384C
background: #db384c;
}
.tails_box {
@ -376,19 +631,19 @@
top: -14%;
left: 42%;
border-radius: 50%;
overflow: hidden
overflow: hidden;
}
.tails_shopname {
width: 100%;
color: #fff;
font-size: 24rpx;
text-align: center
text-align: center;
}
.tails_couname {
width: 100%;
color: #DB384C;
color: #db384c;
font-size: 36rpx;
text-align: center;
margin-top: 10rpx;
@ -397,7 +652,7 @@
.tails_mon {
width: 100%;
color: #DB384C;
color: #db384c;
text-align: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
@ -412,7 +667,7 @@
text-align: center;
font-size: 24rpx;
line-height: 50rpx;
color: #DB384C
color: #db384c;
}
.tails_time {
@ -420,7 +675,7 @@
/*margin: 25rpx auto 0 auto;*/
text-align: center;
font-size: 22rpx;
color: #DB384C
color: #db384c;
}
.tails_tox {
@ -431,21 +686,21 @@
.tail_fo1 {
font-size: 24rpx;
color: #000000;
line-height: 62rpx
line-height: 62rpx;
}
.tail_fo5 {
font-size: 24rpx;
color: #fff;
padding-left: 20rpx;
line-height: 62rpx
line-height: 62rpx;
}
.tail_fo2 {
width: 100%;
font-size: 24rpx;
color: #9B9B9B;
border-radius: 10rpx
color: #9b9b9b;
border-radius: 10rpx;
}
.tail_fo6 {
@ -453,14 +708,14 @@
font-size: 24rpx;
color: #fff;
padding-left: 20rpx;
border-radius: 10rpx
border-radius: 10rpx;
}
.tail_fo3 {
width: 100%;
height: 137rpx;
font-size: 22rpx;
border-radius: 10rpx
border-radius: 10rpx;
}
.but-stl {
@ -470,7 +725,7 @@
height: 61rpx;
border-radius: 50rpx;
border: 1px solid #fff;
background: #DB384C;
background: #db384c;
font-size: 26rpx;
color: #fff;
line-height: 61rpx;
@ -482,10 +737,10 @@
text-align: center;
height: 61rpx;
border-radius: 50rpx;
border: 1px solid #DB384C;
border: 1px solid #db384c;
background: #fff;
font-size: 26rpx;
color: #DB384C;
color: #db384c;
line-height: 61rpx;
}
@ -509,14 +764,14 @@
.img_box {
width: 94%;
height: 72rpx;
margin: 0 auto
margin: 0 auto;
}
.btn_mx {
text-align: center;
font-size: 22rpx;
color: #9B9B9B;
margin: 88rpx 0 0
color: #9b9b9b;
margin: 88rpx 0 0;
}
.m-canvas {

View File

@ -2,113 +2,212 @@
<view class="page">
<view class="m-tab">
<view class="m-navbar">
<view :class="'m-navbar-item ' + (tapindex==0?'m-navbar-item-on':'')" @click="freeget">
{{__('免费领取')}}
<view
:class="'m-navbar-item ' + (tapindex == 0 ? 'm-navbar-item-on' : '')"
@click="freeget"
>
{{ __("免费领取") }}
</view>
<view v-if="false" :class="'m-navbar-item ' + (tapindex==1?'m-navbar-item-on':'')" @click="buyget">
{{__('购买获取')}}
<view
v-if="false"
:class="'m-navbar-item ' + (tapindex == 1 ? 'm-navbar-item-on' : '')"
@click="buyget"
>
{{ __("购买获取") }}
</view>
</view>
</view>
<scroll-view class="m-scrollBox" scroll-y="true" @scrolltolower="scrollbottom">
<block v-if="(VoucherList.length>0)">
<view :class="['m-coupon-item', item.if_gain ? '' : 'off']" v-for="(item, index) in VoucherList" :key="index">
<scroll-view
class="m-scrollBox"
scroll-y="true"
@scrolltolower="scrollbottom"
>
<block v-if="VoucherList.length > 0">
<view
:class="['m-coupon-item', item.if_gain ? '' : 'off']"
v-for="(item, index) in VoucherList"
:key="index"
>
<view class="m-coupon-info">
<view class="m-coupon-text">
<label v-if="item.activity_type != 3">
{{ item.activity_name }}
<span style="font-size: 12rpx;margin-left:6rpx;color:#FF9933" v-if="item.activity_on_is_off === 1">(线下)</span>
<span style="font-size: 18rpx;margin-left:8rpx;color:#FF9933">{{item.store_name}}</span>
<span
style="font-size: 12rpx; margin-left: 6rpx; color: #ff9933"
v-if="item.activity_on_is_off === 1"
>(线下)</span
>
<span
style="font-size: 18rpx; margin-left: 8rpx; color: #ff9933"
>{{ item.store_name }}</span
>
</label>
<label v-else>
{{ item.product_name }}
<span style="font-size: 12rpx;margin-left:6rpx;color:#FF9933" v-if="item.activity_on_is_off === 1">(线下)</span>
<span style="font-size: 18rpx;margin-left:8rpx;color:#FF9933">{{item.store_name}}</span>
<span
style="font-size: 12rpx; margin-left: 6rpx; color: #ff9933"
v-if="item.activity_on_is_off === 1"
>(线下)</span
>
<span
style="font-size: 18rpx; margin-left: 8rpx; color: #ff9933"
>{{ item.store_name }}</span
>
</label>
<text v-if="item.activity_type != 3">{{sprintf(__('%s可用消耗 %s 积分领取%s'), item.activity_rule.requirement.buy.subtotal, item.activity_rule.requirement.points.needed, item.activity_remark)}}</text>
<text v-else>{{sprintf(__('%s可抵扣%s'), item.activity_rule.requirement.buy.subtotal,item.activity_rule.voucher_price)}}</text>
<text>{{sprintf(__('有效日期至:%s'), item.activity_rule.voucher_end_date)}}</text>
<text v-if="item.activity_type != 3">{{
sprintf(
__("满¥%s可用消耗 %s 积分领取。%s"),
item.activity_rule.requirement.buy.subtotal,
item.activity_rule.requirement.points.needed,
item.activity_remark
)
}}</text>
<text v-else>{{
sprintf(
__("满¥%s可抵扣¥%s"),
item.activity_rule.requirement.buy.subtotal,
item.activity_rule.voucher_price
)
}}</text>
<text>{{
sprintf(
__("有效日期至:%s"),
item.activity_rule.voucher_end_date
)
}}</text>
</view>
<view class="m-coupon-price">
<view class="price-content-box" v-if="item.activity_type == 3">
<label>{{__('¥')}}</label>{{item.activity_rule.requirement.points.needed}}
<label>{{ __("¥") }}</label
>{{ item.activity_rule.requirement.points.needed }}
</view>
</view>
</view>
<view class="m-coupon-btn" @click="doReceive" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-id="(item.activity_id)" :data-point="(item.activity_rule.requirement.points.needed)" :data-store_id="(item.store_id)">
<block v-if="(item.if_gain && item.activity_type != 4 && item.activity_type != 3)">
<label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{ __('立即领取')}}</label>
<view
class="m-coupon-btn"
@click="doReceive"
:data-isreceive="item.if_gain ? '1' : '-1'"
:data-id="item.activity_id"
:data-point="item.activity_rule.requirement.points.needed"
:data-store_id="item.store_id"
>
<block
v-if="
item.if_gain &&
item.activity_type != 4 &&
item.activity_type != 3
"
>
<label
:class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']"
>{{ __("立即领取") }}</label
>
</block>
<block v-else-if="(!item.if_gain)">
<label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{__('已经领取')}}</label>
<label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{__('去消费')}}</label>
<block v-else-if="!item.if_gain">
<label
:class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']"
>{{ __("已经领取") }}</label
>
<label
:class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']"
>{{ __("去消费") }}</label
>
</block>
<!-- <label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{item.if_gain ? __('立即领取'):__('已经领取 去消费') }}</label> -->
</view>
<view class="m-coupon-btn" @click="doShare" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-voucher_price="(item.activity_rule.voucher_price)" :data-id="(item.activity_id)" :data-point="(item.activity_rule.requirement.points.needed)" :data-activity-name="(item.activity_name)" :data-store_id="(item.store_id)">
<block v-if="(item.if_gain && item.activity_type === 4)">
<label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{ __('立即分享')}}</label>
<view
class="m-coupon-btn"
@click="doShare"
:data-isreceive="item.if_gain ? '1' : '-1'"
:data-voucher_price="item.activity_rule.voucher_price"
:data-id="item.activity_id"
:data-point="item.activity_rule.requirement.points.needed"
:data-activity-name="item.activity_name"
:data-store_id="item.store_id"
>
<block v-if="item.if_gain && item.activity_type === 4">
<label
:class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']"
>{{ __("立即分享") }}</label
>
</block>
</view>
<view class="m-coupon-btn" @click="doBuy(item.item_id)" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-id="(item.activity_id)" :data-activity-name="(item.activity_name)" :data-store_id="(item.store_id)">
<block v-if="(item.if_gain && item.activity_type === 3)">
<label :class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']">{{ __('去购买')}}</label>
<view
class="m-coupon-btn"
@click="doBuy(item.item_id)"
:data-isreceive="item.if_gain ? '1' : '-1'"
:data-id="item.activity_id"
:data-activity-name="item.activity_name"
:data-store_id="item.store_id"
>
<block v-if="item.if_gain && item.activity_type === 3">
<label
:class="['btn-coupon', item.if_gain ? '' : 'btn-coupon-gray']"
>{{ __("去购买") }}</label
>
</block>
</view>
</view>
</block>
<view class="m-nullcontent" v-else>
<view class="m-nullpage-middle">
<label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip">
<text>{{__('亲~什么都没有')}}</text>
<text>{{__('没有可领的优惠券~')}}</text>
<text>{{ __("亲~什么都没有") }}</text>
<text>{{ __("没有可领的优惠券~") }}</text>
</view>
</view>
</view>
<view class="m-loading-box">
<block v-if="(ispage)">
<block v-if="ispage">
<view class="u-loadmore">
<label class="u-loading"></label>
<text class="u-loadmore-tips">{{__('正在加载')}}</text>
<text class="u-loadmore-tips">{{ __("正在加载") }}</text>
</view>
</block>
<block v-else>
<view class="u-loadmore u-loadmore-line">
<text class="u-loadmore-tips">{{__('没有更多数据啦!')}}</text>
<text class="u-loadmore-tips">{{ __("没有更多数据啦!") }}</text>
</view>
</block>
</view>
</scroll-view>
<view class="msk1" v-if="(!flags)" @click="outertouch">
<view class="msk1" v-if="!flags" @click="outertouch">
<view class="m-coupon-box" @click.stop="innertouch">
<view class="m-coupon-box-top">
</view>
<view class="m-coupon-box-top"> </view>
<view class="m-coupon-box-content">
<view class="m-coupon-box-title">
{{__('优惠券领取成功')}}
<view class="m-coupon-box-tip">{{__('点击右上角分享给好友')}}</view>
{{ __("优惠券领取成功") }}
<view class="m-coupon-box-tip">{{
__("点击右上角分享给好友")
}}</view>
</view>
<scroll-view scroll-y="true" class="m-coupon-box-list">
<view class="m-coupon-box-item" v-for="(item, index) in Coupons" :key="index">
<view
class="m-coupon-box-item"
v-for="(item, index) in Coupons"
:key="index"
>
<label>{{ item.activity_rule.voucher_price }}</label>
<text>{{ item.activity_name }}</text>
</view>
</scroll-view>
</view>
<view class="m-coupon-box-bottom">
</view>
<view class="m-coupon-box-bottom"> </view>
<view class="closeRPK" @click.stop="outertouch">
<image lazy-load style="width:50rpx;height:50rpx" src="/static/images/delete.png"></image>
<image
lazy-load
style="width: 50rpx; height: 50rpx"
src="/static/images/delete.png"
></image>
</view>
</view>
</view>
<!-- #ifdef APP-PLUS -->
<share-box-app :shareDataDefault="shareData" ref="shareBoxApp"></share-box-app>
<share-box-app
:shareDataDefault="shareData"
ref="shareBoxApp"
></share-box-app>
<!-- #endif -->
<!-- #ifdef H5 -->
@ -116,33 +215,42 @@
<!-- #endif -->
<!-- #ifndef APP-PLUS -->
<share-box-mp :shareDataDefault="shareData" @showCodeImg="showCodeImg" @saveImg="saveImg" ref="shareBoxMp"></share-box-mp>
<share-box-mp
:shareDataDefault="shareData"
@showCodeImg="showCodeImg"
@saveImg="saveImg"
ref="shareBoxMp"
></share-box-mp>
<!-- #endif -->
<payment-box :paymentDataDefault="paymentData" :order_id="order_id" ref="paymentBox" @onCancel="onCancel" @onPaid="onPaid" @onFail="onFail"></payment-box>
<payment-box
:paymentDataDefault="paymentData"
:order_id="order_id"
ref="paymentBox"
@onCancel="onCancel"
@onPaid="onPaid"
@onFail="onFail"
></payment-box>
</view>
</template>
<script>
import $ from "../../helpers/util";
import shareBoxMp from '../../components/share-box-mp.vue'
import shareBoxApp from '../../components/share-box-app.vue'
import shareBoxH5 from '../../components/share-box-h5.vue'
import paymentBox from '../../components/payment-box.vue'
import shareBoxMp from "../../components/share-box-mp.vue";
import shareBoxApp from "../../components/share-box-app.vue";
import shareBoxH5 from "../../components/share-box-h5.vue";
import paymentBox from "../../components/payment-box.vue";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data() {
return {
shareData: {
shareText: '东华汽车支持原生App、微信小程序邀请你一起体验',
shareTitle: '东华汽车支持原生App、微信小程序邀请你一起体验',
shareText: "东华汽车支持原生App、微信小程序邀请你一起体验",
shareTitle: "东华汽车支持原生App、微信小程序邀请你一起体验",
href: "https://www.suteshop.com",
image: '',
price: '',
image: "",
price: "",
},
tapindex: 0,
page: 1,
@ -166,7 +274,7 @@
time: "",
st: "",
et: "",
activity_type: 0
activity_type: 0,
};
},
@ -174,9 +282,17 @@
shareBoxMp,
shareBoxApp,
shareBoxH5,
paymentBox
paymentBox,
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onBackPress: function () {
// #ifdef APP-PLUS
if (this.$refs.shareBoxApp.showBoxView) {
@ -185,7 +301,6 @@
}
// #endif
// #ifdef H5
if (this.$refs.shareBoxH5.showBoxView) {
this.$refs.shareBoxH5.cancel();
@ -227,7 +342,7 @@
}
// #endif
//
var that = this
var that = this;
this.notice.removeNotification("RefreshProduct", that);
this.notice.removeNotification("GotoPayCheckout", that);
if (this.$refs.paymentBox.showBoxView) {
@ -236,52 +351,60 @@
},
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('领取优惠券')
title: this.__("领取优惠券"),
});
var that = this;
var n = new Date,
s = new Date((new Date).getTime() + 2 * 24 * 60 * 60 * 1000),
r = new Date;
var n = new Date(),
s = new Date(new Date().getTime() + 2 * 24 * 60 * 60 * 1000),
r = new Date();
var stdate = n.getFullYear() + "-" + (n.getMonth() + 1) + "-" + n.getDate(),
sdate = s.getFullYear() + "-" + (s.getMonth() + 1) + "-" + (s.getDate()),
eddate = (r.getFullYear() + 1) + "-" + (r.getMonth() + 1) + "-" + r.getDate();
sdate = s.getFullYear() + "-" + (s.getMonth() + 1) + "-" + s.getDate(),
eddate =
r.getFullYear() + 1 + "-" + (r.getMonth() + 1) + "-" + r.getDate();
this.setData({
options: options,
VoucherList: [],
stdate: stdate,
date: sdate,
eddate: eddate
})
eddate: eddate,
});
var time = n.getHours() + ':' + n.getMinutes();
var time = n.getHours() + ":" + n.getMinutes();
this.setData({
time: time,
st: time,
et: time
})
et: time,
});
$.isNull(this.userInfo) ? this.getUserInfo(function() {
that.getCouponlist()
},
options.uid) : that.getCouponlist()
$.isNull(this.userInfo)
? this.getUserInfo(function () {
that.getCouponlist();
}, options.uid)
: that.getCouponlist();
},
onReachBottom: function () {
this.scrollbottom()
this.scrollbottom();
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo', 'reloadUserResource']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
"reloadUserResource",
]),
doReceive: function (e) {
var that = this;
if (e.currentTarget.dataset.isreceive == -1) {
that.$.navigateTo({
url: "/pagesub/index/store?store_id=" + e.currentTarget.dataset.store_id
})
url:
"/pagesub/index/store?store_id=" + e.currentTarget.dataset.store_id,
});
return;
}
that.setData({
@ -295,16 +418,31 @@
doShare: function (e) {
const user_id = this.userInfo.user_id;
let that = this;
var $href = that.$.sprintf('%s/h5/pages/index/index?uid=%d&activity_id=%d', this.Config.WapSiteUrl, user_id, e.currentTarget.dataset.id);
var $href = that.$.sprintf(
"%s/h5/pages/index/index?uid=%d&activity_id=%d",
this.Config.WapSiteUrl,
user_id,
e.currentTarget.dataset.id
);
$href = that.$.sprintf('%s/h5/pages/index/index?uid=%d&activity_id=%d', that.Config.SiteUrl, user_id, e.currentTarget.dataset.id);
$href = that.$.sprintf(
"%s/h5/pages/index/index?uid=%d&activity_id=%d",
that.Config.SiteUrl,
user_id,
e.currentTarget.dataset.id
);
// hrefwebview
// #ifdef APP-PLUS
// #endif
// #ifdef MP-WEIXIN
$href = that.$.sprintf("%s/pages/index/index?uid=%d&activity_id=%d", that.Config.SiteUrl, user_id, e.currentTarget.dataset.id);
$href = that.$.sprintf(
"%s/pages/index/index?uid=%d&activity_id=%d",
that.Config.SiteUrl,
user_id,
e.currentTarget.dataset.id
);
// $href = that.$.sprintf("%s/community/community/detail?id=%d", this.Config.SiteUrl, this.story_id);
// #endif
@ -313,9 +451,9 @@
shareTitle: e.currentTarget.dataset.activityName,
shareText: e.currentTarget.dataset.activityName,
href: $href,
image: '',
image: "",
price: e.currentTarget.dataset.voucher_price,
}
},
});
// hrefwebview
@ -327,23 +465,23 @@
path: $href,
Path: $href,
MainTitle: e.currentTarget.dataset.activityName,
MainImg: '',
MainPrice: e.currentTarget.dataset.voucher_price
MainImg: "",
MainPrice: e.currentTarget.dataset.voucher_price,
},
method: "POST",
success: function (data, status, msg, code) {
if (status == 200) {
that.setData({
shareData: {
shareTitle: '优惠券',
shareText: '优惠券',
shareTitle: "优惠券",
shareText: "优惠券",
href: $href,
image: data.poster_url,
price: e.currentTarget.dataset.voucherPrice,
}
},
});
}
}
},
});
this.$refs.shareBoxApp.show();
// #endif
@ -366,34 +504,34 @@
this.$refs.shareBoxMp.show();
// #endif
}
},
outertouch: function () {
this.setData({
flag: true
})
flag: true,
});
},
innertouch: function () {
this.setData({
flag: false
})
flag: false,
});
},
freeget: function () {
this.setData({
tapindex: 0,
VoucherList: [],
activity_type: 0,
page: 1
}), this.getCouponlist()
page: 1,
}),
this.getCouponlist();
},
buyget: function () {
this.setData({
tapindex: 1,
activity_type: 3,
VoucherList: [],
page: 1
page: 1,
}),
this.getCouponlist()
this.getCouponlist();
},
doBuy: function (item_id) {
// this.$.gotopage('/pages/product/detail?pid=' + item_id)
@ -403,14 +541,14 @@
params.ifcart = 0; // cart_id
params.cart_id = item_id + "|1";
params.payment_type_id = that.StateCode.PAYMENT_TYPE_ONLINE;
params.delivery_type_id = 5;
params.delivery_type_id = 16;
params.delivery_time_id = 1;
params.invoice_type_id = 1;
params.order_invoice_title = "";
params.virtual_service_date = that.date;
params.virtual_service_time = that.date + ' ' + that.time;
params.distributor_id = uni.getStorageSync('store_id');
let source_item_id = uni.getStorageSync('source_item_id');
params.virtual_service_time = that.date + " " + that.time;
params.distributor_id = uni.getStorageSync("store_id");
let source_item_id = uni.getStorageSync("source_item_id");
params.source_item_id = source_item_id;
params.is_voucher = 1;
params.is_delivery = 0; //
@ -423,9 +561,18 @@
//
if (source_item_id) {
let source_item_id_row = JSON.parse(source_item_id);
for (let store_idx = 0; store_idx < data.items.length; store_idx++) {
for (let item_idx = 0; item_idx < data.items[store_idx].items.length; item_idx++) {
let order_item_id = data.items[store_idx].items[item_idx].item_id;
for (
let store_idx = 0;
store_idx < data.items.length;
store_idx++
) {
for (
let item_idx = 0;
item_idx < data.items[store_idx].items.length;
item_idx++
) {
let order_item_id =
data.items[store_idx].items[item_idx].item_id;
//
if (source_item_id) {
@ -434,7 +581,7 @@
if (tk == order_item_id) {
delete source_item_id_row[tk];
} else {
let time = parseInt(Date.parse(new Date()) / 100)
let time = parseInt(Date.parse(new Date()) / 100);
//
if (time - source_item_id_row[tk].t > 86400 * 30) {
delete source_item_id_row[tk];
@ -444,17 +591,18 @@
delete source_item_id_row[tk];
}
}
}
}
}
uni.setStorageSync('source_item_id', JSON.stringify(source_item_id_row));
uni.setStorageSync(
"source_item_id",
JSON.stringify(source_item_id_row)
);
}
that.setData({
order_id: data.order_id.join(','),
order_id: data.order_id.join(","),
});
if (data.gb_id) {
@ -462,61 +610,62 @@
}
that.setData({
'paymentData': {
paymentData: {
order_id: that.order_id,
orderSelMoneyAmount: data.orderSelMoneyAmount.toFixed(2),
user_money: data.user_money,
user_points: data.user_points,
user_recharge_card: that.userInfo.user_recharge_card,
user_sp: that.userInfo.user_sp
}
user_sp: that.userInfo.user_sp,
},
});
that.reloadUserResource(function(user_info) {
});
that.reloadUserResource(function (user_info) {});
that.gotopay();
//
} else {
if (data && data.hasOwnProperty('mobile_is_bind') || code == 77011) {
that.$.confirm(msg,
if (
(data && data.hasOwnProperty("mobile_is_bind")) ||
code == 77011
) {
that.$.confirm(
msg,
function (data) {
if (data.confirm) {
//
that.$.gopage("/member/member/bindphone");
}
},
true);
true
);
} else {
that.$.confirm(msg);
}
}
},
fail: function (data, status, msg, code) {
that.$.showToast({
title: msg
})
}
title: msg,
});
},
});
} else {
that.gotopay()
that.gotopay();
}
},
gotopay: function (e) {
setTimeout(() => {
this.$refs.paymentBox.show();
}, 400)
}, 400);
return true;
var param = {
order_id: this.order_id,
openid: this.userInfo.openId,
typ: 'json',
payment_channel_code: 'wx_native',
prepay_flag: 1
typ: "json",
payment_channel_code: "wx_native",
prepay_flag: 1,
};
var that = this;
@ -530,16 +679,16 @@
that.$.requestPayment({
timeStamp: data.timeStamp,
nonceStr: data.nonceStr,
"package": data.package,
package: data.package,
signType: data.signType,
paySign: data.paySign,
success: function (n) {
that.isTmplMsg && that.sendMessage(param.order_id, 2);
that.returnUrl(param.order_id)
that.returnUrl(param.order_id);
},
fail: function (n) {
that.$.gotopage("/member/order/detail?on=" + param.order_id);
that.isTmplMsg && that.sendMessage(param.order_id, 1)
that.isTmplMsg && that.sendMessage(param.order_id, 1);
},
complete: function (n) {
if (n.errMsg == "requestPayment:cancel") {
@ -547,14 +696,14 @@
that.isTmplMsg && that.sendMessage(param.order_id, 1);
}
}
})
},
});
} else {
that.$.alert(msg)
that.$.alert(msg);
}
},
fail: function(err) {}
fail: function (err) {},
});
},
onCancel: function (e) {},
@ -567,43 +716,45 @@
},
onFail: function (e) {
let that = this;
that.$.gotopage("/member/order/detail?on=" + this.order_id)
that.$.gotopage("/member/order/detail?on=" + this.order_id);
},
returnUrl: function (e) {
var that = this;
if (that.isFightGroup) {
that.$.gotopage("/activity/fightgroup/detail?gb_id=" + that.isFightGroup + "&on=" + e);
that.$.gotopage(
"/activity/fightgroup/detail?gb_id=" + that.isFightGroup + "&on=" + e
);
} else {
that.$.gotopage("/member/order/detail?on=" + e);
}
return
return;
if (!that.$.isNull(that.spinfo)) {
var n = JSON.parse(that.spinfo);
if (n.isFightGroup == 2) {
if (n.isOwner) {
that.$.gotopage("/activity/fightgroup/detail?on=" + e);
return
return;
}
that.$.navigateBack(1, function () {
this.notice.postNotificationName("RefreshFG")
this.notice.postNotificationName("RefreshFG");
});
return
return;
}
that.$.gotopage("/member/order/detail?on=" + e);
return
return;
}
that.$.gotopage("/member/order/detail?on=" + e);
return
return;
},
getCouponlist: function () {
var params = {
page: this.page,
rows: this.rows,
activity_type: this.activity_type,
store_id: this.options.store_id
store_id: this.options.store_id,
},
that = this;
$.request({
@ -616,47 +767,55 @@
if (200 == status) {
if (data.items.length > 0) {
for (let i = 0; data.items.length > i; i++) {
data.items[i].activity_endtime = new Date(data.items[i].activity_endtime).toLocaleString().replace(/:\d{1,2}$/, ' ');
data.items[i].activity_endtime = new Date(
data.items[i].activity_endtime
)
.toLocaleString()
.replace(/:\d{1,2}$/, " ");
// this.$.dateFormatter(data.items[i].activity_endtime);
}
if (data.page >= data.total) {
that.setData({
VoucherList: that.VoucherList.concat(data.items),
flag: false,
ispage: false
})
ispage: false,
});
} else {
that.setData({
VoucherList: that.VoucherList.concat(data.items),
flag: true,
ispage: true
})
ispage: true,
});
}
} else {
that.setData({
flag: false,
ispage: false
})
ispage: false,
});
}
}
},
fail: function (data) {
that.setData({
flag: false,
ispage: false
})
}
ispage: false,
});
},
});
},
getUserReceiveCoupon: function () {
var point = this.needed_point,
that = this;
if (point > 0) {
$.confirm(that.sprintf(that.__('确定消耗 %d 兑换优惠券?'), point), function(e) {
$.confirm(
that.sprintf(that.__("确定消耗 %d 兑换优惠券?"), point),
function (e) {
if (e.confirm) {
that.addVoucher();
}
}, true);
},
true
);
} else {
that.addVoucher();
}
@ -666,7 +825,7 @@
var params = {
activity_id: this.Id,
Code: this.Code,
user_is_new: 0
user_is_new: 0,
};
$.request({
url: this.Config.URL.user.voucher_add,
@ -676,13 +835,10 @@
that.$.confirm(that.__("领取成功!去消费"), function (a) {
if (a.confirm) {
that.$.navigateTo({
url: "/pagesub/index/store?store_id=" + that.store_id
})
}
url: "/pagesub/index/store?store_id=" + that.store_id,
});
}
});
// that.getCouponlist()
} else {
@ -705,15 +861,15 @@
// #ifdef MP-WEIXIN
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
menus: ["shareAppMessage", "shareTimeline"],
});
// #endif
return {
title: this.shopInfo.store_name,
desc: this.shopInfo.VendorInfo,
path: "/activity/coupon/list?uid=" + this.userInfo.user_id
}
path: "/activity/coupon/list?uid=" + this.userInfo.user_id,
};
},
/**
@ -723,16 +879,16 @@
return {
title: this.shopInfo.store_name,
query: {
uid: this.userInfo.user_id
}
}
uid: this.userInfo.user_id,
},
};
},
receivenowWeixin: function (e) {
// //console.log("", e.currentTarget.dataset.cardid);
var that = this,
params = {
activity_id: e.currentTarget.dataset.cardid,
openid: this.userInfo.openId
openid: this.userInfo.openId,
};
//
/*$.xsr($.makeUrl(userapi.receiveWeixinCoupons, n), function (n) {
@ -762,18 +918,19 @@
if (this.flag) {
var e = this;
e.setData({
flag: false
}), clearTimeout(t);
flag: false,
}),
clearTimeout(t);
var t = setTimeout(function () {
e.setData({
page: parseInt(e.page) + 1
}), e.getCouponlist()
page: parseInt(e.page) + 1,
}),
e.getCouponlist();
}, 500);
}
},
500)
}
}
}
}
},
};
</script>
@ -810,7 +967,7 @@
right: 0;
height: 6rpx;
border-bottom: 6rpx solid $default-skin-bg;
color: #CCCCCC;
color: #cccccc;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-webkit-transform: scaleY(0.5);
@ -829,21 +986,23 @@
}
.m-coupon-list {
margin-top: 36rpx
margin-top: 36rpx;
}
.m-coupon-item {
width: 700rpx;
height: 192rpx;
margin: 10rpx auto;
background: url(https://static.lancerdt.com/xcxfile/appicon/Coupon_V2.png) no-repeat;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/Coupon_V2.png)
no-repeat;
background-size: contain;
box-sizing: border-box;
padding: 12rpx;
}
.m-coupon-item.off {
background: url(https://static.lancerdt.com/xcxfile/appicon/Coupon_off.png) no-repeat;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/Coupon_off.png)
no-repeat;
background-size: contain;
}
@ -930,6 +1089,5 @@
left: 50%;
margin-left: -30rpx;
bottom: -80rpx;
}
</style>

View File

@ -1,34 +1,79 @@
<template>
<view class="page">
<scroll-view class="m-scrollBox" scroll-y="true">
<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">
<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>
<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"
>
<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="item-left-top">{{__('¥')}}<label style="font-size:64rpx">{{item.voucher_price}}</label></view>
<view class="item-left-bottom">{{sprintf(__('满(%s)可用'), item.voucher_subtotal)}}</view>
<view class="item-left-top"
>{{ __("¥")
}}<label style="font-size: 64rpx">{{
item.voucher_price
}}</label></view
>
<view class="item-left-bottom">{{
sprintf(__("满(%s)可用"), item.voucher_subtotal)
}}</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-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>
<label class="item-time"
>{{ item.voucher_start_date }}~{{
item.voucher_end_date
}}</label
>
</view>
<view class="item-desc"></view>
</view>
<image lazy-load src="/static/images/checked.png" class="image-checked" v-if="(item.user_voucher_id == id_checked)" />
<image
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
class="u-btn u-btn-default"
style="margin-top: 30rpx"
@click="uesnothing"
>
{{ __("不使用优惠券") }}
</button>
</block>
<view class="m-nullcontent" v-else>
<view class="m-nullpage-middle">
<label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip">
<text>{{__('亲~什么都没有')}}</text>
<text>{{__('赶快去领券中心吧')}}</text>
<text>{{ __("亲~什么都没有") }}</text>
<text>{{ __("赶快去领券中心吧") }}</text>
</view>
</view>
</view>
@ -38,11 +83,7 @@
<script>
import $ from "../../helpers/util";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data() {
@ -52,13 +93,21 @@
amount: 0,
UserCoupon: [],
id_checked: 0,
IsUseCoupon: 1
IsUseCoupon: 1,
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('使用优惠券')
title: this.__("使用优惠券"),
});
var voucher_items = $.parseJSON(options.val);
@ -67,15 +116,20 @@
id_checked: options.user_voucher_id,
amount: options.amount,
options: options,
})
});
if (options.ifcart) {
this.getselect()
this.getselect();
}
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
getselect: function () {
var that = this;
@ -86,16 +140,16 @@
success: function (data, status, msg, code) {
var isSelect = false;
if (status == 200) {
if (data['items'].length > 0) {
if (data["items"].length > 0) {
that.setData({
CartSelect: data['items']
})
CartSelect: data["items"],
});
}
} else {
//that.$.confirm(msg);
}
}
})
},
});
},
changecoupon: function (e) {
var that = this;
@ -103,7 +157,7 @@
this.setData({
IsUseCoupon: 0,
id_checked: parseInt(e.currentTarget.dataset.id)
id_checked: parseInt(e.currentTarget.dataset.id),
});
that.goback();
@ -113,7 +167,7 @@
this.setData({
IsUseCoupon: 0,
id_checked: 0
id_checked: 0,
});
this.goback();
@ -124,11 +178,11 @@
var params = that.options;
params.user_voucher_id = that.id_checked;
that.notice.postNotificationName("RefreshCoupon", params)
})
}
}
}
that.notice.postNotificationName("RefreshCoupon", params);
});
},
},
};
</script>

File diff suppressed because it is too large Load Diff

View File

@ -1,88 +1,183 @@
<template>
<view class="page">
<scroll-view scroll-y="true" @scrolltolower="fightPage" style="position: absolute;height:100%;width:100%;">
<scroll-view
scroll-y="true"
@scrolltolower="fightPage"
style="position: absolute; height: 100%; width: 100%"
>
<view class="m-product-list">
<navigator :url="'/pages/product/detail?pid=' + (GbInfo.activity_rule.item_id) + '&gb_id=' + (GbInfo.gb_id)" class="m-product-item m-product-GP">
<navigator
:url="
'/pages/product/detail?pid=' +
GbInfo.activity_rule.item_id +
'&gb_id=' +
GbInfo.gb_id
"
class="m-product-item m-product-GP"
>
<view class="m-product-img">
<image lazy-load :src="(GbInfo.activity_rule.product_image)" />
<image lazy-load :src="GbInfo.activity_rule.product_image" />
</view>
<view class="m-product-info">
<view class="m-product-name">
<label>{{ GbInfo.activity_rule.item.product_item_name }}</label>
<view class='groupNumber' style='margin-top:18rpx'>{{__('拼团省')}} {{__('¥')}}{{number_format(parseFloat((GbInfo.activity_rule.item_unit_price - GbInfo.activity_rule.group_sale_price).toFixed(12)), 2)}}</view>
<view class="groupNumber" style="margin-top: 18rpx"
>{{ __("拼团省") }} {{ __("¥")
}}{{
number_format(
parseFloat(
(
GbInfo.activity_rule.item_unit_price -
GbInfo.activity_rule.group_sale_price
).toFixed(12)
),
2
)
}}</view
>
</view>
<view style='position:absolute;bottom:20rpx;'>
<view class="groupNumber" style='margin-bottom:12rpx'>
<view style="position: absolute; bottom: 20rpx">
<view class="groupNumber" style="margin-bottom: 12rpx">
<!-- <label class="iconfont icon-icon"></label> -->
<text style="margin-right: 6rpx;">{{GbInfo.gb_quantity}}</text> {{__('人团')}}
<text style="margin-right: 6rpx">{{ GbInfo.gb_quantity }}</text>
{{ __("人团") }}
</view>
<view class="m-product-price">
<label>{{__('¥')}}</label>{{number_format(GbInfo.activity_rule.group_sale_price, 2)}}
<label class="u-del-price" style="margin-left: 6rpx;">{{__('¥')}}{{number_format(GbInfo.activity_rule.item_unit_price, 2)}}</label>
<label>{{ __("¥") }}</label
>{{ number_format(GbInfo.activity_rule.group_sale_price, 2) }}
<label class="u-del-price" style="margin-left: 6rpx"
>{{ __("¥")
}}{{
number_format(GbInfo.activity_rule.item_unit_price, 2)
}}</label
>
</view>
</view>
<view class="isSucces">
<image lazy-load class='simg' v-if="(1==GbInfo.gb_enable)" src='https://static.lancerdt.com/xcxfile/appicon/groupbooking/success.png'></image>
<image lazy-load class='simg' v-if="(0==GbInfo.gb_enable)" src='https://static.lancerdt.com/xcxfile/appicon/groupbooking/failure.png'></image>
<image
lazy-load
class="simg"
v-if="1 == GbInfo.gb_enable"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/groupbooking/success.png"
></image>
<image
lazy-load
class="simg"
v-if="0 == GbInfo.gb_enable"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/groupbooking/failure.png"
></image>
</view>
</view>
</navigator>
<view class="headPhoto">
<view class="personPhoto" v-for="(item, i) in GroupUsers" :key="i">
<image lazy-load class="photo" :src="(item.user_avatar)"></image>
<image lazy-load class="photo-icon" src="https://static.lancerdt.com/xcxfile/appicon/groupbooking/group_leader.png" v-if="(GbInfo.user_id == item.user_id)"></image>
<image lazy-load class="photo" :src="item.user_avatar"></image>
<image
lazy-load
class="photo-icon"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/groupbooking/group_leader.png"
v-if="GbInfo.user_id == item.user_id"
></image>
</view>
<view class="personPhoto" v-if="(GbInfo.gb_quantity>8?(8-GbInfo.gb_amount_quantity):(GbInfo.gb_quantity-GbInfo.gb_amount_quantity))">
<image lazy-load class="photo-bg" src='https://static.lancerdt.com/xcxfile/appicon/groupbooking/waiting.png'></image>
<view
class="personPhoto"
v-if="
GbInfo.gb_quantity > 8
? 8 - GbInfo.gb_amount_quantity
: GbInfo.gb_quantity - GbInfo.gb_amount_quantity
"
>
<image
lazy-load
class="photo-bg"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/groupbooking/waiting.png"
></image>
</view>
</view>
<view class="surplus" v-if="(GbInfo.gb_enable==2 && show)">
<view>{{sprintf(__('仅剩 %s 名额,'), GbInfo.gb_quantity-GbInfo.gb_amount_quantity)}}</view>
<label style='min-width:160rpx;'>
<day-countdown :timer="(GbInfo.gb_endtime)" :Type="2"></day-countdown>
<view class="surplus" v-if="GbInfo.gb_enable == 2 && show">
<view>{{
sprintf(
__("仅剩 %s 名额,"),
GbInfo.gb_quantity - GbInfo.gb_amount_quantity
)
}}</view>
<label style="min-width: 160rpx">
<day-countdown :timer="GbInfo.gb_endtime" :Type="2"></day-countdown>
</label>
<label>{{__('后结束')}}</label>
<label>{{ __("后结束") }}</label>
</view>
<block v-if="(show)">
<view class="m-btn-box" v-if="(GbInfo.gb_enable==2 && !groupIsEnd)">
<view class="u-btn u-btn-default" @click="shareBox">{{__('邀请好友参团')}}</view>
<block v-if="show">
<view class="m-btn-box" v-if="GbInfo.gb_enable == 2 && !groupIsEnd">
<view class="u-btn u-btn-default" @click="shareBox">{{
__("邀请好友参团")
}}</view>
</view>
<navigator url="/activity/fightgroup/list" class="m-btn-box" v-if="(GbInfo.gb_enable==0)">
<view class="u-btn u-btn-default">{{__('点击再开一团')}}</view>
<navigator
url="/activity/fightgroup/list"
class="m-btn-box"
v-if="GbInfo.gb_enable == 0"
>
<view class="u-btn u-btn-default">{{ __("点击再开一团") }}</view>
</navigator>
<navigator url="/activity/fightgroup/list" class="m-btn-box" v-if="(GbInfo.gb_enable==1)">
<view class="u-btn u-btn-default">{{__('点击再开一团')}}</view>
<navigator
url="/activity/fightgroup/list"
class="m-btn-box"
v-if="GbInfo.gb_enable == 1"
>
<view class="u-btn u-btn-default">{{ __("点击再开一团") }}</view>
</navigator>
<view class="m-btn-box" v-if="(GbInfo.gb_enable==2 && !ispaysuccess)">
<view class="u-btn u-btn-default" @click="immediatelyOffered">{{__('参与活动')}}</view>
<view class="m-btn-box" v-if="GbInfo.gb_enable == 2 && !ispaysuccess">
<view class="u-btn u-btn-default" @click="immediatelyOffered">{{
__("参与活动")
}}</view>
</view>
</block>
</view>
<view class='rule'>
<view class='rule-header'>
{{__('拼团规则')}}
<view class="rule">
<view class="rule-header">
{{ __("拼团规则") }}
</view>
<view class='rule-content'>
<view class="rule-content">
{{ GbInfo.activity_rule.activity_intro }}
</view>
</view>
<view class="link">
<navigator url="/pages/index/index" open-type="switchTab" class="nav">
<image lazy-load class="nav-img" src="https://static.lancerdt.com/xcxfile/appicon/images/index.png"></image>
<text>{{__('首页逛逛')}}</text>
<image
lazy-load
class="nav-img"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/index.png"
></image>
<text>{{ __("首页逛逛") }}</text>
</navigator>
<navigator url="/pages/category/category" open-type="switchTab" class="nav">
<image lazy-load class="nav-img" src="https://static.lancerdt.com/xcxfile/appicon/images/allproduct.png"></image>
<text>{{__('全部商品')}}</text>
<navigator
url="/pages/category/category"
open-type="switchTab"
class="nav"
>
<image
lazy-load
class="nav-img"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/allproduct.png"
></image>
<text>{{ __("全部商品") }}</text>
</navigator>
<navigator url="/activity/coupon/list" class="nav">
<image lazy-load class="nav-img" src="https://static.lancerdt.com/xcxfile/appicon/images/coupon.png"></image>
<text>{{__('领券中心')}}</text>
<image
lazy-load
class="nav-img"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/coupon.png"
></image>
<text>{{ __("领券中心") }}</text>
</navigator>
<navigator url="/pages/index/member" open-type="switchTab" class="nav">
<image lazy-load class="nav-img" src="https://static.lancerdt.com/xcxfile/appicon/images/center.png"></image>
<text>{{__('个人中心')}}</text>
<image
lazy-load
class="nav-img"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/center.png"
></image>
<text>{{ __("个人中心") }}</text>
</navigator>
</view>
</scroll-view>
@ -90,23 +185,29 @@
<!-- #ifdef H5 -->
<share-box-h5 :shareDataDefault="shareData" ref="shareBoxH5"></share-box-h5>
<!-- #endif -->
<share-box-mp :shareDataDefault="shareData" @cancelShare="cancelShare" @showCodeImg="showCodeImg" @shareQRCode="shareQRCode" @saveImg="saveImg" ref="shareBoxMp"></share-box-mp>
<share-box-app :shareDataDefault="shareData" ref="shareBoxApp"></share-box-app>
<share-box-mp
:shareDataDefault="shareData"
@cancelShare="cancelShare"
@showCodeImg="showCodeImg"
@shareQRCode="shareQRCode"
@saveImg="saveImg"
ref="shareBoxMp"
></share-box-mp>
<share-box-app
:shareDataDefault="shareData"
ref="shareBoxApp"
></share-box-app>
</view>
</template>
<script>
import $ from "../../helpers/util";
import dayCountdown from "../../components/day-countdown.vue";
import shareBoxMp from '../../components/share-box-mp.vue'
import shareBoxApp from '../../components/share-box-app.vue'
import shareBoxMp from "../../components/share-box-mp.vue";
import shareBoxApp from "../../components/share-box-app.vue";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
@ -120,7 +221,7 @@
order_id: "",
isfg: false,
GbInfo: {
activity_rule: {}
activity_rule: {},
},
GroupUsers: [],
isPage: true,
@ -134,54 +235,60 @@
show: true,
groupIsEnd: false,
PageQRCodeInfo: {
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
IsJT: false,
},
shareData: {
shareText: '澜驰商城系统支持原生App、微信小程序邀请你一起体验',
shareTitle: '澜驰商城系统支持原生App、微信小程序邀请你一起体验',
shareText: "澜驰商城系统支持原生App、微信小程序邀请你一起体验",
shareTitle: "澜驰商城系统支持原生App、微信小程序邀请你一起体验",
href: "https://www.suteshop.com",
image: ''
image: "",
},
shareText: '澜驰商城系统支持原生App、微信小程序邀请你一起体验',
shareTitle: '澜驰商城系统支持原生App、微信小程序邀请你一起体验',
shareText: "澜驰商城系统支持原生App、微信小程序邀请你一起体验",
shareTitle: "澜驰商城系统支持原生App、微信小程序邀请你一起体验",
href: "https://www.suteshop.com",
image: ''
}
image: "",
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
components: {
dayCountdown,
shareBoxMp,
shareBoxApp
shareBoxApp,
},
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('拼团详情')
title: this.__("拼团详情"),
});
var that = this;
that.setData({
options: options
})
options: options,
});
this.forceUserInfo(function (user) {
that.setData({
user_is_new: that.userInfo.user_is_new,
CouponAmount: that.userInfo.CouponAmount
CouponAmount: that.userInfo.CouponAmount,
});
that.InitData(options);
});
this.notice.addNotification("RefreshFG", that.RefreshFG, that)
this.notice.addNotification("RefreshFG", that.RefreshFG, that);
},
onBackPress() {
// #ifdef APP-PLUS
@ -200,7 +307,7 @@
},
onUnload() {
//
var that = this
var that = this;
this.notice.removeNotification("RefreshFG", that);
// #ifdef APP-PLUS
@ -217,28 +324,57 @@
},
onShareAppMessage: function () {
var e = this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity,
t = e > 0 ? this.$.sprintf(this.__("【还差 %d 人】 %s 邀请您参加拼团!立省 %.2f 元!"), (this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity), this.userInfo.user_nickname, (this.GbInfo.activity_rule.group_sale_price - this.GbInfo.activity_rule.item_unit_price).toFixed(2)) : this.$.sprintf(this.__("%s 拼团成功!他已节省 %.2f 元!赶快来拼团吧!"), this.userInfo.user_nickname, (this.GbInfo.activity_rule.group_sale_price - this.GbInfo.activity_rule.item_unit_price).toFixed(2));
t =
e > 0
? this.$.sprintf(
this.__("【还差 %d 人】 %s 邀请您参加拼团!立省 %.2f 元!"),
this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity,
this.userInfo.user_nickname,
(
this.GbInfo.activity_rule.group_sale_price -
this.GbInfo.activity_rule.item_unit_price
).toFixed(2)
)
: this.$.sprintf(
this.__("%s 拼团成功!他已节省 %.2f 元!赶快来拼团吧!"),
this.userInfo.user_nickname,
(
this.GbInfo.activity_rule.group_sale_price -
this.GbInfo.activity_rule.item_unit_price
).toFixed(2)
);
return {
title: t,
desc: this.GbInfo.activity_rule.product_item_name,
path: "/activity/fightgroup/detail?gb_id=" + this.GbInfo.gb_id + "&pid=" + this.GbInfo.activity_rule.item_id +
"&uid=" + this.userInfo.user_id
}
path:
"/activity/fightgroup/detail?gb_id=" +
this.GbInfo.gb_id +
"&pid=" +
this.GbInfo.activity_rule.item_id +
"&uid=" +
this.userInfo.user_id,
};
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
InitData: function (options) {
var that = this;
that.setData({
Photo: that.userInfo.user_avatar,
UserName: that.userInfo.user_nickname,
isfg: options.isfg || false
isfg: options.isfg || false,
});
var params = {
gb_id: options.gb_id || "",
order_id: options.on || ""
order_id: options.on || "",
};
//todo
@ -248,28 +384,32 @@
success: function (data, status, msg, code) {
if (status == 200) {
data.gbh_rows.forEach(function (e) {
e.user_id == that.userInfo.user_id && (that.setData({
userInfoId: e.user_id
}));
e.user_id == that.userInfo.user_id &&
that.setData({
userInfoId: e.user_id,
});
//
if (e.user_id == that.userInfo.user_id) {
e.user_id == that.userInfo.user_id && that.setData({
e.user_id == that.userInfo.user_id &&
that.setData({
ispaysuccess: e.gbh_flag,
IsOwner: e.user_id == data.user_id,
order_id: e.order_id
})
order_id: e.order_id,
});
}
});
var $now = (new Date).getTime();
var $end = (new Date(data.gb_endtime.replace(/-/g, "/"))).getTime();
var $activityEnd = (new Date(data.activity_rule.activity_endtime.replace(/-/g, "/"))).getTime();
var $now = new Date().getTime();
var $end = new Date(data.gb_endtime.replace(/-/g, "/")).getTime();
var $activityEnd = new Date(
data.activity_rule.activity_endtime.replace(/-/g, "/")
).getTime();
data.endTime = $end - $now;
if (data.endTime <= 0) {
that.setData({
groupIsEnd: true,
show: false
show: false,
});
}
if ($activityEnd - $now <= 0) {
@ -281,18 +421,17 @@
GbInfo: data,
GroupUsers: data.gbh_rows,
});
}
}
},
});
},
RefreshFG: function () {
var that = this,
t = {
gb_id: that.GbInfo.gb_id
gb_id: that.GbInfo.gb_id,
};
that.InitData(t)
that.InitData(t);
},
immediatelyOffered: function () {
@ -313,45 +452,53 @@
speStr: JSON.stringify(this.splistStr).replace("[", "").replace("]", "").replace(/\,/g, " ").replace(/\"/g, "")
};*/
$.navigateTo({
url: "/pages/checkout/checkout?ifcart=0&cart_id=" + this.GbInfo.activity_rule.item_id + "|" + 1 + "&activity_id=" +
this.GbInfo.activity_id + "&gb_id=" + this.GbInfo.gb_id
})
url:
"/pages/checkout/checkout?ifcart=0&cart_id=" +
this.GbInfo.activity_rule.item_id +
"|" +
1 +
"&activity_id=" +
this.GbInfo.activity_id +
"&gb_id=" +
this.GbInfo.gb_id,
});
},
doReceive: function () {
this.cancel(), this.userReceiveCoupon()
this.cancel(), this.userReceiveCoupon();
},
cancel: function () {
this.setData({
isCancel: false
})
isCancel: false,
});
},
cancelsuccess: function () {
this.setData({
isCancelSuccess: true
})
isCancelSuccess: true,
});
},
innertouch: function () {},
userReceiveCoupon: function () {
var e = {
CouponIds: "",
user_is_new: this.user_is_new
user_is_new: this.user_is_new,
};
//console.log(e);
var t = this;
$.xsr($.makeUrl(userapi.UserReceiveCoupon, e), function (e) {
e.Code == 0 ? t.setData({
e.Code == 0
? t.setData({
isCancelSuccess: false,
Coupons: e.Info
}) : $.alert(e.Msg)
Coupons: e.Info,
})
: $.alert(e.Msg);
});
},
fightPage: function (e) {
if (this.isPage) {
this.setData({
isPage: false
isPage: false,
});
var t = this;
clearTimeout(n);
@ -359,7 +506,7 @@
var e = {
gb_id: t.GbInfo.gb_id,
EventId: t.GbInfo.MarketingEventId,
page: parseInt(t.page) + 1
page: parseInt(t.page) + 1,
};
/*$.xsr($.makeUrl(fgapi.GetGroupMarketingEventUsersByPage, e), function (n) {
if (n.Info.length > 0)
@ -376,17 +523,20 @@
t.setData({isPage: false})
}
})*/
},
500)
}, 500);
}
},
shareQRCode: function (e) {
return;
var that = this,
params = {
Path: "/activity/fightgroup/detail?gb_id=" + this.GbInfo.gb_id + "&pid=" + this.GbInfo.activity_rule.item_id +
"&uid=" + this.userInfo.user_id,
Path:
"/activity/fightgroup/detail?gb_id=" +
this.GbInfo.gb_id +
"&pid=" +
this.GbInfo.activity_rule.item_id +
"&uid=" +
this.userInfo.user_id,
MainImg: this.GbInfo.ProductPic,
MainTitle: this.GbInfo.activity_rule.product_item_name,
item_id: this.GbInfo.activity_rule.item_id,
@ -396,10 +546,9 @@
GroupPersonAmout: this.GbInfo.gb_quantity,
CutPrice: "",
user_id: this.userInfoId,
MarketingEventTime: this.GbInfo.EndTimeStr
MarketingEventTime: this.GbInfo.EndTimeStr,
};
// -
$.request({
url: this.Config.URL.wx.getMiniAppQRCodeUnlimit,
@ -410,33 +559,78 @@
Path: data.url,
IsShare: true,
IsShareBox: false,
IsJT: true
}
})
}
IsJT: true,
},
});
},
});
},
shareBox: function () {
let that = this;
let $href = $.sprintf('%s/h5/activity/fightgroup/detail?gb_id=%d&pid=%d&uid=%d', that.Config.SiteUrl, this.GbInfo.gb_id, this.GbInfo.activity_rule.item_id, this.userInfo.user_id);
let $href = $.sprintf(
"%s/h5/activity/fightgroup/detail?gb_id=%d&pid=%d&uid=%d",
that.Config.SiteUrl,
this.GbInfo.gb_id,
this.GbInfo.activity_rule.item_id,
this.userInfo.user_id
);
// hrefwebview
// #ifdef APP-PLUS
$href = $.sprintf('%s/tmpl/activity/group_detail.html?gb_id=%d&pid=%d&FX=%d', this.Config.WapSiteUrl, this.GbInfo.gb_id, this.GbInfo.activity_rule.item_id, this.userInfo.user_id);
$href = $.sprintf('%s/tmpl/activity/group_detail.html?gb_id=%d&pid=%d&FX=%d', this.Config.WapSiteUrl, this.GbInfo.gb_id, this.GbInfo.activity_rule.item_id, this.userInfo.user_id);
$href = $.sprintf(
"%s/tmpl/activity/group_detail.html?gb_id=%d&pid=%d&FX=%d",
this.Config.WapSiteUrl,
this.GbInfo.gb_id,
this.GbInfo.activity_rule.item_id,
this.userInfo.user_id
);
$href = $.sprintf(
"%s/tmpl/activity/group_detail.html?gb_id=%d&pid=%d&FX=%d",
this.Config.WapSiteUrl,
this.GbInfo.gb_id,
this.GbInfo.activity_rule.item_id,
this.userInfo.user_id
);
$href = $.sprintf('%s/h5/activity/fightgroup/detail?gb_id=%d&pid=%d&uid=%d', that.Config.SiteUrl, this.GbInfo.gb_id, this.GbInfo.activity_rule.item_id, this.userInfo.user_id);
$href = $.sprintf(
"%s/h5/activity/fightgroup/detail?gb_id=%d&pid=%d&uid=%d",
that.Config.SiteUrl,
this.GbInfo.gb_id,
this.GbInfo.activity_rule.item_id,
this.userInfo.user_id
);
// #endif
// #ifdef MP-WEIXIN
$href = "/activity/fightgroup/detail?gb_id=" + this.GbInfo.gb_id + "&pid=" + this.GbInfo.activity_rule.item_id + "&uid=" + this.userInfo.user_id;
$href =
"/activity/fightgroup/detail?gb_id=" +
this.GbInfo.gb_id +
"&pid=" +
this.GbInfo.activity_rule.item_id +
"&uid=" +
this.userInfo.user_id;
// #endif
var e = this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity,
t = e > 0 ? "【还差" + (this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity) + "人】" + this.userInfo.user_nickname +
"邀请您参加拼团!立省" + (this.GbInfo.activity_rule.group_sale_price - this.GbInfo.activity_rule.item_unit_price).toFixed(2) +
"元!" : this.userInfo.user_nickname + "拼团成功!他已节省" + (this.GbInfo.activity_rule.group_sale_price - this.GbInfo.activity_rule
.item_unit_price).toFixed(2) + "元!赶快来拼团吧!";
t =
e > 0
? "【还差" +
(this.GbInfo.gb_quantity - this.GbInfo.gb_amount_quantity) +
"人】" +
this.userInfo.user_nickname +
"邀请您参加拼团!立省" +
(
this.GbInfo.activity_rule.group_sale_price -
this.GbInfo.activity_rule.item_unit_price
).toFixed(2) +
"元!"
: this.userInfo.user_nickname +
"拼团成功!他已节省" +
(
this.GbInfo.activity_rule.group_sale_price -
this.GbInfo.activity_rule.item_unit_price
).toFixed(2) +
"元!赶快来拼团吧!";
this.setData({
shareData: {
@ -444,11 +638,10 @@
shareText: t,
href: $href,
image: this.GbInfo.activity_rule.product_image,
price: this.GbInfo.activity_rule.group_sale_price
}
price: this.GbInfo.activity_rule.group_sale_price,
},
});
// #ifdef APP-PLUS
this.$refs.shareBoxApp.show();
// #endif
@ -457,7 +650,6 @@
this.$refs.shareBoxMp.show();
// #endif
// #ifdef H5
if (that.$.ifUniApp()) {
this.$refs.shareBoxH5.show();
@ -473,9 +665,9 @@
Path: "",
IsShare: true,
IsShareBox: true,
IsJT: false
}
})
IsJT: false,
},
});
},
cancelShare: function () {
this.setData({
@ -483,9 +675,9 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
})
IsJT: false,
},
});
},
saveImg: function () {
var e = this;
@ -493,7 +685,8 @@
$.downloadFile({
url: this.PageQRCodeInfo.Path,
success: function (t) {
$.hideLoading(), $.saveImageToPhotosAlbum({
$.hideLoading(),
$.saveImageToPhotosAlbum({
filePath: t.tempFilePath,
success: function () {
e.setData({
@ -501,27 +694,28 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
}), $.alert("保存图片成功!")
IsJT: false,
},
}),
$.alert("保存图片成功!");
},
fail: function (e) {
$.hideLoading()
}
})
$.hideLoading();
},
});
},
fail: function (e) {
$.hideLoading()
}
})
$.hideLoading();
},
});
},
showCodeImg: function () {
$.previewImage({
current: this.PageQRCodeInfo.Path,
urls: [this.PageQRCodeInfo.Path]
})
}
}
urls: [this.PageQRCodeInfo.Path],
});
},
},
};
</script>
@ -537,7 +731,7 @@
.groupNumber .icon-icon {
font-size: 24rpx;
display: inline
display: inline;
}
/* .groupNumber text{margin: 0 2rpx} */
@ -557,7 +751,7 @@
height: 20rpx;
background-color: #d5d5d5;
border-radius: 20rpx;
overflow: hidden
overflow: hidden;
}
.u-progressBar-cont {
@ -589,13 +783,13 @@
.m-product-GP .m-product-price {
line-height: 28rpx;
font-size: 40rpx
font-size: 40rpx;
}
.m-product-GP .m-product-info {
height: 270rpx;
width: 480rpx;
position: relative
position: relative;
}
.u-del-price {
@ -628,7 +822,7 @@
.icon-box-title {
font-weight: 400;
color: #DB384B;
color: #db384b;
}
.icon-box-desc {
@ -683,7 +877,7 @@
left: 0;
background-color: #fff;
text-align: center;
z-index: 3
z-index: 3;
}
.m-footer-btn-main {
@ -712,7 +906,7 @@
font-size: 24rpx;
color: #888;
padding-right: 20rpx;
color: $default-skin-bg
color: $default-skin-bg;
}
.u-fg-label label {
@ -742,11 +936,11 @@
} */
.m-product-list {
background: #fff;
overflow: hidden
overflow: hidden;
}
.m-product-name {
height: 116rpx
height: 116rpx;
}
.headPhoto {
@ -754,12 +948,12 @@
display: flex;
width: 90%;
margin: 20rpx auto;
justify-content: center
justify-content: center;
}
.personPhoto {
position: relative;
margin: 0.2%
margin: 0.2%;
}
.photo-icon {
@ -767,7 +961,7 @@
width: 52rpx;
height: 36rpx;
top: -6rpx;
left: -10rpx
left: -10rpx;
}
.photo {
@ -777,7 +971,7 @@
border: 4rpx solid sandybrown;
margin-top: 8rpx;
margin-left: 2rpx;
margin-right: 2rpx
margin-right: 2rpx;
}
.photo-bg {
@ -785,15 +979,14 @@
height: 76rpx;
border-radius: 50%;
margin-top: 8rpx;
}
.m-product-info::before {
border: none
border: none;
}
.time text {
color: #DB384c
color: #db384c;
}
.surplus {
@ -801,14 +994,14 @@
justify-content: center;
font-size: 30rpx;
margin: 20rpx 0;
align-items: center
align-items: center;
}
.link {
display: flex;
justify-content: space-around;
background: #fff;
margin-top: 20rpx
margin-top: 20rpx;
}
.nav {
@ -817,18 +1010,18 @@
flex-flow: column;
justify-content: center;
align-items: center;
height: 200rpx
height: 200rpx;
}
.nav-img {
width: 80rpx;
height: 80rpx
height: 80rpx;
}
.nav text {
margin-top: 20rpx;
font-size: 24rpx;
color: #333
color: #333;
}
.isSucces {
@ -839,23 +1032,23 @@
.isSucces image {
width: 150rpx;
height: 150rpx
height: 150rpx;
}
.rule {
padding: 20rpx;
background: #fff;
margin-top: 20rpx
margin-top: 20rpx;
}
.rule-header {
font-size: 32rpx;
color: #333;
margin-bottom: 20rpx
margin-bottom: 20rpx;
}
.rule-content {
font-size: 24rpx;
color: #777777
color: #777777;
}
</style>

View File

@ -3,20 +3,42 @@
<view class="search">
<slot></slot>
<template>
<input maxlength="20" type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入兑换码')" v-model="code" />
<input
maxlength="20"
type="text"
value=""
confirm-type="search"
@confirm="searchStart()"
:placeholder="__('请输入兑换码')"
v-model="code"
/>
</template>
<!-- <image src="https://static.lancerdt.com/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>
<!-- <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-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"
><label class="u-label">{{
activityInfo.activity_title
}}</label></view
>
</view>
</view>
<view class="m-product-list">
<view v-for="(item, ii) in activityInfo.items" :key="ii" class="m-product-item">
<view
v-for="(item, ii) in activityInfo.items"
:key="ii"
class="m-product-item"
>
<view class="m-product-img">
<image :src="item.product_image" mode="aspectFill" />
</view>
@ -27,55 +49,72 @@
<view class="m-product-price">
<block v-if="item.item_unit_price">
<label>{{ __('¥') }}</label>
<label>{{ __("¥") }}</label>
{{ item.item_unit_price }}
</block>
<text style="float: right;margin-right: 60rpx;">x{{ item.item_quantity }}</text>
<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>
<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>
<text class="u-loadmore-tips">{{ __("没有更多数据啦!") }}</text>
</view>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from 'vuex';
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
return {
code: '',
code: "",
activityInfo: {},
isData: false,
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('礼包兑换')
title: this.__("礼包兑换"),
});
var that = this;
this.forceUserInfo(function (user) {
console.log(user);
that.setData({
serial_code: user.serial_code
serial_code: user.serial_code,
});
});
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
searchStart(e) {
var that = this;
if (!this.code) {
@ -83,54 +122,58 @@
return;
}
var params = {
code: this.code
code: this.code,
};
that.$.request({
url: this.Config.URL.store.getActivityCodeList,
method: 'post',
method: "post",
data: params,
success: function (data, status, msg, code) {
if (status == 200) {
that.setData({
activityInfo: data,
isData: true,
})
});
} else {
that.$.alert(msg);
that.setData({
activityInfo: {},
isData: false,
})
}
});
}
},
});
},
submitInfo: function () {
var that = this;
var pat = []
var items = this.activityInfo.activity_rule.quantity
var pat = [];
var items = this.activityInfo.activity_rule.quantity;
for (var i in items) {
if (items[i].quantity > 0) {
var t = items[i].item_id + '|' + items[i].quantity
pat.push(t)
var t = items[i].item_id + "|" + items[i].quantity;
pat.push(t);
}
}
if (pat.length <= 0) {
that.$.alert("亲~请选择商品!");
return
return;
}
var str = pat.join(',');
var str = pat.join(",");
that.$.navigateTo({
url: "/pages/checkout/checkout?ifcart=0&cart_id=" + str + "&activity_id=" + that.activityInfo.activity_id + "&code=" + that.code
})
url:
"/pages/checkout/checkout?ifcart=0&cart_id=" +
str +
"&activity_id=" +
that.activityInfo.activity_id +
"&code=" +
that.code,
});
},
}
}
},
};
</script>
@ -189,7 +232,6 @@
.m-product-name {
height: 120rpx;
}
.m-product-name uni-label {

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +1,64 @@
<template>
<view>
<block v-if="(isPage)">
<block v-if="isPage">
<view class="m-draw-box" v-if="outdated">
<view class="m-title">
<view class="m-title-main">{{ DrawInfo.activity_title }}</view>
<view class="m-title-sub">{{__('幸运大抽奖')}}</view>
<view class="m-title-time">{{DrawInfo.activity_starttime}} ~ {{DrawInfo.activity_endtime}}</view>
<view class="m-title-sub">{{ __("幸运大抽奖") }}</view>
<view class="m-title-time"
>{{ DrawInfo.activity_starttime }} ~
{{ DrawInfo.activity_endtime }}</view
>
</view>
<view class="m-table">
<view v-for="(item, i) in PrizeList" :key="i" :class="['m-table-td', (i+1)==index?'select-table':'']">
<view
v-for="(item, i) in PrizeList"
:key="i"
:class="['m-table-td', i + 1 == index ? 'select-table' : '']"
>
<image :src="item.awards_image"></image>
<view class="price-text">{{ item.awards_name }}</view>
</view>
<view class="m-table-btn" @tap="LuckDraw">
<image src="https://static.lancerdt.com/xcxfile/appicon/activity/click.png"></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/activity/click.png"
></image>
</view>
</view>
<view class="m-tip">{{__('您还有')}}<label>{{RemainingCount}}{{__('次')}}</label>{{__('抽奖机会,快来试试手气')}}</view>
<view class="m-tip"
>{{ __("您还有") }}<label>{{ RemainingCount }}{{ __("次") }}</label
>{{ __("抽奖机会,快来试试手气") }}</view
>
<view class="m-model-outline">
<view class="m-model yellow">{{__('中奖名单')}}</view>
<view class="m-model yellow">{{ __("中奖名单") }}</view>
</view>
<block v-if="DrawInfo.winner_rows.items.length > 0">
<swiper autoplay="true" interval="4000" duration="2000" class="m-luckylist" vertical="false" circular="true">
<swiper
autoplay="true"
interval="4000"
duration="2000"
class="m-luckylist"
vertical="false"
circular="true"
>
<swiper-item v-for="(t_item, i) in rows" :key="i">
<block v-for="(item, j) in DrawInfo.winner_rows.items" :key="j">
<view v-if="j>=(i*3) && j<=((i+1)*3)" class="m-luckylist-item">
{{item.user_nickname}}{{__('抽中')}}
<view
v-if="j >= i * 3 && j <= (i + 1) * 3"
class="m-luckylist-item"
>
{{ item.user_nickname }}{{ __("抽中") }}
<label>{{ item.awards_name }}</label>
</view>
</block>
</swiper-item>
</swiper>
</block>
<view class="m-winner-nothing" v-else>{{__('暂无中奖名单数据')}}</view>
<view class="m-winner-nothing" v-else>{{
__("暂无中奖名单数据")
}}</view>
<view class="m-model-outline">
<view class="m-model blue">{{__('活动规则')}}</view>
<view class="m-model blue">{{ __("活动规则") }}</view>
</view>
<view class="m-rule">
<wxParse :content="DrawInfo.activity_rule.activity_intro + ''" />
@ -45,8 +69,8 @@
<view class="m-nullpage-middle">
<label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip">
<text>{{__('亲~您来晚了哦')}}</text>
<text>{{__('该抽奖活动已经失效啦')}}~</text>
<text>{{ __("亲~您来晚了哦") }}</text>
<text>{{ __("该抽奖活动已经失效啦") }}~</text>
</view>
</view>
</view>
@ -58,41 +82,68 @@
<view class="iconfont icon-iconcanjiahuodong01"></view>
</navigator>
<view class="red-dot"></view>
<navigator url="/pages/index/index" open-type="switchTab" class="u-go-home">
<view class="iconfont icon-shouyeshouye" style="font-size:50rpx;"></view>
<navigator
url="/pages/index/index"
open-type="switchTab"
class="u-go-home"
>
<view
class="iconfont icon-shouyeshouye"
style="font-size: 50rpx"
></view>
</navigator>
</view>
<view class="mskprize" v-if="clickmsk" @tap="cancelprize">
<view class="m-result-box bounceIn animated" catchtap="nothing" v-if="PrizeResult.index >= 0">
<view
class="m-result-box bounceIn animated"
catchtap="nothing"
v-if="PrizeResult.index >= 0"
>
<view class="m-result-cancel" @tap="cancelprize"></view>
<block v-if="PrizeResult.awards_enable">
<view class="m-success-text">{{__('恭喜你获得了')}}</view>
<view class="m-success-text">{{ __("恭喜你获得了") }}</view>
</block>
<block v-if="!PrizeResult.awards_enable">
<view class="m-success-text">{{__('未中奖')}}</view>
<view class="m-success-text">{{ __("未中奖") }}</view>
</block>
<image :src="PrizeList[PrizeResult.index].awards_image" class="m-success-img" />
<image
:src="PrizeList[PrizeResult.index].awards_image"
class="m-success-img"
/>
<view class="m-success-name">{{ PrizeResult.prize }}</view>
<view class="m-success-name" v-if="false">{{PrizeResult.PrizeSendingMessage}}</view>
<view class="m-success-name" v-if="false">{{
PrizeResult.PrizeSendingMessage
}}</view>
<view class="m-success-bottom">
<navigator url="/member/member/prize?category=1" class="succes-checkprice">{{__('查看奖品')}}</navigator>
<view class="succes-continue" @tap="cancelprize">{{__('继续抽奖')}}</view>
<navigator
url="/member/member/prize?category=1"
class="succes-checkprice"
>{{ __("查看奖品") }}</navigator
>
<view class="succes-continue" @tap="cancelprize">{{
__("继续抽奖")
}}</view>
</view>
</view>
<view class="m-result-box wobble animated" catchtap="nothing" v-else>
<view class="m-result-cancel" @tap="cancelprize"></view>
<view class="m-failimg-bg">
<image src="https://static.lancerdt.com/xcxfile/appicon/nothing.png" class="m-fail-img" />
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nothing.png"
class="m-fail-img"
/>
</view>
<view class="m-fail-name">{{ DrawInfo.LosingDesc }}</view>
<view class="m-fail-button" @tap="cancelprize">{{__('继续抽奖')}}</view>
<view class="m-fail-button" @tap="cancelprize">{{
__("继续抽奖")
}}</view>
</view>
</view>
<view class="mskshare" v-if="clickshare" @tap="cancelshare">
<!-- <image src="../../assets/share.png" class="share-oncemore" mode="widthFix"></image> -->
<view class="share-text">
<view>{{__('你今天已经没有抽奖机会了')}}</view>
<view>{{ __("你今天已经没有抽奖机会了") }}</view>
</view>
</view>
</view>
@ -102,12 +153,9 @@
import $ from "../../helpers/util";
import dayCountdown from "../../components/day-countdown.vue";
import wxParse from '@/components/u-parse/u-parse.vue'
import wxParse from "@/components/u-parse/u-parse.vue";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
@ -137,68 +185,90 @@
isPage: false,
outdated: false,
activity_id: false
}
activity_id: false,
};
},
components: {
dayCountdown,
wxParse
wxParse,
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
let that = this;
uni.setNavigationBarTitle({
title: this.__('幸运大抽奖')
title: this.__("幸运大抽奖"),
});
that.setData({
activity_id: options.activity_id || 0,
options: options
options: options,
});
$.isNull(this.userInfo) ? this.getUserInfo(function() {
$.isNull(this.userInfo)
? this.getUserInfo(function () {
that.setData({
user_is_new: this.userInfo.user_is_new,
CouponAmount: this.userInfo.CouponAmount
}), that.initData()
},
options.uid) : that.initData()
CouponAmount: this.userInfo.CouponAmount,
}),
that.initData();
}, options.uid)
: that.initData();
},
onShareAppMessage: function () {
var e = this;
return this.setData({
return (
this.setData({
clickshare: false,
click: false
}), {
click: false,
}),
{
title: e.__("我已经中奖啦,你也赶紧来抽奖吧~"),
desc: e.__("幸运大抽奖,快来参与吧~"),
path: "/activity/luckydraw/detail?uid=" + this.userInfo.user_id,
success: function (t) {
e.sharefriend()
}
e.sharefriend();
},
}
);
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
sharefriend: function () {
var e = {
Category: 1,
activity_id: this.activity_id
activity_id: this.activity_id,
},
t = this;
$.request($.makeUrl(activityapi.ShareLuckyDraw, e), function (e) {
e.Code == 0 && e.Info != null && (t.setData({
RemainingCount: t.RemainingCount
}), t.initData())
})
e.Code == 0 &&
e.Info != null &&
(t.setData({
RemainingCount: t.RemainingCount,
}),
t.initData());
});
},
initData: function () {
// 21
var params = {
activity_type: 1,
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY,
activity_id: this.activity_id
activity_id: this.activity_id,
},
that = this;
//
@ -207,7 +277,7 @@
data: params,
success: function (data, status, msg, code) {
that.setData({
isPage: true
isPage: true,
});
if (status == 200) {
that.setData({
@ -215,33 +285,34 @@
RemainingCount: data.remaining_count,
outdated: data.outdated,
PrizeList: data.items,
activity_id: data.activity_id
activity_id: data.activity_id,
});
if (that.DrawInfo.winner_rows.items.length > 0) {
var n = that.DrawInfo.winner_rows.items.length % 5 > 0 ? parseInt(that.DrawInfo.winner_rows.items.length / 5 + 1) : that.DrawInfo.winner_rows.items.length / 5,
var n =
that.DrawInfo.winner_rows.items.length % 5 > 0
? parseInt(that.DrawInfo.winner_rows.items.length / 5 + 1)
: that.DrawInfo.winner_rows.items.length / 5,
r = [];
for (var i = 0; i < n; i++) {
r.push(i);
}
that.setData({
rows: r
})
rows: r,
});
}
$.isNull(data.activity_rule.activity_intro);
} else {
that.setData({
outdated: false
})
}
outdated: false,
});
}
},
});
},
getPosition: function () {
var params = {
activity_id: this.activity_id
activity_id: this.activity_id,
};
var that = this;
@ -251,148 +322,162 @@
data: params,
success: function (data, status, msg, code) {
if (status == 200) {
if (typeof data !== 'string') {
(that.setData({
if (typeof data !== "string") {
that.setData({
prize: data.index,
PrizeResult: data
}), that.roll());
PrizeResult: data,
}),
that.roll();
} else {
that.setData({
prize: -1,
times: 0,
click: false
click: false,
});
that.roll()
that.roll();
}
} else {
that.setData({
prize: -1,
times: 0,
click: false
click: false,
});
that.roll()
}
that.roll();
}
},
});
},
LuckDraw: function () {
this.click || (this.setData({
this.click ||
(this.setData({
speed: 100,
click: true
}), this.RemainingCount > 0 ? this.getPosition() : this.RemainingCount == 0 && this.setData({
clickshare: true
}))
click: true,
}),
this.RemainingCount > 0
? this.getPosition()
: this.RemainingCount == 0 &&
this.setData({
clickshare: true,
}));
},
luckRoll: function () {
var e = this.index,
t = this.count;
e += 1, e > t - 1 && (e = 0), this.setData({
index: e
})
(e += 1),
e > t - 1 && (e = 0),
this.setData({
index: e,
});
},
roll: function () {
this.setData({
times: this.times + 1
}), this.luckRoll();
times: this.times + 1,
}),
this.luckRoll();
if (this.times > this.cycle + 10 && this.prize == this.index) {
if (this.prize == this.index) {
clearTimeout(this.timer), this.setData({
clearTimeout(this.timer),
this.setData({
prize: -1,
times: 0,
click: false
}), this.initData();
click: false,
}),
this.initData();
var e = this;
setTimeout(function () {
e.setData({
clickmsk: true
})
},
800)
clickmsk: true,
});
}, 800);
}
} else {
//
if (this.prize == -1) {
clearTimeout(this.timer), this.setData({
clearTimeout(this.timer),
this.setData({
prize: -1,
times: 0,
click: false
}), this.initData();
click: false,
}),
this.initData();
var e = this;
setTimeout(function () {
e.setData({
clickmsk: true
})
},
800)
clickmsk: true,
});
}, 800);
} else {
if (this.times < this.cycle) {
this.setData({
speed: this.speed - 10
speed: this.speed - 10,
});
} else if (this.times == this.cycle) {
var t = this.prize + 1;
this.setData({
prize: t
})
prize: t,
});
} else {
this.times > this.cycle + 10 && (this.prize == 0 && this.index == 7 || this.prize == this.index + 1) ? this.setData({
speed: this.speed + 110
}) : this.setData({
speed: this.speed + 20
this.times > this.cycle + 10 &&
((this.prize == 0 && this.index == 7) ||
this.prize == this.index + 1)
? this.setData({
speed: this.speed + 110,
})
: this.setData({
speed: this.speed + 20,
});
}
this.speed < 40 && this.setData({
speed: this.speed + 40
this.speed < 40 &&
this.setData({
speed: this.speed + 40,
});
var e = this;
this.timer = setTimeout(function () {
e.roll()
},
e.speed)
e.roll();
}, e.speed);
}
}
return false
return false;
},
cancelprize: function () {
this.setData({
clickmsk: false
})
clickmsk: false,
});
},
cancelshare: function () {
this.setData({
clickshare: false
}), this.setData({
clickshare: false,
}),
this.setData({
prize: -1,
times: 0,
click: false
})
click: false,
});
},
nothing: function () {},
doReceive: function () {
this.cancel(), this.userReceiveCoupon()
this.cancel(), this.userReceiveCoupon();
},
cancel: function () {
this.setData({
isCancel: false
})
isCancel: false,
});
},
cancelsuccess: function () {
this.setData({
isCancelSuccess: true
})
isCancelSuccess: true,
});
},
innertouch: function () {},
userReceiveCoupon: function () {
var params = {
activity_id: this.activity_id,
activity_type: 1,
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY,
};
var that = this;
@ -403,15 +488,15 @@
if (status == 200) {
that.setData({
isCancelSuccess: false,
Coupons: data.items
Coupons: data.items,
});
} else {
$.alert(msg);
}
}
},
});
}
}
},
},
};
</script>
@ -434,7 +519,8 @@
.m-draw-box {
height: 1940rpx;
background: url(https://static.lancerdt.com/xcxfile/appicon/luckdraw_bg.png) center no-repeat;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/luckdraw_bg.png)
center no-repeat;
background-size: cover;
padding: 42rpx;
text-align: center;
@ -561,19 +647,19 @@
position: absolute;
left: 174rpx;
top: 174rpx;
background: #FFDC44;
background: #ffdc44;
padding: 50rpx;
box-sizing: border-box;
border: 10rpx;
border-style: solid;
border-top-color: #FFF068;
border-bottom-color: #FFC61F;
border-left-color: #FFC61F;
border-right-color: #FFDC44;
border-top-color: #fff068;
border-bottom-color: #ffc61f;
border-left-color: #ffc61f;
border-right-color: #ffdc44;
}
.select-table {
background-color: #FFAC33;
background-color: #ffac33;
}
/**抽奖盒子**/
@ -583,7 +669,7 @@
}
.m-tip label {
color: #FFDC44;
color: #ffdc44;
}
.m-model-outline {
@ -604,7 +690,7 @@
}
.yellow {
background: #FFAC33;
background: #ffac33;
}
.m-luckylist {
@ -623,7 +709,7 @@
}
.m-luckylist-item label {
color: #FFDC44;
color: #ffdc44;
}
.m-winner-nothing {
@ -633,7 +719,7 @@
}
.blue {
background: #43C4E9;
background: #43c4e9;
}
.m-rule {
@ -647,7 +733,7 @@
position: fixed;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.70);
background-color: rgba(0, 0, 0, 0.7);
z-index: 5;
top: 0;
left: 0;
@ -662,7 +748,7 @@
position: fixed;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.70);
background-color: rgba(0, 0, 0, 0.7);
z-index: 5;
top: 0;
left: 0;
@ -679,13 +765,13 @@
line-height: 80rpx;
color: white;
text-align: center;
margin-top: 45%
margin-top: 45%;
}
.m-result-box {
width: 500rpx;
height: 600rpx;
background: #DB384B;
background: #db384b;
position: relative;
border-radius: 20rpx;
}
@ -711,7 +797,7 @@
}
.m-success-name {
color: #FFAC33;
color: #ffac33;
font-size: 26rpx;
line-height: 50rpx;
}
@ -729,7 +815,7 @@
.succes-continue {
height: 65rpx;
width: 200rpx;
background: #FFCA3A;
background: #ffca3a;
display: inline-block;
border-radius: 5rpx;
}
@ -748,7 +834,7 @@
width: 350rpx;
height: 350rpx;
border-radius: 175rpx;
background-color: rgba(255, 255, 255, 0.10);
background-color: rgba(255, 255, 255, 0.1);
margin: 40rpx auto 20rpx;
padding: 50rpx;
box-sizing: border-box;
@ -758,7 +844,7 @@
width: 100%;
height: 100%;
border-radius: 150rpx;
background-color: rgba(255, 255, 255, 0.20);
background-color: rgba(255, 255, 255, 0.2);
}
.m-fail-name {
@ -772,7 +858,7 @@
line-height: 65rpx;
position: absolute;
bottom: 40rpx;
background: #FFCA3A;
background: #ffca3a;
border-radius: 5rpx;
font-size: 28rpx;
left: 100rpx;

View File

@ -1,50 +1,110 @@
<template>
<view>
<block v-if="(isPage)">
<view v-if="(outdated)" class="box">
<block v-if="isPage">
<view v-if="outdated" class="box">
<view class="remainingcount">您还有{{ RemainingCount }}次机会</view>
<view class="egg-box">
<view class="hammer" animation="(animationData)"></view>
<view class="egg-top">
<view class="egg (move?'move1':'')" @click="knock">
<image lazy-load :src="(ImgPath) + 'goldenEggs' + (selectImg==1?'-1':'') + '.png'" mode="widthFix" :data-num="1"></image>
<image
lazy-load
:src="
ImgPath + 'goldenEggs' + (selectImg == 1 ? '-1' : '') + '.png'
"
mode="widthFix"
:data-num="1"
></image>
</view>
<view class="egg (move?'move2':'')" @click="knock">
<image lazy-load :src="(ImgPath) + 'goldenEggs' + (selectImg==2?'-1':'') + '.png'" mode="widthFix" :data-num="2"></image>
<image
lazy-load
:src="
ImgPath + 'goldenEggs' + (selectImg == 2 ? '-1' : '') + '.png'
"
mode="widthFix"
:data-num="2"
></image>
</view>
</view>
<view class="egg-bottom">
<view class="egg (move?'move3':'')" @click="knock">
<image lazy-load :src="(ImgPath) + 'goldenEggs' + (selectImg==3?'-1':'') + '.png'" mode="widthFix" :data-num="3"></image>
<image
lazy-load
:src="
ImgPath + 'goldenEggs' + (selectImg == 3 ? '-1' : '') + '.png'
"
mode="widthFix"
:data-num="3"
></image>
</view>
<view class="egg (move?'move4':'')" @click="knock">
<image lazy-load :src="(ImgPath) + 'goldenEggs' + (selectImg==4?'-1':'') + '.png'" mode="widthFix" :data-num="4"></image>
<image
lazy-load
:src="
ImgPath + 'goldenEggs' + (selectImg == 4 ? '-1' : '') + '.png'
"
mode="widthFix"
:data-num="4"
></image>
</view>
<view class="egg (move?'move5':'')" @click="knock">
<image lazy-load :src="(ImgPath) + 'goldenEggs' + (selectImg==5?'-1':'') + '.png'" mode="widthFix" :data-num="5"></image>
<image
lazy-load
:src="
ImgPath + 'goldenEggs' + (selectImg == 5 ? '-1' : '') + '.png'
"
mode="widthFix"
:data-num="5"
></image>
</view>
</view>
</view>
<view class="winner-box">
<view class="winner-title">本期中奖名单</view>
<image lazy-load :src="(ImgPath) + 'tip-1.png'" class="winner-img" mode="widthFix"></image>
<image
lazy-load
:src="ImgPath + 'tip-1.png'"
class="winner-img"
mode="widthFix"
></image>
<view class="winner-list">
<block v-if="(DrawInfo.winner_rows.items.length >0)">
<swiper autoplay="true" interval="4000" duration="2000" vertical="false" circular="true" class="m-luckylist">
<block v-if="DrawInfo.winner_rows.items.length > 0">
<swiper
autoplay="true"
interval="4000"
duration="2000"
vertical="false"
circular="true"
class="m-luckylist"
>
<swiper-item v-for="(items, i) in rows" :key="i">
<block v-for="(item, j) in DrawInfo.winner_rows.items" :key="j">
<view v-if="(j>=(i*5) && j<=((i+1)*5))" class="m-winner-item ">{{item.user_nickname}}砸中
<block
v-for="(item, j) in DrawInfo.winner_rows.items"
:key="j"
>
<view
v-if="j >= i * 5 && j <= (i + 1) * 5"
class="m-winner-item"
>{{ item.user_nickname }}砸中
<label class="prize-name">{{ item.awards_name }}</label>
</view>
</block>
</swiper-item>
</swiper>
</block>
<view class="m-winner-item" style="background: #FEE39F;" v-else>暂无中奖名单数据</view>
<view class="m-winner-item" style="background: #fee39f" v-else
>暂无中奖名单数据</view
>
</view>
</view>
<view class="rule-box">
<image lazy-load :src="(ImgPath) + 'tip-2.png'" class="winner-img" mode="widthFix"></image>
<image
lazy-load
:src="ImgPath + 'tip-2.png'"
class="winner-img"
mode="widthFix"
></image>
<wxParse :content="DrawInfo.activity_rule.activity_intro + ''" />
</view>
</view>
@ -62,46 +122,68 @@
</view>
</block>
<view class="u-tap-btn">
<navigator url="/member/member/prize?category=2" class="u-go-home">
<view class="iconfont icon-iconcanjiahuodong01"></view>
</navigator>
<view class="red-dot"></view>
<navigator url="/pages/index/index" open-type="switchTab" class="u-go-home">
<view class="iconfont icon-shouyeshouye" style="font-size:50rpx;"></view>
<navigator
url="/pages/index/index"
open-type="switchTab"
class="u-go-home"
>
<view
class="iconfont icon-shouyeshouye"
style="font-size: 50rpx"
></view>
</navigator>
</view>
<view class="mskprize" v-if="(clickmsk)" @click="cancelprize">
<view class="m-result-box bounceIn animated" @click.stop="nothing" v-if="(PrizeResult.index >= 0)">
<view class="mskprize" v-if="clickmsk" @click="cancelprize">
<view
class="m-result-box bounceIn animated"
@click.stop="nothing"
v-if="PrizeResult.index >= 0"
>
<view class="m-result-cancel" @click="cancelprize"></view>
<block v-if="PrizeResult.awards_enable">
<view class="m-success-text">{{__('恭喜你获得了')}}</view>
<view class="m-success-text">{{ __("恭喜你获得了") }}</view>
</block>
<block v-if="!PrizeResult.awards_enable">
<view class="m-success-text">{{__('未中奖')}}</view>
<view class="m-success-text">{{ __("未中奖") }}</view>
</block>
<image lazy-load :src="(PrizeResult.awards_image)" class="m-success-img" />
<image
lazy-load
:src="PrizeResult.awards_image"
class="m-success-img"
/>
<view class="m-success-name">{{ PrizeResult.prize }}</view>
<view class="m-success-name">{{ PrizeResult.awards_title }}</view>
<view class="m-success-bottom">
<navigator url="/member/member/prize?category=2" class="succes-checkprice">查看奖品</navigator>
<navigator
url="/member/member/prize?category=2"
class="succes-checkprice"
>查看奖品</navigator
>
<view class="succes-continue" @click="cancelprize">继续抽奖</view>
</view>
</view>
<view class="m-result-box wobble animated" @click.stop="nothing" v-else>
<view class="m-result-cancel" @click="cancelprize"></view>
<view class="m-failimg-bg">
<image lazy-load src="https://static.lancerdt.com/xcxfile/appicon/img/nothing.png" class="m-fail-img" />
<image
lazy-load
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/nothing.png"
class="m-fail-img"
/>
</view>
<view class="m-fail-name">{{ DrawInfo.LosingDesc }}</view>
<view class="m-fail-button" @click="cancelprize">继续抽奖</view>
</view>
</view>
<view class="mskshare" v-if="(clickshare)" @click="cancelshare">
<!-- <image lazy-load src="https://static.lancerdt.com/xcxfile/appicon/images/share.png" class="share-oncemore" mode="widthFix"></image> -->
<view class="mskshare" v-if="clickshare" @click="cancelshare">
<!-- <image lazy-load src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/share.png" class="share-oncemore" mode="widthFix"></image> -->
<view class="share-text">
<view>你今天已经没有砸蛋机会了</view>
</view>
@ -114,12 +196,9 @@
import dayCountdown from "../../components/day-countdown.vue";
import wxParse from '@/components/u-parse/u-parse.vue'
import wxParse from "@/components/u-parse/u-parse.vue";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
@ -144,103 +223,146 @@
animationData: {},
selectImg: 0,
move: false,
activity_id: 0
}
activity_id: 0,
};
},
components: {
dayCountdown,
wxParse
wxParse,
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('砸金蛋')
title: this.__("砸金蛋"),
});
var that = this;
that.setData({
activity_id: options.activity_id || 0,
options: options
options: options,
});
that.getPlantformInfo(function (plantformInfo) {
$.isNull(that.userInfo) ? that.getUserInfo(function() {
$.isNull(that.userInfo)
? that.getUserInfo(function () {
that.setData({
user_is_new: that.userInfo.user_is_new,
CouponAmount: that.userInfo.CouponAmount
}), that.initData()
},
options.uid) : that.initData()
CouponAmount: that.userInfo.CouponAmount,
}),
that.initData();
}, options.uid)
: that.initData();
});
},
onShow: function () {
var e = $.createAnimation({
duration: 500,
timingFunction: "ease"
timingFunction: "ease",
});
(this.animation = e),
this.animation.top(0).left(0).step(),
this.setData({
animationData: this.animation.export(),
});
this.animation = e, this.animation.top(0).left(0).step(), this.setData({
animationData: this.animation.export()
})
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
knock: function (e) {
if (!this.click) {
this.setData({
click: true
click: true,
});
if (this.RemainingCount > 0) {
this.getPosition();
} else if (this.RemainingCount == 0) {
this.setData({
clickshare: true
clickshare: true,
});
return
return;
}
this.animation.top(e.changedTouches[0].pageY - 375).left(e.changedTouches[0].pageX - 75).step(), this.setData({
animationData: this.animation.export()
}), setTimeout(function() {
this.animation.translateX(-25).rotate(-120).step(), this.setData({
animationData: this.animation.export()
})
}.bind(this), 500), setTimeout(function() {
this.animation.translateX(25).rotate(60).step(), this.setData({
animationData: this.animation.export()
})
}.bind(this), 1e3), setTimeout(function() {
this.animation
.top(e.changedTouches[0].pageY - 375)
.left(e.changedTouches[0].pageX - 75)
.step(),
this.setData({
selectImg: e.target.dataset.num
})
}.bind(this), 1200)
animationData: this.animation.export(),
}),
setTimeout(
function () {
this.animation.translateX(-25).rotate(-120).step(),
this.setData({
animationData: this.animation.export(),
});
}.bind(this),
500
),
setTimeout(
function () {
this.animation.translateX(25).rotate(60).step(),
this.setData({
animationData: this.animation.export(),
});
}.bind(this),
1e3
),
setTimeout(
function () {
this.setData({
selectImg: e.target.dataset.num,
});
}.bind(this),
1200
);
}
},
onShareAppMessage: function () {
var e = this;
return this.setData({
return (
this.setData({
clickshare: false,
click: false
}), {
click: false,
}),
{
title: "我已经中奖啦,你也赶紧来砸金蛋吧~",
desc: "幸运砸金蛋,快来参与吧~",
path: "/activity/smashgoldeneggs/smashgoldeneggs?uid=" + this.userInfo.user_id,
path:
"/activity/smashgoldeneggs/smashgoldeneggs?uid=" +
this.userInfo.user_id,
success: function (t) {
e.sharefriend()
}
e.sharefriend();
},
}
);
},
sharefriend: function () {
var e = {
Category: 2
Category: 2,
},
t = this;
$.xsr1($.makeUrl(activityapi.ShareLuckyDraw, e), function (e) {
e.Code == 0 && e.Info != null && (t.setData({
RemainingCount: t.RemainingCount
}), t.initData())
})
e.Code == 0 &&
e.Info != null &&
(t.setData({
RemainingCount: t.RemainingCount,
}),
t.initData());
});
},
initData: function () {
@ -249,7 +371,7 @@
var params = {
activity_type: 2,
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY,
activity_id: this.activity_id
activity_id: this.activity_id,
};
//
@ -259,7 +381,7 @@
success: function (data, status, msg, code) {
that.setData({
isPage: true,
ImgPath: that.plantformInfo.AppIconPath
ImgPath: that.plantformInfo.AppIconPath,
});
//console.log(that.plantformInfo.AppIconPath);
if (status == 200) {
@ -267,42 +389,42 @@
DrawInfo: data,
RemainingCount: data.remaining_count,
outdated: data.outdated,
activity_id: data.activity_id
activity_id: data.activity_id,
});
if (that.DrawInfo.winner_rows.items.length > 0) {
var n = that.DrawInfo.winner_rows.items.length % 5 > 0 ? parseInt(that.DrawInfo.winner_rows.items.length /
5 + 1) : that.DrawInfo.winner_rows.items.length / 5,
var n =
that.DrawInfo.winner_rows.items.length % 5 > 0
? parseInt(that.DrawInfo.winner_rows.items.length / 5 + 1)
: that.DrawInfo.winner_rows.items.length / 5,
r = [];
for (var i = 0; i < n; i++) {
r.push(i);
}
that.setData({
rows: r
})
rows: r,
});
}
if ($.isNull(data.activity_rule.activity_intro)) {
this.drawdesc = data.activity_rule.activity_intro.replace(/\\/g, "").replace(/<img/g,
"<img style=\"display:none;\"");
this.drawdesc = data.activity_rule.activity_intro
.replace(/\\/g, "")
.replace(/<img/g, '<img style="display:none;"');
this.setData({
drawdesc: drawdesc
})
drawdesc: drawdesc,
});
}
} else {
that.setData({
outdated: false
})
}
outdated: false,
});
}
},
});
},
getPosition: function () {
var params = {
activity_id: this.activity_id
activity_id: this.activity_id,
},
t = this;
//
@ -312,72 +434,73 @@
success: function (data, status, msg, code) {
if (status == 200) {
t.setData({
PrizeResult: data
})
PrizeResult: data,
});
setTimeout(function () {
t.setData({
clickmsk: true
clickmsk: true,
});
},
2e3);
}, 2e3);
} else {
($.alert("抽奖失败"), t.setData({
click: false
}));
}
}
$.alert("抽奖失败"),
t.setData({
click: false,
});
}
},
});
},
cancelprize: function () {
this.animation.top(0).left(0).translateX(0).rotate(0).step(), this.setData({
this.animation.top(0).left(0).translateX(0).rotate(0).step(),
this.setData({
clickmsk: false,
selectImg: 0,
animationData: this.animation.export(),
move: true
move: true,
});
var e = this;
setTimeout(function () {
e.setData({
move: false
})
},
1e3), setTimeout(function() {
move: false,
});
}, 1e3),
setTimeout(function () {
e.setData({
click: false
})
},
1200), this.initData()
click: false,
});
}, 1200),
this.initData();
},
cancelshare: function () {
this.setData({
clickshare: false
}), this.setData({
clickshare: false,
}),
this.setData({
prize: -1,
times: 0,
click: false
})
click: false,
});
},
nothing: function () {},
doReceive: function () {
this.cancel(), this.userReceiveCoupon()
this.cancel(), this.userReceiveCoupon();
},
cancel: function () {
this.setData({
isCancel: false
})
isCancel: false,
});
},
cancelsuccess: function () {
this.setData({
isCancelSuccess: true
})
isCancelSuccess: true,
});
},
innertouch: function () {},
userReceiveCoupon: function () {
var params = {
activity_id: this.activity_id,
activity_type: 2,
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY
activity_type_id: this.StateCode.ACTIVITY_TYPE_LOTTERY,
};
var t = this;
$.request({
@ -387,15 +510,15 @@
if (status == 200) {
t.setData({
isCancelSuccess: false,
Coupons: data.items
Coupons: data.items,
});
} else {
$.alert(msg);
}
}
},
});
}
}
},
},
};
</script>
@ -405,7 +528,8 @@
@import "../../styles/_variables";
page {
background: url(https://static.lancerdt.com/xcxfile/appicon/smashingEggs-bg.png) center top no-repeat #cb1944;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/smashingEggs-bg.png)
center top no-repeat #cb1944;
background-size: cover;
box-sizing: border-box;
}
@ -449,7 +573,8 @@
position: absolute;
width: 150rpx;
height: 150rpx;
background: url(https://static.lancerdt.com/xcxfile/appicon/Hammer.png) center top no-repeat;
background: url(https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/Hammer.png)
center top no-repeat;
background-size: cover;
z-index: 5;
}
@ -459,7 +584,7 @@
}
.winner-box {
background: #FEE39F;
background: #fee39f;
position: relative;
padding-bottom: 20rpx;
margin-top: 130rpx;
@ -499,11 +624,11 @@
}
.m-winner-item:nth-child(odd) {
background: #FAD97C;
background: #fad97c;
}
.m-winner-item:nth-child(even) {
background: #FEE39F;
background: #fee39f;
}
.prize-name {
@ -512,7 +637,7 @@
}
.rule-box {
background: #FEE39F;
background: #fee39f;
position: relative;
margin-top: 20rpx;
padding: 70rpx 30rpx 30rpx;
@ -525,7 +650,7 @@
position: fixed;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.70);
background-color: rgba(0, 0, 0, 0.7);
z-index: 5;
top: 0;
left: 0;
@ -540,7 +665,7 @@
position: fixed;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.70);
background-color: rgba(0, 0, 0, 0.7);
z-index: 5;
top: 0;
left: 0;
@ -557,13 +682,13 @@
line-height: 80rpx;
color: white;
text-align: center;
margin-top: 45%
margin-top: 45%;
}
.m-result-box {
width: 500rpx;
height: 600rpx;
background: #DB384B;
background: #db384b;
position: relative;
border-radius: 20rpx;
}
@ -589,7 +714,7 @@
}
.m-success-name {
color: #FFAC33;
color: #ffac33;
font-size: 26rpx;
line-height: 50rpx;
height: 50rpx;
@ -608,7 +733,7 @@
.succes-continue {
height: 65rpx;
width: 200rpx;
background: #FFCA3A;
background: #ffca3a;
display: inline-block;
border-radius: 5rpx;
}
@ -627,7 +752,7 @@
width: 350rpx;
height: 350rpx;
border-radius: 175rpx;
background-color: rgba(255, 255, 255, 0.10);
background-color: rgba(255, 255, 255, 0.1);
margin: 40rpx auto 20rpx;
padding: 50rpx;
box-sizing: border-box;
@ -637,7 +762,7 @@
width: 100%;
height: 100%;
border-radius: 150rpx;
background-color: rgba(255, 255, 255, 0.20);
background-color: rgba(255, 255, 255, 0.2);
}
.m-fail-name {
@ -651,7 +776,7 @@
line-height: 65rpx;
position: absolute;
bottom: 40rpx;
background: #FFCA3A;
background: #ffca3a;
border-radius: 5rpx;
font-size: 28rpx;
left: 100rpx;
@ -693,7 +818,6 @@
font-size: 36rpx;
}
.move1 {
position: relative;
animation: mymove1 1s;
@ -780,7 +904,6 @@
}
}
.move4 {
position: relative;
animation: mymove4 1s reverse;

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>

View File

@ -19,7 +19,7 @@
<view class="title" style="background"></view>
<view class="totalMoney no_lab" v-if="isshow" style="background:#fff"><label>不参与优惠金额</label><input placeholder="询问服务员后输入" type="digit" @input="onNodiscount" maxlength="8" @blur="blur1" :value="nodiscountvalue" /></view>
<view class="discount" v-if="isshow1 && shop_discount<10">
<image src="https://static.lancerdt.com/xcxfile/appicon/img/discount-icon.png" style="width:50rpx;height:54rpx;float:left;margin-top:16rpx"></image><text style="float:left;margin-left:20rpx">{{shop_discount||10}}</text><text style="color:#db384c;float:right">-{{Currency}}{{discount}}</text>
<image src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/discount-icon.png" style="width:50rpx;height:54rpx;float:left;margin-top:16rpx"></image><text style="float:left;margin-left:20rpx">{{shop_discount||10}}</text><text style="color:#db384c;float:right">-{{Currency}}{{discount}}</text>
</view>
<view class="pay">
<view class="coupon" @click="suitcouponlist" v-if="CouponEnabeld==true&&isCoupon">
@ -46,7 +46,7 @@
</view>
<view class="u-top-default">
<navigator url='/pages/index/index' open-type="switchTab" class="u-back2">
<image src='https://static.lancerdt.com/xcxfile/appicon/img/gohome.png'></image>
<image src='https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/gohome.png'></image>
</navigator>
</view>
@ -55,13 +55,9 @@
</template>
<script>
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
import paymentBox from '../../components/payment-box.vue'
import paymentBox from "../../components/payment-box.vue";
export default {
data: function () {
@ -100,26 +96,34 @@
isECashCard: true,
isCoupon: true,
isSubmit: true,
Currency: '¥',
Currency: "¥",
store_id: 0,
paymentData: {}
}
paymentData: {},
};
},
components: {
paymentBox
paymentBox,
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad(options) {
uni.setNavigationBarTitle({
title: this.__('优惠买单')
title: this.__("优惠买单"),
});
var that = this;
that.setData({
Currency: that.__('¥'),
store_id: options.store_id || 1001
Currency: that.__("¥"),
store_id: options.store_id || 1001,
});
this.forceUserInfo(function (user) {
@ -129,30 +133,35 @@
onUnload() {
//
var that = this
var that = this;
this.notice.removeNotification("RefreshCoupon1", that);
if (this.$refs.paymentBox.showBoxView) {
this.$refs.paymentBox.cancel();
}
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo', 'reloadUserResource']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
"reloadUserResource",
]),
load: function () {
let that = this;
//
that.$.request({
type: 'post',
type: "post",
url: this.Config.URL.store.info,
data: {
store_id: that.store_id,
action: 'intro'
action: "intro",
},
dataType: 'json',
dataType: "json",
success: function (data, status, msg, code) {
//console.log("", data);
that.setData({
@ -163,123 +172,146 @@
});
//console.log("CouponEnabeld", that.CouponEnabeld);
false ? that.setData({
isshow1: false
}) : that.setData({
isshow1: true
false
? that.setData({
isshow1: false,
})
: that.setData({
isshow1: true,
});
that.inputVal()
}
that.inputVal();
},
});
this.notice.addNotification("RefreshCoupon1", that.RefreshCoupon1, that);
var e = 'VendorFeatureSet'; - 1 < e.indexOf("ECashCard") ? (this.setData({
isECashCard: true
}), this.GetUserUsableECash()) : this.setData({
isECashCard: false
}), -1 < e.indexOf("Coupon") ? this.setData({
isCoupon: true
}) : this.setData({
isCoupon: false
var e = "VendorFeatureSet";
-1 < e.indexOf("ECashCard")
? (this.setData({
isECashCard: true,
}),
this.GetUserUsableECash())
: this.setData({
isECashCard: false,
}),
-1 < e.indexOf("Coupon")
? this.setData({
isCoupon: true,
})
: this.setData({
isCoupon: false,
});
},
clearnum: function (a) {
this.setData({
deliveryNum: ""
})
deliveryNum: "",
});
},
GetUserUsableECash: function () {
var a = {
userName: this.userInfo.UserName,
orderRealTotal: 0
orderRealTotal: 0,
},
that = this;
that.$.xsr(that.$.makeUrl(orderapi.GetUserUsableECash, a), function (a) {
that.setData({
MaxUsableCash: a.Info[0].MaxUsableCash,
MaxUsableECardCash: a.Info[0].MaxUsableECardCash,
MaxUsableExtraCash: a.Info[0].MaxUsableExtraCash
})
})
MaxUsableExtraCash: a.Info[0].MaxUsableExtraCash,
});
});
},
RefreshCoupon1: function (a) {
this.setData({
couponItemId: a.couponItemId,
IsUseCoupon: a.IsUseCoupon,
DiscountMoney: a.DiscountMoney,
MoneyLimit: a.MoneyLimit
}), this.inputVal()
MoneyLimit: a.MoneyLimit,
}),
this.inputVal();
},
inputnum: function (e) {
let that = this;
this.setData({
money: e.detail.value
money: e.detail.value,
});
parseFloat(e.detail.value) - (parseFloat(e.detail.value) - parseFloat(this.nodiscount || 0)) * (1 - this.shop_discount / 10) < parseFloat(this.MoneyLimit) && this.setData({
parseFloat(e.detail.value) -
(parseFloat(e.detail.value) - parseFloat(this.nodiscount || 0)) *
(1 - this.shop_discount / 10) <
parseFloat(this.MoneyLimit) &&
this.setData({
couponItemId: 0,
IsUseCoupon: 0,
DiscountMoney: 0,
MoneyLimit: 0
MoneyLimit: 0,
});
that.$.isNull(e.detail.value) && this.setData({
that.$.isNull(e.detail.value) &&
this.setData({
couponItemId: 0,
IsUseCoupon: 0,
DiscountMoney: 0,
MoneyLimit: 0
MoneyLimit: 0,
});
parseFloat(this.nodiscount) > parseFloat(e.detail.value) && (that.$.showModal({
parseFloat(this.nodiscount) > parseFloat(e.detail.value) &&
(that.$.showModal({
title: "提示",
content: "不参与优惠金额应小于总金额"
}), this.setData({
content: "不参与优惠金额应小于总金额",
}),
this.setData({
nodiscount: 0,
discount: 0
discount: 0,
}));
this.inputVal()
this.inputVal();
},
onNodiscount: function (a) {
let that = this;
this.setData({
nodiscount: a.detail.value
nodiscount: a.detail.value,
});
parseFloat(this.money) - (parseFloat(this.money) - parseFloat(a.detail.value || 0)) * (1 - this.shop_discount / 10) < parseFloat(this.MoneyLimit) && this.setData({
parseFloat(this.money) -
(parseFloat(this.money) - parseFloat(a.detail.value || 0)) *
(1 - this.shop_discount / 10) <
parseFloat(this.MoneyLimit) &&
this.setData({
couponItemId: 0,
IsUseCoupon: 0,
DiscountMoney: 0,
MoneyLimit: 0
MoneyLimit: 0,
});
parseFloat(a.detail.value) > parseFloat(this.money) && (that.$.showModal({
parseFloat(a.detail.value) > parseFloat(this.money) &&
(that.$.showModal({
title: "提示",
content: "不参与优惠金额应小于总金额"
}), this.setData({
content: "不参与优惠金额应小于总金额",
}),
this.setData({
nodiscount: 0,
discount: 0,
nodiscountvalue: ""
nodiscountvalue: "",
}));
this.inputVal()
this.inputVal();
},
blur: function (a) {
let that = this;
/^\d{1,10}(\.\d{1,2})?$/.test(a.detail.value) || that.$.showModal({
/^\d{1,10}(\.\d{1,2})?$/.test(a.detail.value) ||
that.$.showModal({
title: "提示",
content: "请输入正确金额"
})
content: "请输入正确金额",
});
},
blur1: function (a) {
let that = this;
/^\d{1,10}(\.\d{1,2})?$/.test(a.detail.value) || that.$.showModal({
/^\d{1,10}(\.\d{1,2})?$/.test(a.detail.value) ||
that.$.showModal({
title: "提示",
content: "请输入正确金额"
})
content: "请输入正确金额",
});
},
inputVal: function () {
let that = this;
@ -289,89 +321,142 @@
o = this.DiscountMoney;
this.setData({
discount: ((a - t) * (1 - e / 10)).toFixed(2),
payment: (a - (a - t) * (1 - e / 10) - o).toFixed(2)
}), this.payment < 0 && this.setData({
payment: 0
}), isNaN(this.discount) && this.setData({
discount: 0
}), isNaN(this.payment) && this.setData({
payment: 0
}), 0 == this.MaxUsableCash && this.setData({
realPayMoney: this.payment
}), this.MaxUsableCash >= this.payment ? this.setData({
payment: (a - (a - t) * (1 - e / 10) - o).toFixed(2),
}),
this.payment < 0 &&
this.setData({
payment: 0,
}),
isNaN(this.discount) &&
this.setData({
discount: 0,
}),
isNaN(this.payment) &&
this.setData({
payment: 0,
}),
0 == this.MaxUsableCash &&
this.setData({
realPayMoney: this.payment,
}),
this.MaxUsableCash >= this.payment
? this.setData({
balance: this.payment,
realMoney: 0
}) : this.setData({
balance: this.MaxUsableCash,
realMoney: (this.payment - this.MaxUsableCash).toFixed(2)
}), this.setData({
realPayMoney: this.realMoney
}), 0 == this.isBalance && this.setData({
realPayMoney: this.payment
realMoney: 0,
})
: this.setData({
balance: this.MaxUsableCash,
realMoney: (this.payment - this.MaxUsableCash).toFixed(2),
}),
this.setData({
realPayMoney: this.realMoney,
}),
0 == this.isBalance &&
this.setData({
realPayMoney: this.payment,
});
},
suitcouponlist: function () {
var a = this.money,
t = this.nodiscount,
e = this.shop_discount;
this.setData({
discount: ((a - t) * (1 - e / 10)).toFixed(2)
discount: ((a - t) * (1 - e / 10)).toFixed(2),
});
var o = {
userId: this.userInfo.Id,
store_id: 1001,
realMoney: (a - (a - t) * (1 - e / 10)).toFixed(2)
realMoney: (a - (a - t) * (1 - e / 10)).toFixed(2),
},
that = this;
that.$.xsr(that.$.makeUrl(cartapi.GetUsableCouponItemListForQuickPay, o), function(a) {
that.$.xsr(
that.$.makeUrl(cartapi.GetUsableCouponItemListForQuickPay, o),
function (a) {
that.setData({
info: a.Info
}), that.$.navigateTo({
url: "../favorablesuitcouponlist/favorablesuitcouponlist?val=" + JSON.stringify(a.Info) + "&id=" + that.couponItemId
})
})
info: a.Info,
}),
that.$.navigateTo({
url:
"../favorablesuitcouponlist/favorablesuitcouponlist?val=" +
JSON.stringify(a.Info) +
"&id=" +
that.couponItemId,
});
}
);
},
checkboxChange: function (a) {
0 < a.detail.value.length ? this.setData({
isshow: true
}) : this.setData({
0 < a.detail.value.length
? this.setData({
isshow: true,
})
: this.setData({
isshow: false,
nodiscount: 0
}), this.inputVal()
nodiscount: 0,
}),
this.inputVal();
},
paysubmit: function (a) {
var that = this;
if (that.$.isNull(this.money) || 0 == this.money) return that.$.showModal({
if (that.$.isNull(this.money) || 0 == this.money)
return (
that.$.showModal({
title: "提示",
content: "请输入消费总金额"
}), false;
if (!/^\d{1,10}(\.\d{1,2})?$/.test(that.money)) return that.$.showModal({
content: "请输入消费总金额",
}),
false
);
if (!/^\d{1,10}(\.\d{1,2})?$/.test(that.money))
return (
that.$.showModal({
title: "提示",
content: "请输入正确金额"
}), false;
if (that.isshow && !/^\d{1,10}(\.\d{1,2})?$/.test(that.nodiscount)) return that.$.showModal({
content: "请输入正确金额",
}),
false
);
if (that.isshow && !/^\d{1,10}(\.\d{1,2})?$/.test(that.nodiscount))
return (
that.$.showModal({
title: "提示",
content: "请输入正确金额"
}), false;
if (parseFloat(that.nodiscount) > parseFloat(that.money)) return that.$.showModal({
content: "请输入正确金额",
}),
false
);
if (parseFloat(that.nodiscount) > parseFloat(that.money))
return (
that.$.showModal({
title: "提示",
content: "不参与优惠金额应小于总金额"
}), false;
this.isBalance ? (0 == this.MaxUsableCash && this.setData({
content: "不参与优惠金额应小于总金额",
}),
false
);
this.isBalance
? (0 == this.MaxUsableCash &&
this.setData({
eCardCash: (1 * this.MaxUsableECardCash).toFixed(2),
extraCash: (1 * this.MaxUsableExtraCash).toFixed(2)
}), 0 != this.MaxUsableCash && 0 == this.balance && this.setData({
extraCash: (1 * this.MaxUsableExtraCash).toFixed(2),
}),
0 != this.MaxUsableCash &&
0 == this.balance &&
this.setData({
eCardCash: (1 * this.MaxUsableECardCash).toFixed(2),
extraCash: (1 * this.MaxUsableExtraCash).toFixed(2)
}), this.balance >= this.MaxUsableECardCash && this.setData({
extraCash: (1 * this.MaxUsableExtraCash).toFixed(2),
}),
this.balance >= this.MaxUsableECardCash &&
this.setData({
eCardCash: (1 * this.MaxUsableECardCash).toFixed(2),
extraCash: (this.balance - 1 * this.MaxUsableECardCash).toFixed(2)
}), this.balance < this.MaxUsableECardCash && this.setData({
extraCash: (this.balance - 1 * this.MaxUsableECardCash).toFixed(
2
),
}),
this.balance < this.MaxUsableECardCash &&
this.setData({
eCardCash: (1 * this.balance).toFixed(2),
extraCash: 0
})) : this.setData({
extraCash: 0,
}))
: this.setData({
eCardCash: 0,
extraCash: 0
extraCash: 0,
});
var param = {
@ -386,7 +471,7 @@
firstType: 2,
eCardCash: this.eCardCash,
extraCash: this.extraCash,
store_id: this.store_id
store_id: this.store_id,
};
that.$.request({
@ -396,27 +481,24 @@
if (status == 200) {
that.gotopay(data.pay_sn, param.realMoney);
} else {
that.$.alert(msg)
that.$.alert(msg);
}
},
fail: function(err) {}
fail: function (err) {},
});
},
gotopay_old: function () {
var that = this,
param = {
order_id: this.order_id,
openid: this.userInfo.openId,
store_id: this.shopInfo.store_id,
typ: 'json',
payment_channel_code: 'wx_native',
prepay_flag: 1
typ: "json",
payment_channel_code: "wx_native",
prepay_flag: 1,
};
that.$.request({
url: this.Config.URL.pay.pay,
data: param,
@ -425,26 +507,31 @@
that.$.requestPayment({
timeStamp: data.timeStamp,
nonceStr: data.nonceStr,
"package": data.package,
package: data.package,
signType: data.signType,
paySign: data.paySign,
success: function (n) {
that.returnUrl(param.order_id)
that.returnUrl(param.order_id);
},
fail: function (e) {
that.$.redirectTo("/chain/chain/favorabledetail?on=" + param.order_id)
that.$.redirectTo(
"/chain/chain/favorabledetail?on=" + param.order_id
);
},
complete: function (n) {
n.errMsg == "requestPayment:cancel" && (that.$.redirectTo("/chain/chain/favorabledetail?on=" + param.order_id), that.sendMessage(param.order_id, 1))
}
})
n.errMsg == "requestPayment:cancel" &&
(that.$.redirectTo(
"/chain/chain/favorabledetail?on=" + param.order_id
),
that.sendMessage(param.order_id, 1));
},
});
} else {
that.$.alert(msg)
that.$.alert(msg);
}
},
fail: function(err) {}
fail: function (err) {},
});
},
@ -453,15 +540,15 @@
that.setData({
order_id: order_id,
'paymentData': {
paymentData: {
order_id: order_id,
orderSelMoneyAmount: order_payment_amount,
user_money: this.userInfo.user_money,
user_points: this.userInfo.user_points,
user_recharge_card: this.userInfo.user_recharge_card,
user_sp: this.userInfo.user_sp
}
user_sp: this.userInfo.user_sp,
},
});
this.$refs.paymentBox.show();
@ -470,37 +557,43 @@
},
onCancel: function (e) {
return
return;
},
onPaid: function (e) {
let that = this
let that = this;
if (this.$refs.paymentBox.showBoxView) {
this.$refs.paymentBox.cancel();
}
that.reloadUserResource(function (user_info) {
that.$.alert(that.__('支付成功'), function() {
that.$.gotopage("/chain/chain/favorabledetail?order_id=" + that.order_id)
}, 2000)
that.$.alert(
that.__("支付成功"),
function () {
that.$.gotopage(
"/chain/chain/favorabledetail?order_id=" + that.order_id
);
},
2000
);
});
},
onFail: function (e) {},
returnUrl: function (a) {},
switchChange: function (a) {
a.detail.value ? this.setData({
a.detail.value
? this.setData({
realPayMoney: this.realMoney,
isBalance: true
}) : this.setData({
realPayMoney: this.payment,
isBalance: false
isBalance: true,
})
}
}
}
: this.setData({
realPayMoney: this.payment,
isBalance: false,
});
},
},
};
</script>
@ -678,7 +771,7 @@
text-align: center;
line-height: 94rpx;
margin-right: 10rpx;
font-weight: bold
font-weight: bold;
}
/* .input_lab { float: left; width: 75%; height: 100%; } */
@ -727,6 +820,6 @@
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
vertical-align: middl;
font-weight: bold
font-weight: bold;
}
</style>

View File

@ -1,51 +1,109 @@
<template>
<view class="page">
<movable-area class="move-area">
<movable-view v-if="info.IsRedPacketIcon" inertia class="move-img" direction="all" @tap='IsShowRPK'>
<image src="https://static.lancerdt.com/xcxfile/appicon/rpk_min.png"></image>
<movable-view
v-if="info.IsRedPacketIcon"
inertia
class="move-img"
direction="all"
@tap="IsShowRPK"
>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/rpk_min.png"
></image>
</movable-view>
<view style="background: #f8f8f8">
<view class="paysuccess"><label>
<image src="https://static.lancerdt.com/xcxfile/appicon/images/true.png" style="width:40rpx;height:40rpx;margin-top:8rpx"></image>
</label><text style="margin-left:10rpx">{{info.trade_is_paid==StateCode.ORDER_PAID_STATE_YES ? __('已支付') : __('待付款')}}</text></view>
<view class="paysuccess"
><label>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/true.png"
style="width: 40rpx; height: 40rpx; margin-top: 8rpx"
></image> </label
><text style="margin-left: 10rpx">{{
info.trade_is_paid == StateCode.ORDER_PAID_STATE_YES
? __("已支付")
: __("待付款")
}}</text></view
>
<view class="content">
<view class="store">{{info.store_name}}
</view>
<view class="store">{{ info.store_name }} </view>
<view class="details">
<view class="details-left">
<view class="charge"><text>{{__('消费金额')}}<text style="color:red">{{Currency}}{{info.order_payment_amount}}</text></text></view>
<view class="pay"><text>{{__('实际支付')}}<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 class="charge"
><text
>{{ __("消费金额") }}<text style="color: red"
>{{ Currency }}{{ info.order_payment_amount }}</text
></text
></view
>
<view class="pay"
><text
>{{ __("实际支付") }}<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 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://static.lancerdt.com/xcxfile/appicon/rpk_box.png) no-repeat;background-size: cover;'>
<view class="sendRPK" catchtap='shareBox'></view>
<view class="closeRPK" catchtap='IsShowRPK'></view>
<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://static.lancerdt.com/xcxfile/appicon/img/gohome.png'></image>
<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>
<script>
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
@ -57,20 +115,28 @@
maxRPK: 0,
order_id: "",
isshow1: false,
Currency: "¥"
}
Currency: "¥",
};
},
components: {},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad(options) {
uni.setNavigationBarTitle({
title: this.__('优惠买单')
title: this.__("优惠买单"),
});
var that = this;
that.setData({
order_id: options.order_id || ''
order_id: options.order_id || "",
});
that.load();
@ -78,13 +144,13 @@
onUnload() {
//
var that = this
var that = this;
},
/*
onShareAppMessage: function() {
return {
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
.UserInfo.Id,
success: function() {
@ -92,34 +158,42 @@
}
},*/
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
load: function () {
let that = this;
//
that.$.request({
type: 'post',
type: "post",
url: this.Config.URL.pay.consume_trade_detail,
data: {
order_id: that.order_id
order_id: that.order_id,
},
dataType: 'json',
dataType: "json",
success: function (data, status, msg, code) {
//console.log("", data);
that.setData({
info: data,
Currency: data.currency_symbol_left
Currency: data.currency_symbol_left,
});
false ? that.setData({
isshow1: false
}) : that.setData({
isshow1: true
false
? that.setData({
isshow1: false,
})
: that.setData({
isshow1: true,
});
that.inputVal()
}
that.inputVal();
},
});
},
shareQRCode: function (a) {
@ -127,10 +201,16 @@
t = {
store_id: app.globalData.VendorInfo.Id,
sponsorId: app.globalData.UserInfo.Id,
imageUrl: "https://static.lancerdt.com/xcxfile/appicon/shareImg.png",
path: "pages/redpacket/redpacket?g=" + this.data.ActivityGroupId + "&n=" + this.data.maxRPK + "&uid=" + app.globalData
.UserInfo.Id,
luckyOrder: this.data.maxRPK
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.UserInfo.Id,
luckyOrder: this.data.maxRPK,
};
$.xsr($.makeUrl(orderapi.ShareLuckyRedPacket, t), function (a) {
e.setData({
@ -138,10 +218,10 @@
Path: a.Info,
IsShare: true,
IsShareBox: false,
IsJT: true
}
})
})
IsJT: true,
},
});
});
},
shareBox: function () {
this.setData({
@ -149,9 +229,9 @@
Path: "",
IsShare: true,
IsShareBox: true,
IsJT: false
}
})
IsJT: false,
},
});
},
cancelShare: function () {
this.setData({
@ -159,16 +239,18 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
})
IsJT: false,
},
});
},
saveImg: function () {
var e = this;
$.loading(), wx.downloadFile({
$.loading(),
wx.downloadFile({
url: this.data.PageQRCodeInfo.Path,
success: function (a) {
$.hideloading(), wx.saveImageToPhotosAlbum({
$.hideloading(),
wx.saveImageToPhotosAlbum({
filePath: a.tempFilePath,
success: function () {
e.setData({
@ -176,47 +258,52 @@
Path: "",
IsShare: false,
IsShareBox: false,
IsJT: false
}
}), $.alert("保存图片成功!"), $.xsr1($.makeUrl(orderapi.ShareCount, {
IsJT: false,
},
}),
$.alert("保存图片成功!"),
$.xsr1(
$.makeUrl(orderapi.ShareCount, {
sponsorId: app.globalData.UserInfo.Id,
audienceType: 3,
audienceId: 0,
ContentType: 22,
contentId: e.data.ActivityGroupId
}))
contentId: e.data.ActivityGroupId,
})
);
},
fail: function (a) {
$.hideloading(), console.log("保存图片失败:", a)
}
})
$.hideloading(), console.log("保存图片失败:", a);
},
});
},
fail: function (a) {
$.hideloading()
}
})
$.hideloading();
},
});
},
showCodeImg: function () {
wx.previewImage({
current: this.data.PageQRCodeInfo.Path,
urls: [this.data.PageQRCodeInfo.Path]
})
urls: [this.data.PageQRCodeInfo.Path],
});
},
IsShowRPK: function () {
var a = this;
a.data.showRPK ? setTimeout(function() {
a.data.showRPK
? setTimeout(function () {
a.setData({
showRPK: false,
type: 1
})
}, 250) : a.setData({
type: 1,
});
}, 250)
: a.setData({
showRPK: true,
type: 1
})
}
}
}
type: 1,
});
},
},
};
</script>
@ -235,7 +322,7 @@
.content {
height: 400rpx;
background: #fff;
padding: 0 30rpx
padding: 0 30rpx;
}
.store {
@ -310,7 +397,7 @@
position: fixed;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, .5);
background-color: rgba(0, 0, 0, 0.5);
top: 0;
left: 0;
z-index: 5;

File diff suppressed because it is too large Load Diff

View File

@ -2,56 +2,126 @@
<view class="page">
<view v-if="loadComplete">
<block v-if="isdata && !issshow">
<scroll-view class="m-nearbylist" scroll-y="true" @scrolltolower="scrollbottom">
<view class='list-box' @click="gopage" v-for="(item, index) in Info" :key="index" :data-chain_id="(item.chain_id)" :data-chain_name="(item.chain_name)">
<view class='item-box'>
<view class='flex-box'>
<image :src='item.chain_img' class='flex-shop'></image><label class='flex-title'>{{item.chain_name}}</label>
<view class='flex-postion'>
<image src='https://static.lancerdt.com/xcxfile/appicon/img/location.png'></image><label>{{item.distance}}</label>
<scroll-view
class="m-nearbylist"
scroll-y="true"
@scrolltolower="scrollbottom"
>
<view
class="list-box"
@click="gopage"
v-for="(item, index) in Info"
:key="index"
:data-chain_id="item.chain_id"
:data-chain_name="item.chain_name"
>
<view class="item-box">
<view class="flex-box">
<image :src="item.chain_img" class="flex-shop"></image
><label class="flex-title">{{ item.chain_name }}</label>
<view class="flex-postion">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/location.png"
></image
><label>{{ item.distance }}</label>
</view>
</view>
<view class='flex-info'>
<view class='flex-info-box' @click.stop="call" :data-phone="item.chain_mobile"><label class='flex-info-title'>{{__('商家电话:')}}</label><label style='color:#0095fd'>{{item.chain_mobile}}</label></view>
<view class='flex-info-box' @click.stop="gotomap" :data-chain_id="(item.chain_id)" :data-chain_name="(item.chain_name)" :data-address="(item.chain_district_info)" :data-name="(item.chain_name)" :data-lat="(item.chain_lat)" :data-lng="(item.chain_lng)"><label class='flex-info-title'>{{__('商家地址:')}}</label><label>{{item.chain_district_info}}</label></view>
<image src='https://static.lancerdt.com/xcxfile/appicon/img/right.png'></image>
<view class="flex-info">
<view
class="flex-info-box"
@click.stop="call"
:data-phone="item.chain_mobile"
><label class="flex-info-title">{{ __("商家电话:") }}</label
><label style="color: #0095fd">{{
item.chain_mobile
}}</label></view
>
<view
class="flex-info-box"
@click.stop="gotomap"
:data-chain_id="item.chain_id"
:data-chain_name="item.chain_name"
:data-address="item.chain_district_info"
:data-name="item.chain_name"
:data-lat="item.chain_lat"
:data-lng="item.chain_lng"
><label class="flex-info-title">{{ __("商家地址:") }}</label
><label>{{ item.chain_district_info }}</label></view
>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/right.png"
></image>
</view>
</view>
</view>
<view class="m-loading-box">
<block v-if="ispage && !issshow">
<view class="u-loadmore">
<label class="u-loading"></label><text class="u-loadmore-tips">{{__('正在加载')}}</text>
<label class="u-loading"></label
><text class="u-loadmore-tips">{{ __("正在加载") }}</text>
</view>
</block>
<block v-if="!ispage && !issshow">
<view class="u-loadmore u-loadmore-line"><text class="u-loadmore-tips">{{__('没有更多数据啦!')}}</text></view>
<view class="u-loadmore u-loadmore-line"
><text class="u-loadmore-tips">{{
__("没有更多数据啦!")
}}</text></view
>
</block>
</view>
</scroll-view>
</block>
<view class="m-nullcontent" v-if="!isdata">
<view class="m-nullpage-middle"><label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip"><text>{{__('亲~什么都没有')}}</text><text>{{__('附近没什么门店!')}}</text></view>
<view class="m-nullpage-middle"
><label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip"
><text>{{ __("亲~什么都没有") }}</text
><text>{{ __("附近没什么门店!") }}</text></view
>
</view>
</view>
</view>
<view v-if="isdata && issshow" class='open_ba'>
<view style="width: 200rpx;/*height: 100px*/margin: 71px auto 25px auto;wxcs_style_margin: 143rpx auto 50rpx auto;auto: 50rpx auto;">
<image src='https://static.lancerdt.com/xcxfile/appicon/img/ditulogo.png' style="width: 200rpx;height: 200rpx;/*margin: 0 auto;*/"></image>
<view v-if="isdata && issshow" class="open_ba">
<view
style="
width: 200rpx; /*height: 100px*/
margin: 71px auto 25px auto;
wxcs_style_margin: 143rpx auto 50rpx auto;
auto: 50rpx auto;
"
>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/ditulogo.png"
style="width: 200rpx; height: 200rpx; /*margin: 0 auto;*/"
></image>
</view>
<view style="font-size: 28rpx;">{{__('无法获取到您的定位,请开启地理位置权限,将根据你的位置展示附近门店。')}}</view><button style="width: 34%;height: 79rpx;background: #33cc66;margin: 39px auto 0 auto;wxcs_style_margin: 79rpx auto 0 auto;color: #fff;line-height: 80rpx;text-align: center;" open-type="openSetting" @opensetting="handler">{{__('去开启')}}</button>
<view style="font-size: 28rpx">{{
__(
"无法获取到您的定位,请开启地理位置权限,将根据你的位置展示附近门店。"
)
}}</view
><button
style="
width: 34%;
height: 79rpx;
background: #33cc66;
margin: 39px auto 0 auto;
wxcs_style_margin: 79rpx auto 0 auto;
color: #fff;
line-height: 80rpx;
text-align: center;
"
open-type="openSetting"
@opensetting="handler"
>
{{ __("去开启") }}
</button>
</view>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
@ -69,20 +139,28 @@
store_id: null,
chain_id: null,
rows: 10,
loadComplete: false //
}
loadComplete: false, //
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad(options) {
uni.setNavigationBarTitle({
title: this.__('附近门店')
title: this.__("附近门店"),
});
var that = this;
that.setData({
options: options,
store_id: options.store_id ? options.store_id : '',
item_id: options.item_id ? options.item_id : ''
store_id: options.store_id ? options.store_id : "",
item_id: options.item_id ? options.item_id : "",
});
that.$.getLocation({
@ -90,25 +168,31 @@
success: function (response) {
that.setData({
latitude: response.latitude,
longitude: response.longitude
longitude: response.longitude,
});
that.getNearbylist()
that.getNearbylist();
},
fail: function () {
that.setData({
isdata: true
isdata: true,
});
that.$.confirm(that.__('手机定位失败!'));
that.$.confirm(that.__("手机定位失败!"));
that.getNearbylist()
}
})
that.getNearbylist();
},
});
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
getNearbylist: function () {
var that = this;
var params = {
@ -116,56 +200,60 @@
lng: that.longitude,
page: that.page,
rows: that.rows,
store_id: that.options.store_id ? that.options.store_id : '',
item_id: that.options.item_id ? that.options.item_id : '',
store_id: that.options.store_id ? that.options.store_id : "",
item_id: that.options.item_id ? that.options.item_id : "",
};
that.$.request({
url: this.Config.URL.store.getNearChain,
data: params,
dataType: 'json',
dataType: "json",
success: function (data, status, msg, code) {
if (status == 200) {
for (let i = 0; i < data.items.length; i++) {
data.items[i]['distance'] = that.$.distanceFormat(data.items[i]['distance']);
data.items[i]["distance"] = that.$.distanceFormat(
data.items[i]["distance"]
);
let coord = that.$.bMapTransQQMap(data.items[i]['chain_lng'], data.items[i]['chain_lat']);
data.items[i]['chain_lng'] = coord.lng;
data.items[i]['chain_lat'] = coord.lat;
let coord = that.$.bMapTransQQMap(
data.items[i]["chain_lng"],
data.items[i]["chain_lat"]
);
data.items[i]["chain_lng"] = coord.lng;
data.items[i]["chain_lat"] = coord.lat;
}
that.setData({
isdata: true,
loadComplete: true
loadComplete: true,
});
if (data.page >= data.total) {
that.setData({
flag: false,
ispage: false,
Info: that.Info.concat(data.items)
})
Info: that.Info.concat(data.items),
});
} else {
that.setData({
flag: true,
ispage: true,
Info: that.Info.concat(data.items)
})
Info: that.Info.concat(data.items),
});
}
} else {
that.setData({
flag: false,
ispage: false,
loadComplete: true
loadComplete: true,
});
}
},
fail: function (data) {
that.setData({
loadComplete: true
loadComplete: true,
});
that.$.alert("网络异常请重试!");
}
},
});
},
gotomap: function (e) {
@ -178,8 +266,8 @@
longitude: parseFloat(e.currentTarget.dataset.lng),
name: e.currentTarget.dataset.name,
address: e.currentTarget.dataset.address,
scale: 28
})
scale: 28,
});
}
},
gopage: function (e) {
@ -189,7 +277,9 @@
} else if (that.options.is_flag) {
that.setChain(e.currentTarget.dataset);
} else {
this.$.gotopage('/chain/chain/index?chain_id=' + e.currentTarget.dataset.chain_id)
this.$.gotopage(
"/chain/chain/index?chain_id=" + e.currentTarget.dataset.chain_id
);
}
},
backCheckout: function (data) {
@ -200,7 +290,6 @@
var params = {};
var info_list = this.Info;
for (var r = 0; r < info_list.length; r++) {
if (info_list[r].chain_id == data.chain_id) {
params = info_list[r];
}
@ -212,95 +301,97 @@
//uni.setStorageSync('chain_name', data.chain_name);
that.$.navigateBack(1, function () {
that.notice.postNotificationName("RefreshOrderChain", options)
})
that.notice.postNotificationName("RefreshOrderChain", options);
});
},
scrollbottom: function () {
if (this.flag) {
var e = this;
e.setData({
flag: false
}), clearTimeout(t);
flag: false,
}),
clearTimeout(t);
var t = setTimeout(function () {
e.setData({
type: e.type,
page: parseInt(e.page) + 1,
rows: 10
}), e.getNearbylist()
},
500)
rows: 10,
}),
e.getNearbylist();
}, 500);
}
},
setChain: function (e) {
var that = this;
//console.log(e);
that.$.showModal({
title: '提示',
content: '确定该门店成为您的默认自提点吗?',
title: "提示",
content: "确定该门店成为您的默认自提点吗?",
success: function (res) {
if (res.confirm) {
uni.setStorageSync('chain_id', e.chain_id);
uni.setStorageSync('chain_name', e.chain_name);
uni.setStorageSync("chain_id", e.chain_id);
uni.setStorageSync("chain_name", e.chain_name);
var params = {
chain_id: e.chain_id
chain_id: e.chain_id,
};
that.$.request({
url: that.Config.URL.setChain,
data: params,
dataType: 'json',
dataType: "json",
success: function (data, status, msg, code) {
if (status == 200) {
that.$.gopage('/pages/index/index')
that.$.gopage("/pages/index/index");
} else {
that.$.alert('设置失败,请重新选择')
}
that.$.alert("设置失败,请重新选择");
}
},
});
}
}
},
});
},
selectchain: function (e) {
var params = {},
info_list = this.Info;
for (var r = 0; r < info_list.length; r++) info_list[r].chain_id == e.currentTarget.dataset.chain_id && (params =
info_list[r]);
for (var r = 0; r < info_list.length; r++)
info_list[r].chain_id == e.currentTarget.dataset.chain_id &&
(params = info_list[r]);
var that = this;
that.$.navigateBack(1, function () {
var e = {
chain_id: that.chain_id,
spinfo: that.spid,
ChainInfo: params
ChainInfo: params,
};
that.notice.postNotificationName("RefreshOrderChain", e)
})
that.notice.postNotificationName("RefreshOrderChain", e);
});
},
selectAddress: function (e) {
var params = {},
info_list = this.Info;
for (var r = 0; r < info_list.length; r++) info_list[r].chain_id == e.currentTarget.dataset.chain_id && (params =
info_list[r]);
for (var r = 0; r < info_list.length; r++)
info_list[r].chain_id == e.currentTarget.dataset.chain_id &&
(params = info_list[r]);
var that = this;
that.$.navigateBack(1, function () {
var e = {
chain_id: that.chain_id,
spinfo: that.spid,
ChainInfo: params
ChainInfo: params,
};
that.notice.postNotificationName("RefreshOrderChain", e)
})
that.notice.postNotificationName("RefreshOrderChain", e);
});
},
call: function (e) {
let that = this;
that.$.makePhoneCall({
phoneNumber: e.currentTarget.dataset.phone
})
}
}
}
phoneNumber: e.currentTarget.dataset.phone,
});
},
},
};
</script>
@ -400,7 +491,7 @@
.open_ba {
width: 80%;
margin: 0 auto
margin: 0 auto;
}
.open_dl {
@ -414,8 +505,6 @@
line-height: 75rpx;
}
.nearbylist-item {
padding: 20rpx 30rpx;
border-bottom: 1px solid #eee;
@ -458,7 +547,7 @@
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
margin-right: 40rpx;
line-height: 40rpx
line-height: 40rpx;
}
.item-info::after {
@ -480,6 +569,6 @@
.m-nearbylist {
height: 100%;
position: absolute
position: absolute;
}
</style>

View File

@ -1,96 +1,217 @@
<template>
<view>
<view class='banner-nav' v-if="false">
<view class='xx-box'>
<navigator hover-class="none" class="xx" url='/member/member/message'>
<image class='xx1' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_05.png'></image>
<view class="banner-nav" v-if="false">
<view class="xx-box">
<navigator hover-class="none" class="xx" url="/member/member/message">
<image
class="xx1"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_05.png"
></image>
</navigator>
</view>
<view class='input_box2' style='background: #f1f1f1;' v-if="NIndex">
<uni-icons class='iconfont icon-sousuo-sousuo' style='font-size:70rpx;color:#959593' @tap='searchinput' />
<input v-model="story_index" class="input_box2_input" :placeholder="__('搜索您想看的内容')" placeholder-style="font-size:30rpx;color:#959593;line-height:54rpx" confirm-type="done" @confirm="searchinput" />
<view class="input_box2" style="background: #f1f1f1" v-if="NIndex">
<uni-icons
class="iconfont icon-sousuo-sousuo"
style="font-size: 70rpx; color: #959593"
@tap="searchinput"
/>
<input
v-model="story_index"
class="input_box2_input"
:placeholder="__('搜索您想看的内容')"
placeholder-style="font-size:30rpx;color:#959593;line-height:54rpx"
confirm-type="done"
@confirm="searchinput"
/>
</view>
<view class='sq_0-box'>
<navigator hover-class="none" :url="'/community/community/userspace?uid=' + userInfo.user_id" :class="'sq_0 ' + (istop==true?'border22':'')">
<image lazy-load class='sq_1' :src="(userInfo.user_avatar)" mode="scaleToFill" />
<view class="sq_0-box">
<navigator
hover-class="none"
:url="'/community/community/userspace?uid=' + userInfo.user_id"
:class="'sq_0 ' + (istop == true ? 'border22' : '')"
>
<image
lazy-load
class="sq_1"
:src="userInfo.user_avatar"
mode="scaleToFill"
/>
</navigator>
</view>
</view>
<scroll-view scroll-y="true" class="m-orderlist" @scrolltolower="scrollbottom" :scroll-top="scposition" @scroll="scroll" @scrolltoupper="scrollView">
<scroll-view
scroll-y="true"
class="m-orderlist"
@scrolltolower="scrollbottom"
:scroll-top="scposition"
@scroll="scroll"
@scrolltoupper="scrollView"
>
<view v-if="!isshow">
<view class='bj_box' :style="'background: url(' + category_row.story_category_bg + ') no-repeat ;background-size:100% ;'">
<view class='tn_box'>
<view class='bj_box_tx'>
<image class='box_title_image' :src="category_row.story_category_logo"></image>
<view
class="bj_box"
:style="
'background: url(' +
category_row.story_category_bg +
') no-repeat ;background-size:100% ;'
"
>
<view class="tn_box">
<view class="bj_box_tx">
<image
class="box_title_image"
:src="category_row.story_category_logo"
></image>
</view>
<view class='bj_box_name_box'>
<view class='bj_box_name'><span>{{category_row.story_category_desc}}</span></view>
<view class='bj_box_tz'><span class=''>{{__('帖子')}}</span><span></span><span>{{category_row.story_category_count}}</span>
<view class="bj_box_name_box">
<view class="bj_box_name"
><span>{{ category_row.story_category_desc }}</span></view
>
<view class="bj_box_tz"
><span class="">{{ __("帖子") }}</span
><span></span
><span>{{ category_row.story_category_count }}</span>
</view>
</view>
</view>
</view>
<view v-if="isdata">
<view class='box_title_box' v-for="(item, index) in PlatePostList" :key="index">
<view class='box_title'>
<navigator hover-class="none" :url='"/community/community/userspace?uid=" + item.user_id' style='position: relative;display: inline-block'>
<view class='box_title_img'>
<image class='box_title_image' :src="item.user_avatar"></image>
<view
class="box_title_box"
v-for="(item, index) in PlatePostList"
:key="index"
>
<view class="box_title">
<navigator
hover-class="none"
:url="'/community/community/userspace?uid=' + item.user_id"
style="position: relative; display: inline-block"
>
<view class="box_title_img">
<image
class="box_title_image"
:src="item.user_avatar"
></image>
</view>
<view class='box_title_name'>{{item.user_nickname}}</view>
<view class='box_title_name_time'>{{item.story_time_str}}</view>
<view class="box_title_name">{{ item.user_nickname }}</view>
<view class="box_title_name_time">{{
item.story_time_str
}}</view>
</navigator>
<view v-if="item.story_is_top" class='box_title_guanzhu'>
<view class='box_title_guanzhu_text'>{{__('置顶')}}</view>
<view v-if="item.story_is_top" class="box_title_guanzhu">
<view class="box_title_guanzhu_text">{{ __("置顶") }}</view>
</view>
</view>
<navigator @tap="moNitor" hover-class="none" :url='"/community/nvueSwiper/nvueSwiper?id="+item.story_id' style='display: inline-block' v-if="item.story_type == 4">
<view class='box_title_conton'>{{item.story_title}}</view>
<view class='newsimg_box_img' v-if="item.story_file.length>0">
<navigator
@tap="moNitor"
hover-class="none"
:url="'/community/nvueSwiper/nvueSwiper?id=' + item.story_id"
style="display: inline-block"
v-if="item.story_type == 4"
>
<view class="box_title_conton">{{ item.story_title }}</view>
<view class="newsimg_box_img" v-if="item.story_file.length > 0">
<block v-for="(imgItem, j) in item.story_file" :key="j">
<view class='newsimg_box_image3' :style='"background: url(" + imgItem + ") center no-repeat ;background-size:cover;"'></view>
<view
class="newsimg_box_image3"
:style="
'background: url(' +
imgItem +
') center no-repeat ;background-size:cover;'
"
></view>
</block>
</view>
</navigator>
<navigator @tap="moNitor" hover-class="none" :url='"/community/community/detail?id="+item.story_id' style='display: inline-block' v-if="item.story_type != 4">
<view class='box_title_conton'>{{item.story_content}}</view>
<view class='newsimg_box_img' v-if="item.story_file.length>0">
<navigator
@tap="moNitor"
hover-class="none"
:url="'/community/community/detail?id=' + item.story_id"
style="display: inline-block"
v-if="item.story_type != 4"
>
<view class="box_title_conton">{{ item.story_content }}</view>
<view class="newsimg_box_img" v-if="item.story_file.length > 0">
<block v-for="(imgItem, j) in item.story_file" :key="j">
<view class='newsimg_box_image3' :style='"background: url(" + imgItem + ") center no-repeat ;background-size:cover;"'></view>
<view
class="newsimg_box_image3"
:style="
'background: url(' +
imgItem +
') center no-repeat ;background-size:cover;'
"
></view>
</block>
</view>
</navigator>
<view class='pldz_box'>
<view class="pldz_box">
<view>
<view class='rmtz_box_content_box_dz'>
<image class='dz' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_03.png'></image>
<view class="rmtz_box_content_box_dz">
<image
class="dz"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_03.png"
></image>
<span>{{ item.story_brower_count }}</span>
</view>
<view class='rmtz_box_content_box_pl'>
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_05.png'></image>
<span style="font-size: 12px;color: #959593;">{{item.story_comment_count}}</span>
<view class="rmtz_box_content_box_pl">
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_05.png"
></image>
<span style="font-size: 12px; color: #959593">{{
item.story_comment_count
}}</span>
</view>
<button hover-class='none' style='padding-left:22rpx;' v-if="item.IsFabulous == 1" class='rmtz_box_content_box_pl' :data-story_id='item.story_id' open-type="getUserInfo" lang="zh_CN" @click="onUnLike">
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/side1_03.png'></image>
<span style="font-size:12px">{{item.story_like_count}}</span>
<button
hover-class="none"
style="padding-left: 22rpx"
v-if="item.IsFabulous == 1"
class="rmtz_box_content_box_pl"
:data-story_id="item.story_id"
open-type="getUserInfo"
lang="zh_CN"
@click="onUnLike"
>
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/side1_03.png"
></image>
<span style="font-size: 12px">{{
item.story_like_count
}}</span>
</button>
<button hover-class='none' style='padding-left:22rpx;' class='rmtz_box_content_box_pl' v-else :data-story_id='item.story_id' open-type="getUserInfo" lang="zh_CN" @click="onLike">
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/side1_05.png'></image>
<span style='font-size:12px;color:#959593'>{{item.story_like_count}}</span>
<button
hover-class="none"
style="padding-left: 22rpx"
class="rmtz_box_content_box_pl"
v-else
:data-story_id="item.story_id"
open-type="getUserInfo"
lang="zh_CN"
@click="onLike"
>
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/side1_05.png"
></image>
<span style="font-size: 12px; color: #959593">{{
item.story_like_count
}}</span>
</button>
</view>
<view class='rmtz_box_content_box_p11' v-if="false"><span>{{__('来自:')}}{{item.user_nickname}}</span></view>
<view class="rmtz_box_content_box_p11" v-if="false"
><span>{{ __("来自:") }}{{ item.user_nickname }}</span></view
>
</view>
</view>
<view class="m-loading-box">
<block v-if="ispage">
<view class="u-loadmore">
<label class="u-loading"></label>
<text class="u-loadmore-tips">{{__('正在加载')}}</text>
<text class="u-loadmore-tips">{{ __("正在加载") }}</text>
</view>
<view>
<text></text>
@ -98,7 +219,9 @@
</block>
<block v-else>
<view class="u-loadmore u-loadmore-line">
<text class="u-loadmore-tips">{{__('没有更多数据啦!')}}</text>
<text class="u-loadmore-tips">{{
__("没有更多数据啦!")
}}</text>
</view>
</block>
</view>
@ -113,10 +236,15 @@
</view>
<view v-else>
<block>
<navigator hover-class='none' url="/pages/index/community" open-type="switchTab" class="m-nullpage">
<navigator
hover-class="none"
url="/pages/index/community"
open-type="switchTab"
class="m-nullpage"
>
<view class="m-nullpage-middle">
<view class="m-null-tip">
<text>{{__('当前版块已被下线或删除!')}}</text>
<text>{{ __("当前版块已被下线或删除!") }}</text>
</view>
</view>
</navigator>
@ -125,37 +253,86 @@
</scroll-view>
<view :class="[animation ? '' : 'zhezhaoceng']">
<movable-area class="movableArea">
<movable-view class="movableView" @touchmove.stop.prevent="doNothing" direction="all" :x="initX" :y="initY">
<movable-view
class="movableView"
@touchmove.stop.prevent="doNothing"
direction="all"
:x="initX"
:y="initY"
>
<view class="u-top" v-if="isnav">
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_nav.png' class='quicknav' @tap='nav'></image>
<navigator url='/community/community/post'>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_post.png' class='quicknav'></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_icon_nav.png"
class="quicknav"
@tap="nav"
></image>
<navigator url="/community/community/post">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_post.png"
class="quicknav"
></image>
</navigator>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_gotop.png' :class='[isquicknav?"quicknav":"hide"]' @tap="returnTop"></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_gotop.png"
:class="[isquicknav ? 'quicknav' : 'hide']"
@tap="returnTop"
></image>
</view>
<view v-else @tap='outnav'>
<view v-else @tap="outnav">
<view class="u-top1">
<navigator :class="animation ? 'navtext1' :'navtext'" url='/pages/index/image'>
<text>{{__('社区首页')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_comnityhome.png' class='quicknav'></image>
<navigator
:class="animation ? 'navtext1' : 'navtext'"
url="/pages/index/image"
>
<text>{{ __("社区首页") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_comnityhome.png"
class="quicknav"
></image>
</navigator>
<button :class="animation?'navtext1':'navtext'" open-type='share' style='padding:0;background:none;width:none'>
<text>{{__('分享')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_share.png' class='quicknav'></image>
<button
:class="animation ? 'navtext1' : 'navtext'"
open-type="share"
style="padding: 0; background: none; width: none"
>
<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>
</button>
<navigator :class="animation?'navtext1':'navtext'" url='/community/community/userspace'>
<text>{{__('我的帖子')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_my_post.png' class='quicknav'></image>
<navigator
:class="animation ? 'navtext1' : 'navtext'"
url="/community/community/userspace"
>
<text>{{ __("我的帖子") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_my_post.png"
class="quicknav"
></image>
</navigator>
<navigator :class="animation?'navtext1':'navtext'" url='/pages/index/index' open-type='switchTab'>
<text>{{__('商城首页')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_home.png' class='quicknav'></image>
<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='navtext'>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_close.png' class='quicknav'></image>
<view class="navtext">
<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>
<navigator url='/community/community/post' class='navtext'>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_post.png' class='quicknav'></image>
<navigator url="/community/community/post" class="navtext">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_post.png"
class="quicknav"
></image>
</navigator>
</view>
</view>
@ -167,12 +344,9 @@
<script>
import dateUtil from "../../helpers/util_date";
import diy from '../../components/themes/diy.vue'
import diy from "../../components/themes/diy.vue";
import {
mapMutations,
mapState
} from 'vuex'
import { mapMutations, mapState } from "vuex";
export default {
data: function () {
@ -200,47 +374,57 @@
screenHeight: 0,
isquicknav: false,
animation: true,
initX: '690',
initY: '1336',
timer: null
}
initX: "690",
initY: "1336",
timer: null,
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
components: {
diy
diy,
},
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('版块')
title: this.__("版块"),
});
var that = this;
this.setData({
category_id: options.id
category_id: options.id,
});
that.$.getSystemInfo({
success: function (t) {
that.setData({
screenHeight: t.screenHeight
})
}
screenHeight: t.screenHeight,
});
},
});
that.getCategoryDetail();
that.listStory();
},
mounted() {
let that = this;
const query = uni.createSelectorQuery().in(this);
query.select('.movableArea').boundingClientRect(data => {
query
.select(".movableArea")
.boundingClientRect((data) => {
that.setData({
initX: data.width,
initY: data.height - 100,
});
}).exec();
})
.exec();
},
/**
@ -255,15 +439,13 @@
*/
onUnload: function () {
//
var that = this
var that = this;
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
onReachBottom: function () {},
/**
* 用户点击右上角分享
@ -271,8 +453,8 @@
onShareAppMessage: function () {
return {
title: this.category_row.PlateName,
path: "/community/plate/plate?id=" + this.category_id
}
path: "/community/plate/plate?id=" + this.category_id,
};
},
/**
* 页面滚动触发事件的处理函数
@ -280,14 +462,18 @@
onPageScroll: function () {},
methods: {
...mapMutations(['logout', 'getPlantformInfo', 'forceUserInfo', 'getStoreInfo']),
...mapMutations([
"logout",
"getPlantformInfo",
"forceUserInfo",
"getStoreInfo",
]),
getCategoryDetail: function () {
var that = this,
params = {
story_category_id: that.category_id
story_category_id: that.category_id,
};
that.$.request({
url: this.Config.URL.sns.category_get,
data: params,
@ -295,16 +481,16 @@
if (200 == status) {
that.setData({
isshow: false,
category_row: data
})
category_row: data,
});
} else {
that.setData({
isshow: true
})
isshow: true,
});
}
//wx.setNavigationBarTitle({title: data.PlateName})
}
},
});
},
listStory: function () {
@ -313,7 +499,7 @@
category_id: that.category_id,
operateId: that.cf.storeId,
page: that.page,
userId: that.userInfo.user_id
userId: that.userInfo.user_id,
};
that.$.request({
@ -322,99 +508,109 @@
success: function (data, status, msg, code) {
if (data.items.length > 0) {
for (var r = 0; r < data.items.length; r++) {
data.items[r]['story_time_str'] = dateUtil.dateUtils.format(that.$.datetimeFormatter(data.items[r]['story_time']));
data.items[r]["story_time_str"] = dateUtil.dateUtils.format(
that.$.datetimeFormatter(data.items[r]["story_time"])
);
}
if (data.page >= data.total) {
that.setData({
PlatePostList: that.PlatePostList.concat(data.items),
flag: false,
ispage: false
ispage: false,
});
} else {
that.setData({
PlatePostList: that.PlatePostList.concat(data.items),
flag: true,
ispage: true
})
ispage: true,
});
}
} else {
that.setData({
flag: false,
ispage: false
})
ispage: false,
});
}
that.setData({
is_loaded: true
})
}
is_loaded: true,
});
},
});
},
scrollbottom: function (t) {
if (this.flag && this.ispage) {
var a = this;
a.setData({
flag: false
}), clearTimeout(s);
flag: false,
}),
clearTimeout(s);
var s = setTimeout(function () {
a.setData({
page: parseInt(a.page) + 1
}), a.listStory()
},
500)
page: parseInt(a.page) + 1,
}),
a.listStory();
}, 500);
}
},
scrollView: function (t) {
t.detail.deltaY
},
doNothing: function() {
t.detail.deltaY;
},
doNothing: function () {},
searchinput: function (t) {
wx.navigateTo({
url: "../Postalist/Postalist?sousuovalue=" + this.sousuovalue + "&id=" + parseInt(this.category_id),
url:
"../Postalist/Postalist?sousuovalue=" +
this.sousuovalue +
"&id=" +
parseInt(this.category_id),
success: function (t) {},
fail: function (t) {},
complete: function(t) {}
}), this.setData({
sousuovalue: ""
})
complete: function (t) {},
}),
this.setData({
sousuovalue: "",
});
},
scroll: function (t) {
this.old.scposition = t.detail.scrollTop;
100 < t.detail.scrollTop ? this.setData({
100 < t.detail.scrollTop
? this.setData({
opacity: 1,
background: "f8f8f8"
}) : this.setData({
background: "f8f8f8",
})
: this.setData({
opacity: 0,
background: "fff"
}), t.detail.scrollTop >= this.screenHeight ? this.setData({
isquicknav: true
}) : this.setData({
isquicknav: false
background: "fff",
}),
t.detail.scrollTop >= this.screenHeight
? this.setData({
isquicknav: true,
})
: this.setData({
isquicknav: false,
});
},
moNitor: function () {
this.setData({
isClose: false
})
isClose: false,
});
},
onLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.dianzan(a.currentTarget.dataset.story_id)
that.dianzan(a.currentTarget.dataset.story_id);
});
},
dianzan: function (story_id) {
var that = this,
params = {
story_id: story_id
story_id: story_id,
};
that.$.request({
@ -426,25 +622,26 @@
//
for (var r = 0; r < that.PlatePostList.length; r++) {
if (story_id == that.PlatePostList[r]['story_id']) {
that.PlatePostList[r]['IsFabulous'] = 1;
that.PlatePostList[r]['story_like_count']++;
if (story_id == that.PlatePostList[r]["story_id"]) {
that.PlatePostList[r]["IsFabulous"] = 1;
that.PlatePostList[r]["story_like_count"]++;
}
}
} else {}
} else {
}
},
});
},
onUnLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.canceldianzan(a.currentTarget.dataset.story_id)
that.canceldianzan(a.currentTarget.dataset.story_id);
});
},
canceldianzan: function (story_id) {
var that = this,
params = {
story_id: story_id
story_id: story_id,
};
that.$.request({
@ -454,18 +651,17 @@
if (200 == status) {
//
for (var r = 0; r < that.PlatePostList.length; r++) {
if (story_id == that.PlatePostList[r]['story_id']) {
that.PlatePostList[r]['IsFabulous'] = 0;
that.PlatePostList[r]['story_like_count']--;
if (story_id == that.PlatePostList[r]["story_id"]) {
that.PlatePostList[r]["IsFabulous"] = 0;
that.PlatePostList[r]["story_like_count"]--;
}
}
} else {}
} else {
}
},
});
},
returnTop: function () {
let that = this;
//
@ -473,49 +669,45 @@
clearInterval(that.timer);
}
that.setData({
scposition: this.old.scposition
})
scposition: this.old.scposition,
});
that.timer = setInterval(function () {
let speed = that.scposition / 4;
speed = Math.ceil(speed);
if (that.scposition <= 0 || !that.scposition) {
clearInterval(that.timer);
}
that.scposition = that.scposition - speed
that.scposition = that.scposition - speed;
}, 30);
this.setData({
isquicknav: false
isquicknav: false,
});
},
nav: function () {
this.setData({
isnav: false,
animation: false
})
animation: false,
});
},
outnav: function () {
var t = this;
this.setData({
animation: true
}), setTimeout(function() {
animation: true,
}),
setTimeout(function () {
t.setData({
isnav: true
})
isnav: true,
});
}, 400);
},
},
400)
}
}
};
</script>
<style lang="scss">
@import "../../styles/_variables";
@import '../../styles/layout.scss';
@import "../../styles/layout.scss";
page {
background-color: #fff;
@ -523,7 +715,6 @@
/* 顶部 */
.bj_box {
width: 750rpx;
height: 371rpx;
@ -560,14 +751,14 @@
padding: 0rpx 0 0rpx 20rpx;
line-height: 43rpx;
span {}
span {
}
}
.bj_box_tz {
padding: 0rpx 0 0rpx 20rpx;
}
.wrap-box {
position: relative;
width: 750rpx;
@ -694,7 +885,8 @@
height: 100rpx;
}
.newsimg_box {}
.newsimg_box {
}
.newsimg_box_img {
padding: 0rpx 25rpx;
@ -925,7 +1117,8 @@
height: 18rpx;
}
.commentaries_text_revert_name_box {}
.commentaries_text_revert_name_box {
}
.allcommentaries {
font-size: 30rpx;
@ -1278,7 +1471,6 @@
background-color: #fff;
line-height: 1.8;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
@ -1396,7 +1588,8 @@
width: 244rpx;
height: 68rpx;
position: absolute;
background: url(http://bbcfile.kukeduo.cn//ad001/20171114/813c794a-3122-406c-8a3d-19879fe382aa.png) center no-repeat;
background: url(http://bbcfile.kukeduo.cn//ad001/20171114/813c794a-3122-406c-8a3d-19879fe382aa.png)
center no-repeat;
background-size: 100%;
right: 42rpx;
}
@ -1460,8 +1653,6 @@
/*line-height: 53rpx;*/
width: 690rpx;
/*height: 40rpx*/
;
height: 48rpx;
overflow: hidden;
white-space: nowrap;
@ -1557,8 +1748,6 @@
background-color: #fff;
}
.formButtom {
width: 100% !important;
}
@ -1571,7 +1760,6 @@
z-index: 9;
}
.banner-nav {
/* position: absolute; */
width: 100%;
@ -1671,7 +1859,6 @@
}
}
@keyframes mymove2 {
from {
bottom: 120rpx;
@ -1684,7 +1871,6 @@
}
}
@keyframes mymove3 {
from {
bottom: 120rpx;
@ -1697,7 +1883,6 @@
}
}
@keyframes mymove4 {
from {
bottom: 120rpx;
@ -1710,7 +1895,6 @@
}
}
@keyframes mymove5 {
from {
bottom: 520rpx;
@ -1722,7 +1906,6 @@
}
}
@keyframes mymove6 {
from {
bottom: 420rpx;
@ -1735,7 +1918,6 @@
}
}
@keyframes mymove7 {
from {
bottom: 320rpx;
@ -1748,7 +1930,6 @@
}
}
@keyframes mymove8 {
from {
bottom: 220rpx;

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,70 +1,151 @@
<template>
<view class="page">
<scroll-view scroll-y="true" class="m-orderlist" @scrolltolower="scrollbottom" @scrolltoupper="scrollView" @scroll="bindscroll">
<view class='banner-nav'>
<view class='xx-box'>
<navigator hover-class="none" class="xx" url='/member/member/message'>
<image class='xx1' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_05.png'></image>
<scroll-view
scroll-y="true"
class="m-orderlist"
@scrolltolower="scrollbottom"
@scrolltoupper="scrollView"
@scroll="bindscroll"
>
<view class="banner-nav">
<view class="xx-box">
<navigator hover-class="none" class="xx" url="/member/member/message">
<image
class="xx1"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_05.png"
></image>
</navigator>
</view>
<view class='input_box2' style='background: #f1f1f1;' v-if="NIndex">
<uni-icons class='iconfont icon-sousuo-sousuo' style='font-size:70rpx;color:#959593' @tap='searchinput' />
<input :value="story_index" class="input_box2_input" :placeholder="__('搜索您想看的内容')" placeholder-style="font-size:30rpx;color:#959593;line-height:54rpx" confirm-type="done" @confirm="searchinput" />
<view class="input_box2" style="background: #f1f1f1" v-if="NIndex">
<uni-icons
class="iconfont icon-sousuo-sousuo"
style="font-size: 70rpx; color: #959593"
@tap="searchinput"
/>
<input
:value="story_index"
class="input_box2_input"
:placeholder="__('搜索您想看的内容')"
placeholder-style="font-size:30rpx;color:#959593;line-height:54rpx"
confirm-type="done"
@confirm="searchinput"
/>
</view>
<view class='sq_0-box'>
<navigator hover-class="none" :url="'/community/community/userspace?uid=' + userInfo.user_id" :class="'sq_0 ' + (istop==true?'border22':'')">
<image lazy-load class='sq_1' :src="(userInfo.user_avatar)" mode="scaleToFill" />
<view class="sq_0-box">
<navigator
hover-class="none"
:url="'/community/community/userspace?uid=' + userInfo.user_id"
:class="'sq_0 ' + (istop == true ? 'border22' : '')"
>
<image
lazy-load
class="sq_1"
:src="userInfo.user_avatar"
mode="scaleToFill"
/>
</navigator>
</view>
</view>
<view class='box_title_box' v-for="(item, i) in MemberPostsList" :key="i">
<view class='box_title'>
<navigator hover-class="none" :url='"/community/community/userspace?uid=" + item.user_id' style='position: relative;display: inline-block'>
<view class='box_title_img'>
<image class='box_title_image' :src="item.user_avatar"></image>
<view class="box_title_box" v-for="(item, i) in MemberPostsList" :key="i">
<view class="box_title">
<navigator
hover-class="none"
:url="'/community/community/userspace?uid=' + item.user_id"
style="position: relative; display: inline-block"
>
<view class="box_title_img">
<image class="box_title_image" :src="item.user_avatar"></image>
</view>
<view class='box_title_name'>{{item.user_nickname}}</view>
<view class='box_title_name_time'>{{item.story_time_str}}</view>
<view class="box_title_name">{{ item.user_nickname }}</view>
<view class="box_title_name_time">{{ item.story_time_str }}</view>
</navigator>
<view v-if="item.story_is_top" class='box_title_guanzhu'>
<view class='box_title_guanzhu_text'>{{__('置顶')}}</view>
<view v-if="item.story_is_top" class="box_title_guanzhu">
<view class="box_title_guanzhu_text">{{ __("置顶") }}</view>
</view>
</view>
<navigator @tap="moNitor" hover-class="none" :url='"/community/community/detail?id="+item.story_id' style='display: inline-block'>
<view class='box_title_conton'>{{item.story_content}}</view>
<view class='newsimg_box_img' v-if="item.story_file.length>0">
<navigator
@tap="moNitor"
hover-class="none"
:url="'/community/community/detail?id=' + item.story_id"
style="display: inline-block"
>
<view class="box_title_conton">{{ item.story_content }}</view>
<view class="newsimg_box_img" v-if="item.story_file.length > 0">
<block v-for="(imgItem, j) in item.story_file" :key="j">
<view class='newsimg_box_image3' :style='"background: url(" + imgItem + ") center no-repeat ;background-size:cover;"'></view>
<view
class="newsimg_box_image3"
:style="
'background: url(' +
imgItem +
') center no-repeat ;background-size:cover;'
"
></view>
</block>
</view>
</navigator>
<view class='pldz_box'>
<view style='width:350rpx;'>
<view class='rmtz_box_content_box_dz'>
<image class='dz' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_03.png'></image>
<view class="pldz_box">
<view style="width: 350rpx">
<view class="rmtz_box_content_box_dz">
<image
class="dz"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_03.png"
></image>
<span>{{ item.story_brower_count }}</span>
</view>
<view class='rmtz_box_content_box_pl'>
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/tzxq_05.png'></image>
<span style="font-size: 12px;color: #959593;">{{item.story_comment_count}}</span>
<view class="rmtz_box_content_box_pl">
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/tzxq_05.png"
></image>
<span style="font-size: 12px; color: #959593">{{
item.story_comment_count
}}</span>
</view>
<button hover-class='none' style='padding-left:22rpx;' v-if="item.IsFabulous == 1" class='rmtz_box_content_box_pl' :data-story_id='item.story_id' open-type="getUserInfo" lang="zh_CN" @click="onUnLike">
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/side1_03.png'></image>
<button
hover-class="none"
style="padding-left: 22rpx"
v-if="item.IsFabulous == 1"
class="rmtz_box_content_box_pl"
:data-story_id="item.story_id"
open-type="getUserInfo"
lang="zh_CN"
@click="onUnLike"
>
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/side1_03.png"
></image>
<span style="font-size: 12px">{{ item.story_like_count }}</span>
</button>
<button hover-class='none' style='padding-left:22rpx;' class='rmtz_box_content_box_pl' v-else :data-story_id='item.story_id' open-type="getUserInfo" lang="zh_CN" @click="onLike">
<image class='pl' src='https://static.lancerdt.com/xcxfile/appicon/img/side1_05.png'></image>
<span style='font-size:12px;color:#959593'>{{item.story_like_count}}</span>
<button
hover-class="none"
style="padding-left: 22rpx"
class="rmtz_box_content_box_pl"
v-else
:data-story_id="item.story_id"
open-type="getUserInfo"
lang="zh_CN"
@click="onLike"
>
<image
class="pl"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/img/side1_05.png"
></image>
<span style="font-size: 12px; color: #959593">{{
item.story_like_count
}}</span>
</button>
</view>
<view class='rmtz_box_content_box_p11'><span>{{__('来自:')}}{{item.user_nickname}}</span></view>
<view class="rmtz_box_content_box_p11"
><span>{{ __("来自:") }}{{ item.user_nickname }}</span></view
>
</view>
</view>
<view class="m-loading-box" style="margin-top: 120rpx;">
<view class="m-loading-box" style="margin-top: 120rpx">
<block v-if="ispage">
<view class="u-loadmore">
<label class="u-loading"></label>
<text class="u-loadmore-tips">{{__('正在加载')}}</text>
<text class="u-loadmore-tips">{{ __("正在加载") }}</text>
</view>
<view>
<text></text>
@ -72,32 +153,39 @@
</block>
<block v-else>
<view class="u-loadmore u-loadmore-line">
<text class="u-loadmore-tips">{{__('没有更多数据啦!')}}</text>
<text class="u-loadmore-tips">{{ __("没有更多数据啦!") }}</text>
</view>
</block>
</view>
</scroll-view>
<view class="u-top-default">
<image @click="onPostStory" src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_post.png' class='quicknav' style='position: fixed;right: 20rpx;bottom:120rpx'></image>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_gotop.png' :class='"quicknav " + (isquicknav?"":"hide")' @tap="returnTop" style='position: fixed;right: 20rpx;top:82%'></image>
<image
@click="onPostStory"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_post.png"
class="quicknav"
style="position: fixed; right: 20rpx; bottom: 120rpx"
></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/black/nav_gotop.png"
:class="'quicknav ' + (isquicknav ? '' : 'hide')"
@tap="returnTop"
style="position: fixed; right: 20rpx; top: 82%"
></image>
</view>
</view>
</template>
<script>
import diy from '../../components/themes/diy.vue'
import diy from "../../components/themes/diy.vue";
import dateUtil from "../../helpers/util_date";
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
data: function () {
return {
options: {},
pageId: '',
pageId: "",
loadPageFlag: false,
PageContent: [],
BgConfig: {},
@ -119,37 +207,44 @@
isquicknav: false,
opacity: 1,
background: "f1f1f1",
istop: true
}
istop: true,
};
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
components: {
diy
diy,
},
onLoad: function (options) {
uni.setNavigationBarTitle({
title: this.__('帖子列表')
title: this.__("帖子列表"),
});
var that = this;
that.$.showLoading();
this.setData({
options: options,
story_index: options.story_index ? options.story_index : '',
story_index: options.story_index ? options.story_index : "",
});
var w = that.$.getSystemInfoSync().windowWidth;
that.setData({
w: w
})
w: w,
});
that.initData(false);
//
uni.setStorageSync('store_id', options.store_id);
uni.setStorageSync("store_id", options.store_id);
},
/**
@ -158,9 +253,10 @@
onShow: function () {
let that = this;
this.refresh || this.setData({
refresh: true
})
this.refresh ||
this.setData({
refresh: true,
});
},
/**
@ -168,7 +264,7 @@
*/
onUnload: function () {
//
var that = this
var that = this;
this.notice.removeNotification("RefreshProduct", that);
},
@ -176,15 +272,13 @@
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.initData(true)
this.initData(true);
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
onReachBottom: function () {},
/**
* 用户点击右上角分享
@ -193,8 +287,8 @@
return {
title: this.shareTitle,
imageUrl: this.shareImg,
path: "/pages/index/index?uid=" + this.userInfo.user_id
}
path: "/pages/index/index?uid=" + this.userInfo.user_id,
};
},
/**
@ -203,17 +297,22 @@
onPageScroll: function () {},
methods: {
...mapMutations(['logout', 'getPlantformInfo', 'forceUserInfo', 'getStoreInfo']),
...mapMutations([
"logout",
"getPlantformInfo",
"forceUserInfo",
"getStoreInfo",
]),
getPostsList: function () {
let that = this;
var params = {
page: this.page,
story_index: that.story_index
story_index: that.story_index,
};
if (this.options.pid) {
params['product_id'] = this.options.pid;
params["product_id"] = this.options.pid;
}
that.$.request({
@ -222,33 +321,34 @@
success: function (data, status, msg, code) {
if (data.items.length > 0) {
for (var r = 0; r < data.items.length; r++) {
data.items[r]['story_time_str'] = dateUtil.dateUtils.format(that.$.datetimeFormatter(data.items[r]['story_time']));
data.items[r]["story_time_str"] = dateUtil.dateUtils.format(
that.$.datetimeFormatter(data.items[r]["story_time"])
);
}
if (data.page >= data.total) {
that.setData({
MemberPostsList: that.MemberPostsList.concat(data.items),
flag: false,
ispage: false
ispage: false,
});
} else {
that.setData({
MemberPostsList: that.MemberPostsList.concat(data.items),
flag: true,
ispage: true
})
ispage: true,
});
}
} else {
that.setData({
flag: false,
ispage: false
})
ispage: false,
});
}
that.$.stopPullDownRefresh()
that.$.stopPullDownRefresh();
that.$.hideLoading();
}
},
});
},
@ -258,27 +358,25 @@
//that.getDivModel(force_refresh)
let param = {};
let param = {}
that.getPostsList()
that.getPostsList();
},
moNitor: function () {
this.setData({
isClose: false
})
isClose: false,
});
},
onLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.dianzan(a.currentTarget.dataset.story_id)
that.dianzan(a.currentTarget.dataset.story_id);
});
},
dianzan: function (story_id) {
var that = this,
params = {
story_id: story_id
story_id: story_id,
};
that.$.request({
@ -290,24 +388,25 @@
//
for (var r = 0; r < that.MemberPostsList.length; r++) {
if (story_id == that.MemberPostsList[r]['story_id']) {
that.MemberPostsList[r]['IsFabulous'] = 1;
if (story_id == that.MemberPostsList[r]["story_id"]) {
that.MemberPostsList[r]["IsFabulous"] = 1;
}
}
} else {}
} else {
}
},
});
},
onUnLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.canceldianzan(a.currentTarget.dataset.story_id)
that.canceldianzan(a.currentTarget.dataset.story_id);
});
},
canceldianzan: function (story_id) {
var that = this,
params = {
story_id: story_id
story_id: story_id,
};
that.$.request({
@ -317,12 +416,13 @@
if (200 == status) {
//
for (var r = 0; r < that.MemberPostsList.length; r++) {
if (story_id == that.MemberPostsList[r]['story_id']) {
that.MemberPostsList[r]['IsFabulous'] = 0;
if (story_id == that.MemberPostsList[r]["story_id"]) {
that.MemberPostsList[r]["IsFabulous"] = 0;
}
}
} else {}
} else {
}
},
});
},
@ -330,16 +430,16 @@
let that = this;
that.forceUserInfo(function (user) {
that.$.navigateTo({
url: "/community/community/post"
})
})
url: "/community/community/post",
});
});
},
//diy
getDivModel: function (force_refresh) {
var that = this,
params = {
page_type: 'page_sns'
page_type: "page_sns",
};
that.$.request({
@ -347,12 +447,12 @@
data: params,
ajaxCache: {
timeout: that.Config.CACHE_EXPIRE,
forceRefresh: force_refresh
forceRefresh: force_refresh,
},
success: function (data, status, msg, code) {
uni.stopPullDownRefresh()
uni.stopPullDownRefresh();
that.setData({
loadPageFlag: true
loadPageFlag: true,
});
that.setData({
@ -361,9 +461,9 @@
BgConfig: that.$.parseJSON(data.page_config),
PageNav: that.$.parseJSON(data.page_nav),
shareImg: data.page_share_image,
shareTitle: data.page_share_title
shareTitle: data.page_share_title,
});
}
},
});
},
searchinput: function (a) {
@ -371,57 +471,62 @@
url: "/community/community/lists?story_index=" + a.detail.value,
success: function (a) {},
fail: function (a) {},
complete: function(a) {}
}), this.setData({
story_index: ""
})
complete: function (a) {},
}),
this.setData({
story_index: "",
});
},
scrollbottom: function () {
if (this.flag) {
var that = this;
that.setData({
flag: false
flag: false,
});
clearTimeout(t);
var t = setTimeout(function () {
that.setData({
page: parseInt(that.page) + 1
page: parseInt(that.page) + 1,
});
that.getPostsList()
}, 500)
that.getPostsList();
}, 500);
}
},
bindscroll: function (a) {
//console.log(a.detail.scrollTop);
0 != a.detail.scrollTop && wx.setStorage({
0 != a.detail.scrollTop &&
wx.setStorage({
key: "key",
data: [a.detail.scrollTop]
data: [a.detail.scrollTop],
});
100 < a.detail.scrollTop ? this.setData({
100 < a.detail.scrollTop
? this.setData({
opacity: 1,
background: "f1f1f1",
istop: true
}) : this.setData({
istop: true,
})
: this.setData({
opacity: 0,
background: "fff",
istop: false
istop: false,
});
a.detail.scrollTop >= this.screenHeight ? this.setData({
isquicknav: true
}) : this.setData({
isquicknav: false
a.detail.scrollTop >= this.screenHeight
? this.setData({
isquicknav: true,
})
: this.setData({
isquicknav: false,
});
},
scrollView: function (e) {},
scrollTop: function () {},
returnTop: function () {},
}
},
};
</script>
@ -429,8 +534,7 @@
<style lang="scss">
@import "../../styles/_variables";
@import '../../styles/layout.scss';
@import "../../styles/layout.scss";
send-message button {
display: inline-block;
@ -569,7 +673,8 @@
height: 100rpx;
}
.newsimg_box {}
.newsimg_box {
}
.newsimg_box_img {
padding: 0rpx 24rpx 20rpx 24rpx;
@ -799,7 +904,8 @@
height: 18rpx;
}
.commentaries_text_revert_name_box {}
.commentaries_text_revert_name_box {
}
.allcommentaries {
font-size: 30rpx;
@ -1151,7 +1257,6 @@
background-color: #fff;
line-height: 1.8;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
@ -1269,7 +1374,8 @@
width: 244rpx;
height: 68rpx;
position: absolute;
background: url(http://bbcfile.kukeduo.cn//ad001/20171114/813c794a-3122-406c-8a3d-19879fe382aa.png) center no-repeat;
background: url(http://bbcfile.kukeduo.cn//ad001/20171114/813c794a-3122-406c-8a3d-19879fe382aa.png)
center no-repeat;
background-size: 100%;
right: 42rpx;
}
@ -1333,7 +1439,6 @@
/*line-height: 53rpx;*/
width: 690rpx;
/*height: 40rpx*/
;
}
.u_top {

View File

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

View File

@ -63,9 +63,9 @@
<cover-view class="right-text"></cover-view>
<!-- #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 -->
<text class="right-text">{{item.story_like_count}}</text>
@ -75,7 +75,7 @@
<!-- #endif -->
<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 -->
<text class="right-text">{{item.story_comment_count}}</text>
@ -84,7 +84,7 @@
<cover-view class="right-text">{{item.story_comment_count}}</cover-view>
<!-- #endif -->
<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 -->
<text class="right-text">{{__('分享')}}</text>
@ -95,7 +95,7 @@
</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>
</div>

View File

@ -57,9 +57,9 @@
<cover-view class="right-text"></cover-view>
<!-- #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 -->
<text class="right-text">{{item.story_like_count}}</text>
@ -69,7 +69,7 @@
<!-- #endif -->
<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 -->
<text class="right-text">{{item.story_comment_count}}</text>
@ -78,7 +78,7 @@
<cover-view class="right-text">{{item.story_comment_count}}</cover-view>
<!-- #endif -->
<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 -->
<text class="right-text">{{__('分享')}}</text>
@ -89,7 +89,7 @@
</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>
</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

@ -2,27 +2,53 @@
<template>
<view>
<!-- 新手大礼包 -->
<view :class="['msk', (!user_is_new || isClosed)?'hide':'']" @tap="cancel">
<view class="msk_box" url="../receivecontent/receivecontent" @tap="innertouch">
<image src="https://static.lancerdt.com/xcxfile/appicon/Package.png" style='width:100%'></image>
<view class="msk_box_info" style='right:16%;top:40%;'><text>{{__('¥')}}</text><label>{{CouponAmount}}</label>
<view
:class="['msk', !user_is_new || isClosed ? 'hide' : '']"
@tap="cancel"
>
<view
class="msk_box"
url="../receivecontent/receivecontent"
@tap="innertouch"
>
<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 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="m-coupon-box" @tap="innertouch">
<view :class="mskType==1?'m-coupon-box-top':'m-coupon-box-top2'"></view>
<view
:class="mskType == 1 ? 'm-coupon-box-top' : 'm-coupon-box-top2'"
></view>
<view class="m-coupon-box-content">
<scroll-view scroll-y="true" class="m-coupon-box-list">
<view class="m-coupon-box-item" v-for="(item, index) in coupon_rows" :key="index">
<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
class="m-coupon-box-item"
v-for="(item, index) in coupon_rows"
:key="index"
>
<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-right'><label>{{sprintf(__('有效日期至:%s'), item.voucher_end_date || item.activity_endtime)}}</label>
<view class="m-coupon-box-item-right"
><label>{{
sprintf(
__("有效日期至:%s"),
item.voucher_end_date || item.activity_endtime
)
}}</label>
<text>{{ item.activity_name }}</text>
</view>
</view>
@ -30,22 +56,20 @@
</view>
<view class="m-coupon-box-bottom"></view>
<view class="close_msk" @tap="cancelsuccess">
<image style="width:50rpx;height:50rpx"
src="https://static.lancerdt.com/xcxfile/appicon/img/delete.png"></image>
<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>
<script>
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
import $ from "../../helpers/util";
@ -53,52 +77,65 @@
props: {
Coupons: {
type: Object,
default:{}
default: {},
},
user_is_new: {
type: Number,
default:0
default: 0,
},
CouponAmount: {
type: Number,
default:0.00
default: 0.0,
},
mskType: {
type: Number,
default:1
}
default: 1,
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin', '__']),
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
"__",
]),
data() {
return {
isShowSuccessBox: false,
isClosed: false,
coupon_rows:[]
}
},
mounted() {
coupon_rows: [],
};
},
mounted() {},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo', 'showCartNum']),
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
"showCartNum",
]),
receivenow: function () {
this.userReceiveCoupon()
this.userReceiveCoupon();
},
cancel: function () {
this.setData({isClosed: true})
this.setData({ isClosed: true });
},
cancelsuccess: function () {
this.setData({isShowSuccessBox: false})
},
innertouch: function () {
this.setData({ isShowSuccessBox: false });
},
innertouch: function () {},
userReceiveCoupon: function () {
let that = this;
var params = {
CouponIds: "",
user_is_new: this.userInfo.user_is_new
user_is_new: this.userInfo.user_is_new,
};
this.forceUserInfo((user) => {
if (user) {
$.request({
@ -110,7 +147,10 @@
that.login({ user_is_new: 0 });
that.setData({isShowSuccessBox: true, coupon_rows: data.items})
that.setData({
isShowSuccessBox: true,
coupon_rows: data.items,
});
} else {
$.alert(msg);
}
@ -118,10 +158,9 @@
});
}
});
}
}
}
},
},
};
</script>
<style scoped>
@ -132,40 +171,32 @@
.top {
position: absolute;
top: 0;
background-image: linear-gradient(to top , rgba(0,0,0,0) , rgba(0,0,0,0.7));
background-image: linear-gradient(
to top,
rgba(0, 0, 0, 0),
rgba(0, 0, 0, 0.7)
);
width: 750rpx;
height: 300rpx;
}
.bottom {
position: absolute;
bottom: 0;
background-image: linear-gradient(to top , rgba(0,0,0,0.7) , rgba(0,0,0,0));
background-image: linear-gradient(
to top,
rgba(0, 0, 0, 0.7),
rgba(0, 0, 0, 0)
);
width: 750rpx;
height: 300rpx;
}
.progressBar {
border-radius: 2rpx;
height: 4rpx;
background-color: #FFFFFF;
background-color: #ffffff;
z-index: 999999;
position: absolute;
bottom: 40rpx;
//#ifndef APP-PLUS-NVUE
animation: flicker 4s linear infinite;
animation-direction:alternate;
//#endif
}
//#ifndef APP-PLUS-NVUE
@keyframes flicker {
0% { box-shadow:0 0 0 #FFFFFF; }
/** 暂停效果 */
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>

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

View File

@ -14,12 +14,9 @@
</view>
</scroll-view>
<scroll-view scroll-top="200" class="m-navbar scroll-view_H" scroll-x
:style="'width:' + ((tabs[key].sidx && tabs[key].sort) ? '80%' : '94%')" :show-scrollbar="true"
v-if="(tabs[key].isShowFilter)">
<scroll-view scroll-top="200" class="m-navbar scroll-view_H" scroll-x :style="'width:' + ((tabs[key].sidx && tabs[key].sort) ? '80%' : '94%')" :show-scrollbar="true" v-if="(tabs[key].isShowFilter)">
<block v-for="(price,index) in prices" :key="index">
<view class="filter-item " :class="priceIndex == index ? 'filter-item-on' :''"
@click="selectPriceIndex(index)">
<view class="filter-item " :class="priceIndex == index ? 'filter-item-on' :''" @click="selectPriceIndex(index)">
{{ price.title }}
</view>
</block>
@ -27,64 +24,71 @@
</view>
<view scroll-y="true" :class="['m-product-all u-pa', isShowFilter && isFilterFixed ? 'm-product-box' : '']"
:style="{backgroundColor:bgColor}">
<view scroll-y="true" :class="['m-product-all u-pa', isShowFilter && isFilterFixed ? 'm-product-box' : '']" :style="{backgroundColor:bgColor}">
<view :class="{'m-product-list':1, 'm-listv':viewtype==1}" v-if="(isdata)" style="width: 100%;">
<block v-for="(item, i) in pdlist" :key="i">
<block
v-if="((priceIndex == -1) || (post.product_unit_price_max > 0 ? item.ItemSalePrice >= post.product_unit_price_min && item.ItemSalePrice <= post.product_unit_price_max : item.ItemSalePrice >= post.product_unit_price_min))">
<navigator v-if="(!isFG)"
:url="(item.is_virtual?'/pages/product/detail':'/pages/product/detail') + '?pid=' + (item.id)"
class="m-product-item" :style="{marginLeft:(i%2==0 ? 10-paddingLeft : 5)*2 + 'rpx'}">
<block v-if="((priceIndex == -1) || (post.product_unit_price_max > 0 ? item.ItemSalePrice >= post.product_unit_price_min && item.ItemSalePrice <= post.product_unit_price_max : item.ItemSalePrice >= post.product_unit_price_min))">
<navigator v-if="(!isFG)" :url="(item.is_virtual?'/pagesub/product/detail':'/pagesub/product/detail') + '?pid=' + (item.id)" class="m-product-item" :style="{marginLeft:(i%2==0 ? 10-paddingLeft : 5)*2 + 'rpx'}">
<view class="m-product-img product-list">
<view class="m-img-number" :class="'m-img-' + (i > 3 ? 3 : i)" v-if="(isShowNumber)">
<span>{{ i + 1 }}</span>
</view>
<image lazy-load :src="($.img(item.product_image, 360, 360))" v-if="item.product_image" />
</view>
<view class="m-product-info1" style="display:flex; flex-flow: column;justify-content: space-between;">
<view class="m-product-name2">
<label>
<text class="tag tag-bargain" v-if="item.activity_type_id == StateCode.ACTIVITY_TYPE_BARGAIN">
{{ item.activity_type_name }}
</text>
<text class="tag tag-gift" v-if="item.activity_type_id == StateCode.ACTIVITY_TYPE_GIFT">
{{ item.activity_type_name }}
</text>
<text class="tag tag-saleoff"
v-if="item.activity_type_id == StateCode.ACTIVITY_TYPE_LIMITED_DISCOUNT">
{{ item.activity_type_name }}
</text>
<text class="tag tag-reduction" v-if="item.activity_type_id == StateCode.ACTIVITY_TYPE_REDUCTION">
{{ item.activity_type_name }}
</text>
{{ item.SalesName }}</label>
<block v-if="item.activity_item_row" v-for="(id, idx) in item.activity_type_id_row" :key="idx">
<ms-activity-tag :typeId="id" v-if="id"></ms-activity-tag>
</block>
{{ item.product_name }}
</label>
</view>
<view class="m-product-price1">
<view class="money">
<block v-if="item.ItemSalePrice">
<label>{{ __('¥') }}</label>{{ number_format(item.ItemSalePrice, 2) }}
<view style='display: flex;margin-top:10upx;height: 40rpx;line-height: 40rpx;' v-if="(item.product_tag_list && item.product_tag_list.length > 0)">
<block v-for="(tag,index) in item.product_tag_list" :key="index">
<uni-tag :text="tag" type="primary" size="small" style="border-radius: 8rpx;margin-right: 4rpx;"></uni-tag>
</block>
</view>
<view class="num" v-if="(false && plantformInfo.config.product_salenum_flag && item.SaleNum>0)">
<view class="m-product-price1" style="padding-top:0;">
<view class="money">
<block v-if="item.item_unit_price!='0.00'">
<label>{{ __('¥') }}</label>{{ item.item_unit_price }}
</block>
</view>
<view class="num" v-if="!plantformInfo.prodcut_addcart_flag && (plantformInfo.product_salenum_flag && item.SaleNum>0)">
<text>{{ __('已售') }}</text>
<label style="color:#db384c;margin-left: 2px;">{{ item.SaleNum }}</label>
</view>
<view class="add-cart hide">
<uni-icons type="plusempty" size="20" color="#fff"></uni-icons>
<view class="multi-spec-box" v-if="plantformInfo.prodcut_addcart_flag">
<view class="item-num-box">
<label class="item-num-over" v-if="(item.product_quantity==0)">{{__('已售罄')}}</label>
<block v-else>
<block v-if="(!item.HasManualSku)">
<view @click.stop="subCart" :data-cart_id="(item.cart_id)" :data-num="(item.user_cart_quantity)" :data-stock="(item.product_quantity)" :data-step="(-1)" :data-spuid="(item.product_id ? item.product_id : 0)" :data-pname="(item.product_name ? item.product_name : '')" :data-skuid="(item.item_id)" :data-index="(i)" v-if="(item.user_cart_quantity>0)" class="iconfont icon-jian item-num-dec"></view>
<text class="item-num-add" v-if="(item.user_cart_quantity>0)">{{item.user_cart_quantity>99?'99+':item.user_cart_quantity}}</text>
<view @click.stop="addCart" :data-num="(item.user_cart_quantity)" :data-stock="(item.product_quantity)" :data-step="(1)" :data-spuid="(item.product_id ? item.product_id : 0)" :data-pname="(item.product_name ? item.product_name : '')" :data-skuid="(item.item_id)" :data-index="(i)" :data-is_virtual="(item.kind_id!=1201)" class="iconfont icon-add "></view>
</block>
<label class="item-num-choose" @click.stop="showProduct" :data-item_id="(item.item_id)" :data-spuid="(item.product_id ? item.product_id : 0)" :data-index="(i)" v-else>{{__('选规格')}}
<view class="car-num" v-if="(item.user_cart_quantity>0)" style="right:-14rpx;top:-20rpx;">{{item.user_cart_quantity>99?'99+':item.user_cart_quantity}}</view>
</label>
</block>
</view>
</view>
<view :class="'c'+1" v-if="false">
</view>
</view>
<view class="points_box" v-if="plantformInfo.item_max_points_rate > 0">
<text>{{sprintf(__('最多可用 %s 积分'),number_format(item.item_unit_price*plantformInfo.item_max_points_rate/100/plantformInfo.jx_points_vaue_rate,0))}}</text>
</view>
</view>
</navigator>
</block>
</block>
</view>
<navigator url="/pagesub/search/search" redirect="true" class="m-nullpage" v-else>
<view class="m-nullpage-middle">
@ -118,9 +122,12 @@
<script>
import uniDrawer from '@/components/uni-drawer.vue';
import uniDrawer from '@/components/uni-drawer/uni-drawer.vue';
import uniTag from '@/components/uni-tag/uni-tag.vue';
import {mapMutations, mapState} from 'vuex';
import {
mapMutations,
mapState
} from 'vuex';
export default {
props: {
@ -194,7 +201,7 @@ export default {
isShowLoading: {
type: [Boolean, Number],
default: true
default: false
},
isGuessFlag: {
type: Boolean,
@ -204,8 +211,7 @@ export default {
type: String,
default: ''
},
uniId:
{
uniId: {
type: String,
default () {
return 'guessyoulike'
@ -308,8 +314,10 @@ export default {
let tmp_opt = this.optionStr;
options = Object.assign(options, tmp_opt);
this.setData({
post: {
store_id: options.store_id,
@ -347,7 +355,7 @@ export default {
},
tabs: options.data ? options.data : []
});
console.log("tabs:",JSON.stringify(options))
if (this.tabs) {
this.tabs.map(function(value, index) {
@ -364,8 +372,6 @@ export default {
that.tabs[index].sidx = value.options.sidx
that.tabs[index].sort = value.options.sort
}
}
})
@ -377,14 +383,18 @@ export default {
//console.log(this.tabs)
}
console.log("product_ids:",this.post.product_ids)
if (this.post.product_ids) {
this.GetPlist(function() {
that.pdlist.length == 0 ? that.setData({isdata: false}) : that.setData({isdata: true});
that.pdlist.length == 0 ? that.setData({
isdata: false
}) : that.setData({
isdata: true
});
});
} else {
this.isdata = false;
this.isdata = !1;
return;
}
@ -483,12 +493,15 @@ export default {
}
if (this.post.product_ids) {
this.GetPlist(function() {
that.pdlist.length == 0 ? that.setData({isdata: false}) : that.setData({isdata: true});
that.pdlist.length == 0 ? that.setData({
isdata: !1
}) : that.setData({
isdata: !0
});
});
} else {
this.isdata = false;
this.isdata = !1;
return;
}
@ -681,10 +694,14 @@ export default {
if (this.post.product_ids.length > 0) {
this.GetPlist(function() {
that.pdlist.length == 0 ? that.setData({isdata: false}) : that.setData({isdata: true});
that.pdlist.length == 0 ? that.setData({
isdata: !1
}) : that.setData({
isdata: !0
});
});
} else {
this.isdata = false;
this.isdata = !1;
return;
}
@ -701,7 +718,9 @@ export default {
items[i].checked = false;
}
this.setData({assist: assist})
this.setData({
assist: assist
})
},
assistItemChange: function(e) {
@ -721,7 +740,9 @@ export default {
}
}
this.setData({assist: assist})
this.setData({
assist: assist
})
},
assistItemRadionChange: function(e) {
var value = e.target.value;
@ -738,12 +759,16 @@ export default {
}
}
this.setData({assist: assist})
this.setData({
assist: assist
})
},
scrollbottom: function(e) {
if (this.flag) {
var that = this;
that.setData({flag: false}), clearTimeout(n);
that.setData({
flag: false
}), clearTimeout(n);
var post = this.post;
/*
@ -766,13 +791,15 @@ export default {
*/
GetPlist: function(callback) {
let url = this.Config.URL.pt.list;
let url = this.Config.URL.product.lists;
if (this.isGuessFlag) {
url = this.Config.URL.pt.guess;
url = this.Config.URL.product.guess;
}
this.setData({flag: false});
this.setData({
flag: false
});
var that = this;
let params = Object.assign({}, that.post);
@ -793,10 +820,16 @@ export default {
params.contract_type_ids = that.post.contract_type_ids.join(",");
params.market_category_ids = that.post.market_category_ids.join(",");
params.product_tags = that.post.product_tags.join(",");
params.item_id = that.post.product_ids;
that.post.product_ids = that.post.product_ids.match(/\d+/g).map(Number);
params.item_ids = that.post.product_ids.join(",");
params.product_ids = '';
params.virtual = '';
console.log("params.item_ids--",params.item_ids)
that.$.request({
url: this.Config.URL.pt.listItem,
url: url,
data: params,
loading: false,
method: "GET",
@ -906,7 +939,9 @@ export default {
if (that.assist.length == 0) {
that.$.request({
url: that.Config.URL.pt.listFilter,
data: {category_id: that.post.category_id},
data: {
category_id: that.post.category_id
},
ajaxCache: {
timeout: this.Config.CACHE_EXPIRE
},
@ -917,7 +952,9 @@ export default {
contracts[i].contract_is_unselected = true;
}
that.setData({contract_row: contracts});
that.setData({
contract_row: contracts
});
let markets = data.markets;
@ -926,7 +963,9 @@ export default {
markets[i].market_is_unselected = true;
}
that.setData({market_row: markets});
that.setData({
market_row: markets
});
//
for (var i = 0; i < data.assists.length; i++) {
@ -987,6 +1026,7 @@ export default {
line-height: 40rpx;
letter-spacing: 1rpx;
position: relative;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
@ -1125,6 +1165,7 @@ export default {
line-height: 60rpx;
}
& {
position: absolute;
z-index: 10;
height: 60rpx;
@ -1136,6 +1177,7 @@ export default {
left: 0;
width: 100%;
}
}
.flag {
position: absolute;
@ -1224,13 +1266,10 @@ export default {
margin-top: calc(var(--window-top) + 4rpx);
}
.dropItem {
}
.dropItem {}
.u-pa .m-product-list {
}
.u-pa .m-product-list {}
.m-listv .m-product-item:nth-child(1) {
margin-top: 20rpx !important;
@ -1271,13 +1310,13 @@ export default {
}
}
.money {
/* .money {
font-size: 32rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: $default-skin-bg;
line-height: 50rpx;
}
} */
.add-cart {
width: 50rpx;
@ -1325,7 +1364,7 @@ export default {
.m-navbar-info {
display: flex;
justify-content: space-between;
justify-content: flex-start;
}
.m-img-number {
@ -1348,19 +1387,19 @@ export default {
}
.m-img-0 {
background-image:url('https://static.lancerdt.com/xcxfile/appicon/rank/1.png')
background-image: url('https://static.shopsuite.cn/xcxfile/appicon/rank/1.png')
}
.m-img-1 {
background-image:url('https://static.lancerdt.com/xcxfile/appicon/rank/2.png')
background-image: url('https://static.shopsuite.cn/xcxfile/appicon/rank/2.png')
}
.m-img-2 {
background-image:url('https://static.lancerdt.com/xcxfile/appicon/rank/3.png')
background-image: url('https://static.shopsuite.cn/xcxfile/appicon/rank/3.png')
}
.m-img-3 {
background-image:url('https://static.lancerdt.com/xcxfile/appicon/rank/4.png')
background-image: url('https://static.shopsuite.cn/xcxfile/appicon/rank/4.png')
}
@ -1390,4 +1429,19 @@ export default {
display: none;
}
.m-product-info1{
.points_box{
text{
color: #daa520;
height: 40rpx;
line-height: 40rpx;
padding: 0rpx 15rpx;
font-size: 24rpx;
border: 1px solid #daa520;
border-radius: 10rpx;
display: inline-block;
overflow: hidden;
}
}
}
</style>

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,21 +1,59 @@
<template>
<div class="mpvue-picker">
<div :class="{'pickerMask':showPicker}" @click="maskClick" catchtouchmove="true"></div>
<div class="mpvue-picker-content " :class="{'mpvue-picker-view-show':showPicker}">
<div
:class="{ pickerMask: showPicker }"
@click="maskClick"
catchtouchmove="true"
></div>
<div
class="mpvue-picker-content"
:class="{ 'mpvue-picker-view-show': showPicker }"
>
<div class="mpvue-picker__hd" catchtouchmove="true">
<div class="mpvue-picker__action" @click="pickerCancel">{{__('取消')}}</div>
<div class="mpvue-picker__action" :style="{color:themeColor}" @click="pickerConfirm">{{__('确定')}}</div>
<div class="mpvue-picker__action" @click="pickerCancel">
{{ __("取消") }}
</div>
<picker-view indicator-style="height: 40px;" class="mpvue-picker-view" :value="pickerValue" @change="pickerChange">
<div
class="mpvue-picker__action"
:style="{ color: themeColor }"
@click="pickerConfirm"
>
{{ __("确定") }}
</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>
<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>
<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>
<div
class="picker-item"
v-for="(item, index) in areaDataList"
:key="index"
>
{{ item.label }}
</div>
</picker-view-column>
</block>
</picker-view>
@ -24,8 +62,6 @@
</template>
<script>
export default {
data() {
return {
@ -36,50 +72,49 @@
/* 是否显示控件 */
showPicker: false,
provinceData: [],
cityData: [],
areaData: [],
};
},
created() {
this.init()
this.init();
},
props: {
/* 默认值 */
pickerValueDefault: {
type: Array,
default() {
return [0, 0, 0]
}
return [0, 0, 0];
},
},
/* 主题色 */
themeColor: String
themeColor: String,
},
watch: {
pickerValueDefault() {
this.init();
}
},
},
methods: {
init() {
let that = this;
// 使
let district_data = uni.getStorageSync('district_data');
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
timeout: this.cf.CACHE_EXPIRE,
},
success: function (data, status, msg, code) {
if (status == 200) {
uni.setStorageSync('district_data', data);
uni.setStorageSync("district_data", data);
that.setDistrictData(data);
}
}
},
});
} else {
that.setDistrictData(district_data);
@ -93,12 +128,13 @@
this.handPickValueDefault(); // pickerValueDefault
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.areaDataList =
district_data.areaData[this.pickerValueDefault[0]][
this.pickerValueDefault[1]
];
this.pickerValue = this.pickerValueDefault;
},
@ -112,11 +148,11 @@
},
pickerCancel() {
this.showPicker = false;
this._$emit('onCancel');
this._$emit("onCancel");
},
pickerConfirm(e) {
this.showPicker = false;
this._$emit('onConfirm');
this._$emit("onConfirm");
},
showPickerView() {
this.showPicker = true;
@ -155,11 +191,23 @@
if (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) {
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;
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;
}
}
},
@ -179,34 +227,38 @@
changePickerValue[2] = 0;
}
this.pickerValue = changePickerValue;
this._$emit('onChange');
this._$emit("onChange");
},
_$emit(emitName) {
let pickObj = {
label: this._getLabel(),
value: this._getVale(),
cityCode: this._getCityCode()
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
let pcikerLabel = [
this.provinceDataList[this.pickerValue[0]].label,
this.cityDataList[this.pickerValue[1]].label,
this.areaDataList[this.pickerValue[2]].label,
];
return pcikerLabel;
},
_getVale() {
let pcikerValue = [this.provinceDataList[this.pickerValue[0]].value, this.cityDataList[this.pickerValue[1]].value,
this.areaDataList[this.pickerValue[2]].value
let pcikerValue = [
this.provinceDataList[this.pickerValue[0]].value,
this.cityDataList[this.pickerValue[1]].value,
this.areaDataList[this.pickerValue[2]].value,
];
return pcikerValue;
},
_getCityCode() {
return this.areaDataList[this.pickerValue[2]].value;
}
}
},
},
};
</script>
@ -245,7 +297,7 @@
}
.mpvue-picker__hd:after {
content: ' ';
content: " ";
position: absolute;
left: 0;
bottom: 0;

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,36 +1,87 @@
<template name="quick-nav">
<view :class="[animation ? '' : 'zhezhaoceng']">
<movable-area class="movableArea">
<movable-view class="movableView" @touchmove.stop.prevent="doNothing" direction="all" :x="initX" :y="initY">
<movable-view
class="movableView"
@touchmove.stop.prevent="doNothing"
direction="all"
:x="initX"
:y="initY"
>
<view class="u-top1" v-if="isnav">
<image v-if="false" src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_nav.png' class="quicknav" @click='nav'></image>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/black/nav_gotop.png' :class="[!isquicknav ?'hide':'quicknav']" @click="returnTop"></image>
<image
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 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://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_usercenter.png' class='quicknav'></image>
<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>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_my_favor.png' class='quicknav'></image>
<navigator
:class="[animation ? 'navtext1' : 'navtext']"
url="/member/member/favorites"
><text>{{ __("我的收藏") }}</text>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/nav/gray/nav_my_favor.png"
class="quicknav"
></image>
</navigator>
<!-- #ifndef H5 -->
<view :class="[animation ? 'navtext1' : 'navtext']" @click='shareBox'><text>{{__('分享')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_share.png' class='quicknav'></image>
<view
:class="[animation ? 'navtext1' : 'navtext']"
@click="shareBox"
><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 -->
<!-- #ifdef H5 -->
<view :class="[animation ? 'navtext1' : 'navtext']" @click='shareBoxPoster'><text>{{__('生成海报')}}</text>
<image src='https://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_share.png' class='quicknav'></image>
<view
:class="[animation ? 'navtext1' : 'navtext']"
@click="shareBoxPoster"
><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://static.lancerdt.com/xcxfile/appicon/nav/gray/nav_home.png' class='quicknav'></image>
<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://static.lancerdt.com/xcxfile/appicon/nav/black/nav_icon_close.png' class='quicknav'></image>
<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>
@ -45,70 +96,73 @@
props: {
isquicknav: {
type: Boolean,
default: false
default: false,
},
},
data() {
return {
isnav: true,
animation: true,
initX: '690',
initY: '1336',
}
initX: "690",
initY: "1336",
};
},
mounted() {
let view = uni.createSelectorQuery().in(this).select(".movableArea");
let that = this;
view.fields({
view
.fields(
{
size: true,
scrollOffset: true
}, data => {
scrollOffset: true,
},
(data) => {
if (data) {
that.setData({
initX: data.width,
initY: data.height - 100,
});
}
}).exec();
}
)
.exec();
},
methods: {
shareBox: function () {
this.$emit('onShareBox', 3);
this.$emit("onShareBox", 3);
},
shareBoxPoster: function () {
this.$emit('onShareBox', 3);
this.$emit("onShareBox", 3);
},
returnTop: function () {
this.$emit('onReturnTop');
},
doNothing: function() {
this.$emit("onReturnTop");
},
doNothing: function () {},
nav: function () {
this.setData({
isnav: false,
animation: false
})
animation: false,
});
},
outnav: function () {
var that = this;
this.setData({
animation: true
animation: true,
});
setTimeout(function () {
that.setData({
isnav: true
})
}, 250)
}
}
}
isnav: true,
});
}, 250);
},
},
};
</script>
@ -120,7 +174,7 @@
position: fixed;
right: 20rpx;
bottom: 100rpx;
z-index: 999
z-index: 999;
}
.u-go-home {
@ -149,7 +203,7 @@
height: 100%;
z-index: 99;
animation: opacity 500ms;
animation-fill-mode: forwards
animation-fill-mode: forwards;
}
@keyframes opacity {
@ -178,59 +232,58 @@
border-radius: 50%;
}
@keyframes mymove1 {
from {
bottom: 0rpx;
opacity: 0
opacity: 0;
}
to {
bottom: 420rpx;
opacity: 1
opacity: 1;
}
}
@keyframes mymove2 {
from {
bottom: 0rpx;
opacity: 0
opacity: 0;
}
to {
bottom: 320rpx;
opacity: 1
opacity: 1;
}
}
@keyframes mymove3 {
from {
bottom: 0rpx;
opacity: 0
opacity: 0;
}
to {
bottom: 220rpx;
opacity: 1
opacity: 1;
}
}
@keyframes mymove4 {
from {
bottom: 0rpx;
opacity: 0
opacity: 0;
}
to {
bottom: 120rpx;
opacity: 1
opacity: 1;
}
}
@keyframes mymove5 {
from {
bottom: 420rpx;
opacity: 1
opacity: 1;
}
to {
@ -241,36 +294,36 @@
@keyframes mymove6 {
from {
bottom: 320rpx;
opacity: 1
opacity: 1;
}
to {
bottom: 10rpx;
opacity: 0
opacity: 0;
}
}
@keyframes mymove7 {
from {
bottom: 220rpx;
opacity: 1
opacity: 1;
}
to {
bottom: 10rpx;
opacity: 0
opacity: 0;
}
}
@keyframes mymove8 {
from {
bottom: 120rpx;
opacity: 1
opacity: 1;
}
to {
bottom: 10rpx;
opacity: 0
opacity: 0;
}
}
@ -279,7 +332,7 @@
color: #fff;
text-align: right;
min-width: 120rpx;
margin-right: 20rpx
margin-right: 20rpx;
}
.navtext1 text {
@ -287,12 +340,12 @@
color: #fff;
text-align: right;
min-width: 120rpx;
margin-right: 20rpx
margin-right: 20rpx;
}
.u-tuan-label {
padding: 5rpx 8rpx;
background-color: #DB384C;
background-color: #db384c;
border-radius: 4rpx;
font-size: 24rpx;
color: #fff;

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,41 +1,62 @@
<template name="share-box-mp">
<view :class="['shareMsk', isShare ? '' : 'hide']">
<view :class="['sharebox', isShareBox?'bounceInUp animated':'bounceOutDown animated']">
<view class='shareList g-flex '>
<view
:class="[
'sharebox',
isShareBox ? 'bounceInUp animated' : 'bounceOutDown animated',
]"
>
<view class="shareList g-flex">
<!-- #ifdef MP-WEIXIN -->
<view class='shareItem g-flex-item'>
<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="shareItem g-flex-item">
<view class="shareBtn">
<button open-type="share" style="line-height: 0" hover-class="none">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/friend.png"
style="width: 100rpx; height: 100rpx; margin-bottom: 6rpx"
></image>
</button>
<label>{{__('分享给朋友')}}</label>
<label>{{ __("分享给朋友") }}</label>
</view>
</view>
<!-- #endif -->
<view class='shareItem g-flex-item'>
<view class='shareBtn' @click='shareQRCode'>
<image src='https://static.lancerdt.com/xcxfile/appicon/images/allfriend.png' style='width:100rpx;height:100rpx'></image>
<label>{{__('生成海报')}}</label>
<view class="shareItem g-flex-item">
<view class="shareBtn" @click="shareQRCode">
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/allfriend.png"
style="width: 100rpx; height: 100rpx"
></image>
<label>{{ __("生成海报") }}</label>
</view>
</view>
</view>
<view class='cancelShare' @click='cancelShare'>{{__('取消')}}</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>
<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>
<label>{{ __("保存至相册 生成海报") }}</label>
<button type="primary" size="mini" @click="saveImg">
{{ __("保存图片") }}
</button>
</view>
</view>
</template>
<script>
export default {
name: "share-box-mp",
props: {
@ -43,12 +64,12 @@
type: Object,
default() {
return {
shareTitle: '',
shareText: '',
href: '',
image: '',
price: 0
}
shareTitle: "",
shareText: "",
href: "",
image: "",
price: 0,
};
},
},
},
@ -57,14 +78,14 @@
IsJT: false,
Path: "",
isShare: false,
isShareBox:false
}
isShareBox: false,
};
},
methods: {
cancel() {
this.isShareBox = false;
this.isShare = false;
this.$emit('onCancel');
this.$emit("onCancel");
},
show() {
this.isShareBox = true;
@ -76,7 +97,7 @@
this.isShare = false;
this.IsJT = false;
this.$emit('cancelShare')
this.$emit("cancelShare");
},
shareQRCode: function (e) {
var that = this;
@ -87,7 +108,7 @@
MainImg: this.shareDataDefault.image,
MainTitle: this.shareDataDefault.shareTitle,
Path: this.shareDataDefault.href,
source_from: 'wxminiapp',
source_from: "wxminiapp",
poster_name: this.shareDataDefault.shareText,
path: this.shareDataDefault.href,
@ -95,31 +116,28 @@
let url = that.cf.URL.wx.getMiniAppQRCodeUnlimitPoster;
if (this.shareDataDefault.price > 0)
{
if (this.shareDataDefault.price > 0) {
// #ifdef H5
url = that.cf.URL.fx.poster;
params['poster_type'] = 1;
params["poster_type"] = 1;
// #endif
// #ifdef MP-WEIXIN
params['poster_type'] = 2
params["poster_type"] = 2;
// #endif
// #ifdef APP-PLUS
params['poster_type'] = 1
params["poster_type"] = 1;
// #endif
}
else
{
} else {
url = that.cf.URL.fx.poster;
// #ifdef H5
params['poster_type'] = 1;
params["poster_type"] = 1;
// #endif
// #ifdef MP-WEIXIN
params['poster_type'] = 2
params["poster_type"] = 2;
// #endif
// #ifdef APP-PLUS
params['poster_type'] = 1
params["poster_type"] = 1;
// #endif
}
@ -133,19 +151,19 @@
Path: data.url || data.poster_url,
isShare: true,
isShareBox: false,
IsJT: true
})
}
IsJT: true,
});
},
});
this.$emit('shareQRCode')
this.$emit("shareQRCode");
},
saveImg: function (e) {
var that = this;
// #ifdef MP-WEIXIN
//
uni.authorize({
scope: 'scope.writePhotosAlbum',
scope: "scope.writePhotosAlbum",
success() {
//
that.saveImgFun();
@ -153,31 +171,31 @@
fail() {
//
uni.showModal({
title: '授权提示',
content: '您拒绝了授权,如需下载图片,请点击下方按钮重新授权。',
confirmText: '重新授权',
title: "授权提示",
content: "您拒绝了授权,如需下载图片,请点击下方按钮重新授权。",
confirmText: "重新授权",
success(res) {
if (res.confirm) {
//
uni.openSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
if (res.authSetting["scope.writePhotosAlbum"]) {
//
that.saveImgFun();
} else {
//
uni.showToast({
title: '授权失败',
icon: 'none'
})
title: "授权失败",
icon: "none",
});
}
},
});
}
})
}
}
})
}
})
},
});
},
});
// #endif
// #ifndef MP-WEIXIN
this.saveImgFun();
@ -197,34 +215,35 @@
Path: "",
isShare: false,
isShareBox: false,
IsJT: false
}), that.$.alert("保存图片成功!")
IsJT: false,
}),
that.$.alert("保存图片成功!");
},
fail: function (e) {
that.$.hideLoading()
}
})
that.$.hideLoading();
},
});
},
fail: function (e) {
that.$.hideLoading()
}
})
that.$.hideLoading();
},
});
that.$.hideLoading()
that.$.hideLoading();
this.$emit('saveImg')
this.$emit("saveImg");
},
showCodeImg: function () {
let that = this;
that.$.previewImage({
current: that.Path,
urls: [that.Path]
})
urls: [that.Path],
});
this.$emit('showCodeImg')
}
}
}
this.$emit("showCodeImg");
},
},
};
</script>

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,18 +1,27 @@
<template name="shoptheme1">
<view>
<view class="m-supermarket-ad">
<view v-if="(commonTPL.AdContent.F1ProductContents.length>0)">
<view class="m-supermarket-tip-list">
<view v-if="commonTPL.AdContent.F1ProductContents.length > 0">
<!-- <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)"
v-for="(item, i) in commonTPL.smallCategory" :key="i" class="m-supermarket-tip-item">
<label>{{item.name}}</label>
</navigator>
</view>
</view> -->
<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)"
class="m-product-item">
<navigator
v-for="(item, i) in commonTPL.AdContent.F1ProductContents"
:key="i"
:url="
'/pages/product/detail?is_store_flag=' +
commonTPL.isStoreFlag +
'&pid=' +
item.ProductContentID
"
class="m-product-item"
>
<view class="m-product-img">
<image :src="(item.ImagePath)" mode="aspectFill" />
<image :src="item.ImagePath" mode="aspectFill" />
</view>
<view class="m-product-info">
<view class="m-product-name">
@ -20,16 +29,29 @@
</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)}}
<label>{{ __("¥") }}</label
>{{ number_format(item.item_color[0].item_sale_price, 2) }}
</block>
<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
><label style="font-size: 32rpx">{{
number_format(item.product_unit_points)
}}</label>
<label>{{ __("积分") }}</label>
</block>
<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
><label style="font-size: 32rpx">{{
item.product_unit_sp
}}</label>
<label>{{ __("众宝") }}</label>
</block>
<view
class="btn_addcard"
@click.stop="handleAddcard(item, $event)"
></view>
</view>
</view>
</navigator>
@ -39,18 +61,21 @@
<view class="m-nullpage-middle">
<label class="iconfont icon-meiyougengduo"></label>
<view class="m-null-tip">
<text>{{__('亲~什么都没有')}}</text>
<text>{{__('暂时没有商品哦')}}</text>
<text>{{ __("亲~什么都没有") }}</text>
<text>{{ __("暂时没有商品哦") }}</text>
</view>
</view>
</view>
</view>
<loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup>
</view>
</template>
<script>
import $ from "../../helpers/util";
import loginPopup from "@/components/loginPopup.vue";
import { mapMutations, mapState } from "vuex";
export default {
name: "shoptheme1",
@ -87,27 +112,56 @@
orderby: 1,
sort: 2,
isnew: false,
curpage: 1
curpage: 1,
},
formdate: "",
pageId: 0
}
pageId: 0,
};
},
},
},
components: {
loginPopup,
},
data() {
return {}
return {
showLoginPopup: false,
};
},
computed: mapState(["hasLogin"]),
created: function () {},
methods: {}
}
methods: {
handleAddcard(data, event) {
this.$emit("addCart", data);
},
closeLoginPopup() {
this.showLoginPopup = false;
},
},
};
</script>
<style lang="scss">
@import "../../styles/_variables";
// @import "../../styles/_variables";
@import '../../styles/layout.scss';
@import '../../styles/store_themes.scss';
@import '../../styles/store_tpl.scss';
// @import '../../styles/layout.scss';
// @import '../../styles/store_themes.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>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,6 +4,7 @@
:lazy-load="node.attr.lazyLoad"
:class="node.classStr"
:style="newStyleStr || node.styleStr"
style="width:100% !important"
:data-src="node.attr.src"
:src="node.attr.src"
@tap="wxParseImgTap"
@ -52,11 +53,11 @@ export default {
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
{
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,38 +1,75 @@
<template>
<view class="uni-navbar" :class="{ 'uni-dark': dark }">
<view :class="{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }"
:style="{ 'background-color': themeBgColor }" class="uni-navbar__content">
<view
:class="{
'uni-navbar--fixed': fixed,
'uni-navbar--shadow': shadow,
'uni-navbar--border': border,
}"
:style="{ 'background-color': themeBgColor }"
class="uni-navbar__content"
>
<status-bar v-if="statusBar" />
<view :style="{ color: themeColor,backgroundColor: themeBgColor ,height:navbarHeight}"
class="uni-navbar__header">
<view @tap="onClickLeft" class="uni-navbar__header-btns uni-navbar__header-btns-left"
:style="{width:leftIconWidth}">
<view
:style="{
color: themeColor,
backgroundColor: themeBgColor,
height: navbarHeight,
}"
class="uni-navbar__header"
>
<view
@tap="onClickLeft"
class="uni-navbar__header-btns uni-navbar__header-btns-left"
:style="{ minWidth: leftIconWidth }"
>
<slot name="left">
<view class="uni-navbar__content_view" v-if="leftIcon.length > 0">
<uni-icons :color="themeColor" :type="leftIcon" size="20" />
</view>
<view :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length > 0 }" class="uni-navbar-btn-text"
v-if="leftText.length">
<text :style="{ color: themeColor, fontSize: '12px' }">{{ leftText }}</text>
<view
:class="{ 'uni-navbar-btn-icon-left': !leftIcon.length > 0 }"
class="uni-navbar-btn-text"
v-if="leftText.length"
>
<text :style="{ color: themeColor, fontSize: '12px' }">{{
leftText
}}</text>
</view>
</slot>
</view>
<view class="uni-navbar__header-container" @tap="onClickTitle">
<slot>
<view class="uni-navbar__header-container-inner" v-if="title.length>0">
<text class="uni-nav-bar-text uni-ellipsis-1"
:style="{color: themeColor }">{{ title }}</text>
<view
class="uni-navbar__header-container-inner"
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}">
<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
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>
@ -40,14 +77,17 @@
</view>
<view class="uni-navbar__placeholder" v-if="fixed">
<status-bar v-if="statusBar" />
<view class="uni-navbar__placeholder-view" :style="{ height:navbarHeight}" />
<view
class="uni-navbar__placeholder-view"
:style="{ height: navbarHeight }"
/>
</view>
</view>
</template>
<script>
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 自定义导航栏
@ -72,111 +112,111 @@
export default {
name: "UniNavBar",
components: {
statusBar
statusBar,
},
emits: ['clickLeft', 'clickRight', 'clickTitle'],
emits: ["clickLeft", "clickRight", "clickTitle"],
props: {
dark: {
type: Boolean,
default: false
default: false,
},
title: {
type: String,
default: ""
default: "",
},
leftText: {
type: String,
default: ""
default: "",
},
rightText: {
type: String,
default: ""
default: "",
},
leftIcon: {
type: String,
default: ""
default: "",
},
rightIcon: {
type: String,
default: ""
default: "",
},
fixed: {
type: [Boolean, String],
default: false
default: false,
},
color: {
type: String,
default: ""
default: "",
},
backgroundColor: {
type: String,
default: ""
default: "",
},
statusBar: {
type: [Boolean, String],
default: false
default: false,
},
shadow: {
type: [Boolean, String],
default: false
default: false,
},
border: {
type: [Boolean, String],
default: true
default: true,
},
height: {
type: [Number, String],
default: 44
default: 44,
},
leftWidth: {
type: [Number, String],
default: 60
default: 60,
},
rightWidth: {
type: [Number, String],
default: 60
default: 60,
},
stat: {
type: [Boolean, String],
default: ''
}
default: "",
},
},
computed: {
themeBgColor() {
if (this.dark) {
//
if (this.backgroundColor) {
return this.backgroundColor
return this.backgroundColor;
} else {
return this.dark ? '#333' : '#FFF'
return this.dark ? "#333" : "#FFF";
}
}
return this.backgroundColor || '#FFF'
return this.backgroundColor || "#FFF";
},
themeColor() {
if (this.dark) {
//
if (this.color) {
return this.color
return this.color;
} else {
return this.dark ? '#fff' : '#333'
return this.dark ? "#fff" : "#333";
}
}
return this.color || '#333'
return this.color || "#333";
},
navbarHeight() {
return getVal(this.height)
return getVal(this.height);
},
leftIconWidth() {
return getVal(this.leftWidth)
return getVal(this.leftWidth);
},
rightIconWidth() {
return getVal(this.rightWidth)
}
return getVal(this.rightWidth);
},
},
mounted() {
if (uni.report && this.stat && this.title !== '') {
uni.report('title', this.title)
if (uni.report && this.stat && this.title !== "") {
uni.report("title", this.title);
}
},
methods: {
@ -188,8 +228,8 @@
},
onClickTitle() {
this.$emit("clickTitle");
}
}
},
},
};
</script>
@ -238,11 +278,11 @@
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
padding: 0 10px;
padding-top: 10rpx;
padding: 5px 10px;
flex-direction: row;
height: $nav-height;
font-size: 12px;
align-items: center;
}
.uni-navbar__header-btns {
@ -252,7 +292,7 @@
/* #endif */
flex-wrap: nowrap;
flex-direction: row;
width: 120rpx;
// width: 120rpx;
// padding: 0 6px;
justify-content: center;
align-items: center;
@ -265,7 +305,7 @@
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
width: 120rpx;
min-width: 120rpx;
justify-content: flex-start;
align-items: center;
}
@ -303,7 +343,6 @@
// box-sizing: border-box;
}
.uni-navbar__placeholder-view {
height: $nav-height;
}
@ -319,7 +358,6 @@
left: 0;
right: 0;
/* #endif */
}
.uni-navbar--shadow {
@ -345,5 +383,6 @@
}
//
.uni-dark {}
.uni-dark {
}
</style>

View File

@ -1,9 +1,10 @@
<template>
<view style="position: relative;"
<view
style="position: relative"
@touchmove="ListTouchMove"
@touchend.stop="ListTouchEnd"
@touchstart="ListTouchStart">
@touchstart="ListTouchStart"
>
<video
:src="video_url"
preload
@ -19,12 +20,14 @@
class="video"
:poster="cover_url"
@timeupdate="timeupdate"
@click.stop="clickVideo"
>
</video>
<cover-image class="play" v-if="show_play" src="https://static.lancerdt.com/xcxfile/appicon/video/play_1.png"
@click.stop="clickVideo"></cover-image>
></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">
@ -32,92 +35,117 @@
</view>
</cover-view>
<cover-view class="cover-view-right">
<cover-image :src="cover_url" class="avater cimg" @click.stop="tapAvater"></cover-image>
<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://static.lancerdt.com/xcxfile/appicon/video/img/axc.png" class="img-left" @click.stop="onUnLike" :data-story_id="video_id"></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>
<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>
<cover-image
v-if="!is_like"
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/bed.png"
class="img-left"
@click.stop="onLike"
:data-story_id="video_id"
></cover-image>
<text class="right-text">{{ story_like_count }}</text>
<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-image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/video/img/ay2.png"
style="height: 80rpx"
class="img-left"
@click.stop="tapMsg"
></cover-image>
<text class="right-text">{{ pinglun }}</text>
<cover-image src="https://static.lancerdt.com/xcxfile/appicon/video/img/b6p.png" style="height: 76rpx;" class="img-left" @click.stop="tapShare"></cover-image>
<cover-image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/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-image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/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>
<script>
import {
mapState,
mapMutations
} from 'vuex'
import { mapState, mapMutations } from "vuex";
export default {
props: {
video_id: {
type: Number,
default: 0
default: 0,
},
user_id: {
type: Number,
default: 0
default: 0,
},
nickname: {
type: String,
default: ''
default: "",
},
video_describe: {
type: String,
default: ''
default: "",
},
cover_url: {
type: String,
default: ''
default: "",
},
video_url: {
type: String,
default: ''
default: "",
},
dianzan: {
type: Number,
default: 0
default: 0,
},
is_dianzan: {
type: Boolean,
default: false
default: false,
},
pinglun: {
type: Number,
default: 0
default: 0,
},
zhuanfa: {
type: Number,
default: 0
default: 0,
},
play: {
type: Boolean,
default: false
default: false,
},
index: {
type: Number,
default: 0
default: 0,
},
cur_index: {
type: Number,
default: 0
default: 0,
},
height: {
type: String,
default: ''
default: "",
},
width: {
type: String,
default: ''
}
default: "",
},
},
data() {
return {
@ -128,7 +156,6 @@ export default {
times: null,
show_play: false,
is_like: false,
story_like_count: 0,
};
@ -137,20 +164,33 @@ export default {
this.is_like = this.is_dianzan;
this.story_like_count = this.dianzan;
},
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
methods: {
...mapMutations(['logout', 'getPlantformInfo', 'forceUserInfo', 'getStoreInfo']),
...mapMutations([
"logout",
"getPlantformInfo",
"forceUserInfo",
"getStoreInfo",
]),
ListTouchStart(e) {
//console.log(1, e);
this.$emit('ListTouchStart', e);
this.$emit("ListTouchStart", e);
},
ListTouchMove(e) {
//console.log(2, e);
this.$emit('ListTouchMove', e);
this.$emit("ListTouchMove", e);
},
ListTouchEnd(e) {
//console.log(3, e);
this.$emit('ListTouchEnd', e);
this.$emit("ListTouchEnd", e);
},
timeupdate(event) {
@ -180,21 +220,21 @@ export default {
// }
},
tapAvater() {
this.$.gopage('/community/community/userspace?uid=' + this.user_id);
this.$.gopage("/community/community/userspace?uid=" + this.user_id);
//uni.showToast({icon: "success", title: "", duration: 2e3})
},
tapLove() {
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
tapMsg() {
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
tapShare() {
uni.showToast({icon: "success", title: "仅供演示", duration: 2e3})
uni.showToast({ icon: "success", title: "仅供演示", duration: 2e3 });
},
clickVideo(e) {
//console.log('');
this.$emit('clickVideo', e);
this.$emit("clickVideo", e);
},
videoPlay() {
if (this.play) {
@ -210,16 +250,16 @@ export default {
}
},
onLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.doLike(a.currentTarget.dataset.story_id)
that.doLike(a.currentTarget.dataset.story_id);
});
},
doLike: function (story_id) {
var that = this, params = {
story_id: story_id
var that = this,
params = {
story_id: story_id,
};
that.$.request({
@ -228,21 +268,22 @@ export default {
success: function (data, status, msg, code) {
if (200 == status) {
that.is_like = true;
that.story_like_count ++
that.story_like_count++;
} else {
}
}
},
});
},
onUnLike: function (a) {
let that = this;
that.forceUserInfo(function (user) {
that.canceldianzan(a.currentTarget.dataset.story_id)
that.canceldianzan(a.currentTarget.dataset.story_id);
});
},
canceldianzan: function (story_id) {
var that = this, params = {
story_id: story_id
var that = this,
params = {
story_id: story_id,
};
that.$.request({
@ -252,21 +293,20 @@ export default {
if (200 == status) {
//
that.is_like = false;
that.story_like_count --
that.story_like_count--;
} else {
}
}
},
});
},
},
watch: {
play(newVal, oldVal) {
//console.info('watch play:');
//console.info(newVal, oldVal);
this.videoPlay();
}
}
},
},
};
</script>
@ -287,7 +327,7 @@ export default {
.progressBar {
border-radius: 2rpx;
height: 4rpx;
background-color: #FF4500;
background-color: #ff4500;
z-index: 999999;
position: absolute;
bottom: 68rpx;

View File

@ -7,29 +7,70 @@
<!-- sync双向数据绑定语法糖 -->
<!-- <button type="primary" @click="changeStyle">双向数据绑定改变style</button> -->
<!-- #ifdef APP-PLUS -->
<image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/voice.svg" mode="aspectFit" @click="startRecognize()" class="voice-icon"></image>
<image
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/zy-search/voice.svg"
mode="aspectFit"
@click="startRecognize()"
class="voice-icon"
></image>
<!-- #endif -->
<template v-if="isFocus">
<input maxlength="20" focus type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入关键词搜索')" v-model.trim="searchText"/>
<input
maxlength="20"
focus
type="text"
value=""
confirm-type="search"
@confirm="searchStart()"
:placeholder="__('请输入关键词搜索')"
v-model.trim="searchText"
/>
</template>
<template v-else>
<input maxlength="20" type="text" value="" confirm-type="search" @confirm="searchStart()" :placeholder="__('请输入关键词搜索')" v-model.trim="searchText"/>
<input
maxlength="20"
type="text"
value=""
confirm-type="search"
@confirm="searchStart()"
:placeholder="__('请输入关键词搜索')"
v-model.trim="searchText"
/>
</template>
<image src="https://static.lancerdt.com/xcxfile/appicon/zy-search/search.svg" mode="aspectFit" @click="searchStart()" class="search-icon"></image>
<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://static.lancerdt.com/xcxfile/appicon/zy-search/delete.svg" mode="aspectFit" @click="delhistory"></image>
{{ __("历史记录") }}
<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
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="header">{{ __("猜你想搜的") }}</view>
<view class="list">
<view v-for="(item,index) in hotList" :key="index" @click="keywordsClick(item)">{{item}}</view>
<view
v-for="(item, index) in hotList"
:key="index"
@click="keywordsClick(item)"
>{{ item }}</view
>
</view>
</view>
</view>
@ -39,77 +80,80 @@
export default {
name: "zy-search",
props: {
isFocus:{ //
isFocus: {
//
type: Boolean,
default: false
default: false,
},
theme:{ //
theme: {
//
type: String,
default: 'block'
default: "block",
},
showWant:{ //
showWant: {
//
type: Boolean,
default: false
default: false,
},
hotList: { //
hotList: {
//
type: Array,
default() {
return []
}
return [];
},
},
searchHisList: {
type: Array,
default() {
return []
}
return [];
},
},
suggestText: {
type: String,
default: ''
default: "",
},
speechEngine: { //=>:iFly,:'baidu'
speechEngine: {
//=>:iFly,:'baidu'
type: String,
default: 'baidu'
}
default: "baidu",
},
},
data() {
return {
searchText:'', //
hList:[] //
searchText: "", //
hList: [], //
};
},
created() {
var that = this;
setTimeout(() => {
this.setData({
searchText: this.suggestText
});
if (this.searchHisList.length > 0)
{
// this.setData({
// searchText: this.suggestText,
// });
if (this.searchHisList.length > 0) {
//this.hList = this.searchHisList;
this.hList = uni.getStorageSync('search_cache');
this.hList = uni.getStorageSync("search_cache");
} else {
this.hList = uni.getStorageSync("search_cache");
}
else
{
this.hList = uni.getStorageSync('search_cache');
}
}, 200)
}, 200);
},
methods: {
searchStart: function() { //
searchStart: function () {
//
let _this = this;
if (_this.searchText == '') {
if (_this.searchText == "") {
uni.showToast({
title: _this.__('请输入关键字'),
icon: 'none',
duration: 1000
title: _this.__("请输入关键字"),
icon: "none",
duration: 1000,
});
} else {
uni.getStorage({
key:'search_cache',
key: "search_cache",
success(res) {
let list = res.data;
let t = true;
@ -127,43 +171,44 @@
t = false;
}
}
if(t)
{
if (t) {
list.unshift(_this.searchText);
}
}
_this.hList = list;
uni.setStorage({
key: 'search_cache',
data: _this.hList
key: "search_cache",
data: _this.hList,
});
_this.$emit('getSearchText', _this.searchText);
_this.$emit("getSearchText", _this.searchText);
},
fail() {
_this.hList = [];
_this.hList.push(_this.searchText);
uni.setStorage({
key: 'search_cache',
data: _this.hList
key: "search_cache",
data: _this.hList,
});
_this.$emit("getSearchText", _this.searchText);
},
});
_this.$emit('getSearchText', _this.searchText);
}
})
}
},
keywordsClick (item) { //
keywordsClick(item) {
//
this.searchText = item;
this.$emit('getSearchText', item);
this.$emit("getSearchText", item);
},
delhistory () { //
delhistory() {
//
this.hList = [];
uni.setStorage({
key: 'search_cache',
data: []
key: "search_cache",
data: [],
});
},
startRecognize: function() { //
startRecognize: function () {
//
let _this = this;
let options = {};
options.engine = _this.speechEngine;
@ -172,9 +217,9 @@
plus.speech.startRecognize(options, function (s) {
_this.searchText = _this.searchText + s;
});
}
}
}
},
},
};
</script>
<style lang="less" scoped>
@ -183,7 +228,7 @@
margin: 30rpx auto 0;
position: relative;
input {
background-color: #F7F7F7;
background-color: #f7f7f7;
padding: 10rpx 74rpx;
font-size: 28rpx;
border-radius: 50rpx;
@ -227,17 +272,17 @@
flex-wrap: wrap;
view {
width: 50%;
color: #8A8A8A;
color: #8a8a8a;
font-size: 28rpx;
box-sizing: border-box;
text-align: center;
padding: 20rpx 0;
border-top: 2rpx solid #FFF;
border-left: 2rpx solid #FFF;
border-top: 2rpx solid #fff;
border-left: 2rpx solid #fff;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
background-color: #F7F7F7;
background-color: #f7f7f7;
}
}
}
@ -246,7 +291,7 @@
.header {
font-size: 32rpx;
padding: 30rpx;
border-bottom: 2rpx solid #F9F9F9;
border-bottom: 2rpx solid #f9f9f9;
position: relative;
image {
width: 36rpx;
@ -265,8 +310,8 @@
padding: 8rpx 30rpx;
margin: 20rpx 30rpx 0 0;
font-size: 28rpx;
color: #8A8A8A;
background-color: #F7F7F7;
color: #8a8a8a;
background-color: #f7f7f7;
box-sizing: border-box;
text-align: center;
border-radius: 20rpx;
@ -284,14 +329,14 @@
flex-wrap: wrap;
view {
width: 50%;
color: #8A8A8A;
color: #8a8a8a;
font-size: 28rpx;
box-sizing: border-box;
text-align: center;
padding: 20rpx 0;
border-top: 2rpx solid #FFF;
border-left: 2rpx solid #FFF;
background-color: #F7F7F7;
border-top: 2rpx solid #fff;
border-left: 2rpx solid #fff;
background-color: #f7f7f7;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@ -312,8 +357,8 @@
padding: 8rpx 30rpx;
margin: 20rpx 30rpx 0 0;
font-size: 28rpx;
color: #8A8A8A;
background-color: #F7F7F7;
color: #8a8a8a;
background-color: #f7f7f7;
box-sizing: border-box;
text-align: center;
border-radius: 20rpx;

View File

@ -266,7 +266,10 @@ export default {
"pay": bu + "/account/modules/pay/api/payment/wx/pay.php",
"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",
"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": {
"get": iu + "?ctl=Store&met=get&typ=json",
@ -284,7 +287,9 @@ export default {
"menu": iu + "?ctl=Store&met=menu&typ=json",
// "lists":iu + "?ctl=Store&met=lists&typ=json",
"lists": ip + "shop/store/lists",
"category": ip + "shop/store/category",
// 附近门店列表
"nearList": ip + 'shop/store/near/list',
"listsChain": iu + "?ctl=Chain&met=lists&typ=json",
// "getChain":iu + "?ctl=Chain&met=getChainInfo&typ=json",
"getChain": ip + "shop/shop-chain-base/getChainInfo",
@ -378,6 +383,7 @@ export default {
"sel": ip + "shop/userCart/sel",
// "checkout": iu + "?ctl=Cart&met=checkout&typ=json",
"checkout": ip + "shop/userCart/checkout",
"getTimeSlots":ip+"/shop/userOrder/booking_time_args",
"checkDelivery": iu + "?ctl=Cart&met=checkDelivery&typ=json",
"order": iu + "?ctl=Cart&met=order&typ=e",
// "getselect":iu + "?ctl=Cart&met=getselect&typ=json",
@ -580,6 +586,7 @@ export default {
"listsCutPriceActivity": iu + "?ctl=Activity&met=listsCutPriceActivity&typ=json",
// "getCutPriceActivity": iu + "?ctl=Activity&met=getCutPriceActivity&typ=json",
"getCutPriceActivity": ip + "shop/userActivity/getCutPriceActivity",
"dolookTurnCutPrice":ip+"shop/userActivity/dolookTurnCutPrice",
// "listsCutPriceHistory": iu + "?ctl=Activity&met=listsCutPriceHistory&typ=json",
"listsCutPriceHistory": ip + "shop/userActivity/listsCutPriceHistory",
"listsGroupbookingActivity": iu + "?ctl=Activity&met=listsGroupbookingActivity&typ=json",
@ -1086,6 +1093,16 @@ export default {
"card": {
"card_list": mu + "/card/pay/pay-card-info/getListByUserid",
"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": {
@ -1098,10 +1115,10 @@ export default {
"pagePath": "pages/index/index",
"iconPath": "static/images/tabBar1.png",
"selectedIconPath": "static/images/tabBar_sel1.png",
"text": "首页"
"text": "推荐"
},
{
"pagePath": "pages/category/category",
"pagePath": "pages/category/storeCategory",
"iconPath": "static/images/tabBar2.png",
"selectedIconPath": "static/images/tabBar_sel2.png",
"text": "分类"
@ -1110,7 +1127,7 @@ export default {
"pagePath": "pages/index/image",
"iconPath": "static/images/tabBarSns.png",
"selectedIconPath": "static/images/tabBarSns_sel.png",
"text": "发现"
"text": "社区"
},
{
"pagePath": "pages/cart/cart",

View File

@ -7,7 +7,7 @@ var data = {
symbol_right:'CNY',
label:'中文',
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:[
{
lang:'zh-CN',
@ -16,7 +16,7 @@ var data = {
symbol_right:'CNY',
label:'中文',
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',
@ -25,7 +25,7 @@ var data = {
symbol_right:'CNY',
label:'中国香港',
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',
@ -34,7 +34,7 @@ var data = {
symbol_right:'TWD',
label:'中国台湾',
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',
@ -43,7 +43,7 @@ var data = {
symbol_right:'USD',
label:'English',
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',
@ -52,7 +52,7 @@ var data = {
standard:false,
symbol:'J.¥',
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',
@ -61,7 +61,7 @@ var data = {
symbol_right:'THB',
label:'ภาษาไทย',
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',
@ -70,7 +70,7 @@ var data = {
symbol_right:'MXP',
label:'México',
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',
@ -79,7 +79,7 @@ var data = {
symbol_right:'SAR',
standard:true,
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',
@ -88,7 +88,7 @@ var data = {
symbol_right:'THB',
label:'ViệtName',
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',
@ -97,7 +97,7 @@ var data = {
symbol_right:'TRL',
label:'Türkçe',
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',
@ -106,7 +106,7 @@ var data = {
symbol_right:'IDR',
label:'IndonesiaName',
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',
@ -115,7 +115,7 @@ var data = {
symbol_right:'EUR',
label:'Britain',
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',
@ -124,7 +124,7 @@ var data = {
symbol_right:'EUR',
label:'España',
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',
@ -133,7 +133,7 @@ var data = {
symbol_right:'EUR',
label:'Deutsch',
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',
@ -142,7 +142,7 @@ var data = {
symbol_right:'EUR',
label:'Français',
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',
@ -151,7 +151,7 @@ var data = {
symbol_right:'EUR',
label:'Português',
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',
@ -160,7 +160,7 @@ var data = {
symbol_right:'EUR',
label:'Italiano',
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',
@ -169,7 +169,7 @@ var data = {
symbol_right:'RUB',
label:'Русский язык',
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',
@ -178,7 +178,7 @@ var data = {
symbol_right:'RON',
label:'România',
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',
@ -187,7 +187,7 @@ var data = {
symbol_right:'AZN',
label:'AzerbayjanlıName',
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',
@ -196,7 +196,7 @@ var data = {
symbol_right:'EUR',
label:'Ελληνικά',
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',
@ -205,7 +205,7 @@ var data = {
symbol_right:'EUR',
label:'Suomi',
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',
@ -214,7 +214,7 @@ var data = {
symbol_right:'EUR',
label:'Latvijas',
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',
@ -223,7 +223,7 @@ var data = {
symbol_right:'EUR',
label:'Nederlands',
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',
@ -232,7 +232,7 @@ var data = {
symbol_right:'EUR',
label:'Denmark',
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',
@ -241,7 +241,7 @@ var data = {
symbol_right:'EUR',
label:'Република Србија',
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',
@ -250,7 +250,7 @@ var data = {
symbol_right:'EUR',
label:'Polski',
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',
@ -259,7 +259,7 @@ var data = {
symbol_right:'EUR',
label:'УкраїнськаName',
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',
@ -268,7 +268,7 @@ var data = {
symbol_right:'KZT',
label:азақстанName',
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',
@ -277,7 +277,7 @@ var data = {
symbol_right:'BUK',
label:'မြန်မာ',
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',
@ -286,7 +286,7 @@ var data = {
symbol_right:'KRW',
label:'한국.',
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',
@ -295,7 +295,7 @@ var data = {
symbol_right:'MYR',
label:'Malay',
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',
@ -304,7 +304,7 @@ var data = {
symbol_right:'LAK',
label:'ເມືອງລາວ',
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