From 34bf68c7ed710eef375b757d33196a03e8b583d8 Mon Sep 17 00:00:00 2001 From: 337031187 Date: Fri, 11 Jun 2021 17:41:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E6=96=B0UI=E8=A7=86=E8=A7=89=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E7=A7=BB=E5=8A=A8=E7=AB=AFAPI=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=99=8D=E4=BD=8E=E9=87=8D=E5=A4=8D=E8=B0=83=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E9=AB=98=E5=B9=B6=E5=8F=916=E5=80=8D?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8DN=E5=A4=9ABug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 34 +- admin/src/api/marketing.js | 131 +- admin/src/api/order.js | 65 +- admin/src/api/systemadmin.js | 3 +- admin/src/api/user.js | 11 + admin/src/assets/imgs/pc1.jpg | Bin 103042 -> 97558 bytes admin/src/assets/js/canvas-nest.min.js | 85 + admin/src/components/Category/edit.vue | 2 +- .../components/couponList/couponFrom/index.js | 3 +- .../couponList/couponFrom/index.vue | 5 +- admin/src/components/couponList/index.vue | 20 +- admin/src/components/uploadPicture/index.vue | 15 +- admin/src/components/userList/index.vue | 8 - admin/src/filters/commFilter.js | 26 + admin/src/layout/components/AppMain.vue | 1 + admin/src/layout/components/Sidebar/index.vue | 1 - admin/src/router/modules/maintain.js | 10 + admin/src/router/modules/marketing.js | 2 +- admin/src/router/modules/store.js | 2 +- admin/src/styles/styles.scss | 9 + admin/src/utils/ZBKJIutil.js | 4 +- admin/src/utils/request.js | 2 +- .../views/appSetting/wxAccount/wxMenus.vue | 10 +- .../views/dashboard/components/baseInfo.vue | 2 +- admin/src/views/distribution/config/index.vue | 2 +- admin/src/views/distribution/index.vue | 31 +- admin/src/views/financial/brokerage/index.vue | 2 +- .../views/financial/record/charge/index.vue | 18 +- admin/src/views/login/index.vue | 29 + admin/src/views/login/mixins.js | 11 + admin/src/views/maintain/authCRMEB/index.vue | 24 + .../bargain/bargainGoods/creatBargain.vue | 12 +- .../src/views/marketing/coupon/list/index.vue | 17 +- .../views/marketing/coupon/record/index.vue | 2 +- .../marketing/integral/integralLog/index.vue | 35 +- .../views/mobile/components/PriceChange.vue | 66 +- .../src/views/mobile/components/WriteOff.vue | 4 +- .../mobile/orderStatistics/orderDelivery.vue | 71 +- .../mobile/orderStatistics/orderDetail.vue | 14 +- .../mobile/orderStatistics/orderList.vue | 44 +- admin/src/views/order/index.vue | 168 +- admin/src/views/order/orderDetail.vue | 16 +- admin/src/views/order/orderSend.vue | 6 +- admin/src/views/order/orderVideoSend.vue | 120 + .../sms/smsConfig/components/loginFrom.vue | 10 +- admin/src/views/sms/smsConfig/index.vue | 9 + admin/src/views/sms/smsPay/index.vue | 2 +- admin/src/views/store/creatStore/index.vue | 267 +- admin/src/views/store/index.vue | 8 +- admin/src/views/store/taoBao.vue | 45 +- .../systemSetting/systemStore/order/index.vue | 8 +- admin/src/views/user/grade/creatGrade.vue | 2 +- admin/src/views/user/group/index.vue | 1 + admin/src/views/user/list/edit.vue | 56 +- admin/src/views/user/list/index.vue | 76 +- admin/src/views/user/list/userDetails.vue | 75 +- app/App.vue | 246 +- app/api/activity.js | 59 +- app/api/api.js | 3 - app/api/order.js | 44 +- app/api/public.js | 43 +- app/api/store.js | 46 +- app/api/user.js | 32 +- app/components/Authorize.vue | 52 +- app/components/addressWindow/index.vue | 23 +- app/components/countDown/index.vue | 50 +- app/components/couponListWindow/index.vue | 291 +- app/components/emptyPage.vue | 1 + app/components/home/index.vue | 2 +- app/components/login_mobile/index.vue | 215 +- app/components/login_mobile/routine_phone.vue | 17 +- app/components/orderGoods/index.vue | 65 +- app/components/payment/index.vue | 92 +- app/components/productConSwiper/index.vue | 200 +- app/components/productWindow/index.vue | 200 +- app/components/recommend/index.vue | 4 +- app/components/swipers/index.vue | 2 +- app/components/userEvaluation/index.vue | 95 +- app/config/app.js | 4 +- app/config/cache.js | 2 + app/libs/apps.js | 24 + app/libs/login.js | 58 +- app/libs/order.js | 34 +- app/libs/routine.js | 30 +- app/libs/wechat.js | 115 +- app/main.js | 5 +- app/manifest.json | 70 +- app/pages.json | 670 +- app/pages/activity/bargain/index.vue | 171 +- app/pages/activity/goods_bargain/index.vue | 241 +- .../activity/goods_bargain_details/index.vue | 1571 +-- .../activity/goods_combination/index.vue | 288 +- .../goods_combination_details/index.vue | 670 +- .../goods_combination_status/index.vue | 1679 ++-- app/pages/activity/goods_seckill/index.vue | 138 +- .../activity/goods_seckill_details/index.vue | 340 +- app/pages/activity/poster-poster/index.vue | 3 - app/pages/activity/static/btn.png | Bin 0 -> 2079 bytes app/pages/activity/static/canbj.png | Bin 0 -> 30861 bytes app/pages/activity/static/cheng.png | Bin 0 -> 2005 bytes app/pages/activity/static/chengh.png | Bin 0 -> 1604 bytes app/pages/activity/static/lun.png | Bin 0 -> 1298 bytes app/pages/activity/static/n1.png | Bin 0 -> 1324 bytes app/pages/activity/static/n2.png | Bin 0 -> 1484 bytes app/pages/activity/static/n3.png | Bin 0 -> 1500 bytes app/pages/activity/static/pinbei.png | Bin 0 -> 26307 bytes app/pages/activity/static/shandian.png | Bin 0 -> 1279 bytes app/pages/activity/static/woman.png | Bin 0 -> 4495 bytes app/pages/activity/static/you.png | Bin 0 -> 174 bytes app/pages/activity/static/you2.png | Bin 0 -> 686 bytes app/pages/activity/static/zhuangshi.png | Bin 0 -> 929 bytes app/pages/activity/static/zuo.png | Bin 0 -> 145 bytes app/pages/activity/static/zuo2.png | Bin 0 -> 662 bytes app/pages/admin/delivery/index.vue | 358 - app/pages/admin/order/index.vue | 268 - app/pages/admin/orderDetail/index.vue | 773 -- app/pages/admin/orderList/index.vue | 466 - app/pages/admin/order_cancellation/index.vue | 323 - app/pages/admin/static/scan.gif | Bin 195347 -> 0 bytes app/pages/admin/statistics/index.vue | 631 -- app/pages/auth/index.vue | 1 - app/pages/columnGoods/HotNewGoods/index.vue | 1 - app/pages/customer_list/chat.vue | 17 +- app/pages/first_new_product/index.vue | 1 - app/pages/goods_cate/goods_cate.vue | 94 +- app/pages/goods_details/index.vue | 3700 +++---- app/pages/goods_list/index.vue | 128 +- app/pages/goods_search/index.vue | 13 +- app/pages/index/components/a_seckill.vue | 76 +- app/pages/index/components/b_combination.vue | 166 +- app/pages/index/components/c_bargain.vue | 55 +- app/pages/index/index.vue | 1089 +- app/pages/news_details/index.vue | 15 +- app/pages/news_list/index.vue | 41 +- app/pages/order_addcart/order_addcart.vue | 640 +- app/pages/order_details/index.vue | 466 +- app/pages/order_pay_status/index.vue | 28 +- app/pages/user/index.vue | 464 +- app/pages/users/app_login/index.vue | 266 + app/pages/users/commission_rank/index.vue | 21 +- app/pages/users/goods_comment_con/index.vue | 79 +- app/pages/users/goods_comment_list/index.vue | 84 +- app/pages/users/goods_details_store/index.vue | 88 +- app/pages/users/goods_logistics/index.vue | 46 +- app/pages/users/goods_return/index.vue | 49 +- app/pages/users/kefu/index.vue | 34 + app/pages/users/login/index.vue | 494 +- app/pages/users/order_confirm/index.vue | 601 +- app/pages/users/order_list/index.vue | 124 +- app/pages/users/privacy/index.vue | 43 + app/pages/users/promoter-list/index.vue | 194 +- app/pages/users/promoter-order/index.vue | 20 +- app/pages/users/promoter_rank/index.vue | 8 +- app/pages/users/user_address/index.vue | 158 +- app/pages/users/user_address_list/index.vue | 104 +- app/pages/users/user_bill/index.vue | 23 +- app/pages/users/user_cash/index.vue | 55 +- app/pages/users/user_coupon/index.vue | 84 +- app/pages/users/user_get_coupon/index.vue | 316 +- .../users/user_goods_collection/index.vue | 315 +- app/pages/users/user_info/index.vue | 145 +- app/pages/users/user_integral/index.vue | 40 +- app/pages/users/user_money/index.vue | 38 +- app/pages/users/user_payment/index.vue | 88 +- app/pages/users/user_phone/index.vue | 32 +- app/pages/users/user_pwd_edit/index.vue | 8 +- app/pages/users/user_return_list/index.vue | 51 +- app/pages/users/user_sgin/index.vue | 65 +- app/pages/users/user_sgin_list/index.vue | 14 +- app/pages/users/user_spread_code/index.vue | 149 +- app/pages/users/user_spread_money/index.vue | 99 +- app/pages/users/user_spread_user/index.vue | 22 +- app/pages/users/user_vip/index.vue | 66 +- app/pages/users/web_page/index.vue | 37 + app/pages/users/wechat_login/index.vue | 199 +- app/static/css/base.css | 54 +- app/static/css/style.scss | 179 +- app/static/html/pc.html | 2 +- app/static/iconfont/iconfont-app.css | 1540 +++ app/static/iconfont/iconfont.css | 799 +- app/static/images/1-001.png | Bin 2359 -> 2118 bytes app/static/images/1-002.png | Bin 2717 -> 2467 bytes app/static/images/2-001.png | Bin 2480 -> 2064 bytes app/static/images/2-002.png | Bin 2561 -> 2231 bytes app/static/images/3-002.png | Bin 2397 -> 2106 bytes app/static/images/4-001.png | Bin 2193 -> 2006 bytes app/static/images/4-002.png | Bin 2309 -> 2096 bytes app/static/images/accountBg.png | Bin 3094 -> 580 bytes app/static/images/address.png | Bin 2120 -> 784 bytes app/static/images/alter.png | Bin 1921 -> 535 bytes app/static/images/angle.png | Bin 2512 -> 817 bytes app/static/images/balance.png | Bin 2762 -> 1083 bytes app/static/images/barg001.png | Bin 2307 -> 2306 bytes app/static/images/bargain.png | Bin 1269 -> 277 bytes app/static/images/bargainBg.png | Bin 0 -> 10677 bytes app/static/images/canbj.png | Bin 7956 -> 30164 bytes app/static/images/code_1.png | Bin 855 -> 389 bytes app/static/images/code_2.png | Bin 900 -> 401 bytes app/static/images/collection.png | Bin 2007 -> 749 bytes app/static/images/coupon.png | Bin 1575 -> 505 bytes app/static/images/crmeb.png | Bin 2622 -> 1120 bytes app/static/images/customer.png | Bin 1520 -> 500 bytes app/static/images/del.png | Bin 1314 -> 671 bytes app/static/images/dfh.png | Bin 2272 -> 774 bytes app/static/images/dfk.png | Bin 2130 -> 793 bytes app/static/images/down.png | Bin 1247 -> 293 bytes app/static/images/dpj.png | Bin 2112 -> 733 bytes app/static/images/dsh.png | Bin 2016 -> 704 bytes app/static/images/edit.png | Bin 437 -> 313 bytes app/static/images/empty-box.png | Bin 9763 -> 8542 bytes app/static/images/examine.png | Bin 8970 -> 4132 bytes app/static/images/explosion-title.png | Bin 3012 -> 1317 bytes app/static/images/explosion.png | Bin 4862 -> 4266 bytes app/static/images/extension.png | Bin 1861 -> 648 bytes app/static/images/f.png | Bin 7127 -> 2251 bytes app/static/images/face.png | Bin 3370 -> 1125 bytes app/static/images/gift.png | Bin 5522 -> 2461 bytes app/static/images/group01.png | Bin 2372 -> 992 bytes app/static/images/horn.png | Bin 1245 -> 234 bytes app/static/images/kanjia.png | Bin 0 -> 1513 bytes app/static/images/keyboard.png | Bin 3058 -> 895 bytes app/static/images/kjbj.png | Bin 1526 -> 1293 bytes app/static/images/left.png | Bin 1303 -> 0 bytes app/static/images/line.jpg | Bin 7042 -> 4560 bytes app/static/images/ling.png | Bin 1417 -> 339 bytes app/static/images/lingyhj.png | Bin 0 -> 1430 bytes app/static/images/live-01.png | Bin 623 -> 399 bytes app/static/images/live-02.png | Bin 512 -> 398 bytes app/static/images/live-03.png | Bin 609 -> 476 bytes app/static/images/lock.png | Bin 3382 -> 897 bytes app/static/images/lock2.png | Bin 3558 -> 953 bytes app/static/images/logo.png | Bin 2932 -> 1381 bytes app/static/images/logo2.png | Bin 9996 -> 4822 bytes app/static/images/medal01.png | Bin 3140 -> 1593 bytes app/static/images/medal02.png | Bin 3111 -> 1497 bytes app/static/images/medal03.png | Bin 3404 -> 1717 bytes app/static/images/member.png | Bin 2357 -> 1057 bytes app/static/images/memberCenter.png | Bin 1731 -> 609 bytes app/static/images/money.png | Bin 7329 -> 3015 bytes app/static/images/mores.png | Bin 1200 -> 258 bytes app/static/images/news.png | Bin 2857 -> 1266 bytes app/static/images/noAddress.png | Bin 9383 -> 8831 bytes app/static/images/noNews.png | Bin 9215 -> 8640 bytes app/static/images/noOrder.png | Bin 8773 -> 8165 bytes app/static/images/noShopper.png | Bin 10333 -> 9942 bytes app/static/images/one.png | Bin 5004 -> 1983 bytes app/static/images/order2.png | Bin 1220 -> 273 bytes app/static/images/order5.png | Bin 1241 -> 311 bytes app/static/images/orderTime.png | Bin 6428 -> 2016 bytes app/static/images/phone_1.png | Bin 583 -> 281 bytes app/static/images/plus.png | Bin 3548 -> 1276 bytes app/static/images/poster-close.png | Bin 2130 -> 847 bytes app/static/images/posterbackgd.png | Bin 10139 -> 9645 bytes app/static/images/priceTag.png | Bin 8602 -> 4102 bytes app/static/images/pricetitle.jpg | Bin 4010 -> 2317 bytes app/static/images/pth.png | Bin 3891 -> 3924 bytes app/static/images/record1.png | Bin 1311 -> 304 bytes app/static/images/record2.png | Bin 1647 -> 567 bytes app/static/images/record3.png | Bin 2427 -> 972 bytes app/static/images/record4.png | Bin 2566 -> 1212 bytes app/static/images/red-packets.png | Bin 7735 -> 3274 bytes app/static/images/right-icon.png | Bin 1271 -> 349 bytes app/static/images/rushBuy.jpg | Bin 3638 -> 1779 bytes app/static/images/score.png | Bin 5124 -> 3167 bytes app/static/images/seckillTitle.png | Bin 3306 -> 1534 bytes app/static/images/sh.png | Bin 4249 -> 2083 bytes app/static/images/share-info.png | Bin 7947 -> 7766 bytes app/static/images/shuoming.png | Bin 916 -> 440 bytes app/static/images/sign03.png | Bin 1547 -> 1135 bytes app/static/images/spot.png | Bin 1452 -> 373 bytes app/static/images/stars1.png | Bin 2999 -> 1282 bytes app/static/images/stars3.png | Bin 2999 -> 900 bytes app/static/images/stop.png | Bin 7434 -> 1818 bytes app/static/images/support.png | Bin 6087 -> 2387 bytes app/static/images/three.png | Bin 5124 -> 1772 bytes app/static/images/transparent.png | Bin 3403 -> 1575 bytes app/static/images/two.png | Bin 5071 -> 1865 bytes app/static/images/up.png | Bin 1248 -> 294 bytes app/static/images/user_bg.png | Bin 17106 -> 21928 bytes app/static/images/user_menu08.png | Bin 916 -> 742 bytes app/static/images/user_menu09.png | Bin 1572 -> 848 bytes app/static/images/vacancy.png | Bin 4029 -> 1587 bytes app/static/images/vip.png | Bin 2487 -> 790 bytes app/static/images/weiling.png | Bin 0 -> 2502 bytes app/static/images/writeOff.jpg | Bin 5260 -> 4679 bytes app/static/images/xinjian.png | Bin 0 -> 1562 bytes app/static/images/xyou.png | Bin 0 -> 343 bytes app/static/images/xzuo.png | Bin 0 -> 355 bytes app/static/images/yhjsy.png | Bin 0 -> 12286 bytes app/store/getters.js | 9 +- app/store/modules/app.js | 61 +- app/uni.scss | 5 +- app/utils/SubscribeMessage.js | 4 - app/utils/cache.js | 10 + app/utils/index.js | 3 - app/utils/request.js | 3 - app/utils/util.js | 1120 ++- app/utils/validate.js | 3 - crmeb/pom.xml | 12 + crmeb/sql/crmeb_1.3.3.1.sql | 7369 ++++++++++++++ crmeb/sql/crmeb_java_v1.3.3.sql | 8828 ----------------- .../main/java/com/common/CheckFrontToken.java | 7 +- .../src/main/java/com/common/CommonPage.java | 6 +- .../java/com/common/SearchAndPageRequest.java | 33 + .../main/java/com/constants/Constants.java | 41 +- .../java/com/constants/CouponConstants.java | 71 + .../constants/IntegralRecordConstants.java | 55 + .../main/java/com/constants/PayConstants.java | 2 + .../RedisConstatns.java} | 13 +- .../main/java/com/constants/SmsConstants.java | 2 +- .../com/constants/SysConfigConstants.java | 48 + .../java/com/constants/WeChatConstants.java | 11 + .../main/java/com/filter/ResponseFilter.java | 31 +- .../interceptor/FrontTokenInterceptor.java | 2 - crmeb/src/main/java/com/utils/AESUtil.java | 80 + crmeb/src/main/java/com/utils/AppleUtil.java | 120 + crmeb/src/main/java/com/utils/ArrayUtil.java | 2 + crmeb/src/main/java/com/utils/CommonUtil.java | 43 + crmeb/src/main/java/com/utils/CrmebUtil.java | 45 +- crmeb/src/main/java/com/utils/RedisUtil.java | 17 +- .../main/java/com/utils/WxPKCS7Encoder.java | 72 + crmeb/src/main/java/com/utils/WxPayUtil.java | 25 + crmeb/src/main/java/com/utils/WxUtil.java | 79 + .../java/com/zbkj/crmeb/CrmebApplication.java | 2 +- .../crmeb/article/service/ArticleService.java | 37 +- .../service/impl/ArticleServiceImpl.java | 167 +- .../manager/TokenManagerImpl.java | 3 - .../controller/StoreBargainController.java | 2 +- .../bargain/model/StoreBargainUserHelp.java | 11 + .../bargain/service/StoreBargainService.java | 56 +- .../service/StoreBargainUserHelpService.java | 80 +- .../service/StoreBargainUserService.java | 50 +- .../service/impl/StoreBargainServiceImpl.java | 354 +- .../impl/StoreBargainUserHelpServiceImpl.java | 373 +- .../impl/StoreBargainUserServiceImpl.java | 514 +- .../controller/CategoryController.java | 1 + .../category/service/CategoryService.java | 6 + .../service/impl/CategoryServiceImpl.java | 16 + .../combination/model/StoreCombination.java | 6 + .../service/StoreCombinationService.java | 29 +- .../combination/service/StorePinkService.java | 18 + .../impl/StoreCombinationServiceImpl.java | 439 +- .../service/impl/StorePinkServiceImpl.java | 57 +- .../java/com/zbkj/crmeb/config/WebConfig.java | 9 +- .../crmeb/express/service/ExpressService.java | 7 +- .../service/impl/ExpressServiceImpl.java | 15 +- .../request/UserRechargeSearchRequest.java | 4 +- .../finance/service/UserRechargeService.java | 9 +- .../service/impl/UserExtractServiceImpl.java | 4 +- .../impl/UserFundsMonitorServiceImpl.java | 12 + .../service/impl/UserRechargeServiceImpl.java | 22 +- .../front/controller/ArticleController.java | 62 +- .../front/controller/BargainController.java | 100 +- .../front/controller/CartController.java | 47 +- .../front/controller/CityController.java | 1 + .../controller/CombinationController.java | 29 +- .../front/controller/CouponController.java | 52 +- .../front/controller/IndexController.java | 37 +- .../front/controller/LoginController.java | 15 +- .../crmeb/front/controller/PayController.java | 2 - .../front/controller/ProductController.java | 57 +- .../front/controller/SecKillController.java | 26 +- .../controller/StoreOrderController.java | 92 +- .../controller/UserAddressController.java | 31 +- .../controller/UserCollectController.java | 44 +- .../front/controller/UserController.java | 135 +- .../controller/UserCouponController.java | 27 +- .../controller/UserRechargeController.java | 25 +- .../front/controller/UserSignController.java | 20 +- .../front/controller/WeChatController.java | 38 +- .../front/request/BargainFrontRequest.java | 4 + .../crmeb/front/request/CartNumRequest.java | 43 + .../front/request/CreateOrderRequest.java | 72 + .../front/request/IosBindingPhoneRequest.java | 36 + .../crmeb/front/request/IosLoginRequest.java | 43 + .../front/request/LoginMobileRequest.java | 9 +- .../crmeb/front/request/LoginRequest.java | 2 + .../request/OrderComputedPriceRequest.java | 48 + .../front/request/OrderCreateRequest.java | 2 +- .../crmeb/front/request/OrderPayRequest.java | 5 +- .../front/request/PreOrderDetailRequest.java | 57 + .../crmeb/front/request/PreOrderRequest.java | 37 + .../crmeb/front/request/ProductRequest.java | 2 + .../front/request/RegisterAppWxRequest.java | 62 + ...ava => UserBindingPhoneUpdateRequest.java} | 13 +- .../front/request/UserRechargeRequest.java | 2 +- .../request/UserSpreadPeopleRequest.java | 2 +- .../front/request/WxBindingPhoneRequest.java | 58 + .../ApplyRefundOrderInfoResponse.java | 51 + .../crmeb/front/response/ArticleResponse.java | 60 + .../response/BargainDetailH5Response.java | 86 + .../front/response/BargainHeaderResponse.java | 39 + .../front/response/BargainIndexResponse.java | 33 + .../front/response/BargainRecordResponse.java | 68 + .../response/BargainUserInfoResponse.java | 104 + .../front/response/CartInfoResponse.java | 70 + .../response/CombinationDetailH5Response.java | 82 + .../response/CombinationDetailResponse.java | 26 +- .../response/CombinationHeaderResponse.java | 38 + .../response/CombinationIndexResponse.java | 39 + .../response/ComputedOrderPriceResponse.java | 57 + .../front/response/IndexInfoResponse.java | 35 +- .../front/response/IndexProductResponse.java | 60 + .../front/response/IntegralUserResponse.java | 80 + .../crmeb/front/response/LoginResponse.java | 16 +- .../front/response/OrderDataResponse.java | 48 +- .../front/response/OrderDetailResponse.java | 107 + .../front/response/OrderInfoResponse.java | 68 + .../response/OrderProductReplyResponse.java | 51 + .../front/response/PreOrderResponse.java | 47 + .../response/ProductActivityItemResponse.java | 2 +- .../front/response/ProductAttrResponse.java | 51 + .../response/ProductDetailReplyResponse.java | 40 + .../front/response/ProductDetailResponse.java | 40 +- .../front/response/ProductReplyResponse.java | 63 + .../response/SecKillDetailH5Response.java | 95 + .../crmeb/front/response/SecKillResponse.java | 23 +- .../front/response/SeckillIndexResponse.java | 35 + .../response/StoreBargainDetailResponse.java | 55 + .../response/StoreCombinationH5Response.java | 61 + .../response/StoreOrderDetailResponse.java | 259 +- .../response/StoreSecKillH5Response.java | 65 + .../front/response/UserCenterResponse.java | 93 +- .../response/UserExtractCashResponse.java | 12 +- .../response/UserRechargeItemResponse.java | 4 +- .../front/response/UserRechargeResponse.java | 7 +- .../front/response/UserRelationResponse.java | 50 + .../front/response/UserSignInfoResponse.java | 40 +- .../crmeb/front/service/IndexService.java | 15 +- .../crmeb/front/service/LoginService.java | 11 +- .../crmeb/front/service/OrderService.java | 100 +- .../crmeb/front/service/ProductService.java | 48 +- .../front/service/UserCenterService.java | 63 +- .../front/service/impl/IndexServiceImpl.java | 187 +- .../front/service/impl/LoginServiceImpl.java | 92 +- .../front/service/impl/OrderServiceImpl.java | 2120 +++- .../service/impl/ProductServiceImpl.java | 467 +- .../front/service/impl/QrCodeServiceImpl.java | 13 +- .../service/impl/UserCenterServiceImpl.java | 894 +- .../com/zbkj/crmeb/front/utils/userUtil.java | 97 - .../com/zbkj/crmeb/front/vo/OrderAgainVo.java | 5 +- .../crmeb/front/vo/OrderInfoDetailVo.java | 61 + .../com/zbkj/crmeb/front/vo/OrderInfoVo.java | 101 + .../zbkj/crmeb/front/vo/WxPayJsResultVo.java | 6 + .../controller/StoreCouponController.java | 35 +- .../crmeb/marketing/model/StoreCoupon.java | 5 + .../response/StoreCouponFrontResponse.java | 40 +- .../marketing/service/StoreCouponService.java | 37 +- .../service/StoreCouponUserService.java | 28 +- .../service/impl/StoreCouponServiceImpl.java | 236 +- .../impl/StoreCouponUserServiceImpl.java | 238 +- .../crmeb/pass/service/OnePassService.java | 5 + .../pass/service/impl/OnePassServiceImpl.java | 16 + .../payment/service/OrderPayService.java | 12 +- .../payment/service/RechargePayService.java | 5 - .../service/impl/CallbackServiceImpl.java | 11 +- .../service/impl/OrderPayServiceImpl.java | 541 +- .../service/impl/RechargePayServiceImpl.java | 204 +- .../wechat/impl/WeChatPayServiceImpl.java | 72 +- .../controller/StoreSeckillController.java | 3 + .../StoreSeckillMangerController.java | 7 +- .../seckill/model/StoreSeckillManger.java | 2 +- .../response/StoreSeckillDetailResponse.java | 80 +- .../response/StoreSeckillResponse.java | 16 +- .../service/StoreSeckillMangerService.java | 6 + .../seckill/service/StoreSeckillService.java | 41 +- .../impl/StoreSeckillMangerServiceImpl.java | 37 +- .../service/impl/StoreSeckillServiceImpl.java | 494 +- .../sms/controller/SmsRecordController.java | 2 + .../sms/service/impl/SmsServiceImpl.java | 199 +- .../controller/RetailShopController.java | 6 +- .../controller/StoreOrderController.java | 156 +- .../controller/StoreProductController.java | 33 +- .../StoreProductReplyController.java | 7 +- .../store/dao/StoreProductRelationDao.java | 3 + .../zbkj/crmeb/store/model/StoreOrder.java | 12 +- .../zbkj/crmeb/store/model/StoreProduct.java | 9 +- .../request/StoreOrderEditPriceRequest.java | 2 +- .../request/StoreOrderRefundRequest.java | 8 +- .../request/StoreOrderSearchRequest.java | 17 +- .../store/request/StoreOrderSendRequest.java | 7 +- .../StoreOrderStatusSearchRequest.java | 18 +- ...java => StoreOrderUpdatePriceRequest.java} | 21 +- .../request/StoreProductAttrValueRequest.java | 2 +- .../request/StoreProductReplyAddRequest.java | 4 +- .../store/request/StoreProductRequest.java | 14 +- .../store/request/VideoOrderSendRequest.java | 41 + .../store/response/SpreadOrderResponse.java | 49 + .../response/StoreOrderCountItemResponse.java | 15 +- .../response/StoreOrderDetailResponse.java | 108 + .../response/StoreOrderInfoResponse.java | 123 +- .../response/StoreOrderTopItemResponse.java | 9 +- ...StoreOrderVerificationConfirmResponse.java | 7 +- .../crmeb/store/service/OrderTaskService.java | 2 - .../crmeb/store/service/StoreCartService.java | 31 +- .../store/service/StoreOrderInfoService.java | 20 +- .../store/service/StoreOrderService.java | 226 +- .../store/service/StoreOrderTaskService.java | 4 - .../service/StoreProductRelationService.java | 30 +- .../service/StoreProductReplyService.java | 28 +- .../store/service/StoreProductService.java | 38 + .../service/impl/OrderTaskServiceImpl.java | 55 +- .../service/impl/RetailShopServiceImpl.java | 6 +- .../service/impl/StoreCartServiceImpl.java | 172 +- .../impl/StoreOrderInfoServiceImpl.java | 66 +- .../impl/StoreOrderRefundServiceImpl.java | 17 +- .../service/impl/StoreOrderServiceImpl.java | 1117 ++- .../impl/StoreOrderStatusServiceImpl.java | 20 +- .../impl/StoreOrderTaskServiceImpl.java | 532 +- .../impl/StoreOrderVerificationImpl.java | 8 +- .../StoreProductAttrValueServiceImpl.java | 19 +- .../impl/StoreProductRelationServiceImpl.java | 90 +- .../impl/StoreProductReplyServiceImpl.java | 224 +- .../service/impl/StoreProductServiceImpl.java | 309 +- .../crmeb/store/utilService/OrderUtils.java | 274 +- .../crmeb/store/vo/StoreOrderInfoOldVo.java | 59 + .../zbkj/crmeb/store/vo/StoreOrderInfoVo.java | 15 +- .../system/controller/RedirectController.java | 13 - .../controller/SystemGroupDataController.java | 10 +- .../zbkj/crmeb/system/dao/SystemAdminDao.java | 3 +- .../request/SystemUserLevelRequest.java | 21 +- .../response/StoreOrderItemResponse.java | 8 +- .../service/SystemGroupDataService.java | 7 +- .../system/service/SystemStoreService.java | 10 +- .../service/SystemUserLevelService.java | 5 + .../service/impl/SystemAdminServiceImpl.java | 2 +- .../impl/SystemAttachmentServiceImpl.java | 3 +- .../impl/SystemGroupDataServiceImpl.java | 15 +- .../service/impl/SystemStoreServiceImpl.java | 46 +- .../impl/SystemUserLevelServiceImpl.java | 84 +- .../IntegralFrozenTask.java} | 23 +- .../wechat/AsyncWeChatProgramTempList.java | 53 - .../upload/service/impl/AsyncServiceImpl.java | 15 +- .../crmeb/user/controller/UserController.java | 21 +- .../controller/UserIntegralController.java | 53 + .../java/com/zbkj/crmeb/user/dao/UserDao.java | 2 + .../crmeb/user/dao/UserIntegralRecordDao.java | 20 + .../crmeb/user/model/UserIntegralRecord.java | 80 + .../com/zbkj/crmeb/user/model/UserToken.java | 2 +- .../request/AdminIntegralSearchRequest.java | 40 + .../request/RegisterThirdUserRequest.java | 10 +- .../user/request/UserOperateFundsRequest.java | 66 - .../UserOperateIntegralMoneyRequest.java | 8 +- .../zbkj/crmeb/user/request/UserRequest.java | 4 - .../crmeb/user/request/UserUpdateRequest.java | 67 + .../response/UserIntegralRecordResponse.java | 79 + .../user/service/UserAddressService.java | 22 +- .../crmeb/user/service/UserBillService.java | 10 + .../service/UserBrokerageRecordService.java | 10 + .../service/UserIntegralRecordService.java | 71 + .../zbkj/crmeb/user/service/UserService.java | 80 +- .../crmeb/user/service/UserSignService.java | 7 +- .../crmeb/user/service/UserTokenService.java | 2 +- .../service/impl/UserAddressServiceImpl.java | 63 +- .../service/impl/UserBillServiceImpl.java | 23 +- .../impl/UserBrokerageRecordServiceImpl.java | 25 + .../impl/UserIntegralRecordServiceImpl.java | 254 + .../service/impl/UserLevelServiceImpl.java | 4 +- .../user/service/impl/UserServiceImpl.java | 901 +- .../service/impl/UserSignServiceImpl.java | 220 +- .../service/impl/UserTokenServiceImpl.java | 2 +- .../com/zbkj/crmeb/user/vo/UserSignVo.java | 7 +- ...WeChatAuthorizeLoginGetOpenIdResponse.java | 2 +- .../crmeb/wechat/service/WeChatService.java | 4 +- .../service/impl/WeChatServiceImpl.java | 88 +- crmeb/src/main/resources/application-beta.yml | 10 +- crmeb/src/main/resources/application-dev.yml | 10 +- crmeb/src/main/resources/application-prod.yml | 12 +- crmeb/src/main/resources/application.yml | 14 +- crmeb/src/main/resources/logback-spring.xml | 108 +- .../mapper/finance/UserFundsMonitorMapper.xml | 6 +- .../pay/component/PayComponentBrandMapper.xml | 5 + .../pay/component/PayComponentCatMapper.xml | 5 + .../PayComponentDraftProductMapper.xml | 5 + .../PayComponentProductAuditInfoMapper.xml | 5 + .../PayComponentProductInfoMapper.xml | 5 + .../component/PayComponentProductMapper.xml | 5 + .../PayComponentProductSkuAttrMapper.xml | 5 + .../PayComponentProductSkuMapper.xml | 5 + .../store/StoreProductRelationMapper.xml | 12 +- .../mapper/user/UserIntegralRecordMapper.xml | 5 + .../main/resources/mapper/user/UserMapper.xml | 66 +- 582 files changed, 35633 insertions(+), 28276 deletions(-) create mode 100644 admin/src/assets/js/canvas-nest.min.js create mode 100644 admin/src/views/login/mixins.js create mode 100644 admin/src/views/maintain/authCRMEB/index.vue create mode 100644 admin/src/views/order/orderVideoSend.vue create mode 100644 app/libs/apps.js create mode 100644 app/pages/activity/static/btn.png create mode 100644 app/pages/activity/static/canbj.png create mode 100644 app/pages/activity/static/cheng.png create mode 100644 app/pages/activity/static/chengh.png create mode 100644 app/pages/activity/static/lun.png create mode 100644 app/pages/activity/static/n1.png create mode 100644 app/pages/activity/static/n2.png create mode 100644 app/pages/activity/static/n3.png create mode 100644 app/pages/activity/static/pinbei.png create mode 100644 app/pages/activity/static/shandian.png create mode 100644 app/pages/activity/static/woman.png create mode 100644 app/pages/activity/static/you.png create mode 100644 app/pages/activity/static/you2.png create mode 100644 app/pages/activity/static/zhuangshi.png create mode 100644 app/pages/activity/static/zuo.png create mode 100644 app/pages/activity/static/zuo2.png delete mode 100644 app/pages/admin/delivery/index.vue delete mode 100644 app/pages/admin/order/index.vue delete mode 100644 app/pages/admin/orderDetail/index.vue delete mode 100644 app/pages/admin/orderList/index.vue delete mode 100644 app/pages/admin/order_cancellation/index.vue delete mode 100644 app/pages/admin/static/scan.gif delete mode 100644 app/pages/admin/statistics/index.vue create mode 100644 app/pages/users/app_login/index.vue create mode 100644 app/pages/users/kefu/index.vue create mode 100644 app/pages/users/privacy/index.vue create mode 100644 app/pages/users/web_page/index.vue create mode 100644 app/static/iconfont/iconfont-app.css create mode 100644 app/static/images/bargainBg.png create mode 100644 app/static/images/kanjia.png delete mode 100644 app/static/images/left.png create mode 100644 app/static/images/lingyhj.png create mode 100644 app/static/images/weiling.png create mode 100644 app/static/images/xinjian.png create mode 100644 app/static/images/xyou.png create mode 100644 app/static/images/xzuo.png create mode 100644 app/static/images/yhjsy.png create mode 100644 crmeb/sql/crmeb_1.3.3.1.sql delete mode 100644 crmeb/sql/crmeb_java_v1.3.3.sql create mode 100644 crmeb/src/main/java/com/common/SearchAndPageRequest.java create mode 100644 crmeb/src/main/java/com/constants/CouponConstants.java create mode 100644 crmeb/src/main/java/com/constants/IntegralRecordConstants.java rename crmeb/src/main/java/com/{zbkj/crmeb/payment/service/PayService.java => constants/RedisConstatns.java} (65%) create mode 100644 crmeb/src/main/java/com/utils/AESUtil.java create mode 100644 crmeb/src/main/java/com/utils/AppleUtil.java create mode 100644 crmeb/src/main/java/com/utils/CommonUtil.java create mode 100644 crmeb/src/main/java/com/utils/WxPKCS7Encoder.java create mode 100644 crmeb/src/main/java/com/utils/WxUtil.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/CartNumRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/CreateOrderRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/IosBindingPhoneRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/IosLoginRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/OrderComputedPriceRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/PreOrderDetailRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/PreOrderRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/RegisterAppWxRequest.java rename crmeb/src/main/java/com/zbkj/crmeb/front/request/{UserBindingRequest.java => UserBindingPhoneUpdateRequest.java} (82%) create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/request/WxBindingPhoneRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ApplyRefundOrderInfoResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ArticleResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/BargainDetailH5Response.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/BargainHeaderResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/BargainIndexResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/BargainRecordResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/BargainUserInfoResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/CartInfoResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/CombinationDetailH5Response.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/CombinationHeaderResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/CombinationIndexResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ComputedOrderPriceResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/IndexProductResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/IntegralUserResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/OrderDetailResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/OrderInfoResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/OrderProductReplyResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/PreOrderResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ProductAttrResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ProductDetailReplyResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/ProductReplyResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/SecKillDetailH5Response.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/SeckillIndexResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/StoreBargainDetailResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/StoreCombinationH5Response.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/StoreSecKillH5Response.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/response/UserRelationResponse.java delete mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/utils/userUtil.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/vo/OrderInfoDetailVo.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/front/vo/OrderInfoVo.java rename crmeb/src/main/java/com/zbkj/crmeb/store/request/{StoreOrderRequest.java => StoreOrderUpdatePriceRequest.java} (71%) create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/store/request/VideoOrderSendRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/store/response/SpreadOrderResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/store/response/StoreOrderDetailResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/store/vo/StoreOrderInfoOldVo.java delete mode 100644 crmeb/src/main/java/com/zbkj/crmeb/system/controller/RedirectController.java rename crmeb/src/main/java/com/zbkj/crmeb/task/{order/OrderDeleteTask.java => integral/IntegralFrozenTask.java} (68%) delete mode 100644 crmeb/src/main/java/com/zbkj/crmeb/task/wechat/AsyncWeChatProgramTempList.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/controller/UserIntegralController.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/dao/UserIntegralRecordDao.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/model/UserIntegralRecord.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/request/AdminIntegralSearchRequest.java delete mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/request/UserOperateFundsRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/request/UserUpdateRequest.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/response/UserIntegralRecordResponse.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/service/UserIntegralRecordService.java create mode 100644 crmeb/src/main/java/com/zbkj/crmeb/user/service/impl/UserIntegralRecordServiceImpl.java create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentBrandMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentCatMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentDraftProductMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentProductAuditInfoMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentProductInfoMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentProductMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentProductSkuAttrMapper.xml create mode 100644 crmeb/src/main/resources/mapper/pay/component/PayComponentProductSkuMapper.xml create mode 100644 crmeb/src/main/resources/mapper/user/UserIntegralRecordMapper.xml diff --git a/README.md b/README.md index a98b9273..90abcece 100644 --- a/README.md +++ b/README.md @@ -19,18 +19,19 @@ JAVA版商城系统是基于Java(SpringBoot) + Vue(Element UI) + UniApp开发的 网络营销的一款企业应用,更适合企业二次开发。 ~~~~ - -![](https://gitee.com/stivepeim/img4mk/raw/master/20210205091003.png) +![](https://gitee.com/stivepeim/img4mk/raw/master/20210611144457.png) ## 导航栏目 - [![帮助手册](https://img.shields.io/badge/%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C-Java%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C-orange)](http://help.crmeb.net/crmeb_java/1748037t) + + + ### [帮助手册](https://help.crmeb.net/crmeb_java/1748037) [论坛地址](https://q.crmeb.net) [官网地址](https://www.crmeb.com) [服务器](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=dligum2z) [授权价格](http://crmeb.com/web/auth/apply) [GitHub地址](https://github.com/crmeb/crmeb_java) [码云地址](https://gitee.com/ZhongBangKeJi/crmeb_java) ## 预览 ![二维码预览](https://gitee.com/stivepeim/img4mk/raw/master/20210519104517.jpg) @@ -72,9 +73,12 @@ JAVA版商城系统是基于Java(SpringBoot) + Vue(Element UI) + UniApp开发的 ~~~ ## 移动端预览 -![](https://gitee.com/stivepeim/img4mk/raw/master/20210204184108.jpg) + +![](https://gitee.com/stivepeim/img4mk/raw/master/20210611145305.png) +![](https://gitee.com/stivepeim/img4mk/raw/master/20210611145407.png) +![](https://gitee.com/stivepeim/img4mk/raw/master/20210611145443.png) ## 功能图预览 ![项目基本功能介绍](https://gitee.com/stivepeim/img4mk/raw/master/20201225180349.jpeg) @@ -86,22 +90,6 @@ JAVA版商城系统是基于Java(SpringBoot) + Vue(Element UI) + UniApp开发的 ![复制第三方平台商品](https://gitee.com/stivepeim/img4mk/raw/master/20210202175224.png) ![营销功能](https://gitee.com/stivepeim/img4mk/raw/master/20210202175547.png) ![自定义表单组件](https://gitee.com/stivepeim/img4mk/raw/master/20210202175013.png) - - ## 项目源码 @@ -110,7 +98,7 @@ JAVA版商城系统是基于Java(SpringBoot) + Vue(Element UI) + UniApp开发的 |gitHub| https://github.com/crmeb/crmeb_java| |gitee|https://gitee.com/ZhongBangKeJi/crmeb_java| -![](https://gitee.com/stivepeim/img4mk/raw/master/20210205091002.jpeg) + ## 运行环境及框架 ~~~ diff --git a/admin/src/api/marketing.js b/admin/src/api/marketing.js index c6748f2b..4c27bbc0 100644 --- a/admin/src/api/marketing.js +++ b/admin/src/api/marketing.js @@ -12,6 +12,17 @@ export function marketingListApi(params) { }) } +/** + * 用户管理 优惠券列表 + * @param pram + */ +export function marketingSendApi(params) { + return request({ + url: '/admin/marketing/coupon/send/list', + method: 'get', + params + }) +} /** * 优惠券 详情 @@ -61,6 +72,18 @@ export function couponIssueStatusApi(params) { }) } +/** + * 优惠券 删除 + * @param pram + */ +export function couponDeleteApi(params) { + return request({ + url: '/admin/marketing/coupon/delete', + method: 'post', + params + }) +} + /** * 会员领取记录 列表 * @param pram @@ -79,7 +102,7 @@ export function couponUserListApi(params) { */ export function integralListApi(params, data) { return request({ - url: '/admin/user/bill/list', + url: '/admin/user/integral/list', method: 'post', params, data @@ -439,3 +462,109 @@ export function exportcombiantionApi(params) { params }) } + +/** + * 视频号 草稿列表 + */ +export function draftListApi(params) { + return request({ + url: `/admin/pay/component/product/draft/list`, + method: 'get', + params + }) +} + + +/** + * 视频号 商品列表 + */ +export function videoProductListApi(params) { + return request({ + url: `/admin/pay/component/product/list`, + method: 'get', + params + }) +} + +/** + * 视频号 类目 + */ +export function catListApi(params) { + return request({ + url: `/admin/pay/component/cat/get/list`, + method: 'get' + }) +} + +/** + * 视频号 添加 + */ +export function videoAddApi(data) { + return request({ + url: `/admin/pay/component/product/add`, + method: 'post', + data + }) +} + +/** + * 视频号 编辑 + */ +export function videoUpdateApi(data) { + return request({ + url: `/admin/pay/component/product/update`, + method: 'post', + data + }) +} + +/** + * 视频号 上架 + */ +export function videoUpApi(proId) { + return request({ + url: `/admin/pay/component/product/listing/${proId}`, + method: 'post' + }) +} + +/** + * 视频号 下架 + */ +export function videoDownApi(proId) { + return request({ + url: `/admin/pay/component/product/delisting/${proId}`, + method: 'post' + }) +} + +/** + * 视频号 删除 + */ +export function videoDelApi(proId) { + return request({ + url: `/admin/pay/component/product/delete/${proId}`, + method: 'post' + }) +} + +/** + * 视频号 草稿商品详情 + */ +export function draftInfoApi(id) { + return request({ + url: `/admin/pay/component/product/draft/get/${id}`, + method: 'get' + }) +} + +/** + * 视频号 草稿商品编辑 + */ +export function draftUpdateApi(data) { + return request({ + url: `/admin/pay/component/product/update`, + method: 'post', + data + }) +} diff --git a/admin/src/api/order.js b/admin/src/api/order.js index 2edb55ce..a6861642 100644 --- a/admin/src/api/order.js +++ b/admin/src/api/order.js @@ -2,7 +2,7 @@ import request from '@/utils/request' /** * 订单 列表 - * @param pram + * @param prams */ export function orderListApi(params) { return request({ @@ -12,10 +12,32 @@ export function orderListApi(params) { }) } +/** + * 订单 列表 获取各状态数量 + * @param params + */ +export function orderStatusNumApi(params) { + return request({ + url: '/admin/store/order/status/num', + method: 'get', + params + }) +} +/** + * 订单 列表 数据统计 + * @param params + */ +export function orderListDataApi(params) { + return request({ + url: '/admin/store/order/list/data', + method: 'get', + params + }) +} /** * 订单 删除 - * @param pram + * @param params */ export function orderDeleteApi(params) { return request({ @@ -27,7 +49,7 @@ export function orderDeleteApi(params) { /** * 订单 编辑 - * @param pram + * @param prams */ export function orderUpdateApi(data, params) { return request({ @@ -40,7 +62,7 @@ export function orderUpdateApi(data, params) { /** * 订单 记录 - * @param pram + * @param prams */ export function orderLogApi(params) { return request({ @@ -52,7 +74,7 @@ export function orderLogApi(params) { /** * 订单 详情 - * @param pram + * @param prams */ export function orderDetailApi(params) { return request({ @@ -64,7 +86,7 @@ export function orderDetailApi(params) { /** * 订单 备注 - * @param pram + * @param prams */ export function orderMarkApi(params) { return request({ @@ -76,7 +98,7 @@ export function orderMarkApi(params) { /** * 订单 发货 - * @param pram + * @param prams */ export function orderSendApi(data) { return request({ @@ -88,7 +110,7 @@ export function orderSendApi(data) { /** * 订单 拒绝退款 - * @param pram + * @param prams */ export function orderRefuseApi(params) { return request({ @@ -100,7 +122,7 @@ export function orderRefuseApi(params) { /** * 订单 立即退款 - * @param pram + * @param prams */ export function orderRefundApi(params) { return request({ @@ -112,7 +134,7 @@ export function orderRefundApi(params) { /** * 订单 核销订单 - * @param pram + * @param prams */ export function writeUpdateApi(vCode) { return request({ @@ -123,7 +145,7 @@ export function writeUpdateApi(vCode) { /** * 订单 核销码查询待核销订单 - * @param pram + * @param prams */ export function writeConfirmApi(vCode) { return request({ @@ -195,3 +217,24 @@ export function getLogisticsInfoApi(params) { params }) } + +/** + *视频号物流公司 + */ +export function companyGetListApi() { + return request({ + url: `/admin/pay/component/delivery/company/get/list`, + method: 'get' + }) +} + +/** + *视频号物流公司 + */ +export function videoSendApi(data) { + return request({ + url: `/admin/store/order/video/send`, + method: 'post', + data + }) +} diff --git a/admin/src/api/systemadmin.js b/admin/src/api/systemadmin.js index 37d21a7a..031c7df3 100644 --- a/admin/src/api/systemadmin.js +++ b/admin/src/api/systemadmin.js @@ -44,7 +44,8 @@ export function adminAdd(pram) { pwd: pram.pwd, realName: pram.realName, roles: pram.roles.join(','), - status: pram.status + status: pram.status, + phone: pram.phone } return request({ url: '/admin/system/admin/save', diff --git a/admin/src/api/user.js b/admin/src/api/user.js index 1b001943..517f34a8 100644 --- a/admin/src/api/user.js +++ b/admin/src/api/user.js @@ -357,3 +357,14 @@ export function updateSpreadApi(data) { data }) } + +/** + * @description 修改手机号 + */ +export function updatePhoneApi(params) { + return request({ + url: `/admin/user/update/phone`, + method: 'get', + params + }) +} diff --git a/admin/src/assets/imgs/pc1.jpg b/admin/src/assets/imgs/pc1.jpg index b5d77f259764b4b2566ddd3104f87a4c54633017..e23fcd6a7bded7a53addc055b9bf5ca891f533e4 100644 GIT binary patch literal 97558 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 literal 103042 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�n)&e3u{%~ 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 diff --git a/admin/src/assets/js/canvas-nest.min.js b/admin/src/assets/js/canvas-nest.min.js new file mode 100644 index 00000000..2ed0be7b --- /dev/null +++ b/admin/src/assets/js/canvas-nest.min.js @@ -0,0 +1,85 @@ +// JavaScript Document +! function() { + function o(w, v, i) { + return w.getAttribute(v) || i + } + + function j(i) { + return document.getElementsByTagName(i) + } + + function l() { + var i = j("script"), + w = i.length, + v = i[w - 1]; + return { + l: w, + z: o(v, "zIndex", -2), + o: o(v, "opacity", 0.8), + c: o(v, "color", "255,255,255"), + n: o(v, "count", 240) + } + } + + function k() { + r = u.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, n = u.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight + } + + function b() { + delay = delay + 1; + if( delay < 5 ) { m(b) } else { delay = 0; + e.clearRect(0, 0, r, n); + var w = [f].concat(t); + var x, v, A, B, z, y; + t.forEach(function(i) { + i.x += i.xa, i.y += i.ya, i.xa *= i.x > r || i.x < 0 ? -1 : 1, i.ya *= i.y > n || i.y < 0 ? -1 : 1, e.fillRect(i.x - 0.5, i.y - 0.5, 2, 2);e.fillStyle="#FFFFFF"; + for (v = 0; v < w.length; v++) { + x = w[v]; + if (i !== x && null !== x.x && null !== x.y) { + B = i.x - x.x, z = i.y - x.y, y = B * B + z * z; + y < x.max && (x === f && y >= x.max / 2 && (i.x -= 0.03 * B, i.y -= 0.03 * z), A = (x.max - y) / x.max, e.beginPath(), e.lineWidth = A / 2, e.strokeStyle = "rgba(" + s.c + "," + (A + 0.2) + ")", e.moveTo(i.x, i.y), e.lineTo(x.x, x.y), e.stroke()) + } + } + w.splice(w.indexOf(i), 1) + }), m(b) } + } + var u = document.createElement("canvas"), + s = l(), + c = "c_n" + s.l, + e = u.getContext("2d"), + delay = 0, + r, n, m = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(i) { + window.setTimeout(i, 1000 / 45) + }, + a = Math.random, + f = { + x: null, + y: null, + max: 20000 + } + u.id = c; + u.style.cssText = "position:fixed;top:0;left:0;z-index:" + s.z + ";opacity:" + s.o; + j("body")[0].appendChild(u); + k(), window.onresize = k; + window.onmousemove = function(i) { + i = i || window.event, f.x = i.clientX, f.y = i.clientY + }, window.onmouseout = function() { + f.x = null, f.y = null + }; + for (var t = [], p = 0; s.n > p; p++) { + var h = a() * r, + g = a() * n, + q = 2 * a() - 1, + d = 2 * a() - 1; + t.push({ + x: h, + y: g, + xa: q, + ya: d, + max: 6000 + }) + } + setTimeout(function() { + b() + }, 100) +}(); \ No newline at end of file diff --git a/admin/src/components/Category/edit.vue b/admin/src/components/Category/edit.vue index c8e5a6d9..4f4c5807 100644 --- a/admin/src/components/Category/edit.vue +++ b/admin/src/components/Category/edit.vue @@ -8,7 +8,7 @@ > - + diff --git a/admin/src/components/couponList/couponFrom/index.js b/admin/src/components/couponList/couponFrom/index.js index 207d69c5..07d50a51 100644 --- a/admin/src/components/couponList/couponFrom/index.js +++ b/admin/src/components/couponList/couponFrom/index.js @@ -13,13 +13,14 @@ couponFrom.install = function(Vue, options) { const instance = new ToastConstructor() instance.$mount(document.createElement('div')) document.body.appendChild(instance.$el) - Vue.prototype.$modalCoupon = function(handle, keyNum, coupons=[], callback, userIds='') { + Vue.prototype.$modalCoupon = function(handle, keyNum, coupons=[], callback, userIds='', userType='') { instance.visible = true instance.handle = handle instance.keyNum = keyNum instance.coupons = coupons instance.userIds = userIds instance.callback = callback + instance.userType = userType } } export default couponFrom diff --git a/admin/src/components/couponList/couponFrom/index.vue b/admin/src/components/couponList/couponFrom/index.vue index b3447121..f7d74c4c 100644 --- a/admin/src/components/couponList/couponFrom/index.vue +++ b/admin/src/components/couponList/couponFrom/index.vue @@ -6,7 +6,7 @@ width="896px" :before-close="handleClose" > - + @@ -24,7 +24,8 @@ handle: '', keyNum: 0, coupons: [], - userIds: '' + userIds: '', + userType: '' } }, watch: { diff --git a/admin/src/components/couponList/index.vue b/admin/src/components/couponList/index.vue index 4fbb6650..1ef5bdea 100644 --- a/admin/src/components/couponList/index.vue +++ b/admin/src/components/couponList/index.vue @@ -3,8 +3,8 @@
- - + + @@ -91,7 +91,7 @@ + + diff --git a/admin/src/views/marketing/bargain/bargainGoods/creatBargain.vue b/admin/src/views/marketing/bargain/bargainGoods/creatBargain.vue index 267d285c..e7490832 100644 --- a/admin/src/views/marketing/bargain/bargainGoods/creatBargain.vue +++ b/admin/src/views/marketing/bargain/bargainGoods/creatBargain.vue @@ -218,9 +218,6 @@ - - -
{ @@ -614,8 +609,7 @@ status: res.status, num : res.num, bargainNum : res.bargainNum, - peopleNum : res.peopleNum, - rule : res.rule + peopleNum : res.peopleNum } if(res.specType){ this.ManyAttrValue = res.attrValues; diff --git a/admin/src/views/marketing/coupon/list/index.vue b/admin/src/views/marketing/coupon/list/index.vue index 61fcdf46..f367c986 100644 --- a/admin/src/views/marketing/coupon/list/index.vue +++ b/admin/src/views/marketing/coupon/list/index.vue @@ -108,12 +108,13 @@ /> - + @@ -179,7 +180,7 @@ diff --git a/admin/src/views/marketing/coupon/record/index.vue b/admin/src/views/marketing/coupon/record/index.vue index 3f1e6fff..0c93a30b 100644 --- a/admin/src/views/marketing/coupon/record/index.vue +++ b/admin/src/views/marketing/coupon/record/index.vue @@ -13,7 +13,7 @@ + :remote-method="remoteMethod" :loading="loading" placeholder="请输入领取人" clearable @change="seachList"> - - - - + + +
@@ -58,8 +52,8 @@ sortable label="明细数字" min-width="120" - prop="number" - :sort-method="(a,b)=>{return a.number - b.number}" + prop="integral" + :sort-method="(a,b)=>{return a.integral - b.integral}" /> @@ -94,7 +88,6 @@ + + diff --git a/admin/src/views/sms/smsConfig/components/loginFrom.vue b/admin/src/views/sms/smsConfig/components/loginFrom.vue index 85802c67..9af75734 100644 --- a/admin/src/views/sms/smsConfig/components/loginFrom.vue +++ b/admin/src/views/sms/smsConfig/components/loginFrom.vue @@ -38,11 +38,19 @@ 登录 -
+
忘记密码 注册账户
+ + 平台说明 + diff --git a/admin/src/views/sms/smsConfig/index.vue b/admin/src/views/sms/smsConfig/index.vue index 531e113c..cdb8c330 100644 --- a/admin/src/views/sms/smsConfig/index.vue +++ b/admin/src/views/sms/smsConfig/index.vue @@ -11,6 +11,15 @@ 修改密码 修改手机号 退出登录 + + 平台说明 + +
diff --git a/admin/src/views/sms/smsPay/index.vue b/admin/src/views/sms/smsPay/index.vue index 438ee5e2..8dc18b98 100644 --- a/admin/src/views/sms/smsPay/index.vue +++ b/admin/src/views/sms/smsPay/index.vue @@ -51,7 +51,7 @@ >
¥ {{ item.price }}
- 短信条数: {{ item.num }} + {{tableFrom.type | onePassTypeFilter}}条数: {{ item.num }}
diff --git a/admin/src/views/store/creatStore/index.vue b/admin/src/views/store/creatStore/index.vue index 5cfebf1d..63701c9f 100644 --- a/admin/src/views/store/creatStore/index.vue +++ b/admin/src/views/store/creatStore/index.vue @@ -6,7 +6,7 @@ - + @@ -14,32 +14,32 @@ - + - + - + - + - + -
+
@@ -61,9 +61,9 @@ @dragend="handleDragEnd($event, item)" > - +
-
+
@@ -74,7 +74,7 @@
- + - 添加运费模板 + 添加运费模板
- - -
- - {{ tag.name }} - - 选择优惠券 -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ item.name }} - - - - - -
-
{{item}}
-
可拖动按钮调整活动的优先展示顺序
-
-
-
-
- - + 单规格 多规格 - + 单独设置 默认设置 - + + +
@@ -233,7 +162,7 @@ - + @@ -287,30 +216,30 @@ - + @@ -326,20 +255,20 @@ - + @@ -348,10 +277,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.name }} + + + + + +
+
{{item}}
+
可拖动按钮调整活动的优先展示顺序
+
+
+
+ + +
+ + {{ tag.name }} + + + 选择优惠券 +
+
+
+
上一步 - 下一步 - 提交 + 下一步 + 提交 @@ -434,6 +442,7 @@ components: {Templates, CreatTemplates }, data() { return { + isDisabled: this.$route.params.isDisabled==='1'?true:false, activity: { '默认': 'red', '秒杀': 'blue', '砍价': 'green', '拼团': 'yellow' }, props2: { children: 'child', @@ -581,7 +590,7 @@ }, '') }, setTagsViewTitle() { - const title = '编辑商品' + const title = this.isDisabled?'商品详情':'编辑商品' const route = Object.assign({}, this.tempRoute, { title: `${title}-${this.$route.params.id}` }) this.$store.dispatch('tagsView/updateVisitedView', route) }, @@ -804,6 +813,7 @@ this.isBtn = false }, clearAttr() { + this.isAttr = true this.formDynamic.attrsName = '' this.formDynamic.attrsVal = '' }, @@ -860,7 +870,7 @@ getInfo () { this.fullscreenLoading = true productDetailApi(this.$route.params.id).then(async res => { - this.isAttr = false; + this.isAttr = true; let info = res this.formValidate = { image: this.$selfUtil.setDomain(info.image), @@ -896,7 +906,7 @@ let imgss = [] Object.keys(imgs).map(i => { imgss.push(this.$selfUtil.setDomain(imgs[i])) - }) + }) this.formValidate.sliderImages = [ ...imgss ] if(info.isHot) this.checkboxGroup.push('isHot') if(info.isGood) this.checkboxGroup.push('isGood') @@ -940,7 +950,8 @@ }, // 点击商品图 modalPicTap (tit, num, i) { - const _this = this + const _this = this; + if(_this.isDisabled) return; this.$modalUpload(function(img) { if(tit==='1'&& !num){ _this.formValidate.image = img[0].sattDir @@ -1032,40 +1043,55 @@ }, // 移动 handleDragStart (e, item) { - this.dragging = item; + if(!this.isDisabled) this.dragging = item; }, handleDragEnd (e, item) { - this.dragging = null + if(!this.isDisabled) this.dragging = null }, handleDragOver (e) { - e.dataTransfer.dropEffect = 'move' + if(!this.isDisabled) e.dataTransfer.dropEffect = 'move' }, handleDragEnter (e, item) { - e.dataTransfer.effectAllowed = 'move' - if (item === this.dragging) { - return + if(!this.isDisabled){ + e.dataTransfer.effectAllowed = 'move' + if (item === this.dragging) { + return + } + const newItems = [...this.formValidate.sliderImages] + const src = newItems.indexOf(this.dragging) + const dst = newItems.indexOf(item) + newItems.splice(dst, 0, ...newItems.splice(src, 1)) + this.formValidate.sliderImages = newItems; } - const newItems = [...this.formValidate.sliderImages] - const src = newItems.indexOf(this.dragging) - const dst = newItems.indexOf(item) - newItems.splice(dst, 0, ...newItems.splice(src, 1)) - this.formValidate.sliderImages = newItems; }, handleDragEnterFont(e, item) { - e.dataTransfer.effectAllowed = 'move' - if (item === this.dragging) { - return + if(!this.isDisabled){ + e.dataTransfer.effectAllowed = 'move' + if (item === this.dragging) { + return + } + const newItems = [...this.formValidate.activity] + const src = newItems.indexOf(this.dragging) + const dst = newItems.indexOf(item) + newItems.splice(dst, 0, ...newItems.splice(src, 1)) + this.formValidate.activity = newItems; } - const newItems = [...this.formValidate.activity] - const src = newItems.indexOf(this.dragging) - const dst = newItems.indexOf(item) - newItems.splice(dst, 0, ...newItems.splice(src, 1)) - this.formValidate.activity = newItems; } } } \ No newline at end of file + diff --git a/app/api/activity.js b/app/api/activity.js index 935f03ee..fe62b3d0 100644 --- a/app/api/activity.js +++ b/app/api/activity.js @@ -55,7 +55,7 @@ export function getBargainList(data) { * @param object data */ export function getBargainUserList(data){ - return request.get('bargain/user/list',data); + return request.get('bargain/record',data); } @@ -76,12 +76,13 @@ export function getBargainDetail(id) { } /** - * 砍价 开启砍价用户信息 + * 用户砍价信息,注意自己的活动和别人的活动的区别 */ -export function postBargainStartUser(data) { - return request.get("bargain/start/user", data); +export function getBargainUser(data) { + return request.get("bargain/user", data); } + /** * 砍价开启 */ @@ -110,20 +111,6 @@ export function postBargainHelpList(params,data) { return request.get("bargain/help/list?limit="+params.limit+"&page="+params.page, data,{}); } -/** - * 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格 - */ -export function postBargainHelpCount(data) { - return request.get("bargain/help/count", data,1); -} - -/** - * 砍价 观看/分享/参与次数 - */ -export function postBargainShare(bargainId) { - return request.get("bargain/share/" + bargainId); -} - /** * 秒杀产品时间区间 * @@ -193,5 +180,41 @@ export function scombinationCode(id) { * @param int id */ export function getSeckillHeaderApi(){ + return request.get('seckill/header',{},{noAuth:true}); +} + +/** + * 首页秒杀产品列表 +*/ +export function getSeckillIndexApi(){ return request.get('seckill/index',{},{noAuth:true}); +} + + +/** + * 首页拼团产品列表 +*/ +export function getCombinationIndexApi(){ + return request.get('combination/index',{},{noAuth:true}); +} + +/** + * 首页砍价产品列表 +*/ +export function getBargainIndexApi(){ + return request.get('bargain/index',{},{noAuth:true}); +} + +/** + * 首页砍价产品列表 +*/ +export function bargainHeaderApi(){ + return request.get('bargain/header'); +} + +/** + * 拼图列表头部 +*/ +export function combinationHeaderApi(){ + return request.get('combination/header'); } \ No newline at end of file diff --git a/app/api/api.js b/app/api/api.js index 7f9e3d42..8d1845b9 100644 --- a/app/api/api.js +++ b/app/api/api.js @@ -120,9 +120,6 @@ export function verifyCode(){ export function registerVerify(phone){ return request.post('sendCode', { phone: phone },{noAuth:true},1) } -// export function registerVerify(phone, reset, key, code){ -// return request.post('register/verify', { phone: phone, type: reset === undefined ? 'reset' : reset, key: key, code: code },{noAuth:true}) -// } /** * 手机号注册 diff --git a/app/api/order.js b/app/api/order.js index b85ca090..4efb6c71 100644 --- a/app/api/order.js +++ b/app/api/order.js @@ -4,10 +4,8 @@ import request from "@/utils/request.js"; * 获取购物车列表 * @param numType boolean true 购物车数量,false=购物车产品数量 */ -export function getCartCounts(numType) { - return request.get("cart/count", { - numType: numType === undefined ? true : numType - }); +export function getCartCounts(numType,type) { + return request.get("cart/count?numType=" + numType + "&type=" + type); } /** * 获取购物车列表 @@ -184,8 +182,8 @@ export function orderConfirm(cartId, isNew, addAgain,secKill,combination,bargain * @param string price * */ -export function getCouponsOrderPrice(data) { - return request.get('coupons/order', data) +export function getCouponsOrderPrice(preOrderNo) { + return request.get(`coupons/order/${preOrderNo}`) } /** @@ -194,8 +192,8 @@ export function getCouponsOrderPrice(data) { * @param object data * */ -export function orderCreate(key, data) { - return request.post('order/create/' + key, data); +export function orderCreate(data) { + return request.post('order/create', data); } /** @@ -204,8 +202,8 @@ export function orderCreate(key, data) { * @param data * @returns {*} */ -export function postOrderComputed(key, data) { - return request.post("order/computed/" + key, data); +export function postOrderComputed(data) { + return request.post("order/computed/price", data); } /** @@ -229,5 +227,29 @@ export function wechatOrderPay(data) { * @param object data */ export function wechatQueryPayResult(data) { - return request.get('pay/queryPayResult', data); + return request.get('pay/queryPayResult?orderNo=' + data); +} + +/** + * 申请退款商品详情 + * @param object data + */ +export function applyRefund(orderId) { + return request.get(`order/apply/refund/${orderId}`); +} + +/** + * 预下单 + * @param object data + */ +export function preOrderApi(data) { + return request.post(`order/pre/order`, data); +} + +/** + * 加载预下单 + * @param object preOrderNo + */ +export function loadPreOrderApi(preOrderNo) { + return request.get(`order/load/pre/${preOrderNo}`); } \ No newline at end of file diff --git a/app/api/public.js b/app/api/public.js index 8cafef0b..91144d0e 100644 --- a/app/api/public.js +++ b/app/api/public.js @@ -12,22 +12,15 @@ export function getWechatConfig() { return request.get("wechat/config",{ url: encodeURIComponent(wechat.signLink()) },{ noAuth: true }); } -// export function getWechatConfig() { -// return request.get( -// "wechat/config", -// { url: encodeURIComponent(location.href.split('#')[0]) }, -// { noAuth: true } -// ); -// } - /** * 获取微信sdk配置 * @returns {*} */ -export function wechatAuth(code, spread, login_type) { +export function wechatAuth(code, spread) { + var reg=/^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9]+[0-9]*]*$/ + spread = reg.test(spread) ? spread : 0; return request.get( - "wechat/authorize/login", - { code, spread_spid:spread, login_type }, + "wechat/authorize/login?code=" + code + "&spread_spid=" + spread, {}, { noAuth: true } ); } @@ -98,14 +91,26 @@ export function getUserPhone(data){ } /** - * 静默授权 + * APP微信登录 * @param {Object} data */ -export function silenceAuth(data) { - //#ifdef MP - return request.get("wechat/authorize/program/login", data, { noAuth : true }); - //#endif - //#ifdef H5 - return request.get("wechat/authorize/login", data, { noAuth : true }); - //#endif +export function appAuth(data) { + return request.post("wechat/authorize/app/login", data, { noAuth : true }); +} + +/** + * 苹果登录 + * @param {Object} data + */ +export function appleLogin(data) { + return request.post("ios/login", data, { noAuth : true }); +} + + +/** + * 苹果绑定手机号 + * @param {Object} data + */ +export function iosBinding(data) { + return request.post("ios/binding/phone", data, { noAuth : true }); } \ No newline at end of file diff --git a/app/api/store.js b/app/api/store.js index c2622e25..0be14a76 100644 --- a/app/api/store.js +++ b/app/api/store.js @@ -5,8 +5,8 @@ import request from "@/utils/request.js"; * @param int id * */ -export function getProductDetail(id) { - return request.get('product/detail/' + id, {}, { +export function getProductDetail(id, type) { + return request.get('product/detail/' + id + '?type=' + type, {}, { noAuth: true }); } @@ -41,15 +41,20 @@ export function collectAdd(id, category) { } /** - * 删除收藏产品 + * 取消收藏产品 * @param int id - * @param string category product=普通产品,product_seckill=秒杀产品 */ -export function collectDel(id, category) { - return request.post('collect/del', { - id: id, - 'category': category === undefined ? 'product' : category - }); +export function collectDel(proId) { + return request.post(`collect/cancel/${proId}`); +} + + +/** + * 删除收藏产品 + * @param string id + */ +export function collectDelete(ids) { + return request.post(`collect/delete`,ids); } /** @@ -111,7 +116,7 @@ export function collectAll(id, category) { * */ export function getGroomList(type, data) { - return request.get('groom/list/' + type, data, { + return request.get('index/product/' + type, data, { noAuth: true }); } @@ -163,3 +168,24 @@ export function getSearchKeyword() { export function storeListApi(data) { return request.post("store/list", data, {}, 1); } + + +/** + * 优品推荐 + * @param object data + */ +export function getProductGood() { + return request.get('product/good'); +} + +/** + * 详情页产品评论 + * @param int id + * @param object data + * + */ +export function getReplyProduct(id) { + return request.get('reply/product/' + id, { + noAuth: true + }) +} \ No newline at end of file diff --git a/app/api/user.js b/app/api/user.js index 6e42b90a..f929d166 100644 --- a/app/api/user.js +++ b/app/api/user.js @@ -46,9 +46,6 @@ export function getCodeApi() { export function registerVerify(phone){ return request.post('sendCode', { phone: phone },{noAuth:true},1) } -// export function registerVerify(data) { -// return request.post("register/verify", data, { noAuth : true }); -// } /** * h5用户手机号注册 @@ -176,7 +173,7 @@ export function spreadCount(type){ } /* - * 推广数据 + * 推广数据 当前佣金 提现总金额 * */ export function getSpreadInfo() { return request.get("commission"); @@ -316,6 +313,13 @@ export function rechargeWechat(data) { return request.post("recharge/wechat", data); } +/* + * app微信充值 + * */ +export function appWechat(data) { + return request.post("recharge/wechat/app", data); +} + /* * 余额充值 * */ @@ -365,7 +369,7 @@ export function getChatRecord(to_uid, data) { */ export function spread(puid) { - return request.get("user/bindSpread?spreadPid=" + puid); + return request.get("user/bindSpread?spreadPid="+ puid); } /** @@ -414,5 +418,23 @@ export function getBillList(data) return request.get("recharge/bill/record",data); } +/* + * 积分中心详情 + * */ +export function postIntegralUser() { + return request.get("integral/user"); +} +/* + * 立即提现 冻结期、冻结佣金、可提现佣金、最低可提现金额 + * */ +export function extractUser() { + return request.get("extract/user"); +} +/* + * 推广人统计页 推广人数(一级+二级)、一级人数、二级人数 + * */ +export function spreadPeoCount() { + return request.get("spread/people/count"); +} \ No newline at end of file diff --git a/app/components/Authorize.vue b/app/components/Authorize.vue index cb7dd06c..8ddc8cbe 100644 --- a/app/components/Authorize.vue +++ b/app/components/Authorize.vue @@ -10,8 +10,7 @@ - - + @@ -59,52 +58,6 @@ this.setAuthStatus(); }, methods:{ - getUserProfile() { - let self = this; - uni.showLoading({ - title: '正在登录中' - }); - Routine.getUserProfile() - .then(res => { - Routine.getCode() - .then(code => { - self.getWxUser(code, res); - }) - .catch(res => { - uni.hideLoading(); - }); - }) - .catch(res => { - uni.hideLoading(); - }); - }, - - getWxUser(code, res) { - let self = this - let userInfo = res.userInfo; - userInfo.code = code; - userInfo.spread_spid = app.globalData.spid; //获取推广人ID - userInfo.spread_code = app.globalData.code; //获取推广人分享二维码ID - userInfo.avatar = userInfo.userInfo.avatarUrl; - userInfo.city = userInfo.userInfo.city; - userInfo.country = userInfo.userInfo.country; - userInfo.nickName = userInfo.userInfo.nickName; - userInfo.province = userInfo.userInfo.province; - userInfo.sex = userInfo.userInfo.gender; - userInfo.type = 'routine' - Routine.authUserInfo(code,userInfo).then(res=>{ - uni.hideLoading(); - this.$emit('authColse',false); - this.$emit('onLoadFun',this.userInfo); - }).catch(res=>{ - uni.hideLoading(); - uni.showToast({ - title:res.message, - icon:'none', - duration:2000 - }); - }); - }, setAuthStatus(){ Routine.authorize().then(res=>{ if(res.islogin === false) @@ -118,7 +71,6 @@ }, getUserInfo(code){ Routine.getUserInfo().then(res=>{ - console.log('res',res); let userInfo = res.userInfo userInfo.code = code; userInfo.spread_spid = app.globalData.spid;//获取推广人ID @@ -187,7 +139,7 @@ .Popup .bottom .item{width:50%;height:80rpx;background-color:#eeeeee;text-align:center;line-height:80rpx;font-size:24rpx;color:#666;margin-top:54rpx;} .Popup .bottom .item.on{width: 100%} .flex{display:flex;} - .Popup .bottom .item.grant{font-size:28rpx;color:#fff;font-weight:bold;background-color:#e93323;border-radius:0;padding:0;} + .Popup .bottom .item.grant{font-size:28rpx;color:#fff;font-weight:bold;background-color:$theme-color;border-radius:0;padding:0;} .mask{position:fixed;top:0;right:0;left:0;bottom:0;background-color:rgba(0,0,0,0.65);z-index:310;} diff --git a/app/components/addressWindow/index.vue b/app/components/addressWindow/index.vue index 49aa0fd1..7f681950 100644 --- a/app/components/addressWindow/index.vue +++ b/app/components/addressWindow/index.vue @@ -45,21 +45,26 @@ isLog: { type: Boolean, default: false, - }, + } }, data() { return { active: 0, - //地址列表 - addressList: [], - is_loading: true + is_loading: true, + addressList: [] }; }, methods: { tapAddress: function(e, addressid) { this.active = e; - this.$emit('OnChangeAddress', addressid); + let a = {}; + for (let i = 0, leng = this.addressList.length; i < leng; i++) { + if (this.addressList[i].id == addressid) { + a = this.addressList[i]; + } + } + this.$emit('OnChangeAddress', a); }, close: function() { this.$emit('changeClose'); @@ -79,14 +84,18 @@ limit: 5 }).then(res => { let addressList = res.data.list; + that.$set(that, 'addressList', addressList); + that.is_loading = false; + let defaultAddress = {}; //处理默认选中项 + if(!that.address.addressId) return; for (let i = 0, leng = addressList.length; i < leng; i++) { if (addressList[i].id == that.address.addressId) { that.active = i; + defaultAddress = this.addressList[i]; } } - that.$set(that, 'addressList', addressList); - that.is_loading = false; + this.$emit('OnDefaultAddress', defaultAddress); }) } } diff --git a/app/components/countDown/index.vue b/app/components/countDown/index.vue index 5636aa04..291c6e6e 100644 --- a/app/components/countDown/index.vue +++ b/app/components/countDown/index.vue @@ -1,14 +1,14 @@ @@ -52,6 +52,10 @@ isCol: { type: Boolean, default: false + }, + bgColor: { + type: Object, + default: null } }, data: function() { @@ -112,7 +116,29 @@ }; - diff --git a/app/components/couponListWindow/index.vue b/app/components/couponListWindow/index.vue index a7fa2cf7..9df55d8f 100644 --- a/app/components/couponListWindow/index.vue +++ b/app/components/couponListWindow/index.vue @@ -1,110 +1,235 @@ diff --git a/app/components/emptyPage.vue b/app/components/emptyPage.vue index 17814c3e..0d737d77 100644 --- a/app/components/emptyPage.vue +++ b/app/components/emptyPage.vue @@ -24,6 +24,7 @@ justify-content: center; align-items: center; margin-top: 200rpx; + padding-bottom: 60rpx; image{ width: 414rpx; height: 240rpx; diff --git a/app/components/home/index.vue b/app/components/home/index.vue index 665f452b..f1b92622 100644 --- a/app/components/home/index.vue +++ b/app/components/home/index.vue @@ -73,7 +73,7 @@ border-radius: 50rpx; opacity: 0; height: 0; - color: #e93323; + color: $theme-color; width: 0; } diff --git a/app/components/login_mobile/index.vue b/app/components/login_mobile/index.vue index b78d26a6..33a9c4f0 100644 --- a/app/components/login_mobile/index.vue +++ b/app/components/login_mobile/index.vue @@ -1,7 +1,7 @@ @@ -18,6 +18,7 @@ const app = getApp(); import sendVerifyCode from "@/mixins/SendVerifyCode"; import Routine from '@/libs/routine'; + import {mapGetters} from "vuex"; import { loginMobile, registerVerify, @@ -26,32 +27,59 @@ phoneSilenceAuth, phoneWxSilenceAuth } from "@/api/user"; - import { bindingPhone } from '@/api/api.js' - import { getUserPhone } from '@/api/public'; - export default{ - name:'login_mobile', - props:{ - isUp:{ - type:Boolean, - default:false, + import { + bindingPhone + } from '@/api/api.js' + import { + getUserPhone, + iosBinding + } from '@/api/public'; + const BACK_URL = "login_back_url"; + export default { + name: 'login_mobile', + computed: mapGetters(['userInfo','isLogin']), + props: { + isUp: { + type: Boolean, + default: false, }, - authKey:{ - type:String, - default:'', + authKey: { + type: String, + default: '', + }, + isShow: { + type: Boolean, + default: true + }, + isPos: { + type: Boolean, + default: true + }, + appleShow: { + type: String, + default: '' + }, + platform: { + type: String, + default: '', } }, - data(){ + data() { return { - keyCode:'', - account:'', - codeNum:'' + keyCode: '', + account: '', + codeNum: '', + isApp: 0 } }, mixins: [sendVerifyCode], mounted() { //this.getCode(); }, - methods:{ + onLoad() { + + }, + methods: { // 获取验证码 async code() { let that = this; @@ -61,12 +89,14 @@ if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({ title: '请输入正确的手机号码' }); - await registerVerify(that.account).then(res=>{ - that.$util.Tips({title:res.msg}); + await registerVerify(that.account).then(res => { + that.$util.Tips({ + title: res.msg + }); that.sendCode(); - }).catch(err=>{ + }).catch(err => { return that.$util.Tips({ - title:err + title: err }) }) }, @@ -81,11 +111,11 @@ }); }); }, - close(){ - this.$emit('close',false) + close() { + this.$emit('close', false) }, // 登录 - loginBtn(){ + loginBtn() { let that = this if (!that.account) return that.$util.Tips({ title: '请填写手机号码' @@ -99,47 +129,66 @@ if (!/^[\w\d]+$/i.test(that.codeNum)) return that.$util.Tips({ title: '请输入正确的验证码' }); - uni.showLoading({ title: '正在登录中' }); - getUserPhone({ - captcha: that.codeNum, - phone: that.account, - spid: app.globalData.spid, - spread: app.globalData.code, - type: 'public', - key: this.authKey - }).then(res=>{ - let time = res.data.expires_time - this.$Cache.time(); - this.$store.commit('LOGIN', { - token: res.data.token, - time: time - }); - this.getUserInfo(); - }).catch(error=>{ - uni.hideLoading() - this.$util.Tips({ - title:error + uni.showLoading({ + title: !this.userInfo.phone && this.isLogin?'正在绑定中':'正在登录中' + }); + if (!this.userInfo.phone && this.isLogin) { + iosBinding({ + captcha: that.codeNum, + phone: that.account + }).then(res => { + that.$util.Tips({ + title: '绑定手机号成功', + icon: 'success' + }, { + tab: 3 + }) + that.isApp = 1; + that.getUserInfo(); + }).catch(error => { + uni.hideLoading() + that.$util.Tips({ + title: error + }) }) - }) + } else { + getUserPhone({ + captcha: that.codeNum, + phone: that.account, + // #ifdef H5 + type: 'public', + // #endif + key: that.authKey + }).then(res => { + that.$store.commit('LOGIN', { + token: res.data.token + }); + that.$store.commit("SETUID", res.data.uid); + that.getUserInfo(); + }).catch(error => { + uni.hideLoading() + that.$util.Tips({ + title: error + }) + }) + } }, // #ifdef MP - phoneSilenceAuth(code){ + phoneSilenceAuth(code) { let self = this phoneSilenceAuth({ - code:code, + code: code, spid: app.globalData.spid, spread: app.globalData.code, - phone:this.account, - captcha:this.codeNum - }).then(res=>{ - let time = res.data.expires_time - this.$Cache.time(); - this.$store.commit('LOGIN', { - token: res.data.token, - time: time - }); + phone: this.account, + captcha: this.codeNum + }).then(res => { + this.$store.commit('LOGIN', res.data.token); + this.$store.commit("SETUID", res.data.uid); this.getUserInfo(); - }).catch(error=>{ + }).catch(error => { self.$util.Tips({ - title:error + title: error }) }) }, @@ -151,52 +200,56 @@ let that = this; getUserInfo().then(res => { uni.hideLoading(); - that.userInfo = res.data - that.$store.commit("SETUID", res.data.uid); that.$store.commit("UPDATE_USERINFO", res.data); - // #ifdef MP + // #ifdef MP that.$util.Tips({ - title:'登录成功', - icon:'success' - },{ - tab:3 + title: '登录成功', + icon: 'success' + }, { + tab: 3 }) that.close() // #endif // #ifdef H5 - that.$emit('wechatPhone',true) + that.$emit('wechatPhone', true) // #endif }); }, } } - - diff --git a/app/components/login_mobile/routine_phone.vue b/app/components/login_mobile/routine_phone.vue index 4d5b8800..f4082628 100644 --- a/app/components/login_mobile/routine_phone.vue +++ b/app/components/login_mobile/routine_phone.vue @@ -20,7 +20,7 @@ getCodeApi, getUserInfo } from "@/api/user"; - import { getLogo, silenceAuth, getUserPhone } from '@/api/public'; + import { getLogo, getUserPhone } from '@/api/public'; export default{ name:'routine_phone', props:{ @@ -51,7 +51,6 @@ // #ifdef MP // 小程序获取手机号码 getphonenumber(e){ - console.log(e) uni.showLoading({ title: '加载中' }); Routine.getCode() .then(code => { @@ -67,22 +66,21 @@ encryptedData: encryptedData, iv: iv, code: code, - spid: app.globalData.spid, - spread: app.globalData.code, key:this.authKey, type: 'routine' }) .then(res => { - let time = res.data.expires_time - this.$Cache.time(); this.$store.commit('LOGIN', { - token: res.data.token, - time: time + token: res.data.token }); + this.$store.commit("SETUID", res.data.uid); this.getUserInfo(); }) .catch(res => { - console.log(res); uni.hideLoading(); + this.$util.Tips({ + title: res + }); }); }, /** @@ -93,7 +91,6 @@ getUserInfo().then(res => { uni.hideLoading(); that.userInfo = res.data - that.$store.commit("SETUID", res.data.uid); that.$store.commit("UPDATE_USERINFO", res.data); that.isStatus = true this.close() @@ -150,7 +147,7 @@ height: 86rpx; line-height: 86rpx; margin-top: 60rpx; - background: #E93323; + background: $theme-color; border-radius: 43rpx; color: #fff; font-size: 28rpx; diff --git a/app/components/orderGoods/index.vue b/app/components/orderGoods/index.vue index ad5fb318..db27710b 100644 --- a/app/components/orderGoods/index.vue +++ b/app/components/orderGoods/index.vue @@ -1,26 +1,27 @@ diff --git a/app/components/productWindow/index.vue b/app/components/productWindow/index.vue index 1aaa9367..2beaa8d5 100644 --- a/app/components/productWindow/index.vue +++ b/app/components/productWindow/index.vue @@ -1,6 +1,7 @@ @@ -45,6 +49,8 @@ import { toLogin } from '@/libs/login.js'; + import home from '@/components/home'; + import emptyPage from '@/components/emptyPage.vue' import { mapGetters } from "vuex"; @@ -53,6 +59,8 @@ // #endif export default { components: { + emptyPage, + home, // #ifdef MP authorize // #endif @@ -90,13 +98,7 @@ this.getBrokerageRankList(); this.getBrokerageRankNumber(this.type); } else { - // #ifdef H5 || APP-PLUS toLogin(); - // #endif - // #ifdef MP - this.isAuto = true; - this.$set(this, 'isShowAuth', true); - // #endif } }, methods: { @@ -179,7 +181,7 @@ .CommissionRank .wrapper { width: 710rpx; background-color: #fff; - border-radius: 20rpx; + border-radius: 14rpx; margin: -76rpx auto 0 auto; } @@ -193,7 +195,8 @@ } .CommissionRank .wrapper .nav .item.font-color { - border-bottom: 4rpx solid #e93323; + border-bottom: 4rpx solid $theme-color; + margin-top: -2rpx; } .CommissionRank .wrapper .list { diff --git a/app/pages/users/goods_comment_con/index.vue b/app/pages/users/goods_comment_con/index.vue index 4294b6a5..5a277703 100644 --- a/app/pages/users/goods_comment_con/index.vue +++ b/app/pages/users/goods_comment_con/index.vue @@ -1,24 +1,27 @@ @@ -103,26 +106,19 @@ } }, onLoad(options) { - if (!options.unique || !options.uni || !options.id) return this.$util.Tips({ + if (!options.unique || !options.orderId ) return this.$util.Tips({ title: '缺少参数' }, { tab: 3, url: 1 }); - this.unique = options.unique; - this.orderId = options.uni; - this.id = options.id; - this.evaluateId = options.id; + this.unique = Number(options.unique) || 0; + this.orderId = options.orderId || 0; + this.evaluateId = Number(options.id) || 0; if (this.isLogin) { this.getOrderProduct(); } else { - // #ifdef H5 || APP-PLUS toLogin(); - // #endif - // #ifdef MP - this.isAuto = true; - this.$set(this, 'isShowAuth', true); - // #endif } }, methods: { @@ -140,12 +136,12 @@ getOrderProduct: function() { let that = this; orderProduct({ - orderId: that.id, + orderId: that.evaluateId, uni: that.unique }).then(res => { - that.$set(that, 'productInfo', res.data.productInfo); - that.$set(that, 'cart_num', res.data.cartNum); - that.$set(that, 'productId', res.data.productId); + that.$set(that, 'productInfo', res.data); + // that.$set(that, 'cart_num', res.data.cartNum); + // that.$set(that, 'productId', res.data.productId); }); }, stars: function(indexn, indexw) { @@ -159,7 +155,7 @@ let that = this, pic = this.picsPath[index]; that.picsPath.splice(index, 1); - that.$set(that, 'picsPath', that.picsPath); + that.pics.splice(index, 1); }, /** @@ -196,10 +192,10 @@ value.productScore = product_score; value.serviceScore = service_score; value.pics = that.pics.length>0?JSON.stringify(that.pics):''; - value.productId = that.productId; - value.oid = that.evaluateId; + value.productId = that.productInfo.productId; + value.orderNo = that.orderId; value.unique = that.unique; - value.sku = that.productInfo.attrInfo.suk; + value.sku = that.productInfo.sku; uni.showLoading({ title: "正在发布评论……" }); @@ -221,16 +217,23 @@ diff --git a/app/pages/users/goods_details_store/index.vue b/app/pages/users/goods_details_store/index.vue index 3f3c353b..a9f4e87c 100644 --- a/app/pages/users/goods_details_store/index.vue +++ b/app/pages/users/goods_details_store/index.vue @@ -12,32 +12,36 @@
- + - - + +
- 距离{{ item.range }}千米 + 距离{{ item.distance/1000 }}千米 查看地图
- + -->
@@ -111,29 +115,60 @@ }, selfLocation() { let self = this - uni.getLocation({ - type: 'wgs84', - success: function(res) { - try { - uni.setStorageSync('user_latitude', res.latitude); - uni.setStorageSync('user_longitude', res.longitude); - } catch {} + // #ifdef H5 + if (self.$wechat.isWeixin()) { + self.$wechat.location().then(res => { + this.user_latitude = res.latitude; + this.user_longitude = res.longitude; + uni.setStorageSync('user_latitude', res.latitude); + uni.setStorageSync('user_longitude', res.longitude); self.getList(); - }, - complete:function() { - self.getList(); - } - }); + }) + } else { + // #endif + uni.getLocation({ + type: 'wgs84', + success: (res) => { + try { + this.user_latitude = res.latitude; + this.user_longitude = res.longitude; + uni.setStorageSync('user_latitude', res.latitude); + uni.setStorageSync('user_longitude', res.longitude); + } catch {} + self.getList(); + }, + complete: function() { + self.getList(); + } + }); + // #ifdef H5 + } + // #endif }, showMaoLocation(e) { - uni.openLocation({ - latitude: Number(e.latitude), - longitude: Number(e.longitude), - success: function() { + let self = this; + // #ifdef H5 + if (self.$wechat.isWeixin()) { + self.$wechat.seeLocation({ + latitude: Number(e.latitude), + longitude: Number(e.longitude) + }).then(res => { console.log('success'); - Number - } - }); + }) + } else { + // #endif + uni.openLocation({ + latitude: Number(e.latitude), + longitude: Number(e.longitude), + name: e.name, + address: `${e.address}-${e.detailedAddress}`, + success: function() { + console.log('success'); + } + }); + // #ifdef H5 + } + // #endif }, // 选中门店 checked(e) { @@ -241,9 +276,10 @@ border-radius: 50%; display: block; text-align: center; - line-height: 50rpx; + line-height: 48rpx; background-color: #e83323; margin-bottom: 22rpx; + text-decoration: none; } .store-distance { diff --git a/app/pages/users/goods_logistics/index.vue b/app/pages/users/goods_logistics/index.vue index 957f8328..7155ddd1 100644 --- a/app/pages/users/goods_logistics/index.vue +++ b/app/pages/users/goods_logistics/index.vue @@ -3,13 +3,13 @@ - + - {{product.productInfo.storeName}} + {{product.productName}} - ¥{{product.truePrice}} - x{{product.cartNum}} + ¥{{product.price}} + x{{product.payNum}} @@ -40,7 +40,7 @@ - + @@ -106,13 +106,7 @@ this.getExpress(); this.get_host_product(); } else { - // #ifdef H5 || APP-PLUS toLogin(); - // #endif - // #ifdef MP - this.isAuto = true; - this.$set(this, 'isShowAuth', true); - // #endif } }, onReady: function() { @@ -142,30 +136,11 @@ let that=this; express(that.orderId).then(function(res){ let result = res.data.express|| {}; - that.$set(that,'product',res.data.order.cartInfo[0] || {}); + that.$set(that,'product',res.data.order.info[0] || {}); that.$set(that,'orderInfo',res.data.order); that.$set(that,'expressList',result.list || []); }); }, - /** - * 获取我的推荐 - */ - // getGroomList(onloadH) { - // this.loading = true - // if (!this.goodScroll) return - // if (onloadH) { - // this.iSshowH = true - // } - // getGroomList(type, this.params).then(({ - // data - // }) => { - // this.iSshowH = false - // this.loading = false - // this.goodScroll = data.list.length >= this.params.limit - // this.params.page++ - // this.tempArr = this.tempArr.concat(data.list) - // }) - // } get_host_product: function () { this.loading = true if (!this.goodScroll) return @@ -176,7 +151,6 @@ that.goodScroll = res.data.list.length >= that.params.limit that.params.page++ that.hostProduct = that.hostProduct.concat(res.data.list) - // that.$set(that,'hostProduct',res.data.list); }); }, }, @@ -271,7 +245,7 @@ height: 40rpx; text-align: center; line-height: 40rpx; - border-radius: 3rpx; + border-radius: 20rpx; border: 1rpx solid #999; } @@ -291,15 +265,15 @@ } .logistics .logisticsCon .item .circular.on { - background-color: #e93323; + background-color: $theme-color; } .logistics .logisticsCon .item .text.on-font { - color: #e93323; + color: $theme-color; } .logistics .logisticsCon .item .text .data.on-font { - color: #e93323; + color: $theme-color; } .logistics .logisticsCon .item .text { diff --git a/app/pages/users/goods_return/index.vue b/app/pages/users/goods_return/index.vue index 1f9c6579..a09e1ee2 100644 --- a/app/pages/users/goods_return/index.vue +++ b/app/pages/users/goods_return/index.vue @@ -2,21 +2,17 @@
- - + + - {{item.info.productInfo.storeName}} - - ¥{{item.info.productInfo.attrInfo.price}} - x{{item.info.cartNum}} - - - ¥{{item.info.productInfo.price}} - x{{item.info.cartNum}} + {{item.storeName}} + + ¥{{item.price}} + x{{item.cartNum}} - + 退货件数 {{orderInfo.totalNum}} @@ -38,7 +34,7 @@ 备注说明 - + 上传凭证 ( 最多可上传3张 ) @@ -54,17 +50,17 @@ + - - + diff --git a/app/pages/users/kefu/index.vue b/app/pages/users/kefu/index.vue new file mode 100644 index 00000000..1c539f96 --- /dev/null +++ b/app/pages/users/kefu/index.vue @@ -0,0 +1,34 @@ + + + diff --git a/app/pages/users/login/index.vue b/app/pages/users/login/index.vue index ecd413ad..7b2753eb 100644 --- a/app/pages/users/login/index.vue +++ b/app/pages/users/login/index.vue @@ -1,47 +1,37 @@ @@ -126,7 +76,7 @@ validatorDefaultCatch } from "@/utils/dialog"; import { - getLogo + getLogo, appAuth, appleLogin } from "@/api/public"; import { VUE_APP_API_URL @@ -140,7 +90,7 @@ data: function() { return { navList: ["快速登录", "账号登录"], - current: 0, + current: 1, account: "", password: "", captcha: "", @@ -150,7 +100,13 @@ keyCode: "", codeUrl: "", codeVal: "", - isShowCode: false + isShowCode: false, + platform: '', + appLoginStatus: false, // 微信登录强制绑定手机号码状态 + appUserInfo: null, // 微信登录保存的用户信息 + appleLoginStatus: false, // 苹果登录强制绑定手机号码状态 + appleUserInfo: null, + appleShow: false // 苹果登录版本必须要求ios13以上的 }; }, watch:{ @@ -166,7 +122,143 @@ this.getCode(); this.getLogoImage(); }, + onLoad() { + let self = this + uni.getSystemInfo({ + success: function(res) { + if (res.platform.toLowerCase() == 'ios' && res.system.split(' ')[1] >= 13) { + self.appleShow = true + } + } + }); + }, methods: { + // 苹果登录 + appleLogin() { + let self = this + this.account = '' + this.captcha = '' + uni.showLoading({ + title: '登录中' + }) + uni.login({ + provider: 'apple', + timeout: 10000, + success(loginRes) { + uni.getUserInfo({ + provider: 'apple', + success: function(infoRes) { + self.appleUserInfo = infoRes.userInfo + self.appleLoginApi() + }, + fail() { + uni.hideLoading() + uni.showToast({ + title: '获取用户信息失败', + icon: 'none', + duration: 2000 + }) + }, + complete() { + uni.hideLoading() + } + }); + }, + fail(error) { + uni.hideLoading() + console.log(error) + } + }) + }, + // 苹果登录Api + appleLoginApi() { + let self = this + appleLogin({ + openId: self.appleUserInfo.openId, + email: self.appleUserInfo.email == undefined ? '' :self.appleUserInfo.email, + identityToken: self.appleUserInfo.identityToken || '' + }).then((res) => { + this.$store.commit("LOGIN", { + 'token': res.data.token + }); + this.getUserInfo(res.data); + }).catch(error => { + uni.hideLoading(); + uni.showModal({ + title: '提示', + content: `错误信息${error}`, + success: function(res) { + if (res.confirm) { + console.log('用户点击确定'); + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }); + }) + }, + // App微信登录 + wxLogin() { + let self = this + this.account = '' + this.captcha = '' + uni.showLoading({ + title: '登录中' + }) + uni.login({ + provider: 'weixin', + success: function(loginRes) { + // 获取用户信息 + uni.getUserInfo({ + provider: 'weixin', + success: function(infoRes) { + uni.hideLoading(); + self.appUserInfo = infoRes.userInfo + self.appUserInfo.type = self.platform === 'ios' ? 'iosWx' : 'androidWx' + self.wxLoginGo(self.appUserInfo) + }, + fail() { + uni.hideLoading(); + uni.showToast({ + title: '获取用户信息失败', + icon: 'none', + duration: 2000 + }) + }, + complete() { + uni.hideLoading() + } + }); + }, + fail() { + uni.hideLoading() + uni.showToast({ + title: '登录失败', + icon: 'none', + duration: 2000 + }) + } + }); + }, + wxLoginGo(userInfo) { + appAuth(userInfo).then(res => { + if (res.data.type === 'register') { + uni.navigateTo({ + url: '/pages/users/app_login/index?authKey='+res.data.key + }) + } + if (res.data.type === 'login') { + this.$store.commit("LOGIN", { + 'token': res.data.token + }); + this.getUserInfo(res.data); + } + }).catch(res => { + that.$util.Tips({ + title: res + }); + }); + }, again() { this.codeUrl = VUE_APP_API_URL + @@ -177,20 +269,11 @@ }, getCode() { let that = this - // getCodeApi() - // .then(res => { - // that.keyCode = res.data.key; - // }) - // .catch(res => { - // that.$util.Tips({ - // title: res - // }); - // }); }, async getLogoImage() { let that = this; getLogo().then(res => { - that.logoUrl = res.data.logoUrl; + that.logoUrl = res.data.logoUrl?res.data.logoUrl:'/static/images/logo2.png'; }); }, async loginMobile() { @@ -208,34 +291,17 @@ title: '请输入正确的验证码' }); loginMobile({ - account: that.account, + phone: that.account, captcha: that.captcha, - spread: that.$Cache.get("spread") + spread_spid: that.$Cache.get("spread") }) .then(res => { let data = res.data; let newTime = Math.round(new Date() / 1000); - that.$store.commit("LOGIN", { - 'token': data.token - // 'time': dayjs(data.expiresTime) - newTime + this.$store.commit("LOGIN", { + 'token': res.data.token }); - const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; - that.$Cache.clear(BACK_URL); - // getUserInfo().then(res => { - that.$store.commit("SETUID", res.data.user.uid); - if (backUrl === '/pages/index/index' || backUrl === '/pages/order_addcart/order_addcart' || backUrl === - '/pages/user/index') { - - uni.switchTab({ - url: backUrl - }); - - } else { - uni.switchTab({ - url: '/pages/index/index' - }); - } - // }) + that.getUserInfo(data); }) .catch(res => { that.$util.Tips({ @@ -290,21 +356,15 @@ title: '请输入正确的手机号码' }); if (that.formItem == 2) that.type = "register"; - // phone: that.account - // type: that.type, - // key: that.keyCode, - // code: that.codeVal await registerVerify(that.account) .then(res => { that.$util.Tips({title:res.message}); that.sendCode(); }) - .catch(res => { - // if (res.data.status === 402) { - // that.codeUrl = `${VUE_APP_API_URL}/sms_captcha?key=${that.keyCode}`; - // that.isShowCode = true; - // } - that.$util.Tips({title:res.message}); + .catch(err => { + return that.$util.Tips({ + title: err + }); }); }, navTap: function(index) { @@ -329,44 +389,210 @@ .then(({ data }) => { - // let newTime = Math.round(new Date() / 1000); - that.$store.commit("LOGIN", { + this.$store.commit("LOGIN", { 'token': data.token - // 'time': dayjs(data.expiresTime) - newTime }); - const backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index"; - that.$Cache.clear(BACK_URL); - getUserInfo().then(res => { - that.$store.commit("SETUID", res.data.uid); - if (backUrl === '/pages/index/index' || backUrl === '/pages/order_addcart/order_addcart' || backUrl ==='/pages/user/index') { - uni.switchTab({ - url: backUrl - }); - } else { - uni.switchTab({ - url: '/pages/index/index' - }); - } - }) + that.getUserInfo(data); }) .catch(e => { that.$util.Tips({ title: e }); }); + }, + getUserInfo(data){ + this.$store.commit("SETUID", data.uid); + getUserInfo().then(res => { + this.$store.commit("UPDATE_USERINFO", res.data); + let backUrl = this.$Cache.get(BACK_URL) || "/pages/index/index"; + if (backUrl.indexOf('/pages/users/login/index') !== -1) { + backUrl = '/pages/index/index'; + } + uni.reLaunch({ + url: backUrl + }); + }) } } }; - \ No newline at end of file + + .login-wrapper { + padding: 30rpx; + + .shading { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + + /* #ifdef APP-VUE */ + margin-top: 50rpx; + /* #endif */ + /* #ifndef APP-VUE */ + + margin-top: 200rpx; + /* #endif */ + + + image { + width: 180rpx; + height: 180rpx; + } + } + + .whiteBg { + margin-top: 100rpx; + + .list { + border-radius: 16rpx; + overflow: hidden; + + .item { + border-bottom: 1px solid #F0F0F0; + background: #fff; + + .row-middle { + position: relative; + padding: 16rpx 45rpx; + + .texts{ + flex: 1; + font-size: 28rpx; + height: 80rpx; + line-height: 80rpx; + display: flex; + justify-content: center; + align-items: center; + } + + input { + flex: 1; + font-size: 28rpx; + height: 80rpx; + line-height: 80rpx; + display: flex; + justify-content: center; + align-items: center; + } + + .code { + position: absolute; + right: 30rpx; + top: 50%; + color: $theme-color; + font-size: 26rpx; + transform: translateY(-50%); + } + } + } + } + + .logon { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 86rpx; + margin-top: 80rpx; + background-color: $theme-color; + border-radius: 120rpx; + color: #FFFFFF; + font-size: 30rpx; + } + + .tips { + margin: 30rpx; + text-align: center; + color: #999; + } + } + } + diff --git a/app/pages/users/order_confirm/index.vue b/app/pages/users/order_confirm/index.vue index 2af35f46..33043e6a 100644 --- a/app/pages/users/order_confirm/index.vue +++ b/app/pages/users/order_confirm/index.vue @@ -1,17 +1,23 @@ diff --git a/app/pages/users/promoter-list/index.vue b/app/pages/users/promoter-list/index.vue index 13eeff3f..7399028b 100644 --- a/app/pages/users/promoter-list/index.vue +++ b/app/pages/users/promoter-list/index.vue @@ -2,74 +2,84 @@ - + 推广人数 - {{teamCount}} + {{peopleData.count}} - - 一级({{total}}) - 二级({{totalLevel}}) - - - - - - - - 团队排序 - - - 团队排序 - - - 团队排序 - - - 金额排序 - - - 金额排序 - - - 金额排序 - - - 订单排序 - - - 订单排序 - - - 订单排序 - + + + 一级({{peopleData.total}}) + 二级({{peopleData.totalLevel}}) - - - - - - - - {{item.nickname}} - 加入时间: {{item.time}} - + + + + + + + 团队排序 + - - {{item.childCount ? item.childCount : 0}} - {{item.orderCount ? item.orderCount : 0}} - {{item.numberCount ? item.numberCount : 0}} + 团队排序 + + + 团队排序 + + + + 金额排序 + + + 金额排序 + + + 金额排序 + + + 订单排序 + + + 订单排序 + + + 订单排序 + - + + + + + + + + {{item.nickname}} + 加入时间: {{item.time.split(' ')[0]}} + + + + {{item.childCount ? item.childCount : 0}}人 + + {{item.orderCount ? item.orderCount : 0}} + {{item.numberCount ? item.numberCount : 0}} + + + + + + + + - + @@ -77,7 +87,8 @@ diff --git a/app/pages/users/user_address_list/index.vue b/app/pages/users/user_address_list/index.vue index e7753d25..2b78887a 100644 --- a/app/pages/users/user_address_list/index.vue +++ b/app/pages/users/user_address_list/index.vue @@ -1,11 +1,11 @@ @@ -117,8 +117,7 @@ import { extractCash, extractBank, - getUserInfo, - brokerageCommission + extractUser } from '@/api/user.js'; import { toLogin @@ -169,8 +168,8 @@ isLogin:{ handler:function(newV,oldV){ if(newV){ - this.getUserInfo(); this.getUserExtractBank(); + this.getExtractUser(); } }, deep:true @@ -178,17 +177,10 @@ }, onLoad() { if (this.isLogin) { - this.getUserInfo(); this.getUserExtractBank(); - //this.getBrokerageCommission(); + this.getExtractUser(); } else { - // #ifdef H5 || APP-PLUS toLogin(); - // #endif - // #ifdef MP - this.isAuto = true; - this.$set(this, 'isShowAuth', true); - // #endif } }, methods: { @@ -218,13 +210,12 @@ this.qrcodeUrlZ = ""; }, onLoadFun: function() { - this.getUserInfo(); this.getUserExtractBank(); - // this.getBrokerageCommission(); }, - getBrokerageCommission: function(){ - brokerageCommission().then(res=>{ + getExtractUser(){ + extractUser().then(res=>{ this.commission = res.data; + this.minPrice = res.data.minPrice; }) }, // 授权关闭 @@ -234,20 +225,9 @@ getUserExtractBank: function() { let that = this; extractBank().then(res => { - let array = res.data.extractBank; + let array = res.data; array.unshift("请选择银行"); that.$set(that, 'array', array); - that.minPrice = res.data.minPrice; - that.commission = res.data; - }); - }, - /** - * 获取个人用户信息 - */ - getUserInfo: function() { - let that = this; - getUserInfo().then(res => { - that.userInfo = res.data; }); }, swichNav: function(current) { @@ -256,6 +236,15 @@ bindPickerChange: function(e) { this.index = e.detail.value; }, + moneyInput(e) { + //正则表达试 + e.target.value = (e.target.value.match(/^\d*(\.?\d{0,2})/g)[0]) || null + //重新赋值给input + this.$nextTick(() => { + this.money= e.target.value + }) + + }, subCash: function(e) { let that = this, value = e.detail.value; @@ -289,13 +278,15 @@ if (value.money.length == 0) return this.$util.Tips({ title: '请填写提现金额' }); + if (!(/^(\d?)+(\.\d{0,2})?$/.test(value.money))) return this.$util.Tips({ + title: '提现金额保留2位小数' + }); if (value.money < that.minPrice) return this.$util.Tips({ title: '提现金额不能低于' + that.minPrice }); if(this.isCommitted==false){ this.isCommitted=true; extractCash(value).then(res => { - that.getUserInfo(); return this.$util.Tips({ title: "提现成功", icon: 'success' @@ -337,7 +328,7 @@ width: 40rpx; height: 40rpx; border-radius: 50%; - border: 2rpx solid #e93323; + border: 2rpx solid $theme-color; text-align: center; line-height: 37rpx; margin: 0 auto 6rpx auto; @@ -346,9 +337,9 @@ } .cash-withdrawal .nav .item .iconfont.on { - background-color: #e93323; + background-color: $theme-color; color: #fff; - border-color: #e93323; + border-color: $theme-color; } .cash-withdrawal .nav .item .line { diff --git a/app/pages/users/user_coupon/index.vue b/app/pages/users/user_coupon/index.vue index 776c8a4a..662e4368 100644 --- a/app/pages/users/user_coupon/index.vue +++ b/app/pages/users/user_coupon/index.vue @@ -1,5 +1,9 @@