Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
TF-MOM-WEB
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
TFMOM
TF-MOM-WEB
Commits
83ffd8b9
Commit
83ffd8b9
authored
Sep 22, 2023
by
jingnan
👀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
入库确认增加打印标签操作,验收单查看和实验单查看分开展示
parent
e4cd04f4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
278 additions
and
14 deletions
+278
-14
materialCheckNo.vue
...ts/JobResponseInTestProcess/component/materialCheckNo.vue
+2
-6
PrintTag.vue
.../PurchasingWarehousingProcess_view/component/PrintTag.vue
+182
-0
editDrawer.vue
...urchasingWarehousingProcess_view/component/editDrawer.vue
+1
-1
index.vue
...ts/components/PurchasingWarehousingProcess_view/index.vue
+93
-7
No files found.
applications/dee-mes/src/privateComponents/components/JobResponseInTestProcess/component/materialCheckNo.vue
View file @
83ffd8b9
...
...
@@ -78,15 +78,13 @@
<!-- <el-input v-model="form.isPerformRetest" :disabled="true" /> -->
</el-form-item>
</el-col>
<el-col
v-if=
"chemicalDisplay"
:span=
"24"
>
<
!-- <
el-col v-if="chemicalDisplay" :span="24">
<el-col :span="8">
<!-- <span>报告单号:</span> -->
<el-form-item label="报告单号" label-width="130px">
<el-input v-model="form.reportNo" clearable placeholder="报告单号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<!-- 是否合格 -->
<el-form-item label="是否合格" label-width="130px">
<el-select v-model="form.reportNoIsPass" clearable placeholder="请选择" disabled>
<el-option label="合格" value="Y" />
...
...
@@ -95,7 +93,6 @@
</el-form-item>
</el-col>
<el-col :span="8">
<!-- 是否报废 -->
<el-form-item label="是否报废" label-width="130px">
<el-select v-model="form.isDestroy" clearable placeholder="请选择" disabled>
<el-option label="是" :value="true" />
...
...
@@ -103,7 +100,6 @@
</el-select>
</el-form-item></el-col>
<el-col :span="8">
<!-- 报废数量 -->
<el-form-item label="试验数量" label-width="130px">
<el-input v-model="form.experimentAmount" clearable placeholder="试验数量" :disabled="true" />
</el-form-item>
...
...
@@ -121,7 +117,7 @@
</el-form-item>
</el-col>
</el-col>
</el-col>
-->
<el-col
:span=
"8"
>
<el-form-item
label=
"质量证明文件"
label-width=
"130px"
>
<el-select
v-model=
"form.qualityCert"
:disabled=
"allDisabled"
clearable
placeholder=
"请选择"
>
...
...
applications/dee-mes/src/privateComponents/components/PurchasingWarehousingProcess_view/component/PrintTag.vue
0 → 100644
View file @
83ffd8b9
<!--
* @Author: gjn
* @Date: 2023-09-22 13:39:27
* @Description:
-->
<!--
* @Author: Lean
* @Date: 2021-03-01 14:40:26
* @LastEditTime: 2023-09-22 13:39:28
* @Description: 打印标签
* @FilePath: applications/dee-mes/src/privateComponents/components/WarehousingConfirmationConfirm/component/PrintTag.vue
-->
<!--
@prop config
@prop Number config.width 设置宽度 default = 300
@prop Array config.prints 打印的数据
@prop String config.prints[].QRcode 二维码
@prop String config.prints[].propertys 二维码下显示的属性
* 测试参数结构
config: {
width: 300,
prints: [
{
text: 'asdasdasd',
propertys: [
{ label: '编码', value: '' },
{ label: '名称', value: '' }
]
},
{
text: 'asdasdasd',
propertys: [
{ label: '编码', value: '' },
{ label: '名称', value: '' }
]
}
]
}
-->
<
template
>
<section
ref=
"print"
class=
"print"
>
<section
v-for=
"(item, index) in config.prints || []"
:key=
"index"
:style=
"
{ width: '19%' }"
class="item"
>
<header>
<vue-qr
style=
"height:218px;"
:size=
"config.width"
:margin=
"0"
:text=
"item.text.toString()"
:qid=
"index.toString()"
/>
</header>
<footer>
<ul>
<li
v-for=
"property in item.propertys"
:key=
"property.label"
>
<p>
{{
property
.
label
}}
</p>
<span>
{{
property
.
value
}}
</span>
</li>
</ul>
</footer>
</section>
</section>
</
template
>
<
script
>
import
VueQr
from
'vue-qr'
export
default
{
name
:
'Print'
,
components
:
{
VueQr
},
props
:
{
config
:
{
type
:
Object
,
default
:
()
=>
{
return
{
width
:
300
,
prints
:
[]
}
}
}
},
data
()
{
return
{
timer
:
null
,
flag
:
true
}
},
beforeDestroy
()
{
this
.
timer
=
null
},
methods
:
{
print
()
{
if
(
this
.
flag
)
{
this
.
flag
=
false
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
$refs
.
print
.
innerHTML
)
{
this
.
printTag
()
clearInterval
(
this
.
timer
)
}
},
300
)
setTimeout
(()
=>
{
this
.
flag
=
true
},
1000
)
}
},
printTag
()
{
var
iframe
=
document
.
createElement
(
'IFRAME'
)
var
doc
=
null
iframe
.
setAttribute
(
'style'
,
'position:absolute; width:0; height:0; margin-top: -1000px; margin-left: -1000px;'
)
document
.
body
.
appendChild
(
iframe
)
doc
=
iframe
.
contentWindow
.
document
doc
.
write
(
`
<style>
ul, li {
margin: 0;
padding: 0;
list-style: none;
font-size: 17px;
}
.item {
min-height:700px;
}
li {
position: relative;
width: 306px;
display: flex;
padding: 0 5px;
align-items: center;
border-left: 2px solid #222;
border-right: 2px solid #222;
border-bottom: 2px solid #222;
}
li::after{
content: '';
position: absolute;
left: calc(35% - 5px);
top: 0;
height: 100%;
border-left: 2px solid #222;
width: 0;
}
ul {
width: 320px;
border-top: 4px solid #222;
}
li p {
margin: 0;
width: 35%;
padding: 3.5px 0;
}
li span {
display: inline-block;
width: 65%;
text-align: left;
padding-left: 6px;
}
img {
width: 320px;
height:290px;
margin-bottom: 4px;
}
</style>
`
)
doc
.
write
(
this
.
$refs
.
print
.
innerHTML
)
doc
.
close
()
iframe
.
contentWindow
.
focus
()
iframe
.
contentWindow
.
print
()
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.print
{
position
:
absolute
;
z-index
:
-999
;
left
:
-1000px
;
top
:
-1110px
;
}
</
style
>
applications/dee-mes/src/privateComponents/components/PurchasingWarehousingProcess_view/component/editDrawer.vue
View file @
83ffd8b9
...
...
@@ -33,7 +33,7 @@ export default {
},
data
()
{
return
{
title
:
'
编辑
'
,
title
:
''
,
visibile
:
false
,
config
:
null
,
rowData
:
null
...
...
applications/dee-mes/src/privateComponents/components/PurchasingWarehousingProcess_view/index.vue
View file @
83ffd8b9
...
...
@@ -17,23 +17,29 @@
v-if=
"basicData.id"
ref=
"treeTable"
:pagination=
"pagination"
:selection-row=
"
{selectable: selectable}"
:data="tableData"
:columns="columns"
:options="optionsTree"
@selection-change="selectionChange"
@pagination-size-change="changePageSize"
@pagination-current-change="changePageNum"
/>
>
<dee-tools
slot=
"header"
:tools=
"tools"
mode=
"normal"
:collapse=
"false"
/></dee-up-table>
<EditDrawer
ref=
"editDrawer"
:basic-data=
"basicData"
/>
<!-- 打印标签 -->
<PrintTag
ref=
"print"
:config=
"printConfig"
/>
</div>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
import
EditDrawer
from
'./component/editDrawer.vue'
import
PrintTag
from
'./component/PrintTag.vue'
import
WarehouseSelect
from
'./component/warehouseSelect.vue'
export
default
{
// componentName: '验收入库申请流程详情',
name
:
'PurchasingWarehousingProcessView'
,
// name写在组件的最前方,自定义组件为必填
components
:
{
EditDrawer
},
// name写在组件的最前方,自定义组件为必填
components
:
{
EditDrawer
,
PrintTag
},
// name写在组件的最前方,自定义组件为必填
props
:
{
basicData
:
{
type
:
Object
,
...
...
@@ -53,7 +59,29 @@ export default {
pageSize
:
20
,
total
:
0
,
pageSizes
:
[
10
,
20
,
50
,
100
]
},
tools
:
[
{
name
:
'打印标签'
,
icon
:
'/icons/components/new/add.png'
,
handler
:
{
click
:
()
=>
this
.
print
()
}
}
],
// 打印标签
printConfig
:
{
visible
:
false
,
width
:
300
,
prints
:
[]
},
selections
:
[],
selectable
:
(
row
,
index
)
=>
{
if
(
row
.
isRoot
&&
row
.
state
===
'In_Confirm'
)
{
return
true
}
}
}
},
computed
:
{
...
...
@@ -65,18 +93,18 @@ export default {
name
:
'EditTableRow'
,
props
:
{
btns
:
[
{
{
// 理化试验阶段展示
operation
:
'理化编辑'
,
handleClick
:
(
row
,
index
)
=>
{
this
.
$refs
.
editDrawer
.
onShow
(
row
,
{
typeName
:
'InStorageRequestItem'
,
layKey
:
'1c4983a2-6f51-49e4-95ee-2f5506b8e217'
})
},
icon
:
'/icons/
b-inspection
.png'
,
icon
:
'/icons/
o-noc
.png'
,
showFun
:
(
row
)
=>
{
return
(
row
.
subTypeName
===
'InStoragePurchaseItem'
||
row
.
subTypeName
===
'InStorageRecallItem'
)
&&
row
.
state
===
'Check_Result_Maintain'
}
},
{
operation
:
'检验编辑'
,
{
// 物料检验及入库确认节点展示
operation
:
`检验信息`
,
handleClick
:
(
row
,
index
)
=>
{
if
(
row
.
state
===
'In_Confirm'
)
{
row
.
allDisabled
=
true
...
...
@@ -87,6 +115,16 @@ export default {
showFun
:
(
row
)
=>
{
return
(
row
.
subTypeName
===
'InStoragePurchaseItem'
||
row
.
subTypeName
===
'InStorageRecallItem'
)
&&
(
row
.
state
===
'Material_Check'
||
row
.
state
===
'In_Confirm'
)
}
},
{
// 物料检验阶段及入库确认阶段展示
operation
:
'理化查看'
,
handleClick
:
(
row
,
index
)
=>
{
this
.
$refs
.
editDrawer
.
onShow
(
row
,
{
typeName
:
'InStorageRequestItem'
,
layKey
:
'checkResultMaintain_only'
})
},
icon
:
'/icons/o-noc.png'
,
showFun
:
(
row
)
=>
{
return
(
row
.
subTypeName
===
'InStoragePurchaseItem'
||
row
.
subTypeName
===
'InStorageRecallItem'
)
&&
(
row
.
state
===
'In_Confirm'
||
row
.
state
===
'Material_Check'
)
}
}
]
}
...
...
@@ -253,7 +291,7 @@ export default {
{
'fieldName'
:
'id'
,
'operator'
:
'EQ'
,
'value'
:
this
.
basicData
.
id
'value'
:
this
.
basicData
.
id
||
''
},
{
'fieldName'
:
'parentId'
,
...
...
@@ -353,6 +391,54 @@ export default {
changePageNum
(
pageNum
)
{
this
.
pagination
.
currentPage
=
pageNum
this
.
searchInStorageRequestItem
()
},
selectionChange
(
row
)
{
this
.
selections
=
row
},
// 打印标签
print
()
{
if
(
!
this
.
selections
.
length
)
{
this
.
$utils
.
showMessageWarning
(
'请先选择需要操作的数据'
)
return
}
// 获取需要打印的数据
this
.
printConfig
.
prints
=
[]
let
JobResponseInStorageEntryId
=
''
this
.
selections
.
forEach
((
row
)
=>
{
this
.
$message
.
closeAll
()
if
(
!
row
.
exWorkUnitName
)
{
this
.
$utils
.
showMessageWarning
(
'打印标签需要先选择库位'
)
return
}
// 打印标签二维码扫描结果展示入库响应的id
if
(
row
.
inventoryJobResponses
&&
row
.
inventoryJobResponses
.
length
)
{
const
entryResponse
=
row
.
inventoryJobResponses
.
find
(
el
=>
el
.
subTypeName
===
'JobResponseInEntry'
||
el
.
subTypeName
.
includes
(
'JobResponseOutStorage'
))
entryResponse
&&
(
JobResponseInStorageEntryId
=
entryResponse
.
id
)
}
this
.
printConfig
=
Object
.
assign
({},
this
.
printConfig
,
{
visible
:
true
})
const
testJobResponse
=
this
.
$utils
.
getTargetJobResponses
(
row
,
'JobResponseInTest'
)
this
.
printConfig
.
prints
.
push
({
text
:
JobResponseInStorageEntryId
||
row
.
id
,
propertys
:
[
{
label
:
'编码'
,
value
:
row
.
extMaterial
.
resCode
},
{
label
:
'名称'
,
value
:
row
.
extMaterial
.
resName
},
{
label
:
'型号/牌号/件号'
,
value
:
row
.
extMaterial
.
modelNo
},
{
label
:
'规格'
,
value
:
row
.
extMaterial
.
spec
},
{
label
:
'批号'
,
value
:
row
.
lotNo
},
{
label
:
'系列号/序列号'
,
value
:
row
.
serialNo
},
{
label
:
'机型'
,
value
:
row
.
airModel
},
{
label
:
'验收单号'
,
value
:
testJobResponse
&&
testJobResponse
.
testNo
||
''
},
{
label
:
'库位号'
,
value
:
row
.
exWorkUnitName
||
''
},
{
label
:
'备注'
,
value
:
row
.
remark
||
''
}
]
})
})
// 打印操作
this
.
selections
.
every
((
item
)
=>
item
.
exWorkUnitName
)
&&
this
.
$refs
.
print
.
print
()
}
}
}
...
...
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