Explorar o código

Merge branch 'v5.0.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v5.0.0dev

liaofei %!s(int64=2) %!d(string=hai) anos
pai
achega
2ab3472aab

+ 1 - 1
crmeb/app/api/controller/v1/PublicController.php

@@ -681,7 +681,7 @@ class PublicController
         $data['member_card_status'] = sys_config('member_card_status');//是否开启付费会员
         $data['member_card_status'] = sys_config('member_card_status');//是否开启付费会员
         $data['member_price_status'] = sys_config('member_price_status');//商品会员折扣价展示启用
         $data['member_price_status'] = sys_config('member_price_status');//商品会员折扣价展示启用
         $data['ali_pay_status'] = sys_config('ali_pay_status') != '0';//支付宝是否启用
         $data['ali_pay_status'] = sys_config('ali_pay_status') != '0';//支付宝是否启用
-        $data['wechat_pay_status'] = sys_config('pay_weixin_open') != '0';//微信是否启用
+        $data['pay_weixin_open'] = sys_config('pay_weixin_open') != '0';//微信是否启用
         $data['yue_pay_status'] = sys_config('yue_pay_status') == 1 && sys_config('balance_func_status') != 0;//余额是否启用
         $data['yue_pay_status'] = sys_config('yue_pay_status') == 1 && sys_config('balance_func_status') != 0;//余额是否启用
         $data['offline_pay_status'] = sys_config('offline_pay_status') == 1;//线下是否启用
         $data['offline_pay_status'] = sys_config('offline_pay_status') == 1;//线下是否启用
         $data['friend_pay_status'] = sys_config('friend_pay_status') == 1;//好友是否启用
         $data['friend_pay_status'] = sys_config('friend_pay_status') == 1;//好友是否启用

+ 2 - 1
crmeb/app/api/controller/v1/store/StoreCartController.php

@@ -124,7 +124,8 @@ class StoreCartController
             ['id', 0],//购物车编号
             ['id', 0],//购物车编号
             ['number', 0],//购物车编号
             ['number', 0],//购物车编号
         ]);
         ]);
-        if (!$where['id'] || !$where['number'] || !is_numeric($where['id']) || !is_numeric($where['number'])) return app('json')->fail(100100);
+        if (!$where['id'] || !is_numeric($where['id'])) return app('json')->fail(100100);
+        if (!$where['number'] || !is_numeric($where['number'])) return app('json')->fail(100007);
         $res = $this->services->changeUserCartNum($where['id'], $where['number'], $request->uid());
         $res = $this->services->changeUserCartNum($where['id'], $where['number'], $request->uid());
         if ($res) return app('json')->success(100001);
         if ($res) return app('json')->success(100001);
         else return app('json')->fail(100007);
         else return app('json')->fail(100007);

+ 2 - 0
crmeb/app/dao/activity/combination/StoreCombinationDao.php

@@ -59,6 +59,8 @@ class StoreCombinationDao extends BaseDao
                     $query->name('store_category')->where('pid', $where['cid'])->field('id')->select();
                     $query->name('store_category')->where('pid', $where['cid'])->field('id')->select();
                 })->field('product_id')->select();
                 })->field('product_id')->select();
             });
             });
+        })->when(isset($where['id']) && $where['id'], function ($query) use ($where) {
+            $query->where('id', $where['id']);
         });
         });
     }
     }
 
 

+ 1 - 1
crmeb/app/dao/order/StoreOrderInvoiceDao.php

@@ -53,7 +53,7 @@ class StoreOrderInvoiceDao extends BaseDao
         return parent::search($where, $search)->when($type, function ($query) use ($type) {
         return parent::search($where, $search)->when($type, function ($query) use ($type) {
             switch ($type) {
             switch ($type) {
                 case 1://待开
                 case 1://待开
-                    $query->where('is_invoice', 0)->where('invoice_time', 0)->where('is_refund', 0);
+                    $query->where('is_invoice', 0)->where('is_refund', 0);
                     break;
                     break;
                 case 2://已开
                 case 2://已开
                     $query->where('is_invoice', 1);
                     $query->where('is_invoice', 1);

+ 1 - 1
crmeb/app/services/activity/bargain/StoreBargainUserServices.php

@@ -220,7 +220,7 @@ class StoreBargainUserServices extends BaseServices
     public function userBargainStatusFail($bargain_id, $is_true)
     public function userBargainStatusFail($bargain_id, $is_true)
     {
     {
         if ($is_true) {
         if ($is_true) {
-            $this->dao->delete(['bargain_id' => $bargain_id, 'status' => 1]);
+            $this->dao->delete(['bargain_id' => $bargain_id]);
             /** @var StoreBargainUserHelpServices $service */
             /** @var StoreBargainUserHelpServices $service */
             $service = app()->make(StoreBargainUserHelpServices::class);
             $service = app()->make(StoreBargainUserHelpServices::class);
             $service->delete(['bargain_id' => $bargain_id]);
             $service->delete(['bargain_id' => $bargain_id]);

+ 2 - 2
crmeb/app/services/order/StoreOrderComputedServices.php

@@ -226,8 +226,8 @@ class StoreOrderComputedServices extends BaseServices
         // 可用积分
         // 可用积分
         $usable = bcsub((string)$userInfo['integral'], (string)$userBillServices->getBillSum(['uid' => $userInfo['uid'], 'is_frozen' => 1]), 0);
         $usable = bcsub((string)$userInfo['integral'], (string)$userBillServices->getBillSum(['uid' => $userInfo['uid'], 'is_frozen' => 1]), 0);
 
 
-        $SurplusIntegral = 0;
-        if ($useIntegral && $userInfo['integral'] > 0) {
+        $SurplusIntegral = $usable;
+        if ($useIntegral && $userInfo['integral'] > 0 && $other['integralRatio'] > 0) {
             //积分抵扣上限
             //积分抵扣上限
             $integralMaxNum = sys_config('integral_max_num', 200);
             $integralMaxNum = sys_config('integral_max_num', 200);
             if ($integralMaxNum > 0 && $usable > $integralMaxNum) {
             if ($integralMaxNum > 0 && $usable > $integralMaxNum) {

+ 3 - 0
template/admin/src/layout/index.vue

@@ -31,6 +31,9 @@ export default {
     getThemeConfig() {
     getThemeConfig() {
       return this.$store.state.themeConfig.themeConfig;
       return this.$store.state.themeConfig.themeConfig;
     },
     },
+    tagNavList() {
+      return this.$store.state.app.tagNavList;
+    },
   },
   },
   watch: {
   watch: {
     $route(newRoute) {
     $route(newRoute) {

+ 36 - 16
template/admin/src/layout/navBars/tagsView/tagsView.vue

@@ -40,6 +40,8 @@
 import Contextmenu from '@/layout/navBars/tagsView/contextmenu';
 import Contextmenu from '@/layout/navBars/tagsView/contextmenu';
 import { Session } from '@/utils/storage.js';
 import { Session } from '@/utils/storage.js';
 import { mapMutations } from 'vuex';
 import { mapMutations } from 'vuex';
+import setting from '@/setting';
+
 export default {
 export default {
   name: 'tagsView',
   name: 'tagsView',
   components: { Contextmenu },
   components: { Contextmenu },
@@ -77,7 +79,9 @@ export default {
     this.tagsViewRoutesList = this.$store.state.app.tagNavList;
     this.tagsViewRoutesList = this.$store.state.app.tagNavList;
   },
   },
   mounted() {
   mounted() {
-    // this.getTagsViewRoutes();
+    if (!this.$store.state.app.tagNavList.length) {
+      this.getTagsViewRoutes();
+    }
   },
   },
   methods: {
   methods: {
     ...mapMutations(['setBreadCrumb', 'setTagNavList', 'addTag', 'setLocal', 'setHomeRoute', 'closeTag']),
     ...mapMutations(['setBreadCrumb', 'setTagNavList', 'addTag', 'setLocal', 'setHomeRoute', 'closeTag']),
@@ -90,7 +94,15 @@ export default {
     onTagsClick(v, k) {
     onTagsClick(v, k) {
       this.tagsRoutePath = v.path;
       this.tagsRoutePath = v.path;
       this.tagsRefsIndex = k;
       this.tagsRefsIndex = k;
-      this.$router.push(v);
+      try {
+        if (v.name == 'home_index') {
+          this.$router.replace(`${setting.routePre}/home/`);
+        } else {
+          this.$router.push(v);
+        }
+      } catch (error) {
+        console.log(error);
+      }
     },
     },
     // 获取 tagsView 的下标:用于处理 tagsView 点击时的横向滚动
     // 获取 tagsView 的下标:用于处理 tagsView 点击时的横向滚动
     getTagsRefsIndex(path) {
     getTagsRefsIndex(path) {
@@ -184,9 +196,8 @@ export default {
     // 获取 vuex 中的 tagsViewRoutes 列表
     // 获取 vuex 中的 tagsViewRoutes 列表
     getTagsViewRoutes() {
     getTagsViewRoutes() {
       this.tagsRoutePath = this.$route.path;
       this.tagsRoutePath = this.$route.path;
-      this.tagsViewList = [];
-      if (!this.$store.state.themeConfig.themeConfig.isCacheTagsView) Session.remove('tagsViewList');
-      this.tagsViewRoutesList = this.$store.state.tagsViewRoutes.tagsViewRoutes;
+      // if (!this.$store.state.themeConfig.themeConfig.isCacheTagsView) Session.remove('tagsViewList');
+      this.tagsViewRoutesList = this.$store.state.menus.oneLvMenus;
       this.initTagsViewList();
       this.initTagsViewList();
     },
     },
     // 存储 tagsViewList 到浏览器临时缓存中,页面刷新时,保留记录
     // 存储 tagsViewList 到浏览器临时缓存中,页面刷新时,保留记录
@@ -195,14 +206,17 @@ export default {
     },
     },
     // 初始化设置了 tagsView 数据
     // 初始化设置了 tagsView 数据
     initTagsViewList() {
     initTagsViewList() {
-      if (Session.get('tagsViewList') && this.$store.state.themeConfig.themeConfig.isCacheTagsView) {
-        this.tagsViewList = Session.get('tagsViewList');
-      } else {
-        this.tagsViewRoutesList.map((v) => {
-          if (v.isAffix && !v.isHide) this.tagsViewList.push({ ...v });
-        });
-        this.addTagsView(this.$route.path);
-      }
+      // if (Session.get('tagsViewList') && this.$store.state.themeConfig.themeConfig.isCacheTagsView) {
+      //   this.tagsViewList = Session.get('tagsViewList');
+      // } else {
+      let arr = [];
+      console.log(this.tagsViewRoutesList);
+      this.tagsViewRoutesList.map((v) => {
+        if (v.meta && v.meta.isAffix) arr.push({ ...v });
+      });
+      // }
+      console.log(arr);
+      this.setTagNavList(arr);
       // 初始化当前元素(li)的下标
       // 初始化当前元素(li)的下标
       this.getTagsRefsIndex(this.$route.path);
       this.getTagsRefsIndex(this.$route.path);
       // 添加初始化横向滚动条移动到对应位置
       // 添加初始化横向滚动条移动到对应位置
@@ -224,8 +238,7 @@ export default {
       this.tagsDropdown.y = clientY;
       this.tagsDropdown.y = clientY;
       this.$refs.tagsContextmenu.openContextmenu(v);
       this.$refs.tagsContextmenu.openContextmenu(v);
     },
     },
-    onContextmenuIcon(e) {
-    },
+    onContextmenuIcon(e) {},
     // 当前项右键菜单点击
     // 当前项右键菜单点击
     onCurrentContextmenuClick(data) {
     onCurrentContextmenuClick(data) {
       let { id, path } = data;
       let { id, path } = data;
@@ -417,6 +430,13 @@ export default {
   // .tags-style-three {
   // .tags-style-three {
   // }
   // }
   // // 风格4
   // // 风格4
+  // 风格1
+  .tags-style-one {
+    .is-active {
+      background: none !important;
+      color: #fff !important;
+    }
+  }
   // 风格4
   // 风格4
   .tags-style-four {
   .tags-style-four {
     .layout-navbars-tagsview-ul-li {
     .layout-navbars-tagsview-ul-li {
@@ -436,7 +456,7 @@ export default {
     }
     }
     .is-active {
     .is-active {
       background: none !important;
       background: none !important;
-      color: var(--prev-bg-menu-hover-ba-color) !important;
+      color: #fff !important;
     }
     }
   }
   }
   // 风格5
   // 风格5

+ 1 - 1
template/admin/src/libs/util.js

@@ -163,7 +163,7 @@ export const getHomeRoute = (routers, homeName = 'home') => {
 export const getNewTagList = (list, newRoute) => {
 export const getNewTagList = (list, newRoute) => {
   const { name, path, meta } = newRoute;
   const { name, path, meta } = newRoute;
   let newList = [...list];
   let newList = [...list];
-  if (newList.findIndex((item) => item.name === name) >= 0) return newList;
+  if (newList.findIndex((item) => item.path === path) >= 0) return newList;
   else newList.push({ name, path, meta });
   else newList.push({ name, path, meta });
   return newList;
   return newList;
 };
 };

+ 3 - 2
template/admin/src/pages/account/login/index.vue

@@ -213,6 +213,8 @@ export default {
           this.$store.dispatch('routesList/setRoutesList', data.menus);
           this.$store.dispatch('routesList/setRoutesList', data.menus);
           let arr = formatFlatteningRoutes(this.$router.options.routes);
           let arr = formatFlatteningRoutes(this.$router.options.routes);
           this.formatTwoStageRoutes(arr);
           this.formatTwoStageRoutes(arr);
+          this.$store.commit('menus/setOneLvMenus', arr);
+
           // 记录用户信息
           // 记录用户信息
           this.$store.commit('userInfo/name', data.user_info.account);
           this.$store.commit('userInfo/name', data.user_info.account);
           this.$store.commit('userInfo/avatar', data.user_info.head_pic);
           this.$store.commit('userInfo/avatar', data.user_info.head_pic);
@@ -241,8 +243,7 @@ export default {
             this.checkSocket();
             this.checkSocket();
           } catch (e) {}
           } catch (e) {}
           PrevLoading.start();
           PrevLoading.start();
-
-          return this.$router.replace({
+          return this.$router.push({
             path: findFirstNonNullChildren(res.data.menus).path || this.$routeProStr + '/',
             path: findFirstNonNullChildren(res.data.menus).path || this.$routeProStr + '/',
           });
           });
         })
         })

+ 1 - 1
template/admin/src/pages/kefu/pc/components/chatList.vue

@@ -21,7 +21,7 @@
           @click="selectUser(item)"
           @click="selectUser(item)"
         >
         >
           <div class="avatar">
           <div class="avatar">
-            <img v-lazy="item.avatar" alt="" />
+            <img v-lazy="item.wx_avatar" alt="" />
             <div class="status" :class="{ off: item.online == 0 }"></div>
             <div class="status" :class="{ off: item.online == 0 }"></div>
           </div>
           </div>
           <div class="user-info">
           <div class="user-info">

+ 4 - 3
template/admin/src/pages/kefu/pc/index.vue

@@ -133,10 +133,10 @@
                 v-paste="handleParse"
                 v-paste="handleParse"
                 v-model="chatCon"
                 v-model="chatCon"
                 type="textarea"
                 type="textarea"
-                :rows="4"
+                :rows="8"
                 @on-keydown="listen($event)"
                 @on-keydown="listen($event)"
                 placeholder="请输入文字内容"
                 placeholder="请输入文字内容"
-                style="font-size: 14px"
+                style="font-size: 14px; height: 150px"
               />
               />
               <div class="send-btn">
               <div class="send-btn">
                 <Button class="btns" type="primary" :disabled="disabled" @click.stop="sendText">发送</Button>
                 <Button class="btns" type="primary" :disabled="disabled" @click.stop="sendText">发送</Button>
@@ -628,9 +628,10 @@ export default {
 <style lang="stylus" scoped>
 <style lang="stylus" scoped>
 @import '../../../styles/emoji-awesome/css/google.min.css';
 @import '../../../styles/emoji-awesome/css/google.min.css';
 
 
-textarea.ivu-input {
+/deep/ textarea.ivu-input {
   border: none;
   border: none;
   resize: none;
   resize: none;
+
 }
 }
 
 
 .kefu-layouts {
 .kefu-layouts {

+ 1 - 1
template/admin/src/pages/marketing/storeBargain/statistics.vue

@@ -235,7 +235,7 @@ export default {
         {
         {
           col: 8,
           col: 8,
           count: 0,
           count: 0,
-          name: '推广人数(人)',
+          name: '砍价人数(人)',
           className: 'ios-speedometer-outline',
           className: 'ios-speedometer-outline',
         },
         },
         {
         {

+ 16 - 8
template/admin/src/pages/order/orderList/components/tableList.vue

@@ -23,6 +23,9 @@
         <span class="nickname">{{ row.nickname }}</span> |
         <span class="nickname">{{ row.nickname }}</span> |
         <span class="uid">{{ row.uid }}</span>
         <span class="uid">{{ row.uid }}</span>
       </template>
       </template>
+      <template slot-scope="{ row, index }" slot="pay_price">
+        <span>{{ row.paid ? row.pay_price : '未支付' }}</span>
+      </template>
       <template slot-scope="{ row, index }" slot="info">
       <template slot-scope="{ row, index }" slot="info">
         <div class="tabBox" v-for="(val, i) in row._info" :key="i">
         <div class="tabBox" v-for="(val, i) in row._info" :key="i">
           <div class="tabBox_img" v-viewer>
           <div class="tabBox_img" v-viewer>
@@ -63,13 +66,14 @@
         </div>
         </div>
       </template>
       </template>
       <template slot-scope="{ row, index }" slot="action">
       <template slot-scope="{ row, index }" slot="action">
-        <a @click="edit(row)" v-if="row._status === 1">编辑</a>
+        <a @click="edit(row)" v-if="row._status === 1 && row.is_del !== 1">编辑</a>
         <a
         <a
           @click="sendOrder(row)"
           @click="sendOrder(row)"
           v-if="
           v-if="
             (row.status === 4 || row._status === 2 || row._status === 8) &&
             (row.status === 4 || row._status === 2 || row._status === 8) &&
             row.shipping_type === 1 &&
             row.shipping_type === 1 &&
-            (row.pinkStatus === null || row.pinkStatus === 2)
+            (row.pinkStatus === null || row.pinkStatus === 2) &&
+            row.is_del !== 1
           "
           "
           >发送货</a
           >发送货</a
         >
         >
@@ -81,12 +85,15 @@
         >
         >
         <Divider
         <Divider
           type="vertical"
           type="vertical"
-          v-if="(row._status === 8 || row.status === 0 || row.status === 4) && row.split.length"
+          v-if="(row._status === 8 || row.status === 0 || row.status === 4) && row.split.length && row.is_del !== 1"
         />
         />
-        <a @click="splitOrderDetail(row)" v-if="row.split.length">查看子订单</a>
+        <a @click="splitOrderDetail(row)" v-if="row.split.length && row.is_del !== 1">查看子订单</a>
         <Divider
         <Divider
           type="vertical"
           type="vertical"
-          v-if="(row._status === 2 && row.shipping_type === 1 && row.pinkStatus === 2) || row.split.length"
+          v-if="
+            (row._status === 2 && row.shipping_type === 1 && row.pinkStatus === 2) ||
+            (row.split.length && row.is_del !== 1)
+          "
         />
         />
         <Divider
         <Divider
           type="vertical"
           type="vertical"
@@ -97,7 +104,8 @@
               row._status === 3 ||
               row._status === 3 ||
               (row._status === 2 && !row.pinkStatus) ||
               (row._status === 2 && !row.pinkStatus) ||
               row._status === 4 ||
               row._status === 4 ||
-              (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0))
+              (row.shipping_type == 2 && row.status == 0 && row.paid == 1 && row.refund_status === 0)) &&
+            row.is_del !== 1
           "
           "
         />
         />
         <template>
         <template>
@@ -110,7 +118,7 @@
               <DropdownItem
               <DropdownItem
                 name="1"
                 name="1"
                 ref="ones"
                 ref="ones"
-                v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline'"
+                v-show="row._status === 1 && row.paid === 0 && row.pay_type === 'offline' && row.is_del !== 1"
                 >确认付款</DropdownItem
                 >确认付款</DropdownItem
               >
               >
               <DropdownItem name="2">订单详情</DropdownItem>
               <DropdownItem name="2">订单详情</DropdownItem>
@@ -257,7 +265,7 @@ export default {
         },
         },
         {
         {
           title: '实际支付',
           title: '实际支付',
-          key: 'pay_price',
+          slot: 'pay_price',
           align: 'center',
           align: 'center',
           width: 100,
           width: 100,
         },
         },

+ 1 - 1
template/admin/src/pages/system/codeGeneration/list.vue

@@ -541,6 +541,6 @@ export default {
 
 
 // 选项卡头部
 // 选项卡头部
 >>> .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-nav-container {
 >>> .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-nav-container {
-  background-color: #333;
+  background-color: #fff;
 }
 }
 </style>
 </style>

+ 11 - 2
template/admin/src/pages/user/list/index.vue

@@ -919,7 +919,7 @@ export default {
           this.giveLevelTime(row.uid);
           this.giveLevelTime(row.uid);
           break;
           break;
         case '4':
         case '4':
-          this.del(row, '清除 【 ' + row.nickname + ' 】的会员等级', index, 'user');
+          this.del(row, '清除 【 ' + this.tenText(row.nickname) + ' 】的会员等级', index, 'user');
           break;
           break;
         case '5':
         case '5':
           this.$modalForm(userSetGroup(uids)).then(() => this.getList());
           this.$modalForm(userSetGroup(uids)).then(() => this.getList());
@@ -931,9 +931,17 @@ export default {
           this.editS(row);
           this.editS(row);
           break;
           break;
         default:
         default:
-          this.del(row, '解除【 ' + row.nickname + ' 】的上级推广人', index, 'tuiguang');
+          this.del(row, '解除【 ' + this.tenText(row.nickname) + ' 】的上级推广人', index, 'tuiguang');
       }
       }
     },
     },
+    tenText(str) {
+      if (str.length > 10) {
+        //如果字符长度超过10,后面的字符就变成...可自行调整长度和代替字符
+        str = str.substr(0, 10) + '...'; //截取从第一个字符开始,往后取10个字符,剩余的用...代替
+        //console.log(str);  // 'js字符超出指定个数...'
+      }
+      return str;
+    },
     openLabel(row) {
     openLabel(row) {
       this.labelShow = true;
       this.labelShow = true;
       this.labelActive.uid = row.uid;
       this.labelActive.uid = row.uid;
@@ -998,6 +1006,7 @@ export default {
         url: name === 'user' ? `user/del_level/${row.uid}` : `agent/stair/delete_spread/${row.uid}`,
         url: name === 'user' ? `user/del_level/${row.uid}` : `agent/stair/delete_spread/${row.uid}`,
         method: name === 'user' ? 'DELETE' : 'PUT',
         method: name === 'user' ? 'DELETE' : 'PUT',
         ids: '',
         ids: '',
+        width: 600,
       };
       };
       this.$modalSure(delfromData)
       this.$modalSure(delfromData)
         .then((res) => {
         .then((res) => {

+ 2 - 2
template/admin/src/router/modules/index.js

@@ -9,7 +9,7 @@
 // +---------------------------------------------------------------------
 // +---------------------------------------------------------------------
 
 
 import LayoutMain from '@/layout';
 import LayoutMain from '@/layout';
-import setting  from '@/setting'
+import setting from '@/setting';
 let routePre = setting.routePre;
 let routePre = setting.routePre;
 
 
 // export default {
 // export default {
@@ -52,7 +52,7 @@ export default {
   component: LayoutMain,
   component: LayoutMain,
   children: [
   children: [
     {
     {
-      path: routePre+'/home',
+      path: routePre + '/home/',
       name: `${pre}index`,
       name: `${pre}index`,
       header: 'home',
       header: 'home',
       meta: {
       meta: {

+ 4 - 1
template/admin/src/store/module/menus.js

@@ -26,6 +26,7 @@ export default {
     menusName: getMenusName(),
     menusName: getMenusName(),
     openMenus: [],
     openMenus: [],
     childMenuList: [],
     childMenuList: [],
+    oneLvMenus: [],
   },
   },
   mutations: {
   mutations: {
     getmenusNav(state, menuList) {
     getmenusNav(state, menuList) {
@@ -37,8 +38,10 @@ export default {
     setopenMenus(state, openList) {
     setopenMenus(state, openList) {
       state.openMenus = openList;
       state.openMenus = openList;
     },
     },
+    setOneLvMenus(state, oneLvMenus) {
+      state.oneLvMenus = oneLvMenus;
+    },
     childMenuList(state, list) {
     childMenuList(state, list) {
-      console.log('bbbbb')
       state.childMenuList = list;
       state.childMenuList = list;
     },
     },
   },
   },

+ 8 - 7
template/uni-app/App.vue

@@ -123,6 +123,13 @@
 		async onLaunch(option) {
 		async onLaunch(option) {
 			uni.hideTabBar()
 			uni.hideTabBar()
 			let that = this;
 			let that = this;
+			// #ifdef H5
+			if (option.query.hasOwnProperty('type') && option.query.type == "iframeWindow") {
+				this.globalData.isIframe = true;
+			} else {
+				this.globalData.isIframe = false;
+			}
+			// #endif
 			colorChange('color_change').then(res => {
 			colorChange('color_change').then(res => {
 				uni.setStorageSync('is_diy', res.data.is_diy)
 				uni.setStorageSync('is_diy', res.data.is_diy)
 				uni.$emit('is_diy', res.data.is_diy)
 				uni.$emit('is_diy', res.data.is_diy)
@@ -245,13 +252,7 @@
 			}
 			}
 			// #endif
 			// #endif
 
 
-			// #ifdef H5
-			if (option.query.hasOwnProperty('type') && option.query.type == "iframeWindow") {
-				this.globalData.isIframe = true;
-			} else {
-				this.globalData.isIframe = false;
-			}
-			// #endif
+
 			// #ifdef MP
 			// #ifdef MP
 			// 小程序静默授权
 			// 小程序静默授权
 			// if (!this.$store.getters.isLogin) {
 			// if (!this.$store.getters.isLogin) {

+ 1 - 1
template/uni-app/pages/goods/cashier/index.vue

@@ -178,7 +178,7 @@
 			getBasicConfig() {
 			getBasicConfig() {
 				basicConfig().then(res => {
 				basicConfig().then(res => {
 					//微信支付是否开启
 					//微信支付是否开启
-					this.cartArr[0].payStatus = res.data.wechat_pay_status || 0
+					this.cartArr[0].payStatus = res.data.pay_weixin_open || 0
 					//支付宝是否开启
 					//支付宝是否开启
 					this.cartArr[1].payStatus = res.data.ali_pay_status || 0;
 					this.cartArr[1].payStatus = res.data.ali_pay_status || 0;
 					//#ifdef MP
 					//#ifdef MP

+ 4 - 4
template/uni-app/pages/users/user_goods_collection/index.vue

@@ -5,18 +5,18 @@
 				<view>{{$t(`当前共`)}} <text class="text"> {{count}} </text> {{$t(`件商品`)}}</view>
 				<view>{{$t(`当前共`)}} <text class="text"> {{count}} </text> {{$t(`件商品`)}}</view>
 				<view class="admin" @click="showRadio">{{checkbox_show?$t(`取消`):$t(`管理`)}}</view>
 				<view class="admin" @click="showRadio">{{checkbox_show?$t(`取消`):$t(`管理`)}}</view>
 			</view>
 			</view>
-			<checkbox-group @change="checkboxChange">
-				<view class='item acea-row' v-for="(item,index) in collectProductList" :key="index" @click="jump(item)">
+			<checkbox-group @change.stop="checkboxChange">
+				<view class='item acea-row' v-for="(item,index) in collectProductList" :key="index">
 					<view class="left">
 					<view class="left">
 						<checkbox v-show="checkbox_show" :value="item.pid.toString()" :checked="item.checked" />
 						<checkbox v-show="checkbox_show" :value="item.pid.toString()" :checked="item.checked" />
-						<view class='pictrue'>
+						<view class='pictrue' @click="jump(item)">
 							<image :src="item.image"></image>
 							<image :src="item.image"></image>
 							<view class="invalid acea-row row-center-wrapper" v-if="!item.is_show">
 							<view class="invalid acea-row row-center-wrapper" v-if="!item.is_show">
 								已下架
 								已下架
 							</view>
 							</view>
 						</view>
 						</view>
 					</view>
 					</view>
-					<view class='text acea-row row-column-between'>
+					<view class='text acea-row row-column-between' @click="jump(item)">
 						<view class='name line2'>{{item.store_name}}</view>
 						<view class='name line2'>{{item.store_name}}</view>
 						<view class='acea-row row-between-wrapper'>
 						<view class='acea-row row-between-wrapper'>
 							<view class='money font-color'>{{$t(`¥`)}}{{item.price}}</view>
 							<view class='money font-color'>{{$t(`¥`)}}{{item.price}}</view>