echarts legend 背景色渐变

news2024/11/25 2:35:04

问题与本文无关:如果检测软件显示loadsh.js 的版本是4.17.10 装element-ui 2.15.8版本以下,2.15.6经过测试可以

代码:

<template>
    <div class="levelMain">
        <div class="survey-head">
            <div class="survey-title">
                <img src="../../assets/img/v3/v301.png" alt />
                云计算总览
            </div>
        </div>
        <div class="echartsmain clearfix">
            <div class="level clearfix">
                <div class="changeTitle">
                    <div class="levelcm" @click="kehuJump">
                        <img src="../../assets/img/v3/v305.png" alt />
                        业务概况
                    </div>
                    <div class="sj_khqk">
                        <span :class="{ isClassColor: isClass == 2 }" style="margin-right: 5px" @click="handlelevel(2)">云平台类型</span>
                        <span :class="{ isClassColor: isClass == 1 }" @click="handlelevel(1)">租户类型</span>
                    </div>
                </div>
                <div class="level-chat-wrap">
                    <div id="main-yewu" class="main-yewu newclass" style="height: 220px; width: 216px"></div>
                    <div class="level-chat-legend">
                        <div class="legend-item" :style="getBackground(index)" v-for="(item, index) in legendData" :key="item.name">
                            <div class="legend-item-icon" :style="{ background: colors[index] }"></div>
                            <div class="legend-item-label">{{ item.name }}</div>
                            <div class="legend-item-num">
                                <numAnimation :num="item.value" :style="{ color: colors[index] }"></numAnimation>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="industry">
                <div class="changeTitle" style="margin-left: 16px">
                    <div class="levelcm" @click="yewuJump">
                        <img src="../../assets/img/v3/v305.png" alt />
                        资源概况
                    </div>
                    <div class="sj_khqk">
                        <span :class="{ isClassColor: isClass1 == 1 }" style="margin-right: 5px" @click="handlelevel1(1)">云产品</span>
                        <span :class="{ isClassColor: isClass1 == 2 }" @click="handlelevel1(2)">物理设备</span>
                    </div>
                </div>
                <ul class="industryBox">
                    <li v-for="(item, index) in ziyuanList" :key="index">
                        <span>{{ item.name }}</span>
                        <NumAnimation :num="item.count"></NumAnimation>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</template>
<script>
const colors1 = ['#40c2c1', '#0e9bfe', '#27d280', '#5ED2F9'];
// const colors2 = ['#0EFEFE','#0E9BFE','#27D280', '#da55ba', '#6fd3b7', '#605edf', '#ef9c57', '#dd645f', '#ebe793', '#49abe6']
const colors2 = ['#35EDA0', '#26CBFF', '#369FFF', '#0FF', '#83F7B2', '#605edf', '#ef9c57', '#dd645f', '#ebe793', '#49abe6'];
const colors3 = [
    'rgba(53,237,160,0.3)',
    'rgba(38,203,255,0.3)',
    'rgba(54,159,255,0.3)',
    'rgba(0,255,255,0.3)',
    'rgba(131,247,178,0.3)',
    'rgba(96,94,223,0.3)',
    'rgba(239,156,87,0.3)',
    'rgba(221, 100, 95,0.3)'
];
import * as math from 'mathjs';
import * as echarts from 'echarts';
import NumAnimation from '@/components/numAnimation.vue';
import { getReq, postReq, postReqJson } from '@/api/index.js';

