当前位置: 首页 > news >正文

【sgTransfer】自定义组件:带有翻页、页码、分页器的穿梭框组件,支持大批量数据的穿梭显示。

 

特性: 

  1. 表格宽度可以自定义
  2. 翻页器显示控件可以自定义
  3. 列配置项可以设置显示字段列名称、宽度、字段名
  4. 可以配置搜索框提示文本,支持搜索过滤
  5. 穿梭框顶部标题可以自定义
  6. 左右箭头按钮文本可以设置

sgTransfer源码

<template><div :class="$options.name"><div class="sg-start " :style="{ width: width }"><div class="sg-title" v-if="titles">{{ titles[0] }}</div><div class="sg-search"><el-input style="width: 100%;" v-model.trim="inputSearchValue_start" maxlength="20" :show-word-limit="false":placeholder="filterPlaceholder || `请输入搜索内容...`" clearable @keyup.native.enter="initListStart"@clear="initListStart"><el-button slot="append" icon="el-icon-search" @click="initListStart" /></el-input></div><div class="sg-table"><el-table ref="table_start" :data="tableData_start" :header-cell-style="{ background: '#f5f7fa' }":height="'300px'" style="width: 100%" stripe @selection-change="selection_start_change":row-class-name="row_class_name" @row-click="row_click_start"><el-table-column type="selection" minWidth="50" :selectable="selectable" /><el-table-column v-for="(a, i) in tableItems_start" :key="i" :prop="a.prop" :label="a.label":width="a.width || false" :minWidth="a.minWidth || false" show-overflow-tooltip /></el-table></div><div class="sg-pagination"><el-pagination background :hidden="startPage.total <= 10" :layout="layout" :page-sizes="[10, 20, 50]":pager-count="5" :current-page.sync="startPage.currentPage" :page-size.sync="startPage.pageSize":total="startPage.total" @size-change="pageChange" @current-change="pageChange" /></div></div><div class="sg-center "><el-button :disabled="disabledLeftButton" @click="remove" type="primary" icon="el-icon-arrow-left">{{buttonTexts ? buttonTexts[0] : ''}}</el-button><el-button :disabled="disabledRightButton" @click="add" type="primary">{{ buttonTexts ? buttonTexts[1] : '' }}<iclass="el-icon-arrow-right" style="margin-left: 5px;"></i></el-button></div><div class="sg-end " :style="{ width: width }"><div class="sg-title" v-if="titles">{{ titles[1] }}</div><div class="sg-search"><el-input style="width: 100%;" v-model.trim="inputSearchValue_end" maxlength="20" :show-word-limit="false":placeholder="filterPlaceholder || `请输入搜索内容...`" clearable@keyup.native.enter="initListEnd({ currentPage: 1 })" @clear="initListEnd"><el-button slot="append" icon="el-icon-search" @click="initListEnd({ currentPage: 1 })" /></el-input></div><div class="sg-table"><el-table ref="table_end" :data="tableData_end" :header-cell-style="{ background: '#f5f7fa' }":height="'300px'" style="width: 100%" stripe @selection-change="selection_end_change"@row-click="row_click_end"><el-table-column type="selection" minWidth="50" /><el-table-column v-for="(a, i) in tableItems_end" :key="i" :prop="a.prop" :label="a.label":width="a.width || false" :minWidth="a.minWidth || false" show-overflow-tooltip /></el-table></div><div class="sg-pagination"><el-pagination background :hidden="endPage.total <= 10" :layout="layout" :page-sizes="[10, 20, 50]":pager-count="5" :current-page.sync="endPage.currentPage" :page-size.sync="endPage.pageSize":total="endPage.total" @size-change="initListEnd" @current-change="initListEnd" /></div></div></div>
</template><script>
export default {name: 'sgTransfer',data() {return {width: '200px',layout: `total, sizes, prev, pager, next, jumper`,disabledForm: false,inputSearchValue_start: '',inputSearchValue_end: '',tableItems_start: [],//表格列配置项tableItems_end: [],//表格列配置项tableData_start: [],//呈现的当前页数据tableData_end: [],//呈现的当前页数据tableData_end_bk: [],//最终选择的数据selection_start: [],selection_end: [],startPage: { currentPage: 1, pageSize: 10, total: 0, },endPage: { currentPage: 1, pageSize: 10, total: 0, },mainKey: null,//主键}},props: ["value","data",/*格式说明data: {width: '400px',//表格宽度layout: `total, sizes, prev, next, jumper`,//翻页器显示控件// 列配置项tableItems: [{ prop: 'ID', label: '工号', minWidth: '50' },{ prop: 'XM', label: '姓名', minWidth: '50' },{ prop: 'YHM', label: '用户名', minWidth: '50' },],tableData: [],//表格显示内容startPage: { total: 0, },//实际总数}, */"titles","buttonTexts","filterPlaceholder",],computed: {disabledLeftButton(d) {return this.selection_end.length === 0;},disabledRightButton(d) {// 在左边表格选中项里面,遍历每一项,如果在右侧表格中都能找到匹配项就truereturn this.selection_start.every(row => this.tableData_end_bk.some(v => this.isSameItem(v, row)));},},watch: {value: {handler(d) {this.inputSearchValue_start = '';this.inputSearchValue_end = '';this.startPage.currentPage = 1;this.endPage.currentPage = 1;this.tableData_end_bk = d || [];this.initListStart();}, deep: true, immediate: true,},data: {handler(d) {if (d) {d.width && (this.width = d.width);d.layout && (this.layout = d.layout);this.tableData_start = d.tableData;this.tableItems_start = d.tableItems_start || d.tableItems;this.tableItems_end = d.tableItems_end || d.tableItems;this.mainKey = (this.tableItems_start.find(v => v.mainKey) || {}).prop;//主键this.startPage.total = (d.startPage || {}).total || 0;}}, deep: true, immediate: true,},tableData_end_bk: {handler(d) {this.$emit(`input`, d);this.initListEnd();if (this.tableData_end.length === 0) {this.inputSearchValue_end = '';this.endPage.currentPage = Math.round(this.tableData_end_bk.length / this.endPage.pageSize);}}, deep: true, immediate: true,},},methods: {row_click_start(row, column, event) { this.$refs.table_start.toggleRowSelection(row); },row_click_end(row, column, event) { this.$refs.table_end.toggleRowSelection(row); },pageChange(d) { this.initListStart(); this.$nextTick(() => { this.refreshCheckStatus() }); },refreshCheckStatus() {this.tableData_start.forEach(row => this.$refs.table_start.toggleRowSelection(row, this.tableData_end_bk.some(v => this.isSameItem(v, row))));},selectable(row) { return !this.tableData_end_bk.some(v => this.isSameItem(v, row)); },row_class_name({ row, rowIndex }) { return this.tableData_end_bk.find(v => this.isSameItem(v, row)) ? 'selected' : ''; },isSameItem(a_obj, b_obj) {let isSame = true;if (this.mainKey) {isSame = a_obj[this.mainKey] == b_obj[this.mainKey];} else {isSame = Object.keys(a_obj).every(k => a_obj[k] == b_obj[k]);}return isSame;},remove(d) {if (this.mainKey) {let selection_end_mainKeys = this.selection_end.map(v => v[this.mainKey]);this.tableData_end_bk = this.tableData_end_bk.filter(v => !selection_end_mainKeys.includes(v[this.mainKey]));} else {let selection_end = this.selection_end.map(v => JSON.stringify(v));this.tableData_end_bk = this.tableData_end_bk.filter(v => !selection_end.includes(JSON.stringify(v)));}this.$nextTick(() => { this.refreshCheckStatus() });},add(d) {this.selection_start.forEach(row => this.tableData_end_bk.some(v => this.isSameItem(v, row)) || this.tableData_end_bk.push(row));},selection_start_change(selection) {this.selection_start = selection;},selection_end_change(selection) {this.selection_end = selection;},initListStart() {this.$emit('init', {keyword: this.inputSearchValue_start,currentPage: this.startPage.currentPage || 1,pageSize: this.startPage.pageSize,});},initListEnd({keyword = this.inputSearchValue_end,currentPage = this.endPage.currentPage || 1,pageSize = this.endPage.pageSize,} = {}) {this.endPage.currentPage = currentPage;this.endPage.pageSize = pageSize;let results = this.tableData_end_bk.filter(obj =>keyword ?Object.keys(obj).some(k => obj[k].toString().toLocaleLowerCase().includes(keyword.toString().toLocaleLowerCase())): true);this.endPage.total = results.length;this.tableData_end = results.slice((currentPage - 1) * pageSize, (currentPage) * pageSize);},},
};
</script><style lang="scss" scoped>
.sgTransfer {display: flex;align-items: center;flex-wrap: nowrap;white-space: nowrap;&>.sg-start,&>.sg-end {border: 1px solid #ebeef5;border-radius: 4px;overflow: hidden;background: #fff;display: inline-block;vertical-align: middle;max-height: 100%;box-sizing: border-box;position: relative;.sg-title {height: 40px;line-height: 40px;background: #f5f7fa;margin: 0;padding-left: 15px;border-bottom: 1px solid #ebeef5;box-sizing: border-box;color: #000;}.sg-search {box-sizing: border-box;padding: 10px;}.sg-table {}.sg-pagination {height: 50px;display: flex;justify-content: center;width: 100%;box-sizing: border-box;padding: 10px;}}&>.sg-center {margin: 0 10px;}&>.sg-end {}
}>>>.el-table {tr.selected {filter: brightness(0.95);pointer-events: none;}.el-table__cell.gutter {border-bottom: 1px solid #EBEEF5;background-color: #f5f7fa;}
}
</style>

用例

<template><div><sgTransfer v-model="transferValue" :data="transferData" :titles="['所有用户', '本组成员']" :button-texts="['到左边', '到右边']":filter-placeholder="`请输入工号、姓名…`" @init="initTransfer" /><hr><div><h1>勾选的数据transferValue:</h1><div v-html="JSON.stringify(transferValue).replace(/\,\{/g, ',\n{')"style="word-wrap: break-word;word-break: break-all;white-space: break-spaces;"> </div></div></div>
</template><script>
import sgTransfer from "@/vue/components/admin/sgTransfer";export default {components: { sgTransfer },data() {return {// 穿梭框配置项transferValue: [],transferData: {width: '400px',//表格宽度layout: `total, sizes, prev, next, jumper`,//翻页器显示控件// 列配置项tableItems: [{ prop: 'ID', label: '工号', minWidth: '50', mainKey: true },//设置主键{ prop: 'XM', label: '姓名', minWidth: '50' },{ prop: 'YHM', label: '用户名', minWidth: '50' },],tableData: [],//表格显示内容startPage: { total: 0, },//实际总数},// 渲染数据tableData: [],tableData_bk: [],userList: [{ key: 1, label: '梁冰露' },{ key: 2, label: '吴梵听' },{ key: 3, label: '卢令美' },{ key: 4, label: '韩宛曼' },{ key: 5, label: '郝海冬' },{ key: 6, label: '傅优悦' },{ key: 7, label: '郝幻莲' },{ key: 8, label: '江嘉云' },{ key: 9, label: '梁秋芳' },{ key: 10, label: '郝悦颖' },{ key: 11, label: '廖芝蓉' },{ key: 12, label: '胡傲丝' },{ key: 13, label: '赵珺琦' },{ key: 14, label: '石心诺' },{ key: 15, label: '丁翠芙' },{ key: 16, label: '李夏河' },{ key: 17, label: '范水悦' },{ key: 18, label: '郑凝雪' },{ key: 19, label: '李亦玉' },{ key: 20, label: '袁三春' },{ key: 21, label: '赵红叶' },{ key: 22, label: '曹安琪' },{ key: 23, label: '谭琴音' },{ key: 24, label: '钟湛蓝' },{ key: 25, label: '陆之柔' },{ key: 26, label: '吕孒凡' },{ key: 27, label: '熊野雪' },{ key: 28, label: '曹叶澜' },{ key: 29, label: '韩粟梅' },{ key: 30, label: '孔杏儿' },{ key: 31, label: '宋若彤' },{ key: 32, label: '于淼淼' },{ key: 33, label: '潘欣跃' },{ key: 34, label: '石雅辰' },{ key: 35, label: '白念珍' },{ key: 36, label: '文爱茹' },{ key: 37, label: '王如曼' },{ key: 38, label: '宋丝琪' },{ key: 39, label: '王凝荷' },{ key: 40, label: '郑雨雪' },{ key: 41, label: '梁映阳' },{ key: 42, label: '徐新雨' },{ key: 43, label: '毛恬雅' },{ key: 44, label: '侯若蕊' },{ key: 45, label: '杨云蔚' },{ key: 46, label: '史之卉' },{ key: 47, label: '胡千束' },{ key: 48, label: '冯冷荷' },{ key: 49, label: '金语心' },{ key: 50, label: '江恬默' },{ key: 51, label: '高香馨' },{ key: 52, label: '江凌晴' },{ key: 53, label: '梁列琴' },{ key: 54, label: '邹鸾瑶' },{ key: 55, label: '夏素洁' },{ key: 56, label: '范秋玉' },{ key: 57, label: '钟北嘉' },{ key: 58, label: '谭水云' },{ key: 59, label: '顾山柏' },{ key: 60, label: '龙曼蔓' },{ key: 61, label: '钟双儿' },{ key: 62, label: '林林娜' },{ key: 63, label: '邹溪儿' },{ key: 64, label: '顾妙彤' },{ key: 65, label: '傅茵茵' },{ key: 66, label: '卢念露' },{ key: 67, label: '罗冷亦' },{ key: 68, label: '胡秋颖' },{ key: 69, label: '姜怡月' },{ key: 70, label: '傅和暄' },{ key: 71, label: '赖布凡' },{ key: 72, label: '郝念蕾' },{ key: 73, label: '邱天欣' },{ key: 74, label: '汤莉莉' },{ key: 75, label: '段靖易' },{ key: 76, label: '周之云' },{ key: 77, label: '董映秋' },{ key: 78, label: '汤玲琅' },{ key: 79, label: '田雁梅' },{ key: 80, label: '石雨雪' },{ key: 81, label: '任君雅' },{ key: 82, label: '蔡小谷' },{ key: 83, label: '孟忆之' },{ key: 84, label: '姜闲丽' },{ key: 85, label: '文忆香' },{ key: 86, label: '戴运虹' },{ key: 87, label: '王玄穆' },{ key: 88, label: '刘绿柳' },{ key: 89, label: '萧梦丝' },{ key: 90, label: '谭忆山' },{ key: 91, label: '方榕嫣' },{ key: 92, label: '徐欣合' },{ key: 93, label: '夏雨南' },{ key: 94, label: '尹沙羽' },{ key: 95, label: '万梦玉' },{ key: 96, label: '谢灵枫' },{ key: 97, label: '曾源源' },{ key: 98, label: '赖谷枫' },{ key: 99, label: '彭子童' },],}},created() {this.createTableData()},methods: {// 初始化、翻页、切换每页显示数量的时候触发initTransfer({ keyword = '', currentPage = 1, pageSize = 10 } = {}) {// 模拟接口调用----------------------------------------let results = this.tableData_bk.filter(obj => keyword ? Object.keys(obj).some(k => obj[k].toString().toLocaleLowerCase().includes(keyword.toString().toLocaleLowerCase())) : true);this.transferData.startPage.total = results.length;this.transferData.tableData = results.slice((currentPage - 1) * pageSize, (currentPage) * pageSize);// ----------------------------------------},// 构建数据createTableData(d) {this.tableData_bk = this.userList.map(v => {let ID = this.$g.getRandomID();return { ID, XM: v.label, YHM: `user${ID}`, }});this.initTransfer();},}
}
</script>

相关文章:

【sgTransfer】自定义组件:带有翻页、页码、分页器的穿梭框组件,支持大批量数据的穿梭显示。

特性&#xff1a; 表格宽度可以自定义翻页器显示控件可以自定义列配置项可以设置显示字段列名称、宽度、字段名可以配置搜索框提示文本&#xff0c;支持搜索过滤穿梭框顶部标题可以自定义左右箭头按钮文本可以设置 sgTransfer源码 <template><div :class"$opti…...

分布式爬虫与SOCKS5代理池的组合优势

在数据驱动的时代&#xff0c;网络爬虫成为了获取大量信息的重要工具。然而&#xff0c;随着网站反爬策略的升级&#xff0c;传统的单机爬虫面临着速度慢、易被封禁等问题。为了应对这些挑战&#xff0c;我们可以尝试将分布式爬虫与SOCKS5代理池相结合&#xff0c;提高爬虫的性…...

京东获得JD商品详情 API 接口文档(含请求代码)

item_get-获得JD商品详情 API测试工具 注册开通 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_sea…...

linux开启端口

目录 1.查看防火墙状态 1.1 开启防火墙 1.2 再次查看防火墙状态 2.开启指定端口 3. 重启防火墙 4.重新加载防火墙 5.查看已经开启的端口 1.查看防火墙状态 firewall-cmd --state 如果返回的是 not running&#xff0c;那么需要先开启防火墙&#xff0c; 1.1 开启防火…...

聚合多个电商API接口平台

API接口测试&#xff08;点击免费测试&#xff09; 随着数字化商业时代的到来&#xff0c;API接口已成为电商资源连接利器&#xff0c;也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示&#xff0c;全球互联网企业近3/4的企业持续投入数字化转型&#xff0c…...

4.2 实现基于栈的表达式求值计算器(难度4/10)

本作业主要考察&#xff1a;解释器模式的实现思想/栈结构在表达式求值方面的绝对优势 C数据结构与算法夯实基础作业列表 通过栈的应用&#xff0c;理解特定领域设计的关键作用&#xff0c;给大家眼前一亮的感觉。深刻理解计算机语言和人类语言完美结合的杰作。是作业中的上等…...

持续性能优化:确保应用保持高性能

在当今数字化时代&#xff0c;应用程序的性能已经成为用户体验和业务成功的关键因素之一。无论是Web应用、移动应用还是企业级软件&#xff0c;用户对于速度和响应性的要求越来越高。因此&#xff0c;持续性能优化已经成为保证应用在竞争激烈的市场中脱颖而出的重要策略。 什么…...

Jupyter installation Tutorial

文章目录 1. 面向的系统2. 什么是Jupyter&#xff1f;3. 安装Python环境4. 安装Jupyter notebook5. Jupyter的启动和配置6. Jupyter的使用技巧7. conclusion参考文献 1. 面向的系统 Windows安装 2. 什么是Jupyter&#xff1f; Jupyter Notebook是一个开源的Web应用程序&…...

css-定位position 理论

1.1网页常见布局方式 1.标准流 1.块级元素独占一行直布局 2.行内元素/行内块元素一行显示多个 ------>水平布局 2.浮动 1. 可以让原本垂直布局的 块级元素变成水平布局 3.定位 1. 可以让元素自由的摆放在网页的任意位置 2. 一般用于 盒子之间的层叠情况 1.2使用定位的步骤…...

软件测试规范

1、概述 本规范是对项目软件测试的一份指导性文件&#xff0c;对软件测试过程中所涉及到的测试理论、测试类型、测试方法、测试标准、测试流程以及软件产品开发单位所承担的职责进行总体规范&#xff0c;以有效保证软件产品的质量。 2、测试目的 测试的目的就是在软件交付前…...

Volatile 关键字提供的可见性

/*** 类说明&#xff1a;演示Volatile的提供的可见性*/ public class VolatileCase {// 说明&#xff1a;当ready没有volatile修饰时&#xff0c;执行结果是PrintThread线程一直处于被挂起状态&#xff0c;子线程感知不到主线程中的变量// 当ready被volatile修饰时&#xff0c;…...

Vue学习(三)

一、列表渲染 v-for指令 用于展示列表数据 语法<li v-for"(item, index) in items" :key"index"></li>key可以是index,最好是遍历对象的唯一标识 可遍历&#xff1a;数组、对象 <!DOCTYPE html> <html lang"en">&l…...

贝锐蒲公英异地组网路由器如何设置虚拟串口功能?

蒲公英虚拟串口功能&#xff0c;可实现智能组网内的其它成员异地调试此串口&#xff0c;无需到现场进行调试&#xff0c;为企业降低运营成本、便捷掌控设备数据。 1. 蒲公英硬件设置串口 进入蒲公英云管理平台&#xff0c;点击【工业应用】->【串口设置】&#xff0c;开启…...

MySQL 8.1.0 推出 InnoDB Cluster 只读副本

全面了解 8.1.0 版本新功能&#xff1a;InnoDB Cluster 只读副本的相关操作。 作者&#xff1a;Miguel Arajo 高级软件工程师 / Kenny Gryp MySQL 产品总监 本文来源&#xff1a;Oracle MySQL 官网博客 * 爱可生开源社区出品。 前言 MySQL 的第一个 Innovation 版本 8.1.0 已…...

java并发编程 PriorityBlockingQueue详解

文章目录 1 PriorityBlockingQueue是什么2 核心属性详解3 核心方法详解3.1 offer(E e)3.2 poll()3.3 take()3.4 peek() 4 总结 1 PriorityBlockingQueue是什么 PriorityBlockingQueue类上的注释描述&#xff1a;一个无界阻塞队列&#xff0c;它使用与类PriorityQueue相同的排序…...

SpringMVC_基本使用

一、JavaWEB 1.回顾 JavaWEB 1.1新建项目结构 新建 javaweb 项目目录结构 1.2导入依赖 依赖 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>…...

大屏开发,浏览器的可视区域和设备的分辨率

在线屏幕检测 - 显示器检测 - 显示器坏点检测工具...

【微服务部署】06-日志集成

文章目录 1. EFK日志三件套集成1.1 核心组件1.2 部署 2. Exceptionless日志系统2.1 Exceptionless核心特性2.2 Exceptionless部署文件2.3 K8s中使用Exceptionless 1. EFK日志三件套集成 1.1 核心组件 Elasticsearch&#xff08;存储&#xff09;Fluentd&#xff08;收集器&am…...

【Python】python使用docxtpl生成word模板

python使用docxtpl生成word模板 python-docxtpl包简单使用和实战&#xff0c;Python处理word&#xff0c;docx文件。 最近需要处理一些爬虫得到的数据来进行一些自动化报告的操作&#xff0c;因为需要生成的是word的报告&#xff0c;所以估选用docxtpl库来直接生成模板 docxt…...

C++学习笔记总结练习:多态与虚函数

1 多态 多态分类 静态多态&#xff0c;是只在编译期间确定的多态。静态多态在编译期间&#xff0c;根据函数参数的个数和类型推断出调用的函数。静态多态有两种实现的方式 重载。&#xff08;函数重载&#xff09;模板。 动态多态&#xff0c;是运行时多态。通过虚函数机制实…...

linux 批量更改指定后辍文件的可执行权限

要在Linux上批量更改指定后缀文件的可执行权限&#xff0c;您可以使用find命令来查找这些文件&#xff0c;然后使用chmod命令来更改它们的权限。以下是一些步骤&#xff1a; 1. 打开终端。 2. 使用 find 命令查找要更改权限的文件&#xff0c;例如&#xff0c;如果您想要更…...

数据结构(Java实现)-Map和Set

搜索树 概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 它的左右子树也…...

C++进程、线程、内存管理

目录 进程和线程区别 进程和线程切换的区别 系统调用流程 系统调用是否会引起线程切换 为什么需要使用虚拟内存 进程和线程区别 本质区别&#xff1a; 进程是资源分配的基本单元。 线程是操作系统调度的基本单元。 地址空间&#xff1a; 进程具有独立的虚拟地址空间。 线程…...

打车系统网约车系统开发支持APP公众号H5小程序版本源码

一、操作流程 二、业务模式 三、用户端 用户注册登录&#xff1a;未注册的手机号将自动创建账号 通过好友的邀请链接进行注册&#xff0c;将会绑定上下级关系 也可以注册的时候输入好友的邀请码&#xff0c;也可以绑定关系 用户充值&#xff1a; 用户下单支付时&#xff0c;可以…...

HTTP/1.1协议的状态码

2023年8月30日&#xff0c;周三下午 HTTP/1.1协议定义了一组状态码&#xff0c;用于表示请求的处理结果。 每个状态码都有特定的含义&#xff0c;它们以三位数字的形式出现在响应的状态行中。 下面是一些常见的HTTP/1.1协议的状态码及其含义&#xff1a; 1xx&#xff08;信息…...

SpringCloud(十)——ElasticSearch简单了解(一)初识ElasticSearch和RestClient

文章目录 1. 初始ElasticSearch1.1 ElasticSearch介绍1.2 安装并运行ElasticSearch1.3 运行kibana1.4 安装IK分词器 2. 操作索引库和文档2.1 mapping属性2.2 创建索引库2.3 对索引库的查、删、改2.4 操作文档 3. RestClient3.1 初始化RestClient3.2 操作索引库3.3 操作文档 1. …...

CAD文字显示?问号解决

背景 从别人哪儿发过来的CAD文件&#xff0c;打开后发现有些文字显示为&#xff1f; 问题排查 通过点击文字特性得知 该文字的样式是 SF和仿宋通过命令行执行st 得知&#xff0c;两种样式关联的字体都是仿宋GB_2312&#xff0c;但当前操作系统无此字体&#xff0c;故显示为&…...

Calico切换网络模式无效

Calico切换网络模式无效 Calico由原先的BGP模式切换为IP IP模式发现未生效&#xff0c;使用的模式还是BGP模式&#xff0c;Calico卸载后查询Etcd发现存在很多Calico数据 [rootk8s-master-1 ~]# etcdctl get / --prefix --keys-only | grep calico /calico/ipam/v2/assignment…...

数据生成 | MATLAB实现GAN生成对抗网络结合SVM支持向量机的数据生成

数据生成 | MATLAB实现GAN生成对抗网络结合SVM支持向量机的数据生成 目录 数据生成 | MATLAB实现GAN生成对抗网络结合SVM支持向量机的数据生成生成效果基本描述程序设计参考资料 生成效果 基本描述 数据生成 | MATLAB实现GAN生成对抗网络结合SVM支持向量机的数据生成。 生成对抗…...

iOS - 资源按需加载 - ODR

一、瘦身技术大图 二、On-Demand Resources 简介 将其保存管理在苹果的服务器&#xff0c;按需使用资源、优化包体积&#xff0c;实现更小的应用程序。ODR 的好处&#xff1a; 应用体积更小&#xff0c;下载更快&#xff0c;提升初次启动速度资源会在后台下载操作系统将会在磁…...