Quellcode durchsuchen

Merge branch 'sunzee-dev' into sunzee-test

wangzeyu@tom.com vor 2 Jahren
Ursprung
Commit
07a72a885b

+ 1 - 0
package.json

@@ -26,6 +26,7 @@
     "js-base64": "^3.7.5",
     "js-md5": "^0.7.3",
     "lib-flexible": "^0.3.2",
+    "lodash": "^4.17.21",
     "moment": "^2.29.4",
     "pushstate-server": "^3.1.0",
     "qrcode-terminal": "^0.12.0",

BIN
src/assets/home/M14.png


+ 107 - 10
src/assets/language/zh.json

@@ -28,6 +28,7 @@
     "weChatScanning": "微信主扫",
     "antiScanningOfAlipay": "支付宝反扫",
     "weChatBackScanning": "微信反扫",
+<<<<<<< HEAD
     "unpaid":"未支付",
     "paid":"已支付",
     "refunding":"退款中",
@@ -37,6 +38,14 @@
     "companies": "公司平台",
     "sz": "申泽",
     "sc": "七云"
+=======
+    "unpaid": "未支付",
+    "paid": "已支付",
+    "refunding": "退款中",
+    "refunded": "已退款",
+    "orderStatus": "订单状态",
+    "allSuboUsers": "所有下级用户"
+>>>>>>> sunzee-dev
   },
   "navBar": {
     "homePage": "首页",
@@ -281,7 +290,10 @@
     "addAlarmClock": "添加闹钟",
     "modify": "修改",
     "furnHeadStatus": "炉头状态",
+<<<<<<< HEAD
     "deviceStatus": "设备状态",
+=======
+>>>>>>> sunzee-dev
     "opened": "已开启",
     "closed": "已关闭",
     "weekday2": "工作日",
@@ -400,9 +412,12 @@
     "furnaceHeadTemperature": "炉头温度",
     "temperatureInCabinet": "柜内温度",
     "humidityInCabinet": "柜内湿度",
+<<<<<<< HEAD
     "stirringTemperature": "搅拌温度",
     "cornGeneratorTemperature": "玉米发生器温度",
     "cupQuantity": "杯子剩余量",
+=======
+>>>>>>> sunzee-dev
     "showGoods": "屏蔽/显示商品",
     "editCheck": "是否确认更改?",
     "unknownError": "未知错误!",
@@ -823,6 +838,7 @@
     "endTime": "结束时间",
     "clickSearch": "点击搜索",
     "selectFullTime": "选择完整时间",
+<<<<<<< HEAD
     "refundAmount":"退款金额",
 	  "refundTip": "退款请慎重,否则会影响统计!",
 	  "refundQuantity":"退款数量",
@@ -831,6 +847,16 @@
     "accountBalance":"账户余额",
 	  "refundSubmit": "提交申请",
     "requestFailed": "请求失败"
+=======
+    "refundAmount": "退款金额",
+    "refundTip": "确保金额与数量对应,否则会影响统计!",
+    "refundQuantity": "退款数量",
+    "refundAmountPlace": "请输入退款金额",
+    "most": "最多",
+    "at": "个",
+    "accountBalance": "账户余额",
+    "refundSubmit": "提交申请"
+>>>>>>> sunzee-dev
   },
   "orderExport": {
     "orderAnalysis": "订单分析",
@@ -841,6 +867,7 @@
     "orderDetails": "订单明细",
     "clickFilter": "点击筛选",
     "exportToExcel": "导出excel",
+<<<<<<< HEAD
     "totalSales":"总销售额",
     "machines":"台机器",
     "superior":"所属上级",
@@ -862,6 +889,23 @@
       "whole":"全部",
       "sz": "申泽",
       "sc": "七云"
+=======
+    "totalSales": "总销售额",
+    "machines": "台机器",
+    "superior": "所属上级",
+    "searchPop": {
+      "title": "根据以下条件筛选",
+      "orderNo": "订单编号",
+      "orderNoPlace": "请输入订单编号",
+      "busiName": "商户名称",
+      "busiNamePlace": "请输入商户名称",
+      "clearFilter": "清空条件",
+      "filter": "筛选",
+      "mainOver": "大陆/海外",
+      "mainOverPlace": "请选择大陆/海外",
+      "mainland": "大陆",
+      "overseas": "海外"
+>>>>>>> sunzee-dev
     }
   },
   "role": {
@@ -1055,6 +1099,7 @@
         "filterBtn": "点击查询"
       }
     },
