快乐的昕的电脑
2025-10-18 b378c1336fed0fce37cdcef53a574ce745627723
添加上下刀计数
已修改1个文件
64 ■■■■■ 文件已修改
components/mold.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/mold.vue
@@ -225,7 +225,7 @@
                this.selectedToolNo = tool.no;
                this.toolName = tool.name;
                this.toolModel = tool.model;
                this.activeToolNo = tool.no; // 记录选中
                this.activeToolNo = tool.no; // 记录选中
            },
            confirmTool() {
                this.showToolDialog = false;
@@ -251,6 +251,7 @@
                this.toolList = this.toolList.map(t => t.no === this.selectedToolNo ? { ...t, useLimit: v } : t);
                this.$showMessage('使用上限已设置(仅前端显示)');
            },
            // 上刀时传递当前上刀计数
            async handleUpTool() {
                if (!this.workOrderNo) { this.$showMessage('工单号不能为空'); return; }
                if (!this.machineNo) { this.$showMessage('机台号不能为空'); return; }
@@ -259,12 +260,17 @@
                const useLimit = Number(this.useLimitInput);
                if (isNaN(useLimit) || useLimit <= 0) { this.$showMessage('请输入有效的使用上限'); return; }
                // 查找当前刀具的上刀计数
                const currentTool = this.toolRecords.find(r => r.no === this.selectedToolNo);
                const sdjs = currentTool && currentTool.upCount != null ? Number(currentTool.upCount) : null;
                const payload = {
                    workOrderNo: this.workOrderNo,
                    machineNo: this.machineNo,
                    toolNo: this.selectedToolNo,
                    type: '上刀',
                    useLimit
                    useLimit,
                    sdjs // 上刀计数
                };
                try {
                    this.submitting = true;
@@ -286,6 +292,7 @@
                    this.submitting = false;
                }
            },
            // 下刀时传递当前下刀计数
            async handleDownTool() {
                if (!this.workOrderNo) { this.$showMessage('工单号不能为空'); return; }
                if (!this.machineNo) { this.$showMessage('机台号不能为空'); return; }
@@ -294,12 +301,17 @@
                const useLimit = Number(this.useLimitInput);
                if (isNaN(useLimit) || useLimit <= 0) { this.$showMessage('请输入有效的使用上限'); return; }
                // 查找当前刀具的下刀计数
                const currentTool = this.toolRecords.find(r => r.no === this.selectedToolNo);
                const xdjs = currentTool && currentTool.downCount != null ? Number(currentTool.downCount) : null;
                const payload = {
                    workOrderNo: this.workOrderNo,
                    machineNo: this.machineNo,
                    toolNo: this.selectedToolNo,
                    type: '下刀',
                    useLimit
                    useLimit,
                    xdjs // 下刀计数
                };
                try {
                    this.submitting = true;
@@ -367,7 +379,7 @@
                    const formatPercent = n => {
                        if (n === null || n === undefined || isNaN(n)) return '';
                        // 如果是小于等于1的小数,按比例放大
                        // 如果是小于等于1的小数,按比例放大
                        if (n <= 1) return `${(n * 100).toFixed(0)}%`;
                        return `${Number(n).toFixed(0)}%`;
                    };
@@ -377,11 +389,11 @@
                        const downTimeRaw = getField(t, 'dowN_TIME', 'DOWN_TIME', 'downTime', 'DOWNTIME');
                        const lifeWarnRaw = getField(t, 'lifE_WARN', 'LIFE_WARN', 'lifeWarn', 'LIFEWARN');
                        // 使用次数和上限
                        // 使用次数和上限
                        const useCount = getField(t, 'usE_COUNT', 'USE_COUNT', 'useCount');
                        const useLimit = getField(t, 'usE_LIMIT', 'USE_LIMIT', 'useLimit');
                        // 计算寿命比(使用次数/使用上限)
                        // 计算寿命比(使用次数/使用上限)
                        let percent = '';
                        if (
                            useCount != null && useLimit != null &&
@@ -391,7 +403,7 @@
                            percent = ((Number(useCount) / Number(useLimit)) * 100).toFixed(0) + '%';
                        }
                        // 预警值格式化
                        // 预警值格式化
                        const parseNumber = v => {
                            if (v === null || v === undefined || v === '') return null;
                            const s = String(v).replace(/[,%%]/g, '').trim();
@@ -405,7 +417,7 @@
                        };
                        const lifeWarnNum = parseNumber(lifeWarnRaw);
                        // 预警规则:当寿命比 >= 预警值时标记 预警
                        // 预警规则:当寿命比 >= 预警值时标记 预警
                        let warnStatus = getField(t, 'status', 'STATUS') || '';
                        if (lifeWarnNum !== null && useCount != null && useLimit != null && !isNaN(useCount) && !isNaN(useLimit) && Number(useLimit) > 0) {
                            const percentNum = Number(useCount) / Number(useLimit);
@@ -444,24 +456,24 @@
                }
            },
            // 自动带出工单刀具信息
            async fetchDefaultToolFromWorkOrder() {
                if (!this.machineNo) return; // 注意:这里用机台号
                try {
                    const res = await this.$post({
                        url: '/Womdaa/GetWomdaasByShow',
                        data: JSON.stringify({ machineNo: this.machineNo }),
                        headers: { 'Content-Type': 'application/json' }
                    });
                    if (res.status === 0 && Array.isArray(res.data?.tbBillList) && res.data.tbBillList.length > 0) {
                        const tool = res.data.tbBillList[0];
                        this.selectedToolNo = tool.cutterId || tool.cutteR_ID || '';
                        this.toolName = tool.cutterName || tool.cutteR_NAME || '';
                        this.toolModel = tool.cutterModel || tool.cutteR_MODEL || '';
                    }
                } catch (e) {
                    console.warn('自动带出工单刀具失败', e);
                }
            },
            async fetchDefaultToolFromWorkOrder() {
                if (!this.machineNo) return; // 注意:这里用机台号
                try {
                    const res = await this.$post({
                        url: '/Womdaa/GetWomdaasByShow',
                        data: JSON.stringify({ machineNo: this.machineNo }),
                        headers: { 'Content-Type': 'application/json' }
                    });
                    if (res.status === 0 && Array.isArray(res.data?.tbBillList) && res.data.tbBillList.length > 0) {
                        const tool = res.data.tbBillList[0];
                        this.selectedToolNo = tool.cutterId || tool.cutteR_ID || '';
                        this.toolName = tool.cutterName || tool.cutteR_NAME || '';
                        this.toolModel = tool.cutterModel || tool.cutteR_MODEL || '';
                    }
                } catch (e) {
                    console.warn('自动带出工单刀具失败', e);
                }
            },
            formatDateTime(dateTimeStr) {
                if (!dateTimeStr) return '';
                try {