From 42f41be3e0bf953d5b5fc9ec9c882801cb8c4494 Mon Sep 17 00:00:00 2001 From: caill <815519168@qq.com> Date: Tue, 1 Sep 2026 16:11:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=BC=E5=8F=AB=E5=A5=97=E8=BD=B4=E3=80=81?= =?UTF-8?q?=E5=88=86=E5=88=87=E4=B8=8A=E6=96=992=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/style/layout.styl | 113 ++++++++++++++++++ common/style/reset.css | 5 + manifest.json | 4 +- pages/SecondPhase/slitting/CallPaperShaft.vue | 101 ++++++++++++++-- .../SecondPhase/slitting/SlittingCutting2.vue | 21 +--- utils/mork2.js | 5 +- 6 files changed, 217 insertions(+), 32 deletions(-) diff --git a/common/style/layout.styl b/common/style/layout.styl index 3864121..7064fe0 100644 --- a/common/style/layout.styl +++ b/common/style/layout.styl @@ -979,4 +979,117 @@ uni-button[disabled]:not([type]) { to { transform: rotate(360deg); } +} +.confirm-modal-mask { + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; + background-color: rgba(0,0,0,0.7); + z-index: 999; +} +.confirm-modal { + width: 86%; + background: #fff; + border-radius: 20rpx; + padding-top: 40rpx; + animation: modalSlideIn 0.3s ease-out; +} +.icon_right { + text-align: center; + font-size: 40rpx; + line-height: 40rpx; + color: #f36b2a; + border-radius: 50%; + padding: 18rpx; + margin-bottom: 16rpx; + background-color: #fff3eb; +} +.confirm-modal .modal-title { + font-size: 30rpx; + text-align: center; + font-weight: 700; + color: #23272f; + padding: 0 18rpx; + margin-bottom: 12rpx; +} +.confirm-modal .modal-desc { + font-size: 24rpx; + color: #323232; + text-align: center; + padding: 0 18rpx; + margin-bottom: 32rpx; +} +.confirm-modal .info-block { + width: 90%; + background-color: #f5f5f5; + border-radius: 12rpx; + padding: 16rpx; + margin: 0 auto 36rpx; +} +.confirm-modal .info-row { + display: flex; + padding-bottom: 20rpx; + margin-bottom: 16rpx; + border-bottom: 1px solid #e5e5e5; +} +.confirm-modal .info-row:last-child { + margin-bottom: 0; + border-bottom: 0; +} +.confirm-modal .info-row .info-label { + width: 140rpx; + font-size: 28rpx; + color: #7b8491; +} +.confirm-modal .info-row .info-val { + flex: 1; + font-size: 28rpx; + font-weight: 700; + color: #23272f; + text-align: right; +} +.confirm-modal .info-row .info-val-q { + font-size: 34rpx; + color: #f36b2a; +} +.confirm-modal .modal-buttons { + display: flex; + width: 100%; +} +.confirm-modal .modal-buttons button { + flex: 1; + width: 50%; + height: 88rpx; + line-height: 88rpx; + border-top-left-radius: 0; + border-top-right-radius: 0; + font-size: 30rpx; + margin: 0; +} +/* 取消按钮 */ +.confirm-modal .btn-cancel { + background: #fff; + color: #333; + border: 1px solid #e5e5e5; + border-bottom-left-radius: 20rpx; +} +/* 确认按钮 */ +.confirm-modal .btn-confirm { + background: #ff791a; + border: 1px solid #ff791a; + color: #fff; + border-bottom-right-radius: 20rpx; +} +/* 滑入动画 */ +@keyframes modalSlideIn { + 0% { + transform: translateY(100vh); + opacity: 0; + } + 100% { + transform: translateY(0); + opacity: 1; + } } \ No newline at end of file diff --git a/common/style/reset.css b/common/style/reset.css index 39d2c45..421a400 100644 --- a/common/style/reset.css +++ b/common/style/reset.css @@ -53,6 +53,11 @@ input[type="button"], input[type="submit"], input[type="search"], input[type="re .jccenter { justify-content: center !important; } +.flex-column { + display: flex; + flex-direction: column; + align-items: center; +} .zd-row { display: flex; justify-content: space-between; diff --git a/manifest.json b/manifest.json index d0194b4..2a23808 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "name" : "海亮铜箔", "appid" : "__UNI__3A002CD", "description" : "海亮铜箔二期手持系统", - "versionName" : "1.4.8", - "versionCode" : 148, + "versionName" : "1.4.9", + "versionCode" : 149, "transformPx" : false, /* 5+App特有相关 */ "app-plus" : { diff --git a/pages/SecondPhase/slitting/CallPaperShaft.vue b/pages/SecondPhase/slitting/CallPaperShaft.vue index 10d5f88..7d8f5b3 100644 --- a/pages/SecondPhase/slitting/CallPaperShaft.vue +++ b/pages/SecondPhase/slitting/CallPaperShaft.vue @@ -71,17 +71,17 @@ - - {{statTotal}} + + {{planSize}} 呼叫总数 - - {{statFitted}} - 已套轴 + + {{canUsePointCount}} + 可用点位数 - - {{statWaiting}} - 待套轴 + + {{remainingCount}} + 可用空闲位数 @@ -118,6 +118,7 @@ 呼叫时间:{{ item.call_time }} 管芯重量:{{ item.paper_weight }} 是否套轴完成:{{ item.is_child_tz_ok === 1 ? '是' : '否' }} + 呼叫人:{{item.material_type}} @@ -129,8 +130,38 @@ - + + + + + 确认呼叫套轴 + 请核对本次呼叫信息,确认后将提交 + + + 位置 + {{ index2Label || '-' }} + + + 管芯规格 + {{ getAxisLabel() || '-' }} + + + 尺寸 + {{ index3Label || '-' }} + + + 数量 + {{ qty || 0 }} + + + + + + + + + @@ -168,7 +199,13 @@ qty: null, disabled: false, disabled1: false, - planList: [] + planList: [], + planSize: 0, + remainingCount: 0, + canUsePointCount: 0, + confirmModalShow: false, + index2Label: '', + index3Label: '', }; }, computed: { @@ -236,13 +273,22 @@ try { let res = await getBindXnPlan(e) if (res && res.status === 200) { + this.planSize = res.planSize || 0 + this.canUsePointCount = res.canUsePointCount || 0 + this.remainingCount = res.remainingCount || 0 this.planList = res.plans.map(p=>{ return { ...p, _expand:false } }) } else { + this.planSize = 0 + this.canUsePointCount = 0 + this.remainingCount = 0 this.planList = [] } } catch (e) { + this.planSize = 0 + this.canUsePointCount = 0 + this.remainingCount = 0 this.planList = [] } }, @@ -259,6 +305,9 @@ if (e) { this._getBindXnPlan(e) } else { + this.planSize = 0 + this.canUsePointCount = 0 + this.remainingCount = 0 this.planList = [] } }, @@ -284,14 +333,44 @@ this.disabled1 = false this.state = 'all', this.refreshing = false + this.planSize = 0 + this.canUsePointCount = 0 + this.remainingCount = 0 this.planList = [] }, - async _slitXnplan () { + openConfirmModal () { this.disabled = true if (!this.index1 || !this.index2 || (!this.upL && !this.upR) || !this.index3 || !this.index4 || !this.qty) { this.disabled = false return } + const opt2 = this.options2.find(o=>o.value === this.index2) + this.index2Label = opt2 ? opt2.text : '' + const opt3 = this.options3.find(o=>o.value === this.index3) + this.index3Label = opt3 ? opt3.text : '' + this.confirmModalShow = true + }, + closeConfirmModal(){ + this.confirmModalShow = false + this.disabled = false + }, + getAxisLabel(){ + let arr = [] + if(this.upL) { + const l = this.newaxis1.find(x=>x.value === this.upL) + l && arr.push(l.text + '(左)') + } + if(this.upR) { + const r = this.newaxis2.find(x=>x.value === this.upR) + r && arr.push(r.text + '(右)') + } + return arr.join(' / ') + }, + handleConfirmCall(){ + this.confirmModalShow = false + this._slitXnplan() + }, + async _slitXnplan () { let upLT = '' let upRT = '' this.axis.map(el => { diff --git a/pages/SecondPhase/slitting/SlittingCutting2.vue b/pages/SecondPhase/slitting/SlittingCutting2.vue index 0e42dc8..0512021 100644 --- a/pages/SecondPhase/slitting/SlittingCutting2.vue +++ b/pages/SecondPhase/slitting/SlittingCutting2.vue @@ -97,20 +97,12 @@ 上轴信息 - 缓存架编码 - - - 绑定计划 下轴信息 - 缓存架编码 - - - 绑定计划 @@ -118,8 +110,7 @@ - - + @@ -156,9 +147,7 @@ htmlContent1: [], htmlContent2: [], modalShow1: false, - upShelf: '', upPlanCode: '', - downShelf: '', downPlanCode: '', PlanOptions: [], PlanOptions1: [], @@ -358,16 +347,12 @@ return } this.modalShow1 = true - this.upShelf = '' this.upPlanCode = '' - this.downShelf = '' this.downPlanCode = '' }, async bindSure (type) { this.disabled = true - const upValid = this.upShelf && this.upPlanCode - const downValid = this.downShelf && this.downPlanCode - if (!upValid && !downValid) { + if (!(this.upPlanCode || this.downPlanCode)) { uni.showToast({ title: '请至少完整填写上轴或下轴一组信息', icon: 'none' @@ -376,7 +361,7 @@ return } try { - let res = await dBindPlanDevice(this.upShelf, this.upPlanCode, this.downShelf, this.downPlanCode, type, this.index) + let res = await dBindPlanDevice(null, this.upPlanCode, null, this.downPlanCode, type, this.index) if (res) { uni.showToast({ title: res.message, diff --git a/utils/mork2.js b/utils/mork2.js index 19d23f6..fe10f2e 100644 --- a/utils/mork2.js +++ b/utils/mork2.js @@ -360,7 +360,10 @@ export const getUnbindPlan = () => { } export const getBindXnPlan = () => { let res = { - "status" : 200, + "status" : 200, + "planSize": 10, + "canUsePointCount": 8, + "remainingCount": 2, "plans" : [ { "paper_tube_description": 'JH-20260824-018',