From 577052107e623fd950584c0dab91493ff6dd631e Mon Sep 17 00:00:00 2001
From: yangyin <1850366751@qq.com>
Date: 星期四, 18 七月 2024 14:01:16 +0800
Subject: [PATCH] feat: 新增官网页面

---
 src/views/project/ch/demo/WorkOrder.html                |  322 ++++++++++++++++++++++++++
 customer_list/ch/ai_html/views/demo/html/WorkOrder.html |  322 ++++++++++++++++++++++++++
 customer_list/ch/ai_html/views/demo/html/Overview.html  |   20 -
 src/views/project/ch/demo/Overview.html                 |   20 -
 4 files changed, 658 insertions(+), 26 deletions(-)

diff --git a/customer_list/ch/ai_html/views/demo/html/Overview.html b/customer_list/ch/ai_html/views/demo/html/Overview.html
index 48cb9c8..3d14619 100644
--- a/customer_list/ch/ai_html/views/demo/html/Overview.html
+++ b/customer_list/ch/ai_html/views/demo/html/Overview.html
@@ -18,18 +18,6 @@
 
 <body>
 	<div class="w-full h-full bg-[#f2f4f8]" id="overview">
-		<!-- <div class="w-full h-[40px] flex items-center">骞村害缂磋垂鎯呭喌</div>
-			<div class="h-full">
-				<div class="w-[310px] flex flex-wrap justify-between h-[220px]">
-					<div v-for="item in state.annualPayment" :key="item" class="w-[50%] h-[33%] flex items-center">
-						<div :class="['iconfont icon-' + item.Icon]" :style="`color:${item.BgColor};font-size:${36}px`"></div>
-						<div class="ml-[10px]">
-							<span>{{ item.Value }} <span>{{ item.Unit }}</span></span>
-							<p>{{ item.Name }}</p>
-						</div>
-					</div>
-				</div>
-			</div> -->
 		<div class="screen-top-center">
 			<div class="top-center-data">
 				<div class="data-item" v-for="(item, index) in state.dataList">
