|
@@ -19,25 +19,25 @@
|
|
</div>
|
|
</div>
|
|
<div class="body">
|
|
<div class="body">
|
|
<div class="text">
|
|
<div class="text">
|
|
- 规格上限:{{ value ? JSON.parse(value).up : "-" }}
|
|
|
|
|
|
+ Xbar-UCL:{{ value ? JSON.parse(value).avgMax : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- 规格下限:{{ value ? JSON.parse(value).down : "-" }}
|
|
|
|
|
|
+ Xbar-MED:{{ value ? JSON.parse(value).avgMid : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- 计量单位:{{ value ? JSON.parse(value).unit : "-" }}
|
|
|
|
|
|
+ Xbar-LCL:{{ value ? JSON.parse(value).avgMin : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- Xbar-UCL:{{ showData.avgMax ? showData.avgMax : "-" }}
|
|
|
|
|
|
+ R-UCL:{{ value ? JSON.parse(value).rangeMax : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- Xbar-LCL:{{ showData.avgMin ? showData.avgMin : "0" }}
|
|
|
|
|
|
+ R-MED:{{ value ? JSON.parse(value).rangeMid : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- R-UCL:{{ showData.rangeMax ? showData.rangeMax : "-" }}
|
|
|
|
|
|
+ R-LCL:{{ value ? JSON.parse(value).rangeMin : "-" }}
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
<div class="text">
|
|
- R-LCL:{{ showData.rangeMin ? showData.rangeMin : "0" }}
|
|
|
|
|
|
+ 计量单位:{{ value ? JSON.parse(value).unit : "-" }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -53,8 +53,8 @@
|
|
<Search
|
|
<Search
|
|
:searchOptions="searchForm"
|
|
:searchOptions="searchForm"
|
|
ref="searchRef"
|
|
ref="searchRef"
|
|
- @dataList="getTableData"
|
|
|
|
- @resetList="reset"
|
|
|
|
|
|
+ @data-list="getTableData"
|
|
|
|
+ @reset-list="reset"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="btns">
|
|
<div class="btns">
|
|
@@ -161,7 +161,14 @@
|
|
><span>{{ row.batchNo }}</span>
|
|
><span>{{ row.batchNo }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column align="center" :label="title">
|
|
|
|
|
|
+ <el-table-column width="100" prop="accuracys" label="数据">
|
|
|
|
+ <template #default="{ row }">
|
|
|
|
+ <div v-for="(item, index) in row.accuracys" :key="index">
|
|
|
|
+ <span>数值{{ index }}:{{ item }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <!-- <el-table-column align="center" :label="title">
|
|
<el-table-column
|
|
<el-table-column
|
|
align="center"
|
|
align="center"
|
|
prop="accuracy1"
|
|
prop="accuracy1"
|
|
@@ -212,7 +219,8 @@
|
|
><span>{{ row.accuracy5 }}</span>
|
|
><span>{{ row.accuracy5 }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column> </el-table-column
|
|
</el-table-column> </el-table-column
|
|
- ><el-table-column
|
|
|
|
|
|
+ > -->
|
|
|
|
+ <el-table-column
|
|
align="center"
|
|
align="center"
|
|
prop="avg"
|
|
prop="avg"
|
|
label="平均值"
|
|
label="平均值"
|
|
@@ -530,14 +538,31 @@
|
|
value-format="YYYY-MM-DD"
|
|
value-format="YYYY-MM-DD"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="任务编号" prop="qualityTaskId">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="addData.qualityTaskId"
|
|
|
|
+ @change="
|
|
|
|
+ (value) => {
|
|
|
|
+ taskChange(value);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(item, index) in taskOption"
|
|
|
|
+ :key="index"
|
|
|
|
+ :label="item.taskCode"
|
|
|
|
+ :value="item.id"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="产品型号" prop="model">
|
|
<el-form-item label="产品型号" prop="model">
|
|
- <el-input v-model="addData.model" />
|
|
|
|
|
|
+ <el-input :disabled="true" v-model="addData.model" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="生产批号" prop="batchNo">
|
|
<el-form-item label="生产批号" prop="batchNo">
|
|
<el-input v-model="addData.batchNo" />
|
|
<el-input v-model="addData.batchNo" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item
|
|
<el-form-item
|
|
- v-for="(item, index) in addData.accuracy"
|
|
|
|
|
|
+ v-for="(item, index) in addData.accuracys"
|
|
:label="'数值' + (index + 1)"
|
|
:label="'数值' + (index + 1)"
|
|
:key="index"
|
|
:key="index"
|
|
:rules="[
|
|
:rules="[
|
|
@@ -551,7 +576,7 @@
|
|
:precision="2"
|
|
:precision="2"
|
|
:step="0.01"
|
|
:step="0.01"
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
- v-model="addData.accuracy[index]"
|
|
|
|
|
|
+ v-model="addData.accuracys[index]"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- <el-form-item label="平均值" prop="avg">
|
|
<!-- <el-form-item label="平均值" prop="avg">
|
|
@@ -593,14 +618,16 @@
|
|
|
|
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
- v-print="'#charts'"
|
|
|
|
|
|
+ v-print="'#print'"
|
|
style="margin-left: 10px; height: 25px"
|
|
style="margin-left: 10px; height: 25px"
|
|
>打 印</el-button
|
|
>打 印</el-button
|
|
>
|
|
>
|
|
</div>
|
|
</div>
|
|
<div class="info">
|
|
<div class="info">
|
|
- <div id="charts" :style="{ height: maxHeight / 2 + 'px' }"></div>
|
|
|
|
- <div id="charts1" :style="{ height: maxHeight / 2 + 'px' }"></div>
|
|
|
|
|
|
+ <div id="print">
|
|
|
|
+ <div id="charts" :style="{ height: maxHeight / 2 + 'px' }"></div>
|
|
|
|
+ <div id="charts1" :style="{ height: maxHeight / 2 + 'px' }"></div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
@@ -611,7 +638,13 @@
|
|
<script setup>
|
|
<script setup>
|
|
import * as echarts from "echarts";
|
|
import * as echarts from "echarts";
|
|
import { useDictionaryStore } from "@/store";
|
|
import { useDictionaryStore } from "@/store";
|
|
-import { getData, addDatas, deleteData, updateData } from "@/api/analysis";
|
|
|
|
|
|
+import {
|
|
|
|
+ getData,
|
|
|
|
+ addDatas,
|
|
|
|
+ deleteData,
|
|
|
|
+ updateData,
|
|
|
|
+ getTaskCode,
|
|
|
|
+} from "@/api/analysis";
|
|
import Search from "@/components/Search/index.vue";
|
|
import Search from "@/components/Search/index.vue";
|
|
const year = ref("0");
|
|
const year = ref("0");
|
|
const currentOption = reactive({
|
|
const currentOption = reactive({
|
|
@@ -622,6 +655,12 @@ const currentOption = reactive({
|
|
});
|
|
});
|
|
const lableValue = ref("");
|
|
const lableValue = ref("");
|
|
const searchRef = ref(null);
|
|
const searchRef = ref(null);
|
|
|
|
+const getTaskOption = async () => {
|
|
|
|
+ const { data } = await getTaskCode({
|
|
|
|
+ operationCode: JSON.parse(value.value).value,
|
|
|
|
+ });
|
|
|
|
+ taskOption.value = data;
|
|
|
|
+};
|
|
const getTableData = async () => {
|
|
const getTableData = async () => {
|
|
const { data, code, msg } = await getData({
|
|
const { data, code, msg } = await getData({
|
|
...searchRef.value.searchForm,
|
|
...searchRef.value.searchForm,
|
|
@@ -688,8 +727,8 @@ const setY1value = () => {
|
|
|
|
|
|
chartsOption1.value.series[0].data = Y1value.value;
|
|
chartsOption1.value.series[0].data = Y1value.value;
|
|
};
|
|
};
|
|
-const setX1array = () => {
|
|
|
|
- X1array.value = [];
|
|
|
|
|
|
+const setX1array = async () => {
|
|
|
|
+ X1array.value = await [];
|
|
tableData.value.forEach((item, index) => {
|
|
tableData.value.forEach((item, index) => {
|
|
X1array.value.push(index + 1);
|
|
X1array.value.push(index + 1);
|
|
});
|
|
});
|
|
@@ -722,6 +761,12 @@ const addItem = {
|
|
range: 0,
|
|
range: 0,
|
|
};
|
|
};
|
|
const rules = {
|
|
const rules = {
|
|
|
|
+ qualityTaskId: [
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: "change",
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
dateStr: [
|
|
dateStr: [
|
|
{
|
|
{
|
|
required: true,
|
|
required: true,
|
|
@@ -815,34 +860,39 @@ const rules = {
|
|
};
|
|
};
|
|
const resItem = {
|
|
const resItem = {
|
|
// abnormal: "",
|
|
// abnormal: "",
|
|
- accuracy1: 0,
|
|
|
|
- accuracy2: 0,
|
|
|
|
- accuracy3: 0,
|
|
|
|
- accuracy4: 0,
|
|
|
|
- accuracy5: 0,
|
|
|
|
analyseUser: "",
|
|
analyseUser: "",
|
|
- avg: 0,
|
|
|
|
batchNo: "",
|
|
batchNo: "",
|
|
checkDeviceNo: "",
|
|
checkDeviceNo: "",
|
|
checkUser: "",
|
|
checkUser: "",
|
|
dateStr: "",
|
|
dateStr: "",
|
|
measure: "",
|
|
measure: "",
|
|
model: "",
|
|
model: "",
|
|
- range: 0,
|
|
|
|
};
|
|
};
|
|
const addData = ref({
|
|
const addData = ref({
|
|
// abnormal: "",
|
|
// abnormal: "",
|
|
- accuracy: [0, 0, 0, 0],
|
|
|
|
analyseUser: "",
|
|
analyseUser: "",
|
|
- avg: 0,
|
|
|
|
batchNo: "",
|
|
batchNo: "",
|
|
checkDeviceNo: "",
|
|
checkDeviceNo: "",
|
|
checkUser: "",
|
|
checkUser: "",
|
|
dateStr: "",
|
|
dateStr: "",
|
|
measure: "",
|
|
measure: "",
|
|
model: "",
|
|
model: "",
|
|
- range: 0,
|
|
|
|
});
|
|
});
|
|
|
|
+const accuracysSum = ref(0);
|
|
|
|
+const taskChange = (value) => {
|
|
|
|
+ taskOption.value.forEach((item) => {
|
|
|
|
+ if (item.id == value) {
|
|
|
|
+ addData.value.model = item.prodtModel;
|
|
|
|
+ accuracysSum.value = Number(item.processCount);
|
|
|
|
+ addData.value.accuracys = [];
|
|
|
|
+ let array = [];
|
|
|
|
+ for (let i = 0; i < accuracysSum.value; i++) {
|
|
|
|
+ array.push(0);
|
|
|
|
+ }
|
|
|
|
+ addData.value.accuracys = array;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+};
|
|
const oldDataJSON = ref("");
|
|
const oldDataJSON = ref("");
|
|
const showData = ref({});
|
|
const showData = ref({});
|
|
const url = ref(import.meta.env.VITE_APP_BASE_API + "/api/v1/spc/import");
|
|
const url = ref(import.meta.env.VITE_APP_BASE_API + "/api/v1/spc/import");
|
|
@@ -851,29 +901,47 @@ const opOptions = ref([...dicts.spc_operation]);
|
|
const setChart1Info = () => {
|
|
const setChart1Info = () => {
|
|
// chartsOption1.value.title[0].text = `上限=${showData.value.avgMax ? showData.value.avgMax : "-"}`;
|
|
// chartsOption1.value.title[0].text = `上限=${showData.value.avgMax ? showData.value.avgMax : "-"}`;
|
|
// chartsOption1.value.title[0].text = `x̄=${showData.value.avgAvg ? showData.value.avgAvg : "-"}`;
|
|
// chartsOption1.value.title[0].text = `x̄=${showData.value.avgAvg ? showData.value.avgAvg : "-"}`;
|
|
- chartsOption1.value.series[0].markLine.data[0].yAxis = showData.value.avgMax;
|
|
|
|
- chartsOption1.value.series[0].markLine.data[0].label.formatter = ` 上限=${showData.value.avgMax ? showData.value.avgMax : "0"}`;
|
|
|
|
- chartsOption1.value.series[0].markLine.data[1].yAxis = showData.value.avgMin
|
|
|
|
- ? showData.value.avgMin
|
|
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[0].yAxis = JSON.parse(
|
|
|
|
+ value.value
|
|
|
|
+ ).avgMax;
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[0].label.formatter = ` 上限=${
|
|
|
|
+ JSON.parse(value.value).avgMax ? JSON.parse(value.value).avgMax : "0"
|
|
|
|
+ }`;
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[1].yAxis = JSON.parse(value.value)
|
|
|
|
+ .avgMin
|
|
|
|
+ ? JSON.parse(value.value).avgMin
|
|
: 0;
|
|
: 0;
|
|
- chartsOption1.value.series[0].markLine.data[1].label.formatter = ` 下限=${showData.value.avgMin ? showData.value.avgMin : "0"}`;
|
|
|
|
- chartsOption1.value.series[0].markLine.data[2].yAxis = showData.value.avgAvg;
|
|
|
|
- chartsOption1.value.series[0].markLine.data[2].label.formatter = `x̄=${showData.value.avgAvg}`;
|
|
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[1].label.formatter = ` 下限=${JSON.parse(value.value).avgMin ? JSON.parse(value.value).avgMin : "0"}`;
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[2].yAxis = JSON.parse(
|
|
|
|
+ value.value
|
|
|
|
+ ).avgMid;
|
|
|
|
+ chartsOption1.value.series[0].markLine.data[2].label.formatter = `x̄=${
|
|
|
|
+ JSON.parse(value.value).avgMid
|
|
|
|
+ }`;
|
|
// chartsOption1.value.title[2].text = `下限=${showData.value.avgMin ? showData.value.avgMin : "0"}`;
|
|
// chartsOption1.value.title[2].text = `下限=${showData.value.avgMin ? showData.value.avgMin : "0"}`;
|
|
};
|
|
};
|
|
const setChart2Info = () => {
|
|
const setChart2Info = () => {
|
|
// chartsOption2.value.title[0].text = `上限=${showData.value.rangeMax ? showData.value.rangeMax : "-"}`;
|
|
// chartsOption2.value.title[0].text = `上限=${showData.value.rangeMax ? showData.value.rangeMax : "-"}`;
|
|
// chartsOption2.value.title[0].text = `R=${showData.value.rangeAvg ? showData.value.rangeAvg : "-"}`;
|
|
// chartsOption2.value.title[0].text = `R=${showData.value.rangeAvg ? showData.value.rangeAvg : "-"}`;
|
|
- chartsOption2.value.series[0].markLine.data[0].yAxis =
|
|
|
|
- showData.value.rangeMax;
|
|
|
|
- chartsOption2.value.series[0].markLine.data[0].label.formatter = ` 上限=${showData.value.rangeMax ? showData.value.rangeMax : "0"}`;
|
|
|
|
- chartsOption2.value.series[0].markLine.data[1].yAxis = showData.value.rangeMin
|
|
|
|
- ? showData.value.rangeMin
|
|
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[0].yAxis = JSON.parse(
|
|
|
|
+ value.value
|
|
|
|
+ ).rangeMax;
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[0].label.formatter = ` 上限=${
|
|
|
|
+ JSON.parse(value.value).rangeMax ? JSON.parse(value.value).rangeMax : "0"
|
|
|
|
+ }`;
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[1].yAxis = JSON.parse(value.value)
|
|
|
|
+ .rangeMin
|
|
|
|
+ ? JSON.parse(value.value).rangeMin
|
|
: 0;
|
|
: 0;
|
|
- chartsOption2.value.series[0].markLine.data[1].label.formatter = ` 下限=${showData.value.rangeMin ? showData.value.rangeMin : "0"}`;
|
|
|
|
- chartsOption2.value.series[0].markLine.data[2].yAxis =
|
|
|
|
- showData.value.rangeAvg;
|
|
|
|
- chartsOption2.value.series[0].markLine.data[2].label.formatter = `x̄=${showData.value.rangeAvg}`;
|
|
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[1].label.formatter = ` 下限=${
|
|
|
|
+ JSON.parse(value.value).rangeMin ? JSON.parse(value.value).rangeMin : "0"
|
|
|
|
+ }`;
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[2].yAxis = JSON.parse(
|
|
|
|
+ value.value
|
|
|
|
+ ).rangeMid;
|
|
|
|
+ chartsOption2.value.series[0].markLine.data[2].label.formatter = `x̄=${
|
|
|
|
+ JSON.parse(value.value).rangeMid
|
|
|
|
+ }`;
|
|
// chartsOption2.value.title[2].text = `下限=${showData.value.rangeMin ? showData.value.rangeMin : "0"}`;
|
|
// chartsOption2.value.title[2].text = `下限=${showData.value.rangeMin ? showData.value.rangeMin : "0"}`;
|
|
};
|
|
};
|
|
const setChart1 = () => {
|
|
const setChart1 = () => {
|
|
@@ -909,13 +977,14 @@ const onSuccess = (res) => {
|
|
ElMessage.success(msg);
|
|
ElMessage.success(msg);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
-
|
|
|
|
|
|
+const taskOption = ref([]);
|
|
const value = ref(opOptions.value[0].remark);
|
|
const value = ref(opOptions.value[0].remark);
|
|
const title = ref("调阻精度");
|
|
const title = ref("调阻精度");
|
|
|
|
|
|
const showLable = ref("调阻");
|
|
const showLable = ref("调阻");
|
|
const changeSelect = () => {
|
|
const changeSelect = () => {
|
|
- setTimeout(() => {
|
|
|
|
|
|
+ setTimeout(async () => {
|
|
|
|
+ getTaskOption();
|
|
showLable.value = selectRef.value.currentPlaceholder;
|
|
showLable.value = selectRef.value.currentPlaceholder;
|
|
opOptions.value.forEach((item) => {
|
|
opOptions.value.forEach((item) => {
|
|
if (item.dictLabel == showLable.value) {
|
|
if (item.dictLabel == showLable.value) {
|
|
@@ -936,8 +1005,8 @@ const changeSelect = () => {
|
|
title.value = "调阻精度";
|
|
title.value = "调阻精度";
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- getTableData();
|
|
|
|
- chartsOption1.value.title[3].text = `${title.value}的Xbar-R控制图`;
|
|
|
|
|
|
+ await getTableData();
|
|
|
|
+ chartsOption1.value.title[0].text = `${title.value}的Xbar-R控制图`;
|
|
// tableData.value.forEach((item) => {
|
|
// tableData.value.forEach((item) => {
|
|
// item.accuracy1 = 0;
|
|
// item.accuracy1 = 0;
|
|
// item.accuracy2 = 0;
|
|
// item.accuracy2 = 0;
|
|
@@ -1051,15 +1120,15 @@ const chartsOption1 = ref({
|
|
symbol: "circle",
|
|
symbol: "circle",
|
|
itemStyle: {
|
|
itemStyle: {
|
|
color: (params) => {
|
|
color: (params) => {
|
|
- const dataIndex = params.dataIndex;
|
|
|
|
- if (dataIndex == 0) {
|
|
|
|
|
|
+ const avg = JSON.parse(value.value);
|
|
|
|
+ const paramValue = Number(params.value);
|
|
|
|
+ if (
|
|
|
|
+ paramValue <= Number(avg.avgMax) &&
|
|
|
|
+ paramValue >= Number(avg.avgMin)
|
|
|
|
+ ) {
|
|
return "rgb(26, 122, 240)";
|
|
return "rgb(26, 122, 240)";
|
|
} else {
|
|
} else {
|
|
- return tableData.value[dataIndex - 1]
|
|
|
|
- ? tableData.value[dataIndex - 1].abnormal != "否"
|
|
|
|
- ? "red"
|
|
|
|
- : "rgb(26, 122, 240)"
|
|
|
|
- : "rgb(26, 122, 240)";
|
|
|
|
|
|
+ return "red";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
@@ -1071,7 +1140,7 @@ const chartsOption1 = ref({
|
|
yAxis: 0,
|
|
yAxis: 0,
|
|
label: {
|
|
label: {
|
|
position: "end",
|
|
position: "end",
|
|
- formatter: `上限=${showData.value.avgMax ? showData.value.avgMax : "-"}`,
|
|
|
|
|
|
+ formatter: `上限=${JSON.parse(value.value).avgMax ? JSON.parse(value.value).avgMax : "-"}`,
|
|
color: "#333",
|
|
color: "#333",
|
|
},
|
|
},
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
@@ -1081,7 +1150,7 @@ const chartsOption1 = ref({
|
|
yAxis: 0,
|
|
yAxis: 0,
|
|
label: {
|
|
label: {
|
|
position: "end",
|
|
position: "end",
|
|
- formatter: `下限=${showData.value.avgMin ? showData.value.avgMin : "-"}`,
|
|
|
|
|
|
+ formatter: `下限=${JSON.parse(value.value).avgMin ? JSON.parse(value.value).avgMin : "-"}`,
|
|
color: "#333",
|
|
color: "#333",
|
|
},
|
|
},
|
|
lineStyle: {
|
|
lineStyle: {
|
|
@@ -1176,15 +1245,15 @@ const chartsOption2 = ref({
|
|
symbol: "circle",
|
|
symbol: "circle",
|
|
itemStyle: {
|
|
itemStyle: {
|
|
color: (params) => {
|
|
color: (params) => {
|
|
- const dataIndex = params.dataIndex;
|
|
|
|
- if (dataIndex == 0) {
|
|
|
|
|
|
+ const range = JSON.parse(value.value);
|
|
|
|
+ const paramValue = Number(params.value);
|
|
|
|
+ if (
|
|
|
|
+ paramValue <= Number(range.rangeMax) &&
|
|
|
|
+ paramValue >= Number(range.rangeMin)
|
|
|
|
+ ) {
|
|
return "rgb(26, 122, 240)";
|
|
return "rgb(26, 122, 240)";
|
|
} else {
|
|
} else {
|
|
- return tableData.value[dataIndex - 1]
|
|
|
|
- ? tableData.value[dataIndex - 1].abnormal != "否"
|
|
|
|
- ? "red"
|
|
|
|
- : "rgb(26, 122, 240)"
|
|
|
|
- : "rgb(26, 122, 240)";
|
|
|
|
|
|
+ return "red";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
@@ -1196,7 +1265,7 @@ const chartsOption2 = ref({
|
|
yAxis: 0,
|
|
yAxis: 0,
|
|
label: {
|
|
label: {
|
|
position: "end",
|
|
position: "end",
|
|
- formatter: `上限=${showData.value.rangeMax ? showData.value.rangeMax : "-"}`,
|
|
|
|
|
|
+ formatter: `上限=${JSON.parse(value.value).rangeMax ? JSON.parse(value.value).rangeMax : "-"}`,
|
|
color: "#333",
|
|
color: "#333",
|
|
},
|
|
},
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
@@ -1206,7 +1275,7 @@ const chartsOption2 = ref({
|
|
yAxis: 0,
|
|
yAxis: 0,
|
|
label: {
|
|
label: {
|
|
position: "end",
|
|
position: "end",
|
|
- formatter: `下限=${showData.value.rangeMin ? showData.value.rangeMin : "-"}`,
|
|
|
|
|
|
+ formatter: `下限=${JSON.parse(value.value).rangeMin ? JSON.parse(value.value).rangeMin : "-"}`,
|
|
color: "#333",
|
|
color: "#333",
|
|
},
|
|
},
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
lineStyle: { type: "solid", color: "#333", width: 2 },
|
|
@@ -1324,6 +1393,7 @@ const setView = () => {
|
|
charts2.value.setOption(chartsOption2.value, true);
|
|
charts2.value.setOption(chartsOption2.value, true);
|
|
};
|
|
};
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
|
+ getTaskOption();
|
|
setHeight();
|
|
setHeight();
|
|
year.value = new Date().getFullYear() + "";
|
|
year.value = new Date().getFullYear() + "";
|
|
opOptions.value.forEach((item) => {
|
|
opOptions.value.forEach((item) => {
|
|
@@ -1346,6 +1416,11 @@ onBeforeUnmount(() => {
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+@media print {
|
|
|
|
+ #print {
|
|
|
|
+ margin-left: -18%;
|
|
|
|
+ }
|
|
|
|
+}
|
|
.formStyle {
|
|
.formStyle {
|
|
width: 400px;
|
|
width: 400px;
|
|
margin: 20px auto;
|
|
margin: 20px auto;
|