소스 검색

feat:"优化订单明细搜索功能"

soobin 8 달 전
부모
커밋
b72c1cc57a

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

@@ -1000,11 +1000,12 @@
     "orderNoPlaceholder": "Please enter the order number",
     "orderSerialNumberLabel": "Order serial number",
     "orderSerialNumberPlaceholder": "Please enter the order serial number",
-    "equipmentNoPlaceholder": "Please enter the full Machine number",
+    "equipmentNoPlaceholder": "Please enter the 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",
+    "orderDatePlaceholder": "Click to select a date range",
     "startTime": "start time",
     "to": "to",
     "endTime": "End time",

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

@@ -1001,11 +1001,12 @@
         "orderNoPlaceholder": "注文番号を入力",
         "orderSerialNumberLabel": "注文のシリアルナンバー",
         "orderSerialNumberPlaceholder": "注文のシリアルナンバーを入力",
-        "equipmentNoPlaceholder": "全ての機器番号の入力をお願いします。",
+        "equipmentNoPlaceholder": "機械番号を入力してください",
         "searchCriteria": "検索条件をお願いします。",
         "searchDate": "註文期日指定を入力してください,半年以内です",
         "searchDateTips": "期間はせいぜい半年以内です",
         "orderDate": "注文日",
+        "orderDatePlaceholder": "をクリックして日付範囲を選択します",
         "startTime": "開始時間",
         "to": "まで",
         "endTime": "終了時間",

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

@@ -1031,11 +1031,12 @@
     "orderNoPlaceholder": "请输入订单编号",
     "orderSerialNumberLabel": "商户单号",
     "orderSerialNumberPlaceholder": "请输入商户单号",
-    "equipmentNoPlaceholder": "请输入完整的设备编号",
+    "equipmentNoPlaceholder": "请输入设备编号",
     "searchCriteria": "请输入搜索条件",
-    "searchDate": "请输入指定订单日期,不超过半年",
+    "searchDate": "请输入订单日期范围",
     "searchDateTips": "时间最多不超过半年",
     "orderDate": "订单日期",
+    "orderDatePlaceholder": "点击选择日期范围",
     "startTime": "开始时间",
     "to": "至",
     "endTime": "结束时间",

+ 1 - 1
src/components/dateOrderList/index.vue

@@ -16,7 +16,7 @@
         </div>
         <!-- 日期选择 -->
         <van-calendar color="#4d6add" v-model:show="calendarShow" type="range" :show-confirm="false"
-          :allow-same-day="true" :min-date="minDate" @confirm="calendarConfirm" />
+          :allow-same-day="true" :min-date="minDate" :max-date="maxDate" @confirm="calendarConfirm" />
         <!-- 选择统计类型 -->
         <van-popup v-model:show="timeTypeShow" position="bottom">
           <van-picker :title="$t('dateSelectList.timeType')" :columns="timeTypeList" @confirm="timeTypeConfirm"

+ 2 - 12
src/components/dateSelectList/index.vue

@@ -15,8 +15,8 @@
           <div class="block3 flex-col"></div>
         </div>
         <!-- 日期选择 -->
-        <van-calendar color="#4d6add" v-model:show="calendarShow" type="range" :show-confirm="false"
-          :allow-same-day="true" :min-date="minDate" @confirm="calendarConfirm" />
+        <van-calendar color="#4d6add" v-model:show="calendarShow" type="range" :show-confirm="false" :max-range="31"
+          :allow-same-day="true" :min-date="minDate" :max-date="maxDate" @confirm="calendarConfirm" />
         <!-- 选择统计类型 -->
         <van-popup v-model:show="timeTypeShow" position="bottom">
           <van-picker :title="$t('dateSelectList.timeType')" :columns="timeTypeList" @confirm="timeTypeConfirm"
