Преглед на файлове

feat:“同步2024.05.29“

soobin преди 1 година
родител
ревизия
204d7e0d3e

BIN
src/assets/device/operIcon/restartAndroid.png


+ 13 - 1
src/assets/language/en.json

@@ -368,6 +368,9 @@
     "enableMaterialSucceed": "Sent successfully",
     "enableMaterialFailed": "Sent failed",
     "sleepSuccessfully": "Sleep successfully",
+    "changeSleep": "Do you switch sleep states?",
+    "changeSleepSuccess": "Switchover successful",
+    "isReplenishment": "Do you need replenishment?",
     "Succeed": "Request sent successfully",
     "Failed": "Request sent failure",
     "open": "open",
@@ -532,6 +535,7 @@
     "equipLocation": "Machine location",
     "position": "Position",
     "viewPositioning": "View positioning",
+    "restartAndroid": "Restart touch screen",
     "view": "view",
     "oneKeyFeed": "One key feeding",
     "replenishment": "Replenish",
@@ -908,7 +912,11 @@
     "productNum": "Sales volume",
     "numberOfOrders": "Order quantity",
     "orderDetails": "order details",
+    "total": "Total ",
+    "records": " records",
     "exportToExcel": "Export to Excel",
+    "exportTips": "There are more than 30,000 order records. Please export them in batches",
+    "exportSuccess": "Export successfully",
     "equipmentNo": "Machine No",
     "equipmentName": "Machine Name",
     "tradeName": "Trade name",
@@ -926,6 +934,7 @@
     "onlinePayment": "Online payment",
     "offlinePayment": "Offline payment",
     "paymentSucceeded": "Payment succeeded",
+    "noOrderData": "The order data is empty",
     "unpaid": "Unpaid",
     "paid": "Paid",
     "refundInProgress": "Refund in progress",
@@ -947,7 +956,10 @@
     "orderNoPlaceholder": "Please enter the order number",
     "orderSerialNumberLabel": "Order serial number",
     "orderSerialNumberPlaceholder": "Please enter the order serial number",
-    "equipmentNoPlaceholder": "Please enter the Machine number",
+    "equipmentNoPlaceholder": "Please enter the full Machine number",
+    "searchCriteria": "Please enter search criteria",
+    "searchDate": "Please enter the specified order date, no more than six months",
+    "searchDateTips": "No more than half a year",
     "orderDate": "Order Date",
     "startTime": "start time",
     "to": "to",

+ 13 - 1
src/assets/language/ja.json

@@ -370,6 +370,9 @@
         "Succeed": "リクエスト送信完了",
         "Failed": "リクエスト送信失敗",
         "sleepSuccessfully": "スリープ完了",
+        "changeSleep": "睡眠を変えるのですか?",
+        "changeSleepSuccess": "変更できました",
+        "isReplenishment": "材料の補充は必要ですか?",
         "open": "OPEN",
         "close": "CLOSE",
         "clickRestart": "炉頭を再稼働します",
@@ -554,6 +557,7 @@
         "equipLocation": "装置の位置",
         "position": "位置情報",
         "viewPositioning": "位置情報を見る",
+        "restartAndroid": "画面を再起動",
         "view": "見る",
         "oneKeyFeed": "ワンタッチ補充",
         "replenishment": "補充",
@@ -915,7 +919,11 @@
         "productNum": "販売数",
         "numberOfOrders": "注文数",
         "orderDetails": "注文の詳細",
+        "total": "合計",
+        "records": "レコード",
         "exportToExcel": "Excelにエクスポートする",
+        "exportTips": "註文数は30000件を超えました,順次導出してください",
+        "exportSuccess": "導出成功です",
         "equipmentNo": "機器番号",
         "equipmentName": "機器名",
         "tradeName": "商品名",
@@ -933,6 +941,7 @@
         "onlinePayment": "オンライン決済",
         "offlinePayment": "オフライン決済",
         "paymentSucceeded": "支払い成功",
+        "noOrderData": "註文データは空です",
         "unpaid": "未払い",
         "paid": "支払済み",
         "refundInProgress": "払い戻し中",
@@ -954,7 +963,10 @@
         "orderNoPlaceholder": "注文番号を入力",
         "orderSerialNumberLabel": "注文のシリアルナンバー",
         "orderSerialNumberPlaceholder": "注文のシリアルナンバーを入力",
-        "equipmentNoPlaceholder": "機器番号を入力",
+        "equipmentNoPlaceholder": "全ての機器番号の入力をお願いします。",
+        "searchCriteria": "検索条件をお願いします。",
+        "searchDate": "註文期日指定を入力してください,半年以内です",
+        "searchDateTips": "期間はせいぜい半年以内です",
         "orderDate": "注文日",
         "startTime": "開始時間",
         "to": "まで",

+ 13 - 1
src/assets/language/zh.json

@@ -371,7 +371,10 @@
     "enableMaterialFailed": "发送失败",
     "Succeed": "请求发送成功",
     "Failed": "请求发送失败",
+    "changeSleep": "是否切换睡眠状态?",
+    "changeSleepSuccess": "切换成功",
     "sleepSuccessfully": "睡眠成功",
+    "isReplenishment": "是否需要补料?",
     "open": "开启",
     "close": "关闭",
     "success": "成功",
@@ -551,6 +554,7 @@
     "equipLocation": "设备位置",
     "position": "定位",
     "viewPositioning": "查看定位",
+    "restartAndroid": "重启触摸屏",
     "view": "查看",
     "oneKeyFeed": "一键补料",
     "replenishment": "补料",
@@ -912,7 +916,11 @@
     "productNum": "销售量",
     "numberOfOrders": "订单数",
     "orderDetails": "订单明细",
+    "total": "共 ",
+    "records": "条记录",
     "exportToExcel": "导出 excel",
+    "exportTips": "订单数量已超过30000条,请分批导出",
+    "exportSuccess": "导出成功",
     "equipmentNo": "设备编号",
     "equipmentName": "设备名称",
     "tradeName": "商品名称",
@@ -930,6 +938,7 @@
     "onlinePayment": "线上支付",
     "offlinePayment": "线下支付",
     "paymentSucceeded": "支付成功",
+    "noOrderData": "数据为空",
     "unpaid": "未支付",
     "paid": "已支付",
     "refundInProgress": "退款中",
@@ -952,7 +961,10 @@
     "refundTime": "退款时间",
     "orderSerialNumberLabel": "商户单号",
     "orderSerialNumberPlaceholder": "请输入商户单号",
-    "equipmentNoPlaceholder": "请输入设备编号",
+    "equipmentNoPlaceholder": "请输入完整的设备编号",
+    "searchCriteria": "请输入搜索条件",
+    "searchDate": "请输入指定订单日期,不超过半年",
+    "searchDateTips": "时间最多不超过半年",
     "orderDate": "订单日期",
     "startTime": "开始时间",
     "to": "至",

+ 5 - 0
src/service/device/index.js

@@ -215,4 +215,9 @@ export function uploadLog(params) {
 // 查询日志
 export function queryLog(params) {
     return axios.get(`/SZWL-SERVER/tEquipment/queryLog?${stringToUrl(params)}`);
+}
+
+// 重启触摸屏
+export function restartScreen(params) {
+    return axios.get(`/SZWL-SERVER/tEquipment/openScreen`, { params })
 }

+ 5 - 0
src/service/order/index.js

@@ -33,3 +33,8 @@ export function Api_getOnlineExport(params) {
 export function updateIsInvoice(params) {
   return axios.get(`/ORDER-SERVER/tOrder/updateIsInvoice?${stringToUrl(params)}`);
 }
+
+// 订单数据导出
+export function exportOrder(params) {
+  return axios.post(`/ORDER-SERVER/tOrder/newOrderExport`, params ,{responseType:'blob'});
+}

+ 16 - 15
src/styles/orderCenter/index.less

@@ -4,14 +4,14 @@
     height: calc(100% - 44px);
     overflow: auto;
     overflow-x: hidden;
-    background-color: #f5f5f5;
+    background-color: #ffffff;
 
     .main3 {
       // width: 100%;
       height: 54px;
       background: rgba(255, 255, 255, 1) url("../../assets/home/line.png") bottom center no-repeat;
       background-size: 100% auto;
-      background-color: #f5f5f5;
+      background-color: #ffffff;
 
       .group4 {
         width: 100%;
@@ -213,6 +213,7 @@
       width: 100%;
       background: rgba(255, 255, 255, 1) url("../../assets/home/line.png") bottom center no-repeat;
       background-color: #fff;
+      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
 
 
       .main9 {
@@ -312,19 +313,18 @@
 
           .section5 {
             width: 100%;
-            height: 150px;
+            height: 160px;
             position: relative;
-            padding: 2.5px 10px;
-            background-color: #f5f5f5;
+            padding: 5px 10px;
+            background-color: #ffffff;
 
             .van-card {
-              height: 140px;
-              background-color: #ffff;
+              height: 145px;
+              // background-color: #ffff;
               display: flex;
               align-items: center;
               border-radius: 20px;
-              box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-
+              box-shadow: 2px 4px 5px 2px rgba(0, 0, 0, 0.1);
             }
 
             .van-card__thumb {
@@ -1032,13 +1032,14 @@
         }
 
         .layer3 {
-          width: 300px;
-          height: 18px;
-          margin: 8px 0 0 15px;
+          // width: 300px;
+          // height: 18px;
+          padding: 0 10px;
           // overflow: auto;
+          margin-top: 10px;
 
           .word2 {
-            width: 90px;
+            width: 100px;
             height: 14px;
             overflow-wrap: break-word;
             color: rgba(135, 135, 166, 1);
@@ -1050,12 +1051,12 @@
           }
 
           .info3 {
-            width: 230px;
+            width: 200px;
             height: 18px;
             overflow-wrap: break-word;
             color: rgba(64, 77, 116, 1);
             font-size: 13px;
-            text-align: left;
+            text-align: right;
             text-overflow: ellipsis;
             white-space: nowrap;
             overflow: hidden;

+ 34 - 9
src/views/device/deviceOper.vue

@@ -20,7 +20,7 @@
           <img class="operImg" src="../../assets/device/operIcon/restart.png" />
         </div>
         <div v-if="device.machineType === '0' || device.machineType === null" class="operText">{{
-          $t("device.restartFurnaceHead") }}</div>
+    $t("device.restartFurnaceHead") }}</div>
         <div v-else class="operText">{{ $t("device.restart") }}</div>
       </div>
       <!-- 睡眠 -->
@@ -36,7 +36,7 @@
           <img class="operImg" src="../../assets/device/operIcon/onOff.png" />
         </div>
         <div v-if="device.machineType === '0' || device.machineType === null" class="operText">{{
-          $t("device.openFurnHead") }}</div>
+    $t("device.openFurnHead") }}</div>
         <div v-else class="operText">{{ $t("device.openDevice") }}</div>
       </div>
       <!-- 关闭炉头/设备 -->
@@ -45,7 +45,7 @@
           <img class="operImg" src="../../assets/device/operIcon/onOff.png" />
         </div>
         <div v-if="device.machineType === '0' || device.machineType === null" class="operText">{{
-          $t("device.closeFurnHead") }}</div>
+    $t("device.closeFurnHead") }}</div>
         <div v-else class="operText">{{ $t("device.closeDevice") }}</div>
       </div>
       <!--     <div class="operItem" @click="openDoorFun()">
@@ -70,7 +70,7 @@
           <img class="operImg" src="../../assets/device/operIcon/doSugar.png" />
         </div>
         <div v-if="device.machineType === '0' || device.machineType === null" class="operText">{{
-          $t("device.remoteSugarMaking") }}</div>
+    $t("device.remoteSugarMaking") }}</div>
         <div v-else class="operText">{{ $t("device.remoteProduction") }}</div>
       </div>
       <!-- 定时开关 -->
@@ -93,7 +93,7 @@
         </div>
         <div class="operText">{{ $t("device.equipmentRecharge") }}</div>
       </div> -->
-      <div class="operItem" @click="paramSetPush()" v-if="device.equimentType != 'SI320'">
+      <div class="operItem" @click="paramSetPush()" v-if="device.equimentType != 'SI320' && device.machineType === '0'">
         <div class="operIcon">
           <img class="operImg" src="../../assets/device/operIcon/paramsSet.png" />
         </div>
@@ -170,6 +170,13 @@
         </div>
         <div class="operText">{{ $t("device.customLogo.customLogo") }}</div>
       </div>
+      <!-- 远程重启触摸屏 -->
+      <div v-if="device.machineType != '2'" class="operItem" @click="restartAndroid()">
+        <div class="operIcon">
+          <img class="operImg" src="../../assets/device/operIcon/restartAndroid.png" />
+        </div>
+        <div class="operText">{{ $t("device.restartAndroid") }}</div>
+      </div>
       <!-- 查看定位 -->
       <!-- <div class="operItem" @click="viewPosiClk()">
         <div class="operIcon">
