diff --git a/docs/databases/data_modify.sql b/docs/databases/data_modify.sql new file mode 100644 index 0000000..ef583ad --- /dev/null +++ b/docs/databases/data_modify.sql @@ -0,0 +1,6 @@ + + UPDATE sys_permission SET status = 1 WHERE id = 243 + UPDATE sys_permission SET status = 0 WHERE id = 243 + +-- 菜单--系统管理 + UPDATE sys_permission SET status = 0 WHERE id = 19 \ No newline at end of file diff --git a/docs/databases/tables_create.sql b/docs/databases/tables_create.sql new file mode 100644 index 0000000..ab4bf23 --- /dev/null +++ b/docs/databases/tables_create.sql @@ -0,0 +1,22 @@ + +CREATE TABLE `app_version` ( + `id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号', + `appName` varchar(100) NOT NULL DEFAULT '汇融云链' COMMENT '应用名称', + `versionCode` int(11) NOT NULL DEFAULT '101' COMMENT '版本编码', + `versionName` varchar(100) NOT NULL DEFAULT '101' COMMENT '版本号', + `downloadUrl` varchar(1024) DEFAULT NULL COMMENT '下载地址', + `versionInfo` varchar(1024) DEFAULT NULL COMMENT '版本描述', + `isAlpha` int(11) NOT NULL DEFAULT '0' COMMENT '是否内测:0否,1是', + `fileName` varchar(1024) DEFAULT NULL COMMENT '文件名', + `forceUpdate` int(11) NOT NULL DEFAULT '1' COMMENT '是否强制升级', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +insert into app_version(versionCode,versionName,downloadUrl,versionInfo) +values (101,'101','http://mall.yyundong.com/apks/mall-101.apk','初始版本') + +insert into app_version(versionCode,versionName,downloadUrl,versionInfo,fileName) +values (1002,'1.0.0.2','http://mall.yyundong.com/apks/mall-1002.apk','BUG修复,功能完善','mall-1002.apk') + +insert into app_version(versionCode,versionName,downloadUrl,versionInfo,fileName) +values (1003,'1.0.0.3','http://mall.yyundong.com/apks/mall-1003.apk','登录方式切换的Bug修复;登录及退出后本地缓存数据问题的修复。','mall-1003.apk') \ No newline at end of file diff --git a/docs/databases/tables_modify.sql b/docs/databases/tables_modify.sql new file mode 100644 index 0000000..5b5776a --- /dev/null +++ b/docs/databases/tables_modify.sql @@ -0,0 +1,32 @@ + +alter table sms_home_new_product add `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价'; +alter table sms_home_recommend_product add `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价'; + +update sms_home_new_product shnp set +original_price=(select pp.original_price from pms_product pp where pp.id=shnp.product_id limit 1), +price=(select pp.price from pms_product pp where pp.id=shnp.product_id limit 1) + +update sms_home_recommend_product shnp set +original_price=(select pp.original_price from pms_product pp where pp.id=shnp.product_id limit 1), +price=(select pp.price from pms_product pp where pp.id=shnp.product_id limit 1) + + +select * from sys_message + +delete from sys_message where 1=1 + +insert into sys_message values +(1,340,'交易物流','您有新的物流信息','您的订单商品已经到取货点,请在7日内取出。',now(),now(),0,1), +(2,340,'云链助手','该施肥了','春天已经至,已到施肥时间。。',now(),now(),0,1), +(3,341,'交易物流','您有新的物流信息','您的订单商品已经到取货点,请在7日内取出。',now(),now(),0,1), +(4,341,'云链助手','该施肥了','春天已经至,已到施肥时间。。',now(),now(),0,1); + +SELECT id,user_id,code,params,content,ctime,utime,status FROM sys_message WHERE user_id = 341 ORDER BY ctime desc + + +ALTER TABLE mallplus1.sys_message MODIFY COLUMN id int(10) unsigned auto_increment NOT NULL; +ALTER TABLE mallplus1.sys_message MODIFY COLUMN status tinyint(3) unsigned DEFAULT 0 NOT NULL COMMENT '0未查看,1已查看'; +ALTER TABLE mallplus1.sys_message MODIFY COLUMN utime bigint(20) unsigned NULL COMMENT '查看时间'; +ALTER TABLE mallplus1.sys_message MODIFY COLUMN content text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容'; +ALTER TABLE mallplus1.sys_message MODIFY COLUMN params varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参数'; +ALTER TABLE mallplus1.sys_message MODIFY COLUMN code varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息编码'; diff --git a/docs/images/800X1280-2 加深.jpg b/docs/images/800X1280-2 加深.jpg new file mode 100644 index 0000000..33f86fc Binary files /dev/null and b/docs/images/800X1280-2 加深.jpg differ diff --git a/docs/images/bj1.jpg b/docs/images/bj1.jpg new file mode 100644 index 0000000..cfb4905 Binary files /dev/null and b/docs/images/bj1.jpg differ diff --git a/docs/images/bj2.jpg b/docs/images/bj2.jpg new file mode 100644 index 0000000..ffd2e6c Binary files /dev/null and b/docs/images/bj2.jpg differ diff --git a/docs/images/bj3.jpg b/docs/images/bj3.jpg new file mode 100644 index 0000000..bb6cca8 Binary files /dev/null and b/docs/images/bj3.jpg differ diff --git a/docs/images/icon物流.png b/docs/images/icon物流.png new file mode 100644 index 0000000..f8b523b Binary files /dev/null and b/docs/images/icon物流.png differ diff --git a/docs/images/停车缴费备份.png b/docs/images/停车缴费备份.png new file mode 100644 index 0000000..036021a Binary files /dev/null and b/docs/images/停车缴费备份.png differ diff --git a/docs/images/园区外卖备份.png b/docs/images/园区外卖备份.png new file mode 100644 index 0000000..970b528 Binary files /dev/null and b/docs/images/园区外卖备份.png differ diff --git a/docs/images/微信图片_20230220120104.jpg b/docs/images/微信图片_20230220120104.jpg new file mode 100644 index 0000000..709bee1 Binary files /dev/null and b/docs/images/微信图片_20230220120104.jpg differ diff --git a/docs/images/我已审批备份 2.png b/docs/images/我已审批备份 2.png new file mode 100644 index 0000000..62073e1 Binary files /dev/null and b/docs/images/我已审批备份 2.png differ diff --git a/docs/images/投诉建议备份.png b/docs/images/投诉建议备份.png new file mode 100644 index 0000000..52ee91f Binary files /dev/null and b/docs/images/投诉建议备份.png differ diff --git a/docs/images/科技产业服务备份 2.png b/docs/images/科技产业服务备份 2.png new file mode 100644 index 0000000..9d6d6f5 Binary files /dev/null and b/docs/images/科技产业服务备份 2.png differ diff --git a/docs/images/维保记录备份.png b/docs/images/维保记录备份.png new file mode 100644 index 0000000..2ea49b8 Binary files /dev/null and b/docs/images/维保记录备份.png differ diff --git a/docs/images/行程备份.png b/docs/images/行程备份.png new file mode 100644 index 0000000..2dbf7e3 Binary files /dev/null and b/docs/images/行程备份.png differ diff --git a/docs/images/设备维修上报备份 2.png b/docs/images/设备维修上报备份 2.png new file mode 100644 index 0000000..d681ae1 Binary files /dev/null and b/docs/images/设备维修上报备份 2.png differ diff --git a/docs/xiugai/3.1汇惠云链管理测试.zip b/docs/xiugai/3.1汇惠云链管理测试.zip new file mode 100644 index 0000000..665cd1c Binary files /dev/null and b/docs/xiugai/3.1汇惠云链管理测试.zip differ diff --git a/docs/xiugai/wx20230220.txt b/docs/xiugai/wx20230220.txt new file mode 100644 index 0000000..f354384 --- /dev/null +++ b/docs/xiugai/wx20230220.txt @@ -0,0 +1,170 @@ +云链需要修改和完善的内容: +1。消息通知功能需要实现; +2。后台管理的菜单需要调整,顺序、菜单名称、需要隐藏的都需要调整; +3。收货地址(提货点)功能需要实现; +4。定时任务功能,可发送定时消息通知。 + +问题(2023-02-21) +1. APP升级功能 +2. 后台管理,去掉商户入住,绑定社区 +3. APP上新增收货地址,新增完后显示错误。 +4. APP上收藏功能不可用 +5. APP上注册成功后,需要有提示 +6. APP注册成功后,直接登录,登录后跳转到登录之前的页面。 +7. 优惠券领取后,应该不再显示该优惠券 +8. 优惠券是否可针对某个商品或针对会员可领取 +9. APP短信验证(注册、登录) +10.支付宝付款、微信付款功能 + +呼叫凹凸曼~,郭兴: +1. APP升级功能 +2. 后台管理,去掉商户入住,绑定社区(手机端完成) +3. APP上新增收货地址,新增完后显示错误。 +4. APP上收藏功能不可用 +5. APP上注册成功后,需要有提示 +6. APP注册成功后,直接登录,登录后跳转到登录之前的页面。(手机端完成) +7. 优惠券领取后,应该不再显示该优惠券 (手机端完成) +8. 优惠券是否可针对某个商品或针对会员可领取 +9. APP短信验证(注册、登录) +10.支付宝付款、微信付款功能 + +聂金义: +APP升级功能最后处理 + +聂金义: +@popo 短信验证后台优先处理 + +呼叫凹凸曼~,郭兴: +@瓶旁醉卧 剩下的问题都是需要后台配合的 + +呼叫凹凸曼~,郭兴: +http://mall.yyundong.com/portalapi/api/ + +呼叫凹凸曼~,郭兴: +userInfo: 'single/home/userInfo', // 用户信息 + +聂金义: +@Z. 看看能把注册短信搭起来吗? + +底孟哲: +有接口文档吗 + +底孟哲: +[图片] + +底孟哲: +是这个吗?@瓶旁醉卧  + +聂金义: +是 + +聂金义: +接口文档还没有,看看把咱们的短信接口能不能放上去 + +聂金义: +1.后台登陆title改为“汇惠云链管理后台”。 +2.去掉背景,拉大登陆框,把图标换成云链图标。 +3.后台首页上面四个图改成竖的,柱状图在右侧。 +4.马上注册把邀请码换成“汇融乡村振兴卡号”,验证前11位为“62350109317”,并验证共19位。注册后如果验证成功则直接成为会员。 +5.商品页去掉商品关联。 +6.立即升级连接页面不对。 +7.领取优惠券必须是会员 + +聂金义: +APP +1.马上注册把邀请码换成“汇融乡村振兴卡号”,验证前11位为“62350109317”,并验证共19位。注册后如果验证成功则直接成为会员。给后台一个状态,设置为会员。 +2.右上角的消息去掉,左上角扫描去掉。 +3.列表页里的惠农价和市场价换价格。 + +聂金义: +汇融乡村振兴卡号输入有误,将无法享受惠农价。是否继续注册? + +聂金义: +7.上拉显示不了更多。 +8.点击升级功能,提示“已经是最新版本。”后期做。 + +现在有个功能需要处理一下,注册时需要判断是不是汇融用户,如果是的话做个汇融会员的标记,只有汇融会员才能领取优惠券。 + +5.优惠券不能对应商品。 + +后台 +1.后台登陆title改为“汇惠云链管理后台”。 +2.去掉背景,拉大登陆框,把图标换成云链图标。 +3.后台首页上面四个图改成竖的,柱状图在右侧。 +4.商品页去掉商品关联。 +5.优惠券不能对应商品。 + 现在急需处理的是注册时需要判断为会员,只有会员再能领优惠券 + +APP +1.马上注册把邀请码换成“汇融乡村振兴卡号”,验证前11位为“62350109317”,并验证共19位。注册后如果验证成功则直接成为会员。给后台一个状态,设置为会员。汇融乡村振兴卡号输入有误,将无法享受惠农价。是否继续注册? +2.右上角的消息去掉,左上角扫描去掉。 +3.列表页里的惠农价和市场价换价格。 +4.市场价所有的杠都去掉。 +5.商品页“市场价”改为“惠农价”。 +6.优惠为负数。 +7.上拉显示不了更多。 +8.商户入驻、绑定社区去掉。 +9.立即升级,提示“已经是最新版本。” +10.升级功能后期做。 +11.优惠券必须是会员才能领取。 +12.注册完提示成功,几秒后跳转。“恭喜您注册成功。(3秒)”,如果卡号验证成功“恭喜您注册成功,并成为惠农会员。(3秒)” +13.收藏不能使用(测试正常) +14.领完优惠券自动刷新,页面上不再显示。 +15.地址管理里的地址即“取货点”。 +16.编辑地址里所在地不能保存。 +17.注册后时默认头像需要改掉。 + +APP +1.马上注册把邀请码换成“汇融乡村振兴卡号”,验证前11位为“62350109317”,并验证共19位。注册后如果验证成功则直接成为会员。给后台一个状态,设置为会员。汇融乡村振兴卡号输入有误,将无法享受惠农价。是否继续注册? +2.右上角的消息去掉,左上角扫描去掉。 +3.列表页里的“市场价”改为“惠农价”。 +4.市场价所有的杠都去掉。(完成) +5.商品页“市场价”改为“惠农价”。(完成) +6.优惠为负数。(完成) +7.上拉显示不了更多。(有时正常有时拉取不出来) +8.商户入驻、绑定社区去掉。(完成) +9.立即升级,提示“已经是最新版本。” +10.升级功能后期做。 +11.优惠券必须是会员才能领取。 +12.注册完提示成功,几秒后跳转。“恭喜您注册成功。(3秒)”,如果卡号验证成功“恭喜您注册成功,并成为惠农会员。(3秒)” +13.收藏不能使用(测试正常) +14.领完优惠券自动刷新,页面上不再显示。 +15.地址管理里的地址即“取货点”。 +16.编辑地址里所在地不能保存。 +17.注册后时默认头像需要改掉。 +18.点击立即使后转圈。 +19.我的优惠券下方直接用日期。 + +1.马上注册把邀请码换成“汇融乡村振兴卡号”,验证前11位为“62350109317”,并验证共19位。注册后如果验证成功则直接成为会员。给后台一个状态,设置为会员。汇融乡村振兴卡号输入有误,将无法享受惠农价。是否继续注册?(完成) +2.右上角的消息去掉,左上角扫描去掉。(完成) +3.列表页里的“市场价”改为“惠农价”。(完成) +4.市场价所有的杠都去掉。(完成) +5.商品页“市场价”改为“惠农价”。(完成) +6.优惠为负数。(完成) +7.上拉显示不了更多。(有时正常有时拉取不出来)(完成) +8.商户入驻、绑定社区去掉。(完成) +9.立即升级,提示“已经是最新版本。”(完成) +10.升级功能后期做。 +11.优惠券必须是会员才能领取。 +12.注册完提示成功,几秒后跳转。“恭喜您注册成功。(3秒)”,如果卡号验证成功“恭喜您注册成功,并成为惠农会员。(3秒)”(完成) +13.收藏不能使用(测试正常)(完成) +14.领完优惠券自动刷新,页面上不再显示。(完成) +15.地址管理里的地址即“取货点”。 +16.编辑地址里所在地不能保存。 +17.注册后时默认头像需要改掉。 +18.点击立即使后转圈。(完成) +19.我的优惠券下方直接用日期。(完成) + + +汇融云链APP修改与功能完善内容安排: +1。APP端,找不到注册页面了。(郭兴) +2。APP端-我的云链-地址管理,该页面,如果已经有了地址,将“新增地址”按钮隐藏(只允许有一个收货地址)。(郭兴) +3。APP端-我的云链-地址管理-新增(或编辑)地址页面,所在地与取货点需要从后台接口获取。(郭兴) +4。针对第3项,后台需要增加维护所在地与取货点的功能页面,并给APP提供对应接口。(刘战洪) +5。APP端-我的云链-地址管理-编辑地址页面,需要将保存的所在地,取货点显示出来 +6。APP端消息通知的展示,后台管理有对消息通知设置与维护的功能页面。(刘战洪) +7。可以设置定时向APP端发送消息通知。(刘战洪) +8。APP端支付功能的实现,需要微信、支付宝支付。(底孟哲) + + + diff --git a/docs/xiugai/商品.docx b/docs/xiugai/商品.docx new file mode 100644 index 0000000..192bec5 --- /dev/null +++ b/docs/xiugai/商品.docx @@ -0,0 +1,40 @@ +一、农机服务: +1、播种(市场价15元/亩,惠农价14元/亩) + + 2、打药无人(市场价10元/亩,惠农价9元/亩) + +3、旋耕(市场价50元/亩,惠农价45元/亩) + + + + 4、小麦收割机(市场价50元/亩,惠农价45元/亩) + +6、施肥(市场价10元/亩,惠农价9元/亩) + + 种子 +1、良玉99号(净含量4200粒 市场价55元/袋,惠农价50元/袋) + + + + 大地916(净含量4300粒 市场价45元/袋,惠农价40元/袋) + + 大地3号(净含量4400粒 市场价55元/袋,惠农价50元/袋) + + 鲁北67(净含量4400粒 市场价55元/袋,惠农价50元/袋) + + + + + 石农958(净含量20KG 市场价3.5元/斤,惠农价3.3元/斤) + + 石农086(净含量25KG 市场价3.5元/斤,惠农价3.3元/斤) + + 化肥 + 锌硼双动力复合肥(规格:40KG 市场价130元/袋 惠农价115元/袋) + + 锌硼双动力稳定性复合肥(规格:40KG 市场价130元/袋 惠农价115元/袋) + + 菌粒饱复合肥(规格:40KG 市场价130元/袋 惠农价115元/袋) + + 菌粒饱稳定性复合肥(规格:40KG 市场价156元/袋 惠农价140元/袋) + diff --git a/docs/xiugai/商城问题及修改20230311.txt b/docs/xiugai/商城问题及修改20230311.txt new file mode 100644 index 0000000..33eee69 --- /dev/null +++ b/docs/xiugai/商城问题及修改20230311.txt @@ -0,0 +1,51 @@ +已经完成修改 +银行问题:1.确认收货页面点击确认收货系统无法正常跳转。 +已修复 +银行问题:2.支付方式显示错误,实际为微信支付,系统显示支付宝。 +已修复 +银行问题:5.登陆app无网络时不提示无网络。 +已修复 +银行问题:7.新注册用户默认有50余额,使用余额支付后金额不扣减。 +经测试,没出现该问题 +银行问题:10.后台发货未取到收货人信息。 +已修复 + +问题:2. 管理后台,发货列表里,没有收货人手机号、地址。 +已修复 +问题:3. 在APP端通过微信支付的, 管理后台查看的显示支付方式是支付宝。 +已修复 +问题:4. 在APP端,点确认收货不能正常跳转,只能返回。 +已修复 + +待修改 +银行问题:3.后台首页可点击,跳转空白页,作用是什么? +修改后台首页的页面,去掉原界面上的内容,只显示一句“欢迎进入汇融惠家营销系统管理后台”这样的话。(郭兴) +银行问题:4.优惠券面额无法输入小数点。 +修改新增优惠券界面的验证规则,设置优惠券面额可输入2位小数。(郭兴) +银行问题:8.新注册用户余额充值报错? +余额充值分别调用了支付宝和微信的支付接口,需要后台调整支付接口(需要保证支付成功后能够回调,能接收银行的回访并更改支付状态及更新对应用户余额值。需要多测试保证数据正确)。(底孟哲负责后台接口,郭兴负责手机端) + +问题:1. APP端,已经过期的优惠券应该归到已失效里边。 +查看优惠券列表的接口,接口返回数据时对应正确的状态。(郭兴查看手机端调用接口及显示数据参数,底孟哲调整接口数据) + + +不确定修改 + +银行问题:6.待支付的订单取消后优惠券不回退。 + +优化: +1.系统增加退单流程。 +2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。 +(1)全部提货点的商品订单统计。 +(2)各个提货点的商品订单统计。 +(3)各个提货点对应到人的订单统计。 +3.系统发货后自动收货确认时间是多久? + + + + + +聂总,这是商城目前的问题及修改情况。包括3部分内容。 +1。 已修改的问题测试过了,还没发布新版本 +2。 未修改的问题,已经有解决方案及对应负责人,还没有安排具体修改时间 +3。 不确定的问题,目前没有确定是否修改和调整。没有具体修改方案及所需要的人工时间 diff --git a/docs/xiugai/汇惠云链管理测试问题.zip b/docs/xiugai/汇惠云链管理测试问题.zip new file mode 100644 index 0000000..6805ea5 Binary files /dev/null and b/docs/xiugai/汇惠云链管理测试问题.zip differ diff --git a/docs/xiugai/汇融云链APP问题-20230228.docx b/docs/xiugai/汇融云链APP问题-20230228.docx new file mode 100644 index 0000000..92d0b6f --- /dev/null +++ b/docs/xiugai/汇融云链APP问题-20230228.docx @@ -0,0 +1,16 @@ + 这个汇融乡村振兴卡号的验证规则是什么 +已回复:验证规则是:以"62350109317"开头,并且长度为19位的字符串 + + 已经登录了,但点购买或加入购物车还要求登录;退出了以后再登陆用户信息还在,但是购买需要重新登陆;这里有一个缓存的问题,我们开发人员正在处理。 +已经修改 + + 切换使用账号密码登录和短信登录,切换点击的有问题;比如在短信登录那四个字上点击一下,就变成可以输入密码了,然后登陆提示参数错误 +已经修改 + + 取消订单了,右上角还是显示待付款 +订单问题涉及的状态较多,需要花时间将订单流程和状态统一处理。 + + 待付款的订单多久自动取消? +已回复:订单超时时间是12分钟,但是每10分钟扫描一次订单状态,所以订单超时时间应该在12-22分钟之间。 + + 续 diff --git a/docs/xiugai/汇融云链APP问题-20230307.docx b/docs/xiugai/汇融云链APP问题-20230307.docx new file mode 100644 index 0000000..6be7b35 --- /dev/null +++ b/docs/xiugai/汇融云链APP问题-20230307.docx @@ -0,0 +1,43 @@ + 每次进来都会提示新版本,更新了也是这样,是我手机的问题吗,平板是正常的吗 + + 已回复:升级后手机上应该是有两个"汇融云链APP"的图标,需要把之前的删除,使用升级后新装的这个版本。造成这个的原因是 1.0.0.6之后的版本实现了支付宝和微信支付,所以更新了证书,生成的安装包会安装两个APP。 + 好的,后续更新就不会出现两个app的情况了吧 + 是的,只有跨证书的这个版本有这个问题。现在发布的包括平板里安装的,都不会出现这问题的。 + + 过期的优惠券应该归到已失效里边吧 + + + 取消的订单也被计算到销量里边了,这样会影响销量统计吧 + + + 已回复:销量的统计也是以展示为主,不是用来做为统计依据的,如果需要准确的数值的话,我这边安排人员处理 + 后台能取到准确的销量统计吗 + 如果需要后台统计的话,是依据订单来统计的。 + + 已经是会员了,享受不了会员价。看一下会员价的问题,我换号注册会员了也享受不了会员价 + + 已回复:按我们拿到的需求是:成为会员了可以领取优惠券,非会员不可以领取优惠券。没有和价格建立关系。 + 惠农价只是作为展示是吧,以市场价减去领到的优惠券为准? + 是的。会员可以领取和使用优惠券 + + 这个收货人手机号地址都没有取值,直接发货有问题吗 + + + + + 微信支付的, 支付方式显示的是支付宝 + + + 点确认收货不能正常跳转,只能返回(确定状态:订单已经确认收货,再进入详情还显示待收货) + + + 怎么申请退款呢 +回复:目前没有退款功能,因为货物是放到取货点,所以退货是去取货点来处理,也就是走线下流程 +未发货的订单也不能退吗 +例如误操作了 +是的,目前是按这种需求来实现的。 + + 地址选错了,付了钱了,怎么取消订单 +回复:付款之前可以取消订单。付款后就不能取消了。地址都是指定的取货点地址,不发给个人家里 + + 续 diff --git a/docs/xiugai/汇融云链APP问题-20230307.txt b/docs/xiugai/汇融云链APP问题-20230307.txt new file mode 100644 index 0000000..26584ff --- /dev/null +++ b/docs/xiugai/汇融云链APP问题-20230307.txt @@ -0,0 +1,4 @@ +1. APP端,已经过期的优惠券应该归到已失效里边。郭兴看下手机端展示逻辑,是否可以通过修改后台接口修改 +2. 管理后台,发货列表里,没有收货人手机号、地址。郭兴看下这数据是怎么取的,刘战洪配合对接接口 +3. 在APP端通过微信支付的, 管理后台查看的显示支付方式是支付宝。郭兴看下数据状态、参数是什么,刘战洪配合对接接口 +4. 在APP端,点确认收货不能正常跳转,只能返回。郭兴看下是否手机端的问题,另外再把各种状态看下是否正确,比如:订单已经确认收货,再进入详情还显示待收货 \ No newline at end of file diff --git a/docs/xiugai/汇融惠家营销系统疑问归集20230308(修改情况).docx b/docs/xiugai/汇融惠家营销系统疑问归集20230308(修改情况).docx new file mode 100644 index 0000000..f711000 --- /dev/null +++ b/docs/xiugai/汇融惠家营销系统疑问归集20230308(修改情况).docx @@ -0,0 +1,19 @@ +问题: +1. 确认收货页面点击确认收货系统无法正常跳转。 + + 已修复 +2. + 支付方式显示错误,实际为微信支付,系统显示支付宝。 + 已修复 +3. + 后台首页可点击,跳转空白页,作用是什么? + +4.优惠券面额无法输入小数点。5.登陆app无网络时不提示无网络。6.待支付的订单取消后优惠券不回退。7.新注册用户默认有50余额,使用余额支付后金额不扣减。 +8.新注册用户余额充值报错? +10.后台发货未取到收货人信息。 +优化: +1.系统增加退单流程。2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。 (1)全部提货点的商品订单统计。 + (2)各个提货点的商品订单统计。 + (3) 各个提货点对应到人的订单统计。 +3.系统发货后自动收货确认时间是多久? + diff --git a/docs/xiugai/汇融惠家营销系统疑问归集20230308(分).docx b/docs/xiugai/汇融惠家营销系统疑问归集20230308(分).docx new file mode 100644 index 0000000..67d597c --- /dev/null +++ b/docs/xiugai/汇融惠家营销系统疑问归集20230308(分).docx @@ -0,0 +1,29 @@ +问题: + 确认收货页面点击确认收货系统无法正常跳转。 + + + 支付方式显示错误,实际为微信支付,系统显示支付宝。 +3. + + 后台首页可点击,跳转空白页,作用是什么? +4. + +优惠券面额无法输入小数点。 +5.登陆app无网络时不提示无网络。 +6.待支付的订单取消后优惠券不回退。 +7.新注册用户默认有50余额,使用余额支付后金额不扣减。 + + +8.新注册用户余额充值报错? + +10.后台发货未取到收货人信息。 + + +优化: +1.系统增加退单流程。 +2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。 + (1)全部提货点的商品订单统计。 + (2)各个提货点的商品订单统计。 + 各个提货点对应到人的订单统计。 +3.系统发货后自动收货确认时间是多久? + diff --git a/docs/xiugai/汇融惠家营销系统疑问归集20230308.docx b/docs/xiugai/汇融惠家营销系统疑问归集20230308.docx new file mode 100644 index 0000000..67d597c --- /dev/null +++ b/docs/xiugai/汇融惠家营销系统疑问归集20230308.docx @@ -0,0 +1,29 @@ +问题: + 确认收货页面点击确认收货系统无法正常跳转。 + + + 支付方式显示错误,实际为微信支付,系统显示支付宝。 +3. + + 后台首页可点击,跳转空白页,作用是什么? +4. + +优惠券面额无法输入小数点。 +5.登陆app无网络时不提示无网络。 +6.待支付的订单取消后优惠券不回退。 +7.新注册用户默认有50余额,使用余额支付后金额不扣减。 + + +8.新注册用户余额充值报错? + +10.后台发货未取到收货人信息。 + + +优化: +1.系统增加退单流程。 +2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。 + (1)全部提货点的商品订单统计。 + (2)各个提货点的商品订单统计。 + 各个提货点对应到人的订单统计。 +3.系统发货后自动收货确认时间是多久? + diff --git a/docs/xiugai/营销系统问题及修改20230311(修正).txt b/docs/xiugai/营销系统问题及修改20230311(修正).txt new file mode 100644 index 0000000..da71f8f --- /dev/null +++ b/docs/xiugai/营销系统问题及修改20230311(修正).txt @@ -0,0 +1,62 @@ +一、已经完成修改 +银行提问:1.确认收货页面点击确认收货系统无法正常跳转。 +已修复 +银行提问:2.支付方式显示错误,实际为微信支付,系统显示支付宝。 +已修复 +银行提问:5.登陆app无网络时不提示无网络。 +已修复 +银行提问:10.后台发货未取到收货人信息。 +已修复 +问题:2. 管理后台,发货列表里,没有收货人手机号、地址。 +已修复 +问题:3. 在APP端通过微信支付的, 管理后台查看的显示支付方式是支付宝。 +已修复 +问题:4. 在APP端,点确认收货不能正常跳转,只能返回。 +已修复 + +二、待修改 +银行提问:3.后台首页可点击,跳转空白页,作用是什么? +后台首页显示的统计数据,将点击链接去掉(即只展示数据不需要页面跳转)。页面上展示的需要是真实数据,如果暂时无真实数据的接口,先隐藏不显示,后期完成接口后再进行展示。(郭兴) +银行提问:4.优惠券面额无法输入小数点。 +修改新增优惠券界面的验证规则,设置优惠券面额可输入2位小数。(郭兴) +银行提问:8.新注册用户余额充值报错? +经过讨论与沟通,余额充值及余额支付功能的实际用途不大。可先将余额相关功能屏蔽,1、“我的云链”界面,不显示“余额”(需要对界面效果进行调整,“余额”这里可显示其他内容,不要显的太空);2、购买支付时,不显示“余额支付”选项;3、测试APP端各个界面,屏蔽“余额”相关内容。(郭兴负责手机端) +管理后台“会员列表”页面也需要屏蔽“余额”列及“余额充值”按钮。 +银行提问:7.新注册用户默认有50余额,使用余额支付后金额不扣减。 +经测试,没出现该问题。 +针对 账号13832363123存在该问题,对账号13832363123的数据分析结果如下: +注册时间:2023-02-27 10:07:48,注册时余额为0; +余额增加:2023-02-27 15:42:16,增加方式:后台余额充值,充值金额:50。该操作为测试人员测试后台账户余额充值功能时所进行; +余额消费:2023-03-08 11:42:54,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化; +余额消费:2023-03-08 11:43:31,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化; +余额消费:2023-03-11 18:30:44,APP端订单使用余额付款0.03元,余额值减少0元,余额无变化; +结论:新注册用户不会有50余额,如果使用余额付款低于1元钱,余额账户无变化。 +引申问题:1:需要确认已有账户再次注册(即13832363123账号已经注册成功,退出登录后再用13832363123进行注册)的情况下前后台的执行逻辑是什么?2:使用余额支付时,支付金额较小时(如:0.03元),余额值也应该进行调整(该功能优先级较低,完成其他修改后再处理) +问题:1. APP端,已经过期的优惠券应该归到已失效里边。 +查看优惠券列表的接口,接口返回数据时对应正确的状态。(郭兴查看手机端调用接口及显示数据参数,底孟哲调整接口数据) + +三、需要讨论后修改 +银行提问:6.待支付的订单取消后优惠券不回退。 +该问题需要从创建订单时使用优惠券到订单取消或失败整个流程的各个环节进行分析,确认取消支付或支付失败的情况下优惠券都正确退回。 + +优化: +1.系统增加退单流程。 +2.订单归集统计?对于商品待发货、已发货、已完成订单统计列表。 +(1)全部提货点的商品订单统计。 +(2)各个提货点的商品订单统计。 +(3)各个提货点对应到人的订单统计。 +3.系统发货后自动收货确认时间是多久? + +后台管理,发货界面加一个批量发货,具体实现逻辑再讨论,先修改问题。 + +商品发货以及到达取货点,现实现功能为商品发货后发送一个物流信息到用户手机APP信息界面,需要用户进入信息界面主动向服务端发起查询。需要考虑是否发达推送消息或短信通知(推送消息需集成第三方消息推送)。 + +因为原系统订单流程是用户下单、支付、商家发货、物流送货到用户收货地址、确认收货交易完成。 +现在订单流程为用户下单、支付、商家发货、物流送货到用户指定取货点、用户到取货点取货及确认收货交易完成。 +需要对订单流程进行完整测试,各个环节状态的改变,对用户的通知等都需要再考虑完善。 + +四、修改原则 +1. 现有功能不可以报错,功能可以简化但不可以出错、不可以有缺陷; +2. 首先考虑手机端APP的稳定性,后期功能完善和调整,通过后台操作或接口来实现,避免手机端APP的升级; +3. 业务流程需要完整,能够形成完整的闭环,不可以有操作过程中有断开无法连贯的情况。 + diff --git a/docs/xiugai/营销系统问题及修改20230313.txt b/docs/xiugai/营销系统问题及修改20230313.txt new file mode 100644 index 0000000..ae5a272 --- /dev/null +++ b/docs/xiugai/营销系统问题及修改20230313.txt @@ -0,0 +1,13 @@ + +1。优惠券面额无法输入小数点。 +修改新增优惠券界面的验证规则,设置优惠券面额可输入2位小数。(郭兴) +2。需要确认已有账户再次注册(即13832363123账号已经注册成功,退出登录后再用13832363123进行注册)的情况下前后台的执行逻辑是什么? +3。APP端,已经过期的优惠券应该归到已失效里边。 +查看优惠券列表的接口,接口返回数据时对应正确的状态。(郭兴查看手机端调用接口及显示数据参数,底孟哲调整接口数据) +4。管理后台的订单列表页面,点击“查询搜索”报错。 +5。管理后台的会员列表页面。查询功能不起作用 +6。待支付的订单取消后优惠券不回退。 + +需要对订单流程进行完整测试,各个环节状态的改变。 + +系统发货后自动收货确认时间是2天;订单完成时间是5天; diff --git a/docs/安卓APP证书/key-info.txt b/docs/安卓APP证书/key-info.txt new file mode 100644 index 0000000..eb1e1d3 --- /dev/null +++ b/docs/安卓APP证书/key-info.txt @@ -0,0 +1,76 @@ +打包参数: +Android包名:com.yxt.mall +使用自有证书:yxtmallapp.keystore +证书别名:yxtmallapp +证书私钥密码:123456 +证书文件:yxtmallapp.keystore + + + +C:\opt\jdk1.8.0_261\bin\keytool -genkey -alias yxtmallapp -keyalg RSA -keysize 2048 -validity 36500 -keystore yxtmallapp.keystore +密码:123456 + +C:\opt\jdk1.8.0_261\bin\keytool -list -v -keystore yxtmallapp.keystore +输入密钥库口令: +密钥库类型: jks +密钥库提供方: SUN + +您的密钥库包含 1 个条目 + +别名: yxtmallapp +创建日期: 2023-2-27 +条目类型: PrivateKeyEntry +证书链长度: 1 +证书[1]: +所有者: CN=liu, OU=yxt, O=yxt, L=sjz, ST=hebei, C=CN +发布者: CN=liu, OU=yxt, O=yxt, L=sjz, ST=hebei, C=CN +序列号: 388e0f61 +有效期为 Mon Feb 27 09:58:50 CST 2023 至 Wed Feb 03 09:58:50 CST 2123 +证书指纹: + MD5: 0B:3E:40:4F:68:72:34:BF:98:1B:9D:34:3A:2C:59:A9 + SHA1: A7:D7:83:32:8C:59:02:57:8D:2E:CB:16:BB:5B:3B:74:35:DA:67:08 + SHA256: 0F:3B:5F:DC:03:DB:78:2B:35:60:69:95:73:40:72:A6:AC:96:F0:C8:D1:18:6E:1D:3F:BF:F8:21:BB:AE:85:1B +签名算法名称: SHA256withRSA +主体公共密钥算法: 2048 位 RSA 密钥 +版本: 3 + +扩展: + +#1: ObjectId: 2.5.29.14 Criticality=false +SubjectKeyIdentifier [ +KeyIdentifier [ +0000: 6E FA C5 DA 91 A2 65 22 17 E9 DE 1B 72 8B 22 CB n.....e"....r.". +0010: A9 81 5C 3A ..\: +] +] + + + +******************************************* +******************************************* + + + +Warning: +JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore yxtmallapp.keystore -destkeystore yxtmallapp.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。 + + + +支付宝APPID,2018082761134635 +#支付宝相关配置 +alipay.appId=2018082761134635 +alipay.privateKey=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw== +alipay.serverUrl=https://openapi.alipay.com/gateway.do +alipay.domain=http://2xpk7t.natappfree.cc/api +#回调地址 +alipay.notifyUrl=http://2xpk7t.natappfree.cc/api/aliPay/notify_url +# 支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) +alipay.RootCertPath=D:\\apliay\\alipayRootCert.crt +# 支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) +alipay.ALIPAY_PUBLIC_KEY=D:\\apliay\\alipayCertPublicKey_ + + + + + + diff --git a/docs/安卓APP证书/yxtmallapp.keystore b/docs/安卓APP证书/yxtmallapp.keystore new file mode 100644 index 0000000..a28cbb4 Binary files /dev/null and b/docs/安卓APP证书/yxtmallapp.keystore differ diff --git a/docs/手册/huichuan.apk b/docs/手册/huichuan.apk new file mode 100644 index 0000000..4fb5f14 Binary files /dev/null and b/docs/手册/huichuan.apk differ diff --git a/docs/手册/logo01.png b/docs/手册/logo01.png new file mode 100644 index 0000000..330b4a0 Binary files /dev/null and b/docs/手册/logo01.png differ diff --git a/docs/手册/xiqu.apk b/docs/手册/xiqu.apk new file mode 100644 index 0000000..1e47883 Binary files /dev/null and b/docs/手册/xiqu.apk differ diff --git a/docs/手册/交付清单.png b/docs/手册/交付清单.png new file mode 100644 index 0000000..0a9f9c9 Binary files /dev/null and b/docs/手册/交付清单.png differ diff --git a/docs/手册/惠传01.jpg b/docs/手册/惠传01.jpg new file mode 100644 index 0000000..f72fcff Binary files /dev/null and b/docs/手册/惠传01.jpg differ diff --git a/docs/手册/惠传02.jpg b/docs/手册/惠传02.jpg new file mode 100644 index 0000000..cf69564 Binary files /dev/null and b/docs/手册/惠传02.jpg differ diff --git a/docs/手册/惠传03.jpg b/docs/手册/惠传03.jpg new file mode 100644 index 0000000..81d6474 Binary files /dev/null and b/docs/手册/惠传03.jpg differ diff --git a/docs/手册/惠传04.jpg b/docs/手册/惠传04.jpg new file mode 100644 index 0000000..becfe3b Binary files /dev/null and b/docs/手册/惠传04.jpg differ diff --git a/docs/手册/戏曲01.jpg b/docs/手册/戏曲01.jpg new file mode 100644 index 0000000..a2ec12a Binary files /dev/null and b/docs/手册/戏曲01.jpg differ diff --git a/docs/手册/戏曲02.jpg b/docs/手册/戏曲02.jpg new file mode 100644 index 0000000..9f66e21 Binary files /dev/null and b/docs/手册/戏曲02.jpg differ diff --git a/docs/手册/戏曲03.jpg b/docs/手册/戏曲03.jpg new file mode 100644 index 0000000..8d73cf0 Binary files /dev/null and b/docs/手册/戏曲03.jpg differ diff --git a/docs/手册/戏曲04.jpg b/docs/手册/戏曲04.jpg new file mode 100644 index 0000000..dd9a157 Binary files /dev/null and b/docs/手册/戏曲04.jpg differ diff --git a/docs/手册/汇融云链介绍与操作.pptx b/docs/手册/汇融云链介绍与操作.pptx new file mode 100644 index 0000000..3f82dcc Binary files /dev/null and b/docs/手册/汇融云链介绍与操作.pptx differ diff --git a/docs/测试问题文档及操作页面.zip b/docs/测试问题文档及操作页面.zip new file mode 100644 index 0000000..bcfc271 Binary files /dev/null and b/docs/测试问题文档及操作页面.zip differ diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java b/mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java index c3783e3..3fccbca 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java @@ -42,29 +42,29 @@ public class BuildWuyeCompanyServiceImpl extends ServiceImpl(pageNum, pageSize), new QueryWrapper<>(entity).select(ConstansValue.sampleSubjectList))); + String title = entity.getTitle(); + if (ValidatorUtils.notEmpty(title)) { + entity.setTitle(null); + return new CommonResult().success(ICmsSubjectService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity).like("title", title).select(ConstansValue.sampleSubjectList))); + }else { + return new CommonResult().success(ICmsSubjectService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity).select(ConstansValue.sampleSubjectList))); + } } catch (Exception e) { log.error("根据条件查询所有专题表列表:%s", e.getMessage(), e); } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/oms/controller/OmsOrderReturnApplyController.java b/mallplus-admin/src/main/java/com/zscat/mallplus/oms/controller/OmsOrderReturnApplyController.java index 49b09ae..7dd12de 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/oms/controller/OmsOrderReturnApplyController.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/oms/controller/OmsOrderReturnApplyController.java @@ -20,12 +20,12 @@ import com.zscat.mallplus.oms.service.IOmsOrderService; import com.zscat.mallplus.oms.vo.OmsUpdateStatusParam; import com.zscat.mallplus.util.UserUtils; import com.zscat.mallplus.utils.CommonResult; -import com.zscat.mallplus.utils.InterfaceUrl; import com.zscat.mallplus.utils.ValidatorUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -33,6 +33,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.security.PublicKey; import java.util.List; /** @@ -54,6 +55,26 @@ public class OmsOrderReturnApplyController { @Resource private IOmsOrderService IOmsOrderService; + @Value("${alipay.domain}") + private String DOMAIN; + + @Value("${alipay.appId}") + private String APPID; + + @Value("${alipay.privateKey}") + private String APP_PRIVATE_KEY; + /** + * 支付宝公钥 + */ + @Value("${alipay.ALIPAY_PUBLIC_KEY}") + private String ALIPAY_PUBLIC_KEY; + + /** + * 支付宝网关 + */ + @Value("${alipay.serverUrl}") + private String GATE; + @SysLog(MODULE = "oms", REMARK = "根据条件查询所有订单退货申请列表") @ApiOperation("根据条件查询所有订单退货申请列表") @GetMapping(value = "/list") @@ -193,7 +214,8 @@ public class OmsOrderReturnApplyController { */ public String queryPayment(String Out_Trade_No) { //填写自己创建的app的对应参数 - AlipayClient alipayClient = new DefaultAlipayClient(InterfaceUrl.serverUrl, InterfaceUrl.appId, InterfaceUrl.privateKey, "json", "utf-8", InterfaceUrl.publicKey, "RSA2"); +// AlipayClient alipayClient = new DefaultAlipayClient(InterfaceUrl.serverUrl, InterfaceUrl.appId, InterfaceUrl.privateKey, "json", "utf-8", InterfaceUrl.publicKey, "RSA2"); + AlipayClient alipayClient = new DefaultAlipayClient(GATE, APPID, APP_PRIVATE_KEY, "json", "utf-8", ALIPAY_PUBLIC_KEY, "RSA2"); AlipayTradeQueryRequest alipay_request = new AlipayTradeQueryRequest(); AlipayTradeQueryModel model = new AlipayTradeQueryModel(); @@ -221,7 +243,8 @@ public class OmsOrderReturnApplyController { * @return */ public String alipayRefund(String out_trade_no, String trade_no, String refund_amount) { - AlipayClient alipayClient = new DefaultAlipayClient(InterfaceUrl.serverUrl, InterfaceUrl.appId, InterfaceUrl.privateKey, "json", "utf-8", InterfaceUrl.publicKey, "RSA2"); +// AlipayClient alipayClient = new DefaultAlipayClient(InterfaceUrl.serverUrl, InterfaceUrl.appId, InterfaceUrl.privateKey, "json", "utf-8", InterfaceUrl.publicKey, "RSA2"); + AlipayClient alipayClient = new DefaultAlipayClient(GATE, APPID, APP_PRIVATE_KEY, "json", "utf-8", ALIPAY_PUBLIC_KEY, "RSA2"); //订单编号 支付宝交易号不为空 if (out_trade_no != null && trade_no != null) { AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest(); diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/pms/service/impl/PmsProductServiceImpl.java b/mallplus-admin/src/main/java/com/zscat/mallplus/pms/service/impl/PmsProductServiceImpl.java index 4908c7e..d3372f0 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/pms/service/impl/PmsProductServiceImpl.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/pms/service/impl/PmsProductServiceImpl.java @@ -329,7 +329,7 @@ public class PmsProductServiceImpl extends ServiceImpl list(String keyword) { QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("delete_status", 0); + queryWrapper.eq("delete_status", 1); if (!StringUtils.isEmpty(keyword)) { queryWrapper.like("name", keyword); diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/SysMessageController.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/SysMessageController.java index 951a19b..5645929 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/SysMessageController.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/SysMessageController.java @@ -1,9 +1,23 @@ package com.zscat.mallplus.ums.controller; +import com.zscat.mallplus.annotation.SysLog; +import com.zscat.mallplus.ums.entity.SysMessage; +import com.zscat.mallplus.ums.entity.UmsMember; +import com.zscat.mallplus.ums.service.ISysMessageService; +import com.zscat.mallplus.ums.vo.SysMessageSendSelectVo; +import com.zscat.mallplus.utils.CommonResult; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + /** *

* 站内信 前端控制器 @@ -16,5 +30,49 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/ums/sysMessage") public class SysMessageController { + private static final Logger log = LoggerFactory.getLogger(SysMessageController.class); + + @Resource + private ISysMessageService messageService; + + @PostMapping(value = "/sendToOne") + public Object sendToOne(@RequestBody SysMessage entity) { + try { + if (messageService.sendToOne(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("向指定会员 {} 发信息失败:{}", entity.getUserId(), e.getMessage()); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + @PostMapping(value = "/sendToAll") + public Object sendToAll(@RequestBody SysMessage entity) { + try { + if (messageService.sendToAll(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("向所有会员发信息失败:{}", e.getMessage()); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + @PostMapping(value = "/sendToSelect") + public Object sendToSelect(@RequestBody SysMessageSendSelectVo vo) { + try { + if (messageService.sendToSelect(vo)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("向所选会员发信息失败:{}", e.getMessage()); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/UmsMemberController.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/UmsMemberController.java index e01c0d7..7841161 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/UmsMemberController.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/controller/UmsMemberController.java @@ -174,7 +174,7 @@ public class UmsMemberController { @SysLog(MODULE = "ums", REMARK = "删除会员表") @ApiOperation("删除会员表") @GetMapping(value = "/delete/{id}") - @PreAuthorize("hasAuthority('ums:UmsMember:delete')") +// @PreAuthorize("hasAuthority('ums:UmsMember:delete')") public Object deleteUmsMember(@ApiParam("会员表id") @PathVariable Long id) { try { if (ValidatorUtils.empty(id)) { diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java index 736a5bc..40b4684 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java @@ -2,6 +2,7 @@ package com.zscat.mallplus.ums.service; import com.baomidou.mybatisplus.extension.service.IService; import com.zscat.mallplus.ums.entity.SysMessage; +import com.zscat.mallplus.ums.vo.SysMessageSendSelectVo; /** *

@@ -13,4 +14,11 @@ import com.zscat.mallplus.ums.entity.SysMessage; */ public interface ISysMessageService extends IService { + boolean sendToOne(SysMessage entity); + + boolean sendToAll(SysMessage entity); + + boolean sendToSelect(SysMessageSendSelectVo vo); + + boolean sendOrderDeliver(String orderNo,Integer userId); } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java index 6f5967d..2d34d88 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.zscat.mallplus.ums.entity.UmsMember; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; /** @@ -19,4 +20,6 @@ public interface IUmsMemberService extends IService { void updataMemberOrderInfo(); Map memberMonthStatic( String date); + + List listAll(); } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java index 066e05d..2376693 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java @@ -2,10 +2,17 @@ package com.zscat.mallplus.ums.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zscat.mallplus.ums.entity.SysMessage; +import com.zscat.mallplus.ums.entity.UmsMember; import com.zscat.mallplus.ums.mapper.SysMessageMapper; import com.zscat.mallplus.ums.service.ISysMessageService; +import com.zscat.mallplus.ums.service.IUmsMemberService; +import com.zscat.mallplus.ums.vo.SysMessageSendSelectVo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** *

* 站内信 服务实现类 @@ -17,4 +24,51 @@ import org.springframework.stereotype.Service; @Service public class SysMessageServiceImpl extends ServiceImpl implements ISysMessageService { + @Autowired + private IUmsMemberService memberService; + + @Override + public boolean sendToOne(SysMessage entity) { + entity.setId(null); + return this.save(entity); + } + + @Override + public boolean sendToAll(SysMessage entity) { + List memberList = memberService.listAll(); +// List messList = new ArrayList<>(); + for (UmsMember member : memberList) { +// SysMessage + entity.setId(null); + Integer id = Math.toIntExact(member.getId()); + entity.setUserId(id); +// messList.add(en) + this.save(entity); + } + return true; + } + + @Override + public boolean sendToSelect(SysMessageSendSelectVo vo) { + SysMessage entity = vo.getSysMessage(); + List userIdList = vo.getUserIdList(); + for (Integer memberId : userIdList) { + entity.setId(null); + entity.setUserId(memberId); + this.save(entity); + } + return true; + } + + @Override + public boolean sendOrderDeliver(String orderNo, Integer userId) { + SysMessage entity = new SysMessage(); + entity.setId(null); + entity.setCode("交易物流"); + entity.setParams("货物已发出"); + entity.setContent("你的订单号码为:"+orderNo+" 的货物已经发出,请您留意物流信息!"); + entity.setUserId(userId); + this.save(entity); + return true; + } } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java index 808a2e2..16703b1 100644 --- a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java @@ -58,4 +58,9 @@ public class UmsMemberServiceImpl extends ServiceImpl listAll() { + return baseMapper.selectList(new QueryWrapper()); + } } diff --git a/mallplus-admin/src/main/java/com/zscat/mallplus/ums/vo/SysMessageSendSelectVo.java b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/vo/SysMessageSendSelectVo.java new file mode 100644 index 0000000..1717df4 --- /dev/null +++ b/mallplus-admin/src/main/java/com/zscat/mallplus/ums/vo/SysMessageSendSelectVo.java @@ -0,0 +1,29 @@ +package com.zscat.mallplus.ums.vo; + +import com.zscat.mallplus.ums.entity.SysMessage; + +import java.util.ArrayList; +import java.util.List; + +public class SysMessageSendSelectVo { + + private List userIdList = new ArrayList<>(); + + private SysMessage sysMessage; + + public List getUserIdList() { + return userIdList; + } + + public void setUserIdList(List userIdList) { + this.userIdList = userIdList; + } + + public SysMessage getSysMessage() { + return sysMessage; + } + + public void setSysMessage(SysMessage sysMessage) { + this.sysMessage = sysMessage; + } +} diff --git a/mallplus-admin/src/main/resources/application-dev.properties b/mallplus-admin/src/main/resources/application-dev.properties index 14ea2d7..7f32296 100644 --- a/mallplus-admin/src/main/resources/application-dev.properties +++ b/mallplus-admin/src/main/resources/application-dev.properties @@ -18,8 +18,8 @@ spring.redis.pool.min-idle=0 # \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09 spring.redis.timeout=0 #===redis end=== -#spring.datasource.url=jdbc:mysql://localhost:3306/mallplus1?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8 spring.datasource.url=jdbc:mysql://8.130.39.13:3306/mallplus1?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8 +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mallplus1?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8 spring.datasource.username=root #spring.datasource.password=root spring.datasource.password=1LAiGz$t1*Iw @@ -58,3 +58,18 @@ mybatis-plus.global-config.refresh=true mybatis-plus.configuration.map-underscore-to-camel-case=true mybatis-plus.configuration.cache-enabled=false +#支付宝相关配置 +alipay.appId=2018082761134635 +alipay.privateKey=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw== +alipay.serverUrl=https://openapi.alipay.com/gateway.do +alipay.domain=http://192.168.1.107:8111/api +#回调地址 +alipay.notifyUrl=http://192.168.1.107:8111/api/aliPay/notify_url +# 支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) +alipay.RootCertPath=D:\\apliay\\alipayRootCert.crt +# 支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) +alipay.ALIPAY_PUBLIC_KEY=D:\\apliay\\alipayCertPublicKey_RSA2.crt +# 应用公钥证书路径(app_cert_path 文件绝对路径) +alipay.CertPath=D:\\apliay\\appCertPublicKey_2018082761134635.crt + + diff --git a/mallplus-admin/src/main/resources/application-test.properties b/mallplus-admin/src/main/resources/application-test.properties index 80c816a..57daa88 100644 --- a/mallplus-admin/src/main/resources/application-test.properties +++ b/mallplus-admin/src/main/resources/application-test.properties @@ -72,3 +72,16 @@ wx.uniformorder=https://api.mch.weixin.qq.com/pay/unifiedorder wx.userMessage=https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN wx.webAccessTokenhttps=https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code wx.templateId=nAt_DYLLwYXkIhtDb5nyEm0ynrt98OK3Z3MmeUooPz4 + +alipay.appId=2018082761134635 +alipay.privateKey=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw== +alipay.serverUrl=https://openapi.alipay.com/gateway.do +alipay.domain=https://mall.yyundong.com/portalapi/api +#回调地址 +alipay.notifyUrl=https://mall.yyundong.com/portalapi/api/aliPay/notify_url +# 支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) +alipay.RootCertPath=D:\\apliay\\alipayRootCert.crt +# 支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) +alipay.ALIPAY_PUBLIC_KEY=D:\\apliay\\alipayCertPublicKey_RSA2.crt +# 应用公钥证书路径(app_cert_path 文件绝对路径) +alipay.CertPath=D:\\apliay\\appCertPublicKey_2018082761134635.crt diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/AllEnum.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/AllEnum.java index 1b76d62..8ed9a9e 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/AllEnum.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/AllEnum.java @@ -232,11 +232,11 @@ public class AllEnum { /** * 微信小程序 */ - weixinAppletPay(1, "weixinAppletPay"), + weixinAppletPay(2, "weixinAppletPay"), /** * */ - alipay(2, "alipay"), + alipay(1, "alipay"), /** * 余额支付 */ diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/ConstansValue.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/ConstansValue.java index eecb50c..59d3789 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/ConstansValue.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/ConstansValue.java @@ -22,7 +22,7 @@ public class ConstansValue { " original_price,\n" + " weight \n" + " "; - public static final String sampleOrderList = "id,member_id, order_sn, create_time, member_username, total_amount, pay_amount,status, order_type,pay_type,source_type,goods_id,goods_name,delivery_sn,delivery_company"; + public static final String sampleOrderList = "id,member_id, order_sn, create_time, member_username, total_amount, pay_amount,status, order_type,pay_type,source_type,goods_id,goods_name,delivery_sn,delivery_company,receiver_name,receiver_phone,receiver_detail_address,receiver_region"; public static final String sampleSubjectList = "id, category_id, title, pic, product_count, recommend_status, create_time, collect_count, read_count, comment_count, album_pics, description, show_status, forward_count, category_name, area_id, school_id, member_id, area_name, school_name, reward, member_name, video_src, type"; diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/SmsEnum.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/SmsEnum.java new file mode 100644 index 0000000..4905211 --- /dev/null +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/enums/SmsEnum.java @@ -0,0 +1,114 @@ +package com.zscat.mallplus.enums; + +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; + +/** + * @Author dimengzhe + * @Date 2023/2/23 9:01 + * @Description + */ +public class SmsEnum { + /** + * 手机短信登录验证码时效(秒) + */ + public static final Long APP_LOGIN_CODE_TIME_LIMIT = 300L; + + @Value("${redis.key.prefix.loginCode}") + private static String REDIS_KEY_PREFIX_LOGIN_CODE; + + @Value("${redis.key.prefix.forgetCode}") + private static String REDIS_KEY_PREFIX_FORGET_CODE; + + + /** + * 发送验证码 + */ + @Getter + public static enum SendEnum { + /** + * 登录 + */ + LOGIN("1", REDIS_KEY_PREFIX_LOGIN_CODE,"登录"), + FORGET("2", REDIS_KEY_PREFIX_FORGET_CODE,"忘记密码"), + ; + + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + /** + * 缓存识别码 + */ + private final String redisKey; + + /** + * 构造器 + * + * @param code code值 + * @param redisKey 缓存识别码 + * @param remarks 备注 + */ + private SendEnum(String code, String redisKey,String remarks) { + this.code = code; + this.remarks = remarks; + this.redisKey = redisKey; + } + } + + @Getter + public static enum SmsReturnEnum { + /** + * 发送短信返回参数 + */ + ZERO("1", "提交成功"), + ONE("-1", "账号未注册"), + TWO("-2", "网络访问超时,请稍后再试"), + three("-3", "帐号或密码错误"), + FOUR("-4", "只支持单发"), + FIVE("-5", "余额不足,请充值"), + SIX("-6", "定时发送时间不是有效的时间格式"), + SEVEN("-7", "提交信息末尾未加签名,请添加中文的企业签名【 】或未采用gb2312编码"), + EIGHT("-8", "发送内容需在1到300字之间"), + NINE("-9", "发送号码为空"), + TEN("-10", "定时时间不能小于系统当前时间"), + ELEVEN("-11", "屏蔽手机号码"), + ONEZEROONE("-101", "调用接口速度太快"), + ; + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + + /** + * 构造器 + * + * @param code code值 + * @param remarks 备注 + */ + private SmsReturnEnum(String code, String remarks) { + this.code = code; + this.remarks = remarks; + } + public static String getValueByKey(String code) { + SmsReturnEnum[] sysReturnEnum = values(); + for (SmsReturnEnum returnEnum: sysReturnEnum) { + if (returnEnum.getCode().equals(code)) { + return returnEnum.getRemarks(); + } + } + return null; + } + + } +} diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/oms/entity/OmsOrder.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/oms/entity/OmsOrder.java index f88261b..55ed6f1 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/oms/entity/OmsOrder.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/oms/entity/OmsOrder.java @@ -120,7 +120,7 @@ public class OmsOrder extends BaseEntity implements Serializable { private BigDecimal discountAmount; /** - * 支付方式:0->未支付;2->支付宝;1->微信 3余额支付 + * 支付方式:0->未支付;1->支付宝;2->微信 3余额支付 */ @TableField("pay_type") private Integer payType; diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeNewProduct.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeNewProduct.java index ec8db7b..44e3a0c 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeNewProduct.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeNewProduct.java @@ -45,4 +45,10 @@ public class SmsHomeNewProduct extends BaseEntity implements Serializable { private String pic; private BigDecimal price; + + /** + * 市场价 + */ + @TableField("original_price") + private BigDecimal originalPrice; } diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeRecommendProduct.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeRecommendProduct.java index 8b45b0f..5fb032d 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeRecommendProduct.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/sms/entity/SmsHomeRecommendProduct.java @@ -43,5 +43,10 @@ public class SmsHomeRecommendProduct extends BaseEntity implements Serializable private String pic; private BigDecimal price; + /** + * 市场价 + */ + @TableField("original_price") + private BigDecimal originalPrice; } diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/entity/SysMessage.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/entity/SysMessage.java index 61eb852..cdd8cdf 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/entity/SysMessage.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/entity/SysMessage.java @@ -1,11 +1,13 @@ package com.zscat.mallplus.ums.entity; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; +import java.util.Date; /** *

@@ -47,7 +49,7 @@ public class SysMessage implements Serializable { /** * 创建时间 */ - private Long ctime; + private Long ctime = System.currentTimeMillis(); /** * 查看时间 @@ -57,7 +59,28 @@ public class SysMessage implements Serializable { /** * 1未查看,2已查看 */ - private Boolean status; + private Boolean status = false; + + public String getCdate() { + String cdate = ""; + if (ctime != null && ctime > 0) { + cdate = DateUtil.format(new Date(ctime), "yyyy-MM-dd"); + } + return cdate; + } + + public String getUdate() { + String udate = ""; + if (utime != null && utime > 0) { + udate = DateUtil.format(new Date(utime), "yyyy-MM-dd"); + } + return udate; + } + +// @TableField(exist = false) +// private String cdate; +// @TableField(exist = false) +// private String udate; public Integer getId() { diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/mapper/SmsDao.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/mapper/SmsDao.java index 8f7064b..3f6407f 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/mapper/SmsDao.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/ums/mapper/SmsDao.java @@ -25,8 +25,8 @@ import java.util.Map; public interface SmsDao { @Options(useGeneratedKeys = true, keyProperty = "id") - @Insert("insert into sys_sms(phone, signName, templateCode, params, day, createTime, updateTime) " - + "values(#{phone}, #{signName}, #{templateCode}, #{params}, #{day}, #{createTime}, #{updateTime})") + @Insert("insert into sys_sms(phone, signName, templateCode, params, day, createTime, updateTime,bizId,code,message) " + + "values(#{phone}, #{signName}, #{templateCode}, #{params}, #{day}, #{createTime}, #{updateTime},#{bizId},#{code},#{message})") int save(Sms sms); @Select("select * from sys_sms t where t.id = #{id}") diff --git a/mallplus-mbg/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java b/mallplus-mbg/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java index de125d3..8ed6487 100644 --- a/mallplus-mbg/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java +++ b/mallplus-mbg/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java @@ -1,25 +1,30 @@ +/* package com.zscat.mallplus.utils; +*/ /** * Created with IntelliJ IDEA. * * @Auther: dimengzhe * @Date: 2020/06/19/10:40 * @Description:地址管理 - */ + *//* + public class InterfaceUrl { - public static String domain = "http://www.yyundong.com:8083/api"; +// public static String domain = "http://www.yyundong.com:8083/api"; + public static String domain = "http://2xpk7t.natappfree.cc/api"; //支付宝授权回调地址 - public static String apliPayUrl = "http://www.yyundong.com:8083/api/aliPay/notify_url"; -// public static String notifyUrl = "http://26077a35f5.wicp.vip:43609/api/aliPay/notify_url"; +// public static String apliPayUrl = "http://www.yyundong.com:8083/api/aliPay/notify_url"; + public static String notifyUrl = "http://2xpk7t.natappfree.cc/aliPay/notify_url"; //应用appId public static String appId = "2018082761134635";//乒娱网 //支付宝网关 public static String serverUrl = "https://openapi.alipay.com/gateway.do";// //支付宝公钥,由支付宝生成 - public static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlOOOOWg4e2deSDMRG2y5EzG7/udMfTzYkn4u/3PWIOlpcUd2ujCztqKY2HdFhIaWE4q8PCLtT5XtBWCq2IVvpCPE8HRzgSZckh6J36SnO0JG1pZe8HajUgIw+T1NM7/b2Nb4OaI5HKNsQ5ei9NlN9RvlIUSpum/nIyk/9CBvNAg8xUlHUFPaPL0WCMJ9zIwRO+aEn2kwA7JQ8AvjuPy390oil0W4fxfHonJYxuzOo6Lx369Vti5N9UmXczXUcOiVwyCveoH05chNr3r8xu5QqpD1o32cO01Zt4EA9j6aM2H09g08VzoLam2OoU3umKOV0vvX+bMmb1GwrkussSvDpQIDAQAB"; +// public static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlOOOOWg4e2deSDMRG2y5EzG7/udMfTzYkn4u/3PWIOlpcUd2ujCztqKY2HdFhIaWE4q8PCLtT5XtBWCq2IVvpCPE8HRzgSZckh6J36SnO0JG1pZe8HajUgIw+T1NM7/b2Nb4OaI5HKNsQ5ei9NlN9RvlIUSpum/nIyk/9CBvNAg8xUlHUFPaPL0WCMJ9zIwRO+aEn2kwA7JQ8AvjuPy390oil0W4fxfHonJYxuzOo6Lx369Vti5N9UmXczXUcOiVwyCveoH05chNr3r8xu5QqpD1o32cO01Zt4EA9j6aM2H09g08VzoLam2OoU3umKOV0vvX+bMmb1GwrkussSvDpQIDAQAB"; //开发者应用私钥,由开发者自己生成 - public static String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCjI8p9Vh3QrBsa2BdTLAa9YrPGdHAo4DeYx79rlrITI4kIwy6/q/JDaXNBQgl80mUYh4Zinc0mDZ68n14zIL0f4At+EzzfxT5RIVYKZb/EEj6ijElldvijblcCAkrcoTl+oWDEKEOyyJW2UFbRIUYUZcszfi+pue1BIdvwlfxHTI77o1H6d2ApkyIHgs6zYeeauDkYYTdAjSCV7PHhTO6H6yS5uyc0rOLxUTdABA+b+ewSnTw2uvuVTTnrC7xIqjfj1fRocsNh/1KfqF4I5iMQmrRaIlujRSTQrO7kLVbYW45D+Qr4mB3TlhTGAFcTL+ovugA+66NASZmUyNsZHcBZAgMBAAECggEAao+eXHA72WoR6l7sHW/Mlzg5pY+5E3oh1rHi3yv39XhoskiL6Lcv78iZeC7ic54aWwNrTE83CXwsC5kttsfTwVZfK2L1iFUWd3gG85OyxygDsblg1932Wwpf2vgUXjkRjR1sT7TdQ5Kx9/xSORg65mf3axMpnvvLdZfgSi4uM4NJ94NzCLwH7zSWuK6CsPfl24RQlQfczRUy4GzG+wtXjDj5XLNNO6GQacQY4BUkcjCfrkUrQ9Lf2joYiXRyVNWUN1HivmfMouG37WQhUzz0CL8tF1EfooCfPhetAF5Aursve3O8l0Lno6K1auziN8g/Jfuo+efKfImzwvyo3m1n4QKBgQDjtfOWqcVP611OSTm1L1RFHCJMZN5wgOLEquO/2VC4VItV7vy0odNrLydd9Eg77VbC0IVcqunQIHjON3fFEVlj0bEVOaEN+X26oP84UNBK12QcLWvxxXQvOyaXg0hqgae5dpG5LvZHIP6b27jF3IuTG3lILZDjZsO9NcZbBr+NGwKBgQC3aD5VAUjCn+xnHIzGd0/avFYIGzqGUw2hZfFfuI3r58gRo/bjlOny7jLTxOFa+2SGggdDVm/izWut2FacNr3/GVTkcZc6ZEIXWq793vFky69PwGj24bCbplLYaCWM79HczM9sIWBl5WKmI7k1O/AIJrPteTa/Du/T+IfcATQDmwKBgQCCNjXI3eP6w3hjn/Pj6+CgdGoYjUW1x73lAGOj/Tzva0kSJstS74baL+ivDVWRDzMhy+O3DfUOEsOCCK3wfu9C6VH99Spnt1dyNUY8idnSMkEI6+BiLKs3pvd2hJgQb3vdzjOeVYB3RCLUNVz/qBIYWQmNgKDtqIId3HZE7yLyKQKBgQCq4Blq00Z55cu4CZZy9ghVL7Er3kp5iXmijLsExoqbZpg1L0E/qacJ6bk7KiwXuy5eT1j6+NZHRcHz9yJCapI70NsR927BPVWCMr/k0Uiv80FDmW1xzrXfXmfDLc0GcQ1inQMHqFUKultdlNziZxRsU7rBHnTOLtls8RmK9SgDzwKBgBnWfQNVF/BSIP/pOkudu966DwqySamzy/HrdOIq92r+OtAWqtLMq8bbIkMW1asC8+MLE81JD9fn7YmKeZTbMwxE2z5Tv1z+UUqy//79Vkj8FmlSfY0kraj9ZXjMp+Hg0kCpavOU4QFXONn2LVvrrh0tACcgJoJGRJJYuJMQeu7c"; + public static String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw=="; } +*/ diff --git a/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayApi.java b/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayApi.java index 69b1a83..073b35c 100644 --- a/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayApi.java +++ b/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayApi.java @@ -6,9 +6,12 @@ import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.*; +import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.request.*; import com.alipay.api.response.*; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -53,13 +56,32 @@ public class AliPayApi { * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeAppPayResponse appPayToResponse(AlipayTradeAppPayModel model, String notifyUrl, AliPayApiConfig aliPayApiConfig) throws AlipayApiException { - AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); + AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); + request.setBizContent(model.toString()); AlipayTradeAppPayResponse response = aliPayApiConfig.getAliPayClient().sdkExecute(request); System.out.println(response.getBody()); return aliPayApiConfig.getAliPayClient().sdkExecute(request); } + public static AlipayTradeAppPayResponse appPayToResponse1(AlipayTradeAppPayModel model, String notifyUrl, AlipayClient alipayClient) throws AlipayApiException { + log.info("-----------支付宝支付:{}", JSONObject.toJSONString(alipayClient)); + AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); + request.setNotifyUrl(notifyUrl); +// JSONObject bizContent = new JSONObject(); +// bizContent.put("out_trade_no", model.getOutTradeNo()); +// bizContent.put("total_amount",model.getTotalAmount()); +// bizContent.put("subject", "测试商品"); +// bizContent.put("product_code", "QUICK_MSECURITY_PAY"); + request.setBizModel(model); +// request.setBizContent(bizContent.toString()); + AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);; + log.info("-----------支付宝同步结果--------------:{}", JSONObject.toJSONString(response)); + System.out.println(response.getBody()); + return response; + } + + /** * WAP支付 diff --git a/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayBean.java b/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayBean.java index 2dfabd2..f51719e 100644 --- a/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayBean.java +++ b/mallplus-pay/src/main/java/com/zscat/mallplus/alipay/AliPayBean.java @@ -26,5 +26,9 @@ public class AliPayBean { private String serverUrl; private String domain; + private String rootCertPath; + private String certPath; + private String alipayPublicKey; + } diff --git a/mallplus-portal/pom.xml b/mallplus-portal/pom.xml index 751de97..2045f67 100644 --- a/mallplus-portal/pom.xml +++ b/mallplus-portal/pom.xml @@ -183,6 +183,27 @@ okhttp 3.14.4 + + + org.apache.axis + axis + 1.4 + + + axis + axis-jaxrpc + 1.2.1 + + + commons-discovery + commons-discovery + 0.2 + + + wsdl4j + wsdl4j + 1.6.3 + diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/apirest/SysMessageRest.java b/mallplus-portal/src/main/java/com/zscat/mallplus/apirest/SysMessageRest.java new file mode 100644 index 0000000..44f29a3 --- /dev/null +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/apirest/SysMessageRest.java @@ -0,0 +1,66 @@ +package com.zscat.mallplus.apirest; + +import com.zscat.mallplus.oms.entity.OmsCartItem; +import com.zscat.mallplus.ums.entity.SysMessage; +import com.zscat.mallplus.ums.entity.UmsMember; +import com.zscat.mallplus.ums.service.ISysMessageService; +import com.zscat.mallplus.ums.service.IUmsMemberService; +import com.zscat.mallplus.utils.CommonResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "SysMessageRest", description = "系统消息") +@RequestMapping("/api/sys/message") +public class SysMessageRest { + + @Autowired + private IUmsMemberService memberService; + + @Autowired + private ISysMessageService messageService; + + @ApiOperation("获取某个会员的消息列表") + @RequestMapping(value = "/list", method = RequestMethod.GET) + @ResponseBody + public Object list() { + UmsMember umsMember = memberService.getNewCurrentMember(); + List list = new ArrayList<>(); + if (umsMember != null && umsMember.getId() != null) { + list = messageService.listByUserId(umsMember.getId()); + return new CommonResult().success(list); + } + return new CommonResult().success(list); + } + + @ApiOperation("获取消息内容") + @RequestMapping(value = "/info", method = RequestMethod.GET) + @ResponseBody + public Object info(@RequestParam(value = "id", required = false, defaultValue = "0") Long id) { + SysMessage mes = messageService.getById(id); + if (mes != null && !mes.getStatus()) { + mes.setStatus(true); + messageService.updateStatus(mes); + } + return new CommonResult().success(mes); + } + + @ApiOperation("更新") + @RequestMapping(value = "/updateStatus", method = RequestMethod.POST) + @ResponseBody + public Object updateStatus(@RequestBody SysMessage sysMessage) { + int count = messageService.updateStatus(sysMessage); + if (count > 0) { + return new CommonResult().success(count); + } + return new CommonResult().failed(); + } +} diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/b2c/BHomeController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/b2c/BHomeController.java index d3497b3..0a396f4 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/b2c/BHomeController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/b2c/BHomeController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zscat.mallplus.annotation.IgnoreAuth; import com.zscat.mallplus.annotation.SysLog; import com.zscat.mallplus.cms.entity.CmsSubject; +import com.zscat.mallplus.enums.SmsEnum; import com.zscat.mallplus.oms.service.IOmsOrderService; import com.zscat.mallplus.oms.vo.HomeContentResult; import com.zscat.mallplus.pms.entity.PmsProduct; @@ -38,6 +39,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.AuthenticationException; @@ -390,13 +392,13 @@ public class BHomeController { @IgnoreAuth @ApiOperation("获取验证码") @PostMapping(value = "/user.sms") - public Object sendSmsCode(@RequestParam String phone) { + public Object sendSmsCode(@RequestParam("phone") String phone,@RequestParam(value = "type",required = false)String type) { try { if (!PhoneUtil.checkPhone(phone)) { throw new IllegalArgumentException("手机号格式不正确"); } - SmsCode smsCode = memberService.generateCode(phone); - + Date date = new Date(); + SmsCode smsCode = memberService.generateCode(phone,type,date); return new CommonResult().success(smsCode); } catch (Exception e) { e.printStackTrace(); diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java index 2ca750f..47fffa8 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java @@ -3,6 +3,9 @@ package com.zscat.mallplus.build.service; import com.baomidou.mybatisplus.extension.service.IService; import com.zscat.mallplus.build.entity.BuildWuyeCompany; +import java.util.List; +import java.util.Map; + /** *

* 服务类 @@ -14,4 +17,6 @@ import com.zscat.mallplus.build.entity.BuildWuyeCompany; public interface IBuildWuyeCompanyService extends IService { boolean saveCompany(BuildWuyeCompany entity); + + Map> nameMapWithCommunity(); } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java index 871ce96..b773c72 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java @@ -53,4 +53,6 @@ public interface IBuildingCommunityService extends IService { double latitude, double longitude, Integer pageSize); + + List listOfCompany(Long id); } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java index c3783e3..5854cda 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java @@ -1,9 +1,12 @@ package com.zscat.mallplus.build.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zscat.mallplus.build.entity.BuildWuyeCompany; +import com.zscat.mallplus.build.entity.BuildingCommunity; import com.zscat.mallplus.build.mapper.BuildWuyeCompanyMapper; import com.zscat.mallplus.build.service.IBuildWuyeCompanyService; +import com.zscat.mallplus.build.service.IBuildingCommunityService; import com.zscat.mallplus.exception.ApiMallPlusException; import com.zscat.mallplus.sys.entity.SysUser; import com.zscat.mallplus.sys.entity.SysUserRole; @@ -14,7 +17,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; +import java.util.*; /** *

@@ -36,6 +39,9 @@ public class BuildWuyeCompanyServiceImpl extends ServiceImpl> nameMapWithCommunity() { + Map> map = new HashMap<>(); + List comList = this.list(new QueryWrapper<>()); + comList.forEach(company -> { + List list = communityService.listOfCompany(company.getId()); + List cList = new ArrayList<>(); + list.forEach(community -> { + cList.add(community.getName()); + }); + map.put(company.getName(), cList); + }); + return map; + } } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java index 4195556..fe0b631 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java @@ -169,8 +169,8 @@ public class BuildingCommunityServiceImpl extends ServiceImpl().eq("community_id", community.getId())); buildNotices = noticeMapper.selectList(new QueryWrapper().eq("community_id", community.getId())); - if (Double.valueOf(community.getLatitude())>0){ - List communityList = this.selectNearCommunity(40,Double.valueOf(community.getLatitude()),Double.valueOf(community.getLongitude()),10); + if (Double.valueOf(community.getLatitude()) > 0) { + List communityList = this.selectNearCommunity(40, Double.valueOf(community.getLatitude()), Double.valueOf(community.getLongitude()), 10); result.setCommunityList(communityList); } result.setCommunity(community); @@ -182,7 +182,14 @@ public class BuildingCommunityServiceImpl extends ServiceImpl selectNearCommunity(Integer distance, double latitude, double longitude, Integer pageSize) { - return communityMapper.selectNearCommunity(distance,latitude,longitude,pageSize); + return communityMapper.selectNearCommunity(distance, latitude, longitude, pageSize); + } + + @Override + public List listOfCompany(Long companyId) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("company_id", companyId); + return baseMapper.selectList(qw); } public List getActivityList() { diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/config/SmsConfig.java b/mallplus-portal/src/main/java/com/zscat/mallplus/config/SmsConfig.java new file mode 100644 index 0000000..68ccc68 --- /dev/null +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/config/SmsConfig.java @@ -0,0 +1,51 @@ +package com.zscat.mallplus.config; + +import org.apache.axis.client.Call; +import org.apache.axis.client.Service; +import org.apache.axis.encoding.XMLType; + +import javax.xml.namespace.QName; + +/** + * @Author dimengzhe + * @Date 2023/2/22 21:38 + * @Description + */ +public class SmsConfig { + + static String msgSign="【汇融云链】"; + public static String SendWaitWorkMsg(String mobile, String pwd,String msg) { + try { + + String urlname = "http://sdk1.mb345.com/ws/LinkWS.asmx"; + String soapActionURI = "http://tempuri.org/BatchSend"; + Service s = new Service(); + Call call = (Call) s.createCall(); + call.setTimeout(new Integer(5000)); + call.setUseSOAPAction(true); + call.setSOAPActionURI(soapActionURI); + // wsdl中接口名称 + call.setOperationName(new QName("http://tempuri.org/", "BatchSend")); + call.setTargetEndpointAddress(urlname); + call.addParameter(new QName("http://tempuri.org/", "CorpID"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "Pwd"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "Mobile"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "Content"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "Cell"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + call.addParameter(new QName("http://tempuri.org/", "SendTime"), XMLType.XSD_STRING, + javax.xml.rpc.ParameterMode.IN); + String[] fn01 = {"YXT011836", "yxt_hryl230223", mobile, msg+msgSign, "", ""}; + String val = (String) call.invoke(fn01); + return val; + + } catch (Exception e) { + return e.getMessage(); + + } + } +} diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/controller/AppVersionController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/controller/AppVersionController.java index 03cfcfb..d3072db 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/controller/AppVersionController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/controller/AppVersionController.java @@ -100,9 +100,9 @@ public class AppVersionController { return null; } - @RequestMapping(value = "/versioninfo") + @RequestMapping(value = "/versioninfo1") @ResponseBody - public Object appVersion(HttpServletRequest request) { + public Object appVersion1(HttpServletRequest request) { Map map = new HashMap(); int versionCode = 1;// 版本编码 String defUrl = ""; @@ -217,4 +217,37 @@ public class AppVersionController { return new CommonResult().success(appVersionNew); } + @RequestMapping(value = "/versioninfo") + @ResponseBody + public Object appVersion(HttpServletRequest request) { + Map map = new HashMap(); + int versionCode = 101;// 版本编码 + String versionName = "101";// 版本号 + String downloadUrl = "";// apk下载地址 + String versionInfo = "";// 版本的更新描述 + String fileName = "";// apk名称 + int isAlpha = 0;//是否内测,0否,1是 + + AppVersion appVersion = new AppVersion(); + appVersion.setVersionCode(versionCode);//版本编码 + appVersion.setVersionName(versionName);//版本号 + appVersion.setDownloadUrl(downloadUrl); //apk下载地址新 + appVersion.setVersionInfo(versionInfo);//版本的更新的描述 + appVersion.setFileName(fileName);//应用名称 + appVersion.setForceUpdate(false); + + // 查询版本记录未删除及为正式版的版本记录 + AppVersion av = appVersionService.getAll(); + if (null != av) {// 如果有正式版的版本记录 + appVersion.setVersionCode(av.getVersionCode());//版本编码 + appVersion.setVersionName(av.getVersionName());//版本号 + appVersion.setDownloadUrl(av.getDownloadUrl()); //apk下载地址新 + appVersion.setVersionInfo(av.getVersionInfo());//版本的更新的描述 + appVersion.setFileName(av.getFileName());//应用名称 + } + + String appVersionNew = JsonUtils.objectToJson(appVersion); + + return new CommonResult().success(appVersionNew); + } } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/oms/service/impl/OmsOrderServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/oms/service/impl/OmsOrderServiceImpl.java index b60738c..21e8b45 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/oms/service/impl/OmsOrderServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/oms/service/impl/OmsOrderServiceImpl.java @@ -1400,15 +1400,16 @@ public class OmsOrderServiceImpl extends ServiceImpl i @Transactional public boolean closeOrder(OmsOrder order) { releaseStock(order); - // order.setStatus(OrderStatus.CLOSED.getValue()); - order.setStatus(OrderStatus.DELETED.getValue()); + order.setStatus(OrderStatus.CLOSED.getValue()); +// order.setStatus(OrderStatus.DELETED.getValue()); OmsOrderOperateHistory history = new OmsOrderOperateHistory(); history.setOrderId(order.getId()); history.setCreateTime(new Date()); history.setOperateMan("shop"); - history.setPreStatus(OrderStatus.INIT.getValue()); - history.setOrderStatus(OrderStatus.DELETED.getValue()); +// history.setPreStatus(OrderStatus.INIT.getValue()); + history.setPreStatus(OrderStatus.CLOSED.getValue()); + history.setOrderStatus(OrderStatus.CLOSED.getValue()); history.setNote("取消订单"); orderOperateHistoryService.save(history); @@ -1426,7 +1427,8 @@ public class OmsOrderServiceImpl extends ServiceImpl i if (order.getStatus() != OrderStatus.DELIVERED.getValue()) { return new CommonResult().paramFailed("已发货订单才能确认收货"); } - OmsOrderOperateHistory history = updateOrderInfo(id, order, OrderStatus.TO_COMMENT); +// OmsOrderOperateHistory history = updateOrderInfo(id, order, OrderStatus.TO_COMMENT); + OmsOrderOperateHistory history = updateOrderInfo(id, order, OrderStatus.TRADE_SUCCESS); history.setNote("确认收货"); orderOperateHistoryService.save(history); diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java index fffe458..6895b8f 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/alipay/AliPayController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; +import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.*; import com.alipay.api.internal.util.AlipaySignature; @@ -35,6 +36,7 @@ import com.zscat.mallplus.utils.ValidatorUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @@ -65,10 +67,61 @@ import java.util.Map; @RequestMapping("/api/aliPay") public class AliPayController extends AbstractAliPayApiController { private static final Logger log = LoggerFactory.getLogger(AliPayController.class); + + @Value("${alipay.domain}") + private String DOMAIN; + + @Value("${alipay.appId}") + private String APPID; + /** + * 支付宝公钥 + */ + @Value("${alipay.ALIPAY_PUBLIC_KEY}") + private String ALIPAY_PUBLIC_KEY; + /** + * 支付宝网关 + */ + @Value("${alipay.serverUrl}") + private String GATE; + + /** + * 编码方式 + */ + private String CHARSET = "utf-8"; + + /** + * 回调地址 + */ + @Value("${alipay.notifyUrl}") + private String NOTIFY_URL; + /** + * 支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) + */ + @Value("${alipay.RootCertPath}") + private String RootCertPath; + + /** + * 应用公钥证书路径(app_cert_path 文件绝对路径) + */ + @Value("${alipay.CertPath}") + private String CertPath; + + private String SignType = "RSA2"; + + /** + * 应用私钥 + */ + @Value("${alipay.privateKey}") + private String APP_PRIVATE_KEY; + + String domain = ""; String privateKey = ""; + //支付宝公钥 String publicKey = ""; + //支付宝支付业务:app_id String appId = ""; + @Resource private IOmsOrderService orderService; @Resource @@ -91,10 +144,10 @@ public class AliPayController extends AbstractAliPayApiController { aliPayApiConfig = AliPayApiConfig.builder() .setAppId(aliPayBean.getAppId()) .setAliPayPublicKey(aliPayBean.getPublicKey()) - .setCharset("UTF-8") + .setCharset(CHARSET) .setPrivateKey(aliPayBean.getPrivateKey()) .setServiceUrl(aliPayBean.getServerUrl()) - .setSignType("RSA2") + .setSignType(SignType) .build(); domain = aliPayBean.getDomain(); privateKey = aliPayBean.getPrivateKey(); @@ -104,29 +157,52 @@ public class AliPayController extends AbstractAliPayApiController { } catch (Exception e) { AliPayBean aliPayBean = new AliPayBean(); - aliPayBean.setAppId("2018082761134635"); - aliPayBean.setDomain("http://www.yyundong.com:8083/api"); - //aliPayBean.setDomain("http://26077a35f5.wicp.vip:43609/api"); - aliPayBean.setServerUrl("https://openapi.alipay.com/gateway.do"); - aliPayBean.setPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlOOOOWg4e2deSDMRG2y5EzG7/udMfTzYkn4u/3PWIOlpcUd2ujCztqKY2HdFhIaWE4q8PCLtT5XtBWCq2IVvpCPE8HRzgSZckh6J36SnO0JG1pZe8HajUgIw+T1NM7/b2Nb4OaI5HKNsQ5ei9NlN9RvlIUSpum/nIyk/9CBvNAg8xUlHUFPaPL0WCMJ9zIwRO+aEn2kwA7JQ8AvjuPy390oil0W4fxfHonJYxuzOo6Lx369Vti5N9UmXczXUcOiVwyCveoH05chNr3r8xu5QqpD1o32cO01Zt4EA9j6aM2H09g08VzoLam2OoU3umKOV0vvX+bMmb1GwrkussSvDpQIDAQAB"); - aliPayBean.setPrivateKey("MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCjI8p9Vh3QrBsa2BdTLAa9YrPGdHAo4DeYx79rlrITI4kIwy6/q/JDaXNBQgl80mUYh4Zinc0mDZ68n14zIL0f4At+EzzfxT5RIVYKZb/EEj6ijElldvijblcCAkrcoTl+oWDEKEOyyJW2UFbRIUYUZcszfi+pue1BIdvwlfxHTI77o1H6d2ApkyIHgs6zYeeauDkYYTdAjSCV7PHhTO6H6yS5uyc0rOLxUTdABA+b+ewSnTw2uvuVTTnrC7xIqjfj1fRocsNh/1KfqF4I5iMQmrRaIlujRSTQrO7kLVbYW45D+Qr4mB3TlhTGAFcTL+ovugA+66NASZmUyNsZHcBZAgMBAAECggEAao+eXHA72WoR6l7sHW/Mlzg5pY+5E3oh1rHi3yv39XhoskiL6Lcv78iZeC7ic54aWwNrTE83CXwsC5kttsfTwVZfK2L1iFUWd3gG85OyxygDsblg1932Wwpf2vgUXjkRjR1sT7TdQ5Kx9/xSORg65mf3axMpnvvLdZfgSi4uM4NJ94NzCLwH7zSWuK6CsPfl24RQlQfczRUy4GzG+wtXjDj5XLNNO6GQacQY4BUkcjCfrkUrQ9Lf2joYiXRyVNWUN1HivmfMouG37WQhUzz0CL8tF1EfooCfPhetAF5Aursve3O8l0Lno6K1auziN8g/Jfuo+efKfImzwvyo3m1n4QKBgQDjtfOWqcVP611OSTm1L1RFHCJMZN5wgOLEquO/2VC4VItV7vy0odNrLydd9Eg77VbC0IVcqunQIHjON3fFEVlj0bEVOaEN+X26oP84UNBK12QcLWvxxXQvOyaXg0hqgae5dpG5LvZHIP6b27jF3IuTG3lILZDjZsO9NcZbBr+NGwKBgQC3aD5VAUjCn+xnHIzGd0/avFYIGzqGUw2hZfFfuI3r58gRo/bjlOny7jLTxOFa+2SGggdDVm/izWut2FacNr3/GVTkcZc6ZEIXWq793vFky69PwGj24bCbplLYaCWM79HczM9sIWBl5WKmI7k1O/AIJrPteTa/Du/T+IfcATQDmwKBgQCCNjXI3eP6w3hjn/Pj6+CgdGoYjUW1x73lAGOj/Tzva0kSJstS74baL+ivDVWRDzMhy+O3DfUOEsOCCK3wfu9C6VH99Spnt1dyNUY8idnSMkEI6+BiLKs3pvd2hJgQb3vdzjOeVYB3RCLUNVz/qBIYWQmNgKDtqIId3HZE7yLyKQKBgQCq4Blq00Z55cu4CZZy9ghVL7Er3kp5iXmijLsExoqbZpg1L0E/qacJ6bk7KiwXuy5eT1j6+NZHRcHz9yJCapI70NsR927BPVWCMr/k0Uiv80FDmW1xzrXfXmfDLc0GcQ1inQMHqFUKultdlNziZxRsU7rBHnTOLtls8RmK9SgDzwKBgBnWfQNVF/BSIP/pOkudu966DwqySamzy/HrdOIq92r+OtAWqtLMq8bbIkMW1asC8+MLE81JD9fn7YmKeZTbMwxE2z5Tv1z+UUqy//79Vkj8FmlSfY0kraj9ZXjMp+Hg0kCpavOU4QFXONn2LVvrrh0tACcgJoJGRJJYuJMQeu7c"); + //APPID 即创建应用后生成,详情见创建应用并获取 APPID + aliPayBean.setAppId(APPID); + //gateway:支付宝网关(固定)https://openapi.alipay.com/gateway.do + aliPayBean.setServerUrl(GATE); + //开发者应用私钥,由开发者自己生成 + aliPayBean.setPrivateKey(APP_PRIVATE_KEY); + aliPayBean.setDomain(DOMAIN); + aliPayBean.setAlipayPublicKey(ALIPAY_PUBLIC_KEY); + aliPayBean.setCertPath(CertPath); + aliPayBean.setRootCertPath(RootCertPath); + aliPayApiConfig = AliPayApiConfig.builder() .setAppId(aliPayBean.getAppId()) - .setAliPayPublicKey(aliPayBean.getPublicKey()) - .setCharset("UTF-8") .setPrivateKey(aliPayBean.getPrivateKey()) + .setAliPayPublicKey(aliPayBean.getAlipayPublicKey()) + .setCharset(CHARSET) + .setSignType(SignType) .setServiceUrl(aliPayBean.getServerUrl()) - .setSignType("RSA2") + .setAppCertPath(aliPayBean.getCertPath()) + .setAliPayPublicKey(aliPayBean.getAlipayPublicKey()) + .setAliPayRootCertPath(aliPayBean.getRootCertPath()) .build(); domain = aliPayBean.getDomain(); privateKey = aliPayBean.getPrivateKey(); - publicKey = aliPayBean.getPublicKey(); + publicKey = aliPayBean.getAlipayPublicKey(); appId = aliPayBean.getAppId(); } return aliPayApiConfig; } + public AlipayClient alipayClient() throws AlipayApiException { + CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); + certAlipayRequest.setServerUrl(GATE); //gateway:支付宝网关(固定)https://openapi.alipay.com/gateway.do + certAlipayRequest.setAppId(APPID); //APPID 即创建应用后生成,详情见创建应用并获取 APPID + certAlipayRequest.setPrivateKey(APP_PRIVATE_KEY); //开发者应用私钥,由开发者自己生成 + certAlipayRequest.setFormat("json"); //参数返回格式,只支持 json 格式 + certAlipayRequest.setCharset(CHARSET); //请求和签名使用的字符编码格式,支持 GBK和 UTF-8 + certAlipayRequest.setSignType(SignType); //商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐商家使用 RSA2。 + certAlipayRequest.setCertPath(CertPath); //应用公钥证书路径(app_cert_path 文件绝对路径) + certAlipayRequest.setAlipayPublicCertPath(ALIPAY_PUBLIC_KEY); //支付宝公钥证书文件路径(alipay_cert_path 文件绝对路径) + certAlipayRequest.setRootCertPath(RootCertPath); //支付宝CA根证书文件路径(alipay_root_cert_path 文件绝对路径) + AlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest); + return alipayClient; + } + @RequestMapping("") @ResponseBody public String index() { @@ -168,9 +244,10 @@ public class AliPayController extends AbstractAliPayApiController { model.setOutTradeNo(orderInfo.getOrderSn()); model.setTimeoutExpress("30m"); model.setTotalAmount(orderInfo.getPayAmount().floatValue() + ""); - model.setPassbackParams("callback params"); +// model.setPassbackParams("callback params"); model.setProductCode("QUICK_MSECURITY_PAY"); - String order = AliPayApi.appPayToResponse(model, domain + "/aliPay/notify_url", this.getApiConfig()).getBody(); +// String order = AliPayApi.appPayToResponse1(model, domain + "/aliPay/notify_url", this.getApiConfig()).getBody(); + String order = AliPayApi.appPayToResponse1(model, DOMAIN + "/aliPay/notify_url", alipayClient()).getBody(); //String order = AliPayApi.appPayToResponse(model, domain, this.getApiConfig()).getBody(); System.out.println(JSONObject.toJSONString(orderInfo)); return new CommonResult().success(order); @@ -475,7 +552,7 @@ public class AliPayController extends AbstractAliPayApiController { public Object tradeRefund(AlipayTradeRefundModel model) { try { - // AlipayTradeRefundModel model = new AlipayTradeRefundModel(); + // AlipayTradeRefundModel model = new AlipayTradeRefundModel(); /*model.setOutTradeNo("081014283315023"); model.setTradeNo("2017081021001004200200273870"); model.setRefundAmount("86.00"); @@ -757,7 +834,8 @@ public class AliPayController extends AbstractAliPayApiController { OmsOrder orderInfo = list.get(0); orderInfo.setStatus(OrderStatus.TO_DELIVER.getValue()); orderInfo.setPaymentTime(new Date()); - boolean verifyResult = AlipaySignature.rsaCheckV1(params, publicKey, "UTF-8", "RSA2"); + orderInfo.setPayType(1); + boolean verifyResult = AlipaySignature.rsaCertCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8", "RSA2"); if (verifyResult) { // 更新订单信息 @@ -778,7 +856,7 @@ public class AliPayController extends AbstractAliPayApiController { orderService.recordFenxiaoMoney(omsOrderItems, memberService.getById(orderInfo.getMemberId())); // TODO 请在这里加上商户的业务逻辑程序代码 异步通知可能出现订单重复通知 需要做去重处理 System.out.println("notify_url 验证成功succcess"); - return new CommonResult().success(); + return new CommonResult().success("支付成功"); } else { log.error("订单" + out_trade_no + "支付失败"); orderService.releaseStock(orderInfo); diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/wxpay/WxPayController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/wxpay/WxPayController.java index b78729e..0de5df4 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/wxpay/WxPayController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/pay/controller/wxpay/WxPayController.java @@ -34,6 +34,7 @@ import com.zscat.mallplus.wxpay.model.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.*; @@ -79,8 +80,19 @@ public class WxPayController extends AbstractWxPayApiController { @Resource private SysAppletSetMapper appletSetMapper; - private String notifyUrl = "http://java.chengguo.link:8081/api"; + +// private String notifyUrl = "http://java.chengguo.link:8081/api"; + @Value("${wx.notifyUrl}") + private String notifyUrl; private String refundNotifyUrl; + @Value("${wx.domain}") + private String DOMAIN; + @Value("${wx.appId}") + private String APPID; + @Value("${wx.mchId}") + private String MCHID; + @Value("${wx.secret}") + private String SECRET; @Override public WxPayApiConfig getApiConfig() { @@ -102,10 +114,14 @@ public class WxPayController extends AbstractWxPayApiController { refundNotifyUrl = apiConfig.getDomain().concat("/wxPay/refundNotify"); } catch (Exception e) { WxPayBean wxPayBean = new WxPayBean(); - wxPayBean.setAppId("wx8321531c6046c924"); - wxPayBean.setMchId("1533901051"); - wxPayBean.setDomain("http://www.yjlive.cn/api/api"); - wxPayBean.setPartnerKey("shen9136shen9136shen9136shen9136"); +// wxPayBean.setAppId("wx8321531c6046c924"); + wxPayBean.setAppId(APPID); +// wxPayBean.setMchId("1533901051"); + wxPayBean.setMchId(MCHID); +// wxPayBean.setDomain("http://www.yjlive.cn/api/api"); + wxPayBean.setDomain(DOMAIN); +// wxPayBean.setPartnerKey("shen9136shen9136shen9136shen9136"); + wxPayBean.setPartnerKey(SECRET); apiConfig = WxPayApiConfig.builder() .appId(wxPayBean.getAppId()) .mchId(wxPayBean.getMchId()) @@ -978,6 +994,7 @@ public class WxPayController extends AbstractWxPayApiController { OmsOrder orderInfo = list.get(0); orderInfo.setStatus(OrderStatus.TO_DELIVER.getValue()); orderInfo.setPaymentTime(new Date()); + orderInfo.setPayType(2); // 注意重复通知的情况,同一订单号可能收到多次通知,请注意一定先判断订单状态 // 注意此处签名方式需与统一下单的签名类型一致 if (WxPayKit.verifyNotify(params, this.getApiConfig().getPartnerKey(), SignType.HMACSHA256)) { diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingeBuildController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingeBuildController.java index f2d24d9..f51f631 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingeBuildController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingeBuildController.java @@ -32,6 +32,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * @Auther: shenzhuan @@ -78,6 +79,15 @@ public class SingeBuildController extends ApiBaseAction { return new CommonResult().success(communityService.allCommunity()); } + @SysLog(MODULE = "pms", REMARK = "物业及其社区") + @IgnoreAuth + @GetMapping(value = "/wuyeCompanyWithCommunity") + @ApiOperation(value = "物业及其社区") + public Object wuyeCompanyWithCommunity() { + Map> map = IBuildWuyeCompanyService.nameMapWithCommunity(); + return new CommonResult().success(map); + } + @SysLog(MODULE = "pms", REMARK = "绑定小区和房间") @IgnoreAuth @PostMapping(value = "/bindCommunity") @@ -188,6 +198,7 @@ public class SingeBuildController extends ApiBaseAction { } return new CommonResult().failed(); } + /** * @param entity * @param pageNum @@ -206,6 +217,7 @@ public class SingeBuildController extends ApiBaseAction { } return new CommonResult().failed(); } + @SysLog(MODULE = "pms", REMARK = "查询团购商品列表") @IgnoreAuth @ApiOperation(value = "查询带团购商品列表") diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingePmsController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingePmsController.java index 6e529be..62e01b2 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingePmsController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingePmsController.java @@ -340,6 +340,7 @@ public class SingePmsController extends ApiBaseAction { @RequestParam(value = "schoolId", required = false) Long schoolId, @RequestParam(value = "productAttributeCategoryId", required = false) Long productAttributeCategoryId, @RequestParam(value = "productCategoryId", required = false) Long productCategoryId, + @RequestParam(value = "newStatus", required = false) Integer newStatus, @RequestParam(value = "recommandStatus", required = false) Integer recommandStatus, @RequestParam(value = "brandId", required = false) Long brandId, @RequestParam(value = "sort", required = false) Integer sort, @@ -366,6 +367,9 @@ public class SingePmsController extends ApiBaseAction { if (ValidatorUtils.notEmpty(recommandStatus) && recommandStatus > 0) { product.setRecommandStatus(1); } + if (ValidatorUtils.notEmpty(newStatus) && newStatus > 0) { + product.setNewStatus(1); + } if (ValidatorUtils.notEmpty(brandId) && brandId > 0) { product.setBrandId(brandId); } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingelHomeController.java b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingelHomeController.java index 563e8f9..c62daeb 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingelHomeController.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/single/SingelHomeController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zscat.mallplus.annotation.IgnoreAuth; import com.zscat.mallplus.annotation.SysLog; import com.zscat.mallplus.config.MallplusProperties; +import com.zscat.mallplus.enums.SmsEnum; import com.zscat.mallplus.exception.Server; import com.zscat.mallplus.oms.service.IOmsOrderService; import com.zscat.mallplus.oms.vo.HomeContentResult; @@ -35,6 +36,7 @@ import com.zscat.mallplus.vo.UmsMemberInfoDetail; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.AuthenticationException; @@ -63,6 +65,11 @@ import java.util.Map; @RequestMapping("/api/single/home") public class SingelHomeController { + @Value("${redis.key.prefix.loginCode}") + private String REDIS_KEY_PREFIX_LOGIN_CODE; + + @Value("${redis.key.prefix.forgetCode}") + private String REDIS_KEY_PREFIX_FORGET_CODE; @Autowired OssAliyunUtil aliyunOSSUtil; @Value("${jwt.tokenHeader}") @@ -119,7 +126,9 @@ public class SingelHomeController { public Object userSampleInfo() { UmsMember umsMember = memberService.getNewCurrentMember(); if (umsMember != null && umsMember.getId() != null) { - return new CommonResult().success(umsMember); + UmsMember newMember = memberService.getById(umsMember.getId()); + return new CommonResult().success(newMember); +// return new CommonResult().success(umsMember); } return new CommonResult().fail(100); } @@ -338,8 +347,8 @@ public class SingelHomeController { @IgnoreAuth @ApiOperation(value = "手机号 密码登录") @PostMapping(value = "/login") - public Object login(@RequestParam String phone, - @RequestParam String password) { + public Object login(@RequestParam("phone") String phone, + @RequestParam("password") String password) { if (phone == null || "".equals(phone)) { return new CommonResult().validateFailed("用户名或密码错误"); } @@ -347,7 +356,6 @@ public class SingelHomeController { return new CommonResult().validateFailed("用户名或密码错误"); } try { - Map token = memberService.login(phone, password); if (token.get("token") == null) { log.info("用户名或密码错误"); @@ -376,7 +384,6 @@ public class SingelHomeController { return new CommonResult().validateFailed("手机验证码为空"); } try { - Map token = memberService.loginByCode(phone, authCode); if (token.get("token") == null) { return new CommonResult().validateFailed("用户名或密码错误"); @@ -441,12 +448,32 @@ public class SingelHomeController { @IgnoreAuth @ApiOperation("获取验证码") @PostMapping(value = "/sms/codes") - public Object sendSmsCode(@RequestParam String phone) { + public Object sendSmsCode(@RequestParam("phone") String phone,@RequestParam(value = "type")String type) { try { if (!PhoneUtil.checkPhone(phone)) { throw new IllegalArgumentException("手机号格式不正确"); } - SmsCode smsCode = memberService.generateCode(phone); + if(StringUtils.isBlank(type)){ + return new CommonResult().failed("参数错误:type"); + } + //缓存识别码 + String redisKey = ""; + if(SmsEnum.SendEnum.LOGIN.getCode().equals(type)){ + redisKey = REDIS_KEY_PREFIX_LOGIN_CODE; + }else if(SmsEnum.SendEnum.FORGET.getCode().equals(type)){ + redisKey = REDIS_KEY_PREFIX_FORGET_CODE; + } + Date date = new Date(); + String codeRedis = redisService.get(redisKey + phone); + if (StringUtils.isNotEmpty(codeRedis)) { + //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 + String sendTime = codeRedis.substring(4); + long diffSecond = (date.getTime() - Long.parseLong(sendTime)) / 1000; + if (diffSecond < 60) { + return new CommonResult().failed("请等待一分钟后再次重试!"); + } + } + SmsCode smsCode = memberService.generateCode(phone,type,date); return new CommonResult().success(smsCode); } catch (Exception e) { diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java index 736a5bc..2a53453 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/ISysMessageService.java @@ -3,6 +3,8 @@ package com.zscat.mallplus.ums.service; import com.baomidou.mybatisplus.extension.service.IService; import com.zscat.mallplus.ums.entity.SysMessage; +import java.util.List; + /** *

* 站内信 服务类 @@ -13,4 +15,7 @@ import com.zscat.mallplus.ums.entity.SysMessage; */ public interface ISysMessageService extends IService { + List listByUserId(Long userId); + + int updateStatus(SysMessage sysMessage); } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java index 6237eb6..9a7c5fb 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/IUmsMemberService.java @@ -10,6 +10,7 @@ import com.zscat.mallplus.vo.AppletLoginnewParam; import com.zscat.mallplus.vo.SmsCode; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.Map; /** @@ -90,7 +91,7 @@ public interface IUmsMemberService extends IService { Object register(UmsMember umsMember); - SmsCode generateCode(String phone); + SmsCode generateCode(String phone, String type, Date date); Map loginByCode(String phone, String authCode); diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/RedisService.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/RedisService.java index 5a391a2..95a7e24 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/RedisService.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/RedisService.java @@ -33,5 +33,4 @@ public interface RedisService { */ Long increment(String key, long delta); - } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/RedisServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/RedisServiceImpl.java index 8784e85..7f47b48 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/RedisServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/RedisServiceImpl.java @@ -3,9 +3,12 @@ package com.zscat.mallplus.ums.service.impl; import com.zscat.mallplus.ums.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import java.io.Serializable; import java.util.concurrent.TimeUnit; /** @@ -17,6 +20,9 @@ public class RedisServiceImpl implements RedisService { @Autowired private StringRedisTemplate stringRedisTemplate; + @Autowired + private RedisTemplate redisTemplate; + @Override public void set(String key, String value) { stringRedisTemplate.opsForValue().set(key, value); @@ -41,4 +47,5 @@ public class RedisServiceImpl implements RedisService { public Long increment(String key, long delta) { return stringRedisTemplate.opsForValue().increment(key, delta); } + } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SmsServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SmsServiceImpl.java index e41c9e3..10663ff 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SmsServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SmsServiceImpl.java @@ -6,6 +6,7 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.http.MethodType; +import com.zscat.mallplus.config.SmsConfig; import com.zscat.mallplus.ums.entity.Sms; import com.zscat.mallplus.ums.mapper.SmsDao; import com.zscat.mallplus.ums.service.SmsService; @@ -82,11 +83,10 @@ public class SmsServiceImpl implements SmsService { } // 测试时不需要开此 add by someday end update(sms); - return response; } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void save(Sms sms, Map params) { if (!CollectionUtils.isEmpty(params)) { @@ -96,7 +96,8 @@ public class SmsServiceImpl implements SmsService { sms.setCreateTime(new Date()); sms.setUpdateTime(sms.getCreateTime()); sms.setDay(sms.getCreateTime()); - + sms.setBizId(sms.getBizId()); + sms.setMessage(sms.getMessage()); smsDao.save(sms); } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java index 066e05d..708f9be 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/SysMessageServiceImpl.java @@ -1,11 +1,14 @@ package com.zscat.mallplus.ums.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zscat.mallplus.ums.entity.SysMessage; import com.zscat.mallplus.ums.mapper.SysMessageMapper; import com.zscat.mallplus.ums.service.ISysMessageService; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 站内信 服务实现类 @@ -17,4 +20,18 @@ import org.springframework.stereotype.Service; @Service public class SysMessageServiceImpl extends ServiceImpl implements ISysMessageService { + @Override + public List listByUserId(Long userId) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("user_id", userId); + qw.orderByDesc("ctime"); + return baseMapper.selectList(qw); + } + + @Override + public int updateStatus(SysMessage sysMessage) { + sysMessage.setUtime(System.currentTimeMillis()); + baseMapper.updateById(sysMessage); + return 1; + } } diff --git a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java index cd85f74..8c38dc3 100644 --- a/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java +++ b/mallplus-portal/src/main/java/com/zscat/mallplus/ums/service/impl/UmsMemberServiceImpl.java @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.gson.Gson; import com.zscat.mallplus.config.MallplusProperties; +import com.zscat.mallplus.config.SmsConfig; import com.zscat.mallplus.enums.AllEnum; +import com.zscat.mallplus.enums.SmsEnum; import com.zscat.mallplus.exception.ApiMallPlusException; import com.zscat.mallplus.oms.mapper.OmsOrderMapper; import com.zscat.mallplus.oms.vo.OrderStstic; +import com.zscat.mallplus.sys.entity.SysUserVo; import com.zscat.mallplus.sys.mapper.SysAreaMapper; import com.zscat.mallplus.ums.entity.*; import com.zscat.mallplus.ums.mapper.SysAppletSetMapper; @@ -24,6 +27,7 @@ import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; import okhttp3.OkHttpClient; import okhttp3.Request; +import org.apache.commons.lang3.StringUtils; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; @@ -44,7 +48,6 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -108,6 +111,10 @@ public class UmsMemberServiceImpl extends ServiceImpl().eq("phone", phone)); - return true; + redisService.remove(String.format(Rediskey.MEMBER, phone)); + return new CommonResult().success("操作成功"); } @Override @@ -412,25 +427,19 @@ public class UmsMemberServiceImpl extends ServiceImpl map = new HashMap<>(2); map.put("code", sb.toString()); map.put("phone", phone); - - //短信验证码缓存15分钟, - redisService.set(REDIS_KEY_PREFIX_AUTH_CODE + phone, sb.toString()); - redisService.expire(REDIS_KEY_PREFIX_AUTH_CODE + phone, expireMinute * 60); - - //存储sys_sms - saveSmsAndSendCode(phone, sb.toString()); + saveSmsAndSendCode(phone, sb.toString(),type,date); SmsCode smsCode = new SmsCode(); smsCode.setKey(uuid); return smsCode; @@ -442,33 +451,40 @@ public class UmsMemberServiceImpl extends ServiceImpl params = new HashMap<>(); params.put("code", code); + String content = ""; + String redisKey = ""; + if (SmsEnum.SendEnum.LOGIN.getCode().equals(type)) { + content = "验证码:" + code + ",用于登录App,有效期5分钟,如非本人操作,请忽略。"; + redisKey = REDIS_KEY_PREFIX_LOGIN_CODE; + }else if (SmsEnum.SendEnum.FORGET.getCode().equals(type)){ + content = "验证码:" + code + ",用于修改登录密码,有效期5分钟,如非本人操作,请忽略。"; + redisKey = REDIS_KEY_PREFIX_FORGET_CODE; + } + String result = SmsConfig.SendWaitWorkMsg(phone, code, content); + if ("1".equals(result)) { + //返回的信息 + String resultMsg = SmsEnum.SmsReturnEnum.getValueByKey(result); + sms.setCode(sms.getCode()); + sms.setBizId(result);//返回的code + sms.setMessage(resultMsg); + redisService.set(redisKey + phone, code + date.getTime()); + redisService.expire(redisKey + phone, SmsEnum.APP_LOGIN_CODE_TIME_LIMIT); + log.info("发送短信结果:code:{},message:{}, 1,发送成功"); + }else{ + //返回的信息 + String resultMsg = SmsEnum.SmsReturnEnum.getValueByKey(result); + sms.setBizId(result);//返回的code + //返回的信息 + sms.setMessage(resultMsg); + LOGGER.error("发送短信失败:{}", resultMsg); + } smsService.save(sms, params); - - //异步调用阿里短信接口发送短信 - CompletableFuture.runAsync(() -> { - try { - smsService.sendSmsMsg(sms); - } catch (Exception e) { - params.put("err", e.getMessage()); - smsService.save(sms, params); - e.printStackTrace(); - LOGGER.error("发送短信失败:{}", e.getMessage()); - } - - }); - - // 当天发送验证码次数+1 - String countKey = countKey(phone); - redisService.increment(countKey, 1L); - redisService.expire(countKey, 1 * 3600 * 24); } /** @@ -513,8 +529,19 @@ public class UmsMemberServiceImpl extends ServiceImpl>>>>', sysInfo) this.$db.set('sysInfo', list) }, - + }, onLaunch: function() { + // uni.removeStorageSync('userInfo'); + // uni.removeStorageSync('token'); + console.log('App onLaunch') let userInfo = uni.getStorageSync('userInfo') || ''; - let token = uni.getStorageSync('token') || ''; - if(token){ + let token = uni.getStorageSync('token') || ''; + console.log('App onLaunch>>>',userInfo) + console.log('App onLaunch>>>',token) + if (token) { //更新登陆状态 uni.getStorage({ key: 'userInfo', success: (res) => { + console.log('App onLaunch>>', res) this.login(res.data); } }); } - let isWeiXin = this.$common.isWeiXinBrowser() - if (isWeiXin) { - this.wxAuthorize() - } + let isWeiXin = this.$common.isWeiXinBrowser() + if (isWeiXin) { + this.wxAuthorize() + } this.typeGoodsList(); this.areaGoodsList(); this.sysInfoMethod(); @@ -418,6 +426,13 @@ video { box-sizing: border-box; } + + html, + body, + #app { + height: 100%; + } + /* 骨架屏替代方案 */ .Skeleton { background: #f3f3f3; diff --git a/mallplusui-uniapp-app/common/api.js b/mallplusui-uniapp-app/common/api.js index 31f2988..5b7e8bd 100644 --- a/mallplusui-uniapp-app/common/api.js +++ b/mallplusui-uniapp-app/common/api.js @@ -1,8 +1,9 @@ import store from '../store/index'; export default { // qq 237524947 wx15d4269d3210863d + // BASEURI: 'http://br68s5.natappfree.cc/api/', BASEURI: 'http://mall.yyundong.com/portalapi/api/', - // BASEURI: 'http://www.yyundong.com:8083/api/', + // BASEURI: 'http://192.168.31.52:8083/api/', ADMINURI: 'http://mall.yyundong.com/adminapi/', ESURI: 'http://www.yyundong.com:8081/', h5Appid: 'wxb4660f37187c0b8e', // h5微信登录的appId 暂时测试用 @@ -77,6 +78,8 @@ export default { memberTagList: 'single/user/memberTag/list', // 商户列表 addStoreComment: 'single/store/addStoreComment', // 商户addStoreComment memberBlanceLogList: 'single/user/memberBlanceLog/list', + mesList: 'sys/message/list', // GET 参数为空,获取用户消息通知列表,(需要先判断用户是已经登录状态) + mesInfo: 'sys/message/info', // GET 参数为 id:消息ID,获取消息详情 }, build: { getBuildNoticeByPage: 'single/build/getBuildNoticeByPage', // 所有社区和房间 @@ -89,6 +92,7 @@ export default { bindCommunity: 'single/build/bindCommunity', // 绑定小区和房间 home: 'single/build/home', // 首页内容页信息展示 applyCommunity: 'single/build/applyCommunity', // 社区入驻 + wuyeCompanyWithCommunity: 'single/build/wuyeCompanyWithCommunity', // 所在地及其取货点列表(物业公司及其社区列表) }, @@ -258,7 +262,7 @@ export default { let token = uni.getStorageSync('token') || ''; let fullurl = this.BASEURI + endpoint; - console.log("fullurl",fullurl); + console.log("fullurl", fullurl); var contentType = 'application/x-www-form-urlencoded'; data.authorization = token; @@ -277,11 +281,18 @@ export default { uni.hideLoading(); } + console.log('error', error); + console.log('res', res); if (undefined == res || 'undefined' == res) { console.log('index'); - uni.navigateTo({ - url: `/pages/public/login` - }) + uni.showToast({ + title: '网络错误', + icon: 'none' + }); + return; + // uni.navigateTo({ + // url: `/pages/public/login` + // }) } if (res.data.msg == 'User token expired!') { console.log('User token expired'); @@ -311,6 +322,7 @@ export default { return res.data.data; } else { console.log(">>>>>="); + console.log(">>>>>=", res.data); if (res.data) { if (!res.data.msg) { res.data.msg = res.data.data; @@ -319,7 +331,7 @@ export default { title: res.data.msg, icon: 'none' }); - this.$api.msg(res.data.msg); + // this.$api.msg(res.data.msg); } } diff --git a/mallplusui-uniapp-app/components/coolc-coupon/coolc-coupon.vue b/mallplusui-uniapp-app/components/coolc-coupon/coolc-coupon.vue index 5b3fb74..f2dae47 100644 --- a/mallplusui-uniapp-app/components/coolc-coupon/coolc-coupon.vue +++ b/mallplusui-uniapp-app/components/coolc-coupon/coolc-coupon.vue @@ -8,10 +8,10 @@ 满{{ item.minPoint }} 减 {{ item.amount }} - 立即领取 - 立即使用 + + 立即领取 + @@ -21,6 +21,9 @@ import { formatDate } from '@/common/date'; + import { + mapState + } from 'vuex'; export default { components: { @@ -54,25 +57,54 @@ return formatDate(date, 'yyyy-MM-dd hh:mm:ss') }, }, + computed: { + ...mapState(['hasLogin','hasVip', 'userInfo']), + }, methods: { async acceptCoupon(item) { - this.types =!this.types - uni.showLoading({ - title: '请稍后' + if (this.hasLogin) { + if(this.hasVip){ + this.types = !this.types + uni.showLoading({ + title: '请稍后' + }); + + let params = { + couponId: item.id + }; + this.clickSubMethod(item) + let data = await Api.apiCall('post', Api.index.acceptCoupon, params); + // console.log("data?????", data); + // if (data) { + // // this.$api.msg(data); + // this.clickSubMethod(item) + + // } + uni.hideLoading(); + }else{ + uni.showModal({ + title: '提示', + content: '您不属于惠农会员,暂不能领取此优惠券', + showCancel:false, + success: function(res) { + if (res.confirm) { + return; + } + } + }); + } + + } else { + uni.navigateTo({ + url: '/pages/public/login' }); - - let params = { - couponId: item.id - }; - let data = await Api.apiCall('post', Api.index.acceptCoupon, params); - console.log(data); - if (data) { - this.$api.msg(data); } - uni.hideLoading(); - }, - async useCoupon(item){ + clickSubMethod(vel) { + console.log('clickSubMethod') + this.$emit('callParentMethod', JSON.stringify(vel)) + }, + async useCoupon(item) { uni.showLoading({ title: '请稍后' }); diff --git a/mallplusui-uniapp-app/components/eonfox/eonfox.js b/mallplusui-uniapp-app/components/eonfox/eonfox.js index 9b0d082..b7269d4 100644 --- a/mallplusui-uniapp-app/components/eonfox/eonfox.js +++ b/mallplusui-uniapp-app/components/eonfox/eonfox.js @@ -25,7 +25,7 @@ eonfox.prototype = { //接口地址 应用ID api_server_url : 'http://server.test.eapie.com/', - application : "test", + application : "wxa66597d50184d027", //会话名称 session_name : 'Eonfox_API_Engine_Session', diff --git a/mallplusui-uniapp-app/components/eonfox/fns.js b/mallplusui-uniapp-app/components/eonfox/fns.js index 34164b6..a35a2a0 100644 --- a/mallplusui-uniapp-app/components/eonfox/fns.js +++ b/mallplusui-uniapp-app/components/eonfox/fns.js @@ -1,55 +1,54 @@ var fns = { //-------------- //api接口验证 - checkError: function(data, ids, error){ - if(typeof(error)!='function'){ - error=function(){ - } + checkError: function(data, ids, error) { + if (typeof(error) != 'function') { + error = function() {} } - if(data.errno){ + if (data.errno) { error(data.errno, data.error); return false; } - if(!data.data){ + if (!data.data) { error(1, "未知错误"); return false; } - if(ids){ - if(typeof ids =='object'){ - for( var i in ids){ - if(typeof ids[i] != "undefined"){ + if (ids) { + if (typeof ids == 'object') { + for (var i in ids) { + if (typeof ids[i] != "undefined") { var id = ids[i]; - if( data.data[id] && data.data[id].errno ){ + if (data.data[id] && data.data[id].errno) { error(data.data[id].errno, data.data[id].error); return false; } - }else{ - error(1, "“"+ids[i]+"”目标,未知错误"); + } else { + error(1, "“" + ids[i] + "”目标,未知错误"); return false; } } - }else if(typeof ids =='string' || typeof ids == 'number'){ - if(typeof data.data[ids] != "undefined" ){ - if( data.data[ids].errno ){ + } else if (typeof ids == 'string' || typeof ids == 'number') { + if (typeof data.data[ids] != "undefined") { + if (data.data[ids].errno) { error(data.data[ids].errno, data.data[ids].error); return false; } - }else{ - error(1, "“"+ids+"”目标,未知错误"); + } else { + error(1, "“" + ids + "”目标,未知错误"); return false; } - }else{ - error(1, "“"+ids+"”目标,未知错误"); + } else { + error(1, "“" + ids + "”目标,未知错误"); return false; } - + } - + var data_list = {}; - - if(data.data){ - for(var i in data.data){ - if(typeof data.data[i].data != "undefined"){ + + if (data.data) { + for (var i in data.data) { + if (typeof data.data[i].data != "undefined") { data_list[i] = data.data[i].data; } } @@ -57,229 +56,232 @@ var fns = { return data_list; }, //数据处理 ceil向上取整 - number_pre:function(number,pre){ - switch(pre){ - case 'ceil': - return Math.ceil(number) + number_pre: function(number, pre) { + switch (pre) { + case 'ceil': + return Math.ceil(number) break; + } + }, + //保留两位小数 + number_floor_2: function(number) { + var number = number * 100; + number = Math.floor(number) + number = number / 100; + return number.toFixed(2); + }, + //错误信息处理 + err: function(title, data, _json, fun) { + + if (data) { + if (_json) { + data = JSON.stringify(data) } - }, - //保留两位小数 - number_floor_2:function(number){ - var number = number * 100; - number = Math.floor(number) - number = number/100; - return number.toFixed(2); - }, - //错误信息处理 - err:function(title,data,_json,fun){ - - if(data){ - if(_json){ - data=JSON.stringify(data) - } - console.log(title+' :',data) - uni.showToast({ - title:title+' : '+data, - icon:'none', - duration:1500, - success() { - if(fun){ - fun(); - } - } - }) - }else{ - console.log(title) - uni.showToast({ - title:title, - icon:'none', - duration:1500, - success() { - if(fun){ - fun(); - } - } - }) - } - - }, - //成功信息处理 - success(title,fun){ - if(fun){ - fun(); - } - uni.hideLoading(); - /* uni.showToast({ - title:title, - icon:'success', + console.log(title + ' :', data) + uni.showToast({ + title: title + ' : ' + data, + icon: 'none', + duration: 1500, success() { - if(fun){ + if (fun) { fun(); } } - }) */ - }, - //敬请期待 - waiting:function(){ - uni.showToast({ - title:'敬请期待', - icon:'none' - }) - }, - //授权验证 - oauth_:function(){ - uni.setStorage({ - key:'oauth', - data:true - }) - }, - noauth:function(){ - uni.setStorage({ - key:'oauth', - data:false - }) - }, - //绑定验证 - unionid:function(){ - uni.setStorage({ - key:'unionid', - data:true - }) - }, - nunionid:function(){ - uni.setStorage({ - key:'unionid', - data:false }) - }, - //绑定 - bind:function(){ - console.log('oauth'); - uni.getStorage({ - key:'oauth', - success(re) { - console.log('oauth',re); + } else { + console.log(title) + uni.showToast({ + title: title, + icon: 'none', + duration: 1500, + success() { + if (fun) { + fun(); + } } }) - }, - //获取指定url参数 - getUrlQuery:function (urlStr) { - // var urlStr = location.search.substr(1) ? location.search.substr(1) : ""; - var urlArr = []; - for(var i = 0; i < urlStr.split("&").length; i++) { - urlArr.push(urlStr.split("&")[i].split("=")[0] ? urlStr.split("&")[i].split("=")[0] : ""); - urlArr.push(urlStr.split("&")[i].split("=")[1] ? urlStr.split("&")[i].split("=")[1] : "onlyKey") + } + + }, + //成功信息处理 + success(title, fun) { + if (fun) { + fun(); + } + uni.hideLoading(); + /* uni.showToast({ + title:title, + icon:'success', + success() { + if(fun){ + fun(); + } } - if(urlStr == "") { - return; - } else { - var urlObj = {} - for(var i = 0; i < urlArr.length; i += 2) { - if(urlArr[i] != "") { - urlObj[urlArr[i]] = decodeURIComponent(urlArr[i + 1]); - } + }) */ + }, + //敬请期待 + waiting: function() { + uni.showToast({ + title: '敬请期待', + icon: 'none' + }) + }, + //授权验证 + oauth_: function() { + uni.setStorage({ + key: 'oauth', + data: true + }) + }, + noauth: function() { + uni.setStorage({ + key: 'oauth', + data: false + }) + }, + //绑定验证 + unionid: function() { + uni.setStorage({ + key: 'unionid', + data: true + }) + }, + nunionid: function() { + uni.setStorage({ + key: 'unionid', + data: false + }) + }, + //绑定 + bind: function() { + console.log('oauth'); + uni.getStorage({ + key: 'oauth', + success(re) { + console.log('oauth', re); + } + }) + }, + //获取指定url参数 + getUrlQuery: function(urlStr) { + // var urlStr = location.search.substr(1) ? location.search.substr(1) : ""; + var urlArr = []; + for (var i = 0; i < urlStr.split("&").length; i++) { + urlArr.push(urlStr.split("&")[i].split("=")[0] ? urlStr.split("&")[i].split("=")[0] : ""); + urlArr.push(urlStr.split("&")[i].split("=")[1] ? urlStr.split("&")[i].split("=")[1] : "onlyKey") + } + if (urlStr == "") { + return; + } else { + var urlObj = {} + for (var i = 0; i < urlArr.length; i += 2) { + if (urlArr[i] != "") { + urlObj[urlArr[i]] = decodeURIComponent(urlArr[i + 1]); } - return urlObj; } + return urlObj; } - , - // url参数解析 - getUrlkey:function(url) { - var params = {}; - var urls = url.split("?"); console.log('1_分割url:', urls) - var arr = urls[1].split("&"); console.log('2_分割urls[1]:', arr) - for (var i = 0, l = arr.length; i < l; i++) { - var a = arr[i].split("="); console.log('3_遍历 arr 并分割后赋值给a:', a[0], a[1]) - params[a[0]] = a[1]; console.log('4_a给params对象赋值:', params) - } console.log('5_结果:', params) - return params; + }, + // url参数解析 + getUrlkey: function(url) { + var params = {}; + var urls = url.split("?"); + console.log('1_分割url:', urls) + var arr = urls[1].split("&"); + console.log('2_分割urls[1]:', arr) + for (var i = 0, l = arr.length; i < l; i++) { + var a = arr[i].split("="); + console.log('3_遍历 arr 并分割后赋值给a:', a[0], a[1]) + params[a[0]] = a[1]; + console.log('4_a给params对象赋值:', params) } - , - toast(tit,url,time){ - if(!time){ - time=1500 - } - uni.showToast({ - title:tit, - success() { - setTimeout(function(){ - uni.reLaunch({ - url:url - }) - },time) - } - }) - }, - setSystemInfoSync(){ - uni.getStorage({ - key:'SystemInfoSync', - fail(err) { - console.log('设置缓存'); - try { - console.log('star'); - const res = uni.getSystemInfoSync(); - console.log('config'+JSON.stringify(res)); - uni.setStorage({ - key:'SystemInfoSync', - data:res - }) - console.log('ok'); - } catch (e) { - console.log('catch+'+JSON.stringify(e)); - // error - } - }, - - }) - }, - getCompare(Version,newVersion,fun){ - if(Version==newVersion){ - console.log('没有更新'); - return + console.log('5_结果:', params) + return params; + }, + toast(tit, url, time) { + if (!time) { + time = 1500 + } + uni.showToast({ + title: tit, + success() { + setTimeout(function() { + uni.reLaunch({ + url: url + }) + }, time) } - console.log('接收到参数'); - uni.getStorage({ - key:'SystemInfoSync', - success(res) { - console.log('缓存:'+JSON.stringify(res)); - if(res.data){ - var SystemInfoSync=res.data; - console.log('json:'+JSON.stringify(SystemInfoSync)); - console.log('设备:'+SystemInfoSync.platform); - if(SystemInfoSync.platform=='android'){ - console.log('设备:安卓'); - fun(); - } - }else{ - return this.setSystemInfo(); - } - }, - fail(err) { - console.log('缓存获取失败'+JSON.stringify(err)); + }) + }, + setSystemInfoSync() { + uni.getStorage({ + key: 'SystemInfoSync', + fail(err) { + console.log('设置缓存'); + try { + console.log('star'); const res = uni.getSystemInfoSync(); - console.log('config'+JSON.stringify(res)); - uni.setStorage({ - key:'SystemInfoSync', - data:res, - success() { - if(res.platform=='android'){ - console.log('设备:安卓'); - fun(); - } - } - }) - - }, - complete() { - console.log('获取缓存'); + console.log('config' + JSON.stringify(res)); + uni.setStorage({ + key: 'SystemInfoSync', + data: res + }) + console.log('ok'); + } catch (e) { + console.log('catch+' + JSON.stringify(e)); + // error } - }) - - - + }, + + }) + }, + getCompare(Version, newVersion, fun) { + if (Version == newVersion) { + console.log('没有更新'); + return } - //------------------------ + console.log('接收到参数'); + uni.getStorage({ + key: 'SystemInfoSync', + success(res) { + console.log('缓存:' + JSON.stringify(res)); + if (res.data) { + var SystemInfoSync = res.data; + console.log('json:' + JSON.stringify(SystemInfoSync)); + console.log('设备:' + SystemInfoSync.platform); + if (SystemInfoSync.platform == 'android') { + console.log('设备:安卓'); + fun(); + } + } else { + return this.setSystemInfo(); + } + }, + fail(err) { + console.log('缓存获取失败' + JSON.stringify(err)); + const res = uni.getSystemInfoSync(); + console.log('config' + JSON.stringify(res)); + uni.setStorage({ + key: 'SystemInfoSync', + data: res, + success() { + if (res.platform == 'android') { + console.log('设备:安卓'); + fun(); + } + } + }) + + }, + complete() { + console.log('获取缓存'); + } + }) + + + + } + //------------------------ }; export default fns; diff --git a/mallplusui-uniapp-app/components/payments/paymentsByApp.vue b/mallplusui-uniapp-app/components/payments/paymentsByApp.vue index ce53a88..8504a89 100644 --- a/mallplusui-uniapp-app/components/payments/paymentsByApp.vue +++ b/mallplusui-uniapp-app/components/payments/paymentsByApp.vue @@ -1,6 +1,7 @@ diff --git a/mallplusui-uniapp-app/components/uni-load-more/uni-load-more.vue b/mallplusui-uniapp-app/components/uni-load-more/uni-load-more.vue deleted file mode 100644 index 6c43365..0000000 --- a/mallplusui-uniapp-app/components/uni-load-more/uni-load-more.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mallplusui-uniapp-app/components/w-select/readme.md b/mallplusui-uniapp-app/components/w-select/readme.md new file mode 100644 index 0000000..e7ec2d0 --- /dev/null +++ b/mallplusui-uniapp-app/components/w-select/readme.md @@ -0,0 +1,70 @@ +#### props + +|名称 |类型 |默认值 |说明| +|- |- |- |-| +|width |string |'300rpx' |选择框宽度| +|height |string |'60rpx' |选择框高度| +|round |boolean |true |是否开启圆角| +|bgColor|string |'#fff' |选择框的背景颜色| +|color |string |'#606266' |字体颜色| +|placeholderColor|string |'color:#bcbec4' |提示文字的字体颜色| +|defaultValue |string |'请选择' |默认显示的名称 | | +|valueName|string |'value' |显示的内容字段名,必传| +|list |array |[] |展示的内容列表| +|showClose|boolean |true |是否显示删除按钮| +|multiple|boolean |false |是否开启多选| +|filterable|boolean |false |是否开启搜索功能,开启后直接输入值不选择也可以保存内容| + + +#### events + +|事件名|说明| +|-|-| +|change|选择的内容改变时触发,返回的参数为列表的item| + + +#### 使用举例 + +需要绑定的值通过`v-model`绑定,如下面的`chooseValue`,需要获取item的值可以监听`@change`事件 + +开启多选`multiple`时,双向绑定的值为数组类型,在change事件中根据自己需求进行处理。 + +`valueName`属性必须传,告知组件需要显示的是什么值 + +```html + + +``` \ No newline at end of file diff --git a/mallplusui-uniapp-app/components/w-select/w-select.vue b/mallplusui-uniapp-app/components/w-select/w-select.vue new file mode 100644 index 0000000..0cecc39 --- /dev/null +++ b/mallplusui-uniapp-app/components/w-select/w-select.vue @@ -0,0 +1,395 @@ + + + diff --git a/mallplusui-uniapp-app/config/baseUrl.js b/mallplusui-uniapp-app/config/baseUrl.js index 45a2dda..daaa6ce 100644 --- a/mallplusui-uniapp-app/config/baseUrl.js +++ b/mallplusui-uniapp-app/config/baseUrl.js @@ -5,11 +5,11 @@ if (process.env.NODE_ENV === 'development') { // baseUrl = "http://localhost:7001/"; // socketUrl = "ws://localhost:8001/"; // baseUrl = "http://26077a35f5.wicp.vip:43609/"; - baseUrl = "http://www.yyundong.com:8083/"; + baseUrl = "http://mall.yyundong.com/portalapi/api/"; socketUrl = "ws://8192.168.43.195:8083/"; } else if (process.env.NODE_ENV === 'production') { // 生产环境 - baseUrl = "http://www.yyundong.com:8083/"; + baseUrl = "http://mall.yyundong.com/portalapi/api/"; // baseUrl = "http://192.168.43.195:8083/"; socketUrl = "ws://192.168.43.195:8083/"; } diff --git a/mallplusui-uniapp-app/docs/pyw_app_key.jks b/mallplusui-uniapp-app/docs/pyw_app_key.jks new file mode 100644 index 0000000..ccd623e Binary files /dev/null and b/mallplusui-uniapp-app/docs/pyw_app_key.jks differ diff --git a/mallplusui-uniapp-app/docs/签名密码及第三方登录信息.txt b/mallplusui-uniapp-app/docs/签名密码及第三方登录信息.txt new file mode 100644 index 0000000..94632ec --- /dev/null +++ b/mallplusui-uniapp-app/docs/签名密码及第三方登录信息.txt @@ -0,0 +1,14 @@ +签名密码及第三方登录信息 + +包名:org.jbase.yxt.yyd.pyw +证书别名:key0 +证书签名的密码:yxt123 + +QQ登录的 +APP ID:101453048 +APP Key:80382d6bd51922ef10a182f69b84581d +审核通过 + +微信 +AppID: wxc46a728ab3aae3c0 +AppSecret: 85f3970bdfba3d7d01fdd82bc370aeec \ No newline at end of file diff --git a/mallplusui-uniapp-app/manifest.json b/mallplusui-uniapp-app/manifest.json index b503a51..e81909a 100644 --- a/mallplusui-uniapp-app/manifest.json +++ b/mallplusui-uniapp-app/manifest.json @@ -2,8 +2,8 @@ "name" : "汇融云链", "appid" : "__UNI__FB2C9C4", "description" : "", - "versionName" : "4.0.0.0", - "versionCode" : 4000, + "versionName" : "1.0.1.0", + "versionCode" : 1010, "transformPx" : false, "app-plus" : { "usingComponents" : true, @@ -63,7 +63,7 @@ "sdkConfigs" : { "oauth" : { "weixin" : { - "appid" : "wx04b09a8148e4875c", + "appid" : "wxa66597d50184d027", "appsecret" : "3526ec2107c123f59b5c1cb7ff23a252", "UniversalLinks" : "" }, @@ -73,11 +73,13 @@ }, "payment" : { "weixin" : { - "appid" : "wx04b09a8148e4875c", + "appid" : "wxa66597d50184d027", "UniversalLinks" : "", "__platform__" : [ "android" ] }, - "alipay" : {} + "alipay" : { + "__platform__" : [ "android" ] + } }, "push" : {}, "maps" : { @@ -89,7 +91,7 @@ "ad" : {}, "share" : { "weixin" : { - "appid" : "wx04b09a8148e4875c", + "appid" : "wxa66597d50184d027", "UniversalLinks" : "" }, "qq" : { @@ -148,7 +150,7 @@ "permission" : {} }, "h5" : { - "title" : "宇运动商城", + "title" : "汇融云链", "domain" : "https://www.yyundong.com:8088/h5", "router" : { "base" : "" diff --git a/mallplusui-uniapp-app/package.json b/mallplusui-uniapp-app/package.json index 81b7506..a3fa822 100644 --- a/mallplusui-uniapp-app/package.json +++ b/mallplusui-uniapp-app/package.json @@ -1,17 +1,17 @@ { - "name": "uniapp", - "version": "1.0.0", - "description": "宇运动商城", - "main": "main.js", - "dependencies": { - "amap-js": "^1.2.1", - "jweixin-module": "^1.6.0", - "weixin-js-sdk": "^1.4.0-test" - }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} + "id": "w-select", + "displayName": "下拉选择框w-select", + "version": "1.1.3", + "description": "用于下拉选择,使用v-model双向绑定值", + "keywords": [ + "下拉选择框", + "单选框", + "vue2" + ], + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ] + } +} \ No newline at end of file diff --git a/mallplusui-uniapp-app/pages.json b/mallplusui-uniapp-app/pages.json index 1a5b1f2..83665a6 100644 --- a/mallplusui-uniapp-app/pages.json +++ b/mallplusui-uniapp-app/pages.json @@ -11,16 +11,17 @@ "app-plus": { "titleNView": { "type": "transparent", - "searchInput": { - "backgroundColor": "rgba(231, 231, 231,.7)", - "borderRadius": "16px", - "placeholder": "请输入要查询的信息", - "disabled": true, - "placeholderColor": "#606266" - }, + // "searchInput": { + // "backgroundColor": "rgba(231, 231, 231,.7)", + // "borderRadius": "16px", + // "placeholder": "请输入要查询的信息", + // "disabled": true, + // "placeholderColor": "#606266" + // } + // , "buttons": [{ "fontSrc": "/static/yticon.ttf", - "text": "\ue60d", + "text": "", "fontSize": "26", "color": "#303133", "float": "left", @@ -28,16 +29,31 @@ }, { "fontSrc": "/static/yticon.ttf", - "text": "\ue744", + "text": "", "fontSize": "27", "color": "#303133", - "background": "rgba(0,0,0,0)", - "redDot": true + "background": "rgba(0,0,0,0)" + // "redDot": true } ] } } } + }, { + "path": "pages/index/messageList", + "style": { + // "enablePullDownRefresh": true, + "navigationBarTitleText": "消息列表" + + } + }, + { + "path": "pages/index/messageDetail", + "style": { + // "enablePullDownRefresh": true, + "navigationBarTitleText": "消息详情" + + } }, { "path": "pages/search/search", "style": { @@ -60,7 +76,7 @@ } } } - }, { + }, { "path": "pages/index/lease", "style": { "navigationBarTitleText": "农机租赁" @@ -73,12 +89,12 @@ }, { "path": "pages/order/orderDetail", "style": { - "navigationBarTitleText": "详情展示", - "app-plus": { - "titleNView": { - "type": "transparent" - } - } + "navigationBarTitleText": "详情展示" + // "app-plus": { + // "titleNView": { + // "type": "transparent" + // } + // } } }, { "path": "pages/order/logistics", @@ -155,7 +171,7 @@ }, { "path": "pages/index/user", "style": { - "navigationBarTitleText": "我的", + "navigationBarTitleText": "我的云链", // #ifdef MP "navigationStyle": "custom", // #endif @@ -166,7 +182,7 @@ "type": "transparent", "buttons": [{ "fontSrc": "/static/yticon.ttf", - "text": "\ue60f", + "text": "", "fontSize": "24", "color": "#303133", "width": "46px", @@ -174,11 +190,11 @@ }, { "fontSrc": "/static/yticon.ttf", - "text": "\ue744", + "text": "", "fontSize": "28", "color": "#303133", - "background": "rgba(0,0,0,0)", - "redDot": true + "background": "rgba(0,0,0,0)" + // "redDot": true } ] } @@ -194,7 +210,8 @@ "bounce": "none" } } - }, { + }, + { "path": "pages/order/createOrder", "style": { "navigationBarTitleText": "创建订单" @@ -689,11 +706,13 @@ "path": "user/collect", "style": { "navigationBarTitleText": "我的收藏", + "enablePullDownRefresh": true, + "onReachBottomDistance": 126, //距离底部多远时触发 单位px "app-plus": { "bounce": "none" } } - }, { + } ,{ "path": "user/deposit", "style": { "navigationBarTitleText": "余额冲", @@ -728,9 +747,11 @@ }, { "path": "user/forget", "style": { - "navigationBarTitleText": "忘记密码", + "navigationBarTitleText": "", + "navigationStyle": "custom", "app-plus": { - "bounce": "none" + "titleNView": false, + "animationType": "slide-in-bottom" } } }, { @@ -791,7 +812,7 @@ ], "globalStyle": { "navigationBarTextStyle": "black", - "navigationBarTitleText": "宇运动商城", + "navigationBarTitleText": "汇融云链", "navigationBarBackgroundColor": "#FFFFFF", "backgroundColor": "#f8f8f8" }, @@ -813,10 +834,10 @@ "text": "分类" }, { - "pagePath": "pages/index/nearbyBusiness", - "iconPath": "static/fujin.png", - "selectedIconPath": "static/fujin_.png", - "text": "附近商家" + "pagePath": "pages/index/messageList", + "iconPath": "static/tab-message_.png", + "selectedIconPath": "static/tab-message.png", + "text": "消息" }, { "pagePath": "pages/cart/cart", @@ -828,7 +849,7 @@ "pagePath": "pages/index/user", "iconPath": "static/tab-my.png", "selectedIconPath": "static/tab-my-current.png", - "text": "我的" + "text": "我的云链" } ] }, diff --git a/mallplusui-uniapp-app/pages/category/category.vue b/mallplusui-uniapp-app/pages/category/category.vue index 2056265..1e9c453 100644 --- a/mallplusui-uniapp-app/pages/category/category.vue +++ b/mallplusui-uniapp-app/pages/category/category.vue @@ -1,12 +1,17 @@ diff --git a/mallplusui-uniapp-app/pages/index/messageList.vue b/mallplusui-uniapp-app/pages/index/messageList.vue new file mode 100644 index 0000000..5d136bf --- /dev/null +++ b/mallplusui-uniapp-app/pages/index/messageList.vue @@ -0,0 +1,296 @@ + + + + + diff --git a/mallplusui-uniapp-app/pages/index/nearbyBusiness.vue b/mallplusui-uniapp-app/pages/index/nearbyBusiness.vue index c6abf5f..628c5a7 100644 --- a/mallplusui-uniapp-app/pages/index/nearbyBusiness.vue +++ b/mallplusui-uniapp-app/pages/index/nearbyBusiness.vue @@ -88,7 +88,7 @@ diff --git a/mallplusui-uniapp-app/pages/integral/home/home.vue b/mallplusui-uniapp-app/pages/integral/home/home.vue index 3c39b18..00299ae 100644 --- a/mallplusui-uniapp-app/pages/integral/home/home.vue +++ b/mallplusui-uniapp-app/pages/integral/home/home.vue @@ -47,7 +47,7 @@ diff --git a/mallplusui-uniapp-app/pages/order/createStoreOrder.vue b/mallplusui-uniapp-app/pages/order/createStoreOrder.vue index c5adb30..db7bc38 100644 --- a/mallplusui-uniapp-app/pages/order/createStoreOrder.vue +++ b/mallplusui-uniapp-app/pages/order/createStoreOrder.vue @@ -9,7 +9,8 @@ {{ addressData.name }} {{ addressData.phoneNumber }} - {{ addressData.province }}-{{ addressData.city }}-{{ addressData.region }}-{{ addressData.detailAddress }} + {{ addressData.region }}-{{ addressData.detailAddress }} 请设置收货地址 @@ -22,15 +23,16 @@ - + + - + + 共{{ item1.cartPromotionItemList.length }}件商品,店铺 【{{item1.storeName }}】 团购-{{groupActivity.name}} @@ -68,7 +70,8 @@ 备注 - + @@ -92,12 +95,14 @@ diff --git a/mallplusui-uniapp-app/pages/order/orderDetail.vue b/mallplusui-uniapp-app/pages/order/orderDetail.vue index 59c9486..830fbc8 100644 --- a/mallplusui-uniapp-app/pages/order/orderDetail.vue +++ b/mallplusui-uniapp-app/pages/order/orderDetail.vue @@ -6,64 +6,81 @@ - {{ orderInfo.createTime }} - {{ orderInfo.id }}-- - {{ orderInfo.stateTip }} - + {{orderInfo.orderSn}} + - 订单商品 + {{ orderInfo.createTime }} + + {{ orderInfo.stateTip }} - + {{ goodsItem.productName }} - {{ goodsItem.productAttr }} x {{ goodsItem.productQuantity }} - {{ goodsItem.productPrice }} + + x {{ goodsItem.productQuantity }} + {{ goodsItem.productPrice }} + + + {{orderInfo.deliveryCompany}}: + {{ orderInfo.deliverySn }} + + - + + + + + 共 + {{ orderInfo.orderItemList.length }} + 件商品, 会员折扣 + {{ orderInfo.vipAmount }} + , 优惠券抵扣 + {{ orderInfo.couponAmount }} + + + 积分抵扣 + {{ orderInfo.integrationAmount }} + , 运费 + {{ orderInfo.freightAmount }} + + , 实付款 + {{ orderInfo.payAmount }} - ,实付款 - {{ orderInfo.payAmount }} - - - - - - + + + + + + @@ -74,325 +91,403 @@ diff --git a/mallplusui-uniapp-app/pages/order/payment/result.vue b/mallplusui-uniapp-app/pages/order/payment/result.vue index de47d65..55605d0 100644 --- a/mallplusui-uniapp-app/pages/order/payment/result.vue +++ b/mallplusui-uniapp-app/pages/order/payment/result.vue @@ -2,9 +2,9 @@ 支付成功 - - {{ paymentInfo.payAmount }} - + 查看订单 返回首页 @@ -25,11 +25,11 @@ import Api from '@/common/api'; } }, onLoad(options) { - if (options.order) { - let order = JSON.parse(options.order) - this.orderId = order.id - this.paymentInfo = order - } + // if (options.order) { + // let order = JSON.parse(options.order) + // this.orderId = order.id + // this.paymentInfo = order + // } }, methods: {} diff --git a/mallplusui-uniapp-app/pages/public/login.vue b/mallplusui-uniapp-app/pages/public/login.vue index 3d3fbc6..491944e 100644 --- a/mallplusui-uniapp-app/pages/public/login.vue +++ b/mallplusui-uniapp-app/pages/public/login.vue @@ -1,100 +1,103 @@ diff --git a/mallplusui-uniapp-app/pages/set/set.vue b/mallplusui-uniapp-app/pages/set/set.vue index 9ff541e..b2be1cb 100644 --- a/mallplusui-uniapp-app/pages/set/set.vue +++ b/mallplusui-uniapp-app/pages/set/set.vue @@ -1,33 +1,35 @@ diff --git a/mallplusui-uniapp-app/pagesA/after_sale/list.vue b/mallplusui-uniapp-app/pagesA/after_sale/list.vue index 5e6dfa5..10f0277 100644 --- a/mallplusui-uniapp-app/pagesA/after_sale/list.vue +++ b/mallplusui-uniapp-app/pagesA/after_sale/list.vue @@ -14,7 +14,7 @@ {{ item.createTime }} - {{ item.id }}-- + 待审核 退货中 已完成 @@ -55,7 +55,7 @@ import { mapState } from 'vuex'; import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue'; import Api from '@/common/api'; -import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; +import uniLoadMore from '@/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue'; import empty from '@/components/empty'; import { formatDate } from '@/common/date'; export default { diff --git a/mallplusui-uniapp-app/pagesA/build/community.vue b/mallplusui-uniapp-app/pagesA/build/community.vue index a95515d..5015ec6 100644 --- a/mallplusui-uniapp-app/pagesA/build/community.vue +++ b/mallplusui-uniapp-app/pagesA/build/community.vue @@ -117,7 +117,7 @@ mapState } from 'vuex'; import navBar from '@/components/zhouWei-navBar'; - import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; + import uniLoadMore from '@/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue'; export default { components: { coupon, diff --git a/mallplusui-uniapp-app/pagesA/build/communityList.vue b/mallplusui-uniapp-app/pagesA/build/communityList.vue index 0b65e86..d8ecba5 100644 --- a/mallplusui-uniapp-app/pagesA/build/communityList.vue +++ b/mallplusui-uniapp-app/pagesA/build/communityList.vue @@ -42,7 +42,7 @@ diff --git a/mallplusui-uniapp-app/pagesA/product/tagGoodslist.vue b/mallplusui-uniapp-app/pagesA/product/tagGoodslist.vue index 1ef8f7e..d65a67f 100644 --- a/mallplusui-uniapp-app/pagesA/product/tagGoodslist.vue +++ b/mallplusui-uniapp-app/pagesA/product/tagGoodslist.vue @@ -68,7 +68,7 @@ diff --git a/mallplusui-uniapp-app/pagesU/address/addressManage.vue b/mallplusui-uniapp-app/pagesU/address/addressManage.vue index 656781e..b7dcab8 100644 --- a/mallplusui-uniapp-app/pagesU/address/addressManage.vue +++ b/mallplusui-uniapp-app/pagesU/address/addressManage.vue @@ -1,220 +1,328 @@ diff --git a/mallplusui-uniapp-app/pagesU/address/addressManage_2023-02-20.vue b/mallplusui-uniapp-app/pagesU/address/addressManage_2023-02-20.vue new file mode 100644 index 0000000..2da3638 --- /dev/null +++ b/mallplusui-uniapp-app/pagesU/address/addressManage_2023-02-20.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/mallplusui-uniapp-app/pagesU/notice/subjectDetail.vue b/mallplusui-uniapp-app/pagesU/notice/subjectDetail.vue index 17186be..f07af60 100644 --- a/mallplusui-uniapp-app/pagesU/notice/subjectDetail.vue +++ b/mallplusui-uniapp-app/pagesU/notice/subjectDetail.vue @@ -11,11 +11,11 @@ {{ detailData.title }} - + @@ -32,7 +32,7 @@ - + - + diff --git a/mallplusui-uniapp-app/pagesU/notice/subjectList.vue b/mallplusui-uniapp-app/pagesU/notice/subjectList.vue index f8c0a0a..dab83ed 100644 --- a/mallplusui-uniapp-app/pagesU/notice/subjectList.vue +++ b/mallplusui-uniapp-app/pagesU/notice/subjectList.vue @@ -11,13 +11,13 @@ {{item.title}} 发布时间:{{item.createTime | formatCreateTime}} - + @@ -31,7 +31,7 @@ import { formatDate } from '@/common/date'; - + export default { data() { return { @@ -158,7 +158,6 @@ justify-content: space-between; .listcard-content_title { - padding-right: 30px; font-size: 14px; color: #333; font-weight: 400; @@ -167,6 +166,7 @@ text { font-size: 22px; + margin-top: 5px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; @@ -175,7 +175,7 @@ } .listcard-content_title_text { - margin-top: 5px; + margin-top: 28px; font-size: 15px; color: #999; } diff --git a/mallplusui-uniapp-app/pagesU/notice/subjectList_02_14.vue b/mallplusui-uniapp-app/pagesU/notice/subjectList_02_14.vue index fceeedb..4f75255 100644 --- a/mallplusui-uniapp-app/pagesU/notice/subjectList_02_14.vue +++ b/mallplusui-uniapp-app/pagesU/notice/subjectList_02_14.vue @@ -39,7 +39,7 @@ diff --git a/mallplusui-uniapp-app/pagesU/user/coupon.vue b/mallplusui-uniapp-app/pagesU/user/coupon.vue index 12a0353..6b89be2 100644 --- a/mallplusui-uniapp-app/pagesU/user/coupon.vue +++ b/mallplusui-uniapp-app/pagesU/user/coupon.vue @@ -1,21 +1,26 @@ diff --git a/mallplusui-uniapp-app/pagesU/user/deposit.vue b/mallplusui-uniapp-app/pagesU/user/deposit.vue index 1a9b5c6..2f4ed2f 100644 --- a/mallplusui-uniapp-app/pagesU/user/deposit.vue +++ b/mallplusui-uniapp-app/pagesU/user/deposit.vue @@ -1,10 +1,10 @@ diff --git a/mallplusui-uniapp-app/plugins/APPUpdate/index.js b/mallplusui-uniapp-app/plugins/APPUpdate/index.js index b66cda6..d0f3f30 100644 --- a/mallplusui-uniapp-app/plugins/APPUpdate/index.js +++ b/mallplusui-uniapp-app/plugins/APPUpdate/index.js @@ -9,10 +9,11 @@ const $iconUrl = "/static/icon/ic_ar.png"; // 获取当前应用的版本号 export const getCurrentNo = function(callback) { // 获取本地应用资源版本号 + console.log("》》》》", 11111111111111111); plus.runtime.getProperty(plus.runtime.appid, function(inf) { callback && callback({ versionCode: inf.version.replace(/\./g, ""), - version: inf.version + version: inf.version, }); }); } @@ -24,7 +25,7 @@ export const getServerNo = function(version, isPrompt = false, callback) { let userName = userInfos.username; let httpData = { version: version, - userName:userName + userName: userName }; console.log(userName) if (platform == "android") { @@ -32,11 +33,12 @@ export const getServerNo = function(version, isPrompt = false, callback) { } else { httpData.type = 1102; } + console.log("》》》》", 222222); /* 接口入参说明 * version: 应用当前版本号(已自动获取) * type:平台(1101是安卓,1102是IOS) */ - $http.get("api/appVersion/versioninfo", httpData, { + $http.get("appVersion/versioninfo", httpData, { isPrompt: isPrompt }).then(res => { /* res的数据说明 @@ -48,6 +50,7 @@ export const getServerNo = function(version, isPrompt = false, callback) { * | forceUpdate | y | boolean | 是否强制更新 | * | downloadUrl | y | String | 版本下载链接(IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接) | */ + console.log("》》》》", 333333333); console.log(res) console.log(JSON.parse(res)); console.log(JSON.stringify(JSON.parse(res))) @@ -76,6 +79,7 @@ export const getDownload = function(res) { let file = data.fileName let dtask; let lastProgressValue = 0; + console.log("》》》》", 44444444); downloadPopup(popupData, function(res) { dtask = plus.downloader.createDownload(data.downloadUrl, { // filename: '_doc/update/' + file + '/' + new Date().getTime() + '/' @@ -670,7 +674,8 @@ function downloadPopup(data, callback, cancelCallback, rebootCallback) { } else if (buttonNum == 2) { // 双按钮 let buttonWidth = (popupViewData.viewContentWidth - popupViewData.viewContentPadding) / 2; - if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft - buttonWidth - popupViewData.viewContentPadding) { + if (e.clientX > popupViewData.viewContentPadding && e.clientX < maxLeft - buttonWidth - + popupViewData.viewContentPadding) { maskLayer.hide(); popupView.hide(); cancelCallback && cancelCallback(); @@ -781,8 +786,10 @@ function downloadPopup(data, callback, cancelCallback, rebootCallback) { } export default function(isPrompt = false) { getCurrentNo(version => { + console.log("》》》》", version); getServerNo(version.versionCode, isPrompt, data => { let res = JSON.parse(data); + console.log("》》》》", 6666666); if (res.forceUpdate) { if (/\.wgt$/i.test(res.downloadUrl)) { getDownload(res); diff --git a/mallplusui-uniapp-app/plugins/request/request.js b/mallplusui-uniapp-app/plugins/request/request.js index 1b2877b..2eb27d1 100644 --- a/mallplusui-uniapp-app/plugins/request/request.js +++ b/mallplusui-uniapp-app/plugins/request/request.js @@ -18,7 +18,8 @@ export default class request { // 获取默认信息 getDefault(data, options = {}) { //判断url是不是链接 - let urlType = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~/])+$/.test(data.url); + let urlType = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~/])+$/.test( + data.url); let config = Object.assign({}, this.config, options, data); if (data.method == "FILE") { config.url = urlType ? data.url : this.fileUrl + data.url; @@ -88,6 +89,7 @@ export default class request { return; } let requestInfo = this.getDefault(data); + //请求前回调 if (this.requestStart) { let requestStart = this.requestStart(requestInfo); @@ -110,9 +112,12 @@ export default class request { return; } } + console.log("url: requestInfo.url》》》》", requestInfo.url) + console.log("url: requestInfo.header》》》》", requestInfo.header) let requestData = { url: requestInfo.url, header: requestInfo.header, //加入请求头 + success: (res) => { //请求完成回调 this.requestEnd && this.requestEnd(requestInfo, res); diff --git a/mallplusui-uniapp-app/static/logo.png b/mallplusui-uniapp-app/static/logo.png index 027dde9..42b8b75 100644 Binary files a/mallplusui-uniapp-app/static/logo.png and b/mallplusui-uniapp-app/static/logo.png differ diff --git a/mallplusui-uniapp-app/static/logo1.png b/mallplusui-uniapp-app/static/logo1.png new file mode 100644 index 0000000..027dde9 Binary files /dev/null and b/mallplusui-uniapp-app/static/logo1.png differ diff --git a/mallplusui-uniapp-app/static/logo2.png b/mallplusui-uniapp-app/static/logo2.png index d072c74..98ce7ac 100644 Binary files a/mallplusui-uniapp-app/static/logo2.png and b/mallplusui-uniapp-app/static/logo2.png differ diff --git a/mallplusui-uniapp-app/static/logo3.jpg b/mallplusui-uniapp-app/static/logo3.jpg deleted file mode 100644 index 544d6ed..0000000 Binary files a/mallplusui-uniapp-app/static/logo3.jpg and /dev/null differ diff --git a/mallplusui-uniapp-app/static/tab-message.png b/mallplusui-uniapp-app/static/tab-message.png new file mode 100644 index 0000000..06a907e Binary files /dev/null and b/mallplusui-uniapp-app/static/tab-message.png differ diff --git a/mallplusui-uniapp-app/static/tab-message_.png b/mallplusui-uniapp-app/static/tab-message_.png new file mode 100644 index 0000000..9bcd5b8 Binary files /dev/null and b/mallplusui-uniapp-app/static/tab-message_.png differ diff --git a/mallplusui-uniapp-app/store/index.js b/mallplusui-uniapp-app/store/index.js index 09ce84e..8758685 100644 --- a/mallplusui-uniapp-app/store/index.js +++ b/mallplusui-uniapp-app/store/index.js @@ -6,16 +6,21 @@ Vue.use(Vuex) const store = new Vuex.Store({ state: { hasLogin: false, - userInfo:'' + hasVip: false, + userInfo: '' }, mutations: { login(state, provider) { - console.log(provider); - if (provider && provider!=undefined){ - state.hasLogin = true; - uni.setStorage({//缓存用户登陆状态 + console.log(provider); + if (provider && provider != undefined) { + console.log("provider", provider); + console.log("provider>>>", provider.memberLevelId); + state.hasLogin = true; + state.hasVip = provider.memberLevelId == 1 ? false : true; + console.log("state.hasVip >>>", state.hasVip); + uni.setStorage({ //缓存用户登陆状态 key: 'userInfo', - data: provider.userInfo + data: provider }) state.userInfo = provider; } @@ -24,10 +29,11 @@ const store = new Vuex.Store({ }, logout(state) { state.hasLogin = false; + state.hasVip = false; state.userInfo = ''; uni.removeStorage({ - key: 'userInfo' - }) + key: 'userInfo' + }) } }, actions: { diff --git a/mallplusui-uniapp-app/uni_modules/uni-data-select/changelog.md b/mallplusui-uniapp-app/uni_modules/uni-data-select/changelog.md new file mode 100644 index 0000000..dd87dbb --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-data-select/changelog.md @@ -0,0 +1,33 @@ +## 1.0.5(2023-02-03) +- 修复 禁用时会显示清空按钮 +## 1.0.4(2023-02-02) +- 优化 查询条件短期内多次变更只查询最后一次变更后的结果 +- 调整 内部缓存键名调整为 uni-data-select-lastSelectedValue +## 1.0.3(2023-01-16) +- 修复 不关联服务空间报错的问题 +## 1.0.2(2023-01-14) +- 新增 属性 `format` 可用于格式化显示选项内容 +## 1.0.1(2022-12-06) +- 修复 当where变化时,数据不会自动更新的问题 +## 0.1.9(2022-09-05) +- 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框 +## 0.1.8(2022-08-29) +- 修复 点击的位置不准确 +## 0.1.7(2022-08-12) +- 新增 支持 disabled 属性 +## 0.1.6(2022-07-06) +- 修复 pc端宽度异常的bug +## 0.1.5 +- 修复 pc端宽度异常的bug +## 0.1.4(2022-07-05) +- 优化 显示样式 +## 0.1.3(2022-06-02) +- 修复 localdata 赋值不生效的 bug +- 新增 支持 uni.scss 修改颜色 +- 新增 支持选项禁用(数据选项设置 disabled: true 即禁用) +## 0.1.2(2022-05-08) +- 修复 当 value 为 0 时选择不生效的 bug +## 0.1.1(2022-05-07) +- 新增 记住上次的选项(仅 collection 存在时有效) +## 0.1.0(2022-04-22) +- 初始化 diff --git a/mallplusui-uniapp-app/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/mallplusui-uniapp-app/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue new file mode 100644 index 0000000..131babe --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -0,0 +1,502 @@ + + + + + diff --git a/mallplusui-uniapp-app/uni_modules/uni-data-select/package.json b/mallplusui-uniapp-app/uni_modules/uni-data-select/package.json new file mode 100644 index 0000000..e66999d --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-data-select/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-data-select", + "displayName": "uni-data-select 下拉框选择器", + "version": "1.0.5", + "description": "通过数据驱动的下拉框选择器", + "keywords": [ + "uni-ui", + "select", + "uni-data-select", + "下拉框", + "下拉选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-load-more"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "u", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-data-select/readme.md b/mallplusui-uniapp-app/uni_modules/uni-data-select/readme.md new file mode 100644 index 0000000..eb58de3 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-data-select/readme.md @@ -0,0 +1,8 @@ +## DataSelect 下拉框选择器 +> **组件名:uni-data-select** +> 代码块: `uDataSelect` + +当选项过多时,使用下拉菜单展示并选择内容 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/changelog.md b/mallplusui-uniapp-app/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/icons.js b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..86e7444 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.css b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000..835f33b Binary files /dev/null and b/mallplusui-uniapp-app/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/package.json b/mallplusui-uniapp-app/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/mallplusui-uniapp-app/uni_modules/uni-icons/readme.md b/mallplusui-uniapp-app/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/changelog.md b/mallplusui-uniapp-app/uni_modules/uni-load-more/changelog.md new file mode 100644 index 0000000..8f03f1d --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/changelog.md @@ -0,0 +1,19 @@ +## 1.3.3(2022-01-20) +- 新增 showText属性 ,是否显示文本 +## 1.3.2(2022-01-19) +- 修复 nvue 平台下不显示文本的bug +## 1.3.1(2022-01-19) +- 修复 微信小程序平台样式选择器报警告的问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) +## 1.2.1(2021-08-24) +- 新增 支持国际化 +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-05-12) +- 新增 组件示例地址 +## 1.1.7(2021-03-30) +- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +## 1.1.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json new file mode 100644 index 0000000..a4f14a5 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "Pull up to show more", + "uni-load-more.contentrefresh": "loading...", + "uni-load-more.contentnomore": "No more data" +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json new file mode 100644 index 0000000..f15d510 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉显示更多", + "uni-load-more.contentrefresh": "正在加载...", + "uni-load-more.contentnomore": "没有更多数据了" +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json new file mode 100644 index 0000000..a255c6d --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉顯示更多", + "uni-load-more.contentrefresh": "正在加載...", + "uni-load-more.contentnomore": "沒有更多數據了" +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..e5eff4d --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/package.json b/mallplusui-uniapp-app/uni_modules/uni-load-more/package.json new file mode 100644 index 0000000..2fa6f04 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-load-more", + "displayName": "uni-load-more 加载更多", + "version": "1.3.3", + "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", + "keywords": [ + "uni-ui", + "uniui", + "加载更多", + "load-more" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/mallplusui-uniapp-app/uni_modules/uni-load-more/readme.md b/mallplusui-uniapp-app/uni_modules/uni-load-more/readme.md new file mode 100644 index 0000000..54dc1fa --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-load-more/readme.md @@ -0,0 +1,14 @@ + + +### LoadMore 加载更多 +> **组件名:uni-load-more** +> 代码块: `uLoadMore` + + +用于列表中,做滚动加载使用,展示 loading 的各种状态。 + + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/changelog.md b/mallplusui-uniapp-app/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/index.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/package.json b/mallplusui-uniapp-app/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/readme.md b/mallplusui-uniapp-app/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/index.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_border.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_color.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_radius.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_space.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_styles.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_text.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_variables.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/styles/tools/functions.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/theme.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/mallplusui-uniapp-app/uni_modules/uni-scss/variables.scss b/mallplusui-uniapp-app/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/mallplusui-uniapp-app/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue b/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue index 29d7d7c..1f9b0a3 100644 --- a/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue +++ b/mallplusui-uniapp-app2/pagesA/product/secskillDetail.vue @@ -56,7 +56,7 @@ - + 图文详情 @@ -109,7 +109,7 @@ - + @@ -189,13 +189,20 @@ export default { }, async onLoad(ops) { //接收传值,id里面放的是标题,因为测试数据并没写id + + console.log('zzzz',ops) + ops={id:204} let id = ops.id; + // let id = 408; if (id) { this.logining = true; - let params = { id: ops.id }; + // let params = { id: ops.id }; + let params = { id:204 }; + console.log('11111',id) let data = await Api.apiCall('get', Api.goods.secskillDetail, params); this.logining = false; + console.log('vvvv',data) if (data) { let detailData = data.goods; let goods = detailData.goods; @@ -217,17 +224,19 @@ export default { title: goods.name }); } + console.log('mmmmm',this.hasLogin) if (this.hasLogin) { - let params = { goodsId: ops.id }; + // let params = { goodsId: ops.id }; + let params = { goodsId: 204 }; await Api.apiCall('post', Api.goods.addView, params); } let params1 = { goodsId: ops.id }; - let consoltL = await Api.apiCall('get', Api.goods.consultList, params1); + let consoltL = await Api.apiCall('get', Api.goods.consultList, params1); this.consultList = consoltL.list; this.consultCount = consoltL.count; let params3 = { }; - let couponList1 = await Api.apiCall('get', Api.index.couponList, params3); + let couponList1 = await Api.apiCall('get', Api.index.couponList, params3); this.couponList = couponList1; @@ -251,17 +260,29 @@ export default { //领取优惠券 async obtainCoupon(index) { if (!this.hasLogin) { - this.$api.msg('请先登录'); + // this.$api.msg('请先登录'); + + uni.showToast({title:'请先登录', + duration:1500, + mask:false, + icon:"none" + }); } uni.showLoading({ title: '请稍后' }); let params = { couponId: index.id }; - let data = await Api.apiCall('post', Api.index.acceptCoupon, params); + let data = null; //await Api.apiCall('post', Api.index.acceptCoupon, params); console.log(data); if (data) { - this.$api.msg(data); + // this.$api.msg(data); + + uni.showToast({title:data, + duration:1500, + mask:false, + icon:"none" + }); this.toggleMask() } uni.hideLoading(); @@ -333,9 +354,11 @@ export default { if (data) { - this.$api.msg('添加购物车成功!'); + // this.$api.msg('添加购物车成功!'); + uni.showToast({title:"添加购物车成功",icon: "none"}); } else { - this.$api.msg('加入购物车错误'); + // this.$api.msg('加入购物车错误'); + uni.showToast({title:"加入购物车错误",icon: "none"}); } }, stopPrevent() {} diff --git a/mallplusui-uniapp-app2/static/logo.png b/mallplusui-uniapp-app2/static/logo.png index 5c572a4..80e808f 100644 Binary files a/mallplusui-uniapp-app2/static/logo.png and b/mallplusui-uniapp-app2/static/logo.png differ diff --git a/mallplusui-web-admin/config/dev.env.js b/mallplusui-web-admin/config/dev.env.js index f2246c7..ad226ad 100644 --- a/mallplusui-web-admin/config/dev.env.js +++ b/mallplusui-web-admin/config/dev.env.js @@ -4,5 +4,7 @@ const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"development"', - BASE_API: '"http://mall.yyundong.com/adminapi"' + // BASE_API: '"http://mall.yyundong.com/adminapi"', + BASE_API: '"http://192.168.3.9:8085"' + // BASE_API: '"http://127.0.0.1:8085"' }) diff --git a/mallplusui-web-admin/index.html b/mallplusui-web-admin/index.html index 1fb21bd..f28b510 100644 --- a/mallplusui-web-admin/index.html +++ b/mallplusui-web-admin/index.html @@ -3,7 +3,7 @@ - mallplus-platform + 汇惠云链管理后台 diff --git a/mallplusui-web-admin/src/api/ums/sysMessage.js b/mallplusui-web-admin/src/api/ums/sysMessage.js new file mode 100644 index 0000000..34c8459 --- /dev/null +++ b/mallplusui-web-admin/src/api/ums/sysMessage.js @@ -0,0 +1,23 @@ +import request from '@/utils/request' + +export function sendToOne(data) { + return request({ + url:'/ums/sysMessage/sendToOne', + method:'post', + data:data + }) +} +export function sendToAll(data) { + return request({ + url:'/ums/sysMessage/sendToAll', + method:'post', + data:data + }) +} +export function sendToSelect(data) { + return request({ + url:'/ums/sysMessage/sendToSelect', + method:'post', + data:data + }) +} diff --git a/mallplusui-web-admin/src/assets/img/logo.png b/mallplusui-web-admin/src/assets/img/logo.png index 80dd845..42b8b75 100644 Binary files a/mallplusui-web-admin/src/assets/img/logo.png and b/mallplusui-web-admin/src/assets/img/logo.png differ diff --git a/mallplusui-web-admin/src/icons/svg/cross.svg b/mallplusui-web-admin/src/icons/svg/cross.svg new file mode 100644 index 0000000..277d865 --- /dev/null +++ b/mallplusui-web-admin/src/icons/svg/cross.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/mallplusui-web-admin/src/router/index.js b/mallplusui-web-admin/src/router/index.js index 4d964fb..c0dfa40 100644 --- a/mallplusui-web-admin/src/router/index.js +++ b/mallplusui-web-admin/src/router/index.js @@ -17,1886 +17,2498 @@ Vue.use(Router) icon: 'svg-name' the icon show in the sidebar, } **/ -export const constantRouterMap = [ - {path: '/acceptStore', component: () => import('@/views/login/acceptStore'), hidden: true}, - {path: '/login', component: () => import('@/views/login/index'), hidden: true}, - {path: '/404', component: () => import('@/views/404'), hidden: true}, - { - path: '/store', - component: () => import('@/views/home/store'), - hidden: true - }, - { - path: '/', - component: Layout, - redirect: '/home', - children: [{ - path: 'home', - name: 'home', - component: () => import('@/views/home/index'), - meta: {title: '首页', icon: 'home'} - }] - }, - { - path: '/@/components/templatePage', - name: 'templateComponents', - meta: { - title: '组件测试', - showflg: true, - showrole: true, - roles: "-2", - level1: 'common', - }, - component: () => - import ('@/components/templatePage'), - }, - { - path: '/pms', - component: Layout, - redirect: '/pms/product', - name: 'pms', - meta: {title: '商品', icon: 'product'}, - children: [{ - path: 'product', - name: 'product', - component: () => import('@/views/pms/product/index'), - meta: {title: '商品列表', icon: 'product-list'} - }, - { - path: 'addProduct', - name: 'addProduct', - component: () => import('@/views/pms/product/add'), - meta: {title: '添加商品', icon: 'product-add'} - }, - { - path: 'updateProduct', - name: 'updateProduct', - component: () => import('@/views/pms/product/update'), - meta: {title: '修改商品', icon: 'product-add'}, - hidden: true - }, - { - path: 'productRecycle', - name: 'productRecycle', - component: () => import('@/views/pms/product/index'), - meta: {title: '商品回收站', icon: 'product-recycle'}, - hidden: true - }, - { - path: 'productComment', - name: 'productComment', - component: () => import('@/views/pms/product/index'), - meta: {title: '商品评价', icon: 'product-comment'}, - hidden: true - }, - { - path: 'productCate', - name: 'productCate', - component: () => import('@/views/pms/productCate/index'), - meta: {title: '商品分类', icon: 'product-cate'} - }, - { - path: 'addProductCate', - name: 'addProductCate', - component: () => import('@/views/pms/productCate/add'), - meta: {title: '添加商品分类'}, - hidden: true - }, - { - path: 'updateProductCate', - name: 'updateProductCate', - component: () => import('@/views/pms/productCate/update'), - meta: {title: '修改商品分类'}, - hidden: true - }, - { - path: 'productAttr', - name: 'productAttr', - component: () => import('@/views/pms/productAttr/index'), - meta: {title: '商品类型', icon: 'product-attr'} - }, - { - path: 'productAttrList', - name: 'productAttrList', - component: () => import('@/views/pms/productAttr/productAttrList'), - meta: {title: '商品属性列表'}, - hidden: true - }, - { - path: 'addProductAttr', - name: 'addProductAttr', - component: () => import('@/views/pms/productAttr/addProductAttr'), - meta: {title: '添加商品属性'}, - hidden: true - }, - { - path: 'updateProductAttr', - name: 'updateProductAttr', - component: () => import('@/views/pms/productAttr/updateProductAttr'), - meta: {title: '修改商品属性'}, - hidden: true - }, - { - path: 'brand', - name: 'brand', - component: () => import('@/views/pms/brand/index'), - meta: {title: '品牌管理', icon: 'product-brand'} - }, - { - path: 'addBrand', - name: 'addBrand', - component: () => import('@/views/pms/brand/add'), - meta: {title: '添加品牌'}, - hidden: true - }, - { - path: 'updateBrand', - name: 'updateBrand', - component: () => import('@/views/pms/brand/update'), - meta: {title: '编辑品牌'}, - hidden: true - }, - //小程序首页分类图标管理 - { - path: 'smallNaviconCategory', - name: 'smallNaviconCategory', - component: () => import('@/views/pms/smallNaviconCategory/index'), - meta: {title: '小程序首页nav管理列表}'} - }, - { - path: 'addSmallNaviconCategory', - name: 'addSmallNaviconCategory', - component: () => import('@/views/pms/smallNaviconCategory/add'), - meta: {title: '添加小程序首页nav管理', icon: 'smallNaviconCategory-add'} - }, - { - path: 'updateSmallNaviconCategory', - name: 'updateSmallNaviconCategory', - component: () => import('@/views/pms/smallNaviconCategory/update'), - meta: {title: '修改小程序首页nav管理', icon: 'smallNaviconCategory-update'}, - hidden: true - }, - { - path: 'PmsGifts', - name: 'PmsGifts', - component: () => import('@/views/pms/Gifts/index'), - meta: {title: '赠品管理', icon: 'product-list'} - }, - - { - path: 'addPmsGifts', - name: 'addPmsGifts', - component: () => import('@/views/pms/Gifts/add'), - meta: {title: '添加赠品'}, - hidden: true - }, - { - path: 'updatePmsGifts', - name: 'updatePmsGifts', - component: () => import('@/views/pms/Gifts/update'), - meta: {title: '编辑赠品'}, - hidden: true - }, - { - path: 'PmsGiftsCategory', - name: 'PmsGiftsCategory', - component: () => import('@/views/pms/GiftsCategory/index'), - meta: {title: '赠品分类', icon: 'product-list'} - }, - - { - path: 'addPmsGiftsCategory', - name: 'addPmsGiftsCategory', - component: () => import('@/views/pms/GiftsCategory/add'), - meta: {title: '添加赠品分类'}, - hidden: true - }, - { - path: 'updatePmsGiftsCategory', - name: 'updatePmsGiftsCategory', - component: () => import('@/views/pms/GiftsCategory/update'), - meta: {title: '编辑赠品分类'}, - hidden: true - }, - { - path: 'ProductConsult', - name: 'ProductConsult', - component: () => import('@/views/pms/productConsult/index'), - meta: {title: '商品评论'}, - hidden: true - } - - ] - }, - { - path: '/oms', - component: Layout, - redirect: '/oms/order', - name: 'oms', - meta: {title: '订单', icon: 'order'}, - children: [ - { - path: 'omsCompanyAddress', - name: 'omsCompanyAddress', - component: () => import('@/views/oms/omsCompanyAddress/index'), - meta: {title: '发货地址列表', icon: 'product-list'} - }, - - { - path: 'addOmsCompanyAddress', - name: 'addOmsCompanyAddress', - component: () => import('@/views/oms/omsCompanyAddress/add'), - meta: {title: '添加发货地址'}, - hidden: true - }, - { - path: 'updateOmsCompanyAddress', - name: 'updateOmsCompanyAddress', - component: () => import('@/views/oms/omsCompanyAddress/update'), - meta: {title: '编辑发货地址'}, - hidden: true - }, - - - { - path: 'order', - name: 'order', - component: () => import('@/views/oms/order/index1'), - meta: {title: '订单列表', icon: 'product-list'} - }, - { - path: 'orderDetail', - name: 'orderDetail', - component: () => import('@/views/oms/order/orderDetail'), - meta: {title: '订单详情'}, - hidden: true - }, - { - path: 'deliverOrderList', - name: 'deliverOrderList', - component: () => import('@/views/oms/order/deliverOrderList'), - meta: {title: '发货列表'}, - hidden: true - }, - - { - path: 'returnApply', - name: 'returnApply', - component: () => import('@/views/oms/apply/index'), - meta: {title: '退货申请处理', icon: 'order-return'} - }, - - { - path: 'returnApplyDetail', - name: 'returnApplyDetail', - component: () => import('@/views/oms/apply/applyDetail'), - meta: {title: '退货原因详情'}, - hidden: true - }, - { - path: 'OrderProductConsult', - name: 'OrderProductConsult', - component: () => import('@/views/oms/orderConsult/index'), - meta: {title: '订单评论'}, - hidden: true - }, - { - path: 'FeightTemplate', - name: 'FeightTemplate', - component: () => import('@/views/pms/feightTemplate/index'), - meta: {title: '运费模版', icon: 'product-list'} - }, - - { - path: 'addFeightTemplate', - name: 'addFeightTemplate', - component: () => import('@/views/pms/feightTemplate/add'), - meta: {title: '添加运费模版'}, - hidden: true - }, - { - path: 'updateFeightTemplate', - name: 'updateFeightTemplate', - component: () => import('@/views/pms/feightTemplate/update'), - meta: {title: '编辑运费模版'}, - hidden: true - } - - ] - }, - { - path: '/marking', - component: Layout, - redirect: '/marking/smsDiyPage', - name: 'marking', - meta: {title: '运营管理', icon: 'sms'}, - children: [ - { - path: 'sysShop', - name: 'sysShop', - component: () => import('@/views/sys/sysShop/index'), - meta: {title: '门店管理列表', icon: 'product-list'} - }, - - { - path: 'addSysShop', - name: 'addSysShop', - component: () => import('@/views/sys/sysShop/add'), - meta: {title: '添加门店管理'}, - hidden: true - }, - { - path: 'updateSysShop', - name: 'updateSysShop', - component: () => import('@/views/sys/sysShop/update'), - meta: {title: '编辑门店管理'}, - hidden: true - }, - { - path: 'smsContentMsg', - name: 'smsContentMsg', - component: () => import('@/views/sms/smsContentMsg/index'), - meta: {title: '短信记录列表', icon: 'product-list'} - }, - { - path: 'smsContent', - name: 'smsContent', - component: () => import('@/views/sms/smsContent/index'), - meta: {title: '短信模版列表', icon: 'product-list'} - }, - - { - path: 'addSmsContent', - name: 'addSmsContent', - component: () => import('@/views/sms/smsContent/add'), - meta: {title: '添加短信模版'}, - hidden: true - }, - { - path: 'updateSmsContent', - name: 'updateSmsContent', - component: () => import('@/views/sms/smsContent/update'), - meta: {title: '编辑短信模版'}, - hidden: true - }, - { - path: 'smsDiyPage', - name: 'smsDiyPage', - component: () => import('@/views/sms/page/index'), - meta: {title: '添加页面模版', icon: 'sms-flash'} - }, - { - path: 'smsDiypageTemplateCategory', - name: 'smsDiypageTemplateCategory', - component: () => import('@/views/sms/smsDiypageTemplateCategory/index'), - meta: {title: '页面模版列表', icon: 'product-list'} - }, - - { - path: 'addSmsDiypageTemplateCategory', - name: 'addSmsDiypageTemplateCategory', - component: () => import('@/views/sms/smsDiypageTemplateCategory/add'), - meta: {title: '添加页面模版'}, - hidden: true - }, - { - path: 'updateSmsDiypageTemplateCategory', - name: 'updateSmsDiypageTemplateCategory', - component: () => import('@/views/sms/smsDiypageTemplateCategory/update'), - meta: {title: '编辑页面模版'}, - hidden: true - }, - { - path: 'homeBrand', - name: 'homeBrand', - component: () => import('@/views/sms/brand/index'), - meta: {title: '品牌推荐', icon: 'product-brand'} - }, - { - path: 'homeNew', - name: 'homeNew', - component: () => import('@/views/sms/new/index'), - meta: {title: '新品推荐', icon: 'sms-new'} - }, - { - path: 'homeHot', - name: 'homeHot', - component: () => import('@/views/sms/hot/index'), - meta: {title: '人气推荐', icon: 'sms-hot'} - }, - { - path: 'homeSubject', - name: 'homeSubject', - component: () => import('@/views/sms/subject/index'), - meta: {title: '专题推荐', icon: 'sms-subject'} - }, - { - path: 'homeAdvertise', - name: 'homeAdvertise', - component: () => import('@/views/sms/advertise/index'), - meta: {title: '广告列表', icon: 'sms-ad'} - }, - { - path: 'addHomeAdvertise', - name: 'addHomeAdvertise', - component: () => import('@/views/sms/advertise/add'), - meta: {title: '添加广告'}, - hidden: true - }, - { - path: 'updateHomeAdvertise', - name: 'updateHomeAdvertise', - component: () => import('@/views/sms/advertise/update'), - meta: {title: '编辑广告'}, - hidden: true - }, - - ] - }, - { - path: '/sms', - component: Layout, - redirect: '/sms/coupon', - name: 'sms', - meta: {title: '营销', icon: 'sms'}, - children: [ - - - { - path: 'flashPromotion', - name: 'flashPromotion', - component: () => import('@/views/sms/flash/index'), - meta: {title: '秒杀活动列表', icon: 'sms-flash'} - }, - { - path: 'flashSession', - name: 'flashSession', - component: () => import('@/views/sms/flash/sessionList'), - meta: {title: '秒杀时间段列表'}, - hidden: true - }, - { - path: 'selectSession', - name: 'selectSession', - component: () => import('@/views/sms/flash/selectSessionList'), - meta: {title: '秒杀时间段选择'}, - hidden: true - }, - { - path: 'flashProductRelation', - name: 'flashProductRelation', - component: () => import('@/views/sms/flash/productRelationList'), - meta: {title: '秒杀商品列表'}, - hidden: true - }, - { - path: 'coupon', - name: 'coupon', - component: () => import('@/views/sms/coupon/index'), - meta: {title: '优惠券列表', icon: 'sms-coupon'} - }, - { - path: 'addCoupon', - name: 'addCoupon', - component: () => import('@/views/sms/coupon/add'), - meta: {title: '添加优惠券'}, - hidden: true - }, - { - path: 'updateCoupon', - name: 'updateCoupon', - component: () => import('@/views/sms/coupon/update'), - meta: {title: '修改优惠券'}, - hidden: true - }, - { - path: 'couponHistory', - name: 'couponHistory', - component: () => import('@/views/sms/coupon/history'), - meta: {title: '优惠券领取详情'}, - hidden: true - }, - - { - path: 'group', - name: 'group', - component: () => import('@/views/sms/group/index'), - meta: {title: '拼团列表', icon: 'product-list'} - }, - { - path: 'groupHistory', - name: 'groupHistory', - component: () => import('@/views/sms/group/detail'), - meta: {title: '拼团详情'}, - hidden: true - }, - { - path: 'addGroup', - name: 'addGroup', - component: () => import('@/views/sms/group/add'), - meta: {title: '添加拼团'}, - hidden: true - }, - { - path: 'updateGroup', - name: 'updateGroup', - component: () => import('@/views/sms/group/update'), - meta: {title: '编辑拼团'}, - hidden: true - }, - { - path: 'redPacket', - name: 'redPacket', - component: () => import('@/views/sms/redPacket/index'), - meta: {title: '红包列表', icon: 'product-list'} - }, - - { - path: 'addRedPacket', - name: 'addRedPacket', - component: () => import('@/views/sms/redPacket/add'), - meta: {title: '添加红包'}, - hidden: true - }, - { - path: 'updateRedPacket', - name: 'updateRedPacket', - component: () => import('@/views/sms/redPacket/update'), - meta: {title: '编辑红包'}, - hidden: true - }, - { - path: 'basicMark', - name: 'basicMark', - component: () => import('@/views/sms/basicMark/index'), - meta: {title: '基本营销', icon: 'product-list'} - }, - - { - path: 'addBasicMark', - name: 'addBasicMark', - component: () => import('@/views/sms/basicMark/add'), - meta: {title: '添加基本营销'}, - hidden: true - }, - { - path: 'updateBasicMark', - name: 'updateBasicMark', - component: () => import('@/views/sms/basicMark/update'), - meta: {title: '编辑基本营销'}, - hidden: true - }, - { - path: 'smsBasicGifts', - name: 'smsBasicGifts', - component: () => import('@/views/sms/SmsBasicGifts/index'), - meta: {title: '赠品营销', icon: 'product-list'} - }, - - { - path: 'addSmsBasicGifts', - name: 'addSmsBasicGifts', - component: () => import('@/views/sms/SmsBasicGifts/add'), - meta: {title: '添加赠品营销'}, - hidden: true - }, - { - path: 'updateSmsBasicGifts', - name: 'updateSmsBasicGiftsk', - component: () => import('@/views/sms/SmsBasicGifts/update'), - meta: {title: '编辑赠品营销'}, - hidden: true - } - , - { - path: 'groupActivity', - name: 'groupActivity', - component: () => import('@/views/sms/groupActivity/index'), - meta: {title: '团购管理', icon: 'product-list'} - }, - - { - path: 'addgroupActivity', - name: 'addgroupActivity', - component: () => import('@/views/sms/groupActivity/add'), - meta: {title: '添加团购'}, - hidden: true - }, - { - path: 'updategroupActivity', - name: 'updategroupActivity', - component: () => import('@/views/sms/groupActivity/update'), - meta: {title: '编辑团购'}, - hidden: true - },{ - path: 'smsBargainConfig', - name: 'smsBargainConfig', - component: () => import('@/views/sms/smsBargainConfig/index'), - meta: {title: '砍价商品列表', icon: 'product-list'} - }, - - { - path: 'addSmsBargainConfig', - name: 'addSmsBargainConfig', - component: () => import('@/views/sms/smsBargainConfig/add'), - meta: {title: '添加砍价商品'}, - hidden: true - }, - { - path: 'updateSmsBargainConfig', - name: 'updateSmsBargainConfig', - component: () => import('@/views/sms/smsBargainConfig/update'), - meta: {title: '编辑砍价商品'}, - hidden: true - }, { - path: 'smsDraw', - name: 'smsDraw', - component: () => import('@/views/sms/draw/index'), - meta: {title: '抽奖活动', icon: 'product-list'} - }, { - path: 'addsmsDraw', - name: 'addsmsDraw', - component: () => import('@/views/sms/draw/add'), - meta: {title: '添加抽奖'}, - hidden: true - }, - { - path: 'updatesmsDraw', - name: 'updatesmsDraw', - component: () => import('@/views/sms/draw/update'), - meta: {title: '编辑抽奖'}, - hidden: true - }, { - path: 'smsPaimai', - name: 'smsPaimai', - component: () => import('@/views/sms/paimai/index'), - meta: {title: '竞拍活动', icon: 'product-list'} - }, { - path: 'addsmsPaimai', - name: 'addsmsPaimai', - component: () => import('@/views/sms/paimai/add'), - meta: {title: '添加竞拍'}, - hidden: true - }, - { - path: 'updatesmsPaimai', - name: 'updatesmsPaimai', - component: () => import('@/views/sms/paimai/update'), - meta: {title: '编辑竞拍'}, - hidden: true - } - ] - }, - - - { - path: '/jifen', - component: Layout, - redirect: '/jifen/jifenCoupon', - name: 'jifen', - meta: {title: '积分商城', icon: 'home'}, - children: [ - - { - path: 'jifenCoupon', - name: 'jifenCoupon', - component: () => import('@/views/jifen/jifenCoupon/index'), - meta: {title: '积分券列表', icon: 'product-list'} - }, - - { - path: 'addJifenCoupon', - name: 'addJifenCoupon', - component: () => import('@/views/jifen/jifenCoupon/add'), - meta: {title: '添加积分券'}, - hidden: true - }, - { - path: 'updateJifenCoupon', - name: 'updateJifenCoupon', - component: () => import('@/views/jifen/jifenCoupon/update'), - meta: {title: '编辑积分券'}, - hidden: true - }, - { - path: 'jifenDonateRule', - name: 'jifenDonateRule', - component: () => import('@/views/jifen/jifenDonateRule/index'), - meta: {title: '积分赠送规则列表', icon: 'product-list'} - }, - - { - path: 'addJifenDonateRule', - name: 'addJifenDonateRule', - component: () => import('@/views/jifen/jifenDonateRule/add'), - meta: {title: '添加积分赠送规则'}, - hidden: true - }, - { - path: 'updateJifenDonateRule', - name: 'updateJifenDonateRule', - component: () => import('@/views/jifen/jifenDonateRule/update'), - meta: {title: '编辑积分赠送规则'}, - hidden: true - }, - { - path: 'jifenSignRule', - name: 'jifenSignRule', - component: () => import('@/views/jifen/jifenSignRule/index'), - meta: {title: '积分签到规则列表', icon: 'product-list'} - }, - - { - path: 'addJifenSignRule', - name: 'addJifenSignRule', - component: () => import('@/views/jifen/jifenSignRule/add'), - meta: {title: '添加积分签到规则'}, - hidden: true - }, - { - path: 'updateJifenSignRule', - name: 'updateJifenSignRule', - component: () => import('@/views/jifen/jifenSignRule/update'), - meta: {title: '编辑积分签到规则'}, - hidden: true - }, - - - ] - }, - { - path: '/fenxiao', - component: Layout, - redirect: '/fenxiao/fenxiaoChecks', - name: 'fenxiao', - meta: {title: '分销商城', icon: 'home'}, - children: [ - { - path: 'fenxiaoChecks', - name: 'fenxiaoChecks', - component: () => import('@/views/fenxiao/fenxiaoChecks/index'), - meta: {title: '分销审核列表', icon: 'product-list'} - }, - - { - path: 'addFenxiaoChecks', - name: 'addFenxiaoChecks', - component: () => import('@/views/fenxiao/fenxiaoChecks/add'), - meta: {title: '添加分销审核'}, - hidden: true - }, - { - path: 'updateFenxiaoChecks', - name: 'updateFenxiaoChecks', - component: () => import('@/views/fenxiao/fenxiaoChecks/update'), - meta: {title: '编辑分销审核'}, - hidden: true - }, - - { - path: 'fenxiaoRecords', - name: 'fenxiaoRecords', - component: () => import('@/views/fenxiao/fenxiaoRecords/index'), - meta: {title: '分销记录列表', icon: 'product-list'} - }, - - { - path: 'addFenxiaoRecords', - name: 'addFenxiaoRecords', - component: () => import('@/views/fenxiao/fenxiaoRecords/add'), - meta: {title: '添加分销记录'}, - hidden: true - }, - { - path: 'updateFenxiaoRecords', - name: 'updateFenxiaoRecords', - component: () => import('@/views/fenxiao/fenxiaoRecords/update'), - meta: {title: '编辑分销记录'}, - hidden: true - }, - - { - path: 'fenxiaoUserRelate', - name: 'fenxiaoUserRelate', - component: () => import('@/views/fenxiao/fenxiaoUserRelate/index'), - meta: {title: '分销关系列表', icon: 'product-list'} - }, - - { - path: 'addFenxiaoUserRelate', - name: 'addFenxiaoUserRelate', - component: () => import('@/views/fenxiao/fenxiaoUserRelate/add'), - meta: {title: '添加分销关系'}, - hidden: true - }, - { - path: 'updateFenxiaoUserRelate', - name: 'updateFenxiaoUserRelate', - component: () => import('@/views/fenxiao/fenxiaoUserRelate/update'), - meta: {title: '编辑分销关系'}, - hidden: true - }, - - ] - }, - { - path: '/ums', - component: Layout, - redirect: '/ums/member', - name: 'ums', - meta: {title: '会员', icon: 'home'}, - children: [ - - - { - path: 'member', - name: 'member', - component: () => import('@/views/ums/member/index'), - meta: {title: '会员列表', icon: 'product-list'} - }, - - { - path: 'addMember', - name: 'addMember', - component: () => import('@/views/ums/member/add'), - meta: {title: '添加会员'}, - hidden: true - }, - { - path: 'updateMember', - name: 'updateMember', - component: () => import('@/views/ums/member/update'), - meta: {title: '编辑会员'}, - hidden: true - }, { - path: 'memberLevel', - name: 'memberLevel', - component: () => import('@/views/ums/memberLevel/index'), - meta: {title: '会员等级列表', icon: 'product-list'} - }, - - { - path: 'addMemberLevel', - name: 'addMemberLevel', - component: () => import('@/views/ums/memberLevel/add'), - meta: {title: '添加会员等级'}, - hidden: true - }, - { - path: 'updateMemberLevel', - name: 'updateMemberLevel', - component: () => import('@/views/ums/memberLevel/update'), - meta: {title: '编辑会员等级'}, - hidden: true - }, { - path: 'school', - name: 'school', - component: () => import('@/views/ums/school/index'), - meta: {title: '学校列表', icon: 'product-list'} - }, - - { - path: 'addSchool', - name: 'addSchool', - component: () => import('@/views/ums/school/add'), - meta: {title: '添加学校'}, - hidden: true - }, - { - path: 'updateSchool', - name: 'updateSchool', - component: () => import('@/views/ums/school/update'), - meta: {title: '编辑学校'}, - hidden: true - }, { - path: 'memberBlanceLog', - name: 'memberBlanceLog', - component: () => import('@/views/ums/memberBlanceLog/index'), - meta: {title: '余额日志记录', icon: 'product-list'} - }, { - path: 'memberIntegration', - name: 'memberIntegration', - component: () => import('@/views/ums/memberIntegration/index'), - meta: {title: '积分日志记录', icon: 'product-list'} - } - - - ] - }, - - { - path: '/build', - component: Layout, - redirect: '/build/community', - name: 'build', - meta: {title: '物业管理', icon: 'home'}, - children: [ - { - path: 'companyCommunity', - name: 'companyCommunity', - component: () => import('@/views/build/wuyeCompany/companyCommunity'), - meta: {title: '绑定小区', icon: 'product-list'} - }, - { - path: 'community', - name: 'community', - component: () => import('@/views/build/community/index'), - meta: {title: '小区列表', icon: 'product-list'} - }, - - { - path: 'addCommunity', - name: 'addCommunity', - component: () => import('@/views/build/community/add'), - meta: {title: '添加小区'}, - hidden: true - }, - { - path: 'updateCommunity', - name: 'updateCommunity', - component: () => import('@/views/build/community/update'), - meta: {title: '编辑小区'}, - hidden: true - }, - { - path: 'room', - name: 'room', - component: () => import('@/views/build/room/index'), - meta: {title: '房间列表', icon: 'product-list'} - }, - - { - path: 'addRoom', - name: 'addRoom', - component: () => import('@/views/build/room/add'), - meta: {title: '添加房间'}, - hidden: true - }, - { - path: 'updateRoom', - name: 'updateRoom', - component: () => import('@/views/build/room/update'), - meta: {title: '编辑房间'}, - hidden: true - }, - { - path: 'floor', - name: 'floor', - component: () => import('@/views/build/floor/index'), - meta: {title: '楼栋列表', icon: 'product-list'} - }, - - { - path: 'addFloor', - name: 'addFloor', - component: () => import('@/views/build/floor/add'), - meta: {title: '添加楼栋'}, - hidden: true - }, - { - path: 'updateFloor', - name: 'updateFloor', - component: () => import('@/views/build/floor/update'), - meta: {title: '编辑楼栋'}, - hidden: true - }, - { - path: 'unit', - name: 'unit', - component: () => import('@/views/build/unit/index'), - meta: {title: '单元列表', icon: 'product-list'} - }, - - { - path: 'addUnit', - name: 'addUnit', - component: () => import('@/views/build/unit/add'), - meta: {title: '添加单元'}, - hidden: true - }, - { - path: 'updateUnit', - name: 'updateUnit', - component: () => import('@/views/build/unit/update'), - meta: {title: '编辑单元'}, - hidden: true - }, - { - path: 'owner', - name: 'owner', - component: () => import('@/views/build/owner/index'), - meta: {title: '业主列表', icon: 'product-list'} - }, - - { - path: 'addOwner', - name: 'addOwner', - component: () => import('@/views/build/owner/add'), - meta: {title: '添加业主列表'}, - hidden: true - }, - { - path: 'updateOwner', - name: 'updateOwner', - component: () => import('@/views/build/owner/update'), - meta: {title: '编辑业主列表'}, - hidden: true - }, - - - { - path: 'adv', - name: 'adv', - component: () => import('@/views/build/adv/index'), - meta: {title: '社区广告', icon: 'product-list'} - }, - - { - path: 'addAdv', - name: 'addAdv', - component: () => import('@/views/build/adv/add'), - meta: {title: '添加社区广告'}, - hidden: true - }, - { - path: 'updateAdv', - name: 'updateAdv', - component: () => import('@/views/build/adv/update'), - meta: {title: '编辑社区广告'}, - hidden: true - }, - { - path: 'buildGroup', - name: 'buildGroup', - component: () => import('@/views/build/group/index'), - meta: {title: '社区团购', icon: 'product-list'} - }, - - { - path: 'addBuildGroup', - name: 'addBuildGroup', - component: () => import('@/views/build/group/add'), - meta: {title: '添加社区团购'}, - hidden: true - }, - { - path: 'updateBuildGroup', - name: 'updateBuildGroup', - component: () => import('@/views/build/group/update'), - meta: {title: '编辑社区团购'}, - hidden: true - }, - { - path: 'buildGroupHistory', - name: 'buildGroupHistory', - component: () => import('@/views/build/group/detail'), - meta: {title: '拼团详情'}, - hidden: true - }, - { - path: 'notice', - name: 'notice', - component: () => import('@/views/build/notice/index'), - meta: {title: '社区公告', icon: 'product-list'} - }, - - { - path: 'addNotice', - name: 'addNotice', - component: () => import('@/views/build/notice/add'), - meta: {title: '添加社区公告'}, - hidden: true - }, - { - path: 'updateNotice', - name: 'updateNotice', - component: () => import('@/views/build/notice/update'), - meta: {title: '编辑社区公告'}, - hidden: true - }, - { - path: 'repair', - name: 'repair', - component: () => import('@/views/build/repair/index'), - meta: {title: '社区报修', icon: 'product-list'} - }, - - { - path: 'addRepair', - name: 'addRepair', - component: () => import('@/views/build/repair/add'), - meta: {title: '添加社区报修'}, - hidden: true - }, - { - path: 'updateRepair', - name: 'updateRepair', - component: () => import('@/views/build/repair/update'), - meta: {title: '编辑社区报修'}, - hidden: true - }, - { - path: 'typePrice', - name: 'typePrice', - component: () => import('@/views/build/typePrice/index'), - meta: {title: '费用类型', icon: 'product-list'} - }, - - { - path: 'addTypePrice', - name: 'addTypePrice', - component: () => import('@/views/build/typePrice/add'), - meta: {title: '添加费用类型'}, - hidden: true - }, - { - path: 'updateTypePrice', - name: 'updateTypePrice', - component: () => import('@/views/build/typePrice/update'), - meta: {title: '编辑费用类型'}, - hidden: true - }, - { - path: 'wuyeCompany', - name: 'wuyeCompany', - component: () => import('@/views/build/wuyeCompany/index'), - meta: {title: '物业公司', icon: 'product-list'} - }, - - { - path: 'addWuyeCompany', - name: 'addWuyeCompany', - component: () => import('@/views/build/wuyeCompany/add'), - meta: {title: '添加物业公司'}, - hidden: true - }, - { - path: 'updateWuyeCompany', - name: 'updateWuyeCompany', - component: () => import('@/views/build/wuyeCompany/update'), - meta: {title: '编辑物业公司'}, - hidden: true - }, - { - path: 'wuyePrice', - name: 'wuyePrice', - component: () => import('@/views/build/wuyePrice/index'), - meta: {title: '缴费记录', icon: 'product-list'} - }, - - { - path: 'addWuyePrice', - name: 'addWuyePrice', - component: () => import('@/views/build/wuyePrice/add'), - meta: {title: '添加缴费记录'}, - hidden: true - }, - { - path: 'updateWuyePrice', - name: 'updateWuyePrice', - component: () => import('@/views/build/wuyePrice/update'), - meta: {title: '编辑缴费记录'}, - hidden: true - }, - ] - }, - { - path: '/setting', - component: Layout, - redirect: '/setting/appletSetting', - name: 'setting', - meta: {title: '商城配置', icon: 'home'}, - children: [ - { - path: 'umsMemberTag', - name: 'umsMemberTag', - component: () => import('@/views/ums/umsMemberTag/index'), - meta: {title: '标签管理列表', icon: 'product-list'} - }, - - { - path: 'addUmsMemberTag', - name: 'addUmsMemberTag', - component: () => import('@/views/ums/umsMemberTag/add'), - meta: {title: '添加标签管理'}, - hidden: true - }, - { - path: 'updateUmsMemberTag', - name: 'updateUmsMemberTag', - component: () => import('@/views/ums/umsMemberTag/update'), - meta: {title: '编辑标签管理'}, - hidden: true - }, - - - { - path: 'jifenSetting', - name: 'jifenSetting', - component: () => import('@/views/ums/jifensetting'), - meta: {title: '积分设置', icon: 'order-setting'} - }, - { - path: 'omsPayments', - name: 'omsPayments', - component: () => import('@/views/oms/omsPayments/index'), - meta: {title: '支付配置列表', icon: 'product-list'} - }, - - { - path: 'addOmsPayments', - name: 'addOmsPayments', - component: () => import('@/views/oms/omsPayments/add'), - meta: {title: '添加支付配置'}, - hidden: true - }, - { - path: 'updateOmsPayments', - name: 'updateOmsPayments', - component: () => import('@/views/oms/omsPayments/update'), - meta: {title: '编辑支付配置'}, - hidden: true - }, - { - path: 'orderSetting', - name: 'orderSetting', - component: () => import('@/views/oms/order/setting'), - meta: {title: '订单设置', icon: 'order-setting'} - }, - { - path: 'returnReason', - name: 'returnReason', - component: () => import('@/views/oms/apply/reason'), - meta: {title: '退货原因设置', icon: 'order-return-reason'} - }, - { - path: 'appletSetting', - name: 'appletSetting', - component: () => import('@/views/ums/setting'), - meta: {title: '登录支付设置', icon: 'order-setting'} - }, { - path: 'fenxiaoConfig', - name: 'fenxiaoConfig', - component: () => import('@/views/fenxiao/fenxiaoConfig/index'), - meta: {title: '分销配置列表', icon: 'product-list'} - }, - - { - path: 'addFenxiaoConfig', - name: 'addFenxiaoConfig', - component: () => import('@/views/fenxiao/fenxiaoConfig/add'), - meta: {title: '添加分销配置'}, - hidden: true - }, - { - path: 'updateFenxiaoConfig', - name: 'updateFenxiaoConfig', - component: () => import('@/views/fenxiao/fenxiaoConfig/update'), - meta: {title: '编辑分销配置'}, - hidden: true - }, - ] - }, - - { - path: '/tool', - component: Layout, - redirect: '/tool/email', - name: 'tool', - meta: {title: '工具调试', icon: 'home'}, - children: [ - { - path: 'webLog', - name: 'webLog', - component: () => import('@/views/sys/webLog/index'), - meta: {title: '前台日志列表', icon: 'product-list'} - }, { - path: 'adminLog', - name: 'adminLog', - component: () => import('@/views/sys/adminLog/index'), - meta: {title: '后台日志列表', icon: 'product-list'} - }, { - path: 'adminLogStatic', - name: 'adminLogStatic', - component: () => import('@/views/sys/adminLog/adminLogStatic'), - meta: {title: '后台日志列表', icon: 'product-list'} - }, - { - path: 'webLogStatic', - name: 'webLogStatic', - component: () => import('@/views/sys/webLog/webLogStatic'), - meta: {title: '后台日志列表', icon: 'product-list'} - }, - { - path: 'alipay', - name: 'alipay', - component: () => - import('@/views/sys/aliPay/index'), - meta: - { - title: '支付宝测试', - icon: 'dict-update' - }, - hidden: true - }, - { - path: 'email', - name: 'email', - component: () => - import('@/views/sys/email/index'), - meta: - { - title: '邮件测试', - icon: 'dict-update' - }, - hidden: true - }, - ] - }, - { - path: '/store', - component: Layout, - redirect: '/store/admin', - name: 'store', - meta: {title: '店铺管理', icon: 'home'}, - children: [ - { - path: 'sysStoreComment', - name: 'sysStoreComment', - component: () => import('@/views/sys/sysStoreComment/index'), - meta: {title: '商户评价列表', icon: 'product-list'} - }, - - - - { - path: 'sysStoreClass', - name: 'sysStoreClass', - component: () => import('@/views/sys/sysStoreClass/index'), - meta: {title: '商户分类列表', icon: 'product-list'} - }, - - { - path: 'addSysStoreClass', - name: 'addSysStoreClass', - component: () => import('@/views/sys/sysStoreClass/add'), - meta: {title: '添加商户分类'}, - hidden: true - }, - { - path: 'updateSysStoreClass', - name: 'updateSysStoreClass', - component: () => import('@/views/sys/sysStoreClass/update'), - meta: {title: '编辑商户分类'}, - hidden: true - }, -{ -path: 'sysStoreCash', -name: 'sysStoreCash', -component: () => import('@/views/sys/sysStoreCash/index'), -meta: {title: '商家提现', icon: 'product-list'} -}, - -{ -path: 'addSysStoreCash', -name: 'addSysStoreCash', -component: () => import('@/views/sys/sysStoreCash/add'), -meta: {title: '添加商家提现'}, -hidden: true -}, -{ -path: 'updateSysStoreCash', -name: 'updateSysStoreCash', -component: () => import('@/views/sys/sysStoreCash/update'), -meta: {title: '编辑商家提现'}, -hidden: true -}, - -{ -path: 'sysStoreDepositLog', -name: 'sysStoreDepositLog', -component: () => import('@/views/sys/sysStoreDepositLog/index'), -meta: {title: '商家预存款', icon: 'product-list'} -}, - -{ -path: 'addSysStoreDepositLog', -name: 'addSysStoreDepositLog', -component: () => import('@/views/sys/sysStoreDepositLog/add'), -meta: {title: '添加商家预存款'}, -hidden: true -}, -{ -path: 'updateSysStoreDepositLog', -name: 'updateSysStoreDepositLog', -component: () => import('@/views/sys/sysStoreDepositLog/update'), -meta: {title: '编辑商家预存款'}, -hidden: true -}, - -{ -path: 'store', -name: 'store', -component: () => import('@/views/sys/store/index'), -meta: {title: '商家', icon: 'product-list'} -}, - -{ -path: 'addStore', -name: 'addStore', -component: () => import('@/views/sys/store/add'), -meta: {title: '添加商家'}, -hidden: true -}, -{ -path: 'updateStore', -name: 'updateStore', -component: () => import('@/views/sys/store/update'), -meta: {title: '编辑商家'}, -hidden: true -}, -{ -path: 'adminDayStatics', -name: 'adminDayStatics', -component: () => import('@/views/sys/adminDayStatics/index'), -meta: {title: '商户日统计列表', icon: 'product-list'} -}, -{ -path: 'sysStoreRank', -name: 'sysStoreRank', -component: () => import('@/views/sys/sysStoreRank/index'), -meta: {title: '商户等级列表', icon: 'product-list'} -}, - -{ -path: 'addSysStoreRank', -name: 'addSysStoreRank', -component: () => import('@/views/sys/sysStoreRank/add'), -meta: {title: '添加商户等级'}, -hidden: true -}, -{ -path: 'updateSysStoreRank', -name: 'updateSysStoreRank', -component: () => import('@/views/sys/sysStoreRank/update'), -meta: {title: '编辑商户等级'}, -hidden: true -}, - ] - }, - { - path: '/sys', - component: Layout, - redirect: '/sys/admin', - name: 'sys', - meta: {title: '系统管理', icon: 'home'}, - children: [ - - - { - path: 'admin', - name: 'admin', - component: () => import('@/views/sys/admin/index'), - meta: {title: '用户列表', icon: 'product-list'} - }, - { - path: 'userCommunity', - name: 'userCommunity', - component: () => import('@/views/sys/admin/userCommunity'), - meta: {title: '绑定小区', icon: 'product-list'} - }, - { - path: 'gen', - name: 'gen', - component: () => import('@/views/sys/gen/index'), - meta: {title: '代码生成', icon: 'product-list'} - }, { - path: 'permissionCategory', - name: 'permissionCategory', - component: () => import('@/views/sys/permissionCategory/index'), - meta: {title: '菜单类别列表}'} - }, - { - path: 'addPermissionCategory', - name: 'addPermissionCategory', - component: () => import('@/views/sys/permissionCategory/add'), - meta: {title: '添加菜单类别', icon: 'permissionCategory-add'}, - hidden: true - }, - { - path: 'updatePermissionCategory', - name: 'updatePermissionCategory', - component: () => import('@/views/sys/permissionCategory/update'), - meta: {title: '修改菜单类别', icon: 'permissionCategory-update'}, - hidden: true - }, - { - path: 'addAdmin', - name: 'addAdmin', - component: () => import('@/views/sys/admin/add'), - meta: {title: '添加用户'}, - hidden: true - }, - { - path: 'updateAdmin', - name: 'updateAdmin', - component: () => import('@/views/sys/admin/update'), - meta: {title: '编辑用户'}, - hidden: true - }, { - path: 'role', - name: 'role', - component: () => import('@/views/sys/role/index'), - meta: {title: '角色列表', icon: 'product-list'} - }, - { - path: 'addRole', - name: 'addRole', - component: () => import('@/views/sys/role/add'), - meta: {title: '添加角色'}, - hidden: true - }, - { - path: 'updateRole', - name: 'updateRole', - component: () => import('@/views/sys/role/update'), - meta: {title: '编辑角色'}, - hidden: true - }, { - path: 'permission', - name: 'permission', - component: () => import('@/views/sys/permission/index'), - meta: {title: '权限列表', icon: 'product-list'} - }, - { - path: 'addPermission', - name: 'addPermission', - component: () => import('@/views/sys/permission/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updatePermission', - name: 'updatePermission', - component: () => import('@/views/sys/permission/update'), - meta: {title: '编辑权限'}, - hidden: true - }, - { - path: 'area', - name: 'area', - component: () => import('@/views/sys/area/index'), - meta: {title: '区域列表', icon: 'product-list'} - }, - { - path: 'addArea', - name: 'addArea', - component: () => import('@/views/sys/area/add'), - meta: {title: '添加区域'}, - hidden: true - }, - { - path: 'updateArea', - name: 'updateArea', - component: () => import('@/views/sys/area/update'), - meta: {title: '编辑区域'}, - hidden: true - }, - { - path: 'dict', - name: 'dict', - component: () => import('@/views/sys/dict/index'), - meta: - { - title: '系统配置信息表列表}' - } - }, - { - path: 'addDict', - name: 'addDict', - component: () => import('@/views/sys/dict/add'), - meta: { - title: '添加系统配置信息表', - icon: 'dict-add' - } - }, - { - path: 'updateDict', - name: 'updateDict', - component: () => - import('@/views/sys/dict/update'), - meta: - { - title: '修改系统配置信息表', - icon: 'dict-update' - }, - hidden: true - }, { - path: 'job', - name: 'job', - component: () => import('@/views/sys/job/index'), - meta: - { - title: '定时任务息表列表' - } - }, { - path: 'joblog', - name: 'joblog', - component: () => import('@/views/sys/job/joblog'), - meta: - { - title: '定时任务息表列表' - } - }, - { - path: 'addJob', - name: 'addJob', - component: () => import('@/views/sys/job/add'), - meta: { - title: '添加定时任务', - icon: 'dict-add' - } - }, - { - path: 'updateJob', - name: 'updateJob', - component: () => - import('@/views/sys/job/update'), - meta: - { - title: '修改定时任务', - icon: 'dict-update' - }, - hidden: true - }, - - ] - }, - { - path: '/cms', - component: Layout, - redirect: '/cms/help', - name: 'cms', - meta: {title: '内容管理', icon: 'home'}, - children: [ - { - path: 'cmsZhaoPin', - name: 'cmsZhaoPin', - component: () => import('@/views/cms/cmsZhaoPin/index'), - meta: {title: '招聘管理列表', icon: 'product-list'} - }, - - { - path: 'addCmsZhaoPin', - name: 'addCmsZhaoPin', - component: () => import('@/views/cms/cmsZhaoPin/add'), - meta: {title: '添加招聘管理'}, - hidden: true - }, - { - path: 'updateCmsZhaoPin', - name: 'updateCmsZhaoPin', - component: () => import('@/views/cms/cmsZhaoPin/update'), - meta: {title: '编辑招聘管理'}, - hidden: true - }, - { - path: 'help', - name: 'help', - component: () => import('@/views/cms/help/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addHelp', - name: 'addHelp', - component: () => import('@/views/cms/help/add'), - meta: {title: '添加帮助'}, - hidden: true - }, - { - path: 'updateHelp', - name: 'updateHelp', - component: () => import('@/views/cms/help/update'), - meta: {title: '编辑帮助'}, - hidden: true - }, - { - path: 'subject', - name: 'subject', - component: () => import('@/views/cms/subject/index'), - meta: {title: '专题列表', icon: 'product-list'} - }, { - path: 'addSubject', - name: 'addSubject', - component: () => import('@/views/cms/subject/add'), - meta: {title: '添加专题'}, - hidden: true - }, - { - path: 'updateSubject', - name: 'updateSubject', - component: () => import('@/views/cms/subject/update'), - meta: {title: '编辑专题'}, - hidden: true - } - , - { - path: 'helpCategory', - name: 'helpCategory', - component: () => import('@/views/cms/helpCategory/index'), - meta: {title: '专题分类列表', icon: 'product-list'} - }, { - path: 'addHelpCategory', - name: 'addHelpCategory', - component: () => import('@/views/cms/helpCategory/add'), - meta: {title: '添加专题分类'}, - hidden: true - }, - { - path: 'updateHelpCategory', - name: 'updateHelpCategory', - component: () => import('@/views/cms/helpCategory/update'), - meta: {title: '编辑专题分类'}, - hidden: true - } - , - { - path: 'memberReport', - name: 'memberReport', - component: () => import('@/views/cms/memberReport/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addMemberReport', - name: 'addMemberReport', - component: () => import('@/views/cms/memberReport/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updateMemberReport', - name: 'updateMemberReport', - component: () => import('@/views/cms/memberReport/update'), - meta: {title: '编辑权限'}, - hidden: true - } - , - { - path: 'prefrenceArea', - name: 'prefrenceArea', - component: () => import('@/views/cms/prefrenceArea/index'), - meta: {title: '偏爱专区列表', icon: 'product-list'} - }, { - path: 'addPrefrenceArea', - name: 'addPrefrenceArea', - component: () => import('@/views/cms/prefrenceArea/add'), - meta: {title: '添加偏爱专区'}, - hidden: true - }, - { - path: 'updatePrefrenceArea', - name: 'updatePrefrenceArea', - component: () => import('@/views/cms/prefrenceArea/update'), - meta: {title: '编辑偏爱专区'}, - hidden: true - } - - , - { - path: 'subjectCategory', - name: 'subjectCategory', - component: () => import('@/views/cms/subjectCategory/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addSubjectCategory', - name: 'addSubjectCategory', - component: () => import('@/views/cms/subjectCategory/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updateSubjectCategory', - name: 'updateSubjectCategory', - component: () => import('@/views/cms/subjectCategory/update'), - meta: {title: '编辑权限'}, - hidden: true - } - - , - { - path: 'subjectComment', - name: 'subjectComment', - component: () => import('@/views/cms/subjectComment/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addSubjectComment', - name: 'addSubjectComment', - component: () => import('@/views/cms/subjectComment/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updateSubjectComment', - name: 'updateSubjectComment', - component: () => import('@/views/cms/subjectComment/update'), - meta: {title: '编辑权限'}, - hidden: true - } - - , { - path: 'topic', - name: 'topic', - component: () => import('@/views/cms/topic/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addTopic', - name: 'addTopic', - component: () => import('@/views/cms/topic/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updateTopic', - name: 'updateTopic', - component: () => import('@/views/cms/topic/update'), - meta: {title: '编辑权限'}, - hidden: true - } - - , { - path: 'topicCategory', - name: 'topicCategory', - component: () => import('@/views/cms/topicCategory/index'), - meta: {title: '帮助列表', icon: 'product-list'} - }, { - path: 'addTopicCategory', - name: 'addTopicCategory', - component: () => import('@/views/cms/topicCategory/add'), - meta: {title: '添加权限'}, - hidden: true - }, - { - path: 'updateTopicCategory', - name: 'updateTopicCategory', - component: () => import('@/views/cms/topicCategory/update'), - meta: {title: '编辑权限'}, - hidden: true - } - - , { - path: 'topicComment', - name: 'topicComment', - component: () => import('@/views/cms/topicComment/index'), - meta: {title: '帮助列表', icon: 'product-list'} - } - - ] - }, - - {path: '*', redirect: '/404', hidden: true} +export const constantRouterMap = [{ + path: '/acceptStore', + component: () => import('@/views/login/acceptStore'), + hidden: true + }, + { + path: '/login', + component: () => import('@/views/login/index'), + hidden: true + }, + { + path: '/404', + component: () => import('@/views/404'), + hidden: true + }, + { + path: '/store', + component: () => import('@/views/home/store'), + hidden: true + }, + { + path: '/', + component: Layout, + redirect: '/home', + children: [{ + path: 'home', + name: 'home', + component: () => import('@/views/home/index'), + meta: { + title: '首页', + icon: 'home' + } + }] + }, + { + path: '/@/components/templatePage', + name: 'templateComponents', + meta: { + title: '组件测试', + showflg: true, + showrole: true, + roles: "-2", + level1: 'common', + }, + component: () => + import('@/components/templatePage'), + }, + { + path: '/pms', + component: Layout, + redirect: '/pms/product', + name: 'pms', + meta: { + title: '商品', + icon: 'product' + }, + children: [{ + path: 'product', + name: 'product', + component: () => import('@/views/pms/product/index'), + meta: { + title: '商品列表', + icon: 'product-list' + } + }, + { + path: 'addProduct', + name: 'addProduct', + component: () => import('@/views/pms/product/add'), + meta: { + title: '添加商品', + icon: 'product-add' + } + }, + { + path: 'updateProduct', + name: 'updateProduct', + component: () => import('@/views/pms/product/update'), + meta: { + title: '修改商品', + icon: 'product-add' + }, + hidden: true + }, + { + path: 'productRecycle', + name: 'productRecycle', + component: () => import('@/views/pms/product/index'), + meta: { + title: '商品回收站', + icon: 'product-recycle' + }, + hidden: true + }, + { + path: 'productComment', + name: 'productComment', + component: () => import('@/views/pms/product/index'), + meta: { + title: '商品评价', + icon: 'product-comment' + }, + hidden: true + }, + { + path: 'productCate', + name: 'productCate', + component: () => import('@/views/pms/productCate/index'), + meta: { + title: '商品分类', + icon: 'product-cate' + } + }, + { + path: 'addProductCate', + name: 'addProductCate', + component: () => import('@/views/pms/productCate/add'), + meta: { + title: '添加商品分类' + }, + hidden: true + }, + { + path: 'updateProductCate', + name: 'updateProductCate', + component: () => import('@/views/pms/productCate/update'), + meta: { + title: '修改商品分类' + }, + hidden: true + }, + { + path: 'productAttr', + name: 'productAttr', + component: () => import('@/views/pms/productAttr/index'), + meta: { + title: '商品类型', + icon: 'product-attr' + } + }, + { + path: 'productAttrList', + name: 'productAttrList', + component: () => import('@/views/pms/productAttr/productAttrList'), + meta: { + title: '商品属性列表' + }, + hidden: true + }, + { + path: 'addProductAttr', + name: 'addProductAttr', + component: () => import('@/views/pms/productAttr/addProductAttr'), + meta: { + title: '添加商品属性' + }, + hidden: true + }, + { + path: 'updateProductAttr', + name: 'updateProductAttr', + component: () => import('@/views/pms/productAttr/updateProductAttr'), + meta: { + title: '修改商品属性' + }, + hidden: true + }, + { + path: 'brand', + name: 'brand', + component: () => import('@/views/pms/brand/index'), + meta: { + title: '品牌管理', + icon: 'product-brand' + } + }, + { + path: 'addBrand', + name: 'addBrand', + component: () => import('@/views/pms/brand/add'), + meta: { + title: '添加品牌' + }, + hidden: true + }, + { + path: 'updateBrand', + name: 'updateBrand', + component: () => import('@/views/pms/brand/update'), + meta: { + title: '编辑品牌' + }, + hidden: true + }, + //小程序首页分类图标管理 + { + path: 'smallNaviconCategory', + name: 'smallNaviconCategory', + component: () => import('@/views/pms/smallNaviconCategory/index'), + meta: { + title: '小程序首页nav管理列表}' + } + }, + { + path: 'addSmallNaviconCategory', + name: 'addSmallNaviconCategory', + component: () => import('@/views/pms/smallNaviconCategory/add'), + meta: { + title: '添加小程序首页nav管理', + icon: 'smallNaviconCategory-add' + } + }, + { + path: 'updateSmallNaviconCategory', + name: 'updateSmallNaviconCategory', + component: () => import('@/views/pms/smallNaviconCategory/update'), + meta: { + title: '修改小程序首页nav管理', + icon: 'smallNaviconCategory-update' + }, + hidden: true + }, + { + path: 'PmsGifts', + name: 'PmsGifts', + component: () => import('@/views/pms/Gifts/index'), + meta: { + title: '赠品管理', + icon: 'product-list' + } + }, + + { + path: 'addPmsGifts', + name: 'addPmsGifts', + component: () => import('@/views/pms/Gifts/add'), + meta: { + title: '添加赠品' + }, + hidden: true + }, + { + path: 'updatePmsGifts', + name: 'updatePmsGifts', + component: () => import('@/views/pms/Gifts/update'), + meta: { + title: '编辑赠品' + }, + hidden: true + }, + { + path: 'PmsGiftsCategory', + name: 'PmsGiftsCategory', + component: () => import('@/views/pms/GiftsCategory/index'), + meta: { + title: '赠品分类', + icon: 'product-list' + } + }, + + { + path: 'addPmsGiftsCategory', + name: 'addPmsGiftsCategory', + component: () => import('@/views/pms/GiftsCategory/add'), + meta: { + title: '添加赠品分类' + }, + hidden: true + }, + { + path: 'updatePmsGiftsCategory', + name: 'updatePmsGiftsCategory', + component: () => import('@/views/pms/GiftsCategory/update'), + meta: { + title: '编辑赠品分类' + }, + hidden: true + }, + { + path: 'ProductConsult', + name: 'ProductConsult', + component: () => import('@/views/pms/productConsult/index'), + meta: { + title: '商品评论' + }, + hidden: true + } + + ] + }, + { + path: '/oms', + component: Layout, + redirect: '/oms/order', + name: 'oms', + meta: { + title: '订单', + icon: 'order' + }, + children: [{ + path: 'omsCompanyAddress', + name: 'omsCompanyAddress', + component: () => import('@/views/oms/omsCompanyAddress/index'), + meta: { + title: '发货地址列表', + icon: 'product-list' + } + }, + + { + path: 'addOmsCompanyAddress', + name: 'addOmsCompanyAddress', + component: () => import('@/views/oms/omsCompanyAddress/add'), + meta: { + title: '添加发货地址' + }, + hidden: true + }, + { + path: 'updateOmsCompanyAddress', + name: 'updateOmsCompanyAddress', + component: () => import('@/views/oms/omsCompanyAddress/update'), + meta: { + title: '编辑发货地址' + }, + hidden: true + }, + + + { + path: 'order', + name: 'order', + component: () => import('@/views/oms/order/index1'), + meta: { + title: '订单列表', + icon: 'product-list' + } + }, + { + path: 'orderDetail', + name: 'orderDetail', + component: () => import('@/views/oms/order/orderDetail'), + meta: { + title: '订单详情' + }, + hidden: true + }, + { + path: 'deliverOrderList', + name: 'deliverOrderList', + component: () => import('@/views/oms/order/deliverOrderList'), + meta: { + title: '发货列表' + }, + hidden: true + }, + + { + path: 'returnApply', + name: 'returnApply', + component: () => import('@/views/oms/apply/index'), + meta: { + title: '退货申请处理', + icon: 'order-return' + } + }, + + { + path: 'returnApplyDetail', + name: 'returnApplyDetail', + component: () => import('@/views/oms/apply/applyDetail'), + meta: { + title: '退货原因详情' + }, + hidden: true + }, + { + path: 'OrderProductConsult', + name: 'OrderProductConsult', + component: () => import('@/views/oms/orderConsult/index'), + meta: { + title: '订单评论' + }, + hidden: true + }, + { + path: 'FeightTemplate', + name: 'FeightTemplate', + component: () => import('@/views/pms/feightTemplate/index'), + meta: { + title: '运费模版', + icon: 'product-list' + } + }, + + { + path: 'addFeightTemplate', + name: 'addFeightTemplate', + component: () => import('@/views/pms/feightTemplate/add'), + meta: { + title: '添加运费模版' + }, + hidden: true + }, + { + path: 'updateFeightTemplate', + name: 'updateFeightTemplate', + component: () => import('@/views/pms/feightTemplate/update'), + meta: { + title: '编辑运费模版' + }, + hidden: true + } + + ] + }, + { + path: '/marking', + component: Layout, + redirect: '/marking/smsDiyPage', + name: 'marking', + meta: { + title: '运营管理', + icon: 'sms' + }, + children: [{ + path: 'sysShop', + name: 'sysShop', + component: () => import('@/views/sys/sysShop/index'), + meta: { + title: '门店管理列表', + icon: 'product-list' + } + }, + + { + path: 'addSysShop', + name: 'addSysShop', + component: () => import('@/views/sys/sysShop/add'), + meta: { + title: '添加门店管理' + }, + hidden: true + }, + { + path: 'updateSysShop', + name: 'updateSysShop', + component: () => import('@/views/sys/sysShop/update'), + meta: { + title: '编辑门店管理' + }, + hidden: true + }, + { + path: 'smsContentMsg', + name: 'smsContentMsg', + component: () => import('@/views/sms/smsContentMsg/index'), + meta: { + title: '短信记录列表', + icon: 'product-list' + } + }, + { + path: 'smsContent', + name: 'smsContent', + component: () => import('@/views/sms/smsContent/index'), + meta: { + title: '短信模版列表', + icon: 'product-list' + } + }, + + { + path: 'addSmsContent', + name: 'addSmsContent', + component: () => import('@/views/sms/smsContent/add'), + meta: { + title: '添加短信模版' + }, + hidden: true + }, + { + path: 'updateSmsContent', + name: 'updateSmsContent', + component: () => import('@/views/sms/smsContent/update'), + meta: { + title: '编辑短信模版' + }, + hidden: true + }, + { + path: 'smsDiyPage', + name: 'smsDiyPage', + component: () => import('@/views/sms/page/index'), + meta: { + title: '添加页面模版', + icon: 'sms-flash' + } + }, + { + path: 'smsDiypageTemplateCategory', + name: 'smsDiypageTemplateCategory', + component: () => import('@/views/sms/smsDiypageTemplateCategory/index'), + meta: { + title: '页面模版列表', + icon: 'product-list' + } + }, + + { + path: 'addSmsDiypageTemplateCategory', + name: 'addSmsDiypageTemplateCategory', + component: () => import('@/views/sms/smsDiypageTemplateCategory/add'), + meta: { + title: '添加页面模版' + }, + hidden: true + }, + { + path: 'updateSmsDiypageTemplateCategory', + name: 'updateSmsDiypageTemplateCategory', + component: () => import('@/views/sms/smsDiypageTemplateCategory/update'), + meta: { + title: '编辑页面模版' + }, + hidden: true + }, + { + path: 'homeBrand', + name: 'homeBrand', + component: () => import('@/views/sms/brand/index'), + meta: { + title: '品牌推荐', + icon: 'product-brand' + } + }, + { + path: 'homeNew', + name: 'homeNew', + component: () => import('@/views/sms/new/index'), + meta: { + title: '新品推荐', + icon: 'sms-new' + } + }, + { + path: 'homeHot', + name: 'homeHot', + component: () => import('@/views/sms/hot/index'), + meta: { + title: '人气推荐', + icon: 'sms-hot' + } + }, + { + path: 'homeSubject', + name: 'homeSubject', + component: () => import('@/views/sms/subject/index'), + meta: { + title: '专题推荐', + icon: 'sms-subject' + } + }, + { + path: 'homeAdvertise', + name: 'homeAdvertise', + component: () => import('@/views/sms/advertise/index'), + meta: { + title: '广告列表', + icon: 'sms-ad' + } + }, + { + path: 'addHomeAdvertise', + name: 'addHomeAdvertise', + component: () => import('@/views/sms/advertise/add'), + meta: { + title: '添加广告' + }, + hidden: true + }, + { + path: 'updateHomeAdvertise', + name: 'updateHomeAdvertise', + component: () => import('@/views/sms/advertise/update'), + meta: { + title: '编辑广告' + }, + hidden: true + }, + + ] + }, + { + path: '/sms', + component: Layout, + redirect: '/sms/coupon', + name: 'sms', + meta: { + title: '营销', + icon: 'sms' + }, + children: [ + + + { + path: 'flashPromotion', + name: 'flashPromotion', + component: () => import('@/views/sms/flash/index'), + meta: { + title: '秒杀活动列表', + icon: 'sms-flash' + } + }, + { + path: 'flashSession', + name: 'flashSession', + component: () => import('@/views/sms/flash/sessionList'), + meta: { + title: '秒杀时间段列表' + }, + hidden: true + }, + { + path: 'selectSession', + name: 'selectSession', + component: () => import('@/views/sms/flash/selectSessionList'), + meta: { + title: '秒杀时间段选择' + }, + hidden: true + }, + { + path: 'flashProductRelation', + name: 'flashProductRelation', + component: () => import('@/views/sms/flash/productRelationList'), + meta: { + title: '秒杀商品列表' + }, + hidden: true + }, + { + path: 'coupon', + name: 'coupon', + component: () => import('@/views/sms/coupon/index'), + meta: { + title: '优惠券列表', + icon: 'sms-coupon' + } + }, + { + path: 'addCoupon', + name: 'addCoupon', + component: () => import('@/views/sms/coupon/add'), + meta: { + title: '添加优惠券' + }, + hidden: true + }, + { + path: 'updateCoupon', + name: 'updateCoupon', + component: () => import('@/views/sms/coupon/update'), + meta: { + title: '修改优惠券' + }, + hidden: true + }, + { + path: 'couponHistory', + name: 'couponHistory', + component: () => import('@/views/sms/coupon/history'), + meta: { + title: '优惠券领取详情' + }, + hidden: true + }, + + { + path: 'group', + name: 'group', + component: () => import('@/views/sms/group/index'), + meta: { + title: '拼团列表', + icon: 'product-list' + } + }, + { + path: 'groupHistory', + name: 'groupHistory', + component: () => import('@/views/sms/group/detail'), + meta: { + title: '拼团详情' + }, + hidden: true + }, + { + path: 'addGroup', + name: 'addGroup', + component: () => import('@/views/sms/group/add'), + meta: { + title: '添加拼团' + }, + hidden: true + }, + { + path: 'updateGroup', + name: 'updateGroup', + component: () => import('@/views/sms/group/update'), + meta: { + title: '编辑拼团' + }, + hidden: true + }, + { + path: 'redPacket', + name: 'redPacket', + component: () => import('@/views/sms/redPacket/index'), + meta: { + title: '红包列表', + icon: 'product-list' + } + }, + + { + path: 'addRedPacket', + name: 'addRedPacket', + component: () => import('@/views/sms/redPacket/add'), + meta: { + title: '添加红包' + }, + hidden: true + }, + { + path: 'updateRedPacket', + name: 'updateRedPacket', + component: () => import('@/views/sms/redPacket/update'), + meta: { + title: '编辑红包' + }, + hidden: true + }, + { + path: 'basicMark', + name: 'basicMark', + component: () => import('@/views/sms/basicMark/index'), + meta: { + title: '基本营销', + icon: 'product-list' + } + }, + + { + path: 'addBasicMark', + name: 'addBasicMark', + component: () => import('@/views/sms/basicMark/add'), + meta: { + title: '添加基本营销' + }, + hidden: true + }, + { + path: 'updateBasicMark', + name: 'updateBasicMark', + component: () => import('@/views/sms/basicMark/update'), + meta: { + title: '编辑基本营销' + }, + hidden: true + }, + { + path: 'smsBasicGifts', + name: 'smsBasicGifts', + component: () => import('@/views/sms/SmsBasicGifts/index'), + meta: { + title: '赠品营销', + icon: 'product-list' + } + }, + + { + path: 'addSmsBasicGifts', + name: 'addSmsBasicGifts', + component: () => import('@/views/sms/SmsBasicGifts/add'), + meta: { + title: '添加赠品营销' + }, + hidden: true + }, + { + path: 'updateSmsBasicGifts', + name: 'updateSmsBasicGiftsk', + component: () => import('@/views/sms/SmsBasicGifts/update'), + meta: { + title: '编辑赠品营销' + }, + hidden: true + }, + { + path: 'groupActivity', + name: 'groupActivity', + component: () => import('@/views/sms/groupActivity/index'), + meta: { + title: '团购管理', + icon: 'product-list' + } + }, + + { + path: 'addgroupActivity', + name: 'addgroupActivity', + component: () => import('@/views/sms/groupActivity/add'), + meta: { + title: '添加团购' + }, + hidden: true + }, + { + path: 'updategroupActivity', + name: 'updategroupActivity', + component: () => import('@/views/sms/groupActivity/update'), + meta: { + title: '编辑团购' + }, + hidden: true + }, { + path: 'smsBargainConfig', + name: 'smsBargainConfig', + component: () => import('@/views/sms/smsBargainConfig/index'), + meta: { + title: '砍价商品列表', + icon: 'product-list' + } + }, + + { + path: 'addSmsBargainConfig', + name: 'addSmsBargainConfig', + component: () => import('@/views/sms/smsBargainConfig/add'), + meta: { + title: '添加砍价商品' + }, + hidden: true + }, + { + path: 'updateSmsBargainConfig', + name: 'updateSmsBargainConfig', + component: () => import('@/views/sms/smsBargainConfig/update'), + meta: { + title: '编辑砍价商品' + }, + hidden: true + }, { + path: 'smsDraw', + name: 'smsDraw', + component: () => import('@/views/sms/draw/index'), + meta: { + title: '抽奖活动', + icon: 'product-list' + } + }, { + path: 'addsmsDraw', + name: 'addsmsDraw', + component: () => import('@/views/sms/draw/add'), + meta: { + title: '添加抽奖' + }, + hidden: true + }, + { + path: 'updatesmsDraw', + name: 'updatesmsDraw', + component: () => import('@/views/sms/draw/update'), + meta: { + title: '编辑抽奖' + }, + hidden: true + }, { + path: 'smsPaimai', + name: 'smsPaimai', + component: () => import('@/views/sms/paimai/index'), + meta: { + title: '竞拍活动', + icon: 'product-list' + } + }, { + path: 'addsmsPaimai', + name: 'addsmsPaimai', + component: () => import('@/views/sms/paimai/add'), + meta: { + title: '添加竞拍' + }, + hidden: true + }, + { + path: 'updatesmsPaimai', + name: 'updatesmsPaimai', + component: () => import('@/views/sms/paimai/update'), + meta: { + title: '编辑竞拍' + }, + hidden: true + } + ] + }, + + + { + path: '/jifen', + component: Layout, + redirect: '/jifen/jifenCoupon', + name: 'jifen', + meta: { + title: '积分商城', + icon: 'home' + }, + children: [ + + { + path: 'jifenCoupon', + name: 'jifenCoupon', + component: () => import('@/views/jifen/jifenCoupon/index'), + meta: { + title: '积分券列表', + icon: 'product-list' + } + }, + + { + path: 'addJifenCoupon', + name: 'addJifenCoupon', + component: () => import('@/views/jifen/jifenCoupon/add'), + meta: { + title: '添加积分券' + }, + hidden: true + }, + { + path: 'updateJifenCoupon', + name: 'updateJifenCoupon', + component: () => import('@/views/jifen/jifenCoupon/update'), + meta: { + title: '编辑积分券' + }, + hidden: true + }, + { + path: 'jifenDonateRule', + name: 'jifenDonateRule', + component: () => import('@/views/jifen/jifenDonateRule/index'), + meta: { + title: '积分赠送规则列表', + icon: 'product-list' + } + }, + + { + path: 'addJifenDonateRule', + name: 'addJifenDonateRule', + component: () => import('@/views/jifen/jifenDonateRule/add'), + meta: { + title: '添加积分赠送规则' + }, + hidden: true + }, + { + path: 'updateJifenDonateRule', + name: 'updateJifenDonateRule', + component: () => import('@/views/jifen/jifenDonateRule/update'), + meta: { + title: '编辑积分赠送规则' + }, + hidden: true + }, + { + path: 'jifenSignRule', + name: 'jifenSignRule', + component: () => import('@/views/jifen/jifenSignRule/index'), + meta: { + title: '积分签到规则列表', + icon: 'product-list' + } + }, + + { + path: 'addJifenSignRule', + name: 'addJifenSignRule', + component: () => import('@/views/jifen/jifenSignRule/add'), + meta: { + title: '添加积分签到规则' + }, + hidden: true + }, + { + path: 'updateJifenSignRule', + name: 'updateJifenSignRule', + component: () => import('@/views/jifen/jifenSignRule/update'), + meta: { + title: '编辑积分签到规则' + }, + hidden: true + }, + + + ] + }, + { + path: '/fenxiao', + component: Layout, + redirect: '/fenxiao/fenxiaoChecks', + name: 'fenxiao', + meta: { + title: '分销商城', + icon: 'home' + }, + children: [{ + path: 'fenxiaoChecks', + name: 'fenxiaoChecks', + component: () => import('@/views/fenxiao/fenxiaoChecks/index'), + meta: { + title: '分销审核列表', + icon: 'product-list' + } + }, + + { + path: 'addFenxiaoChecks', + name: 'addFenxiaoChecks', + component: () => import('@/views/fenxiao/fenxiaoChecks/add'), + meta: { + title: '添加分销审核' + }, + hidden: true + }, + { + path: 'updateFenxiaoChecks', + name: 'updateFenxiaoChecks', + component: () => import('@/views/fenxiao/fenxiaoChecks/update'), + meta: { + title: '编辑分销审核' + }, + hidden: true + }, + + { + path: 'fenxiaoRecords', + name: 'fenxiaoRecords', + component: () => import('@/views/fenxiao/fenxiaoRecords/index'), + meta: { + title: '分销记录列表', + icon: 'product-list' + } + }, + + { + path: 'addFenxiaoRecords', + name: 'addFenxiaoRecords', + component: () => import('@/views/fenxiao/fenxiaoRecords/add'), + meta: { + title: '添加分销记录' + }, + hidden: true + }, + { + path: 'updateFenxiaoRecords', + name: 'updateFenxiaoRecords', + component: () => import('@/views/fenxiao/fenxiaoRecords/update'), + meta: { + title: '编辑分销记录' + }, + hidden: true + }, + + { + path: 'fenxiaoUserRelate', + name: 'fenxiaoUserRelate', + component: () => import('@/views/fenxiao/fenxiaoUserRelate/index'), + meta: { + title: '分销关系列表', + icon: 'product-list' + } + }, + + { + path: 'addFenxiaoUserRelate', + name: 'addFenxiaoUserRelate', + component: () => import('@/views/fenxiao/fenxiaoUserRelate/add'), + meta: { + title: '添加分销关系' + }, + hidden: true + }, + { + path: 'updateFenxiaoUserRelate', + name: 'updateFenxiaoUserRelate', + component: () => import('@/views/fenxiao/fenxiaoUserRelate/update'), + meta: { + title: '编辑分销关系' + }, + hidden: true + }, + + ] + }, + { + path: '/ums', + component: Layout, + redirect: '/ums/member', + name: 'ums', + meta: { + title: '会员', + icon: 'home' + }, + children: [ + + + { + path: 'member', + name: 'member', + component: () => import('@/views/ums/member/index'), + meta: { + title: '会员列表', + icon: 'product-list' + } + }, + + { + path: 'addMember', + name: 'addMember', + component: () => import('@/views/ums/member/add'), + meta: { + title: '添加会员' + }, + hidden: true + }, + { + path: 'updateMember', + name: 'updateMember', + component: () => import('@/views/ums/member/update'), + meta: { + title: '编辑会员' + }, + hidden: true + }, { + path: 'memberLevel', + name: 'memberLevel', + component: () => import('@/views/ums/memberLevel/index'), + meta: { + title: '会员等级列表', + icon: 'product-list' + } + }, + + { + path: 'addMemberLevel', + name: 'addMemberLevel', + component: () => import('@/views/ums/memberLevel/add'), + meta: { + title: '添加会员等级' + }, + hidden: true + }, + { + path: 'updateMemberLevel', + name: 'updateMemberLevel', + component: () => import('@/views/ums/memberLevel/update'), + meta: { + title: '编辑会员等级' + }, + hidden: true + }, { + path: 'school', + name: 'school', + component: () => import('@/views/ums/school/index'), + meta: { + title: '学校列表', + icon: 'product-list' + } + }, + + { + path: 'addSchool', + name: 'addSchool', + component: () => import('@/views/ums/school/add'), + meta: { + title: '添加学校' + }, + hidden: true + }, + { + path: 'updateSchool', + name: 'updateSchool', + component: () => import('@/views/ums/school/update'), + meta: { + title: '编辑学校' + }, + hidden: true + }, { + path: 'memberBlanceLog', + name: 'memberBlanceLog', + component: () => import('@/views/ums/memberBlanceLog/index'), + meta: { + title: '余额日志记录', + icon: 'product-list' + } + }, { + path: 'memberIntegration', + name: 'memberIntegration', + component: () => import('@/views/ums/memberIntegration/index'), + meta: { + title: '积分日志记录', + icon: 'product-list' + } + } + + + ] + }, + + { + path: '/build', + component: Layout, + redirect: '/build/community', + name: 'build', + meta: { + title: '社区管理', + icon: 'home' + }, + children: [{ + path: 'companyCommunity', + name: 'companyCommunity', + component: () => import('@/views/build/wuyeCompany/companyCommunity'), + meta: { + title: '绑定小区', + icon: 'product-list' + } + }, + { + path: 'community', + name: 'community', + component: () => import('@/views/build/community/index'), + meta: { + title: '取货点', + icon: 'product-list' + } + }, + + { + path: 'addCommunity', + name: 'addCommunity', + component: () => import('@/views/build/community/add'), + meta: { + title: '添加小区' + }, + hidden: true + }, + { + path: 'updateCommunity', + name: 'updateCommunity', + component: () => import('@/views/build/community/update'), + meta: { + title: '编辑小区' + }, + hidden: true + }, + { + path: 'room', + name: 'room', + component: () => import('@/views/build/room/index'), + meta: { + title: '房间列表', + icon: 'product-list' + } + }, + + { + path: 'addRoom', + name: 'addRoom', + component: () => import('@/views/build/room/add'), + meta: { + title: '添加房间' + }, + hidden: true + }, + { + path: 'updateRoom', + name: 'updateRoom', + component: () => import('@/views/build/room/update'), + meta: { + title: '编辑房间' + }, + hidden: true + }, + { + path: 'floor', + name: 'floor', + component: () => import('@/views/build/floor/index'), + meta: { + title: '楼栋列表', + icon: 'product-list' + } + }, + + { + path: 'addFloor', + name: 'addFloor', + component: () => import('@/views/build/floor/add'), + meta: { + title: '添加楼栋' + }, + hidden: true + }, + { + path: 'updateFloor', + name: 'updateFloor', + component: () => import('@/views/build/floor/update'), + meta: { + title: '编辑楼栋' + }, + hidden: true + }, + { + path: 'unit', + name: 'unit', + component: () => import('@/views/build/unit/index'), + meta: { + title: '单元列表', + icon: 'product-list' + } + }, + + { + path: 'addUnit', + name: 'addUnit', + component: () => import('@/views/build/unit/add'), + meta: { + title: '添加单元' + }, + hidden: true + }, + { + path: 'updateUnit', + name: 'updateUnit', + component: () => import('@/views/build/unit/update'), + meta: { + title: '编辑单元' + }, + hidden: true + }, + { + path: 'owner', + name: 'owner', + component: () => import('@/views/build/owner/index'), + meta: { + title: '业主列表', + icon: 'product-list' + } + }, + + { + path: 'addOwner', + name: 'addOwner', + component: () => import('@/views/build/owner/add'), + meta: { + title: '添加业主列表' + }, + hidden: true + }, + { + path: 'updateOwner', + name: 'updateOwner', + component: () => import('@/views/build/owner/update'), + meta: { + title: '编辑业主列表' + }, + hidden: true + }, + + + { + path: 'adv', + name: 'adv', + component: () => import('@/views/build/adv/index'), + meta: { + title: '社区广告', + icon: 'product-list' + } + }, + + { + path: 'addAdv', + name: 'addAdv', + component: () => import('@/views/build/adv/add'), + meta: { + title: '添加社区广告' + }, + hidden: true + }, + { + path: 'updateAdv', + name: 'updateAdv', + component: () => import('@/views/build/adv/update'), + meta: { + title: '编辑社区广告' + }, + hidden: true + }, + { + path: 'buildGroup', + name: 'buildGroup', + component: () => import('@/views/build/group/index'), + meta: { + title: '社区团购', + icon: 'product-list' + } + }, + + { + path: 'addBuildGroup', + name: 'addBuildGroup', + component: () => import('@/views/build/group/add'), + meta: { + title: '添加社区团购' + }, + hidden: true + }, + { + path: 'updateBuildGroup', + name: 'updateBuildGroup', + component: () => import('@/views/build/group/update'), + meta: { + title: '编辑社区团购' + }, + hidden: true + }, + { + path: 'buildGroupHistory', + name: 'buildGroupHistory', + component: () => import('@/views/build/group/detail'), + meta: { + title: '拼团详情' + }, + hidden: true + }, + { + path: 'notice', + name: 'notice', + component: () => import('@/views/build/notice/index'), + meta: { + title: '社区公告', + icon: 'product-list' + } + }, + + { + path: 'addNotice', + name: 'addNotice', + component: () => import('@/views/build/notice/add'), + meta: { + title: '添加社区公告' + }, + hidden: true + }, + { + path: 'updateNotice', + name: 'updateNotice', + component: () => import('@/views/build/notice/update'), + meta: { + title: '编辑社区公告' + }, + hidden: true + }, + { + path: 'repair', + name: 'repair', + component: () => import('@/views/build/repair/index'), + meta: { + title: '社区报修', + icon: 'product-list' + } + }, + + { + path: 'addRepair', + name: 'addRepair', + component: () => import('@/views/build/repair/add'), + meta: { + title: '添加社区报修' + }, + hidden: true + }, + { + path: 'updateRepair', + name: 'updateRepair', + component: () => import('@/views/build/repair/update'), + meta: { + title: '编辑社区报修' + }, + hidden: true + }, + { + path: 'typePrice', + name: 'typePrice', + component: () => import('@/views/build/typePrice/index'), + meta: { + title: '费用类型', + icon: 'product-list' + } + }, + + { + path: 'addTypePrice', + name: 'addTypePrice', + component: () => import('@/views/build/typePrice/add'), + meta: { + title: '添加费用类型' + }, + hidden: true + }, + { + path: 'updateTypePrice', + name: 'updateTypePrice', + component: () => import('@/views/build/typePrice/update'), + meta: { + title: '编辑费用类型' + }, + hidden: true + }, + { + path: 'wuyeCompany', + name: 'wuyeCompany', + component: () => import('@/views/build/wuyeCompany/index'), + meta: { + title: '社区列表', + icon: 'product-list' + } + }, + + { + path: 'addWuyeCompany', + name: 'addWuyeCompany', + component: () => import('@/views/build/wuyeCompany/add'), + meta: { + title: '添加物业公司' + }, + hidden: true + }, + { + path: 'updateWuyeCompany', + name: 'updateWuyeCompany', + component: () => import('@/views/build/wuyeCompany/update'), + meta: { + title: '编辑物业公司' + }, + hidden: true + }, + { + path: 'wuyePrice', + name: 'wuyePrice', + component: () => import('@/views/build/wuyePrice/index'), + meta: { + title: '缴费记录', + icon: 'product-list' + } + }, + + { + path: 'addWuyePrice', + name: 'addWuyePrice', + component: () => import('@/views/build/wuyePrice/add'), + meta: { + title: '添加缴费记录' + }, + hidden: true + }, + { + path: 'updateWuyePrice', + name: 'updateWuyePrice', + component: () => import('@/views/build/wuyePrice/update'), + meta: { + title: '编辑缴费记录' + }, + hidden: true + }, + ] + }, + { + path: '/setting', + component: Layout, + redirect: '/setting/appletSetting', + name: 'setting', + meta: { + title: '商城配置', + icon: 'home' + }, + children: [{ + path: 'umsMemberTag', + name: 'umsMemberTag', + component: () => import('@/views/ums/umsMemberTag/index'), + meta: { + title: '标签管理列表', + icon: 'product-list' + } + }, + + { + path: 'addUmsMemberTag', + name: 'addUmsMemberTag', + component: () => import('@/views/ums/umsMemberTag/add'), + meta: { + title: '添加标签管理' + }, + hidden: true + }, + { + path: 'updateUmsMemberTag', + name: 'updateUmsMemberTag', + component: () => import('@/views/ums/umsMemberTag/update'), + meta: { + title: '编辑标签管理' + }, + hidden: true + }, + + + { + path: 'jifenSetting', + name: 'jifenSetting', + component: () => import('@/views/ums/jifensetting'), + meta: { + title: '积分设置', + icon: 'order-setting' + } + }, + { + path: 'omsPayments', + name: 'omsPayments', + component: () => import('@/views/oms/omsPayments/index'), + meta: { + title: '支付配置列表', + icon: 'product-list' + } + }, + + { + path: 'addOmsPayments', + name: 'addOmsPayments', + component: () => import('@/views/oms/omsPayments/add'), + meta: { + title: '添加支付配置' + }, + hidden: true + }, + { + path: 'updateOmsPayments', + name: 'updateOmsPayments', + component: () => import('@/views/oms/omsPayments/update'), + meta: { + title: '编辑支付配置' + }, + hidden: true + }, + { + path: 'orderSetting', + name: 'orderSetting', + component: () => import('@/views/oms/order/setting'), + meta: { + title: '订单设置', + icon: 'order-setting' + } + }, + { + path: 'returnReason', + name: 'returnReason', + component: () => import('@/views/oms/apply/reason'), + meta: { + title: '退货原因设置', + icon: 'order-return-reason' + } + }, + { + path: 'appletSetting', + name: 'appletSetting', + component: () => import('@/views/ums/setting'), + meta: { + title: '登录支付设置', + icon: 'order-setting' + } + }, { + path: 'fenxiaoConfig', + name: 'fenxiaoConfig', + component: () => import('@/views/fenxiao/fenxiaoConfig/index'), + meta: { + title: '分销配置列表', + icon: 'product-list' + } + }, + + { + path: 'addFenxiaoConfig', + name: 'addFenxiaoConfig', + component: () => import('@/views/fenxiao/fenxiaoConfig/add'), + meta: { + title: '添加分销配置' + }, + hidden: true + }, + { + path: 'updateFenxiaoConfig', + name: 'updateFenxiaoConfig', + component: () => import('@/views/fenxiao/fenxiaoConfig/update'), + meta: { + title: '编辑分销配置' + }, + hidden: true + }, + ] + }, + + { + path: '/tool', + component: Layout, + redirect: '/tool/email', + name: 'tool', + meta: { + title: '工具调试', + icon: 'home' + }, + children: [{ + path: 'webLog', + name: 'webLog', + component: () => import('@/views/sys/webLog/index'), + meta: { + title: '前台日志列表', + icon: 'product-list' + } + }, { + path: 'adminLog', + name: 'adminLog', + component: () => import('@/views/sys/adminLog/index'), + meta: { + title: '后台日志列表', + icon: 'product-list' + } + }, { + path: 'adminLogStatic', + name: 'adminLogStatic', + component: () => import('@/views/sys/adminLog/adminLogStatic'), + meta: { + title: '后台日志列表', + icon: 'product-list' + } + }, + { + path: 'webLogStatic', + name: 'webLogStatic', + component: () => import('@/views/sys/webLog/webLogStatic'), + meta: { + title: '后台日志列表', + icon: 'product-list' + } + }, + { + path: 'alipay', + name: 'alipay', + component: () => + import('@/views/sys/aliPay/index'), + meta: { + title: '支付宝测试', + icon: 'dict-update' + }, + hidden: true + }, + { + path: 'email', + name: 'email', + component: () => + import('@/views/sys/email/index'), + meta: { + title: '邮件测试', + icon: 'dict-update' + }, + hidden: true + }, + ] + }, + { + path: '/store', + component: Layout, + redirect: '/store/admin', + name: 'store', + meta: { + title: '店铺管理', + icon: 'home' + }, + children: [{ + path: 'sysStoreComment', + name: 'sysStoreComment', + component: () => import('@/views/sys/sysStoreComment/index'), + meta: { + title: '商户评价列表', + icon: 'product-list' + } + }, + + + + { + path: 'sysStoreClass', + name: 'sysStoreClass', + component: () => import('@/views/sys/sysStoreClass/index'), + meta: { + title: '商户分类列表', + icon: 'product-list' + } + }, + + { + path: 'addSysStoreClass', + name: 'addSysStoreClass', + component: () => import('@/views/sys/sysStoreClass/add'), + meta: { + title: '添加商户分类' + }, + hidden: true + }, + { + path: 'updateSysStoreClass', + name: 'updateSysStoreClass', + component: () => import('@/views/sys/sysStoreClass/update'), + meta: { + title: '编辑商户分类' + }, + hidden: true + }, + { + path: 'sysStoreCash', + name: 'sysStoreCash', + component: () => import('@/views/sys/sysStoreCash/index'), + meta: { + title: '商家提现', + icon: 'product-list' + } + }, + + { + path: 'addSysStoreCash', + name: 'addSysStoreCash', + component: () => import('@/views/sys/sysStoreCash/add'), + meta: { + title: '添加商家提现' + }, + hidden: true + }, + { + path: 'updateSysStoreCash', + name: 'updateSysStoreCash', + component: () => import('@/views/sys/sysStoreCash/update'), + meta: { + title: '编辑商家提现' + }, + hidden: true + }, + + { + path: 'sysStoreDepositLog', + name: 'sysStoreDepositLog', + component: () => import('@/views/sys/sysStoreDepositLog/index'), + meta: { + title: '商家预存款', + icon: 'product-list' + } + }, + + { + path: 'addSysStoreDepositLog', + name: 'addSysStoreDepositLog', + component: () => import('@/views/sys/sysStoreDepositLog/add'), + meta: { + title: '添加商家预存款' + }, + hidden: true + }, + { + path: 'updateSysStoreDepositLog', + name: 'updateSysStoreDepositLog', + component: () => import('@/views/sys/sysStoreDepositLog/update'), + meta: { + title: '编辑商家预存款' + }, + hidden: true + }, + + { + path: 'store', + name: 'store', + component: () => import('@/views/sys/store/index'), + meta: { + title: '商家', + icon: 'product-list' + } + }, + + { + path: 'addStore', + name: 'addStore', + component: () => import('@/views/sys/store/add'), + meta: { + title: '添加商家' + }, + hidden: true + }, + { + path: 'updateStore', + name: 'updateStore', + component: () => import('@/views/sys/store/update'), + meta: { + title: '编辑商家' + }, + hidden: true + }, + { + path: 'adminDayStatics', + name: 'adminDayStatics', + component: () => import('@/views/sys/adminDayStatics/index'), + meta: { + title: '商户日统计列表', + icon: 'product-list' + } + }, + { + path: 'sysStoreRank', + name: 'sysStoreRank', + component: () => import('@/views/sys/sysStoreRank/index'), + meta: { + title: '商户等级列表', + icon: 'product-list' + } + }, + + { + path: 'addSysStoreRank', + name: 'addSysStoreRank', + component: () => import('@/views/sys/sysStoreRank/add'), + meta: { + title: '添加商户等级' + }, + hidden: true + }, + { + path: 'updateSysStoreRank', + name: 'updateSysStoreRank', + component: () => import('@/views/sys/sysStoreRank/update'), + meta: { + title: '编辑商户等级' + }, + hidden: true + }, + ] + }, + { + path: '/sys', + component: Layout, + redirect: '/sys/admin', + name: 'sys', + meta: { + title: '系统管理', + icon: 'home' + }, + children: [ + + + { + path: 'admin', + name: 'admin', + component: () => import('@/views/sys/admin/index'), + meta: { + title: '用户列表', + icon: 'product-list' + } + }, + { + path: 'userCommunity', + name: 'userCommunity', + component: () => import('@/views/sys/admin/userCommunity'), + meta: { + title: '绑定小区', + icon: 'product-list' + } + }, + { + path: 'gen', + name: 'gen', + component: () => import('@/views/sys/gen/index'), + meta: { + title: '代码生成', + icon: 'product-list' + } + }, { + path: 'permissionCategory', + name: 'permissionCategory', + component: () => import('@/views/sys/permissionCategory/index'), + meta: { + title: '菜单类别列表}' + } + }, + { + path: 'addPermissionCategory', + name: 'addPermissionCategory', + component: () => import('@/views/sys/permissionCategory/add'), + meta: { + title: '添加菜单类别', + icon: 'permissionCategory-add' + }, + hidden: true + }, + { + path: 'updatePermissionCategory', + name: 'updatePermissionCategory', + component: () => import('@/views/sys/permissionCategory/update'), + meta: { + title: '修改菜单类别', + icon: 'permissionCategory-update' + }, + hidden: true + }, + { + path: 'addAdmin', + name: 'addAdmin', + component: () => import('@/views/sys/admin/add'), + meta: { + title: '添加用户' + }, + hidden: true + }, + { + path: 'updateAdmin', + name: 'updateAdmin', + component: () => import('@/views/sys/admin/update'), + meta: { + title: '编辑用户' + }, + hidden: true + }, { + path: 'role', + name: 'role', + component: () => import('@/views/sys/role/index'), + meta: { + title: '角色列表', + icon: 'product-list' + } + }, + { + path: 'addRole', + name: 'addRole', + component: () => import('@/views/sys/role/add'), + meta: { + title: '添加角色' + }, + hidden: true + }, + { + path: 'updateRole', + name: 'updateRole', + component: () => import('@/views/sys/role/update'), + meta: { + title: '编辑角色' + }, + hidden: true + }, { + path: 'permission', + name: 'permission', + component: () => import('@/views/sys/permission/index'), + meta: { + title: '权限列表', + icon: 'product-list' + } + }, + { + path: 'addPermission', + name: 'addPermission', + component: () => import('@/views/sys/permission/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updatePermission', + name: 'updatePermission', + component: () => import('@/views/sys/permission/update'), + meta: { + title: '编辑权限' + }, + hidden: true + }, + { + path: 'area', + name: 'area', + component: () => import('@/views/sys/area/index'), + meta: { + title: '区域列表', + icon: 'product-list' + } + }, + { + path: 'addArea', + name: 'addArea', + component: () => import('@/views/sys/area/add'), + meta: { + title: '添加区域' + }, + hidden: true + }, + { + path: 'updateArea', + name: 'updateArea', + component: () => import('@/views/sys/area/update'), + meta: { + title: '编辑区域' + }, + hidden: true + }, + { + path: 'dict', + name: 'dict', + component: () => import('@/views/sys/dict/index'), + meta: { + title: '系统配置信息表列表}' + } + }, + { + path: 'addDict', + name: 'addDict', + component: () => import('@/views/sys/dict/add'), + meta: { + title: '添加系统配置信息表', + icon: 'dict-add' + } + }, + { + path: 'updateDict', + name: 'updateDict', + component: () => + import('@/views/sys/dict/update'), + meta: { + title: '修改系统配置信息表', + icon: 'dict-update' + }, + hidden: true + }, { + path: 'job', + name: 'job', + component: () => import('@/views/sys/job/index'), + meta: { + title: '定时任务息表列表' + } + }, { + path: 'joblog', + name: 'joblog', + component: () => import('@/views/sys/job/joblog'), + meta: { + title: '定时任务息表列表' + } + }, + { + path: 'addJob', + name: 'addJob', + component: () => import('@/views/sys/job/add'), + meta: { + title: '添加定时任务', + icon: 'dict-add' + } + }, + { + path: 'updateJob', + name: 'updateJob', + component: () => + import('@/views/sys/job/update'), + meta: { + title: '修改定时任务', + icon: 'dict-update' + }, + hidden: true + }, + + ] + }, + { + path: '/cms', + component: Layout, + redirect: '/cms/help', + name: 'cms', + // meta: {title: '内容管理', icon: 'home'}, + meta: { + title: '农机服务', + icon: 'home' + }, + children: [{ + path: 'cmsZhaoPin', + name: 'cmsZhaoPin', + component: () => import('@/views/cms/cmsZhaoPin/index'), + meta: { + title: '招聘管理列表', + icon: 'product-list' + } + }, + + { + path: 'addCmsZhaoPin', + name: 'addCmsZhaoPin', + component: () => import('@/views/cms/cmsZhaoPin/add'), + meta: { + title: '添加招聘管理' + }, + hidden: true + }, + { + path: 'updateCmsZhaoPin', + name: 'updateCmsZhaoPin', + component: () => import('@/views/cms/cmsZhaoPin/update'), + meta: { + title: '编辑招聘管理' + }, + hidden: true + }, + { + path: 'help', + name: 'help', + component: () => import('@/views/cms/help/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addHelp', + name: 'addHelp', + component: () => import('@/views/cms/help/add'), + meta: { + title: '添加帮助' + }, + hidden: true + }, + { + path: 'updateHelp', + name: 'updateHelp', + component: () => import('@/views/cms/help/update'), + meta: { + title: '编辑帮助' + }, + hidden: true + }, + { + path: 'subject', + name: 'subject', + component: () => import('@/views/cms/subject/index'), + // meta: {title: '专题列表', icon: 'product-list'} + meta: { + title: '农机资讯', + icon: 'product-list' + } + }, { + path: 'addSubject', + name: 'addSubject', + component: () => import('@/views/cms/subject/add'), + meta: { + title: '添加资讯' + }, + hidden: true + }, + { + path: 'updateSubject', + name: 'updateSubject', + component: () => import('@/views/cms/subject/update'), + meta: { + title: '编辑专题' + }, + hidden: true + }, + { + path: 'helpCategory', + name: 'helpCategory', + component: () => import('@/views/cms/helpCategory/index'), + meta: { + title: '专题分类列表', + icon: 'product-list' + } + }, { + path: 'addHelpCategory', + name: 'addHelpCategory', + component: () => import('@/views/cms/helpCategory/add'), + meta: { + title: '添加专题分类' + }, + hidden: true + }, + { + path: 'updateHelpCategory', + name: 'updateHelpCategory', + component: () => import('@/views/cms/helpCategory/update'), + meta: { + title: '编辑专题分类' + }, + hidden: true + }, + { + path: 'memberReport', + name: 'memberReport', + component: () => import('@/views/cms/memberReport/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addMemberReport', + name: 'addMemberReport', + component: () => import('@/views/cms/memberReport/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updateMemberReport', + name: 'updateMemberReport', + component: () => import('@/views/cms/memberReport/update'), + meta: { + title: '编辑权限' + }, + hidden: true + }, + { + path: 'prefrenceArea', + name: 'prefrenceArea', + component: () => import('@/views/cms/prefrenceArea/index'), + meta: { + title: '偏爱专区列表', + icon: 'product-list' + } + }, { + path: 'addPrefrenceArea', + name: 'addPrefrenceArea', + component: () => import('@/views/cms/prefrenceArea/add'), + meta: { + title: '添加偏爱专区' + }, + hidden: true + }, + { + path: 'updatePrefrenceArea', + name: 'updatePrefrenceArea', + component: () => import('@/views/cms/prefrenceArea/update'), + meta: { + title: '编辑偏爱专区' + }, + hidden: true + } + + , + { + path: 'subjectCategory', + name: 'subjectCategory', + component: () => import('@/views/cms/subjectCategory/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addSubjectCategory', + name: 'addSubjectCategory', + component: () => import('@/views/cms/subjectCategory/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updateSubjectCategory', + name: 'updateSubjectCategory', + component: () => import('@/views/cms/subjectCategory/update'), + meta: { + title: '编辑权限' + }, + hidden: true + } + + , + { + path: 'subjectComment', + name: 'subjectComment', + component: () => import('@/views/cms/subjectComment/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addSubjectComment', + name: 'addSubjectComment', + component: () => import('@/views/cms/subjectComment/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updateSubjectComment', + name: 'updateSubjectComment', + component: () => import('@/views/cms/subjectComment/update'), + meta: { + title: '编辑权限' + }, + hidden: true + } + + , { + path: 'topic', + name: 'topic', + component: () => import('@/views/cms/topic/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addTopic', + name: 'addTopic', + component: () => import('@/views/cms/topic/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updateTopic', + name: 'updateTopic', + component: () => import('@/views/cms/topic/update'), + meta: { + title: '编辑权限' + }, + hidden: true + } + + , { + path: 'topicCategory', + name: 'topicCategory', + component: () => import('@/views/cms/topicCategory/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + }, { + path: 'addTopicCategory', + name: 'addTopicCategory', + component: () => import('@/views/cms/topicCategory/add'), + meta: { + title: '添加权限' + }, + hidden: true + }, + { + path: 'updateTopicCategory', + name: 'updateTopicCategory', + component: () => import('@/views/cms/topicCategory/update'), + meta: { + title: '编辑权限' + }, + hidden: true + } + + , { + path: 'topicComment', + name: 'topicComment', + component: () => import('@/views/cms/topicComment/index'), + meta: { + title: '帮助列表', + icon: 'product-list' + } + } + + ] + }, + + { + path: '*', + redirect: '/404', + hidden: true + } ] export default new Router({ - // mode: 'history', //后端支持可开 - scrollBehavior: () => ({y: 0}), - routes: constantRouterMap + // mode: 'history', //后端支持可开 + scrollBehavior: () => ({ + y: 0 + }), + routes: constantRouterMap }) - diff --git a/mallplusui-web-admin/src/styles/index.scss b/mallplusui-web-admin/src/styles/index.scss index 7b1379b..0faa5b0 100644 --- a/mallplusui-web-admin/src/styles/index.scss +++ b/mallplusui-web-admin/src/styles/index.scss @@ -55,21 +55,88 @@ a:hover { } .app-container { - padding: 20px; + margin: 0 0 25px 0; + background-color: #fff; } //搜索栏样式 .filter-container { } - +// 搜索的 +.webtop { + // position: fixed;top: 110px;width: calc(100% - 240px);z-index: 6000; + background-color: #fff; + display: flex !important; + flex-direction: row; + justify-content: space-between !important; + align-items: center; + margin-bottom: 0px !important; + font-size: 20px; +} +.tab-header { + background-color: #edf1f7; + padding: 10px 20px; +} +// 设置了页面头部的内边距和背景色 +.tab-header { + font-size: 20px; + font-weight: bold; +} +// 设置了搜索条件里的样式 +.search { + .tab-header { + .el-form-item { + margin-right: 16px; + .el-form-item__label { + font-size: 16px; + font-weight: 500; + } + } + } +} +.search .btn { + padding: 5px 0; + border: 1px solid #e0e3eb; + text-align: center; + margin-bottom: 5px; +} +.searchcon{margin: 0px 0 10px 0;} +.searchcon .searchbtn{margin: 10px 0;border: #2cab69 1px solid;color: #2cab69;} +// 隐藏显示按钮 +.main-content { + .searchcon { + .searchbtn { + margin: 5px 0; + border: #2cab69 1px solid; + color: #2cab69; + } + }} + // 页面上的button按钮 + .app-container { + .el-button--medium { + padding: 10px 14px; + font-size: 16px; + } + + .el-button--small { + padding: 8px 12px; + font-size: 14px; + } + + .el-button--mini { + padding: 7px 10px; + font-size: 12px; + } + } //操作栏样式 .operate-container { - margin-top: 20px; + // margin-top: 20px; } .operate-container .btn-add { float: right; + margin-left: 20px; } //表格栏样式 diff --git a/mallplusui-web-admin/src/views/build/community/index.vue b/mallplusui-web-admin/src/views/build/community/index.vue index fca484d..c5eb416 100644 --- a/mallplusui-web-admin/src/views/build/community/index.vue +++ b/mallplusui-web-admin/src/views/build/community/index.vue @@ -86,26 +86,26 @@ - + @@ -152,7 +177,7 @@ {{ scope.row.payType | formatPayType }} - + diff --git a/mallplusui-web-admin/src/views/oms/order/orderDetail.vue b/mallplusui-web-admin/src/views/oms/order/orderDetail.vue index 2f8ebd7..dc4a0a8 100644 --- a/mallplusui-web-admin/src/views/oms/order/orderDetail.vue +++ b/mallplusui-web-admin/src/views/oms/order/orderDetail.vue @@ -1,757 +1,758 @@ - - diff --git a/mallplusui-web-admin/src/views/pms/product/components/ProductAttrDetail.vue b/mallplusui-web-admin/src/views/pms/product/components/ProductAttrDetail.vue index 2d3f94a..bd5e1d4 100644 --- a/mallplusui-web-admin/src/views/pms/product/components/ProductAttrDetail.vue +++ b/mallplusui-web-admin/src/views/pms/product/components/ProductAttrDetail.vue @@ -1,7 +1,7 @@