Commit 1e32e7430f52f299bc0500d9b1f604fb973033e5

Authored by 后端研发-苏泰源
1 parent 32d833de

app.json修改

app.json
... ... @@ -91,44 +91,45 @@
91 91 "pages/quan_pro/quan_pro",
92 92 "pages/liveStream/liveStream",
93 93 "pages/liveStreamDetails/liveStreamDetails",
94   - "pages/addCustomer/addCustomer",
95   - "pages/goods_share/goods_share",
96   - "pages/activity_share/activity_share",
97   - "pages/live_share/live_share",
98   - "pages/quan/quan",
99   - "pages/chongzhi/chongzhi",
100   - "pages/chongzhiDetails/chongzhiDetails",
101   - "pages/jfbuy/jfbuy",
102   - "pages/hongBao/hongBao",
103   - "pages/hongBaoDetails/hongBaoDetails",
104   - "pages/service_record/service_record",
105   - "pages/checkin/checkin",
106   - "pages/distribution/myteam/myteam",
107   - "pages/distribution/order/order",
108   - "pages/distribution/commision/commision",
109   - "pages/distribution/rank/rank",
110   - "pages/distribution/card/card",
111   - "pages/distribution/goods/goods",
112   - "pages/distribution/shop/shop",
113   - "pages/distribution/rookie/rookie",
114   - "pages/service_share/service_share",
115   - "pages/cardList/cardList",
116   - "pages/goodsInfo/goodsInfo",
117   - "pages/my_service/appment_main",
118   - "pages/my_service/i_service",
119   - "pages/my_service/cosmetology_list",
120   - "pages/my_service/hist_service",
121   - "pages/my_service/tment_details",
122   - "pages/my_service/tment_eval",
123   - "pages/my_service/tment_order_list",
124   - "pages/my_service/beauty_deta",
125   - "pages/my_service2/appment_main",
126   - "pages/profile/profile",
127   - "pages/parseHtml/parseHtml",
128   - "pages/myGift/myGift",
129   - "pages/myGiftDetails/myGiftDetails",
130   - "pages/cart2_ser/cart2_ser",
131   - "pages/libao_payment/payment"
  94 + "pages/addCustomer/addCustomer",
  95 + "pages/goods_share/goods_share",
  96 + "pages/activity_share/activity_share",
  97 + "pages/live_share/live_share",
  98 + "pages/quan/quan",
  99 + "pages/chongzhi/chongzhi",
  100 + "pages/chongzhiDetails/chongzhiDetails",
  101 + "pages/jfbuy/jfbuy",
  102 + "pages/hongBao/hongBao",
  103 + "pages/hongBaoDetails/hongBaoDetails",
  104 + "pages/service_record/service_record",
  105 + "pages/checkin/checkin",
  106 + "pages/distribution/myteam/myteam",
  107 + "pages/distribution/order/order",
  108 + "pages/distribution/commision/commision",
  109 + "pages/distribution/rank/rank",
  110 + "pages/distribution/card/card",
  111 + "pages/distribution/goods/goods",
  112 + "pages/distribution/shop/shop",
  113 + "pages/distribution/rookie/rookie",
  114 + "pages/service_share/service_share",
  115 + "pages/cardList/cardList",
  116 + "pages/goodsInfo/goodsInfo",
  117 + "pages/my_service/appment_main",
  118 + "pages/my_service/i_service",
  119 + "pages/my_service/cosmetology_list",
  120 + "pages/my_service/hist_service",
  121 + "pages/my_service/tment_details",
  122 + "pages/my_service/tment_eval",
  123 + "pages/my_service/tment_order_list",
  124 + "pages/my_service/beauty_deta",
  125 + "pages/my_service2/appment_main",
  126 + "pages/profile/profile",
  127 + "pages/parseHtml/parseHtml",
  128 + "pages/myGift/myGift",
  129 + "pages/myGiftDetails/myGiftDetails",
  130 + "pages/cart2_ser/cart2_ser",
  131 + "pages/libao_payment/payment",
  132 + "pages/details_serviceCard/details_serviceCard"
132 133 ]
133 134  
134 135 },
... ... @@ -151,7 +152,9 @@
151 152 "pages/zuhegou/list/list",
152 153 "pages/user/binding_info/binding_info",
153 154 "pages/user/choice_guide/choice_guide",
154   - "pages/video/index"
  155 + "pages/video/index",
  156 + "pages/boxes-list/boxes-list",
  157 + "pages/boxes-details/boxes-details"
