029: Vue project, after checking, there will be no pop-up prompts today.

insert image description here

No. 029

View column directory: VUE ------ element UI


Column goals

Under the control of the joint technology stack of vue and element UI, this column provides effective source code examples and information point introductions for flexible use.

(1) Provide some basic operations of vue2: installation, reference, template use, computed, watch, life cycle (beforeCreate, created, beforeMount, mounted, beforeUpdate, updated, beforeDestroy, destroyed, activated, deactivated, errorCaptured, components,), $root , $parent , $children , $slots , $refs , props, $emit , eventbus ,provide / inject, Vue.observable, $listeners, $attrs, $nextTick , v-for, v-if, v-else ,v-else-if, v-on, v-pre, v-cloak, v-once, v-model, v-html, v-text, keep-alive, slot-scope, filters, v-bind,. stop, .native, directives, mixin, render, internationalization, Vue Router, etc.

(2)提供element UI的经典操作:安装,引用,国际化,el-row,el-col,el-button,el-link,el-radio,el-checkbox,el-input,el-select, el -cascader, el-input-number, el-switch,el-slider, el-time-picker, el-date-picker, el-upload, el-rate, el-color-picker, el-transfer, el-form , el-table, el-tree, el-pagination, el-badge, el-avatar, el-skeleton, el-empty, el-descriptions, el-result, el-statistic, el-alert, v-loading, $ message, $alert, $prompt, $confirm , $notify, el-breadcrumb, el-page-header,el-tabs ,el-dropdown,el-steps,el-dialog, el-tooltip, el-popover, el- popconfirm, el-card, el-carousel, el-collapse, el-timeline, el-divider, el-calendar, el-image, el-backtop,v-infinite-scroll, el-drawer等

Demand background

In Vue project development, certain tips are often used. After checking, it is requested that there will be no pop-up prompts today. This example is a demonstration that determines whether to prompt by setting and getting a certain value in localStorage.

Example effect

insert image description here

Sample source code (90 lines in total)

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: [email protected]
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2022-09-08
*/
<template>
	<div class="container">
		<div class="top">
			<h3>vue项目,勾选后今天不再弹窗提示 </h3>
			<div class="author">大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
		</div>
		<h4>
			<el-button type="primary" @click="showInfo()"> 点击判断提示 </el-button>
		</h4>
		<div class="tipBox" v-if="isbox">
			<h3>提示弹窗</h3>
			<el-checkbox v-model="noTip" @change='noTipAgain()'>不再提示</el-checkbox>
			<div class="close" @click="isbox=false">
				<el-button type="primary" size="mini"> 关闭 </el-button>
			</div>
		</div>
	</div>
</template>
<script>
	import dayjs from "dayjs";
	export default {
    
    
		data() {
    
    
			return {
    
    
				isbox: false,
				noTip: false,
			}
		},
		methods: {
    
    
			showInfo() {
    
    
				let noTipTime = localStorage.getItem('noTipTime')
				let curtime = dayjs().unix() * 1000
				if (noTipTime) {
    
    
					if (noTipTime > curtime) {
    
    
						this.$message({
    
    
							type: "error",
							message: '今天已经不再提示了!'
						})
					} else {
    
    
						this.isbox = true;
						this.noTip = false
					}
				} else {
    
    
					this.isbox = true;
				}
			},
			noTipAgain() {
    
    
				if (this.noTip) {
    
    
					let curdate = dayjs(new Date()).format('YYYY-MM-DD');
					let curdayTime = dayjs(curdate).unix() * 1000 + 24 * 60 * 60 * 1000
					localStorage.setItem('noTipTime', curdayTime)
				}
			},
		},
	}
</script>
<style scoped>
	.container {
    
    
		width: 1000px;
		height: 580px;
		margin: 50px auto;
		border: 1px solid green;
		position: relative;
	}
	.top {
    
    
		margin: 0 auto 30px;
		padding: 10px 0;
		background: orange;
		color: #fff;
	}
	.tipBox {
    
    
		position: absolute;
		left: calc(50% - 150px);
		top: calc(50%);
		width: 300px;
		height: 200px;
		border: 1px solid blue;
		background: #f4f4f4;
	}
	.close {
    
    
		margin-top: 60px;
	}
</style>


core code

			showInfo() {
				let noTipTime = localStorage.getItem('noTipTime')
				let curtime = dayjs().unix() * 1000
				if (noTipTime) {
					if (noTipTime > curtime) {
						this.$message({
							type: "error",
							message: '今天已经不再提示了!'
						})
					} else {
						this.isbox = true;
						this.noTip = false
					}
				} else {
					this.isbox = true;
				}
			},
			noTipAgain() {
				if (this.noTip) {
					let curdate = dayjs(new Date()).format('YYYY-MM-DD');
					let curdayTime = dayjs(curdate).unix() * 1000 + 24 * 60 * 60 * 1000
					localStorage.setItem('noTipTime', curdayTime)
				}
			},

Guess you like

Origin blog.csdn.net/cuclife/article/details/132756579