HTML+VUE+element-ui通过点击不同按钮展现不同页面

完整源码可以私聊我,需要一点点费用~ 

页面展示

方案一

方案二

代码解释

方案一:使用v-show

这种方案只适合有两种页面

现在form表单中设置好要展现的页面名(此处的url没有作用不用管)

通过一个两个for循环分别将form表单填入的数据回显到页面中,并通过menuHandle函数进行 点击后会发生的事件,:index和:key都是用来定位那一个单独的div

可以看到点击后触发函数里这个show变量的true和flase。

而具体内容中写了两个页面内容,再通过v-if函数展现dish和comment页面

方案二:使用<iframe>

同样的通过两个v-for循环将menuList中的内容页面展现出来,同时绑定一个menuHandle函数,点击的时候触发该函数

该函数被触发的时候,就会将当前元素的id、url等元素填入到展现的form表单中

内容展现区就是通过<iframe>框架进行展现

 

代码展示

方案一

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><meta name="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=no,minimal-ui"><title>k1饱了吗</title><link rel="icon" href="images/favico.ico"><!--不同屏幕尺寸根字体设置--><script src="./js/base.js"></script><!--element-ui的样式--><link rel="stylesheet" href="../backend/plugins/element-ui/index.css"/><!--引入vant样式--><link rel="stylesheet" href="styles/vant.min.css"/><!-- 引入样式  --><link rel="stylesheet" href="styles/index.css"/><!--本页面内容的样式--><link rel="stylesheet" href="styles/main.css"/><link rel="stylesheet" href="styles/icon/iconfont.css"/>
</head>
<body>
<div id="main" class="app"><div class="divHead"><img src="./images/user.png" @click="toUserPage"/></div><!--    头部标签区--><div class="divTitle"><div class="divStatic"><img src="./images/logo.png" class="logo"/><div class="divDesc"><div class="divName">饱了吗餐厅</div><div class="divSend"><span><img src="./images/time.png"/> 距离1.5km</span><span><img src="./images/money.png"/> 配送费6元</span><span><img src="./images/location.png"/> 预计时长12min</span></div></div></div><div class="divDesc">简介: 饱了吗餐厅是对抗饿了么的独立的品牌,定位“大众化的美食外送餐饮”,和美了么内卷竞争。</div></div><!--    菜品和评论选择区--><div class="divSelect"><div v-for="item in menuList" :key="item.id"><div :index="item.id" v-if="item.children && item.children.length>0"><template slot="title"><span>{{item.name}}</span></template><divv-for="sub in item.children":index="sub.id":key="sub.id"@click="menuHandle(sub,false)"><span slot="title" :class="sub.name">{{sub.name}}</span></div></div><div v-else :index="item.id" @click="menuHandle(item,false)"><span slot="title">{{item.name}}</span></div></div></div><!--    内容展现区--><div class="divBody"><!--展示菜单--><div class="dish" v-if="show" style="display: flex;"><div class="divType"><ul><li v-for="(item,index) in categoryList" :key="index" @click="categoryClick(index,item.id,item.type)":class="{active:activeType === index}">{{item.name}}</li></ul></div><div class="divMenu"><div><div class="divItem" v-for="(item,index) in dishList" :key="index" @click="dishDetails(item)"><el-image :src="imgPathConvert(item.image)"><div slot="error" class="image-slot"><img src="./images/noImg.png"/></div></el-image><div><div class="divName">{{item.name}}</div><div class="divDesc">{{item.description}}</div><div class="divDesc">{{'月销' + (item.saleNum ? item.saleNum : 0) }}</div><div class="divBottom"><span>¥</span><span>{{item.price/100}}</span></div><div class="divNum"><div class="divSubtract" v-if="item.number > 0"><img src="./images/subtract.png" @click.prevent.stop="subtractCart(item)"/></div><div class="divDishNum">{{item.number}}</div><div class="divTypes" v-if="item.flavors && item.flavors.length > 0 && !item.number "@click.prevent.stop="chooseFlavorClick(item)">选择规格</div><div class="divAdd" v-else><img src="./images/add.png" @click.prevent.stop="addCart(item)"/></div></div></div></div></div></div></div><!--展示评论--><div class="comment" v-if="!show"><div><div class="divItem" v-for="(item,index) in commentList" :key="index"><div class="divInfo"><div class="divName">{{item.name}}</div><div class="divTime">{{item.createTime}}</div></div><div class="divComment"><div v-if="item.description" class="divDesc">{{item.description}}</div></div><el-image v-if="item.image" :src="imgPathConvert(item.image)" ></el-image></div></div></div><!--        菜品选择区--><!--        <div class="app-main" v-loading="loading">--><!--            <div class="divTmp" v-show="loading"></div>--><!--            <iframe--><!--                    id="cIframe"--><!--                    class="c_iframe"--><!--                    name="cIframe"--><!--                    :src="iframeUrl"--><!--                    width="100%"--><!--                    height="auto"--><!--                    frameborder="0"--><!--                    v-show="!loading"--><!--            ></iframe>--><!--        </div>--></div><div class="divLayer"><div class="divLayerLeft"></div><div class="divLayerRight"></div></div><div class="divCart" v-if="categoryList.length > 0"><div :class="{imgCartActive: cartData && cartData.length > 0, imgCart:!cartData || cartData.length<1}"@click="openCart"></div><div :class="{divGoodsNum:1===1, moreGoods:cartData && cartData.length > 99}"v-if="cartData && cartData.length > 0">{{ goodsNum }}</div><div class="divNum"><span>¥</span><span>{{goodsPrice}}</span></div><div class="divPrice"></div><div :class="{btnSubmitActive: cartData && cartData.length > 0, btnSubmit:!cartData || cartData.length<1}"@click="toAddOrderPage">去结算</div></div><van-dialog v-model="dialogFlavor.show" :show-confirm-button="false" class="dialogFlavor" ref="flavorDialog"><div class="dialogTitle">{{dialogFlavor.name}}</div><div class="divContent"><div v-for="flavor in dialogFlavor.flavors" :key="flavor.id"><div class="divFlavorTitle">{{flavor.name}}</div><span v-for="item in JSON.parse(flavor.value)":key="item"@click="flavorClick(flavor,item)":class="{spanActive:flavor.dishFlavor === item}">{{item}}</span></div></div><div class="divBottom"><div><span class="spanMoney">¥</span>{{dialogFlavor.price/100}}</div><div @click="dialogFlavorAddCart">加入购物车</div></div><div class="divFlavorClose" @click="dialogFlavor.show = false"><img src="./images/close.png"/></div></van-dialog><van-popup v-model="cartDialogShow" position="bottom" :style="{ height: '50%' }" class="dialogCart"><div class="divCartTitle"><div class="title">购物车</div><div class="clear" @click="clearCart"><i class="el-icon-delete"></i> 清空</div></div><div class="divCartContent"><div v-for="item in cartData" :key="item.id" class="divCartItem"><el-image :src="imgPathConvert(item.image)"><div slot="error" class="image-slot"><img src="./images/noImg.png"/></div></el-image><div class="divDesc"><div class="name">{{item.name}}</div><div class="price"><span class="spanMoney">¥</span>{{item.amount}}</div></div><div class="divNum"><div class="divSubtract"><img src="./images/subtract.png" @click="cartNumberSubtract(item)"/></div><div class="divDishNum">{{item.number}}</div><div class="divAdd"><img src="./images/add.png" @click="cartNumAdd(item)"/></div></div><div class="divSplit"></div></div></div></van-popup><van-dialog v-model="detailsDialog.show":show-confirm-button="false"class="detailsDialog"ref="detailsDialog"v-if="detailsDialog.show"><div class="divContainer"><el-image :src="imgPathConvert(detailsDialog.item.image)"><div slot="error" class="image-slot"><img src="./images/noImg.png"/></div></el-image><div class="title">{{detailsDialog.item.name}}</div><div class="content">{{detailsDialog.item.description}}</div></div><div class="divNum"><div class="left"><span>¥</span><span>{{detailsDialog.item.price/100}}</span></div><div class="right"><div class="divSubtract" v-if="detailsDialog.item.number > 0"><img src="./images/subtract.png" @click="subtractCart(detailsDialog.item)"/></div><div class="divDishNum">{{detailsDialog.item.number}}</div><div class="divTypes"v-if="detailsDialog.item.flavors && detailsDialog.item.flavors.length > 0 && !detailsDialog.item.number "@click="chooseFlavorClick(detailsDialog.item)">选择规格</div><div class="divAdd" v-else><img src="./images/add.png" @click="addCart(detailsDialog.item)"/></div></div></div><div class="detailsDialogClose" @click="detailsDialog.show = false"><img src="./images/close.png"/></div></van-dialog><van-dialog v-model="setMealDialog.show":show-confirm-button="false"class="setMealDetailsDialog"ref="setMealDetailsDialogd"v-if="setMealDialog.show"><div class="divContainer"><div class="title">{{setMealDialog.item.name}}</div><div class="item" v-for="(item,index) in setMealDialog.item.list" :key="index"><el-image :src="imgPathConvert(item.image)"><div slot="error" class="image-slot"><img src="./images/noImg.png"/></div></el-image><div class="divSubTitle">{{item.name + '(' + item.copies + '份)' }}<div class="divPrice"><span>¥</span><span>{{item.price/100}}</span></div></div><div class="content">{{item.description}}</div></div></div><div class="divNum"><div class="left"><span>¥</span><span>{{setMealDialog.item.price/100}}</span></div><div class="right"><div class="divSubtract" v-if="setMealDialog.item.number > 0"><img src="./images/subtract.png" @click="subtractCart(setMealDialog.item)"/></div><div class="divDishNum">{{setMealDialog.item.number}}</div><div class="divAdd" v-if="setMealDialog.item.number"><img src="./images/add.png" @click="addCart(setMealDialog.item)"/></div><div class="addCart" @click="addCart(setMealDialog.item)" v-if="!setMealDialog.item.number">加入购物车</div></div></div><div class="detailsDialogClose" @click="setMealDialog.show = false"><img src="./images/close.png"/></div></van-dialog>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="../backend/plugins/vue/vue.js"></script>
<!-- 引入组件库 -->
<script src="../backend/plugins/element-ui/index.js"></script>
<!-- 引入vant样式 -->
<script src="./js/vant.min.js"></script>
<!-- 引入axios -->
<script src="../backend/plugins/axios/axios.min.js"></script>
<script src="./js/request.js"></script>
<script src="./js/common.js"></script>
<script src="./api/main.js"></script>
<script src="../api/comment.js"></script>
</body>
<script>new Vue({el: '#main',data() {return {//左边菜品类别indexactiveType: 0,categoryList: [],categoryId: undefined,dishList: [],cartData: [],commentList: [],dialogFlavor: {name: '',flavors: [],dishId: undefined,price: undefined,show: false,image: ''},cartDialogShow: false,detailsDialog: {show: false,item: {image: ''}},setMealDialog: {show: false,item: {}},menuList: [// {//   id: '1',//   name: '门店管理',//   children: [{id: '2',name: '菜品',url: '../front/page/showDish.html',icon: 'icon-member'},{id: '3',name: '评论',url: '../backend/page/member/list.html',icon: 'icon-category'}],iframeUrl: '../backend/page/member/list.html',headTitle: '菜品',goBackFlag: false,loading: true,timer: null,show: true}},computed: {goodsNum() {let num = 0this.cartData.forEach(item => {num += item.number})if (num < 99) {return num} else {return '99+'}},goodsPrice() {let price = 0this.cartData.forEach(item => {price += (item.number * item.amount)})return price}},created() {const userInfo = window.localStorage.getItem('userInfo')if (userInfo) {this.userInfo = JSON.parse(userInfo)}this.closeLoading()},watch: {'dialogFlavor.show'(flag) {if (flag) {document.querySelector('.divCart').style.zIndex = 1} else {document.querySelector('.divCart').style.zIndex = 3000}},},mounted() {this.initData()window.menuHandle = this.menuHandle},methods: {//初始化数据initData() {Promise.all([categoryListApi(), cartListApi({})]).then(res => {//获取分类数据if (res[0].code === 1) {this.categoryList = res[0].dataif (Array.isArray(res[0].data) && res[0].data.length > 0) {this.categoryId = res[0].data[0].idif (res[0].data[0].type === 1) {this.getDishList()this.getCommentList()} else {this.getSetmealData()}}} else {this.$notify({type: 'warning', message: res[0].msg});}//获取菜品数据if (res[1].code === 1) {this.cartData = res[1].data} else {this.$notify({type: 'warning', message: res[1].msg});}})},//分类点击categoryClick(index, id, type) {this.activeType = indexthis.categoryId = idif (type === 1) {//菜品this.getDishList()} else {this.getSetmealData()}},//获取菜品数据async getDishList() {if (!this.categoryId) {return}const res = await dishListApi({categoryId: this.categoryId, status: 1})if (res.code === 1) {let dishList = res.dataconst cartData = this.cartDataif (dishList.length > 0 && cartData.length > 0) {dishList.forEach(dish => {cartData.forEach(cart => {if (dish.id === cart.dishId) {dish.number = cart.number}})})}this.dishList = dishList} else {this.$notify({type: 'warning', message: res.msg});}},//获取套餐数据setmealIdasync getSetmealData() {if (!this.categoryId) {return}const res = await setmealListApi({categoryId: this.categoryId, status: 1})if (res.code === 1) {let dishList = res.dataconst cartData = this.cartDataif (dishList.length > 0 && cartData.length > 0) {dishList.forEach(dish => {cartData.forEach(cart => {if (dish.id === cart.setmealId) {dish.number = cart.number}})})}this.dishList = dishList} else {this.$notify({type: 'warning', message: res.msg});}},//获取购物车数据async getCartData() {const res = await cartListApi({})if (res.code === 1) {this.cartData = res.data} else {this.$notify({type: 'warning', message: res.msg});}},//菜单中往购物车中添加商品async addCart(item) {let params = {amount: item.price / 100,//金额dishFlavor: item.dishFlavor,//口味  如果没有传undefineddishId: undefined,//菜品idsetmealId: undefined,//套餐idname: item.name,image: item.image}if (Array.isArray(item.flavors)) {//表示是菜品params.dishId = item.id} else {//表示套餐 套餐没有口味params.setmealId = item.id}const res = await addCartApi(params)if (res.code === 1) {this.dishList.forEach(dish => {if (dish.id === item.id) {dish.number = res.data.number}})if (this.setMealDialog.show) {item.number = res.data.number}this.getCartData()} else {this.$notify({type: 'warning', message: res.msg});}},//菜单中减少选中的商品async subtractCart(item) {let params = {dishId: item.id,}if (!Array.isArray(item.flavors)) {params = {setmealId: item.id,}}const res = await updateCartApi(params)if (res.code === 1) {this.dishList.forEach(dish => {if (dish.id === item.id) {dish.number = (res.data.number === 0 ? undefined : res.data.number)}})if (this.setMealDialog.show) {item.number = (res.data.number === 0 ? undefined : res.data.number)}this.getCartData()} else {this.$notify({type: 'warning', message: res.msg});}},//展开购物车openCart() {if (this.cartData.length > 0) {this.cartDialogShow = true}},//购物车中增加商品数量async cartNumAdd(item) {let params = {amount: item.amount,//金额dishFlavor: item.dishFlavor,//口味  如果没有传undefineddishId: item.dishId,//菜品idsetmealId: item.setmealId,//套餐idname: item.name,image: item.image}const res = await addCartApi(params)if (res.code === 1) {this.dishList.forEach(dish => {if (dish.id === (item.dishId || item.setmealId)) {dish.number = res.data.number}})console.log(this.dishList)this.getCartData()} else {this.$notify({type: 'warning', message: res.msg});}},//购物车中减少商品数量async cartNumberSubtract(item) {let params = {dishId: item.dishId,setmealId: item.setmealId,}const res = await updateCartApi(params)if (res.code === 1) {this.dishList.forEach(dish => {if (dish.id === (item.dishId || item.setmealId)) {dish.number = (res.data.number === 0 ? undefined : res.data.number)}})this.getCartData()} else {this.$notify({type: 'warning', message: res.msg});}},//修改商品列表中的数据numberchangeDishList(item) {for (let ele of this.dishList) {if (ele.id === (item.setmealId || item.dishId)) {ele.number = item.number}}},//清空购物车async clearCart() {const res = await clearCartApi()if (res.code === 1) {for (let ele of this.dishList) {ele.number = undefined}this.cartData = []this.cartDialogShow = false} else {this.$notify({type: 'warning', message: res.msg});}},//点击选择规格chooseFlavorClick(item) {this.dialogFlavor = {name: '',flavors: [],dishId: undefined,price: undefined,show: false}this.dialogFlavor = {name: item.name,flavors: item.flavors,dishId: item.id,price: item.price,show: true,image: item.image}},flavorClick(flavor, item) {flavor.dishFlavor = item//强制刷新dialog的domthis.dialogFlavor.show = falsethis.dialogFlavor.show = true},//选择规格加入购物车dialogFlavorAddCart() {const dialogFlavor = this.dialogFlavorlet flag = truelet dishFlavor = []dialogFlavor.flavors.forEach(item => {if (item.dishFlavor) {dishFlavor.push(item.dishFlavor)} else {flag = falseNotify({type: 'warning', message: '请选择' + item.name});}})if (flag) {this.addCart({price: dialogFlavor.price,dishFlavor: dishFlavor.join(","),id: dialogFlavor.dishId,flavors: [],image: dialogFlavor.image,name: dialogFlavor.name})this.dialogFlavor.show = false}},//网络图片路径转换imgPathConvert(path) {return imgPath(path)},//跳转到去结算界面toAddOrderPage() {if (this.cartData.length > 0) {window.requestAnimationFrame(() => {window.location.href = '/front/page/add-order.html'})}},toUserPage() {window.requestAnimationFrame(() => {window.location.href = '/front/page/user.html'})},async dishDetails(item) {//先清除对象数据,如果不行的话dialog使用v-ifthis.detailsDialog.item = {}this.setMealDialog.item = {}if (Array.isArray(item.flavors)) {this.detailsDialog.item = itemthis.detailsDialog.show = true} else {//显示套餐的数据const res = await setMealDishDetailsApi(item.id)if (res.code === 1) {this.setMealDialog.item = {...item, list: res.data}this.setMealDialog.show = true} else {this.$notify({type: 'warning', message: res.msg});}}},addComment() {window.location.href = 'page/addComment.html'},menuHandle(item, goBackFlag) {this.loading = truethis.menuActived = item.idthis.iframeUrl = item.urlthis.headTitle = item.namethis.goBackFlag = goBackFlagthis.show = !this.showthis.closeLoading()},closeLoading() {this.timer = nullthis.timer = setTimeout(() => {this.loading = false}, 1000)},showContent(button){if(button == 'showDishContent'){this.showContent = true;this.showComment = false;}else if(button == 'showCommentContent'){this.showContent = false;this.showComment = true;}},async getCommentList(){const res = await commentListApi()if(res.code === 1){this.commentList = res.data}else {this.$notify({type: 'warning', message: res.msg})}}}})
</script>
</html>

方案二

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>11外卖管理端</title><link rel="shortcut icon" href="favicon.ico"><!-- 引入样式 --><!-- <link rel="stylesheet" href="plugins/element-ui/index.css"/> --><link rel="stylesheet" href="styles/common.css"/><link rel="stylesheet" href="styles/index.css"/><link rel="stylesheet" href="styles/icon/iconfont.css"/><style>.body {min-width: 1366px;}.app-main {height: calc(100% - 64px);}.app-main .divTmp {width: 100%;height: 100%;}</style>
</head><body>
<div class="app" id="app"><div class="app-wrapper openSidebar clearfix"><!-- sidebar --><div class="sidebar-container"><el-scrollbar wrap-class="scrollbar-wrapper"><el-menu><div v-for="item in menuList" :key="item.id"><el-submenu :index="item.id" v-if="item.children && item.children.length>0"><template slot="title"><i class="iconfont" :class="item.icon"></i><span>{{item.name}}</span></template><el-menu-itemv-for="sub in item.children":index="sub.id":key="sub.id"@click="menuHandle(sub,false)"><i :class="iconfont" :class="sub.icon"></i><span slot="title">{{sub.name}}</span></el-menu-item></el-submenu><el-menu-item v-else :index="item.id" @click="menuHandle(item,false)"><i class="iconfont" :class="item.icon"></i><span slot="title">{{item.name}}</span></el-menu-item></div></el-menu></el-scrollbar></div><div class="main-container"><!-- <navbar /> --><div class="navbar"><div class="head-lable"><span v-if="goBackFlag" class="goBack" @click="goBack()"><img src="images/icons/btn_back@2x.png" alt=""/> 返回</span><span>{{headTitle}}</span></div><div class="right-menu"><div class="avatar-wrapper">{{ userInfo.name }}</div><!-- <div class="logout" @click="logout">退出</div> --><img src="images/icons/btn_close@2x.png" class="outLogin" alt="退出" @click="logout"/></div></div><div class="app-main" v-loading="loading"><div class="divTmp" v-show="loading"></div><iframeid="cIframe"class="c_iframe"name="cIframe":src="iframeUrl"width="100%"height="auto"frameborder="0"v-show="!loading"></iframe></div></div></div>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="plugins/vue/vue.js"></script>
<!-- 引入组件库 -->
<script src="plugins/element-ui/index.js"></script>
<!-- 引入axios -->
<script src="plugins/axios/axios.min.js"></script>
<script src="js/request.js"></script>
<script src="./api/login.js"></script>
<script>new Vue({el: '#app',data() {return {defAct: '2',menuActived: '2',userInfo: {},menuList: [// {//   id: '1',//   name: '门店管理',//   children: [{id: '2',name: '员工管理',url: 'page/member/list.html',icon: 'icon-member'},{id: '3',name: '分类管理',url: 'page/category/list.html',icon: 'icon-category'},{id: '4',name: '菜品管理',url: 'page/food/list.html',icon: 'icon-food'},{id: '5',name: '套餐管理',url: 'page/combo/list.html',icon: 'icon-combo'},{id: '6',name: '订单明细',url: 'page/order/list.html',icon: 'icon-order'}//   ],// },],iframeUrl: 'page/member/list.html',headTitle: '员工管理',goBackFlag: false,loading: true,timer: null}},computed: {},created() {const userInfo = window.localStorage.getItem('userInfo')if (userInfo) {this.userInfo = JSON.parse(userInfo)}this.closeLoading()},beforeDestroy() {this.timer = nullclearTimeout(this.timer)},mounted() {window.menuHandle = this.menuHandle},methods: {logout() {logoutApi().then((res) => {if (res.code === 1) {localStorage.removeItem('userInfo')window.location.href = '/backend/page/login/login.html'}})},goBack() {// window.location.href = 'javascript:history.go(-1)'const menu = this.menuList.find(item => item.id === this.menuActived)// this.goBackFlag = false// this.headTitle = menu.namethis.menuHandle(menu, false)},menuHandle(item, goBackFlag) {this.loading = truethis.menuActived = item.idthis.iframeUrl = item.urlthis.headTitle = item.namethis.goBackFlag = goBackFlagthis.closeLoading()},closeLoading() {this.timer = nullthis.timer = setTimeout(() => {this.loading = false}, 1000)}}})
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/141855.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 Socket 网络编程

基于 Socket 网络编程 前言一、基于Socket的网络通信传输&#xff08;传输层&#xff09;二、UDP 的数据报套接字编程1、UDP 套接字编程 API2、使用 UDP Socket 实现简单通信 三、TCP 流套接字编程1、TCP 流套接字编程 API2、使用 TCP Socket 实现简单通信3、使用 Tcp 协议进行…

GIT 提交过滤非必要文件

1、git ls-files&#xff1a;该命令会列出Git仓库中管理的所有文件 2、git rm -r -f --cached . -f 是强制删除 最后的点 是删除所有 git rm -r --cached . 3、 进入Preferences->plugins 中下载一个(.ignore)插件  在项目本地new一个(.gitignore)的文件新增需要过滤文…

推荐一个AI人工智能技术网站(一键收藏,应有尽有)

1、Mental AI MentalAI&#xff08;https://ai.ciyundata.com/&#xff09;是一种基于星火大模型和文心大模型的知识增强大语言模型&#xff0c;专注于自然语言处理&#xff08;NLP&#xff09;领域的技术研发。 它具备强大的语义理解和生成能力&#xff0c;能够处理各种复杂的…

C语言自定义类型(下)

大家好&#xff0c;我们今天来学习C语言自定义类型剩下的内容。 目录 1.枚举 2.联合 1.枚举类型 枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天&#xff0c;可以一一列举。 性别有&#xff1a;男、女、保密&#xff0c;也可以一一列…

windows Visual Studio 2022 opengl开发环境配置

1. 安装glew(GL), GLFW, glm, soil2-debug 还需要premake生成visual studio solution cmake for windows也要安装一个&#xff0c; 但是不用安装MinGW64, bug多 下载源码&#xff0c;找到xxx.sln文件用visual stidio打开solution编译代码&#xff0c;找到xxx.lib, xxx.dll文件…

python过滤敏感词

敏感词一般是指带有敏感政治倾向&#xff08;或反执政党倾向&#xff09;、暴力倾向、不健康色彩的词或不文明用语&#xff0c;论坛、网站管理员一般会设定一些敏感词&#xff0c;以防不当发言影响论坛、网站环境。若论坛、网站设置了敏感词&#xff0c;用户编辑的内容又含有敏…

Vue模板语法【下】事件处理器,表单、自定义组件、通信组件

目录 一、事件处理器 1.1常用的事件修饰符 1.2常用的按键修饰符 二&#xff0c;vue中的表单 三、自定义组件 四&#xff0c;通信组件 一、事件处理器 1.1常用的事件修饰符 Vue的事件修饰符是用来改变事件的默认行为或者添加额外的功能。以下是一些常用的事件修饰符及其…

checksec使用

checksec Relro&#xff1a;Full Relro&#xff08;重定位表只读&#xff09; Relocation Read Only&#xff0c; 重定位表只读。重定位表即.got 和 .plt个表。 Stack&#xff1a;No Canary found&#xff08;能栈溢出&#xff09; 栈保护。栈溢出保护是一种缓冲区溢出攻击缓解…

Lostash同步Mysql数据到ElasticSearch(二)logstash脚本配置和常见坑点

1. logstash脚本编写&#xff08;采用单文件对应单表实例&#xff09; 新建脚本文件夹 cd /usr/local/logstash mkdir sql & cd sql vim 表名称.conf #如: znyw_data_gkb_logstash.conf 建立文件夹&#xff0c;保存资源文件更新Id mkdir -p /data/logstash/data/last_r…

深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题

问题现象 我们知道,Swift 5.5 引入的新并发模型极大简化了并行逻辑代码的开发,更重要的是:使用新并发模型中的 Actor 原语可以大大降低并发数据竞争的可能性。 不过,即便 Actor 有如此神奇之功效,它也不是“万能药”,仍不能防止误用带来的问题。比如:Actor 重入(Reen…

Centos7安装go解释器

Centos7安装go解释器 下载解压go压缩包编辑go变量结果验证 下载解压go压缩包 # 下载 wget -c https://go.dev/dl/go1.20.2.linux-amd64.tar.gz# 解压到指定目录 tar xvf go1.20.2.linux-amd64.tar.gz -C /usr/local/编辑go变量 /etc/profile.d/go.sh # 指定go执行程序位置 e…

【软件测试】资深测试聊,自动化测试分层实践,彻底打通高阶...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化测试的分层…

spring6概述

spring6 1、概述1.1、Spring是什么&#xff1f;1.2、Spring 的狭义和广义1.3、Spring Framework特点1.4、Spring模块组成1.5、Spring6特点1.5.1、版本要求 2.2、构建模块2.3、程序开发2.3.1、引入依赖2.3.3、创建配置文件2.3.4、创建测试类测试2.3.5、运行测试程序 2.4、程序分…

LeetCode算法二叉树—144. 二叉树的前序遍历

目录 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; 运行结果&#xff1a; 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&am…

Leetcode 386. 字典序排数

文章目录 题目代码&#xff08;9.22 首刷看解析&#xff09; 题目 Leetcode 386. 字典序排数 代码&#xff08;9.22 首刷看解析&#xff09; 迭代DFS class Solution { public:vector<int> lexicalOrder(int n) {vector<int> ret(n);int number 1;for(int i 0…

可视化工具Datart踩(避)坑指南(4)——丢失的精度

作为目前国内开源版本最好用的可视化工具&#xff0c;Datart无疑是低成本高效率可供二开的可视化神兵利器。当然&#xff0c;免费的必然要付出一些踩坑的代价。本篇我们来讲一讲可视化工具Datart踩&#xff08;避&#xff09;坑指南&#xff08;4&#xff09;之丢失的精度。 版…

麦肯锡:中国生成式AI市场现状和未来发展趋势

本文来自《麦肯锡中国金融业CEO季刊》&#xff0c;版权归麦肯锡所有。该季刊主要围绕生成式AI&#xff08;以下简称“GenAI”&#xff09;主题&#xff0c;通过4大章节共8篇文章&#xff0c;全面深入分析了GenAI对各主要行业的影响、价值链投资机会、中国GenAI市场现状和未来趋…

【QandA C++】内存泄漏、进程地址空间、堆和栈、内存对齐、大小端和判断、虚拟内存等重点知识汇总

目录 内存泄漏 内存模型 、进程地址空间 堆和栈的区别 内存对齐 大端小端及判断 虚拟内存有什么作用 内存泄漏 概念: 是指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况, 内存泄漏并不是指内存在物理上的消失, 而是应用程序分配了某段内存后, 因为设计错误…

Leetcode---363周赛

题目列表 2859. 计算 K 置位下标对应元素的和 2860. 让所有学生保持开心的分组方法数 2861. 最大合金数 2862. 完全子集的最大元素和 一、计算k置为下标对应元素的和 简单题&#xff0c;直接暴力模拟&#xff0c;代码如下 class Solution { public:int sumIndicesWithKS…

什么是关系模型? 关系模型的基本概念

关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出&#xff0c;经过多年的发展&#xff0c;已经成为目前最常用、最重要的模型之一。 在关系模型中有一些基本的概念&#xff0c;具体如下。 (1)关系(Relation)。关系一词与数学领域有关&#xff0c;它是集合基…