Commit 197b2705 authored by 小费同学阿's avatar 小费同学阿 💬

feat(init): init

BREAKING CHANGE: init
parent 412e0e2f
...@@ -283,8 +283,9 @@ aside { ...@@ -283,8 +283,9 @@ aside {
.bottom-button { .bottom-button {
display: flex; display: flex;
width: 100%;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: center;
} }
.subtitle { .subtitle {
......
...@@ -36,28 +36,23 @@ export default { ...@@ -36,28 +36,23 @@ export default {
padding: 1.5rem 2rem; padding: 1.5rem 2rem;
font-size: 16px; font-size: 16px;
} }
.box-card { .box-card {
min-height: 80vh; min-height: 80vh;
// background-color: #000; // background-color: #000;
} }
.tabList { .tabList {
} }
.header { .header {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
} }
.page-title { .page-title {
padding: 15px;
// background-color: #f9f9f9; // background-color: #f9f9f9;
// background-color: #999; // background-color: #999;
width: 100%; width: 100%;
padding: 15px 15px; box-shadow: 0 0 4px #cccccc;
box-shadow: 0 0 4px #ccc;
} }
::v-deep { ::v-deep {
.el-card__header { .el-card__header {
background-color: #f9f9f9; background-color: #f9f9f9;
......
...@@ -33,6 +33,18 @@ export default [ ...@@ -33,6 +33,18 @@ export default [
component: () => import('@/views/task/detail/index'), component: () => import('@/views/task/detail/index'),
name: '任务详情', name: '任务详情',
meta: { title: '已归档任务', activeMenu: '/task/detail' } meta: { title: '已归档任务', activeMenu: '/task/detail' }
},
{
path: 'edit',
component: () => import('@/views/task/edit/index'),
name: 'edit',
meta: { title: '任务编辑', activeMenu: '/task/edit' }
},
{
path: 'task-detail',
component: () => import('@/views/task/task-detail/index'),
name: 'task-detail',
meta: { title: '任务详情', activeMenu: '/task/task-detail' }
} }
] ]
} }
......
...@@ -267,13 +267,13 @@ export default { ...@@ -267,13 +267,13 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.card-cell { .card-cell {
color: rgb(153, 153, 153);
height: 80px;
display: flex; display: flex;
justify-content: space-around;
align-items: flex-start;
height: 80px;
color: rgb(153 153 153);
flex-direction: column; flex-direction: column;
flex-wrap: nowrap; flex-wrap: nowrap;
align-items: flex-start;
justify-content: space-around;
} }
.box-card { .box-card {
margin-bottom: 15px; margin-bottom: 15px;
...@@ -282,14 +282,14 @@ export default { ...@@ -282,14 +282,14 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
::v-deep .el-link.is-underline:after { ::v-deep .el-link.is-underline::after {
content: '';
position: absolute; position: absolute;
left: 0;
right: 0; right: 0;
height: 0;
bottom: 0; bottom: 0;
left: 0;
height: 0;
border-bottom: 1px solid #1890ff; border-bottom: 1px solid #1890ff;
content: '';
} }
.cell-progress { .cell-progress {
width: 200px; width: 200px;
......
<template> <template>
<page-standard> <page-standard>
<!--1-抬头标题-->
<div class="title-style">
<div class="title-content-style">我的已审</div>
</div>
<div class="content-display">
<el-form <el-form
v-show="showSearch" v-show="showSearch"
ref="queryForm" ref="queryForm"
...@@ -35,47 +40,82 @@ ...@@ -35,47 +40,82 @@
icon="el-icon-search" icon="el-icon-search"
size="mini" size="mini"
@click="handleQuery" @click="handleQuery"
>搜索</el-button >搜索
> </el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button >重置
> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- <el-row :gutter="10" class="mb10">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['setting:rules:add']"
>新增
</el-button>
</el-col>
<right-toolbar
:show-search.sync="showSearch"
@queryTable="loadData"
></right-toolbar>
</el-row>-->
<el-table <el-table
v-if="refreshTable"
v-loading="loading" v-loading="loading"
style="width: 100%; min-height: 50vh" style="width: 100%; min-height: 50vh"
border border
:default-sort="{ prop: 'createTime', order: 'descending' }" :default-sort="{ prop: 'createTime', order: 'descending' }"
:data="tableData" :data="tableData1"
> >
<el-table-column width="100" label="序号" align="center"> <el-table-column width="100" label="序号" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span> <span>{{ scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="评审单编号" sortable align="center"> <el-table-column
label="评审单编号"
sortable
align="center"
prop="reviewNo"
>
</el-table-column> </el-table-column>
<el-table-column label="场景分类" sortable align="center"> <el-table-column
label="评审类型"
sortable
align="center"
prop="reviewType"
>
</el-table-column> </el-table-column>
<el-table-column label="场景内容" align="center"> </el-table-column> <el-table-column
<el-table-column label="评审人员" align="center"> label="场景分类"
<template slot-scope="scope"> sortable
{{ align="center"
scope prop="sceneCategory"
? 'xxx(主)、xxx、xxx、xxx、xxx' >
: 'xxx(主)、xxx、xxx、xxx、xxx'
}}
</template>
</el-table-column> </el-table-column>
<el-table-column label="等待时长" align="center"> </el-table-column> <el-table-column
<el-table-column label="发起时间" align="left" prop="createTime"> label="场景内容"
<template slot-scope="scope"> align="center"
<span>{{ parseTime(scope.row.createTime) }}</span> prop="sceneContent"
</template> ></el-table-column>
<el-table-column label="评审人员" align="center" prop="reviewer">
</el-table-column> </el-table-column>
<el-table-column
label="等待时长"
sortable
align="center"
prop="waitingTime"
></el-table-column>
<el-table-column
label="发起时间"
sortable
align="left"
prop="createTime"
></el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
align="left" align="left"
...@@ -86,15 +126,14 @@ ...@@ -86,15 +126,14 @@
v-hasPermi="['review:already:detail']" v-hasPermi="['review:already:detail']"
size="mini" size="mini"
type="primary" type="primary"
icon="el-icon-edit"
plain plain
@click="handleDetail(scope.row)" @click="handleDetail(scope.row)"
>查看</el-button >查看
> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!--分页-->
<pagination <pagination
v-show="total > 0" v-show="total > 0"
:total="total" :total="total"
...@@ -103,12 +142,14 @@ ...@@ -103,12 +142,14 @@
@pagination="loadData" @pagination="loadData"
> >
</pagination> </pagination>
</div>
<yan-dialog :dialog-manger="dialogManger"></yan-dialog> <yan-dialog :dialog-manger="dialogManger"></yan-dialog>
</page-standard> </page-standard>
</template> </template>
<script> <script>
import page from '@/mixins/page' import page from '@/mixins/page'
import dialog from './components/dialog.vue' import dialog from './components/dialog.vue'
export default { export default {
components: { components: {
'yan-dialog': dialog 'yan-dialog': dialog
...@@ -117,9 +158,64 @@ export default { ...@@ -117,9 +158,64 @@ export default {
dicts: ['sys_scene_type'], dicts: ['sys_scene_type'],
data() { data() {
return { return {
tableData1: [
{
reviewNo: '20231209001',
reviewType: '新增场景',
sceneCategory: '车型审查',
sceneContent: '制度发布会音频文件',
reviewer: '赵晓东,盖献康,刘佳',
waitingTime: '1天12小时',
createTime: '2023-11-24 10:14:08'
},
{
reviewNo: '20231209002',
reviewType: '新增场景',
sceneCategory: '体系审查',
sceneContent: 'TBOX-蜂窝以太网接口',
reviewer: '赵晓东,尚志伟,闫嘉旭',
waitingTime: '1天13小时',
createTime: '2023-11-22 13:56:34'
},
{
reviewNo: '20231209003',
reviewType: '修改场景',
sceneCategory: '体系审查',
sceneContent: 'TBOX-车辆定位系统',
reviewer: '周朋,李宇涵,李亚涛',
waitingTime: '2天1小时',
createTime: '2023-11-13 17:26:54'
},
{
reviewNo: '20231209004',
reviewType: '修改场景',
sceneCategory: '车型审查',
sceneContent: '发布会车辆制动相关样品',
reviewer: '张鹏伟,李旭,张鑫',
waitingTime: '2天1小时',
createTime: '2023-11-12 14:43:22'
},
{
reviewNo: '20231209005',
reviewType: '删除场景',
sceneCategory: '车型审查',
sceneContent: '保障智能网联汽车时空数据存储文件',
reviewer: '孟同伟,孙钊涵,邵亮',
waitingTime: '3天3小时',
createTime: '2023-11-06 12:45:23'
},
{
reviewNo: '20231209001',
reviewType: '删除场景',
sceneCategory: '车型审查',
sceneContent: '智能网联汽车的访问控制-加密操作硬件',
reviewer: '李旭,孟同伟,张鑫',
waitingTime: '5天5小时',
createTime: '2023-11-02 08:12:56'
}
],
listUrl: '/system/role/list', listUrl: '/system/role/list',
showSearch: true, showSearch: true,
tableData: [],
dialogManger: { dialogManger: {
dialogVisible: false, dialogVisible: false,
refreshList: false, refreshList: false,
...@@ -141,9 +237,39 @@ export default { ...@@ -141,9 +237,39 @@ export default {
}, },
handleCancel() { handleCancel() {
// const aaa = []
this.visible = false this.visible = false
} }
} }
} }
</script> </script>
<style lang="scss" scoped>
/* 标题样式 */
.title-style {
display: flex;
justify-content: space-between;
align-items: center;
padding-right: 2rem;
width: 100%;
height: 3.5rem;
background-color: #f9f9f9;
}
/* 标题文字样式 */
.title-content-style {
margin-left: 1.5rem;
font-size: 1rem;
font-weight: bold;
color: #666666;
}
::v-deep .el-card__body {
padding: unset !important;
}
/* 主体内容样式 */
.content-display {
display: flex;
padding: 1.5rem 2rem 2rem;
width: 100%;
flex-direction: column;
}
</style>
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
:before-close="handleClose" :before-close="handleClose"
> >
<el-form ref="form" :model="model" :rules="rules"> <el-form ref="form" :model="model" :rules="rules">
<el-form-item label="细则分类" prop="status"> <el-form-item label="细则分类" prop="fenlei">
<el-select <el-select
v-model="model.status" v-model="model.fenlei"
style="width: 100%" style="width: 100%"
placeholder="请选择" placeholder="请选择细则分类"
clearable clearable
> >
<el-option <el-option
...@@ -23,47 +23,51 @@ ...@@ -23,47 +23,51 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标准章节" prop="status"> <el-form-item label="标准章节" prop="zhangjie">
<el-input v-model="model.status" placeholder="请输入" clearable /> <el-input
v-model="model.zhangjie"
placeholder="请输入标准章节"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="标准要求" prop="status"> <el-form-item label="标准要求" prop="yaoqiu">
<el-input <el-input
v-model="model.status" v-model="model.yaoqiu"
placeholder="请输入" placeholder="请输入标准要求"
type="textarea" type="textarea"
maxlength="100" maxlength="100"
:autosize="{ minRows: 4, maxRows: 4 }" :autosize="{ minRows: 4, maxRows: 4 }"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="审查要点" prop="status"> <el-form-item label="审查要点" prop="yaodian">
<el-input <el-input
v-model="model.status" v-model="model.yaodian"
placeholder="请输入" placeholder="请输入审查要点"
type="textarea" type="textarea"
maxlength="100" maxlength="100"
:autosize="{ minRows: 4, maxRows: 4 }" :autosize="{ minRows: 4, maxRows: 4 }"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="审查细则" prop="status"> <el-form-item label="审查细则" prop="xize">
<el-input <el-input
v-model="model.status" v-model="model.xize"
placeholder="请输入" placeholder="请输入审查细则"
type="textarea" type="textarea"
maxlength="100" maxlength="100"
:autosize="{ minRows: 4, maxRows: 4 }" :autosize="{ minRows: 4, maxRows: 4 }"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="关联场景" prop="status"> <el-form-item label="关联场景" prop="changjing">
<el-button> 选择场景 </el-button> <el-button> 选择场景</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
<el-button @click="handleClose()"> 取消 </el-button> <el-button @click="handleClose()"> 取消</el-button>
<el-button type="primary" @click="handleConfirm()"> 保存 </el-button> <el-button type="primary" @click="handleConfirm()"> 保存</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -82,11 +86,23 @@ export default { ...@@ -82,11 +86,23 @@ export default {
return { return {
model: {}, model: {},
rules: { rules: {
status: [ fenlei: [
{ required: true, message: '菜单名称不能为空', trigger: 'blur' } { required: true, message: '细则分类不能为空', trigger: 'blur' }
],
zhangjie: [
{ required: true, message: '标准章节不能为空', trigger: 'blur' }
],
yaoqiu: [
{ required: true, message: '标准要求不能为空', trigger: 'blur' }
], ],
orderNum: [ yaodian: [
{ required: true, message: '菜单顺序不能为空', trigger: 'blur' } { required: true, message: '审查要点不能为空', trigger: 'blur' }
],
xize: [
{ required: true, message: '审查细则不能为空', trigger: 'blur' }
],
changjing: [
{ required: true, message: '关联场景不能为空', trigger: 'blur' }
], ],
path: [{ required: true, message: '路由地址不能为空', trigger: 'blur' }] path: [{ required: true, message: '路由地址不能为空', trigger: 'blur' }]
} }
...@@ -105,7 +121,17 @@ export default { ...@@ -105,7 +121,17 @@ export default {
handleConfirm() { handleConfirm() {
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
console.log(valid) this.$confirm('确认提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
// 确认提交的逻辑
})
.catch(() => {
// 取消提交的逻辑
})
} }
}) })
} }
......
This diff is collapsed.
...@@ -236,10 +236,12 @@ ...@@ -236,10 +236,12 @@
</page-standard> </page-standard>
</template> </template>
<script> <script>
import image from '@/assets/images/login-background.jpg'
export default { export default {
data() { data() {
return { return {
formType: 1, formType: 1,
image,
model: {}, model: {},
loading: false, loading: false,
tableData: [], tableData: [],
......
This diff is collapsed.
<template> <template>
<page-standard> <page-standard>
<div slot="tab">
<div class="mb10"> <div class="mb10">
<el-radio-group v-model="taskType"> <el-radio-group v-model="queryParams.status" @change="handleQuery()">
<el-radio-button label="0">体系审查</el-radio-button> <el-radio-button :label="0">全部任务</el-radio-button>
<el-radio-button label="1">车型测评</el-radio-button> <el-radio-button
v-for="dict in dict.type.sys_task_status"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
<el-form
v-show="showSearch"
ref="queryForm"
:model="queryParams"
size="small"
:inline="true"
>
<el-form-item label="部门名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-input
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">
重置
</el-button>
</el-form-item>
</el-form>
<el-table
v-if="refreshTable"
v-loading="loading"
style="width: 100%; min-height: 50vh"
border
:data="tableData"
>
<el-table-column width="100" label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="开始时间" align="left" prop="createTime">
<template slot-scope="{ row }">
<span>{{ parseTime(row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="任务名称" align="left" prop="createTime" />
<el-table-column label="任务组长" align="left" prop="createTime" />
<el-table-column label="任务状态" align="left" prop="status">
<template slot-scope="scope">
<div class="task-status" @click="handleNotStarted(scope)">
<div class="t0">
<div>● 未开始</div>
</div> </div>
<systemReview v-if="taskType === '0'" /> <div class="t1">
<vehicleModelEvaluation v-if="taskType === '1'" /> <div>● 进行中</div>
</div>
<div class="t2">
<div>● 暂停</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="紧要程度" align="left" prop="createTime">
<template>紧急</template>
</el-table-column>
<el-table-column label="审查问卷" align="left" prop="createTime">
<template slot-scope="scope">
<div v-if="(scope.$index + 1) % 2 == 0" class="task-status">
<div>
<div @click="handleCheckQuestionnaire">确定结果</div>
</div>
</div>
<div v-else-if="(scope.$index + 1) % 2 == 1">
<a @click="handleWriteQuestionnaire(scope)">填写问卷</a>
</div>
<div v-else>
<a>查看问卷</a>
</div>
</template>
</el-table-column>
<el-table-column
label="完成进度"
width="200"
align="left"
prop="createTime"
>
<template slot-scope="{ row }">
<el-progress
:percentage="50"
@click="handleProgress(row)"
></el-progress>
</template>
</el-table-column>
<el-table-column
label="操作"
align="left"
width="120"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<div class="button-list">
<div class="button-item b1" @click="handleCeshi(row)">
<i class="iconfont icon-kaishi"></i>
</div>
<div class="button-item b2">
<i class="iconfont icon-fenxiang"></i>
</div>
<div class="button-item b3">
<i class="iconfont icon-feiji"></i>
</div>
</div>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.size"
@pagination="loadData"
/>
</page-standard> </page-standard>
</template> </template>
<script> <script>
import systemReview from './components/systemReview' import page from '@/mixins/page'
import vehicleModelEvaluation from './components/vehicleModelEvaluation' import { parseTime } from '../../../utils/ruoyi'
export default { export default {
name: 'Index', mixins: [page],
components: { dicts: ['sys_task_status'],
systemReview,
vehicleModelEvaluation
},
data() { data() {
return { return {
taskType: '0' listUrl: '/system/role/list',
showSearch: true,
tableData: [],
queryParams: {
status: 0
}
} }
}, },
methods: {} methods: {
parseTime,
/* 跳转到任务详情*/
handleDetail() {
this.$router.push({ path: '/task/task-detail' })
},
handleAdd() {},
handleDelete() {},
handleUpdate() {},
// 点击填写问卷按钮回调函数
handleWriteQuestionnaire(scope) {
this.$router.push({
path: '/task/questionnaire'
})
},
// 点击确认审查结果
handleCheckQuestionnaire() {
this.$router.push({
path: '/task/confirm-result'
})
},
handleCeshi(row) {},
handleProgress(row) {},
handleNotStarted(scope) {}
}
} }
</script> </script>
This diff is collapsed.
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