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
3bee3490
Commit
3bee3490
authored
Sep 25, 2023
by
旭艳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
装配计划执行接口联调
parent
18ffac7e
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1253 additions
and
132 deletions
+1253
-132
index.vue
.../views/taskExecution/components/AssemblyProcess/index.vue
+115
-0
dialog.vue
...iews/taskExecution/components/AttachmentUpload/dialog.vue
+66
-93
Table1.vue
...on/components/TechnicalRequirements/components/Table1.vue
+77
-0
Table2.vue
...on/components/TechnicalRequirements/components/Table2.vue
+194
-0
Table3.vue
...on/components/TechnicalRequirements/components/Table3.vue
+80
-0
index.vue
.../taskExecution/components/TechnicalRequirements/index.vue
+157
-0
index.vue
...-mes/src/views/taskExecution/components/chatBox/index.vue
+313
-0
index.vue
applications/dee-mes/src/views/taskExecution/index.vue
+244
-37
index.vue
.../views/taskReception/components/taskReceiveCard/index.vue
+7
-2
No files found.
applications/dee-mes/src/views/taskExecution/components/AssemblyProcess/index.vue
0 → 100644
View file @
3bee3490
<
template
>
<dee-dialog
id=
"dee-dialog"
title=
"装配流程"
:dialog-visible
.
sync=
"visible"
width=
"90%"
custom-class=
"mobile-dialog"
:before-close=
"handleClose"
close-on-click-modal
>
<div
v-loading=
"loading"
class=
"assembly-process"
>
<div>
<p>
装配效果图
</p>
<p>
装配流程
</p>
</div>
<div
class=
"img"
>
<div>
<img
v-if=
"imgLeft"
:src=
"imgLeft"
alt=
""
@
click=
"preview(imgLeft)"
>
<span
v-else
>
暂无装配效果图
</span>
</div>
<div>
<img
v-if=
"imgRight"
:src=
"imgRight"
alt=
""
@
click=
"preview(imgRight)"
>
<span
v-else
>
暂无装配流程
</span>
</div>
</div>
</div>
</dee-dialog>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
import
{
previewIMG
}
from
'@/api/previewIMG.js'
export
default
{
components
:
{},
data
()
{
return
{
visible
:
false
,
loading
:
true
,
imgLeft
:
''
,
imgRight
:
''
}
},
created
()
{},
methods
:
{
// 打开弹出框
open
()
{
this
.
visible
=
true
this
.
$nextTick
(()
=>
{
this
.
getAssemblyProcess
()
})
},
handleClose
()
{},
preview
(
src
)
{
previewIMG
(
src
)
},
getAssemblyProcess
()
{
this
.
loading
=
true
post
(
`ExtProcessPlan/getPaper?aoId=
${
this
.
$parent
.
headerData
.
aoId
}
`
,
{},
'post'
)
.
then
((
res
)
=>
{
if
(
res
&&
res
.
message
.
includes
(
'成功'
))
{
this
.
imgLeft
=
res
.
items
[
'左'
]
this
.
imgRight
=
res
.
items
[
'右'
]
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
loading
=
false
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
.assembly-process
{
>
div
:first-child
{
display
:
flex
;
background-color
:
#b6dde8
;
font-weight
:
700
;
font-size
:
16px
;
>
p
{
width
:
50%
;
padding
:
10px
0
;
text-align
:
center
;
&
:first-child
{
border-right
:
2px
solid
#cecece
;
}
}
}
>
.img
{
display
:
flex
;
>
div
{
width
:
50%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
min-height
:
20vh
;
max-height
:
70vh
;
img
{
max-height
:
100%
;
max-width
:
100%
;
}
}
}
}
</
style
>
applications/dee-mes/src/views/taskExecution/components/AttachmentUpload/dialog.vue
View file @
3bee3490
...
...
@@ -15,16 +15,12 @@
</header>
<el-form-item>
<DeeUploadTable
v-model=
"
objFileLinks
"
a
ttr-key=
"objFileLinks
"
v-model=
"
process.fileList
"
a
pp-name=
"tf-mom
"
:read-only=
"false"
:config-item=
"
{}
"
:config-item=
"
tableConfig
"
:table-columns=
"tableColumns"
:remove-check-fn="removeCheckFn"
:table-config="tableConfig"
@input="modifyed=true"
/>
<!--
<upload-files
v-if=
"uploadVisble"
ref=
"upload"
v-model=
"objFileLinks"
/>
-->
</el-form-item>
<el-form-item
class=
"btns"
>
<el-button
...
...
@@ -39,6 +35,7 @@
</dee-dialog>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
export
default
{
name
:
'StorageExperimentDialog'
,
data
()
{
...
...
@@ -48,33 +45,18 @@ export default {
process
:
{},
processNumber
:
null
,
processName
:
null
,
objFileLinks
:
[],
disabled
:
false
,
uploadVisble
:
false
,
modifyed
:
false
,
tableColumns
:
[
{
'title'
:
'文件名'
,
'key'
:
'originalFileName'
,
'key'
:
'
target.
originalFileName'
,
'parentKey'
:
'target'
,
'headerAlign'
:
'center'
,
'align'
:
'left'
},
{
'title'
:
'文件大小'
,
'key'
:
'fileSize'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'show'
:
true
,
'headerAlign'
:
'center'
,
'align'
:
'left'
,
formatter
:
(
row
)
=>
{
return
this
.
$utils
.
formatGMK
(
row
.
fileSize
)
}
},
{
'title'
:
'扩展名'
,
'key'
:
'fileExtension'
,
'key'
:
'target.fileSize'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'show'
:
true
,
...
...
@@ -82,23 +64,8 @@ export default {
'align'
:
'left'
},
{
'title'
:
'文件状态'
,
'key'
:
'fileStatus'
,
'fildProp'
:
{
'id'
:
164
,
'refId'
:
null
,
'type'
:
'DictDataVO'
,
'rule'
:
{
'typeName'
:
'DictDataVO'
,
'comment'
:
null
,
'length'
:
null
,
'defaultValue'
:
''
,
'notNull'
:
false
,
'unique'
:
false
,
'scale'
:
null
,
'dictTypeCode'
:
'FileStatus'
},
'attrType'
:
'BASE'
},
'title'
:
'扩展名'
,
'key'
:
'target.fileExtension'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'show'
:
true
,
...
...
@@ -107,69 +74,75 @@ export default {
}
],
tableConfig
:
{
'filterKey'
:
'contentType'
,
'serverUrl'
:
''
,
'pageShow'
:
true
,
'taleType'
:
'single'
,
'url'
:
'/dfs/fileManager/feign/uploadFile'
,
'showFileList'
:
true
,
// 'identFilter': ['FLOW_FILE'],
limit
:
1
,
isBigFileUpload
:
false
,
isNeedBucket
:
false
,
'uploadFilter'
:
'FLOW_FILE'
,
formatData
:
(
val
)
=>
{
return
[
val
]
}
component
:
{
alimit
:
1
,
appendFilter
:
[
'ATTACH_FILE'
,
'SECONDARY'
,
'FLOW_FILE'
,
'PROCESS_CONTENTROLE_PDF'
],
appendTitle
:
'附件'
,
appendUploadFilter
:
'ATTACH_FILE'
,
defaultValueSelfFun
:
'return null'
,
disabled
:
false
,
filterKey
:
'contentType'
,
// limit: 1,
masterFilter
:
[
'MASTER_FILE'
,
'PRIMARY'
],
masterTitle
:
'主内容'
,
masterUploadFilter
:
'MASTER_FILE'
,
mlimit
:
1
,
mrequired
:
true
,
name
:
'DeeUploadTable'
,
placeholder
:
''
,
required
:
false
,
showFileList
:
true
,
state
:
'edit'
,
taleType
:
'single'
,
url
:
'/dfs/fileManager/feign/uploadFile'
},
descriptionShowMode
:
'text'
,
hidden
:
false
,
key
:
'objFileLinks'
,
name
:
'附件'
,
parentKey
:
'objFileLinks'
,
premMark
:
true
,
title
:
''
,
width
:
3
}
}
},
computed
:
{},
created
()
{},
mounted
()
{},
methods
:
{
removeCheckFn
(
rows
)
{
this
.
objFileLinks
=
this
.
objFileLinks
.
filter
(
el
=>
{
const
findFlag
=
rows
.
find
(
item
=>
{
return
item
.
id
===
el
.
id
})
return
!
findFlag
})
return
},
// 打开弹出框
open
(
data
)
{
console
.
log
(
343434
,
data
)
this
.
process
=
data
this
.
process
=
this
.
$utils
.
deepClone
(
data
)
this
.
visible
=
true
},
// 保存
onSubmit
()
{
this
.
disabled
=
true
this
.
loading
=
true
// const params = {
// ...this.row
// }
// params.objFileLinks = this.objFileLinks
// params.operator = 'MODIFY'
// AttachmentPreservation(params)
// .then((res) => {
// this.$parent.getEnclosureFeil()
// this.$utils.showMessageSuccess('保存成功')
// // 关闭抽屉并刷新表格
// this.visible = false
// this.$emit('reload')
// })
// .catch((err) => {
// console.log(err)
// })
// .finally(() => {
// this.disabled = false
// this.visible = false
const
params
=
{
operator
:
'MODIFY'
,
id
:
this
.
process
.
id
,
extProcessOperation
:
{
id
:
this
.
process
.
tableId
,
operator
:
'MODIFY'
}
}
params
.
extProcessOperation
.
objFileLinks
=
this
.
process
.
fileList
post
(
'/JoExecuteOpPlan/recursion'
,
params
)
.
then
((
res
)
=>
{
this
.
$parent
.
getWorkingProcedure
()
this
.
$utils
.
showMessageSuccess
(
'保存成功'
)
// 关闭抽屉并刷新表格
this
.
visible
=
false
this
.
$emit
(
'reload'
)
})
.
catch
((
err
)
=>
{
console
.
log
(
err
)
})
.
finally
(()
=>
{
this
.
disabled
=
false
this
.
visible
=
false
// this.uploadVisble = true
//
this.loading = false
//
})
this
.
loading
=
false
})
}
}
}
...
...
@@ -185,7 +158,7 @@ export default {
display
:
flex
;
white-space
:
nowrap
;
align-items
:
center
;
margin-
left
:
3
0px
;
margin-
bottom
:
2
0px
;
>
div
{
width
:
140px
;
margin-left
:
15px
;
...
...
applications/dee-mes/src/views/taskExecution/components/TechnicalRequirements/components/Table1.vue
0 → 100644
View file @
3bee3490
<
template
>
<section>
<!-- 表格 -->
<dee-table
:loading=
"loading"
:index-row=
"indexRow"
:columns=
"tableColums"
:data=
"tableData"
:options=
"tableOptions"
/>
</section>
</
template
>
<
script
>
export
default
{
components
:
{},
data
()
{
return
{
// 加载中
loading
:
false
,
// 搜索条件
form
:
[],
// 序号
indexRow
:
{
title
:
'序号'
,
align
:
'center'
,
width
:
'70'
},
// 所有可动态配置的表格列
colums
:
[
{
title
:
'所需产品设计图号'
,
show
:
true
,
key
:
'docNumber'
},
{
title
:
'图样名称'
,
show
:
true
,
key
:
'name'
},
{
title
:
'版次'
,
show
:
true
,
key
:
'gaceVersion'
}
],
// 默认展示的表格列
tableColums
:
[],
// 表格数据
tableData
:
[],
// 表格样式配置
tableOptions
:
{
stripe
:
true
,
border
:
true
}
}
},
created
()
{
this
.
setDefaultColums
()
},
mounted
()
{
// this.init()
},
methods
:
{
// 设置默认展示列
setDefaultColums
()
{
this
.
tableColums
=
this
.
colums
.
filter
((
item
)
=>
item
.
show
)
},
// 初始化数据
init
()
{
this
.
tableData
=
this
.
$parent
.
$parent
.
$parent
.
tableDesign
||
[]
this
.
loading
=
false
}
}
}
</
script
>
<
style
lang=
"scss"
>
</
style
>
applications/dee-mes/src/views/taskExecution/components/TechnicalRequirements/components/Table2.vue
0 → 100644
View file @
3bee3490
<
template
>
<section>
<!-- 表格 -->
<!--
<dee-table
:loading=
"loading"
:index-row=
"indexRow"
:columns=
"tableColums"
:data=
"tableData"
:options=
"tableOptions"
/>
-->
<el-table
v-loading=
"loading"
:data=
"tableData"
class=
"pdf"
border
size=
"small"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"70"
header-align=
"center"
/>
<el-table-column
prop=
"docNumber"
label=
"所需技术文件编号"
header-align=
"center"
>
<template
slot-scope=
"scope"
><el-button
class=
"seepdf"
size=
"mini"
type=
"text"
@
click=
"seePDF(scope.row)"
>
{{
scope
.
row
.
docNumber
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"名称"
header-align=
"center"
/>
<el-table-column
prop=
"gaceVersion"
label=
"版次"
header-align=
"center"
/></el-table>
</section>
</template>
<
script
>
// import { downloadPdfHandle } from '@/api/inventory.js'
// import axios from 'axios'
export
default
{
components
:
{},
data
()
{
return
{
// 加载中
loading
:
false
,
// 搜索条件
form
:
[],
// 序号
indexRow
:
{
title
:
'序号'
,
align
:
'center'
,
width
:
'70'
},
// 所有可动态配置的表格列
colums
:
[
{
title
:
'所需技术文件编号'
,
show
:
true
,
key
:
'docNumber'
,
sortable
:
true
,
component
:
{
render
:
(
h
,
params
)
=>
{
return
h
(
'div'
,
[
h
(
'span'
,
{
class
:
'link-style'
,
on
:
{
click
:
()
=>
{
console
.
log
(
123
)
}
}
},
params
.
docNumber
)
])
}
}
},
{
title
:
'名称'
,
show
:
true
,
key
:
'name'
},
{
title
:
'版次'
,
show
:
true
,
key
:
'gaceVersion'
}
],
// 默认展示的表格列
tableColums
:
[],
// 表格数据
tableData
:
[],
// 表格样式配置
tableOptions
:
{
stripe
:
true
,
border
:
true
}
}
},
created
()
{
this
.
setDefaultColums
()
},
mounted
()
{
// this.init()
},
methods
:
{
// 设置默认展示列
setDefaultColums
()
{
this
.
tableColums
=
this
.
colums
.
filter
((
item
)
=>
item
.
show
)
},
// 初始化数据
init
()
{
this
.
tableData
=
this
.
$parent
.
$parent
.
$parent
.
tableFile
||
[]
this
.
loading
=
false
},
seePDF
(
row
)
{
if
(
!
row
.
docsUrl
)
{
this
.
$message
({
showClose
:
true
,
message
:
'pdf不存在'
,
type
:
'error'
})
}
// const baseURl = downloadPdfHandle()
// axios({
// method: 'get',
// url: '/gace/mbom/downloadGACEAppData',
// params: {
// gaceUrl: row.docsUrl + localStorage.getItem('fullName'),
// docName: row.docName
// },
// baseURL: baseURl,
// headers: { token: `${localStorage.getItem('token')}`, 'equipment_id': `${localStorage.getItem('uid')}` },
// responseType: 'arraybuffer'
// }).then((res) => {
// const blob = new Blob([res.data], {
// type: 'application/pdf'
// })
// if (window.navigator.msSaveOrOpenBlob) {
// navigator.msSaveBlob(blob)
// } else {
// // const elink = document.createElement('a')
// // elink.download = 'pdf.pdf'
// // elink.style.display = 'none'
// // elink.href = URL.createObjectURL(blob)
// var openUrl = URL.createObjectURL(blob)
// window.open(openUrl)
// // obj.document.title = '驱蚊器为切为'
// // document.body.appendChild(elink)
// // elink.click()
// // document.body.removeChild(elink)
// }
// })
}
}
}
</
script
>
<
style
lang=
"scss"
>
.pdf.el-table
{
.seepdf
{
padding
:
0
;
}
thead
th
{
padding
:
0
;
background-color
:
#f3f6f7
;
line-height
:
45px
!
important
;
color
:
#2e2e2e
;
font-weight
:
700
;
font-size
:
14px
;
border
:
0
;
&
:not
(
:last-child
)
:not
(
.gutter
)
:before
{
content
:
""
;
height
:
24px
;
line-height
:
24px
;
border-right
:
1px
solid
#d8d8d8
;
position
:
absolute
;
top
:
0
;
bottom
:
0
;
right
:
0
;
margin
:
auto
0
;
}
}
}
</
style
>
applications/dee-mes/src/views/taskExecution/components/TechnicalRequirements/components/Table3.vue
0 → 100644
View file @
3bee3490
<
template
>
<section>
<!-- 表格 -->
<dee-table
:loading=
"loading"
:index-row=
"indexRow"
:columns=
"tableColums"
:data=
"tableData"
:options=
"tableOptions"
/>
</section>
</
template
>
<
script
>
export
default
{
components
:
{},
data
()
{
return
{
// 加载中
loading
:
false
,
// 搜索条件
form
:
[],
// 序号
indexRow
:
{
title
:
'序号'
,
align
:
'center'
,
width
:
'70'
},
// 所有可动态配置的表格列
colums
:
[
{
title
:
'所需专工工装编号'
,
show
:
true
,
key
:
'resCode'
},
{
title
:
'工艺装备名称'
,
show
:
true
,
key
:
'resName'
},
{
title
:
'序列号'
,
show
:
true
,
key
:
'modelNo'
}
],
// 默认展示的表格列
tableColums
:
[],
// 表格数据
tableData
:
[],
// 表格样式配置
tableOptions
:
{
stripe
:
true
,
border
:
true
}
}
},
created
()
{
this
.
setDefaultColums
()
},
mounted
()
{
// this.init()
},
methods
:
{
// 设置默认展示列
setDefaultColums
()
{
this
.
tableColums
=
this
.
colums
.
filter
((
item
)
=>
item
.
show
)
},
// 初始化数据
init
()
{
// 设置数据
this
.
loading
=
true
this
.
tableData
=
this
.
$parent
.
$parent
.
$parent
.
tableClothes
||
[]
this
.
loading
=
false
}
}
}
</
script
>
<
style
lang=
"scss"
>
</
style
>
applications/dee-mes/src/views/taskExecution/components/TechnicalRequirements/index.vue
0 → 100644
View file @
3bee3490
<
template
>
<dee-dialog
id=
"dee-dialog"
title=
"技术要求"
:dialog-visible
.
sync=
"visible"
width=
"90%"
custom-class=
"mobile-dialog"
:before-close=
"handleClose"
close-on-click-modal
>
<section
class=
"TechnicalRequirements"
>
<p
class=
"TechnicalRequirements-header-title"
>
换版说明
</p>
<p
class=
"content"
>
{{
versionChangeDesc
}}
</p>
<p
class=
"TechnicalRequirements-header-title"
>
编制说明
</p>
<p
class=
"content"
>
{{
prepareDescription
}}
</p>
<Table1
ref=
"table1"
/>
<Table2
ref=
"table2"
/>
<Table3
ref=
"table3"
/>
<p
style=
"margin-top:20px"
class=
"TechnicalRequirements-header-title"
>
工作说明
</p>
<p
class=
"content"
>
{{
workDescription
}}
</p>
</section>
</dee-dialog>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
import
Table1
from
'./components/Table1'
import
Table2
from
'./components/Table2'
import
Table3
from
'./components/Table3'
export
default
{
components
:
{
Table1
,
Table2
,
Table3
},
data
()
{
return
{
visible
:
false
,
tableDesign
:
[],
tableFile
:
[],
tableClothes
:
[],
versionChangeDesc
:
null
,
workDescription
:
null
,
prepareDescription
:
null
}
},
created
()
{},
mounted
()
{
// this.getTablesData()
},
methods
:
{
// 打开弹出框
open
()
{
this
.
visible
=
true
this
.
$nextTick
(()
=>
{
this
.
getTablesData
()
})
},
handleClose
()
{},
getTablesData
()
{
var
that
=
this
this
.
$refs
.
table1
.
loading
=
true
this
.
$refs
.
table2
.
loading
=
true
this
.
$refs
.
table3
.
loading
=
true
const
params
=
{
'searchItems'
:
{
'children'
:
[
{
'items'
:
[
{
'fieldName'
:
'extProcessDocLinks.sourceId'
,
'operator'
:
'EQ'
,
'value'
:
'249403670569000'
// 'value': this.$parent.headerData.aoId
},
{
'fieldName'
:
'subTypeName'
,
'operator'
:
'EQ'
,
'value'
:
'DxProcessPlanDesignView'
}
],
'operator'
:
'AND'
}
],
'items'
:
[],
'operator'
:
'AND'
},
'openProps'
:
[
{
'name'
:
'extProcessDocLinks'
}
],
'sortItem'
:
[
{
'fieldName'
:
'modifyTime'
,
'sortOrder'
:
'desc'
}
],
'toValidateKeys'
:
''
}
post
(
`/ExtProcessDocument/search`
,
params
)
.
then
((
res
)
=>
{
if
(
res
.
message
.
includes
(
'成功'
))
{
this
.
tableDesign
=
res
.
items
.
designViews
||
[]
this
.
tableFile
=
res
.
items
.
docRefs
||
[]
this
.
tableClothes
=
res
.
items
.
materialVos
||
[]
this
.
versionChangeDesc
=
res
.
items
.
dxProcessPlanVo
.
versionChangeDesc
this
.
prepareDescription
=
res
.
items
.
dxProcessPlanVo
.
prepareDescription
this
.
workDescription
=
res
.
items
.
dxProcessPlanVo
.
workDescription
this
.
$nextTick
(()
=>
{
this
.
$refs
.
table1
.
init
()
this
.
$refs
.
table2
.
init
()
this
.
$refs
.
table3
.
init
()
})
}
else
{
that
.
$message
({
showClose
:
true
,
message
:
'保存失败'
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
this
.
$refs
.
table1
.
loading
=
false
this
.
$refs
.
table2
.
loading
=
false
this
.
$refs
.
table3
.
loading
=
false
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
.TechnicalRequirements
{
width
:
100%
;
box-sizing
:
border-box
;
// max-height: 70vh;
overflow
:
auto
;
.TechnicalRequirements-header-title
{
border-left
:
6px
solid
#4099f7
;
padding
:
10px
0
10px
5px
;
font-size
:
20px
;
font-weight
:
700
;
color
:
#000
;
background-color
:
#e4e1e1
;
}
.content
{
padding
:
10px
;
min-height
:
50px
;
}
.dee-table-no-header
{
height
:
0
;
}
}
</
style
>
applications/dee-mes/src/views/taskExecution/components/chatBox/index.vue
0 → 100644
View file @
3bee3490
<
template
>
<dee-dialog
v-if=
"visible"
title=
"检验驳回"
:dialog-visible
.
sync=
"visible"
custom-class=
"mobile-dialog"
width=
"90%"
>
<section
class=
"chatbox-com"
>
<!--
<div
class=
"header"
>
<h3>
缺件信息维护
</h3>
</div>
-->
<div
class=
"main"
>
<div
class=
"talkshow"
>
<ul
v-for=
"item in list"
:key=
"item.id"
class=
"atalk"
>
<li
class=
"textLeft"
>
<img
src=
"/icons/photo.jpg"
alt=
"信息"
class=
"img"
>
<span
class=
"info"
>
<section
class=
"top"
>
<span
class=
"left"
>
{{
item
.
name
}}
</span>
<span
class=
"right"
>
{{
item
.
time
}}
</span>
</section>
<strong>
{{
item
.
message
}}
</strong>
</span>
</li>
<!--
<strong
v-if=
"item.id===1"
>
:
{{
item
.
name
}}
</strong>
-->
</ul>
</div>
</div>
<!-- 发送消息 -->
<div
class=
"sendbox"
>
<el-input
v-model
.
trim=
"wordone"
class=
"inputword"
type=
"textarea"
maxlength=
"125"
show-word-limit
placeholder=
"请输入不超过255个字符"
:autosize=
"
{ minRows: 1, maxRows: 2 }"
resize="none"
clearable
@keyup.enter.native="sendmsg"
/>
<button
class=
"btnsend"
@
click=
"sendmsg"
>
{{
closeTime
?
closeTimeNum
+
"S后关闭!"
:
"添加"
}}
</button>
<button
class=
"btnClose"
@
click=
"closeMsgBox"
>
关闭
</button>
</div>
</section>
</dee-dialog>
</
template
>
<
script
>
import
{
post
}
from
'@/utils/http'
import
$
from
'jquery'
export
default
{
data
()
{
return
{
list
:
[],
wordone
:
''
,
visible
:
false
,
row
:
{},
closeTime
:
false
,
closeTimeNum
:
3
,
timer
:
null
}
},
watch
:
{
// 消息自动滚动到最低部
list
()
{
this
.
$nextTick
(()
=>
{
var
h
=
$
(
'.talkshow'
).
innerHeight
()
$
(
'.main'
).
scrollTop
(
h
)
})
}
},
created
()
{},
methods
:
{
/**
* 信息接受
*/
infoInit
()
{
this
.
loading
=
true
// var procedureId = this.$parent.procedureId
const
params
=
{
'searchItems'
:
{
'children'
:
[
{
'items'
:
[
{
'fieldName'
:
'keyID'
,
'operator'
:
'EQ'
,
'value'
:
this
.
$parent
.
procedureId
}
],
'operator'
:
'AND'
}
],
'items'
:
[],
'operator'
:
'AND'
},
'openProps'
:
[],
'sortItem'
:
[
{
'fieldName'
:
'modifyTime'
,
'sortOrder'
:
'desc'
}
],
'toValidateKeys'
:
''
}
// viewRejectionRecord(procedureId)
post
(
`/OBJRejectHistory/search`
,
params
)
.
then
((
res
)
=>
{
this
.
list
=
[]
res
.
items
.
map
((
item
)
=>
{
if
(
!
item
.
remake
)
return
this
.
list
.
push
({
name
:
item
.
creator
.
userName
,
message
:
item
.
remake
,
time
:
item
.
createTime
})
})
})
.
catch
((
err
)
=>
{
console
.
log
(
err
)
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
/**
* 信息发送
*/
sendmsg
()
{
var
that
=
this
if
(
that
.
wordone
.
trim
().
length
)
{
if
(
that
.
wordone
.
trim
().
length
>
255
)
{
return
that
.
$utils
.
showMessageWarning
(
'输入内容过长,请重新输入'
)
}
that
.
loading
=
true
const
params
=
{
keyID
:
that
.
$parent
.
procedureId
,
remake
:
that
.
wordone
}
post
(
`JoExecuteOpPlan/inspection/rejected`
,
params
)
.
then
((
res
)
=>
{
that
.
closeTime
=
true
that
.
$utils
.
showMessageSuccess
(
'添加成功'
)
that
.
infoInit
()
that
.
$parent
.
getWorkingProcedure
()
that
.
timer
=
setInterval
(
function
()
{
that
.
closeTimeNum
--
if
(
that
.
closeTimeNum
===
0
)
{
that
.
closeTime
=
false
that
.
closeMsgBox
()
clearInterval
(
that
.
timer
)
that
.
timer
=
null
}
},
1000
)
})
.
catch
((
err
)
=>
{
console
.
log
(
err
)
})
.
finally
(()
=>
{
that
.
wordone
=
''
that
.
loading
=
false
})
}
else
{
that
.
$utils
.
showMessageWarning
(
'请输入内容后添加'
)
}
},
// 打开弹出框
open
(
row
=
{})
{
this
.
visible
=
true
this
.
list
=
[]
this
.
wordone
=
''
this
.
closeTimeNum
=
3
this
.
row
=
row
this
.
infoInit
()
},
// 关闭弹框
closeMsgBox
()
{
this
.
wordone
=
''
this
.
visible
=
false
}
}
}
</
script
>
<
style
lang=
"scss"
>
.chatbox-com
{
width
:
100%
;
// height: calc(95vh - 160px);
overflow
:
hidden
;
.main
{
min-height
:
200px
;
}
.talkshow
li
{
list-style
:
none
;
position
:
relative
;
padding
:
5px
;
margin-bottom
:
10px
;
.img
{
position
:
absolute
;
border-radius
:
25px
;
width
:
50px
;
height
:
50px
;
left
:
-10px
;
top
:
5px
;
}
}
.talkshow
li
>
span
{
position
:
relative
;
border-radius
:
7px
;
background-color
:
#a6e860
;
margin-left
:
50px
;
padding
:
6px
10px
8px
10px
;
z-index
:
1
;
display
:
inline-block
;
min-height
:
50px
;
background-color
:
rgb
(
230
,
249
,
255
);
.top
{
display
:
flex
;
justify-content
:
space-between
;
color
:
blue
;
font-size
:
15px
;
}
strong
{
line-height
:
1
.4
;
}
}
.talkshow
.textLeft
span
{
background-color
:
rgb
(
230
,
249
,
255
);
}
.talkshow
li
.textLeft
span
:before
{
content
:
""
;
display
:
block
;
width
:
0
;
height
:
0
;
border
:
8px
solid
transparent
;
border-right
:
8px
solid
rgb
(
230
,
249
,
255
);
position
:
absolute
;
top
:
20px
;
left
:
-16px
;
}
.main
{
box-sizing
:
border-box
;
height
:
90%
;
overflow
:
scroll
;
font-size
:
16px
;
padding
:
10px
;
}
div
:
:-
webkit-scrollbar
{
display
:
none
;
}
.atalk
{
margin
:
10px
;
}
.atalk
span
{
display
:
inline-block
;
padding
:
3px
10px
;
border-radius
:
15px
;
padding
:
8px
5px
;
}
.sendbox
{
height
:
60px
;
width
:
100%
;
margin-top
:
5px
;
display
:
flex
;
margin-left
:
-4px
;
padding-left
:
4px
;
background-color
:
rgba
(
0
,
0
,
0
,
0
.1
);
justify-content
:
center
;
align-content
:
center
;
align-items
:
center
;
flex-wrap
:
wrap
;
}
.inputword
{
outline
:
none
;
width
:
75%
;
min-height
:
36px
;
text-indent
:
12px
;
.el-textarea__inner
{
border-radius
:
15px
;
border
:
1px
solid
#3a8ee6
;
}
}
.btnsend
,
.btnClose
{
line-height
:
18px
;
font-size
:
18px
;
color
:
#fff
;
padding-bottom
:
4px
;
outline
:
none
;
width
:
9%
;
height
:
35px
;
white-space
:
nowrap
;
border-radius
:
15px
;
margin-left
:
2%
;
background
:
#909399
;
border
:
1px
solid
#909399
;
}
.btnsend
{
border
:
1px
solid
#409eff
;
background
:
url("/icons/send.jpg")
no-repeat
left
top
;
}
}
</
style
>
applications/dee-mes/src/views/taskExecution/index.vue
View file @
3bee3490
...
...
@@ -177,27 +177,27 @@
@
click=
"$refs.AttachmentUpload.open(editor)"
>
附件
</el-button>
<el-table
:data=
"e
nclosureData
"
:data=
"e
ditor.fileList
"
border
class=
"enclosure"
size=
"small"
style=
"width: 700px"
>
<el-table-column
prop=
"originalFileName"
prop=
"
target.
originalFileName"
label=
"文件名"
min-width=
"180"
align=
"center"
/>
<el-table-column
prop=
"fileSize"
prop=
"
target.
fileSize"
label=
"文件大小"
min-width=
"120"
align=
"center"
/>
<el-table-column
min-width=
"120"
prop=
"fileExtension"
prop=
"
target.
fileExtension"
label=
"扩展名"
align=
"center"
/>
...
...
@@ -213,7 +213,7 @@
></span>
-->
</div>
</div>
<nav
id=
"gooey-v"
>
<nav
v-if=
"this.$route.query.title==='装配任务执行'"
id=
"gooey-v"
>
<input
id=
"menu-open4"
type=
"checkbox"
...
...
@@ -328,6 +328,123 @@
</el-badge>
</a>
</nav>
<nav
v-else
id=
"gooey-v"
>
<input
id=
"menu-open4"
type=
"checkbox"
class=
"menu-open"
name=
"menu-open4"
>
<label
class=
"open-button"
for=
"menu-open4"
>
<el-badge
:value=
"22"
class=
"item"
hidden
>
<i
class=
"icon el-icon-menu"
/></el-badge></label>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
:disabled=
"!editor.revoke || isOK"
content=
"检验撤销"
@
click=
"editor.revoke && !isOK && setRejected()"
>
<el-badge
:value=
"editor.countQuality"
class=
"item"
hidden
>
<i
style=
"font-size:20px;padding-top: 6px;"
class=
"el-icon-refresh-left"
/>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
:disabled=
"isOK"
content=
"质量预审"
@
click=
"!isOK && handleQualityHearing()"
>
<el-badge
:value=
"editor.countQuality"
class=
"item"
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-ziyuan145"
/>
</svg>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
:disabled=
"isOK"
content=
"联试联调"
>
<el-badge
:value=
"editor.countDebugging"
class=
"item"
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-tiaoshi"
/>
</svg>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
:disabled=
"isOK || !editor.jurisdiction"
content=
"检验驳回"
@
click=
"
!isOK && editor.jurisdiction && $refs.InspectionRejected.open()
"
>
<el-badge
:value=
"editor.countOBJReject"
class=
"item"
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-bohui"
/>
</svg>
</el-badge>
</a>
<a
:disabled=
"isOK || !editor.jurisdiction"
href=
"javascript:void(0)"
class=
"gooey-menu-item"
content=
"检验完成"
@
click=
"!isOK && editor.jurisdiction && inspectionDioge()"
>
<el-badge
:value=
"12"
class=
"item"
hidden
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-wancheng"
/>
</svg>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
:disabled=
"isOK"
content=
"装配流程"
@
click=
"!isOK && $refs.AssemblyProcess.open()"
>
<el-badge
:value=
"12"
class=
"item"
hidden
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-zhuangpeishuju"
/>
</svg>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
content=
"工作说明"
:disabled=
"isOK"
@
click=
"!isOK && $refs.TechnicalRequirements.open()"
>
<el-badge
:value=
"12"
class=
"item"
hidden
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-zhuangtaishuoming"
/>
</svg>
</el-badge>
</a>
<a
href=
"javascript:void(0)"
class=
"gooey-menu-item"
content=
"物料查看"
:disabled=
"isOK"
@
click=
"!isOK && $refs.ConfirmMaterial.open()"
>
<el-badge
:value=
"12"
class=
"item"
hidden
>
<svg
class=
"icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-wuliao"
/>
</svg>
</el-badge>
</a>
</nav>
</div>
<!-- 弹框操作说明 -->
<el-drawer
...
...
@@ -396,16 +513,17 @@
<!--胶漆申领 -->
<!--
<LacClaims
ref=
"LacClaims"
/>
-->
<!-- 技术要求 -->
<
!--
<TechnicalRequirements
ref=
"TechnicalRequirements"
/>
--
>
<
TechnicalRequirements
ref=
"TechnicalRequirements"
/
>
<!-- 装配流程 -->
<
!--
<AssemblyProcess
ref=
"AssemblyProcess"
/>
--
>
<
AssemblyProcess
ref=
"AssemblyProcess"
/
>
<!-- 问题申报 -->
<!--
<ProblemDeclare
ref=
"ProblemDeclare"
/>
-->
<!-- 驳回记录 -->
<
!--
<InspectionRejected
ref=
"InspectionRejected"
/>
--
>
<!--
检验驳回
驳回记录 -->
<
InspectionRejected
ref=
"InspectionRejected"
/
>
<AttachmentUpload
ref=
"AttachmentUpload"
/>
<!-- 物料确认 -->
<!--
<RecordMaintenance
ref=
"RecordMaintenance"
/>
-->
<!-- 物料确认 -->
</div>
</
template
>
...
...
@@ -419,19 +537,21 @@ import { post, get } from '@/utils/http'
// import Table from './components/table'
// import ConfirmMaterial from './components/ConfirmMaterial/index'
// import LacClaims from './components/LacClaims/index'
//
import TechnicalRequirements from './components/TechnicalRequirements/index'
//
import AssemblyProcess from './components/AssemblyProcess/index'
//
import InspectionRejected from './components/chatBox/index'
import
TechnicalRequirements
from
'./components/TechnicalRequirements/index'
import
AssemblyProcess
from
'./components/AssemblyProcess/index'
import
InspectionRejected
from
'./components/chatBox/index'
// import ProblemDeclare from './components/ProblemDeclare/index'
// import RecordMaintenance from './components/RecordMaintenance/index'
// import scan from '@/components/scanCode/scanCode'
import
AttachmentUpload
from
'./components/AttachmentUpload/dialog'
// import { assemblyExecutionUpload } from '@/api/inventory.js'
export
default
{
name
:
'AssemblyPerform'
,
components
:
{
// Table
AttachmentUpload
AttachmentUpload
,
TechnicalRequirements
,
InspectionRejected
,
AssemblyProcess
},
data
()
{
return
{
...
...
@@ -451,7 +571,8 @@ export default {
dmir
:
{
dmriImg
:
null
,
dmirTime
:
null
}
},
jurisdiction
:
false
},
drawerShow
:
false
,
// showDrawerTable: false,
...
...
@@ -686,6 +807,7 @@ export default {
countProblem
:
p
.
countProblem
,
countDebugging
:
p
.
countDebugging
,
countQuality
:
p
.
countQuality
,
revoke
:
p
.
revoke
,
// 工装
isOKClothesLink
:
p
.
isOKClothesLink
,
isOKToolLink
:
p
.
isOKToolLink
,
...
...
@@ -794,7 +916,9 @@ export default {
var
row
=
this
.
workingProcedure
.
filter
(
(
p
)
=>
p
.
id
===
this
.
procedureId
)[
0
]
var
jurisdiction
=
row
.
statusCode
===
'Yes'
this
.
editor
=
{
id
:
row
.
id
,
title
:
row
.
title
,
html
:
this
.
formatHTML
(
row
.
statusCode
,
row
.
html
),
tableId
:
row
.
tableId
,
...
...
@@ -808,6 +932,8 @@ export default {
operator
:
row
.
operator
,
testor
:
row
.
testor
,
dmir
:
row
.
dmir
,
jurisdiction
:
jurisdiction
,
revoke
:
row
.
revoke
,
versionKey
:
row
.
versionKey
,
serialNumber
:
row
.
serialNumber
,
countOBJReject
:
row
.
countOBJReject
,
...
...
@@ -983,8 +1109,6 @@ export default {
})
return
}
// return
// that.workingProcedureLoading = true
get
(
`/JoExecuteOpPlan/completeOp?joOpId=
${
that
.
procedureId
}
&joAoId=
${
that
.
headerData
.
id
}
`
,
{}
...
...
@@ -1020,16 +1144,12 @@ export default {
)[
0
]
item
.
html
=
editHTML
// var tableId = item.tableId
post
(
'/JoExecuteOpPlan/recursion'
,
post
(
'/JoExecuteOpPlan/recursion'
,
{
operator
:
'MODIFY'
,
id
:
this
.
procedureId
,
longdescription
:
editHTML
},
'post'
)
.
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
if
(
res
&&
res
.
message
.
includes
(
'成功'
))
{
this
.
$message
({
showClose
:
true
,
...
...
@@ -1126,6 +1246,93 @@ export default {
})
}
},
inspectionDioge
()
{
var
that
=
this
this
.
$confirm
(
'确定检验完成吗'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
that
.
inspectionCompleted
()
})
.
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
})
})
},
/**
*检验完成
*/
inspectionCompleted
()
{
var
that
=
this
get
(
`/JoExecuteOpPlan/completeOp?joOpId=
${
that
.
procedureId
}
&joAoId=
${
that
.
headerData
.
id
}
`
,
{}
)
.
then
((
res
)
=>
{
if
(
res
&&
res
.
message
.
includes
(
'成功'
))
{
that
.
getWorkingProcedure
()
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'success'
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
// that.editShow = false
})
},
setRejected
()
{
var
that
=
this
this
.
$confirm
(
'确定检验撤销吗'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
post
(
`/JoExecuteOpPlan/checked/rejected?joOpId=
${
that
.
procedureId
}
&joAoId=
${
that
.
headerData
.
id
}
`
,
{}
)
.
then
((
res
)
=>
{
if
(
res
&&
res
.
message
.
includes
(
'成功'
))
{
that
.
getWorkingProcedure
()
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'success'
})
}
else
{
this
.
$message
({
showClose
:
true
,
message
:
res
.
message
,
type
:
'error'
})
}
})
.
catch
((
err
)
=>
console
.
error
(
err
))
.
finally
(()
=>
{
// that.editShow = false
})
})
.
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
})
})
},
routerNnonConformingProductReviewList
()
{
this
.
$router
.
push
({
name
:
'nonConformingProductReviewList'
...
...
applications/dee-mes/src/views/taskReception/components/taskReceiveCard/index.vue
View file @
3bee3490
...
...
@@ -6,7 +6,10 @@
<div
class=
"p-item"
@
click=
"routerAssemblyExecution(item)"
>
<a
:name=
"item.code"
/>
<div
class=
"process-header"
>
<div
class=
"status-box"
:class=
"item.status"
>
<div
v-if=
"$route.query.title === '检验任务'"
class=
"status-box Delivery"
>
待检验
</div>
<div
v-else
class=
"status-box"
:class=
"item.status"
>
{{
item
.
status
|
statusFilters
(
joExecutePlanStateData
)
}}
</div>
<div
class=
"h-title"
>
...
...
@@ -235,6 +238,7 @@ export default {
},
getTaskAcceptance
()
{
const
that
=
this
const
user
=
localStorage
.
getItem
(
'userId'
)
||
''
var
param
=
{
'searchQueryCondition'
:
{
'searchItems'
:
{
...
...
@@ -252,7 +256,8 @@ export default {
{
'fieldName'
:
'prodTask.extProcessSkillUser.dxUserInfoId'
,
'operator'
:
'EQ'
,
'value'
:
1626781927440
// 'value': 1626781927440
value
:
user
}
],
'operator'
:
'AND'
...
...
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