163 lines
5.8 KiB
JavaScript
163 lines
5.8 KiB
JavaScript
|
|
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');
|
|||
|
|
|
|||
|
|
|
|||
|
|
|