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
4debb416
Commit
4debb416
authored
Mar 01, 2024
by
jingnan
👀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
批量签审增加配套出库审核
parent
516068eb
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
425 additions
and
0 deletions
+425
-0
left.vue
...ter/myPlanTask/outStorageMatchExamine/components/left.vue
+209
-0
right.vue
...er/myPlanTask/outStorageMatchExamine/components/right.vue
+135
-0
index.vue
...w/task-center/myPlanTask/outStorageMatchExamine/index.vue
+80
-0
taskList.vue
...er/src/views/workflow/task-center/myPlanTask/taskList.vue
+1
-0
No files found.
applications/dee-task-center/src/views/workflow/task-center/myPlanTask/outStorageMatchExamine/components/left.vue
0 → 100644
View file @
4debb416
<
template
>
<div
class=
"outStorageMatchExamineLeft"
style=
"padding-right: 15px; height: 100%; overflow: scroll;"
>
<!-- 搜索 -->
<el-form
ref=
"form"
:model=
"form"
size=
"small"
label-width=
"68px"
>
<el-form-item
label=
"架次"
>
<el-input
v-model=
"form.sorties"
clearable
type=
"input"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"AO号"
>
<el-input
v-model=
"form.serialNumber"
clearable
type=
"input"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"searchForm()"
>
查询
</el-button>
<el-button
@
click=
"resetForm()"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 分类展示 -->
<el-collapse
v-model=
"collapse.active"
v-loading=
"loading"
accordion
>
<el-collapse-item
v-for=
"(request, index) in requests"
:key=
"index"
:name=
"(index + 1).toString()"
>
<template
slot=
"title"
>
<section
class=
"collapse-title"
>
|
{{
request
.
name
}}
(
{{
request
.
lists
.
length
}}
)
</section>
</
template
>
<ul
v-if=
"request.lists.length"
>
<
template
v-for=
"(item, subIndex) in request.lists"
>
<li
:key=
"item.id"
class=
"blue"
:class=
"
{active: subIndex === active,'active-background':item.activeBackground}"
@click="currentAoClick(item,subIndex)"
>
<i
class=
"el-icon-document"
/>
{{
item
.
sorties
}}
,
{{
item
.
serialNumber
||
'暂无'
}}
,
{{
item
.
plannerName
}}
</li>
</
template
>
</ul>
<span
v-else
class=
"empty"
>
暂无数据
</span>
</el-collapse-item>
</el-collapse>
</div>
</template>
<
script
>
import
{
post
}
from
'@/utils/http'
export
default
{
name
:
'OutStorageMatchExamineLeft'
,
components
:
{
},
props
:
{
selectData
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
loading
:
false
,
// 搜索表单
form
:
{
reqNo
:
''
,
reqBill
:
''
,
ao
:
''
,
resCode
:
''
,
modelNo
:
''
},
// 手风琴默认高亮
active
:
0
,
// 手风琴组件
collapse
:
{
active
:
[
'1'
]
},
// 申请列表
requests
:
[
{
name
:
'配套出库'
,
lists
:
[]
}
]
}
},
mounted
()
{
this
.
init
()
this
.
$bus
.
$on
(
'reloadModuleList'
,
(
hasFlag
)
=>
{
this
.
$nextTick
(()
=>
{
this
.
init
()
})
})
},
methods
:
{
// 加载左侧申请表
init
()
{
const
params
=
{
'pageFrom'
:
1
,
'pageSize'
:
9999
,
'searchItems'
:
{
'children'
:
[],
'items'
:
[
{
'fieldName'
:
'serialNumber'
,
'operator'
:
'LIKE'
,
'value'
:
this
.
form
.
serialNumber
||
''
},
{
'fieldName'
:
'sorties'
,
'operator'
:
'LIKE'
,
'value'
:
this
.
form
.
sorties
||
''
}
],
'operator'
:
'AND'
},
'openProps'
:
[
{
'name'
:
'joExecutePlan'
}
],
'sortItem'
:
[
{
'fieldName'
:
'modifyTime'
,
'sortOrder'
:
'desc'
}
]
}
this
.
loading
=
true
// return new Promise((resolve, reject) => {
post
(
`OutStorageRequest/search/matchStorageExpireToAo?taskDefinitionKey=
${
this
.
selectData
.
taskKey
}
`
,
params
).
then
(
res
=>
{
const
data
=
res
.
items
.
content
.
map
(
item
=>
{
return
{
...
item
,
plannerName
:
item
.
joExecutePlan
&&
item
.
joExecutePlan
[
0
]
&&
item
.
joExecutePlan
[
0
].
planner
&&
item
.
joExecutePlan
[
0
].
planner
.
name
}
})
this
.
requests
.
find
(
item
=>
item
.
name
===
'配套出库'
).
lists
=
data
this
.
currentAoClick
(
data
[
0
],
0
)
}).
catch
(
err
=>
console
.
log
(
err
)).
finally
(()
=>
{
this
.
loading
=
false
})
},
searchForm
()
{
this
.
init
()
},
// 重置表单
resetForm
()
{
this
.
form
=
{}
this
.
init
()
},
currentAoClick
(
item
,
subIndex
)
{
this
.
active
=
subIndex
this
.
$emit
(
'currentAo:click'
,
item
)
},
// 阻止事件冒泡
stopDefault
(
e
)
{
e
.
stopPropagation
()
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
ul
{
margin
:
-10px
0
;
padding
:
5px
0
0
0
;
li
{
margin-top
:
5px
;
padding
:
0
5px
0
8px
;
height
:
25px
;
line-height
:
25px
;
list-style
:
none
;
cursor
:
pointer
;
font-size
:
14px
;
color
:
#606266
;
opacity
:
.85
;
white-space
:
nowrap
;
&
.black
{
color
:
black
;
}
&
.active-background
{
background-color
:
#67C23A
;}
&
.blue
{
color
:
blue
;
}
&
.red
{
color
:
red
;
}
i
{
font-size
:
14px
;
}
&
:hover
,
&
.active
{
opacity
:
1
;
font-weight
:
500
;
background-color
:
#edf0f5
;
}
}
}
.empty
{
margin-left
:
10px
;
color
:
#666
;
}
.el-date-editor
{
width
:
100%
;
}
.collapse-title
{
font-size
:
14px
;
color
:
#666
;
}
.is-active
.collapse-title
{
font-size
:
15px
;
font-weight
:
600
;
color
:
#222
;
}
</
style
>
applications/dee-task-center/src/views/workflow/task-center/myPlanTask/outStorageMatchExamine/components/right.vue
0 → 100644
View file @
4debb416
<
template
>
<div
class=
"outStorageMatchExamineRight"
>
<split-pane
ref=
"splitPane"
:min-percent=
"30"
:default-percent=
"60"
split=
"horizontal"
:class=
"['detail-pane','collapse']"
>
<template
slot=
"paneL"
>
<div
class=
"table-box"
>
<dee-as-com
:basic-data=
"
{...(currentAo
&&
currentAo.joExecutePlan
&&
currentAo.joExecutePlan[0]||{})}"
:lay-config="{ typeName: 'JoExecutePlan', layKey: 'batchSign_proPreConfirm_aoInfo'}"
/>
<dee-as-com
ref=
"outStorageMatch"
:basic-data=
"
{ selectData: selectData }"
:lay-config="{ typeName: 'ExtSupportingItem', layKey: 'batchSign_proPreConfirm_rightTop'}"
:table-height="autoTopHeight"
/>
</div>
</
template
>
<
template
slot=
"paneR"
>
<div
class=
"detail"
>
<dee-as-com
ref=
"outStorageMatchItem"
:lay-config=
"
{ typeName: 'OutStorageMatchItem', layKey: 'batchSign_outStorageMatchExamine_rightBottom'}"
:table-height="autoBottomHeight"
:basic-data=" { selectData,selectionRows }"
@selectionChange="selectionChange"
/>
</div>
</
template
>
</split-pane>
</div>
</template>
<
script
>
export
default
{
name
:
'OutStorageMatchExamineRight'
,
components
:
{},
props
:
{
selectData
:
{
type
:
Object
,
default
:
()
=>
{}
},
currentAo
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
selectionRows
:
[],
autoBottomHeight
:
'100%'
,
autoTopHeight
:
'480px'
}
},
computed
:
{},
watch
:
{},
created
()
{},
mounted
()
{
this
.
$bus
.
$on
(
'reloadModuleList'
,
(
hasFlag
)
=>
{
this
.
$nextTick
(()
=>
{
this
.
init
()
})
})
this
.
$nextTick
(
function
()
{
const
splitPane
=
this
.
$refs
.
splitPane
const
height
=
document
.
getElementById
(
'app'
).
offsetHeight
-
120
if
(
splitPane
)
{
this
.
$watch
(
function
()
{
return
splitPane
.
percent
},
(
val
,
oval
)
=>
{
this
.
autoTopHeight
=
val
/
100
*
height
-
80
+
'px'
// this.autoBottomHeight = (100 - val) / 100 * height - 270 + 'px'
}
)
}
})
},
// 组件方法
methods
:
{
selectionChange
(
val
)
{
this
.
selectionRows
=
val
},
init
(
currentAo
)
{
setTimeout
(()
=>
{
this
.
$refs
.
outStorageMatch
&&
this
.
$refs
.
outStorageMatch
.
$refs
.
asCom
.
getData
(
currentAo
&&
currentAo
.
id
||
0
)
this
.
$refs
.
outStorageMatchItem
&&
this
.
$refs
.
outStorageMatchItem
.
$refs
.
asCom
.
getData
(
currentAo
&&
currentAo
.
id
||
0
)
},
100
)
}
}
}
</
script
>
<
style
lang=
'scss'
>
.outStorageMatchExamineRight
{
overflow
:
auto
;
width
:
100%
;
height
:
100%
;
box-sizing
:
border-box
;
padding-left
:
8px
;
// .sub-title{
// padding-top: 10px!important;
// }
.splitter-pane-resizer.horizontal
{
opacity
:
1
;
background-color
:
#F1F4F5
;
height
:
8px
;
border-bottom
:
1px
solid
#e0e0e0
;
border-top
:
1px
solid
#e0e0e0
;
}
.detail
{
height
:
100%
;
background-color
:
#fff
;
}
.dee-table
{
.dee-tools
{
margin
:
2px
0
!
important
;
}
.dee-table-config-bar
{
margin
:
2px
0
!
important
;
}
.dee-table-pagination
{
margin-top
:
12px
!
important
;
}
}
}
</
style
>
applications/dee-task-center/src/views/workflow/task-center/myPlanTask/outStorageMatchExamine/index.vue
0 → 100644
View file @
4debb416
<!--
* @Author: gjn
* @Date: 2024-3-1 10:34:39
* @Description:批量签审_ 配套出库审核
-->
<
template
>
<div
class=
"outStorageMatchExamine"
>
<dee-fold-pane
:min-percent=
"18"
:default-percent=
"18"
split=
"vertical"
class=
"detail-pane"
>
<template
slot=
"paneL"
>
<Left
ref=
"left"
:select-data=
"selectData"
@
currentAo:click=
"currentAoClick"
/>
</
template
>
<
template
slot=
"paneR"
>
<Right
v-show=
"subTypeName === '1'"
ref=
"right"
:select-data=
"selectData"
:current-ao=
"currentAo"
@
left:init=
"() => this.$refs.left.init()"
/>
<!-- empty -->
<section
v-if=
"!subTypeName"
style=
"padding-left: 15px;"
>
请先选择左侧请求单
</section>
</
template
>
</dee-fold-pane>
</div>
</template>
<
script
>
import
Left
from
'./components/left.vue'
import
Right
from
'./components/right.vue'
export
default
{
name
:
'OutStorageMatchExamine'
,
components
:
{
Left
,
Right
},
props
:
{
selectData
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
subTypeName
:
''
,
currentAo
:
null
}
},
computed
:
{},
watch
:
{},
created
()
{},
mounted
()
{
},
// 组件方法
methods
:
{
currentAoClick
(
currentAo
)
{
this
.
subTypeName
=
'1'
this
.
currentAo
=
currentAo
this
.
$refs
.
right
.
init
(
currentAo
)
}
}
}
</
script
>
<
style
lang=
'scss'
>
.outStorageMatchExamine
{
width
:
100%
;
height
:
103%
;
box-sizing
:
border-box
;
padding
:
0
4px
;
}
</
style
>
applications/dee-task-center/src/views/workflow/task-center/myPlanTask/taskList.vue
View file @
4debb416
...
@@ -37,6 +37,7 @@ export default {
...
@@ -37,6 +37,7 @@ export default {
StationMasteConfirm
:
()
=>
import
(
'./stationMasteConfirm'
),
// 站位长确认
StationMasteConfirm
:
()
=>
import
(
'./stationMasteConfirm'
),
// 站位长确认
PlannerConfirm
:
()
=>
import
(
'./plannerConfirm'
),
// 计划员确认
PlannerConfirm
:
()
=>
import
(
'./plannerConfirm'
),
// 计划员确认
WorkHourExamine
:
()
=>
import
(
'./workHourExamine'
),
// 工时审核
WorkHourExamine
:
()
=>
import
(
'./workHourExamine'
),
// 工时审核
OutStorageMatchExamine
:
()
=>
import
(
'./outStorageMatchExamine'
),
// 配套出库审核
OutStorageMatchConfirm
:
()
=>
import
(
'./outStorageMatchConfirm'
),
// 配套出库确认
OutStorageMatchConfirm
:
()
=>
import
(
'./outStorageMatchConfirm'
),
// 配套出库确认
ProPreparateWorkerConfirm
:
()
=>
import
(
'./proPreparatWorkerConfirm'
),
// 生产准备工确认
ProPreparateWorkerConfirm
:
()
=>
import
(
'./proPreparatWorkerConfirm'
),
// 生产准备工确认
InstructionIdentificationBatch
:
()
=>
import
(
'./instructionIdentificationBatch'
),
// 指令标识
InstructionIdentificationBatch
:
()
=>
import
(
'./instructionIdentificationBatch'
),
// 指令标识
...
...
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