Bläddra i källkod

feat 代码优化

Funny 3 år sedan
förälder
incheckning
fd75cda62d

+ 3 - 0
liebao-website.code-workspace

@@ -2,6 +2,9 @@
 	"folders": [
 		{
 			"path": "."
+		},
+		{
+			"path": "..\\liebao-developApi"
 		}
 	],
 	"settings": {}

+ 9 - 9
package-lock.json

@@ -454,9 +454,9 @@
       }
     },
     "ant-design-vue": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-3.2.2.tgz",
-      "integrity": "sha512-PD9fgioIo+0PtSq8E6BePQ0eho83MsAlHURMePo6IFOPpdv0EE7AFeotOK/rUp1FOyb1fZc5tuJGL3MsJmfn1g==",
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-3.2.3.tgz",
+      "integrity": "sha512-yjb+YKfh+61zrdY2DSLzrcGkU9ICn9NKWZJa4PzeA+xaZu/f+tjmaUFbI0K0FZgLQANoVM3FZKP/r/IaFlhlmg==",
       "requires": {
         "@ant-design/colors": "^6.0.0",
         "@ant-design/icons-vue": "^6.1.0",
@@ -760,9 +760,9 @@
       "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
     },
     "core-js": {
-      "version": "3.22.3",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz",
-      "integrity": "sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg=="
+      "version": "3.22.5",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.5.tgz",
+      "integrity": "sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA=="
     },
     "core-util-is": {
       "version": "1.0.2",
@@ -793,9 +793,9 @@
       }
     },
     "dayjs": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz",
-      "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA=="
+      "version": "1.11.2",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz",
+      "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
     },
     "debug": {
       "version": "4.3.4",

+ 1 - 1
package.json

@@ -9,7 +9,7 @@
   },
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
-    "ant-design-vue": "^3.2.2",
+    "ant-design-vue": "^3.2.3",
     "axios": "^0.27.2",
     "js-md5": "^0.7.3",
     "mitt": "^3.0.0",

+ 37 - 18
src/App.vue

@@ -1,17 +1,27 @@
+<script lang="ts">
+import DevelopAgreement from '@/components/developAgreement.vue';
+export default defineComponent({
+  components: {
+    DevelopAgreement
+  },
+})
+</script>
 <script setup lang="ts">
-import { nextTick, onMounted, provide, ref, watch } from 'vue'
+import { defineComponent,nextTick, onMounted, provide, ref, watch } from 'vue'
 import { useRouter } from 'vue-router';
 import emitter from '@/util/eventBus'
+import { message } from 'ant-design-vue';
 const router = useRouter()
 let nickName = ref<string>('')
 let avatar = ref<string>('https://joeschmoe.io/api/v1/random')
-let isTop = ref(true)
-let activeIndex = ref(0)
+let isTop = ref<boolean>(true)
+let activeIndex = ref<number>(0)
 let menuList = ref(['首页', '优巨引擎官网', '文档中心', '管理中心'])
 const container = ref()
 let currentRouteName = ref()
 let visible = ref<boolean>(false)
