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
cc0c2be0
Commit
cc0c2be0
authored
Nov 06, 2023
by
“lixuyan”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
站位计划执行页面调整
parent
2e01e64e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
480 additions
and
8 deletions
+480
-8
aircraft.png
applications/architecture-dee/public/icons/aircraft.png
+0
-0
u513.png
applications/architecture-dee/public/icons/u513.png
+0
-0
u517.png
applications/architecture-dee/public/icons/u517.png
+0
-0
DeeTab.vue
applications/architecture-dee/src/components/DeeTab.vue
+7
-1
index.vue
...s/assemblyPlanManagement/stationPlanMaintenance/index.vue
+7
-5
missingParts.vue
...blyPlanManagement/stationPlanMaintenance/missingParts.vue
+2
-2
stationPlanList.vue
...PlanManagement/stationPlanMaintenance/stationPlanList.vue
+464
-0
No files found.
applications/architecture-dee/public/icons/aircraft.png
0 → 100644
View file @
cc0c2be0
1.36 KB
applications/architecture-dee/public/icons/u513.png
0 → 100644
View file @
cc0c2be0
1.52 KB
applications/architecture-dee/public/icons/u517.png
0 → 100644
View file @
cc0c2be0
1.36 KB
applications/architecture-dee/src/components/DeeTab.vue
View file @
cc0c2be0
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
:label=
"item.name"
:label=
"item.name"
:disabled=
"disabled"
:disabled=
"disabled"
:name=
"(index+1)+''"
:name=
"(index+1)+''"
:lazy=
"
true
"
:lazy=
"
isLazy
"
>
>
<!--
<el-scrollbar
class=
"scroll_dee_tab"
>
-->
<!--
<el-scrollbar
class=
"scroll_dee_tab"
>
-->
<span
v-if=
"item.id"
slot=
"label"
@
dblclick=
"dblclickTab(item)"
><img
:src=
"item.icon"
class=
"imgStyle"
alt=
""
><span>
{{
item
.
name
}}
</span></span>
<span
v-if=
"item.id"
slot=
"label"
@
dblclick=
"dblclickTab(item)"
><img
:src=
"item.icon"
class=
"imgStyle"
alt=
""
><span>
{{
item
.
name
}}
</span></span>
...
@@ -221,6 +221,12 @@ export default {
...
@@ -221,6 +221,12 @@ export default {
defaultActiveName
:
{
defaultActiveName
:
{
type
:
String
,
type
:
String
,
default
:
()
=>
''
default
:
()
=>
''
},
isLazy
:
{
type
:
Boolean
,
default
:
function
()
{
return
true
}
}
}
},
},
data
()
{
data
()
{
...
...
applications/dee-mes/src/views/assemblyPlanManagement/stationPlanMaintenance/index.vue
View file @
cc0c2be0
...
@@ -4,18 +4,19 @@
...
@@ -4,18 +4,19 @@
<div
slot=
"0"
style=
"height:100%;box-sizing:border-box"
>
<div
slot=
"0"
style=
"height:100%;box-sizing:border-box"
>
<split-pane
<split-pane
:min-percent=
"18"
:min-percent=
"18"
:default-percent=
"
78
"
:default-percent=
"
85
"
split=
"vertical"
split=
"vertical"
class=
"detail-pane"
class=
"detail-pane"
>
>
<template
slot=
"paneL"
>
<template
slot=
"paneL"
>
<div
class=
"three-member-wrap"
>
<div
class=
"three-member-wrap"
>
<dee-as-com
<
!--
<
dee-as-com
ref=
"detailCom"
ref=
"detailCom"
:key=
"layConfig.typeName"
:key=
"layConfig.typeName"
:lay-config=
"layConfig"
:lay-config=
"layConfig"
@
row-click=
"rowClick"
@
row-click=
"rowClick"
/>
/>
-->
<stationPlanList
@
getMissData=
"getMissData"
/>
</div>
</div>
</
template
>
</
template
>
<
template
slot=
"paneR"
>
<
template
slot=
"paneR"
>
...
@@ -40,9 +41,10 @@ import searchBar from './searchBar.vue'
...
@@ -40,9 +41,10 @@ import searchBar from './searchBar.vue'
import
station
from
'./station.vue'
import
station
from
'./station.vue'
import
gantt
from
'./gantt.vue'
import
gantt
from
'./gantt.vue'
import
missingParts
from
'./missingParts'
import
missingParts
from
'./missingParts'
import
stationPlanList
from
'./stationPlanList'
export
default
{
export
default
{
name
:
'StationPlanMaintenance'
,
name
:
'StationPlanMaintenance'
,
components
:
{
searchBar
,
station
,
gantt
,
missingParts
},
components
:
{
searchBar
,
station
,
gantt
,
missingParts
,
stationPlanList
},
data
()
{
data
()
{
return
{
return
{
sortiesId
:
''
,
sortiesId
:
''
,
...
@@ -98,7 +100,7 @@ export default {
...
@@ -98,7 +100,7 @@ export default {
},
},
methods
:
{
methods
:
{
rowClick
(
data
)
{
getMissData
(
data
)
{
this
.
rowData
=
data
this
.
rowData
=
data
this
.
getMissInfo
(
data
.
row
.
extProcessPlan
)
this
.
getMissInfo
(
data
.
row
.
extProcessPlan
)
},
},
...
...
applications/dee-mes/src/views/assemblyPlanManagement/stationPlanMaintenance/missingParts.vue
View file @
cc0c2be0
<
template
>
<
template
>
<div
class=
"missing-parts"
>
<div
class=
"missing-parts"
>
<div
class=
"search-box"
>
<
!--
<
div
class=
"search-box"
>
<div
class=
"title"
>
生产准备符合项
</div>
<div
class=
"title"
>
生产准备符合项
</div>
<div
class=
"num"
>
{{
detailInfo
.
leftItem
}}
/
<span
class=
"blue"
>
{{
detailInfo
.
rightItem
}}
</span></div>
<div
class=
"num"
>
{{
detailInfo
.
leftItem
}}
/
<span
class=
"blue"
>
{{
detailInfo
.
rightItem
}}
</span></div>
</div>
</div>
-->
<div
class=
""
>
<div
class=
""
>
<h4>
缺件信息列表
</h4>
<h4>
缺件信息列表
</h4>
<el-table
<el-table
...
...
applications/dee-mes/src/views/assemblyPlanManagement/stationPlanMaintenance/stationPlanList.vue
0 → 100644
View file @
cc0c2be0
<
template
>
<div
class=
"station-plan-list"
>
<div
class=
"left-container"
>
<div
class=
"search-box box"
>
<div
class=
"title"
><i
class=
"search-icon"
/><span>
架次搜索
</span></div>
<div
class=
"row"
>
<label>
机型:
</label>
<el-select
v-model=
"form.model"
size=
"mini"
placeholder=
"请选择"
:loading=
"modelLoading"
>
<el-option
v-for=
"item in modelData"
:key=
"item.id"
:label=
"item.defName"
:value=
"item.id"
/>
</el-select>
</div>
<div
class=
"row"
>
<label>
架次:
</label>
<el-select
v-model=
"form.sorties"
size=
"mini"
placeholder=
"请选择"
:loading=
"sortiesLoading"
>
<el-option
v-for=
"(item, i) in sortiesData"
:key=
"item.value + i"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
<div
class=
"row"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"getTreeData"
>
查询
</el-button>
</div>
</div>
<div
class=
"station-box box"
>
<el-tree
ref=
"tree"
v-loading=
"treeLoading"
class=
"plan-tree"
:data=
"treeData"
node-key=
"id"
:default-expanded-keys=
"defaultExpandedKeys"
:props=
"defaultProps"
:highlight-current=
"true"
:expand-on-click-node=
"false"
@
node-click=
"handleNodeClick"
>
<span
slot-scope=
"
{ node, data }" class="custom-tree-node" :class="data.state">
<span
class=
"tree-row"
>
<i
:class=
"'tree' + node.level"
/>
<span
v-if=
"node.level === 1"
class=
"label"
:title=
"data.serialNumber"
>
{{
data
.
serialNumber
}}
</span>
<span
v-if=
"node.level === 2"
>
{{
data
.
serialNumber
+
','
+
data
.
name
}}
</span>
<span
v-if=
"node.level === 3"
>
{{
data
.
target
.
serialNumber
+
','
+
data
.
target
.
name
}}
</span>
</span>
</span>
</el-tree>
</div>
</div>
<div
class=
"right-container"
>
<dee-tab
:is-lazy=
"false"
:tabs=
"tabItems"
:show-swipe=
"false"
:is-detail=
"false"
@
tabClick=
"tabClick"
>
<div
slot=
"0"
style=
"height: 100%; box-sizing: border-box"
>
<dee-as-com
ref=
"detailCom"
:key=
"layConfig.typeName"
:lay-config=
"layConfig"
@
row-click=
"rowClick"
/>
</div>
<div
slot=
"1"
style=
"height: 100%; box-sizing: border-box"
>
<dee-as-com
ref=
"detailCom2"
:key=
"layConfig.typeName"
:lay-config=
"layConfig1"
@
row-click=
"rowClick"
/>
</div>
</dee-tab>
</div>
</div>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
export
default
{
name
:
'StationPlanList'
,
data
()
{
return
{
form
:
{
model
:
null
,
sorties
:
null
},
modelData
:
[],
modelLoading
:
true
,
sortiesData
:
[],
sortiesLoading
:
true
,
treeLoading
:
false
,
treeData
:
[],
defaultExpandedKeys
:
[],
defaultProps
:
{
children
:
'children'
},
tabItems
:
[
{
name
:
'未确认'
,
id
:
'0'
},
{
name
:
'已确认'
,
id
:
'1'
}
],
layConfig
:
{
typeName
:
'JoExecutePlan'
,
layKey
:
'stationPlanUnConfirmList'
},
layConfig1
:
{
typeName
:
'JoExecutePlan'
,
layKey
:
'stationPlanConfirmList'
},
activeTab
:
'0'
,
activeNodeData
:
{}
}
},
watch
:
{
'form.model'
:
{
immediate
:
true
,
handler
(
val
)
{
if
(
!
val
)
{
return
}
const
model
=
this
.
modelData
.
find
((
r
)
=>
r
.
id
===
val
)
this
.
$set
(
this
.
form
,
'modelName'
,
(
model
&&
model
.
defName
)
||
''
)
this
.
$set
(
this
.
form
,
'sorties'
,
''
)
this
.
getAddRecursion
()
}
},
'form.sorties'
:
{
immediate
:
true
,
handler
(
val
)
{
if
(
!
val
)
{
return
}
const
sorties
=
this
.
sortiesData
.
find
((
r
)
=>
r
.
value
===
val
)
this
.
$set
(
this
.
form
,
'sortiesName'
,
(
sorties
&&
sorties
.
label
)
||
''
)
this
.
getTreeData
()
}
}
},
created
()
{
this
.
getAddModel
()
},
mounted
()
{},
methods
:
{
/**
* 获取机型
*/
getAddModel
()
{
const
param
=
{
searchItems
:
{
items
:
[{
fieldName
:
'id'
,
operator
:
'NEQ'
,
value
:
0
}]
},
sortItem
:
[{
fieldName
:
'modifyTime'
,
sortOrder
:
'asc'
}]
}
this
.
$api
.
searchApi
(
'AircraftType'
,
param
)
.
then
((
res
)
=>
{
this
.
modelData
=
[]
if
(
res
.
items
&&
res
.
items
.
content
)
{
this
.
modelData
=
res
.
items
.
content
this
.
$nextTick
(()
=>
{
if
(
this
.
modelData
.
length
)
{
this
.
form
.
model
=
this
.
modelData
[
0
].
id
this
.
getAddRecursion
()
}
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
modelLoading
=
false
})
})
},
/**
* 获取架次
*/
getAddRecursion
()
{
this
.
sortiesLoading
=
true
if
(
!
this
.
model
)
{
this
.
sortiesData
=
[]
this
.
sorties
=
null
}
const
params
=
{
searchItems
:
{
items
:
[{
fieldName
:
'aircraftTypeId'
,
operator
:
'EQ'
,
value
:
this
.
form
.
model
}]
},
sortItem
:
[{
fieldName
:
'modifyTime'
,
sortOrder
:
'asc'
}]
}
params
.
openProps
=
[{
name
:
'aircraftType'
}]
this
.
$api
.
searchApi
(
'AircraftSorties'
,
params
)
.
then
((
res
)
=>
{
this
.
sortiesData
=
[]
if
(
res
)
{
this
.
sortiesData
=
res
.
items
.
content
.
map
((
row
)
=>
{
return
{
value
:
row
.
id
,
label
:
row
.
defName
}
})
this
.
$nextTick
(()
=>
{
if
(
this
.
sortiesData
.
length
)
{
this
.
form
.
sorties
=
this
.
sortiesData
[
0
].
value
}
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
sortiesLoading
=
false
})
})
},
/**
* 获取树结构数据
*/
getTreeData
()
{
this
.
treeLoading
=
true
const
params
=
{
pageFrom
:
1
,
pageSize
:
10
,
searchItems
:
{
children
:
[
{
items
:
[
{
fieldName
:
'aircraftSorties.id'
,
// 架次ID
operator
:
'EQ'
,
value
:
this
.
form
.
sorties
}
],
operator
:
'AND'
}
],
items
:
[],
operator
:
'AND'
},
openProps
:
[
{
name
:
'extPositionPlans'
},
{
name
:
'extPositionLinks'
,
openProps
:
[
{
name
:
'target'
,
openProps
:
[
{
name
:
'wrProduction'
}
]
}
]
}
],
sortItem
:
[
{
fieldName
:
'modifyTime'
,
sortOrder
:
'desc'
}
]
}
post
(
`/ExtPosition/search`
,
params
)
.
then
((
res
)
=>
{
var
data
=
res
.
items
.
content
||
[]
data
.
map
((
item
)
=>
{
item
.
children
=
item
.
extPositionLinks
})
this
.
treeData
=
[
{
serialNumber
:
`BBOM-
${
this
.
form
.
modelName
}
-
${
this
.
form
.
sortiesName
}
`
,
materName
:
''
,
gaceVersio
:
''
,
state
:
''
,
children
:
data
}
]
this
.
defaultExpandedKeys
=
[
this
.
treeData
[
0
].
children
[
0
].
id
]
this
.
$refs
.
tree
.
setCurrentKey
(
this
.
treeData
[
0
].
children
[
0
].
children
[
0
].
id
)
this
.
$nextTick
(()
=>
{
this
.
activeNodeData
=
this
.
treeData
[
0
].
children
[
0
].
children
[
0
]
this
.
treeData
[
0
].
children
[
0
].
children
[
0
].
activeTab
=
this
.
activeTab
if
(
this
.
$refs
.
detailCom
.
$refs
.
asCom
&&
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
)
{
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
(
this
.
treeData
[
0
].
children
[
0
].
children
[
0
])
}
})
})
.
catch
((
err
)
=>
console
.
log
(
err
))
.
finally
(()
=>
{
this
.
treeLoading
=
false
})
},
tabClick
(
val
)
{
this
.
activeTab
=
val
.
index
this
.
activeNodeData
.
activeTab
=
this
.
activeTab
this
.
$nextTick
(()
=>
{
if
(
this
.
activeTab
===
'0'
)
{
if
(
this
.
$refs
.
detailCom
.
$refs
.
asCom
&&
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
)
{
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
(
this
.
activeNodeData
)
}
}
else
{
if
(
this
.
$refs
.
detailCom2
.
$refs
.
asCom
&&
this
.
$refs
.
detailCom2
.
$refs
.
asCom
.
getData
)
{
this
.
$refs
.
detailCom2
.
$refs
.
asCom
.
getData
(
this
.
activeNodeData
)
}
}
})
},
handleNodeClick
(
data
,
node
)
{
if
(
node
.
level
===
3
)
{
data
.
activeTab
=
this
.
activeTab
this
.
activeNodeData
=
data
this
.
$nextTick
(()
=>
{
if
(
this
.
activeTab
===
'0'
)
{
if
(
this
.
$refs
.
detailCom
.
$refs
.
asCom
&&
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
)
{
this
.
$refs
.
detailCom
.
$refs
.
asCom
.
getData
(
data
)
}
}
else
{
if
(
this
.
$refs
.
detailCom2
.
$refs
.
asCom
&&
this
.
$refs
.
detailCom2
.
$refs
.
asCom
.
getData
)
{
this
.
$refs
.
detailCom2
.
$refs
.
asCom
.
getData
(
data
)
}
}
})
}
},
rowClick
(
data
)
{
this
.
$emit
(
'getMissData'
,
data
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.station-plan-list
{
height
:
100%
;
padding
:
4px
;
box-sizing
:
border-box
;
display
:
flex
;
// flex-flow: column;
// justify-content: space-around;
.left-container
{
width
:
15%
;
.search-box
{
height
:
150px
;
font-size
:
14px
;
.title
{
margin-left
:
10px
;
text-align
:
left
;
margin-top
:
10px
;
}
.search-icon
{
display
:
inline-block
;
width
:
21px
;
height
:
21px
;
background
:
url(/icons/r-access.png)
no-repeat
;
background-size
:
contain
;
vertical-align
:
middle
;
}
label
{
margin-right
:
6px
;
display
:
inline-block
;
}
.el-select
{
width
:
calc
(
100%
-
60px
);
}
.row
{
line-height
:
40px
;
height
:
40px
;
text-align
:
center
;
}
}
.station-box
{
height
:
calc
(
100%
-
150px
);
}
.box
{
width
:
100%
;
margin
:
4px
;
border
:
1px
solid
#d8d8d8
;
border-radius
:
8px
;
padding
:
4px
;
.plan-tree
{
height
:
100%
;
overflow
:
scroll
;
.el-tree-node
{
width
:
max-content
;
min-width
:
100%
;
}
.el-tree-node.is-current
>
.el-tree-node__content
{
background-color
:
rgb
(
214
,
214
,
214
)
!
important
;
}
.el-tree-node
:focus
>
.el-tree-node__content
{
background-color
:
#fff
;
}
&
.el-tree--highlight-current
.el-tree-node__content
{
&
.disabled
{
color
:
#c0c4cc
;
cursor
:
not
-
allowed
;
background-color
:
#fff
;
}
&
.is-curr
:not
(
.disabled
),
&
:hover:not
(
.disabled
)
{
font-weight
:
bold
;
color
:
rgb
(
31
,
30
,
30
);
background-color
:
rgb
(
214
,
214
,
214
);
}
}
.el-tree-node
{
.el-tree-node__content
{
height
:
40px
!
important
;
i
{
display
:
inline-block
;
vertical-align
:
middle
;
margin
:
10px
;
}
.tree1
{
background
:
url('/icons/aircraft.png')
no-repeat
;
width
:
32px
;
height
:
30px
;
}
.tree2
{
width
:
21px
;
height
:
21px
;
background
:
url('/icons/u513.png')
no-repeat
;
background-size
:
contain
;
}
.tree3
{
width
:
21px
;
height
:
21px
;
background
:
url('/icons/u517.png')
no-repeat
;
background-size
:
contain
;
}
.label
{
vertical-align
:
middle
;
}
.Issued.custom-tree-node
,
.Run.custom-tree-node
,
.New.custom-tree-node
,
.Yes.custom-tree-node
,
.Delivery.custom-tree-node
{
color
:
#0000ff
;
}
.Finish.custom-tree-node
{
color
:
#008000
;
}
.Reserved.custom-tree-node
{
color
:
#ff0000
;
}
.Not.custom-tree-node
{
color
:
#999999
;
}
.Paused.custom-tree-node
{
color
:
#ffff00
;
}
}
}
}
}
}
.right-container
{
width
:
80%
;
margin-left
:
20px
;
}
}
</
style
>
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