Browse Source

样式更新以及优化优惠码

soobin 2 years ago
parent
commit
7f0789ac59

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

@@ -1040,11 +1040,14 @@
     "usernameRequired": "Please enter the account name",
     "phone": "cell-phone number",
     "email": "mailbox",
+    "emailChina": "China mailbox",
+    "emailAbroad": "Mailbox",
     "phoneWordSpan": "Enter the mobile phone number when registering",
     "phoneLabel": "phone number",
     "phonePlaceholder": "Please enter your mobile number",
     "phoneRequired": "Please enter your mobile number",
     "emailWordSpan": "Enter the email address at the time of registration",
+    "emailWordSpanChina": "Enter the Chinese email address you used to register",
     "emailLabel": "mailbox",
     "emailPlaceholder": "Please enter your email address",
     "emailRequired": "Please enter your email address",
@@ -1080,6 +1083,7 @@
     "country": "Country/region",
     "chinese": "中国大陆",
     "other": "Abroad/HKMT",
+    "logonMode": "Logon mode",
     "phoneLabel": "Phone number",
     "phonePlaceholder": "Please enter your mobile number",
     "phoneRequired": "Please enter your mobile number",
@@ -1095,8 +1099,8 @@
     "emailCodeRequired": "Please enter the email verification code",
     "registerButton": "Register",
     "replaysInSeconds": "Replays in seconds",