@@ -185,8 +192,8 @@
     <div class="operCheckBox">
       <div class="block5 flex-col"></div>
       <span class="word10">{{
-        $t("device.pleaseConfirmAgainWhetherToOperate")
-      }}</span>
+    $t("device.pleaseConfirmAgainWhetherToOperate")
+  }}</span>
       <div class="block6 flex-row justify-between">
         <div class="mod7 flex-col" @click="operCheckClear()">
           <span class="info5">{{ $t("device.IllThinkAboutItAgain") }}</span>
@@ -208,7 +215,8 @@ import {
   openDoor,
   deviceTuoji,
   delOneDevice,
-  enableMaterial
+  enableMaterial,
+  restartScreen,
 } from "../../service/device";
 import { showFailToast, showSuccessToast } from "vant";
 import { useRouter } from "vue-router";
@@ -372,6 +380,10 @@ export default {
       operType.value = 7;
       operCheckShow.value = true;
     };
+    const restartAndroid = () => {
+      operType.value = 9;
+      operCheckShow.value = true;
+    };
     // 取消操作
     const operCheckClear = () => {
       operCheckShow.value = false;
@@ -464,7 +476,7 @@ export default {
       }
       // 启用物料监控
       if (operType.value === 7) {
-        
+
         let materialMonitorStatus = 0; // 0默认是未开启
         // isMaterialUse是1时,物料监控已启用,按钮是关闭功能
         if (device.value.isMaterialUse === "1") {
@@ -481,6 +493,18 @@ export default {
           showFailToast(t("device.enableMaterialFailed"));
         }
       }
+      // 重启触摸屏
+      if (operType.value === 9) {
+        const { data } = await restartScreen({
+          equipmentId: device.value.id,
+        });
+        if (data.code === '00000') {
+          showSuccessToast(t("device.Succeed"));
+          operCheckShow.value = false;
+        } else {
+          showFailToast(t("device.Failed"));
+        }
+      }
       setTimeout(() => {
         // 关闭弹窗
         show.value = false;
@@ -521,6 +545,7 @@ export default {
       materialTitle,
       viewLogs,
       deleteDevice,
+      restartAndroid,
       // viewPosiClk,
       changePasswordClk,
       sleepIcon,

+ 6 - 15
src/views/device/index.vue

@@ -71,26 +71,17 @@
                     </div>
                   </div>
                   <div v-if="item.hasTodayAlarm" :class="{ 'flash-icon': showAlert }" class="box4 o-mr-5"></div>
-                  <div v-if="!item.hasTodayAlarm" class="layer2 o-mr-5" :class="{
-        deviceOn: item.eqeStatus === 1,
-        layerLeft: item.hasTodayAlarm,
-      }"></div>
+                  <div v-if="!item.hasTodayAlarm" class="layer2 o-mr-5" 
+                  :class="{ deviceOn: item.eqeStatus === 1, layerLeft: item.hasTodayAlarm,}">
+                  </div>
                 </div>
-                <span class="txt1 o-mt-10">{{ $t("device.affiliatedMerchants") }}:{{
-        item.adminUserName
-      }}</span>
-                <span class="txt1 o-mt-10">{{ $t("device.machineUniqueCode") }}:{{
-        item.clientId
-      }}</span>
+                <span class="txt1 o-mt-10">{{ $t("device.affiliatedMerchants") }}:{{ item.adminUserName }}</span>
+                <span class="txt1 o-mt-10">{{ $t("device.machineUniqueCode") }}:{{ item.clientId }}</span>
                 <img v-if="item.checkType" class="pic1" referrerpolicy="no-referrer" src="../../assets/home/line.png" />
                 <div class="contentBottomCon" v-if="item.checkType">
                   <!-- 睡眠状态 -->
                   <div class="contentWord kBordBott">
-                    <span class="">{{ $t("device.sleepState") }}:{{
-        item.isSleep
-          ? $t("device.sleeping")
-          : $t("device.notSleeping")
-      }}</span>
+                    <span class="">{{ $t("device.sleepState") }}:{{ item.isSleep ? $t("device.sleeping"): $t("device.notSleeping")}}</span>
                   </div>
                   <div v-if="item.isSleep" class="contentWord kBordBott">
                     <span class="">{{ $t("device.sleepDesc") }}:</span>

+ 56 - 32
src/views/orderCenter/index.vue

@@ -23,7 +23,7 @@
             </div>
           </div>
         </div>
-        <img class="img1" referrerpolicy="no-referrer" src="@/assets/line.png" />
+        <!-- <img class="img1" referrerpolicy="no-referrer" src="@/assets/line.png" /> -->
         <dateSelectList @update="update($event)"></dateSelectList>
         <typeSelectList @upselectdata="upselectdata($event)"></typeSelectList>
         <div v-if="!noData(salesVolume, salesNumber, orderNumber)" class="o-plr-8 o-pt-15">
@@ -55,9 +55,8 @@
           </div>
         </div>
         <kNoData v-else></kNoData>
-        <div class="o-mt-5" style="height: 10px; background: #f5f5f5"></div>
         <!-- 时间 -->
-        <div class="c-text-c c-text-18">
+        <div class="c-text-c c-text-18 o-ptb-5"  v-if="searchParams.startDate != '' || searchParams.endDate != ''">
           {{ Format_time(searchParams.startDate, 'YYYY-MM-DD') }}--{{ Format_time(searchParams.endDate, 'YYYY-MM-DD') }}
         </div>
         <div class="group7 flex-col justify-center">
@@ -67,7 +66,11 @@
                 <div class="mod5 flex-row justify-between">
                   <div class="block3 flex-col"></div>
                   <div class="TextGroup7 flex-col">
-                    <span class="info3">{{ $t('orderCenter.orderDetails') }}</span>
+                    <span class="info3">
+                      {{ $t('orderCenter.total') }}
+                      <span style="color: #df5e4c; font-size: 18px;">{{ total }}</span>
+                      {{ $t('orderCenter.records')}}
+                    </span>
                   </div>
                 </div>
               </div>
@@ -138,7 +141,7 @@
     <!-- 搜索弹出框 -->
     <orderSearch ref="searchRef" @search="search($event)"></orderSearch>
     <!-- 退款弹窗 -->
-    <van-popup v-model:show="refundType" position="bottom" round>
+    <van-popup v-model:show="refundType" position="bottom" round closeable>
       <div class="refundBox flex-col">
         <div class="section1 flex-col">
           <div class="group3 flex-col">
@@ -167,33 +170,33 @@
               <span class="word2">{{ $t('orderCenter.commodity') }}</span>
               <span class="info3">{{ refundObject.productName }}</span>
             </div>
-            <div class="layer4 flex-row justify-between">
-              <span class="word3">{{ $t('orderCenter.distribution') }}</span>
-              <span class="word4">{{ showSubcom(refundObject) }}</span>
+            <div class="layer3 flex-row justify-between">
+              <span class="word2">{{ $t('orderCenter.distribution') }}</span>
+              <span class="info3">{{ showSubcom(refundObject) }}</span>
             </div>
-            <div class="layer4 flex-row justify-between">
-              <span class="word3">{{ $t('orderCenter.equipmentNo') }}</span>
-              <span class="word4">{{ refundObject.clientId }}</span>
+            <div class="layer3 flex-row justify-between">
+              <span class="word2">{{ $t('orderCenter.equipmentNo') }}</span>
+              <span class="info3">{{ refundObject.clientId }}</span>
             </div>
-            <div class="layer5 flex-row justify-between">
-              <span class="txt7">{{ $t('orderCenter.state') }}</span>
-              <span class="word5">{{ showStatus(refundObject) }}</span>
+            <div class="layer3 flex-row justify-between">
+              <span class="word2">{{ $t('orderCenter.state') }}</span>
+              <span class="info3">{{ showStatus(refundObject) }}</span>
             </div>
-            <div class="layer6 flex-row justify-between">
-              <span class="word6">{{ $t('orderCenter.paymentMethod') }}</span>
-              <span class="word7">{{ showPayType(refundObject) }}</span>
+            <div class="layer3 flex-row justify-between">
+              <span class="word2">{{ $t('orderCenter.paymentMethod') }}</span>
+              <span class="info3">{{ showPayType(refundObject) }}</span>
             </div>
-            <div class="layer6 flex-row justify-between">
-              <span class="word6">{{ refundObject.status === 1? $t('orderCenter.paymentTime') : refundObject.status === 3? $t('orderCenter.refundTime') : $t('orderCenter.creationTime') }}</span>
-              <span class="word7">{{ showOrderTime(refundObject, 1) }}</span>
+            <div class="layer3 flex-row justify-between">
+              <span class="word2">{{ refundObject.status === 1? $t('orderCenter.paymentTime') : refundObject.status === 3? $t('orderCenter.refundTime') : $t('orderCenter.creationTime') }}</span>
+              <span class="info3">{{ showOrderTime(refundObject, 1) }}</span>
             </div>
-            <div v-if="refundObject.status === 3" class="layer7 flex-row justify-between">
-              <span class="word8">{{ $t('orderCenter.refunded') }}</span>
-              <span class="info4">{{ refundObject.refundAmount }}</span>
+            <div v-if="refundObject.status === 3" class="layer3 flex-row justify-between">
+              <span class="word2">{{ $t('orderCenter.refunded') }}</span>
+              <span class="info3">{{ refundObject.refundAmount }}</span>
             </div>
-            <div v-if="refundObject.status === 3 && orderType == '3'" class="layer7 flex-row justify-between">
-              <span class="word8">退款原因</span>
-              <span class="info4">{{ refundObject.refundReason }}</span>
+            <div v-if="refundObject.status === 3 && orderType == '3'" class="layer3 flex-row justify-between">
+              <span class="word2">退款原因</span>
+              <span class="info3">{{ refundObject.refundReason }}</span>
             </div>
             <div class="layer6 flex-row justify-between l-flex-center"
               v-if="(refundObject.status != 0 && refundObject.status != 2) && orderType == '3'">
@@ -247,18 +250,18 @@
   </div>
 </template>
 <script>
-import { Api_getOnlineExport } from "../../service/order";
+// import { Api_getOnlineExport } from "../../service/order";
 // 导入接口
 import { getAdminMch } from "../../service/merchantManage";
 // 导入弹窗
 import kDialog from "../../components/commom/kDialog/index.vue";
 // 导入无数据组件
-import { showDialog, showConfirmDialog } from 'vant';
+import { showDialog, showConfirmDialog, showSuccessToast } from 'vant';
 import kNoData from "../../components/commom/kNoData/index.vue";
 import { onMounted, reactive, ref } from "vue";
 import sHeader from "../../components/SimpleHeader";
 import orderSearch from "./orderSearch.vue";
-import { getOrderList, refundOrder, refundWechatOrder, updateIsInvoice } from "../../service/order/index";
+import { getOrderList, refundOrder, refundWechatOrder, updateIsInvoice, exportOrder } from "../../service/order/index";
 import { showFailToast, showToast, showLoadingToast } from "vant";
 import { getLoginUser, $M_IsDate, Format_time, $M_ExportFile, styleUrl } from "../../common/js/utils";
 import { getHuifuId } from "../../service/huifuMch/index";
@@ -275,6 +278,8 @@ export default {
     const kDialogRef = ref(null);
     // 订单明细
     const orderDetails = ref([]);
+    // 订单总数
+    const total = ref(0);
     // 退款商品选择状态
     const isChecked = ref([]);
     // 全选状态
@@ -571,6 +576,7 @@ export default {
           finished.value = true;
         } else {
           // orderTotal.value = data.data.total;
+          total.value = data.data.total;
           if (params.current === 1) {
             orderList.value = [];
             orderTotal.value = 0;
@@ -599,7 +605,9 @@ export default {
         loading.value = false;
       } else {
         // error.value = true;
-        showFailToast("数据加载失败");
+        showToast(t('orderCenter.noOrderData'));
+        finished.value = true;
+        loading.value = false;
       }
     };
     // 搜索表单点击
@@ -676,6 +684,10 @@ export default {
 
     // 跳转订单导出
     const gotoOrderExcel = async () => {
+      if (total.value > 30000) {
+        showToast(t('orderCenter.exportTips'));
+        return;
+      }
       if (searchParams.type == null || searchParams.type == '') {
         searchParams.type = user.ifForeign;
       }
@@ -685,10 +697,21 @@ export default {
         duration: 0,
       });
       try {
-        const { headers, data } = await Api_getOnlineExport(searchParams);
+        // const { headers, data } = await Api_getOnlineExport(searchParams);
+        const { headers, data, status } = await exportOrder(searchParams);
         // 请求完成后隐藏加载框
-        downloadOrder.close();
+        // downloadOrder.close();
         $M_ExportFile(data, headers);
+        if (status == 200) {
+          downloadOrder.close();
+          showSuccessToast({
+            message: t('orderCenter.exportSuccess'),
+            forbidClick: true,
+            duration: 2000,
+          });
+        } else {
+          downloadOrder.close();
+        }
         // 处理返回的数据
       } catch (error) {
         // 请求发生错误时隐藏加载框
@@ -892,6 +915,7 @@ export default {
       orderType,
       isInvoice,
       updateInvoice,
+      total,
     };
   },
 };

+ 18 - 1
src/views/orderCenter/orderSearch.vue

@@ -52,9 +52,11 @@
 import { ref } from 'vue';
 // import dateUtil from "@/utils/dateUtil";
 import { showToast } from 'vant';
+import { useI18n } from "vue-i18n";
 export default {
   name: 'orderSearch',
   setup(prop, context) {
+    const { t } = useI18n();
     const sheetShow = ref(false);
     const startDateShow = ref(false);
     const endDateShow = ref(false);
@@ -101,10 +103,25 @@ export default {
         //   Toast("请输入正确时间");
         //   return;
         // } else {
-          showToast("请输入搜索条件");
+        showToast(t('orderCenter.searchCriteria'));
         return;
         // }
       }
+      if (clientId.value != '' || userName.value != '') {
+        if (startTime.value == '' || endTime.value == '') {
+          showToast(t('orderCenter.searchDate'));
+          return;
+        } else {
+          let start = new Date(startTime.value);
+          let end = new Date(endTime.value);
+          let diff = (end - start) / 1000 / 60 / 60 / 24;
+          if (diff > 180) {
+            showToast(t('orderCenter.searchDateTips'));
+            return;
+          }
+        }
+
+      }
       const searchParam = {
         userName: userName.value,
         sn: sn.value,

+ 11 - 0
src/views/settlement/index.vue

@@ -703,6 +703,7 @@ export default {
       huifuParams.areaId = selectedOptions[1]?.value || '';
       huifuParams.districtId = selectedOptions[2]?.value || '';
       huifuParams.detailAddr = addParams.manageAddr;
+      fieldUpdate();
     };
     const onConfirmBankAddress = ({ selectedOptions }) => {
       showBankAddress.value = false;
@@ -710,6 +711,7 @@ export default {
         + selectedOptions[1]?.text;
       huifuParams.cardProvId = selectedOptions[0]?.value || '';
       huifuParams.cardAreaId = selectedOptions[1]?.value || '';
+      fieldUpdate();
     };
     const onConfirmReAddress = ({ selectedOptions }) => {
       showReAddress.value = false;
@@ -719,6 +721,7 @@ export default {
       huifuParams.regAreaId = selectedOptions[1]?.value || '';
       huifuParams.regDistrictId = selectedOptions[2]?.value || '';
       huifuParams.regDetail = addParams.registeredAddress;
+      fieldUpdate();
     };
     onMounted(async () => {
       styleUrl('joinpayMch');
@@ -885,12 +888,19 @@ export default {
     // 记忆表单
     const memoryForm = () => {
       const formDataString = localStorage.getItem('joinPayMchForm');
+      const scHuifuMchFormData = localStorage.getItem('scHuifuMchForm');
       if (formDataString) {
         const formData = JSON.parse(formDataString);
         Object.keys(formData).forEach(key => {
           addParams[key] = formData[key];
         });
       }
+      if (scHuifuMchFormData) {
+        const huifuFormData = JSON.parse(scHuifuMchFormData);
+        Object.keys(huifuFormData).forEach(key => {
+          huifuParams[key] = huifuFormData[key];
+        });
+      }
     };
     // 发送验证码
     const sendCode = async () => {
@@ -1106,6 +1116,7 @@ export default {
       }
       if (isMemoryFormType) {
         localStorage.setItem('joinPayMchForm', JSON.stringify(addParams));
+        localStorage.setItem("scHuifuMchForm", JSON.stringify(huifuParams));
       }
     };
     // 图片上传状态,0:未上传 1:已上传

+ 4 - 3
vue.config.js

@@ -1,3 +1,4 @@
+const version = new Date().getTime();
 module.exports = {
   outputDir: 'sc',
   publicPath: "/sc",
@@ -5,11 +6,11 @@ module.exports = {
   css: {
     extract: false
   },
-  filenameHashing: true,
+  filenameHashing: false,
   configureWebpack: {
     output: {
-      filename: '[name].[hash].js',
-      chunkFilename: '[id].[hash].chunk.js'
+      filename: `js/[name].${version}.js`,
+      chunkFilename: `js/[name].${version}.js`
     }
   },
   devServer: {