Commit 6ffed1b5 authored by baiyanhao's avatar baiyanhao

发起评审相关代码提交

parent f7d8846e
F:/work/web2/node_modules
\ No newline at end of file
......@@ -9,7 +9,7 @@
"lint": "eslint src/**/* --ext .js,.vue",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"dev": "vue-cli-service serve",
"preview": "node build/index.js --preview",
"lint:stage": "lint-staged",
"spellcheck": "cspell lint --dot --gitignore --color --cache --show-suggestions \"src/**/*.@(html|js|cjs|mjs|ts|tsx|css|scss|md|vue)\"",
......
import request from '@/utils/request'
//1.查询按钮操作
export function listInnovation(query) {
return request({
url: '/review/scene/change/task/innovationBaseFindPending',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
export function listInnovationFinsh(query) {
return request({
url: '/review/scene/change/task/innovationBaseFindFinish',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
//2.去评审按钮跳转页面操作
export function reviewInnovation(query) {
return request({
url: '/review/scene/change/task/innovationBaseGetById',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
//3.发布评审意见按钮操作 创新基地审核任务
export function submitInnovationAudit(query){
return request({
url:'/review/scene/change/task/innovationBaseAudit',
method:'post',
headers:{
'Content-Type': 'application/json',
},
data:query
})
}
//4.我的已审按钮跳转页面操作
export function alreadyInnovation(query) {
return request({
url: '/review/scene/change/task/getById',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
//5.车型审查页面接口操作
export function carReviewNewSceneInnovation(query) {
return request({
url: '/review/scene/change/task/add',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
\ No newline at end of file
import request from '@/utils/request'
//1.查询按钮操作
export function listReviewer(query) {
return request({
url: '/review/scene/change/task/findPending',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
export function listReviewerFinsh(query) {
return request({
url: '/review/scene/change/task/findFinish',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
//2.去评审按钮跳转页面操作
export function reviewReviewer(query) {
return request({
url: '/review/scene/change/task/getById',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
//3.发布评审意见按钮操作 创新基地审核任务
export function submitReviewerAudit(query){
return request({
url:'/review/scene/change/task/audit',
method:'post',
headers:{
'Content-Type': 'application/json',
},
data:query
})
}
//4.我的已审按钮跳转页面操作
export function alreadyReviewer(query) {
return request({
url: '/review/scene/change/task/getById',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
\ No newline at end of file
......@@ -292,7 +292,7 @@ export function getInspection() {
*/
export function submitScenarios(data) {
return request({
url: '/review/scene/add',
url: '/review/scene/change/task/add',
method: 'post',
data: data
})
......
......@@ -15,3 +15,116 @@ export function testConfirm(data) {
data
})
}
export function listTest(query) {
return request({
url: '/review/scene/change/task/findCreate',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 我发起的评审界面
export function testInitatereview(query) {
return request({
url: '/standard/findStandardList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 标准要求分类下拉框点击选择后 再点击选择标准要求按钮 调用接口 查询标准要求
export function testType(query) {
return request({
url: '/review/standard/list',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 点击选择审查要点按钮后 调用接口 查询审查要点
export function testKeypoint(query) {
return request({
url: '/review/scene/change/task/getKeyPointList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 点击选择审查细则按钮后 调用接口 查询审查细则
export function testDetails(query) {
return request({
url: '/review/scene/change/task/getDetailsList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审界面 点击发布按钮 发起评审
export function testInitatereviewAdd(query) {
return request({
url: '/review/scene/change/task/add',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 查询审查场景
export function testScene(query) {
return request({
url: '/review/scene/change/task/getSceneList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 查询评审人员 不需要参数
export function testReviewer() {
return request({
url: '/review/scene/change/task/getReviewerList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: {}
})
}
// 查看评审页面 查询评审意见
export function testOpinion(query) {
return request({
url: '/review/scene/change/task/getReviewerOpinion',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: query
})
}
// 发起评审页面 查询测试用例
export function testUseCase() {
return request({
url: '/review/scene/change/task/getUseCaseList',
method: 'post',
headers:{
'Content-Type': 'application/json',
},
data: {}
})
}
......@@ -23,38 +23,52 @@
label-position="top"
class="scene-form"
>
<!-- <el-form-item label="标准要求分类" prop="reviewType">-->
<!-- &lt;!&ndash; 下拉框 &ndash;&gt;-->
<!-- <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">
<!-- <div class="file-prompt">
<p>{{addSceneData.inspectStandardId}}</p>
<p>{{addSceneData.inspectStandardNo}}</p>
<p>{{addSceneData.chapter}}</p>
<p>{{addSceneData.standardId}}</p>
<p>{{addSceneData.standard}}</p>
<p>{{addSceneData.keypointId}}</p>
<p>{{addSceneData.keypoint}}</p>
<p>{{addSceneData.detailsId}}</p>
<p>{{addSceneData.details}}</p>
<p>{{addSceneData.reviewSceneId}}</p>
</div> -->
<el-form-item label="评审类型" prop="operationSort">
<!-- &lt;!&ndash; 下拉框 &ndash;&gt; -->
<el-select
v-model="sceneForm.reviewType"
placeholder="新增场景"
style="width: 100%"
disabled
>
<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="type">
<el-select
v-model="sceneForm.sceneClassification"
placeholder="车型审查"
style="width: 100%"
disabled
>
<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="newText">
<el-input
v-model="sceneForm.sceneContent"
v-model="sceneForm.newText"
maxlength="100"
placeholder="请输入场景内容"
show-word-limit
......@@ -65,19 +79,23 @@
<!-- <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"-->
<!-- placeholder="请输入备注信息"-->
<!-- show-word-limit-->
<!-- type="textarea"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="备注信息" prop="remark">
<el-input
v-model="sceneForm.remark"
maxlength="100"
placeholder="请输入备注信息"
show-word-limit
type="textarea"
/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<!-- <el-button @click="handleSceneLog()">打印数据</el-button> -->
<el-button @click="handleSceneClose()">取 消</el-button>
<el-button type="primary" @click="handleSaveNewScene()">
<el-button
type="primary"
@click="handleSaveNewScene()"
>
发 起
</el-button>
</span>
......@@ -85,37 +103,84 @@
</template>
<script>
import { submitScenarios } from '@/api/task/task'
// import { getBySubtaskId } from '@/api/task/task'
// import axios from 'axios';
// const handleAddSceneParams = {
// inspectStandardId: '',
// inspectStandardNo: '',
// chapter: '',
// standardId: '',
// standard: '',
// type: '',
// keypointId: '',
// keypoint: '',
// detailsId: '',
// details: '',
// operationSort: '',
// oldText: '',
// newText: '',
// remark: '',
// reviewSceneId: ''
// }
export default {
// mounted() {
// // 在组件挂载后打印 taskPass 的值
// console.log('挂载时taskPass:', this.taskPass);
// },
// watch: {
// taskPass(newVal, oldVal) {
// const currentTime = new Date().toLocaleString();
// console.log(`[${currentTime}] taskPass 从`, oldVal, '变成', newVal);
// }
// },
dicts: ['file_status'],
props: {
dialogManger: {
type: Object,
required: true,//
default() {
return {
dialogVisible: false
}
}
}
},
// taskPass:{
// default:'String'
// }
},
data() {
return {
sceneForm: {},
sceneForm: {
reviewType: '',
sceneClassification: '',
newText: '',
remark: ''
},
sceneRules: {
reviewType: [
{ required: true, message: '请选择标准要求分类', trigger: 'change' }
],
sceneClassification: [
{ required: true, message: '请选择评审类型', trigger: 'change' }
],
sceneContent: [
// reviewType: [
// { required: true, message: '请选择标准要求分类', trigger: 'change' }
// ],
// sceneClassification: [
// { required: true, message: '请选择评审类型', trigger: 'change' }
// ],
newText: [
{ required: true, message: '请输入场景内容', trigger: 'blur' }
]
},
reviewTypeOptions: []
}
},
computed: {
addSceneData() {
return this.dialogManger.addSceneData;
}
},
methods: {
// 打印数据
// handleSceneLog() {
// console.log(this.taskPass)
// },
// 发起场景评审关闭时触发的回调函数
handleSceneClose() {
this.dialogManger.dialogVisible = false
......@@ -125,12 +190,27 @@ export default {
* 保存新场景
*/
handleSaveNewScene() {
// vue表单校验vue表单校验
//vue表单校验vue表单校验
this.$refs.sceneForm.validate(valid => {
if (valid) {
const data = {
reviewDetailsId: this.dialogManger.id,
text: this.sceneForm.sceneContent
inspectStandardId: this.addSceneData.inspectStandardId,
inspectStandardNo: this.addSceneData.inspectStandardNo,
chapter: this.addSceneData.chapter,
standardId: this.addSceneData.standardId,
standard: this.addSceneData.standard,
type: 'car',// 体系审查system 车型审查car
keypointId: this.addSceneData.keypointId,
keypoint: this.addSceneData.keypoint,
detailsId: this.addSceneData.detailsId,
details:this.addSceneData.details,
operationSort: 'ADD_SCENE',
oldText: '',
newText: this.sceneForm.newText,
remark: this.sceneForm.remark,
reviewSceneId: this.addSceneData.reviewSceneId,
}
submitScenarios(data).then(res => {
if (res.code === 200) {
......@@ -140,6 +220,7 @@ export default {
type: 'success'
})
this.$emit('getScene')
this.$emit('refresh')
} else {
// this.$message({
// message: '发起场景评审失败',
......@@ -150,6 +231,22 @@ export default {
}
})
}
// handleSaveNewSceneAxios() {
// axios.post('/review/scene/change/task/add', handleAddSceneParams)
// .then(res => {
// if (res.code === 200) {
// console.log("发起场景评审成功")
// this.handleSceneClose()
// }else{
// this.$message({
// message: '发起场景评审失败',
// type: 'error'
// })
// }
// }).catch(err => {
// console.log(err)
// })
// }
}
}
</script>
......@@ -23,11 +23,21 @@
<header-button icon="plus" type="primary" @click="handleAddScene">
新增场景
</header-button>
<!-- <div>
<p>kkkkk</p>
<p>{{ addSceneData.inspectStandardId }}</p>
<p>{{ addSceneData.inspectStandardNo }}</p>
<p>{{ addSceneData.chapter }}</p>
<p>{{ addSceneData.standardId }}</p>
<p>{{ addSceneData.standard }}</p>
<p>{{ addSceneData.keypointId }}</p>
<p>{{ addSceneData.keypoint }}</p>
<p>{{ addSceneData.detailsId }}</p>
<p>{{ addSceneData.details }}</p>
<p>{{ addSceneData.reviewSenceId }}</p>
</div> -->
<!-- 发起场景评审 -->
<scene-dialog
:dialog-manger="sceneManger"
@getScene="getScene"
></scene-dialog
<scene-dialog :dialog-manger="sceneManger"></scene-dialog
></el-dialog>
</template>
<script>
......@@ -42,9 +52,19 @@ export default {
default() {
return {
dialogVisible: false,
data: {}
data: {},
addSceneData: {},
id: '',
}
}
}
},
mounted() {
console.log(this.addSceneData, 'addSceneData')
},
computed: {
addSceneData() {
return this.dialogManger.addSceneData
}
},
data() {
......@@ -52,19 +72,21 @@ export default {
sceneManger: {
dialogVisible: false,
data: {},
id: ''
addSceneData: this.addSceneData
}
}
},
methods: {
// 传递数据
getScene() {
this.$emit('getScene')
},
// 新增场景
handleAddScene() {
console.log()
this.sceneManger.dialogVisible = true
this.sceneManger.data = this.dialogManger.data
this.sceneManger.id = this.dialogManger.id
this.sceneManger.addSceneData = this.addSceneData
console.log(this.addSceneData)
},
handleSceneClose() {
this.dialogManger.dialogVisible = false
......
<template>
<div>
<task-standard v-loading="loading">
<task-standard>
<div slot="header-right">
<header-button
icon="preview-open"
......@@ -19,7 +19,12 @@
@click="submitFrom()"
>提交表单</header-button
>
<header-button icon="arrow-left" type="no-line" @click="goBack">
<header-button
icon="arrow-left"
class="back-btn"
type="no-line"
@click="goBack"
>
返回
</header-button>
</div>
......@@ -107,7 +112,6 @@
class="tick-class"
icon-class="tag_xuanzhong"
></svg-icon>
<span class="inner-text">{{ item.order }}</span>
</div>
</div>
......@@ -121,6 +125,12 @@
size="32"
fill="#999999"
/>
<!-- <svg-icon
width="32px"
height="32px"
class="icon-item"
icon-class="tag_right"
></svg-icon> -->
</div>
</div>
<div v-if="detailsList.length" class="form-box">
......@@ -155,7 +165,9 @@
width="30px"
height="30px"
icon-class="tag_tuijian"
@click.native="sceneView(taskModel)"
@click.native="
sceneView(taskModel.reviewSceneList.data)
"
></svg-icon>
</el-tooltip>
......@@ -351,10 +363,7 @@
</div>
</task-standard>
<!-- 场景查看对话框 -->
<scene-view
:dialog-manger="sceneViewManger"
@getScene="sceneView('dialog')"
></scene-view>
<scene-view :dialog-manger="sceneViewManger"></scene-view>
<!-- 发起场景评审 -->
<scene-dialog :dialog-manger="sceneManger"></scene-dialog>
<preview-view :dialog-manger="previewManger"></preview-view>
......@@ -376,6 +385,8 @@ import { mapGetters } from 'vuex'
import sceneDialog from './components/sceneDialog.vue'
import previewView from './components/previewView.vue'
import routerMixins from '@/mixins/router'
// import { lint } from 'cspell'
export default {
components: {
'scene-dialog': sceneDialog,
......@@ -393,6 +404,7 @@ export default {
sceneViewManger: {
dialogVisible: false,
data: {},
addSceneData: {},
id: ''
},
previewManger: {
......@@ -418,22 +430,63 @@ export default {
comment: '',
fileList: []
},
addSceneData: {
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: ''
},
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: '',
model: {
carReviewTask: {},
reviewSceneChangeTasks: {},
detailsList: []
},
carReviewTask: {},
taskModel: {},
activeModel: 0,
checked: false,
passed: false,
detailsList: [],
rules: {},
// TODO 删除
checkedTwo: false,
checkedThree: false,
changeTask: [],
changeTaskDetails: [],
value1: '',
taskId: '',
options: [],
formManger: {
show: false,
fileName: ''
},
standardText: '',
fileModel: this.$modelDataSource({
url: '/review/enterprise/archive',
dataKey: 'model',
......@@ -444,6 +497,7 @@ export default {
loading: false
}
},
computed: {
readNumber() {
let num = 0
......@@ -596,6 +650,15 @@ export default {
this.loading = false
if (res.code === 200) {
this.model = res.data
console.log(this.model, '654')
/*shuo*/
// this.inspectStandardId = this.model.carReviewTask.standardId
// this.inspectStandardNo = this.model.carReviewTask.standardNo
// this.addSceneData.inspectStandardId =
// this.model.carReviewTask.standardId
// this.addSceneData.inspectStandardNo =
// this.model.carReviewTask.standardNo
/*shuo*/
await this.getTaskDetail()
this.model.detailsList = this.model.detailsList.map((v, k) => {
v.order = k + 1
......@@ -672,13 +735,13 @@ export default {
* @param {*} data
*/
sceneView(data) {
if (data !== 'dialog') {
this.sceneViewManger.id = data.id
}
// console.log(this.addSceneData, '6')
this.sceneViewManger.addSceneData = this.addSceneData
getScenarios({ detailId: this.sceneViewManger.id }).then(res => {
if (res.code === 200) {
this.sceneViewManger.data = res.rows
this.sceneViewManger.dialogVisible = true
console.log(this.sceneViewManger.data.text, '查看场景')
}
})
},
......@@ -692,6 +755,24 @@ export default {
!this.allPropertiesCheck(this.form.fileList, 'isFileUpdate')
) {
this.handleCircle(index)
/*shuo*/
this.taskModel = JSON.parse(JSON.stringify(this.detailsList[index]))
// console.log(this.taskModel, '666666666')
this.inspectStandardId = this.model.carReviewTask.standardId
this.inspectStandardNo = this.model.carReviewTask.standardNo
this.addSceneData.inspectStandardId =
this.model.carReviewTask.standardId
this.addSceneData.inspectStandardNo =
this.model.carReviewTask.standardNo
this.addSceneData.chapter = this.taskModel.chapter
this.addSceneData.standardId = this.taskModel.standardId
this.addSceneData.standard = this.taskModel.standardText
this.addSceneData.keypointId = this.taskModel.reviewKeypointId
this.addSceneData.keypoint = this.taskModel.reviewKeypointText
this.addSceneData.detailsId = this.taskModel.id
this.addSceneData.details = this.taskModel.text
console.log(this.addSceneData, '5')
/*shuo*/
} else {
this.$message.error('您有未保存内容,请点击保存按钮')
}
......@@ -720,6 +801,22 @@ export default {
}
return true
},
/**
*判断两个数组是否一样
* @param {*} item
* @param {*} oldItem
*/
isAllPropertiesEqualArray(item, oldItem) {
if (item.length !== oldItem.length) {
return false
}
for (var i = 0; i < item.length; i++) {
if (item[i].chapter !== oldItem[i].chapter) {
return false
}
}
return true
},
/**
* 修改当前要点
* @param item 圆圈对象
......@@ -728,20 +825,34 @@ export default {
this.activeModel = index
if (this.detailsList.length) {
this.taskModel = JSON.parse(JSON.stringify(this.detailsList[index]))
this.inspectStandardId = this.model.carReviewTask.standardId
this.inspectStandardNo = this.model.carReviewTask.standardNo
this.addSceneData.inspectStandardId =
this.model.carReviewTask.standardId
this.addSceneData.inspectStandardNo =
this.model.carReviewTask.standardNo
this.addSceneData.chapter = this.taskModel.chapter
this.addSceneData.standardId = this.taskModel.standardId
this.addSceneData.standard = this.taskModel.standardText
this.addSceneData.keypointId = this.taskModel.reviewKeypointId
this.addSceneData.keypoint = this.taskModel.reviewKeypointText
this.addSceneData.detailsId = this.taskModel.id
this.addSceneData.details = this.taskModel.text
console.log(this.addSceneData, '5')
if (this.taskModel.result) {
this.form = {
passed: this.taskModel.result.passed,
reviewDetailsId: this.taskModel.id,
taskId: this.taskId,
comment: this.taskModel.result.comment,
fileList: this.taskModel.result.fileList
fileList: this.taskModel.result.fileList || []
}
this.oldForm = {
passed: this.taskModel.result.passed,
reviewDetailsId: this.taskModel.id,
taskId: this.taskId,
comment: this.taskModel.result.comment,
fileList: this.taskModel.result.fileList
fileList: this.taskModel.result.fileList || []
}
} else {
this.form = {
......@@ -848,9 +959,6 @@ export default {
})
.catch(() => {})
},
/**
*确认细则内容变更
*/
confirmDetailChange() {
reviewDetailsConfirm({
detailsId: this.taskModel.id,
......
......@@ -23,38 +23,52 @@
label-position="top"
class="scene-form"
>
<!-- <el-form-item label="标准要求分类" prop="reviewType">-->
<!-- &lt;!&ndash; 下拉框 &ndash;&gt;-->
<!-- <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">
<!-- <div class="file-prompt">
<p>{{addSceneData.inspectStandardId}}</p>
<p>{{addSceneData.inspectStandardNo}}</p>
<p>{{addSceneData.chapter}}</p>
<p>{{addSceneData.standardId}}</p>
<p>{{addSceneData.standard}}</p>
<p>{{addSceneData.keypointId}}</p>
<p>{{addSceneData.keypoint}}</p>
<p>{{addSceneData.detailsId}}</p>
<p>{{addSceneData.details}}</p>
<p>{{addSceneData.reviewSceneId}}</p>
</div> -->
<el-form-item label="评审类型" prop="operationSort">
<!-- &lt;!&ndash; 下拉框 &ndash;&gt; -->
<el-select
v-model="sceneForm.reviewType"
placeholder="新增场景"
style="width: 100%"
disabled
>
<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="type">
<el-select
v-model="sceneForm.sceneClassification"
placeholder="体系审查"
style="width: 100%"
disabled
>
<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="newText">
<el-input
v-model="sceneForm.sceneContent"
v-model="sceneForm.newText"
maxlength="100"
placeholder="请输入场景内容"
show-word-limit
......@@ -65,19 +79,23 @@
<!-- <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"-->
<!-- placeholder="请输入备注信息"-->
<!-- show-word-limit-->
<!-- type="textarea"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="备注信息" prop="remark">
<el-input
v-model="sceneForm.remark"
maxlength="100"
placeholder="请输入备注信息"
show-word-limit
type="textarea"
/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<!-- <el-button @click="handleSceneLog()">打印数据</el-button> -->
<el-button @click="handleSceneClose()">取 消</el-button>
<el-button type="primary" @click="handleSaveNewScene()">
<el-button
type="primary"
@click="handleSaveNewScene()"
>
发 起
</el-button>
</span>
......@@ -85,37 +103,79 @@
</template>
<script>
import { submitScenarios } from '@/api/task/task'
// import { getBySubtaskId } from '@/api/task/task'
// import axios from 'axios';
// const handleAddSceneParams = {
// inspectStandardId: '',
// inspectStandardNo: '',
// chapter: '',
// standardId: '',
// standard: '',
// type: '',
// keypointId: '',
// keypoint: '',
// detailsId: '',
// details: '',
// operationSort: '',
// oldText: '',
// newText: '',
// remark: '',
// reviewSceneId: ''
// }
export default {
// mounted() {
// // 在组件挂载后打印 taskPass 的值
// console.log('挂载时taskPass:', this.taskPass);
// },
// watch: {
// taskPass(newVal, oldVal) {
// const currentTime = new Date().toLocaleString();
// console.log(`[${currentTime}] taskPass 从`, oldVal, '变成', newVal);
// }
// },
dicts: ['file_status'],
props: {
dialogManger: {
type: Object,
required: true,//
default() {
return {
dialogVisible: false
}
}
}
},
// taskPass:{
// default:'String'
// }
},
data() {
return {
sceneForm: {},
sceneRules: {
reviewType: [
{ required: true, message: '请选择标准要求分类', trigger: 'change' }
],
sceneClassification: [
{ required: true, message: '请选择评审类型', trigger: 'change' }
],
sceneContent: [
// reviewType: [
// { required: true, message: '请选择标准要求分类', trigger: 'change' }
// ],
// sceneClassification: [
// { required: true, message: '请选择评审类型', trigger: 'change' }
// ],
newText: [
{ required: true, message: '请输入场景内容', trigger: 'blur' }
]
},
reviewTypeOptions: []
}
},
computed: {
addSceneData() {
return this.dialogManger.addSceneData;
}
},
methods: {
// 打印数据
// handleSceneLog() {
// console.log(this.taskPass)
// },
// 发起场景评审关闭时触发的回调函数
handleSceneClose() {
this.dialogManger.dialogVisible = false
......@@ -125,12 +185,27 @@ export default {
* 保存新场景
*/
handleSaveNewScene() {
// vue表单校验vue表单校验
//vue表单校验vue表单校验
this.$refs.sceneForm.validate(valid => {
if (valid) {
const data = {
reviewDetailsId: this.dialogManger.id,
text: this.sceneForm.sceneContent
inspectStandardId: this.addSceneData.inspectStandardId,
inspectStandardNo: this.addSceneData.inspectStandardNo,
chapter: this.addSceneData.chapter,
standardId: this.addSceneData.standardId,
standard: this.addSceneData.standard,
type: 'system',// 体系审查system 车型审查car
keypointId: this.addSceneData.keypointId,
keypoint: this.addSceneData.keypoint,
detailsId: this.addSceneData.detailsId,
details:this.addSceneData.details,
operationSort: 'ADD_SCENE',
oldText: '',
newText: this.sceneForm.newText,
remark: this.sceneForm.remark,
reviewSceneId: this.addSceneData.reviewSceneId,
}
submitScenarios(data).then(res => {
if (res.code === 200) {
......@@ -151,6 +226,22 @@ export default {
}
})
}
// handleSaveNewSceneAxios() {
// axios.post('/review/scene/change/task/add', handleAddSceneParams)
// .then(res => {
// if (res.code === 200) {
// console.log("发起场景评审成功")
// this.handleSceneClose()
// }else{
// this.$message({
// message: '发起场景评审失败',
// type: 'error'
// })
// }
// }).catch(err => {
// console.log(err)
// })
// }
}
}
</script>
......@@ -23,11 +23,20 @@
<header-button icon="plus" type="primary" @click="handleAddScene">
新增场景
</header-button>
<!-- <div>
<p>{{addSceneData.inspectStandardId}}</p>
<p>{{addSceneData.inspectStandardNo}}</p>
<p>{{addSceneData.chapter}}</p>
<p>{{addSceneData.standardId}}</p>
<p>{{addSceneData.standard}}</p>
<p>{{addSceneData.keypointId}}</p>
<p>{{addSceneData.keypoint}}</p>
<p>{{addSceneData.detailsId}}</p>
<p>{{addSceneData.details}}</p>
<p>{{addSceneData.reviewSenceId}}</p>
</div> -->
<!-- 发起场景评审 -->
<scene-dialog
:dialog-manger="sceneManger"
@getScene="getScene"
></scene-dialog
<scene-dialog :dialog-manger="sceneManger"></scene-dialog
></el-dialog>
</template>
<script>
......@@ -42,28 +51,36 @@ export default {
default() {
return {
dialogVisible: false,
data: {},
id: ''
data: {}
}
}
}
},
computed:{
addSceneData(){
return this.dialogManger.addSceneData
}
},
data() {
return {
sceneManger: {
dialogVisible: false
dialogVisible: false,
data: {},
id: '',
addSceneData: this.addSceneData
}
}
},
methods: {
// 传递数据
getScene() {
this.$emit('getScene')
},
// 新增场景
handleAddScene() {
console.log()
this.sceneManger.dialogVisible = true
this.sceneManger.data = this.dialogManger.data
this.sceneManger.id = this.dialogManger.id
this.sceneManger.addSceneData = this.addSceneData
},
handleSceneClose() {
this.dialogManger.dialogVisible = false
......
......@@ -70,17 +70,15 @@
<span class="green weight">{{ readNumber }}</span> 条,未完成
<span class="orange weight">
{{ model.detailsList.length - readNumber }} </span
>条,通过<span class="green weight"> {{ pass }} </span> 条,未通过
<span class="orange weight"> {{ noPass }} </span>
</span>
></span
>
<!-- <span v-if="taskModel.warnTasks" class="scene-error"
><i class="el-icon-warning-outline"></i>
{{ taskModel.warnTasks.length }} 条场景变更待处理</span
> -->
</div>
<div class="checked-noUse">
<el-checkbox v-model="checked">仅显示未完成条目</el-checkbox>
<el-checkbox v-model="passed">仅显示未通过条目</el-checkbox>
<el-checkbox v-model="checked">仅显示未完成页面</el-checkbox>
</div>
<div v-if="detailsList.length">
<div class="btn-tool">
......@@ -165,7 +163,7 @@
width="30px"
height="30px"
icon-class="tag_tuijian"
@click.native="sceneView(taskModel)"
@click.native="sceneView(taskModel.reviewSceneList.data)"
></svg-icon>
</el-tooltip>
......@@ -363,10 +361,7 @@
</div>
</task-standard>
<!-- 场景查看对话框 -->
<scene-view
:dialog-manger="sceneViewManger"
@getScene="sceneView('dialog')"
></scene-view>
<scene-view :dialog-manger="sceneViewManger"></scene-view>
<!-- 发起场景评审 -->
<scene-dialog :dialog-manger="sceneManger"></scene-dialog>
<preview-view :dialog-manger="previewManger"></preview-view>
......@@ -379,8 +374,7 @@ import {
reviewDetailsSubmit,
reviewTaskConfirm,
reviewDetailsConfirm,
getBySubtaskId,
getScenarios
getBySubtaskId
} from '@/api/task/task'
import sceneView from './components/sceneView.vue'
import companyFile from './components/companyFile.vue'
......@@ -405,7 +399,7 @@ export default {
sceneViewManger: {
dialogVisible: false,
data: {},
id: ''
addSceneData: {}
},
previewManger: {
dialogVisible: false,
......@@ -430,15 +424,47 @@ export default {
comment: '',
fileList: []
},
addSceneData: {
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: ''
},
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: '',
model: {
systemReviewTask: {},
reviewSceneChangeTasks: {},
detailsList: []
},
systemReviewTask: {},
taskModel: {},
activeModel: 0,
checked: false,
passed: false,
detailsList: [],
rules: {},
// TODO 删除
......@@ -453,6 +479,7 @@ export default {
show: false,
fileName: ''
},
standardText: '',
fileModel: this.$modelDataSource({
url: '/review/enterprise/archive',
dataKey: 'model',
......@@ -474,54 +501,18 @@ export default {
})
return num
},
pass() {
let num = 0
this.model.detailsList.map(i => {
if (i.result && i.result.passed === 1) {
num++
}
})
return num
},
noPass() {
let num = 0
this.model.detailsList.map(i => {
if (i.result && i.result.passed === 0) {
num++
}
})
return num
},
...mapGetters(['name', 'companyFiles', 'userId'])
},
watch: {
checked(newV) {
if (newV) {
this.passed = false
this.$nextTick(() => {
this.detailsList = this.model.detailsList.filter(item => {
return !item.result || item.result.passed === null
})
this.handleCircle(0)
})
} else {
this.detailsList = this.model.detailsList
this.handleCircle(0)
}
},
passed(newV) {
if (newV) {
this.checked = false
this.$nextTick(() => {
this.detailsList = this.model.detailsList.filter(item => {
return item.result && item.result.passed === 0
})
this.handleCircle(0)
})
} else {
this.detailsList = this.model.detailsList
this.handleCircle(0)
}
}
},
async mounted() {
......@@ -615,6 +606,14 @@ export default {
this.loading = false
if (res.code === 200) {
this.model = res.data
/*shuo*/
this.inspectStandardId = this.model.systemReviewTask.standardId
this.inspectStandardNo = this.model.systemReviewTask.standardNo
this.addSceneData.inspectStandardId =
this.model.systemReviewTask.standardId
this.addSceneData.inspectStandardNo =
this.model.systemReviewTask.standardNo
/*shuo*/
await this.getTaskDetail()
this.model.detailsList = this.model.detailsList.map((v, k) => {
v.order = k + 1
......@@ -630,10 +629,6 @@ export default {
this.detailsList = this.model.detailsList.filter(item => {
return !item.result || item.result.passed === null
})
} else if (this.passed) {
this.detailsList = this.model.detailsList.filter(item => {
return item.result && item.result.passed === 0
})
} else {
this.detailsList = this.model.detailsList
}
......@@ -691,18 +686,10 @@ export default {
* @param {*} data
*/
sceneView(data) {
// this.sceneViewManger.dialogVisible = true
// this.sceneViewManger.data = data.reviewSceneList
// this.sceneViewManger.id = data.id
if (data !== 'dialog') {
this.sceneViewManger.id = data.id
}
getScenarios({ detailId: this.sceneViewManger.id }).then(res => {
if (res.code === 200) {
this.sceneViewManger.data = res.rows
this.sceneViewManger.dialogVisible = true
}
})
this.sceneViewManger.data = data
this.sceneViewManger.addSceneData = this.addSceneData
console.log(this.sceneViewManger.data, '查看场景时')
},
// 遍历数组中的对象判断某一属性的数值是否为true
allPropertiesCheck(obj, key) {
......@@ -711,6 +698,7 @@ export default {
}
return false
},
/**
* 点击左侧圆圈触发的回调函数
* @param item 圆圈对象
......@@ -721,6 +709,17 @@ export default {
!this.allPropertiesCheck(this.form.fileList, 'isFileUpdate')
) {
this.handleCircle(index)
/*shuo*/
this.taskModel = JSON.parse(JSON.stringify(this.detailsList[index]))
console.log(this.taskModel, '666666666')
this.addSceneData.chapter = this.taskModel.chapter
this.addSceneData.standardId = this.taskModel.standardId
this.addSceneData.standard = this.taskModel.standardText
this.addSceneData.keypointId = this.taskModel.reviewKeypointId
this.addSceneData.keypoint = this.taskModel.reviewKeypointText
this.addSceneData.detailsId = this.taskModel.id
this.addSceneData.details = this.taskModel.text
/*shuo*/
} else {
this.$message.error('您有未保存内容,请点击保存按钮')
}
......@@ -761,7 +760,13 @@ export default {
this.activeModel = index
if (this.detailsList.length) {
this.taskModel = JSON.parse(JSON.stringify(this.detailsList[index]))
console.log(this.taskModel)
this.addSceneData.chapter = this.taskModel.chapter
this.addSceneData.standardId = this.taskModel.standardId
this.addSceneData.standard = this.taskModel.standardText
this.addSceneData.keypointId = this.taskModel.reviewKeypointId
this.addSceneData.keypoint = this.taskModel.reviewKeypointText
this.addSceneData.detailsId = this.taskModel.id
this.addSceneData.details = this.taskModel.text
if (this.taskModel.result) {
this.form = {
passed: this.taskModel.result.passed,
......@@ -828,7 +833,7 @@ export default {
reviewDetailsSubmit(this.form).then(async res => {
if (res.code === 200) {
await this.getTask()
if (this.checked || this.passed) {
if (this.checked) {
this.handleCircle(0)
}
this.form.fileList.map(i => {
......@@ -895,9 +900,8 @@ export default {
},
// 左滑动逻辑
scrollLeft() {
const allLength = this.detailsList.length * 58
const allLength = this.detailsList.length * 120
const boxLength = document.getElementById('list-box').clientWidth
if (allLength < boxLength) return
const listEl = document.getElementById('btn-list')
const leftMove = Math.abs(
......@@ -912,9 +916,8 @@ export default {
},
// 右滑动逻辑
scrollRight() {
const allLength = this.detailsList.length * 58
const allLength = this.detailsList.length * 120
const boxLength = document.getElementById('list-box').clientWidth
console.log(boxLength)
if (allLength < boxLength) return
const listEl = document.getElementById('btn-list')
const leftMove = Math.abs(
......
......@@ -434,6 +434,38 @@ export default {
pageNum: 1,
pageSize: 10
},
addSceneData: {
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: ''
},
inspectStandardId: '',
inspectStandardNo: '',
chapter: '',
standardId: '',
standard: '',
keypointId: '',
keypoint: '',
detailsId: '',
details: '',
reviewSceneId: '',
type: '',
operationSort: '',
oldText: '',
newText: '',
remark: '',
showSearch: true,
tableData: []
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -150,7 +150,15 @@ export default {
}
}
},
mounted() {},
mounted() {
testReviewer()
.then(res => {
this.receivedReviewer = res.data
})
.catch(error => {
console.log('testReviewer方法出错', error)
})
},
methods: {
// 按钮-重新选择标准条款
handleReSelect() {},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -38,7 +38,7 @@ module.exports = {
// target: `http://106.3.99.64:22016`,
// target: `http://192.168.10.171:22032`,
target: `http://10.11.79.113:22008`,
target: `http://10.11.77.117:22016`,
// target: `http://10.11.79.113/prod-api`,
// target: `http://10.11.77.182:22016`,
......
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