Commit 95bcb7b6 authored by jiaxu.yan's avatar jiaxu.yan

feat(任务处理): 页面图标库修改

parent e44be7ed
......@@ -6,6 +6,7 @@ bgcolor
biaozhuntiaokuan
Btns
buildexport
cartype
cascader
chexing
Chexingdialog
......
......@@ -17,6 +17,7 @@
"commitlint": "commitlint --edit"
},
"dependencies": {
"@icon-park/vue": "^1.4.2",
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
......@@ -30,6 +31,7 @@
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"lodash": "4.17.21",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
......@@ -40,8 +42,7 @@
"vue-meta": "2.4.0",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0",
"lodash": "4.17.21"
"vuex": "3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "5.0.8",
......
......@@ -5,6 +5,9 @@ settings:
excludeLinksFromLockfile: false
dependencies:
'@icon-park/vue':
specifier: ^1.4.2
version: 1.4.2(vue@2.6.12)
'@riophae/vue-treeselect':
specifier: 0.4.0
version: 0.4.0(vue@2.6.12)
......@@ -125,7 +128,7 @@ devDependencies:
specifier: 7.2.0
version: 7.2.0(eslint@7.32.0)
husky:
specifier: ^8.0.3
specifier: ^8.0.0
version: 8.0.3
lint-staged:
specifier: ^10.5.3
......@@ -2086,6 +2089,17 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
/@icon-park/vue@1.4.2(vue@2.6.12):
resolution: {integrity: sha512-YXXC53R0hjM76B2M4ANRI0m2bQB1cifUW+YXxQfGofITP6gr+pSMafBz/vzECYSkW3zZklm2mVuqQj4RAZGR2Q==}
engines: {node: '>= 8.0.0', npm: '>= 5.0.0'}
peerDependencies:
vue: 2.x
dependencies:
'@vue/babel-helper-vue-jsx-merge-props': 1.4.0
csstype: 3.1.3
vue: 2.6.12
dev: false
/@intervolga/optimize-cssnano-plugin@1.0.6(webpack@4.47.0):
resolution: {integrity: sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==}
peerDependencies:
......@@ -2464,7 +2478,6 @@ packages:
/@vue/babel-helper-vue-jsx-merge-props@1.4.0:
resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==}
dev: true
/@vue/babel-helper-vue-transform-on@1.2.1:
resolution: {integrity: sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==}
......@@ -5682,6 +5695,10 @@ packages:
css-tree: 1.1.3
dev: true
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
dev: false
/currently-unhandled@0.4.1:
resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==}
engines: {node: '>=0.10.0'}
......
......@@ -7,6 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<!-- <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet"> -->
<script src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/icons_31435_5.c0443d2b40b0390efdb03d4a310219ef.js"></script>
<title><%= webpackConfig.name %></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
......
......@@ -319,7 +319,6 @@ aside {
display: block;
}
.task-box {
height: 226px;
border: 1px solid #ebebeb;
.task-header {
display: flex;
......@@ -346,3 +345,9 @@ aside {
.w-100 {
width: 100%;
}
.el-dialog__header{
padding: 15px 23px;
}
.el-dialog__body{
padding: 15px 23px;
}
......@@ -84,20 +84,37 @@
display: flex;
justify-content: space-between;
align-items: center;
width: calc(100% - 40px);
.standard-left {
display: flex;
justify-content: flex-start;
align-items: center;
width: calc(100% - 100px);
}
.standard-title {
width: calc(100% - 10px);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.standard {
color: #1a6fd7;
margin: 0 10px;
white-space: nowrap;
}
.iconfont {
width: 24px;
}
.standard-result {
color: #303133;
font-weight: bold;
}
}
.i-icon {
display: flex;
justify-content: center;
align-items: center;
}
.message-list {
display: flex;
flex-wrap: wrap;
......@@ -490,7 +507,7 @@
.img {
border: 1px solid #ebebeb;
width: 100%;
height:348px
height: 348px;
}
}
}
......@@ -602,7 +619,7 @@
width: 200px;
}
.cell-lable {
.cell-label {
color: #303133;
font-weight: 800;
margin-bottom: 14px;
......@@ -636,3 +653,20 @@
color: #19be6b;
}
}
.scene-list {
.scene-item {
font-size: 14px;
font-weight: 700;
text-align: left;
color: #606266;
line-height: 16px;
margin-bottom: 12px;
}
}
.scene-form {
.el-form-item__label {
font-weight: 700;
font-size: 14px;
color: #606266;
}
}
......@@ -23,12 +23,20 @@
@focus="handleFocus"
@blur="focusing = false"
>
<svg-icon
<icon-park
v-if="isActive"
class="iconfont"
icon-class="tag_zhankai2"
></svg-icon>
<svg-icon v-else class="iconfont" icon-class="tag_shouqi2"></svg-icon>
type="reduce"
theme="outline"
size="18"
fill="#1a6fd7"
/>
<icon-park
v-else
type="add"
theme="outline"
size="18"
fill="#1a6fd7"
/>
<slot name="title"></slot>
</div>
</div>
......
......@@ -15,7 +15,7 @@
>
<i class="el-icon-loading" v-if="loading"></i>
<slot name="icon " v-if="icon && !loading">
<i :class="icon"></i>
<icon-park :type="icon" theme="outline" class="el-icon" size="16" :fill="color" />
</slot>
<span v-if="$slots.default"><slot></slot></span>
</button>
......@@ -40,6 +40,24 @@ export default {
disabled: Boolean,
line: Boolean
},
data(){
return {
color: "#1a6fd7"
}
},
mounted(){
switch(this.type){
case "default":
this.color = "#1a6fd7"
break
case "primary":
this.color = "#ffffff"
break
case "no-line":
this.color = "#1a6fd7"
break
}
},
methods: {
handleClick(evt) {
this.$emit('click', evt)
......@@ -70,7 +88,7 @@ export default {
-ms-user-select: none;
font-size: 14px;
border-radius: 4px;
width: 130px;
width: 114px;
height: 32px;
align-items: center;
justify-content: center;
......@@ -78,34 +96,12 @@ export default {
.footer-button + .footer-button {
margin-left: 6px;
}
.footer-button:focus,
.footer-button:hover {
color: #409eff;
border-color: #c6e2ff;
background-color: #ecf5ff;
}
.footer-button:active {
color: #3a8ee6;
border-color: #3a8ee6;
outline: 0;
}
.footer-button::-moz-focus-inner {
border: 0;
}
.footer-button [class*='el-icon-'] + span {
.footer-button [class*='el-icon'] + span {
margin-left: 5px;
}
.footer-button.is-plain:focus,
.footer-button.is-plain:hover {
background: #fff;
border-color: #409eff;
color: #409eff;
}
.footer-button.is-active,
.footer-button.is-plain:active {
color: #3a8ee6;
border-color: #3a8ee6;
}
.footer-button.is-plain:active {
background: #fff;
outline: 0;
......@@ -154,8 +150,8 @@ export default {
}
.footer-button--primary {
color: #fff;
background-color: #409eff;
border-color: #409eff;
background-color: #1A6FD7;
border-color: #1A6FD7;
}
.footer-button--primary:focus,
.footer-button--primary:hover {
......@@ -186,15 +182,15 @@ export default {
color: #1a6fd7;
}
.footer-button--no-line:active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
outline: 0;
}
.footer-button--no-line.is-active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
}
.footer-button--default {
......@@ -210,15 +206,15 @@ export default {
color: #1a6fd7;
}
.footer-button--default:active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
outline: 0;
}
.footer-button--default.is-active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
}
</style>
......@@ -14,7 +14,7 @@
>
<i class="el-icon-loading" v-if="loading"></i>
<slot name="icon" v-if="icon && !loading">
<i :class="icon"></i>
<icon-park :type="icon" theme="outline" class="el-icon" size="16" :fill="color" />
</slot>
<span v-if="$slots.default"><slot></slot></span>
</button>
......@@ -39,6 +39,24 @@ export default {
disabled: Boolean,
line: Boolean
},
data(){
return {
color: "#1a6fd7"
}
},
mounted(){
switch(this.type){
case "default":
this.color = "#1a6fd7"
break
case "primary":
this.color = "#ffffff"
break
case "no-line":
this.color = "#1a6fd7"
break
}
},
methods: {
handleClick(evt) {
this.$emit('click', evt)
......@@ -77,34 +95,12 @@ export default {
.header-button + .header-button {
margin-left: 6px;
}
.header-button:focus,
.header-button:hover {
color: #409eff;
border-color: #c6e2ff;
background-color: #ecf5ff;
}
.header-button:active {
color: #3a8ee6;
border-color: #3a8ee6;
outline: 0;
}
.header-button::-moz-focus-inner {
border: 0;
}
.header-button [class*='el-icon-'] + span {
.header-button [class*='el-icon'] + span {
margin-left: 5px;
}
.header-button.is-plain:focus,
.header-button.is-plain:hover {
background: #fff;
border-color: #409eff;
color: #409eff;
}
.header-button.is-active,
.header-button.is-plain:active {
color: #3a8ee6;
border-color: #3a8ee6;
}
.header-button.is-plain:active {
background: #fff;
outline: 0;
......@@ -153,8 +149,8 @@ export default {
}
.header-button--primary {
color: #fff;
background-color: #409eff;
border-color: #409eff;
background-color: #1A6FD7;
border-color: #1A6FD7;
}
.header-button--primary:focus,
.header-button--primary:hover {
......@@ -173,7 +169,6 @@ export default {
}
.header-button--no-line {
color: #303133;
background: #ffffff;
border: none;
color: #1a6fd7;
......@@ -185,19 +180,18 @@ export default {
color: #1a6fd7;
}
.header-button--no-line:active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
outline: 0;
}
.header-button--no-line.is-active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
}
.header-button--default {
color: #303133;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
......@@ -209,15 +203,15 @@ export default {
color: #1a6fd7;
}
.header-button--default:active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
outline: 0;
}
.header-button--default.is-active {
background: #1764c1;
border: 1px solid #1764c1;
color: #1764c1;
background: #ffffff;
border: 1px solid #1a6fd7;
color: #1a6fd7;
}
</style>
<template>
<div class="page-btn" @click="handleClick">
<el-tooltip effect="dark" :content="title" placement="bottom-start">
<!-- <svg-icon class="item" :icon-class="btnClass" /> -->
<svg-icon
class="item"
height="24px"
width="24px"
:icon-class="'btn-' + icon"
/>
</el-tooltip>
</div>
<el-tooltip effect="dark" :content="title" placement="bottom-start">
<div class="page-btn" @click="handleClick" @mouseover="handleMouseOver('#1a6fd7')"
@mouseleave="handleMouseOver('#1a6fd7')">
<icon-park :type="icon" theme="outline" size="16" :fill="color" />
</div>
</el-tooltip>
</template>
<script>
// import SvgIcon from '@/components/SvgIcon'
export default {
name: 'PageButton',
// components:{
......@@ -23,39 +17,52 @@ export default {
title: ''
},
data() {
return {}
return {
color: '#1a6fd7',
}
},
methods: {
handleMouseOver(evt) {
this.color = evt
},
handleClick(evt) {
this.$emit('click', evt)
}
}
}
</script>
<style lang="scss" scoped>
<style lang="scss">
.page-btn {
width: 24px;
height: 24px;
cursor: pointer;
border: 1px solid #1a6fd7;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
.item {
width: 24px;
height: 24px;
color: #1a6fd7;
--color-1: #1a6fd7;
--color-2: #ffffff;
&:hover {
color: #1a6fd7;
--color-1: #1a6fd7;
--color-2: #e3eefc;
}
&:active {
color: #1764c1;
--color-1: #1764c1;
--color-2: #e3eefc;
}
&:hover {
background-color: #e3eefc;
}
// .item {
// width: 24px;
// height: 24px;
// color: #1a6fd7;
// --color-1: #1a6fd7;
// --color-2: #ffffff;
// &:active {
// color: #1764c1;
// --color-1: #1764c1;
// --color-2: #e3eefc;
// }
// }
}
</style>
......@@ -5,11 +5,13 @@
<div></div>
</slot>
<span class="header">{{ $route.meta.title }}</span>
<slot name="header-right">
<el-button icon="el-icon-back" @click="$router.back()">
<div class="header-right">
<slot name="header-right">
<header-button icon="arrow-left" type="no-line" @click="$router.back()">
返回
</el-button>
</header-button>
</slot>
</div>
</div>
<div class="page-box">
<div class="box-card" shadow="never">
......@@ -63,4 +65,9 @@ export default {
align-items: center;
justify-content: space-between;
}
.header-right{
::v-deep .header-button{
margin-left: 24px;
}
}
</style>
......@@ -60,6 +60,11 @@ import VueMeta from 'vue-meta'
import DictData from '@/components/DictData'
import TalkItem from '@/components/TalkItem'
import { IconPark } from '@icon-park/vue/es/all';
// import { install } from '@icon-park/vue/es/all';
// import '@icon-park/vue/styles/index.css';
// Vue.use(install)
// 使用mock模拟接口调用
// const { mockXHR } = require('../mock')
// mockXHR()
......@@ -77,6 +82,7 @@ Vue.prototype.handleTree = handleTree
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('IconPark', IconPark)
Vue.component('TaskStandard', TaskStandard)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
......
......@@ -34,25 +34,37 @@ function getCell(list, cellList, cellLength) {
})
return arr
}
/**
* 获取行数据
* @param {Array} arr - 存放行数据的数组
* @param {Array} cellList - 单元格列表
* @param {Number} cellLength - 单元格数量
* @param {Number} level - 当前层级
* @param {Object} i - 当前层级的单元格对象
* @param {Object} mergeData - 合并后的数据
*/
function getLine(arr, cellList, cellLength, level, i, mergeData) {
if (cellLength - 1 > level) {
// 如果当前层级小于单元格数量减1,则继续递归获取下一级别的行数据
let obj = JSON.parse(JSON.stringify(mergeData))
obj[cellList[level] + 'Item'] = i.text
if (i[cellList[level + 1]].length) {
// 如果下一级别的单元格有值,则遍历下一级别的单元格并递归获取行数据
i[cellList[level + 1]].map(k => {
getLine(arr, cellList, cellLength, level + 1, k, obj)
})
} else {
// 如果下一级别的单元格没有值,则直接返回
return
}
} else if (cellLength - 1 == level) {
// 如果当前层级等于单元格数量减1,则将当前行数据添加到数组中
let obj = JSON.parse(JSON.stringify(mergeData))
obj[cellList[level] + 'Item'] = i.text
arr.push(obj)
} else {
// 如果当前层级大于单元格数量减1,则直接返回
return
}
return
}
export function geSpanCell(row, column, rowIndex, columnIndex, cellList) {}
......@@ -79,13 +79,13 @@
<div class="inspection-standard">检验依据:{{ item.name }}</div>
<div class="card-content">
<div class="card-cell">
<div class="cell-lable">任务编号</div>
<div class="cell-label">任务编号</div>
<div class="cell-value">
{{ item.taskNo ? item.taskNo : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务名称</div>
<div class="cell-label">任务名称</div>
<div class="cell-value">
<el-link
type="primary"
......@@ -97,7 +97,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">车辆型号</div>
<div class="cell-label">车辆型号</div>
<div
class="cell-value"
:title="item.taskName ? item.taskName : '---'"
......@@ -106,7 +106,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务周期</div>
<div class="cell-label">任务周期</div>
<div class="cell-value">
<div class="w-100">
{{ parseTime(item.taskBeginTime) }}
......@@ -118,10 +118,16 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务组长</div>
<div class="cell-label">任务组长</div>
<div class="cell-value">
<div>
<i class="el-icon-user"></i>
<div style="display: flex; align-items: center">
<icon-park
type="me"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#999999"
/>
{{ item.leader ? item.leader : '---' }}
</div>
</div>
......@@ -222,8 +228,8 @@
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.size"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="loadData"
>
</pagination>
......@@ -249,6 +255,15 @@ export default {
/* 跳转到问卷详情*/
goNext(url) {
this.$router.push({ path: url })
},
/* 文件转化为二进制*/
fileToBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = () => resolve(reader.result)
reader.onerror = error => reject(error)
})
}
}
}
......@@ -303,7 +318,7 @@ export default {
padding-left: 25px;
}
.cell-lable {
.cell-label {
color: #303133;
font-weight: 800;
margin-bottom: 14px;
......
......@@ -21,7 +21,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.carReviewTask.taskInitiatorDep }}
{{ model.carReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -34,11 +34,24 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<!-- <svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon> -->
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -109,14 +122,13 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
</footer-button>
<!-- <el-button type="primary" @click="goToProcessedReview">
确认提交
</el-button> -->
......
......@@ -22,7 +22,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.carReviewTask.taskInitiatorDep }}
{{ model.carReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -102,11 +102,23 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -199,14 +211,13 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
</footer-button>
</div>
</div>
</div>
......
......@@ -22,7 +22,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.carReviewTask.taskInitiatorDep }}
{{ model.carReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -102,11 +102,23 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -228,17 +240,20 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
<el-button type="primary" @click="goToProcessedReview">
</footer-button>
<footer-button
type="primary"
icon="hard-disk-one"
@click="goToProcessedReview"
>
确认提交
</el-button>
</footer-button>
</div>
</div>
</div>
......
......@@ -87,9 +87,9 @@
</el-col>
</el-row>
</el-form>
<el-button type="primary" plain @click="handleSaveFile"
>保存车企文件</el-button
>
<footer-button type="default" @click="handleSaveFile">
保存车企文件
</footer-button>
</div>
</div>
</template>
......
......@@ -10,74 +10,86 @@
:before-close="handleClose"
>
<!--审查问卷概要-->
<div class="form-review-questionnaire">
<table class="table" style="width: 100%" border="1">
<thead>
<tr>
<th>标准章节</th>
<th>标准要求</th>
<th>审查要点</th>
<th>审查细则</th>
<th>审查结果</th>
<th colspan="2">记录</th>
<th>填写人</th>
</tr>
</thead>
<tbody>
<!-- 循环遍历 arr -->
<template
v-for="(item, index) in dialogManger.model.carReviewTask.standard"
>
<tr :key="'standard-' + index">
<td
align="center"
style="text-align: center"
:rowspan="getRows2(item)"
>
{{ item.chapter }}
</td>
<td align="center" :rowspan="getRows2(item)">
{{ item.text }}
</td>
<div class="form-review-questionnaire" style="margin: 0">
<div class="title-display">
<span class="title-i"></span>
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
</div>
<!--审查问卷概要-->
<collapse v-model="activeNames" class="mt10">
<collapse-item
v-for="(item, key) in dialogManger.model.carReviewTask.standard"
:key="key"
:name="item.chapter"
>
<span slot="title" style="width: 100%">
<div class="standard-box">
<div class="standard-left">
<div class="standard">标准:</div>
<div class="standard-title">
{{ item.chapter + item.text }}
</div>
</div>
</div>
</span>
<table class="table">
<tr>
<th>审查要点</th>
<th>审查细则</th>
<th>审查结果</th>
<th>填写人</th>
</tr>
<!-- 循环遍历 keyPointList -->
<template v-for="(i, PointIndex) in item.keyPointList">
<tr :key="'PointIndex-2' + PointIndex + index">
<td align="center" :rowspan="getRows(i)">
{{ i.text }}
<template v-for="(keyPoint, keyPointKey) in item.keyPointList">
<tr :key="keyPointKey">
<td :rowspan="keyPoint.reviewDetailsList.length + 1">
{{ keyPoint.text }}
</td>
</tr>
<!-- 循环遍历 reviewDetailsList -->
<template v-for="(v, reviewDetailIndex) in i.reviewDetailsList">
<tr
:key="
'reviewDetailIndex-3' +
PointIndex +
reviewDetailIndex +
index
"
>
<template
v-for="(
reviewDetail, reviewDetailKey
) in keyPoint.reviewDetailsList"
>
<tr :key="reviewDetailKey">
<td align="center">{{ reviewDetail.text }}</td>
<td align="center">
{{ v.text }}
</td>
<td align="center" style="text-align: center">
{{
v.result
? v.result.passed === null
reviewDetail.result
? reviewDetail.result.passed === null
? '__'
: v.result.passed === 0
: reviewDetail.result.passed === 0
? '不通过'
: '通过'
: '__'
}}
</td>
<td align="center"></td>
<td align="center"></td>
<td align="center" style="text-align: center">
<td align="center">
{{
v.result
? v.result.userName
? v.result.userName
reviewDetail.result
? reviewDetail.result.userName
? reviewDetail.result.userName
: '__'
: '__'
}}
......@@ -85,9 +97,9 @@
</tr>
</template>
</template>
</template>
</tbody>
</table>
</table>
</collapse-item>
</collapse>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleClose()"> 关 闭 </el-button>
......@@ -95,8 +107,13 @@
</el-dialog>
</template>
<script>
import { getRows, getRows2 } from '@/utils/reviewDetailsTable.js'
import collapse from '@/components/Collapse/collapse'
import collapseItem from '@/components/Collapse/collapse-item'
export default {
components: {
collapse: collapse,
'collapse-item': collapseItem
},
props: {
dialogManger: {
type: Object,
......@@ -112,37 +129,26 @@ export default {
}
}
},
// data() {
// return {
// }
// },
data() {
return {
activeNames: []
}
},
methods: {
// 关闭预览
handleClose() {
this.dialogManger.dialogVisible = false
},
getRows,
getRows2
}
}
</script>
<!--样式-->
<style scoped lang="scss">
/* 审查文件表格样式(最外层) */
.form-review-questionnaire {
padding: 2.5rem 4rem 1rem;
width: 100%;
height: max-content;
.table {
border-collapse: collapse;
th {
text-align: center;
}
td {
min-width: 100px;
height: 100%;
text-align: left;
openAll() {
this.activeNames = this.dialogManger.model.carReviewTask.standard.map(
i => {
return i.chapter
}
)
},
closeAll() {
this.activeNames = []
}
}
}
</style>
</script>
......@@ -20,6 +20,7 @@
:model="sceneForm"
:rules="sceneRules"
label-width="80px"
label-position="top"
class="scene-form"
>
<el-form-item label="评审类型" prop="reviewType">
......
......@@ -8,22 +8,21 @@
:close-on-press-escape="false"
:before-close="handleSceneClose"
>
<div class="match-scene">
<div v-for="(scene, key) in dialogManger.data" :key="key">
<div class="scene-list">
<div
v-for="(scene, key) in dialogManger.data"
:key="key"
class="scene-item"
>
{{ 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>
<header-button icon="plus" type="primary" @click="handleAddScene">
新增场景
</header-button>
<!-- 新增场景对话框 -->
<scene-dialog :dialog-manger="sceneManger"></scene-dialog
></el-dialog>
......
......@@ -2,14 +2,16 @@
<div>
<task-standard v-loading="loading">
<div slot="header-right">
<el-button
icon="iconfont icon-chakan"
<header-button
icon="preview-open"
type="default"
@click="handlePreview"
>
预览表单
</el-button>
<el-button icon="el-icon-back" @click="handleBack"> 返回 </el-button>
</header-button>
<header-button icon="arrow-left" type="no-line" @click="handleBack">
返回
</header-button>
</div>
<div class="custom-card">
<div class="main-content">
......@@ -29,7 +31,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.carReviewTask.taskInitiatorDep }}
{{ model.carReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -55,12 +57,7 @@
<div class="btn-tool">
<!-- 左边按钮 -->
<div class="btn" @click="scrollLeft">
<svg-icon
width="32px"
height="32px"
class="icon-item"
icon-class="tag_left"
></svg-icon>
<icon-park type="left" theme="outline" size="32" fill="#999999" />
</div>
<!-- 中间列表 -->
<div id="list-box" class="center-content">
......@@ -89,12 +86,12 @@
</div>
<!-- 右边按钮 -->
<div class="btn" @click="scrollRight">
<svg-icon
width="32px"
height="32px"
class="icon-item"
icon-class="tag_right"
></svg-icon>
<icon-park
type="right"
theme="outline"
size="32"
fill="#999999"
/>
</div>
</div>
<div v-if="detailsList.length" class="form-box">
......@@ -147,11 +144,12 @@
content="新增场景"
placement="bottom-start"
>
<svg-icon
width="20px"
height="20px"
icon-class="tag_tianjia"
></svg-icon>
<icon-park
type="add-one"
theme="filled"
size="20"
fill="#1a6fd7"
/>
</el-tooltip>
</div>
<div class="match-scene">
......@@ -236,15 +234,18 @@
</div>
</div>
<div class="bottom-btn">
<el-button
<footer-button
v-if="detailsList.length"
type="primary"
type="default"
icon="hard-disk-one"
plain
@click="submitQuestionnaire()"
>
保存当前条目
</el-button>
<el-button type="primary" @click="submitFrom()">提交表格</el-button>
</footer-button>
<footer-button type="primary" icon="check" @click="submitFrom()"
>提交表格</footer-button
>
</div>
</div>
</task-standard>
......@@ -524,7 +525,7 @@ export default {
this.activeModel = index
if (this.detailsList.length) {
this.taskModel = JSON.parse(JSON.stringify(this.detailsList[index]))
console.log(this.taskModel)
if (this.taskModel.result) {
this.form = {
passed: this.taskModel.result.passed,
......@@ -568,9 +569,12 @@ export default {
submitQuestionnaire(type) {
this.$refs.form.validate(valid => {
if (valid) {
reviewDetailsSubmit(this.form).then(res => {
reviewDetailsSubmit(this.form).then(async res => {
if (res.code === 200) {
this.getTask()
await this.getTask()
if (this.checked) {
this.handleCircle(0)
}
this.oldForm = this.form
this.$modal.msgSuccess('提交表格成功')
} else {
......
......@@ -163,8 +163,8 @@
</el-table>
<pagination
:total="tableTotal"
:page.sync="queryParams.page"
:limit.sync="queryParams.size"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="loadData"
>
</pagination>
......
......@@ -85,13 +85,13 @@
<div class="inspection-standard">检验依据:{{ item.name }}</div>
<div class="card-content">
<div class="card-cell">
<div class="cell-lable">任务编号</div>
<div class="cell-label">任务编号</div>
<div class="cell-value">
{{ item.taskNo ? item.taskNo : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务名称</div>
<div class="cell-label">任务名称</div>
<div class="cell-value">
<el-link
type="primary"
......@@ -103,7 +103,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">车辆型号</div>
<div class="cell-label">车辆型号</div>
<div
class="cell-value"
:title="item.taskName ? item.taskName : '---'"
......@@ -112,7 +112,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务周期</div>
<div class="cell-label">任务周期</div>
<div class="cell-value">
<div class="w-100">
{{ parseTime(item.taskBeginTime) }}
......@@ -124,12 +124,16 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务组长</div>
<div class="cell-value">
<div>
<i class="el-icon-user"></i>
{{ item.leader ? item.leader : '---' }}
</div>
<div class="cell-label">任务组长</div>
<div style="display: flex; align-items: center">
<icon-park
type="me"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#999999"
/>
{{ item.leader ? item.leader : '---' }}
</div>
</div>
<div class="card-buttons">
......@@ -200,8 +204,8 @@
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.size"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="loadData"
>
</pagination>
......
......@@ -64,8 +64,8 @@ export default {
}
}
</script>
<style scoped>
<!-- <style scoped>
.back-btn {
margin-left: 24px !important;
}
</style>
</style> -->
......@@ -22,7 +22,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.systemReviewTask.taskInitiatorDep }}
{{ model.systemReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -102,11 +102,23 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -199,17 +211,20 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
<el-button type="primary" @click="goToProcessedReview">
</footer-button>
<footer-button
type="primary"
icon="hard-disk-one"
@click="goToProcessedReview"
>
确认提交
</el-button>
</footer-button>
</div>
</div>
</div>
......
......@@ -21,7 +21,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.systemReviewTask.taskInitiatorDep }}
{{ model.systemReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -34,11 +34,23 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -109,14 +121,13 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
</footer-button>
<!-- <el-button type="primary" @click="goToProcessedReview">
确认提交
</el-button> -->
......
......@@ -22,7 +22,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.systemReviewTask.taskInitiatorDep }}
{{ model.systemReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -102,11 +102,23 @@
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<svg-icon class="iconfont" icon-class="tag_zhankai"></svg-icon>
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<svg-icon class="iconfont" icon-class="tag_shouqi"></svg-icon>
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
......@@ -231,14 +243,13 @@
</div>
<!--返回按钮-->
<div class="bottom-btn">
<el-button
<footer-button
type="default"
icon="el-icon-back"
plain
icon="arrow-left"
@click="$router.go(-1)"
>
返回
</el-button>
</footer-button>
</div>
</div>
</div>
......
......@@ -87,9 +87,9 @@
</el-col>
</el-row>
</el-form>
<el-button type="primary" plain @click="handleSaveFile"
>保存车企文件</el-button
>
<footer-button type="default" @click="handleSaveFile">
保存车企文件
</footer-button>
</div>
</div>
</template>
......@@ -153,6 +153,7 @@ export default {
}
return false
},
handleSaveFile() {
// vue表单校验
this.$refs.fileRef.validate(valid => {
......
......@@ -10,75 +10,86 @@
:before-close="handleClose"
>
<!--审查问卷概要-->
<div class="form-review-questionnaire">
<table class="table" style="width: 100%" border="1">
<thead>
<tr>
<th>标准章节</th>
<th>标准要求</th>
<th>审查要点</th>
<th>审查细则</th>
<th>审查结果</th>
<th colspan="2">记录</th>
<th>填写人</th>
</tr>
</thead>
<tbody>
<!-- 循环遍历 arr -->
<template
v-for="(item, index) in dialogManger.model.systemReviewTask
.standard"
>
<tr :key="'standard-' + index">
<td
align="center"
style="text-align: center"
:rowspan="getRows2(item)"
>
{{ item.chapter }}
</td>
<td align="center" :rowspan="getRows2(item)">
{{ item.text }}
</td>
<div class="form-review-questionnaire" style="margin: 0">
<div class="title-display">
<span class="title-i"></span>
<span class="title-content">审查问卷概要</span>
<div class="control-btns">
<div class="control-btn" @click="openAll()">
<icon-park
type="down-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部展开
</div>
<div class="control-btn" @click="closeAll()">
<icon-park
type="up-c"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#303133"
/>
全部收起
</div>
</div>
</div>
<!--审查问卷概要-->
<collapse v-model="activeNames" class="mt10">
<collapse-item
v-for="(item, key) in dialogManger.model.systemReviewTask.standard"
:key="key"
:name="item.chapter"
>
<span slot="title" style="width: 100%">
<div class="standard-box">
<div class="standard-left">
<div class="standard">标准:</div>
<div class="standard-title">
{{ item.chapter + item.text }}
</div>
</div>
</div>
</span>
<table class="table">
<tr>
<th>审查要点</th>
<th>审查细则</th>
<th>审查结果</th>
<th>填写人</th>
</tr>
<!-- 循环遍历 keyPointList -->
<template v-for="(i, PointIndex) in item.keyPointList">
<tr :key="'PointIndex-2' + PointIndex + index">
<td align="center" :rowspan="getRows(i)">
{{ i.text }}
<template v-for="(keyPoint, keyPointKey) in item.keyPointList">
<tr :key="keyPointKey">
<td :rowspan="keyPoint.reviewDetailsList.length + 1">
{{ keyPoint.text }}
</td>
</tr>
<!-- 循环遍历 reviewDetailsList -->
<template v-for="(v, reviewDetailIndex) in i.reviewDetailsList">
<tr
:key="
'reviewDetailIndex-3' +
PointIndex +
reviewDetailIndex +
index
"
>
<template
v-for="(
reviewDetail, reviewDetailKey
) in keyPoint.reviewDetailsList"
>
<tr :key="reviewDetailKey">
<td align="center">{{ reviewDetail.text }}</td>
<td align="center">
{{ v.text }}
</td>
<td align="center" style="text-align: center">
{{
v.result
? v.result.passed === null
reviewDetail.result
? reviewDetail.result.passed === null
? '__'
: v.result.passed === 0
: reviewDetail.result.passed === 0
? '不通过'
: '通过'
: '__'
}}
</td>
<td align="center"></td>
<td align="center"></td>
<td align="center" style="text-align: center">
<td align="center">
{{
v.result
? v.result.userName
? v.result.userName
reviewDetail.result
? reviewDetail.result.userName
? reviewDetail.result.userName
: '__'
: '__'
}}
......@@ -86,9 +97,9 @@
</tr>
</template>
</template>
</template>
</tbody>
</table>
</table>
</collapse-item>
</collapse>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleClose()"> 关 闭 </el-button>
......@@ -96,8 +107,13 @@
</el-dialog>
</template>
<script>
import { getRows, getRows2 } from '@/utils/reviewDetailsTable.js'
import collapse from '@/components/Collapse/collapse'
import collapseItem from '@/components/Collapse/collapse-item'
export default {
components: {
collapse: collapse,
'collapse-item': collapseItem
},
props: {
dialogManger: {
type: Object,
......@@ -113,37 +129,26 @@ export default {
}
}
},
// data() {
// return {
// }
// },
data() {
return {
activeNames: []
}
},
methods: {
// 关闭预览
handleClose() {
this.dialogManger.dialogVisible = false
},
getRows,
getRows2
}
}
</script>
<!--样式-->
<style scoped lang="scss">
/* 审查文件表格样式(最外层) */
.form-review-questionnaire {
padding: 2.5rem 4rem 1rem;
width: 100%;
height: max-content;
.table {
border-collapse: collapse;
th {
text-align: center;
}
td {
min-width: 100px;
height: 100%;
text-align: left;
openAll() {
this.activeNames = this.dialogManger.model.systemReviewTask.standard.map(
i => {
return i.chapter
}
)
},
closeAll() {
this.activeNames = []
}
}
}
</style>
</script>
......@@ -20,6 +20,7 @@
:model="sceneForm"
:rules="sceneRules"
label-width="80px"
label-position="top"
class="scene-form"
>
<el-form-item label="评审类型" prop="reviewType">
......
......@@ -8,22 +8,21 @@
:close-on-press-escape="false"
:before-close="handleSceneClose"
>
<div class="match-scene">
<div v-for="(scene, key) in dialogManger.data" :key="key">
<div class="scene-list">
<div
v-for="(scene, key) in dialogManger.data"
:key="key"
class="scene-item"
>
{{ 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>
<header-button icon="plus" type="primary" @click="handleAddScene">
新增场景
</header-button>
<!-- 新增场景对话框 -->
<scene-dialog :dialog-manger="sceneManger"></scene-dialog
></el-dialog>
......
......@@ -2,14 +2,16 @@
<div>
<task-standard v-loading="loading">
<div slot="header-right">
<el-button
icon="iconfont icon-chakan"
<header-button
icon="preview-open"
type="default"
@click="handlePreview"
>
预览表单
</el-button>
<el-button icon="el-icon-back" @click="handleBack"> 返回 </el-button>
</header-button>
<header-button icon="arrow-left" type="no-line" @click="handleBack">
返回
</header-button>
</div>
<div class="custom-card">
<div class="main-content">
......@@ -29,7 +31,7 @@
<div class="task-item">
<span class="task-label">委托单位:</span>
<span class="task-content">
{{ model.systemReviewTask.taskInitiatorDep }}
{{ model.systemReviewTask.taskInitiatorDept }}
</span>
</div>
</div>
......@@ -55,12 +57,7 @@
<div class="btn-tool">
<!-- 左边按钮 -->
<div class="btn" @click="scrollLeft">
<svg-icon
class="icon-item"
width="32px"
height="32px"
icon-class="tag_left"
></svg-icon>
<icon-park type="left" theme="outline" size="32" fill="#999999" />
</div>
<!-- 中间列表 -->
<div id="list-box" class="center-content">
......@@ -88,12 +85,18 @@
</div>
<!-- 右边按钮 -->
<div class="btn" @click="scrollRight">
<svg-icon
<icon-park
type="right"
theme="outline"
size="32"
fill="#999999"
/>
<!-- <svg-icon
width="32px"
height="32px"
class="icon-item"
icon-class="tag_right"
></svg-icon>
></svg-icon> -->
</div>
</div>
<div v-if="detailsList.length" class="form-box">
......@@ -146,11 +149,12 @@
content="新增场景"
placement="bottom-start"
>
<svg-icon
width="20px"
height="20px"
icon-class="tag_tianjia"
></svg-icon>
<icon-park
type="add-one"
theme="filled"
size="20"
fill="#1a6fd7"
/>
</el-tooltip>
</div>
<div class="match-scene">
......@@ -235,15 +239,18 @@
</div>
</div>
<div class="bottom-btn">
<el-button
<footer-button
v-if="detailsList.length"
type="primary"
type="default"
icon="hard-disk-one"
plain
@click="submitQuestionnaire()"
>
保存当前条目
</el-button>
<el-button type="primary" @click="submitFrom()">提交表格</el-button>
</footer-button>
<footer-button type="primary" icon="check" @click="submitFrom()"
>提交表格</footer-button
>
</div>
</div>
</task-standard>
......@@ -566,9 +573,12 @@ export default {
submitQuestionnaire(type) {
this.$refs.form.validate(valid => {
if (valid) {
reviewDetailsSubmit(this.form).then(res => {
reviewDetailsSubmit(this.form).then(async res => {
if (res.code === 200) {
this.getTask()
await this.getTask()
if (this.checked) {
this.handleCircle(0)
}
this.oldForm = this.form
this.$modal.msgSuccess('提交表格成功')
} else {
......
......@@ -85,25 +85,25 @@
<div class="inspection-standard">检验依据:{{ item.name }}</div>
<div class="card-content">
<div class="card-cell">
<div class="cell-lable">任务编号</div>
<div class="cell-label">任务编号</div>
<div class="cell-value">
{{ item.taskNo ? item.taskNo : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务名称</div>
<div class="cell-label">任务名称</div>
<div
class="cell-value"
:title="item.taskName ? item.taskName : '---'"
>
<el-link type="primary" @click="goNext()">
<el-link type="primary" @click="goDetail(item.id)">
{{ item.taskName ? item.taskName : '---' }}
</el-link>
</div>
</div>
<div class="card-cell">
<div class="cell-lable">
<div class="cell-label">
<!-- <i class="el-icon-timer"></i> -->
车辆型号
</div>
......@@ -112,16 +112,22 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务组长</div>
<div class="cell-label">任务组长</div>
<div class="cell-value">
<div>
<i class="el-icon-user"></i>
<div style="display: flex; align-items: center">
<icon-park
type="me"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#999999"
/>
{{ item.leader ? item.leader : '---' }}
</div>
</div>
</div>
<div class="card-cell">
<div class="cell-lable">子任务内容</div>
<div class="cell-label">子任务内容</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -190,7 +196,7 @@
</div>
</div>
<div class="card-cell status-multiple-cell">
<div class="cell-lable">子任务状态</div>
<div class="cell-label">子任务状态</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -288,7 +294,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">子任务完成进度</div>
<div class="cell-label">子任务完成进度</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -325,26 +331,26 @@
</div>
<div class="card-cell option-cell">
<page-button
icon="renwuxiangqing"
icon="view-list"
title="任务详情"
class="button-item"
@click.native="goDetail(item.id)"
></page-button>
<page-button
icon="yunlanwenjian"
icon="file-display"
title="预览企业留档文件"
class="button-item"
@click.native="handleRetentionFile(item)"
></page-button>
<page-button
icon="wenjanku"
icon="folder-close"
title="车企文件库"
class="button-item"
@click.native="handleFileLibrary(item)"
></page-button>
<page-button
v-if="item.runStatus === 'RUNNABLE'"
icon="kaishitixishencha"
icon="play-one"
title="开始体系审查"
class="button-item"
@click.native="startTask(item)"
......@@ -411,6 +417,31 @@ export default {
this.$store.dispatch('standard/setStandardList')
},
methods: {
loadData() {
this.loading = true
request({
url: this.listUrl,
method: 'post',
data: this.queryParams
})
.then(res => {
if (res.code === 200) {
console.log(res.rows)
// res.rows[0].carReviewStatus = 'FINISH'
res.rows[0].carReviewStatus = 'PENDING'
// res.rows[0].carReviewStatus = 'FINISH'
this.tableData = res.rows
this.total = res.total
}
this.loading = false
})
.catch(error => {
if (error.msg) {
this.$message.error(error.msg)
}
this.loading = false
})
},
/**
* 企业留档文件
* @param item 对象
......@@ -532,12 +563,6 @@ export default {
openTaskDialog() {
this.dialogVisible = true
},
/** 预览报告按钮操作 */
previewReport() {
this.$router.push({
path: '/processing/reviewReport'
})
},
// 体系审查
handleSystemReviewTestContent(status, id) {
switch (status) {
......@@ -566,57 +591,62 @@ export default {
break
}
},
// 车型测试
handleCarTypeTestTaskContent(status, id) {
// 处理车型审查任务内容
handleCarTypeReviewTaskContent(status, id) {
switch (status) {
// 查看试验方案
// 查看车型检查表单
case 'NEW':
this.$router.push({
path: '/processing/review-form?type=3&id=' + id
path: '/processing/carReview/review-form?id=' + id
})
break
// 执行试验方案
// 填写车型检查表单
case 'PENDING':
this.$router.push({
path: '/processing/vehicle-type'
path: '/processing/carReview/write-check-form?id=' + id
})
break
// 确认测试结果
// 确认车型检验结果
case 'SIGNED':
this.$router.push({
path: '/processing/vehicle-type'
path: '/processing/carReview/vehicle-type?id=' + id
})
break
// 查看车型审查记录
case 'FINISH':
this.$router.push({
path: '/processing/carReview/source-record?id=' + id
})
}
},
// 车型检验
handleCarTypeReviewTaskContent(status, id) {
// 车型测试
handleCarTypeTestTaskContent(status, id) {
switch (status) {
// 查看车型检查表单
// 查看试验方案
case 'NEW':
this.$router.push({
path: '/processing/carReview/review-form?id=' + id
path: '/processing/review-form?type=3&id=' + id
})
break
// 填写车型检查表单
// 执行试验方案
case 'PENDING':
this.$router.push({
path: '/processing/carReview/write-check-form?id=' + id
path: '/processing/vehicle-type'
})
break
// 确认车型检验结果
// 确认测试结果
case 'SIGNED':
this.$router.push({
path: '/processing/carReview/vehicle-type?id=' + id
path: '/processing/vehicle-type'
})
break
// 查看车型审查记录
case 'FINISH':
this.$router.push({
path: '/processing/carReview/source-record?id=' + id
})
}
},
/**
* 获取字典
* @param {*} options
* @param {*} value
*/
getDictData(options, value) {
const item = options.filter(v => v.value === value)
if (item.length > 0) {
......
......@@ -134,8 +134,8 @@
</el-table>
<pagination
:total="tableTotal"
:page.sync="queryParams.page"
:limit.sync="queryParams.size"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="loadData"
>
</pagination>
......
......@@ -83,15 +83,15 @@
class="task-card-box"
>
<div class="inspection-standard">检验依据:{{ item.name }}</div>
<div class="card-content">
<div v-if="item.taskStatus !== 'FINISH'" class="card-content">
<div class="card-cell">
<div class="cell-lable">任务编号</div>
<div class="cell-label">任务编号</div>
<div class="cell-value">
{{ item.taskNo ? item.taskNo : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务名称</div>
<div class="cell-label">任务名称</div>
<div
class="cell-value"
......@@ -103,7 +103,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">
<div class="cell-label">
<!-- <i class="el-icon-timer"></i> -->
车辆型号
</div>
......@@ -112,16 +112,20 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">任务组长</div>
<div class="cell-value">
<div>
<i class="el-icon-user"></i>
{{ item.leader ? item.leader : '---' }}
</div>
<div class="cell-label">任务组长</div>
<div style="display: flex; align-items: center">
<icon-park
type="me"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#999999"
/>
{{ item.leader ? item.leader : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-lable">子任务内容</div>
<div class="cell-label">子任务内容</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -190,7 +194,7 @@
</div>
</div>
<div class="card-cell status-multiple-cell">
<div class="cell-lable">子任务状态</div>
<div class="cell-label">子任务状态</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -288,7 +292,7 @@
</div>
</div>
<div class="card-cell">
<div class="cell-lable">子任务完成进度</div>
<div class="cell-label">子任务完成进度</div>
<div class="cell-value">
<div
v-if="item.reviewStatus && item.reviewStatus !== 'NONE'"
......@@ -323,37 +327,88 @@
</div>
</div>
</div>
<div
v-if="item.taskStatus !== 'FINISH'"
class="card-cell option-cell"
>
<div class="card-cell option-cell">
<page-button
icon="renwuxiangqing"
icon="view-list"
title="任务详情"
class="button-item"
@click.native="goDetail(item.id)"
></page-button>
<page-button
icon="yunlanwenjian"
icon="file-display"
title="预览企业留档文件"
class="button-item"
@click.native="handleRetentionFile(item)"
></page-button>
<page-button
icon="wenjanku"
icon="folder-close"
title="车企文件库"
class="button-item"
@click.native="handleFileLibrary(item)"
></page-button>
<page-button
v-if="item.runStatus === 'RUNNABLE'"
icon="kaishitixishencha"
icon="play-one"
title="开始体系审查"
class="button-item"
@click.native="startTask(item)"
></page-button>
</div>
<div v-else class="card-buttons">
</div>
<div v-else class="card-content">
<div class="card-cell">
<div class="cell-label">任务编号</div>
<div class="cell-value">
{{ item.taskNo ? item.taskNo : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-label">任务名称</div>
<div class="cell-value">
<el-link
type="primary"
@click="goNext('/task/task-detail?id=' + item.id)"
>
{{ item.taskName ? item.taskName : '---' }}
<span class="green">(已归档)</span>
</el-link>
</div>
</div>
<div class="card-cell">
<div class="cell-label">车辆型号</div>
<div
class="cell-value"
:title="item.taskName ? item.taskName : '---'"
>
{{ item.taskName ? item.taskName : '---' }}
</div>
</div>
<div class="card-cell">
<div class="cell-label">任务周期</div>
<div class="cell-value">
<div class="w-100">
{{ parseTime(item.taskBeginTime) }}
</div>
<div class="w-100" style="text-align: center"></div>
<div class="w-100">
{{ parseTime(item.taskEndTime) }}
</div>
</div>
</div>
<div class="card-cell">
<div class="cell-label">任务组长</div>
<div style="display: flex; align-items: center">
<icon-park
type="me"
theme="outline"
size="16"
style="margin-right: 5px"
fill="#999999"
/>
{{ item.leader ? item.leader : '---' }}
</div>
</div>
<div class="card-buttons">
<el-button
v-if="item.reviewStatus !== 'NONE'"
type="primary"
......
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