155 158 ]
156 159 },
157 160 {
... ...
packageB/pages/boxes-details/boxes-details.js 0 → 100644
  1 +// packageA/pages/details_serviceCard/details_serviceCard.js
  2 +const app = getApp();
  3 +const os = app.globalData.setting;
  4 +let self = null;
  5 +
  6 +Page({
  7 +
  8 + /**
  9 + * 页面的初始数据
  10 + */
  11 + data: {
  12 + is_summit_ing: 0,
  13 +
  14 + showQr: false,
  15 + },
  16 +
  17 + /**
  18 + * 生命周期函数--监听页面加载
  19 + */
  20 + onLoad: function(options) {
  21 + self = this;
  22 + this.data.options = options;
  23 + app.isLogin().then(function(data) {
  24 + self.setData({
  25 + userInfo: data,
  26 + });
  27 + self.getConfig();
  28 + });
  29 + },
  30 +
  31 + /**
  32 + * 生命周期函数--监听页面初次渲染完成
  33 + */
  34 + onReady: function() {
  35 +
  36 + },
  37 +
  38 + /**
  39 + * 生命周期函数--监听页面显示
  40 + */
  41 + onShow: function() {
  42 + if (app.globalData.userInfo) {
  43 + if (!this.data.isLogin) {
  44 + this.setData({
  45 + userInfo: app.globalData.userInfo,
  46 + imghost: app.globalData.setting.imghost,
  47 + isLogin: true,
  48 + });
  49 +
  50 + let url = '/api/weshop/recharge/user/page'
  51 + let data = {
  52 + store_id: app.globalData.setting.stoid,
  53 + user_id: this.data.userInfo.user_id,
  54 + order_id: this.data.options.order_id,
  55 + };
  56 +
  57 + // 请求数据
  58 + app.promiseGet(url, {
  59 + data: data,
  60 + }).then(res => {
  61 + if (res.data.code == 0) {
  62 + console.log('请求成功', res);
  63 + this.setData({
  64 + details: res.data.data.pageData[0],
  65 + });
  66 + } else {
  67 + throw (res);
  68 + };
  69 + }).catch(err => {
  70 + wx.showToast({
  71 + title: err.data.data,
  72 + icon: 'error',
  73 + });
  74 + });
  75 +
  76 + };
  77 + };
  78 + },
  79 +
  80 + /**
  81 + * 生命周期函数--监听页面隐藏
  82 + */
  83 + onHide: function() {
  84 +
  85 + },
  86 +
  87 + /**
  88 + * 生命周期函数--监听页面卸载
  89 + */
  90 + onUnload: function() {
  91 +
  92 + },
  93 +
  94 + /**
  95 + * 页面相关事件处理函数--监听用户下拉动作
  96 + */
  97 + onPullDownRefresh: function() {
  98 +
  99 + },
  100 +
  101 + /**
  102 + * 页面上拉触底事件的处理函数
  103 + */
  104 + onReachBottom: function() {
  105 +
  106 + },
  107 +
  108 + /**
  109 + * 用户点击右上角分享
  110 + */
  111 + onShareAppMessage: function() {
  112 +
  113 + },
  114 +
  115 +
  116 + // 内容复制到剪贴板
  117 + copy() {
  118 + console.log('点击了复制按钮');
  119 + wx.setClipboardData({
  120 + data: this.data.details.order_sn,
  121 + success(res) {
  122 + wx.getClipboardData({
  123 + success(res) {
  124 + console.log(res.data);
  125 + }
  126 + })
  127 + }
  128 + })
  129 + },
  130 +
  131 +
  132 + // 图片异常时加载默认图片
  133 + bind_bnerr(e) {
  134 + var errImg = e.currentTarget.dataset.errorimg;
  135 + var errObj = {};
  136 + errObj[errImg] = 'public/images/default_goods_image_240.gif';
  137 + this.setData(errObj); // this.setData({ details.list[0].img_url});
  138 + },
  139 +
  140 +
  141 + // 查看商品详情
  142 + viewDetails(e) {
  143 + let goods_id = e.currentTarget.dataset.gid;
  144 + let url = '/packageA/pages/goodsInfo/goodsInfo?goods_id=' + goods_id;
  145 + app.goto(url);
  146 + },
  147 +
  148 + // 获取系统参数
  149 + getConfig() {
  150 + app.getConfig2(function(e) {
  151 + // console.log('101',e);
  152 + let json_d = JSON.parse(e.switch_list);
  153 + self.setData({
  154 + sys_switch: json_d,
  155 + // weapp_customertype: json_d.weapp_customertype,
  156 + });
  157 + }, 1);
  158 + },
  159 +
  160 +
  161 + // 联系微信客服
  162 + contact_wx() {
  163 + var url = this.data.sys_switch.weapp_customertype_url;
  164 + var id = this.data.sys_switch.weapp_customertype_appid;
  165 + wx.openCustomerServiceChat({
  166 + extInfo: {
  167 + url: url
  168 + },
  169 + corpId: id,
  170 + success(res) {}
  171 + })
  172 + },
  173 +
  174 +
  175 + // 联系电话客服
  176 + contactService() {
  177 + app.getConfig(function(t) {
  178 + if (t.store_tel == undefined) {
  179 + app.request.get('/api/weshop/store/get/' + os.stoid, {
  180 + isShowLoading: 1,
  181 + data: {},
  182 + success: function(rs) {
  183 + app.globalData.config = rs.data.data;
  184 + if (rs.data.data.store_tel == null && rs.data.data.store_tel == undefined) {
  185 + app.my_warnning('商家未设置电话', 0, self);
  186 + return false;
  187 + }
  188 + app.confirmBox('请联系客服:' + rs.data.data.store_tel);
  189 + }
  190 + })
  191 + } else {
  192 + app.confirmBox('请联系客服:' + t.store_tel);
  193 + }
  194 + });
  195 + },
  196 +
  197 +
  198 + // 评价商品
  199 + access() {
  200 + let listLength = this.data.details.list.length;
  201 + let order_id = this.data.details.order_id;
  202 + let url = '';
  203 +
  204 + // 卡项订单跳转到评论页要多加个参数card=1
  205 + // 卡项订单goods_id要带card_id
  206 + if (listLength == 1) {
  207 + let price = this.data.details.list[0].price;
  208 + let card_id = this.data.details.list[0].card_id;
  209 + url =
  210 + `/packageB/pages/user/add_comment/add_comment?card=1&goods_id=${card_id}&order_id=${order_id}&price=${price}`
  211 + };
  212 + if (listLength > 1) {
  213 + url = `/packageB/pages/user/comment/comment?card=1&status=0&order_id=${order_id}`;
  214 + };
  215 + f
  216 + // console.log('url', url);
  217 + app.goto(url);
  218 + },
  219 +
  220 +
  221 + // 查看评论
  222 + viewComment() {
  223 + let order_id = this.data.details.order_id;
  224 + let card_id = this.data.details.list[0].card_id;
  225 + let listLength = this.data.details.list.length;
  226 + let url = '';
  227 +
  228 + // 卡项订单单个商品
  229 + if (listLength == 1) {
  230 + url = `/packageB/pages/user/view_comment/view_comment?card=1&goods_id=${card_id}&order_id=${order_id}`;
  231 + };
  232 + // 卡项订单多个商品
  233 + if (listLength > 1) {
  234 + // status控制评论列表页的activeStatus
  235 + url = `/packageB/pages/user/comment/comment?card=1&status=1&order_id=${order_id}`;
  236 + };
  237 +
  238 + app.goto(url);
  239 + },
  240 +
  241 +
  242 + // 再来一单
  243 + buy2(t) {
  244 + let details = this.data.details;
  245 + var th = this;
  246 + var ind = 1; // 1:加入购物车
  247 + // var ind = t.currentTarget.dataset.openSpecModal_ind;
  248 + // var action= t.currentTarget.dataset.action;
  249 + var action = 'add'; //
  250 + // if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind;
  251 +
  252 + th.setData({
  253 + open_ind_store: ind
  254 + });
  255 +
  256 + // if(!th.data.sto_sele_name){
  257 + // getApp().my_warnning('请选择门店', 1, th, 450);
  258 + // return false;
  259 + // }
  260 +
  261 +
  262 + if (action == "buy") {
  263 + //--------------此时操作的数据------------
  264 + // var newd = {
  265 + // id: th.data.data.id,
  266 + // goods_num: th.data.goodsInputNum,
  267 + // pick_id: th.data.sto_sele_id,
  268 + // keyid: th.data.sto_sele_keyid,
  269 + // };
  270 + // newd['pick_name'] = th.data.sto_sele_name;
  271 + // newd['guide_id'] = getApp().globalData.guide_id;
  272 + // newd['guide_type']=0;
  273 + // th.buyNow(newd);
  274 + } else {
  275 +
  276 + var newd = {
  277 + // service_id: th.data.data.id,
  278 + // service_sn:th.data.data.service_sn,
  279 + // service_name:th.data.data.goods_name,
  280 + // goods_num: th.data.goodsInputNum,
  281 + // pick_id: th.data.sto_sele_id,
  282 + // user_id:oo.user_id,
  283 + // store_id:os.stoid,
  284 + // money:th.data.data.shop_price,
  285 +
  286 + service_id: details.list[0].card_id,
  287 + service_sn: details.list[0].service_sn,
  288 + service_name: details.list[0].service_name,
  289 + goods_num: details.list[0].qty,
  290 + pick_id: details.list[0].pickup_id,
  291 + user_id: this.data.userInfo.user_id,
  292 + store_id: app.globalData.setting.stoid,
  293 + money: details.list[0].price,
  294 + };
  295 + if (getApp().globalData.guide_id) {
  296 + newd['guide_id'] = getApp().globalData.guide_id;
  297 + newd['guide_type'] = 0;
  298 + }
  299 +
  300 + //----先看会员在购物车中是否加入了该商品-----
  301 + app.request.get("/api/weshop/cartService/page", {
  302 + data: {
  303 + store_id: app.globalData.setting.stoid,
  304 + user_id: this.data.userInfo.user_id,
  305 + service_id: details.list[0].card_id,
  306 + pick_id: details.list[0].pickup_id,
  307 + },
  308 + success: function(re) {
  309 +
  310 + //-------如果购物车中有相关的数据---------
  311 + if (re.data.data.total > 0) {
  312 + var item = re.data.data.pageData[0];
  313 + var updata = {
  314 + id: item.id,
  315 + goods_num: details.list[0].qty + item.goods_num,
  316 + money: details.list[0].price,
  317 + store_id: app.globalData.setting.stoid,
  318 + };
  319 +
  320 + if (getApp().globalData.guide_id) {
  321 + updata['guide_id'] = getApp().globalData.guide_id;
  322 + updata['guide_type'] = 1;
  323 + }
  324 + getApp().request.put("/api/weshop/cartService/update", {
  325 + data: updata,
  326 + success: function(t) {
  327 + // getApp().my_warnning('加入购物车成功', 1, th, 450);
  328 + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum;
  329 + th.setData({
  330 + cartGoodsNum: c_num
  331 + });
  332 + app.goto('/pages/cart/cart/cart');
  333 + // th.closeSpecModal();
  334 + }
  335 + });
  336 + } else {
  337 +
  338 + getApp().request.post("/api/weshop/cartService/save", {
  339 + data: newd,
  340 + success: function(t) {
  341 + // getApp().my_warnning('加入购物车成功', 1, th, 450);
  342 + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum;
  343 + th.setData({
  344 + cartGoodsNum: c_num
  345 + });
  346 + app.goto('/pages/cart/cart/cart');
  347 + // th.closeSpecModal();
  348 + }
  349 + });
  350 + }
  351 + }
  352 + });
  353 +
  354 + }
  355 + },
  356 +
  357 +
  358 + // 取消订单
  359 + // api/weshop/recharge/update?store_id=&order_id=&order_status=3
  360 + cancle() {
  361 + wx.showModal({
  362 + title: '提示',
  363 + content: '确定取消订单吗?',
  364 + success(res) {
  365 + if (res.confirm) {
  366 + console.log('用户点击确定');
  367 + let order_id = self.data.details.order_id;
  368 + let order_sn = self.data.details.order_sn;
  369 + app.request.put('/api/weshop/recharge/update', {
  370 + data: {
  371 + store_id: os.stoid,
  372 + order_id: order_id,
  373 + order_sn: order_sn,
  374 + order_status: 3,
  375 + },
  376 + success: function(res) {
  377 +
  378 + //取消成功刷新订单
  379 + let url = '/api/weshop/recharge/user/page'
  380 + let data = {
  381 + store_id: app.globalData.setting.stoid,
  382 + user_id: self.data.userInfo.user_id,
  383 + order_id: self.data.options.order_id,
  384 + };
  385 +
  386 + // 请求数据
  387 + app.promiseGet(url, {
  388 + data: data,
  389 + }).then(res => {
  390 + if (res.data.code == 0) {
  391 + console.log('请求成功', res);
  392 + wx.showToast({
  393 + title: '取消成功',
  394 + });
  395 + self.setData({
  396 + details: res.data.data.pageData[0],
  397 + });
  398 + } else {
  399 + throw (res);
  400 + };
  401 + }).catch(err => {
  402 + wx.showToast({
  403 + title: err.data.data,
  404 + icon: 'error',
  405 + });
  406 + });
  407 +
  408 + },
  409 + })
  410 + } else if (res.cancel) {
  411 + console.log('用户点击取消');
  412 + }
  413 + }
  414 + });
  415 + },
  416 +
  417 +
  418 + // 立即支付
  419 + pay() {
  420 + let order_sn = this.data.details.order_sn;
  421 + let store_id = app.globalData.setting.stoid;
  422 +
  423 + app.request.post('/api/weshop/order/pay/createRechargeOrder', {
  424 + data: {
  425 + parentSn: order_sn,
  426 + store_id: store_id,
  427 + },
  428 +
  429 + success: function(res) {
  430 + var n = res.data.data;
  431 + self.weixinPay(n, function() {
  432 + app.showWarning('支付成功');
  433 + // setTimeout(function() {
  434 + // wx.reLaunch({
  435 + // url: '/pages/user/my_service/i_service',
  436 + // })
  437 + // }, 1000)
  438 + }, function() {
  439 + app.showWarning('支付失败');
  440 + // setTimeout(function() {
  441 + // wx.reLaunch({
  442 + // url: '/packageA/pages/cardList/cardList',
  443 + // })
  444 + // }, 1000)
  445 + });
  446 + }
  447 + })
  448 + },
  449 +
  450 +
  451 + //------调起支付框--------
  452 + weixinPay: function(n, success, fail) {
  453 + if (!n) return false;
  454 + wx.requestPayment({
  455 + timeStamp: String(n.timeStamp),
  456 + nonceStr: n.nonceStr,
  457 + package: n.packageValue,
  458 + signType: n.signType,
  459 + paySign: n.paySign,
  460 + success: function(n) {
  461 + console.log(n), getApp().showSuccess("支付成功!");
  462 + "function" == typeof success && success();
  463 + wx.redirectTo({
  464 + url: "../deposit/deposit"
  465 + });
  466 + },
  467 + fail: function(n) {
  468 + console.log(n), "requestPayment:fail" == n.errMsg ? getApp().showWarning("支付失败") :
  469 + "requestPayment:fail cancel" == n.errMsg ? getApp().showWarning("您已取消支付") : getApp().showWarning("支付失败:" + n
  470 + .errMsg.substr("requestPayment:fail ".length)),
  471 + "function" == typeof fail && fail();
  472 + }
  473 + });
  474 + },
  475 +
  476 +
  477 +
  478 +
  479 +
  480 +
  481 +
  482 +
  483 + showQr() {
  484 + this.setData({
  485 + showQr: true,
  486 + });
  487 + },
  488 +
  489 + closeQr() {
  490 + this.setData({
  491 + showQr: false,
  492 + });
  493 + },
  494 +
  495 + touchMove() {}
  496 +
  497 +
  498 +
  499 +
  500 +
  501 +
  502 +
  503 +
  504 +})
... ...
packageB/pages/boxes-details/boxes-details.json 0 → 100644
  1 +{
  2 + "navigationBarTitleText": "订单详情",
  3 + "usingComponents": {
  4 + "nodata": "/components/nodata/nodata",
  5 + "share_button": "/components/share/share"
  6 + },
  7 + "enablePullDownRefresh": false
  8 +}
0 9 \ No newline at end of file
... ...
packageB/pages/boxes-details/boxes-details.wxml 0 → 100644
  1 +<wxs module="filter" src="../../../utils/filter.wxs"></wxs>
  2 +
  3 +<view class="main">
  4 + <view class="bg-white pdh20 bdr12">
  5 + <block>
  6 + <!-- 门店名称栏 -->
  7 + <!-- <view class="flex jc_sb ai_c pdv20">
  8 + <view class="ellipsis-1 pdr40 fs30"><text class="iconfont icon-shop c-red pdr10"></text>{{item.pickup_name}}</view>
  9 + <block>
  10 + <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 0}}">待支付</text>
  11 + <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 1}}">待评价</text>
  12 + <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 2}}">已评价</text>
  13 + <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 3}}">已取消</text>
  14 + <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 5}}">已作废</text>
  15 + </block>
  16 + </view> -->
  17 +
  18 + <!-- 列表栏 -->
  19 + <view>
  20 + <!-- <view class="flex pdv20" wx:for="{{details.list}}" bindtap="viewDetails" data-gid="{{item.card_id}}"> -->
  21 + <view class="flex pdv20" bindtap="viewDetails" data-gid="{{item.card_id}}" wx:for="{{14}}">
  22 + <view class="pic-box shrink0">
  23 + <text class="iconfont icon-shangpin fs60 white"></text>
  24 + </view>
  25 + <view class="pdl20 f1">
  26 + <view class="flex jc_sb ai_c">
  27 + <view class="title ellipsis-2 pdr40">商品名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称</view>
  28 + <text class="c-6">x1{{item.price}}</text>
  29 + </view>
  30 + <view class="flex ai_c c-9 fs26">
  31 + <!-- <text>10个/蓝色</text> -->
  32 + <text class="rmb c-red">2{{filters.price(item.group_price)}}</text>
  33 + <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">3{{item.market_price}}</text></view>
  34 + </view>
  35 + </view>
  36 + </view>
  37 + </view>
  38 + </block>
  39 +
  40 +
  41 + <!-- 统计栏 -->
  42 + <!-- <view class="t-r bdt pdv20">共{{filter.count(details.list)}}件商品,合计:<text class="rmb c-red bold fs30">{{details.account}}</text></view> -->
  43 + </view>
  44 +
  45 +
  46 +
  47 +
  48 + <!-- 底部按钮栏 -->
  49 + <view class="btn-bar bg-white pd20 t-c">
  50 + <!-- <text class="btn bg-orange white" bindtap="buy2">再来一单</text> -->
  51 + <text class="btn bg-red white" bindtap="showQr">立即兑换</text>
  52 + </view>
  53 +</view>
  54 +
  55 +
  56 +
  57 +
  58 +
  59 +
  60 +<!-- 遮罩层 -->
  61 +<view class="mask" hidden="{{!showQr}}" catchtouchmove="touchMove"></view>
  62 +<!-- 码 -->
  63 +<view class="popup-container" hidden="{{!showQr}}" catchtouchmove="touchMove">
  64 + <view class="t-r pdb20"><text class="iconfont icon-close fs40" bindtap="closeQr"></text></view>
  65 + <view class="popup">
  66 + <!-- <view class="popup-title">
  67 + <block wx:if="{{details[useIndex].isby == 1}}">包邮券</block>
  68 + <block wx:else>
  69 + {{filter.getNum(details[useIndex].Sum)}}元微券
  70 + </block>
  71 + </view> -->
  72 + <!-- <view class="pdt20 c-fe0000"><text class="rmb fs80" wx:if="{{details[useIndex].isby != 1}}">{{filter.getNum(details[useIndex].Sum)}}</text></view> -->
  73 + <!-- 条形码 -->
  74 + <view class="bar-container">
  75 + <canvas class="barcode" canvas-id="barcode"/>
  76 + <view class="pdt20 fs26" wx:if="{{details[useIndex].CashRepNo}}">{{details[useIndex].CashRepNo}}</view>
  77 + <view class="pdt20 fs26" wx:else>{{details[useIndex].no}}</view>
  78 + </view>
  79 + <!-- 二维码 -->
  80 + <view class="qr-container">
  81 + <canvas class="qrcode" canvas-id="qrcode"/>
  82 + </view>
  83 + <view class="pdv20 c-7b fs26 bdt">
  84 + <text wx:if="{{details[useIndex].ValidDate}}" class="ellipsis-1x">有效期:{{details[useIndex].BeginDate==null ? " " : time.replace_time2(details[useIndex].BeginDate)}} 至 {{time.replace_time2(details[useIndex].ValidDate)}}</text>
  85 + <text wx:elif="{{details[useIndex].use_end_time}}" class="ellipsis-1x">有效期:{{details[useIndex].use_start_time==null ? " " : time.format_time(details[useIndex].use_start_time)}} 至 {{time.format_time(details[useIndex].use_end_time)}}</text>
  86 + <text wx:else>有效期:不限</text>
  87 + </view>
  88 + </view>
  89 +</view>
