From a1de97950c60edd648c324854ff12e035ef0783c Mon Sep 17 00:00:00 2001 From: tangqian Date: Wed, 24 May 2023 16:34:28 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E5=95=86=E5=9F=8E=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/order/OrderInfoResponse.java | 6 + .../order/StoreOrderDetailInfoResponse.java | 2 +- .../service/order/impl/OrderServiceImpl.java | 107 ++++++++++++------ 3 files changed, 81 insertions(+), 34 deletions(-) diff --git a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/OrderInfoResponse.java b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/OrderInfoResponse.java index 4145a9725..f9da6ffb8 100644 --- a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/OrderInfoResponse.java +++ b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/OrderInfoResponse.java @@ -60,4 +60,10 @@ public class OrderInfoResponse implements Serializable { @Schema(description = "规格属性值") private String sku; + + @Schema(description = "购买东西的详细信息") + private String info; + private String productName; + + } diff --git a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/StoreOrderDetailInfoResponse.java b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/StoreOrderDetailInfoResponse.java index 931d07b87..a8e9bf712 100644 --- a/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/StoreOrderDetailInfoResponse.java +++ b/yudao-module-mall/yudao-module-shop-api/src/main/java/cn/iocoder/yudao/module/shop/response/order/StoreOrderDetailInfoResponse.java @@ -72,7 +72,7 @@ public class StoreOrderDetailInfoResponse implements Serializable { private BigDecimal deductionPrice; @Schema(description = "优惠券id") - private Integer couponId; + private Long couponId; @Schema(description = "优惠券金额") private BigDecimal couponPrice; diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/OrderServiceImpl.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/OrderServiceImpl.java index 9879a8370..ed0231f75 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/OrderServiceImpl.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/service/order/impl/OrderServiceImpl.java @@ -63,6 +63,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.support.TransactionTemplate; import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -72,15 +73,15 @@ import java.util.stream.Collectors; /** * H5端订单操作 - * +---------------------------------------------------------------------- - * | CRMEB [ CRMEB赋能开发者,助力企业发展 ] - * +---------------------------------------------------------------------- - * | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. - * +---------------------------------------------------------------------- - * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 - * +---------------------------------------------------------------------- - * | Author: CRMEB Team - * +---------------------------------------------------------------------- + * +---------------------------------------------------------------------- + * | CRMEB [ CRMEB赋能开发者,助力企业发展 ] + * +---------------------------------------------------------------------- + * | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. + * +---------------------------------------------------------------------- + * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 + * +---------------------------------------------------------------------- + * | Author: CRMEB Team + * +---------------------------------------------------------------------- */ @Service public class OrderServiceImpl implements OrderService { @@ -140,6 +141,7 @@ public class OrderServiceImpl implements OrderService { @Autowired private StoreProductAttrValueService storeProductAttrValueService; + /** * 订单列表 * @@ -151,12 +153,27 @@ public class OrderServiceImpl implements OrderService { public PageInfo list(Integer type, PageParam pageRequest) { PageHelper.startPage(pageRequest.getPageNo(), pageRequest.getPageSize()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if(null != type){ + if (null != type) { lambdaQueryWrapper.eq(StoreOrder::getType, type); } lambdaQueryWrapper.orderByDesc(StoreOrder::getId); List storeOrders = dao.selectList(lambdaQueryWrapper); - return new PageInfo<>(StoreOrderConvert.INSTANCE.convert(storeOrders)); + PageInfo orderDetailResponsePageInfo = new PageInfo<>(StoreOrderConvert.INSTANCE.convert(storeOrders)); + if (!CollectionUtils.isEmpty(orderDetailResponsePageInfo.getList())) { + orderDetailResponsePageInfo.getList().forEach(e -> { + List list = storeOrderInfoService.list(Wrappers.lambdaQuery().eq(StoreOrderInfo::getOrderId, e.getId())); + if (!CollectionUtils.isEmpty(list)) { + List orderInfoList = new ArrayList<>(); + list.forEach(x -> { + OrderInfoResponse response = new OrderInfoResponse(); + BeanUtils.copyProperties(x, response); + orderInfoList.add(response); + }); + e.setOrderInfoList(orderInfoList); + } + }); + } + return orderDetailResponsePageInfo; } /** @@ -167,13 +184,26 @@ public class OrderServiceImpl implements OrderService { @Override public StoreOrderDetailInfoResponse detailOrder(String orderId) { StoreOrder storeOrder = storeOrderService.getByOderId(orderId); - return StoreOrderOneConvert.INSTANCE.convert(storeOrder); + List list = storeOrderInfoService.list(Wrappers.lambdaQuery().eq(StoreOrderInfo::getOrderId, storeOrder.getId())); + StoreOrderDetailInfoResponse convert = StoreOrderOneConvert.INSTANCE.convert(storeOrder); + if (!CollectionUtils.isEmpty(list)) { + List orderInfoList = new ArrayList<>(); + list.forEach(e -> { + OrderInfoResponse response = new OrderInfoResponse(); + BeanUtils.copyProperties(e, response); + orderInfoList.add(response); + }); + convert.setOrderInfoList(orderInfoList); + } + + return convert; } /** * 获取订单总数 + * * @param dateLimit 时间端 - * @param status String 状态 + * @param status String 状态 * @return Integer */ private Long getCount(String dateLimit, String status, Integer type) { @@ -192,8 +222,9 @@ public class OrderServiceImpl implements OrderService { /** * 获取订单金额 + * * @param dateLimit 时间端 - * @param type 支付类型 + * @param type 支付类型 * @return BigDecimal */ private BigDecimal getAmount(String dateLimit, String type) { @@ -217,8 +248,9 @@ public class OrderServiceImpl implements OrderService { /** * 根据订单状态获取where条件 + * * @param queryWrapper QueryWrapper 表达式 - * @param status String 类型 + * @param status String 类型 */ private void getStatusWhereNew(QueryWrapper queryWrapper, String status) { if (StrUtil.isBlank(status)) { @@ -266,7 +298,7 @@ public class OrderServiceImpl implements OrderService { break; case Constants.ORDER_STATUS_REFUNDING: //退款中 queryWrapper.eq("paid", 1); - queryWrapper.in("refund_status", 1,3); + queryWrapper.in("refund_status", 1, 3); queryWrapper.eq("is_del", 0); break; case Constants.ORDER_STATUS_REFUNDED: //已退款 @@ -291,7 +323,7 @@ public class OrderServiceImpl implements OrderService { * @return 订单状态数据量 */ @Override - public OrderDataResponse orderData(String dateLimit, Integer type,String payType) { + public OrderDataResponse orderData(String dateLimit, Integer type, String payType) { OrderDataResponse response = new OrderDataResponse(); if (type.equals(2)) { type = null; @@ -307,7 +339,7 @@ public class OrderServiceImpl implements OrderService { // 退款订单数量 response.setRefundCount(getCount(dateLimit, Constants.ORDER_STATUS_REFUNDED, type)); // 总消费钱数 - response.setSumPrice(getAmount(dateLimit,payType)); + response.setSumPrice(getAmount(dateLimit, payType)); // 未支付订单数量 response.setUnPaidCount(getCount(dateLimit, Constants.ORDER_STATUS_UNPAID, type)); // 待发货订单数量 @@ -330,7 +362,8 @@ public class OrderServiceImpl implements OrderService { /** * 查询单条订单 - *@param orderNo 订单编号 + * + * @param orderNo 订单编号 * @return 退款理由集合 */ private StoreOrder getInfoException(Integer orderNo) { @@ -342,6 +375,7 @@ public class OrderServiceImpl implements OrderService { } return storeOrder; } + /** * 订单删除 * @@ -517,7 +551,7 @@ public class OrderServiceImpl implements OrderService { */ @Override public Object expressOrder(String orderId) { - HashMap resultMap = new HashMap<>(); + HashMap resultMap = new HashMap<>(); StoreOrder storeOrderPram = new StoreOrder(); storeOrderPram.setOrderId(orderId); StoreOrder existOrder = storeOrderService.getByEntityOne(storeOrderPram); @@ -547,7 +581,7 @@ public class OrderServiceImpl implements OrderService { orderInfo.put("info", cartInfos); resultMap.put("order", orderInfo); - // resultMap.put("express", expressInfo); + // resultMap.put("express", expressInfo); return resultMap; } @@ -770,7 +804,7 @@ public class OrderServiceImpl implements OrderService { //用户剩余积分 //用户剩余经验 // 缓存订单 - String key = user.getId() + DateUtils.getNowTime().toString()+CrmebUtil.getUuid(); + String key = user.getId() + DateUtils.getNowTime().toString() + CrmebUtil.getUuid(); redisUtil.set("user_order:" + key, JSONUtil.parseObj(orderInfoVo), Constants.ORDER_CASH_CONFIRM, TimeUnit.MINUTES); MyRecord record = new MyRecord(); record.set("preOrderNo", key); @@ -779,6 +813,7 @@ public class OrderServiceImpl implements OrderService { /** * 校验预下单商品信息 + * * @param request 预下单请求参数 * @return OrderInfoVo */ @@ -866,6 +901,7 @@ public class OrderServiceImpl implements OrderService { /** * 再次下单预下单校验 + * * @param detailRequest 请求参数 * @return List */ @@ -935,8 +971,9 @@ public class OrderServiceImpl implements OrderService { /** * 购物车预下单校验 + * * @param request 请求参数 - * @param user 用户 + * @param user 用户 * @return List */ private List validatePreOrderShopping(PreOrderRequest request, MemberUserRespDTO user) { @@ -991,6 +1028,7 @@ public class OrderServiceImpl implements OrderService { }); return detailVoList; } + /** * 加载预下单信息 * @@ -1031,6 +1069,7 @@ public class OrderServiceImpl implements OrderService { /** * 计算订单价格 + * * @param request 计算订单价格请求对象 * @return ComputedOrderPriceResponse */ @@ -1137,7 +1176,7 @@ public class OrderServiceImpl implements OrderService { orderRequest.setRealName(userAddress.getRealName()); orderRequest.setPhone(userAddress.getPhone()); userAddressStr = userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getDetail(); - }else if (orderRequest.getShippingType() == 2) { // 到店自提 + } else if (orderRequest.getShippingType() == 2) { // 到店自提 if (StringUtils.isBlank(orderRequest.getRealName()) || StringUtils.isBlank(orderRequest.getPhone())) { throw new ServiceException("请填写姓名和电话"); } @@ -1150,7 +1189,7 @@ public class OrderServiceImpl implements OrderService { // if (ObjectUtil.isNull(systemStore) || systemStore.getIsDel() || !systemStore.getIsShow()) { // throw new ServiceException("暂无门店无法选择门店自提"); // } - verifyCode = CrmebUtil.randomCount(1111111111,999999999)+""; + verifyCode = CrmebUtil.randomCount(1111111111, 999999999) + ""; //userAddressStr = systemStore.getName(); } @@ -1292,7 +1331,7 @@ public class OrderServiceImpl implements OrderService { storeOrder.setType(1);// 视频号订单 } - // StoreCouponUser storeCouponUser = new StoreCouponUser(); + // StoreCouponUser storeCouponUser = new StoreCouponUser(); // 优惠券修改 // if (storeOrder.getCouponId() > 0) { // storeCouponUser = storeCouponUserService.getById(storeOrder.getCouponId()); @@ -1304,12 +1343,12 @@ public class OrderServiceImpl implements OrderService { // 扣减库存 // 需要根据是否活动商品,扣减不同的库存 // 普通商品 - for (MyRecord skuRecord : skuRecordList) { - // 普通商品口库存 - storeProductService.operationStock(skuRecord.getInt("productId"), skuRecord.getInt("num"), "sub"); - // 普通商品规格扣库存 - //storeProductAttrValueService.operationStock(skuRecord.getInt("attrValueId"), skuRecord.getInt("num"), "sub", Constants.PRODUCT_TYPE_NORMAL); - }// + for (MyRecord skuRecord : skuRecordList) { + // 普通商品口库存 + storeProductService.operationStock(skuRecord.getInt("productId"), skuRecord.getInt("num"), "sub"); + // 普通商品规格扣库存 + //storeProductAttrValueService.operationStock(skuRecord.getInt("attrValueId"), skuRecord.getInt("num"), "sub", Constants.PRODUCT_TYPE_NORMAL); + }// storeOrderService.create(storeOrder); storeOrderInfos.forEach(info -> info.setOrderId(storeOrder.getId())); @@ -1337,7 +1376,7 @@ public class OrderServiceImpl implements OrderService { redisUtil.lPush(Constants.ORDER_AUTO_CANCEL_KEY, storeOrder.getOrderId()); // TODO 发送后台管理员下单提醒通知短信 - // sendAdminOrderNotice(storeOrder.getOrderId()); + // sendAdminOrderNotice(storeOrder.getOrderId()); MyRecord record = new MyRecord(); record.set("orderNo", storeOrder.getOrderId()); @@ -1346,6 +1385,7 @@ public class OrderServiceImpl implements OrderService { /** * 校验商品库存(生成订单) + * * @param orderInfoVo 订单详情Vo * @return List * skuRecord 扣减库存对象 @@ -1392,6 +1432,7 @@ public class OrderServiceImpl implements OrderService { } return recordList; } + /** * 获取支付配置 * From 989fec4ebc2831b260770314cbdf89b502612492 Mon Sep 17 00:00:00 2001 From: TianYu <332368756@qq.com> Date: Wed, 24 May 2023 16:54:06 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DIOS=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E7=94=9F=E6=88=90=E6=B5=B7=E6=8A=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yudao-ui-app/App.vue | 2 +- yudao-ui-app/components/paymentMember/index.vue | 4 ++-- yudao-ui-app/pages/users/user_spread_code/index.vue | 10 ++++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/yudao-ui-app/App.vue b/yudao-ui-app/App.vue index 72690a77d..8d3bbc918 100644 --- a/yudao-ui-app/App.vue +++ b/yudao-ui-app/App.vue @@ -186,7 +186,7 @@ if (this.$store.getters.isLogin) { this.setRefreshToken() } - }, 60000) + }, 600000) }, // 是否扫码跳转 isQRCode() { diff --git a/yudao-ui-app/components/paymentMember/index.vue b/yudao-ui-app/components/paymentMember/index.vue index 2badafc4e..122525432 100644 --- a/yudao-ui-app/components/paymentMember/index.vue +++ b/yudao-ui-app/components/paymentMember/index.vue @@ -216,7 +216,7 @@ width: 100%; border-radius: 16rpx 16rpx 0 0; background-color: #fff; - padding-bottom: 4%; + padding-bottom: 100rpx; z-index: 99; transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); transform: translate3d(0, 100%, 0); @@ -256,7 +256,7 @@ } .payment .item .left { - width: 610rpx; + width: 600rpx; } .payment .item .left .text { diff --git a/yudao-ui-app/pages/users/user_spread_code/index.vue b/yudao-ui-app/pages/users/user_spread_code/index.vue index 57614afea..77abdba74 100644 --- a/yudao-ui-app/pages/users/user_spread_code/index.vue +++ b/yudao-ui-app/pages/users/user_spread_code/index.vue @@ -65,14 +65,20 @@ }, onReady() {}, methods: { - downImage() { + async downImage() { const that = this uni.showLoading({ title: '生成海报中', mask: true }); that.isHideBtn = true - htmlToImage.toJpeg(document.getElementById('poster-wrap'), { + for(let i = 0; i<3; i++){ + await htmlToImage.toPng(document.getElementById('poster-wrap'), { + quality: 0.95, + cacheBust: true + }); + } + htmlToImage.toPng(document.getElementById('poster-wrap'), { quality: 0.95, cacheBust: true }) From b18ed2551cb56f22335111c8c03b6ba01ba9d4b7 Mon Sep 17 00:00:00 2001 From: Jruome <2559028966@qq.com> Date: Wed, 24 May 2023 16:59:54 +0800 Subject: [PATCH 3/3] =?UTF-8?q?uniapp=20=E4=BC=9A=E5=91=98=E6=9D=83?= =?UTF-8?q?=E7=9B=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yudao-ui-admin/src/api/cremb/logistics.js | 9 ++ .../freightSet/creatTemplates.vue | 31 +++-- yudao-ui-app/api/member.js | 14 ++ yudao-ui-app/pages.json | 31 +++-- yudao-ui-app/pages/goods_details/index.vue | 16 +-- .../pages/member_application/index.vue | 93 +++++++------ yudao-ui-app/pages/member_detail/index.vue | 111 ++++++++++++++++ yudao-ui-app/pages/member_equity/index.vue | 125 ++++++++++++------ yudao-ui-app/pages/member_loding/index.vue | 52 ++++++++ yudao-ui-app/pages/member_others/index.vue | 2 +- yudao-ui-app/pages/member_renew/index.vue | 2 +- yudao-ui-app/static/images/others-button.png | Bin 0 -> 33363 bytes yudao-ui-app/static/images/others-right.png | Bin 0 -> 2095 bytes yudao-ui-app/static/images/shopping-right.png | Bin 0 -> 3007 bytes 14 files changed, 380 insertions(+), 106 deletions(-) create mode 100644 yudao-ui-app/pages/member_detail/index.vue create mode 100644 yudao-ui-app/pages/member_loding/index.vue create mode 100644 yudao-ui-app/static/images/others-button.png create mode 100644 yudao-ui-app/static/images/others-right.png create mode 100644 yudao-ui-app/static/images/shopping-right.png diff --git a/yudao-ui-admin/src/api/cremb/logistics.js b/yudao-ui-admin/src/api/cremb/logistics.js index 7821036d7..5f7855840 100644 --- a/yudao-ui-admin/src/api/cremb/logistics.js +++ b/yudao-ui-admin/src/api/cremb/logistics.js @@ -143,6 +143,15 @@ export function shippingRegion(data) { }) } +// 物流运费模板指定不配送 +export function shippingNodelivery(data) { + return request({ + url: 'admin/express/shipping/no_delivery/list', + method: 'get', + params: { ...data } + }) +} + // 物流运费模板新增 export function shippingSave(data) { return request({ diff --git a/yudao-ui-admin/src/views/deliverGoods/freightSet/creatTemplates.vue b/yudao-ui-admin/src/views/deliverGoods/freightSet/creatTemplates.vue index 6b7038c94..4fbafa4d8 100644 --- a/yudao-ui-admin/src/views/deliverGoods/freightSet/creatTemplates.vue +++ b/yudao-ui-admin/src/views/deliverGoods/freightSet/creatTemplates.vue @@ -168,6 +168,7 @@ import * as logistics from '@/api/cremb/logistics' import { Loading } from 'element-ui' import {Debounce} from '@/utils/validate' +import {shippingNodelivery} from "@/api/cremb/logistics"; const defaultRole = { name: '', type: 1, @@ -357,6 +358,10 @@ export default { if (info.appoint) { this.shippingFree() } + // 指定不包邮 + if(info.noDelivery){ + this.shippingNodelivery() + } }).catch(res => { // console.integralLog(res) this.$message.error(res.message) @@ -379,10 +384,24 @@ export default { shippingFree() { logistics.shippingFree({ tempId: this.tempId }).then(res => { res.data.forEach((item, index) => { - item.title = JSON.parse(item.title) - item.city_ids = item.title + // item.title = JSON.parse(item.title) + item.city_ids = item.cityId.split(',') }) this.ruleForm.free = res.data + console.log(this.ruleForm.free ) + + }) + }, + // 包邮 + shippingNodelivery() { + logistics.shippingNodelivery({ tempId: this.tempId }).then(res => { + res.data.forEach((item, index) => { + // item.title = JSON.parse(item.title) + item.city_ids = item.cityId.split(',') + }) + this.ruleForm.noDelivery = res.data + console.log(this.ruleForm.noDelivery ) + }) }, removeChild(list){ @@ -443,9 +462,7 @@ export default { } this.ruleForm.region.forEach((el, index) => { if(el.city_ids.length > 0){ - el.cityId = el.city_ids.map(item => { - return item[2] - }).join(',') + el.cityId = JSON.stringify(el.city_ids) }else{ el.cityId = 'all' } @@ -467,9 +484,7 @@ export default { if (this.ruleForm.appoint) { this.ruleForm.free.forEach((el, index) => { if(el.city_ids.length > 0){ - el.cityId = el.city_ids.map(item => { - return item[2] - }).join(',') + el.cityId = JSON.stringify(el.city_ids) }else{ el.cityId = 'all' } diff --git a/yudao-ui-app/api/member.js b/yudao-ui-app/api/member.js index 8e3ef8e34..6f93e6d05 100644 --- a/yudao-ui-app/api/member.js +++ b/yudao-ui-app/api/member.js @@ -15,6 +15,20 @@ export function memberOrderInfo(){ return request.get('api/order/member/memberOrderInfo', {}) } +/** + * 查询权益档位信息 + */ +export function query(phone){ + return request.get(`shop/refund-fee-record/query?phone=${phone}`, {}) +} + +/** + * 查询档位返费信息 + */ +export function memberQuery(reportId){ + return request.get(`shop/refund-fee-record/query-item?reportId=${reportId}`, {}) +} + /** * 根据手机号查询档次信息 */ diff --git a/yudao-ui-app/pages.json b/yudao-ui-app/pages.json index 115212c27..da66973c9 100644 --- a/yudao-ui-app/pages.json +++ b/yudao-ui-app/pages.json @@ -10,6 +10,18 @@ // } } }, + { + "path": "pages/member_loding/index", + "style": { + "navigationBarTitleText": "会员" + } + }, + { + "path": "pages/member_detail/index", + "style": { + "navigationBarTitleText": "权益明细" + } + }, { "path": "pages/member_equity/index", "style": { @@ -577,27 +589,28 @@ // { // "pagePath": "pages/index/index", // "iconPath": "static/images/tabbar/nav_icon_shop.png", - // "selectedIconPath": "static/images/1-002.png", + // "selectedIconPath": "static/images/tabbar/nav_icon_shop_active.png", // "text": "商城" // }, - // { - // "pagePath": "pages/goods_cate/goods_cate", - // "iconPath": "static/images/tabbar/nav_icon_sort.png", - // "selectedIconPath": "static/images/2-002.png", - // "text": "分类" - // }, + { "pagePath": "pages/member_application/index", - "iconPath": "static/images/2-001.png", + "iconPath": "static/images/tabbar/nav_icon_member.png", "selectedIconPath": "static/images/tabbar/nav_icon_member_active.png", "text": "会员申请" }, { "pagePath": "pages/member_equity/index", - "iconPath": "static/images/2-001.png", + "iconPath": "static/images/tabbar/nav_icon_member.png", "selectedIconPath": "static/images/tabbar/nav_icon_member_active.png", "text": "会员申请", "visible":false + }, + { + "pagePath": "pages/goods_cate/goods_cate", + "iconPath": "static/images/tabbar/nav_icon_sort.png", + "selectedIconPath": "static/images/tabbar/nav_icon_sort_active.png", + "text": "分类" }, // { // "pagePath": "pages/order_addcart/order_addcart", diff --git a/yudao-ui-app/pages/goods_details/index.vue b/yudao-ui-app/pages/goods_details/index.vue index 1cb2e3f67..93635dd6d 100644 --- a/yudao-ui-app/pages/goods_details/index.vue +++ b/yudao-ui-app/pages/goods_details/index.vue @@ -105,7 +105,7 @@ --> - + + - + --> @@ -167,11 +167,11 @@ - + @@ -954,9 +954,9 @@ } else { obj.type = ""; } - getCoupons(obj).then(res => { - that.$set(that.coupon, 'list', res.data); - }); + // getCoupons(obj).then(res => { + // that.$set(that.coupon, 'list', res.data); + // }); }, tabCouponType(type) { this.$set(this.coupon, 'type', type); diff --git a/yudao-ui-app/pages/member_application/index.vue b/yudao-ui-app/pages/member_application/index.vue index dd37bbd7b..92b2bcd13 100644 --- a/yudao-ui-app/pages/member_application/index.vue +++ b/yudao-ui-app/pages/member_application/index.vue @@ -27,6 +27,7 @@ + @@ -37,13 +38,10 @@ - - - - - - - + + + + @@ -60,18 +58,16 @@ }, data() { return { - title:'管理', - list: [ - { - name:'购买记录', - fontSize:'28' - }, - { - name:'为他人充值', - fontSize:'28' - }, - ], - show: false, + // list: [ + // { + // name:'购买记录', + // fontSize:'28' + // }, + // { + // name:'为他人充值', + // fontSize:'28' + // }, + // ], memberData: [], payInfo: { userPhone: '', @@ -96,16 +92,17 @@ form: { phone: '' }, - + show:true, + ref:null }; }, async onLoad() { - uni.showLoading({ - title: '加载中', - mask: true - }); try{ + uni.showLoading({ + title: '加载中', + mask: true + }); const res = await memberGradeInfo() if(res.data.some((item) => !!parseInt(item.isExist))){ uni.setTabBarItem({ @@ -120,9 +117,6 @@ index: 0, pagePath: '/pages/member_application/index' }) - uni.switchTab({ - url:'/pages/member_application/index' - }) } this.memberData = res.data } finally{ @@ -130,7 +124,11 @@ } }, methods: { - + handleOther(){ + uni.navigateTo({ + url:'/pages/member_others/index' + }) + }, handleSelect(value){ switch (value.name){ case "购买记录": @@ -225,15 +223,14 @@ diff --git a/yudao-ui-app/pages/member_detail/index.vue b/yudao-ui-app/pages/member_detail/index.vue new file mode 100644 index 000000000..2193869bf --- /dev/null +++ b/yudao-ui-app/pages/member_detail/index.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/yudao-ui-app/pages/member_equity/index.vue b/yudao-ui-app/pages/member_equity/index.vue index ee6c7d1ac..31cf1db87 100644 --- a/yudao-ui-app/pages/member_equity/index.vue +++ b/yudao-ui-app/pages/member_equity/index.vue @@ -8,8 +8,18 @@ 会员积分:{{memberDetail.integral}} 再升1级即可获得【XX】等6项权益 + + + 购买记录 + + + + 为他人充值 + + + - + 会员等级{{vipData.findIndex((item) => item == memberDetail.grade) +1}}级 @@ -23,47 +33,43 @@ 查看权益> - + - - 办理日期:2021.12.30 + + 办理日期:{{item.startTime}} 已返回金额(元) - 80 - 查看明细> + {{item.totalMoney}} + 查看明细> - 已返回金额(元) - 80 + 带返还金额 (元) + {{list[list.findIndex((i) => item.gear == i.name)].name-item.totalMoney}} - 已返回金额(元) - 80 + 带返还期额 + {{item.frequency}}x12 - 已返回金额(元) - 80 - - - - - - - - - - - + 返费结束时间 + {{item.endTime}} + + + + + + + + diff --git a/yudao-ui-app/pages/member_others/index.vue b/yudao-ui-app/pages/member_others/index.vue index 9b3208a53..37371e058 100644 --- a/yudao-ui-app/pages/member_others/index.vue +++ b/yudao-ui-app/pages/member_others/index.vue @@ -508,7 +508,7 @@ .box-submit { background: linear-gradient(#FFC82B, #FD7A32); - margin-top: 127rpx; + margin-top: 9%; display: flex; justify-content: center; align-items: center; diff --git a/yudao-ui-app/pages/member_renew/index.vue b/yudao-ui-app/pages/member_renew/index.vue index b5de68658..2e8a02e02 100644 --- a/yudao-ui-app/pages/member_renew/index.vue +++ b/yudao-ui-app/pages/member_renew/index.vue @@ -461,7 +461,7 @@ import store from '@/store/index'; .box-submit { background: linear-gradient(#FFC82B, #FD7A32); - margin-top: 127rpx; + margin-top: 9%; display: flex; justify-content: center; align-items: center; diff --git a/yudao-ui-app/static/images/others-button.png b/yudao-ui-app/static/images/others-button.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5010274ada7032d0f8d8699b11b48f784dc50a GIT binary patch literal 33363 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 literal 0 HcmV?d00001 diff --git a/yudao-ui-app/static/images/shopping-right.png b/yudao-ui-app/static/images/shopping-right.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc755631a291aa4b20895f488b51ffd0f45f870 GIT binary patch literal 3007 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