diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/styles/element-plus/index.scss b/src/assets/styles/element-plus/index.scss index 6dc95ed..da02197 100644 --- a/src/assets/styles/element-plus/index.scss +++ b/src/assets/styles/element-plus/index.scss @@ -4,9 +4,14 @@ "base": #4384ff ) ), + $fill-color:( + "lighter":#f2f6ff + ), $table:( "header-bg-color":#f2f6ff, - "header-text-color":#444c59 + "header-text-color":#444c59, + "row-hover-bg-color":#f2f6ff, + ), $menu:( "base-level-padding": 15px, diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/styles/element-plus/index.scss b/src/assets/styles/element-plus/index.scss index 6dc95ed..da02197 100644 --- a/src/assets/styles/element-plus/index.scss +++ b/src/assets/styles/element-plus/index.scss @@ -4,9 +4,14 @@ "base": #4384ff ) ), + $fill-color:( + "lighter":#f2f6ff + ), $table:( "header-bg-color":#f2f6ff, - "header-text-color":#444c59 + "header-text-color":#444c59, + "row-hover-bg-color":#f2f6ff, + ), $menu:( "base-level-padding": 15px, diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue index ce5d797..ca9df2c 100644 --- a/src/components/Echart/LineChart.vue +++ b/src/components/Echart/LineChart.vue @@ -32,7 +32,7 @@ top: 50, left: 10, right: 20, - bottom: 5, + bottom: 10, containLabel: true, // 是否包含坐标轴的刻度标签 } }, @@ -244,7 +244,7 @@ splitLine: { show: true, lineStyle: { - color: ['#7a6b74'], + color: ['#bfbfbf'], type: 'dashed', }, }, @@ -324,8 +324,11 @@ // 刷新图表 function refreshChart() { if (chart) { + console.log('渲染折线图') + const option = buildOption() chart.setOption(option as unknown as ECBasicOption, true) + chart.resize() } } diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/styles/element-plus/index.scss b/src/assets/styles/element-plus/index.scss index 6dc95ed..da02197 100644 --- a/src/assets/styles/element-plus/index.scss +++ b/src/assets/styles/element-plus/index.scss @@ -4,9 +4,14 @@ "base": #4384ff ) ), + $fill-color:( + "lighter":#f2f6ff + ), $table:( "header-bg-color":#f2f6ff, - "header-text-color":#444c59 + "header-text-color":#444c59, + "row-hover-bg-color":#f2f6ff, + ), $menu:( "base-level-padding": 15px, diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue index ce5d797..ca9df2c 100644 --- a/src/components/Echart/LineChart.vue +++ b/src/components/Echart/LineChart.vue @@ -32,7 +32,7 @@ top: 50, left: 10, right: 20, - bottom: 5, + bottom: 10, containLabel: true, // 是否包含坐标轴的刻度标签 } }, @@ -244,7 +244,7 @@ splitLine: { show: true, lineStyle: { - color: ['#7a6b74'], + color: ['#bfbfbf'], type: 'dashed', }, }, @@ -324,8 +324,11 @@ // 刷新图表 function refreshChart() { if (chart) { + console.log('渲染折线图') + const option = buildOption() chart.setOption(option as unknown as ECBasicOption, true) + chart.resize() } } diff --git a/src/components/Echart/PieChart.vue b/src/components/Echart/PieChart.vue index 4b1aa79..74d506a 100644 --- a/src/components/Echart/PieChart.vue +++ b/src/components/Echart/PieChart.vue @@ -1,6 +1,6 @@ - - - + + + + + + {{ title }} - - 更多 > + + 更多 > - + + + diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/styles/element-plus/index.scss b/src/assets/styles/element-plus/index.scss index 6dc95ed..da02197 100644 --- a/src/assets/styles/element-plus/index.scss +++ b/src/assets/styles/element-plus/index.scss @@ -4,9 +4,14 @@ "base": #4384ff ) ), + $fill-color:( + "lighter":#f2f6ff + ), $table:( "header-bg-color":#f2f6ff, - "header-text-color":#444c59 + "header-text-color":#444c59, + "row-hover-bg-color":#f2f6ff, + ), $menu:( "base-level-padding": 15px, diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue index ce5d797..ca9df2c 100644 --- a/src/components/Echart/LineChart.vue +++ b/src/components/Echart/LineChart.vue @@ -32,7 +32,7 @@ top: 50, left: 10, right: 20, - bottom: 5, + bottom: 10, containLabel: true, // 是否包含坐标轴的刻度标签 } }, @@ -244,7 +244,7 @@ splitLine: { show: true, lineStyle: { - color: ['#7a6b74'], + color: ['#bfbfbf'], type: 'dashed', }, }, @@ -324,8 +324,11 @@ // 刷新图表 function refreshChart() { if (chart) { + console.log('渲染折线图') + const option = buildOption() chart.setOption(option as unknown as ECBasicOption, true) + chart.resize() } } diff --git a/src/components/Echart/PieChart.vue b/src/components/Echart/PieChart.vue index 4b1aa79..74d506a 100644 --- a/src/components/Echart/PieChart.vue +++ b/src/components/Echart/PieChart.vue @@ -1,6 +1,6 @@ - - - + + + + + + {{ title }} - - 更多 > + + 更多 > - + + + diff --git a/src/router/modules/measure.ts b/src/router/modules/measure.ts index f8c750b..3676c67 100644 --- a/src/router/modules/measure.ts +++ b/src/router/modules/measure.ts @@ -23,6 +23,7 @@ auth: '/measure/bench', sidebar: false, breadcrumb: true, + activeMenu: '/bench', }, }, ], diff --git a/src/assets/icons/icon-book.svg b/src/assets/icons/icon-book.svg new file mode 100644 index 0000000..18760fe --- /dev/null +++ b/src/assets/icons/icon-book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-certi.svg b/src/assets/icons/icon-certi.svg new file mode 100644 index 0000000..8615630 --- /dev/null +++ b/src/assets/icons/icon-certi.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-line.svg b/src/assets/icons/icon-line.svg new file mode 100644 index 0000000..f471055 --- /dev/null +++ b/src/assets/icons/icon-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/icon-pie.svg b/src/assets/icons/icon-pie.svg new file mode 100644 index 0000000..5ba1903 --- /dev/null +++ b/src/assets/icons/icon-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/styles/element-plus/index.scss b/src/assets/styles/element-plus/index.scss index 6dc95ed..da02197 100644 --- a/src/assets/styles/element-plus/index.scss +++ b/src/assets/styles/element-plus/index.scss @@ -4,9 +4,14 @@ "base": #4384ff ) ), + $fill-color:( + "lighter":#f2f6ff + ), $table:( "header-bg-color":#f2f6ff, - "header-text-color":#444c59 + "header-text-color":#444c59, + "row-hover-bg-color":#f2f6ff, + ), $menu:( "base-level-padding": 15px, diff --git a/src/components/Echart/LineChart.vue b/src/components/Echart/LineChart.vue index ce5d797..ca9df2c 100644 --- a/src/components/Echart/LineChart.vue +++ b/src/components/Echart/LineChart.vue @@ -32,7 +32,7 @@ top: 50, left: 10, right: 20, - bottom: 5, + bottom: 10, containLabel: true, // 是否包含坐标轴的刻度标签 } }, @@ -244,7 +244,7 @@ splitLine: { show: true, lineStyle: { - color: ['#7a6b74'], + color: ['#bfbfbf'], type: 'dashed', }, }, @@ -324,8 +324,11 @@ // 刷新图表 function refreshChart() { if (chart) { + console.log('渲染折线图') + const option = buildOption() chart.setOption(option as unknown as ECBasicOption, true) + chart.resize() } } diff --git a/src/components/Echart/PieChart.vue b/src/components/Echart/PieChart.vue index 4b1aa79..74d506a 100644 --- a/src/components/Echart/PieChart.vue +++ b/src/components/Echart/PieChart.vue @@ -1,6 +1,6 @@ - - - + + + + + + {{ title }} - - 更多 > + + 更多 > - + + + diff --git a/src/router/modules/measure.ts b/src/router/modules/measure.ts index f8c750b..3676c67 100644 --- a/src/router/modules/measure.ts +++ b/src/router/modules/measure.ts @@ -23,6 +23,7 @@ auth: '/measure/bench', sidebar: false, breadcrumb: true, + activeMenu: '/bench', }, }, ], diff --git a/src/views/measure/bench/bench.vue b/src/views/measure/bench/bench.vue index 380779a..0916a59 100644 --- a/src/views/measure/bench/bench.vue +++ b/src/views/measure/bench/bench.vue @@ -9,6 +9,9 @@ import BenchCol from '@/components/benchCol/index.vue' import type { lineDataI, pieDataI } from '@/components/Echart/echart-interface' import useUserStore from '@/store/modules/user' +// 每个展示块高度 +const blockHeight = ref(300) +const blockWidth = ref(400) const { username } = useUserStore() const buttomTypes = ref([ { id: '1', text: '培训记录', url: '/train/trainLog' }, @@ -21,23 +24,23 @@ const tableData = ref([]) const meterageTableData = ref([]) const columns = ref([ - { text: '培训名称', value: 'planName', width: '110' }, + { text: '培训名称', value: 'planName' }, { text: '负责人', value: 'director', width: '120' }, - { text: '培训时间', value: 'trainTime' }, + { text: '培训时间', value: 'trainTime', width: '180' }, ]) const meterageColumns = ref([ - { text: '文件名称', value: 'fileName', width: '110' }, + { text: '文件名称', value: 'fileName' }, { text: '类别', value: 'fileTypeName', width: '110' }, - { text: '发布时间', value: 'publishTime' }, + { text: '发布时间', value: 'publishTime', width: '180' }, ]) const CertificateColumns = ref([ - { text: '证书名称', value: 'certificateName', width: '110' }, - { text: '到期时间', value: 'validDate' }, + { text: '证书名称', value: 'certificateName' }, + { text: '到期时间', value: 'validDate', width: '180' }, ]) const CertificatesColumns = ref([ - { text: '证书名称', value: 'certificateName', width: '110' }, + { text: '证书名称', value: 'certificateName' }, { text: '人员名称', value: 'name', width: '110' }, - { text: '到期时间', value: 'validDate' }, + { text: '到期时间', value: 'validDate', width: '180' }, ]) const StatisticxAxis: Ref = ref([]) const StatisticData: Ref = ref([]) @@ -106,20 +109,14 @@ const yValue = res.data.map((item: planReturn) => Number(item.count)) StaffSStatisticData.value = [{ name: '人数', data: yValue }] }) - const param = { - account: username, - } - getTrainLogSStatistic(param).then((res) => { - TrainLogSList.value = [ - { name: `合格 ${res.data.qualified}--${(res.data.qualifiedCount / res.data.trainCount) * 100}%`, value: res.data.qualified }, - { name: `不合格 ${res.data.notQualified}-- ${((res.data.notQualified / res.data.trainCount) * 100)}%`, value: res.data.notQualified }, - ] - TrainLogTitle.value = res.data.trainCount - }) + // 返回值 interface CertificatReturn { lastValidDate: number } + const param = { + account: username, + } getCertificateStatistic(param).then((res) => { CertificateList.value = res.data CertificateObject.value = res.data.sort((nex: CertificatReturn, max: CertificatReturn) => { @@ -127,6 +124,26 @@ })[0] }) } + +function fetchMyTrainLog() { + const param = { + account: username, + } + getTrainLogSStatistic(param).then((res) => { + TrainLogSList.value = [ + { name: `合格 ${res.data.qualified}-${(res.data.qualifiedCount / res.data.trainCount) * 100}%`, value: res.data.qualified }, + { name: `不合格 ${res.data.notQualified}- ${((res.data.notQualified / res.data.trainCount) * 100)}%`, value: res.data.notQualified }, + ] + TrainLogTitle.value = res.data.trainCount + }).catch((_) => { + // 处理异常 + TrainLogSList.value = [ + { name: '合格 0 - 50%', value: 0 }, + { name: '不合格 0 - 50%', value: 0 }, + ] + TrainLogTitle.value = 0 + }) +} const getmeterageList = () => { const params = { fileNo: '', // 编号 @@ -143,218 +160,251 @@ meterageTableData.value = res.data.rows }) } -getmeterageList() -getStatisticList() + +function calcBlockSize() { + // 计算工作台区域高度 - 顶部-面包屑-边距 + const bodyHeight = document.body.clientHeight - 60 - 50 - 20 + blockHeight.value = bodyHeight > 610 ? (bodyHeight - 10) / 2 : 300 + blockWidth.value = (document.body.clientWidth - 180 - 20 - 20) / 3 + console.log(blockHeight.value, blockWidth.value - 20) +} +window.addEventListener('resize', () => { + calcBlockSize() +}) + +onMounted(() => { + calcBlockSize() + fetchMyTrainLog() // 获取我的培训考核 + getmeterageList() + getStatisticList() +}) - - - - - - - - - - - - - {{ item.text }} + + + + + + + + + + + + + + + + + + + {{ item.text }} + + + + + + + + + + + - - - - - - - - {{ item.name }} + + + + + + + + + + + + + + + + + + + + + {{ CertificateObject.lastValidDate }}天 + + + 最近到期时间 + {{ CertificateObject.validDate || '无' }} + - - - - - - - - - - - + - + + + + + + + - - - - {{ CertificateObject.lastValidDate }}天 - - - 最近到期时间 - {{ CertificateObject.validDate }} - - - - - - - - - - - - + + + + +