This commit is contained in:
@fawn-nine
2024-07-29 17:04:57 +08:00
parent 4d7fbcc0c4
commit e1c94388bd
7 changed files with 2034 additions and 50 deletions

View File

@@ -66,6 +66,9 @@ const mainRoutes = {
{ path: '/course-sociologyList', component: _import('modules/course/sociologyList'), name: 'course-sociologyList', meta: { title: '国学标签列表', isTab: true } },
{ path: '/userCourse', component: _import('modules/user/userCourse'), name: 'userCourse', meta: { title: '用户课程列表', isTab: true } },
{ path: '/workOrder', component: _import('modules/workOrderLIst'), name: 'workOrder', meta: { title: '工单列表', isTab: true } },
// { path: '/miniClassList', component: _import('modules/miniClass/miniClassList'), name: 'miniClass', meta: { title: '班级列表', isTab: true } },
{ path: '/miniClassList8', component: _import('modules/miniClass/miniClassList8'), name: 'miniClassList8', meta: { title: 'miniClassList8', isTab: true } },
{ path: '/ClassType', component: _import('modules/miniClass/miniClassType'), name: 'ClassType', meta: { title: '班级类型管理', isTab: true } },
],
beforeEnter (to, from, next) {
let token = Vue.cookie.get('token')

View File

@@ -69,8 +69,13 @@
>
<template slot-scope="scope">
<div>
<span style="font-weight:bold; font-size:16px">{{ scope.row.title }}</span><br>
<span style="color:#999">( 创建时间{{ scope.row.createTime}} )</span>
<span style="font-weight:bold; font-size:16px">{{
scope.row.title
}}</span
><br />
<span style="color:#999"
>( 创建时间{{ scope.row.createTime }} )</span
>
</div>
</template>
</el-table-column>
@@ -159,7 +164,7 @@
align="center"
label="排序"
>
</el-table-column>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
@@ -183,15 +188,44 @@
@click="addOrUpdateHandle(scope.row)"
>修改</el-button
>
<el-button type="text" size="small" @click="showLinkTags(scope.row)"
>查看引用</el-button
>
<el-button
type="text"
size="small"
@click="showLinkTags(scope.row)"
>查看引用</el-button
>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除</el-button
>
<!-- <el-dropdown>
<span
class="el-dropdown-link"
style="color:#17B3A3 ; cursor:pointer"
>
更多操作<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-button
type="text"
size="small"
@click="showLinkTags(scope.row)"
>查看引用</el-button
>
</el-dropdown-item> -->
<!-- <el-dropdown-item>
<el-button
@click="showDirectorShow(scope.row)"
type="text"
size="small"
>教务主任管理</el-button
>
</el-dropdown-item> -->
<!-- </el-dropdown-menu>
</el-dropdown> -->
</div>
</template>
</el-table-column>
@@ -211,9 +245,9 @@
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
:relationProducts = relationProducts
@pclose = "pclose"
@showProTable = "showProTable"
:relationProducts="relationProducts"
@pclose="pclose"
@showProTable="showProTable"
@refreshDataList="getDataList"
></add-or-update>
<commonShopTable
@@ -230,25 +264,26 @@
>
<div>
<div v-if="resList.length > 0">
<div style="margin-bottom:20px">当前课程共有 {{resList.length}} 个标签引用</div>
<div style="margin-bottom:20px">
当前课程共有 {{ resList.length }} 个标签引用
</div>
<div v-for="(item, index) in resList" :key="index">
{{index + 1}} {{ item.title }}
{{ index + 1 }} {{ item.title }}
<span v-if="item.isLast != 1">
<span v-for="(item1, index1) in item.children" :key="index1"
> > {{ item1.title }}
<span v-for="(item1, index1) in item.children" :key="index1">
> {{ item1.title }}
<span v-if="item1.isLast != 1">
<span
v-for="(item2, index2) in item1.children"
:key="index2"
> > {{ item2.title }}
<span v-for="(item2, index2) in item1.children" :key="index2">
> {{ item2.title }}
<span v-if="item2.isLast != 1">
<span
v-for="(item3, index3) in item2.children"
:key="index3"
> > {{ item3.title }}</span
>
</span>
<span
v-for="(item3, index3) in item2.children"
:key="index3"
>
> {{ item3.title }}</span
>
</span>
</span>
</span>
</span>
</span>
@@ -260,6 +295,65 @@
<el-button type="primary" @click="closeLink"> </el-button>
</span>
</el-dialog>
<!-- 教务主任设置 -->
<el-dialog
title="教务主任管理"
:visible.sync="directorShow"
width="40%"
@close="closeDirector"
>
<div class="">
<h3>当前操作的课程{{ optCourse.title }}</h3>
<el-form ref="director" :model="director" label-width="100px">
<el-form-item label="主任设置:" prop="director">
<el-select
v-model="director.director"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="副主任设置:" prop="ddirector">
<el-select
v-model="director.ddirector"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
<span v-show="isSameOne" style="color:red"
>主任和副主任不可以是同一个人</span
>
</el-form-item></el-form
>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveDirector"> </el-button>
</span>
</el-dialog>
</div>
</template>
@@ -270,6 +364,15 @@ export default {
data() {
return {
selectType: [],
director: {
director: null,
ddirector: null
},
directorShow: false,
remoteMethodLoading: false,
miniClassVisible: false,
personSeting: false,
userList: [],
options: [
{
id: "all",
@@ -287,11 +390,11 @@ export default {
children: []
}
],
courseId:"0",
courseId: "0",
dataForm: {
key: "",
key: ""
},
relationProducts:[],
relationProducts: [],
query: {
type: "",
categoryId: "",
@@ -311,7 +414,8 @@ export default {
sociologyList: "/master/courseSociology/getCourseSociologyList" //国学
},
resList: [],
resListVisible: false
resListVisible: false,
optCourse: {}
};
},
components: {
@@ -328,28 +432,176 @@ export default {
this.getTreeList(this.urlList.sociologyList, 2);
},
methods: {
delPro(val){
console.log(val,this.relationProducts)
let list = this.relationProducts
delPro(val) {
console.log(val, this.relationProducts);
let list = this.relationProducts;
this.relationProducts = list.slice(1, 1);
},
saveDirector() {
if(this.director.director == this.director.ddirector && this.director.director != null){
this.$message.error('主任与副主任不能是同一人')
return
}
var director = 0;
var ddirector = 0;
if (this.director.director) {
director = this.director.director;
}
if (this.director.ddirector) {
ddirector = this.director.ddirector;
}
this.$http({
url: this.$http.adornUrl("/master/course/editCourseDirector"),
method: "post",
data: this.$http.adornData({
courseId: this.optCourse.id,
director: director, //主任清空时传0
ddirector: ddirector //副主任清空时传0
})
})
.then(res => {
if (res.data.code == 0) {
this.$message.success("操作成功!");
this.closeDirector();
}
})
.catch(e => {
this.$message.error("获取课程信息失败");
_info = null;
});
},
closeDirector() {
this.directorShow = false;
setTimeout(() => {
this.$nextTick(() => {
this.$refs["director"].resetFields();
this.director = {
director: null,
ddirector: null
};
this.userList = []
this.optCourse = {};
console.log("director关闭了吗", this.director);
})
},200)
this.relationProducts = list.slice(1,1)
},
pclose(){
this.relationProducts = []
this.courseId = null
console.log('关闭了 ')
async showDirectorShow(data) {
this.optCourse = data;
var obj = await this.getDirectorInfo(data.id);
console.log("教务信息", obj);
if (obj) {
// console.log("有绑定", obj.data.director.tel);
if (obj.data.director != null) {
var list = this.userList.map( item => { return item.id})
console.log('list',list)
var i = list.find(function(elem){
return elem == obj.data.director.id;
});
if(!i){
this.userList.push({
id:obj.data.director.id,
tel:obj.data.director.tel
})
}
this.director.director = obj.data.director.id;
}
else {
// this.director.director = null;
}
if (obj.data.ddirector != null) {
console.log('jinlailema')
var list = this.userList.map( item => { return item.id})
console.log('list',list)
var i = list.find(function(elem){
return elem == obj.data.ddirector.id;
});
if(!i){
this.userList.push({
id:obj.data.ddirector.id,
tel:obj.data.ddirector.tel
})
}
this.director.ddirector = obj.data.ddirector.id;
}
else {
// this.ddirector.director = null;
}
} else {
console.log("没有绑定");
this.director = {
director: null,
ddirector: null
};
}
this.directorShow = true;
},
linkList(data){
console.log('父级',data)
if(data && data.length > 0){
this.relationProducts = data
// 检索教务信息
getDirectorInfo(id) {
return new Promise((resolve, reject) => {
this.$http({
url: this.$http.adornUrl("/master/course/getCourseDirector"),
method: "post",
data: this.$http.adornData({
courseId: id
})
})
.then(res => {
resolve(res);
// if (res.code === 0) {
// _info = res.director;
// console.log('教务信息++++res', res.director)
// }
})
.catch(e => {
this.$message.error("获取课程信息失败");
reject(e);
});
});
},
// 搜索用户列表
remoteMethod(query) {
if (query !== "") {
this.remoteMethodLoading = true;
this.$http({
url: this.$http.adornUrl("/book/user/getUserList"),
method: "post",
data: this.$http.adornData({
page: 1,
limit: 10,
key: query
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.userList = data.user.records;
this.remoteMethodLoading = false;
}
})
.catch(e => {
this.userList = [];
this.remoteMethodLoading = false;
});
} else {
this.userList = [];
}
},
showProTable(data){
console.log('data',data)
pclose() {
this.relationProducts = [];
this.courseId = null;
console.log("关闭了 ");
},
linkList(data) {
console.log("父级", data);
if (data && data.length > 0) {
this.relationProducts = data;
}
},
showProTable(data) {
console.log("data", data);
this.$nextTick(() => {
this.$refs.commonShopTable.open();
});
@@ -359,7 +611,6 @@ export default {
this.resList = [];
},
showLinkTags(row) {
this.$http({
url: this.$http.adornUrl("/master/course/getCourseLableLinkList"),
method: "post",
@@ -370,7 +621,6 @@ export default {
this.resListVisible = true;
if (res.data.code == 0 && res.data.resList.length > 0) {
this.resList = res.data.resList;
}
// console.log(row, "row" , res.data.resList,this.resList);
});
@@ -404,7 +654,7 @@ export default {
},
// 获取数据列表
getDataList() {
this.relationProducts = []
this.relationProducts = [];
var data = {
page: this.pageIndex,
limit: this.pageSize,
@@ -466,8 +716,8 @@ export default {
},
// 新增 / 修改
addOrUpdateHandle(row) {
this.addOrUpdateVisible = true;
row ? this.courseId = row.id : ''
this.addOrUpdateVisible = true;
row ? (this.courseId = row.id) : "";
// this.courseId = row.id
this.$nextTick(() => {
this.$refs.addOrUpdate.init(row);
@@ -592,6 +842,15 @@ export default {
this.getDataList();
});
}
},
computed: {
isSameOne() {
if(this.director.ddirector == this.director.director && this.director.ddirector != null){
return true
}else{
return false
}
}
}
};
</script>
@@ -601,4 +860,7 @@ export default {
color: #149f97;
}
}
.flexbox {
display: flex;
}
</style>

View File

@@ -0,0 +1,411 @@
<template>
<!-- 小班教学页面 -->
<div class="">
<el-drawer
size="600px"
title="班级模型"
style="font-size:16px; font-weight:bold;"
:visible.sync="drawer"
direction="ltr"
:before-close="handleClose"
>
<div style="padding:26px">
<el-form
:model="ClassModelForm"
:rules="ClassModelRules"
ref="ClassModelForm"
label-width="100px"
class="demo-ruleForm"
>
<div style="margin:15px 0; font-size:14px; color:#606266">
模型类型:
</div>
<el-form-item label="" prop="ClassModelForm" label-width="0">
<el-select v-model="ClassModelForm.type" placeholder="请选择">
<el-option
v-for="item in typeOptions"
:key="item.label"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<div style="margin:15px 0; font-size:14px; color:#606266">
名称:<span style="color:red">*</span>
</div>
<el-form-item label="" prop="title" label-width="0">
<el-input v-model="ClassModelForm.title"></el-input>
</el-form-item>
<div style="margin:15px 0; font-size:14px; color:#606266">
课程设置: <span style="color:red">*</span>
<span v-if="ClassModelForm.type == '0'" style="color:#999"
>请选择一门课程</span
>
<span v-else style="color:#999">可选择多门课程</span>
</div>
<el-form-item label="" prop="courseIds" label-width="0">
<el-select
class="courseSelect"
size="medium"
v-model="ClassModelForm.courseIds"
filterable
remote
multiple
clearable
reserve-keyword
placeholder="请输入课程名"
:remote-method="getCourseList"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in courseList"
:key="item.title"
:label="item.title"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<div style="margin:15px 0; font-size14px; color:#606266">
教研室成员
</div>
<div style="border:1px solid #eee; padding:10px; margin-bottom:15px">
<el-form-item label="主任" prop="directorId">
<!-- <el-input v-model="ClassModelForm.member.directorId"></el-input> -->
<el-select
v-model="ClassModelForm.directorId"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="副主任" prop="ddirectorId">
<el-select
v-model="ClassModelForm.ddirectorId"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div style="text-align:center; margin-top:15px">
<el-button type="primary" @click="submitModel" v-if="ClassModelForm.id"> </el-button>
<el-button type="primary" @click="submitModel" v-else>立即创建</el-button>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
import { quillEditor } from "vue-quill-editor";
import global from "../../common/common.vue"; //引入共用组间
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗,斜体,下划线,删除线
["blockquote", "code-block"], //引用,代码块
[{ header: 1 }, { header: 2 }], // 几级标题
[{ list: "ordered" }, { list: "bullet" }], // 有序列表,无序列表
[{ script: "sub" }, { script: "super" }], // 下角标,上角标
[{ indent: "-1" }, { indent: "+1" }], // 缩进
[{ direction: "rtl" }], // 文字输入方向
[{ size: ["small", false, "large", "huge"] }], // 字体大小
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
[{ color: [] }, { background: [] }], // 颜色选择
[
{
font: [
"SimSun",
"SimHei",
"Microsoft-YaHei",
"KaiTi",
"FangSong",
"Arial"
]
}
], // 字体
[{ align: [] }], // 居中
["clean"], // 清除样式,
["link", "image"] // 上传图片、上传视频
];
export default {
props: ["classModel"],
data() {
return {
baseUrl: global.baseUrl,
drawer: true,
ClassModelRules: {
title: [{ required: true, message: "必填项", trigger: "blur" }],
courseIds: [{ required: true, message: "必填项", trigger: "blur" }]
},
remoteMethodLoading: false,
ClassModelForm: {
title: "",
id: undefined,
content: "",
courseIds: undefined,
type: "0",
directorId: null, // 主任
ddirectorId: null // 副主任
},
courseList: [],
typeOptions: [
{
value: "0",
label: "普通小班"
},
{
value: "1",
label: "联合班"
},
{
value: "2",
label: "精英班"
}
],
userList: [],
// 富文本编辑器配置
editorOption: {
modules: {
history: {
delay: 1000,
maxStack: 50,
userOnly: false
},
toolbar: {
container: toolbarOptions,
handlers: {
image: function(value) {
if (value) {
// 调用element的图片上传组件
document.querySelector(".editorUploader input").click();
} else {
this.quill.format("image", false);
}
}
}
}
},
placeholder: "请输入正文"
}
};
},
mounted() {
// console.log('激活了')
if (this.classModel) {
console.log("编辑", this.classModel);
this.$nextTick(() => {
this.ClassModelForm = this.classModel;
if (this.classModel.courseList.length > 0) {
this.courseList = this.classModel.courseList;
var list = [...this.classModel.courseList];
var ids = list.map(item => {
return item.id;
});
this.ClassModelForm.courseIds = ids;
}
if (this.classModel.director) {
this.userList.push(this.classModel.director);
}
if(this.classModel.directorId == 0){
this.ClassModelForm.directorId = null
}
if (this.classModel.ddirector) {
this.userList.push(this.classModel.ddirector);
}
if(this.classModel.ddirectorId == 0){
this.ClassModelForm.ddirectorId = null
}
});
} else {
console.log("添加");
}
// this.getCourseList();
},
methods: {
submitModel() {
console.log(
"this.ClassModelForm.ddirectorId",
this.ClassModelForm.ddirectorId
);
if(this.ClassModelForm.directorId == (this.ClassModelForm.ddirectorId + "") && this.ClassModelForm.ddirectorId != null){
this.$message.error('主任和副主任不可为同一人!')
return
}
this.$refs['ClassModelForm'].validate((valid) => {
if (valid) {
if (this.ClassModelForm.type == '0' && this.ClassModelForm.courseIds.length > 1){
this.$message.error('普通小班模型只可以绑定一门课程哦')
return
}
var url = ''
this.ClassModelForm.id ? url = '/common/class/editClassModel' : url = '/common/class/addClassModel'
this.$http({
url: this.$http.adornUrl(url),
method: "post",
data: this.$http.adornData({
id: this.ClassModelForm.id,
title: this.ClassModelForm.title,
directorId: this.ClassModelForm.directorId,
ddirectorId: this.ClassModelForm.ddirectorId + "",
type: this.ClassModelForm.type, // 班类型 0小班 1联合班 2精英班
courseIds: this.ClassModelForm.courseIds.join(",")
})
})
.then(({ data }) => {
if (data && data.code == 0) {
this.$message.success("操作成功");
this.$nextTick(() => {
this.handleClose();
});
}else{
this.$message.error(data.msg);
}
})
}
})
},
shwoUpMsg() {
this.$message.success("正在上传");
},
getCourseList(query) {
this.$http({
url: this.$http.adornUrl("/master/course/getCourseList"),
method: "post",
data: this.$http.adornData({
page: 1,
limit: 10,
coursetitle: query, //关键字
type: 1,
medicalId: "",
sociologyId: ""
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.courseList = data.page.records;
} else {
this.courseList = [];
}
})
.catch(e => {
this.$message.error("获取课程失败");
});
},
contentUploadSuccess(res, file) {
// console.log(res)
// console.log(file)
let quill = this.$refs.myQuillEditor.quill;
// 如果上传成功
if (res) {
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片res为服务器返回的图片链接地址
quill.insertEmbed(length, "image", res.url);
// 调整光标到最后
quill.setSelection(length + 1);
this.$message.success("图片插入成功");
} else {
this.$message.error("图片插入失败!");
}
},
// 失去焦点事件
onEditorBlur(quill) {
// console.log('editor blur!', quill)
},
// 获得焦点事件
onEditorFocus(quill) {
//console.log('editor focus!', quill)
},
// 准备富文本编辑器
onEditorReady(quill) {
// console.log('editor ready!', quill)
},
remoteMethod(query) {
if (query !== "") {
this.remoteMethodLoading = true;
this.$http({
url: this.$http.adornUrl("/book/user/getUserList"),
method: "post",
data: this.$http.adornData({
page: 1,
limit: 10,
key: query
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.userList = data.user.records;
this.remoteMethodLoading = false;
}
})
.catch(e => {
this.userList = [];
this.remoteMethodLoading = false;
});
} else {
this.userList = [];
}
},
handleClose() {
this.$nextTick(() => {
this.$refs["ClassModelForm"].resetFields();
this.userList = [];
this.courseList = [];
});
this.$emit("handleClose");
}
},
components: {
quillEditor
},
computed: {
// isMultiple() {
// console.log('this.ClassModelForm.type',this.ClassModelForm.type)
// if (this.ClassModelForm.type == '0') {
// return false;
// } else {
// return true;
// }
// }
}
};
</script>
<style lang="less" scoped>
.editorUploader {
display: none;
}
.courseSelect {
width: 100% !important;
}
</style>

View File

@@ -0,0 +1,634 @@
<template>
<!-- 小班教学页面 -->
<div class="">
<el-drawer
size="700px"
title="小班管理"
style="font-size:16px; font-weight:bold;"
:visible.sync="drawer"
direction="ltr"
:before-close="handleClose"
>
<div class="btnTag flexbox">
<span @click="mainSet = true" :class="mainSet ? 'acitve' : ''"
>基本信息</span
><span
v-if="miniClassForm.id"
@click="mainSet = false"
:class="!mainSet ? 'acitve' : ''"
>管理成员设置</span
>
</div>
<div style="padding:26px" v-show="mainSet">
<el-form
:model="miniClassForm"
:rules="miniClassRules"
ref="miniClassForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="班级模型" prop="modelId">
<el-select
v-model="miniClassForm.modelId"
filterable
remote
clearable
reserve-keyword
placeholder="请输入模型名称"
:remote-method="modelRemoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in modelList"
:key="item.title"
:label="item.title"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="名称" prop="title">
<el-input v-model="miniClassForm.title"></el-input>
</el-form-item>
<el-form-item label="封面图" prop="icon">
<!-- <el-input v-model="miniClassForm.icon"></el-input> -->
<el-upload
class="avatar-uploader icon-uploader"
:action="baseUrl + '/oss/fileoss'"
:show-file-list="false"
accept=".jpeg,.jpg,.gif,.png"
:on-success="iconhandleAvatarSuccess"
:before-upload="iconbeforeAvatarUpload"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<div style="margin:15px 0; font-size14px; color:#606266">
简介/教学目标
</div>
<el-form-item label="" prop="content" label-width="0">
<el-upload
class="editorUploader"
:action="baseUrl + '/oss/fileoss'"
accept=".jpeg,.jpg,.gif,.png"
:show-file-list="false"
:before-upload="shwoUpMsg"
:on-success="contentUploadSuccess"
>
</el-upload>
<quill-editor
v-model="miniClassForm.content"
ref="myQuillEditor"
:options="editorOption"
@blur="onEditorBlur($event)"
@focus="onEditorFocus($event)"
@ready="onEditorReady($event)"
class="shangpin_editor"
>
</quill-editor>
</el-form-item>
</el-form>
<div style="text-align:right; margin-top:15px">
<el-button type="primary" @click="saveAdd" v-if="!miniClassForm.id"
>创建班级</el-button
>
<el-button type="primary" @click="saveAdd" v-else> </el-button
><el-button type="success" @click="kaiban" v-if="miniClassForm.state == '0'">开班</el-button
><el-button type="warning" @click="jieban" v-if="miniClassForm.state == '1'">结班</el-button>
</div>
</div>
<div v-show="!mainSet">
<div>
<el-form
:model="member"
ref="member"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="班长" prop="monitor">
<!-- <el-input v-model="miniClassForm.member.monitor"></el-input> -->
<el-select
class="userSelect"
v-model="member.monitor"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="副班长" prop="dmonitor">
<el-select
class="userSelect"
v-model="member.dmonitor"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学委" prop="learner">
<el-select
class="userSelect"
v-model="member.learner"
filterable
remote
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="评分员" prop="scorer">
<el-select
class="userSelect"
v-model="member.scorer"
filterable
remote
multiple
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="记分员" prop="counter">
<el-select
class="userSelect"
v-model="member.counter"
filterable
remote
multiple
clearable
reserve-keyword
placeholder="请输入手机号"
:remote-method="remoteMethod"
:loading="remoteMethodLoading"
>
<el-option
v-for="item in userList"
:key="item.tel"
:label="item.tel"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div style="text-align:center">
<el-button type="primary" @click="saveMember"> </el-button>
</div>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
import { quillEditor } from "vue-quill-editor";
import global from "../../common/common.vue"; //引入共用组间
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗,斜体,下划线,删除线
["blockquote", "code-block"], //引用,代码块
[{ header: 1 }, { header: 2 }], // 几级标题
[{ list: "ordered" }, { list: "bullet" }], // 有序列表,无序列表
[{ script: "sub" }, { script: "super" }], // 下角标,上角标
[{ indent: "-1" }, { indent: "+1" }], // 缩进
[{ direction: "rtl" }], // 文字输入方向
[{ size: ["small", false, "large", "huge"] }], // 字体大小
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
[{ color: [] }, { background: [] }], // 颜色选择
[
{
font: [
"SimSun",
"SimHei",
"Microsoft-YaHei",
"KaiTi",
"FangSong",
"Arial"
]
}
], // 字体
[{ align: [] }], // 居中
["clean"], // 清除样式,
["link", "image"] // 上传图片、上传视频
];
export default {
props: ["course", "miniClass"],
data() {
return {
baseUrl: global.baseUrl,
mainSet: true,
drawer: true,
miniClassRules: {
modelId: [{ required: true, message: "必填项", trigger: "blur" }],
title: [{ required: true, message: "必填项", trigger: "blur" }]
},
remoteMethodLoading: false,
imageUrl: "",
miniClassForm: {
title: "",
id: undefined,
content: "",
icon: "",
state: "0",
modelId: undefined
},
member: {
monitor: null, // 班长
dmonitor: null, // 副班长
marker: null, // 评分员
learner: null, //学委
scorer: [], //评分员
counter: [] // 记分员
},
modelList: [],
userList: [],
// 富文本编辑器配置
editorOption: {
modules: {
history: {
delay: 1000,
maxStack: 50,
userOnly: false
},
toolbar: {
container: toolbarOptions,
handlers: {
image: function(value) {
if (value) {
// 调用element的图片上传组件
document.querySelector(".editorUploader input").click();
} else {
this.quill.format("image", false);
}
}
}
}
},
placeholder: "请输入正文"
}
};
},
mounted() {
// console.log('激活了')
if (this.miniClass) {
console.log("编辑小班", this.miniClass);
if (this.miniClass.classModel.id) {
this.modelList.push(this.miniClass.classModel);
}
if (this.miniClass.icon.length > 0) {
this.imageUrl = this.miniClass.icon;
}
this.miniClassForm = this.miniClass;
if(this.miniClass.classUsers.length > 0){
var list = [...this.miniClass.classUsers]
// this.userList = [...this.miniClass.classUsers]
list.forEach( item => {
if(item.role == '1'){
this.member.monitor = item.userId
}
if(item.role == '2'){
this.member.dmonitor = item.userId
}
if(item.role == '3'){
this.member.learner = item.userId
}
if(item.role == '4'){
this.member.scorer.push(item.userId)
console.log(" this.member.scorer", this.member.scorer,item.userId);
}
if(item.role == '5'){
this.member.counter.push(item.userId)
console.log("this.member.counter", this.member.counter,item.userId);
}
item.id = item.userId
this.userList.push(item)
})
// console.log("处理后的",this.userList);
}
} else {
console.log("添加小班");
}
},
methods: {
// 开班
kaiban(){
this.$http({
url: this.$http.adornUrl('/common/class/editClass'),
method: "post",
data: this.$http.adornData({
id: this.miniClassForm.id,
modelId: this.miniClassForm.modelId,
title: this.miniClassForm.title,
icon: this.miniClassForm.icon,
state: '1',
content: this.miniClassForm.content
// createUserid: "10185"
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.$message.success("操作成功");
this.handleClose();
}else{
this.$message.error("操作失败");
}
})
},
// 结班
jieban(){
this.$http({
url: this.$http.adornUrl('/common/class/editClass'),
method: "post",
data: this.$http.adornData({
id: this.miniClassForm.id,
modelId: this.miniClassForm.modelId,
title: this.miniClassForm.title,
icon: this.miniClassForm.icon,
state: '2',
content: this.miniClassForm.content
// createUserid: "10185"
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.$message.success("操作成功");
this.handleClose();
}else{
this.$message.error("操作失败");
}
})
},
// 保存成员信息
saveMember() {
var url = ''
this.$http({
url: this.$http.adornUrl("/common/class/setUserRole"),
method: "post",
data: this.$http.adornData({
classId: this.miniClassForm.id,
monitor: this.member.monitor+'', //班长
dmonitor: this.member.dmonitor+'', //2班长
learner: this.member.learner+'', //学习委员
scorer: this.member.scorer.join(','), //评分员
counter: this.member.counter.join(',') //记分员
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.$message.success("设置成功");
this.handleClose();
}else{
this.$message.error(data.msg);
}
})
},
// 创建/编辑班级
saveAdd() {
this.$refs["miniClassForm"].validate(valid => {
if (valid) {
var url = "";
console.log("this.miniClassForm.id", this.miniClassForm.id);
this.miniClassForm.id
? (url = "/common/class/editClass")
: (url = "/common/class/addClass");
this.$http({
url: this.$http.adornUrl(url),
method: "post",
data: this.$http.adornData({
id: this.miniClassForm.id,
modelId: this.miniClassForm.modelId,
title: this.miniClassForm.title,
icon: this.miniClassForm.icon,
state: this.miniClassForm.state,
content: this.miniClassForm.content
// createUserid: "10185"
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.$message.success("操作成功");
this.handleClose();
}else{
this.$message.error("提交失败");
}
})
} else {
this.$message.error("请完成表单的填写");
}
});
},
// 搜索模型
modelRemoteMethod(query) {
if (query !== "") {
this.remoteMethodLoading = true;
this.$http({
url: this.$http.adornUrl("/common/class/getClassModelList"),
method: "post",
data: this.$http.adornData({
page: 1,
limit: 10,
title: query
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.modelList = data.page.records;
this.remoteMethodLoading = false;
}
})
.catch(e => {
this.modelList = [];
this.remoteMethodLoading = false;
});
} else {
this.modelList = [];
}
},
shwoUpMsg() {
this.$message.success("正在上传");
},
contentUploadSuccess(res, file) {
// console.log(res)
// console.log(file)
let quill = this.$refs.myQuillEditor.quill;
// 如果上传成功
if (res) {
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片res为服务器返回的图片链接地址
quill.insertEmbed(length, "image", res.url);
// 调整光标到最后
quill.setSelection(length + 1);
this.$message.success("图片插入成功");
} else {
this.$message.error("图片插入失败!");
}
},
// 失去焦点事件
onEditorBlur(quill) {
// console.log('editor blur!', quill)
},
iconhandleAvatarSuccess(res, file) {
this.miniClassForm.icon = res.url;
this.imageUrl = URL.createObjectURL(file.raw);
console.log("this.imageUrl", this.imageUrl, file, res);
this.$message.success("上传成功");
},
iconbeforeAvatarUpload(file) {
this.$message.success("正在上传");
},
// 获得焦点事件
onEditorFocus(quill) {
//console.log('editor focus!', quill)
},
// 准备富文本编辑器
onEditorReady(quill) {
// console.log('editor ready!', quill)
},
remoteMethod(query) {
if (query !== "") {
this.remoteMethodLoading = true;
this.$http({
url: this.$http.adornUrl("/book/user/getUserList"),
method: "post",
data: this.$http.adornData({
page: 1,
limit: 10,
key: query
})
})
.then(({ data }) => {
if (data && data.code === 0) {
this.userList = data.user.records;
this.remoteMethodLoading = false;
}
})
.catch(e => {
this.userList = [];
this.remoteMethodLoading = false;
});
} else {
this.userList = [];
}
},
handleClose() {
// this.$nextTick(() => {
this.userList = []
this.$refs["miniClassForm"].resetFields();
// });
this.$emit("handleClose");
}
},
components: {
quillEditor
}
};
</script>
<style lang="less" scoped>
.userSelect {
width: 80% !important;
}
.flexbox {
display: flex;
}
.editorUploader {
display: none;
}
.btnTag {
justify-content: space-between;
margin: 20px 0;
border-bottom: 1px solid #eee;
padding: 20px 0;
span {
display: block;
width: 50%;
text-align: center;
font-size: 30px;
font-weight: normal;
cursor: pointer;
}
span.acitve {
color: #427ce9;
}
}
.icon-uploader {
border: 1px dashed #d9d9d9;
width: 100px;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
</style>

View File

@@ -0,0 +1,352 @@
<template>
<div class="mod-config">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input v-model="dataForm.title" placeholder="请输入小班名称" clearable>
</el-input>
</el-form-item>
<el-form-item label="小班状态">
<el-select v-model="dataForm.state" placeholder="请选择">
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="小班类型">
<el-select v-model="dataForm.type" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
@click="
pageIndex = 1;
getDataList();
"
>查询</el-button
>
<el-button
v-if="isAuth('book:user:save')"
type="primary"
@click="showMiniClass()"
>新开小班</el-button
>
<!-- <el-button v-if="isAuth('book:user:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">批量删除</el-button> -->
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;"
>
<el-table-column
prop="title"
header-align="center"
align="center"
label="小班名称"
>
</el-table-column>
<!-- <el-table-column
prop="createUser.tel"
header-align="center"
align="center"
label="创建人"
>
</el-table-column> -->
<el-table-column
prop="avatar"
header-align="center"
align="center"
label="日期"
>
<template slot-scope="scope">
创建日期:{{scope.row.createTime}}<br/> 开班日期<br/>结班日期<br/>
<!-- <img
v-if="scope.row.avatar && scope.row.avatar != ''"
:src="scope.row.avatar"
width="50"
height="50"
class="tableImg"
/>
<img
v-else
src="../../../../static/img/morenAvavter.png"
width="50"
height="50"
class="tableImg"
/> -->
</template>
</el-table-column>
<el-table-column
prop="state"
header-align="center"
align="center"
label="小班状态"
>
<template slot-scope="scope">{{scope.row.state | getStatus}}</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="showMiniClass(scope.row)"
>修改</el-button
>
<!-- <el-button
type="text"
size="small"
@click="setMember(scope.row)"
>管理成员</el-button
> -->
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
<!-- 小班教学管理 -->
<mini-class
ref="miniClass"
v-if="miniClassVisible"
@handleClose="miniClassHandleClose"
:miniClass="miniClass"
></mini-class>
</div>
</template>
<script>
import miniClass from "./miniClass.vue";
export default {
data() {
return {
setMemberVisible:false,
dataForm: {
title: "",
type:'0',
state:'0'
},
// courseId: {},
course: null,
miniClass: undefined,
// showMiniClass:false,
options: [
{
value: '0',
label: "普通小班"
},
{
value: '1',
label: "联合班"
},
{
value: '2',
label: "精英班"
}
],
statusOptions : [
{
value: '0',
label: "待开班"
},
{
value: '1',
label: "已开班"
},
{
value: '2',
label: "已结班"
}
],
adc: false,
pointForm: {
pointType: 0,
remark: "",
// title:'',
pointAmount: 0
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
total: 0,
dataListLoading: false,
miniClassVisible: false
};
},
filters: {
getStatus: function (value) {
var _str = '454545'
switch (value) {
case '0':
_str = '待开班'
break;
case '1':
_str = '已开班'
break;
case '2':
_str = '已结班'
break;
}
return _str
}
},
components: {
miniClass
},
created() {
// this.courseId = this.$route.query.courseId;
console.log("得到的课程id");
// this.getCourseInfo()
this.getDataList();
},
mounted(){
console.log("得到的课程id");
},
methods: {
setMemberClose(){
},
// 管理人员设置
setMember(data){
},
// 管理员小班管理
showMiniClass(data) {
// console.log('miniClass',data)
if(data){
this.miniClass = data
}
this.miniClassVisible = true;
},
// 关闭小班设置
miniClassHandleClose() {
this.miniClassVisible = false;
this.miniClass = undefined
this.getDataList()
},
// 获取数据列表
getDataList() {
this.dataListLoading = true;
this.$http({
// url: this.$http.adornUrl('/book/user/list'),
url: this.$http.adornUrl("/common/class/getClassList"),
method: "post",
data: this.$http.adornData({
page: this.pageIndex,
limit: this.pageSize,
title: this.dataForm.title,
type: this.dataForm.type,
state: this.dataForm.state
})
// params: this.$http.adornParams({
// 'page': 1,
// 'limit': this.pageSize,
// 'key': this.dataForm.key
// })
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.page.records;
this.totalPage = data.page.pages;
this.total = data.page.total;
this.dataListLoading = false;
}
});
},
// 每页数
sizeChangeHandle(val) {
this.pageSize = val;
this.pageIndex = 1;
this.getDataList();
},
// 当前页
currentChangeHandle(val) {
this.pageIndex = val;
this.getDataList();
},
// 新增 / 修改
// 删除
deleteHandle(id) {
var ids = id
// ? [id]
// : this.dataListSelections.map(item => {
// return item.id;
// });
this.$confirm(
`确定删除操作?`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}
).then(() => {
this.$http({
url: this.$http.adornUrl("/common/class/delClass"),
method: "post",
data: this.$http.adornData({
classId:ids
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
}
});
} else {
this.$message.error(data.msg);
}
}).catch(e => {
this.$message.error('删除失败');
});
});
}
}
};
</script>

View File

@@ -0,0 +1,322 @@
<template>
<div class="mod-config">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input v-model="dataForm.key" placeholder="请输入班级模型名称" clearable>
</el-input>
</el-form-item>
<el-form-item label="班级类型">
<el-select v-model="dataForm.status" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
@click="
pageIndex = 1;
getDataList();
"
>查询</el-button
>
<el-button
v-if="isAuth('book:user:save')"
type="primary"
@click="showClassModel()"
>添加班级模型</el-button
>
<!-- <el-button v-if="isAuth('book:user:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">批量删除</el-button> -->
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;"
>
<el-table-column
prop="title"
header-align="center"
align="center"
label="名称"
>
</el-table-column>
<el-table-column
prop="createUser.tel"
header-align="center"
align="center"
label="包含课程"
>
<template slot-scope="scope">
<div v-if="scope.row.courseList.length > 0">
<div v-for="(item, index) in scope.row.courseList" :key="index">{{item.title}}</div>
</div>
<div v-else>
还没有绑定课程
</div>
</template>
</el-table-column>
<el-table-column
prop="createTime"
header-align="center"
align="center"
label="主任设置"
>
<template slot-scope="scope">
<!-- <div> <span>主任</span></div> -->
<div v-if="scope.row.director">
<span v-if="scope.row.director.nickname">{{scope.row.director.nickname}}<br/></span>
<span v-if="scope.row.director.tel">电话{{scope.row.director.tel}}<br/></span>
<span v-if="scope.row.director.email">邮箱{{scope.row.director.email}}<br/></span>
</div>
</template>
</el-table-column>
<el-table-column
prop="state"
header-align="center"
align="center"
label="副主任设置"
>
<template slot-scope="scope">
<!-- <div><span>副主任</span></div> -->
<div v-if="scope.row.ddirector">
<span v-if="scope.row.ddirector.nickname">{{scope.row.ddirector.nickname}}<br/></span>
<span v-if="scope.row.ddirector.tel">电话{{scope.row.ddirector.tel}}<br/></span>
<span v-if="scope.row.ddirector.email">邮箱{{scope.row.ddirector.email}}<br/></span>
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="showClassModel(scope.row)"
>修改</el-button
>
<!-- <el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除</el-button
> -->
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
<!-- 小班教学管理 -->
<class-add-type
ref="miniClass"
v-if="miniClassVisible"
@handleClose="miniClassHandleClose"
:classModel="miniClass"
></class-add-type>
</div>
</template>
<script>
import classAddType from "./classAddType.vue";
export default {
data() {
return {
dataForm: {
key: "",
status:'0'
},
courseId: {},
course: null,
miniClass: undefined,
// showClassModel:false,
options: [
{
value: '0',
label: "普通小班"
},
{
value: '1',
label: "联合班"
},
{
value: '2',
label: "精英班"
}
],
adc: false,
pointForm: {
pointType: 0,
remark: "",
// title:'',
pointAmount: 0
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
total: 0,
dataListLoading: false,
miniClassVisible: false
};
},
components: {
classAddType
},
created() {
this.courseId = this.$route.query.courseId;
console.log("得到的课程id", this.courseId);
this.getCourseInfo()
this.getDataList();
},
methods: {
// 管理员小班管理
showClassModel(data) {
// console.log('miniClass',data)
if(data){
this.miniClass = data
}
// if(this.course.id){
this.miniClassVisible = true;
// }
},
// 关闭小班设置
miniClassHandleClose() {
this.miniClassVisible = false;
this.miniClass = undefined
this.getDataList()
},
// 获取课程详情
getCourseInfo(){
this.$http
.request({
url: this.$http.adornUrl('/master/course/getCoursedetail'),
method: "POST",
data: {
id: 35
// id: this.courseId
},
header: {
//默认 无 说明:请求头
"Content-Type": "application/json"
}
})
.then(res => {
// console.log("result at line 452:", res);
if (res && res.data.code == 0) {
this.course = res.data.course;
// console.log("课程详细:", data);
}
}).catch(e => {
this.$message.error('获取数据失败')
});
},
// 获取数据列表
getDataList() {
this.dataListLoading = true;
this.$http({
// url: this.$http.adornUrl('/book/user/list'),
url: this.$http.adornUrl("/common/class/getClassModelList"),
method: "post",
data: this.$http.adornData({
page: this.pageIndex,
limit: this.pageSize,
title: this.dataForm.key,
// status: dataForm.status
})
// params: this.$http.adornParams({
// 'page': 1,
// 'limit': this.pageSize,
// 'key': this.dataForm.key
// })
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.page.records;
this.totalPage = data.page.pages;
this.total = data.page.total;
this.dataListLoading = false;
}
});
},
// 每页数
sizeChangeHandle(val) {
this.pageSize = val;
this.pageIndex = 1;
this.getDataList();
},
// 当前页
currentChangeHandle(val) {
this.pageIndex = val;
this.getDataList();
},
// 新增 / 修改
// 删除
deleteHandle(id) {
var ids = id
? [id]
: this.dataListSelections.map(item => {
return item.id;
});
this.$confirm(
`确定对[id=${ids.join(",")}]进行[${id ? "删除" : "批量删除"}]操作?`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}
).then(() => {
this.$http({
url: this.$http.adornUrl("/book/user/delete"),
method: "post",
data: this.$http.adornData(ids, false)
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
}
});
} else {
this.$message.error(data.msg);
}
});
});
}
}
};
</script>

View File

@@ -5,10 +5,10 @@
window.SITE_CONFIG = {};
// api接口请求地址
// window.SITE_CONFIG['baseUrl'] = 'http://192.168.110.100:9200/pb';//张川川
window.SITE_CONFIG['baseUrl'] = 'http://192.168.110.100:9200/pb';//张川川
// window.SITE_CONFIG['baseUrl'] = 'http://59.110.212.44:9200/pb';
// window.SITE_CONFIG['baseUrl'] = 'https://testapi.nuttyreading.com'; // 线上测试环境11
window.SITE_CONFIG['baseUrl'] = 'https://api.nuttyreading.com'; // 线上正式环境
// window.SITE_CONFIG['baseUrl'] = 'https://api.nuttyreading.com'; // 线上正式环境
// window.SITE_CONFIG['baseUrl'] = 'http://192.168.110.110:9200/pb';//磊哥
// window.SITE_CONFIG['baseUrl'] = 'http://59.110.212.44:9200/pb';
// window.SITE_CONFIG['baseUrl'] = 'http://192.168.110.100:9200/pb';