Kaynağa Gözat

fix:“优化结算账号部分提示,优化日志查看功能”

soobin 1 yıl önce
ebeveyn
işleme
d5d0ed4c43

+ 18 - 8
src/service/device/index.js

@@ -34,12 +34,12 @@ export function sleepEquipment(params) {
 
 // 远程开门
 export function openDoor(params) {
-  return axios.post(`/SZWL-SERVER/tEquipment/openDoor?${stringToUrl(params)}`, params);
+    return axios.post(`/SZWL-SERVER/tEquipment/openDoor?${stringToUrl(params)}`, params);
 }
 
 // 新版远程开门,包含内门外门
 export function Api_openDoor(params) {
-    return axios.get(`/SZWL-SERVER/tEquipment/openDoors`, {params})
+    return axios.get(`/SZWL-SERVER/tEquipment/openDoors`, { params })
 }
 
 // 系统脱机
@@ -134,27 +134,27 @@ export function saveProportion(params) {
 
 // 单个/批量修改商品价格
 export function Api_getUpdaProdPrice(params) {
-    return axios.get(`/SZWL-SERVER/tProduct/updateProduct`, {params})
+    return axios.get(`/SZWL-SERVER/tProduct/updateProduct`, { params })
 }
 
 // 一键补料
 export function Api_getReplenishment(params) {
-    return axios.get(`/SZWL-SERVER/tEquipment/buliao`, {params})
+    return axios.get(`/SZWL-SERVER/tEquipment/buliao`, { params })
 }
 
 // 远程
 export function Api_getTApkInfo_updateApk(params) {
-    return axios.get(`/SZWL-SERVER/tApkInfo/updateApk`, {params})
+    return axios.get(`/SZWL-SERVER/tApkInfo/updateApk`, { params })
 }
 
 // 修改优惠码开关状态
 export function Api_getDiscCodeStatus(params) {
-    return axios.get(`/SZWL-SERVER/tEquipment/updateCouponStatus`, {params})
+    return axios.get(`/SZWL-SERVER/tEquipment/updateCouponStatus`, { params })
 }
 
 // 修改睡眠描述
 export function changeSleepDesc(params) {
-    return axios.get(`/SZWL-SERVER/tEquipmentDesc/updateSleepDesc`, {params})
+    return axios.get(`/SZWL-SERVER/tEquipmentDesc/updateSleepDesc`, { params })
 }
 
 // 删除设备
@@ -179,7 +179,7 @@ export function customLogo(params) {
 
 // 日志下载
 export function downloadLog(params) {
-  return axios.get(`/SZWL-SERVER/tEquipment/downloadLog?${stringToUrl(params)}`,{responseType:'blob', timeout: 12000});
+    return axios.get(`/SZWL-SERVER/tEquipment/downloadLog?${stringToUrl(params)}`, { responseType: 'blob', timeout: 12000 });
 }
 
 // 获取DIY花型列表信息
@@ -195,4 +195,14 @@ export function updateDIYFlowerStatus(params) {
 // 修改DIY花型的形状或是否显示
 export function updateDIYProductShow(params) {
     return axios.post(`/SZWL-SERVER/tEquipment/updateDIYProductShow`, params);
+}
+
+// 日志上传
+export function uploadLog(params) {
+    return axios.get(`/SZWL-SERVER/tEquipment/uploadLog?${stringToUrl(params)}`);
+}
+
+// 查询日志
+export function queryLog(params) {
+    return axios.get(`/SZWL-SERVER/tEquipment/queryLog?${stringToUrl(params)}`);
 }

+ 125 - 5
src/views/device/viewLogs/index.vue

@@ -10,10 +10,25 @@
       <van-popup v-model:show="showPicker" round position="bottom">
         <van-date-picker :min-date="minDate" :max-date="maxDate" @confirm="selectTime" @cancel="showPicker = false" />
       </van-popup>
-      <van-button v-if="!downloading" round :disabled="logsTime === ''" type="primary" class="volumeChangeButton"
+      <van-cell-group>
+        <van-field readonly v-model="message" rows="2" autosize label="使用教程" type="textarea"
+          show-word-limit />
+      </van-cell-group>
+      <div class="button-container">
+        <van-button round style="padding: 1em 2em;" type="primary" @click="uploadLogBtn">上传</van-button>
+        <van-button round style="padding: 1em 2em;" type="primary" @click="queryLogBtn">查询</van-button>
+      </div>
+      <!-- <van-button v-if="!downloading" round :disabled="logsTime === ''" type="primary" class="volumeChangeButton"
         @click="downloadBtn">{{ $t('device.download') }}</van-button>
       <van-button v-else disabled loading round class="volumeChangeButton" type="primary"
-        :loading-text="$t('device.downloading')" />
+        :loading-text="$t('device.downloading')" /> -->
+
+      <van-cell v-if="fileName != ''" :title="fileName" :clickable=true @click="downloadFile">
+        <!-- 使用 right-icon 插槽来自定义右侧图标 -->
+        <template #right-icon>
+          <van-icon name="down" class="search-icon" />
+        </template>
+      </van-cell>
     </div>
   </div>
 </template>
@@ -27,11 +42,14 @@ import {
 import sHeader from "@/components/SimpleHeader.vue";
 import {
   downloadLog,
-  getDeviceDetal
+  getDeviceDetal,
+  uploadLog,
+  queryLog
 } from "@/service/device";
 import { $M_ExportFile } from "@/common/js/utils";
 import {
-  showFailToast
+  showFailToast,
+  showToast
 } from "vant";
 import {
   useRoute
@@ -52,6 +70,8 @@ export default ({
     const showPicker = ref(false);
     const downloading = ref(false);
     const logsTime = ref(null);
+    const fileName = ref(''); // 文件名
+    const message = ref('选择日期点击上传,等待几秒后点击查询,找到文件点击下载到本地查看。');
     // const curDate = new Date(); // 获取当前时间日期
 
     // 计算最小日期为当前日期7天前
@@ -105,8 +125,12 @@ export default ({
 
     const downloadBtn = async () => {
       const pattern = /^\d{4}-\d{2}-\d{2}$/;
+      if (logsTime.value == null) {
+        showToast('请选择日期');
+        return;
+      }
       if (!pattern.test(logsTime.value)) {
-        showFailToast('日期格式有误');
+        showToast('日期格式有误');
         return;
       }
       const formattedDate = logsTime.value.replace(/-/g, '');
@@ -135,6 +159,82 @@ export default ({
       }
     }
 
+    const uploadLogBtn = async () => {
+      const pattern = /^\d{4}-\d{2}-\d{2}$/;
+      if (logsTime.value == '') {
+        showToast('请选择日期');
+        return;
+      }
+      if (!pattern.test(logsTime.value)) {
+        showToast('日期格式有误');
+        return;
+      }
+      const formattedDate = logsTime.value.replace(/-/g, '');
+      const { data } = await uploadLog({
+        equipmentId: deviceId,
+        day: formattedDate,
+      });
+      if (data.code == '00000') {
+        showToast('上传信号发送成功,请等待几秒后查询下载');
+      } else {
+        showFailToast(data.message);
+      }
+    }
+
+    // 查询日志是否上传成功
+    const queryLogBtn = async () => {
+      if (logsTime.value == '') {
+        showToast('请选择日期');
+        return;
+      }
+      const pattern = /^\d{4}-\d{2}-\d{2}$/;
+      if (!pattern.test(logsTime.value)) {
+        showToast('日期格式有误');
+        return;
+      }
+      const formattedDate = logsTime.value.replace(/-/g, '');
+      const { data } = await queryLog({
+        equipmentId: deviceId,
+        day: formattedDate,
+      });
+      if (data.code == '00000') {
+        // console.log(data.data);
+        showToast("查询成功,点击下载")
+        fileName.value = data.data.substring(4);
+      } else {
+        fileName.value = '';
+        showToast("找不到文件,请重试上传或检查机器网络");
+      }
+    }
+
+    const downloadFile = async () => {
+      // 文件链接
+      const fileUrl = 'http://qiniuyun.sunzee.com.cn/log/' + fileName.value;
+      try {
+        const response = await fetch(fileUrl);
+        console.log('response', response);
+        // 获取文件名
+        const fileName = "20231221-1702000724598953359968463.txt";
+
+        // 将文件内容创建为Blob
+        const fileBlob = await response.blob();
+
+        // 创建一个下载链接
+        const downloadLink = document.createElement('a');
+        downloadLink.href = URL.createObjectURL(fileBlob);
+        downloadLink.download = fileName;
+
+        // 模拟点击下载链接
+        document.body.appendChild(downloadLink);
+        downloadLink.click();
+
+        // 清理添加的链接元素
+        document.body.removeChild(downloadLink);
+      } catch (error) {
+        console.error('请求超时:', error);
+      }
+    }
+
     return {
       deviceDetail,
       downloadBtn,
@@ -145,6 +245,11 @@ export default ({
       minDate,
       maxDate,
       downloading,
+      downloadFile,
+      uploadLogBtn,
+      queryLogBtn,
+      fileName,
+      message
     }
   },
 
@@ -153,4 +258,19 @@ export default ({
 
 <style lang="less" scoped>
 @import "../../../common/style/common";
+
+.search-icon {
+  font-size: 16px;
+  line-height: inherit;
+}
+
+.button-container {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  margin-top: 20px;
+  /* 根据需要添加上下边距 */
+  margin-bottom: 30px;
+  gap: 20px;
+}
 </style>

+ 49 - 44
src/views/settlement/index.vue

@@ -53,7 +53,8 @@
           <div class="van-cell van-field requiredLeft">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.merchantType') }}</span></div>
             <div class="van-cell__value van-field__value radioBox">
-              <van-radio-group v-model="altMerchantType" direction="horizontal" @change="fieldUpdate" :disabled="huifuMchID != null || joinPayMchID != null">
+              <van-radio-group v-model="altMerchantType" direction="horizontal" @change="fieldUpdate"
+                :disabled="huifuMchID != null || joinPayMchID != null">
                 <van-radio name="10" icon-size="18px">{{ $t('joinpayMch.personal') }}</van-radio>
                 <!-- <van-radio name="11" icon-size="18px">{{$t('joinpayMch.individualBusinesses')}}</van-radio> -->
                 <van-radio name="12" icon-size="18px">{{ $t('joinpayMch.enterprise') }}</van-radio>
@@ -186,9 +187,10 @@
                 {{ signStatus == '签约成功' ? (huifuMchID == null ? signStatus : (huifuAuditStatus == '2' ? signStatus :
                   '待签约')) : '待签约' }}
               </span>
-              <van-button :disabled="huifuMchID == null ? (signStatus == '签约成功' ? true : false) : (huifuAuditStatus == '2' && signStatus == '签约成功' ? true : false)"
-               span="5" round type="primary" style="height: 2em; padding: 0 2.5em" @click='altMchSignFun()'>{{
-                $t('joinpayMch.signAContract') }}
+              <van-button
+                :disabled="huifuMchID == null ? (signStatus == '签约成功' ? true : false) : (huifuAuditStatus == '2' && signStatus == '签约成功' ? true : false)"
+                span="5" round type="primary" style="height: 2em; padding: 0 2.5em" @click='altMchSignFun()'>{{
+                  $t('joinpayMch.signAContract') }}
               </van-button>
             </div>
           </div>
@@ -197,7 +199,8 @@
           <div class="van-cell van-field requiredLeft">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.accountType') }}</span></div>
             <div class="van-cell__value van-field__value radioBox">
-              <van-radio-group v-model="bankAccountType" direction="horizontal" @change="fieldUpdate" :disabled="altMerchantType === '10'">
+              <van-radio-group v-model="bankAccountType" direction="horizontal" @change="fieldUpdate"
+                :disabled="altMerchantType === '10'">
                 <van-radio name="1" icon-size="18px">{{ $t('joinpayMch.debitCard') }}</van-radio>
                 <van-radio name="4" icon-size="18px">{{
                   $t('joinpayMch.corporateAccount')
@@ -225,9 +228,8 @@
             :rules="[{ required: true, message: $t('joinpayMch.bankAccountPlaceholder') }]"
             @update:model-value="fieldUpdate" />
           <!-- 银行地址 -->
-          <van-field class="requiredLeft" v-model="bankAddress" is-link readonly
-            name="bankAddress" :label="$t('huifuMch.huifuBankAddress')"
-            :placeholder="$t('huifuMch.huifuBankAddressPlaceholder')"
+          <van-field class="requiredLeft" v-model="bankAddress" is-link readonly name="bankAddress"
+            :label="$t('huifuMch.huifuBankAddress')" :placeholder="$t('huifuMch.huifuBankAddressPlaceholder')"
             :rules="[{ required: true, message: $t('huifuMch.huifuBankAddressPlaceholder') }]"
             @click="showBankAddress = true" />
           <div v-if="bankAccountType === '4'" class="requiredLeft">
@@ -287,7 +289,8 @@
             </template>
           </van-field> -->
           <!-- 操作 -->
-          <van-row justify="space-around" v-if="huifuAuditStatus != '4' && huifuAuditStatus != '1'" style="padding: 1em; margin: 2em 0;">
+          <van-row justify="space-around" v-if="huifuAuditStatus != '4' && huifuAuditStatus != '1'"
+            style="padding: 1em; margin: 2em 0;">
             <van-button span="5" round type="primary" style="height: 2em; padding: 1.5em 2em" native-type="submit">{{
               $t('joinpayMch.submitDataForReview') }}
             </van-button>
@@ -442,7 +445,7 @@ import sHeader from "../../components/SimpleHeader";
 import { showFailToast, showSuccessToast, showToast, showLoadingToast } from "vant";
 import { areaList } from "@vant/area-data";
 import {
-  getOneJoinPayMch, updateJoinPayMchCheck, altMchSign, updateConStat,
+  getOneJoinPayMch, updateJoinPayMchCheck, altMchSign,
   sentImage, updateApproveStatus, saveJoinPayMch
 } from '../../service/joinpayMch';
 import { newUploadPic, getHuifuMchCheck, newSaveHuifuMch, updateMerchant, openAccount, sendSms } from "@/service/huifuMch";
@@ -771,9 +774,9 @@ export default {
           addParams.emailValue = data.data.email;
           addParams.manageAddr = areaList.province_list[data.data.provId] + areaList.city_list[data.data.areaId] + areaList.county_list[data.data.districtId];
           huifuMchNO.value = data.data.huifuId;
-          if (huifuMchNO.value != null && conStat.value != "5") {
-            changeConStat();
-          }
+          // if (huifuMchNO.value != null && conStat.value != "5") {
+          //   changeConStat();
+          // }
           addParams.validityType = data.data.certValidityType;
           addParams.beginDate = dateUtil.formatDate(data.data.certBeginDate);
           addParams.endDate = dateUtil.formatDate(data.data.certEndDate);
@@ -783,7 +786,8 @@ export default {
           huifuParams.cardProvId = data.data.cardProvId;
           huifuParams.cardAreaId = data.data.cardAreaId;
           huifuParams.detailAddr = data.data.detailAddr;
-          addParams.bankAddress = areaList.province_list[data.data.cardProvId] + areaList.city_list[data.data.cardAreaId]
+          addParams.bankAddress = areaList.province_list[data.data.cardProvId] == areaList.city_list[data.data.cardAreaId] ? areaList.province_list[data.data.cardProvId] :
+          (areaList.province_list[data.data.cardProvId] + areaList.city_list[data.data.cardAreaId]);
           if (data.data.cardFrontPic != null && data.data.legalCertBackPic != null && data.data.legalCertFrontPic) {
             huifuPicUpStatus.value = 1;
           }
@@ -792,7 +796,8 @@ export default {
             addParams.altMerchantType = "12";
             addParams.regNameValue = data.data.regName;
             addParams.shortNameValue = data.data.shortName;
-            addParams.registeredAddress = areaList.province_list[data.data.regProvId] + areaList.city_list[data.data.regAreaId] + areaList.county_list[data.data.regDistrictId];
+            addParams.registeredAddress = areaList.province_list[data.data.regProvId] == areaList.city_list[data.data.regAreaId] ? (areaList.city_list[data.data.regAreaId] + areaList.county_list[data.data.regDistrictId]) :
+            (areaList.province_list[data.data.regProvId] + areaList.city_list[data.data.regAreaId] + areaList.county_list[data.data.regDistrictId]);
             huifuParams.regProvId = data.data.regProvId;
             huifuParams.regAreaId = data.data.regAreaId;
             huifuParams.regDistrictId = data.data.regDistrictId;
@@ -822,15 +827,15 @@ export default {
       }
     }
     // 更新汇付签约状态
-    const changeConStat = async () => {
-      const { data } = await updateConStat(huifuParams);
-      if (data.code === "00000") {
-        // showSuccessToast(t('joinpayMch.withdrawalSucceeded'));
-        if (data.data === "5") {
-          location.reload();
-        }
-      }
-    }
+    // const changeConStat = async () => {
+    //   const { data } = await updateConStat(huifuParams);
+    //   if (data.code === "00000") {
+    //     // showSuccessToast(t('joinpayMch.withdrawalSucceeded'));
+    //     if (data.data === "5") {
+    //       location.reload();
+    //     }
+    //   }
+    // }
     // 更新图片审核情况
     const changeApproveStatus = async () => {
       const { data } = await updateApproveStatus({ id: joinPayMchID.value });
@@ -901,8 +906,8 @@ export default {
         addParams.licenseExpiry = addParams.endDateLicense;
       }
       huifuParams.regName = addParams.legalPerson;
-      huifuParams.name = addParams.busiContactName;
-      huifuParams.phone = addParams.busiContactMobileNo;
+      huifuParams.name = addParams.legalPerson;
+      huifuParams.phone = addParams.phoneNo;
       huifuParams.email = addParams.emailValue;
       huifuParams.cardName = addParams.bankAccountName;
       huifuParams.cardNo = addParams.bankAccountNo.replace(/\s/g, '');
@@ -920,6 +925,7 @@ export default {
         huifuParams.licenseBeginDate = addParams.beginDateLicense.replace(/-/g, "");
         huifuParams.licenseEndDate = addParams.endDateLicense.replace(/-/g, "");
         huifuParams.servicePhone = addParams.servicePhoneValue;
+        huifuParams.regDetail = addParams.registeredAddress;
         if (addParams.bankAccountType === '4') {
           huifuParams.cardType = '0';
           huifuParams.branchCode = addParams.bankChannelNo;
@@ -999,18 +1005,25 @@ export default {
         const { data } = await sentImage(params);
         let response = null;
         if (data.code === "00000") {
-          response = await openAccount({ id: huifuMchID.value });
-          if (response.data.code === "00000") {
-            console.log("response", response);
-            loadingUp.close();
+          if (huifuMchNO.value == null) {
+            response = await openAccount({ id: huifuMchID.value });
+            if (response.data.code === "00000") {
+              console.log("response", response);
+              loadingUp.close();
+              showSuccessToast(t('joinpayMch.uploadSucceeded'));
+              setTimeout(() => {
+                location.reload();
+              }, 1500);
+            } else {
+              console.log("response", response);
+              loadingUp.close();
+              showFailToast(`${response.data.message}`);
+            }
+          } else {
             showSuccessToast(t('joinpayMch.uploadSucceeded'));
             setTimeout(() => {
               location.reload();
             }, 1500);
-          } else {
-            console.log("response", response);
-            loadingUp.close();
-            showFailToast(`${response.data.message}`);
           }
         } else { showFailToast(t('joinpayMch.submitFailed')); }
       } catch (error) {
@@ -1033,20 +1046,13 @@ export default {
         if (data.code === "00000") {
           console.log(huifuAuditStatus.value);
           let huifuMch = await openAccount({ id: huifuMchID.value });
-          // let huifuMch = null;
-          // if (huifuAuditStatus.value === '1') {
-          //   huifuMch = await auditAddMerchant({ id: huifuMchID.value, status: "1" });
-          // } else if (huifuAuditStatus.value === '4') {
-          //   huifuMch = await auditUpdateMerchant({ id: huifuMchID.value, status: "1" });
-          // }
-          // console.log(data1);
           if (huifuMch.data.code === "00000") {
             showSuccessToast(t('joinpayMch.signingSuccessfully'));
             setTimeout(() => {
               location.reload();
             }, 1500);
           } else {
-            showFailToast(`${huifuMch.message}`);
+            showFailToast(`${huifuMch.data.message}`);
           }
         } else {
           showFailToast(`${data.message}`);
@@ -1280,5 +1286,4 @@ export default {
 
 <style lang="less" scoped>
 @import "../../common/style/common.less";
-@import "../../styles/joinpayMch/index.less";
-</style>
+@import "../../styles/joinpayMch/index.less";</style>