... ...
packageB/pages/boxes-details/boxes-details.wxss 0 → 100644
  1 +page {
  2 + box-sizing: border-box;
  3 + padding: 20rpx 20rpx 0;
  4 + background-color: #f2f2f2;
  5 + font-size: 28rpx;
  6 +}
  7 +
  8 +.bdr12 {
  9 + border-radius: 12rpx;
  10 +}
  11 +
  12 +.w40 {
  13 + width: 40%;
  14 + box-sizing: border-box;
  15 +}
  16 +
  17 +.btn-border {
  18 + border: 2rpx solid #808080;
  19 +}
  20 +
  21 +
  22 +.bg-red {
  23 + background-image: -webkit-linear-gradient(315deg,#f2140c,#f2270c 70%,#f24d0c);
  24 + background-image: linear-gradient(135deg,#f2140c,#f2270c 70%,#f24d0c);
  25 +}
  26 +
  27 +.bg-orange {
  28 + background-image: -webkit-linear-gradient(315deg,#ffba0d,#ffc30d 69%,#ffcf0d);
  29 + background-image: linear-gradient(135deg,#ffba0d,#ffc30d 69%,#ffcf0d);
  30 +}
  31 +
  32 +.c-orange {
  33 + color: #ff9000;
  34 +}
  35 +
  36 +.main {
  37 + padding-bottom: 134rpx;
  38 +}
  39 +
  40 +.pic-box {
  41 + width: 130rpx;
  42 + height: 130rpx;
  43 + border-radius: 12rpx;
  44 + overflow: hidden;
  45 + display: flex;
  46 + justify-content: center;
  47 + align-items: center;
  48 + background-color: pink;
  49 +}
  50 +
  51 +.rmb::before {
  52 + content: '¥';
  53 +}
  54 +
  55 +.title {
  56 + height: 88rpx;
  57 +}
  58 +
  59 +.separator {
  60 + position: relative;
  61 +}
  62 +
  63 +.separator::before {
  64 + content: '';
  65 + position: absolute;
  66 + width: 2rpx;
  67 + height: 30%;
  68 + background-color: #f8f8f8;
  69 + left: 0;
  70 + top: 0;
  71 + bottom: 0;
  72 + margin: auto;
  73 +}
  74 +
  75 +.btn-bar {
  76 + box-sizing: border-box;
  77 + position: fixed;
  78 + left: 0;
  79 + bottom: 0;
  80 + width: 100%;
  81 + font-size: 26rpx;
  82 + border-top: 2rpx solid #f2f2f2;
  83 +}
  84 +
  85 +.btn {
  86 + width: 50%;
  87 + box-sizing: border-box;
  88 + display: inline-block;
  89 + height: 70rpx;
  90 + line-height: 70rpx;
  91 + padding: 0 40rpx;
  92 + border-radius: 100rpx;
  93 +}
  94 +
  95 +.btn-copy {
  96 + display: block;
  97 + color: #666;
  98 + font-size: 22rpx;
  99 + padding: 0 20rpx;
  100 + border-radius: 6rpx;
  101 + background-color: #f0f0f0;
  102 +}
  103 +
  104 +.del {
  105 + text-decoration: line-through;
  106 +}
  107 +
  108 +
  109 +
  110 +
  111 +
  112 +.mask {
  113 + position: fixed;
  114 + width: 100%;
  115 + height: 100%;
  116 + top: 0;
  117 + left: 0;
  118 + background-color: rgba(0,0,0,.7);
  119 + z-index: 1;
  120 + }
  121 +
  122 + .popup-container {
  123 + position: fixed;
  124 + width: 70%;
  125 + border-radius: 12rpx;
  126 + top: 50%;
  127 + left: 50%;
  128 + transform: translate(-50%, -50%);
  129 + z-index: 3;
  130 + }
  131 +
  132 + .popup {
  133 + text-align: center;
  134 + border-radius: 12rpx;
  135 + background-color: white;
  136 + overflow: hidden;
  137 + /* width: 80%; */
  138 + }
  139 +
  140 + .popup-container .icon-close {
  141 + color: rgba(255,255,255,.6);
  142 + }
  143 +
  144 + .popup-title {
  145 + padding: 40rpx 0;
  146 + color: #fe0000;
  147 + background-color: #FFD3D6;
  148 + position: relative;
  149 + }
  150 +
  151 + .popup-title::after {
  152 + content: '';
  153 + position: absolute;
  154 + left: -20rpx;
  155 + bottom: -12rpx;
  156 + width: 130%;
  157 + height: 20rpx;
  158 + background: -webkit-radial-gradient(circle, #FFD3D6, #FFD3D6 20rpx, transparent 20rpx, transparent);
  159 + background: -moz-radial-gradient(circle, #FFD3D6, #FFD3D6 20rpx, transparent 20rpx, transparent);
  160 + background: -o-radial-gradient(circle, #FFD3D6, #FFD3D6 20rpx, transparent 20rpx, transparent);
  161 + background: radial-gradient(circle, #FFD3D6, #FFD3D6 20rpx, transparent 20rpx, transparent);
  162 + background-size: 40rpx 40rpx;
  163 + transform: rotate(180deg);
  164 + -webkit-transform: rotate(180deg);
  165 + }
  166 +
  167 +
  168 + .popup .rmb::before {
  169 + font-size: 40rpx;
  170 + }
  171 +
  172 + .img-qr {
  173 + display: block;
  174 + width: 300rpx;
  175 + height: 300rpx;
  176 + margin: 0 auto;
  177 + background-color: pink;
  178 + }
  179 +
  180 + .qrcode {
  181 + width: 300rpx;
  182 + height: 300rpx;
  183 + margin: 0 auto;
  184 + }
  185 +
  186 +
  187 + .noMore {
  188 + padding: 20rpx;
  189 + color: #bbb;
  190 + text-align: center;
  191 + font-size: 22rpx;
  192 + }
  193 +
  194 + .breakall {
  195 + word-break: break-all;
  196 + }
  197 +
  198 +
  199 +
... ...
packageB/pages/boxes-list/boxes-list.js 0 → 100644
  1 +const app = getApp();
  2 +let self = null;
  3 +
  4 +Page({
  5 + data: {
  6 + tabArr: ['待核销','已核销'],
  7 + currentTabIndex: 0,
  8 +
  9 + isLogin: false,
  10 + list: null,
  11 + isLoading: false, // 检测是否已经发送请求,防止重复发送请求
  12 + noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据
  13 + pageNum: 1, // 当前页数
  14 +
  15 + // showReward: false,
  16 + // prizesArr: [],
  17 +
  18 + // typeArr: [{
  19 + // key: 'point',
  20 + // name: '积分',
  21 + // },{
  22 + // key: 'grow',
  23 + // name: '成长值',
  24 + // },{
  25 + // key: 'point',
  26 + // name: '优惠券',
  27 + // },{
  28 + // key: 'prestore_name',
  29 + // name: '项目服务',
  30 + // },{
  31 + // key: 'prestore_money',
  32 + // name: '预存金额',
  33 + // }],
  34 + },
  35 +
  36 + onLoad: function () {
  37 + self = this;
  38 + app.isLogin().then(function(data) {
  39 + self.setData({
  40 + userInfo: data,
  41 + });
  42 + });
  43 + },
  44 +
  45 + onShow: function() {
  46 + if(app.globalData.userInfo) {
  47 + if(!this.data.isLogin) {
  48 + this.setData({
  49 + userInfo: app.globalData.userInfo,
  50 + imghost: app.globalData.setting.imghost,
  51 + isLogin: true,
  52 + });
  53 +
  54 + let data = {
  55 + store_id: app.globalData.setting.stoid,
  56 + user_id: this.data.userInfo.user_id,
  57 + };
  58 +
  59 + // 默认获取'全部'
  60 + this.getData(true, '/api/weshop/prom/luckyOrder/page', data)
  61 + .then(()=>{
  62 + this.setData({
  63 + currentData: data,
  64 + });
  65 + });
  66 +
  67 + };
  68 + };
  69 + },
  70 +
  71 +
  72 + /**
  73 + * 页面上拉触底事件的处理函数
  74 + */
  75 + onReachBottom: function () {
  76 + this.scrollToLower('/api/weshop/prom/luckyOrder/page', this.data.currentData);
  77 + },
  78 +
  79 +
  80 + // 图片异常时加载默认图片
  81 + bind_bnerr: function (e) {
  82 + var _errImg = e.target.dataset.errorimg;
  83 + var val = e.target.dataset.val;
  84 + if(val!=undefined && val!=null && val!='null' ){
  85 + var _errObj = {};
  86 + _errObj[_errImg] = "/public/images/default_goods_image_240.gif";
  87 + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
  88 + }
  89 + },
  90 +
  91 +
  92 +
  93 + // 点击tab选项卡
  94 + clickTab(e) {
  95 + this.setData({
  96 + currentTabIndex: e.target.dataset.index,
  97 + noMore: false,
  98 + pageNum: 1,
  99 + list: null,
  100 + });
  101 +
  102 + let currentTabIndex = parseInt(this.data.currentTabIndex);
  103 + let currentData = this.data.currentData;
  104 +
  105 + delete currentData.page;
  106 +
  107 + switch(currentTabIndex) {
  108 + case 0: {
  109 + delete currentData.team_status;
  110 + break;
  111 + };
  112 + case 1: {
  113 + currentData.team_status = 0;
  114 + break;
  115 + };
  116 + case 2: {
  117 + currentData.team_status = 2;
  118 + break;
  119 + };
  120 + case 3: {
  121 + currentData.team_status = 1;
  122 + break;
  123 + };
  124 + };
  125 +
  126 + // 请求
  127 + this.getData(true, '/api/weshop/prom/luckyOrder/page', currentData);
  128 +
  129 + },
  130 +
  131 +
  132 + /**
  133 + * 请求数据
  134 + */
  135 + getData: function(isInit, url, data) {
  136 + let p = app.request.promiseGet(url, {
  137 + data: data,
  138 + isShowLoading: true,
  139 + })
  140 + .then(function(res) {
  141 + if(res.data.code == 0) {
  142 +
  143 + self.setData({
  144 + isLoading: false
  145 + });
  146 +
  147 + if(isInit) {// 第一次加载
  148 + self.setData({
  149 + list: res.data.data
  150 + });
  151 + } else {
  152 + self.setData({
  153 + 'list.pageData': self.data.list.pageData.concat(res.data.data.pageData)
  154 + });
  155 + };
  156 +
  157 + if((res.data.data.pageData.length == 0) || (res.data.data.pageSize * res.data.data.page >= res.data.data.total)) {
  158 + self.setData({
  159 + noMore: true
  160 + });
  161 + };
  162 +
  163 + } else {
  164 + self.setData({
  165 + 'list.pageData': []
  166 + });
  167 + };
  168 +
  169 + });
  170 +
  171 + return p;
  172 + },
  173 +
  174 +
  175 + /**
  176 + * 上拉加载
  177 + */
  178 + scrollToLower(url, requestData) {
  179 + // 数据总量
  180 + let total = this.data.list.total;
  181 + // 单页最大数据量
  182 + let pageSize = this.data.list.pageSize;
  183 + // 如果数据总量不为0且小于或等于单页最大数据量,说明数据已全部加载,显示‘没有更多了’
  184 + if((total != 0)&&(total <= pageSize)) {
  185 + this.setData({
  186 + noMore: true
  187 + });
  188 + };
  189 +
  190 + if(!this.data.isLoading && !this.data.noMore) {
  191 + this.setData({
  192 + isLoading: true,
  193 + pageNum: this.data.pageNum + 1
  194 + });
  195 + requestData.page = this.data.pageNum;
  196 + this.getData(false, url, requestData);
  197 + };
  198 + },
  199 +
  200 +
  201 + //跳转
  202 + go: function (e) {
  203 + var url = e.currentTarget.dataset.url;
  204 + getApp().goto(url);
  205 + },
  206 +
  207 + //查看奖励
  208 + showReward: function(e) {
  209 + this.setData({
  210 + currentItemIndex: e.target.dataset.index,
  211 + currentItemAid: e.target.dataset.aid,
  212 + });
  213 + this.getPrizes(this.data.currentItemIndex);
  214 + },
  215 +
  216 + //关闭奖励
  217 + closeReward: function() {
  218 + this.setData({
  219 + showReward: false,
  220 + });
  221 + },
  222 +
  223 +
  224 + // 获取优惠券奖励和服务项目奖励
  225 + getPrizes: function(currentItemIndex) {
  226 + let currentItem = this.data.list.pageData[currentItemIndex];
  227 + let type = currentItem.type;
  228 +
  229 + // 分割type字符串
  230 + let typeArr = this.splitStringToArr(type);
  231 + let prizesArr = [];
  232 + let promiseArr = [];
  233 + typeArr.forEach(function(item) {
  234 +
  235 + let obj = {};
  236 + obj.type = item;
  237 +
  238 + let promise = new Promise((resolve, reject) => {
  239 + switch(item) {
  240 + case 1: { //积分
  241 + obj.name = '积分';
  242 + obj.num = 'point';
  243 + prizesArr.push(obj);
  244 + resolve();
  245 + break;
  246 + };
  247 + case 2: { //成长值
  248 + obj.name = '成长值';
  249 + obj.num = 'grow';
  250 + prizesArr.push(obj);
  251 + resolve();
  252 + break;
  253 + };
  254 + case 3: { //优惠券
  255 + app.request.promiseGet('/api/weshop/prom/luckyCoupon/page', {
  256 + data: {
  257 + store_id: app.globalData.setting.stoid,
  258 + aid: self.data.currentItemAid,
  259 + }
  260 + }).then(res => {
  261 + if(res.data.code == 0) {
  262 + obj.couponList = res.data.data.pageData;
  263 + prizesArr.push(obj);
  264 + resolve();
  265 + };
  266 + });
  267 + break;
  268 + };
  269 + case 4: { //服务项目
  270 + app.request.promiseGet('/api/weshop/prom/luckyService/page', {
  271 + data: {
  272 + store_id: app.globalData.setting.stoid,
  273 + aid: self.data.currentItemAid,
  274 + }
  275 + }).then(res => {
  276 + if(res.data.code == 0) {
  277 + obj.serviceList = res.data.data.pageData;
  278 + prizesArr.push(obj);
  279 + resolve();
  280 + };
  281 + });
  282 + break;
  283 + };
  284 + case 5: { //预存金额
  285 + obj.name = 'prestore_name';
  286 + obj.num = 'prestore_money';
  287 + prizesArr.push(obj);
  288 + resolve();
  289 + break;
  290 + };
  291 + };
  292 + });
  293 +
  294 + promiseArr.push(promise);
  295 +
  296 +
  297 + Promise.all(promiseArr).then(()=> {
  298 + self.setData({
  299 + prizesArr,
  300 + showReward: true,
  301 + });
  302 + });
  303 +
  304 + });
  305 + },
  306 +
  307 + // 将type字符串分割成数组
  308 + splitStringToArr: function(typeStr) {
  309 + var index;
  310 + var newTypeArr = [];
  311 + var typeStrArr = typeStr.split(',');
  312 + typeStrArr.forEach(function(item) {
  313 + index = parseInt(item);
  314 + newTypeArr.push(index);
  315 + });
  316 + return newTypeArr;
  317 + },
  318 +
  319 +
  320 +
  321 +
  322 +
  323 + viewDetails() {
  324 + let url = '/packageB/pages/boxes-details/boxes-details';
  325 + app.goto(url);
  326 + }
  327 +
  328 +
  329 +})
  330 +
... ...
packageB/pages/boxes-list/boxes-list.json 0 → 100644
  1 +{
  2 + "navigationBarTitleText": "套盒商品",
  3 + "enablePullDownRefresh": false,
  4 + "usingComponents": {
  5 + "nodata": "/components/nodata/nodata"
  6 + }
  7 +}
0 8 \ No newline at end of file
... ...
packageB/pages/boxes-list/boxes-list.wxml 0 → 100644
  1 +<wxs module="filters" src="../../../../utils/filter.wxs"></wxs>
  2 +
  3 +<!-- tabbar -->
  4 +<view class="tab-hd" bindtap="clickTab">
  5 + <view class="tab-hd-item {{currentTabIndex == index ? 'active':''}}"
  6 + wx:for="{{tabArr}}"
  7 + data-index="{{index}}">{{item}}</view>
  8 +</view>
  9 +
  10 +<view class="tab-bd">
  11 + <view class="list">
  12 +
  13 +
  14 + <view class="list-item" wx:if="{{currentTabIndex == 0}}" bindtap="viewDetails">
  15 + <view class="pd20">
  16 + <view class=""><text class="fs24 c-9">订单编号:</text>191561561565555</view>
  17 + <view class="ellipsis-2 title">卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称</view>
  18 + <view class="flex ai-center">
  19 + <text class="rmb fs40 c-red">2{{filters.price(item.group_price)}}</text>
  20 + <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">3{{item.market_price}}</text></view>
  21 + </view>
  22 + <view class="fs24 c-red">*兑换截止日期:2022-01-01至2022-12-31</view>
  23 + </view>
  24 +
  25 + <view class="pd20 bdt fs24 t-r">
  26 + <view class="btn bg-gray white">已过期</view>
  27 + <view class="btn bg-red white">立即兑换</view>
  28 + </view>
  29 + </view>
  30 +
  31 +
  32 + <view class="list-item" wx:if="{{currentTabIndex == 1}}">
  33 + <view class="pd20">
  34 + <view class=""><text class="fs24 c-9">订单编号:</text>191561561565555</view>
  35 + <view class="ellipsis-2 title">卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称</view>
  36 + <view class="flex ai-center">
  37 + <text class="rmb fs40 c-red">2{{filters.price(item.group_price)}}</text>
  38 + <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">3{{item.market_price}}</text></view>
  39 + </view>
  40 + <view class="fs24 c-red">*兑换截止日期:2022-01-01至2022-12-31</view>
  41 + </view>
  42 +
  43 + <view class="pd20 bdt fs24 t-r">
  44 + <view class="btn bg-gray white">已核销</view>
  45 + </view>
  46 + </view>
  47 +
  48 + </view>
  49 +</view>
  50 +
  51 +
  52 +
  53 +
  54 +<view class="no-more" hidden="{{!noMore}}" wx:if="{{list.pageData.length !== 0}}">—— 已经到底啦 ——</view>
  55 +<nodata nodataContainer="t-c" wx:if="{{list.pageData.length == 0}}"></nodata>
  56 +
  57 +
... ...
packageB/pages/boxes-list/boxes-list.wxss 0 → 100644
  1 +.bdt {
  2 + border-top: 2rpx solid #f5f5f5;
  3 +}
  4 +
  5 +page {
  6 + background-color: #f2f2f2;
  7 +}
  8 +
  9 +.btn {
  10 + display: inline-block;
  11 + min-width: 120rpx;
  12 + text-align: center;
  13 + /* border: 2rpx solid #ff6768; */
  14 + padding: 10rpx 20rpx;
  15 + border-radius: 40rpx;
  16 +}
  17 +
  18 +.btn.gray {
  19 + border-color: #ccc;
  20 +}
  21 +
  22 +.tab-hd {
  23 + display: flex;
  24 + text-align: center;
  25 + font-size: 28rpx;
  26 + background-color: white;
  27 + position: sticky;
  28 + top: 0;
  29 + z-index: 2;
  30 +}
  31 +
  32 +.tab-hd-item {
  33 + flex-grow: 1;
  34 + padding: 20rpx;
  35 + position: relative;
  36 +}
  37 +
  38 +.tab-hd-item.active {
  39 + color: #ff6768;
  40 +}
  41 +
  42 +.tab-hd-item.active::after {
  43 + content: '';
  44 + position: absolute;
  45 + width: 30%;
  46 + height: 4rpx;
  47 + left: 0;
  48 + right: 0;
  49 + bottom: 0;
  50 + margin: 0 auto;
  51 + background-color: #ff6768;
  52 +}
  53 +
  54 +.title {
  55 + /* max-height: 88rpx; */
  56 + box-sizing: border-box;
  57 + margin-top: 10rpx;
  58 + margin-bottom: 10rpx;
  59 + height: 90rpx;
  60 +}
  61 +
  62 +.tab-bd {
  63 + padding-left: 20rpx;
  64 + padding-right: 20rpx;
  65 +}
  66 +
  67 +.list {
  68 + overflow: hidden;
  69 +}
  70 +
  71 +.list-item {
  72 + background-color: white;
  73 + margin-top: 20rpx;
  74 + border-radius: 12rpx;
  75 + font-size: 28rpx;
  76 +}
  77 +
  78 +.arrow {
  79 + position: relative;
  80 +}
  81 +
  82 +.arrow::after {
  83 + font-family: iconfont;
  84 + content: '\e61f';
  85 + position: absolute;
  86 + right: 0;
  87 + color: #ccc;
  88 +}
  89 +
  90 +.img-container {
  91 + width: 200rpx;
  92 + height: 200rpx;
  93 + flex-shrink: 0;
  94 + margin-right: 20rpx;
  95 + border-radius: 14rpx;
  96 + overflow: hidden;
  97 +}
  98 +
  99 +.rmb::before {
  100 + content: '¥';
  101 + font-size: 24rpx;
  102 +}
  103 +
  104 +.del {
  105 + text-decoration: line-through;
  106 +}
  107 +
  108 +.no-more {
  109 + font-size: 24rpx;
  110 + line-height: 3;
  111 + text-align: center;
  112 + /* margin-top: 10rpx; */
  113 + color: #ccc;
  114 +}
  115 +
  116 +
  117 +.popup-container {
  118 + position: fixed;
  119 + top: 0;
  120 + bottom: 0;
  121 + left: 0;
  122 + right: 0;
  123 + background-color: rgba(0,0,0,.8);
  124 +}
  125 +
  126 +.popup {
  127 + background-color: #FFFAE7;
  128 + position: fixed;
  129 + left: 50%;
  130 + top: 50%;
  131 + transform: translate(-50%, -50%);
  132 + border-radius: 12rpx;
  133 + min-width: 600rpx;
  134 + color: #AF481D;
  135 +}
  136 +
  137 +.popup-list {
  138 + max-height: 700rpx;
  139 + overflow-y: auto;
  140 +}
  141 +
  142 +.popup-list-item {
  143 + display: flex;
  144 + align-items: center;
  145 + padding: 20rpx;
  146 +}
  147 +
  148 +.popup-list-item .img-container {
  149 + width: 120rpx;
  150 + height: 100rpx;
  151 +}
  152 +
  153 + .popup-title {
  154 + font-size: 28rpx;
  155 + height: 88rpx;
  156 + }
  157 +
  158 + .bg-red {
  159 + background-image: -webkit-linear-gradient(315deg,#f2140c,#f2270c 70%,#f24d0c);
  160 + background-image: linear-gradient(135deg,#f2140c,#f2270c 70%,#f24d0c);
  161 + }
  162 +
  163 + .bg-gray {
  164 + background-image: -webkit-linear-gradient(315deg,#bfbfbf,#c3c3c3 70%,#d4d3d3);
  165 + background-image: linear-gradient(135deg,#bfbfbf,#c3c3c3 70%,#d4d3d3);
  166 + }
0 167 \ No newline at end of file
... ...