Browse Source

fix:“优化物料监控和外循环为按钮开关,修复海外设备报警时间”

soobin 1 year ago
parent
commit
9f268cf98b

+ 10 - 3
src/assets/language/en.json

@@ -202,7 +202,7 @@
     "affiliatedMerchants": "Affiliated merchants",
     "equipmentNo": "Equipment No",
     "equipmentName": "Equipment name",
-    "creationTime": "Creation time",
+    "creationTime": "Alarm time",
     "alarmContent": "Alarm content",
     "allDevices": "All devices"
   },
@@ -413,7 +413,8 @@
     "showGoods": "Block or display goods",
     "editCheck": "Are you sure about the change?",
     "unknownError": "Unknown error!",
-    "degree": "degree",
+    "degree": "℃",
+    "humidity": "%RH",
     "volume": "volume",
     "alarmContent": "Alarm content",
     "alarmClock": "Device alarm!",
@@ -1333,5 +1334,11 @@
     "standbyWithdrawalAccountNo": "Standby withdrawal account No",
     "merchantManagement": "Merchant management",
     "labelMan": "Label management"
-  }
+  },
+  "Account operation": "Account operation",
+  "Discount code": "Discount code",
+  "Alarm history": "Alarm history",
+  "Advertising management": "Advertising management",
+  "Order Export": "Order Export",
+  "Apk management": "Apk management"
 }

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

@@ -202,7 +202,7 @@
     "affiliatedMerchants": "所属商家",
     "equipmentNo": "设备编号",
     "equipmentName": "设备名称",
-    "creationTime": "创建时间",
+    "creationTime": "报警时间",
     "alarmContent": "报警内容",
     "allDevices": "所有设备"
   },
@@ -413,7 +413,8 @@
     "showGoods": "屏蔽/显示商品",
     "editCheck": "是否确认更改?",
     "unknownError": "未知错误!",
-    "degree": "度",
+    "degree": "℃",
+    "humidity": "%RH",
     "volume": "音量",
     "alarmContent": "报警内容",
     "alarmClock": "设备报警!",
@@ -1350,5 +1351,11 @@
   },
   "wechat": {
     "headerName": "绑定微信"
-  }
+  },
+  "账户操作": "账户操作",
+  "优惠码": "优惠码",
+  "报警历史": "报警历史",
+  "广告管理": "广告管理",
+  "订单导出": "订单导出",
+  "apk管理": "apk管理"
 }

+ 17 - 0
src/styles/paramsSet/index.less

@@ -115,6 +115,23 @@
                 align-items: center;
             }
 
