From 36f5d4afd42eebba9439101db5b27ce976e71e2e Mon Sep 17 00:00:00 2001
From: caill <815519168@qq.com>
Date: Thu, 6 Aug 2026 16:49:16 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=8C=E6=9C=9F=E5=91=BC?=
=?UTF-8?q?=E5=8F=AB=E5=A5=97=E8=BD=B4=EF=BC=8C=E5=88=86=E5=88=87=E4=B8=8A?=
=?UTF-8?q?=E6=96=992=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 3 +-
common/style/layout.styl | 107 ++++++++-
manifest.json | 4 +-
pages.json | 7 +
pages/SecondPhase/slitting/CallPaperShaft.vue | 222 ++++++++++++++++++
.../SecondPhase/slitting/SlittingCutting2.vue | 147 +++++++++++-
utils/getData3.js | 40 ++++
utils/mork2.js | 57 ++++-
8 files changed, 578 insertions(+), 9 deletions(-)
create mode 100644 pages/SecondPhase/slitting/CallPaperShaft.vue
diff --git a/README.md b/README.md
index 4d803de..5c43233 100644
--- a/README.md
+++ b/README.md
@@ -7,4 +7,5 @@
+ 当前应用版本号100
+ 线上菜单接口地址:(https://apifox.com/apidoc/shared-cb4996b0-0426-44a6-82a5-0cefe2540fb9/api-152616802)
+ 生产入库、退货入库、报废入库、拆分入库这几个页面的木箱输入框只能扫码,不能输入;盘点明细页面木箱输入框只能扫码,不能输入,点击确定按钮后再次获取焦点;虚拟区发货确认、生产区发货确认两个页面点击确认后会再次获取焦点
-+ 一期二期菜单会公用一个页面
\ No newline at end of file
++ 一期二期菜单会公用一个页面
++ 插件uni-data-select不能升级,会影响模糊搜索
\ No newline at end of file
diff --git a/common/style/layout.styl b/common/style/layout.styl
index 30ddead..5ecaf88 100644
--- a/common/style/layout.styl
+++ b/common/style/layout.styl
@@ -113,6 +113,19 @@ uni-button:after {
background-color: #E9B451;
}
+.icon_close::before {
+ content: "\e6dc";
+}
+
+.icon_close {
+ width: 48rpx;
+ height: 48rpx;
+ font-size: 40rpx;
+ font-weight: 700;
+ color: #323232;
+ line-height: 48rpx;
+}
+
/** 内容 */
.zd_container {
width: 100%;
@@ -170,6 +183,11 @@ uni-button:after {
.filter_label_1 {
line-height: 30rpx;
}
+.filter_label_2 {
+ line-height: 56rpx;
+ text-align: left;
+ text-align-last: auto;
+}
.filter_search {
width: 100rpx;
height: 70rpx;
@@ -202,6 +220,12 @@ uni-button:after {
height: 30rpx;
margin-top: 20rpx;
}
+.filter_input_wraper_2 {
+ width: 100%;
+ height: 80rpx;
+ line-height: 80rpx;
+ margin-bottom: 10rpx;
+}
.filter_input_wraper_inn_text {
line-height: 30rpx;
font-size: 28rpx;
@@ -446,6 +470,9 @@ uni-button[disabled]:not([type]) {
top: 100%;
transform: translateY(0%);
}
+.pophide2 {
+ transform: translateY(140%);
+}
.msg_wrapper {
position: fixed;
top: auto;
@@ -615,4 +642,82 @@ uni-button[disabled]:not([type]) {
}
.down_icon {
text-align: center;
-}
\ No newline at end of file
+}
+.msg_wrapper_2 {
+ position: fixed;
+ top: auto;
+ bottom: calc(7% - var(--status-bar-height));
+ left: 7%;
+ width: 86%;
+ height: 86%;
+ background-color: #ffffff;
+ box-shadow: 0 -8px 16px 0 rgba(28,31,33,.1);
+ border-top-left-radius: 20rpx;
+ border-top-right-radius: 20rpx;
+ z-index: 301;
+ transition: all .3s;
+}
+.pop-title_wraper_2 {
+ padding: 20rpx 24rpx;
+ border-bottom: 1rpx solid #dcdfe6;
+ margin-bottom: 20rpx;
+ flex-shrink: 0;
+}
+.pop-title_2 {
+ font-size: 34rpx;
+ line-height: 34rpx;
+ font-weight: 700;
+ color: #333;
+}
+.msg_content_2 {
+ height: calc(100% - 220rpx);
+ padding: 0 24rpx;
+ overflow-y: auto;
+ position: relative;
+ z-index: 10000;
+}
+.msg_filter {
+ width: 100%;
+ min-height: 100%;
+}
+.msg_tip_2 {
+ font-size: 32rpx;
+ line-height: 32rpx;
+ font-weight: 700;
+ color: #333;
+ margin-bottom: 20rpx;
+ text-align: left;
+ padding-left: 20rpx;
+}
+.msg_tip_2:before {
+ position: absolute;
+ left: 0;
+ content: '';
+ width: 8rpx;
+ height: 30rpx;
+ background-color: #007aff;
+ border-radius: 4rpx;
+}
+.msg_tip_2_blue:before {
+ background-color: #007aff;
+}
+.msg_tip_2_yellow:before {
+ background-color: #ff791a;
+}
+
+.msg_fgx {
+ width: 100%;
+ height: 1rpx;
+ background: #dcdfe6;
+ margin: 40rpx 0;
+}
+.filter_input_wraper_2-bottom {
+ margin-bottom: 40rpx;
+}
+.submitbar-popup {
+ width: 100%;
+ flex-shrink:0;
+ background-color: #fff;
+ padding: 20rpx 0 19rpx 0;
+ box-shadow: 0 0 20rpx 0 rgba(160,160,160,0.7);
+}
diff --git a/manifest.json b/manifest.json
index b0fa3ae..d71fd47 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
"name" : "海亮铜箔",
"appid" : "__UNI__3A002CD",
"description" : "海亮铜箔二期手持系统",
- "versionName" : "1.4.4",
- "versionCode" : 144,
+ "versionName" : "1.4.5",
+ "versionCode" : 145,
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
diff --git a/pages.json b/pages.json
index 1d1baa3..72a79ec 100644
--- a/pages.json
+++ b/pages.json
@@ -770,6 +770,13 @@
{
"navigationStyle": "custom"
}
+ },
+ {
+ "path" : "pages/SecondPhase/slitting/CallPaperShaft",
+ "style" :
+ {
+ "navigationStyle": "custom"
+ }
}
],
"globalStyle": {
diff --git a/pages/SecondPhase/slitting/CallPaperShaft.vue b/pages/SecondPhase/slitting/CallPaperShaft.vue
new file mode 100644
index 0000000..b82505e
--- /dev/null
+++ b/pages/SecondPhase/slitting/CallPaperShaft.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+ 区域
+
+
+
+
+
+
+ 位置
+
+
+
+
+
+
+ 左管
+
+
+
+
+
+ 右管
+
+
+
+
+
+
+ 尺寸
+
+
+
+
+
+
+
+ 代数
+
+
+
+
+
+
+ 数量
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/SecondPhase/slitting/SlittingCutting2.vue b/pages/SecondPhase/slitting/SlittingCutting2.vue
index 6e367f8..0e42dc8 100644
--- a/pages/SecondPhase/slitting/SlittingCutting2.vue
+++ b/pages/SecondPhase/slitting/SlittingCutting2.vue
@@ -73,8 +73,9 @@
-
-
+
+
+
提示
@@ -88,6 +89,40 @@
+
+
+ 绑定轴信息
+
+
+
+
+ 上轴信息
+ 缓存架编码
+
+
+
+ 绑定计划
+
+
+
+
+ 下轴信息
+ 缓存架编码
+
+
+
+ 绑定计划
+
+
+
+
+
+
+
+
+
+
+
@@ -95,7 +130,9 @@
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import {queryProductArea} from '@/utils/getData2.js'
- import {getTubeLength, slitterDevices, downRolls2} from '@/utils/getData3.js'
+ import {getTubeLength, slitterDevices, downRolls2, getUnbindPlan, dBindPlanDevice} from '@/utils/getData3.js'
+ // import {getTubeLength, slitterDevices, queryProductArea, getUnbindPlan} from '@/utils/mork2.js'
+ // import {downRolls2, dBindPlanDevice} from '@/utils/getData3.js'
export default {
components: {
NavBar,
@@ -117,7 +154,15 @@
disabled1: false,
modalShow: false,
htmlContent1: [],
- htmlContent2: []
+ htmlContent2: [],
+ modalShow1: false,
+ upShelf: '',
+ upPlanCode: '',
+ downShelf: '',
+ downPlanCode: '',
+ PlanOptions: [],
+ PlanOptions1: [],
+ PlanOptions2: []
};
},
onLoad (options) {
@@ -144,8 +189,29 @@
let res = await slitterDevices(e)
this.options = [...res]
},
+ async _getUnbindPlan (e) {
+ try {
+ let res = await getUnbindPlan(e)
+ if (res) {
+ const list = res.map(el => {
+ return {
+ text: el.label,
+ value: el.value
+ }
+ })
+ this.PlanOptions = list
+ }
+ } catch (e) {
+ this.PlanOptions = []
+ }
+ },
selectChange (e) {
this.index = e
+ if (e) {
+ this._getUnbindPlan(e)
+ } else {
+ this.PlanOptions = []
+ }
},
radioChange (e) {
this.index1 = e.detail.value
@@ -250,6 +316,79 @@
this.dataList = []
this.disabled = false
this.disabled1 = false
+ },
+ /** 模糊匹配 */
+ selectMatchItem (lists, keyWord) {
+ let resArr = []
+ lists.filter((item) => {
+ if (item.text.indexOf(keyWord) > -1) {
+ resArr.push(item)
+ }
+ })
+ return resArr
+ },
+ handleChange1 (e) {
+ if (e){
+ this.upPlanCode = ''
+ this.PlanOptions1 = this.selectMatchItem(this.PlanOptions, e)
+ } else {
+ this.PlanOptions1 = this.PlanOptions
+ }
+ },
+ showSelector1 () {
+ this.PlanOptions1 = this.PlanOptions
+ },
+ handleChange2 (e) {
+ if (e){
+ this.downPlanCode = ''
+ this.PlanOptions2 = this.selectMatchItem(this.PlanOptions, e)
+ } else {
+ this.PlanOptions2 = this.PlanOptions
+ }
+ },
+ showSelector2 () {
+ this.PlanOptions2 = this.PlanOptions
+ },
+ bindPlanDeviceConfirm () {
+ if (!this.index) {
+ uni.showToast({
+ title: '请先选择设备',
+ icon: 'none'
+ })
+ 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) {
+ uni.showToast({
+ title: '请至少完整填写上轴或下轴一组信息',
+ icon: 'none'
+ })
+ this.disabled = false
+ return
+ }
+ try {
+ let res = await dBindPlanDevice(this.upShelf, this.upPlanCode, this.downShelf, this.downPlanCode, type, this.index)
+ if (res) {
+ uni.showToast({
+ title: res.message,
+ icon: 'none'
+ })
+ }
+ this.disabled = false
+ this.modalShow1 = false
+ } catch (e) {
+ this.disabled = false
+ this.modalShow1 = false
+ }
}
}
}
diff --git a/utils/getData3.js b/utils/getData3.js
index b74070d..536a5e0 100644
--- a/utils/getData3.js
+++ b/utils/getData3.js
@@ -506,6 +506,23 @@ export const downRolls2 = (device, code) => request({
container: code
}
})
+export const getUnbindPlan = (device) => request({
+ url:'api/pda/slitter/get-unbind-plan',
+ data: {
+ deviceCode: device
+ }
+})
+export const dBindPlanDevice = (upShelf, upPlanCode, downShelf, downPlanCode, force, device) => request({
+ url:'api/pda/slitter/do-bind-plan-device',
+ data: {
+ upShelf: upShelf,
+ upPlanCode: upPlanCode,
+ downShelf: downShelf,
+ downPlanCode: downPlanCode,
+ force: force,
+ device: device
+ }
+})
/**
* 母卷暂存管理(分切管理二期)
*/
@@ -681,4 +698,27 @@ export const checkCode = (ncode, gcode, bcode, ccode) => request({
export const changePointMove = (code, move) => request({
url:'api/pda/raw/changePointMove',
data: {deviceCode: code, move: move}
+})
+/**
+ * 呼叫套轴(二期)
+ */
+// 获取位置下拉框
+export const slitXnarea = (area) => request({
+ url:'api/pda/slitter/list-xn-area',
+ data: {area: area}
+})
+// 呼叫套轴
+export const slitXnplan = (area, location, ulk, ulv, urk, urv, size, qzz, num) => request({
+ url:'api/pda/slitter/bind-xn-plan',
+ data: {
+ area: area,
+ location: location,
+ up_left_size_k: ulk,
+ up_left_size_v: ulv,
+ up_right_size_k: urk,
+ up_right_size_v: urv,
+ qzz_size: size,
+ qzz_generation: qzz,
+ qqz_num: num
+ }
})
\ No newline at end of file
diff --git a/utils/mork2.js b/utils/mork2.js
index 2a4e86f..87a4022 100644
--- a/utils/mork2.js
+++ b/utils/mork2.js
@@ -114,7 +114,8 @@ export const allAuthority = () => {
{menu_id: '8', title: '子卷拼单', path: '/pages/SecondPhase/slitting/Zjpindan'},
{menu_id: '8', title: '人工呼叫空轴', path: '/pages/SecondPhase/slitting/ManEmptyAxle'},
{menu_id: '11', title: '备货出入库', path: '/pages/SecondPhase/slitting/GdsPrepInOut'},
- {menu_id: '11', title: '任务管理', path: '/pages/SecondPhase/slitting/Task'}
+ {menu_id: '11', title: '任务管理', path: '/pages/SecondPhase/slitting/Task'},
+ {menu_id: '8', title: '呼叫套轴', path: '/pages/SecondPhase/slitting/CallPaperShaft'}
]},
{menu_id: '10', path: 'RF15', title: '打包间管理', sonTree: [
{menu_id: '1', title: '子卷包装解绑', path: '/pages/SecondPhase/SubRollPackUnbind'},
@@ -183,6 +184,19 @@ export const queryProductArea = () => {
}
return res
}
+export const slitXnarea = () => {
+ let res = [
+ {
+ "label": "B1分切合单1区",
+ "value": "1"
+ },
+ {
+ "label": "B1分切合单2区",
+ "value": "2"
+ }
+ ]
+ return res
+}
export const slitterDevices = (area) => {
let res = [{text: '物料一', value: '001'}, {text: '物料a', value: '002'}, {text: '物料b', value: '003'}]
return res
@@ -301,4 +315,45 @@ export const doCallTubeShaftShow = () => {
export const getTubeLength = (code) => {
let res = {"data":{"bh":"15","length":"1500"},"message":"获取信息成功!","status":200}
return res
+}
+export const getUnbindPlan = () => {
+ let res = [
+ {
+ "label": "1",
+ "value": "1"
+ },
+ {
+ "label": "2",
+ "value": "2"
+ },
+ {
+ "label": "3",
+ "value": "3"
+ },
+ {
+ "label": "1",
+ "value": "1"
+ },
+ {
+ "label": "2",
+ "value": "2"
+ },
+ {
+ "label": "3",
+ "value": "3"
+ },
+ {
+ "label": "1",
+ "value": "1"
+ },
+ {
+ "label": "2",
+ "value": "2"
+ },
+ {
+ "label": "3",
+ "value": "3"
+ }
+ ]
+ return res
}
\ No newline at end of file