-	"emailRegistration": "Email registration",
-	"phoneRegistration": "Phone registration"
+    "emailRegistration": "Email registration",
+    "phoneRegistration": "Phone registration"
   },
   "robotRanking": {
     "machineSalesRanking": "Machine sales ranking",

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

@@ -1042,11 +1042,14 @@
     "usernameRequired": "请输入账号名称",
     "phone": "手机号",
     "email": "邮箱",
+    "emailChina": "国内邮箱",
+    "emailAbroad": "海外邮箱",
     "phoneWordSpan": "输入注册时的手机号",
+    "emailWordSpanChina": "输入注册时的国内邮箱",
     "phoneLabel": "手机号码",
     "phonePlaceholder": "请输入手机号码",
     "phoneRequired": "请输入手机号码",
-    "emailWordSpan": "输入注册时的邮箱",
+    "emailWordSpan": "输入注册时的海外账户邮箱",
     "emailLabel": "邮箱",
     "emailPlaceholder": "请输入邮箱",
     "emailRequired": "请输入邮箱",
@@ -1082,9 +1085,12 @@
     "country": "国家/地区",
     "chinese": "中国大陆",
     "other": "海外/港澳台",
+    "logonMode": "注册方式",
     "phoneLabel": "手机号码",
     "phonePlaceholder": "请输入手机号码",
     "phoneRequired": "请输入手机号码",
+    "emailWordSpan": "输入注册海外账户邮箱",
+    "emailWordSpanChina": "输入注册时的国内邮箱",
     "seedVerCode": "发送验证码",
     "codeLabel": "短信验证码",
     "codePlaceholder": "请输入短信验证码",
@@ -1097,8 +1103,8 @@
     "emailCodeRequired": "请输入邮箱验证码",
     "registerButton": "注册",
     "replaysInSeconds": "秒后可重发",
-	"emailRegistration": "邮箱注册",
-	"phoneRegistration": "手机注册"
+    "emailRegistration": "邮箱注册",
+    "phoneRegistration": "手机注册"
   },
   "robotRanking": {
     "machineSalesRanking":"机器销售排行榜",

+ 4 - 4
src/views/discountCode/codeSearch.vue

@@ -104,10 +104,10 @@ export default {
     const onSubmit = () => {
       const searchParam = {};
       if (code.value !== '') { searchParam.code = code.value; }
-      if (createStratDate.value !== '') { searchParam.createStratDate = dateUtil.formateDate(new Date(createStratDate.value), "dd/MM/yyyy hh:mm:ss"); }
-      if (createEndDate.value !== '') { searchParam.createEndDate = dateUtil.formateDate(new Date(createEndDate.value), "dd/MM/yyyy hh:mm:ss"); }
-      if (useStratDate.value !== '') { searchParam.useStratDate = dateUtil.formateDate(new Date(useStratDate.value), "dd/MM/yyyy hh:mm:ss"); }
-      if (useEndDate.value !== '') { searchParam.useEndDate = dateUtil.formateDate(new Date(useEndDate.value), "dd/MM/yyyy hh:mm:ss"); }
+      if (createStratDate.value !== '') { searchParam.createStratDate = dateUtil.formateDate(new Date(createStratDate.value), "yyyy/MM/dd hh:mm:ss"); }
+      if (createEndDate.value !== '') { searchParam.createEndDate = dateUtil.formateDate(new Date(createEndDate.value), "yyyy/MM/dd hh:mm:ss"); }
+      if (useStratDate.value !== '') { searchParam.useStratDate = dateUtil.formateDate(new Date(useStratDate.value), "yyyy/MM/dd hh:mm:ss"); }
+      if (useEndDate.value !== '') { searchParam.useEndDate = dateUtil.formateDate(new Date(useEndDate.value), "yyyy/MM/dd hh:mm:ss"); }
       context.emit('search', searchParam);
       sheetShow.value = false;
     }

+ 1 - 0
src/views/discountCode/index.vue

@@ -124,6 +124,7 @@ export default {
     const showDateTime = (date) => { return date ? dateUtil.formateDate(new Date(date), "yyyy-MM-dd hh:mm:ss") : ''; }
     // 优惠码导出
     const exportClick = async () => {
+      searchParams.size = 1000;
       const { headers, data } = await discountCodeExport(Object.assign({}, searchParams));
       $M_ExportFile(data, headers);
     }

+ 18 - 18
src/views/forgetPassword.vue

@@ -8,37 +8,38 @@
                    :rules="[{ required: true, message: $t('forgetPassword.usernameRequired') }]" />
         <span class="word1">{{ $t('forgetPassword.selectForgetPassword') }}</span>
         <div class="van-cell van-field">
-
           <div class="van-cell__value van-field__value radioBox">
             <van-radio-group v-model="ifForeign" direction="horizontal">
-              <van-radio name="0" icon-size="20px">{{ $t('forgetPassword.phone') }}</van-radio>
-              <van-radio name="1" icon-size="20px">{{ $t('forgetPassword.email') }}</van-radio>
+              <van-radio name="0" icon-size="18px">{{ $t('forgetPassword.phone') }}</van-radio>
+              <van-radio name="2" icon-size="18px">{{ $t('forgetPassword.emailChina') }}</van-radio>
+              <van-radio name="1" icon-size="18px">{{ $t('forgetPassword.emailAbroad') }}</van-radio>
             </van-radio-group>
           </div>
         </div>
         <div v-if="ifForeign === '0'">
           <span class="word2">{{ $t('forgetPassword.phoneWordSpan') }}</span>
           <van-field v-model="phone" name="phone" type="tel" :placeholder="$t('forgetPassword.phonePlaceholder')"
-                     :rules="[{ required: true, message: $t('forgetPassword.phoneRequired') }]">
-          </van-field>
+                     :rules="[{ required: true, message: $t('forgetPassword.phoneRequired') }]" />
+        </div>
+        <div v-if="ifForeign === '2'">
+          <span class="word2">{{ $t('forgetPassword.emailWordSpanChina') }}</span>
+          <van-field v-model="email" name="email" :placeholder="$t('forgetPassword.emailPlaceholder')"
+                     :rules="[{ required: true, message: $t('forgetPassword.emailRequired') }]" />
         </div>
         <div v-if="ifForeign === '1'">
           <span class="word2">{{ $t('forgetPassword.emailWordSpan') }}</span>
           <van-field v-model="email" name="email" :placeholder="$t('forgetPassword.emailPlaceholder')"
-                     :rules="[{ required: true, message: $t('forgetPassword.emailRequired') }]">
-
-          </van-field>
+                     :rules="[{ required: true, message: $t('forgetPassword.emailRequired') }]" />
         </div>
-        <br>
         <van-field v-model="code" name="code" :placeholder="$t('forgetPassword.codePlaceholder')"
                    :rules="[{ required: true, message: $t('forgetPassword.codeRequired') }]">
           <template #button>
-            <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0">
-              {{ time === 0 ? $t('forgetPassword.seedVerCode') : time + '秒后可重发' }}</van-button>
+            <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0">{{ time === 0 ?
+                $t('forgetPassword.seedVerCode') : time + '秒后可重发' }}</van-button>
           </template>
         </van-field>
-        <van-button round type="primary" class="register" native-type="submit">
-          {{ $t('forgetPassword.registerButton') }}</van-button>
+        <van-button round type="primary" class="register" native-type="submit">{{ $t('forgetPassword.registerButton')
+          }}</van-button>
       </van-form>
     </div>
   </div>
@@ -47,10 +48,10 @@
 <script>
 import { ref, reactive, toRefs, onMounted } from 'vue';
 import { Toast } from 'vant';
-import { setLocal, getLocal, styleUrl } from '../common/js/utils';
-import sHeader from "../components/SimpleHeader";
+import { setLocal, getLocal, styleUrl } from '@/common/js/utils';
+import sHeader from "@/components/SimpleHeader";
 import { useRouter } from "vue-router";
-import { sentForgetCode, checkForgetCode } from '../service/forgetPassword';
+import { sentForgetCode, checkForgetCode } from '@/service/forgetPassword';
 
 export default {
   setup() {
@@ -91,7 +92,7 @@ export default {
       });
       if (data.code === '00000') {
         Toast('校验成功');
-        router.push({ path: '/changepassword', query:{name: username.value} });
+        router.push({ path: '/changepassword', query: { name: username.value } });
       } else {
         Toast.fail(data.message);
       }
@@ -99,7 +100,6 @@ export default {
 
     // 初始化页面获取验证码倒计时
     onMounted(async () => {
-      // 加载样式
       styleUrl('forgetPassword');
       verCodeTime.time = getLocal('forgetVerCodeTime');
       if (verCodeTime.time && verCodeTime.time !== '') {

+ 108 - 85
src/views/register.vue

@@ -6,20 +6,21 @@
       <van-form @submit="registerSubmit">
         <van-field v-model="username" name="username" :label="$t('register.usernameLabel')"
                    :placeholder="$t('register.usernamePlaceholder')"
-                   :rules="[{ required: true, message: $t('register.usernameRequired') }]"/>
+                   :rules="[{ required: true, message: $t('register.usernameRequired') }]" />
         <br>
         <van-field v-model="name" name="name" :label="$t('register.nameLabel')"
                    :placeholder="$t('register.namePlaceholder')"
-                   :rules="[{ required: true, message: $t('register.nameRequired') }]"/>
+                   :rules="[{ required: true, message: $t('register.nameRequired') }]" />
         <br>
         <van-field v-model="password" name="password" type="password" :label="$t('register.passwordLabel')"
                    :placeholder="$t('register.passwordPlaceholder')"
-                   :rules="[{ required: true, message: $t('register.passwordRequired') }]"/>
+                   :rules="[{ required: true, message: $t('register.passwordRequired') }]" />
         <br>
-        <van-field v-model="passwordCheck" name="passwordCheck" type="password"
-                   :label="$t('register.passwordCheckLabel')" :placeholder="$t('register.passwordCheckPlaceholder')"
-                   :rules="[{ required: true, message: $t('register.passwordCheckRequired') }]"/>
+        <van-field v-model="passwordCheck" name="passwordCheck" type="password" :label="$t('register.passwordCheckLabel')"
+                   :placeholder="$t('register.passwordCheckPlaceholder')"
+                   :rules="[{ required: true, message: $t('register.passwordCheckRequired') }]" />
         <br>
+        <!-- 国家或地区 -->
         <div class="van-cell van-field">
           <div class="van-cell__title van-field__label"><span>{{ $t('register.country') }}</span></div>
           <div class="van-cell__value van-field__value radioBox">
@@ -29,68 +30,78 @@
             </van-radio-group>
           </div>
         </div>
-        <van-tabs v-model:active="active" type="card" swipeable v-if="ifForeign === '0'">
-          <van-tab :title="$t('register.phoneRegistration')">
-            <!-- 手机号码 -->
-            <van-field v-if="ifForeign === '0'" v-model="phone" name="phone" type="tel"
-                       :label="$t('register.phoneLabel')" :placeholder="$t('register.phonePlaceholder')"
-                       :rules="[{ required: ifForeign === '0', message: $t('register.phoneRequired') }]">
-            </van-field>
-            <br>
-            <!-- 短信验证码 -->
-            <van-field v-if="ifForeign === '0'" v-model="code" name="code" :label="$t('register.codeLabel')"
-                       :placeholder="$t('register.codePlaceholder')"
-                       :rules="[{ required: true, message: $t('register.codeRequired') }]">
-              <template #button v-if="ifForeign === '0'">
-                <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0">{{
-                    time === 0 ?
-                        $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-                  }}
-                </van-button>
-              </template>
-            </van-field>
-          </van-tab>
-          <van-tab :title="$t('register.emailRegistration')">
-            <!-- 邮箱 -->
-            <van-field v-if="ifForeign === '0'" v-model="email" name="email" :label="$t('register.emailLabel')"
-                       :placeholder="$t('register.emailPlaceholder')"
-                       :rules="[{ required: ifForeign === '0', message: $t('register.emailRequired') }]">
-            </van-field>
-            <br>
-            <!-- 邮箱验证码 -->
-            <van-field v-if="ifForeign === '0'" v-model="code" name="code"
-                       :label="$t('register.emailCodeLabel')" :placeholder="$t('register.emailCodePlaceholder')"
-                       :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
-              <template #button v-if="ifForeign === '0'">
-                <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0">{{
-                    time === 0 ?
-                        $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-                  }}
-                </van-button>
-              </template>
-            </van-field>
-          </van-tab>
-        </van-tabs>
-        <br v-if="ifForeign === '0'">
-        <van-field v-if="ifForeign === '1'" v-model="email" name="email" :label="$t('register.emailLabel')"
-                   :placeholder="$t('register.emailPlaceholder')"
-                   :rules="[{ required: ifForeign === '1', message: $t('register.emailRequired') }]">
-        </van-field>
-        <br v-if="ifForeign === '1'">
-        <!-- 海外,邮箱验证码 -->
-        <van-field v-if="ifForeign === '1'" v-model="code" name="code" :label="$t('register.emailCodeLabel')"
-                   :placeholder="$t('register.emailCodePlaceholder')"
-                   :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
-          <template #button v-if="ifForeign === '1'">
-            <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0">{{
-                time === 0
-                    ?
-                    $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-              }}
-            </van-button>
-          </template>
-        </van-field>
-        <br v-if="ifForeign === '1'">
+        <!-- 中国 -->
+        <div v-if="ifForeign === '0'">
+          <div class="van-cell van-field">
+            <div class="van-cell__title van-field__label"><span>{{ $t('register.logonMode') }}</span></div>
+            <div class="van-cell__value van-field__value radioBox">
+              <van-radio-group class="o-pr-18" v-model="logonMode" direction="horizontal">
+                <van-radio name="10" icon-size="18px" :value="0">{{ $t('register.phoneRegistration') }}</van-radio>
+                <van-radio name="11" icon-size="18px" :value="1">{{ $t('register.emailRegistration') }}</van-radio>
+              </van-radio-group>
+            </div>
+          </div>
+          <!-- 国内手机 -->
+          <van-field v-if="logonMode === '10'" v-model="phone" name="phone" type="tel" :label="$t('register.phoneLabel')"
+                     :placeholder="$t('register.phonePlaceholder')"
+                     :rules="[{ required: ifForeign === '0' && logonMode === '10', message: $t('register.phoneRequired') }]" />
+          <br v-if="ifForeign === '0' && logonMode === '10'">
+          <!-- 短信验证码 -->
+          <van-field v-if="logonMode === '10'" v-model="code" name="code" :label="$t('register.codeLabel')"
+                     :placeholder="$t('register.codePlaceholder')"
+                     :rules="[{ required: true, message: $t('register.codeRequired') }]">
+            <template #button v-if="ifForeign === '0' && logonMode === '10'">
+              <van-button size="small" type="primary" @click="seedVerCode()"
+                          :disabled="time !== 0 || phone.length === 0">{{
+                  time === 0 ?
+                      $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+                }}
+              </van-button>
+            </template>
+          </van-field>
+          <!-- 国内邮箱 -->
+          <van-field v-if="logonMode === '11'" v-model="email" name="email" :label="$t('register.emailLabel')"
+                     :placeholder="$t('register.emailPlaceholder')" :rules="[
+              { required: ifForeign === '0' && logonMode === '11', message: $t('register.emailRequired') },
+              { pattern: /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/, message: '邮箱格式错误!' }
+            ]" :minlength="3" :maxlength="20">
+          </van-field>
+          <br v-if="ifForeign === '0' && logonMode === '11'">
+          <!-- 国内邮箱验证码 -->
+          <van-field v-if="logonMode === '11'" v-model="code" name="code" :label="$t('register.emailCodeLabel')"
+                     :placeholder="$t('register.emailCodePlaceholder')"
+                     :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
+            <template #button v-if="ifForeign === '0' && logonMode === '11'">
+              <van-button size="small" type="primary" @click="seedVerCode()"
+                          :disabled="time !== 0 || email.length === 0">{{
+                  time === 0 ?
+                      $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+                }}
+              </van-button>
+            </template>
+          </van-field>
+        </div>
+        <!-- 海外 -->
+        <div v-if="ifForeign === '1'">
+          <!-- 海外邮箱 -->
+          <van-field v-if="ifForeign === '1'" v-model="email" name="email" :label="$t('register.emailLabel')"
+                     :placeholder="$t('register.emailPlaceholder')"
+                     :rules="[{ required: ifForeign === '1', message: $t('register.emailRequired') }]" />
+          <br v-if="ifForeign === '1'">
+          <!-- 海外邮箱验证码 -->
+          <van-field v-if="ifForeign === '1'" v-model="code" name="code" :label="$t('register.emailCodeLabel')"
+                     :placeholder="$t('register.emailCodePlaceholder')"
+                     :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
+            <template #button v-if="ifForeign === '1'">
+              <van-button size="small" type="primary" @click="seedVerCode()"
+                          :disabled="time !== 0 || email.length === 0">{{
+                  time === 0 ?
+                      $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+                }}
+              </van-button>
+            </template>
+          </van-field>
+        </div>
         <!-- 提交验证信息 -->
         <van-button round type="primary" class="register" native-type="submit">{{
             $t('register.registerButton')
@@ -102,13 +113,13 @@
 </template>
 <script>
 import md5 from 'js-md5';
-import {ref, onMounted, reactive, toRefs} from 'vue';
-import {Toast} from 'vant';
-import {sentRegisterCode, tAdminSave} from '../service/register';
-import sHeader from '../components/SimpleHeader';
-import logiLogoImgUrl from "../assets/login/logo.png";
-import {useRouter} from 'vue-router';
-import {getLocal, setLocal, styleUrl} from '../common/js/utils';
+import { ref, onMounted, reactive, toRefs } from 'vue';
+import { Toast } from 'vant';
+import { sentRegisterCode, tAdminSave } from '@/service/register';
+import sHeader from '@/components/SimpleHeader';
+import logiLogoImgUrl from "@/assets/login/logo.png";
+import { useRouter } from 'vue-router';
+import { getLocal, setLocal, styleUrl } from '@/common/js/utils';
 
 
 export default {
@@ -119,6 +130,7 @@ export default {
     const password = ref('');
     const passwordCheck = ref('');
     const ifForeign = ref('0');
+    const logonMode = ref('10');
     const phone = ref('');
     const email = ref('');
     const code = ref('');
@@ -127,35 +139,45 @@ export default {
       time: 0
     });
 
-
     const router = useRouter();
+
     // 注册点击
     const registerSubmit = async () => {
       if (password.value !== passwordCheck.value) {
         Toast.fail('两次密码不一致,请确认密码');
         return false;
       }
-      const {data} = await tAdminSave({
+      const { data } = await tAdminSave({
         username: username.value,
         name: name.value,
         password: md5(password.value),
         ifForeign: ifForeign.value,
         phone: phone.value,
         email: email.value,
-        code: code.value
+        code: code.value,
+        companyType: '0',
       });
       if (data.code === '00000') {
         Toast('注册成功');
-        router.push({path: '/login'});
+        router.push({ path: '/login' });
       } else {
         Toast.fail(data.message);
       }
     };
+
+    let phoneOrEmail = '';
     // 发送验证码
     const seedVerCode = async () => {
-      const {data} = await sentRegisterCode({
+      if (ifForeign.value === '1') {
+        phoneOrEmail = email.value;
+      } else if (ifForeign.value === '0' && logonMode.value === '10') {
+        phoneOrEmail = phone.value;
+      } else {
+        phoneOrEmail = email.value;
+      }
+      const { data } = await sentRegisterCode({
         ifForeign: ifForeign.value,
-        phoneOrEmail: ifForeign.value === '0' ? phone.value : email.value
+        phoneOrEmail: phoneOrEmail
       });
       console.log('seedVerCodeSuccess', data);
       if (data.code === '00000') {
@@ -193,8 +215,8 @@ export default {
     });
 
     const signOptions = [
-      {text: '手机注册', value: "mo"},
-      {text: '邮箱注册', value: "ema"}
+      { text: '手机注册', value: "mo" },
+      { text: '邮箱注册', value: "ema" }
     ]
     const option1 = [
       {
@@ -232,10 +254,11 @@ export default {
       option2,
       signOptions,
       signinModel: 'aaabb',
-      active
+      active,
+      logonMode,
     }
   },
-  components: {sHeader}
+  components: { sHeader }
 }
 </script>
 <style lang="less" scoped>

+ 2 - 2
vue.config.js

@@ -1,6 +1,6 @@
 module.exports = {
-  outputDir: 'shenze',
-  publicPath: "/shenze",
+  outputDir: 'sc',
+  publicPath: "/sc",
   assetsDir: 'static',
   css: {
     extract: false