Преглед изворни кода

feat:“同步2024.04.22”

soobin пре 1 година
родитељ
комит
703aeb2e16

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

@@ -594,6 +594,12 @@
     "checkedAll": "PickAll"
   },
   "discountCode": {
+    "addMode": "Generation mode",
+    "randomAdd": "Batch random generation",
+    "oneceAdd": "Single manual addition",
+    "codeNum": "Promotion code",
+    "codeNumPlaceholder": "Please enter a 6-digit promo code",
+    "existsCode": "Promo code already exists!",
     "discountCodeNoLabel": "Discount code No",
     "discountCodeNoPlaceholder": "Please enter the discount code number",
     "creationTime": "Creation time",
@@ -631,7 +637,7 @@
     "Months": "Months",
     "noMoreThanMonths": "(no more than 3 months)",
     "days": " days",
-    "type": "type",
+    "type": "Type",
     "deductionRoll": "Deduction roll",
     "discount2": "Discount",
     "deductionPriceLabdel": "Deduction price",

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

@@ -600,6 +600,12 @@
         "checkedAll": "全て選択"
     },
     "discountCode": {
+        "addMode": "生成方法です",
+        "randomAdd": "大量ランダム生成です",
+        "oneceAdd": "手動で追加します",
+        "codeNum": "プレミアムコードです",
+        "codeNumPlaceholder": "6桁のプレミアムコードの入力をお願いします。",
+        "existsCode": "特典コードはすでに存在します!",
         "discountCodeNoLabel": "ディスカウントコード番号",
         "discountCodeNoPlaceholder": "ディスカウントコードを入力",
         "creationTime": "作成時間",
@@ -623,6 +629,7 @@
         "confirmDel": "削除を確認",
         "deletionSucceeded": "削除完了",
         "discount": "割引",
+        "sameAs": "",
         "deduction": "控除",
         "termOfValidity": "有効期限",
         "affiliatedMerchants": "提携加盟店",
@@ -640,7 +647,7 @@
         "type": "タイプ",
         "deductionRoll": "控除ロール",
         "discount2": "割引",
-        "deductionPriceLabel": "控除価格",
+        "deductionPriceLabdel": "控除価格",
         "deductionPricePlaceholder": "控除価格を入力してください",
         "enterNumber": "数字を入力",
         "paymentMethod": "支払い方法",

+ 7 - 0
src/assets/language/zh.json

@@ -597,6 +597,12 @@
     "checkedAll": "全选"
   },
   "discountCode": {
+    "addMode": "生成方式",
+    "randomAdd": "批量随机生成",
+    "oneceAdd": "单个手动添加",
+    "codeNum": "优惠码",
+    "codeNumPlaceholder": "请输入6位数的优惠码",
+    "existsCode": "优惠码已存在!",
     "discountCodeNoLabel": "优惠码编号",
     "discountCodeNoPlaceholder": "请输入优惠码编号",
     "creationTime": "创建时间",
@@ -620,6 +626,7 @@
     "confirmDel": "确认删除",
     "deletionSucceeded": "删除成功",
     "discount": "折扣",
+    "sameAs": "相当于",
     "deduction": "抵扣",
     "termOfValidity": "有效期",
     "affiliatedMerchants": "所属商家",

+ 9 - 0
src/styles/discountCode/index.less

@@ -187,6 +187,15 @@
         background-color: #2c87c8;
         border-color: #2c87c8;
     }
