From a2fe40a6232559f2bd2d5c818fc206395072b403 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期三, 23 八月 2023 18:03:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/experiment/passRateStatistics/index.vue | 399 ++++++++++++++++++++++---------------------------------- 1 files changed, 156 insertions(+), 243 deletions(-) diff --git a/src/views/experiment/passRateStatistics/index.vue b/src/views/experiment/passRateStatistics/index.vue index 36b874b..bf2c28a 100644 --- a/src/views/experiment/passRateStatistics/index.vue +++ b/src/views/experiment/passRateStatistics/index.vue @@ -1,66 +1,36 @@ <template> <div class="content-main"> <div class="top-bar"> - <el-form - ref="form" - :inline="true" - :rules="rules" - :model="searchData" - label-position="top" - > + <el-form ref="form" :inline="true" :rules="rules" :model="searchData" label-position="top"> <el-form-item label="妫�娴嬫棩鏈�:" class="sermargin" prop="date"> - <el-date-picker - v-model="searchData.date" - type="daterange" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - > + <el-date-picker v-model="searchData.date" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡"> </el-date-picker> </el-form-item> <el-form-item label="妫�楠岀被鍨�:" class="sermargin" prop="type"> <el-select v-model="searchData.type" placeholder="鍏ㄩ儴"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="渚涘簲鍟�:"> <el-select v-model="searchData.supplier" placeholder="鍏ㄩ儴"> - <el-option - v-for="item in supplier" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-option v-for="item in supplier" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> - <el-form-item style="margin-left: 40px" label="鏍峰搧:"> + <el-form-item style="margin-left: 40px;" label="鏍峰搧:"> <el-select v-model="searchData.code" filterable placeholder="璇烽�夋嫨"> - <el-option - v-for="item in sampleOptions" - :key="item.value" - :label="item.label" - :value="item.value" - > + <el-option v-for="item in sampleOptions" :key="item.value" :label="item.label" :value="item.value"> <span style="float: left">{{ item.label }}</span> - <span style="float: right; color: #8492a6; font-size: 13px">{{ - item.value - }}</span> + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span> </el-option> </el-select> </el-form-item> <div class="rightBtn"> <el-form-item> <el-button type="primary" plain size="mini">娓呯┖</el-button> - <el-button type="primary" @click="search" size="mini" - >鏌ヨ</el-button - > + <el-button type="primary" @click="search" size="mini">鏌ヨ</el-button> </el-form-item> </div> </el-form> @@ -68,74 +38,31 @@ <div class="top-bar-copy"></div> <div class="chart-content"> <div class="qualified-wrapper"> - <div style="margin-left: 20px; padding: 20px 0px; font-size: 18px"> - 妫�娴嬫牱鍝佸悎鏍肩巼缁熻 - </div> + <div style="margin-left: 20px;padding:20px 0px;font-size:18px">妫�娴嬫牱鍝佸悎鏍肩巼缁熻</div> <div :hidden="testSample" class="qualified" ref="qualified"></div> - <div - :hidden="!testSample" - style=" - height: 100%; - text-align: center; - color: #999696df; - margin-top: 100px; - " - > - 鏆傛棤鏁版嵁 + <div :hidden="!testSample" style="height: 100%;text-align: center; color: #999696df; margin-top: 100px;">鏆傛棤鏁版嵁 </div> </div> <div class="unqualified"> <div class="firstBox-wrapper"> - <div style="margin-left: 20px; padding: 20px 0px; font-size: 18px"> - 渚涘簲鍟嗗悎鏍肩巼缁熻 - </div> + <div style="margin-left: 20px;padding:20px 0px;font-size:18px">渚涘簲鍟嗗悎鏍肩巼缁熻</div> <div> - <div - :hidden="supplierData" - class="firstBox" - ref="unqualified_provider" - ></div> - <div - :hidden="!supplierData" - style=" - height: 100%; - text-align: center; - color: #999696df; - margin-top: 100px; - " - > - 鏆傛棤鏁版嵁 - </div> + <div :hidden="supplierData" class="firstBox" ref="unqualified_provider"></div> + <div :hidden="!supplierData" style="height: 100%;text-align: center; color: #999696df; margin-top: 100px;"> + 鏆傛棤鏁版嵁</div> </div> </div> <div class="secondBox-wrapper"> <div class="secondBox_header"> - <div style="font-size: 18px">涓嶅悎鏍奸」鐩粺璁�</div> + <div style="font-size:18px">涓嶅悎鏍奸」鐩粺璁�</div> <el-radio-group v-model="type"> - <el-radio-button - v-for="item in radiooptions" - :key="item.value" - :label="item.value" - >{{ item.label }}</el-radio-button - > + <el-radio-button v-for="item in radiooptions" :key="item.value" :label="item.value">{{ item.label + }}</el-radio-button> </el-radio-group> </div> - <div style="width: 100%; height: 100"> - <div - :hidden="projectData" - class="secondBox" - ref="unqualified_project" - ></div> - <div - :hidden="!projectData" - style=" - height: 100%; - text-align: center; - color: #999696df; - margin-top: 100px; - " - > - 鏆傛棤鏁版嵁 + <div style="width: 100%;height: 100%;"> + <div :hidden="projectData" class="secondBox" ref="unqualified_project"></div> + <div :hidden="!projectData" style="height: 100%;text-align: center; color: #999696df; margin-top: 100px;">鏆傛棤鏁版嵁 </div> </div> </div> @@ -150,27 +77,21 @@ <script> // 娣诲姞婊氬姩鐩戝惉浜嬩欢 -window.addEventListener("scroll", function () { - var topBar = document.querySelector(".top-bar"); +window.addEventListener('scroll', function () { + var topBar = document.querySelector('.top-bar'); var scrollTop = window.pageYOffset || document.documentElement.scrollTop; if (scrollTop > 0) { - topBar.classList.add("fixed"); + topBar.classList.add('fixed'); } else { - topBar.classList.remove("fixed"); + topBar.classList.remove('fixed'); } -}); +}) -import * as echarts from "echarts"; -import { - getSupplierList, - getTestSampleStatistics, - getSupplierNoPassStatistics, - getNoPassProjectStatistics, - getSampleOptions, -} from "@/api/experiment/passRateStatistics"; -import { dateFormat } from "../../../utils/dateUtil"; -import MyWorker from "comlink-loader!../../../worker/test"; +import * as echarts from 'echarts' +import { getSupplierList, getTestSampleStatistics, getSupplierNoPassStatistics, getNoPassProjectStatistics, getSampleOptions } from '@/api/experiment/passRateStatistics'; +import { dateFormat } from '../../../utils/dateUtil' +import MyWorker from 'comlink-loader!../../../worker/test'; export default { data() { return { @@ -181,35 +102,35 @@ type: null, supplier: null, sample: null, - code: null, + code: null }, options: [ { - label: "鍏ㄩ儴", - value: 3, + label: '鍏ㄩ儴', + value: 3 }, { - label: "鍘熸潗鏂�", - value: 0, + label: '鍘熸潗鏂�', + value: 0 }, { - label: "鎴愬搧", - value: 1, + label: '鎴愬搧', + value: 1 }, { - label: "濮旀墭鍝�", - value: 2, - }, + label: '濮旀墭鍝�', + value: 2 + } ], radiooptions: [ { - label: "鐜舰楗煎浘", - value: 0, + label: '鐜舰楗煎浘', + value: 0 }, { - label: "甯曠疮鎵樺浘", - value: 1, - }, + label: '甯曠疮鎵樺浘', + value: 1 + } ], type: 0, rules: { @@ -224,100 +145,100 @@ testSample: false, m1: null, m2: null, - m3: null, - }; + m3: null + } }, async mounted() { - await this.start(); - this.tableStart(); + await this.start() + this.tableStart() }, methods: { - testWork() { + testWork(){ const inst = new MyWorker(); - inst.test(); + inst.test() for (let index = 0; index < 100; index++) { - console.log("涓荤嚎绋�" + index); + console.log("涓荤嚎绋�"+index); } }, async search() { - this.testSampleStatistics = null; - this.supplierNoPassStatistics = null; - this.projectStatistics = null; - this.supplier = []; - this.sampleOptions = []; - await this.start(); - this.tableStart(); + this.testSampleStatistics = null + this.supplierNoPassStatistics = null + this.projectStatistics = null + this.supplier = [] + this.sampleOptions = [] + await this.start() + this.tableStart() }, dateHandle() { - let data = JSON.parse(JSON.stringify(this.searchData)); + let data = JSON.parse(JSON.stringify(this.searchData)) if (this.searchData.date.length != 0 && this.searchData.date != []) { - data.beginDate = dateFormat(this.searchData.date[0]); - data.endDate = dateFormat(this.searchData.date[1]); + data.beginDate = dateFormat(this.searchData.date[0]) + data.endDate = dateFormat(this.searchData.date[1]) } - if (data.supplier == "鍏ㄩ儴") { - data.supplier = null; + if (data.supplier == '鍏ㄩ儴') { + data.supplier = null } if (data.type === 3) { - data.type = null; + data.type = null } if (this.sampleOptions.length > 0 && this.sampleOptions != []) { - let labelSam = this.sampleOptions.filter((item) => { - return item.value == data.code; - })[0]; - data.sample = labelSam.label; + let labelSam = this.sampleOptions.filter(item => { + return item.value == data.code + })[0] + data.sample = labelSam.label } - if (data.code == "鍏ㄩ儴") { - data.code = null; - data.sample = null; + if (data.code == '鍏ㄩ儴') { + data.code = null + data.sample = null } - data.date = null; - return data; + data.date = null + return data }, async getSupplierList() { - let res = await getSupplierList(); - this.supplier.push({ label: "鍏ㄩ儴", value: "鍏ㄩ儴" }); - res.data.forEach((item) => { - this.supplier.push({ label: item.supplier, value: item.supplier }); - }); + let res = await getSupplierList() + this.supplier.push({ label: '鍏ㄩ儴', value: '鍏ㄩ儴' }) + res.data.forEach(item => { + this.supplier.push({ label: item.supplier, value: item.supplier }) + }) }, async getTestSampleStatistics() { - let param = this.dateHandle(); - let res = await getTestSampleStatistics(param); - this.testSample = !res.data.noData; - this.testSampleStatistics = res.data; + let param = this.dateHandle() + let res = await getTestSampleStatistics(param) + this.testSample = !res.data.noData + this.testSampleStatistics = res.data }, async getSupplierNoPassStatistics() { - let param = this.dateHandle(); - let res = await getSupplierNoPassStatistics(param); - this.supplierData = !res.data.noData; - this.supplierNoPassStatistics = res.data; + let param = this.dateHandle() + let res = await getSupplierNoPassStatistics(param) + this.supplierData = !res.data.noData + this.supplierNoPassStatistics = res.data }, async getNoPassProjectStatistics() { - let param = this.dateHandle(); - let res = await getNoPassProjectStatistics(param); - this.projectData = !res.data.noData; - this.projectStatistics = res.data; + let param = this.dateHandle() + let res = await getNoPassProjectStatistics(param) + this.projectData = !res.data.noData + this.projectStatistics = res.data }, async start() { - await this.getTestSampleStatistics(); - await this.getSupplierNoPassStatistics(); - await this.getNoPassProjectStatistics(); - await this.getSupplierList(); - await this.getSampleOptions(); + await this.getTestSampleStatistics() + await this.getSupplierNoPassStatistics() + await this.getNoPassProjectStatistics() + await this.getSupplierList() + await this.getSampleOptions() }, async getSampleOptions() { - let res = await getSampleOptions(); + let res = await getSampleOptions() this.sampleOptions.push({ - label: "鍏ㄩ儴", - value: "鍏ㄩ儴", - }); - res.data.forEach((item) => { + label: '鍏ㄩ儴', + value: '鍏ㄩ儴' + }) + res.data.forEach(item => { let data = { label: item.name, - value: item.code, - }; - this.sampleOptions.push(data); - }); + value: item.code + } + this.sampleOptions.push(data) + }) }, tableStart() { const chartDom_qualified = this.$refs.qualified; @@ -326,116 +247,108 @@ const myChart1 = echarts.init(chartDom_qualified); const myChart2 = echarts.init(chartDom_unqualified_provider, null, { - height: 300, + height: 300 }); const myChart3 = echarts.init(chartDom_unqualified_project, null, { - height: 268, + height: 268 }); - window.addEventListener("resize", function () { - myChart1.resize(); - myChart2.resize(); - myChart3.resize(); - }); - this.m1 = myChart1; - this.m2 = myChart2; - this.m3 = myChart3; + window.addEventListener("resize",function(){ + myChart1.resize() + myChart2.resize() + myChart3.resize() + }) + this.m1 = myChart1 + this.m2 = myChart2 + this.m3 = myChart3 /** * 妫�娴嬪悎鏍肩巼缁熻 */ const option_qualified = { tooltip: { - trigger: "axis", - axisPointer: { - // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥 - type: "shadow", // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' - }, + trigger: 'axis', + axisPointer: { // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥 + type: 'shadow' // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' + } }, legend: { - data: ["鍚堟牸", "涓嶅悎鏍�"], + data: ['鍚堟牸', '涓嶅悎鏍�'] }, xAxis: [ { - type: "category", - data: this.testSampleStatistics.xAxis, - }, + type: 'category', + data: this.testSampleStatistics.xAxis + } ], yAxis: [ { - type: "value", + type: 'value', axisLabel: { - formatter: "{value}", - }, - }, + formatter: '{value}' + } + } ], - series: this.testSampleStatistics.series, + series: this.testSampleStatistics.series }; /** * 渚涘簲鍟� */ const option_unqualified1 = { tooltip: { - trigger: "axis", - axisPointer: { - // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥 - type: "shadow", // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' + trigger: 'axis', + axisPointer: { // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥 + type: 'shadow' // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' }, formatter: function (params) { - let tooltip = params[0].name + "<br/>"; + let tooltip = params[0].name + '<br/>'; params.forEach(function (item) { - tooltip += - item.marker + - " " + - item.seriesName + - ": " + - item.value.toFixed(2) + - "%<br/>"; // 灏嗘暟鎹繚鐣欎袱浣嶅皬鏁板苟杞负鐧惧垎姣斿舰寮� + tooltip += item.marker + ' ' + item.seriesName + ': ' + item.value.toFixed(2) + '%<br/>'; // 灏嗘暟鎹繚鐣欎袱浣嶅皬鏁板苟杞负鐧惧垎姣斿舰寮� }); return tooltip; - }, + } }, legend: { - data: ["鍚堟牸鏁伴噺", "涓嶅悎鏍兼暟閲�"], + data: ['鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�'] }, xAxis: { - data: this.supplierNoPassStatistics.xAxis, + data: this.supplierNoPassStatistics.xAxis }, yAxis: [ { - type: "value", + type: 'value', axisLabel: { - formatter: "{value}%", - }, - }, + formatter: '{value}%' + } + } ], - series: this.supplierNoPassStatistics.series, + series: this.supplierNoPassStatistics.series }; /** * 涓嶅悎鏍奸」鐩� */ const option_unqualified2 = { legend: { - orient: "vertical", - x: "left", - data: this.projectStatistics.legend, + orient: 'vertical', + x: 'left', + data: this.projectStatistics.legend }, title: { - text: "", - left: "center", - top: "center", + text: '', + left: 'center', + top: 'center' }, series: [ { - type: "pie", + type: 'pie', data: this.projectStatistics.series, - radius: ["40%", "70%"], + radius: ['40%', '70%'], label: { show: true, - formatter: "{b}: {c}%", + formatter: '{b}: {c}%' }, - }, - ], - }; + } + ] + } myChart1.setOption(option_qualified); myChart2.setOption(option_unqualified1); @@ -445,9 +358,9 @@ if (this.type === 1) { myChart3.setOption(option_unqualified2); } - }, - }, -}; + } + } +} </script> <style lang="scss" scoped> -- Gitblit v1.9.3