@@ -133,16 +133,6 @@ export default {
       }
       // 其他时间
       if (timeType.value === "4") {
-
-        // const diffDate = Math.abs(firstday - lastday);
-        // const totalDays = Math.floor(diffDate / (1000 * 3600 * 24));
-        // if (totalDays === 0) {
-        //   params.chartType = "day";
-        // } else if (dateUtil.isSameWeek(calendarDate[0], calendarDate[1])) {
-        //   params.chartType = "week";
-        // } else {
-        //   params.chartType = "month";
-        // }
         let startTime = null;
         let endTime = null;
         if (chartType.value == '1') {

+ 0 - 3
src/components/typeDownMenu/index.vue

@@ -202,9 +202,6 @@ export default {
         adminList.value = data.data.map(item => {
           return { text: item.username, value: item.id, ifForeign: item.ifForeign }
         });
-        console.log("adminList",adminList.value)
-        // adminList.value.unshift({ text: t('typeSelectList.allSuboUsers'), value: 'all' });
-        // adminList.value.unshift({ text: t('typeSelectList.thisMerchant'), value: 'this' });
       }
     }
     // 选择商户

+ 77 - 41
src/views/orderCenter/orderSearch.vue

@@ -12,8 +12,7 @@
             :placeholder="$t('orderCenter.orderSerialNumberPlaceholder')" />
           <van-field v-model="clientId" name="clientId" :label="$t('orderCenter.equipmentNo')"
             :placeholder="$t('orderCenter.equipmentNoPlaceholder')" />
-
-          <div class="van-cell van-field">
+          <!-- <div class="van-cell van-field">
             <div class="van-cell__title van-field__label">
               <label id="van-field-4-label" for="van-field-4-input">{{ $t('orderCenter.orderDate') }}</label>
             </div>
@@ -26,10 +25,13 @@
                   style="text-align: center; width: 50%;" v-model="endTime" @click="endTimeClick()" />
               </div>
             </div>
-          </div>
-
+          </div> -->
+          <van-field v-model="queryDateValue" is-link readonly :label="$t('orderCenter.orderDate')"
+            :placeholder="$t('orderCenter.orderDatePlaceholder')" @click="showOrderDate = true" />
           <!-- 操作 -->
-          <van-row justify="space-around" style="padding: 1em;">
+          <van-row justify="space-around" style="padding: 2em;">
+            <van-button class="clearBtn" span="5" round plain type="primary" style="height: 2em; padding: 0 2em;"
+              @click="registerClick">{{ $t('device.emptyingConditions') }}</van-button>
             <van-button span="5" round type="primary" style="height: 2em; padding: 0 2em;" native-type="submit">
               {{ $t('orderCenter.clickSearch') }}
             </van-button>
@@ -38,29 +40,24 @@
       </div>
     </van-popup>
     <van-popup v-model:show="startDateShow" position="bottom">
-      <van-date-picker :title="$t('orderCenter.selectFullTime')" @confirm="startDateConFirm($event)"
-        @cancel="startDateCancel()" :min-date="minDate" :max-date="maxDate" />
+      <van-date-picker v-model="startDateValue" :title="$t('orderCenter.selectFullTime')"
+        @confirm="startDateConFirm($event)" @cancel="startDateCancel()" :min-date="minDate" :max-date="maxDate" />
     </van-popup>
-    <!-- <van-popup v-model:show="startDateShow" round position="bottom">
-      <van-datetime-picker type="datehour" :title="$t('orderCenter.selectFullTime')" @confirm="startDateConFirm($event)"
-        @cancel="startDateCancel()" :min-date="minDate" :max-date="maxDate" />
-    </van-popup> -->
     <van-popup v-model:show="endDateShow" position="bottom">
-      <van-date-picker :title="$t('orderCenter.selectFullTime')" @confirm="endDateConFirm($event)"
-        @cancel="endDateCancel()" :min-date="minDate" :max-date="maxDate" />
+      <van-date-picker v-model="endDateValue" :title="$t('orderCenter.selectFullTime')"
+        @confirm="endDateConFirm($event)" @cancel="endDateCancel()" :min-date="minDate" :max-date="maxDate" />
     </van-popup>
-    <!-- <van-popup v-model:show="endDateShow" round position="bottom">
-      <van-datetime-picker type="datehour" :title="$t('orderCenter.selectFullTime')" @confirm="endDateConFirm($event)"
-        @cancel="endDateCancel()" :min-date="minDate" :max-date="maxDate" />
-    </van-popup> -->
+    <van-calendar color="#4d6add" v-model:show="showOrderDate" @confirm="calendarConfirm" type="range"
+      :show-confirm="false" :allow-same-day="true" :min-date="minDate" :max-date="maxDate" :max-range="31" />
   </div>
 </template>
 
 <script>
 import { ref } from 'vue';
-// import dateUtil from "@/utils/dateUtil";
 import { showToast } from 'vant';
 import { useI18n } from "vue-i18n";
+import dateUtil from "@/utils/dateUtil";
+
 export default {
   name: 'orderSearch',
   setup(prop, context) {
@@ -71,6 +68,31 @@ export default {
     const minDate = new Date(2022, 0, 1);
     const maxDate = new Date();
 
+    // 创建一个Date对象,表示当前时间
+    const dateTime = new Date();
+    // 获取当前时间的年份
+    const currentYear = dateTime.getFullYear();
+    // 获取当前时间的月份(注意,月份是从0开始的,所以要加1)
+    const currentMonth = dateTime.getMonth() + 1;
+    // 获取当前时间的日期
+    const currentDate = dateTime.getDate();
+    const startDateValue = ref([currentYear, currentMonth, currentDate])
+    const endDateValue = ref([currentYear, currentMonth, currentDate])
+
+    // 订单日期弹窗显示
+    const showOrderDate = ref(false);
+    // 订单日期弹窗确认
+    const calendarConfirm = (value) => {
+      showOrderDate.value = false;
+      queryDateValue.value = dateUtil.formateDate(value[0], "yyyy/MM/dd") + "——" + dateUtil.formateDate(value[1], "yyyy/MM/dd");
+      startDate.value = dateUtil.formateDate(value[0], "yyyy-MM-dd") + " 00:00:00";
+      endDate.value = dateUtil.formateDate(value[1], "yyyy-MM-dd") + " 23:59:59";
+
+      console.log(startDate, endDate);
+    }
+
+
+    const queryDateValue = ref(''); // 订单时间
     const userName = ref(''); // 用户名
     const sn = ref(''); // 订单编号
     const trxNo = ref(''); // 订单流水号
@@ -105,35 +127,26 @@ export default {
     }
     // 提交搜索表单触发搜索
     const onSubmit = () => {
-      console.log('startTime.value', startTime.value)
-      if (userName.value == '' && sn.value == '' && trxNo.value == '' && clientId.value == '' && startTime.value == '' && endTime.value == '') {
-        // if (startTime.value != '' || endTime.value != '') {
-        //   Toast("请输入正确时间");
-        //   return;
-        // } else {
+      if (userName.value == '' && sn.value == '' && trxNo.value == '' && clientId.value == '') {
         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 > 30) {
-            showToast(t('orderCenter.searchDateTips'));
-            return;
-          }
-        }
-
+      if (queryDateValue.value == '') {
+        showToast(t('orderCenter.searchDate'));
+        return;
       }
-      // else {
+      // if (clientId.value != '' || userName.value != '') {
       //   if (startTime.value == '' || endTime.value == '') {
-      //     showToast("请输入指定订单日期");
+      //     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 > 30) {
+      //       showToast(t('orderCenter.searchDateTips'));
+      //       return;
+      //     }
       //   }
       // }
       const searchParam = {
@@ -148,6 +161,17 @@ export default {
       sheetShow.value = false;
     }
 
+    // 清空条件
+    const registerClick = () => {
+      userName.value = '';
+      sn.value = '';
+      trxNo.value = '';
+      clientId.value = '';
+      startDate.value = '';
+      endDate.value = '';
+      queryDateValue.value = '';
+    };
+
     return {
       sheetShow,
       startDateShow,
@@ -172,6 +196,13 @@ export default {
       startTime,
       endTime,
       maxDate,
+      startDateValue,
+      endDateValue,
+
+      showOrderDate,
+      calendarConfirm,
+      queryDateValue,
+      registerClick
     };
   },
   components: {},
@@ -182,6 +213,11 @@ export default {
 .orderSearch {
   width: 100%;
 
+  .clearBtn {
+    border-color: #4d6add;
+    background-color: #fff;
+  }
+
   :deep(.orderSearchPopup) {
     width: 90%;
   }

+ 7 - 5
src/views/robotRanking.vue

@@ -139,18 +139,18 @@
         @cancel="companyTypeShow = false" />
     </van-popup>
     <!-- 日的日期选择弹窗 -->
-    <van-calendar @confirm="calendarDayConfirm" v-model:show="dayShow" color="#4d6add" :min-date="minDate"
+    <van-calendar @confirm="calendarDayConfirm" v-model:show="dayShow" color="#4d6add" :min-date="minDate" :max-date="maxDate"
       :show-confirm="false" />
     <!-- 周的日期选择弹窗 -->
     <van-calendar @confirm="(e) => {
       calendarWeekOrMonConfirm(e, 1);
     }
-      " v-model:show="weekShow" :allow-same-day="true" color="#4d6add" :min-date="minDate" type="range" />
+      " v-model:show="weekShow" :allow-same-day="true" color="#4d6add" :min-date="minDate" :max-date="maxDate" type="range" />
     <!-- 月的日期选择弹窗 -->
     <van-calendar @confirm="(e) => {
       calendarWeekOrMonConfirm(e, 2);
     }
-      " v-model:show="monthShow" :allow-same-day="true" color="#4d6add" :min-date="minDate" type="range" />
+      " v-model:show="monthShow" :allow-same-day="true" color="#4d6add" :min-date="minDate" :max-date="maxDate" type="range" />
     <!-- 年的日期选择弹窗 -->
     <van-popup v-model:show="yearShow" position="bottom">
       <van-picker :title="$t('robotRanking.yearPopTitle')" :columns="yearPopList" :columns-field-names="yearPopFieldName"
@@ -303,7 +303,7 @@ export default {
     };
     // 获取当前年前4年后1年
     let yearPopList = [];
-    for (let i = 0; i < 4; i++) {
+    for (let i = 0; i < 3; i++) {
       const year = moment().subtract(i, "years").format("YYYY");
       yearPopList.push({
         name: year,
@@ -356,7 +356,8 @@ export default {
       dayShow.value = false;
     };
     // 最小日期选择
-    const minDate = new Date(2018, 1, 1);
+    const minDate = new Date(2022, 1, 1);
+    const maxDate = new Date();
     const dayShow = ref(false);
     // 日,周,月,年的tab栏数据
     const tabDayList = ref([
@@ -871,6 +872,7 @@ export default {
       searchForm,
       dayShow,
       minDate,
+      maxDate,
       calendarDayConfirm,
       weekShow,
       monthShow,