一次簡(jiǎn)單的Vue項(xiàng)目

7 用戶管理之踩坑詳解

本實(shí)例中有很多坑,現(xiàn)在進(jìn)行較為詳細(xì)的踩坑說明。

添加用戶

本例中通過點(diǎn)擊一個(gè)button彈出一個(gè)含有表單的dialog框,然后填寫表單實(shí)現(xiàn)新增用戶豌注。

首先拉看看這個(gè)添加用戶的button的一些屬性:

  <el-button type="success" icon="el-icon-plus" @click="addDialog=true">添加用戶</el-button>

這個(gè)比較簡(jiǎn)單,通過@click事件實(shí)現(xiàn)了為變量addDialog賦值的效果灯萍,即彈出一個(gè)dialog對(duì)話框轧铁。

el-dialog

按照官網(wǎng)上引入這個(gè)組件時(shí)出現(xiàn)了很多問題,我們還是來詳細(xì)地分析一下旦棉。

  <el-dialog
    title="新增用戶"
    :visible.sync="addDialog"
    :append-to-body="true"
    width="400px"
    @close="close('addForm')"
  >

這里對(duì)兩個(gè)較為坑的屬性進(jìn)行一下分析齿风,一個(gè)是visible.sync。官網(wǎng)的實(shí)例只給出了visible绑洛,如果使用visible的話救斑,無法通過點(diǎn)擊關(guān)閉按鈕和dialog外部的區(qū)域來實(shí)現(xiàn)關(guān)閉dialog(不知道是不是配合el-form-item一起使用的一個(gè)bug,當(dāng)然也有可能是我使用的不正確= =真屯。)脸候,使用visible.sync則可以避免這個(gè)問題。

第二個(gè)是append-to-body绑蔫,這個(gè)屬性官網(wǎng)也給出了解釋运沦,在第一次開發(fā)時(shí)遇到了問題,但是復(fù)現(xiàn)的時(shí)候好像沒有問題了晾匠?應(yīng)該也是自己的沒有理解透徹茶袒,歡迎各位大佬指點(diǎn)。

然后是@close事件綁定了一個(gè)close方法:

    close(formName) {
      this.$nextTick(() => {
        this.$refs[formName].resetFields();
      });
    }

這個(gè)方法用于對(duì)話框關(guān)閉時(shí)清空表單信息凉馆,不直接使用resetFields()的原因好像是渲染有一個(gè)過程薪寓,直接使用會(huì)報(bào)錯(cuò),因此需要使用this.$nextTick()澜共。

el-form

這是表單組件向叉,看看我們這個(gè)例子中是怎么定義的:

    <el-form
      :model="form"
      :label-position="labelPosition"
      status-icon
      ref="form"
      :rules="rules"
    >

前幾個(gè)屬性沒什么好說的,就是正常的綁定數(shù)據(jù)嗦董,設(shè)置表單的位置等母谎,最關(guān)鍵的還是最后一個(gè)rules,顧名思義京革,是為整個(gè)表單添加驗(yàn)證規(guī)則奇唤。

      rules: {
        user: [{ validator: validateUser, trigger: "blur" }],
        password: [{ validator: validatePass, trigger: "blur" }],
        firm_password: [{ validator: validatePass2, trigger: "blur" }],
        description: [{ validator: validateDesc, trigger: "blur" }]
      }

本例中分別綁定了四個(gè)驗(yàn)證規(guī)則,分別是針對(duì)用戶名匹摇,密碼咬扇,備注來進(jìn)行驗(yàn)證的,在表單失去焦點(diǎn)時(shí)觸發(fā)廊勃。驗(yàn)證規(guī)則有點(diǎn)長(zhǎng)懈贺,在前一篇文章中也給出了,此處就不再詳述。在使用時(shí)一定要記得使用回調(diào)梭灿,否則會(huì)出現(xiàn)問題画侣。

對(duì)話框底部的兩個(gè)button分別是關(guān)閉和提交表單信息。

el-table

由于要對(duì)每一行也就是每一個(gè)用戶單獨(dú)進(jìn)行管理堡妒,所以這里使用了scope配乱,通過 Scoped slot 可以獲取到 row, column, $index 和 store(table 內(nèi)部的狀態(tài)管理)的數(shù)據(jù),自然也就方便我們進(jìn)行操作涕蚤。

  <el-table-column align="center" prop="user" label="用戶名" width="auto">
    <template slot-scope="scope">{{ scope.row.user }}</template>
  </el-table-column>
  <el-table-column align="center" prop="level" label="用戶等級(jí)" width="auto">
    <template slot-scope="scope">{{ scope.row.level }}</template>
  </el-table-column>
  <el-table-column align="center" prop="description" label="備注" width="auto">
    <template slot-scope="scope">{{ scope.row.description }}</template>
  </el-table-column>

最后一欄的操作同樣也是彈出一個(gè)dialog并對(duì)該行的用戶進(jìn)行操作宪卿,包括編輯和刪除。

el-popover

這個(gè)組件是我突發(fā)奇想在刪除時(shí)想使用的一個(gè)組件万栅,但是在使用過程中也出現(xiàn)了一些小小的問題佑钾。主要包括了兩個(gè)問題:點(diǎn)擊取消后該組件不關(guān)閉;第一個(gè)問題的解決方法對(duì)表格的第一行不起效烦粒。為此專門提出了以下的解決方法(核心代碼):

    this.$refs.closepopover.click();
    scope._self.$refs[`popover-${scope.$index}`].doClose();

功能展示

添加用戶

image

修改用戶信息

image

刪除用戶

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末休溶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子扰她,更是在濱河造成了極大的恐慌兽掰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徒役,死亡現(xiàn)場(chǎng)離奇詭異孽尽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)忧勿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門杉女,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸳吸,你說我怎么就攤上這事熏挎。” “怎么了晌砾?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵坎拐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我养匈,道長(zhǎng)哼勇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任呕乎,我火速辦了婚禮猴蹂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘楣嘁。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布逐虚。 她就那樣靜靜地躺著聋溜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叭爱。 梳的紋絲不亂的頭發(fā)上撮躁,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音买雾,去河邊找鬼把曼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漓穿,可吹牛的內(nèi)容都是我干的嗤军。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晃危,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叙赚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起僚饭,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤震叮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鳍鸵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苇瓣,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年偿乖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了击罪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汹想,死狀恐怖外邓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情古掏,我是刑警寧澤损话,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站槽唾,受9級(jí)特大地震影響丧枪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庞萍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一拧烦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钝计,春花似錦恋博、人聲如沸齐佳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼吴。三九已至,卻和暖如春疫衩,著一層夾襖步出監(jiān)牢的瞬間硅蹦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工闷煤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留童芹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓鲤拿,卻偏偏與公主長(zhǎng)得像假褪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子皆愉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354