|
@@ -114,10 +114,29 @@
|
|
|
<copy-text>{{ scope.row.studentName }}</copy-text>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+
|
|
|
<el-table-column align="center" prop="type" label="回访类型">
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" prop="purpose" label="回访目的">
|
|
|
</el-table-column>
|
|
|
+
|
|
|
+ <el-table-column align="center" prop="name" label="回访图片">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="flexBox">
|
|
|
+ <el-image
|
|
|
+ v-if="scope.row.attachments"
|
|
|
+ style="width: 60px; height: 60px"
|
|
|
+ fit="cover"
|
|
|
+ :src="scope.row.attachments.split(',')[0]"
|
|
|
+ :previewSrcList="scope.row.attachments.split(',')"
|
|
|
+ >
|
|
|
+ </el-image>
|
|
|
+ <p v-if="scope.row.attachments.split(',').length - 1 > 0">
|
|
|
+ +{{ scope.row.attachments.split(",").length - 1 }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column align="center" prop="visitTime" label="回访时间">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
@@ -149,36 +168,51 @@
|
|
|
</div>
|
|
|
<el-dialog
|
|
|
title="回访详情"
|
|
|
- width="700px"
|
|
|
+ width="740px"
|
|
|
v-if="detailVisible"
|
|
|
:visible.sync="detailVisible"
|
|
|
>
|
|
|
- <descriptions :column="2" v-if="activeRow" class="returnDialog">
|
|
|
- <descriptions-item label="老师姓名:">{{
|
|
|
- activeRow.teacherName
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="所属分部:">{{
|
|
|
- activeRow.organName
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="角色:">{{
|
|
|
- activeRow.visiterType | visiterType
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="学生姓名:">{{
|
|
|
- activeRow.studentName
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="回访类型:">{{
|
|
|
- activeRow.type
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="回访目的:">{{
|
|
|
- activeRow.purpose
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="回访情况:" :span="6">{{
|
|
|
- activeRow.overview
|
|
|
- }}</descriptions-item>
|
|
|
- <descriptions-item label="家长反馈" :span="6">{{
|
|
|
- activeRow.feedback
|
|
|
- }}</descriptions-item>
|
|
|
- </descriptions>
|
|
|
+ <div>
|
|
|
+ <descriptions :column="2" v-if="activeRow" class="returnDialog">
|
|
|
+ <descriptions-item label="老师姓名:">{{
|
|
|
+ activeRow.teacherName
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="所属分部:">{{
|
|
|
+ activeRow.organName
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="角色:">{{
|
|
|
+ activeRow.visiterType | visiterType
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="学生姓名:">{{
|
|
|
+ activeRow.studentName
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="回访类型:">{{
|
|
|
+ activeRow.type
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="回访目的:">{{
|
|
|
+ activeRow.purpose
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="回访情况:" :span="6">{{
|
|
|
+ activeRow.overview
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="家长反馈" :span="6">{{
|
|
|
+ activeRow.feedback
|
|
|
+ }}</descriptions-item>
|
|
|
+ <descriptions-item label="回访图片" :span="6">
|
|
|
+ <div class="list" v-if="imageList.length > 0">
|
|
|
+ <div v-for="item in imageList" :key="item.url" class="item">
|
|
|
+ <el-image
|
|
|
+ :src="item"
|
|
|
+ :preview-src-list="imageList.map((item) => item)"
|
|
|
+ class="img"
|
|
|
+ >
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <empty v-else />
|
|
|
+ </descriptions-item>
|
|
|
+ </descriptions>
|
|
|
+ </div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -213,6 +247,7 @@ export default {
|
|
|
page_size: [10, 20, 40, 50], // 选择限制显示条数
|
|
|
},
|
|
|
tableList: [],
|
|
|
+ imageList: [],
|
|
|
detailVisible: false,
|
|
|
activeRow: null,
|
|
|
};
|
|
@@ -240,7 +275,7 @@ export default {
|
|
|
this.getList();
|
|
|
if (this.$route.query.search || this.$route.query.timer) {
|
|
|
// console.log( )
|
|
|
- console.log('进来了')
|
|
|
+ console.log("进来了");
|
|
|
resetQuery(this, { timer: undefined, search: undefined });
|
|
|
}
|
|
|
},
|
|
@@ -299,6 +334,7 @@ export default {
|
|
|
},
|
|
|
lookDetail(row) {
|
|
|
this.activeRow = row;
|
|
|
+ this.imageList = this.activeRow.attachments.split(",");
|
|
|
this.detailVisible = true;
|
|
|
},
|
|
|
changeTimer(val) {
|
|
@@ -315,6 +351,7 @@ export default {
|
|
|
detailVisible(val) {
|
|
|
if (!val) {
|
|
|
this.activeRow = null;
|
|
|
+ this.imageList = [];
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -337,4 +374,40 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+.flexBox {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+.img-container {
|
|
|
+ margin: 10px auto;
|
|
|
+}
|
|
|
+.item {
|
|
|
+ width: 150px;
|
|
|
+ margin-top: 10px;
|
|
|
+ margin-right: 10px;
|
|
|
+ display: inline-block;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.img {
|
|
|
+ width: 150px;
|
|
|
+ height: 150px;
|
|
|
+}
|
|
|
+.ctrl-bar {
|
|
|
+ background-color: rgba(0, 0, 0, 0.45);
|
|
|
+ height: 30px;
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ width: 100%;
|
|
|
+ z-index: 1;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ align-items: center;
|
|
|
+ padding: 0 15px;
|
|
|
+ i {
|
|
|
+ color: #fff;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|