echart图案例

效果

 代码:

index.vue

<template><div class="pageBox"><div class="oneLineBox"><div class="fourColorImgBox"><div class="titleBox">企业风险四色图</div><div class="contentBox"><picView></picView></div></div><div class="riskStatisticsBox"><div class="titleBox">风险统计</div><div class="contentBox"><div class="selectGroupBox"><div class="categoryBox"><span>风险类别: </span><a-selectv-model:value="RiskPointType"@change="changePointType"><a-select-option value="Device">设备设施</a-select-option><a-select-option value="Operation">作业活动</a-select-option><a-select-option value="ProcessNode">工业节点</a-select-option></a-select></div><div class="gradeBox"><span>风险等级: </span><a-selectv-model:value="RiskLevelType"@change="changeLeveType"><a-select-option value="">全部</a-select-option><a-select-option value="ExtremeRisk">重大风险</a-select-option><a-select-option value="LargerRisk">较大风险</a-select-option><a-select-option value="GeneralRisk">一般风险</a-select-option><a-select-option value="LowRisk">低风险</a-select-option></a-select></div></div><div :class="!piedata.length ? 'emptyBox' : ''"><riskStatistics:piedata="piedata"v-if="piedata.length":allCounts="allCounts"></riskStatistics><a-emptyv-else:image="Empty.PRESENTED_IMAGE_SIMPLE"class="ant-empty-normal"/></div></div></div><div class="riskStatisticsGroup"><a-tabs@change="changeTab"v-model:activeKey="activeKey":tabBarStyle="{ paddingLeft: '20px' }"><a-tab-pane key="department" tab="部门风险统计"></a-tab-pane><a-tab-pane key="regional" tab="区域风险统计"></a-tab-pane></a-tabs><div class="contentBox"><div class="selectBox"><span>{{ activeKey == "department" ? "主管部门" : "区域" }}:</span><a-select@click="openDepartment":open="false"v-model:value="selectVal"></a-select></div><div :class="departData.obj.length==0 ? 'emptyBox' : ''"><riskStatisticsGroup :departData="departData" v-if="departData.obj.length!=0"></riskStatisticsGroup><a-emptyv-else:image="Empty.PRESENTED_IMAGE_SIMPLE"class="ant-empty-normal"/></div></div><modealFormref="modelFormR"@setParentRegionalValue="setParentRegionalValue":FormStatekey="FormStatekey":api1="getRegionTree":api2="getViolationOrganizationRoot":api3="getViolationOrganization"/><!-- <div class="departmentRiskBox"><div class="titleBox">部门风险统计</div><div class="contentBox">部门风险统计图</div></div><div class="regionalRiskBox"><div class="titleBox">区域风险统计</div><div class="contentBox">区域风险统计图</div></div> --></div></div><div class="twoLineBox"><div class="riskNoticeBox"><div class="titleBox">重大风险公示</div><div class="contentBox"><TableList:loading="loading"ref="tablistRef":hasImport="false":hasExport="false"@getData="getData":columns="columns":MaxResultCount="8"></TableList></div></div><div class="byLawBox"><div class="titleBox">规章制度公示</div><div class="contentBox"><TableList:loading="byLawloading"ref="byLawtablistRef":hasImport="false":hasExport="false"@getData="byLawgetData":columns="byLawcolumns":showHeader="false":MaxResultCount="10"><template #customtable="{ column, record }"><template v-if="column.key === 'icon'"><file-word-outlinedstyle="color: #1683ff"v-if="findFileType(record.FilePath[0]?.DisPlayName) == '.doc' ||findFileType(record.FilePath[0]?.DisPlayName) == '.docx'" /><file-ppt-outlinedstyle="color: #f57b11"v-if="findFileType(record.FilePath[0]?.DisPlayName) == '.ppt' ||findFileType(record.FilePath[0]?.DisPlayName) == '.pptx'" /><file-excel-outlinedstyle="color: #15c34f"v-if="findFileType(record.FilePath[0]?.DisPlayName) == '.xlsx' ||findFileType(record.FilePath[0]?.DisPlayName) == '.xLs'" /><file-pdf-outlinedstyle="color: #e83c35"v-if="findFileType(record.FilePath[0]?.DisPlayName) == '.pdf'"/></template></template><template #operation="{ column, record }"><!-- <a> 预览</a><a-divider type="vertical" /> --><a @click="downLoadEvent(record)"> 下载</a></template></TableList></div></div><div class="activityScoreBox"><div class="titleBox">作业活动对比</div><div class="contentBox"><div class="selectBox"><span>区域:</span><a-select@click="openRegional":open="false"v-model:value="workVal"></a-select></div><div :class="workData.obj.length==0 ? 'emptyBox' : ''"><activityScore :workData="workData" v-if="workData.obj.length!=0"></activityScore><a-emptyv-else:image="Empty.PRESENTED_IMAGE_SIMPLE"class="ant-empty-normal"/></div></div></div></div></div>
</template>
<script setup>
import { findFileType } from "@/utils/function/index.js";
import { message, Modal, Empty } from "ant-design-vue";
import { onMounted, ref, reactive } from "vue";
import modealForm from "./components/modalForm.vue";
import {getActivityScore,getDepartMarge,getRegionMarge,
} from "@/api/activityScore.js";
import { getRegionTree } from "@/api/regional";
import {getViolationOrganizationRoot,getViolationOrganization,
} from "@/api/uacapi";
import riskStatisticsGroup from "./components/riskStatisticsGroup.vue";
import activityScore from "./components/activityScore.vue";
import TableList from "@/components/ComtableListR.vue";
import { majorRisk, byLaw } from "@/api/home.js";
import picView from "@/components/Whiteboard/homePic.vue";
import { getRiskIchnography } from "@/api/riskHazardControl";
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;import axios from "axios";
// onMounted(() => {
//   getData();
//   byLawgetData();
//   getDataRisk();
// });// 风险统计
import riskStatistics from "./components/riskStatistics.vue";
import { getRiskStatistics } from "@/api/riskStatistics.js";
const RiskPointType = ref("Device");
const RiskLevelType = ref("");
const piedata = ref([]);
const allCounts = ref(0);
const changePointType = () => {getDataRisk();
};
const changeLeveType = () => {getDataRisk();
};
const selectVal = ref();
const selectId = ref();
const workVal = ref();
const workId = ref("");
const getRegion = async () => {const res = await getRegionTree();workId.value = res.ChildrenNodes[0].CurrentNode.Id;workVal.value = res.ChildrenNodes[0].CurrentNode.DisplayName;
};
const cDname = ref();
const cDId = ref();
const getDepart = async () => {const id = await getViolationOrganizationRoot();const res = await getViolationOrganization({ id: id.items[0].id });cDname.value = res.currentNode.name;cDId.value = res.currentNode.id;selectId.value = res.currentNode.id;selectVal.value = res.currentNode.name;
};
const getDataRisk = () => {getRiskStatistics({RiskPointType: RiskPointType.value,RiskLevelType: RiskLevelType.value,}).then((res) => {piedata.value = res.map(function (item) {return {name: item.RiskPointStatisticGroupName,value:RiskLevelType.value == "ExtremeRisk"? item.ExtremeCount: RiskLevelType.value == "LargerRisk"? item.LargerCount: RiskLevelType.value == "GeneralRisk"? item.GeneralCount: RiskLevelType.value == "LowRisk"? item.LowCount: item.TotalCount,};});allCounts.value = res.reduce((prev, cur) => {return (prev +Number(RiskLevelType.value == "ExtremeRisk"? cur.ExtremeCount: RiskLevelType.value == "LargerRisk"? cur.LargerCount: RiskLevelType.value == "GeneralRisk"? cur.GeneralCount: RiskLevelType.value == "LowRisk"? cur.LowCount: cur.TotalCount));}, 0);}).catch((err) => {console.log(err);});
};
// onMounted(() => {
//   getData();
//   //
// });// 重大风险公告
// const riskCurrentPage = ref(1); //分页
let loading = ref(false);
let tablistRef = ref();
const columns = [{title: "风险点",dataIndex: "DisplayName",ellipsis: true,key: "DisplayName",align: "center",},{title: "所属区域",dataIndex: "RiskRegion",key: "RiskRegion",align: "center",ellipsis: true,customRender: ({ text }) => text?.DisplayName,},{title: "管辖部门",dataIndex: "ChargeOrganization",key: "ChargeOrganization",align: "center",ellipsis: true,customRender: ({ text }) => text?.DisplayName,},{title: "主管人",dataIndex: "ChargeUser",key: "ChargeUser",align: "center",ellipsis: true,customRender: ({ text }) => text?.DisplayName,},
];
let pageobj = reactive({ MaxResultCount: 8, SkipCount: 0 });
const getData = async (from, param2) => {if (param2) {pageobj.MaxResultCount = param2?.pageSize ? param2?.pageSize : 8;pageobj.SkipCount =((param2?.current ? param2?.current : 1) - 1) *(param2?.pageSize ? param2?.pageSize : 8);}let params = {CurrentRiskLevelType: "ExtremeRisk",SkipCount: pageobj.SkipCount,MaxResultCount: pageobj.MaxResultCount,};loading.value = true;const res = await majorRisk(params);if (res.Items.length === 0 && pageobj.SkipCount > 0) {pageobj.SkipCount = pageobj.SkipCount - pageobj.MaxResultCount;tablistRef.value.setpage({current: pageobj.SkipCount / pageobj.MaxResultCount + 1,pageSize: pageobj.MaxResultCount,});getData();}loading.value = false;tablistRef.value.getData([...res.Items], Number(res.TotalCount));
};
// 部门风险统计、区域风险统计
let activeKey = ref("department");
// 点击选择器打开弹层
const modelFormR = ref(null);
let FormStatekey = ref("");
const openDepartment = () => {if (activeKey.value == "department") {modelFormR.value.selectDeclare("", "ViolationOrganization");FormStatekey.value = "ViolationOrganization";} else {modelFormR.value.selectDeclare("", "ViolationArea");FormStatekey.value = "ViolationArea";}
};
const openRegional = () => {modelFormR.value.selectDeclare("", "ViolationArea");FormStatekey.value = "workArea";
};
//弹窗点击确定
const setParentRegionalValue = (param, userModal) => {if (FormStatekey.value != "workArea") {selectId.value = param[0].id;selectVal.value = param[0].name;getDepartData();} else {workVal.value = param[0].name;workId.value = param[0].id;getWorkData();}
};
//切换tab清空选中值
const changeTab = (val) => {if (activeKey.value == "regional") {selectVal.value = workVal.value;selectId.value = workId.value;} else {selectId.value = cDId.value;selectVal.value = cDname.value;}getDepartData();
};
const workData = reactive({ obj: [] });
const getWorkData = async () => {workData.obj = await getActivityScore({ RiskRegionId: workId.value });
};const departData = reactive({ obj: [] });
const getDepartData = async () => {if (activeKey.value == "department") {departData.obj = await getDepartMarge({RiskOrganizationId: selectId.value,});} else {departData.obj = await getRegionMarge({ RiskRegionId: selectId.value });}// console.log(departData.obj);
};
// 规章制度公告
let byLawloading = ref(false);
let byLawtablistRef = ref();
const byLawcolumns = [{title: "图标",dataIndex: "icon",key: "icon",align: "right",width: 20,},{title: "文件名",dataIndex: "FilePath",ellipsis: true,key: "FilePath",align: "left",customRender: ({ text }) => text[0].DisPlayName,},{title: "操作",dataIndex: "operation",key: "operation",align: "right",width: 60,},
];
let byLawpageobj = reactive({ MaxResultCount: 10, SkipCount: 0 });
const byLawgetData = async (from, param2) => {if (param2) {byLawpageobj.MaxResultCount = param2?.pageSize ? param2?.pageSize : 10;byLawpageobj.SkipCount =((param2?.current ? param2?.current : 1) - 1) *(param2?.pageSize ? param2?.pageSize : 10);}let params = {IsTop: true,SkipCount: byLawpageobj.SkipCount,MaxResultCount: byLawpageobj.MaxResultCount,};loading.value = true;const res = await byLaw(params);if (res.Items.length === 0 && byLawpageobj.SkipCount > 0) {byLawpageobj.SkipCount =byLawpageobj.SkipCount - byLawpageobj.MaxResultCount;byLawtablistRef.value.setpage({current: byLawpageobj.SkipCount / byLawpageobj.MaxResultCount + 1,pageSize: byLawpageobj.MaxResultCount,});byLawgetData();}loading.value = false;byLawtablistRef.value.getData([...res.Items], Number(res.TotalCount));
};
const downLoadEvent = (param2) => {//下载操作if (Array.isArray(param2.FilePath) &&param2?.FilePath?.length &&param2?.FilePath[0]?.FileId) {axios.get(window.defaultconfig.fileUrl +"/api/FileManage/Download" +`?Id=${param2.FilePath[0].FileId}`,{ responseType: "arraybuffer" }).then((res) => {const blob = new Blob([res.data], { type: "application/vnd.ms-excel" });const objectUrl = URL.createObjectURL(blob);const a = document.createElement("a");a.download = param2.FilePath[0].DisPlayName;a.href = objectUrl;document.body.appendChild(a);a.click();document.body.removeChild(a);}).catch((error) => {message.error("系统异常,请联系管理员");});} else {message.error("文件不存在,无法下载");}
};
onMounted(async () => {getData();byLawgetData();getDataRisk();await getDepart();await getRegion();await getWorkData();await getDepartData();
});
</script>
<style lang="less" scoped>
:deep(.ant-empty) {margin-top: 50px;
}
.pageBox {display: flex;flex-wrap: wrap;.oneLineBox {width: 100%;display: flex;justify-content: space-around;.fourColorImgBox {flex: 1;background-color: #fff;// padding: 10px;border: solid 1px #e8e8e8;margin-right: 10px;margin-bottom: 10px;overflow: hidden;.contentBox {padding: 0 10px;}}.riskStatisticsBox {flex: 1;background-color: #fff;// padding: 10px;border: solid 1px #e8e8e8;margin-right: 10px;margin-bottom: 10px;.ant-empty-normal {margin: auto;width: 100%;}.contentBox {height: 100%;}.emptyBox {height: 80%;display: flex;}.selectGroupBox {display: flex;margin-left: 3%;.categoryBox {flex: 0 0 40%;flex-wrap: nowrap;display: flex;align-items: center;}.gradeBox {flex: 0 0 40%;flex-wrap: nowrap;display: flex;align-items: center;}}}.riskStatisticsGroup {flex: 1;background-color: #fff;// padding: 0 10px 10px;border: solid 1px #e8e8e8;margin-bottom: 10px;.contentBox {height: 100%;margin: 0 10px 10px;.selectBox {text-align: right;}}.ant-empty-normal {margin: auto;width: 100%;}.emptyBox {height: 80%;display: flex;}}}.twoLineBox {width: 100%;display: flex;justify-content: space-around;.riskNoticeBox {flex: 1;background-color: #fff;// padding: 10px;border: solid 1px #e8e8e8;margin-right: 10px;margin-bottom: 10px;.contentBox {padding: 0 18px;}}.byLawBox {flex: 1;background-color: #fff;// padding: 10px;border: solid 1px #e8e8e8;margin-right: 10px;margin-bottom: 10px;.contentBox {padding: 0 18px;}}.activityScoreBox {flex: 1;background-color: #fff;// padding: 10px;border: solid 1px #e8e8e8;margin-bottom: 10px;.ant-empty-normal {margin: auto;width: 100%;}.emptyBox {height: 80%;display: flex;}.contentBox {// padding: 0 10px 0 10px;// margin: 0 10px 10px;height: 80%;padding-left: 20px;.selectBox {margin-right: 10px;text-align: right;}}}}// 公共样式.titleBox {padding: 12px 20px;border-bottom: solid 1px #f0f0f0;margin-bottom: 16px;font-size: 16px;}:deep(.ant-select-selector) {min-width: 120px;}.tableBox {margin-top: 0 !important;:deep(.ant-table-wrapper) {min-height: auto !important;}}:deep(.ant-tabs-tab) {font-size: 16px !important;}
}
</style>

riskStatisticsGroup.vue

<template><div id="main" style="height: 400px"></div>
</template>
<script setup>
import { onMounted, nextTick, ref, watch } from "vue";
import * as echarts from "echarts";
import { Empty } from "ant-design-vue";
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
const props = defineProps({departData: {type: Object,default: () => {},},
});
const xdata = ref([]);
const dataFirst = ref([]);
const dataSec = ref([]);
const dataThist = ref([]);
const dataFour = ref([]);
function loaddata(data1, data2, data3, data4, data5) {nextTick(() => {var chartDom = document.getElementById("main");var myChart = echarts.init(chartDom);var option;window.addEventListener("resize", () => {// 监听浏览器窗口大小改变// 浏览器变化执行动作if (myChart) {myChart.resize();}});option = {dataZoom: [{type: "slider",realtime: true, // 拖动时,是否实时更新系列的视图startValue: 0,endValue: 5,width: 5,height: "90%",top: "5%",right: 0,// orient: 'vertical', // 设置横向还是纵向, 但是官方不太建议如此使用,建议使用 yAxisIndex 具体指明yAxisIndex: [0, 1], // 控制y轴滚动对象fillerColor: "#0093ff", // 滚动条颜色borderColor: "rgba(17, 100, 210, 0.12)",backgroundColor: "#cfcfcf", //两边未选中的滑动条区域的颜色handleSize: 0, // 两边手柄尺寸showDataShadow: false, //是否显示数据阴影 默认autoshowDetail: false, // 拖拽时是否展示滚动条两侧的文字zoomLock: true,moveHandleStyle: {opacity: 0,},},{type: "inside",// width: 0,startValue: 0,endValue: 10,minValueSpan: 10,yAxisIndex: [0],zoomOnMouseWheel: false, // 关闭滚轮缩放moveOnMouseWheel: true, // 开启滚轮平移moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移},],title: {text: "",},tooltip: {trigger: "axis",axisPointer: {type: "shadow",},},legend: {x: "center",y: "bottom",// pageIconSize: 8,// itemWidth: 18,// itemHeight: 8type: "scroll",},grid: {top: "3%",left: "3%",right: "15%",bottom: "13%",containLabel: true,},xAxis: {name: "数量(个)",nameLocation: "end",type: "value",show: true,minInterval: 1,axisTick: {alignWithLabel: true,},axisTick: {show: true, // 不显示坐标轴刻度线},axisLine: {show: true, // 不显示坐标轴线},axisLabel: {show: true, // 不显示坐标轴上的文字},splitLine: {show: true, // 不显示网格线},},yAxis: {type: "category",data: data1,},series: [{name: "重大风险",type: "bar",data: data2,color: "#ff0000",},{name: "较大风险",type: "bar",data: data3,color: "#ff6100",},{name: "一般风险",type: "bar",data: data4,color: "#ffff00",},{name: "低风险",type: "bar",data: data5,color: "#0000ff",},],};option && myChart.setOption(option);});
}watch(() => props.departData,() => {xdata.value = [];dataFirst.value = [];dataSec.value = [];dataThist.value = [];dataFour.value = [];props.departData.obj.forEach((e) => {xdata.value.push(e.RiskPointStatisticGroupName);dataFirst.value.push(e.ExtremeCount);dataSec.value.push(e.LargerCount);dataThist.value.push(e.GeneralCount);dataFour.value.push(e.LowCount);// ydata.value.push(e.Score);});loaddata(xdata.value,dataFirst.value,dataSec.value,dataThist.value,dataFour.value);},{ deep: true, immediate: true }
);
</script>
<style lang="less" scoped>
// #main {
//   margin-top: 16px;
//   height: 400px !important;
// }
</style>

activityScore.vue

<template><div id="activeId"></div>
</template>
<script setup>
import { onMounted, nextTick, ref, watch } from "vue";
import * as echarts from "echarts";
import { Empty } from "ant-design-vue";
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
const props = defineProps({workData: {type: Object,default: () => {},},
});
const xdata = ref([]);
const ydata = ref([]);
// console.log(333, props.workData.obj);
// props.workData.obj.forEach((e) => {
//   console.log(444, e);
// });
// props.workData((item) => {// });
function loaddata(data1, data2) {nextTick(() => {var chartDom = document.getElementById("activeId");var myChart = echarts.init(chartDom);var option;window.addEventListener("resize", () => {// 监听浏览器窗口大小改变// 浏览器变化执行动作if (myChart) {myChart.resize();}});option = {grid: {top: "3%",left: "3%",right: "15%",bottom: "13%",containLabel: true,},dataZoom: [{type: "slider",realtime: true, // 拖动时,是否实时更新系列的视图startValue: 0,endValue: 5,width: 5,height: "90%",top: "5%",right: 0,// orient: 'vertical', // 设置横向还是纵向, 但是官方不太建议如此使用,建议使用 yAxisIndex 具体指明yAxisIndex: [0, 1], // 控制y轴滚动对象fillerColor: "#0093ff", // 滚动条颜色borderColor: "rgba(17, 100, 210, 0.12)",backgroundColor: "#cfcfcf", //两边未选中的滑动条区域的颜色handleSize: 0, // 两边手柄尺寸showDataShadow: false, //是否显示数据阴影 默认autoshowDetail: false, // 拖拽时是否展示滚动条两侧的文字zoomLock: true,moveHandleStyle: {opacity: 0,},},{type: "inside",// width: 0,startValue: 0,endValue: 10,minValueSpan: 10,yAxisIndex: [0],zoomOnMouseWheel: false, // 关闭滚轮缩放moveOnMouseWheel: true, // 开启滚轮平移moveOnMouseMove: true, // 鼠标移动能触发数据窗口平移},],yAxis: {type: "category",data: data1,},xAxis: {type: "value",name: "分值", //名称。show: true,minInterval: 1,axisTick: {show: true, // 不显示坐标轴刻度线},axisLine: {show: true, // 不显示坐标轴线},axisLabel: {show: true, // 不显示坐标轴上的文字},splitLine: {show: true, // 不显示网格线},},color: ["#5494f2"],series: [{data: data2,type: "bar",},],};option && myChart.setOption(option);});
}watch(() => props.workData,() => {xdata.value = [];ydata.value = [];props.workData.obj.forEach((e) => {xdata.value.push(e.RiskPointName);ydata.value.push(e.Score);});loaddata(xdata.value, ydata.value);},{ deep: true, immediate: true }
);
</script>
<style lang="less" scoped>
#activeId {height: 300px;margin-top: 16px;// margin-left: 10px;// padding-left:10px ;// box-sizing: border-box;
}
</style>

另一个饼图组件在上上篇文章

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

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

相关文章

LVS-DR集群(一台LVS,一台CIP,两台web,一台NFS)的构建

一.构建环境 1.五台关闭防火墙&#xff0c;关闭selinux&#xff0c;拥有固定IP&#xff0c;部署有http服务的虚拟机&#xff0c;LVS设备下载ipvsadm工具&#xff0c;NFS 设备需要下载rpcbind和nfs-utils 2.实现功能 3.ipvsadm命令部分参数介绍 二.配置和测试 1.LVS设备 &…

互联网发展历程:从布线到无线,AC/AP的崭新时代

互联网的发展&#xff0c;一直在追求更便捷、更灵活的连接方式。在网络的早期&#xff0c;布线问题常常让人头疼。一项革命性的技术应运而生&#xff0c;那就是“无线AC/AP”。 布线问题的烦恼&#xff1a;繁琐的布线 早期网络的布线工作常常耗费时间和精力&#xff0c;尤其在大…

虫情测报灯——监测预警分析

KH-CQPest虫情测报灯是专为田间虫害统计、农林虫情测报而研制的设备&#xff0c;利用光、电、数控等技术实现自动诱虫、杀虫、虫体分散、拍照、运输、收集、排水等系统作业等功能&#xff0c;当有害虫出现时&#xff0c;会受到诱集光源的影响&#xff0c;自动飞扑撞向撞击屏&am…

互联网+AI+智慧工地管理平台源码(Spring Cloud +Vue)

基于微服务JavaSpring Cloud VueUniApp MySql开发的智慧工地管理源码&#xff0c;SaaS模式。 一、智慧工地概念 智慧工地就是互联网建筑工地&#xff0c;是将互联网的理念和技术引入建筑工地&#xff0c;然后以物联网、移动互联网技术为基础&#xff0c;充分应用BIM、大数据、…

基于Python科研论文绘制学习 - task1

绘制原则 必要性&#xff08;避免图多字少&#xff09; 易读性&#xff08;完整准确的标题、标签&#xff09; 一致性&#xff08;配图需要和上下文一致&#xff09; 尝试运行代码的时候出现了很多bug&#xff0c;基本都是围绕Scienceplots库的&#xff0c;在更新pip、pandas…

asp.net core webapi如何执行周期性任务

使用Api执行周期性任务 第一种&#xff0c;无图形化界面1.新建类&#xff0c;继承IJob&#xff0c;在实现的方法种书写需要周期性执行的事件。2.编写方法类&#xff0c;定义事件执行方式3.在启动方法中&#xff0c;进行设置&#xff0c;.net 6中在program.cs的Main方法中&#…

MySQL学习笔记之MySQL5.7用户管理

文章目录 用户创建用户修改修改用户名修改密码修改自己的密码修改其他用户的密码 删除用户权限管理查看所有权限授予权限回收权限权限表columns_privprocs_privtables_priv 用户创建 基本格式&#xff1a;create user 用户名 identified by 密码; mysql> create user szc …

Docker 基本管理

Docker 基本管理 一、容器1.容器简介2.容器的优点 二、Docker1.docker定义2.docker的logo及设计宗旨3.Docker与虚拟机的区别4.容器在内核中支持2种重要技术5.namespace的六项隔离6.Docker核心概念 三、安装 Docker1.安装部署2.相关命令 四、Docker 镜像操作1.搜索镜像2.获取镜像…

领航优配:券商板块热度不减,华林证券涨停,中银证券等走高

券商板块15日午后再度走强&#xff0c;截至发稿&#xff0c;华林证券涨停&#xff0c;中银证券涨超7%&#xff0c;兴业证券涨超3%&#xff0c;东方财富、华泰证券、太平洋等涨逾2%。 组织表示&#xff0c;当前券商PB估值为1.36倍&#xff0c;位于2020年以来的34%分位点附近&…

Redis心跳检测

在命令传播阶段&#xff0c;从服务器默认会以每秒一次的频率&#xff0c;向主服务器发送命令&#xff1a; REPLCON FACK <rep1 ication_ offset>其中replication_offset是从服务器当前的复制偏移量。 发送REPLCONF ACK命令对于主从服务器有三个作用&#xff1a; 检测主…

编程小白的自学笔记十三(python办公自动化读写文件)

系列文章目录 编程小白的自学笔记十二&#xff08;python爬虫入门四Selenium的使用实例二&#xff09; 编程小白的自学笔记十一&#xff08;python爬虫入门三Selenium的使用实例详解&#xff09; 编程小白的自学笔记十&#xff08;python爬虫入门二实例代码详解&#xff09;…

ClickHouse(十八):Clickhouse Integration系列表引擎

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

数据结构与算法-栈(LIFO)(经典面试题)

一&#xff1a;面试经典 1. 如何设计一个括号匹配的功能&#xff1f;比如给你一串括号让你判断是否符合我们的括号原则&#xff0c; 栈 力扣 2. 如何设计一个浏览器的前进和后退功能&#xff1f; 思想&#xff1a;两个栈&#xff0c;一个栈存放前进栈&…

派克Parker伺服驱动器 高性能电机控制系统的应用详解

派克Parker伺服驱动器及电机是一种高性能的电机控制系统&#xff0c;广泛应用于机器人、医疗设备、工业自动化和航空航天等领域。具有高精度、高可靠性、高动态性能、低噪音、低振动、低能耗等优点&#xff0c;采用了先进的数字信号处理技术&#xff0c;能够实现高精度的位置控…

回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测

回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SAE堆叠自编辑器多输入单输出回归预测&#xff1b; 2.运行环…

【JavaEE基础学习打卡02】是时候了解Java EE了!

目录 前言一、为什么要学习Java EE二、Java EE规范介绍1.什么是规范&#xff1f;2.什么是Java EE规范&#xff1f;3.Java EE版本 三、Java EE应用程序模型1.模型前置说明2.模型具体说明 总结 前言 &#x1f4dc; 本系列教程适用于 Java Web 初学者、爱好者&#xff0c;小白白。…

WPF 本地化的最佳做法

WPF 本地化的最佳做法 资源文件英文资源文件 en-US.xaml中文资源文件 zh-CN.xaml 资源使用App.xaml主界面布局cs代码 App.config辅助类语言切换操作类资源 binding 解析类 实现效果 应用程序本地化有很多种方式&#xff0c;选择合适的才是最好的。这里只讨论一种方式&#xff0…

医院后勤管理用什么系统好?的修医院报修管理系统有哪些优势?

随着医院后勤工作量的不断增加&#xff0c;需要协调和维护的设备和部门也随之增多。传统的医院后勤管理方式已经显得不够优越&#xff0c;其劣势日益凸显&#xff0c;无法满足实际工作需求。因此&#xff0c;快速推动医院后勤信息化管理已成为当前医院发展的迫切需求。而的修医…

concrt140.dll丢失怎么恢复?教你5种修复方法

首先介绍一下concrt140.dll是什么 concrt140.dll是Microsoft Visual C Redistributable for Visual Studio 2015所需的一个动态链接库文件。它是用于支持C程序运行的重要组件之一。当系统中缺少或丢失concrt140.dll文件时&#xff0c;可能会导致一些程序无法正常运行。 首先&a…

BC117 小乐乐走台阶(附完整代码)

描述 小乐乐上课需要走n阶台阶&#xff0c;因为他腿比较长&#xff0c;所以每次可以选择走一阶或者走两阶&#xff0c;那么他一共有多少种走法&#xff1f; 输入描述 输入包含一个整数n (1 ≤ n ≤ 30) 输出描述 输出一个整数&#xff0c;即小乐乐可以走的方法数。 思路&a…