el-table动态行和列及多级表头

主页面 

<template><div class="result-wrapper"><dynamic-table :table-data="tableData" :table-header="tableConfig" :tableTitle="tableTitle" :flowParams="flowParams"></dynamic-table></div>
</template><script>
import DynamicTable from './components/DynamicTable'
import dataInfo from "./data.json";
export default {props: {},components: {DynamicTable},data() {return {tableTitle: '邮政企业三级领导人员2024年7月绩效考核指标得分数据库',tableData: [],tableConfig: []}},computed: {},async created() {},methods: {openFlowPage() {let respData = dataInfo.data;if (respData.evalPerformanceRecordDetailList && respData.evalPerformanceRecordDetailList.length) {let list = JSON.parse(JSON.stringify(respData.evalPerformanceRecordDetailList)) // 表格业务数据let tableData = JSON.parse(JSON.stringify(respData.evalPerformanceRecordDetailList)) // 表格业务数据this.tableData = listthis.tableConfigDeal(list[0].evalFormIndicatorBlocks)this.gettableData(tableData);console.log(this.tableConfig, 'tableConfig')console.log(this.tableData, 'tableData')}},tableDataFormat () {const data = JSON.parse(JSON.stringify([...this.tableData]));data.forEach((item) => {const newArray = [];for (const key in item.value) {// console.log(item.value, 'item.value');// console.log(key, 'key');if (item.value[key]) {delete item.value[key].childrennewArray.push(item.value[key])}}item.newArray = newArraydelete item.value})return data},getForData(array, count) {if (count) {count++} else {count = 1}array.forEach((item) => {item.floor = count;if (item.children && item.children.length) {this.getForData(item.children, count)} else {item.children = [{label: '标杆值',prop: 'benchmarkVal', valueData: item.id,formIndicatorBlockId: item.formIndicatorBlockId},{label: '完成值',prop: 'completionVal',valueData: item.id,formIndicatorBlockId: item.formIndicatorBlockId},{label: '建议得分',prop: 'scoreVal',valueData: item.id,formIndicatorBlockId: item.formIndicatorBlockId,}]}if (item.floor === 2 && item && !this.hasLabelData(item.children, '建议得分合计')) { item.children.push({label: '建议得分合计',prop: 'suggestScoreTotal',valueData: item.id,type: true,formIndicatorBlockId: item.formIndicatorBlockId})if (item.isShowLeaderMarkScore) {item.children.push( { label: '领导评分',prop: 'leaderScore',valueData: item.id,type: false,formIndicatorBlockId: item.formIndicatorBlockId})}}})},getTablejson(array, json, personObj, count) {if (count) {count++} else {count = 1}array.forEach((obj) => {if (obj.hasOwnProperty('suggestScoreTotal')) {json[obj.id] = {...obj,};} obj.floor = count;if (obj.children && obj.children.length) {this.getTablejson(obj.children, json, obj, count)} else {json[obj.id] = {...obj,originDataNoChild: true};}});},gettableData(array) {const tableData = [];array.forEach((item) => {const json = {value: {}};json.id = item.empNumber;json.company = item.company;if (item.evalFormIndicatorBlocks && item.evalFormIndicatorBlocks.length) {item.evalFormIndicatorBlocks.forEach((list) => {this.getTablejson(list.children, json.value, list, 0);})}tableData.push(json);});this.tableData = tableData;},tableConfigDeal(array) {// console.log(array, 'array');this.getForData(array, 0);let tableConfig = [{id: 10,label: '单位',prop: 'company'}]this.tableConfig = tableConfig.concat(array);},hasLabelData (children, key) {let flag = falsefor(let i = 0; i < children.length; i++) {if (children[i].label === key) {flag = truebreak}}return flag}}                 
}
</script>
<style scoped lang="scss">
::v-deep .el-table--border th, ::v-deep .el-table__fixed-right-patch {border-bottom: 1px solid #666666;
}
::v-deep .el-table--border td, .el-table--border th, ::v-deep .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed {border-right: 1px solid #666666;
}
::v-deep .el-table--border, ::v-deep .el-table--group {border: 1px solid #666666;
}
::v-deep .el-table--border td, ::v-deep .el-table--border th, ::v-deep .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed {border-right: 1px solid #666666;
}
::v-deep .el-table td, ::v-deep .el-table th.is-leaf {border-bottom: 1px solid #666666;
}
</style>

页面表格表头和表内容数据 

{"code": "0","msg": "成功","data": [{"id": "8837445335765553152","empNumber": "LXZT00002","company": "石家庄","evalFormIndicatorBlocks": [{"id": "8837445339947274240","performanceRecordId": "8837445334637285376","sectionType": "quality","children": [{"id": "8837445434885345280","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445339947274240","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "80","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00008","itemLevel": "/战略绩效得分","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": true,"label": "战略绩效得分"}],"score": "80","label": "战略绩效指标"},{"id": "8837445391839203328","performanceRecordId": "8837445334637285376","sectionType": "quantity","children": [{"id": "8837445436214939648","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "6","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革","children": [{"id": "8837445437431287808","parentId": "8837445436214939648","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革/组织管理架构和质量指标体系建设情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "组织管理架构和质量指标体系建设情况"},{"id": "8837445440002396160","parentId": "8837445436214939648","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革/处理中心人均处理效率","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "处理中心人均处理效率"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": false,"label": "“两集中”改革"},{"id": "8837445442326040576","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "7","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴","children": [{"id": "8837445443424948224","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/协同与服务乡村振兴/服务乡村振兴重点指标完成情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "服务乡村振兴重点指标完成情况"},{"id": "8837445445991862272","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴/协同项目重点目标完成情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "协同项目重点目标完成情况"},{"id": "8837445448374226944","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴/营销体系建设落实情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "营销体系建设落实情况"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": true,"isCanLeaderMarkScore": true,"isCanScore": false,"label": "协同与服务乡村振兴"},{"id": "8837445451129884672","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "7","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000016","itemLevel": "/三级物流体系、“网点+站点”","children": [{"id": "8837445452400758784","parentId": "8837445451129884672","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "5","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000015","itemLevel": "/三级物流体系、“网点+站点”/三级物流体系","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "三级物流体系"},{"id": "8837445454976061440","parentId": "8837445451129884672","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000016","itemLevel": "/三级物流体系、“网点+站点”/“网点+站点”","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "“网点+站点”"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": true,"isCanLeaderMarkScore": null,"isCanScore": false,"label": "三级物流体系、“网点+站点”"}],"score": "20","label": "重点任务指标"}]},{"id": "8837445336914792448","empNumber": "LXZT00001","company": "唐山","evalFormIndicatorBlocks": [{"id": "8837445339947274240","performanceRecordId": "8837445334637285376","sectionType": "quality","children": [{"id": "8837445434885345280","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445339947274240","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "80","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00008","itemLevel": "/战略绩效得分","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "战略绩效得分"}],"score": "80","label": "战略绩效指标"},{"id": "8837445391839203328","performanceRecordId": "8837445334637285376","sectionType": "quantity","children": [{"id": "8837445436214939648","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "6","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革","children": [{"id": "8837445437431287808","parentId": "8837445436214939648","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革/组织管理架构和质量指标体系建设情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "组织管理架构和质量指标体系建设情况"},{"id": "8837445440002396160","parentId": "8837445436214939648","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/“两集中”改革/处理中心人均处理效率","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "处理中心人均处理效率"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": false,"label": "“两集中”改革"},{"id": "8837445442326040576","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "7","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴","children": [{"id": "8837445443424948224","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "3","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00006","itemLevel": "/协同与服务乡村振兴/服务乡村振兴重点指标完成情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "服务乡村振兴重点指标完成情况"},{"id": "8837445445991862272","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴/协同项目重点目标完成情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "协同项目重点目标完成情况"},{"id": "8837445448374226944","parentId": "8837445442326040576","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT00007","itemLevel": "/协同与服务乡村振兴/营销体系建设落实情况","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "营销体系建设落实情况"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": false,"label": "协同与服务乡村振兴"},{"id": "8837445451129884672","parentId": null,"performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "7","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000016","itemLevel": "/三级物流体系、“网点+站点”","children": [{"id": "8837445452400758784","parentId": "8837445451129884672","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "5","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000015","itemLevel": "/三级物流体系、“网点+站点”/三级物流体系","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "三级物流体系"},{"id": "8837445454976061440","parentId": "8837445451129884672","performanceRecordId": "8837445334637285376","formIndicatorBlockId": "8837445391839203328","scoreVal": null,"empNumber": "LXZT00001","company": "唐山","benchmarkVal": null,"completionVal": null,"score": "2","suggestScoreTotal": null,"leaderScore": null,"informantNumber": "LXZT000016","itemLevel": "/三级物流体系、“网点+站点”/“网点+站点”","children": null,"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": null,"label": "“网点+站点”"}],"leaderMarkScoreList": null,"isShowLeaderMarkScore": null,"isCanLeaderMarkScore": null,"isCanScore": false,"label": "三级物流体系、“网点+站点”"}],"score": "20","label": "重点任务指标"}]}]
}

DynamicTable.vue

n<template><div><el-table :data="tableData" border :height="height"><template v-for="(item) in tableHeader"><table-column v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item" :flowParams="flowParams"></table-column><el-table-column v-else :key="item.id" :label="item.label" :prop="item.prop" align="center"></el-table-column></template></el-table></div></template><script>import TableColumn from './TableColumn'export default {props: {tableTitle: {type: String,require: true},// 表格的数据tableData: {type: Array,required: true},// 多级表头的数据tableHeader: {type: Array,required: true},// 表格的高度height: {type: String,// default: '300'},// 流程数据flowParams: {type: Object,default: ()=>{ return {} } }},data () {return {}},watch: {},components: {TableColumn},methods: {}}</script><style scoped></style>

 TableColumn.vue

<template><el-table-column :label="`${coloumnHeader.label}(${coloumnHeader.score}分)`" :prop="coloumnHeader.label" align="center"><template v-for="item in coloumnHeader.children"><tableColumn v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item" :flowParams="flowParams"></tableColumn><el-table-column v-else :key="item.label" :label="item.label" :prop="item.prop" align="center"><template slot-scope="{row}"><template v-if="item.type">{{getScope1(item, row)}}</template><template v-else><!-- isCanLeaderMarkScore为true领导可编辑 isCanScore 固定三项可编辑 已办不可编辑 --><el-input v-model="row.value[item.valueData][item.prop]" @input="handleIpt(row.value, item)" :title="row.value[item.valueData][item.prop]" :disabled="(flowParams && flowParams.isView === 'true') || (item.prop === 'leaderScore' ? !row.value[item.valueData].isCanLeaderMarkScore : !row.value[item.valueData].isCanScore)"></el-input></template></template> </el-table-column></template></el-table-column></template>;<script>export default {name: 'tableColumn',props: {coloumnHeader: {type: Object,required: true},// 流程数据flowParams: {type: Object,default: ()=>{ return {} } }},methods: {handleIpt(value, item) {console.log('进来了。。。')if (item.prop === 'scoreVal' && value[item.valueData].score && value[item.valueData][item.prop]) {value[item.valueData][item.prop] = this.isNumber(value[item.valueData][item.prop])if (Number(value[item.valueData][item.prop]) > Number(value[item.valueData].score)) {this.$message({ type: "onfo", message: `建议得分不能超出设定的分值(${Number(value[item.valueData].score)}分) `});value[item.valueData][item.prop] = ''}}},isNumber(num, decimalPlace) {num = num.replace(/[^\d\.]+/g, "");var len1 = num.substr(0, 1);var len2 = num.substr(1, 1);//如果第一位是0,第二位不是点,就用数字把点替换掉if (num.length > 1 && len1 == 0 && len2 != ".") {num = num.substr(1, 1);}//第一位不能是.if (len1 == ".") {num = "";}//限制只能输入一个小数点if (num.indexOf(".") != -1) {var str_ = num.substr(num.indexOf(".") + 1);if (str_.indexOf(".") != -1) {num = num.substr(0, num.indexOf(".") + str_.indexOf(".") + 1);}}//动态位数num = num.replace(/\.\d{2,}$/,num.substr(num.indexOf("."), decimalPlace + 1));return num;},getScope1(item, row) {let total = 0;if (row.value[item.valueData].children && row.value[item.valueData].children) {row.value[item.valueData].children.forEach((item) => {total = total + Number(row.value[item.id].scoreVal || 0)});} else {total = Number(row.value[item.valueData].scoreVal || 0);}console.log(total, 0)row.value[item.valueData][item.prop] = total.toFixed(2);return total.toFixed(2);}}}</script><style scoped></style>

效果图

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

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

相关文章

RocketMQ(二)RocketMQ实战

文章目录 一、RocketMQ实战1.1 批量消息发送1.2 消息发送队列自选择1.3 事务消息1.4 SpringCloud集成RocketMQ 二、最佳实践2.1 生产者2.1.1 发送消息注意事项2.1.2 消息发送失败处理方式 2.2 消费者2.2.1 消费过程幂等2.2.2 消费打印日志 2.3 Broker 三、相关问题3.1 为什么要…

2-194基于matlab的四足机器人行走程序设计

基于matlab的四足机器人行走程序设计&#xff0c;正运动设计&#xff0c;逆运动学解算&#xff0c;步态设计。可定义机身高、步长、步高、一个摆相的市场等参数。输出四足机器人动态行走结果&#xff0c;及摆相示意图。程序已调通&#xff0c;可直接运行。 2-194基于matlab的四…

android studio android sdk下载地址

android studio安装后&#xff0c;因为公司网络原因&#xff0c;一直无法安装android sdk 后经过手机网络&#xff0c;安装android sdk成功如下&#xff0c;也可以手动下载后指定android sdk本地目录 https://dl.google.com/android/repository/source-35_r01.zip https://dl…

字符串和对象之间的转换

使用&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version> </dependency> public class Demo3 {public static void main(String[] args) {Person person …

window如何将powershell以管理员身份添加到右键菜单?(按住Shift键显示)

window如何将powershell以管理员身份添加到右键菜单&#xff1f; 在 Windows 中&#xff0c;将 PowerShell 以管理员身份添加到右键菜单&#xff0c;可以让你在需要提升权限的情况下快速打开 PowerShell 窗口。以下是详细的步骤&#xff0c;包括手动编辑注册表和使用注册表脚本…

【NebulaGraph】变化的多跳查询

【NebulaGraph】变化的多跳查询 1. 需求2. 解决方案2.1 确定查询结构2.2 构建查询语句 3. 追加需求&#xff1a;如果增加每一跳都要指定查询某SPACE下的Tag&#xff0c;或者不查询某个Tag怎么办 1. 需求 存在多跳请求&#xff0c;其中每一跳是从上一跳查询结果为基础的。但是 …

华为ensp-BGP联盟

学习新思想&#xff0c;争做新青年&#xff0c;今天学习BGP联盟 实验介绍 一个BGP联盟是一个具有内部层次结构的AS。一个BGP联盟由若干个子AS 组成&#xff0c;子AS也称为成员AS。对于一个BGP联盟&#xff0c;其成员AS内部的各路由器之间需要建立全互联的IBGP邻居关系或使用B…

内部类(3)

大家好&#xff0c;今天我们继续来看看内部类&#xff0c;今天我们来学习一下内部类的分类&#xff0c;我们来看看一共有几种&#xff0c;它们有什么作用&#xff0c;那么话不多说&#xff0c;我们直接开始。 9.1 内部类的分类 先来看下,内部类都可以在一个类的哪些位置进行定…

【Python】ftp和sftp工具类,使用python实现文件的上传与下载

文章目录 1. ftp工具类2. sftp工具类 1. ftp工具类 编写ftp工具类&#xff0c;我这里取名为 ftp_util.py import os from ftplib import FTPclass FtpUtil:def __init__(self, ip, username, password, port21):self.ip ipself.username usernameself.password passwordse…

Airbnb/Booking 系统设计(high level architecture)

原文地址 CodeKarle: Airbnb System Design | Booking.com System Design B站搜 “Airbnb System Design” 有视频版本 需求&#xff1a; 功能性需求 系统用户包括商家和客人。 Hotel - 商家&#xff08;拥有hotel的人&#xff09; onboarding - 商家可以入住系统。 update…

【QT开发自制小工具】PDF/图片转excel---调用百度OCR API接口

前言 前几年WPS还可以免费处理5页以内的PDF转excel&#xff0c;现在必须付费了&#xff0c;而且其他在线的PDF转excel都是要收费的&#xff0c;刚好前几年调研过百度OCR的高精度含位置接口&#xff0c;依然是每天可以免费调用50次&#xff0c;本篇是基于此接口&#xff0c;开发…

Vscode左大括号不另起一行、注释自动换行

参考大佬的博客VSCode 格式化 cpp 文件时配置左大括号不换行_vscode大括号不换行-CSDN博客 Clang_format_style {BasedOnStyle: Chromium, IndentWidth: 4}

原神新角色玛薇卡配队攻略 原神玛薇卡技能机制

原神在2025年1月1日即将迎来一次版本更新&#xff0c;玛薇卡、茜特菈莉、蓝砚三名角色即将上线&#xff0c;今天就给大家抢先介绍一下玛薇卡的机制和配队。 技能机制 战技挂火&#xff1a;战技不用充能就可以输出&#xff0c;但是挂火频率和范围比香菱低一些&#xff0c;适合搭…

8086汇编(16位汇编)学习笔记10.寄存器总结

8086汇编(16位汇编)学习笔记10.寄存器总结-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 寄存器 8086CPU有14个寄存器 它们的名称为&#xff1a; AX、BX、CX、DX、SI、DI、SP、BP、 IP**、CS、DS、ES、**SS、PSW。 8086CPU所有的寄存器都是16位的&#…

llamafactory报错:双卡4090GPU,训练qwen2.5:7B、14B时报错GPU显存不足(out of memory),轻松搞定~~~

实际问题场景&#xff1a; 使用llamafactory进行微调qwen2.5 7B和14B的大模型时&#xff0c;会出现out of memory的报错。尝试使用降低batch_size&#xff08;原本是2&#xff0c;现在降到1&#xff09;的方式&#xff0c;可以让qwen2.5:7B跑起来&#xff0c;但时不时会不稳定…

Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解

文章目录 概述结构案例实现优缺点及使用场景 概述 享元模式也叫蝇量模式&#xff1a;运用共享技术有效地支持大量细粒度的对象&#xff1b; 常用于系统底层开发&#xff0c;解决系统的性能问题。像数据库连接池&#xff0c;里面都是创建好的连接对象&#xff0c;在这些连接对象…

【maven】什么是坐标(依赖)继承与模块、web项目启动访问

目录 2. Maven 基础 2.1 坐标 2.1.0 什么是坐标&#xff08;依赖&#xff09; 2.1.1 获得坐标 2.1.2 使用坐标 2.1.3 依赖范围 2.1.4 依赖传递 2.1.5 依赖冲突&调节原则 2.1.6 依赖排除 2.1.7 使用第三方jar包 2.2 继承与模块 2.2.1 概述 2.2.2 分析 2.2.3 实…

操作系统论文导读(八):Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个

Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个关键性规范的零星任务的可调度性分析 目录 一、论文核心思想 二、基本定义 2.1 关键性指标 2.2 任务及相关参数定义 2.3 几个基础定义 三、可调度性分析 3.1 调度算法分…

【LeetCode】2506、统计相似字符串对的数目

【LeetCode】2506、统计相似字符串对的数目 文章目录 一、哈希表位运算1.1 哈希表位运算 二、多语言解法 一、哈希表位运算 1.1 哈希表位运算 每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位) 哈希表记录各 字符组合 出现的次数 步骤: 遇到一个字符串, 得到 ma…

uniapp使用ucharts组件

1.ucharts准备 有两种使用方式&#xff1a;一种是在uni的插件市场下载&#xff08;组件化开发&#xff09;。一种是手动引入ucharts包。官方都封装好组件了&#xff0c;我们不用岂不是浪费。 直接去dcloud插件市场&#xff08;DCloud 插件市场&#xff09;找&#xff0c;第一…