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
Expand all
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 @@
...
@@ -15,16 +15,12 @@
</header>
</header>
<el-form-item>
<el-form-item>
<DeeUploadTable
<DeeUploadTable
v-model=
"
objFileLinks
"
v-model=
"
process.fileList
"
a
ttr-key=
"objFileLinks
"
a
pp-name=
"tf-mom
"
:read-only=
"false"
:read-only=
"false"
:config-item=
"
{}
"
:config-item=
"
tableConfig
"
:table-columns=
"tableColumns"
: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>
<el-form-item
class=
"btns"
>
<el-form-item
class=
"btns"
>
<el-button
<el-button
...
@@ -39,6 +35,7 @@
...
@@ -39,6 +35,7 @@
</dee-dialog>
</dee-dialog>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
post
}
from
'@/utils/http'
export
default
{
export
default
{
name
:
'StorageExperimentDialog'
,
name
:
'StorageExperimentDialog'
,
data
()
{
data
()
{
...
@@ -48,33 +45,18 @@ export default {
...
@@ -48,33 +45,18 @@ export default {
process
:
{},
process
:
{},
processNumber
:
null
,
processNumber
:
null
,
processName
:
null
,
processName
:
null
,
objFileLinks
:
[],
disabled
:
false
,
disabled
:
false
,
uploadVisble
:
false
,
modifyed
:
false
,
tableColumns
:
[
tableColumns
:
[
{
{
'title'
:
'文件名'
,
'title'
:
'文件名'
,
'key'
:
'originalFileName'
,
'key'
:
'
target.
originalFileName'
,
'parentKey'
:
'target'
,
'parentKey'
:
'target'
,
'headerAlign'
:
'center'
,
'headerAlign'
:
'center'
,
'align'
:
'left'
'align'
:
'left'
},
},
{
{
'title'
:
'文件大小'
,
'title'
:
'文件大小'
,
'key'
:
'fileSize'
,
'key'
:
'target.fileSize'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'show'
:
true
,
'headerAlign'
:
'center'
,
'align'
:
'left'
,
formatter
:
(
row
)
=>
{
return
this
.
$utils
.
formatGMK
(
row
.
fileSize
)
}
},
{
'title'
:
'扩展名'
,
'key'
:
'fileExtension'
,
'parentKey'
:
'target'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'level'
:
1
,
'show'
:
true
,
'show'
:
true
,
...
@@ -82,23 +64,8 @@ export default {
...
@@ -82,23 +64,8 @@ export default {
'align'
:
'left'
'align'
:
'left'
},
},
{
{
'title'
:
'文件状态'
,
'title'
:
'扩展名'
,
'key'
:
'fileStatus'
,
'key'
:
'target.fileExtension'
,
'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'
},
'parentKey'
:
'target'
,
'parentKey'
:
'target'
,
'level'
:
1
,
'level'
:
1
,
'show'
:
true
,
'show'
:
true
,
...
@@ -107,69 +74,75 @@ export default {
...
@@ -107,69 +74,75 @@ export default {
}
}
],
],
tableConfig
:
{
tableConfig
:
{
'filterKey'
:
'contentType'
,
component
:
{
'serverUrl'
:
''
,
alimit
:
1
,
'pageShow'
:
true
,
appendFilter
:
[
'ATTACH_FILE'
,
'SECONDARY'
,
'FLOW_FILE'
,
'PROCESS_CONTENTROLE_PDF'
],
'taleType'
:
'single'
,
appendTitle
:
'附件'
,
'url'
:
'/dfs/fileManager/feign/uploadFile'
,
appendUploadFilter
:
'ATTACH_FILE'
,
'showFileList'
:
true
,
defaultValueSelfFun
:
'return null'
,
// 'identFilter': ['FLOW_FILE'],
disabled
:
false
,
limit
:
1
,
filterKey
:
'contentType'
,
isBigFileUpload
:
false
,
// limit: 1,
isNeedBucket
:
false
,
masterFilter
:
[
'MASTER_FILE'
,
'PRIMARY'
],
'uploadFilter'
:
'FLOW_FILE'
,
masterTitle
:
'主内容'
,
formatData
:
(
val
)
=>
{
masterUploadFilter
:
'MASTER_FILE'
,
return
[
val
]
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
:
{
methods
:
{
removeCheckFn
(
rows
)
{
this
.
objFileLinks
=
this
.
objFileLinks
.
filter
(
el
=>
{
const
findFlag
=
rows
.
find
(
item
=>
{
return
item
.
id
===
el
.
id
})
return
!
findFlag
})
return
},
// 打开弹出框
// 打开弹出框
open
(
data
)
{
open
(
data
)
{
console
.
log
(
343434
,
data
)
this
.
process
=
this
.
$utils
.
deepClone
(
data
)
this
.
process
=
data
this
.
visible
=
true
this
.
visible
=
true
},
},
// 保存
// 保存
onSubmit
()
{
onSubmit
()
{
this
.
disabled
=
true
this
.
disabled
=
true
this
.
loading
=
true
this
.
loading
=
true
// const params = {
const
params
=
{
// ...this.row
operator
:
'MODIFY'
,
// }
id
:
this
.
process
.
id
,
// params.objFileLinks = this.objFileLinks
extProcessOperation
:
{
// params.operator = 'MODIFY'
id
:
this
.
process
.
tableId
,
// AttachmentPreservation(params)
operator
:
'MODIFY'
// .then((res) => {
}
// this.$parent.getEnclosureFeil()
}
// this.$utils.showMessageSuccess('保存成功')
params
.
extProcessOperation
.
objFileLinks
=
this
.
process
.
fileList
// // 关闭抽屉并刷新表格
post
(
'/JoExecuteOpPlan/recursion'
,
params
)
// this.visible = false
.
then
((
res
)
=>
{
// this.$emit('reload')
this
.
$parent
.
getWorkingProcedure
()
// })
this
.
$utils
.
showMessageSuccess
(
'保存成功'
)
// .catch((err) => {
// 关闭抽屉并刷新表格
// console.log(err)
this
.
visible
=
false
// })
this
.
$emit
(
'reload'
)
// .finally(() => {
})
// this.disabled = false
.
catch
((
err
)
=>
{
// this.visible = false
console
.
log
(
err
)
})
.
finally
(()
=>
{
this
.
disabled
=
false
this
.
visible
=
false
// this.uploadVisble = true
// this.uploadVisble = true
//
this.loading = false
this
.
loading
=
false
//
})
})
}
}
}
}
}
}
...
@@ -185,7 +158,7 @@ export default {
...
@@ -185,7 +158,7 @@ export default {
display
:
flex
;
display
:
flex
;
white-space
:
nowrap
;
white-space
:
nowrap
;
align-items
:
center
;
align-items
:
center
;
margin-
left
:
3
0px
;
margin-
bottom
:
2
0px
;
>
div
{
>
div
{
width
:
140px
;
width
:
140px
;
margin-left
:
15px
;
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
This diff is collapsed.
Click to expand it.
applications/dee-mes/src/views/taskReception/components/taskReceiveCard/index.vue
View file @
3bee3490
...
@@ -6,7 +6,10 @@
...
@@ -6,7 +6,10 @@
<div
class=
"p-item"
@
click=
"routerAssemblyExecution(item)"
>
<div
class=
"p-item"
@
click=
"routerAssemblyExecution(item)"
>
<a
:name=
"item.code"
/>
<a
:name=
"item.code"
/>
<div
class=
"process-header"
>
<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
)
}}
{{
item
.
status
|
statusFilters
(
joExecutePlanStateData
)
}}
</div>
</div>
<div
class=
"h-title"
>
<div
class=
"h-title"
>
...
@@ -235,6 +238,7 @@ export default {
...
@@ -235,6 +238,7 @@ export default {
},
},
getTaskAcceptance
()
{
getTaskAcceptance
()
{
const
that
=
this
const
that
=
this
const
user
=
localStorage
.
getItem
(
'userId'
)
||
''
var
param
=
{
var
param
=
{
'searchQueryCondition'
:
{
'searchQueryCondition'
:
{
'searchItems'
:
{
'searchItems'
:
{
...
@@ -252,7 +256,8 @@ export default {
...
@@ -252,7 +256,8 @@ export default {
{
{
'fieldName'
:
'prodTask.extProcessSkillUser.dxUserInfoId'
,
'fieldName'
:
'prodTask.extProcessSkillUser.dxUserInfoId'
,
'operator'
:
'EQ'
,
'operator'
:
'EQ'
,
'value'
:
1626781927440
// 'value': 1626781927440
value
:
user
}
}
],
],
'operator'
:
'AND'
'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