-let isRouterAlive = ref(true);
+let isRouterAlive = ref<boolean>(true);
+let showAgreement = ref<boolean>(false)
 const reload = () => {
   isRouterAlive.value = false;
   nextTick(() => {
@@ -59,6 +69,7 @@ const loginOut = () => {
   router.push('/')
 }
 const menu = (i: number) => {
+  let token = localStorage.getItem('token')
   activeIndex.value = i
   switch (i) {
     case 0:
@@ -68,10 +79,20 @@ const menu = (i: number) => {
       window.open("http://www.liebaoai.cn/", "_blank");
       break;
     case 2:
-      router.push('/development')
+      if (token) {
+        window.open("http://open-doc.liebaoai.cn:88/", "_blank");
+      } else {
+        router.push('/login')
+        message.warning('请登录后再点击文档中心!')
+      }
       break;
     case 3:
-      router.push('/management/appInfo')
+      if (token) {
+        router.push('/management/appInfo')
+      } else {
+        router.push('/login')
+        message.warning('请登录后再点击管理中心!')
+      }
       break;
     default:
       break;
@@ -108,9 +129,8 @@ const menu = (i: number) => {
                 </div>
               </template>
               <div class="flex items-center cursor-pointer">
-                <!-- <img class="w-30px h-30px rounded-1/2 mr-10px" :src="avatar" alt=""> -->
                 <a-avatar size="30" :src="avatar" class="bg-[#f7f7f7]"></a-avatar>
-                <div class="text-18">{{ nickName }}</div>
+                <div class="text-18 ml-10px">{{ nickName }}</div>
               </div>
             </a-tooltip>
           </template>
@@ -131,14 +151,11 @@ const menu = (i: number) => {
     <a-layout-footer class="footer">
       <!-- <div class="name">优巨引擎</div> -->
       <div class="agreement">
-        <div>开发者服务协议</div>
-        <div>&ensp;|&ensp;</div>
-        <div>用户服务协议</div>
-        <div>&ensp;|&ensp;</div>
-        <div>联系我们</div>
+        <div @click="showAgreement = true" class="cursor-pointer">开发者服务协议</div>
+        <div>&ensp;|&ensp;苏州优巨引擎科技有限公司</div>
       </div>
       <div class="record-number">
-        优巨引擎&ensp;&ensp;&ensp;备案号:苏ICP备2021010118号
+        备案号:苏ICP备2021010118号
       </div>
     </a-layout-footer>
   </a-layout>
@@ -147,7 +164,7 @@ const menu = (i: number) => {
       <template #title>
         <div class="flex flex-col items-center px-20px py-20px">
           <div class="text-16px mb-10px text-dark-500">在线客服,扫码联系</div>
-          <img class="w-160px h-160px" src="@/assets/images/16.png" alt="">
+          <img class="w-160px h-160px" src="@/assets/images/16-1.png" alt="">
         </div>
       </template>
       <div
@@ -159,8 +176,8 @@ const menu = (i: number) => {
     <a-tooltip placement="left" color="white">
       <template #title>
         <div class="flex flex-col items-center px-20px py-20px">
-          <div class="text-16px mb-10px text-dark-500">在线客服,扫码联系</div>
-          <img class="w-160px h-160px" src="@/assets/images/16.png" alt="">
+          <div class="text-16px mb-10px text-dark-500">关注公众号,了解更多</div>
+          <img class="w-160px h-160px" src="@/assets/images/16-2.png" alt="">
         </div>
       </template>
       <div
@@ -173,6 +190,9 @@ const menu = (i: number) => {
   <a-modal centered v-model:visible="visible" ok-text="确认" cancel-text="取消" title="提示" @ok="loginOut">
     <p>此操作将退出当前登录用户, 是否继续?</p>
   </a-modal>
+  <a-modal centered v-model:visible="showAgreement" :footer="null" :width="900">
+    <DevelopAgreement></DevelopAgreement>
+  </a-modal>
 </template>
 
 <style lang="scss" scoped>
@@ -313,7 +333,6 @@ const menu = (i: number) => {
     display: flex;
     font-size: 12px;
     font-weight: 400;
-    cursor: pointer;
   }
 
 }

+ 4 - 1
src/api/index.ts

@@ -38,7 +38,10 @@ export const setCallback = (params: any) => {
   return postJson('app/set/callback/url', params)
 }
 
-
+// 重置密码
+export const resetPassword = (params: any) => {
+  return post('app/login/password/change', params)
+}
 
 
 

src/assets/images/10 (1).png → src/assets/images/10-1.png


src/assets/images/10 (2).png → src/assets/images/10-2.png


src/assets/images/11 (1).png → src/assets/images/11-0.png


BIN
src/assets/images/16-1.png


BIN
src/assets/images/16-2.png


BIN
src/assets/images/16.png


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 279 - 0
src/components/developAgreement.vue


+ 15 - 1
src/router/index.ts

@@ -40,6 +40,20 @@ const router = createRouter({
   history: createWebHistory(),
   routes
 });
-
+router.beforeEach((to, from, next) => {
+  let paths = ['/', '/login', '/register']
+  if (paths.includes(to.path)) {
+    next()
+  } else {
+    const token = localStorage.getItem('token') || null;
+    if (token) {
+      next()
+    } else if (to.path !== '/resetPassword') {
+      router.push('/login')
+    } else {
+      next()
+    }
+  }
+})
 export default router;
 

+ 5 - 5
src/views/home/index.vue

@@ -91,9 +91,9 @@ const toRegister = () => {
     <div class="pt-70px h-604px access-process">
       <div class="flex flex-col justify-center">
         <div class="flex justify-center items-center">
-          <img class="w-93px h-21px" src="@/assets/images/10 (1).png" alt="" srcset="">
+          <img class="w-93px h-21px" src="@/assets/images/10-1.png" alt="" srcset="">
           <div class="mx-30px text-32px leading-38px text-dark-400 font-bold">接入流程</div>
-          <img class="w-93px h-21px" src="@/assets/images/10 (2).png" alt="" srcset="">
+          <img class="w-93px h-21px" src="@/assets/images/10-2.png" alt="" srcset="">
         </div>
         <div class="text-16px leading-19px text-gray-600 text-center font-500 uppercase mt-10px">access process</div>
       </div>
@@ -104,7 +104,7 @@ const toRegister = () => {
             <div class="text-20px text-white mt-25px">{{ i + 1 }}</div>
             <div class="text-16px font-500 text-dark-100 mt-90px">{{ v.tip }}</div>
           </div>
-          <img v-if="i !== steps.length - 1" class="mx-50px w-50px h-47px" src="@/assets/images/11 (1).png" alt=""
+          <img v-if="i !== steps.length - 1" class="mx-50px w-50px h-47px" src="@/assets/images/11-0.png" alt=""
             srcset="">
         </div>
       </div>
@@ -125,9 +125,9 @@ const toRegister = () => {
     <div class="pt-70px partner">
       <div class="flex flex-col justify-center">
         <div class="flex justify-center items-center">
-          <img class="w-93px h-21px" src="@/assets/images/10 (1).png" alt="" srcset="">
+          <img class="w-93px h-21px" src="@/assets/images/10-1.png" alt="" srcset="">
           <div class="mx-30px text-32px leading-38px text-dark-400 font-bold">合作伙伴</div>
-          <img class="w-93px h-21px" src="@/assets/images/10 (2).png" alt="" srcset="">
+          <img class="w-93px h-21px" src="@/assets/images/10-2.png" alt="" srcset="">
         </div>
         <div class="text-16px leading-19px text-gray-600 text-center font-500 uppercase mt-10px">cooperative partner
         </div>

+ 88 - 13
src/views/login/index.vue

@@ -1,10 +1,18 @@
 <script lang="ts">
+import { MobileOutlined, MailOutlined, LockOutlined, PlusOutlined, LoadingOutlined } from '@ant-design/icons-vue';
 export default defineComponent({
-  name: 'login'
+  name: 'login',
+  components: {
+    MobileOutlined,
+    MailOutlined,
+    LockOutlined,
+    PlusOutlined,
+    LoadingOutlined
+  },
 })
 </script>
 <script setup lang='ts'>
-import { loginSendSms, loginVerification, loginPassword, userInfo } from '@/api';
+import { loginSendSms, loginVerification, loginPassword, userInfo, resetPassword } from '@/api';
 import router from '@/router';
 import util from '@/util';
 import { message } from 'ant-design-vue';
@@ -14,13 +22,25 @@ let tabs = ref(['密码登录', '短信码登录'])
 let verifyText = ref<string>('获取验证码')
 let currentIdx = ref(0)
 let time = ref<number>(60)
-let timer = ref<number>()
+let timer = ref<any>()
 let canSendSms = ref<boolean>(true)
+let visibleReset = ref<boolean>(false)
+interface FormState {
+  mobile: string;
+  newPassword: string;
+  passwordAgain: string;
+  code?: number
+}
 interface FormData {
   mobile: string,
   password: string
   code?: number
 }
+let formState: UnwrapRef<FormState> = reactive({
+  mobile: '',
+  newPassword: '',
+  passwordAgain: '',
+})
 let formData: UnwrapRef<FormData> = reactive({
   mobile: '',
   password: ''
@@ -28,11 +48,11 @@ let formData: UnwrapRef<FormData> = reactive({
 onMounted(() => {
 
 })
-const doSendSms = () => {
-  if (!util.mobile(formData.mobile)) {
+const doSendSms = (type: number) => {
+  if (type === 1 && !util.mobile(formData.mobile) || type === 2 && !util.mobile(formState.mobile)) {
     return message.error('请填写正确格式的手机号!')
   }
-  loginSendSms({ mobile: formData.mobile, type: 1 }).then((res: any) => {
+  loginSendSms({ mobile: type === 1 ? formData.mobile : formState.mobile, type }).then((res: any) => {
     console.log(res);
     if (res.code === 200) {
       message.success('发送成功,请查收短信验证码!')
@@ -68,7 +88,7 @@ const loginPw = () => {
       localStorage.setItem("token", res.data.token);
       getUserInfo()
     } else {
-      return message.error(res.message);
+      return message.error(res.msg);
     }
   })
 }
@@ -78,7 +98,17 @@ const loginCode = () => {
       localStorage.setItem("token", res.data.token);
       getUserInfo()
     } else {
-      return message.error(res.message);
+      return message.error(res.msg);
+    }
+  })
+}
+const resetPw = () => {
+  resetPassword({ mobile: formState.mobile, newPassword: formState.newPassword, code: formState.code }).then((res: any) => {
+    if (res.code === 200) {
+      message.success('已重置成功!')
+      visibleReset.value = false
+    } else {
+      message.error(res.msg)
     }
   })
 }
@@ -116,7 +146,7 @@ const loginCode = () => {
                 </a-input-password>
               </a-form-item>
               <a-form-item>
-                <div class="text-gray-400 cursor-pointer text-right">忘记密码</div>
+                <div @click="visibleReset = true" class="text-gray-400 cursor-pointer text-right">忘记密码</div>
               </a-form-item>
               <a-form-item>
                 <a-button @click="loginPw" :disabled="!formData.mobile || !formData.password" class="w-full h-50px"
@@ -141,9 +171,10 @@ const loginCode = () => {
                       <img class="w-28px h-28px" src="@/assets/images/17-4.png" alt="">
                     </template>
                   </a-input>
-                  <a-button @click="doSendSms" :disabled="!canSendSms" class="w-110px h-50px ml-20px" type="primary">{{
-                      verifyText
-                  }}
+                  <a-button @click="doSendSms(1)" :disabled="!canSendSms" class="w-110px h-50px ml-20px" type="primary">
+                    {{
+                        verifyText
+                    }}
                   </a-button>
                 </a-input-group>
               </a-form-item>
@@ -155,13 +186,53 @@ const loginCode = () => {
             </a-form>
             <div class="flex text-16px text-dark-500">
               <div>还没有账号,去</div>
-              <div class="text-blue-500 cursor-pointer">注册</div>
+              <div @click="router.push('/register')" class="text-blue-500 cursor-pointer">注册</div>
             </div>
           </div>
         </div>
       </div>
     </div>
   </div>
+  <a-modal class="reset" v-model:visible="visibleReset" :footer="null" centered title="重置密码">
+    <a-form :model="formState" class="w-400px mx-auto my-0">
+      <a-form-item>
+        <a-input v-model:value="formState.mobile" :maxlength="11" allowClear placeholder="输入手机号">
+          <template #prefix>
+            <MobileOutlined style="color: rgba(0, 0, 0, 0.25)" />
+          </template>
+        </a-input>
+      </a-form-item>
+      <a-form-item>
+        <a-input-password v-model:value="formState.newPassword" allowClear placeholder="输入新密码">
+          <template #prefix>
+            <LockOutlined style="color: rgba(0, 0, 0, 0.25)" />
+          </template>
+        </a-input-password>
+      </a-form-item>
+      <a-form-item>
+        <a-input-password v-model:value="formState.passwordAgain" allowClear placeholder="再次输入新密码">
+          <template #prefix>
+            <LockOutlined style="color: rgba(0, 0, 0, 0.25)" />
+          </template>
+        </a-input-password>
+      </a-form-item>
+      <a-form-item>
+        <a-input v-model:value="formState.code" :maxlength="4" placeholder="输入短信验证码" allowClear
+          style="width: calc(100% - 130px)">
+          <template #prefix>
+            <MailOutlined style="color: rgba(0, 0, 0, 0.25)" />
+          </template>
+        </a-input>
+        <a-button @click="doSendSms(2)" :disabled="!canSendSms" class="ml-20px w-110px" type="primary">{{ verifyText }}
+        </a-button>
+      </a-form-item>
+      <a-form-item>
+        <a-button @click="resetPw"
+          :disabled="!formState.mobile || !formState.newPassword || !formState.passwordAgain || !formState.code"
+          class="w-full" type="primary">确认</a-button>
+      </a-form-item>
+    </a-form>
+  </a-modal>
 </template>
 <style lang='scss' scoped>
 .login-bg {
@@ -173,4 +244,8 @@ const loginCode = () => {
     height: calc(100vh - 280px);
   }
 }
+
+.reset :deep(.ant-modal-title) {
+  text-align: center !important;
+}
 </style>

+ 1 - 1
src/views/management/userCenter/appInfo.vue

@@ -28,7 +28,7 @@ const getAppInfo = () => {
       // applicationInfo = reactive<Application>(res.data[0])
       Object.assign(applicationInfo, res.data[0])
     } else {
-      message.error(res.message)
+      message.error(res.msg)
     }
   })
 }

+ 54 - 27
src/views/register/index.vue

@@ -1,5 +1,7 @@
 <script lang="ts">
 import { MobileOutlined, MailOutlined, LockOutlined, PlusOutlined, LoadingOutlined } from '@ant-design/icons-vue';
+import DevelopAgreement from '@/components/developAgreement.vue';
+
 export default defineComponent({
   name: 'register',
   components: {
@@ -7,7 +9,8 @@ export default defineComponent({
     MailOutlined,
     LockOutlined,
     PlusOutlined,
-    LoadingOutlined
+    LoadingOutlined,
+    DevelopAgreement
   },
 })
 </script>
@@ -30,10 +33,13 @@ let submitDisabled = ref<Boolean>(true)
 let loading = ref<boolean>(false);
 let fileList = ref([]);
 let time = ref<number>(60)
-let timer = ref<number>()
+let timer = ref<any>()
 let canSendSms = ref<boolean>(true)
 let labelCol = ref<object>({ style: { width: '200px' } })
 let action = ref<string>('http://153.37.175.42:8070/app/common/upload')
+let checked = ref<boolean>(false)
+let showAgreement = ref<boolean>(false)
+
 interface FormState {
   provinceName: string,
   cityName: string,
@@ -85,7 +91,7 @@ const formState: UnwrapRef<FormState> = reactive({
   contactName: '',
   mobile: ''
 });
-window._AMapSecurityConfig = {
+(window as any)._AMapSecurityConfig = {
   securityJsCode: '23cf1bca0e52bbf8cb129047cdb46f10'
 }
 onMounted(() => {
@@ -105,12 +111,15 @@ watch(formState, (newValue) => {
   }
 }, { deep: true })
 const next = async () => {
+  if (!checked.value) {
+    return message.error('请先勾选开发者服务协议!')
+  }
   if (formState.password !== formState.passwordAgain) {
     return message.error('俩次输入的密码不一致,请修改为相同密码!')
   }
   let res: any = await verification({ mobile: formState.userAccount, code: formState.code })
   if (res.code !== 200) {
-    return message.error(res.message)
+    return message.error(res.msg)
   }
   if (!util.mobile(formState.userAccount)) {
     return message.error('请填写正确格式的注册手机号!')
@@ -161,7 +170,7 @@ const submit = async () => {
     if (res.code === 0) {
       current.value++;
     } else {
-      message.error(res.message)
+      message.error(res.msg)
     }
   })
 }
@@ -242,48 +251,61 @@ const handleChange4 = (info: UploadChangeParam) => {
       <!-- 账号信息 -->
       <a-form v-if="current === 0" :model="formState" class="w-600px">
         <a-form-item>
-          <a-input v-model:value="formState.userAccount" :maxlength="11" allowClear placeholder="输入注册手机号">
+          <a-input size="large" v-model:value="formState.userAccount" :maxlength="11" allowClear placeholder="输入注册手机号">
             <template #prefix>
               <MobileOutlined style="color: rgba(0, 0, 0, 0.25)" />
             </template>
           </a-input>
         </a-form-item>
         <a-form-item>
-          <a-input-password v-model:value="formState.password" allowClear placeholder="输入登录密码">
+          <a-input-password size="large" v-model:value="formState.password" allowClear placeholder="输入登录密码">
             <template #prefix>
               <LockOutlined style="color: rgba(0, 0, 0, 0.25)" />
             </template>
           </a-input-password>
         </a-form-item>
         <a-form-item>
-          <a-input-password v-model:value="formState.passwordAgain" allowClear placeholder="再次输入登录密码">
+          <a-input-password size="large" v-model:value="formState.passwordAgain" allowClear placeholder="再次输入登录密码">
             <template #prefix>
               <LockOutlined style="color: rgba(0, 0, 0, 0.25)" />
             </template>
           </a-input-password>
         </a-form-item>
         <a-form-item>
-          <a-input v-model:value="formState.code" :maxlength="4" placeholder="输入短信验证码" allowClear
-            style="width: calc(100% - 130px)">
-            <template #prefix>
-              <MailOutlined style="color: rgba(0, 0, 0, 0.25)" />
-            </template>
-          </a-input>
-          <a-button @click="doSendSms" :disabled="!canSendSms" class="ml-20px w-110px" type="primary">{{ verifyText }}
-          </a-button>
+          <a-input-group compact>
+            <a-input size="large" v-model:value="formState.code" :maxlength="4" placeholder="输入短信验证码" allowClear
+              style="width: calc(100% - 130px)">
+              <template #prefix>
+                <MailOutlined style="color: rgba(0, 0, 0, 0.25)" />
+              </template>
+            </a-input>
+            <a-button size="large" @click="doSendSms" :disabled="!canSendSms" class="ml-20px w-110px h-40px"
+              type="primary">{{
+                  verifyText
+              }}
+            </a-button>
+          </a-input-group>
+        </a-form-item>
+        <a-form-item>
+          <a-checkbox v-model:checked="checked">
+            <div class="flex text-14px font-500">
+              <p class="text-[#333333]">已阅读并同意</p>
+              <p @click="showAgreement = true" class="text-[#1B8DFF]">《优巨引擎开发平台服务注册协议》</p>
+            </div>
+          </a-checkbox>
         </a-form-item>
       </a-form>
       <!-- 资料提交 -->
       <a-form v-if="current === 1" :model="formState" :label-col="labelCol">
         <a-form-item label="企业地址" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.address" allowClear placeholder="输入企业地址省市区" />
+          <a-input size="large" v-model:value="formState.address" allowClear placeholder="输入企业地址省市区" />
           <a-textarea class="mt-24px" v-model:value="formState.street" placeholder="输入企业详细地址" />
         </a-form-item>
         <a-form-item label="企业名称" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.merchantName" allowClear placeholder="输入企业名称" />
+          <a-input size="large" v-model:value="formState.merchantName" allowClear placeholder="输入企业名称" />
         </a-form-item>
         <a-form-item label="统一社会信用代码" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.bizLicenseNo" allowClear placeholder="输入企业统一社会信用代码" />
+          <a-input size="large" v-model:value="formState.bizLicenseNo" allowClear placeholder="输入企业统一社会信用代码" />
         </a-form-item>
         <a-form-item label="营业执照" :rules="[{ required: true }]">
           <template class="flex justify-between">
@@ -303,17 +325,17 @@ const handleChange4 = (info: UploadChangeParam) => {
           </template>
         </a-form-item>
         <a-form-item label="法人/实际控制人姓名" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.legalPerson" allowClear placeholder="输入企业法人/实际控制人姓名" />
+          <a-input size="large" v-model:value="formState.legalPerson" allowClear placeholder="输入企业法人/实际控制人姓名" />
         </a-form-item>
         <a-form-item label="法人/实际控制人证件类型" :rules="[{ required: true }]">
-          <a-select v-model:value="formState.idcardType">
+          <a-select size="large" v-model:value="formState.idcardType">
             <a-select-option :value="1">中国大陆身份证</a-select-option>
             <a-select-option :value="2">港澳台(身份证/居民通行证)</a-select-option>
             <a-select-option :value="3">护照(限境外人士)</a-select-option>
           </a-select>
         </a-form-item>
         <a-form-item label="法人/实际控制人证件号码" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.idcardNo" allowClear placeholder="输入法人/实际控制人证件号码" />
+          <a-input size="large" v-model:value="formState.idcardNo" allowClear placeholder="输入法人/实际控制人证件号码" />
         </a-form-item>
         <a-form-item label="证件照正面" :rules="[{ required: true }]">
           <template class="flex justify-between">
@@ -368,10 +390,10 @@ const handleChange4 = (info: UploadChangeParam) => {
           </template>
         </a-form-item>
         <a-form-item label="公司联系人" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.contactName" allowClear placeholder="输入公司联系人" />
+          <a-input size="large" v-model:value="formState.contactName" allowClear placeholder="输入公司联系人" />
         </a-form-item>
         <a-form-item label="联系电话" :rules="[{ required: true }]">
-          <a-input v-model:value="formState.mobile" allowClear placeholder="输入联系电话" :maxlength="11" />
+          <a-input size="large" v-model:value="formState.mobile" allowClear placeholder="输入联系电话" :maxlength="11" />
         </a-form-item>
       </a-form>
       <!-- 提交成功 -->
@@ -385,14 +407,19 @@ const handleChange4 = (info: UploadChangeParam) => {
       </div>
     </div>
     <div class="w-600px flex items-center justify-between mb-100px">
-      <a-button v-if="current === 1" @click="prev">上一步</a-button>
-      <a-button class="w-600px mt-50px" v-if="!current" :disabled="firstDisabled" type="primary" @click="next">下一步
+      <a-button size="large" v-if="current === 1" @click="prev">上一步</a-button>
+      <a-button size="large" class="w-600px mt-50px" v-if="!current" :disabled="firstDisabled" type="primary"
+        @click="next">下一步
       </a-button>
-      <a-button class="w-400px" v-if="current === 1" :disabled="submitDisabled" type="primary" @click="submit">
+      <a-button size="large" class="w-400px" v-if="current === 1" :disabled="submitDisabled" type="primary"
+        @click="submit">
         提交资料
       </a-button>
     </div>
   </div>
+  <a-modal centered v-model:visible="showAgreement" :footer="null" :width="900">
+    <DevelopAgreement></DevelopAgreement>
+  </a-modal>
 </template>
 <style lang='scss' scoped>
 .avatar-uploader :deep(.ant-upload) {