|
@@ -4,13 +4,18 @@
|
|
|
<el-form :inline="true" :model="searchInfo" class="demo-form-inline">
|
|
|
<el-form-item label="站点类型">
|
|
|
<el-select v-model="searchInfo.siteType" clearable placeholder="请选择">
|
|
|
- <el-option v-for="item in siteType" :label="item.label" :value="item.value"/>
|
|
|
+ <el-option
|
|
|
+ v-for="dict in dict.type.site_type"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="处理状态">
|
|
|
<el-select v-model="searchInfo.status" clearable placeholder="请选择">
|
|
|
- <el-option label="已处理" value="Processed"/>
|
|
|
- <el-option label="未处理" value="Untreated"/>
|
|
|
+ <el-option label="已处理" value="Processed" />
|
|
|
+ <el-option label="未处理" value="Untreated" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
@@ -29,37 +34,43 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<el-table
|
|
|
- ref="multipleTable"
|
|
|
- border
|
|
|
- stripe
|
|
|
- style="width: 100%"
|
|
|
- tooltip-effect="dark"
|
|
|
- :data="tableData"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
+ ref="multipleTable"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ style="width: 100%"
|
|
|
+ tooltip-effect="dark"
|
|
|
+ :data="tableData"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
>
|
|
|
<el-table-column label="日期" width="180">
|
|
|
<template #default="scope">{{ formatDate(scope.row.CreatedAt) }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="发布人" prop="oper" width="120"/>
|
|
|
- <el-table-column label="站点" prop="siteName" width="220"/>
|
|
|
- <el-table-column label="站点类型" prop="siteType" width="120"/>
|
|
|
- <el-table-column label="已登录查阅次数" prop="count" width="120"/>
|
|
|
- <el-table-column label="一类单位" prop="unitName" width="120"/>
|
|
|
- <el-table-column label="分数" prop="integral" width="120"/>
|
|
|
- <el-table-column label="处理状态" prop="status" width="120">
|
|
|
+ <el-table-column label="发布人" prop="oper" />
|
|
|
+ <el-table-column label="站点" prop="siteName" />
|
|
|
+ <el-table-column label="站点类型" prop="siteType">
|
|
|
+ <template #default="scope">
|
|
|
+ <dict-tag :options="dict.type.site_type" :value="scope.row.siteType" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="已登录查阅次数" prop="count" />
|
|
|
+ <el-table-column label="一类单位" prop="unitName" />
|
|
|
+ <el-table-column label="扣评分" prop="integral">
|
|
|
+ <template #default="scope">{{ scope.row.integral/10 }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="处理状态" prop="status">
|
|
|
<template #default="scope">
|
|
|
<el-tag v-show="scope.row.status == 'Untreated'" type="warning">未处理</el-tag>
|
|
|
<el-tag v-show="scope.row.status == 'Processed'" type="success">已处理</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="责任部门" prop="department" width="120"/>
|
|
|
- <el-table-column label="操作">
|
|
|
+ <el-table-column label="责任部门" prop="department" />
|
|
|
+ <el-table-column label="操作" width="300">
|
|
|
<template #default="scope">
|
|
|
<el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- class="table-button"
|
|
|
- @click="updateProblemInfo(scope.row)"
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ class="table-button"
|
|
|
+ @click="updateProblemInfo(scope.row)"
|
|
|
>查看详情
|
|
|
</el-button>
|
|
|
<el-button type="danger" icon="el-icon-delete" size="mini" @click="deleteRow(scope.row)">删除</el-button>
|
|
@@ -70,33 +81,33 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :current-page="page"
|
|
|
- :page-size="pageSize"
|
|
|
- :page-sizes="[10, 30, 50, 100]"
|
|
|
- :style="{float:'right',padding:'20px'}"
|
|
|
- :total="total"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- @size-change="handleSizeChange"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :current-page="page"
|
|
|
+ :page-size="pageSize"
|
|
|
+ :page-sizes="[10, 30, 50, 100]"
|
|
|
+ :style="{float:'right',padding:'20px'}"
|
|
|
+ :total="total"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
/>
|
|
|
- <el-dialog title="选择通知人" v-model="noticeList" width="500px" append-to-body>
|
|
|
+ <el-dialog v-model="noticeList" title="选择通知人" width="500px" append-to-body>
|
|
|
<el-form v-model="noticeUser" label-width="120px">
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="选择通知人" :rules="{required: true, message: '请选择通知人'}">
|
|
|
<el-select
|
|
|
- v-model="noticeUser.userList"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- multiple
|
|
|
- size="small"
|
|
|
- style="width: 240px"
|
|
|
+ v-model="noticeUser.userList"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ multiple
|
|
|
+ size="small"
|
|
|
+ style="width: 240px"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="id in Object.keys(userIds)"
|
|
|
- :key="id"
|
|
|
- :label="userIds[id]"
|
|
|
- :value="id"
|
|
|
+ v-for="id in Object.keys(userIds)"
|
|
|
+ :key="id"
|
|
|
+ :label="userIds[id]"
|
|
|
+ :value="id"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -109,9 +120,10 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<el-dialog
|
|
|
- title="已阅详情"
|
|
|
- v-model="dialogVisibleRead"
|
|
|
- width="30%">
|
|
|
+ v-model="dialogVisibleRead"
|
|
|
+ title="已阅详情"
|
|
|
+ width="30%"
|
|
|
+ >
|
|
|
<div style="text-align: center;padding-bottom: 20px">
|
|
|
<span>{{ readMsg }}</span>
|
|
|
</div>
|
|
@@ -119,26 +131,28 @@
|
|
|
<el-button type="primary" @click="closeRead">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog ref="problemInfo" v-model="dialogFormVisible" id="problemInfo" :before-close="closeDialog" title="问题详情">
|
|
|
+ <el-dialog id="problemInfo" ref="problemInfo" v-model="dialogFormVisible" :before-close="closeDialog" title="问题详情">
|
|
|
<el-form :model="formData" label-position="right" label-width="80px">
|
|
|
<el-card class="box-card">
|
|
|
<el-descriptions title="基本信息" border :column="2">
|
|
|
<el-descriptions-item label="发布人">{{ formData.oper }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="站点名称">{{ formData.siteName }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="站点位置">{{ formData.position }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="站点类型">{{ formData.siteType }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="站点类型"><dict-tag :options="dict.type.site_type" :value="formData.siteType " /></el-descriptions-item>
|
|
|
<el-descriptions-item label="处理状态">
|
|
|
<el-tag v-show="formData.status == 'Untreated'" type="warning">未处理</el-tag>
|
|
|
<el-tag v-show="formData.status == 'Processed'" type="success">已处理</el-tag>
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item label="责任部门">{{ formData.department }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="一类单位">{{ formData.unitName }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="扣评分">{{ formData.integral/10 }}</el-descriptions-item>
|
|
|
<el-descriptions-item span="2" label="问题备注">{{ formData.remark }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
</el-card>
|
|
|
<el-card class="box-card">
|
|
|
<el-descriptions title="问题列表" :column="1" direction="vertical">
|
|
|
<el-descriptions-item v-for="item in formData.matter.split('|')">
|
|
|
- {{ matterList[item] != undefined ? matterList[item].label : '' }}
|
|
|
+ {{ matterList[item] != undefined ? matterList[item] : '' }}
|
|
|
</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
</el-card>
|
|
@@ -146,20 +160,20 @@
|
|
|
<el-descriptions title="问题图片/视频" direction="vertical">
|
|
|
<el-descriptions-item label="问题图片(点击图片查看更多)">
|
|
|
<el-image
|
|
|
- style="width: 260px; height: 240px"
|
|
|
- :src="(formData.imgList.length>0?formData.imgList[0]:'')"
|
|
|
- :preview-src-list="formData.imgList"
|
|
|
+ style="width: 260px; height: 240px"
|
|
|
+ :src="(formData.imgList.length>0?formData.imgList[0]:'')"
|
|
|
+ :preview-src-list="formData.imgList"
|
|
|
/>
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item label="问题视频">
|
|
|
<span v-show="formData.video.length<1">无视频</span>
|
|
|
<video
|
|
|
- v-show="formData.video.length>0"
|
|
|
- style="object-fit:fill"
|
|
|
- controls
|
|
|
- width="400"
|
|
|
- height="240"
|
|
|
- :src="formData.video"
|
|
|
+ v-show="formData.video.length>0"
|
|
|
+ style="object-fit:fill"
|
|
|
+ controls
|
|
|
+ width="400"
|
|
|
+ height="240"
|
|
|
+ :src="formData.video"
|
|
|
>
|
|
|
您的浏览器不支持Video标签。
|
|
|
</video>
|
|
@@ -172,9 +186,9 @@
|
|
|
<el-descriptions-item label="处理内容">{{ formData.handText }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="处理图片(点击图片查看更多)">
|
|
|
<el-image
|
|
|
- style="width: 260px; height: 240px"
|
|
|
- :src="(formData.handImgList.length>0?formData.handImgList[0]:'')"
|
|
|
- :preview-src-list="formData.handImgList"
|
|
|
+ style="width: 260px; height: 240px"
|
|
|
+ :src="(formData.handImgList.length>0?formData.handImgList[0]:'')"
|
|
|
+ :preview-src-list="formData.handImgList"
|
|
|
/>
|
|
|
</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
@@ -195,12 +209,13 @@ import {
|
|
|
exportExcel, sendUserProblemInfo, getReadCountList
|
|
|
} from '@/api/problemInfo' // 此处请自行替换地址
|
|
|
import infoList from '@/mixins/infoList'
|
|
|
-import {getDict} from '@/utils/dictionary'
|
|
|
-import {getUserPList} from "@/api/user";
|
|
|
+import { getDict } from '@/utils/dictionary'
|
|
|
+import { getUserPList } from '@/api/user'
|
|
|
|
|
|
export default {
|
|
|
name: 'ProblemInfo',
|
|
|
mixins: [infoList],
|
|
|
+ dicts: ['site_type'],
|
|
|
data() {
|
|
|
return {
|
|
|
listApi: getProblemInfoList,
|
|
@@ -271,14 +286,14 @@ export default {
|
|
|
async openUser(row) {
|
|
|
this.sendId = row.ID
|
|
|
this.noticeList = true
|
|
|
- getUserPList({page: 1, pageSize: 9999}).then(res => {
|
|
|
+ getUserPList({ page: 1, pageSize: 9999 }).then(res => {
|
|
|
for (const user in res.data.list) {
|
|
|
this.userIds[res.data.list[user].ID] = res.data.list[user].userName
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
sendUser() {
|
|
|
- sendUserProblemInfo({ID: this.noticeUser.userList, ProblemID: this.sendId}).then(res => {
|
|
|
+ sendUserProblemInfo({ ID: this.noticeUser.userList, ProblemID: this.sendId }).then(res => {
|
|
|
console.log(res)
|
|
|
this.closeSend()
|
|
|
})
|
|
@@ -290,16 +305,16 @@ export default {
|
|
|
this.sendId = 0
|
|
|
},
|
|
|
showReadInfo(row) {
|
|
|
- getReadCountList({page: 1, pageSize: 9999, problemId: row.ID}).then(res => {
|
|
|
- this.dialogVisibleRead = true;
|
|
|
+ getReadCountList({ page: 1, pageSize: 9999, problemId: row.ID }).then(res => {
|
|
|
+ this.dialogVisibleRead = true
|
|
|
this.readMsg = ''
|
|
|
for (const read in res.data.list) {
|
|
|
- this.readMsg=this.readMsg.concat(res.data.list[read].userName + ':' + res.data.list[read].count + '次、')
|
|
|
+ this.readMsg = this.readMsg.concat(res.data.list[read].userName + ':' + res.data.list[read].count + '次、')
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
closeRead() {
|
|
|
- this.dialogVisibleRead = false;
|
|
|
+ this.dialogVisibleRead = false
|
|
|
this.readMsg = ''
|
|
|
},
|
|
|
async onDelete() {
|
|
@@ -315,7 +330,7 @@ export default {
|
|
|
this.multipleSelection.map(item => {
|
|
|
ids.push(item.ID)
|
|
|
})
|
|
|
- const res = await deleteProblemInfoByIds({ids})
|
|
|
+ const res = await deleteProblemInfoByIds({ ids })
|
|
|
if (res.code === 0) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
@@ -329,7 +344,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async updateProblemInfo(row) {
|
|
|
- const res = await findProblemInfo({ID: row.ID})
|
|
|
+ const res = await findProblemInfo({ ID: row.ID })
|
|
|
this.type = 'update'
|
|
|
if (res.code === 0) {
|
|
|
this.formData = res.data.reproblemInfo
|
|
@@ -343,7 +358,10 @@ export default {
|
|
|
} else {
|
|
|
this.formData.handImgList = []
|
|
|
}
|
|
|
- this.matterList = res.data.reproblemInfo.matterList.sysDictionaryDetails
|
|
|
+ const temp = res.data.reproblemInfo.matterList
|
|
|
+ for (const index in temp) {
|
|
|
+ this.matterList[temp[index].ID] = temp[index].problem
|
|
|
+ }
|
|
|
this.dialogFormVisible = true
|
|
|
}
|
|
|
},
|
|
@@ -372,7 +390,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async deleteProblemInfo(row) {
|
|
|
- const res = await deleteProblemInfo({ID: row.ID})
|
|
|
+ const res = await deleteProblemInfo({ ID: row.ID })
|
|
|
if (res.code === 0) {
|
|
|
this.$message({
|
|
|
type: 'success',
|