فهرست منبع

密码二次加密问题

吴sir 3 ماه پیش
والد
کامیت
004480c8b5
2فایلهای تغییر یافته به همراه48 افزوده شده و 35 حذف شده
  1. 18 9
      src/components/Layout/components/layout/menu.vue
  2. 30 26
      src/views/customer/NewCustomerForm.vue

+ 18 - 9
src/components/Layout/components/layout/menu.vue

@@ -1,7 +1,7 @@
 <template>
   <a-layout style="min-height: 100vh">
-    <a-layout-sider theme="dark" :width="160" :collapsed-width="50" collapsible :trigger="null"
-      @collapse="evMenuSecondLongShow" v-model:collapsed="menuSecondLongShow">
+    <a-layout-sider :width="240" :collapsed-width="50" collapsible :trigger="null" @collapse="evMenuSecondLongShow"
+      v-model:collapsed="menuSecondLongShow">
       <div class="logo-layout">
         <div class="logo">
           <img src="@/assets/images/logo.png" style="height: 26px; width: 26px;" />
@@ -9,14 +9,22 @@
         </div>
       </div>
 
-      <a-menu v-model:selectedKeys="menuTabSate" theme="dark" mode="inline" @mouseleave="evMouseleaveMenu">
-        <a-menu-item v-for="routeItem in routesData" :key="routeItem.name"
-          @mouseenter="evMenuGetFn(routeItem, 'mouseenter')" @click="changeRoutesItems(routeItem)">
+      <a-menu v-model:selectedKeys="routeItemSelectedKeys" @mouseleave="evMouseleaveMenu">
+        <a-sub-menu v-for="routeItem in routesData" :key="routeItem.name">
           <template #icon>
             <svg-icon :icon="routeItem.meta.icon"></svg-icon>
           </template>
-          <span>{{ routeItem.meta.title }}</span>
-        </a-menu-item>
+          <template #title>{{ routeItem.meta.title }}</template>
+          <template v-for="item in routeItem?.children || []">
+            <a-menu-item v-if="!item.children || item.children.length === 0" :key="item.name?.toString()"
+              @click="evGoPage(item)">
+              <span class="menu-level-font">{{ item.meta.title }}</span>
+            </a-menu-item>
+            <template v-else-if="item.children && item.children.length > 0">
+              <sub-menu :key="item.name" :menu-info="item" @go="evGoPage" />
+            </template>
+          </template>
+        </a-sub-menu>
       </a-menu>
     </a-layout-sider>
 
@@ -25,7 +33,7 @@
         <LayoutHeader />
       </a-layout-header>
       <a-layout>
-        <a-layout-sider id="layout-sider" :collapsed="false" :width="menuSecondData &&
+        <!-- <a-layout-sider id="layout-sider" :collapsed="false" :width="menuSecondData &&
           menuSecondData.children &&
           menuSecondData.children.length > 0
           ? 160
@@ -44,7 +52,7 @@
               </template>
             </template>
           </a-menu>
-        </a-layout-sider>
+        </a-layout-sider> -->
 
         <main class="layout-content-main">
           <router-view v-slot="{ Component }" class="layout-content-router">
