Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes-pad
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ximai
mes-pad
Commits
b46a1d0f
Commit
b46a1d0f
authored
Feb 25, 2024
by
jzc
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://git.local.topsunit.com/mes/mes-pad
into dev
parents
b88f621b
cc932db8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
354 additions
and
294 deletions
+354
-294
README.en.md
README.en.md
+1
-1
README.md
README.md
+1
-1
config.js
common/config.js
+10
-10
http.api.js
common/http.api.js
+23
-1
http.interceptor.js
common/http.interceptor.js
+1
-0
index.vue
pages/index/index.vue
+205
-199
index.vue
pages/mes/prodReport/index.vue
+109
-79
index.js
store/index.js
+4
-3
No files found.
README.en.md
View file @
b46a1d0f
#
ktg-
mes-pad
# mes-pad
#### Description
MES系统触控屏端
...
...
README.md
View file @
b46a1d0f
#
ktg-
mes-pad
# mes-pad
#### 介绍
MES系统触控屏端
...
...
common/config.js
View file @
b46a1d0f
const
config
=
{
// 产品名称
productName
:
'
ktg-
mes-pad'
,
productName
:
'mes-pad'
,
// 公司名称
companyName
:
'
ktg
'
,
companyName
:
''
,
// 产品版本号
productVersion
:
'V0.1.0'
,
// 版本检查标识
appCode
:
'android'
,
// 内部版本号码
appVersion
:
1
,
// 管理基础路径
adminPath
:
''
}
// 设置后台接口服务的基础地址
...
...
@@ -26,4 +26,4 @@ config.baseUrl = 'http://192.168.25.105:8080';
//config.baseUrl = "/api";
//config.baseUrl = "http://101.200.162.168:8080";
export
default
config
;
\ No newline at end of file
export
default
config
;
common/http.api.js
View file @
b46a1d0f
...
...
@@ -26,6 +26,8 @@ const install = (Vue, vm) => {
params
),
getWorkstationList
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'/mobile/md/workstation/getWorkstationList'
,
params
),
getWorkUnitList
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'/md/workunit/getListByUser'
,
params
),
/**
* 生产管理相关API
**/
...
...
@@ -90,6 +92,26 @@ const install = (Vue, vm) => {
'/mobile/pro/taskissue/getReserveIssueList'
,
params
),
//打印流转单
//投料验证
listFeedingInspection
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/listIssueLine'
,
params
),
validateFeedingInspection
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/validateFeedingInspection'
,
params
),
validateFeedingInspectionById
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/validateFeedingInspectionById'
,
params
),
//查询反冲料列表
recoilMaterialList
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/getRecoilMaterial'
,
params
),
//增加反冲料
addRecoilMaterial
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/addRecoilMaterial'
,
params
),
//删除反冲料
deleteRecoilMaterial
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/deleteRecoilMaterial'
,
params
),
//领料申请
listMaterialRequest
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/listMaterialRequest'
,
params
),
addMaterialRequest
:
(
params
=
{})
=>
vm
.
$u
.
postJson
(
config
.
adminPath
+
'/mobile/pro/proMaterial/addMaterialRequest'
,
params
),
//退料申请
listMaterialReturn
:
(
params
=
{})
=>
vm
.
$u
.
post
(
config
.
adminPath
+
'/mobile/pro/proMaterial/listIssueLine'
,
params
),
addMaterialReturn
:
(
params
=
{})
=>
vm
.
$u
.
postJson
(
config
.
adminPath
+
'/mobile/pro/proMaterial/addMaterialReturn'
,
params
),
//质量相关api
//获取当前产品、当前质检类型的质检模板行信息
...
...
@@ -147,7 +169,7 @@ const install = (Vue, vm) => {
detail
:
(
params
=
{})
=>
vm
.
$u
.
get
(
config
.
adminPath
+
'/qc/information/list'
,
params
),
newlyAdd
:
(
params
=
{})
=>
vm
.
$u
.
postJson
(
config
.
adminPath
+
'/qc/report'
,
params
),
},
// 增删改查例子
testData
:
{
...
...
common/http.interceptor.js
View file @
b46a1d0f
...
...
@@ -79,6 +79,7 @@ const install = (Vue, vm) => {
// 错误
if
(
data
.
msg
!==
null
)
{
uni
.
showToast
({
icon
:
'none'
,
title
:
data
.
msg
,
duration
:
3000
})
...
...
pages/index/index.vue
View file @
b46a1d0f
...
...
@@ -17,22 +17,17 @@
<ProContent
v-if=
"tabIndex === 'DV'"
></ProContent>
</view>
<u-modal
width=
"90%"
v-model=
"showWorkstationFlag"
:showConfirmButton=
"false"
:showCancelButton=
"true"
title=
"请选择工作站"
content=
"操作内容"
>
<!--
<u-tabs
:list=
"processList"
:is-scroll=
"true"
:current=
"currentFlag"
name=
"processName"
@
change=
"getWorkstationList"
>
</u-tabs>
-->
<uv-tabs
:list=
"processList"
:current=
"currentFlag"
keyName=
"processName"
@
change=
"getWorkstationList"
v-if=
"showWorkstationFlag"
></uv-tabs>
title=
"请选择工作单元"
content=
"操作内容"
>
<view
class=
"station_list"
>
<u-empty
text=
"暂无工作
站"
mode=
"list"
v-if=
"workstation
List.length==0"
<u-empty
text=
"暂无工作
单元"
mode=
"list"
v-if=
"workUnit
List.length==0"
style=
"margin: 0 auto;display: block;height: 360rpx;padding: 100rpx 0;"
></u-empty>
<template
v-else
>
<u-card
class=
"station_card"
:show-foot=
"false"
:title=
"'工作
站'+card.workstationCode"
:key=
"index
"
v-for=
"(card,index) in work
station
List"
>
<u-card
class=
"station_card"
:show-foot=
"false"
:title=
"'工作
单元'+card.workunitCode
"
v-for=
"(card,index) in work
Unit
List"
>
<view
class=
"station_card_text"
slot=
"body"
>
{{
'工作
站名称:'
+
card
.
workstation
Name
}}
<u-button
type=
"primary"
@
click=
"setWork
station
(card)"
{{
'工作
单元名称:'
+
card
.
workunit
Name
}}
<u-button
type=
"primary"
@
click=
"setWork
Unit
(card)"
style=
"margin-top: 30rpx;"
>
选择
</u-button>
</view>
...
...
@@ -45,7 +40,7 @@
title=
"请选择操作"
>
<view
class=
"logoutmenu"
>
<u-button
shape=
"circle"
class=
"menu_button"
@
click=
""
type=
"primary"
>
更改密码
</u-button>
<u-button
shape=
"circle"
class=
"menu_button"
@
click=
"handleCommand('work
station
')"
type=
"warning"
>
切换工作站
<u-button
shape=
"circle"
class=
"menu_button"
@
click=
"handleCommand('work
unit
')"
type=
"warning"
>
切换工作站
</u-button>
<u-button
shape=
"circle"
class=
"menu_button"
@
click=
"handleCommand('exit')"
type=
"error"
>
退出登录
</u-button>
</view>
...
...
@@ -54,151 +49,162 @@
</template>
<
script
>
import
TabHeader
from
"./TabHeader.vue"
import
ProContent
from
"../mes/pro/index.vue"
import
GxContent
from
"../mes/gx/index.vue"
import
QcContent
from
"../mes/qc/index.vue"
import
ProdReport
from
"../mes/prodReport/index.vue"
import
DictData
from
'@/components/DictData'
import
TabHeader
from
"./TabHeader.vue"
import
ProContent
from
"../mes/pro/index.vue"
import
GxContent
from
"../mes/gx/index.vue"
import
QcContent
from
"../mes/qc/index.vue"
import
ProdReport
from
"../mes/prodReport/index.vue"
import
DictData
from
'@/components/DictData'
export
default
{
name
:
'HomePage'
,
components
:
{
TabHeader
,
ProContent
,
GxContent
,
QcContent
,
ProdReport
},
data
()
{
return
{
tabIndex
:
"PRO"
,
showWorkstationFlag
:
false
,
showLogoutMenu
:
false
,
activeProcess
:
null
,
userInfo
:
{
nickName
:
'张三'
,
avatar
:
require
(
"@/static/images/head.png"
),
},
processList
:
[],
//工序清单
workstationList
:
[],
//工作站清单
currentFlag
:
0
}
},
created
()
{
uni
.
$on
(
'switchTab'
,
(
indexCode
)
=>
{
this
.
tabIndex
=
indexCode
;
})
uni
.
$on
(
'changeWorkstation'
,
(
indexCode
)
=>
{
this
.
handleCommand
(
'workstation'
);
})
this
.
checkWorkstation
();
this
.
getProcessList
();
},
destroyed
()
{
uni
.
$off
(
'switchTab'
);
uni
.
$off
(
'changeWorkstation'
);
},
methods
:
{
//用户部分点击
handleUserTaped
()
{
console
.
log
(
"TAPED"
)
// this.$refs.menu_dialog.open();
this
.
showLogoutMenu
=
true
;
export
default
{
name
:
'HomePage'
,
components
:
{
TabHeader
,
ProContent
,
GxContent
,
QcContent
,
ProdReport
},
//检查工作站设置情况
checkWorkstation
()
{
if
(
this
.
vuex_workstation
==
null
)
{
this
.
showWorkstationFlag
=
true
;
this
.
$u
.
toast
(
"请设置当前触控屏的工作站!"
);
data
()
{
return
{
tabIndex
:
"PRO"
,
showWorkstationFlag
:
false
,
showLogoutMenu
:
false
,
activeProcess
:
null
,
userInfo
:
{
nickName
:
'张三'
,
avatar
:
require
(
"@/static/images/head.png"
),
},
processList
:
[],
//工序清单
workstationList
:
[],
//工作站清单
workUnitList
:[],
//工作站清单
currentFlag
:
0
}
},
//获取工序清单
getProcessList
()
{
this
.
$u
.
api
.
getProcessList
({}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
processList
=
res
.
data
;
this
.
activeProcess
=
res
.
data
[
0
].
processCode
;
this
.
getWorkstationList
({
index
:
0
});
}
else
{
this
.
$u
.
toast
(
"获取工序清单异常"
+
res
.
msg
);
}
created
()
{
uni
.
$on
(
'switchTab'
,
(
indexCode
)
=>
{
this
.
tabIndex
=
indexCode
;
})
uni
.
$on
(
'changeWorkunit'
,
(
indexCode
)
=>
{
this
.
handleCommand
(
'workunit'
);
})
});
this
.
checkWorkstation
();
this
.
getWorkUnitList
();
},
//获取工作站清单
getWorkstationList
(
item
)
{
this
.
currentFlag
=
item
.
index
;
this
.
activeProcess
=
this
.
processList
[
item
.
index
].
processCode
;
this
.
$u
.
api
.
getWorkstationList
({
processCode
:
this
.
activeProcess
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
workstationList
=
res
.
data
;
}
else
{
this
.
$u
.
toast
(
"获取工作站清单异常"
+
res
.
msg
);
}
});
},
//设置当前触控屏的工作站
setWorkstation
(
station
)
{
this
.
$u
.
vuex
(
'vuex_workstation'
,
station
);
this
.
showWorkstationFlag
=
false
;
uni
.
$emit
(
'switchWorkstation'
,
station
);
destroyed
()
{
uni
.
$off
(
'switchTab'
);
uni
.
$off
(
'changeWorkunit'
);
},
handleCommand
(
command
)
{
if
(
command
===
'exit'
)
{
this
.
loading
=
true
;
this
.
$u
.
api
.
logout
().
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
msg
)
{
this
.
$u
.
toast
(
res
.
msg
);
methods
:
{
//用户部分点击
handleUserTaped
()
{
console
.
log
(
"TAPED"
)
// this.$refs.menu_dialog.open();
this
.
showLogoutMenu
=
true
;
},
//检查工作站设置情况
checkWorkstation
()
{
if
(
this
.
vuex_workunit
==
null
)
{
this
.
showWorkstationFlag
=
true
;
this
.
$u
.
toast
(
"请设置当前触控屏的工作单元!"
);
}
},
//获取工序清单
getProcessList
()
{
this
.
$u
.
api
.
getProcessList
({}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
processList
=
res
.
data
;
this
.
activeProcess
=
res
.
data
[
0
].
processCode
;
this
.
getWorkstationList
({
index
:
0
});
}
else
{
this
.
$u
.
toast
(
"获取工序清单异常"
+
res
.
msg
);
}
});
},
//获取工作站清单
getWorkstationList
(
item
)
{
this
.
currentFlag
=
item
.
index
;
this
.
activeProcess
=
this
.
processList
[
item
.
index
].
processCode
;
this
.
$u
.
api
.
getWorkstationList
({
processCode
:
this
.
activeProcess
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
setTimeout
(()
=>
{
DictData
.
logout
();
uni
.
reLaunch
({
url
:
'/pages/sys/login/login'
});
},
500
);
this
.
workstationList
=
res
.
data
;
}
else
{
this
.
$u
.
toast
(
"获取工作站清单异常"
+
res
.
msg
);
}
})
}
else
if
(
command
==
'workstation'
)
{
this
.
showLogoutMenu
=
false
;
this
.
showWorkstationFlag
=
true
;
});
},
getWorkUnitList
(
item
)
{
this
.
$u
.
api
.
getWorkUnitList
({
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
workUnitList
=
res
.
rows
;
}
else
{
this
.
$u
.
toast
(
"获取工作单元清单异常"
+
res
.
msg
);
}
});
},
//设置当前触控屏的工作站
setWorkUnit
(
station
)
{
this
.
$u
.
vuex
(
'vuex_workunit'
,
station
);
this
.
showWorkstationFlag
=
false
;
uni
.
$emit
(
'switchWorkunit'
,
station
);
},
handleCommand
(
command
)
{
if
(
command
===
'exit'
)
{
this
.
loading
=
true
;
this
.
$u
.
api
.
logout
().
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
msg
)
{
this
.
$u
.
toast
(
res
.
msg
);
}
if
(
res
.
code
===
200
)
{
setTimeout
(()
=>
{
DictData
.
logout
();
uni
.
reLaunch
({
url
:
'/pages/sys/login/login'
});
},
500
);
}
})
}
else
if
(
command
==
'workunit'
)
{
this
.
showLogoutMenu
=
false
;
this
.
showWorkstationFlag
=
true
;
}
}
}
}
}
</
script
>
<
style
>
.common-container
{
width
:
100vw
;
height
:
100vh
;
display
:
flex
;
}
.common-container
{
width
:
100vw
;
height
:
100vh
;
display
:
flex
;
}
.common-head
{
height
:
40px
;
background-color
:
rgb
(
3
,
26
,
60
);
display
:
flex
;
align-items
:
center
;
padding
:
0
15px
;
box-sizing
:
border-box
;
}
.common-head
{
height
:
40px
;
background-color
:
rgb
(
3
,
26
,
60
);
display
:
flex
;
align-items
:
center
;
padding
:
0
15px
;
box-sizing
:
border-box
;
}
.header
{
width
:
120px
;
background-color
:
#132138
;
color
:
aliceblue
;
font-size
:
25px
;
font-family
:
华文楷体
;
line-height
:
80
rpx
;
height
:
inherit
;
.header
{
width
:
120px
;
background-color
:
#132138
;
color
:
aliceblue
;
font-size
:
25px
;
font-family
:
华文楷体
;
line-height
:
80
rpx
;
height
:
inherit
;
.header-logo
{
width
:
200
rpx
;
...
...
@@ -206,83 +212,83 @@ export default {
margin
:
40
rpx
auto
;
display
:
block
;
}
}
}
.header
.divItem
{
height
:
100%
;
align-items
:
center
;
}
.header
.divItem
{
height
:
100%
;
align-items
:
center
;
}
.header
.workstation
{
text-align
:
center
;
flex-grow
:
1
;
}
.header
.workstation
{
text-align
:
center
;
flex-grow
:
1
;
}
.header
.user
{
width
:
30%
;
}
.header
.user
{
width
:
30%
;
}
.header
.user
.user-icon
{
float
:
right
;
}
.header
.user
.user-icon
{
float
:
right
;
}
img
{
width
:
40px
;
height
:
40px
;
border-radius
:
20px
;
margin-left
:
10px
;
}
img
{
width
:
40px
;
height
:
40px
;
border-radius
:
20px
;
margin-left
:
10px
;
}
.header
.user
.user-text
{
float
:
right
;
}
.header
.user
.user-text
{
float
:
right
;
}
.logoutmenu
{
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
}
.logoutmenu
{
width
:
100%
;
display
:
flex
;
justify-content
:
center
;
}
.menu_button
{
width
:
100px
;
margin
:
10px
;
}
.menu_button
{
width
:
100px
;
margin
:
10px
;
}
.station_modal
{
}
.station_modal
{
}
.station_list
{
display
:
flex
;
flex-wrap
:
wrap
;
}
.station_list
{
display
:
flex
;
flex-wrap
:
wrap
;
}
.station_card
{
width
:
250px
;
height
:
150px
;
}
.station_card
{
width
:
250px
;
height
:
150px
;
}
.common-main
{
flex
:
1
;
height
:
100%
;
padding
:
6px
6px
6px
0
;
margin
:
0
;
width
:
100%
;
overflow
:
auto
;
background-image
:
linear-gradient
(
to
top
right
,
rgb
(
19
26
56
),
rgb
(
33
64
128
));
}
.common-main
{
flex
:
1
;
height
:
100%
;
padding
:
6px
6px
6px
0
;
margin
:
0
;
width
:
100%
;
overflow
:
auto
;
background-image
:
linear-gradient
(
to
top
right
,
rgb
(
19
26
56
),
rgb
(
33
64
128
));
}
.setting-body
{
position
:
absolute
;
bottom
:
20
rpx
;
width
:
200
rpx
;
margin
:
0
auto
;
font-size
:
36
rpx
;
font-weight
:
initial
;
text-align
:
center
;
.setting-body
{
position
:
absolute
;
bottom
:
20
rpx
;
width
:
200
rpx
;
margin
:
0
auto
;
font-size
:
36
rpx
;
font-weight
:
initial
;
text-align
:
center
;
.setting-icon
{
margin
:
10
rpx
10
rpx
;
}
}
}
</
style
>
pages/mes/prodReport/index.vue
View file @
b46a1d0f
...
...
@@ -63,9 +63,9 @@
</view>
<view
class=
"prod-body-right"
>
<view
style=
"text-align: center;line-height: 80rpx;font-size: 28rpx;font-weight: 600;"
>
{{
this
.
vuex_work
station
==
null
?
'请选择工作站'
:
this
.
vuex_workstation
.
workstation
Name
}}
{{
this
.
vuex_work
unit
==
null
?
'请选择工作单元'
:
this
.
vuex_workunit
.
workunit
Name
}}
</view>
<u-button
type=
"primary"
@
click=
"changeWorkstation"
>
切换工作
站
</u-button>
<u-button
type=
"primary"
@
click=
"changeWorkstation"
>
切换工作
单元
</u-button>
<br/>
<u-button
type=
"warning"
@
click=
"commonClick('KnifeTemp')"
>
刀模版上下机
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('Refresh')"
>
刷新
</u-button>
...
...
@@ -74,7 +74,7 @@
<u-button
type=
"success"
@
click=
"commonClick('Prod')"
>
生产报工
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('FinshTask')"
>
完成作业
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('abnormal')"
>
异常报告
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('FeedingInspection')"
>
投料
检
验
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('FeedingInspection')"
>
投料
校
验
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('RecoilMaterial')"
>
反冲料登记
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('MaterialRequest')"
>
领料申请
</u-button>
<u-button
type=
"primary"
@
click=
"commonClick('MaterialReturn')"
>
退料申请
</u-button>
...
...
@@ -196,7 +196,7 @@
<u-input
:border=
"true"
v-model=
"ExceptionForms.processName"
></u-input>
</u-form-item>
<u-form-item
label=
"作业单元"
prop=
"workstationName"
>
<u-input
:border=
"true"
v-model=
"ExceptionForms.workstation
Id
"
></u-input>
<u-input
:border=
"true"
v-model=
"ExceptionForms.workstation
Name
"
></u-input>
</u-form-item>
...
...
@@ -210,31 +210,25 @@
<scroll-view
scroll-y=
"true"
scroll-x=
"true"
class=
"scroll-list"
:style=
"
{ 'height': (this.screenHeight -280) + 'px' }">
<uni-table
border
stripe
:loading=
"loading"
emptyText=
"未查询到数据"
>
<uni-tr>
<uni-th
width=
"100px"
align=
"center"
>
操作
</uni-th>
<uni-th
width=
"65px"
align=
"center"
>
状态
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料编码
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料名称
</uni-th>
<uni-th
width=
"150px"
align=
"center"
>
规格型号
</uni-th>
<uni-th
width=
"60px"
align=
"center"
>
单位
</uni-th>
<uni-th
width=
"80px"
align=
"center"
>
领料数量
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
批次号
</uni-th>
<uni-th
width=
"100px"
align=
"center"
>
备注
</uni-th>
<uni-th
width=
"65px"
align=
"center"
>
状态
</uni-th>
<uni-th
width=
"100px"
align=
"center"
>
操作
</uni-th>
</uni-tr>
<uni-tr
v-for=
"(line,index) in feedingInspectionList"
:key=
"index"
>
<uni-td
align=
"center"
>
{{
line
.
itemCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
specification
}}
</uni-td>
<uni-td>
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
quantityIssued
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
remark
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
state
}}
</uni-td>
<uni-td
align=
"center"
>
<view
class=
"uni-group"
>
<button
class=
"uni-button"
size=
"mini"
type=
"primary"
@
click=
"
qcLineClick
(line)"
>
校验
<button
class=
"uni-button"
size=
"mini"
type=
"primary"
@
click=
"
validateFeedingInspection
(line)"
>
校验
</button>
</view>
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
attr3
==
1
?
'校验'
:
'未校验'
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
(
{{
line
.
specification
}}
)/
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
quantityIssued
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchCode
}}
</uni-td>
</uni-tr>
</uni-table>
</scroll-view>
...
...
@@ -251,10 +245,7 @@
<uni-th
width=
"100px"
align=
"center"
>
操作
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料编码
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料名称
</uni-th>
<uni-th
width=
"150px"
align=
"center"
>
规格型号
</uni-th>
<uni-th
width=
"60px"
align=
"center"
>
单位
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
批次号
</uni-th>
<uni-th
width=
"100px"
align=
"center"
>
备注
</uni-th>
</uni-tr>
<uni-tr
v-for=
"(line,index) in recoilMaterialList"
:key=
"index"
>
<uni-td
align=
"center"
>
...
...
@@ -264,11 +255,8 @@
</view>
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
specification
}}
</uni-td>
<uni-td>
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
remark
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
(
{{
line
.
specification
}}
)/
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchNo
}}
</uni-td>
</uni-tr>
</uni-table>
</scroll-view>
...
...
@@ -280,17 +268,12 @@
v-model="materialRequestVisible" width="1300rpx">
<view
class=
"list-bar"
>
<scroll-view
scroll-y=
"true"
class=
"scroll-list"
:style=
"
{ 'height': (this.screenHeight -280) + 'px' }">
<uni-table
ref=
"
qc
Table"
border
stripe
:loading=
"loading"
emptyText=
"未查询到数据"
>
<uni-table
ref=
"
materialRequest
Table"
border
stripe
:loading=
"loading"
emptyText=
"未查询到数据"
>
<uni-tr>
<uni-th
width=
"100px"
align=
"center"
>
操作
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料编码
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料名称
</uni-th>
<uni-th
width=
"150px"
align=
"center"
>
规格型号
</uni-th>
<uni-th
width=
"60px"
align=
"center"
>
单位
</uni-th>
<uni-th
width=
"80px"
align=
"center"
>
补料数量
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
批次号
</uni-th>
<uni-th
width=
"100px"
align=
"center"
>
备注
</uni-th>
<uni-th
width=
"65px"
align=
"center"
>
状态
</uni-th>
<uni-th
width=
"80px"
align=
"center"
>
领取数量
</uni-th>
</uni-tr>
<uni-tr
v-for=
"(line,index) in materialRequestList"
:key=
"index"
>
<uni-td
align=
"center"
>
...
...
@@ -300,13 +283,8 @@
</view>
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
specification
}}
</uni-td>
<uni-td>
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
quantityIssued
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
remark
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
state
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
(
{{
line
.
specification
}}
)/
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
applyNum
}}
</uni-td>
</uni-tr>
</uni-table>
</scroll-view>
...
...
@@ -336,7 +314,7 @@
</view>
</u-modal>
<u-modal
title=
"退料申请"
@
confirm=
"
feedback
()"
show-cancel-button
<u-modal
title=
"退料申请"
@
confirm=
"
materialReturnSave
()"
show-cancel-button
:title-style=
"
{'background-color':'#1E3770','color': '#FFFFFF' ,'line-height': '37px','padding-top': '0px'}"
v-model="materialReturnVisible" width="1300rpx">
<view
class=
"list-bar"
>
...
...
@@ -346,12 +324,9 @@
<uni-th
width=
"100px"
align=
"center"
>
操作
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料编码
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
产品物料名称
</uni-th>
<uni-th
width=
"150px"
align=
"center"
>
规格型号
</uni-th>
<uni-th
width=
"60px"
align=
"center"
>
单位
</uni-th>
<uni-th
width=
"80px"
align=
"center"
>
领料数量
</uni-th>
<uni-th
width=
"80px"
align=
"center"
>
退料数量
</uni-th>
<uni-th
width=
"110px"
align=
"center"
>
批次号
</uni-th>
<uni-th
width=
"100px"
align=
"center"
>
备注
</uni-th>
</uni-tr>
<uni-tr
v-for=
"(line,index) in materialReturnList"
:key=
"index"
>
<uni-td
align=
"center"
>
...
...
@@ -361,13 +336,10 @@
</view>
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
specification
}}
</uni-td>
<uni-td>
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
applyNum
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
itemName
}}
(
{{
line
.
specification
}}
)/
{{
line
.
unitOfMeasure
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
quantityIssued
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
applyNum
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
batchCode
}}
</uni-td>
<uni-td
align=
"center"
>
{{
line
.
remark
}}
</uni-td>
</uni-tr>
</uni-table>
</scroll-view>
...
...
@@ -396,7 +368,7 @@
</u-form>
</view>
</u-modal>
<u-modal
title=
"详细数据"
:showConfirmButton=
"true"
<u-modal
title=
"详细数据"
:showConfirmButton=
"true"
:title-style=
"
{'background-color':'#1E3770','color': '#FFFFFF' ,'line-height': '37px','padding-top': '0px'}"
v-model="showRowDeatilFlag" width="1800rpx">
<view
class=
""
>
...
...
@@ -726,7 +698,7 @@ export default {
}
},
mounted
()
{
//监听工作站切换事件
uni
.
$on
(
'switchWork
station
'
,
(
station
)
=>
{
uni
.
$on
(
'switchWork
unit
'
,
(
station
)
=>
{
this
.
getTaskList
();
})
},
...
...
@@ -738,7 +710,7 @@ export default {
}
})
//监听工作站切换事件
uni
.
$on
(
'switchWork
station
'
,
(
station
)
=>
{
uni
.
$on
(
'switchWork
unit
'
,
(
station
)
=>
{
// this.reset();
this
.
getTaskList
();
})
...
...
@@ -747,7 +719,7 @@ export default {
this
.
getTaskList
();
//刷新任务状态
})
if
(
this
.
vuex_work
station
!=
null
)
{
if
(
this
.
vuex_work
unit
!=
null
)
{
this
.
getTaskList
();
}
// if (this.vuex_task != null) {
...
...
@@ -755,7 +727,7 @@ export default {
// }
},
destroyed
()
{
uni
.
$off
(
'switchWork
station
'
);
uni
.
$off
(
'switchWork
unit
'
);
uni
.
$off
(
'taskStatusChanged'
);
},
methods
:
{
...
...
@@ -769,7 +741,7 @@ export default {
console
.
log
(
'99999999'
,
arg
)
},
changeWorkstation
()
{
uni
.
$emit
(
'changeWork
station
'
);
uni
.
$emit
(
'changeWork
unit
'
);
},
commonClick
(
oper
)
{
if
([
'Refresh'
,
'MaterialUsageRecord'
].
indexOf
(
oper
)
===
-
1
&&
this
.
tableSelectData
.
length
===
0
)
{
...
...
@@ -939,8 +911,9 @@ export default {
},
getTaskList
()
{
this
.
form
=
{}
const
t
=
this
;
this
.
$u
.
api
.
getTaskList
({
work
stationId
:
this
.
vuex_workstation
.
workstation
Id
,
work
unitId
:
t
.
vuex_workunit
.
workunit
Id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
tableData
=
res
.
rows
;
...
...
@@ -1062,7 +1035,9 @@ export default {
processId
:
item
.
processId
,
processCode
:
item
.
processCode
,
processName
:
item
.
processName
,
workstationId
:
item
.
workunitId
,
workstationId
:
this
.
vuex_workunit
.
workunitId
,
workstationCode
:
this
.
vuex_workunit
.
workunitCode
,
workstationName
:
this
.
vuex_workunit
.
workunitName
,
abnormalType
:
''
,
abnormalReason
:
''
,
abnormalTime
:
''
...
...
@@ -1116,7 +1091,8 @@ export default {
},
feedingInspectionLoadAndScan
(){
const
t
=
this
;
this
.
$u
.
api
.
listFeedingInspection
({
"batchNo"
:
""
}).
then
(
res
=>
{
const
taskInfo
=
this
.
tableSelectData
[
0
];
this
.
$u
.
api
.
listFeedingInspection
({
"taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
feedingInspectionList
=
res
.
data
;
t
.
feedingInspectionScan
();
...
...
@@ -1127,7 +1103,7 @@ export default {
const
t
=
this
;
uni
.
scanCode
({
success
:
function
(
res
)
{
t
.
$u
.
api
.
validateFeedingInspection
({
"
batchNo
"
:
res
.
result
}).
then
(
res2
=>
{
t
.
$u
.
api
.
validateFeedingInspection
({
"
plnr
"
:
res
.
result
}).
then
(
res2
=>
{
if
(
res2
.
code
===
200
)
{
t
.
feedingInspectionLoadAndScan
();
}
...
...
@@ -1136,13 +1112,27 @@ export default {
});
this
.
feedingInspectionVisible
=
true
;
},
validateFeedingInspection
(
line
){
const
t
=
this
;
const
taskInfo
=
this
.
tableSelectData
[
0
];
this
.
$u
.
api
.
validateFeedingInspectionById
({
"lineId"
:
line
.
lineId
}).
then
(
res2
=>
{
if
(
res2
.
code
===
200
)
{
t
.
$u
.
api
.
listFeedingInspection
({
"taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
feedingInspectionList
=
res
.
data
;
}
});
}
});
},
recoilMaterialShow
(){
this
.
recoilMaterialVisible
=
true
;
this
.
recoilMaterialLoadAndScan
();
},
recoilMaterialLoadAndScan
(){
const
t
=
this
;
this
.
$u
.
api
.
recoilMaterialList
({
"batchNo"
:
""
}).
then
(
res
=>
{
const
taskInfo
=
this
.
tableSelectData
[
0
];
this
.
$u
.
api
.
recoilMaterialList
({
"taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
recoilMaterialList
=
res
.
data
;
t
.
recoilMaterialScan
();
...
...
@@ -1151,10 +1141,10 @@ export default {
},
recoilMaterialScan
(){
const
t
=
this
;
const
taskInfo
=
this
.
tableSelectData
[
0
];
uni
.
scanCode
({
success
:
function
(
res
)
{
t
.
$u
.
toast
(
res
.
result
);
t
.
$u
.
api
.
addRecoilMaterial
({
"batchNo"
:
res
.
result
}).
then
(
res2
=>
{
t
.
$u
.
api
.
addRecoilMaterial
({
"taskId"
:
taskInfo
.
taskId
,
"plnr"
:
res
.
result
}).
then
(
res2
=>
{
if
(
res2
.
code
===
200
)
{
t
.
recoilMaterialLoadAndScan
();
}
...
...
@@ -1165,8 +1155,9 @@ export default {
},
recoilMaterialDelete
(
line
){
const
t
=
this
;
this
.
$u
.
api
.
deleteRecoilMaterial
({
"id"
:
line
.
id
}).
then
(
res2
=>
{
t
.
$u
.
api
.
recoilMaterialList
({
"batchNo"
:
""
}).
then
(
res
=>
{
const
taskInfo
=
this
.
tableSelectData
[
0
];
this
.
$u
.
api
.
deleteRecoilMaterial
({
"id"
:
line
.
recoilMaterialId
}).
then
(
res2
=>
{
t
.
$u
.
api
.
recoilMaterialList
({
"taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
recoilMaterialList
=
res
.
data
;
}
...
...
@@ -1175,10 +1166,10 @@ export default {
},
materialRequestShow
(){
cons
ole
.
log
(
this
.
$u
.
config
.
v
)
;
cons
t
taskInfo
=
this
.
tableSelectData
[
0
]
;
const
t
=
this
;
this
.
materialRequestVisible
=
true
;
this
.
$u
.
api
.
listMaterialRequest
({
"
batchNo"
:
""
}).
then
(
res
=>
{
this
.
$u
.
api
.
listMaterialRequest
({
"
taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
materialRequestList
=
res
.
data
;
}
...
...
@@ -1190,33 +1181,72 @@ export default {
this
.
materialRequestSelected
=
line
;
},
materialRequestSetting
(){
this
.
materialRequestSelected
.
quantityIssued
=
this
.
materialRequestFormData
.
applyNum
;
this
.
materialRequestSelected
.
applyNum
=
this
.
materialRequestFormData
.
applyNum
;
this
.
materialRequestFormVisible
=
false
;
},
materialRequestSave
(){
const
rst
=
[];
const
taskInfo
=
this
.
tableSelectData
[
0
];
const
t
=
this
;
this
.
materialRequestList
.
forEach
(
s
=>
{
if
(
s
.
applyNum
!=
null
){
rst
.
push
({
"itemId"
:
s
.
itemId
,
"taskId"
:
taskInfo
.
taskId
,
"applyNum"
:
s
.
applyNum
,
"applyType"
:
1
});
}
});
this
.
$u
.
api
.
addMaterialRequest
(
rst
).
then
(
res
=>
{
t
.
materialRequestFormVisible
=
false
;
if
(
res
.
code
===
200
)
{
t
.
$u
.
toast
(
'保存成功'
);
}
});
},
materialReturnShow
(){
console
.
log
(
this
.
$u
.
config
.
v
)
;
const
t
=
this
;
this
.
materialReturnVisible
=
true
;
this
.
$u
.
api
.
listMaterialReturn
({
"batchNo"
:
""
}).
then
(
res
=>
{
const
t
=
this
;
this
.
materialReturnVisible
=
true
;
const
taskInfo
=
this
.
tableSelectData
[
0
]
;
this
.
$u
.
api
.
listMaterialReturn
({
"taskId"
:
taskInfo
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
t
.
materialReturnList
=
res
.
data
;
}
});
});
},
materialReturnFormShow
(
line
){
this
.
materialReturnFormVisible
=
true
;
this
.
materialReturnFormData
=
{
itemName
:
line
.
itemName
};
this
.
materialReturnSelected
=
line
;
this
.
materialReturnFormVisible
=
true
;
this
.
materialReturnFormData
=
{
itemName
:
line
.
itemName
};
this
.
materialReturnSelected
=
line
;
},
materialReturnSetting
(){
this
.
materialReturnSelected
.
quantityIssued
=
this
.
materialReturnFormData
.
applyNum
;
this
.
materialReturnFormVisible
=
false
;
this
.
materialReturnSelected
.
applyNum
=
this
.
materialReturnFormData
.
applyNum
;
this
.
materialReturnFormVisible
=
false
;
},
materialReturnSave
(){
const
taskInfo
=
this
.
tableSelectData
[
0
];
const
rst
=
[];
const
t
=
this
;
this
.
materialReturnList
.
forEach
(
s
=>
{
if
(
s
.
applyNum
!=
null
){
rst
.
push
({
"itemId"
:
s
.
itemId
,
"taskId"
:
taskInfo
.
taskId
,
"backNum"
:
s
.
applyNum
,
"issueLineId"
:
s
.
lineId
,
"workOrderId"
:
s
.
workorderId
,
"batchNo"
:
s
.
batchCode
,
"packNo"
:
s
.
packNo
});
}
});
this
.
$u
.
api
.
addMaterialReturn
(
rst
).
then
(
res
=>
{
t
.
materialReturnFormVisible
=
false
;
if
(
res
.
code
===
200
)
{
t
.
$u
.
toast
(
'保存成功'
);
}
});
},
stockInShow
(){
this
.
stockInVisible
=
true
;
...
...
store/index.js
View file @
b46a1d0f
...
...
@@ -12,7 +12,7 @@ try{
// 尝试获取本地是否存在lifeData变量,第一次启动APP时是不存在的
lifeData
=
uni
.
getStorageSync
(
'lifeData'
);
}
catch
(
e
){
}
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
...
...
@@ -41,14 +41,15 @@ const store = new Vuex.Store({
vuex_remember
:
lifeData
.
vuex_remember
?
lifeData
.
vuex_remember
:
''
,
vuex_locale
:
lifeData
.
vuex_locale
?
lifeData
.
vuex_locale
:
''
,
vuex_isAgent
:
lifeData
.
vuex_isAgent
?
lifeData
.
vuex_isAgent
:
''
,
// 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式
vuex_config
:
config
,
//当前设备绑定的工作站
vuex_workstation
:
null
,
vuex_workunit
:
null
,
//当前工作站正在进行的生产任务
vuex_task
:
null
,
// 自定义tabbar数据
// vuex_tabbar: [{
// iconPath: "/static/uview/example/component.png",
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment