|
@@ -1,42 +1,59 @@
|
|
|
<template>
|
|
|
<div class='infoWrap'>
|
|
|
<div class="left">
|
|
|
- <div class="unread" @click="onLookMessage('all')">全部</div>
|
|
|
- <div class="unread" @click="onLookMessage('0')"> <img :src="img.boxicon"
|
|
|
+ <div class="unread"
|
|
|
+ @click="onLookMessage('all')">全部</div>
|
|
|
+ <div class="unread"
|
|
|
+ @click="onLookMessage('0')"> <img :src="img.boxicon"
|
|
|
alt=""> 未读消息
|
|
|
- <div class="count" v-if="noReadMessage >= 1">{{ noReadMessage }}</div>
|
|
|
+ <div class="count"
|
|
|
+ v-if="noReadMessage >= 1">{{ noReadMessage }}</div>
|
|
|
</div>
|
|
|
- <div class="read" @click="onLookMessage('1')">
|
|
|
+ <div class="read"
|
|
|
+ @click="onLookMessage('1')">
|
|
|
<img :src="img.bookicon"
|
|
|
alt="">
|
|
|
已读消息</div>
|
|
|
</div>
|
|
|
<div class="middle">
|
|
|
- <div class="msgItem" :class="[isCheckMessage == item.id ? 'active' : '']" @click="onClickRead(item)" v-for="(item, index) in dataList" :key="index">
|
|
|
+ <div class="msgItem"
|
|
|
+ :class="[isCheckMessage == item.id ? 'active' : '']"
|
|
|
+ @click="onClickRead(item)"
|
|
|
+ v-for="(item, index) in dataList"
|
|
|
+ :key="index">
|
|
|
<!-- <h6 class="type"></h6> -->
|
|
|
<h4 class="name">
|
|
|
{{ item.memo.type == 'VIPGROUP' ? '学员退课' : '学生退团' }}
|
|
|
<span class='time'>{{ item.createOn }}</span>
|
|
|
- <div class="dot" v-if="item.readStatus == 0"></div>
|
|
|
+ <div class="dot"
|
|
|
+ v-if="item.readStatus == 0"></div>
|
|
|
</h4>
|
|
|
<p class='msg'>{{ item.content }}</p>
|
|
|
</div>
|
|
|
<el-pagination style="text-align: right"
|
|
|
- small v-if="dataList.length > 0"
|
|
|
- @current-change="onChange"
|
|
|
- :hide-on-single-page="pageInfo.isSinglePage"
|
|
|
- layout="prev, pager, next"
|
|
|
- :total="pageInfo.total">
|
|
|
+ small
|
|
|
+ v-if="dataList.length > 0"
|
|
|
+ @current-change="onChange"
|
|
|
+ :hide-on-single-page="pageInfo.isSinglePage"
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :total="pageInfo.total">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <div class="right" v-if="showRight">
|
|
|
- <div v-if="showMessage.type == 'VIPGROUP'" kay="group">
|
|
|
+ <div class="right"
|
|
|
+ v-if="showRight">
|
|
|
+ <div v-if="showMessage.type == 'VIPGROUP'"
|
|
|
+ kay="group">
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<h3 class="title">学员退课
|
|
|
- <el-tag v-if="showMessage.studentApplyRefunds.status == 'DONE'" type="success" effect="plain">已处理</el-tag>
|
|
|
- <el-tag v-if="showMessage.studentApplyRefunds.status == 'REJECT'" type="danger" effect="plain">已拒绝</el-tag>
|
|
|
- <span class="time">时间: {{ showMessage.studentApplyRefunds.createTime }}</span></h3>
|
|
|
+ <el-tag v-if="showMessage.studentApplyRefunds.status == 'DONE'"
|
|
|
+ type="success"
|
|
|
+ effect="plain">已处理</el-tag>
|
|
|
+ <el-tag v-if="showMessage.studentApplyRefunds.status == 'REJECT'"
|
|
|
+ type="danger"
|
|
|
+ effect="plain">已拒绝</el-tag>
|
|
|
+ <span class="time">时间: {{ showMessage.studentApplyRefunds.createTime }}</span>
|
|
|
+ </h3>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
@@ -57,35 +74,48 @@
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-input :disabled="showMessage.studentApplyRefunds.status != 'ING'"
|
|
|
- type="textarea" :rows="8" placeholder="请输入内容"
|
|
|
- v-model="remark"> </el-input>
|
|
|
+ type="textarea"
|
|
|
+ :rows="8"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ v-model="remark"> </el-input>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="4"> 实退金额: </el-col>
|
|
|
- <el-col :span="20">
|
|
|
+ <el-col :span="20">
|
|
|
<el-input :disabled="showMessage.studentApplyRefunds.status != 'ING'"
|
|
|
- type="number" placeholder="请输入内容"
|
|
|
- v-model="actualAmount">
|
|
|
- <template slot="append">元</template>
|
|
|
- </el-input>
|
|
|
+ type="number"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ v-model="actualAmount">
|
|
|
+ <template slot="append">元</template>
|
|
|
+ </el-input>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row v-permission="'musicGroupQuit/quitMusicGroup'">
|
|
|
- <el-col :span="24" v-if="showMessage.studentApplyRefunds.status == 'ING'">
|
|
|
- <el-button type="primary" @click="onSubmit(showMessage.studentApplyRefunds.id, showMessage.type, 'DONE')">确认</el-button>
|
|
|
- <el-button type="danger" @click="onSubmit(showMessage.studentApplyRefunds.id, showMessage.type, 'REJECT')">拒绝</el-button>
|
|
|
+ <el-col :span="24"
|
|
|
+ v-if="showMessage.studentApplyRefunds.status == 'ING'">
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="onSubmit(showMessage.studentApplyRefunds.id, showMessage.type, 'DONE')">确认</el-button>
|
|
|
+ <el-button type="danger"
|
|
|
+ @click="onSubmit(showMessage.studentApplyRefunds.id, showMessage.type, 'REJECT')">拒绝</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
|
|
|
- <div v-else kay="group">
|
|
|
+ <div v-else
|
|
|
+ kay="group">
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<h3 class="title">乐团名称
|
|
|
- <el-tag v-if="showMessage.status == 'APPROVED'" type="success" effect="plain">已处理</el-tag>
|
|
|
- <el-tag v-if="showMessage.status == 'DENIED'" type="danger" effect="plain">已拒绝</el-tag>
|
|
|
- <span class="time">时间: {{ showMessage.createTime }}</span></h3>
|
|
|
+ <el-tag v-if="showMessage.status == 'APPROVED'"
|
|
|
+ type="success"
|
|
|
+ effect="plain">已处理</el-tag>
|
|
|
+ <el-tag v-if="showMessage.status == 'DENIED'"
|
|
|
+ type="danger"
|
|
|
+ effect="plain">已拒绝</el-tag>
|
|
|
+ <span class="time">时间: {{ showMessage.createTime }}</span>
|
|
|
+ </h3>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
@@ -102,14 +132,19 @@
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-input :disabled="showMessage.status != 'PROCESSING'"
|
|
|
- type="textarea" :rows="8" placeholder="请输入内容"
|
|
|
- v-model="remark"> </el-input>
|
|
|
+ type="textarea"
|
|
|
+ :rows="8"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ v-model="remark"> </el-input>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row v-permission="'vipGroupManage/applyRefundAudit'">
|
|
|
- <el-col :span="24" v-if="showMessage.status == 'PROCESSING'">
|
|
|
- <el-button type="primary" @click="onSubmitGroup(showMessage, 'APPROVED')">确认</el-button>
|
|
|
- <el-button type="danger" @click="onSubmitGroup(showMessage, 'DENIED')">拒绝</el-button>
|
|
|
+ <el-col :span="24"
|
|
|
+ v-if="showMessage.status == 'PROCESSING'">
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="onSubmitGroup(showMessage, 'APPROVED')">确认</el-button>
|
|
|
+ <el-button type="danger"
|
|
|
+ @click="onSubmitGroup(showMessage, 'DENIED')">拒绝</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
@@ -122,8 +157,8 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import { queryCountOfUnread, sysMessageList, setRead,
|
|
|
- queryApplyRefundDetail, applyRefundAudit, musicGroupQuit, quitMusicGroup } from '@/api/journal'
|
|
|
+import { queryCountOfUnread, sysMessageList, setRead,
|
|
|
+ queryApplyRefundDetail, applyRefundAudit, musicGroupQuit, quitMusicGroup} from '@/api/journal'
|
|
|
export default {
|
|
|
data () {
|
|
|
return {
|
|
@@ -151,29 +186,29 @@ export default {
|
|
|
showMessage: {}
|
|
|
}
|
|
|
},
|
|
|
- mounted() {
|
|
|
+ mounted () {
|
|
|
this.__init()
|
|
|
this.sysMessageList()
|
|
|
},
|
|
|
methods: {
|
|
|
- __init() {
|
|
|
+ __init () {
|
|
|
// 未读消息
|
|
|
queryCountOfUnread().then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
- if(res.data && res.data.MUSICGROUP) {
|
|
|
+ if (res.code == 200) {
|
|
|
+ if (res.data && res.data.MUSICGROUP) {
|
|
|
this.noReadMessage = res.data.MUSICGROUP
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- sysMessageList() { // 列表
|
|
|
+ sysMessageList () { // 列表
|
|
|
sysMessageList({
|
|
|
group: 'MUSICGROUP',
|
|
|
rows: this.pageInfo.limit,
|
|
|
page: this.pageInfo.page,
|
|
|
readStatus: this.pageInfo.readStatus
|
|
|
}).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
res.data.rows.forEach(item => {
|
|
|
item.memo = JSON.parse(item.memo)
|
|
|
})
|
|
@@ -182,8 +217,8 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- onLookMessage(type) { // 查看对应的数据
|
|
|
- if(type == "all") {
|
|
|
+ onLookMessage (type) { // 查看对应的数据
|
|
|
+ if (type == "all") {
|
|
|
this.pageInfo.readStatus = null
|
|
|
} else {
|
|
|
this.pageInfo.readStatus = type
|
|
@@ -194,18 +229,18 @@ export default {
|
|
|
this.isCheckMessage = null
|
|
|
this.sysMessageList()
|
|
|
},
|
|
|
- onChange(page) { // 分页
|
|
|
+ onChange (page) { // 分页
|
|
|
this.pageInfo.page = page
|
|
|
this.sysMessageList()
|
|
|
},
|
|
|
- onClickRead(item) {
|
|
|
+ onClickRead (item) {
|
|
|
this.isCheckMessage = item.id
|
|
|
- if(item.readStatus == 1) {
|
|
|
+ if (item.readStatus == 1) {
|
|
|
this.getItemInfo(item.memo)
|
|
|
} else {
|
|
|
setRead({ id: item.id }).then(res => {
|
|
|
let result = res.data
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
item.readStatus = 1
|
|
|
this.getItemInfo(item.memo)
|
|
|
this.noReadMessage--
|
|
@@ -213,10 +248,10 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
- getItemInfo(memo) {
|
|
|
- if(memo.type == 'VIPGROUP') {
|
|
|
+ getItemInfo (memo) {
|
|
|
+ if (memo.type == 'VIPGROUP') {
|
|
|
queryApplyRefundDetail({ id: memo.Id }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
this.showRight = true
|
|
|
this.showMessage = res.data
|
|
|
this.showMessage.type = memo.type
|
|
@@ -227,9 +262,9 @@ export default {
|
|
|
this.$message.error(res.msg)
|
|
|
}
|
|
|
})
|
|
|
- } else if(memo.type == 'MUSICGROUP') {
|
|
|
+ } else if (memo.type == 'MUSICGROUP') {
|
|
|
musicGroupQuit({ id: memo.Id }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
this.showRight = true
|
|
|
this.showMessage = res.data
|
|
|
this.showMessage.type = memo.type
|
|
@@ -240,8 +275,8 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
- onSubmitGroup(params, status) {
|
|
|
- if(!this.remark || this.remark == '') {
|
|
|
+ onSubmitGroup (params, status) {
|
|
|
+ if (!this.remark || this.remark == '') {
|
|
|
this.$message.error('请输入退团理由')
|
|
|
return
|
|
|
}
|
|
@@ -252,19 +287,19 @@ export default {
|
|
|
reason: this.remark
|
|
|
}).then(res => {
|
|
|
this.$message.success('处理成功')
|
|
|
-
|
|
|
+
|
|
|
this.getItemInfo({
|
|
|
Id: params.id,
|
|
|
type: params.type
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
- onSubmit(id, str, type) {
|
|
|
- if(!this.remark || this.remark == '') {
|
|
|
+ onSubmit (id, str, type) {
|
|
|
+ if (!this.remark || this.remark == '') {
|
|
|
this.$message.error('请输入退课理由')
|
|
|
return
|
|
|
}
|
|
|
- if(!this.actualAmount && typeof this.actualAmount == 'string') {
|
|
|
+ if (!this.actualAmount && typeof this.actualAmount == 'string') {
|
|
|
this.$message.error('退课金额输入有误')
|
|
|
return
|
|
|
}
|
|
@@ -274,9 +309,9 @@ export default {
|
|
|
status: type,
|
|
|
amount: this.actualAmount
|
|
|
}).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
+ if (res.code == 200) {
|
|
|
this.$message.success('处理成功')
|
|
|
-
|
|
|
+
|
|
|
this.getItemInfo({
|
|
|
Id: id,
|
|
|
type: str
|
|
@@ -310,7 +345,9 @@ export default {
|
|
|
top: 6px;
|
|
|
}
|
|
|
}
|
|
|
- .unread, .read, .recovery {
|
|
|
+ .unread,
|
|
|
+ .read,
|
|
|
+ .recovery {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
.unread {
|
|
@@ -402,7 +439,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.right {
|
|
|
- border: 1px solid #e4e8eb;
|
|
|
+ border: 1px solid #e4e8eb;
|
|
|
margin-left: 25px;
|
|
|
position: relative;
|
|
|
overflow: auto;
|