From 81c1be1ce5f212f90017beaa20e96ef015463518 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=8A=B2=E9=BE=99?= <2860996570@qq.com>
Date: Thu, 29 Aug 2024 20:02:01 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9Eecharts?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/assets/styles/publicPro.scss | 12 +-
.../components/AFuwufazhanzonglan/index.vue | 12 +-
.../components/BJinsannianzijin/index.vue | 157 ++++++++++++------
.../BJinsannianzijin/mixins/resize.js | 56 +++++++
5 files changed, 169 insertions(+), 70 deletions(-)
create mode 100644 src/views/workbenchPro/components/BJinsannianzijin/mixins/resize.js
diff --git a/package.json b/package.json
index 02979ad..e3f8d83 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ruoyi",
- "version": "1.0.202408291813",
+ "version": "1.0.202408291841",
"description": "金鸡湖现代服务业品牌管理系统",
"author": "若依",
"license": "MIT",
diff --git a/src/assets/styles/publicPro.scss b/src/assets/styles/publicPro.scss
index c86b599..f45eeed 100644
--- a/src/assets/styles/publicPro.scss
+++ b/src/assets/styles/publicPro.scss
@@ -355,9 +355,6 @@
}
.AFuwufazhanzonglan-item-top {
- div {
-
- }
div:nth-child(1) {
font-size: 20px;
@@ -405,7 +402,14 @@
//近三年
.BJinsannianzijin-box {
- .BJinsannianzijin {}
+ width: 100%;
+ .BJinsannianzijin {
+ width: 100%;
+ .BJinsannianzijinchart-left{
+ width: 50%;
+ height: 25vh;
+ }
+ }
}
}
diff --git a/src/views/workbenchPro/components/AFuwufazhanzonglan/index.vue b/src/views/workbenchPro/components/AFuwufazhanzonglan/index.vue
index 1472e4b..7593164 100644
--- a/src/views/workbenchPro/components/AFuwufazhanzonglan/index.vue
+++ b/src/views/workbenchPro/components/AFuwufazhanzonglan/index.vue
@@ -93,20 +93,12 @@ export default {
},
},
mounted() {
- // this.cancalDebounce();
- window.addEventListener('resize', this.cancalDebounce);
+
},
methods: {
// 获取top5列表
- // 屏幕尺寸变化
- cancalDebounce() {
- const element = document.getElementById('zhijinbofu-qingkaung'); // 通过元素的 ID 获取元素
- const header = document.getElementById('zhijinbofu-header-id'); // 通过元素的 ID 获取元素
- const elementHeight = element.offsetHeight;
- const headerHeight = header.offsetHeight;
- this.tabHeader = elementHeight - headerHeight - 35;
- }
+
},
}
diff --git a/src/views/workbenchPro/components/BJinsannianzijin/index.vue b/src/views/workbenchPro/components/BJinsannianzijin/index.vue
index 04e3456..e486645 100644
--- a/src/views/workbenchPro/components/BJinsannianzijin/index.vue
+++ b/src/views/workbenchPro/components/BJinsannianzijin/index.vue
@@ -1,60 +1,107 @@
-
-
-
-
-
-
\ No newline at end of file
+}
+
diff --git a/src/views/workbenchPro/components/BJinsannianzijin/mixins/resize.js b/src/views/workbenchPro/components/BJinsannianzijin/mixins/resize.js
new file mode 100644
index 0000000..b1e76e9
--- /dev/null
+++ b/src/views/workbenchPro/components/BJinsannianzijin/mixins/resize.js
@@ -0,0 +1,56 @@
+import { debounce } from '@/utils'
+
+export default {
+ data() {
+ return {
+ $_sidebarElm: null,
+ $_resizeHandler: null
+ }
+ },
+ mounted() {
+ this.initListener()
+ },
+ activated() {
+ if (!this.$_resizeHandler) {
+ // avoid duplication init
+ this.initListener()
+ }
+
+ // when keep-alive chart activated, auto resize
+ this.resize()
+ },
+ beforeDestroy() {
+ this.destroyListener()
+ },
+ deactivated() {
+ this.destroyListener()
+ },
+ methods: {
+ // use $_ for mixins properties
+ // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
+ $_sidebarResizeHandler(e) {
+ if (e.propertyName === 'width') {
+ this.$_resizeHandler()
+ }
+ },
+ initListener() {
+ this.$_resizeHandler = debounce(() => {
+ this.resize()
+ }, 100)
+ window.addEventListener('resize', this.$_resizeHandler)
+
+ this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
+ this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ destroyListener() {
+ window.removeEventListener('resize', this.$_resizeHandler)
+ this.$_resizeHandler = null
+
+ this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
+ },
+ resize() {
+ const { chart } = this
+ chart && chart.resize()
+ }
+ }
+}
From bf790ba23447f6e0f879400de910796ce697eec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=8A=B2=E9=BE=99?= <2860996570@qq.com>
Date: Thu, 29 Aug 2024 21:22:01 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E9=A5=BC=E7=8A=B6=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/BJinsannianzijin/index.vue | 80 ++++++++++++-------
1 file changed, 50 insertions(+), 30 deletions(-)
diff --git a/src/views/workbenchPro/components/BJinsannianzijin/index.vue b/src/views/workbenchPro/components/BJinsannianzijin/index.vue
index e486645..1e44216 100644
--- a/src/views/workbenchPro/components/BJinsannianzijin/index.vue
+++ b/src/views/workbenchPro/components/BJinsannianzijin/index.vue
@@ -46,58 +46,78 @@ export default {
methods: {
initChart() {
this.chart = echarts.init(document.getElementById('BJinsannianzijinchart-left'))
- const option = {
+ var value1 = Math.random() * 100; // 生成第一个随机值
+ var value2 = 300 - value1; // 第二个随机值,保证总和为100
+
+ // 计算比例
+ var minOffset = value1 / 100; // 第一个颜色的渐变比例
+ var maxOffset = (value1 + value2) / 100; // 第二个颜色的渐变比例(这里总和为100,所以maxOffset等于1)
+
+ let option = {
series: [
{
type: 'gauge',
+ splitNumber: 3,
+ radius: '93%',
+ center: ["50%", "70%"],
startAngle: 180,
endAngle: 0,
- center: ['50%', '80%'],
- radius: '100%',
+ min: 0,
+ max: 100,
+ pointer: {
+ show: true,
+ width: 7,
+ length: "60%",
+ borderColor: '#000',
+ borderWidth: '10',
+ },
axisLine: {
+ show: true,
lineStyle: {
- width: 30,
+ width: 35,
color: [
- [0.298, '#2d99e2'],
- [1, '#dce3ec'],
+ [0.5, '#7BB2FF'], // 第一个颜色
+ [0.6, '#000'],
+ [1, '#4186FF'] // 第二个颜色
],
},
},
- axisTick: { show: false },
- axisLabel: { show: false },
- splitLine: { show: false },
- pointer: {
- offsetCenter: [0, '10%'],
- icon: 'path://M0,0 L0,-20 L5,-20 L5,-30 L15,-30 L15,-20 L20,-20 L20,0 Z', // 圆点 + 线 + 三角形
- length: '80%', // 调整长度
- itemStyle: {
- color: '#000',
- width: 2, // 设置指针粗细
+ axisLabel: {
+ show: true,
+ color: "#666",
+ fontSize: 16,
+ formatter: function (value) {
+ return value.toFixed(0);
},
},
- title: {
- show: true,
- offsetCenter: [0, '25%'],
- textStyle: {
- color: '#2d99e2',
- fontSize: 15,
- fontFamily: '微软雅黑',
- fontWeight: 'bold',
+ axisTick: {
+ show: false,
+ },
+ splitLine: {
+ show: false,
+ length: "28%",
+ lineStyle: {
+ color: "#fff",
+ width: 2,
},
},
detail: {
- show: false,
+ show: false
+ },
+ title: {
+ show: false
},
data: [
{
- value: 29.8,
- name: '你要的比例 29.8%',
- },
+ value: value1,
+ name: '决策层国际化导向'
+ }
],
- },
- ],
+ }
+ ]
};
+
this.chart.setOption(
option
)