Skip to content

Commit 82c7c31

Browse files
committed
v1.0.2:增加首页最新评论和留言,邮件回复留言
1 parent 8f5c367 commit 82c7c31

33 files changed

+484
-199
lines changed

.idea/workspace.xml

Lines changed: 48 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

v1.0.2/mg-admin/src/App.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default {
3030
//z-index: 99999!important;
3131
}
3232
33-
.v-dropdown-container,.el-popover {
33+
.v-dropdown-container,.el-popover,.el-color-picker__panel {
3434
z-index: 100000!important;
3535
}
3636
//.el-message{

v1.0.2/mg-admin/src/api/modules/sys.index.api.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ import {post} from "../../../../mg-client/src/api/http";
33

44
export const getArticleGroup = (data) =>
55
post("/mg/api/public/web/article/group", data);
6+
//查询当日最新评论和留言
7+
export const queryNowMsgAndComments = (data) =>
8+
post("/mg/api/public/admin/home/queryNowMsgAndComments", data);

v1.0.2/mg-admin/src/api/modules/sys.message.api.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,6 @@ export const dirMessageCreate = (data) =>
1414

1515
export const dirMessageUpdate = (data) =>
1616
post("/mg/api/private/message/update", data);
17+
18+
export const messageReply = (data) =>
19+
post("/mg/api/private/message/replyMsg", data);

v1.0.2/mg-admin/src/components/common/mk-upload.vue

Lines changed: 62 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -25,78 +25,77 @@
2525
</template>
2626

2727
<script>
28-
import util from "@/libs/util";
29-
import MkImgList from "@/components/common/mk-img-list";
28+
import util from "@/libs/util";
29+
import MkImgList from "@/components/common/mk-img-list";
3030
31-
export default {
32-
name: "mk-upload",
33-
components: {MkImgList},
34-
props:{
35-
img:{
36-
type:String,
37-
default(){
38-
return ''
39-
}
31+
export default {
32+
name: "mk-upload",
33+
components: {MkImgList},
34+
props: {
35+
img: {
36+
type: String,
37+
default() {
38+
return ''
39+
}
40+
}
41+
},
42+
data() {
43+
return {
44+
action: `${process.env.VUE_APP_API}/api/private/upload`,
45+
headers: {
46+
authorization: util.cookies.get('token',)
47+
},
48+
tempImg: '',
49+
fileList: []
50+
};
51+
},
52+
watch: {
53+
'img': {
54+
immediate: true,
55+
handler: function (val) {
56+
// //回填
57+
this.tempImg = val
4058
}
4159
},
42-
data() {
43-
return {
44-
action:`${process.env.VUE_APP_API}/api/private/upload`,
45-
headers:{
46-
authorization:util.cookies.get('token',)
47-
},
48-
tempImg:'',
49-
fileList: []
50-
};
60+
},
61+
model: {
62+
prop: 'img',
63+
event: 'getImg'
64+
},
65+
mounted() {
66+
this.headers.authorization = util.cookies.get('token',)
67+
},
68+
methods: {
69+
beforeUpload(file) {
70+
const isLt2M = file.size / 1024 / 1024 < 20;
71+
if (!(file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/jpg' || file.type === 'image/webp' || file.type === 'image/jpeg')) {
72+
this.$message.error('请上传格式为image/png, image/gif, image/jpg, image/jpeg,image/webp的图片');
73+
return false
74+
}
75+
if (!isLt2M) {
76+
this.$message.error('上传头像图片大小不能超过 20MB!');
77+
}
78+
return isLt2M;
5179
},
52-
watch:{
53-
'img':{
54-
immediate:true,
55-
handler:function(val){
56-
// //回填
57-
this.tempImg = val
58-
}
59-
},
80+
handleSuccess(res, file) {
81+
this.tempImg = res.data.url
82+
this.$emit('getImg', res.data.url)
83+
this.$toast.success(res.meta.msg)
6084
},
61-
model:{
62-
prop:'img',
63-
event:'getImg'
85+
handleRemove(file, fileList) {
86+
console.log(file, fileList);
6487
},
65-
mounted() {
66-
this.headers.authorization = util.cookies.get('token',)
67-
88+
handlePreview(file) {
89+
console.log(file);
6890
},
69-
methods: {
70-
beforeUpload(file){
71-
const isLt2M = file.size / 1024 / 1024 < 20;
72-
if (!(file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/jpg' || file.type === 'image/jpeg')) {
73-
this.$message.error('请上传格式为image/png, image/gif, image/jpg, image/jpeg的图片');
74-
return
75-
}
76-
if (!isLt2M) {
77-
this.$message.error('上传头像图片大小不能超过 20MB!');
78-
}
79-
return isLt2M;
80-
},
81-
handleSuccess(res, file){
82-
this.tempImg=res.data.url
83-
this.$emit('getImg',res.data.url)
84-
this.$toast.success(res.meta.msg)
85-
},
86-
handleRemove(file, fileList) {
87-
console.log(file, fileList);
88-
},
89-
handlePreview(file) {
90-
console.log(file);
91-
},
92-
handleExceed(files, fileList) {
93-
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
94-
},
95-
beforeRemove(file, fileList) {
96-
return this.$confirm(`确定移除 ${file.name}`);
97-
}
91+
handleExceed(files, fileList) {
92+
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
93+
},
94+
beforeRemove(file, fileList) {
95+
return this.$confirm(`确定移除 ${file.name}`);
9896
}
9997
}
98+
}
10099
</script>
101100

102101
<style scoped>

v1.0.2/mg-admin/src/libs/utils.request.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,8 @@ service.interceptors.request.use(
3030
// 响应拦截
3131
service.interceptors.response.use(
3232
response => {
33-
3433
// dataAxios 是 axios 返回数据中的 data
3534
const dataAxios = response.data
36-
3735
// 这个状态码是和后端约定的
3836
const {status} = dataAxios.meta
3937
if (status === undefined) {

v1.0.2/mg-admin/src/router/routes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ const frameIn = [
138138
'POST /api/private/message/list',
139139
'POST /api/private/message/delete',
140140
'POST /api/private/message/update',
141+
'POST /api/private/message/replyMsg',
141142
],
142143
},
143144
component: _import('client/dir-message-info')

v1.0.2/mg-admin/src/views/client/dir-message-info.vue

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,6 @@
33
<d2-container type="full" v-if="!show.edit&&!show.view">
44
<section class="data-list-box">
55
<mk-search-form :model="query" v-if="permBtn.queryButton" @search="goPage(1)">
6-
7-
<el-form-item class="inline-item" prop="id">
8-
<el-input v-model.trim="query.params.id" @clear="goPage(1)" @keyup.native.enter="goPage(1)"
9-
clearable placeholder="输入ID搜索"
10-
size="mini"></el-input>
11-
</el-form-item>
12-
136
<el-form-item class="inline-item" prop="email">
147
<el-input v-model.trim="query.params.email" @clear="goPage(1)" @keyup.native.enter="goPage(1)"
158
clearable placeholder="输入留言邮箱搜索"
@@ -39,9 +32,17 @@
3932
:dis-edit="!permBtn.updateButton"
4033
@edit="goEdit(scope.row)"
4134
@delete="goDelete(scope.row)">
35+
<el-button size="mini" type="primary" @click="goReply(scope.row)" v-if="permBtn.replyButton">回复</el-button>
4236
</mk-tool-button>
4337
</template>
4438
</el-table-column>
39+
<el-table-column v-else-if="field.key=='status'" :align="field.align" :label="field.name"
40+
:width="field.width" :fixed="field.fixed">
41+
<template slot-scope="scope">
42+
<el-tag type="success" v-if="scope.row.status">已回复</el-tag>
43+
<el-tag type="info" v-else>待回复</el-tag>
44+
</template>
45+
</el-table-column>
4546
<el-table-column
4647
v-else
4748
show-overflow-tooltip
@@ -55,6 +56,7 @@
5556
</template>
5657

5758
</mk-el-table>
59+
5860
<mk-pagination :current-page="query.offset" :page-size="query.limit"
5961
:data-size="temp.dataSize" @go="goPage" @changePageSize="changePageSize"/>
6062
</section>
@@ -71,11 +73,12 @@ import {dirMessageDelete, dirMessageList} from "@/api/modules/sys.message.api";
7173
import GetMessageInfo from "./get-message-info";
7274
import ViewMessageInfo from "./view-message-info";
7375
import util from "@/libs/util";
76+
import ReplyMessageInfo from "@/views/client/reply-message-info";
7477
7578
7679
export default {
7780
name: 'dir-message-info',
78-
components: {ViewMessageInfo, GetMessageInfo,},
81+
components: {ReplyMessageInfo, ViewMessageInfo, GetMessageInfo,},
7982
data() {
8083
return {
8184
show: {
@@ -102,6 +105,7 @@ export default {
102105
queryButton:false,
103106
deleteButton:false,
104107
updateButton:false,
108+
replyButton:false,
105109
},
106110
//返回数据列表
107111
datas: [],
@@ -125,13 +129,13 @@ export default {
125129
item_data: {},
126130
//列表渲染数据列
127131
fields: [
128-
{key: 'toolButton', name: '操作', show: true, align: "center", width: '220', enableSort: false, fixed: 'right'},
129-
130-
{key: 'id', name: 'ID', show: true, align: "center", enableSort: false, fixed: false},
132+
{key: 'status', name: '状态', show: true, align: "center", enableSort: false, fixed: 'right'},
133+
{key: 'toolButton', name: '操作', show: true, align: "center", width: '260', enableSort: false, fixed: 'right'},
131134
{key: 'email', name: '留言邮箱', show: true, align: "center", enableSort: false, fixed: false},
132135
{key: 'content', name: '留言内容', show: true, align: "center", enableSort: false, fixed: false},
133136
{key: 'createdAt', name: '创建时间', show: true, align: "center", enableSort: false, fixed: false},
134-
{key: 'updatedAt', name: '更新时间', show: true, align: "center", enableSort: false, fixed: false},]
137+
{key: 'updatedAt', name: '更新时间', show: true, align: "center", enableSort: false, fixed: false},
138+
]
135139
}
136140
},
137141
watch: {
@@ -154,10 +158,14 @@ export default {
154158
this.permBtn.queryButton = true;
155159
this.permBtn.deleteButton = true;
156160
this.permBtn.updateButton = true;
161+
this.permBtn.replyButton = true;
157162
} else {
158163
if (perms.includes('POST /api/private/message/create')) {
159164
this.permBtn.createButton = true;
160165
}
166+
if (perms.includes('POST /api/private/message/replyMsg')) {
167+
this.permBtn.replyButton = true;
168+
}
161169
if (perms.includes('POST /api/private/message/list')) {
162170
this.permBtn.queryButton = true;
163171
}
@@ -253,6 +261,14 @@ export default {
253261
this.$toast.showSmallModal('查看留言', ViewMessageInfo, {viewData: data || {}}, data => {
254262
// console.log(data)
255263
})
264+
} ,
265+
//回复留言
266+
goReply(data) {
267+
this.$toast.showBigModal('回复留言', ReplyMessageInfo, {updateData: data}, data => {
268+
if (data) {
269+
this.getDataList()
270+
}
271+
})
256272
}
257273
}
258274
}

0 commit comments

Comments
 (0)