提交 022d0362 authored 作者: 谢廷雅's avatar 谢廷雅

问题和亮点列表

上级 0e37b25c
import request from '@/utils/request'
// 查询区域列表
export function listHighlightsList(query) {
return request({
url: '/backstage/highlights/list',
method: 'get',
params: query
})
}
// 查询区域详细
export function getHighlightsList(id) {
return request({
url: '/backstage/highlights/' + id,
method: 'get'
})
}
import request from '@/utils/request'
// 查询区域列表
export function listProblemsList(query) {
return request({
url: '/backstage/problems/list',
method: 'get',
params: query
})
}
// 查询区域详细
export function getProblemsList(id) {
return request({
url: '/backstage/problems/' + id,
method: 'get'
})
}
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620357872842" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1449" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.001 15.678C237.414 15.678 14.82 238.273 14.82 512.86S237.414 1010.04 512 1010.04s497.18-222.593 497.18-497.18S786.589 15.678 512.002 15.678z m213.211 645.937c17.798 17.803 17.798 46.657 0 64.456-17.798 17.797-46.658 17.797-64.456 0L512.001 577.315 363.241 726.07c-17.799 17.797-46.652 17.797-64.45 0-17.804-17.799-17.804-46.653 0-64.456L447.545 512.86 298.79 364.104c-17.803-17.798-17.803-46.657 0-64.455 17.799-17.798 46.652-17.798 64.45 0l148.761 148.755 148.755-148.755c17.798-17.798 46.658-17.798 64.456 0 17.798 17.798 17.798 46.657 0 64.455L576.456 512.86l148.756 148.755z m0 0" fill="#e6e6e6" p-id="1450"></path></svg>
\ No newline at end of file
...@@ -117,6 +117,58 @@ export const constantRoutes = [ ...@@ -117,6 +117,58 @@ export const constantRoutes = [
meta: { title: '修改生成配置' } meta: { title: '修改生成配置' }
} }
] ]
},
{
path: '/highlightsIndex',
component: Layout,
hidden: true,
children: [
{
path: '/highlightsIndex',
component: (resolve) => require(['@/views/backstage/highlights/index'], resolve),
name: 'highlightsIndex',
meta: { title: '亮点列表' }
}
]
},
{
path: '/highlightsDetails',
component: Layout,
hidden: true,
children: [
{
path: '/highlightsDetails/:id',
component: (resolve) => require(['@/views/backstage/highlights/details'], resolve),
name: 'highlightsDetails',
meta: { title: '亮点详情' }
}
]
},
{
path: '/problemsIndex',
component: Layout,
hidden: true,
children: [
{
path: '/problemsIndex',
component: (resolve) => require(['@/views/backstage/problems/index'], resolve),
name: 'problemsIndex',
meta: { title: '问题列表' }
}
]
},
{
path: '/problemsDetails',
component: Layout,
hidden: true,
children: [
{
path: '/problemsDetails/:id',
component: (resolve) => require(['@/views/backstage/problems/details'], resolve),
name: 'problemsDetails',
meta: { title: '问题详情' }
}
]
} }
] ]
......
<template>
<div class="app-container">
<div>
<el-button icon="arrow-left" class="pan-back-btn" @click="back">
&lt; 返回
</el-button>
</div>
<el-table v-loading="loading" :data="vedioList" >
<!-- <el-table-column label="id" align="center" prop="id" />-->
<!-- <el-table-column label="任务问题id" align="center" prop="jobTargetId" />-->
<!-- <el-table-column label="整改任务id" align="center" prop="jobId" />-->
<!-- <el-table-column label="项目id" align="center" prop="projectId" />-->
<el-table-column label="提交类型" >
<template slot-scope="scope">
<span v-if="scope.row.submitType==1">现场</span>
<span v-if="scope.row.submitType==2">整改</span>
<span v-if="scope.row.submitType==3">复核</span>
</template>
</el-table-column>
<el-table-column label="图片或者视频" >
<template slot-scope="scope" >
<el-popover placement="bottom" trigger="click" v-if="scope.row.mediaType == 1" > <!--trigger属性值:hover、click、focus 和 manual-->
<div>
<img v-show="scope.row.url != undefined" :src="scope.row.url" style="width: 320px;height: 200px">
</div>
<img slot="reference" v-show="scope.row.url != undefined" :src="scope.row.url" :style="{width: '180px',height: '100px'}" />
</el-popover>
<div style="display: flex" v-if="scope.row.mediaType == 2">
<video @click="videoshow(scope.row.url)" slot="reference" v-show="scope.row.url != undefined" :src="scope.row.url" :style="{width: '38%',height: '100px'}" />
</div>
</template>
</el-table-column>
<!-- <el-table-column label="媒体类型 1图片 2视频" align="center" prop="mediaType" />-->
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<!-- 视频放大播放框 -->
<div class="videoplay" v-if="isplayvideo">
<div class="videoplay_box">
<video :src="videosrc" controls></video>
<div class="close" @click="closevideo"><img src="../../../assets/image/close2.svg" alt=""></div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.videoplay{
width: 100%;
height: 100%;
background: rgba(0,0,0,.5);
position: fixed;
left: 0;
top: 0;
display: flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: -webkit-flex;
align-items:center;
justify-content:center;
z-index: 300;
.videoplay_box{
width: 500px;
position: relative;
.close{
width: 32px;
height: 32px;
position: absolute;
top: 18px;
right: 18px;
img{
width: 100%;
display: block;
}
}
video{
width: 100%;
object-fit: fill;
outline: none;
}
}
}
</style>
<script>
import {getHighlightsList } from "@/api/backstage/highlights";
export default {
name: "Highlights",
data() {
return {
// 遮罩层
loading: true,
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 表格数据
vedioList:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 是否播放视频
isplayvideo:false,
};
},
created() {
this.getHighlightsDetails();
},
methods: {
/** 查询列表 */
getHighlightsDetails() {
this.loading = true;
const id = this.$route.params.id
getHighlightsList(id).then(response => {
this.open = true;
this.title = "亮点详情";
this.vedioList = response.rows;
console.log("this.vedioList===="+this.vedioList)
this.total = response.total;
this.loading = false;
});
},
back() {
this.$router.push("/highlightsIndex/")
},
videoshow(src){
this.videosrc=src
this.isplayvideo=true
},
closevideo(){
this.isplayvideo=false
},
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="考核标题" prop="assessmentTitle">
<el-input
v-model="queryParams.assessmentTitle"
placeholder="请输入考核标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否典型" prop="isTypical">
<el-select v-model="queryParams.isTypical" placeholder="请选择是否典型" clearable size="small">
<el-option label="是" value="1" />
<el-option label="否" value="0" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="cyan" 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-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleDetails"-->
<!-- v-hasPermi="['backstage:highlights:details']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="highlightsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="id" align="center" prop="id" />-->
<el-table-column label="考核地方" align="center" prop="totalLevelName" />
<el-table-column label="考核标题" align="center" prop="assessmentTitle" />
<el-table-column label="亮点数量" align="center" prop="numbers" />
<el-table-column label="是否典型" align="center" >
<template slot-scope="scope">
<span v-if="scope.row.isTypical==1"></span>
<span v-if="scope.row.isTypical==0"></span>
</template>
</el-table-column>
<el-table-column label="提交时间" align="center" prop="submitTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.numbers>0"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDetails(scope.row)"
v-hasPermi="['backstage:highlights:details']"
>详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改区域对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<!-- <el-table v-loading="loading" :data="vedioList" >-->
<!-- <el-table-column label="id" align="center" prop="id" />-->
<!-- <el-table-column label="任务问题id" align="center" prop="jobTargetId" />-->
<!-- <el-table-column label="整改任务id" align="center" prop="jobId" />-->
<!-- <el-table-column label="项目id" align="center" prop="projectId" />-->
<!-- <el-table-column label="提交类型" >-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.submitType==1">现场</span>-->
<!-- <span v-if="scope.row.submitType==2">整改</span>-->
<!-- <span v-if="scope.row.submitType==3">复核</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="图片或者视频url地址" align="center" prop="url" />-->
<!-- <el-table-column label="媒体类型 1图片 2视频" align="center" prop="mediaType" />-->
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
<!-- </el-table>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="cancel" :disabled="repeatSubmit"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
</el-dialog>
</div>
</template>
<script>
import { listHighlightsList, getHighlightsList } from "@/api/backstage/highlights";
export default {
name: "Highlights",
data() {
return {
// 不可重复提交
repeatSubmit: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 表格数据
highlightsList: [],
vedioList:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
assessmentTitle: null,
isTypical: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
listHighlightsList(this.queryParams).then(response => {
this.highlightsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
jobTargetId: null,
totalLevelName: null,
assessmentTitle: null,
isTypical: null,
submitTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
// handleSelectionChange(selection) {
// this.ids = selection.map(item => item.id)
// this.single = selection.length!==1
// this.multiple = !selection.length
// },
/** 详情按钮操作 */
handleDetails(row) {
this.$router.push("/highlightsDetails/"+row.jobTargetId)
// this.reset();
// const id = row.jobTargetId || this.ids
// getHighlightsList(id).then(response => {
// this.open = true;
// this.title = "亮点详情";
// this.vedioList = response.rows;
// this.total = response.total;
// this.loading = false;
// });
},
}
};
</script>
<template>
<div class="app-container">
<div>
<el-button icon="arrow-left" class="pan-back-btn" @click="back">
&lt; 返回
</el-button>
</div>
<el-table v-loading="loading" :data="vedioList" >
<!-- <el-table-column label="id" align="center" prop="id" />-->
<!-- <el-table-column label="任务问题id" align="center" prop="jobTargetId" />-->
<!-- <el-table-column label="整改任务id" align="center" prop="jobId" />-->
<!-- <el-table-column label="项目id" align="center" prop="projectId" />-->
<el-table-column label="提交类型" >
<template slot-scope="scope">
<span v-if="scope.row.submitType==1">现场</span>
<span v-if="scope.row.submitType==2">整改</span>
<span v-if="scope.row.submitType==3">复核</span>
</template>
</el-table-column>
<el-table-column label="图片或者视频" >
<template slot-scope="scope" >
<el-popover placement="bottom" trigger="click" v-if="scope.row.mediaType == 1" > <!--trigger属性值:hover、click、focus 和 manual-->
<div>
<img v-show="scope.row.url != undefined" :src="scope.row.url" style="width: 320px;height: 200px">
</div>
<img slot="reference" v-show="scope.row.url != undefined" :src="scope.row.url" :style="{width: '180px',height: '100px'}" />
</el-popover>
<div style="display: flex" v-if="scope.row.mediaType == 2">
<video @click="videoshow(scope.row.url)" slot="reference" v-show="scope.row.url != undefined" :src="scope.row.url" :style="{width: '38%',height: '100px'}" />
</div>
</template>
</el-table-column>
<!-- <el-table-column label="媒体类型 1图片 2视频" align="center" prop="mediaType" />-->
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<!-- 视频放大播放框 -->
<div class="videoplay" v-if="isplayvideo">
<div class="videoplay_box">
<video :src="videosrc" controls></video>
<div class="close" @click="closevideo"><img src="../../../assets/image/close2.svg" alt=""></div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.videoplay{
width: 100%;
height: 100%;
background: rgba(0,0,0,.5);
position: fixed;
left: 0;
top: 0;
display: flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: -webkit-flex;
align-items:center;
justify-content:center;
z-index: 300;
.videoplay_box{
width: 500px;
position: relative;
.close{
width: 32px;
height: 32px;
position: absolute;
top: 18px;
right: 18px;
img{
width: 100%;
display: block;
}
}
video{
width: 100%;
object-fit: fill;
outline: none;
}
}
}
</style>
<script>
import {getProblemsList } from "@/api/backstage/problems";
export default {
name: "Problems",
data() {
return {
// 遮罩层
loading: true,
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 表格数据
vedioList:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 是否播放视频
isplayvideo:false,
};
},
created() {
this.getProblemsDetails();
},
methods: {
/** 查询列表 */
getProblemsDetails() {
this.loading = true;
const id = this.$route.params.id
getProblemsList(id).then(response => {
this.open = true;
this.title = "问题详情";
this.vedioList = response.rows;
console.log("this.vedioList===="+this.vedioList)
this.total = response.total;
this.loading = false;
});
},
back() {
this.$router.push("/problemsIndex/")
},
videoshow(src){
this.videosrc=src
this.isplayvideo=true
},
closevideo(){
this.isplayvideo=false
},
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="考核标题" prop="assessmentTitle">
<el-input
v-model="queryParams.assessmentTitle"
placeholder="请输入考核标题"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否典型" prop="isTypical">
<el-select v-model="queryParams.isTypical" placeholder="请选择是否典型" clearable size="small">
<el-option label="是" value="1" />
<el-option label="否" value="0" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="cyan" 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-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleDetails"-->
<!-- v-hasPermi="['backstage:problems:details']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="problemsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="id" align="center" prop="id" />-->
<el-table-column label="考核地方" align="center" prop="totalLevelName" />
<el-table-column label="考核标题" align="center" prop="assessmentTitle" />
<el-table-column label="问题数量" align="center" prop="numbers" />
<el-table-column label="是否典型" align="center" >
<template slot-scope="scope">
<span v-if="scope.row.isTypical==1"></span>
<span v-if="scope.row.isTypical==0"></span>
</template>
</el-table-column>
<el-table-column label="提交时间" align="center" prop="submitTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.numbers>0"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDetails(scope.row)"
v-hasPermi="['backstage:problems:details']"
>详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改区域对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<!-- <el-table v-loading="loading" :data="vedioList" >-->
<!-- <el-table-column label="id" align="center" prop="id" />-->
<!-- <el-table-column label="任务问题id" align="center" prop="jobTargetId" />-->
<!-- <el-table-column label="整改任务id" align="center" prop="jobId" />-->
<!-- <el-table-column label="项目id" align="center" prop="projectId" />-->
<!-- <el-table-column label="提交类型" >-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.submitType==1">现场</span>-->
<!-- <span v-if="scope.row.submitType==2">整改</span>-->
<!-- <span v-if="scope.row.submitType==3">复核</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="图片或者视频url地址" align="center" prop="url" />-->
<!-- <el-table-column label="媒体类型 1图片 2视频" align="center" prop="mediaType" />-->
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
<!-- </el-table>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="cancel" :disabled="repeatSubmit"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
</el-dialog>
</div>
</template>
<script>
import { listProblemsList, getProblemsList } from "@/api/backstage/problems";
export default {
name: "Problems",
data() {
return {
// 不可重复提交
repeatSubmit: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 表格数据
problemsList: [],
vedioList:[],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
assessmentTitle: null,
isTypical: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
listProblemsList(this.queryParams).then(response => {
this.problemsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
jobTargetId: null,
totalLevelName: null,
assessmentTitle: null,
isTypical: null,
submitTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
// handleSelectionChange(selection) {
// this.ids = selection.map(item => item.id)
// this.single = selection.length!==1
// this.multiple = !selection.length
// },
/** 详情按钮操作 */
handleDetails(row) {
this.$router.push("/problemsDetails/"+row.jobTargetId)
// this.reset();
// const id = row.jobTargetId || this.ids
// getproblemsList(id).then(response => {
// this.open = true;
// this.title = "亮点详情";
// this.vedioList = response.rows;
// this.total = response.total;
// this.loading = false;
// });
},
}
};
</script>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论