Просмотр исходного кода

feat: EK-265: 会员复消&报单,调整设置Stockist Code为必填项

tyler 10 месяцев назад
Родитель
Сommit
c7922406a9
3 измененных файлов с 47 добавлено и 35 удалено
  1. 2 1
      src/store/modules/user.js
  2. 35 31
      src/views/shop/reconsume.vue
  3. 10 3
      src/views/user/welcome-pack.vue

+ 2 - 1
src/store/modules/user.js

@@ -118,7 +118,8 @@ const actions = {
           CREATED_AT: ret.CREATED_AT,
           REAL_NAME: ret.REAL_NAME,
           COUNTRY_ID: ret.COUNTRY_ID,
-          ELITE_LV: ret.ELITE_LV
+          ELITE_LV: ret.ELITE_LV,
+          IS_DEC: ret.IS_DEC,
         })
         resolve(response)
       }).catch(error => {

+ 35 - 31
src/views/shop/reconsume.vue

@@ -117,51 +117,33 @@
             <el-divider />
             <div class="" style="margin: 15px 0;">
 
-              <el-form label-position="top">
+              <el-form ref="newOrder" :model="newOrder" label-position="top">
                 <el-col :xs="24" :sm="24" :lg="24">
                   <span style="font-weight: bold; word-break: normal; white-space: normal; line-height: 28px;">{{ $t('shop.customerInfo') }}:</span>
                 </el-col>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.reconsumeUserCode') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.reconsumeUserCode')">
                   <el-input v-model.trim="newOrder.userName" disabled @change="handleChkRecUser" />
                   <span style="margin-left: 10px">【{{ newOrder.recRealName }}】</span>
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.recipientName') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('user.stockistCode')" :required="Number(isDec) === 0" >
+                  <el-input v-model="newOrder.decUserName" :disabled="Number(isDec) === 1" />
+                </el-form-item>
+                <el-form-item :label="$t('shop.recipientName')">
                   <el-input v-model="newOrder.consignee" />
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.mobile') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.mobile')">
                   <el-input v-model.trim="newOrder.mobile" />
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.province') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.province')">
                   <el-cascader v-model="newOrder.areaSelected" :disabled="areaDisabled" size="large" :placeholder="$t('shop.delivery')" :options="regionData" style="width: 100%;" />
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.lgaName') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.lgaName')">
                   <el-input v-model="newOrder.lgaName" />
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.cityName') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.cityName')">
                   <el-input v-model="newOrder.cityName" />
                 </el-form-item>
-                <el-form-item>
-                  <el-col :xs="24" :sm="24" :lg="15">
-                    <span>{{ $t('shop.address') }}</span>
-                  </el-col>
+                <el-form-item :label="$t('shop.address')">
                   <el-input v-model="newOrder.address" />
                 </el-form-item>
 
@@ -388,7 +370,8 @@ export default {
         areaSelected: [],
         lgaName: '',
         cityName: '',
-        address: ''
+        address: '',
+        decUserName: ''
       },
       payStackScreenWidth: getScreenWidth() > 500 ? '450px' : getScreenWidth() + 'px',
 
@@ -418,7 +401,8 @@ export default {
       memberDetails: {
         number: '',
       },
-      currencyUnitCode: ""
+      currencyUnitCode: "",
+      isDec: ""
     }
   },
   computed: {
@@ -432,6 +416,15 @@ export default {
       return text
     },
   },
+  watch: {
+    isDec: {
+      handler(newValue, old) {
+        if (newValue == '1') {
+          this.newOrder.decUserName = usersInfo.userName();
+        }
+      },
+    }
+  },
   created() {
     // this.getList()
   },
@@ -641,6 +634,9 @@ export default {
         this.freeShipping = response.data.freeShipping
         // 运费
         this.freight = response.data.freight
+        //
+        console.log(response.data.isDec)
+        this.isDec = response.data.isDec
 
       })
     },
@@ -665,6 +661,14 @@ export default {
         accountType = (payObj.length <= 0) ? '' : payObj.name
       }
 
+      if (!this.newOrder.decUserName) {
+        this.$message({
+          message: this.$t('shop.declarationCenterNumberTips'),
+          type: 'error'
+        })
+        return false
+      }
+
       if (this.newOrder.recRealName === '-') {
         this.$message({
           message: this.$t('shop.memberNotFound'),

+ 10 - 3
src/views/user/welcome-pack.vue

@@ -35,8 +35,8 @@
                 <el-option v-for="item in allDecLevel" :key="item.ID" :label="item.LEVEL_NAME" :value="item.ID" />
               </el-select>
             </el-form-item>
-            <el-form-item :label="$t('user.stockistCode')">
-              <el-input v-model="form.decUserName" :disabled="isDec == 1" />
+            <el-form-item :label="$t('user.stockistCode')" :required="Number(isDec) === 0" >
+              <el-input v-model="form.decUserName" :disabled="Number(isDec) === 1" />
             </el-form-item>
 
             <el-form-item>
@@ -458,7 +458,7 @@ export default {
       return this.$store.getters.language
     },
   },
-     watch: {
+  watch: {
      isDec: {
       handler(newValue, old) {
          if (newValue == '1') {
@@ -676,6 +676,13 @@ export default {
         })
         return false
       }
+      if (this.isDec == 0 && !this.form.decUserName) {
+        this.$message({
+          message: this.$t('shop.declarationCenterNumberTips'),
+          type: 'error'
+        })
+        return false
+      }
       // 已选择商品
       this.selectProduct()
       if (this.multipleSelection.length <= 0) {