日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue實現表單未編輯或未保存離開彈窗提示功能

瀏覽:216日期:2023-01-28 09:40:58

說明

UI組件是使用 Quasar Framework 。

最近做一個表單彈出框,表單保存提交,但是,產品提出,用戶不保存,而關閉彈出框時,要給出一個彈窗提示。這個功能,可以用watch監聽表單數據。當數據表單發生變化,用戶點擊了關閉按鈕,則根據監聽結果來判斷用戶輸入或編輯了數據,進而出現彈窗提示,讓用戶選擇是否離開;當數據沒發生變化,則不必提示。

確認離開提示框

實現效果

先實現一個確認離開提示框,效果如下:

vue實現表單未編輯或未保存離開彈窗提示功能

實現代碼:

<template> <div> <q-dialog :persistent='true' v-model='alert'> <q-card style='width:340px;'> <q-card-section> <q-btn icon='close' flat round dense v-close-popup /> </q-card-section> <q-card-section style='margin-top: 10px;'> 當前數據未保存,是否離開? </q-card-section> <q-card-actions align='right'> <q-btn flat label='是' color='primary' v-close-popup @click='handleConfirm' /> <q-btn flat label='否' v-close-popup /> </q-card-actions> </q-card> </q-dialog> </div></template><script>export default { name: ’LeaveTipDialog’, props: { }, data () { return { alert: false } }, methods: { init () { this.alert = true }, handleConfirm () { // 提交父組件的事件 this.$emit(’handleConfirm’) } }}</script><style lang='stylus'></style>

監聽代碼

監聽代碼如下:

watch: { datas: { handler (val) { if (val) { this.count++ } }, deep: true } },

判斷數據變化的次數,因為剛加載數據未完全加載的時候,datas是空對象,待加載完之后,則出現一次數據變化, deep主要是深層次監聽,因為數據是層層對象,比較復雜

創建/編輯 表單彈出框

代碼,表單省略了,大致抽象為:

<template> <div> <q-dialog :persistent='true' v-model='visible'> <q-card class='card'> <q-card-section transition-hide='flip-up'> <div class='text-h6'>{{ isEdit ? '編輯' : '創建' }}xxxx</div> <q-space /> <q-btn icon='close' flat round dense @click='close' /> </q-card-section> <q-card-section class='form'> <div class='line'></div> <q-form ref='form'> <!-- 省略了表單行 --> </q-form> </q-card-section> </q-card> </q-dialog> <!-- 彈窗 關閉 編輯/創建時 確認離開--> <LeaveTipDialog v-if='leave' ref='leave' @handleConfirm='handleLeave' ></LeaveTipDialog> </div></template>

引入上面寫好的確認離開提示框組件:

import LeaveTipDialog from ’components/LeaveTipDialog’props: { isEdit: { type: Boolean, required: true, default: false } }, components: { LeaveTipDialog }, data () { return { visible: false, form: { // .... 具體省略 }, count: 0, // form數據修改的數量 leave: false } }, watch: { form: { handler (val) { if (val) { this.count++ } }, deep: true } },

關閉時判斷的代碼邏輯:

注意,監聽獲取到的 count ,分為兩種情況:

1、當打開的是新建數據的表單,那么一開始, form 的數據是空內容或者默認值,當用戶輸入了內容,點擊關閉按鈕,獲取到的 this.count 是1或者更大的值。所以, isEdit 為 fasle 時,判斷條件是 !this.isEdit && this.count > 0 時彈出提示,否則不提示直接關閉表單彈出框。

2、當打開的是編輯數據的表單,那么一開始, form 的數據是空內容或者默認值,當打開表單彈框時,先獲取了數據詳情內容并賦值費表單 form 數據,此時 this.count 的值已經是1了。這時,當用戶編輯了表單內容,點擊關閉按鈕,獲取到的 this.count 是大于1的值。所以, isEdit 為 true 時,判斷條件是 this.isEdit && this.count > 1 時彈出提示,否則不提示直接關閉表單彈出框。

methods: { close () { // console.log(`isEdit:${this.isEdit}:${this.count}`) if (this.isEdit && this.count > 1) { // 編輯 數據有修改彈出提示 this.leave = true this.$nextTick(() => { this.$refs.leave.init() }) } else if (!this.isEdit && this.count > 0) { // 新建 數據有修改彈出提示 this.leave = true this.$nextTick(() => { this.$refs.leave.init() }) } else { this.resetForm() this.leave = false this.visible = false } }, handleLeave () { this.resetForm() this.leave = false this.visible = false }, resetForm(){ // this.form.xxxx = ’’ // 表單數據清空 this.count = 0 } }

實現效果

1、新建數據表單彈出框:

1)表單有輸入,未保存點擊關閉,給出一個彈窗提示“當前數據未保存,是否離開?”,選擇是,關閉表單彈出框;選擇否,表單彈出框不關閉;

2)表單沒有輸入任何值,直接點擊關閉,直接表單彈出框;

vue實現表單未編輯或未保存離開彈窗提示功能

2、編輯詳情的數據表單彈出框:

1)表單內容有編輯情況,未保存點擊關閉,給出一個彈窗提示“當前數據未保存,是否離開?”,選擇是,關閉表單彈出框;選擇否,表單彈出框不關閉;

2)表單內容沒有編輯任何值,直接點擊關閉,直接表單彈出框;

vue實現表單未編輯或未保存離開彈窗提示功能

總結

到此這篇關于vue實現表單未編輯或未保存離開彈窗提示功能的文章就介紹到這了,更多相關vue表單離開彈窗提示內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99精品视频精品精品视频| 国产精品欧美在线观看| 精品欠久久久中文字幕加勒比| 日本视频一区二区| 日韩午夜av| 免费高潮视频95在线观看网站| 久久只有精品| 精品视频91| 精品国产欧美| 日韩综合一区| 97人人精品| а√天堂8资源在线| 国产精品xx| 日韩欧美不卡| 99精品小视频| 久久亚洲成人| 久久中文视频| 在线亚洲欧美| 亚洲综合精品四区| 亚洲精品国模| 日日摸夜夜添夜夜添国产精品| 日本欧洲一区二区| 亚洲一区二区三区免费在线观看| 美女久久一区| 午夜久久av| 国产精品亚洲产品| 久久精品国产成人一区二区三区| 韩国一区二区三区视频| 福利一区视频| 久久久国产精品一区二区中文| 在线日韩av| 亚洲一区区二区| 亚洲日产国产精品| 亚洲毛片视频| 精品久久中文| 成人一区而且| 欧美色图国产精品| 免费日韩av| 欧美久久一区二区三区| 国产精品伦一区二区| 91麻豆国产自产在线观看亚洲| 免费污视频在线一区| 亚洲欧美久久久| 日本不卡一区二区三区| 另类欧美日韩国产在线| 亚洲成人精品| 四虎精品永久免费| 国产一区丝袜| 九九久久电影| 日本欧美大码aⅴ在线播放| 国产精品久久久久77777丨| 国产不卡一区| 欧美综合二区| 久久精品三级| 亚洲在线免费| 国产欧美精品久久| 欧美日中文字幕| 日韩va亚洲va欧美va久久| 神马久久午夜| 亚洲精品护士| www成人在线视频| 日本免费新一区视频| 日韩伦理在线一区| 亚洲综合色婷婷在线观看| 日本а中文在线天堂| 性欧美长视频| 久久精品天堂| 中文在线一区| 国内自拍视频一区二区三区| 免费在线欧美视频| 国产精品久久观看| 视频在线在亚洲| 日韩1区在线| 亚洲毛片在线| 亚洲www啪成人一区二区| 日韩毛片网站| 色爱av综合网| 国产麻豆精品| 最新国产拍偷乱拍精品| 精品视频在线一区二区在线| 久久亚洲影院| 成人一区不卡| 97久久精品| 日韩一级不卡| 日韩国产一区| 国产精品4hu.www| 国产在线视频欧美一区| 亚洲精品婷婷| 美女网站一区| 亚洲深夜视频| 国产视频一区二区在线播放| 在线一区欧美| 国产精品亚洲一区二区三区在线观看| 欧美日韩一视频区二区| 99香蕉国产精品偷在线观看| 日韩精品1区| 久久国内精品视频| 蜜桃久久久久久久| 欧美特黄一区| 午夜av成人| 国产精品99一区二区三区| 国产亚洲精品美女久久久久久久久久| 亚洲资源av| 欧美亚洲国产精品久久| 久久亚洲资源中文字| 日本免费在线视频不卡一不卡二| 黄色亚洲大片免费在线观看| a日韩av网址| 国产在线一区不卡| 国产精品久久久网站| 日韩在线观看中文字幕| 婷婷中文字幕一区| 日韩欧美综合| 97在线精品| 精品久久亚洲| 精品九九在线| 久草精品视频| 麻豆精品99| 久久精品二区亚洲w码 | 亚洲国产欧美日本视频| 欧美a在线观看| 国产精品亚洲综合色区韩国| 日韩精品亚洲aⅴ在线影院| 中文无码久久精品| 婷婷亚洲五月| 伊人久久成人| 亚洲一区二区网站| 亚洲欧美日韩一区在线观看| 夜夜精品视频| 免费日韩av片| 久热精品在线| 蜜桃久久av一区| 美女91精品| 午夜久久av| 国产毛片精品久久| 久久久免费人体| 精品理论电影在线| 精品久久影院| 青青青免费在线视频| 国产精品毛片一区二区在线看| 色偷偷色偷偷色偷偷在线视频| 亚洲深夜视频| 久久久久久久久久久妇女| 久久国产成人午夜av影院宅| 在线成人动漫av| 亚洲激情社区| 视频一区视频二区中文字幕| 免费看日韩精品| 日韩三级一区| 国产精品白丝一区二区三区| 国产精品白浆| 欧美日韩精品免费观看视完整| 婷婷色综合网| 亚洲美女久久| 欧美日韩亚洲一区二区三区在线| 麻豆视频一区二区| 久久蜜桃av| 日本不卡一区二区三区| 国产一区二区三区久久| 999国产精品永久免费视频app| 一本一本久久| 国产乱码精品一区二区亚洲| 色婷婷亚洲mv天堂mv在影片| 国产真实久久| 亚洲一区二区免费在线观看| 国产精品一区三区在线观看| 天堂中文在线播放| 蜜臀久久99精品久久久画质超高清 | 麻豆久久精品| 蜜臀91精品一区二区三区| 综合精品一区| 日韩中文字幕一区二区三区| 欧美日一区二区三区在线观看国产免| 欧美亚洲福利| 国产精品xvideos88| 精品一区二区三区亚洲| 国产欧美另类| 久久久精品网| 欧洲激情综合| 三级亚洲高清视频| 日本精品另类| 欧美成人精品三级网站| 亚洲精品网址| 亚洲综合小说| 麻豆精品国产91久久久久久| 国产在线欧美| 亚洲另类黄色| 无码日韩精品一区二区免费| 国产精品久久久亚洲一区| 天堂av在线| 首页欧美精品中文字幕| 国产乱码精品| 久久久久国产精品一区二区| 国产精品社区| 69精品国产久热在线观看| 国产一区精品福利| 在线视频亚洲| 欧美午夜三级| 亚洲欧洲日本mm| 国产精品久一|