|
@@ -162,11 +162,21 @@
|
|
><span>{{ row.model }}</span>
|
|
><span>{{ row.model }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="code" label="产品编号">
|
|
|
|
+ <template #default="{ row }"
|
|
|
|
+ ><span>{{ row.code }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column align="center" prop="batchNo" label="生产批号">
|
|
<el-table-column align="center" prop="batchNo" label="生产批号">
|
|
<template #default="{ row }"
|
|
<template #default="{ row }"
|
|
><span>{{ row.batchNo }}</span>
|
|
><span>{{ row.batchNo }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="source" label="数据来源">
|
|
|
|
+ <template #default="{ row }"
|
|
|
|
+ ><span>{{ row.source }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
align="center"
|
|
align="center"
|
|
prop="accuracys"
|
|
prop="accuracys"
|
|
@@ -255,13 +265,24 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
align="center"
|
|
align="center"
|
|
- width="260"
|
|
|
|
|
|
+ width="300"
|
|
prop=""
|
|
prop=""
|
|
label="操作"
|
|
label="操作"
|
|
id="opear"
|
|
id="opear"
|
|
>
|
|
>
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
<el-button
|
|
<el-button
|
|
|
|
+ v-if="row.source === '自动'"
|
|
|
|
+ :type="loadingRows[row.id] ? 'info' : 'primary'"
|
|
|
|
+ size="small"
|
|
|
|
+ :loading="loadingRows[row.id]"
|
|
|
|
+ @click="dataAcquisition(row)"
|
|
|
|
+ :disabled="loadingRows[row.id]"
|
|
|
|
+ style="height: 25px"
|
|
|
|
+ >
|
|
|
|
+ {{ loadingRows[row.id] ? "数据采集中..." : "采集数据" }}
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-button
|
|
type="primary"
|
|
type="primary"
|
|
class="btn"
|
|
class="btn"
|
|
@click="computeCPK(row.id)"
|
|
@click="computeCPK(row.id)"
|
|
@@ -521,227 +542,6 @@
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="info" v-if="addStatus">
|
|
<div class="info" v-if="addStatus">
|
|
- <!-- <el-table
|
|
|
|
- :data="addData"
|
|
|
|
- border
|
|
|
|
- :style="{ height: 120 + 'px', width: maxWidth + 'px' }"
|
|
|
|
- :show-overflow-tooltip="true"
|
|
|
|
- >
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- width="60"
|
|
|
|
- prop="dateStr"
|
|
|
|
- label="日期"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- width="140"
|
|
|
|
- prop="model"
|
|
|
|
- label="产品型号"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- width="140"
|
|
|
|
- prop="batchNo"
|
|
|
|
- label="生产批号"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column align="center" :label="showLable + '精度'">
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="accuracy1"
|
|
|
|
- width="180"
|
|
|
|
- label="精度1"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="accuracy2"
|
|
|
|
- width="180"
|
|
|
|
- label="精度2"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy2"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="accuracy3"
|
|
|
|
- width="180"
|
|
|
|
- label="精度3"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy3"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="accuracy4"
|
|
|
|
- width="180"
|
|
|
|
- label="精度4"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy4"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="accuracy5"
|
|
|
|
- width="180"
|
|
|
|
- label="精度5"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy5"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column> </el-table-column
|
|
|
|
- ><el-table-column align="center" prop="avg" label="平均值">
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template> </el-table-column
|
|
|
|
- ><el-table-column align="center" prop="range" label="极差">
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template> </el-table-column
|
|
|
|
- ><el-table-column align="center" prop="checkUser" label="检测人">
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template> </el-table-column
|
|
|
|
- ><el-table-column
|
|
|
|
- align="center"
|
|
|
|
- prop="checkDeviceNo"
|
|
|
|
- label="检查设备编号"
|
|
|
|
- >
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column align="center" prop="abnormal" label="是否异常">
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column align="center" prop="analyseUser" label="分析人">
|
|
|
|
- <template #default="{ row }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
-
|
|
|
|
- v-model="row.accuracy1"
|
|
|
|
- :precision="2"
|
|
|
|
- :step="0.01"
|
|
|
|
- width="60"
|
|
|
|
- />
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column align="center" prop="measure" label="处置措施" />
|
|
|
|
- <template #empty>
|
|
|
|
- <div>
|
|
|
|
- <span style="color: green; font-size: 16px"
|
|
|
|
- >请先导入文件</span
|
|
|
|
- >
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table> -->
|
|
|
|
<el-scrollbar :style="{ height: Height - 80 + 'px' }">
|
|
<el-scrollbar :style="{ height: Height - 80 + 'px' }">
|
|
<el-form
|
|
<el-form
|
|
ref="ruleFormRef"
|
|
ref="ruleFormRef"
|
|
@@ -774,13 +574,19 @@
|
|
v-for="(item, index) in taskOption"
|
|
v-for="(item, index) in taskOption"
|
|
:key="index"
|
|
:key="index"
|
|
:label="item.taskCode"
|
|
:label="item.taskCode"
|
|
- :value="item.id"
|
|
|
|
|
|
+ :value="Number(item.id)"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="产品型号" prop="model">
|
|
<el-form-item label="产品型号" prop="model">
|
|
<el-input :disabled="true" v-model="addData.model" />
|
|
<el-input :disabled="true" v-model="addData.model" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="产品编号" prop="code">
|
|
|
|
+ <el-input :disabled="true" v-model="addData.code" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="数据来源" prop="source">
|
|
|
|
+ <el-input :disabled="true" v-model="addData.source" />
|
|
|
|
+ </el-form-item>
|
|
<!-- <el-form-item label="产品型号" prop="model">
|
|
<!-- <el-form-item label="产品型号" prop="model">
|
|
<!– <el-select v-model="addData.model">
|
|
<!– <el-select v-model="addData.model">
|
|
<el-option
|
|
<el-option
|
|
@@ -904,11 +710,35 @@ import {
|
|
updateData,
|
|
updateData,
|
|
getTaskCode,
|
|
getTaskCode,
|
|
cpkCompute,
|
|
cpkCompute,
|
|
|
|
+ collectData,
|
|
} from "@/api/analysis";
|
|
} from "@/api/analysis";
|
|
import Search from "@/components/Search/index.vue";
|
|
import Search from "@/components/Search/index.vue";
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
|
|
|
-// 模拟后台接口
|
|
|
|
|
|
+// 在你的组件 setup 中
|
|
|
|
+const loadingRows = ref({});
|
|
|
|
+
|
|
|
|
+const dataAcquisition = async (row) => {
|
|
|
|
+ loadingRows.value = { ...loadingRows.value, [row.id]: true };
|
|
|
|
+ try {
|
|
|
|
+ // 这里替换为你的实际请求
|
|
|
|
+ const { code } = await collectData({
|
|
|
|
+ qualitySpcRecordId: row.id,
|
|
|
|
+ model: row.model,
|
|
|
|
+ batchNo: row.batchNo,
|
|
|
|
+ operation: lableValue.value,
|
|
|
|
+ });
|
|
|
|
+ if (200 == code) {
|
|
|
|
+ ElMessage.success("数据采集成功!");
|
|
|
|
+ getTableData();
|
|
|
|
+ }
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error("数据采集失败:", error);
|
|
|
|
+ // 可以在这里添加错误处理,比如显示错误消息
|
|
|
|
+ } finally {
|
|
|
|
+ loadingRows.value = { ...loadingRows.value, [row.id]: false };
|
|
|
|
+ }
|
|
|
|
+};
|
|
const cpkApi = async (id) => {
|
|
const cpkApi = async (id) => {
|
|
const { data } = await cpkCompute({
|
|
const { data } = await cpkCompute({
|
|
spcRecordId: id,
|
|
spcRecordId: id,
|
|
@@ -971,6 +801,8 @@ const taskChange = (value) => {
|
|
taskOption.value.forEach((item) => {
|
|
taskOption.value.forEach((item) => {
|
|
if (item.id == value) {
|
|
if (item.id == value) {
|
|
addData.value.model = item.prodtModel;
|
|
addData.value.model = item.prodtModel;
|
|
|
|
+ addData.value.code = item.prodtCode;
|
|
|
|
+ addData.value.source = item.source;
|
|
if (item.source === "手动") {
|
|
if (item.source === "手动") {
|
|
accuracysSum.value = Number(item.processCount);
|
|
accuracysSum.value = Number(item.processCount);
|
|
addData.value.accuracys = [];
|
|
addData.value.accuracys = [];
|
|
@@ -1286,7 +1118,8 @@ const setChart2 = () => {
|
|
//修改
|
|
//修改
|
|
const updataItem = (index) => {
|
|
const updataItem = (index) => {
|
|
editStatus.value = true;
|
|
editStatus.value = true;
|
|
- addData.value = tableData.value[index];
|
|
|
|
|
|
+ const data = JSON.parse(JSON.stringify(tableData.value[index]));
|
|
|
|
+ addData.value = data;
|
|
addStatus.value = true;
|
|
addStatus.value = true;
|
|
};
|
|
};
|
|
//导入按钮
|
|
//导入按钮
|
|
@@ -1485,7 +1318,6 @@ const chartsOption1 = ref({
|
|
type: "solid",
|
|
type: "solid",
|
|
color: "#333",
|
|
color: "#333",
|
|
width: 2,
|
|
width: 2,
|
|
- type: "dashed",
|
|
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
],
|
|
@@ -1593,7 +1425,6 @@ const chartsOption2 = ref({
|
|
type: "solid",
|
|
type: "solid",
|
|
color: "#333",
|
|
color: "#333",
|
|
width: 2,
|
|
width: 2,
|
|
- type: "dashed",
|
|
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
],
|
|
@@ -1654,13 +1485,19 @@ const addSubmit = async () => {
|
|
});
|
|
});
|
|
};
|
|
};
|
|
const deleteSubmit = async (id) => {
|
|
const deleteSubmit = async (id) => {
|
|
- const { data, code } = await deleteData({
|
|
|
|
- id,
|
|
|
|
|
|
+ ElMessageBox.confirm("是否删除所选中数据?", "提示", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning",
|
|
|
|
+ }).then(async () => {
|
|
|
|
+ const { data, code } = await deleteData({
|
|
|
|
+ id,
|
|
|
|
+ });
|
|
|
|
+ if (code == "200") {
|
|
|
|
+ ElMessage.success("删除成功!");
|
|
|
|
+ getTableData();
|
|
|
|
+ }
|
|
});
|
|
});
|
|
- if (code == "200") {
|
|
|
|
- ElMessage.success("删除成功!");
|
|
|
|
- getTableData();
|
|
|
|
- }
|
|
|
|
};
|
|
};
|
|
const updateSubmit = async () => {
|
|
const updateSubmit = async () => {
|
|
const { data, code } = await updateData({
|
|
const { data, code } = await updateData({
|