@@ -305,7 +293,9 @@
 					},
 					legend: {
 						orient: 'vertical',
-						left: 'right',
+						left: '60%',
+						y: 'center',
+
 						formatter: function (name) {
 							let target, percentage;
 							for (let i = 0; i < dataCake.length; i++) {
@@ -317,6 +307,9 @@
 							let arr = [name + ' ', ' ' + target + '浜� ', ' ' + percentage];
 							return arr.join(' ');
 						},
+					},
+					grid: {
+						left: '45'
 					},
 					// title: {
 					// 	text: '76%',//涓绘爣棰樻枃鏈�
@@ -340,6 +333,7 @@
 							name: '浠婃棩涓氱哗瀹屾垚搴�',
 							type: 'pie',
 							radius: ['40%', '70%'],
+							center: ['30%', '50%'],
 							avoidLabelOverlap: false,
 							label: {
 								show: false,
diff --git a/customer_list/ch/ai_html/views/demo/html/WorkOrder.html b/customer_list/ch/ai_html/views/demo/html/WorkOrder.html
new file mode 100644
index 0000000..5c1c5cd
--- /dev/null
+++ b/customer_list/ch/ai_html/views/demo/html/WorkOrder.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<title>瀹樼綉姒傝堪</title>
+	<script src="/ai_html/views/demo/js/tailwind.js"></script>
+	<script src="/ai_html/views/demo/js/vue.global.js"></script>
+	<script src="/ai_html/views/demo/js/datav.umd.js"></script>
+	<script src="/ai_html/views/demo/js/index.full.js"></script>
+	<script src="/ai_html/views/demo/js/iframe-resizer/child-5.1.5.js" async></script>
+	<script src="/ai_html/views/demo/js/echarts.min.js"></script>
+	<link href="/ai_html/views/demo/css/variablesDemo.css" rel="stylesheet" type="text/css" />
+	<link href="/static/fonts/iconfont/iconfont.css" rel="stylesheet" type="text/css" />
+	<link href="/ai_html/views/demo/css/ele-index.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+	<div class="w-full h-full bg-[#f2f4f8]" id="workOrder">
+		<div class="screen-top-center">
+			<div class="top-center-data">
+				<div class="data-item" v-for="(item, index) in state.dataList">
+					<p class="data-item-title">{{item.title}}</p>
+					<p class="data-item-desc">{{item.value}}<span class="text-[13px] ">
+							{{' '+item.unit}}</span></p>
+				</div>
+			</div>
+			<div class="top-center-chart">
+				<div class="chart-item">
+					<div class="screen-top-header flex flex-wrap justify-center items-center">
+						<div class="header-left flex-c">
+							<i class="iconfont icon-ico_shuju text-[#1c86ff]"></i>
+						</div>
+						<div class="header-right flex-l">
+							<span class="header-title">宸℃鍏绘姢鎯呭喌</span>
+							<Decoration3 class="dv-dec-3" />
+						</div>
+					</div>
+
+					<div id="inspectionChart" class="w-full h-[280px]"></div>
+
+				</div>
+				<div class="chart-item">
+					<div class="screen-top-header flex-l">
+						<div class="header-left flex-c">
+							<i class="iconfont icon-shangchuan text-[#1c86ff]"></i>
+						</div>
+						<div class="header-right flex-l">
+							<span class="header-title">鏈堝害鍙楃悊閲忔帓琛�</span>
+							<Decoration3 class="dv-dec-3" />
+						</div>
+					</div>
+					<div class="pond-section">
+						<div id="salesRankChart" class="w-full h-[280px]"></div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</body>
+<script>
+	const { createApp, onMounted, ref, reactive } = Vue;
+	const { Decoration3 } = DataV;
+	const demoOverViewChart = ref(null);
+	const inspectionChart = ref(null);
+	const salesRankRef = ref(null);
+	const App = createApp({
+		setup() {
+			let state = reactive({
+				dataList: [
+					{
+						title: '绠$嚎鎬婚暱',
+						value: 755,
+						config: {
+							number: [755],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '绫�',
+					},
+					{
+						title: '鍘嬪姏琛ㄦ暟',
+						value: 3288,
+						config: {
+							number: [3288],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '娴侀噺璁℃暟',
+						value: 14222,
+						config: {
+							number: [14222],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '鎴疯〃鏁�',
+						value: 41022,
+						config: {
+							number: [41022],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '姘磋川浠暟',
+						value: 176888,
+						config: {
+							number: [176888],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '闃�闂ㄦ暟',
+						value: 820,
+						config: {
+							number: [820],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+				],
+			});
+			const getOverViewList = () => {
+				const iconList = [
+					'biaodan',
+					'putong',
+					'zhongduancanshuchaxun',
+					'shidu',
+					'fuwenbenkuang',
+					'fuwenben',
+					'jiliandongxuanzeqi',
+					'jinridaiban',
+					'gongju',
+				];
+				state.dataList.forEach((annual, index) => {
+					annual.Icon = iconList[index];
+					annual.BgColor = randomHexColor();
+				});
+			};
+			//闅忔満鐢熸垚棰滆壊
+			const randomHexColor = () => {
+				return `#${Math.floor(Math.random() * 16777215)
+					.toString(16)
+					.padEnd(6, '0')}`;
+			};
+			onMounted(() => {
+				// getOverViewList();
+				window.addEventListener('resize', () => {
+					inspectionChart.value.resize();
+					salesRankRef.value.resize();
+				});
+				initInspectionChart()
+				drawSalesRanking();
+			});
+			//鍒濆鍖栧贰妫�鍥捐〃
+			const initInspectionChart = () => {
+				var chartDom = document.getElementById('inspectionChart');
+				var myInspectChart = echarts.init(chartDom);
+				inspectionChart.value = myInspectChart;
+				var option = {
+					legend: {},
+					tooltip: {},
+					dataset: {
+						source: [
+							['product', '寰幆瀹屾垚鐜�', '缁翠繚瀹屾垚鐜�'],
+							['1鏈�', 43.3, 85.8],
+							['2鏈�', 83.1, 73.4],
+							['3鏈�', 86.4, 65.2],
+							['4鏈�', 72.4, 53.9],
+							['5鏈�', 77.0, 39.1],
+							['6鏈�', 68.2, 56.2],
+							['7鏈�', 72.1, 64.5],
+							['8鏈�', 76.5, 70.8],
+							['9鏈�', 74.1, 72.4],
+							['10鏈�', 75.3, 71.7],
+							['11鏈�', 70.9, 74.2],
+							['12鏈�', 66.8, 75.2],
+						]
+					},
+					xAxis: { type: 'category', name: '鏈堜唤', nameGap: 10, },
+					yAxis: {
+						name: '鍗曚綅: %'
+					},
+					series: [{ type: 'bar' }, { type: 'bar' }]
+				};
+				option && myInspectChart.setOption(option);
+			}
+			// 缁樺埗妯悜鏌辩姸鍥炬帓琛屾
+			const drawSalesRanking = () => {
+				var chartDom = document.getElementById('salesRankChart');
+				var salesRankingElement = echarts.init(chartDom);
+				salesRankRef.value = salesRankingElement
+				const option = {
+					tooltip: {
+						trigger: 'axis',
+						axisPointer: {
+							type: 'shadow',
+						},
+					},
+					grid: {
+						left: '2%', // 璋冩暣宸﹁竟璺�
+						right: '5%', // 璋冩暣鍙宠竟璺�
+						top: '2%', // 璋冩暣涓嬭竟璺�
+
+						containLabel: true, // 纭繚鏍囩鍜岃酱鏍囬琚寘鍚湪瀹瑰櫒鍐�
+					},
+					xAxis: {
+						type: 'value',
+						boundaryGap: [0, 0.01],
+						axisLine: {
+							show: false, // 涓嶆樉绀烘í鍧愭爣杞寸嚎
+						},
+						axisTick: {
+							show: false, // 涓嶆樉绀哄埢搴︾嚎
+						},
+						splitLine: {
+							show: false, // 涓嶆樉绀簒杞寸綉鏍肩嚎
+						},
+					},
+					yAxis: {
+						type: 'category',
+						data: ['闂佃鍖�', '娴︿笢鍖�', '寰愭眹鍖�'], // 绀轰緥鏁版嵁
+						axisLine: {
+							show: false, // 涓嶆樉绀烘í鍧愭爣杞寸嚎
+						},
+						axisTick: {
+							show: false, // 涓嶆樉绀哄埢搴︾嚎
+						},
+						splitLine: {
+							show: false, // 涓嶆樉绀簓杞寸綉鏍肩嚎
+						},
+						axisLabel: {
+							rich: {
+								iconStyle: {
+									fontSize: 20, // 璁剧疆鍥炬爣鐨勫瓧浣撳ぇ灏忎负20
+								},
+								nameStyle: {
+									// 瀹氫箟鍚嶅瓧鐨勬牱寮�
+									fontSize: 12, // 璁剧疆鍚嶅瓧鐨勫瓧浣撳ぇ灏忎负12锛屾垨鑰呮偍甯屾湜鐨勪换浣曞ぇ灏�
+								},
+							},
+							formatter: function (value, index) {
+								// 鏍规嵁index鎴杤alue鏉ュ喅瀹氭樉绀哄摢涓帓鍚嶇殑鍥炬爣
+								const rankIcons = {
+									2: '{iconStyle|馃}',
+									1: '{iconStyle|馃}',
+									0: '{iconStyle|馃}',
+								};
+								return `${rankIcons[index]} {nameStyle|${value}}`;
+							},
+						},
+					},
+					series: [
+						{
+							name: '鍙楃悊閲�',
+							type: 'bar',
+							data: [9, 10, 21], // 绀轰緥鏁版嵁
+							barWidth: '30%', // 璋冩暣鏌卞瓙瀹藉害
+							itemStyle: {
+								borderRadius: [0, 5, 5, 0], // 鍙湁鍙充晶鍦嗚
+								color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+									// 璁剧疆娓愬彉鑹诧紝鏂瑰悜涔熻璋冩暣涓烘í鍚�
+									{ offset: 0, color: '#bdd1f6' },
+									{ offset: 1, color: '#4282ff' },
+								]),
+							},
+							label: {
+								show: true, // 鏄剧ず鏍囩
+								position: 'right', // 鏍囩浣嶇疆鍦ㄩ《閮�
+								formatter: '{c}涓�', // 鑷畾涔夋樉绀虹殑鍐呭锛寋c}鏄寚褰撳墠鏁版嵁鐐圭殑鍊�
+							},
+						},
+					],
+				};
+				salesRankingElement.setOption(option);
+			};
+
+			return { state };
+		},
+	});
+
+	App.component('Decoration3', Decoration3);
+	App.use(ElementPlus);
+	App.mount('#workOrder');
+</script>
+
+</html>
\ No newline at end of file
diff --git a/src/views/project/ch/demo/Overview.html b/src/views/project/ch/demo/Overview.html
index 7c8a739..1e7c4bd 100644
--- a/src/views/project/ch/demo/Overview.html
+++ b/src/views/project/ch/demo/Overview.html
@@ -18,18 +18,6 @@
 
 <body>
 	<div class="w-full h-full bg-[#f2f4f8]" id="overview">
-		<!-- <div class="w-full h-[40px] flex items-center">骞村害缂磋垂鎯呭喌</div>
-			<div class="h-full">
-				<div class="w-[310px] flex flex-wrap justify-between h-[220px]">
-					<div v-for="item in state.annualPayment" :key="item" class="w-[50%] h-[33%] flex items-center">
-						<div :class="['iconfont icon-' + item.Icon]" :style="`color:${item.BgColor};font-size:${36}px`"></div>
-						<div class="ml-[10px]">
-							<span>{{ item.Value }} <span>{{ item.Unit }}</span></span>
-							<p>{{ item.Name }}</p>
-						</div>
-					</div>
-				</div>
-			</div> -->
 		<div class="screen-top-center">
 			<div class="top-center-data">
 				<div class="data-item" v-for="(item, index) in state.dataList">
@@ -305,7 +293,9 @@
 					},
 					legend: {
 						orient: 'vertical',
-						left: 'right',
+						left: '60%',
+						y: 'center',
+
 						formatter: function (name) {
 							let target, percentage;
 							for (let i = 0; i < dataCake.length; i++) {
@@ -317,6 +307,9 @@
 							let arr = [name + ' ', ' ' + target + '浜� ', ' ' + percentage];
 							return arr.join(' ');
 						},
+					},
+					grid: {
+						left: '45'
 					},
 					// title: {
 					// 	text: '76%',//涓绘爣棰樻枃鏈�
@@ -340,6 +333,7 @@
 							name: '浠婃棩涓氱哗瀹屾垚搴�',
 							type: 'pie',
 							radius: ['40%', '70%'],
+							center: ['30%', '50%'],
 							avoidLabelOverlap: false,
 							label: {
 								show: false,
diff --git a/src/views/project/ch/demo/WorkOrder.html b/src/views/project/ch/demo/WorkOrder.html
new file mode 100644
index 0000000..98eb2ed
--- /dev/null
+++ b/src/views/project/ch/demo/WorkOrder.html
@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+	<title>瀹樼綉姒傝堪</title>
+	<script src="/customer_list/ch/ai_html/views/demo/js/tailwind.js"></script>
+	<script src="/customer_list/ch/ai_html/views/demo/js/vue.global.js"></script>
+	<script src="/customer_list/ch/ai_html/views/demo/js/datav.umd.js"></script>
+	<script src="/customer_list/ch/ai_html/views/demo/js/index.full.js"></script>
+	<script src="/customer_list/ch/ai_html/views/demo/js/iframe-resizer/child-5.1.5.js" async></script>
+	<script src="/customer_list/ch/ai_html/views/demo/js/echarts.min.js"></script>
+	<link href="/customer_list/ch/ai_html/views/demo/css/variablesDemo.css" rel="stylesheet" type="text/css" />
+	<link href="/customer_list/ch/static/fonts/iconfont/iconfont.css" rel="stylesheet" type="text/css" />
+	<link href="/customer_list/ch/ai_html/views/demo/css/ele-index.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+	<div class="w-full h-full bg-[#f2f4f8]" id="workOrder">
+		<div class="screen-top-center">
+			<div class="top-center-data">
+				<div class="data-item" v-for="(item, index) in state.dataList">
+					<p class="data-item-title">{{item.title}}</p>
+					<p class="data-item-desc">{{item.value}}<span class="text-[13px] ">
+							{{' '+item.unit}}</span></p>
+				</div>
+			</div>
+			<div class="top-center-chart">
+				<div class="chart-item">
+					<div class="screen-top-header flex flex-wrap justify-center items-center">
+						<div class="header-left flex-c">
+							<i class="iconfont icon-ico_shuju text-[#1c86ff]"></i>
+						</div>
+						<div class="header-right flex-l">
+							<span class="header-title">宸℃鍏绘姢鎯呭喌</span>
+							<Decoration3 class="dv-dec-3" />
+						</div>
+					</div>
+
+					<div id="inspectionChart" class="w-full h-[280px]"></div>
+
+				</div>
+				<div class="chart-item">
+					<div class="screen-top-header flex-l">
+						<div class="header-left flex-c">
+							<i class="iconfont icon-shangchuan text-[#1c86ff]"></i>
+						</div>
+						<div class="header-right flex-l">
+							<span class="header-title">鏈堝害鍙楃悊閲忔帓琛�</span>
+							<Decoration3 class="dv-dec-3" />
+						</div>
+					</div>
+					<div class="pond-section">
+						<div id="salesRankChart" class="w-full h-[280px]"></div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</body>
+<script>
+	const { createApp, onMounted, ref, reactive } = Vue;
+	const { Decoration3 } = DataV;
+	const demoOverViewChart = ref(null);
+	const inspectionChart = ref(null);
+	const salesRankRef = ref(null);
+	const App = createApp({
+		setup() {
+			let state = reactive({
+				dataList: [
+					{
+						title: '绠$嚎鎬婚暱',
+						value: 755,
+						config: {
+							number: [755],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '绫�',
+					},
+					{
+						title: '鍘嬪姏琛ㄦ暟',
+						value: 3288,
+						config: {
+							number: [3288],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '娴侀噺璁℃暟',
+						value: 14222,
+						config: {
+							number: [14222],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '鎴疯〃鏁�',
+						value: 41022,
+						config: {
+							number: [41022],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '姘磋川浠暟',
+						value: 176888,
+						config: {
+							number: [176888],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+					{
+						title: '闃�闂ㄦ暟',
+						value: 820,
+						config: {
+							number: [820],
+							toFixed: 0,
+							content: '{nt}',
+							textAlign: 'left',
+							style: {
+								fontSize: 24,
+							},
+						},
+						unit: '涓�',
+					},
+				],
+			});
+			const getOverViewList = () => {
+				const iconList = [
+					'biaodan',
+					'putong',
+					'zhongduancanshuchaxun',
+					'shidu',
+					'fuwenbenkuang',
+					'fuwenben',
+					'jiliandongxuanzeqi',
+					'jinridaiban',
+					'gongju',
+				];
+				state.dataList.forEach((annual, index) => {
+					annual.Icon = iconList[index];
+					annual.BgColor = randomHexColor();
+				});
+			};
+			//闅忔満鐢熸垚棰滆壊
+			const randomHexColor = () => {
+				return `#${Math.floor(Math.random() * 16777215)
+					.toString(16)
+					.padEnd(6, '0')}`;
+			};
+			onMounted(() => {
+				// getOverViewList();
+				window.addEventListener('resize', () => {
+					inspectionChart.value.resize();
+					salesRankRef.value.resize();
+				});
+				initInspectionChart()
+				drawSalesRanking();
+			});
+			//鍒濆鍖栧贰妫�鍥捐〃
+			const initInspectionChart = () => {
+				var chartDom = document.getElementById('inspectionChart');
+				var myInspectChart = echarts.init(chartDom);
+				inspectionChart.value = myInspectChart;
+				var option = {
+					legend: {},
+					tooltip: {},
+					dataset: {
+						source: [
+							['product', '寰幆瀹屾垚鐜�', '缁翠繚瀹屾垚鐜�'],
+							['1鏈�', 43.3, 85.8],
+							['2鏈�', 83.1, 73.4],
+							['3鏈�', 86.4, 65.2],
+							['4鏈�', 72.4, 53.9],
+							['5鏈�', 77.0, 39.1],
+							['6鏈�', 68.2, 56.2],
+							['7鏈�', 72.1, 64.5],
+							['8鏈�', 76.5, 70.8],
+							['9鏈�', 74.1, 72.4],
+							['10鏈�', 75.3, 71.7],
+							['11鏈�', 70.9, 74.2],
+							['12鏈�', 66.8, 75.2],
+						]
+					},
+					xAxis: { type: 'category', name: '鏈堜唤', nameGap: 10, },
+					yAxis: {
+						name: '鍗曚綅: %'
+					},
+					series: [{ type: 'bar' }, { type: 'bar' }]
+				};
+				option && myInspectChart.setOption(option);
+			}
+			// 缁樺埗妯悜鏌辩姸鍥炬帓琛屾
+			const drawSalesRanking = () => {
+				var chartDom = document.getElementById('salesRankChart');
+				var salesRankingElement = echarts.init(chartDom);
+				salesRankRef.value = salesRankingElement
+				const option = {
+					tooltip: {
+						trigger: 'axis',
+						axisPointer: {
+							type: 'shadow',
+						},
+					},
+					grid: {
+						left: '2%', // 璋冩暣宸﹁竟璺�
+						right: '5%', // 璋冩暣鍙宠竟璺�
+						top: '2%', // 璋冩暣涓嬭竟璺�
+
+						containLabel: true, // 纭繚鏍囩鍜岃酱鏍囬琚寘鍚湪瀹瑰櫒鍐�
+					},
+					xAxis: {
+						type: 'value',
+						boundaryGap: [0, 0.01],
+						axisLine: {
+							show: false, // 涓嶆樉绀烘í鍧愭爣杞寸嚎
+						},
+						axisTick: {
+							show: false, // 涓嶆樉绀哄埢搴︾嚎
+						},
+						splitLine: {
+							show: false, // 涓嶆樉绀簒杞寸綉鏍肩嚎
+						},
+					},
+					yAxis: {
+						type: 'category',
+						data: ['闂佃鍖�', '娴︿笢鍖�', '寰愭眹鍖�'], // 绀轰緥鏁版嵁
+						axisLine: {
+							show: false, // 涓嶆樉绀烘í鍧愭爣杞寸嚎
+						},
+						axisTick: {
+							show: false, // 涓嶆樉绀哄埢搴︾嚎
+						},
+						splitLine: {
+							show: false, // 涓嶆樉绀簓杞寸綉鏍肩嚎
+						},
+						axisLabel: {
+							rich: {
+								iconStyle: {
+									fontSize: 20, // 璁剧疆鍥炬爣鐨勫瓧浣撳ぇ灏忎负20
+								},
+								nameStyle: {
+									// 瀹氫箟鍚嶅瓧鐨勬牱寮�
+									fontSize: 12, // 璁剧疆鍚嶅瓧鐨勫瓧浣撳ぇ灏忎负12锛屾垨鑰呮偍甯屾湜鐨勪换浣曞ぇ灏�
+								},
+							},
+							formatter: function (value, index) {
+								// 鏍规嵁index鎴杤alue鏉ュ喅瀹氭樉绀哄摢涓帓鍚嶇殑鍥炬爣
+								const rankIcons = {
+									2: '{iconStyle|馃}',
+									1: '{iconStyle|馃}',
+									0: '{iconStyle|馃}',
+								};
+								return `${rankIcons[index]} {nameStyle|${value}}`;
+							},
+						},
+					},
+					series: [
+						{
+							name: '鍙楃悊閲�',
+							type: 'bar',
+							data: [9, 10, 21], // 绀轰緥鏁版嵁
+							barWidth: '30%', // 璋冩暣鏌卞瓙瀹藉害
+							itemStyle: {
+								borderRadius: [0, 5, 5, 0], // 鍙湁鍙充晶鍦嗚
+								color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
+									// 璁剧疆娓愬彉鑹诧紝鏂瑰悜涔熻璋冩暣涓烘í鍚�
+									{ offset: 0, color: '#bdd1f6' },
+									{ offset: 1, color: '#4282ff' },
+								]),
+							},
+							label: {
+								show: true, // 鏄剧ず鏍囩
+								position: 'right', // 鏍囩浣嶇疆鍦ㄩ《閮�
+								formatter: '{c}涓�', // 鑷畾涔夋樉绀虹殑鍐呭锛寋c}鏄寚褰撳墠鏁版嵁鐐圭殑鍊�
+							},
+						},
+					],
+				};
+				salesRankingElement.setOption(option);
+			};
+
+			return { state };
+		},
+	});
+
+	App.component('Decoration3', Decoration3);
+	App.use(ElementPlus);
+	App.mount('#workOrder');
+</script>
+
+</html>
\ No newline at end of file

--
Gitblit v1.9.3