@@ -152,6 +160,7 @@ watch(
   (val) => {
     if (val.name) {
       routeItemSelectedKeys.value = [val.name];
+      console.log(routesData);
     }
   },
   { immediate: true }

+ 30 - 26
src/views/customer/NewCustomerForm.vue

@@ -2,7 +2,7 @@
   <a-modal :visible="visible" :title="editMode ? $t('customer.editCustomer') : $t('customer.addCustomer')"
     :loading="loading" @ok="handleSubmit" @cancel="handleCancel" :width="800" :okText="$t('form.Confirm')"
     :cancelText="$t('form.Cancel')">
-    <a-tabs>
+    <a-tabs v-model:active-key="activeKey" lazy-load>
       <!-- 基本信息 Tab -->
       <a-tab-pane key="1" :title="$t('customer.basicInfo')">
         <a-form :model="formData" :rules="rules" ref="formRef" :label-col-props="{ span: 6 }"
@@ -31,7 +31,7 @@
               show-word-limit />
           </a-form-item>
           <!-- Password -->
-          <a-form-item field="password" :label="$t('customer.password')" required validate-trigger="blur">
+          <a-form-item  :label="$t('customer.password')" required validate-trigger="blur">
             <a-input-password v-model="formData.password" :placeholder="$t('customer.enterPassword')" :max-length="60"
               show-word-limit />
             <a-button type="primary" @click="generatePassword">{{ $t('customer.generatePassword') }}</a-button>
@@ -59,7 +59,7 @@
               <a-radio :value="item.value" v-for="item in userTypes">{{
                 item.value == 1 ? $t('customer.status.normal') : (item.value == 2 ? $t('customer.status.disabled') :
                   (item.value == 3 ? $t('customer.status.pending') : $t('customer.status.suspended')))
-                }} </a-radio>
+              }} </a-radio>
             </a-radio-group>
           </a-form-item>
         </a-form>
@@ -214,6 +214,7 @@ const props = defineProps({
 const invoiceList = ref([])
 const roles = ref([])
 const userTypes = ref([])
+const activeKey = ref(null)
 watch(
   () => props.editData,
   (newVal) => {
@@ -294,7 +295,7 @@ const rules = {
   userName: [{ required: true, message: t('customer.enterAccountNumber') }],
   state: [{ required: true, message: t('customer.stateType') }],
   name: [{ required: true, message: t('customer.nameType') }],
-  password: [{ required: true, message: t('customer.passwordRequired') }],
+  // password: [{ required: true, message: t('customer.passwordRequired') }],
   // roleIds: [{required: true, message: t('customer.roleIdsType')}],
   // userType: [{required: true, message: t('customer.userTypeType')}],
   phone: [{ required: true, message: t('customer.phoneType') }],
@@ -322,29 +323,32 @@ const rules = {
 
 
 const handleSubmit = () => {
-  formRef.value.validate(async (errors) => {
-    formData.value.password = encryptByDES(formData.value.password);
-    if (!errors) {
-      formData.value.password = encryptByDES(formData.value.password);
-      formData.value.amountWarn = Number(formData.value.amountWarn);
-      formData.value.warnPhone = String(formData.value.warnPhone);
-      formData.value.warnEmail = String(formData.value.warnEmail);
-      let response;
-      if (props.editMode) {
-        response = await updateCustomer(formData.value);
-      } else {
-        response = await addCustomer(formData.value);
-      }
-      if (response.code === 200) {
-        Message.success(props.editMode ? t('customer.updateSuccess') : t('customer.addSuccess'));
-        emit('submit', true);
-        emit('update:visible', false);
-      } else {
-        Message.error(response.message || (props.editMode ? t('customer.updateFailed') : t('customer.addFailed')));
-      }
+  if (activeKey.value != 5 && !props.editData?.id) {
+    Message.error('请继续填写下一步骤')
+  } else {
+    formRef.value.validate(async (values,errors) => {
+      if (!errors) {
+        formData.value.password = encryptByDES(formData.value.password);
+        formData.value.amountWarn = Number(formData.value.amountWarn);
+        formData.value.warnPhone = String(formData.value.warnPhone);
+        formData.value.warnEmail = String(formData.value.warnEmail);
+        if (props.editMode) {
+          formData.value.password = ''
+          response = await updateCustomer(formData.value);
+        } else {
+          response = await addCustomer(formData.value);
+        }
+        if (response.code === 200) {
+          Message.success(props.editMode ? t('customer.updateSuccess') : t('customer.addSuccess'));
+          emit('submit', true);
+          emit('update:visible', false);
+        } else {
+          Message.error(response.message || (props.editMode ? t('customer.updateFailed') : t('customer.addFailed')));
+        }
 
-    }
-  });
+      }
+    });
+  }
 };
 
 const handleCancel = () => {