Vue+elementui 文件上传 收藏 下载示例

<template><div class="home-main"><!-- 报表中心  --><div class="tree"><el-row :gutter="24"><el-col :span="5"><el-card class="tree-left"><div slot="header">报表中心</div><!-- 报表搜索 --><el-input placeholder="输入搜索内容" v-model="inputVal" size="mini" clearable><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input><!-- 报表顶部三个选项 我的文件 最近使用 星标文件 --><div class="options"><divclass="option-item"v-for="option in optionList":key="option.value":class="{ active: activeOption === option.value }"@click="setActive(option.value)"><i :class="option.icon" :style="{ color: option.color }"></i><span class="fonts">{{ option.label }}</span></div></div><el-divider></el-divider><!-- 报表下拉框 --><div class="medium-action"><div class="head-container"><el-input placeholder="输入搜索内容" v-model="folderName" size="mini" clearable><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input><i class="el-icon-plus" style="cursor:pointer;" title="新增文件夹" @click="addFolder"></i></div></div><!-- 报表中心-树  --><div class="Tree"><el-tree:data="data":props="defaultProps"@check="checkBoxNodeClick"@node-click="getFileByFolder":filter-node-method="filterNode"ref="Ztree" :check-strictly="true" node-key="folderId" :default-expand-all="true"  show-checkbox><template v-slot="{ node, data }"><div><span class="custom-icon"><i v-if="node.expanded" class="el-icon-minus"></i><i v-else class="el-icon-folder-opened"></i></span><span @click.stop="handleTextClick(node, data)">{{ data.folderName }}</span><span style="padding-left: 5px;display: none"  class="btns"><el-button size="text" icon="el-icon-delete" @click="() => remove(node, data)"></el-button></span>
<!--                    <el-tooltip class="btns" effect="dark" placement="top" style="display: none">-->
<!--                      <el-button size="text" icon="el-icon-delete" @click="() => remove(node, data)" @mouseover="showDeleteIcon = true" @mouseout="showDeleteIcon = false" v-if="showDeleteIcon"></el-button>-->
<!--                    </el-tooltip>--></div></template></el-tree></div></el-card></el-col><el-col :span="19" style="padding-left: 0px"><!-- 右侧内容  --><div class="tree-right"><div class="tree-top"><el-button size="small" type="primary" plain icon="el-icon-upload" style="margin-left: 10px" @click="open = true">文件上传</el-button><!--切换为列表格式 --><span style="float: right"><el-tooltipclass="item"effect="dark"content="切换为列表展示"placement="top"><i class="el-icon-menu" style="font-size: 20px;color:green;" @click="listClick"></i></el-tooltip><!--切换为文件格式 --><el-tooltipclass="item"effect="dark"content="切换为文件夹展示"placement="top"><i class="el-icon-folder" style="font-size: 20px;color:orange" @click="folderClick"></i></el-tooltip></span></div><!-- 卡片列表布局 --><div class="card-list" v-show="showFolder" v-loading="loading"><!-- <div v-for="(item, index) in items" :key="index" class="card-item"> --><divv-for="(item, index) in items":key="index"class="card-item"v-if="items && items.length>0"><divclass="gift-box"><img class="gift" src="@/assets/images/excel.png" /></div><div class="title" style="margin:10px;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;" :title="item.name">{{ item.name }}</div><div class="desc">{{ item.desc }}</div><divclass="hover-box":style="`background-color: #1EC695`"><div class="action"><a :href="item.address" :download="item.name"><i title="下载" class="el-icon-download"></i></a><span style="color:#fff">|</span><i  class="el-icon-star-off" title="收藏" @click="collectFile(item.id)"></i><span style="color:#fff">|</span><i  class="el-icon-delete" title="删除" @click="deleteFile(item.id)"></i></div></div></div></div><div v-if="items.length ===0 && !showList" style="position: absolute;top: 24%;left: 58%;color: #909399;"><i style="font-size:19px" class="el-icon-folder-opened"></i>暂无数据</div><!-- 列表表格布局 --><div class="table" v-show="showList"><el-table :data="items" border style="width: 100%" v-loading="loading"><!-- <el-table :data="currentPageItems" border style="width: 100%"> --><el-table-column label="名称" width="300" align="left"><template #default="{ row }"><div style="display: flex;justify-content: left;align-items: center;"><img  width="25" height="25" src="@/assets/images/excel.png" /><div style="display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;" :title="row.name"><a style="color:#1890ff" :href="row.address" :download="row.name">{{ row.name }}</a></div></div></template></el-table-column><el-table-column prop="fileType" label="类型" width="100" align="center"></el-table-column><el-table-column prop="size" label="大小" align="center"></el-table-column><el-table-column prop="updateTime" label="修改时间" align="center" ></el-table-column><el-table-column prop="modifyUser" label="修改者" align="center" ></el-table-column><el-table-column label="操作" fixed="right" align="center" width="180px"><template #default="scope"><el-button :disabled="isCollected" plain type="warning" size="mini" @click="handleCollect(scope.row)" icon="el-icon-star-off">收藏</el-button></template></el-table-column></el-table></div><!-- 卡片 分页  --><div class="fy" v-show="showFolder"><paginationv-if="total > 0":total="total":page.sync="queryParams.pageNum":limit.sync="queryParams.pageSize"@pagination="getMyFile"/></div><!-- 列表分页 --><div class="list-fy" v-show="showList"><paginationv-if="total > 0":total="total":page.sync="queryParams.pageNum":limit.sync="queryParams.pageSize"@pagination="getMyFile"/></div></div></el-col></el-row></div><el-dialog title="上传文件" :visible.sync="open" width="500px"><el-form ref="fileForm" :model="fileForm"  label-width="150px"><el-row :gutter="24"><el-col :span="24"><el-form-item label="文件类型" prop="publicOrNot"><el-radio-group v-model="publicOrNot"><el-radio :label="0">私有</el-radio><el-radio :label="1">公共</el-radio></el-radio-group></el-form-item></el-col><el-col><el-form-item style="text-align: right;" class="self-form-item"><el-uploadstyle="width: 260px;transform: translate(-19px, 36px);"class="upload-demo"action="/system/forms/upload":accept="'.xls,.xlsx'":before-upload="beforeUpload"multiple:limit="1":show-file-list="false":on-exceed="handleExceed":file-list="fileList"><el-button  type="primary" style="margin-left: 10px;margin-right:10px">确定</el-button><!--                  <div slot="tip" class="el-upload__tip">只能上传xls/xlsx文件,且不超过500kb</div>--></el-upload><el-button @click="open = false">取消</el-button></el-form-item></el-col></el-row></el-form></el-dialog><el-dialog title="新建文件夹" :visible.sync="visible" width="500px"><el-form ref="folderForm" :model="folderForm" :rules="rules" label-width="150px"><el-row :gutter="24"><el-col :span="24"><el-form-item label="文件夹名称" prop="folderName"><el-input placeholder="请输入文件夹名称" v-model="folderForm.folderName" /></el-form-item></el-col><el-col><el-form-item style="text-align: right;"><el-button type="primary" @click="submitForm()">确定</el-button><el-button @click="closeModel">取消</el-button></el-form-item></el-col></el-row></el-form></el-dialog><el-dialog title="收藏报表" :visible.sync="collectVisible" width="500px" @close="closeTreeModal"><el-tree ref="Ttree" :data="treeData"   :check-strictly="true" node-key="folderId"  @check="treeCheck" :default-expand-all="true"  show-checkbox :props="treeProps"><template v-slot="{ node, data }"><div><span class="custom-icon"><i v-if="node.expanded" class="el-icon-minus"></i><i v-else class="el-icon-folder-opened"></i></span><span>{{ data.folderName }}</span></div></template></el-tree><div slot="footer" class="dialog-footer"><el-button type="primary" @click="handleSelecNode">确 定</el-button><el-button @click="closeTreeModal">取 消</el-button></div></el-dialog></div>
</template><script>
import { uploadFile,getMyFiles,addFolder,getFolders,collectFile,getCollectFile,getPublicFile,getFileByFolder } from "@/api/reportManage/reportManage";
import {mapGetters} from "vuex";
export default {data() {return {visible: false,collectVisible:false, //收藏open:false,loading:false,showDeleteIcon: false,treeData: [],treeProps: {label: 'label',children: 'children',},//文件夹IDZFolderParentId:0, //查询文件夹选中的父级IDTfolderId:0, //收藏文件夹选中IDTfileId:'',// 文件ID// 报表中心树的数据data: [],// 左侧树基本配置defaultProps: {children: "children",label: "label",},// 点击的报表名称reportNameList: [],//文件fileList:[],folderForm:{},rules:{folderName: [{ required: true, message: "文件夹名称不能为空", trigger: ["blur"] }],},fileForm:{},folderName:'',// 报表keywordinputVal: "",// 报表中心下拉框options: [{value: "Option1",label: "Option1",},{value: "Option2",label: "Option2",},{value: "Option3",label: "Option3",},{value: "Option4",label: "Option4",},{value: "Option5",label: "Option5",},],// select绑定的value: "",// 3个action 点击选中效果----报表中心optionList: [{value: "shareFolder",label: "共享文件",icon: "el-icon-share",color: "#2DA9FA",},{value: "allFolder",label: "公用文件",icon: "el-icon-folder",color: "#2DA9FA",},{value: "myFolder",label: "我的文件",icon: "el-icon-user-solid",color: "#1EC695",},{value: "likeFolder",label: "我的收藏",icon: "el-icon-star-on",color: "#FF8541",},],// 报表中心---类activeOption: "",// 表格数据tableData: [],// 决定展示文件格式/列表格式showFolder: true,showList: false,// 展示不同的文字/颜色/描述 卡片列表items: [],collectData:[],noDataFlag:false,// 数据总条数-卡片total: 0,// 分页参数-卡片queryParams: {pageNum: 1,pageSize: 10,},currentPageItems: [], // 当前页显示的数据-卡片listTotal: 12,listParams: {pageNum: 1,pageSize: 8,},currentPageData: [], // 新增数组用于存储当前页数据isCollected:false, //是否收藏publicOrNot:0,//默认私有};},computed: {...mapGetters(['nickName','id']),},watch: {// 根据名称筛选部门树folderName(val) {this.$refs.Ztree.filter(val);},},// 初始渲染数据created() {this.getMyFile()this.getFolders()},methods: {// 检索filterNode(value, data) {if (!value) {return true;}return data.folderName.indexOf(value) !== -1;},//左侧文件夹checkBoxNodeClick(data,node){if(node.checkedKeys.length > 1){this.$refs.Ztree.setCheckedKeys([]);this.$refs.Ztree.setCheckedNodes([data]);}if(node.checkedKeys.length ===0){this.ZFolderParentId = 0}else{this.ZFolderParentId = data.folderId //选中文件的ID}},getFileByFolder(data,node){debuggerthis.loading = truethis.noDataFlag = falseconst folderId  = data.folderId //文件夹IDconst params = {folderId: folderId,pageNum: this.queryParams.pageNum,pageSize:this.queryParams.pageSize,}getFileByFolder(params).then(response => {if(response.code === 200){this.items = response.rowsif(this.items.length===0){this.noDataFlag = true}this.total = response.totalthis.items.forEach(item => {item.name = item.name.split("_")[0]+'.'+item.name.split(".")[1]})this.loading = falsethis.isCollected = false}else{console.log(response.msg)this.loading = false}}).catch(error=>{// this.$message.error(error)this.loading = false});},// 设置报表选中效果/点击item项setActive(option) {// console.log(option)this.activeOption = option;if(option === 'myFolder'){ //我的文件this.getMyFile()}else if(option === 'likeFolder'){ //我的收藏this.getCollectFile()}else if(option === 'allFolder'){this.getPublicFile()}},handleTextClick(node, data) {// 点击文本的逻辑this.getFileByFolder(data, node)},//弹窗文件夹树treeCheck(data, node) {if(node.checkedKeys.length > 1){this.$refs.Ttree.setCheckedKeys([]);this.$refs.Ttree.setCheckedNodes([data]);}if(node.checkedKeys.length ===0){this.TfolderId = ''}else{this.TfolderId = data.folderId //收藏的文件夹ID}},//收藏文件handleSelecNode(){if(!this.TfolderId){this.$message.warning('请选择要收藏的文件夹')return}const params = {userId:this.id,iscollect:"1", //1 收藏 0否fileId:this.TfileId,folderId:this.TfolderId}collectFile(params).then(response => {if(response.code === 200){this.$message.success('收藏成功')this.TfileId = ''this.TfolderId = ''this.$refs.Ttree.setCheckedNodes([])this.collectVisible = false}else{console.log(response.msg)this.collectVisible = false}}).catch(error=>{this.$message.error(error)this.collectVisible = false});},closeTreeModal(){this.$refs.Ttree.setCheckedNodes([])this.collectVisible = false},// 切换为列表显示listClick() {this.showFolder = false;this.showList = true;},// 切换为文件夹显示folderClick() {this.showList = false;this.showFolder = true;},handleExceed(){},//列表上的收藏按钮handleCollect(row){this.collectFile(row.id)},addFolder(){this.visible = true},//添加文件夹submitForm(){this.$refs["folderForm"].validate(valid => {if (valid) {const params = {userId:this.id,parentId:this.ZFolderParentId,folderName:this.folderForm.folderName}addFolder(params).then(response => {if(response.code === 200){this.$message.success('添加成功')this.getFolders()this.visible = false}else{console.log(response.msg)this.visible = false}}).catch(error=>{this.$message.error(error)this.visible = false});}});this.resetForm('folderForm')this.ZFolderParentId = 0},closeModel(){this.visible = falsethis.resetForm('folderForm')},downloadUrl(address){// 将绝对路径转换为可访问的URL// const relativePath = address.replace('file:///', ''); // 去除文件协议前缀// return `${relativePath}`;let a = document.createElement('a')a.href =addressa.click();},//根据用户ID获取我的文件数据getMyFile(){this.loading = trueconst userId  = this.id //用户IDconst params = {userId: userId,pageNum: this.queryParams.pageNum,pageSize:this.queryParams.pageSize,}getMyFiles(params).then(response => {if(response.code === 200){this.items = response.rowsthis.total = response.totalthis.items.forEach(item => {item.name = item.name.split("_")[0]+'.'+item.name.split(".")[1]})this.loading = falsethis.isCollected = false}else{console.log(response.msg)this.loading = false}}).catch(error=>{this.$message.error(error)this.loading = false});},//查询文件夹树getFolders(){const userId  = this.id //用户IDconst params = {userId: userId,}getFolders(params).then(response => {if(response.code === 200){this.data = this.handleTree(response.data, "folderId");}else{console.log(response.msg)}}).catch(error=>{this.$message.error(error)});},//收藏文件collectFile(fileId){if(this.data.length ===0){this.$message.warning('您还没有要收藏的文件夹,请新增')return}this.treeData = this.datathis.TfileId = fileIdthis.collectVisible = true},//查询我的收藏文件getCollectFile(){this.loading = trueconst userId  = this.id //用户IDconst params = {userId: userId,pageNum: this.queryParams.pageNum,pageSize:this.queryParams.pageSize,}getCollectFile(params).then(response => {if(response.code === 200){this.items = response.rowsthis.total = response.totalthis.isCollected = truethis.items.forEach(item => {item.name = item.name.split("_")[0]+'.'+item.name.split(".")[1]})this.loading = false}else{console.log(response.msg)this.loading = false}}).catch(error=>{this.$message.error(error)this.loading = false});},//公用文件查询getPublicFile(){this.loading = truegetPublicFile().then(response => {if(response.code === 200){this.items = response.rowsthis.total = response.totalthis.isCollected = falsethis.items.forEach(item => {item.name = item.name.split("_")[0]+'.'+item.name.split(".")[1]})this.loading = false}else{console.log(response.msg)this.loading = false}}).catch(error=>{this.$message.error(error)this.loading = false});},//文件上传beforeUpload(file) {const fileType = file.type;const validTypes = ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];const maxSize = 10 * 1024 * 1024; // 10MBif (!validTypes.includes(fileType)) {this.$message.error('只能上传xls或xlsx文件');return false;}if (file.size > maxSize) {this.$message.error('文件大小不能超过10MB');return false;}this.open = falsethis.loading = trueconst formData = new FormData();formData.append('file', file); // 将文件添加到FormData中formData.append('userName', this.nickName); // 用户名formData.append('userId', this.id); // 用户名formData.append('publicOrNot', this.publicOrNot); // 是否公有 默认0私有 1公有uploadFile(formData).then(response => {if(response.code === 200){this.$message.success('上传成功')this.getMyFile()this.loading = false}else{console.log(response.msg)this.loading = false}}).catch(error=>{this.$message.error(error)this.loading = false});return false; // 阻止el-upload组件自动上传},// 切换页码-卡片getCardList(data) {this.queryParams.pageNum = data.page;const start = (data.page - 1) * this.queryParams.pageSize;const end = data.page * this.queryParams.pageSize;this.currentPageItems = this.items.slice(start, end);},// 切换页码-列表handlePagination(page) {this.listParams.pageNum = page.page;this.getTableData();},// 根据当前页码和每页显示数量获取表格数据getTableData() {const start = (this.listParams.pageNum - 1) * this.listParams.pageSize;const end = start + this.listParams.pageSize;this.paginatedData = this.tableData.slice(start, end);this.currentPageData = [...this.paginatedData];this.listTotal = this.tableData.length;},},
};
</script><style lang="scss" scoped>
// ::v-deep .btn-prev {
//   margin-left: 110px;
// }
.fy {margin-top: 20px;display: flex;justify-content: flex-end;
}
.el-icon-plus {margin-left: 10px;
}
.el-icon-document {font-size: 20px;
}::v-deep .el-tree-node {margin-top: 10px;i {// color: #ffde4f;color: #d2be08;margin-right: 5px;}
}
.Tree {margin-top: 17px;
}
.medium-action {margin-top: 20px;
}
.table {margin-top: 10px;margin-left: 10px;
}
// ::v-deep .el-select {
//   height: 30px;
//   width: 130px;
//   margin-right: 15px;
//   .el-input__inner {
//     width: 130px;
//   }
// }
::v-deep .el-select .el-input__inner{width: 100px !important;
}.el-card {/*width: 550px;*//*height: 150px;*/
}
.home-main {width: 100%;padding: 10px;.top-card {}.tree {margin-top: 11px;.tree-left {overflow: auto;height: calc(100vh - 115px);/*width: 200px;*/}.tree-right {.card-top {height: 50px;/*width: 1500px;*/margin-left: 10px;i {// 小手图标cursor: pointer;margin-left: 10px;font-size: 25px;}}// 卡片列表.card-list {/*width: 1320px;*//*height: 530px;*//*height: calc(100vh - 260px);*/// overflow: auto;// overflow: hidden;background-color: #dddddd29;margin-top: 10px;margin-left: 10px;margin-bottom: 10px;display: flex;justify-content: normal;flex-direction: row;flex-wrap: wrap;.card-item {margin: 10px;background-color: #ffe06114;width: 145px;height: 150px;position: relative;border-radius: 8px;box-shadow: 2px 2px 2px #ddd;// 底部弹出的盒子.hover-box {opacity: 0;position: absolute;bottom: 0;width: 100%;height: 30px;.action {display: flex;justify-content: space-around;padding: 6px;}span {color: #fff;font-size: 15px;cursor: pointer;}}.gift-box {height: 75px;border-radius: 50%;display: flex;justify-content: center;align-items: center;img {width: 50px;height: 50px;justify-content: center;}}.title {margin-top: 10px;text-align: center;font-size: 16px;}.desc {padding: 20px;color: #999999;text-align: center;font-size: 14px;}}// 鼠标经过展示底部.card-item:hover .hover-box {transition: 0.7s;opacity: 1;scale:1}.card-item:hover {transition: 0.2s;opacity: 1;scale:1.1}// 鼠标经过字体变色.hover-box span:hover {/*color: #1e73f3;*/}span {font-size:13px;}}}}.options {/*margin-top: 10px;*//*margin-left: 10px;*//*margin-bottom: 10px;*/margin: 10px;// 点击选中效果.option-item.active {background-color: #e6f7ff;padding: 3px;}.option-item {cursor: pointer;margin-top: 20px;}.fonts {font-size: 15px;margin-left: 10px;margin-top: 10px;}}.tree-top{display: flex;justify-content: space-between;align-items: center;}.action{i{font-size: 17px;color:#fff}i:hover{cursor: pointer;color: #ee3575;}}
}::v-deep.self-form-item{margin-bottom: 0px;margin-top: -15px}.option-item:hover{color: #1890ff;}
.head-container{display: flex;justify-content: center;align-items: center;
}
::v-deep.el-tree {.el-tree-node__content:hover {background-color: #1890ff;.btns {display: inline-block !important;}}
}
</style>

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

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

相关文章

项目实战:编辑页面加载库存信息

1、前端编辑页面加载水果库存信息逻辑edit.js let queryString window.location.search.substring(1) if(queryString){var fid queryString.split("")[1]window.onloadfunction(){loadFruit(fid)}loadFruit function(fid){axios({method:get,url:edit,params:{fi…

(四)docker:为mysql和java jar运行环境创建同一网络,容器互联

看了很多资料&#xff0c;说做互联的一个原因是容器内ip不固定&#xff0c;关掉重启后如果有别的容器启动&#xff0c;之前的ip会被占用&#xff0c;所以做互联创建一个网络&#xff0c;让几个容器处于同一个网络&#xff0c;就可以互联还不受关闭再启动ip会改变的影响&#xf…

opencv复习(简短的一次印象记录)

2-高斯与中值滤波_哔哩哔哩_bilibili 1、均值滤波 2、高斯滤波 3、中值滤波 4、腐蚀操作 卷积核不都是255就腐蚀掉 5、膨胀操作 6、开运算 先腐蚀再膨胀 7、闭运算 先膨胀再腐蚀 8、礼帽 原始数据-开运算结果 9、黑帽 闭运算结果-原始数据 10、Sobel算子 左-右&#x…

虚拟机部署与发布J2EE项目(Linux版本)

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.jdk安装配置 打开虚拟机 Centos 登入账号&#xff0c;并且使用MobaXterm进行连接 1.1. 传入资源 连接…

[MT8766][Android12] USB共享网络固定子网掩码跟网关并且默认开启USB共享网络

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 客户要求设备默认开启usb共享网络&#xff0c;并且网络共享给PC端时&#xff0c;PC端动态获取到的子网掩码、网关是固定不变的。 解决方法 解决方案…

学习整理nginx常用屏蔽规则,让网站更安全

学习整理nginx常用屏蔽规则&#xff0c;让网站更安全 注意一、防止文件被下载二、屏蔽非常见蜘蛛&#xff08;爬虫&#xff09;三、禁止某个目录执行脚本四、屏蔽某个IP或IP段 注意 在开始之前&#xff0c;希望您已经熟悉的Nginx常用命令&#xff08;如停止&#xff0c;重启等…

【ML】线性回归

线性回归 以房价为例。 单因子线性回归 房价和面积建立回归模型。 多因子线性回归 房价和面积、收入、房龄、地区人口数建立回归模型。 线性回归模型评估 MSE 越小越好&#xff0c; R 2 R^2 R2越接近1越好 MSE&#xff08;预测值y 和实际值y’ 的均方误差&#xff09; …

PostgreSQL 进阶 - 模式匹配,过滤敏感数据,数据清理

1. 模式匹配 SELECT phone_number FROM customers;使用正则表达式替换所有非数字字符 这样可以清理和标准化电话号码数据&#xff0c;去除任何非数字字符&#xff0c;只保留数字 UPDATE customers SET phone_number REGEXP_REPLACE(phone_number, [^0-9], , g) WHERE phone…

【C/C++笔试练习】new和deleted底层原理、静态数据成员、运算符重载、只能使用new创建的类、模版声明、另类加法、走方格的方案数

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;new和deleted底层原理&#xff08;2&#xff09;静态数据成员&#xff08;3&#xff09;运算符重载&#xff08;4&#xff09;程序分析&#xff08;5&#xff09;静态数据成员&#xff08;6&#xff09;只能使用new创建的…

element ui多选框编辑时无法选中的解决办法

<!--v-model绑定的值必须是[]&#xff0c;不能是字符串--><el-form-item label"配布对象" prop"reptGroupArray" > <!--多选--><el-checkbox-group v-model"form.reptGroupArray" size"small" change"check…

【Qt】QMainWidget中的栏和菜单

默认结构最复杂的标准窗口 提供了菜单栏, 工具栏, 状态栏, 停靠窗口菜单栏: 只能有一个, 创建的最上方工具栏: 可以有多个, 默认提供了一个, 窗口的上下左右都可以停靠状态栏: 只能有一个, 窗口最下方停靠窗口: 可以有多个, 默认没有提供, 窗口的上下左右都可以停靠 菜单栏 在…

11.2 知识总结(RegExp对象、Math对象、Bom和Dom

一、 RegExp对象 1.1 定义正则表达式两种方式 var reg1 new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); var reg2 /^[a-zA-Z][a-zA-Z0-9]{5,9}$/; 1.2 正则校验数据 reg1.test(jason666) reg2.test(jason666) 1.3 全局匹配 var s1 egondsb dsb dsb; s1.match(/s/)…

emq集群配置nginx做负载均衡

emq集群配置nginx做负载均衡 创建 EMQ X 节点集群 emqx 集群搭建 例如: 节点IP 地址emqx192.168.1.17192.168.1.17emqx192.168.1.18192.168.1.18emqx192.168.1.19192.168.1.19 配置 /etc/nginx/nginx.conf mqtt集群搭建并使用nginx做负载均衡_亲测得结论 示例: vim /et…

Minio多节点多驱动官网文档翻译

原文链接&#xff1a; Deploy MinIO: Multi-Node Multi-Drive — MinIO Object Storage for Linux The procedures on this page cover deploying MinIO in a Multi-Node Multi-Drive (MNMD) or “Distributed” configuration. MNMD deployments provide enterprise-grade p…

【实战Flask API项目指南】之六 数据库集成 SQLAlchemy

实战Flask API项目指南之 数据库集成 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 在上一篇文章中&#xff0c;我们实现了…

day53【子序列】1143.最长公共子序列 1035.不相交的线 53.最大子序和

文章目录 1143. 最长公共子序列1035.不相交的线53. 最大子序和 1143. 最长公共子序列 题目链接&#xff1a;力扣链接 讲解链接&#xff1a;代码随想录讲解 题意&#xff1a;给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 …

微信自动回复有什么好处?怎么设置?

微信自动回复有什么好处&#xff1f; 首先&#xff0c;它可以帮助我们节省时间和精力。当我们无法立即回复消息时&#xff0c;自动回复可以及时告知对方我们的状况&#xff0c;避免对方的焦虑和不便。 其次&#xff0c;自动回复可以增强沟通效率。无论是工作还是个人生活中&a…

gtsam初探以及结合LIO-SAM算法的一些理解

概述 GTSAM&#xff08;Georgia Tech Smoothing and Mapping&#xff09;是基于因子图的C库&#xff0c;本篇基于GTSAM对因子图优化做一个简单了解和梳理&#xff0c;并以LIO-SAM为例进一步分析因子图优化在SLAM中的应用。 参考链接&#xff1a; [0]gtsam官方文档 [1]https:/…

mongo常用操作符及查询例子

比较操作符&#xff1a; $eq&#xff1a;匹配字段值等于指定值。 $ne&#xff1a;匹配字段值不等于指定值。 $gt&#xff1a;匹配字段值大于指定值。 $gte&#xff1a;匹配字段值大于或等于指定值。 $lt&#xff1a;匹配字段值小于指定值。 $lte&#xff1a;匹配字段值小于或等…

最小化安装移动云大云操作系统--BCLinux-R8-U2-Server-x86_64-231017版

有个业务系统因为兼容性问题&#xff0c;需要安装el8.2的系统&#xff0c;因此对应安装国产环境下的BCLinuxR8U2系统来满足用户需求。BCLinux-R8-U2-Server是中国移动基于AnolisOS8.2深度定制的企业级X86服务器通用版操作系统。本文记录在DELL PowerEdge R720xd服务器上最小化安…