+
+    .van-radio--horizontal {
+        width: 100%;
+        height: 0.8rem;
+    }
+
+    .van-field__label {
+        width: 2.5rem;
+    }
 }
 
 .codeSearch {

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

@@ -228,7 +228,7 @@
                     </span>
                     <van-button v-if="item.alarmList && item.alarmList[0] && item.alarmList[0].alarmContent"
                       type="primary" color="#07c160" :text="$t('device.eliminateAlarm')"
-                      @click="clearAlarm(item.alarmList[0])"></van-button>
+                      @click="clearAlarm(item.alarmList[0], item)"></van-button>
                   </div>
                   <div class="editDeviceBtnCon l-flex-center o-mt-10">
                     <div class="l-flex-RC" @click="deviceSet(item)">
@@ -460,7 +460,7 @@ export default {
       oprRef.value.showOper(e);
     };
     // 消除报警
-    const clearAlarm = async (e) => {
+    const clearAlarm = async (e, e1) => {
       const params = {
         id: e.id,
         name: e.name,
@@ -479,6 +479,7 @@ export default {
         showSuccessToast(t("device.successfullyEliminatedTheAlarm"));
         setTimeout(() => {
           e.alarmContent = "";
+          e1.hasTodayAlarm = false;
         }, 1000);
         console.log("e", e);
       } else {

+ 2 - 2
src/views/discountCode/index.vue

@@ -64,7 +64,7 @@
                 </span>
                 {{ item.discount }}
               </div>
-              <div class="itemRow">
+              <div class="itemRow" v-if="item.isUse == '0'">
                 <span class="itemTitle">
                   {{ $t('discountCode.creationTime') }}:&nbsp;
                 </span>
@@ -82,7 +82,7 @@
                 </span>
                 {{ showDateTime(item.useDate) }}
               </div>
-              <div class="itemRow">
+              <div class="itemRow" v-if="item.isUse == '0'">
                 <span class="itemTitle">
                   {{ $t('discountCode.termOfValidity') }}:&nbsp;
                 </span>{{ showDate(item.lastUseDate) }}

+ 50 - 21
src/views/discountCode/payCode.vue

@@ -3,20 +3,31 @@
   <div class="discountCodePage flex-col">
     <s-header :name="$t('discountCode.applDiscCode')" :noback="false"></s-header>
     <div class="discountCodeBox flex-col">
+      <van-field name="radio" :label="$t('discountCode.addMode')">
+        <template #input>
+          <van-radio-group v-model="addMode" direction="horizontal">
+            <van-radio name="1">{{ $t('discountCode.randomAdd') }}</van-radio>
+            <van-radio name="2">{{ $t('discountCode.oneceAdd') }}</van-radio>
+          </van-radio-group>
+        </template>
+      </van-field>
       <van-form @submit="onSubmit">
         <van-field v-model="number" name="number" :label="$t('discountCode.numberOfDiscountCodesLabel')"
-          :placeholder="$t('discountCode.numberOfDiscountCodesPlaceholder')">
+          :placeholder="$t('discountCode.numberOfDiscountCodesPlaceholder')" v-if="addMode == '1'">
           <template #button>
             <span>{{ $t('discountCode.aSingleGenerationCannotExceed') }}</span>
           </template>
         </van-field>
+        <van-field v-if='addMode === "2"' v-model="codeNum" type="number" :label="$t('discountCode.codeNum')"
+          maxlength="6" :placeholder="$t('discountCode.codeNumPlaceholder')">
+        </van-field>
         <van-field v-model="month" name="number" :label="$t('discountCode.termOfValidity')"
           :placeholder="$t('discountCode.pleaseEnterTheValidityPeriod')">
           <template #button>
             <span>{{ $t('discountCode.Months') }}<span>{{ $t('discountCode.noMoreThanMonths') }}</span></span>
           </template>
         </van-field>
-        <van-field readonly v-model="validDays" :label="$t('discountCode.validDays')" placeholder="" />
+        <!-- <van-field readonly v-model="validDays" :label="$t('discountCode.validDays')" placeholder="" /> -->
         <div class="van-cell van-field">
           <div class="van-cell__title van-field__label"><span>{{ $t('discountCode.type') }}</span></div>
           <div class="van-cell__value van-field__value radioBox">
@@ -26,13 +37,13 @@
             </van-radio-group>
           </div>
         </div>
-        <van-field v-if='type === "1"' v-model="discount" name="number" :label="$t('discountCode.deductionPriceLabdel')"
-          :placeholder="$t('discountCode.deductionPricePlaceholder')">
+        <van-field v-if='type === "1"' v-model="discount" type="number" name="number"
+          :label="$t('discountCode.deductionPriceLabdel')" :placeholder="$t('discountCode.deductionPricePlaceholder')">
         </van-field>
-        <van-field v-if='type === "0"' v-model="discount" name="number" :label="$t('discountCode.discount')"
-          :placeholder="$t('discountCode.enterNumber')">
-          <template #button>
-            <span>0-10</span>
+        <van-field v-if='type === "0"' v-model="discount" type="number" name="number"
+          :label="$t('discountCode.discount') + '(0-10)'" :placeholder="$t('discountCode.enterNumber')">
+          <template #button v-if="user.ifForeign === '1' && discount != ''">
+            <span>{{ $t('discountCode.sameAs') + (10 - discount) * 10 }}% off</span>
           </template>
         </van-field>
         <div class="van-cell van-field" v-if='type === "0" && discount === "0" && promoCodeOpen != "0"'>
@@ -46,7 +57,7 @@
         </div>
         <van-row justify="space-around" style="padding: 1em;">
           <van-button span="5" round type="primary" style="height: 2em; padding: 0 2em;" native-type="submit">{{
-            $t('discountCode.apply') }}</van-button>
+      $t('discountCode.apply') }}</van-button>
         </van-row>
       </van-form>
     </div>
@@ -64,7 +75,7 @@
 import sHeader from "@/components/SimpleHeader";
 import { onMounted, reactive, toRefs, ref, watch } from "vue";
 import { getLoginUser, Format_calcuDecial, styleUrl } from "@/common/js/utils";
-import { showFailToast, showSuccessToast } from "vant";
+import { showFailToast, showSuccessToast, showToast } from "vant";
 import { addCode } from "@/service/discountCode";
 import { useRouter } from "vue-router";
 import { useI18n } from "vue-i18n";
@@ -77,6 +88,8 @@ export default {
     const { t } = useI18n();
     const router = useRouter();
     let payParams = reactive({
+      addMode: '1', // 生成方式
+      codeNum: '', // 优惠码
       number: '', // 优惠码个数
       month: '', // 有效期
       type: '1', // 优惠卷类型
@@ -86,6 +99,8 @@ export default {
     const payCodeType = ref(false);
     const ewmObj = ref(null);
     const promoCodeOpen = ref(''); // 0折优惠码开通状态
+    const user = getLoginUser();
+
 
 
     // 初始化页面
@@ -98,7 +113,6 @@ export default {
       payParams.type = '1';
       payParams.discount = '';
       payParams.frpCode = 'WEIXIN_NATIVE';
-      const user = getLoginUser();
       if (user) {
         payParams.adminId = user.id;
         promoCodeOpen.value = user.promoCodeOpen;
@@ -108,31 +122,45 @@ export default {
 
     // 提交搜索表单触发搜索
     const onSubmit = async () => {
-      if (payParams.number === '') { showFailToast(t('discountCode.numberOfDiscountCodesPlaceholder')); return; }
-      if (payParams.month === '') { showFailToast(t('discountCode.pleaseEnterTheValidityPeriod')); return; }
-      if (payParams.type === '1' && payParams.discount === '') { showFailToast(t('discountCode.deductionPricePlaceholder')); return; }
-      if (payParams.type === '0' && payParams.discount === '') { showFailToast(t('discountCode.pleaseEnterDiscount')); return; }
-      if (parseInt(payParams.number) > 200) { showFailToast(t('discountCode.theNumberOfDiscountCodesCannotExceed')); return; }
-      if (parseInt(payParams.month) > 3) { showFailToast(t('discountCode.theValidityPeriodCannotExceedMonths')); return; }
-      if (payParams.type === '0' && parseInt(payParams.discount) > 10) { showFailToast(t('discountCode.discountCannotBeGreaterThan')); return; }
+      if (payParams.addMode === '1') {
+        payParams.codeNum = '';
+        if (payParams.number === '') { showToast(t('discountCode.numberOfDiscountCodesPlaceholder')); return; }
+      } else {
+        payParams.number = "1";
+        if (payParams.codeNum.length != 6) { showToast(t('discountCode.codeNumPlaceholder')); return; }
+      }
+      if (payParams.month === '') { showToast(t('discountCode.pleaseEnterTheValidityPeriod')); return; }
+      if (payParams.type === '1' && payParams.discount === '') { showToast(t('discountCode.deductionPricePlaceholder')); return; }
+      if (payParams.type === '0' && payParams.discount === '') { showToast(t('discountCode.pleaseEnterDiscount')); return; }
+      if (parseInt(payParams.number) > 200) { showToast(t('discountCode.theNumberOfDiscountCodesCannotExceed')); return; }
+      if (parseInt(payParams.month) > 3) { showToast(t('discountCode.theValidityPeriodCannotExceedMonths')); return; }
+      if (payParams.type === '0' && parseInt(payParams.discount) > 10) { showToast(t('discountCode.discountCannotBeGreaterThan')); return; }
+      console.log("payParams", payParams);
       const { data } = await addCode(Object.assign({}, payParams));
       if (payParams.type === '0' && payParams.discount === '0' && promoCodeOpen.value != '0') {
+        console.log("data", data);
         ewmObj.value = data.data;
         payCodeType.value = true;
       } else {
+        console.log("data", data);
         if (data.code === '00000') {
           showSuccessToast(t('discountCode.successfulProductionOfDiscountCode'));
+          // router.push({ path: '/discountCode' });
           setTimeout(() => {
             router.go(-1);
           }, 1500);
         } else {
-          showFailToast(data.message);
+          if (data.code === 'A0002') {
+            showFailToast(t('discountCode.existsCode'));
+          } else {
+            showFailToast(data.message);
+          }
         }
       }
     }
     const payCodeClose = () => { router.go(-1); }
     // 有效天数
-    const validDays = ref('0'+ t('discountCode.days'));
+    const validDays = ref('0' + t('discountCode.days'));
     // 监听有效期,计算有效天数
     watch(() => payParams.month, (newVal) => {
       validDays.value = Format_calcuDecial(newVal, 30) + t('discountCode.days');
@@ -144,7 +172,8 @@ export default {
       onSubmit,
       payCodeClose,
       validDays,
-      promoCodeOpen
+      promoCodeOpen,
+      user,
     };
   },
 };

+ 2 - 1
src/views/robotRanking.vue

@@ -430,7 +430,7 @@ export default {
       colastdayStart:
         moment()
           .day(moment().day() - 1)
-          .format("") + " 00:00:00",
+          .format("YYYY-MM-DD") + " 00:00:00",
       colastdayEnd:
         moment()
           .day(moment().day() - 1)
@@ -550,6 +550,7 @@ export default {
           }
           break;
       }
+      console.log("startDate", defaultTime.colastdayStart);
       // 如果是点击其他,不用请求
       if (e.name !== 2) {
         //  获取日、周、月、年的排行数据