export default {
    name: 'level',
    components: {
        NumAnimation
    },
    props: {
        reqData: {
            type: Object,
            default: {}
        }
    },
    data() {
        return {
            value: '客户概况',
            profession: [],
            count: [],
            chartData: [],
            ziyuanList: [],
            isClass: 2,
            isClass1: 1,
            colors: colors2,
            myChart: null
        };
    },
    computed: {
        legendData: function () {
            return this.chartData;
        }
    },
    // 自动刷新
    inject: ['loop'],
    watch: {
        loop: {
            handler(newVal) {
                this.handlelevel(this.isClass); //专网统计
                this.handlelevel1(this.isClass1); //资源概况
            },
            deep: true
        },
        reqData: {
            handler(newVal) {
                this.handlelevel(this.isClass); //专网统计
                this.handlelevel1(this.isClass1); //资源概况
            },
            deep: true,
            immediate: true
        }
    },
    mounted() {
        this.handlelevel(this.isClass); //专网统计
        this.handlelevel1(this.isClass1); //资源概况
    },
    beforeDestroy() {
        this.myChart && this.myChart.dispose();
        this.myChart = null;
    },
    methods: {
        getBackground(index) {
            // return `background-image: linear-gradient(270deg, rgba(53, 237, 160, 0.00) 0.05%, ${this.colors[index]} 99.95%);`
            return `background-image: linear-gradient(270deg, rgba(53, 237, 160, 0.00) 0.05%, ${colors3[index]} 99.95%);`;
        },
        handlelevel(text) {
            this.isClass = text;
            this.colors = colors2;
            let data = this.reqData.yewugaikuang;
            if (text == 2) {
                // 云平台类型
                if (data) {
                    data.yunpingtaileixing.forEach((v) => {
                        v['value'] = v.count;
                    });
                    this.chartData = data.yunpingtaileixing;
                    this.getData();
                }
            } else {
                // 租户类型
                if (data) {
                    data.zuhuleixing.forEach((v) => {
                        v['value'] = v.count;
                    });
                    this.chartData = data.zuhuleixing;
                    this.getData();
                }
            }
        },
        handlelevel1(text) {
            this.isClass1 = text;
            let data = this.reqData.ziyuangaikuang;
            if (text == 1) {
                // 云产品
                if (data) {
                    this.ziyuanList = data.yunchanpin;
                }
            } else {
                // 物理设备
                if (data) {
                    this.ziyuanList = data.wulishebei;
                }
            }
        },
        getData() {
            //专网统计
            this.myChart = echarts.init(document.getElementById('main-yewu'));
            const chartData = this.chartData;
            // const colorList = ['#379dfc', '#f8d15a', '#a1b5d3', '#27d280']
            const sum = chartData.reduce((per, cur) => per + cur.value, 0);
            const gap = (1 * sum) / 100;
            const pieData1 = [];
            const pieData2 = [];
            const gapData = {
                name: '',
                value: gap,
                itemStyle: {
                    color: 'transparent'
                }
            };
            for (let i = 0; i < chartData.length; i++) {
                // 第一圈数据
                pieData1.push({
                    ...chartData[i],
                    itemStyle: {
                        borderRadius: 1
                    }
                });
                pieData1.push(gapData);

                // 第二圈数据
                pieData2.push({
                    ...chartData[i],
                    itemStyle: {
                        color: this.colors[i],
                        opacity: 0.2
                    }
                });
                pieData2.push(gapData);
            }
            let titles = this.isClass == '1' ? '专网总量' : '行业总量';
            let option = {
                title: {
                    text: `{a|${sum}}\n{c|${titles}}`,
                    // x: '33%',
                    //   y: '44%',
                    left: 'center',
                    top: 'center',
                    textStyle: {
                        rich: {
                            a: {
                                color: '#00f1ff',
                                fontSize: '16',
                                fontWeight: 'bold'
                            },
                            c: {
                                fontSize: '12',
                                color: '#BDE7FA',
                                padding: [5, 0, 6, 0]
                            }
                        }
                    }
                },
                tooltip: {
                    trigger: 'item',
                    axisPointer: {
                        // 坐标轴指示器,坐标轴触发有效 设置鼠标放上去是线还是阴影
                        type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
                    }
                },
                legend: {
                    show: false,
                    // type: 'scroll',
                    // orient: 'vertical',
                    right: 0,
                    // top: 'center',
                    itemGap: 20,
                    itemWidth: 10,
                    itemHeight: 10,
                    // backgroundColor: 'rgba(13,22,76,0.9)',
                    // padding: [5, 10],
                    textStyle: {
                        color: '#fff',
                        fontSize: 12,
                        borderWidth: 10 // 间距的宽度
                    }
                    // formatter: (name) => {
                    //   const item = chartData.filter((item) => item.moduleType == name)[0]
                    //   if (name != '') {
                    //     return name + '   ' + item.value
                    //   }
                    // },
                },
                grid: {
                    top: 20,
                    right: 10,
                    bottom: 20,
                    left: 10,
                    containLabel: true
                },
                color: this.colors,
                series: [
                    {
                        name: '',
                        type: 'pie',
                        roundCap: true,
                        radius: ['47%', '53%'],

                        // hoverOffset: 5,
                        label: {
                            show: true,
                            formatter: function (params) {
                                let num = math.number(math.divide(math.bignumber(params.value), math.bignumber(sum)));
                                let twoFixed = Math.floor(num * 10000) / 100;
                                return `{name|${twoFixed}%}`;
                            },
                            textStyle: {
                                //   fontSize: 12,
                                rich: {
                                    name: {
                                        fontSize: 12,
                                        fontWeight: 700,
                                        color: 'inherit',
                                        padding: [-22, -48, 0, -40]
                                    }
                                }
                            },
                            position: 'outside',
                            emphasis: {
                                show: true,
                                itemStyle: {}
                            }
                        },
                        labelLine: {
                            show: true,
                            length: 10,
                            length2: 40
                        },
                        data: pieData1
                    },
                    {
                        type: 'pie',
                        radius: ['47%', '38%'],
                        // center: ['45%', '50%'],
                        gap: 1.71,
                        label: {
                            show: false
                        },
                        labelLine: {
                            show: false
                        },
                        silent: true,
                        data: pieData2
                    },
                    {
                        type: 'pie',
                        name: '',
                        radius: ['58%', '58.5%'],
                        silent: true,
                        startAngle: '360',
                        endAngle: '0',
                        data: [
                            {
                                value: 0,
                                selected: false,
                                labelLine: {
                                    show: false,
                                    length: 0,
                                    length2: 0,
                                    lineStyle: {
                                        color: '#fff'
                                    }
                                },
                                itemStyle: {
                                    label: {
                                        show: false
                                    }
                                }
                            }
                        ],

                        itemStyle: {
                            color: '#40C2C1',
                            opacity: 0.45,
                            label: {
                                show: false
                            },
                            labelLine: {
                                opacity: 0,
                                show: false,
                                length: 0,
                                length2: 0,
                                lineStyle: {
                                    color: '#fff'
                                }
                            }
                        },
                        hoverAnimation: false
                    },
                    {
                        type: 'pie',
                        radius: ['31%', '31.5%'],

                        data: [100],
                        color: ['#39D1FA5C'],
                        label: {
                            show: false
                        },
                        silent: true
                    }
                ]
            };
            this.myChart.clear();
            this.myChart.resize();
            this.myChart.setOption(option, true);
        },

        kehuJump() {
            // window.open(`http://10.7.38.84:37799/webroot/decision/v10/entry/access/2e7ec9ae-bd46-49e4-95f0-038d20c863a6?ssoToken=pb453S%2BRSu1BqSB97IFsJhRq2cfGNITYIausH01BwbSIcDxk%2FQqDeHA9%2FJcLh5WOVQ3%2FIjeV7HSXn6Cid%2B9UkjzFvZOku3vLGoF1%2FlQ9LtdQqrczx5pWFp7uDsGkB03uCU1Y%2FDrpnB%2BfkrUxH%2FtGpioaq4TCDDHFUNwTpADUxPYS4%2BkojpNMpu6ahzDZ5t7W9VZchy4K8rbtSR2FS5lkcIpt%2FmpHLqMlFZ8FVTllZlTL1ZEqFkX2piFmgVVtJtm85HUIVXgNLWaWpl7HHZHphuQRGYQ%2F39ck51WLL3IxBhq9DqgmCyqSgNdARTzw8npLuFkO1WIuVqysTwBOWC%2Bg6Q%3D%3D`)
        },
        yewuJump() {
            // window.open(`http://10.7.38.84:37799/webroot/decision/v10/entry/access/a13d36b6-0d06-4955-990c-fc98f94f1c89?ssoToken=pb453S%2BRSu1BqSB97IFsJhRq2cfGNITYIausH01BwbSIcDxk%2FQqDeHA9%2FJcLh5WOVQ3%2FIjeV7HSXn6Cid%2B9UkjzFvZOku3vLGoF1%2FlQ9LtdQqrczx5pWFp7uDsGkB03uCU1Y%2FDrpnB%2BfkrUxH%2FtGpioaq4TCDDHFUNwTpADUxPYS4%2BkojpNMpu6ahzDZ5t7W9VZchy4K8rbtSR2FS5lkcIpt%2FmpHLqMlFZ8FVTllZlTL1ZEqFkX2piFmgVVtJtm85HUIVXgNLWaWpl7HHZHphuQRGYQ%2F39ck51WLL3IxBhq9DqgmCyqSgNdARTzw8npLuFkO1WIuVqysTwBOWC%2Bg6Q%3D%3D`)
        }
    }
};
</script>
<style lang="scss" scoped>
.survey-head {
    align-items: center;

    .no-boder-slct {
        >>> input {
            border: 0;
            background: transparent;
            color: #fff;
            width: 110px;
        }
    }

    .survey-title {
        display: flex;
        align-items: center;
        font-size: 18px;
        font-weight: 700;
        background-image: linear-gradient(0deg, #0ff 24.7%, #1e9bff 89%);
        -webkit-background-clip: text;
        color: transparent;
        img {
            width: 16px;
            height: 16px;
            display: inline-block;
            margin-right: 10px;
        }
    }
}

.echartsmain {
    float: left;
    // width: 821px;
    text-align: left;
    font-size: 14px;
    display: flex;
    align-items: center;
}
.echartsmain .level-chat-wrap {
    // flex: 1;
    // width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.echartsmain .level {
    width: 440px;
    height: 280px;
    box-sizing: border-box;
}
.echartsmain .level-chat-legend {
    padding: 10px 10px 10px 0;
    box-sizing: border-box;
    width: 156px;
    height: 218px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}
.echartsmain .legend-item {
    white-space: nowrap;
    height: 28px;
    display: flex;
    align-items: center;
    // background: url('../../assets/img/v3/llenged-bg.png') no-repeat;
    background-size: 100% 100%;
    padding: 0 10px;
    font-size: 12px;
    padding: 10px 0;
}
// .echartsmain .legend-item + .legend-item {
//   margin-top: 20px;
// }
.echartsmain .legend-item-icon {
    // width: 10px;
    // height: 10px;
    // background: red;
    // margin-right: 10px;
    // border-radius: 2px;
    width: 3px;
    height: 28px;
    background: red;
    margin-right: 10px;
}
.echartsmain .legend-item-label {
    font-size: 12px;
    color: #ffffff;
}
.echartsmain .legend-item-num {
    font-size: 12px;
    color: #ffffff;
    margin-left: auto;
    font-weight: bold;
}
.echartsmain .industry {
    flex: 1;
    // width: 50%;
    width: 470px;
    height: 280px;
    padding: 0 10px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    float: left;
    border-radius: 13px;
    .industryBox {
        width: 420px;
        height: 256px;
        background: url('../../assets/img/v3/v3left03.png') no-repeat center;
        background-size: 100% 100%;
        position: relative;
        li {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            span:nth-child(1) {
                color: #e1ffff;
                font-size: 14px;
                width: 82px;
            }
            span:nth-child(2) {
                color: #0ff;
                font-size: 24px;
                font-weight: 600;
                width: 82px;
            }
        }
        li:nth-child(1) {
            position: absolute;
            // top: 55px;
            // left: 55px;
            top: 30%;
            left: 23%;
            transform: translate(-50%, -50%);
        }
        li:nth-child(2) {
            position: absolute;
            top: 30%;
            right: -5%;
            transform: translate(-50%, -50%);
        }
        li:nth-child(3) {
            position: absolute;
            bottom: 10%;
            left: 23%;
            transform: translate(-50%, -50%);
        }
        li:nth-child(4) {
            position: absolute;
            bottom: 10%;
            right: -3.4%;
            transform: translate(-40%, -50%);
        }
    }
}

.title {
    font-size: 16px;
    color: #fff;
    padding-left: 15px;
}

.levelMain {
    width: 928px;
    height: 365px;
    padding: 20px;
    box-sizing: border-box;
    background: url('../../assets/img/v3/customerv3left1.png');
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}

.el-input__inner {
    width: 130px;
    height: 24px;
    background: none;
    border: none;
    height: inherit;
    font-size: 18px;
    color: #00ddec;
}

.el-select .el-input__inner {
    padding-right: 0px;
}

::v-deep .el-form-item {
    margin-bottom: 0px !important;
}

.el-select .el-input .el-select__caret {
    display: none;
}

::v-deep .el-form-item--mini.el-form-item,
.el-form-item--small.el-form-item {
    margin-bottom: 0px !important;
}

.echartsmain .main-yewu {
    //   width: 100%;
    // flex: 2;
    height: 250px;
}

::v-deep .survey-title input {
    border: 0;
    background: transparent !important;
    color: #00ddec;
    font-family: MicrosoftYaHei-Bold;
    font-size: 18px;
    font-weight: normal;
    width: 140px;
}

.isClassColor {
    // color: #4bc6fb;
    color: #0ff !important;
    width: 86px;
    // height: 20px;
    background: url('../../assets/img/v3/v3tab01ed.png') no-repeat center 5px !important;
    text-align: center;
    line-height: 20px;
}

.changeTitle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    line-height: 30px;
    margin-top: 15px;
    .levelcm {
        // width: 178px;
        // font-size: 16px;
        // color: #ffffff;
        // background-image: linear-gradient(90deg, rgba(0, 60, 130, 0), rgba(0, 60, 130, 1), rgba(0, 60, 130, 0));
        // text-align: center;
        // margin: 0 auto;
        display: flex;
        align-items: center;
        font-size: 16px;
        color: #fff;
        margin-left: -10px;
        padding-top: 10px;
        img {
            width: 40px;
            height: 36px;
            display: inline-block;
            margin-right: -2px;
        }
    }
    .sj_khqk {
        color: #f0f0f0;
        margin-right: 10px;
        cursor: pointer;
        display: flex;
        justify-content: flex-end;
        margin-top: 15px;
        width: 184px;
        height: 28px;
        background: url('../../assets/img/v3/v3tab.png') no-repeat 2px center;
        background-size: 100% 100%;
        span {
            color: #f0f0f0;
            width: 86px;
            // height: 20px;
            background: url('../../assets/img/v3/v3tab01.png') no-repeat center 5px;
            text-align: center;
            line-height: 20px;
        }
    }
}
</style>

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

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

相关文章

信号与系统实验MATLAB-实验1-信号的MATLAB表示及信号运算

实验1-信号的MATLAB表示及信号运算 一、实验目的 1、掌握MATLAB的使用&#xff1b; 2、掌握MATLAB生成信号波形&#xff1b; 3、掌握MATLAB分析常用连续信号&#xff1b; 4、掌握信号运算的MATLAB实现。 二、实验内容 编写程序实现下列常用函数&#xff0c;并显示波形。…

OpenMMlab AI实战营第七期培训

OpenMMlab AI实战营第七期培训 OpenMMlab实战营第七次课2023.2.10学习参考一、全流程的语义分割实战1.回顾**语义分割**、**实例分割**、**全景分割**2.代码模板的全流程3.数据集推荐&#xff1a;4.代码全流程 OpenMMlab实战营 第七次课2023.2.10 此次实战营的积分规则介绍&a…

LabView_波形控件

波形图表 将一定数量的数据点存储在缓冲区&#xff0c;并通过这种方式存储并显示这些数据点。当缓冲区被填满后&#xff0c;波形图表将会用新的数据点覆盖缓冲区中存在时间最久的数据点。 当数据点可用时&#xff0c;波形图表将显示已有的数据点外加最新接收到的数据点 。 您可…

Vatee万腾平台:创新科技,助力企业腾飞