+            .txt3 {
+                display: flex;
+                width: 34%;
+                height: 14px;
+                overflow-wrap: break-word;
+                color: rgba(64, 77, 116, 1);
+                font-size: 14px;
+                text-align: left;
+                white-space: nowrap;
+                line-height: 14px;
+            }
+
+            .van-field__label {
+                width: 30%;
+            }
+
+
             .van-field__control {
                 width: 75%;
                 border: 1px solid var(--van-border-color);

+ 9 - 4
src/views/alarmHistory/index.vue

@@ -39,7 +39,7 @@
               </div>
               <div class="itemRow">
                 <span class="itemTitle">{{ $t('alarmHistory.creationTime') }}:&nbsp;</span>{{
-                  showDateTime(item.createDate)
+                  showDateTime(item.occurrenceTime)
                 }}
               </div>
               <div class="itemRow">
@@ -147,9 +147,14 @@ export default {
       }
     };
     const showDateTime = (date) => {
-      return date
-        ? dateUtil.formateDate(new Date(date), "yyyy-MM-dd hh:mm:ss")
-        : "";
+      // return date
+      //   ? dateUtil.formateDate(new Date(date), "yyyy-MM-dd hh:mm:ss")
+      //   : "";
+      if (!date) {
+        return "";
+      }
+      const currentDate = new Date(dateUtil.formateDate(new Date(date), "yyyy-MM-dd hh:mm:ss"));
+      return dateUtil.timeZoneDate(currentDate);
     };
     const showDeviceName = (id) => {
       const device = equipmentSourceList.value.filter((v) => v.id === id);

+ 1 - 0
src/views/device/deviceOper.vue

@@ -175,6 +175,7 @@ import { useI18n } from "vue-i18n";
 import { getLoginUser, styleUrl } from "@/common/js/utils";
 
 export default {
+  emits: ['operfinish'],  
   setup(props, { emit }) {
     // 点击修改价格
     const modifyPriceClk = () => {

+ 2 - 1
src/views/device/index.vue

@@ -149,7 +149,7 @@
                       item.cabinetTm
                     }}{{ $t("device.degree") }}</van-col>
                     <van-col class="word5">{{ $t("device.humidityInCabinet") }}:{{ item.cabinetHd
-                    }}{{ $t("device.degree") }}</van-col>
+                    }}{{ $t("device.humidity") }}</van-col>
                   </van-row>
                   <van-row class="layer5 o-ptb-8 kBordBott" justify="space-between" v-else>
                     <van-col class="word5">{{ $t("device.stirringTemperature") }}:{{
@@ -288,6 +288,7 @@ export default {
       // adminName: '', // 用户登录名
       current: 1, // 页数
       size: 10, // 页大小
+      todayDate: dateUtil.formateDate(new Date(), "yyyy-MM-dd"), // 当天时间
     });
     // 初始化页面获取列表
     onMounted(() => {

+ 45 - 12
src/views/device/paramsSet/paramsSetInfo.vue

@@ -8,15 +8,21 @@
           <div class="block1 flex-col"></div>
           <span class="txt2">{{ $t('device.equipmentName') }}:{{ deviceDetal ? deviceDetal.name : "" }}</span>
         </div>
-
       </div>
       <div class="paramsList" v-for="(item, key) in paramsList" :key="key">
-        <van-field v-model="item.val" name="phone" type="tel" :label="paramName[key]">
+        <van-field v-model="item.val" v-if="item.name != 'M502' && item.name != 'M506'" name="phone" type="tel"
+          :label="paramName[key]">
           <template #button>
-            <van-button size="small" type="primary" class="updataButton"
-              @click="updateParams(item)">{{ $t('device.submitUpdates') }}</van-button>
+            <van-button size="small" type="primary" class="updataButton" @click="updateParams(item)">{{
+              $t('device.submitUpdates') }}</van-button>
           </template>
         </van-field>
+        <div class="flex-row" v-else>
+          <span class="txt3 o-pl-15 o-mtb-18">{{ paramName[key] }}
+          </span>
+          <van-switch class="o-mt-8" :model-value="checked[key]" @update:model-value="onUpdateValue(item, key)">
+          </van-switch>
+        </div>
       </div>
     </div>
   </div>
@@ -27,7 +33,7 @@ import { onMounted, ref } from "vue";
 import sHeader from "@/components/SimpleHeader";
 import { useRoute } from "vue-router";
 import { getDeviceDetal, getParameters, updateParameters } from "@/service/device";
-import { Toast } from "vant";
+import { Toast, Dialog } from "vant";
 import { useI18n } from 'vue-i18n';
 import { styleUrl } from "../../../common/js/utils";
 
@@ -42,6 +48,7 @@ export default {
     const paramsList = ref([]);
     const comParams = ref([]);
     const paramName = ref([]);
+    const checked = ref([]);
 
     // 初始化页面获取列表
     onMounted(async () => {
@@ -83,13 +90,16 @@ export default {
       if (data.code) {
         paramsList.value = data.data;
         paramsList.value.forEach((paramItem) => {
-          // console.log(paramItem.name);
+          // console.log("paramItem:", paramItem);
           comParams.value.push(paramItem.name);
           paramName.value.push(t("paramNames." + paramItem.name));
-          // paramName.value.push(paramItem.name);
-          // console.log(zh.paramNames[paramItem.name]);        
+          if (paramItem.val === '1') {
+            checked.value.push(true);
+          } else {
+            checked.value.push(false);
+          }
         })
-        // console.log(comParams.value);
+        // console.log("checked:", checked.value);
 
       } else {
         Toast.fail(data.message);
@@ -110,18 +120,41 @@ export default {
         Toast.fail(data.message);
       }
     }
+    const onUpdateValue = async (item, key) => {
+      console.log(item);
+      const params = {
+        id: deviceId,
+        name: item.name,
+        val: item.val === '0' ? '1' : '0',
+      };
+      Dialog.confirm({
+        title: '提醒',
+        message: '是否切换开关?',
+      }).then(() => {
+        checked.value[key] = !checked.value[key];
+        const { data } = updateParameters(params);
+        if (data.code) {
+          Toast.success(t('device.modificationSucceeded'));
+        } else {
+          Toast.fail(data.message);
+        }
+      }).catch(() => {
+        // on cancel
+      });
+    };
     return {
       deviceDetal,
       paramsTitle,
       paramsList,
       // getParamName,
       updateParams,
-      paramName
+      paramName,
+      checked,
+      onUpdateValue,
     };
   },
 };
 </script>
 <style lang="less" scoped>
 @import "../../../common/style/common";
-</style>
-  
+</style>

+ 2 - 2
src/views/login.vue

@@ -43,11 +43,11 @@
         <br>
         <br>
         <!-- 微信登录 -->
-        <div v-if="isInWeChat" class="loginWithWechatClass">
+        <!-- <div v-if="isInWeChat" class="loginWithWechatClass">
           <van-button class="wechat-btn" type="primary" size="large" @click="wxLoginHandler">
             <van-icon name="wechat" color="#1bd66c" size="40" class="wechat-icon"/>
           </van-button>
-        </div>
+        </div> -->
 
         <div class="buttonBox">
           <van-button

+ 72 - 27
src/views/orderExport/index.vue

@@ -53,8 +53,9 @@
             </div>
           </div>
           <!-- <van-pull-refresh disabled v-model="refreshing" @refresh="onRefresh"> -->
-          <van-list v-model:loading="loading" v-model:error="error" :finished="finished"
-            :finished-text="$t('public.noMore')" @load="onLoad" offset="300" immediate-check="false">
+          <van-list v-model:loading="loading" v-model:error="error" :error-text="$t('public.requestFailed')"
+            :finished="finished" :finished-text="$t('public.noMore')" @load="onLoad"
+            :immediate-check="false">
             <div v-for="(item, index) in tableData" :key="index" class="orderItem">
               <div class="mod9 flex-row">
                 <span class="info7">&yen;</span>
@@ -144,6 +145,8 @@ import { useI18n } from "vue-i18n";
 import kDialog from "@/components/commom/kDialog/index.vue";
 import moment from 'moment';
 import { styleUrl } from "../../common/js/utils";
+import { Toast } from "vant";
+
 export default {
   name: "orderExport",
   components: { sHeader, dateSelectList, kTabs, kDialog },
@@ -151,12 +154,15 @@ export default {
     // 分页
     const pageNo = ref(1);
     const pageSize = ref(10);
-    let ruleData = reactive({
-      tableData: [],
-    });
+    // let ruleData = reactive({
+    //   tableData: [],
+    // });
+    const tableData = ref([]);
+    const orderTotal = ref(0);
     // 上拉刷新
     const loading = ref(true);
     const finished = ref(false);
+    const error = ref(false);
     // 下拉刷新
     // const refreshing = ref(false);
     const user = getLoginUser();
@@ -170,8 +176,10 @@ export default {
     onMounted(() => {
       // 加载样式
       styleUrl('orderExport');
-      ruleData.tableData = [];
+      // ruleData.tableData = [];
+      tableData.value = [];
       pageNo.value = 1;
+      pageSize.value = 10;
       // 今日
       searchParams.startDate = moment().format("YYYY-MM-DD") + " 00:00:00";
       searchParams.endDate = moment().format("YYYY-MM-DD") + " 23:59:59";
@@ -199,12 +207,14 @@ export default {
       // if (!finished.value) {
       //   console.log("1");
       if (!finished.value) {
-        pageNo.value = pageNo.value + 1;
+        // console.log("加载中")
+        pageNo.value = pageNo.value + pageSize.value;
         getList();
       }
     };
     // 获取列表数据
     const getList = async () => {
+      loading.value = true;
       finished.value = false;
       // 如果存在chartType去掉
       if (searchParams.chartType) {
@@ -214,21 +224,48 @@ export default {
         current: pageNo.value,
         size: pageSize.value,
       };
-      getOrderList(Object.assign(param, searchParams)).then((res) => {
-        const { data } = res.data;
-        console.log('data的值是 >>>', data)
-        if (data) {
-          // refreshing.value = false;
-          ruleData.tableData.push(...data.records);
-          console.log(ruleData.tableData.length);
-          // 加载状态结束
-          loading.value = false;
-          if (ruleData.tableData.length < data.size) {
+      const { data } = await getOrderList(Object.assign(param, searchParams));
+      if (data.code === "00000") {
+        if (data.data.total === 0) {
+          finished.value = true;
+        } else {
+          if (param.current === 1) {
+            tableData.value = [];
+            orderTotal.value = 0;
+          }
+          // 列表值叠加
+          if (data.data.records.length > 0) {
+            tableData.value = tableData.value.concat(data.data.records);
+            orderTotal.value = data.data.records.length + orderTotal.value;
+            if (orderTotal.value === data.data.total) {
+              finished.value = true;
+            }
+          } else {
             finished.value = true;
           }
         }
-      });
+        loading.value = false;
+      } else {
+        loading.value = false;
+        Toast.fail("数据加载失败");
+      }
     };
+    // getOrderList(Object.assign(param, searchParams)).then((res) => {
+    //   const { data } = res.data;
+    //   console.log('data的值是 >>>', data)
+    //   if (data) {
+    //     // refreshing.value = false;
+    //     ruleData.tableData.push(...data.records);
+    //     console.log("数据长度:", ruleData.tableData.length);
+    //     console.log("数据量:", data.total);
+    //     // 加载状态结束
+    //     loading.value = false;
+    //     if (ruleData.tableData.length === data.total) {
+    //       finished.value = true;
+    //     }
+    //   }
+    // });
+    // };
     // 引入语言
     const { t } = useI18n();
     // 大陆或海外弹窗
@@ -247,16 +284,16 @@ export default {
     const changeTypePopList = [
       {
         name: t('orderExport.searchPop.mainland'),
-        id: 1,
+        id: "0",
       },
       {
         name: t('orderExport.searchPop.overseas'),
-        id: 0,
+        id: "1",
       },
     ];
     // 点击弹窗的确定按钮
     const changeTypePopConfirm = (e) => {
-      console.log('e')
+      // console.log('e')
       searchForm.ifForeign = e.id;
       searchForm.ifForeignName = e.name;
       changeTypeShow.value = false;
@@ -273,8 +310,8 @@ export default {
         size: pageSize.value,
       };
       const { headers, data } = await Api_getOrderExport(Object.assign(param, searchParams));
-      console.log('headers', headers)
-      console.log('data', data)
+      // console.log('headers', headers)
+      // console.log('data', data)
       $M_ExportFile(data, headers);
     };
     // 筛选弹窗的元素
@@ -290,6 +327,7 @@ export default {
       ifForeign: "0",
       ifForeignName: "大陆",
       companyType: "",
+      companyTypeName: "全部",
     });
     // 点击筛选条件的清空条件按钮
     const cancelClk = () => {
@@ -305,6 +343,7 @@ export default {
       searchParams.username = searchForm.busiName;
       searchParams.ifForeign = searchForm.ifForeign;
       searchParams.companyType = searchForm.companyType;
+      tableData.value = [];
       getList();
     };
     // 商户设备tab栏
@@ -339,7 +378,8 @@ export default {
     const tabChg = (e) => {
       pageNo.value = 1;
       pageSize.value = 10;
-      ruleData.tableData = [];
+      // ruleData.tableData = [];
+      tableData.value = [];
       if (e == 1) {
         searchParams.type = 1;
       } else {
@@ -359,13 +399,15 @@ export default {
     });
     // 搜索点击
     const searchClick = () => {
-      console.log("searchClick");
+      // console.log("searchClick");
     };
     // 今日、明日、本周、本月、其他时间选择回调
     const update = (uDate) => {
+      // console.log("日期修改")
       pageNo.value = 1;
       pageSize.value = 10;
-      ruleData.tableData = [];
+      // ruleData.tableData = [];
+      tableData.value = [];
       searchParams = Object.assign(searchParams, uDate);
       searchParams.startDate = dateUtil.formateDate(
         new Date(searchParams.startDate),
@@ -408,11 +450,14 @@ export default {
       onLoad,
       getList,
       isAdmin,
-      ...toRefs(ruleData),
+      tableData,
+      error,
+      // ...toRefs(ruleData),
     };
   },
 };
 </script>
 <style lang="less" scoped>
 @import "../../common/style/common.less";
+@import "../../styles/orderExport/index.less";
 </style>

+ 1 - 1
src/views/taskMessage/joinpayMchCheck/info/index.vue

@@ -282,7 +282,7 @@
           </div>
         </div>
       </div>
-      <div v-if="isOper" class="itemRow" style="display: flex; justify-content: center; padding: 0.5rem;">
+      <div v-if="isOper && infoData.status == '1'" class="itemRow" style="display: flex; justify-content: center; padding: 0.5rem;">
         <van-button span="5" round type="primary"
           style="height: 2em; padding: 0 2em; margin: 0 1em; background: rgb(255 0 0 / 20%); color: #ff0000; border-color: #ff0000;"
           @click="changeStatusFun('3')">