Commit 6e94a8bc authored by jiaxu.yan's avatar jiaxu.yan

feat(体系审查页面): 场景部分 答题展示 场景变更显示 未答题展示 修改

parent cd436e41
......@@ -21,11 +21,36 @@ export function reviewDetailsSubmit(data) {
data
})
}
// 提交审查问卷
// 提交体系审查问卷
export function taskSubmit(data) {
return request({
url: '/system/review/task/submit',
method: 'post',
data
})
}
// 启动车辆问卷审查任务
export function startReview(data) {
return request({
url: '/car/review/task/startReview',
method: 'post',
data
})
}
// 提交车辆问卷审查任务
export function submitReview(data) {
return request({
url: '/car/review/task/submitReview',
method: 'post',
data
})
}
// 查看车辆问卷审查任务详情
export function checkTaskDetail(data) {
return request({
url: '/car/review/task/view',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -4,6 +4,8 @@
@import './element-ui.scss';
@import './sidebar.scss';
@import './btn.scss';
@import './process.scss';
@import url(//at.alicdn.com/t/c/font_4370984_m7nz5mfgt6.css);
body {
......
.file-prompt {
margin: 10px 0 10px 0;
background-color: #ebf5ff;
padding: 10px;
div {
padding-left: 10px;
i {
color: #409eff;
margin-right: 10px;
}
}
}
.scene-error {
color: red;
}
......@@ -33,8 +33,8 @@ export default {
resetQuery() {
// this.refs.queryForm.restForm() this.resetForm("queryForm");
this.queryParams = {
page: this.queryParams.pageNum,
size: this.queryParams.pageSize
pageNum: this.queryParams.pageNum,
pageSize: this.queryParams.pageSize
}
},
handleQuery() {
......
......@@ -3,7 +3,6 @@
* 用于 单条记录的增删查改
*/
import request from '@/utils/request'
;import d from 'highlight.js/lib/languages/d';
(function (root, factory) {
// CommonJS
if (typeof exports === 'object') {
......@@ -103,10 +102,11 @@ import request from '@/utils/request'
let url = ''
if (self.uuid == 0) {
url = self.settings.url + '/add'
delete self.id
} else {
url = self.settings.url + '/edit'
}
delete self.id
request({
url,
method: 'post',
......
/**
* 获取传入时间额当前时间的小时差
* @param {*} time
* @returns
*/
export function getHourDiff(time) {
// 获取当前时间
var now = new Date()
// 设置目标时间(这里为2021年9月30日)
var targetTime = new Date(time) // 注意月份从0开始计数,所以8表示九月
// 计算时间差(单位为毫秒)
var timeDiff = Math.abs(targetTime - now)
// 将时间差转换成小时
return Math.floor(timeDiff / (60 * 60 * 1000))
}
\ No newline at end of file
This diff is collapsed.
<template>
<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="请输入"
></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-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>
</template>
<script>
export default {
dicts: ['file_status'],
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: {
handleSaveFile() {
// vue表单校验
this.$refs.fileRef.validate(valid => {
if (valid) {
console.log('ddd')
}
})
}
}
}
</script>
<style scoped lang="scss">
.file-form-class {
::v-deep.el-form-item {
margin-bottom: 20px;
}
}
</style>
<template>
<el-dialog
title="新增场景对话框"
:visible.sync="dialogManger.dialogVisible"
width="35%"
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>
<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>
......@@ -136,6 +136,7 @@
>
</el-table-column>
<el-table-column
v-if="view == 1"
label="操作"
align="left"
min-width="160"
......@@ -192,6 +193,7 @@ export default {
return {
listUrl: '/system/enterprise/list',
showSearch: true,
view: '',
tableData: [],
dialogManger: {
dialogVisible: false,
......@@ -215,6 +217,9 @@ export default {
}
}
},
created() {
this.view = this.$route.query.view
},
methods: {
handleDelete(id) {
this.$modal
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment