Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web
Project
Project
Details
Activity
Releases
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
中汽测评-信息安全测评系统
web
Commits
eef9e6fc
Commit
eef9e6fc
authored
Jan 22, 2024
by
jiaxu.yan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 对接任务的进行中列表
parent
6e94a8bc
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1756 additions
and
816 deletions
+1756
-816
task.js
src/api/task/task.js
+10
-1
getters.js
src/store/getters.js
+1
-0
diff.js
src/utils/diff.js
+8
-2
index.vue
src/views/processing/confirm-result/index.vue
+203
-105
index.vue
src/views/processing/review-form/index.vue
+113
-218
companyFile.vue
...ews/processing/type-check-form/components/companyFile.vue
+200
-0
previewView.vue
...ews/processing/type-check-form/components/previewView.vue
+132
-0
sceneDialog.vue
...ews/processing/type-check-form/components/sceneDialog.vue
+0
-0
sceneView.vue
...views/processing/type-check-form/components/sceneView.vue
+65
-0
index.vue
src/views/processing/type-check-form/index.vue
+304
-230
index.vue
src/views/processing/unprocessed-review/index.vue
+298
-121
companyFile.vue
...ws/processing/write-check-form/components/companyFile.vue
+139
-99
previewView.vue
...ws/processing/write-check-form/components/previewView.vue
+132
-0
index.vue
src/views/processing/write-check-form/index.vue
+150
-39
index.vue
src/views/task/task-detail/index.vue
+1
-1
No files found.
src/api/task/task.js
View file @
eef9e6fc
import
request
from
'@/utils/request'
//
获取任务详情
//获取任务详情
export
function
taskDetail
(
data
)
{
return
request
({
url
:
'/task/getInfo'
,
method
:
'post'
,
data
})
}
//体系审查获取任务详情
export
function
reviewTaskDetail
(
data
)
{
return
request
({
url
:
'/system/review/task/view'
,
method
:
'post'
,
data
})
}
/**
* 细则提交
* @param {*} data
...
...
src/store/getters.js
View file @
eef9e6fc
...
...
@@ -8,6 +8,7 @@ const getters = {
token
:
state
=>
state
.
user
.
token
,
avatar
:
state
=>
state
.
user
.
avatar
,
name
:
state
=>
state
.
user
.
name
,
userId
:
state
=>
state
.
user
.
id
,
introduction
:
state
=>
state
.
user
.
introduction
,
roles
:
state
=>
state
.
user
.
roles
,
permissions
:
state
=>
state
.
user
.
permissions
,
...
...
src/utils/diff.js
View file @
eef9e6fc
...
...
@@ -13,6 +13,12 @@ export function getHourDiff(time) {
// 计算时间差(单位为毫秒)
var
timeDiff
=
Math
.
abs
(
targetTime
-
now
)
// 将时间差转换成小时
return
Math
.
floor
(
timeDiff
/
(
60
*
60
*
1000
))
// 将时间差转换成天
let
day
=
Math
.
floor
(
timeDiff
/
(
60
*
60
*
24
*
1000
))
if
(
day
<
1
){
return
Math
.
floor
(
timeDiff
/
(
60
*
60
*
1000
))
+
'小时'
}
else
{
return
day
+
'天'
}
}
\ No newline at end of file
src/views/processing/confirm-result/index.vue
View file @
eef9e6fc
This diff is collapsed.
Click to expand it.
src/views/processing/review-form/index.vue
View file @
eef9e6fc
This diff is collapsed.
Click to expand it.
src/views/processing/type-check-form/components/companyFile.vue
0 → 100644
View file @
eef9e6fc
<
template
>
<div>
<!-- //文件第一次提示 -->
<div
class=
"file-prompt mt10"
>
<div>
<i
class=
"el-icon-info"
></i>
该文件第一次出现,请维护如下相关信息
</div>
</div>
<el-card>
<div
slot=
"header"
class=
"clearfix"
>
<span>
车企文件信息
</span>
</div>
<el-form
ref=
"fileRef"
:model=
"fileData"
label-width=
"100px"
class=
"file-form-class"
:rules=
"fileRules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"企业名称"
prop=
"enterpriseName"
>
<el-input
v-model=
"fileData.enterpriseName"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件名称"
prop=
"fileName"
>
<el-input
v-model=
"fileName"
placeholder=
"请输入"
:disabled=
"true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件版本"
prop=
"fileVersion"
>
<el-input
v-model=
"fileData.fileVersion"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"发布日期"
prop=
"releaseDate"
>
<el-date-picker
v-model=
"fileData.releaseDate"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%"
@
input=
"updateFocus"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件状态"
prop=
"fileStatus"
>
<el-select
v-model=
"fileData.fileStatus"
placeholder=
"请选择"
style=
"width: 100%"
@
input=
"updateFocus"
>
<el-option
v-for=
"item in dict.type.file_status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"存储位置"
prop=
"storageLocation"
>
<el-input
v-model=
"fileData.storageLocation"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件识别号"
prop=
"fileIdentification"
>
<el-input
v-model=
"fileData.fileIdentification"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件照片"
prop=
"filePicture"
>
<ImageUpload
v-model=
"fileData.filePicture"
:limit=
"1"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button
type=
"primary"
plain
icon=
"el-icon-folder-add"
@
click=
"handleSaveFile"
>
保存车企文件
</el-button
>
</el-card>
</div>
</
template
>
<
script
>
export
default
{
dicts
:
[
'file_status'
],
props
:
{
fileName
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
fileRules
:
{
enterpriseName
:
[
{
required
:
true
,
message
:
'请输入企业名称'
,
trigger
:
'blur'
}
],
fileName
:
[
{
required
:
true
,
message
:
'请输入文件名称'
,
trigger
:
'blur'
}
],
fileVersion
:
[
{
required
:
true
,
message
:
'请输入文件版本'
,
trigger
:
'blur'
}
],
releaseDate
:
[
{
required
:
true
,
message
:
'请选择发布日期'
,
trigger
:
'change'
}
],
fileStatus
:
[
{
required
:
true
,
message
:
'请选择文件状态'
,
trigger
:
'change'
}
],
storageLocation
:
[
{
required
:
true
,
message
:
'请输入存储位置'
,
trigger
:
'blur'
}
],
fileIdentification
:
[
{
required
:
true
,
message
:
'请输入文件识别号'
,
trigger
:
'blur'
}
],
filePicture
:
[
{
required
:
true
,
message
:
'请选择文件照片'
,
trigger
:
'change'
}
]
},
fileData
:
{
enterpriseName
:
''
,
fileStatus
:
''
,
filePicture
:
''
,
storageLocation
:
''
}
}
},
methods
:
{
/**
* 失去焦点回调
*/
updateFocus
()
{
this
.
$emit
(
'handleUpdate'
,
this
.
isAllPropertiesNull
(
this
.
fileData
))
},
isAllPropertiesNull
(
obj
)
{
for
(
var
key
in
obj
)
{
if
(
obj
[
key
]
!==
''
&&
typeof
obj
[
key
]
!==
'undefined'
)
{
return
true
}
}
return
false
},
handleSaveFile
()
{
// vue表单校验
this
.
$refs
.
fileRef
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
$emit
(
'handleSave'
,
false
)
}
})
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.file-form-class
{
::v-deep
.el-form-item
{
margin-bottom
:
20px
;
}
}
</
style
>
src/views/processing/type-check-form/components/previewView.vue
0 → 100644
View file @
eef9e6fc
<
template
>
<el-dialog
title=
"预览表单"
:visible
.
sync=
"dialogManger.dialogVisible"
width=
"75%"
append-to-body
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
:before-close=
"handleSceneClose"
>
<div
class=
"file-prompt"
>
<div>
<i
class=
"el-icon-info"
/>
新增场景,需要组织评审,评审通过后新增场景自动进入场景库。
</div>
</div>
<el-form
ref=
"sceneForm"
:model=
"sceneForm"
:rules=
"sceneRules"
label-width=
"80px"
class=
"scene-form"
>
<el-form-item
label=
"评审类型"
prop=
"reviewType"
>
<!-- 下拉框 -->
<el-select
v-model=
"sceneForm.reviewType"
placeholder=
"请选择评审类型"
style=
"width: 100%"
>
<el-option
v-for=
"item in reviewTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"场景分类"
prop=
"sceneClassification"
>
<el-select
v-model=
"sceneForm.sceneClassification"
placeholder=
"请选择评审类型"
style=
"width: 100%"
>
<el-option
v-for=
"item in reviewTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"场景内容"
prop=
"sceneContent"
>
<el-input
v-model=
"sceneForm.sceneContent"
maxlength=
"100"
show-word-limit
type=
"textarea"
/>
</el-form-item>
<el-form-item
label=
"评审人员"
prop=
"assessor"
>
<div>
组长-xxx
</div>
<div>
组员-xxx、xxx、xxx
</div>
</el-form-item>
<el-form-item
label=
"备注信息"
prop=
"remark"
>
<el-input
v-model=
"sceneForm.remark"
maxlength=
"100"
show-word-limit
type=
"textarea"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleSceneClose()"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSaveNewScene()"
>
确 定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
export
default
{
dicts
:
[
'file_status'
],
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
}
}
}
},
data
()
{
return
{
sceneForm
:
{},
sceneRules
:
{
reviewType
:
[
{
required
:
true
,
message
:
'请选择评审类型'
,
trigger
:
'change'
}
],
sceneClassification
:
[
{
required
:
true
,
message
:
'请选择场景分类'
,
trigger
:
'change'
}
],
sceneContent
:
[
{
required
:
true
,
message
:
'请输入场景内容'
,
trigger
:
'blur'
}
]
},
reviewTypeOptions
:
[]
}
},
methods
:
{
// 新增场景对话框关闭时触发的回调函数
handleSceneClose
()
{
this
.
dialogManger
.
dialogVisible
=
false
this
.
$refs
.
sceneForm
.
resetFields
()
},
/**
* 保存新场景
*/
handleSaveNewScene
()
{
// vue表单校验vue表单校验
this
.
$refs
.
sceneForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
handleSceneClose
()
}
})
}
}
}
</
script
>
src/views/processing/type-check-form/components/s
enc
eDialog.vue
→
src/views/processing/type-check-form/components/s
cen
eDialog.vue
View file @
eef9e6fc
File moved
src/views/processing/type-check-form/components/sceneView.vue
0 → 100644
View file @
eef9e6fc
<
template
>
<el-dialog
title=
"符合场景"
:visible
.
sync=
"dialogManger.dialogVisible"
width=
"45%"
append-to-body
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
:before-close=
"handleSceneClose"
>
<div
class=
"match-scene"
>
<div
v-for=
"(scene, key) in dialogManger.data"
:key=
"key"
>
{{
scene
.
text
}}
<template
v-if=
"scene.operation"
>
{{
scene
.
operation
}}
</
template
>
</div>
</div>
<el-button
class=
"label-btn mt10"
size=
"mini"
type=
"warning"
@
click=
"handleAddScene"
>
<span>
新增场景
</span>
</el-button>
<!-- 新增场景对话框 -->
<scene-dialog
:dialog-manger=
"sceneManger"
></scene-dialog
></el-dialog>
</template>
<
script
>
import
sceneDialog
from
'./sceneDialog.vue'
export
default
{
components
:
{
'scene-dialog'
:
sceneDialog
},
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
,
data
:
{}
}
}
}
},
data
()
{
return
{
sceneManger
:
{
dialogVisible
:
false
}
}
},
methods
:
{
// 新增场景
handleAddScene
()
{
this
.
sceneManger
.
dialogVisible
=
true
},
handleSceneClose
()
{
this
.
dialogManger
.
dialogVisible
=
false
}
}
}
</
script
>
src/views/processing/type-check-form/index.vue
View file @
eef9e6fc
This diff is collapsed.
Click to expand it.
src/views/processing/unprocessed-review/index.vue
View file @
eef9e6fc
This diff is collapsed.
Click to expand it.
src/views/processing/write-check-form/components/companyFile.vue
View file @
eef9e6fc
<
template
>
<el-card>
<div
slot=
"header"
class=
"clearfix"
>
<span>
车企文件信息
</span>
<div>
<!-- //文件第一次提示 -->
<div
class=
"file-prompt mt10"
>
<div>
<i
class=
"el-icon-info"
></i>
该文件第一次出现,请维护如下相关信息
</div>
</div>
<el-form
ref=
"fileRef"
:model=
"fileData"
label-width=
"100px"
class=
"file-form-class"
:rules=
"fileRules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"企业名称"
prop=
"enterpriseName"
>
<el-input
v-model=
"fileData.enterpriseName"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件名称"
prop=
"fileName"
>
<el-input
v-model=
"fileData.fileName"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件版本"
prop=
"fileVersion"
>
<el-input
v-model=
"fileData.fileVersion"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"发布日期"
prop=
"releaseDate"
>
<el-date-picker
v-model=
"fileData.releaseDate"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件状态"
prop=
"fileStatus"
>
<el-select
v-model=
"fileData.fileStatus"
placeholder=
"请选择"
style=
"width: 100%"
>
<el-option
v-for=
"item in dict.type.file_status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
<el-card>
<div
slot=
"header"
class=
"clearfix"
>
<span>
车企文件信息
</span>
</div>
<el-form
ref=
"fileRef"
:model=
"fileData"
label-width=
"100px"
class=
"file-form-class"
:rules=
"fileRules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"企业名称"
prop=
"enterpriseName"
>
<el-input
v-model=
"fileData.enterpriseName"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件名称"
prop=
"fileName"
>
<el-input
v-model=
"fileName"
placeholder=
"请输入"
:disabled=
"true"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件版本"
prop=
"fileVersion"
>
<el-input
v-model=
"fileData.fileVersion"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"发布日期"
prop=
"releaseDate"
>
<el-date-picker
v-model=
"fileData.releaseDate"
type=
"date"
placeholder=
"选择日期"
style=
"width: 100%"
@
input=
"updateFocus"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"存储位置"
prop=
"storageLocation"
>
<el-input
v-model=
"fileData.storageLocation"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件识别号"
prop=
"fileIdentification"
>
<el-input
v-model=
"fileData.fileIdentification"
placeholder=
"请输入"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件照片"
prop=
"filePicture"
>
<ImageUpload
v-model=
"fileData.filePicture"
:limit=
"1"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button
type=
"primary"
icon=
"el-icon-folder-add"
@
click=
"handleSaveFile"
>
保存车企文件
</el-button
>
</el-card>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件状态"
prop=
"fileStatus"
>
<el-select
v-model=
"fileData.fileStatus"
placeholder=
"请选择"
style=
"width: 100%"
@
input=
"updateFocus"
>
<el-option
v-for=
"item in dict.type.file_status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"存储位置"
prop=
"storageLocation"
>
<el-input
v-model=
"fileData.storageLocation"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件识别号"
prop=
"fileIdentification"
>
<el-input
v-model=
"fileData.fileIdentification"
placeholder=
"请输入"
@
input=
"updateFocus"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"文件照片"
prop=
"filePicture"
>
<ImageUpload
v-model=
"fileData.filePicture"
:limit=
"1"
></ImageUpload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button
type=
"primary"
plain
icon=
"el-icon-folder-add"
@
click=
"handleSaveFile"
>
保存车企文件
</el-button
>
</el-card>
</div>
</
template
>
<
script
>
export
default
{
dicts
:
[
'file_status'
],
props
:
{
fileName
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
fileRules
:
{
...
...
@@ -140,11 +166,25 @@ export default {
}
},
methods
:
{
/**
* 失去焦点回调
*/
updateFocus
()
{
this
.
$emit
(
'handleUpdate'
,
this
.
isAllPropertiesNull
(
this
.
fileData
))
},
isAllPropertiesNull
(
obj
)
{
for
(
var
key
in
obj
)
{
if
(
obj
[
key
]
!==
''
&&
typeof
obj
[
key
]
!==
'undefined'
)
{
return
true
}
}
return
false
},
handleSaveFile
()
{
// vue表单校验
this
.
$refs
.
fileRef
.
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
'ddd'
)
this
.
$emit
(
'handleSave'
,
false
)
}
})
}
...
...
src/views/processing/write-check-form/components/previewView.vue
0 → 100644
View file @
eef9e6fc
<
template
>
<el-dialog
title=
"预览表单"
:visible
.
sync=
"dialogManger.dialogVisible"
width=
"75%"
append-to-body
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
:before-close=
"handleSceneClose"
>
<div
class=
"file-prompt"
>
<div>
<i
class=
"el-icon-info"
/>
新增场景,需要组织评审,评审通过后新增场景自动进入场景库。
</div>
</div>
<el-form
ref=
"sceneForm"
:model=
"sceneForm"
:rules=
"sceneRules"
label-width=
"80px"
class=
"scene-form"
>
<el-form-item
label=
"评审类型"
prop=
"reviewType"
>
<!-- 下拉框 -->
<el-select
v-model=
"sceneForm.reviewType"
placeholder=
"请选择评审类型"
style=
"width: 100%"
>
<el-option
v-for=
"item in reviewTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"场景分类"
prop=
"sceneClassification"
>
<el-select
v-model=
"sceneForm.sceneClassification"
placeholder=
"请选择评审类型"
style=
"width: 100%"
>
<el-option
v-for=
"item in reviewTypeOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"场景内容"
prop=
"sceneContent"
>
<el-input
v-model=
"sceneForm.sceneContent"
maxlength=
"100"
show-word-limit
type=
"textarea"
/>
</el-form-item>
<el-form-item
label=
"评审人员"
prop=
"assessor"
>
<div>
组长-xxx
</div>
<div>
组员-xxx、xxx、xxx
</div>
</el-form-item>
<el-form-item
label=
"备注信息"
prop=
"remark"
>
<el-input
v-model=
"sceneForm.remark"
maxlength=
"100"
show-word-limit
type=
"textarea"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleSceneClose()"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSaveNewScene()"
>
确 定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
export
default
{
dicts
:
[
'file_status'
],
props
:
{
dialogManger
:
{
type
:
Object
,
default
()
{
return
{
dialogVisible
:
false
}
}
}
},
data
()
{
return
{
sceneForm
:
{},
sceneRules
:
{
reviewType
:
[
{
required
:
true
,
message
:
'请选择评审类型'
,
trigger
:
'change'
}
],
sceneClassification
:
[
{
required
:
true
,
message
:
'请选择场景分类'
,
trigger
:
'change'
}
],
sceneContent
:
[
{
required
:
true
,
message
:
'请输入场景内容'
,
trigger
:
'blur'
}
]
},
reviewTypeOptions
:
[]
}
},
methods
:
{
// 新增场景对话框关闭时触发的回调函数
handleSceneClose
()
{
this
.
dialogManger
.
dialogVisible
=
false
this
.
$refs
.
sceneForm
.
resetFields
()
},
/**
* 保存新场景
*/
handleSaveNewScene
()
{
// vue表单校验vue表单校验
this
.
$refs
.
sceneForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
handleSceneClose
()
}
})
}
}
}
</
script
>
src/views/processing/write-check-form/index.vue
View file @
eef9e6fc
...
...
@@ -3,9 +3,12 @@
<el-card
class=
"custom-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
填写检查表单(所属任务:
{{
model
.
systemReviewTask
.
name
}}
)
</span>
<el-button
icon=
"el-icon-back"
class=
"back-btn"
@
click=
"handleBack"
>
返回
</el-button>
<div
class=
"back-btn"
>
<el-button
type=
"primary"
plain
@
click=
"handlePreview"
>
预览表单
</el-button>
<el-button
icon=
"el-icon-back"
@
click=
"handleBack"
>
返回
</el-button>
</div>
</div>
<div
class=
"main-content"
>
<div
class=
"prompt-message"
>
...
...
@@ -39,7 +42,7 @@
:class=
"
{
'select-circle': index === activeModel
}"
@click="
handleCircle
(index)"
@click="
changeStep
(index)"
>
<span
class=
"inner-text"
>
{{
index
+
1
}}
</span>
</div>
...
...
@@ -118,7 +121,7 @@
<span
class=
"del-scene"
>
(删除)
</span>
</
template
>
</div>
<el-button
class=
"confirm-button"
type=
"primary"
plain
=
""
<el-button
class=
"confirm-button"
type=
"primary"
plain
>
已处理
</el-button
>
</div>
...
...
@@ -134,43 +137,31 @@
<el-col
:span=
"8"
>
<div>
文件名称
<el-select
v-model=
"addData.fileName"
filterable
allow-create
default-first-option
<el-autocomplete
v-model=
"form.fileName"
style=
"width: 100%"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入文件名称"
@
change=
"fileNameChange"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
></el-autocomplete>
</div>
</el-col>
<el-col
:span=
"8"
:offset=
"1"
>
<div>
章节条目或范围
<el-input
v-model=
"
addData
.chapterEntry"
v-model=
"
form
.chapterEntry"
placeholder=
"请输入具体章节条目或范围"
/>
</div>
</el-col>
</el-row>
<!-- //文件第一次提示 -->
<div
class=
"file-prompt mt10"
>
<div>
<i
class=
"el-icon-info"
></i
>
该文件第一次出现,请维护如下相关信息
</div>
</div>
<!-- //车企文件信息 -->
<company-file></company-file>
<company-file
v-show=
"formManger.show"
:file-name=
"formManger.fileName"
@
handleUpdate=
"handleFileUpdate"
@
handleSave=
"handleFileSave"
></company-file>
</el-form-item>
<el-form-item
label=
"条目填写人"
>
<span>
{{ name }}
</span>
...
...
@@ -192,18 +183,22 @@
<scene-view
:dialog-manger=
"sceneViewManger"
></scene-view>
<!-- 新增场景对话框 -->
<scene-dialog
:dialog-manger=
"sceneManger"
></scene-dialog>
<preview-view
:dialog-manger=
"previewManger"
></preview-view>
</div>
</template>
<
script
>
import
{
t
askDetail
,
reviewDetailsSubmit
}
from
'@/api/task/task'
import
{
reviewT
askDetail
,
reviewDetailsSubmit
}
from
'@/api/task/task'
import
sceneView
from
'./components/sceneView.vue'
import
companyFile
from
'./components/companyFile.vue'
import
{
mapGetters
}
from
'vuex'
import
sceneDialog
from
'./components/sceneDialog.vue'
import
previewView
from
'./components/previewView.vue'
previewView
export
default
{
components
:
{
'scene-dialog'
:
sceneDialog
,
'preview-view'
:
previewView
,
'scene-view'
:
sceneView
,
'company-file'
:
companyFile
},
...
...
@@ -216,8 +211,23 @@ export default {
dialogVisible
:
false
,
data
:
{}
},
previewManger
:
{
dialogVisible
:
false
,
data
:
{}
},
form
:
{
passed
:
null
passed
:
''
,
reviewDetailsId
:
''
,
taskId
:
''
,
chapterEntry
:
''
,
fileName
:
''
},
oldForm
:
{
passed
:
''
,
reviewDetailsId
:
''
,
taskId
:
''
,
chapterEntry
:
''
,
fileName
:
''
},
model
:
{
systemReviewTask
:
{},
...
...
@@ -243,14 +253,29 @@ export default {
changeTaskDetails
:
[],
value1
:
''
,
taskId
:
''
,
options
:
[]
options
:
[],
formManger
:
{
show
:
false
,
fileName
:
''
},
files
:
[
{
value
:
'三全鲜食(北新泾店)'
,
address
:
'长宁区新渔路144号'
},
{
value
:
'Hot honey 首尔炸鸡(仙霞路)'
,
address
:
'上海市长宁区淞虹路661号'
},
{
value
:
'新旺角茶餐厅'
,
address
:
'上海市普陀区真北路988号创邑金沙谷6号楼113'
}
],
isFileUpdate
:
false
}
},
computed
:
{
readNumber
()
{
let
num
=
0
this
.
model
.
detailsList
.
map
(
i
=>
{
if
(
i
.
result
&&
i
.
result
.
passed
!==
null
)
{
num
++
...
...
@@ -261,6 +286,22 @@ export default {
...
mapGetters
([
'name'
])
},
watch
:
{
'form.fileName'
:
function
(
newValue
)
{
if
(
newValue
)
{
const
files
=
this
.
files
const
query
=
files
.
filter
(
this
.
createFilter
(
newValue
))
if
(
query
.
length
===
0
)
{
this
.
formManger
.
show
=
true
this
.
formManger
.
fileName
=
newValue
}
else
{
this
.
isFileUpdate
=
false
this
.
formManger
.
show
=
false
}
}
else
{
this
.
isFileUpdate
=
false
this
.
formManger
.
show
=
false
}
},
checked
(
newV
)
{
if
(
newV
)
{
this
.
detailsList
=
this
.
model
.
detailsList
.
filter
(
item
=>
{
...
...
@@ -277,11 +318,43 @@ export default {
this
.
getTask
()
},
methods
:
{
fileNameChange
(
value
)
{
console
.
log
(
value
)
handleFileSave
(
element
)
{
this
.
isFileUpdate
=
false
this
.
formManger
.
show
=
false
},
/**
* 企业文件修改回调
* @param {*} element 返回值
*/
handleFileUpdate
(
element
)
{
this
.
isFileUpdate
=
element
},
querySearch
(
queryString
,
cb
)
{
const
files
=
this
.
files
const
results
=
queryString
?
files
.
filter
(
this
.
createFilter
(
queryString
))
:
files
// 调用 callback 返回建议列表的数据
cb
(
results
)
},
createFilter
(
queryString
)
{
return
files
=>
{
return
(
files
.
value
.
toLowerCase
().
indexOf
(
queryString
.
toLowerCase
())
===
0
)
}
},
/**
* 预览列表
*/
handlePreview
()
{
this
.
previewManger
.
dialogVisible
=
true
},
/**
* 获取任务详情
*/
getTask
()
{
t
askDetail
({
reviewT
askDetail
({
taskId
:
this
.
taskId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
...
...
@@ -344,6 +417,25 @@ export default {
* 点击左侧圆圈触发的回调函数
* @param item 圆圈对象
*/
changeStep
(
index
)
{
if
(
this
.
isAllPropertiesEqual
()
&&
!
this
.
isFileUpdate
)
{
this
.
handleCircle
(
index
)
}
else
{
this
.
$message
.
error
(
'您有未保存内容,请点击保存按钮'
)
}
},
isAllPropertiesEqual
()
{
for
(
var
key
in
this
.
form
)
{
if
(
this
.
form
[
key
]
!==
this
.
oldForm
[
key
])
{
return
false
}
}
return
true
},
/**
* 修改当前要点
* @param item 圆圈对象
*/
handleCircle
(
index
)
{
this
.
activeModel
=
index
if
(
this
.
detailsList
.
length
)
{
...
...
@@ -353,13 +445,31 @@ export default {
this
.
form
=
{
passed
:
this
.
taskModel
.
result
.
passed
,
reviewDetailsId
:
this
.
taskModel
.
id
,
taskId
:
this
.
taskId
taskId
:
this
.
taskId
,
chapterEntry
:
''
,
fileName
:
''
}
this
.
oldForm
=
{
passed
:
this
.
taskModel
.
result
.
passed
,
reviewDetailsId
:
this
.
taskModel
.
id
,
taskId
:
this
.
taskId
,
chapterEntry
:
''
,
fileName
:
''
}
}
else
{
this
.
form
=
{
passed
:
null
,
passed
:
''
,
reviewDetailsId
:
this
.
taskModel
.
id
,
taskId
:
this
.
taskId
,
chapterEntry
:
''
,
fileName
:
''
}
this
.
oldForm
=
{
passed
:
''
,
reviewDetailsId
:
this
.
taskModel
.
id
,
taskId
:
this
.
taskId
taskId
:
this
.
taskId
,
chapterEntry
:
''
,
fileName
:
''
}
}
}
else
{
...
...
@@ -381,6 +491,7 @@ export default {
}
this
.
model
.
detailsList
[
this
.
activeModel
].
result
.
passed
=
this
.
form
.
passed
this
.
oldForm
=
this
.
form
this
.
$modal
.
msgSuccess
(
'提交表格成功'
)
}
else
{
this
.
$modal
.
msgError
(
res
.
msg
)
...
...
src/views/task/task-detail/index.vue
View file @
eef9e6fc
...
...
@@ -449,7 +449,7 @@ export default {
methods
:
{
getTask
(
id
)
{
taskDetail
({
taskI
d
:
id
i
d
:
id
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
model
=
res
.
data
...
...
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