在全球化竞争日益激烈的今天&#xff0c;企业如何借助科技力量实现转型升级&#xff0c;已成为摆在众多企业家面前的重大课题。Vatee万腾平台凭借其卓越的创新科技和专业的服务能力&#xff0c;成为众多企业实现腾飞的得力助手。 一、创新科技&#xff0c;引领企业前行 Vatee万…

解读自然语言处理:技术、应用与未来展望

引言 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是计算机科学、人工智能和语言学的一个跨学科领域&#xff0c;致力于实现人与计算机之间通过自然语言进行有效沟通的能力。NLP 的核心任务是理解、解释和生成人类语言&#xff0c;使计…

【GlobalMapper精品教程】086:批量修改符号的样式

跟ArcGIS一样,Globalmapper也可以批量修改符号的样式,如样式、填充颜色、轮廓等等。 文章目录 一、加载实验数据二、土地利用符号化三、批量修改符号样式四、注意事项一、加载实验数据 订阅专栏后,从私信查收专栏配套的完整实验数据包,打开data086.rar中的土地利用数据,如…

[C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像

【论文地址】 https://arxiv.org/abs/2301.01661 【训练源码】 https://github.com/KangLiao929/RecRecNet 【参考源码】 https://github.com/hpc203/recrecnet-opencv-dnn 【算法介绍】 广角镜头在VR技术中显示出诱人的应用&#xff0c;但它会在捕获的图像中引入严重的径…

AI早班车

全球AI新闻速递 1.国内团队制作AI短片《凤鸣山海》亮相北京电影节 国内团队制作AI短片《凤鸣山海》亮相北京电影节“光影未来”电影科技单元。独特的中国玄幻题材&#xff0c;朱雀、玄武、白虎、青龙&#xff0c;四大神兽栩栩如生 2.字节跳动拒绝出售TikTok&#xff0c;如果败…

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤&#xff0c;期间所有连接都会中断&#xff0c;所以每次开SSH特别麻烦&#xff0c;每次终端自动切换到本地&#xff1a; 每次都得点一下Start SSH Session 想要默认终端连接远程服务器&#xff0c;需要点File->Setting->Tools->SSH T…

【Linux】MySQL下载与安装

1. 下载压缩包 官网下载 2. 解压 上传并解压好放在指定位置 创建soft文件夹 mkdir /soft上传文件&#xff0c;在该目录下再创建一个mysql文件夹&#xff0c;将安装包解压到新文件夹中 mkdir /soft/mysql-8.3.0 tar -xvf mysql-8.3.0-1.el9.x86_64.rpm-bundle.tar -C mysq…

【系统架构设计师】二、操作系统知识(存储管理|设备管理|文件管理)

目录 一、存储管理 1.1 分区存储管理 1.1.1 概念 1.1.2 系统分配内存的算法(可变分区) 1.1.3 逻辑页 1.1.4 页面置换算法 1.1.5 快表 1.2 分段存储管理 1.3 段页式存储 二、设备管理 2.1 概述 2.2 I/O软件 2.3 设备管理技术 三、文件管理 3.1 概述 3.2 文件的类…

超大场景的三维模型(3D)轻量化的主要技术方法

超大场景的三维模型&#xff08;3D&#xff09;轻量化的主要技术方法 超大场景的三维模型在虚拟现实、游戏开发和可视化应用等领域具有重要的价值和应用前景。然而&#xff0c;由于其庞大的数据量和复杂的几何结构&#xff0c;给数据存储、传输和渲染带来了挑战。为了提高超大场…

湖北科技学院2024年成人高等继续教育招生简章

湖北科技学院&#xff0c;这所坐落在荆楚大地的高等学府&#xff0c;一直以来都是培养各类专业人才的重要基地。随着社会的快速发展&#xff0c;终身学习的理念深入人心&#xff0c;成人高等继续教育作为满足广大成年人提升学历、增强职业技能的重要途径&#xff0c;受到了越来…

生成式人工智能如何改变客户服务

生成式人工智能不仅重新定义了品牌与客户的互动方式&#xff0c;还重新定义了品牌如何优化内部资源&#xff0c;以提供更加个性化和高效的服务。 了解在就业和效率方面的挑战和机遇&#xff0c;使用生成式人工智能工具进行客户服务和支持任务。 生成式人工智能不仅重新定义了品…

【Linux进程通信】Linux进程间的无声对话:匿名管道与命名管道技术

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;我们已经知道了进程和文件的基本理论&#xff0c;知道了进程和文件的重要性。进程具有独立性&#xff0c;所以两个进程不能直接通信&#xff0c;那么进程间应该怎样通信呢&#xff1f;我们今天来解开其…

【Linux】版本

文章目录 linux版本1、linxu技术版本&#xff08;内核版本&#xff09;2、linux商业化版本&#xff08;发行版本&#xff09; 区别 linux版本 1、linxu技术版本&#xff08;内核版本&#xff09; 内核&#xff1a;提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程…

第三十二篇-Ollama+Lobe-Chat基本集成配置

Lobe-chat https://github.com/lobehub/lobe-chat 现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架 支持语音合成、多模态、可扩展的&#xff08;function call&#xff09;插件系统 一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用启动ollama ollama run qwen:x…

WPF 深入理解四、样式

样式 WPF中的各类控件元素,都可以自由的设置其样式。 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Margin) 水平位置(HorizontalAlignment) 垂直位置(VerticalAlignment)等等。 而样式则是组织和重用以上的重要工具。不是使…

这些已经死去的软件,依旧无可替代

互联网这条长河里&#xff0c;软件们就像流星一样&#xff0c;一闪而过。有的软件火过一段时间&#xff0c;然后就慢慢消失了。 说不定有些软件你以前天天用&#xff0c;但不知道从什么时候开始就不再用了。时间一天天过去&#xff0c;我们的热情、记忆都在消退&#xff0c;还…

怎么管理网站的数据

每一个网站都会有很多的数据&#xff0c;这些数据的来源&#xff0c;有一些是直接把数据存放在运行文件里面&#xff0c;有一些则是存放在数据库里面&#xff0c;如MySQL、SQL Server等等&#xff0c;这些数据库都是需要安装指定的数据库环境才能运行起来&#xff0c;数据库的存…