九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
vue3+TS人資實(shí)戰(zhàn)學(xué)習(xí)技巧筆記

一、項(xiàng)目模板地址

https://gitee.com/risingsunblog/hrsass-v3.git

master:開發(fā)模板(方便學(xué)習(xí)編寫代碼)

complete:完整代碼

二、閱讀代碼

1、表單驗(yàn)證

校驗(yàn)規(guī)則,示例代碼

//校驗(yàn)規(guī)則
const rules = {
  mobile: [
    { required: true, message: '請(qǐng)輸入手機(jī)號(hào)', trigger: 'blur' },
    { pattern: /^1[3-9]\d{9}$/, message: '請(qǐng)輸入正確的手機(jī)號(hào)', trigger: 'blur' }
  ],
  password: [
    { required: true, message: '請(qǐng)輸入密碼', trigger: 'blur' },
    { min: 6, max: 32, message: '密碼必須是6-32位', trigger: 'blur' }
  ]
}

綁定vue表單

<el-form ref="login" class="login-form" auto-complete="on" label-position="left" :model="loginForm" :rules="rules">
      <!-- 放置標(biāo)題圖片 @是設(shè)置的別名-->
      <div class="title-container">
        <h3 class="title">
          <img src="@/assets/common/login-logo.png" alt="">
        </h3>
      </div>

      <el-form-item prop="mobile">
        <span class="svg-container">
          <svg-icon icon-class="user" />
        </span>
        <el-input ref="username" v-model="loginForm.mobile" placeholder="請(qǐng)輸入您的手機(jī)號(hào)" name="username" type="text"
          tabindex="1" auto-complete="on" />
      </el-form-item>

      <el-form-item prop="password">
        <span class="svg-container">
          <svg-icon icon-class="password" />
        </span>
        <el-input ref="password" :type="passwordType === 'password' ? 'password' : 'text'" v-model="loginForm.password"
          placeholder="請(qǐng)輸入密碼" name="password" tabindex="2" auto-complete="on" />
        <span class="show-pwd" @click="showPwd">
          <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
        </span>
      </el-form-item>
      <el-button type="primary" style="width: 100%; margin-bottom: 30px" class="loginBtn"
        @click="handleLogin" :loading="loading">登錄</el-button>

handleLogin事件方法

//登錄
const login = ref<FormInstance>()
const handleLogin = () => {
  // 1.校驗(yàn)表單
  login?.value?.validate(async (valid) => {
    if (!valid) return
     //驗(yàn)證通過執(zhí)行邏輯
  })
}

2、多實(shí)體屬性,結(jié)果合并

以前,一般通過object.assign()的方法進(jìn)行拷貝,這里通過 & 符號(hào)。示例代碼

export type UserProfile = {
  userId: string,
  mobile: string,
  username: string,
  roles: roles,
  companyId: string,
  company: string
}

export type UserInfo = {
  staffPhoto: string,
  id: string,
  mobile: string,
  username: string,
  password: string,
  timeOfEntry: string,
  workNumber: string,
  correctionTime: string,
  departmentName: string,
  roleIds: string[],
  companyId: string,
  companyName: string
}

合并屬性

type UserFullInfo = UserProfile & UserInfo
const userInfo = ref<UserFullInfo>()

查詢結(jié)果賦值

  const res = await getUserProfileApi()//用戶形象信息
    const res2 = await getUserInfoApi(res.data.userId)//用戶信息
    userInfo.value = { ...res.data, ...res2.data }

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
成功vue登錄及token驗(yàn)證
全網(wǎng)最全的 Vue3 組件通信方式,別再說不會(huì)組件通信了!
Vue3中操作ref的四種使用方式,建議收藏!
Vue3 TypeScript 完整項(xiàng)目上手教程
體驗(yàn)一下ChatGPT | 大圣前端進(jìn)階指南
C#訪問遠(yuǎn)程主機(jī)資源的方法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服