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
5185ca3a
Commit
5185ca3a
authored
Sep 19, 2023
by
旭艳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
任务接收页面开发
parent
ef1d7fbf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1809 additions
and
1 deletion
+1809
-1
menu.js
applications/architecture-dee/src/store/modules/menu.js
+1
-1
MyCustomModule.vue
...re-dee/src/views/navigation/components/MyCustomModule.vue
+1
-0
dialog.vue
...views/taskReception/components/taskReceiveCard/dialog.vue
+314
-0
index.vue
.../views/taskReception/components/taskReceiveCard/index.vue
+708
-0
index.vue
...views/taskReception/components/taskReceiveTable/index.vue
+267
-0
table.vue
...views/taskReception/components/taskReceiveTable/table.vue
+334
-0
index.vue
applications/dee-mes/src/views/taskReception/index.vue
+43
-0
workspace.js
applications/dee-task-center/src/api/workspace.js
+5
-0
index.vue
...cations/dee-task-center/src/views/myTaskReceive/index.vue
+136
-0
No files found.
applications/architecture-dee/src/store/modules/menu.js
View file @
5185ca3a
...
...
@@ -97,7 +97,7 @@ const mutations = {
const
actions
=
{
activeModel
({
commit
,
state
},
model
)
{
// if (!state.activeModel || model.appId !== state.activeModel.id || (model.appId === 'todoTask' && state.activeModel.id !== 'todoTask')) {
if
(
model
.
appId
===
'todoTask'
||
model
.
appId
===
'myMessage'
)
{
// 待办任务页特殊处理
if
(
model
.
appId
===
'todoTask'
||
model
.
appId
===
'myMessage'
||
model
.
appId
===
'myTaskReceive'
||
model
.
appId
===
'myCheckTaskReceive'
||
model
.
appId
===
'myAirTaskReceive'
)
{
// 待办任务页特殊处理
commit
(
'SET_ACTIVE_MODEL'
,
{
id
:
model
.
appId
,
path
:
{
...
model
.
pageInfo
}
...
...
applications/architecture-dee/src/views/navigation/components/MyCustomModule.vue
View file @
5185ca3a
...
...
@@ -7,6 +7,7 @@
>
<component
:is=
"componentName"
:module=
"module"
/>
<div
:class=
"['delete-box', showDelete && 'show']"
>
<img
src=
"/images/navagations/delete-icon.png"
alt=
""
@
click
.
stop=
"remove"
>
...
...
applications/dee-mes/src/views/taskReception/components/taskReceiveCard/dialog.vue
0 → 100644
View file @
5185ca3a
<
template
>
<dee-dialog
id=
"dee-dialog"
title=
"设备使用登记"
:dialog-visible
.
sync=
"visible"
width=
"90%"
custom-class=
"mobile-dialog"
:before-close=
"handleClose"
>
<dee-form
ref=
"form"
:form=
"form"
:form-data=
"formFileds"
:rules=
"rules"
form-btn-position=
"center"
label-width=
"110px"
/>
<section
class=
"btn"
>
<el-button
:disabled=
"disabled"
type=
"primary"
size=
"medium"
@
click=
"save"
>
确定
</el-button>
<el-button
:disabled=
"disabled"
size=
"medium"
@
click=
"handleClose"
>
取消
</el-button>
</section>
</dee-dialog>
</
template
>
<
script
>
export
default
{
components
:
{
},
props
:
{
rowId
:
{
type
:
Number
,
default
:
()
=>
{}
}
},
data
()
{
var
validateAssemblyStartTime
=
(
rule
,
value
,
callback
)
=>
{
// 开始年份验证
if
(
value
===
undefined
)
{
callback
(
new
Error
(
'请选择开始时间'
))
}
else
{
if
(
this
.
form
.
assemblyEndTime
!==
undefined
)
{
if
(
value
>
this
.
form
.
assemblyEndTime
)
{
callback
(
new
Error
(
'开始时间不能大于结束时间'
))
}
callback
()
}
}
}
var
validateassemblyEndTime
=
(
rule
,
value
,
callback
)
=>
{
// 结束年份验证
if
(
value
===
undefined
)
{
callback
(
new
Error
(
'请选择结束时间'
))
}
else
{
callback
()
}
}
return
{
visible
:
false
,
disabled
:
false
,
rowData
:
null
,
form
:
{},
rules
:
{
jobNo
:
[{
required
:
true
,
message
:
'请输入作业令号'
,
trigger
:
'change'
}],
assemblyStartTime
:
[{
validator
:
validateAssemblyStartTime
,
required
:
true
,
trigger
:
'change'
}],
assemblyEndTime
:
[{
validator
:
validateassemblyEndTime
,
required
:
true
,
trigger
:
'change'
}]
},
formFileds
:
[
{
split
:
1
,
data
:
[
{
title
:
'设备型号'
,
key
:
'facilityNum'
,
component
:
{
name
:
'el-select'
,
clearable
:
true
,
placeholder
:
'请选择设备型号'
,
options
:
[
{
label
:
'未下达'
,
value
:
'N'
},
{
label
:
'己下达'
,
value
:
'Y'
},
{
label
:
'执行中'
,
value
:
'Running'
},
{
label
:
'已完工'
,
value
:
'Finish'
}
]
}
},
{
title
:
'设备名称'
,
key
:
'facilityName'
,
component
:
{
name
:
'el-input'
,
clearable
:
true
,
placeholder
:
'请输入设备名称'
}
},
{
title
:
'设备编码'
,
key
:
'facilityEncipher'
,
component
:
{
name
:
'el-input'
,
clearable
:
true
,
placeholder
:
'请输入设备名称'
}
},
{
title
:
'设备使用开始时间'
,
key
:
'assemblyStartTime'
,
component
:
{
disabled
:
false
,
clearable
:
true
,
name
:
'el-date-picker'
,
placeholder
:
'请选择开始时间'
,
type
:
'date'
,
format
:
'yyyy 年 MM 月 dd 日'
,
'value-format'
:
'yyyy-MM-dd'
}
},
{
title
:
'设备使用结束时间'
,
key
:
'assemblyEndTime'
,
component
:
{
clearable
:
true
,
name
:
'el-date-picker'
,
placeholder
:
'请选择完成时间'
,
type
:
'date'
,
format
:
'yyyy 年 MM 月 dd 日'
,
'value-format'
:
'yyyy-MM-dd'
}
}
]
}
]
}
},
created
()
{
},
methods
:
{
// 打开弹出框
open
(
row
=
{})
{
this
.
visible
=
true
this
.
form
=
{
...
row
}
if
(
row
.
id
)
{
this
.
form
.
supplier
=
this
.
form
.
supplier
&&
this
.
form
.
supplier
.
id
?
this
.
form
.
supplier
.
id
:
''
}
this
.
$refs
.
form
&&
this
.
$refs
.
form
.
reset
()
},
/**
* 保存功能
* 根据是否有id处理创建和编辑逻辑
*/
save
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
!
valid
)
{
// this.$utils.showMessageWarning('请完整填写表单')
return
false
}
console
.
log
(
this
.
rowData
)
if
(
this
.
form
.
id
===
undefined
)
{
if
(
this
.
rowData
===
null
)
{
this
.
$message
({
message
:
'请选择表格里的数据'
,
type
:
'warning'
})
return
}
this
.
form
.
airModelId
=
this
.
rowData
.
dxProcessMaterialId
this
.
form
.
sortiesId
=
this
.
rowData
.
id
const
params
=
{
operator
:
'ADD'
,
dxClassname
:
'com.tf.mes.vo.schedule.ORProductionVo'
,
id
:
''
,
subTypeName
:
'OrProduction'
,
jobNo
:
this
.
form
.
jobNo
,
statusCode
:
'N'
,
assemblyStartTime
:
this
.
form
.
assemblyStartTime
,
assemblyEndTime
:
this
.
form
.
assemblyEndTime
,
airModelId
:
this
.
form
.
airModelId
,
isValid
:
'Y'
,
airModelIdType
:
this
.
rowData
.
dxProcessMaterialIdType
,
sortiesId
:
this
.
form
.
sortiesId
,
sortiesIdType
:
this
.
rowData
.
subTypeName
}
this
.
disabled
=
true
this
.
HttpRequest
(
'/ORProduction/recursion'
,
params
,
'post'
).
then
(
res
=>
{
this
.
reset
(
'创建'
)
this
.
rowData
=
null
}).
catch
(
err
=>
{
console
.
log
(
err
)
this
.
$set
(
this
.
form
,
'airModelId'
,
this
.
rowData
.
dxProcessMaterial
.
resName
)
this
.
$set
(
this
.
form
,
'sortiesId'
,
this
.
rowData
.
serialNo
)
}).
finally
(()
=>
{
this
.
disabled
=
false
})
}
else
{
const
params
=
{
'operator'
:
'MODIFY'
,
'id'
:
this
.
form
.
id
,
'jobNo'
:
this
.
form
.
jobNo
,
'assemblyStartTime'
:
this
.
form
.
assemblyStartTime
,
'assemblyEndTime'
:
this
.
form
.
assemblyEndTime
}
this
.
disabled
=
true
this
.
HttpRequest
(
'/ORProduction/recursion'
,
params
,
'post'
).
then
(
res
=>
{
this
.
reset
(
'编辑'
)
}).
catch
(
err
=>
{
console
.
log
(
err
)
}).
finally
(()
=>
{
this
.
disabled
=
false
})
}
})
},
// 删除接口
remove
(
row
)
{
const
params
=
{
operator
:
'REMOVE'
,
id
:
row
.
id
}
this
.
$confirm
(
'确定删除此条数据?'
,
'删除确认'
,
{
type
:
'error'
})
.
then
(()
=>
{
this
.
HttpRequest
(
`/ORProduction/recursion`
,
params
,
'POST'
)
.
then
((
res
)
=>
{
console
.
log
(
res
)
this
.
reset
(
'删除'
)
})
.
catch
((
err
)
=>
console
.
log
(
err
))
.
finally
(()
=>
{})
})
.
catch
(()
=>
{})
},
// 重置弹出框
reset
(
message
)
{
this
.
visible
=
false
this
.
$message
({
message
:
`
${
message
}
成功`
,
type
:
'success'
})
this
.
$emit
(
'reload'
)
},
// 取消
handleClose
()
{
this
.
$refs
.
form
.
reset
()
this
.
visible
=
false
this
.
rowData
=
null
},
// 弹框里的表格行点击
rowClick
(
row
)
{
this
.
$set
(
this
.
form
,
'airModelId'
,
row
.
dxProcessMaterial
.
resName
)
this
.
$set
(
this
.
form
,
'sortiesId'
,
row
.
serialNo
)
this
.
rowData
=
row
},
/**
* 下达
*/
transmit
()
{
if
(
this
.
rowId
===
null
)
{
this
.
$message
({
message
:
'请选择表格里的数据'
,
type
:
'warning'
})
return
}
this
.
HttpRequest
(
`/ORProduction/production/release?id=
${
this
.
rowId
}
`
,
{},
'post'
).
then
(
res
=>
{
this
.
reset
(
'下达'
)
}).
catch
(
err
=>
{
console
.
log
(
err
)
}).
finally
(()
=>
{
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
#dee-dialog
{
.el-form-item__label
{
width
:
140px
!
important
;
// background: red;
}
.el-form-item__content
{
margin-left
:
150px
!
important
;
}
.dialogTable
{
height
:
168px
;
overflow
:
auto
;
margin-bottom
:
29px
;
.el-table
{
height
:
100%
;
}
}
.btn
{
text-align
:
center
;
margin-bottom
:
20px
;
}
}
</
style
>
applications/dee-mes/src/views/taskReception/components/taskReceiveCard/index.vue
0 → 100644
View file @
5185ca3a
This diff is collapsed.
Click to expand it.
applications/dee-mes/src/views/taskReception/components/taskReceiveTable/index.vue
0 → 100644
View file @
5185ca3a
<!--
* @Author: ljm
* @Date: 2021-04-15
* @LastEditTime:
* @Description: 任务接收
* @FilePath: applications/dee-mes/src/viewsapplications/dee-mes/src/views/mes/programExecutionManagement/taskReceive/components/taskReceiveTable/index
-->
<
template
>
<section
class=
"taskReceiveTable"
>
<div
class=
"header"
>
<div>
<div>
机型:
<el-select
v-model=
"model"
size=
"small"
placeholder=
"请选择"
:loading=
"modelLoading"
clearable
@
change=
"getAddRecursion"
>
<el-option
v-for=
"item in modelData"
:key=
"item.id"
:label=
"item.resName"
:value=
"item.id"
/>
</el-select>
</div>
<div>
架次:
<el-select
v-model=
"sorties"
size=
"small"
clearable
placeholder=
"请选择"
:loading=
"sortiesLoading"
>
<el-option
v-for=
"item in sortiesData"
:key=
"item.id"
:label=
"item.serialNo"
:value=
"item.id"
/>
</el-select>
</div>
<div>
关键字:
<el-input
v-model=
"aoName"
clearable
size=
"small"
placeholder=
"请输入内容"
/>
</div>
<div>
<el-button
size=
"small"
type=
"primary"
@
click=
"getTableData"
>
查询
</el-button>
<el-button
size=
"small"
@
click=
"resetForm"
>
重置
</el-button>
</div>
</div>
<span>
<el-button
size=
"small"
@
click=
"$parent.isShow = true"
>
视图切换
</el-button>
</span>
</div>
<Table
ref=
"table"
/>
</section>
</
template
>
<
script
>
import
Table
from
'./table'
export
default
{
name
:
'TaskReceiveTable'
,
components
:
{
Table
},
data
()
{
return
{
model
:
null
,
modelLoading
:
false
,
modelData
:
[],
sorties
:
null
,
sortiesLoading
:
false
,
sortiesData
:
[],
aoName
:
null
}
},
created
()
{},
mounted
()
{
this
.
getAddModel
(
true
)
},
methods
:
{
/**
* 获取新增机型
*/
getAddModel
(
status
)
{
const
param
=
{
indices
:
[
'DxProcessProduct'
],
sortItem
:
[
{
fieldName
:
'modifyTime'
,
sortOrder
:
'desc'
}
]
}
this
.
HttpRequest
(
'/DxProcessProduct/find/recursion'
,
param
,
'post'
)
.
then
((
res
)
=>
{
this
.
modelData
=
[]
if
(
res
.
items
&&
res
.
items
.
content
)
{
this
.
modelData
=
res
.
items
.
content
this
.
$nextTick
(()
=>
{
if
(
this
.
modelData
.
length
)
{
this
.
model
=
this
.
modelData
[
0
].
id
this
.
getAddRecursion
(
status
)
}
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
modelLoading
=
false
})
})
},
/**
* 获取架次数据
*/
getAddRecursion
(
status
)
{
this
.
sortiesLoading
=
true
if
(
!
this
.
model
)
{
this
.
sortiesData
=
[]
this
.
sorties
=
null
}
const
param
=
{
indices
:
[
'DxProcessMaterialLot'
],
openProps
:
[
{
name
:
'dxProcessMaterial'
,
searchItems
:
{
items
:
[
{
fieldName
:
'id'
,
operator
:
'EQ'
,
value
:
this
.
model
}
],
operator
:
'AND'
},
parentFilter
:
true
}
],
searchItems
:
{
items
:
[
{
fieldName
:
'dxProcessPlanIdType'
,
operator
:
'EQ'
,
value
:
'DxProcessPlan'
}
],
operator
:
'AND'
},
sortItem
:
[
{
fieldName
:
'modifyTime'
,
sortOrder
:
'desc'
}
]
}
this
.
HttpRequest
(
'/DxProcessMaterialLot/find/recursion'
,
param
,
'post'
)
.
then
((
res
)
=>
{
this
.
sortiesData
=
[]
if
(
res
)
{
this
.
sortiesData
=
res
&&
res
.
items
&&
res
.
items
.
content
this
.
$nextTick
(()
=>
{
if
(
this
.
sortiesData
.
length
)
{
this
.
sorties
=
this
.
sortiesData
[
0
].
id
if
(
status
)
{
this
.
getTableData
()
}
}
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
sortiesLoading
=
false
})
})
},
resetForm
()
{
this
.
model
=
this
.
modelData
[
0
].
id
this
.
aoName
=
null
this
.
getAddRecursion
(
true
)
},
getTableData
()
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
table
.
getTableData
()
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
.taskReceiveTable
{
width
:
100%
;
box-sizing
:
border-box
;
padding
:
20px
;
height
:
20px
;
flex-grow
:
1
;
.header
{
display
:
flex
;
justify-content
:
space-between
;
white-space
:
nowrap
;
margin-bottom
:
15px
;
>
div
:first-child
{
display
:
flex
;
>
div
{
margin-right
:
40px
;
align-items
:
center
;
display
:
flex
;
>
.el-select
{
width
:
150px
;
}
>
.el-input
{
width
:
260px
;
}
}
}
}
>
section
{
height
:
calc
(
100%
-
45px
);
.el-table
td
.el-button
{
padding
:
0
;
}
.el-table
thead
th
{
color
:
#2e2e2e
;
font-weight
:
700
;
font-size
:
14px
;
padding
:
0
;
background-color
:
#f3f6f7
;
line-height
:
46px
!
important
;
}
.el-pagination
{
margin
:
10px
;
padding
:
0
;
text-align
:
right
;
}
}
}
</
style
>
applications/dee-mes/src/views/taskReception/components/taskReceiveTable/table.vue
0 → 100644
View file @
5185ca3a
<
template
>
<section>
<!-- 表格 -->
<el-table
v-loading=
"loading"
:data=
"tableData"
border
height=
"100%"
size=
"mini"
>
<el-table-column
type=
"index"
width=
"60"
align=
"center"
label=
"序号"
/>
<el-table-column
prop=
"dxProcessPlanAssemblyUnitNo"
label=
"装配单元"
min-width=
"120"
align=
"center"
show-overflow-tooltip
/>
<el-table-column
prop=
"serialNumber"
label=
"AO号"
min-width=
"220"
align=
"center"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"routerAssemblyExecution(scope.row)"
>
{{
scope
.
row
.
serialNumber
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
v-for=
"item in tableColums1"
:key=
"item.key"
:prop=
"item.key"
:label=
"item.title"
:min-width=
"item.width"
:sortable=
"item.sortable"
align=
"center"
show-overflow-tooltip
/>
<el-table-column
prop=
"operating"
label=
"操作者"
:min-width=
"100"
sortable
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span
style=
"color:red"
>
{{
scope
.
row
.
operating
.
main
}}
</span>
<span>
{{
scope
.
row
.
operating
.
vice
}}
</span>
</
template
>
</el-table-column>
<el-table-column
v-for=
"item in tableColums2"
:key=
"item.key"
:prop=
"item.key"
:label=
"item.title"
:min-width=
"item.width"
:sortable=
"item.sortable"
align=
"center"
show-overflow-tooltip
/>
</el-table>
<!-- <el-pagination
:current-page="tablePagination.currentPage"
:page-sizes="tablePagination.pageSizes"
:page-size="tablePagination.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tablePagination.total"
@size-change="setPage"
@current-change="setPage($event, true)"
/> -->
</section>
</template>
<
script
>
export
default
{
components
:
{},
data
()
{
return
{
// 加载中
loading
:
false
,
// 分页
tablePagination
:
{
currentPage
:
1
,
pageSize
:
20
,
total
:
0
,
pageSizes
:
[
10
,
20
,
50
,
100
]
},
// 所有可动态配置的表格列
tableColums1
:
[
// {
// title: 'AO号',
// show: true,
// key: 'serialNumber',
// sortable: true,
// width: '120'
// },
{
title
:
'AO名称'
,
show
:
true
,
key
:
'materName'
,
sortable
:
true
,
width
:
'180'
},
{
title
:
'版本'
,
show
:
true
,
key
:
'gaceVersion'
,
sortable
:
true
,
width
:
'80'
},
{
title
:
'计划开始时间'
,
show
:
true
,
key
:
'scheduledStart'
,
sortable
:
true
,
width
:
'180'
},
{
title
:
'计划结束时间'
,
show
:
true
,
key
:
'scheduledEnd'
,
sortable
:
true
,
width
:
'180'
},
{
title
:
'定额工时'
,
show
:
true
,
key
:
'allWorkHour'
,
sortable
:
true
,
width
:
'120'
}],
tableColums2
:
[
{
title
:
'检验员'
,
show
:
true
,
key
:
'operatorUser'
,
sortable
:
true
,
width
:
'120'
},
{
title
:
'任务状态'
,
show
:
true
,
key
:
'planStateCode'
,
sortable
:
true
,
width
:
'120'
},
{
title
:
'完成百分比'
,
show
:
true
,
key
:
'percentage'
,
sortable
:
true
,
width
:
'120'
}
],
// 表格数据
tableData
:
[],
joExecutePlanStateData
:
[]
}
},
created
()
{
Promise
.
all
([
this
.
getJoExecutePlanState
(),
this
.
getTableData
()])
// this.getJoExecutePlanState()
},
mounted
()
{
// this.getTableData()
},
methods
:
{
/**
* 获取作业计划状态
*/
getJoExecutePlanState
()
{
const
that
=
this
var
param
=
{
pageFrom
:
1
,
pageSize
:
100000
,
searchItems
:
{
items
:
[
{
fieldName
:
'dictState'
,
operator
:
'EQ'
,
value
:
'ENABLE'
},
{
fieldName
:
'dictCode'
,
operator
:
'EQ'
,
value
:
'JoExecutePlanState'
}
]
},
sortItem
:
[{
fieldName
:
'dictSeq'
,
sortOrder
:
'asc'
}]
}
this
.
HttpRequest
(
'DictData/search'
,
param
,
'post'
)
.
then
((
res
)
=>
{
if
(
res
)
{
if
(
res
.
items
&&
res
.
items
.
content
.
length
)
{
that
.
joExecutePlanStateData
=
res
.
items
.
content
}
else
{
that
.
joExecutePlanStateData
=
[]
}
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{})
},
/**
* 页码触发
*/
setPage
(
$event
,
state
)
{
if
(
state
)
{
this
.
tablePagination
.
currentPage
=
$event
}
else
{
this
.
tablePagination
.
currentPage
=
1
this
.
tablePagination
.
pageSize
=
$event
}
this
.
getTableData
()
},
getTableData
()
{
const
that
=
this
var
param
=
{
indices
:
[
'DxProcessPlan'
],
pageFrom
:
that
.
tablePagination
.
currentPage
,
pageSize
:
that
.
tablePagination
.
pageSize
,
searchItems
:
{
items
:
[
{
fieldName
:
'id'
,
operator
:
'EQ'
,
value
:
localStorage
.
getItem
(
'userId'
)
},
{
fieldName
:
'serialId'
,
operator
:
'LIKE'
,
value
:
this
.
$parent
.
sorties
},
{
fieldName
:
'aoName'
,
operator
:
'LIKE'
,
value
:
this
.
$parent
.
aoName
},
{
fieldName
:
'isView'
,
operator
:
'LIKE'
,
value
:
'Y'
}
],
operator
:
'AND'
},
sortItem
:
[
{
fieldName
:
'modifyTime'
,
sortOrder
:
'desc'
}
]
}
that
.
processLoading
=
true
this
.
HttpRequest
(
'/JoExecutePlan/getTaskAcceptance'
,
param
,
'post'
)
.
then
((
res
)
=>
{
if
(
res
&&
res
.
items
)
{
that
.
tableData
=
res
.
items
.
map
((
p
)
=>
{
var
vice
=
(
p
.
operating
&&
p
.
operating
.
filter
(
t
=>
t
.
userName
!==
p
.
masterOprName
)
.
map
((
q
)
=>
{
return
q
.
userName
})
.
join
(
','
))
||
''
return
{
id
:
p
.
id
,
dxProcessPlanAssemblyUnitNo
:
p
.
dxProcessPlanAssemblyUnitNo
,
serialNumber
:
p
.
ao
.
serialNumber
,
materName
:
p
.
ao
.
materName
,
isOK
:
p
.
isOK
,
gaceVersion
:
p
.
ao
.
gaceVersion
,
scheduledStart
:
p
.
scheduledStart
,
scheduledEnd
:
p
.
scheduledEnd
,
allWorkHour
:
p
.
ao
.
countWorkHour
,
operating
:
{
main
:
p
.
masterOprName
||
''
,
vice
:
p
.
masterOprName
&&
vice
?
', '
+
vice
:
vice
},
operatorUser
:
(
p
.
examines
&&
p
.
examines
.
map
((
q
)
=>
{
return
q
.
userName
})
.
join
(
','
))
||
''
,
planStateCode
:
(
p
.
planStateCode
&&
that
.
joExecutePlanStateData
.
filter
(
(
q
)
=>
q
.
dictKey
===
p
.
planStateCode
)[
0
].
dictValue
)
||
''
,
percentage
:
(
p
.
isOkOpPlan
&&
p
.
allOpPlan
?
Math
.
round
((
p
.
isOkOpPlan
/
p
.
allOpPlan
)
*
1000
)
/
10
:
0
)
+
'%'
}
})
that
.
tablePagination
.
total
=
res
.
items
.
total
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
that
.
processLoading
=
false
})
},
routerAssemblyExecution
(
item
)
{
if
(
!
item
.
isOK
)
return
this
.
$router
.
push
({
name
:
'assemblyPerform'
,
query
:
{
id
:
item
.
id
,
materNo
:
item
.
materNo
,
airModelId
:
item
.
airModelId
,
sortiesId
:
item
.
sortiesId
,
isOK
:
item
.
isOK
}
})
}
}
}
</
script
>
applications/dee-mes/src/views/taskReception/index.vue
0 → 100644
View file @
5185ca3a
<
template
>
<section
class=
"taskReceive"
>
<!--
<IpadHeader
/>
-->
<TaskReceiveCard
v-if=
"isShow"
/>
<TaskReceiveTable
v-else
/>
</section>
</
template
>
<
script
>
// import IpadHeader from '../ipadHeader'
import
TaskReceiveCard
from
'./components/taskReceiveCard/index'
import
TaskReceiveTable
from
'./components/taskReceiveTable/index'
export
default
{
name
:
'TaskReceive'
,
components
:
{
// IpadHeader,
TaskReceiveCard
,
TaskReceiveTable
},
data
()
{
return
{
isShow
:
true
}
}
}
</
script
>
<
style
lang=
"scss"
>
// @import "/icons/app/iconfont.css";
.taskReceive
{
// position: fixed;
// left: 0;
// top: 0px;
// z-index: 1111;
background-color
:
#fff
;
height
:
100%
;
//calc(100vh);
width
:
100%
;
//calc(100vw);
box-sizing
:
border-box
;
display
:
flex
;
flex-direction
:
column
;
}
</
style
>
applications/dee-task-center/src/api/workspace.js
View file @
5185ca3a
...
...
@@ -7,3 +7,8 @@ export function countOfType(params) {
export
function
getMessageNum
(
params
)
{
return
get
(
`/Notify/findIsReadNum`
,
params
)
}
export
function
getTaskCount
(
params
)
{
return
get
(
`/indexTask/task/fitOut`
,
params
)
}
applications/dee-task-center/src/views/myTaskReceive/index.vue
0 → 100644
View file @
5185ca3a
<
template
>
<div
v-if=
"show&&module.total>0"
class=
"my-custom-module"
@
click=
"goModule(module)"
>
<div
class=
"custom-module-title"
>
{{
module
.
name
}}
</div>
<div
class=
"custom-module-content"
>
<div
class=
"custom-module-content-item"
>
<img
:src=
"module.icon"
alt=
""
>
</div>
<div
class=
"custom-module-content-item custom-module-content-item-total"
>
{{
module
.
total
}}
</div>
</div>
<div
v-if=
"module.list"
class=
"custom-module-bottom"
>
<div
v-for=
"item in module.list"
:key=
"item.name"
class=
"custom-module-bottom-item"
style=
"justify-content: flex-end;"
>
<span
class=
"custom-module-bottom-item-name"
>
{{
item
.
name
}}
</span><span>
{{
item
.
value
}}
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
getTaskCount
}
from
'@/api/workspace.js'
export
default
{
props
:
{
module
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
show
:
false
}
},
watch
:
{
'module.name'
:
{
immediate
:
true
,
handler
:
function
(
val
)
{
if
(
val
)
{
this
.
getCustomModules
(
val
)
}
}
}
},
// mounted() {
// this.getCustomModules()
// },
methods
:
{
getCustomModules
(
data
)
{
const
params
=
{}
if
(
data
===
'装配任务'
)
{
params
.
type
=
'FitOut'
this
.
module
.
appId
=
'myTaskReceive'
}
else
if
(
data
===
'检验任务'
)
{
params
.
type
=
'CheckOut'
this
.
module
.
appId
=
'myCheckTaskReceive'
}
else
{
params
.
type
=
'DMIR'
this
.
module
.
appId
=
'myAirTaskReceive'
}
getTaskCount
(
params
).
then
(
res
=>
{
this
.
module
.
icon
=
'/images/navagations/task-icon.png'
this
.
module
.
total
=
res
.
items
.
count
this
.
module
.
list
=
[{
name
:
'待办'
,
value
:
res
.
items
.
count
}]
this
.
module
.
serverOriginName
=
'dee-mes'
this
.
module
.
originRoute
=
'dee-mes/taskReception'
this
.
module
.
showMenu
=
false
this
.
show
=
true
})
},
async
goModule
(
module
)
{
this
.
$router
.
push
({
path
:
module
.
originRoute
,
// meta: { disnav: false },
query
:
{
title
:
module
.
name
,
showMenu
:
module
.
showMenu
}
})
this
.
$store
.
dispatch
(
'menu/activeModel'
,
{
appId
:
this
.
module
.
appId
,
pageInfo
:
{
title
:
this
.
module
.
name
,
path
:
'/dee-mes/taskReception'
}
})
this
.
$store
.
dispatch
(
'app/toggleSideBar'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.my-custom-module
{
height
:
173px
;
min-width
:
179px
;
background-color
:
#fff
;
padding
:
20px
;
box-sizing
:
border-box
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-between
;
position
:
relative
;
overflow
:
hidden
;
border-radius
:
4px
;
.custom-module-title
{
color
:
#6f6f6f
;
font-size
:
24px
;
font-weight
:
500
;
text-align
:
left
;
}
.custom-module-content
{
display
:
flex
;
align-items
:
center
;
.custom-module-content-item
{
flex
:
1
;
text-align
:
right
;
img
{
height
:
28px
;
}
}
.custom-module-content-item-total
{
color
:
#329d25
;
font-size
:
38px
;
font-weight
:
500
;
}
}
}
</
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