+<<<<<<< HEAD
     "joinpayMchCheck":{
       "convergence":"汇聚",
       "huifu":"汇付",
@@ -1090,6 +1135,48 @@
       "cardName": "卡户名",
       "mp": "结算手机号",
       "successful": "审核成功"
+=======
+    "joinpayMchCheck": {
+      "convergence": "汇聚",
+      "shande": "杉德",
+      "withAccoDetail": "提现账号详情",
+      "merchantName": "商户名称",
+      "merchantType": "商户类型",
+      "contactName": "联系人姓名",
+      "indiOrPersName": "法人/个人姓名",
+      "indiOrPersPhone": "法人/个人手机号",
+      "indiOrPersPhoneIdCard": "法人/个人身份证",
+      "idCardValid": "身份证有效期",
+      "accountType": "账号类型",
+      "bankAccountName": "银行账号名称",
+      "bankAccount": "银行账号",
+      "interBankNo": "联行号",
+      "settlMethod": "结算方式",
+      "settlCycle": "结算周期",
+      "businessNature": "经营范围",
+      "businessAddress": "经营地址",
+      "personal": "个人",
+      "indivBusines": "个体工商户",
+      "enterprise": "企业",
+      "debitCard": "借记卡",
+      "corporateAccount": "对公账户",
+      "autoSettByConvergence": "由汇聚自动结算",
+      "manuSettByMercPlatform": "由商户平台手工结算",
+      "day": "日",
+      "merchantID": "商户id",
+      "nameOfDepoBank": "开户行名称",
+      "bankNo": "银行号",
+      "nameOfPayee": "收款人名称",
+      "beneAccoNo": "收款人账号",
+      "lastCleaBalance": "上一次清算余额",
+      "balaToBeSettled": "待清算余额",
+      "lastSettTime": "上一次结算时间",
+      "todaCollBalance": "今日收款余额",
+      "clearBalance": "已清算余额",
+      "ShandebaoType": "杉德宝类型",
+      "enterpriseShandebao": "企业杉德宝",
+      "personalShandebao": "个人杉德宝"
+>>>>>>> sunzee-dev
     }
   },
   "uniPay": {
@@ -1189,7 +1276,7 @@
     "phoneRegistration": "手机注册"
   },
   "robotRanking": {
-    "machineSalesRanking":"机器销售排行榜",
+    "machineSalesRanking": "机器销售排行榜",
     "dailySalesRanking": "日销售排行",
     "today": "今日",
     "yesterday": "昨日",
@@ -1203,6 +1290,7 @@
     "salesRankingThisYear": "年销售排行",
     "thisYear": "今年",
     "lastYear": "去年",
+<<<<<<< HEAD
     "yearPopTitle":"请选择年份",
     "changeType":"统计方式",
     "changeTypePlace":"请选择统计方式",
@@ -1215,6 +1303,15 @@
     "sc": "七云",
     "seleWeekDateRangeNotSeveDays":"选择周的日期范围不能超过7天!!!",
     "rankMethod":"排行方式"
+=======
+    "yearPopTitle": "请选择年份",
+    "changeType": "统计方式",
+    "changeTypePlace": "请选择统计方式",
+    "patternStatistics": "花型统计",
+    "salesStatistics": "销售额统计",
+    "seleWeekDateRangeNotSeveDays": "选择周的日期范围不能超过7天!!!",
+    "rankMethod": "排行方式"
+>>>>>>> sunzee-dev
   },
   "user": {
     "essentialInformation": "基本信息",
@@ -1236,14 +1333,14 @@
     "changePassword": "修改密码",
     "selfRecharging": "自充值",
     "logOut": "退出登录",
-    "logOutTips":"提示",
-    "cancelLog":"取消",
-    "confirmLog":"确定",
-    "logOutContent":"确定需要退出登录吗",
-    "corrEmailPlace":"请输入正确的邮箱",
-    "corrPhonePlace":"请输入正确的手机号",
-    "bindWechat":"绑定微信",
-    "airwallex":"空中云汇"
+    "logOutTips": "提示",
+    "cancelLog": "取消",
+    "confirmLog": "确定",
+    "logOutContent": "确定需要退出登录吗",
+    "corrEmailPlace": "请输入正确的邮箱",
+    "corrPhonePlace": "请输入正确的手机号",
+    "bindWechat": "绑定微信",
+    "airwallex": "空中云汇"
   },
   "bindWechat": {
     "cancel": "取消",
@@ -1331,4 +1428,4 @@
   "wechat": {
     "headerName": "绑定微信"
   }
-}
+}

+ 7 - 4
src/common/js/utils.js

