vue-iview動(dòng)態(tài)新增和刪除的方法
本文實(shí)例為大家分享了vue-iview動(dòng)態(tài)新增和刪除的具體代碼,供大家參考,具體內(nèi)容如下
參考鏈接:vue iview動(dòng)態(tài)新增和刪除
我根據(jù)上面的博客進(jìn)行了test和小修改,效果如下:
源碼如下:
html代碼
<template>
<Form ref="capsuleAttr" :model="capsuleAttr" :label-width="100" style="width: 80%">
<ul>
<li v-for="(item, index) in capsuleAttr.attrList" v-if="item.status" :key="index">
<FormItem
style="width:80%;"
label="屬性名稱:"
:prop="'attrList.' + index + '.AttrName'"
:rules="{required: true, message: '屬性名稱不能為空', trigger: 'blur'}"
>
<Col span="7">
<Input v-model.trim="item.AttrName" placeholder="屬性名稱" />
</Col>
<Col span="2" style="margin-left:20%;">
<Button @click="handleRemove(item,index)" type="error" icon="md-close">刪除</Button>
</Col>
</FormItem>
<FormItem
style="width:80%;"
label="溫度:"
:prop="'attrList.' + index + '.Temperature'"
:rules="{required: true, message: '溫度不能為空', trigger: 'blur',type:'string', transform(val) {
return String(val)}}"
>
<Input v-model.trim="item.Temperature" placeholder="溫度" />
</FormItem>
<FormItem
style="width:80%;"
label="流量:"
:prop="'attrList.' + index + '.Volume'"
:rules="{required: true, message: '流量不能為空', trigger: 'blur'}"
>
<Input v-model.trim="item.Volume" placeholder="流量" />
</FormItem>
<FormItem label="推薦流量:" style="width:80%;">
<Input v-model.trim="item.RcommendVolume" placeholder="流量" />
</FormItem>
<FormItem label="吹氣時(shí)間:" style="width:80%;">
<Input v-model.trim="item.Blow" placeholder="吹氣時(shí)間" />
</FormItem>
<FormItem label="浸泡時(shí)間:" style="width:80%;">
<Input v-model.trim="item.Soak" placeholder="浸泡時(shí)間" />
</FormItem>
<FormItem
label="作業(yè)過(guò)程描述:"
style="width:80%;"
:prop="'attrList.' + index + '.WorkDesc'"
:rules="{required: true, message: '作業(yè)過(guò)程描述不能為空', trigger: 'blur'}"
>
<Input
v-model="item.WorkDesc"
type="textarea"
:autosize="{minRows: 5,maxRows: 10}"
placeholder="輸入作業(yè)過(guò)程描述..."
/>
</FormItem>
<FormItem style="width:80%;" label="作業(yè)順序:">
<!-- :rules="ruleWorkSort" -->
<Input v-model.trim="item.WorkSort" placeholder="作業(yè)順序" />
</FormItem>
<Divider dashed />
</li>
</ul>
<FormItem>
<Row>
<Col span="8">
<Button type="dashed" long @click="handleAttrAdd" icon="md-add">增加屬性</Button>
</Col>
</Row>
</FormItem>
<FormItem>
<Button type="primary" @click="handleAttrSubmit('capsuleAttr')">保存</Button>
<Button @click="$router.go( -1)" style="margin-left: 8px">返回</Button>
</FormItem>
</Form>
</template>
JS代碼
<script>
export default {
data () {
return {
capsuleAttr: {
// 膠囊屬性
index: 1,
attrList: [
{
AttrName: '',
Temperature: '',
Volume: '',
CapsuleId: '', // 屬性ID
RcommendVolume: '', // 推薦流量
WorkDesc: '',
Blow: '', // 吹氣時(shí)間
Soak: '', // 浸泡時(shí)間
WorkSort: '',
index: 1,
status: 1
}
]
}
}
},
method: {
// 添加屬性
handleAttrAdd () {
this.capsuleAttr.index++
this.capsuleAttr.attrList.push({
AttrName: '',
Temperature: '',
Volume: '',
WorkDesc: '',
WorkSort: '',
RcommendVolume: '', // 推薦流量
Blow: '', // 吹氣時(shí)間
Soak: '', // 浸泡時(shí)間
index: this.capsuleAttr.index,
status: 1
})
},
handleRemove (item, index) {
console.log(item.Id)
if (item.Id) {
this.$Modal.confirm({
title: '刪除本條記錄',
onOk: () => {
ProductModule.getCapsuleAttributeDel(item.Id).then(res => {
if (res.data.Success) {
this.capsuleAttr.attrList[index].status = 0
this.$Message.success('刪除成功')
}
})
},
onCancel: () => {
console.log('onCancel')
}
})
return
}
this.capsuleAttr.attrList[index].status = 0
},
// 膠囊屬性保存新增
handleAttrSubmit (name) {
this.$refs[name].validate(valid => {
if (valid) {
if (this.userId) {
this.getCapsuleAttrEditAdd()
} else {
if (this.capsuleId) {
this.getSaveAttrCreate()
} else {
this.$Message.error('請(qǐng)先保存膠囊數(shù)據(jù)')
}
}
} else {
this.$Message.error('保存失敗!')
}
})
}
}
}
</script>
關(guān)于vue.js組件的教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
更多vue學(xué)習(xí)教程請(qǐng)閱讀專題《vue實(shí)戰(zhàn)教程》
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot?vue測(cè)試平臺(tái)前端項(xiàng)目查詢新增功能
這篇文章主要為大家介紹了springboot+vue測(cè)試平臺(tái)前端項(xiàng)目實(shí)現(xiàn)查詢新增功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
vue實(shí)現(xiàn)自定義公共組件及提取公共的方法
這篇文章主要介紹了vue實(shí)現(xiàn)自定義公共組件及提取公共的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
關(guān)于Vue不能監(jiān)聽(tīng)(watch)數(shù)組變化的解決方法
本文主要介紹了Vue不能監(jiān)聽(tīng)(watch)數(shù)組變化的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
vue前端獲取不同客戶端mac地址最詳細(xì)步驟(避免踩坑)
在開(kāi)發(fā)過(guò)程中,綁定賬號(hào)和電腦的功能可以通過(guò)獲取電腦的MAC地址實(shí)現(xiàn),下面這篇文章主要介紹了vue前端獲取不同客戶端mac地址的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
vue 中常用操作數(shù)組的方法(forEach()和reduce())
文章介紹了JavaScript中常用的操作數(shù)組方法,包括forEach()和reduce(),forEach()用于遍歷數(shù)組并對(duì)每個(gè)元素執(zhí)行操作,而reduce()則用于遍歷數(shù)組并進(jìn)行累加等迭代操作,感興趣的朋友一起看看吧2025-03-03
Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽(tīng)功能
這篇文章主要介紹了Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽(tīng)功能,實(shí)現(xiàn)思路非常簡(jiǎn)單,本文結(jié)合實(shí)例代碼效果圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
vue3自定義動(dòng)態(tài)不同UI組件篩選框案例
動(dòng)態(tài)組件是一種在Vue中根據(jù)條件或用戶輸入來(lái)動(dòng)態(tài)渲染不同組件,本文主要介紹了vue3自定義動(dòng)態(tài)不同UI組件篩選框案例,具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
Vue實(shí)現(xiàn)頁(yè)面刷新跳轉(zhuǎn)到當(dāng)前頁(yè)面功能
在Vue.js應(yīng)用開(kāi)發(fā)中,有時(shí)候我們需要實(shí)現(xiàn)頁(yè)面的刷新或跳轉(zhuǎn)到當(dāng)前頁(yè)面的功能,這種需求在某些特定場(chǎng)景下非常有用,本文將詳細(xì)介紹如何在Vue中實(shí)現(xiàn)頁(yè)面刷新和跳轉(zhuǎn)到當(dāng)前頁(yè)面的功能,并提供多個(gè)示例和使用技巧,需要的朋友可以參考下2024-10-10

