ZhiYeJianKang_PeiXun/Song.Site/Manage/Course/Scripts/Courses_Message.js
2025-02-20 15:41:53 +08:00

163 lines
5.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var mesvue = new Vue({
data: {
outlines: [], //当前课程的章节列表(树形)
messages: [], //咨询留言
msgobj: {}, //当前咨询留言的对象
dialogFormVisible: false, //弹窗
couid: $api.querystring("couid"),
olid: $api.querystring("olid"),
size: 15, //每页多少条
index: 1, //第几页
total: 0, //总数
loading: false //右侧章节列表加载中
},
computed: {
//表格的最大高度
tableHeight: function () {
var area = document.getElementById("editRight").offsetHeight - 30;
return area;
}
},
created: function () {
var couid = $api.querystring("couid");
$api.get("Outline/tree", { couid: couid }).then(function (req) {
mesvue.outlines = req.data.result;
mesvue.outlineClick($api.querystring("olid"), null);
}).catch(function (err) {
})
},
methods: {
//章节点击事件
outlineClick: function (olid, event) {
//判断是否是当前章节
if (event != null) {
var classlist = event.target.classList;
for (var t in classlist) {
if (classlist[t] == 'current') return;
}
}
olid = olid == null || olid == '' ? 0 : olid;
var url = $api.setpara("olid", olid);
mesvue.olid = olid;
history.pushState({}, null, url);
mesvue.index = 1;
mesvue.msgGet(olid);
},
handleCurrentChange: function (index) {
if (index > 0) mesvue.index = index;
mesvue.msgGet($api.querystring("olid"));
},
//获取当前章节的留言信息
msgGet: function (olid) {
//计算每页多少行
var area = document.getElementById("editRight").offsetHeight - 70;
mesvue.size = Math.floor(area / 48);
var vm = mesvue;
$api.get('Message/Pager', { 'couid': vm.couid, 'olid': olid, 'search': '', 'size': vm.size, 'index': vm.index }).then(function (req) {
if (req.data.success) {
var result = req.data.result;
mesvue.messages = result;
mesvue.total = req.data.total;
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
//表格行的点击事件
rowClick: function (datarow, column, event) {
mesvue.dialogFormVisible = true;
mesvue.msgobj = datarow;
},
//修改留言
msgEdit: function () {
$api.get('Message/Update',{'msid':mesvue.msgobj.Msg_Id,'msg':mesvue.msgobj.Msg_Context}).then(function(req){
if(req.data.success){
var result=req.data.result;
mesvue.$message({
type: 'success',
message: '操作成功!'
});
mesvue.dialogFormVisible = false;
mesvue.handleCurrentChange(-1);
}else{
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
//删除留言
msgDel: function () {
var msg = '此操作将永久该项(“' + mesvue.msgobj.Msg_Context + '”) <br/>是否继续?'
this.$confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
dangerouslyUseHTMLString: true,
type: 'warning'
}).then((btn) => {
if (btn != 'confirm') return;
$api.get('Message/Delete', { 'msid': mesvue.msgobj.Msg_Id }).then(function (req) {
if (req.data.success) {
var result = req.data.result;
mesvue.$message({
type: 'success',
message: '删除成功!'
});
mesvue.dialogFormVisible = false;
mesvue.handleCurrentChange(-1);
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
}).catch(() => { });
}
},
//过滤器
filters: {
//日期
date: function (val, fmt) {
if ($api.getType(val) != 'Date') return val;
return val.Format(fmt);
}
},
components: {
"msgcount": {
// 声明 props用于向组件传参
props: ['olid'],
data: function () {
return {
count: 0, //章节下留言的数据
loading: true, //预载中
open: false //是否打开方法列表
}
},
created: function () {
var th = this;
var couid = $api.querystring("couid");
$api.get('Message/Count', { 'couid': couid, 'olid': th.olid }).then(function (req) {
if (req.data.success) {
var result = req.data.result;
th.count = result;
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
template: "<span> \
{{count}}\
</span>"
}
}
});
mesvue.$mount('#app');