@@ -12,10 +12,12 @@ const t = i18n.global.t;
 // 菜单标识
 export const $M_Menus = {
   "M1":t("role.deviceManagement"),//设备管理
-  "M2":t("role.deviceView"),//设备查看
-  // "M3":t("role.accountOperation"),//分销设置
+  // "M2":t("role.deviceView"),//设备查看
+  // "M3":t("role.distributionSettings"),//分销设置
   "M3":t("role.accountOperation"),//账户操作
-  "M4":t("role.orderData"),//报警历史
+  // "M4":t("role.orderData"),//报警历史
+  "M4":t("role.orderData"),//订单数据
+
   "M5":t("role.advertisingManagement"),//广告管理
   "M6":t("role.taskMessage"),//任务消息
   "M7":t("role.discountCode"),//优惠码
@@ -26,7 +28,8 @@ export const $M_Menus = {
   // "M12":t("role.withdrawalAccountNo"),//提现账号
   // "M13":t("role.standbyWithdrawalAccountNo"),//备用提现账号
   "M14":t("role.dataOverview"),//数据概览
-  "M15":t("role.alarmHistory"),//订单数据
+  // "M15":t("role.alarmHistory"),//订单数据
+  "M15":t("role.alarmHistory"),//报警历史
   "M16":t("role.orderRefund"),//订单退款
   "M17":t("role.systemOffline"),//系统脱机
   // "M18":t("role.labelMan"),//标签管理

+ 39 - 33
src/components/commom/kCascader/index.vue

@@ -1,14 +1,8 @@
 <template>
   <!-- 地区弹窗 -->
   <van-popup v-model:show="areaPopshow" round position="bottom">
-    <van-cascader
-      @close="areaPopshow = false"
-      v-model="cascaderValue"
-      :title="$t('kCascader.selectRegion')"
-      :options="options"
-      @change="onChange"
-      @finish="onFinish"
-    />
+    <van-cascader @close="areaPopshow = false" v-model="cascaderValue" :title="$t('kCascader.selectRegion')"
+      :options="options" @change="onChange" @finish="onFinish" />
   </van-popup>
 </template>
 
@@ -122,31 +116,44 @@ export default {
     const selectArea = () => {
       Api_getAreaDetail({ value: selectId.value }).then(async (res) => {
         const resData = res.data;
-        if (resData.code === "00000") {
-          if (resData.data.length > 0) {
-            let areaName = '';
-            // 当第二级获取完后才获取第三级,不然不会默认选中
-            await getAddress(
-              resData.data[0]["value"],
-              0,
-              resData.data[0]["children"][0]["value"]
-            );
-            // 如果存在第三级
-            if (resData.data[0]["children"][0]["children"]) {
-                areaName = `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}/${resData.data[0]["children"][0]["children"][0]['text']}`;
-              // 默认选中最后一级的值
-              cascaderValue.value =
-                resData.data[0]["children"][0]["children"][0]["value"];
-            } else {
-                areaName = `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}`;
-              // 如果存在第二级
-              // 默认选中最后一级的值
-              cascaderValue.value = resData.data[0]["children"][0]["value"];
-            }
-            // 回显到input
-            emit('getareaname',areaName);
+        // if (resData.code === "00000") {
+        //   if (resData.data.length > 0) {
+        //     let areaName = '';
+        //     // 当第二级获取完后才获取第三级,不然不会默认选中
+        //     await getAddress(
+        //       resData.data[0]["value"],
+        //       0,
+        //       resData.data[0]["children"][0]["value"]
+        //     );
+        //     // 如果存在第三级
+        //     if (resData.data[0]["children"][0]["children"]) {
+        //         areaName = `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}/${resData.data[0]["children"][0]["children"][0]['text']}`;
+        //       // 默认选中最后一级的值
+        //       cascaderValue.value =
+        //         resData.data[0]["children"][0]["children"][0]["value"];
+        //     } else {
+        //         areaName = `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}`;
+        //       // 如果存在第二级
+        //       // 默认选中最后一级的值
+        //       cascaderValue.value = resData.data[0]["children"][0]["value"];
+        //     }
+        //     // 回显到input
+        //     emit('getareaname',areaName);
+        //   }
+        // }
+        if (resData && resData.code === "00000" && resData.data && resData.data.length > 0 && resData.data[0]["children"] && resData.data[0]["children"][0]) {
+          const firstLevelValue = resData.data[0]["value"];
+          const secondLevelValue = resData.data[0]["children"][0]["value"];
+          if (resData.data[0]["children"][0]["children"]) {
+            const thirdLevelValue = resData.data[0]["children"][0]["children"][0]["value"];
+            await getAddress(firstLevelValue, 0, thirdLevelValue);
+            emit('getareaname', `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}/${resData.data[0]["children"][0]["children"][0]['text']}`);
+          } else {
+            await getAddress(firstLevelValue, 0, secondLevelValue);
+            emit('getareaname', `${resData.data[0]['text']}/${resData.data[0]["children"][0]['text']}`);
           }
         }
+        
       });
     };
     return {
@@ -162,5 +169,4 @@ export default {
 };
 </script>
 
-<style lang="less" scoped>
-</style>
+<style lang="less" scoped></style>

+ 4 - 0
src/utils/config.js

@@ -15,6 +15,10 @@ if (process.env.NODE_ENV === 'development') {
     // 判断当前页面的主机名是否包含 'szwltest.sunzee.com.cn'。如果包含,则条件成立(即为 true);否则,条件不成立
     if (window.location.host.indexOf('szwltest.sunzee.com.cn') !== -1) {
         baseURL = 'https://szwl.sunzee.com.cn/'
+<<<<<<< HEAD
+=======
+        // baseURL = 'http://szwltest.sunzee.com.cn:49002/'
+>>>>>>> sunzee-dev
     } else {
         baseURL = 'https://sz.sunzee.com.cn/'
     }

+ 4 - 0
src/views/device/index.vue

@@ -60,7 +60,11 @@
                   <div class="l-flex-RC">
                     <!-- 报警标志 -->
                     <div v-if="item.hasTodayAlarm" class="box4 flex-col">
+<<<<<<< HEAD
                       <!-- <img class="pic1" src="../../assets/device/alarm.png" /> -->
+=======
+                      <!-- <img class="pic1" src="../../assets/home/M15.png" /> -->
+>>>>>>> sunzee-dev
                     </div>
                     <div class="layer2 flex-col" :class="{
                       deviceOn: item.eqeStatus === 1,

+ 124 - 102
src/views/home/index.vue

@@ -2,39 +2,25 @@
   <!-- 主页 -->
   <div class="homePage flex-col">
     <div class="homeBox">
-      <s-header
-          :name="sys ? sys.title : $t('public.sysName')"
-          :noback="true"
-          :isFixed="false"
-      ></s-header>
+      <s-header :name="sys ? sys.title : $t('public.sysName')" :noback="true" :isFixed="false"></s-header>
       <!-- 留言滚动条 -->
       <template v-if="noticeContent.title">
-        <van-notice-bar
-            @click="noticeClk"
-            mode="link"
-            :scrollable="true"
-            color="rgba(64,77,116,1)"
-            background="#fff"
-            left-icon="volume-o"
-            :text="noticeContent.title"
-        />
+        <van-notice-bar @click="noticeClk" mode="link" :scrollable="true" color="rgba(64,77,116,1)" background="#fff"
+          left-icon="volume-o" :text="noticeContent.title" />
       </template>
       <div class="intervalRow"></div>
       <div class="nameDeviceRow flex-col">
         <span class="txt3">{{ userName }}</span>
         <div class="l-flex-RC">
-          <span class="info3"
-          >{{ equipStatus.machineTotalNum }}
-            {{ $t("home.totalEquipment") }}</span
-          >
+          <span class="info3">{{ equipStatus.machineTotalNum }}
+            {{ $t("home.totalEquipment") }}</span>
           <div class="lineCon o-mlr-6"></div>
-          <span class="word2"
-          >{{ equipStatus.machineUseNum }} {{ $t("home.running") }}</span
-          >
+          <span class="word2">{{ equipStatus.machineUseNum }} {{ $t("home.running") }}</span>
         </div>
       </div>
+      <!-- 没有数据概览M14权限的人看不到数据概览和ECharts -->
       <!-- 数据概览 -->
-      <div class="titleBox flex-col">
+      <div v-if="showDataDiv" class="titleBox flex-col">
         <div class="layer2 flex-row">
           <div class="section5 flex-col"></div>
           <div class="TextGroup2 flex-col">
@@ -43,10 +29,10 @@
         </div>
       </div>
       <!-- 时间选择 -->
-      <dateSelectList @update="update($event)"></dateSelectList>
-      <typeSelectList :isHome="true" @upselectdata="upselectdata($event)"></typeSelectList>
+      <dateSelectList v-if="showDataDiv" @update="update($event)"></dateSelectList>
+      <typeSelectList v-if="showDataDiv" :isHome="true" @upselectdata="upselectdata($event)"></typeSelectList>
       <!-- 订单数据 -->
-      <div class="o-plr-8">
+      <div v-if="showDataDiv" class="o-plr-8">
         <div class="outer5 flex-col" @click="pushOrderCenter">
           <div class="block5 flex-col">
             <div class="topTitle flex-row justify-end">
@@ -78,13 +64,28 @@
         </div>
       </div>
       <!-- 时间 -->
-      <div class="c-text-c c-text-18">
+      <div v-if="showDataDiv" class="c-text-c c-text-18">
         {{ $M_FormatTime(dateSelect.startDate, 'YYYY-MM-DD') }}--{{ $M_FormatTime(dateSelect.endDate, 'YYYY-MM-DD') }}
       </div>
-      <div v-if="!noData(salesVolume, salesNumber)">
+      <!-- ECharts
+      <template v-if="showDataDiv && !noData(salesVolume, salesNumber)">
+        <div ref="chartBox" class="Chart1 flex-col"></div>
+      </template>
+      <template v-else>
+        <kNoData v-if="showDataDiv"></kNoData>
+      </template> -->
+
+      <!-- <div> -->
+      <div v-if="showDataDiv && !noData(salesVolume, salesNumber)">
         <div ref="chartBox" class="Chart1 flex-col"></div>
       </div>
       <kNoData v-else></kNoData>
+      <!-- </div> -->
+
+
+
+
+      <!-- 常用工具 -->
       <div class="outer9 flex-col justify-center">
         <div class="main24 flex-col justify-between">
           <div class="ImageText10 flex-col">
@@ -98,13 +99,8 @@
         </div>
       </div>
       <div class="outer11 flex-row">
-        <div
-            class="main25 flex-col"
-            v-for="(item, index) in pushToolList"
-            :key="index"
-            @click="pushToolPage(item.value)"
-        >
-          <img class="mod7 flex-col" :src="showLogo(item.value)"/>
+        <div class="main25 flex-col" v-for="(item, index) in pushToolList" :key="index" @click="pushToolPage(item.value)">
+          <img class="mod7 flex-col" :src="showLogo(item.value)" />
           <div class="TextGroup14 flex-col">
             <span class="info15" v-html="item.label"></span>
           </div>
@@ -112,19 +108,10 @@
       </div>
     </div>
     <!-- 通知弹窗 -->
-    <kDialog
-        :dialogTitle="$t('home.notificationPop.notification')"
-        :cancelBtnTxt="$t('home.notificationPop.nextTime')"
-        :confirmBtnTxt="$t('home.notificationPop.roger')"
-        ref="kDialogRef"
-        @confirmclk="confirmClk"
-    >
+    <kDialog :dialogTitle="$t('home.notificationPop.notification')" :cancelBtnTxt="$t('home.notificationPop.nextTime')"
+      :confirmBtnTxt="$t('home.notificationPop.roger')" ref="kDialogRef" @confirmclk="confirmClk">
       <template #content>
-        <div
-            class="o-w"
-            style="max-height: 50vh; overflow-y: auto"
-            v-html="noticeContent.note"
-        ></div>
+        <div class="o-w" style="max-height: 50vh; overflow-y: auto" v-html="noticeContent.note"></div>
       </template>
     </kDialog>
     <nav-bar></nav-bar>
@@ -135,13 +122,13 @@
 // 导入无数据组件
 import kNoData from "../../components/commom/kNoData/index.vue";
 import kDialog from "../../components/commom/kDialog/index.vue";
-import {onMounted, ref, nextTick} from "vue";
+import { onMounted, ref, nextTick } from "vue";
 import sHeader from "../../components/SimpleHeader";
 import navBar from "../../components/NavBar";
 import dateSelectList from "../../components/dateSelectList";
 import typeSelectList from "../../components/typeSelectList";
-import {getLoginUser, $M_Menus, $M_FormatTime, styleUrl} from "../../common/js/utils";
-import {useRouter} from "vue-router";
+import { getLoginUser, $M_Menus, $M_FormatTime, styleUrl } from "../../common/js/utils";
+import { useRouter } from "vue-router";
 import {
   getStatistics,
   Api_getNotice,
@@ -149,8 +136,9 @@ import {
   Api_getUpdateNotice,
 } from "../../service/home";
 import dateUtil from "../../utils/dateUtil";
-import {useI18n} from "vue-i18n";
-import {Toast} from "vant";
+import { useI18n } from "vue-i18n";
+import { Toast } from "vant";
+// import { once } from "lodash";
 
 export default {
   name: "home",
@@ -167,7 +155,7 @@ export default {
     const equipStatus = ref({});
     // 获取设备情况
     const getMachineNum = () => {
-      Api_postMachineNum({adminId: user.id}).then((res) => {
+      Api_postMachineNum({ adminId: user.id }).then((res) => {
         console.log("res", res);
         equipStatus.value = res.data.data || {};
       });
@@ -175,12 +163,12 @@ export default {
     const noticeContent = ref({});
     // 获取公告
     const getNotice = () => {
-      Api_getNotice({adminId: user.id}).then((res) => {
+      Api_getNotice({ adminId: user.id }).then((res) => {
         console.log("res", res);
         noticeContent.value = res.data.data || {};
       });
     };
-    const {t} = useI18n();
+    const { t } = useI18n();
     // 通知弹窗
     const kDialogRef = ref(null);
     // 点击通知栏
@@ -209,7 +197,7 @@ export default {
     let chartObj = null;
     // 跳转订单中心
     const pushOrderCenter = () => {
-      router.push({path: "/orderCenter"});
+      router.push({ path: "/orderCenter" });
     };
     const dateSelect = ref({});
     const update = (uDate) => {
@@ -236,9 +224,9 @@ export default {
         username: typeSelectData.userName, // 商家
         companyType: typeSelectData.companyType, // 公司平台
         equipmentId:
-            typeSelectData.equipmentId === "" ? null : typeSelectData.equipmentId,
+          typeSelectData.equipmentId === "" ? null : typeSelectData.equipmentId,
       };
-      const {data} = await getStatistics(params);
+      const { data } = await getStatistics(params);
       if (data.code && data.data) {
         salesVolume.value = 0;
         salesNumber.value = 0;
@@ -315,7 +303,7 @@ export default {
               {
                 ...data.data.series[0],
                 type: "bar",
-                itemStyle: {color: "#e59a6d"},
+                itemStyle: { color: "#e59a6d" },
                 name: t("home.productNum"),
                 label: {
                   show: true,
@@ -325,7 +313,7 @@ export default {
               {
                 ...data.data.series[1],
                 type: "bar",
-                itemStyle: {color: "#4d6add"},
+                itemStyle: { color: "#4d6add" },
                 name: t("home.salesAmount"),
                 label: {
                   show: true,
@@ -336,9 +324,9 @@ export default {
           };
 
           option.dataZoom[0]["startValue"] =
-              data.data.categories[data.data.categories.length - 5];
+            data.data.categories[data.data.categories.length - 5];
           option.dataZoom[0]["endValue"] =
-              data.data.categories[data.data.categories.length - 1];
+            data.data.categories[data.data.categories.length - 1];
           chartObj && chartObj.setOption(option);
           //图形宽度随屏幕宽度改变而改变
           window.onresize = chartObj.resize;
@@ -349,22 +337,24 @@ export default {
     // 页面初始化
     onMounted(() => {
       // 加载样式
-      styleUrl('home')
+      styleUrl('home');
       if (localStorage.getItem("loginSys")) {
         const loginSysString = localStorage.getItem("loginSys");
         sys.value = JSON.parse(loginSysString);
       }
       // 设置菜单权限
       menuSet();
+      // 设置菜单权限, 只执行一次
+      // once(menuSet);
       dateSelect.value = {
         chartType: "day",
         startDate: dateUtil.formateDate(
-            new Date(new Date(new Date().getTime()).setHours(0, 0, 0, 0)),
-            "yyyy-MM-dd hh:mm:ss"
+          new Date(new Date(new Date().getTime()).setHours(0, 0, 0, 0)),
+          "yyyy-MM-dd hh:mm:ss"
         ),
         endDate: dateUtil.formateDate(
-            new Date(new Date(new Date().getTime()).setHours(23, 59, 59, 59)),
-            "yyyy-MM-dd hh:mm:ss"
+          new Date(new Date(new Date().getTime()).setHours(23, 59, 59, 59)),
+          "yyyy-MM-dd hh:mm:ss"
         ),
       };
       typeSelectData = {
@@ -376,20 +366,36 @@ export default {
       getNotice();
       // 获取设备情况
       getMachineNum();
+
     });
+
+    const menuList = [];
+
+    const showDataDiv = ref(false);
+
+    const isOrderData = ref(false);
+
     // 设置菜单权限
     const menuSet = () => {
-      const menuList = [];
+
+      // 清空菜单列表
+      menuList.length = 0;
+
       // 组合菜单权限
       user.menuCodeList.forEach((item) => {
         for (const key in $M_Menus) {
-          // 除了设备查看M2,数据概况M14,订单退款M16,系统脱机M17不用加在菜单上
+          // 设备管理M1,设备查看M2,订单数据M4,任务消息M6,数据概览M14,订单退款M16,系统脱机M17 这些图标不用加载到底部菜单上
           if (
-              item === key &&
-              (item !== "M2" &&
-                  item !== "M14" &&
-                  item !== "M16" &&
-                  item !== "M17")
+            item === key &&
+            (
+              item !== "M1" &&
+              item !== "M2" && // M2本身就无logo
+              item !== "M4" && 
+              item !== "M6" &&
+              item !== "M14" &&
+              item !== "M16" &&
+              item !== "M17"
+            )
           ) {
             menuList.push({
               label: $M_Menus[key],
@@ -397,17 +403,21 @@ export default {
             });
           }
         }
+
       });
+
       // 赋值菜单
       pushToolList.value = menuList;
-      // 查询是否有apk管理
+
+      // 查询是否有apk管理权限
       const isApkMan = user.menuCodeList.some((item) => {
         return item === "M19";
       });
+
       // 查询是否有账号权限
-      // const isAccount = user.menuCodeList.some((item) => {
-      //   return item === "M8";
-      // });
+      const isAccount = user.menuCodeList.some((item) => {
+        return item === "M8";
+      });
       // 如果没有apk管理
       if (!isApkMan) {
         // 如果是公司人,要把apk添加上去
@@ -418,71 +428,81 @@ export default {
           });
         }
       }
+
       // 如果没有账号权限
-      // if (!isAccount) {
-      //   //  如果是公司人type=0,要把账号权限添加上去
-      //   if (user.type === 0) {
-      //     pushToolList.value.push({
-      //       label: t("home.accountPermission"),
-      //       value: "M8"
-      //     });
-      //   }
-      // }
+      if (!isAccount) {
+        //  如果是公司人type=0,要把账号权限添加上去
+        if (user.type === 0) {
+          pushToolList.value.push({
+            label: t("home.accountPermission"),
+            value: "M8"
+          });
+        }
+      }
     };
+
     // 常用操作跳转页面
     const pushToolPage = (index) => {
+      // console.log("常用操作跳转页面menuList >>> " + menuList);
       switch (index) {
         case "M1":
-          router.push({path: "/device"}); // 设备管理
+          router.push({ path: "/device" }); // 设备管理
           break;
         case "M3":
           // router.push({ path: "/distributionSet" });
-          router.push({path: "/accountOperation"}); // 账户操作
+          router.push({ path: "/accountOperation" }); // 账户操作
           break;
         case "M4":
-          router.push({path: "/orderCenter"}); // 报警历史
+          router.push({ path: "/orderCenter" }); // 订单数据
           break;
         case "M5":
-          router.push({path: "/advertManage"});
+          router.push({ path: "/advertManage" }); // 广告管理
           break;
         case "M6":
-          router.push({path: "/taskMessage"});
+          router.push({ path: "/taskMessage" });
           break;
         case "M7":
-          router.push({path: "/discountCode"});
+          router.push({ path: "/discountCode" });
           break;
         case "M8":
-          router.push({path: "/accountPer"});
+          router.push({ path: "/accountPer" });
           break;
         case "M9":
-          router.push({path: "/orderExport"});
+          // 同时具备 订单数据M4 权限的人才能使用订单导出功能
+          if (isOrderData.value) {
+            router.push({ path: "/orderExport" });
+          } else {
+            console.log("权限不足,无法跳转");
+          }
           break;
         case "M10":
-          router.push({path: "/subLedgerManage"});
+          router.push({ path: "/subLedgerManage" });
           break;
         case "M11":
-          router.push({path: "/robotranking"});
+          router.push({ path: "/robotranking" });
           break;
         case "M12":
-          router.push({path: "/joinpayMch"});
+          router.push({ path: "/joinpayMch" });
           break;
         case "M13":
-          router.push({path: "/shandeMch"});
+          router.push({ path: "/shandeMch" });
           break;
         case "M15":
-          router.push({path: "/alarmHistory"});
+          router.push({ path: "/alarmHistory" }); // 报警历史
           break;
         case "M18":
-          router.push({path: "/labelMan"});
+          router.push({ path: "/labelMan" });
           break;
         case "M19":
-          router.push({path: "/apkManage"});
+          router.push({ path: "/apkManage" });
           break;
         case "M20":
-          router.push({path: "/merchantManage"});
+          router.push({ path: "/merchantManage" });
           break;
       }
     };
+
+
     // 如果是空数据
     const noData = (volumes, nums) => {
       if (!volumes && !nums) {
@@ -516,8 +536,10 @@ export default {
       showLogo,
       dateSelect,
       $M_FormatTime,
+      showDataDiv
     };
   },
+
 };
 </script>
 

+ 1 - 1
src/views/orderExport/index.vue

@@ -216,7 +216,7 @@ export default {
       };
       getOrderList(Object.assign(param, searchParams)).then((res) => {
         const { data } = res.data;
-        console.log('data', data)
+        console.log('data的值是 >>>', data)
         if (data) {
           // refreshing.value = false;
           ruleData.tableData.push(...data.records);

+ 1 - 1
src/views/role/add.vue

@@ -128,7 +128,7 @@ export default {
     });
     // 设置菜单权限
     const menuSet = ()=>{
-      // 如果不是管理员权限type=0,要删除
+      // 如果不是管理员权限type=0,要删除 广告管理M5,杉德分账M10,系统脱机M17,apk管理M19
       if(user.type !== 0){
         delete $M_Menus['M5'];
         delete $M_Menus['M10'];

+ 22 - 18
src/views/role/index.vue

@@ -85,25 +85,29 @@ export default {
     const accountPerList = ref([]); // 列表集合
     const operCheckShow = ref(false);
     const menuCodeList = [
-      { label: t('role.deviceManagement'), value: 'M1' },
+      { label: t('role.deviceManagement'), value: 'M1' }, //设备管理
       { label: t('role.deviceView'), value: 'M2' },
-      { label: t('role.distributionSettings'), value: 'M3' },
-      { label: t('role.alarmHistory'), value: 'M4' },
-      { label: t('role.advertisingManagement'), value: 'M5' },
-      { label: t('role.taskMessage'), value: 'M6' },
-      { label: t('role.discountCode'), value: 'M7' },
-      { label: t('role.accountPermission'), value: 'M8' },
-      { label: t('role.orderExport'), value: 'M9' },
-      { label: t('role.shandeSubLedger'), value: 'M10' },
-      { label: t('role.salesRanking'), value: 'M11' },
-      { label: t('role.withdrawalAccountNo'), value: 'M12' },
-      { label: t('role.standbyWithdrawalAccountNo'), value: 'M13' },
-      { label: t('role.dataOverview'), value: 'M14' },
-      { label: t('role.orderData'), value: 'M15' },
-      { label: t('role.orderRefund'), value: 'M16' },
-      { label: t('role.systemOffline'), value: 'M17' },
-      { label: t('role.labelMan'), value: 'M18' },
-      { label: t('role.apkMan'), value: 'M19' },
+      // { label: t('role.distributionSettings'), value: 'M3' }, //分销设置
+      { label: t('role.accountOperation'), value: 'M3' }, //账户操作
+      // { label: t('role.alarmHistory'), value: 'M4' },
+      { label: t('role.orderData'), value: 'M4' }, //订单数据
+      { label: t('role.advertisingManagement'), value: 'M5' }, //广告管理
+      { label: t('role.taskMessage'), value: 'M6' }, //任务消息
+      { label: t('role.discountCode'), value: 'M7' }, //优惠码
+      { label: t('role.accountPermission'), value: 'M8' }, //账号权限
+      { label: t('role.orderExport'), value: 'M9' }, //订单导出
+      { label: t('role.shandeSubLedger'), value: 'M10' }, //杉德分账
+      { label: t('role.salesRanking'), value: 'M11' }, //销售排行
+      { label: t('role.withdrawalAccountNo'), value: 'M12' }, //提现账号
+      { label: t('role.standbyWithdrawalAccountNo'), value: 'M13' }, //备用提现账号
+      { label: t('role.dataOverview'), value: 'M14' }, //数据概览
+      // { label: t('role.orderData'), value: 'M15' },
+      { label: t('role.alarmHistory'), value: 'M15' }, //报警历史
+      { label: t('role.orderRefund'), value: 'M16' }, //订单退款
+      { label: t('role.systemOffline'), value: 'M17' }, //系统脱机
+      { label: t('role.labelMan'), value: 'M18' }, //标签管理
+      { label: t('role.apkMan'), value: 'M19' } //apk管理
+      // { label: t('role.merchantMan'), value: 'M20' } //商户管理
     ];
     let searchParams = reactive({ adminId: user.id });
     // 初始化页面获取列表

+ 34 - 7
src/views/user.vue

@@ -141,6 +141,7 @@
           </div>
 
           <!-- 备用提现账号 -->
+<<<<<<< HEAD
           <div v-if="isInland" class="taskListRow flex-col" @click="pushPageList('/huifuMch')">
             <div class="taskIcon shandeMchIcon"></div>
             <div class="taskRight">
@@ -150,9 +151,19 @@
             </div>
           </div>
 
+=======
+          <!--          <div class="taskListRow flex-col" @click="pushPageList('/shandeMch')">
+                      <div class="taskIcon shandeMchIcon"></div>
+                      <div class="taskRight">
+                        <div class="taskTitle">
+                          {{ $t("user.standbyWithdrawalAccountNo") }}
+                        </div>
+                      </div>
+                    </div>-->
+>>>>>>> sunzee-dev
           <!-- 绑定微信 -->
           <div v-if="isInWeChat" class="taskListRow flex-col" @click="pushPageList('/bindWechat')">
-            <!--                        <div class="taskListRow flex-col" @click="pushPageList('/bindWechat')">-->
+            <!--          <div class="taskListRow flex-col" @click="pushPageList('/bindWechat')">-->
             <div class="taskIcon bindWechatIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">
@@ -215,7 +226,7 @@ import {
   $M_PhoneTest,
 } from "@/common/js/utils";
 import { useRouter } from "vue-router";
-import { tAdminGetRelation, tAdminSetRelationAdmin, getIfForeign } from "@/service/user";
+import { tAdminGetRelation, tAdminSetRelationAdmin } from "@/service/user";
 import { Toast } from "vant";
 import { useI18n } from "vue-i18n";
 import { styleUrl } from "../common/js/utils";
@@ -446,20 +457,36 @@ export default {
     // 是否内陆或海外
     const isInland = ref(true);
     const isAbroad = ref(false);
+    // const checkIsAbroad = async () => {
+    //   try {
+    //     const { data } = await getIfForeign(user.id);
+    //     console.log("isAbroad >>> ", data);
+
+    //     if (data.data === '1') {
+    //       // TODO: 这里先把isAbroad设置为fasle,等开发完成再改成true;
+    //       isAbroad.value = false;
+    //       isInland.value = false;
+    //     }
+    //   } catch (error) {
+    //     console.error(error);
+    //   }
+    // };
     const checkIsAbroad = async () => {
       try {
-        const { data } = await getIfForeign(user.id);
-        console.log("isAbroad >>> ", data);
-
-        if (data.data === '1') {
+        const userInfo = localStorage.getItem("loginUser");
+        const userIfForeign = JSON.parse(userInfo);
+        console.log("用户的海内外信息" + userIfForeign.ifForeign);
+        // console.log("看下user是什么***" + user.menuCodeList);
+        if (userIfForeign.ifForeign === '1') {
           // TODO: 这里先把isAbroad设置为fasle,等开发完成再改成true;
-          isAbroad.value = false;
+          isAbroad.value = true;
           isInland.value = false;
         }
       } catch (error) {
         console.error(error);
       }
     };
+
     onMounted(() => {
       checkInWechat();
       checkIsAbroad();