antd vue a-tag實(shí)現(xiàn)動(dòng)態(tài)增刪改

WX20220129-104619.png

動(dòng)態(tài)添加和刪除 #

用數(shù)組生成一組標(biāo)簽,可以動(dòng)態(tài)添加和刪除党窜。
官方提供了新增 刪除的功能鳄厌,但是業(yè)務(wù)還要求修改

       <!-- tags -->
        <span v-for="item in typeList" :key="item.id">
          <a-input
            v-if="item.show"
            ref="input"
            type="text"
            size="small"
            :style="{ width: '78px','padding-bottom':'3px','margin-right':'7px' }"
            v-model="item.name"
            @blur="editType(item)"
            @keyup.enter="editType(item)"
          />
        <!--編輯input-->
          <a-tag
            v-else closable @close="delType(item.id)"
            @click="editInput(item)" >
              {{item.name}}
          </a-tag>
        </span>
        <!-- addTag -->
        <span>
          <a-input
            v-if="inputVisible"
            ref="addInput"
            type="text"
            size="small"
            :style="{ width: '78px','padding-bottom':'3px'}"
            :value="typeForm.name"
            @change="handleInputChange"
            @blur="handleInputConfirm"
            @keyup.enter="handleInputConfirm"
          />
          <!--新增input-->
          <a-tag v-else style="background: #fff; borderStyle: dashed;" @click="addShow">
            <a-icon type="plus" /> 新增類型
          </a-tag>
        </span>

新增:點(diǎn)新增后隱藏tag顯示input,點(diǎn)擊input外調(diào)用新增的接口
刪除:點(diǎn) x 時(shí)獲取item.id然后調(diào)用刪除接口

// 新增類型
        addShow(){
            this.inputVisible = true;
            this.$nextTick(function() {
                this.$refs.addInput.focus();
            });
        },
//提交新增表單
        async handleInputConfirm() {
            if(this.typeForm.name === ''){
                this.inputVisible = false;
                return
            }
            let res = await estateTypeInsert({
                name:this.typeForm.name,
            })
            if(res.code === 200){
                this.$message.success(res.msg);
                this.inputVisible = false;
                this.typeForm.name = ''
                this.getType()
            }else{
                this.$message.error(res.msg);
            }
        },
// 刪除
        delType(id){
            this.$confirm({
                title: "是否刪除",
                onOk:async()=>{
                    let res = await estateTypeDel({manageEstateTypeIds:[id]})
                    if(res.code=== 200){
                        this.$message.success(res.msg);
                        this.getType()
                    }else{
                        this.$message.error(res.msg);
                        this.getType()
                    }
                },
                onCancel:()=>{
                    this.getType() //因?yàn)槭顷P(guān)閉標(biāo)簽后的回調(diào)糊探,如果不重新獲取一下數(shù)據(jù)就會(huì)標(biāo)簽就會(huì)消失
                }
            })
        },

編輯:
稍微有點(diǎn)坑,因?yàn)槭莢-for的span河闰,span中包含input和tag科平。不好判斷顯示的是哪一個(gè)span的input,所以給循環(huán)span數(shù)組都加了show:false的屬性姜性。再根據(jù)show判斷顯示tag還是input瞪慧。

編輯點(diǎn)擊后先改變item.show的值,頁面中的tag變成input部念,但是如果不加ref.input.focus弃酌,光標(biāo)就不會(huì)默認(rèn)聚焦在輸入框里。

所以用戶如果不進(jìn)行編輯直接點(diǎn)input外就會(huì)觸發(fā)不了blur儡炼。一定要先把鼠標(biāo)點(diǎn)進(jìn)input中聚焦妓湘,然后再點(diǎn)input外才會(huì)觸發(fā)blur,所以focus還是要想辦法加進(jìn)去乌询。

但是又因?yàn)槭莢-for的多個(gè)input榜贴,所以要調(diào)用refs.input[index].focus。但是后來轉(zhuǎn)念一想妹田,因?yàn)槭荲-IF所以始終都是只展示一個(gè)input唬党,所以循環(huán)的refs.input雖然是數(shù)組但是長度為1,所以下標(biāo)為0而不是index

// 打開編輯框 聚焦input
        editInput(obj,i) {
            obj.show = true;  // v-if show = true時(shí)候渲染input
            this.$nextTick(()=>{    //如果不加nextTick鬼佣。這個(gè)refs.input打印為undefined驶拱,估計(jì)是頁面dom還沒渲染完成
                console.log(this.$refs.input[0]);//因?yàn)槭荲-IF所以始終都是只展示一個(gè)input,所以循環(huán)的refs.input雖然是數(shù)組但是長度為1晶衷,所以下標(biāo)為0而不是傳進(jìn)來index
                console.log(this.$refs.input[0].focus());//打印了半天$refs.input[0].focus()都是undefined蓝纲,點(diǎn)進(jìn)去看也是一個(gè)空數(shù)組阴孟。。但是實(shí)際是一個(gè)function
                this.$refs.input[0].focus()   //直接調(diào)用方法就可以聚焦了
            })
        },
// 離開編輯框的回調(diào)
        async editType(item){
            let res = await estateTypeUpdate({
                id: item.id,
                name: item.name
            })
            if(res.code === 200){
                this.$message.success(res.msg)
                item.show  = false
            }else{
                this.$message.error(res.msg)
            }
        },
WechatIMG96.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末税迷,一起剝皮案震驚了整個(gè)濱河市永丝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翁狐,老刑警劉巖类溢,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異露懒,居然都是意外死亡闯冷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門懈词,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛇耀,“玉大人,你說我怎么就攤上這事坎弯》牡樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵抠忘,是天一觀的道長撩炊。 經(jīng)常有香客問我,道長崎脉,這世上最難降的妖魔是什么拧咳? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮囚灼,結(jié)果婚禮上骆膝,老公的妹妹穿的比我還像新娘。我一直安慰自己灶体,他們只是感情好阅签,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝎抽,像睡著了一般政钟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上织中,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天锥涕,我揣著相機(jī)與錄音,去河邊找鬼狭吼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛殖妇,可吹牛的內(nèi)容都是我干的刁笙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疲吸!你這毒婦竟也來了座每?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤摘悴,失蹤者是張志新(化名)和其女友劉穎峭梳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹂喻,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葱椭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了口四。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孵运。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蔓彩,靈堂內(nèi)的尸體忽然破棺而出治笨,到底是詐尸還是另有隱情,我是刑警寧澤赤嚼,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布旷赖,位于F島的核電站,受9級(jí)特大地震影響更卒,放射性物質(zhì)發(fā)生泄漏等孵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一逞壁、第九天 我趴在偏房一處隱蔽的房頂上張望流济。 院中可真熱鬧,春花似錦腌闯、人聲如沸绳瘟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糖声。三九已至,卻和暖如春分瘦,著一層夾襖步出監(jiān)牢的瞬間蘸泻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工嘲玫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悦施,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓去团,卻偏偏與公主長得像抡诞,于是被迫代替她去往敵國和親穷蛹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359