vue elementui table編輯表單時(shí)彈框增加編輯明細(xì)數(shù)據(jù)的實(shí)現(xiàn)
需求:
前端進(jìn)行新增表單時(shí),同時(shí)增加表單的明細(xì)數(shù)據(jù)。明細(xì)數(shù)據(jù)部分,通過(guò)彈框方式增加或者編輯。
效果圖:
代碼:
<!-- 新增主表彈窗 Begin --> <el-dialog :title="titleInfo" top="5vh" center width="85%" :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" > <span> <el-form ref="form" :rules="formRules" :model="form" style="margin: 0 auto" label-width="32%" > <el-row :gutter="24"> <el-col :span="12"> <el-form-item label="申請(qǐng)日期:" prop="applyDate"> <el-date-picker v-model="form.applyDate" style="width: 80%" clearable type="date" value-format="yyyy-MM-dd" placeholder="請(qǐng)選擇申請(qǐng)日期" /> </el-form-item> </el-col> <el-col :span="12"> <el-col :span="14"> <el-form-item prop="applyDept" label="申請(qǐng)部門(mén):" label-width="30%" > <el-select v-model="form.applyDept" style="width: 80%" :disabled="true" > <el-option v-for="item in deptLists" :key="item.id" :label="item.departName" :value="item.orgCode" /> </el-select> </el-form-item> </el-col> <el-col :span="10"> <el-form-item prop="applyUsername" label="申請(qǐng)人:" label-width="30%" > <el-input v-model="form.applyUsername" style="width: 70%" :disabled="true" /> </el-form-item> </el-col> </el-col> </el-row> </el-form> <el-card> <div slot="header"> <span style="font-weight: bold">外來(lái)人員名單</span> <el-button style="float: right" type="primary" @click="insertExterRow" >添加</el-button > </div> <el-table ref="exterTable" align="center" highlight-cell keep-source stripe border style="width: 100%" max-height="400" :data="exterTableData" :edit-config="{ trigger: 'click', mode: 'row', showStatus: true }" > <el-table-column prop="useUser" label="姓名" align="center" /> <el-table-column prop="idCard" label="身份證號(hào)" align="center" /> <el-table-column prop="phone" label="手機(jī)號(hào)" align="center" /> <el-table-column label="操作" align="center" width="220"> <template slot-scope="scope"> <el-button mode="text" icon="el-icon-edit" @click="editExterRow(scope.$index, scope.row)" /> <el-button mode="text" icon="el-icon-delete" @click="removeExterRow(scope.$index, scope.row)" /> </template> </el-table-column> </el-table> </el-card> </span> <span slot="footer" class="dialog-footer"> <el-button @click="cancel">取消</el-button> <el-button type="success" :loading="saveLoading" @click="save" >保存</el-button > </span> </el-dialog> <!-- 新增主表彈窗 End --> <!-- 外來(lái)人員彈窗 Start--> <el-dialog :title="exterTitleInfo" top="5vh" center width="50%" :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="exterDialogVisible" > <span> <el-form ref="exterForm" :rules="exterFormRules" :model="exterForm" style="margin: 0 auto" label-width="25%" > <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="姓名:" prop="useUser"> <el-input v-model="exterForm.useUser" placeholder="請(qǐng)輸入姓名" style="width: 80%" /> </el-form-item> </el-col> </el-row> <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="身份證號(hào):" prop="idCard"> <el-input v-model="exterForm.idCard" placeholder="請(qǐng)輸入身份證號(hào)" style="width: 80%" /> </el-form-item> </el-col> </el-row> <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="手機(jī)號(hào):" prop="phone"> <el-input v-model="exterForm.phone" placeholder="請(qǐng)輸入手機(jī)號(hào)" style="width: 80%" /> </el-form-item> </el-col> </el-row> </el-form> </span> <span slot="footer" class="dialog-footer"> <el-button @click="cancelExter">取消</el-button> <el-button type="success" :loading="exterSaveLoading" @click="saveExter" >保存</el-button > </span> </el-dialog> <!--外來(lái)人員彈窗 End--> export default { data() { return { // 表單 form: {}, exterForm: {}, exterTableData: [], //form表單驗(yàn)證規(guī)則 exterFormRules: {} } }, methods: { // 添加一行,外來(lái)人員信息 insertExterRow() { this.exterTitleInfo = '外來(lái)人員信息新增' this.exterForm = {} this.exterDialogVisible = true this.selectExterRow = null this.$nextTick(() => { this.$refs.exterForm.clearValidate() // 移除校驗(yàn)結(jié)果 }) }, // 編輯一行,外來(lái)人員信息 editExterRow(index, row) { this.exterTitleInfo = '外來(lái)人員信息編輯' this.exterDialogVisible = true this.selectExterRow = row this.exterForm = Object.assign({}, row) this.$nextTick(() => { this.$refs.exterForm.clearValidate() // 移除校驗(yàn)結(jié)果 }) }, // 刪除一行,外來(lái)人員信息 removeExterRow(index, row) { this.$confirm('此操作將永久刪除當(dāng)前信息, 是否繼續(xù)?', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning', center: true }) .then(() => { this.exterTableData.splice(index, 1) }) .catch(() => { this.$message({ type: 'info', message: '已取消刪除' }) }) }, // 保存外來(lái)人員信息 saveExter() { this.$refs.exterForm.validate((valid) => { if (valid) { this.exterSaveLoading = true if (this.selectExterRow) { Object.assign(this.selectExterRow, this.exterForm) } else { this.exterTableData.push(this.exterForm) } this.exterSaveLoading = false this.exterDialogVisible = false } else { return false } }) }, cancelExter() { this.exterForm = {} this.exterDialogVisible = false } } }
到此這篇關(guān)于vue elementui table編輯表單時(shí)彈框增加編輯明細(xì)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue elementui table編輯表單內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue.js實(shí)現(xiàn)左邊導(dǎo)航切換右邊內(nèi)容
這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)左邊導(dǎo)航切換右邊內(nèi)容,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10基于vue實(shí)現(xiàn)新聞自下往上滾動(dòng)效果(示例代碼)
這篇文章主要介紹了vue新聞自下往上滾動(dòng)效果,當(dāng)鼠標(biāo)鼠標(biāo)放上暫停滾動(dòng),鼠標(biāo)移出繼續(xù)滾動(dòng),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Vue實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03vue實(shí)現(xiàn)下拉框二級(jí)聯(lián)動(dòng)效果的實(shí)例代碼
這篇文章主要介紹了vue實(shí)現(xiàn)下拉框二級(jí)聯(lián)動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11Vue2 Element Schema Form 配置式生成表單的實(shí)現(xiàn)
本文主要介紹了Vue2 Element Schema Form 配置式生成表單的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Vue-router 切換組件頁(yè)面時(shí)進(jìn)入進(jìn)出動(dòng)畫(huà)方法
今天小編就為大家分享一篇Vue-router 切換組件頁(yè)面時(shí)進(jìn)入進(jìn)出動(dòng)畫(huà)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09vue使用xlsx庫(kù)和xlsx-style庫(kù)導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬
xlsx是由SheetJS開(kāi)發(fā)的一個(gè)處理excel文件的npm庫(kù),適用于前端開(kāi)發(fā)者實(shí)現(xiàn)導(dǎo)入導(dǎo)出excel文件的經(jīng)典需求,這篇文章主要介紹了vue使用xlsx庫(kù)和xlsx-style庫(kù)導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬,需要的朋友可以參考下2023-11-11