diff --git a/src/service/api/produre/workRecords/index.ts b/src/service/api/produre/workRecords/index.ts
index f1d8617..6269c4b 100644
--- a/src/service/api/produre/workRecords/index.ts
+++ b/src/service/api/produre/workRecords/index.ts
@@ -7,3 +7,7 @@ export const getOutputLog = (params: any) => {
export const getOutputLog2 = (params: any) => {
return request.get(`/mes/mesOutputLog/list2`, { params });
};
+
+export const getOutputLog3 = (params: any) => {
+ return request.get(`/mes/mesOutputLog/list3`, { params });
+};
diff --git a/src/typings/produce.d.ts b/src/typings/produce.d.ts
index 68a7129..0db5f8b 100644
--- a/src/typings/produce.d.ts
+++ b/src/typings/produce.d.ts
@@ -135,6 +135,9 @@ declare namespace workRecords {
alexPositionNumber: string | number;
alexLot: string;
inputSn: string;
+ workGroupValue?: string;
+ qbPrintValue?: string;
+ outputTareWeight?: string;
}
}
diff --git a/src/views/board/kanBan/compents/leftBot.vue b/src/views/board/kanBan/compents/leftBot.vue
index ad2f9d0..bf3cfcd 100644
--- a/src/views/board/kanBan/compents/leftBot.vue
+++ b/src/views/board/kanBan/compents/leftBot.vue
@@ -1,73 +1,231 @@
-
+
+
+
diff --git a/src/views/board/kanBan/compents/options/left_bot_options2.js b/src/views/board/kanBan/compents/options/left_bot_options2.js
new file mode 100644
index 0000000..83a7149
--- /dev/null
+++ b/src/views/board/kanBan/compents/options/left_bot_options2.js
@@ -0,0 +1,205 @@
+import * as echarts from 'echarts';
+
+// 示例数据:包含多条生产线的转速数据
+const productionLines = [
+ {
+ name: "生产线A",
+ data: [67, 70, 72, 71, 69, 64, 70, 73, 68]
+ },
+ {
+ name: "生产线B",
+ data: [72, 69, 71, 73, 70, 68, 65]
+ },
+ {
+ name: "生产线C",
+ data: [65, 68, 70, 67, 69]
+ }
+];
+
+// 生成多条线的配置
+export let option = {
+ grid: {
+ left: "4%",
+ right: "13%",
+ bottom: "4%",
+ top: "13%",
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "rgba(10, 43, 113, 0.9)",
+ borderColor: "rgba(143, 225, 252, 0.9)",
+ padding: 10,
+ axisPointer: {
+ lineStyle: {
+ color: "#3763cd",
+ type: "solid",
+ },
+ },
+ textStyle: {
+ color: "#ffffff",
+ fontSize: 14
+ },
+ formatter: function (params) {
+ let result = `
批次:LX-013
`;
+ params.forEach(function (item) {
+ const lineName = item.seriesName;
+ const value = item.value;
+ const percent = (Math.min(value / 70 * 100, 100)).toFixed(2) + '%';
+ const status = percent >= 95 ? '正常' : '异常';
+ const statusColor = status === '正常' ? '#00ff00' : '#ff0000';
+
+ result += `
+
+ ● ${lineName}: ${value}转/秒
+ (${status})
+
+ 完成率: ${percent}
+ `;
+ });
+ return result;
+ }
+ },
+ xAxis: {
+ data: ["06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"],
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: "rgba(30, 78, 123, 1)",
+ width: 2,
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLabel: {
+ show: true,
+ rotate: 45,
+ color: "#fff",
+ fontSize: 14,
+ },
+ },
+ yAxis: [
+ {
+ name: "转速/秒",
+ nameTextStyle: {
+ color: "#fff",
+ fontSize: 15
+ },
+ type: "value",
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: "rgba(30, 78, 123, 0.5)",
+ width: 1,
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ show: true,
+ width: 2,
+ lineStyle: { color: "rgba(30, 78, 123, 1)" },
+ },
+ axisLabel: {
+ show: true,
+ color: "#fff",
+ fontSize: 14,
+ },
+ },
+ ],
+ legend: {
+ show: true,
+ type: 'scroll',
+ orient: 'horizontal',
+ right: '5%',
+ top: '5%',
+ textStyle: {
+ color: '#fff',
+ fontSize: 14
+ },
+ pageIconColor: '#fff',
+ pageTextStyle: {
+ color: '#fff'
+ }
+ },
+ series: productionLines.map((line, index) => {
+ // 为不同生产线生成不同颜色
+ const colors = [
+ '#53D7F7', '#FF7D00', '#7CFFB2', '#FF6699', '#9966FF',
+ '#FF9933', '#33CCFF', '#FF3366', '#66CC99', '#CC99FF'
+ ];
+ const color = colors[index % colors.length];
+
+ return {
+ name: line.name,
+ type: "line",
+ barWidth: 15,
+ showSymbol: true,
+ symbolSize: 10,
+ symbol: "circle",
+ lineStyle: {
+ color: color,
+ width: 2
+ },
+ itemStyle: {
+ color: color,
+ borderColor: color,
+ borderWidth: 2,
+ },
+ data: line.data.map(value => ({
+ value,
+ itemStyle: {
+ color: value / 70 * 100 >= 95 ? '#00ff00' : '#ff0000',
+ }
+ })),
+ label: {
+ show: false, // 默认不显示标签,避免图表拥挤
+ position: 'top',
+ distance: 10,
+ color: 'rgba(255, 255, 255, 1)',
+ fontWeight: 300,
+ fontSize: 12,
+ },
+ markLine: {
+ silent: true,
+ data: [
+ {
+ name: "标准值70",
+ yAxis: 70,
+ label: {
+ show: index === 0, // 只在第一个系列显示标准值标签
+ formatter: '标准值70',
+ color: "#fff",
+ position: 'end',
+ distance: 1,
+ fontSize: 12,
+ borderRadius: 3
+ }
+ }
+ ],
+ lineStyle: {
+ color: 'red',
+ type: 'dashed',
+ width: 3
+ },
+ symbol: ['none', 'none']
+ },
+ areaStyle: {
+ normal: {
+ color: new echarts.graphic.LinearGradient(
+ 0, 0, 0, 1,
+ [
+ { offset: 0, color: echarts.color.modifyAlpha(color, 0.1) },
+ { offset: 1, color: echarts.color.modifyAlpha(color, 0) }
+ ],
+ false
+ ),
+ shadowColor: echarts.color.modifyAlpha(color, 0.1),
+ shadowBlur: 12,
+ },
+ },
+ };
+ }),
+};
diff --git a/src/views/board/kanBan/index.vue b/src/views/board/kanBan/index.vue
index 2794334..d32e08a 100644
--- a/src/views/board/kanBan/index.vue
+++ b/src/views/board/kanBan/index.vue
@@ -34,9 +34,9 @@
-
+
- 质检良品率
+ 在线质检
diff --git a/src/views/plan/drawingWorkOrder/index.vue b/src/views/plan/drawingWorkOrder/index.vue
index 67aa330..8054154 100644
--- a/src/views/plan/drawingWorkOrder/index.vue
+++ b/src/views/plan/drawingWorkOrder/index.vue
@@ -462,8 +462,25 @@ const columns2: Ref
> = ref([
key: 'taskStatus',
width: 130,
render: row => {
- return '未开始';
+ const now = new Date();
+ const startDate = new Date(row.startDate? row.startDate : '2000-01-01');
+ const endDate = new Date(row.endDate? row.endDate : '2000-01-01');
+ let status, color;
+
+ if (now < startDate) {
+ status = '未开始';
+ color = '#8c8c8c'; // 灰色
+ } else if (now <= endDate) {
+ status = '进行中';
+ color = '#108ee9'; // 蓝色
+ } else {
+ status = '已结束';
+ color = '#52c41a'; // 绿色
+ }
+
+ return h('span', { style: `color: ${color}` }, status);
}
+
},
{
title: '班组信息',
diff --git a/src/views/plan/paintJobOrder/index.vue b/src/views/plan/paintJobOrder/index.vue
index 1a40414..a068cb8 100644
--- a/src/views/plan/paintJobOrder/index.vue
+++ b/src/views/plan/paintJobOrder/index.vue
@@ -361,7 +361,7 @@ import {getWorkgroupAll} from "@/service/api/md/workgroup";
defineOptions({
name: 'PaintJobOrder'
});
-import type { Ref } from 'vue';
+import {h, Ref} from 'vue';
import { ref, onMounted } from 'vue';
import { useMessage, useDialog } from 'naive-ui';
import type { DataTableColumns, FormInst } from 'naive-ui';
@@ -804,7 +804,23 @@ const columns2: Ref> = ref([
key: 'taskStatus',
width: 130,
render: row => {
- return '未开始';
+ const now = new Date();
+ const startDate = new Date(row.startDate? row.startDate : '2000-01-01');
+ const endDate = new Date(row.endDate? row.endDate : '2000-01-01');
+ let status, color;
+
+ if (now < startDate) {
+ status = '未开始';
+ color = '#8c8c8c'; // 灰色
+ } else if (now <= endDate) {
+ status = '进行中';
+ color = '#108ee9'; // 蓝色
+ } else {
+ status = '已结束';
+ color = '#52c41a'; // 绿色
+ }
+
+ return h('span', { style: `color: ${color}` }, status);
}
},
{
diff --git a/src/views/procure/procureOrder/index.vue b/src/views/procure/procureOrder/index.vue
index 008b955..1422b9d 100644
--- a/src/views/procure/procureOrder/index.vue
+++ b/src/views/procure/procureOrder/index.vue
@@ -612,6 +612,7 @@ function handleAudit(type){
showPasModal.value = true;
auditForm.value.purchaseId = dialogForm.value.purchaseId;
auditForm.value.status = type == 0 ? 'APPROVE' : 'REJECT';
+ auditForm.value.attr2 = type == 0 ? '通过' : 'REJECT';
}
function onPositivePasClick() {
diff --git a/src/views/produce/workRecords/index.vue b/src/views/produce/workRecords/index.vue
index 482c6db..9ecd431 100644
--- a/src/views/produce/workRecords/index.vue
+++ b/src/views/produce/workRecords/index.vue
@@ -285,12 +285,12 @@ const columns: Ref> = ref([
);
}
},
- {
- title: '产品型号',
- align: 'center',
- key: 'productModel',
- width: 100
- },
+ // {
+ // title: '产品型号',
+ // align: 'center',
+ // key: 'productModel',
+ // width: 100
+ // },
{
title: '产品规格',
align: 'center',
@@ -309,12 +309,12 @@ const columns: Ref> = ref([
key: 'itemSpecification',
width: 100
},
- {
- title: '单位',
- align: 'center',
- key: 'measureName',
- width: 100
- },
+ // {
+ // title: '单位',
+ // align: 'center',
+ // key: 'measureName',
+ // width: 100
+ // },
{
title: '报工时间',
align: 'center',
@@ -327,12 +327,15 @@ const columns: Ref> = ref([
key: 'createBy',
width: 100
},
- // {
- // title: '报工工号',
- // align: 'center',
- // key: 'jobNumber',
- // width: 100
- // },
+ {
+ title: '机台转速(转/S)',
+ align: 'center',
+ key: 'outputTareWeight',
+ width: 100,
+ render: row => {
+ return row.workGroupValue == 'CNC'|| row.qbPrintValue?.includes('CNC') ? row.outputTareWeight : '';
+ }
+ },
{
title: '批号',
align: 'center',
diff --git a/src/views/sale/saleOrder/index.vue b/src/views/sale/saleOrder/index.vue
index c262326..074297d 100644
--- a/src/views/sale/saleOrder/index.vue
+++ b/src/views/sale/saleOrder/index.vue
@@ -452,7 +452,7 @@ const columns: Ref> = ref([
width: 250,
render: row => {
return [
- handleInfo(row)}>
+ handleInfo(row)}>
下发工单
,