From c2801249475d53a5210bf738b7158d4a5061fb2d Mon Sep 17 00:00:00 2001 From: zhangdi <15053473693@163.com> Date: Wed, 25 Feb 2026 15:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=9B=91=E6=8E=A7=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/moveElement.js | 46 + src/views/workRate/index.vue | 30415 ++++++++++++++++++++++++++- src/views/workRate/processView.vue | 49 + 3 files changed, 30432 insertions(+), 78 deletions(-) create mode 100644 src/utils/moveElement.js create mode 100644 src/views/workRate/processView.vue diff --git a/src/utils/moveElement.js b/src/utils/moveElement.js new file mode 100644 index 0000000..7ce21a4 --- /dev/null +++ b/src/utils/moveElement.js @@ -0,0 +1,46 @@ +/** + * div拖拽 + */ +class MoveElement { + constructor(el) { + this.$el = el; + this.init(); + } + init() { + const dv = this.$el; + + // 🔴 关键修复:检查 dv 是否为有效 DOM 元素 + if (!dv || typeof dv !== 'object' || !dv.nodeType) { + console.warn('MoveElement: 传入的 el 不是有效的 DOM 元素', dv); + return; + } + + let x = 0; + let l = 0; + let isDown = false; + + dv.onmousedown = function(e) { + x = e.clientX; + l = dv.offsetLeft; + isDown = true; + dv.style.cursor = 'move'; + e.preventDefault(); + }; + + dv.onmousemove = function(e) { + e.preventDefault(); + if (!isDown) return; + const nx = e.clientX; + const nl = nx - (x - l); + dv.style.left = nl + 'px'; + }; + + dv.onmouseup = function(e) { + e.preventDefault(); + isDown = false; + dv.style.cursor = 'default'; + }; + } +} + +export default MoveElement; diff --git a/src/views/workRate/index.vue b/src/views/workRate/index.vue index 6cc219e..9fa43c5 100644 --- a/src/views/workRate/index.vue +++ b/src/views/workRate/index.vue @@ -9,131 +9,30390 @@ > -
-
订单编码:{{ rowItem.orderWoCode }}
-
流程卡号:{{ rowItem.cardNo }}
-
- 零件号:{{ rowItem.partCode }} -
-
批次号:{{ rowItem.batchNo }}
-
- 订单数量:{{ rowItem.poQty }} -
-
状态:{{ rowItem.runStatusTitle }}
-
优先级:{{ rowItem.priorityTitle }}
-
- 调度员:{{ rowItem.dispatcher === null ? '' : rowItem.userName }} -
-
- 订单下达时间:{{ rowItem.sendDownTime }} + +
+
订单编码:{{ rowItem.orderWoCode }}
+
流程卡号:{{ rowItem.cardNo }}
+
+ 零件号: + 99999
-
生产数量:{{ rowItem.makeQty }}
-
零件名称:{{ dsPart.partName }}
-
产品型号:{{ dsPart.productType }}
-
硬度:{{ dsPart.hardness }}
-
计划完工时间:{{ rowItem.planEndDate }}
-
- 需求交期:{{ rowItem.priority === 4 ? rowItem.demandDate : '' }} +
批次号:{{ rowItem.batchNo }}
+
订单数量:{{ rowItem.poQty }}
+
状态:{{ rowItem.runStatusTitle }}
+
+ 优先级: + {{ rowItem.priorityTitle }}
-
镀种:{{ dsPart.plate }}
-
面积(dm²):{{ dsPart.area }}
-
材料:{{ dsPart.material }}
-
- 生产标识:{{ rowItem.prodIdent }} +
+ 调度员:{{ rowItem.dispatcher === null ? '' : rowItem.userName }}
-
- 镀后入库时间:{{ rowItem.putStoreTime }} +
订单下达时间:{{ rowItem.sendDownTime }}
+
生产数量:{{ rowItem.makeQty }}
+
零件名称:{{ dsPart.partName }}
+
产品型号:{{ dsPart.productType }}
+
硬度:{{ dsPart.hardness }}
+
计划完工时间:{{ rowItem.planEndDate }}
+
+ 需求交期:{{ rowItem.priority === 4 ? rowItem.demandDate : '' }}
-
标记要求:{{ dsPart.signMemo }}
-
关键信息:{{ dsPart.cruxMemo }}
-
试验数量:{{ rowItem.testQty }}
-
消耗数量:{{ rowItem.lossQty }}
-
+
镀种:{{ dsPart.plate }}
+
面积(dm²):{{ dsPart.area }}
+
材料:{{ dsPart.material }}
+
生产标识:{{ rowItem.prodIdent }}
+
镀后入库时间:{{ rowItem.putStoreTime }}
+
标记要求:{{ dsPart.signMemo }}
+
关键信息:{{ dsPart.cruxMemo }}
+
试验数量:{{ rowItem.testQty }}
+
消耗数量:{{ rowItem.lossQty }}
+
是否印字:{{ dsPart.lettering == 1 ? '否' : '是' }}
-
工艺路线:{{ rowItem.craftWay }}
-
- 返工单号:{{ rowItem.qcReworkCode }} +
工艺路线:{{ rowItem.craftWay }}
+
+ 返工单号: + {{ rowItem.qcReworkCode }}
-
+
涂色标个数:{{ dsPart.tsbNum }}
-
+
涂色带个数:{{ dsPart.tsdNum }}
-
+
涂箭头个数:{{ dsPart.tjtNum }}
-
- 产品系列:{{ rowItem.poProdLine }} +
产品系列:{{ rowItem.poProdLine }}
+
工作订单备注:{{ rowItem.poMemo }}
+
+ 会议要求周期:{{ rowItem.priority === 4 ? rowItem.meetCycle : '' }}
-
- 工作订单备注:{{ rowItem.poMemo }} +
+ 审理单号: + {{ rowItem.rsCode }}
-
- 会议要求周期:{{ rowItem.priority === 4 ? rowItem.meetCycle : '' }} +
+ + +
+
+
+
+
+
{{ item.orders + '-' + item.procedureSet.ppsName }}
+ + + +
+
+
+ + {{ item.subsidiaryTeam.tsName }} + + + {{ item.oemCustomer.ocName }} + + {{ item.makeTeam.tsName }} +
+
+ {{ item.status != 1 && item.receiveMan.userName ? item.receiveMan.userName : '-' }} +
+
+ 额定加工工时(min){{ item.dsHourQuota.hourQuota }} +
+
+ 额定总工时(min){{ + parseFloat((item.dsHourQuota.hourQuota * item.qualifiedQty).toFixed(4)) + }} +
+
+ 实际加工工时(min){{ item.realityHourQuota }} +
+
+ {{ item.startTime || '未指定' }}~{{ + item.endTime || '未指定' + }} +
+
+ {{ item.factStartTime || '未指定' }} +
+
+ {{ item.factEndTime || '未指定' }} +
+
+ +
+
+
+
+
+
工序详情
+ + 228 + + + + 2023-06-06 17:28:53 + + 1 + 2 + 0 + +
+
加工记录
+ + + + + + + +
+ +
+
转试记录
+ + + + + + +
+ +
+
同槽信息
+ + + + + + + + + +
+
+
设备使用详情
+ + + + + + +
+ +
+
检验记录
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
检验项
-
审理单号:{{ rowItem.rsCode }}
- - - - + diff --git a/src/views/workRate/processView.vue b/src/views/workRate/processView.vue new file mode 100644 index 0000000..67eab84 --- /dev/null +++ b/src/views/workRate/processView.vue @@ -0,0 +1,49 @@ + + +