<template> <div class="listPage H100"> <div class="search-container"> <el-form :inline="true" :model="form" ref="form" onsubmit="return false;"> <el-form-item> <el-input placeholder="请输入学习项目名称" v-model="form.name" @keyup.enter.native="Search" clearable ></el-input> </el-form-item> <el-form-item> <el-date-picker value-format="yyyy-MM-dd" v-model="value1" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" ></el-date-picker> </el-form-item> <el-form-item> <div class="btn-group"> <el-button type="primary" class="btn_form_search" @click="Search" >查询</el-button > <el-button class="btn_form_search" @click="Reset">重置</el-button> </div> </el-form-item> </el-form> <div class="page-tip"> <span class="page-tip-title">页面说明:</span> <span class="page-tips" >展示系统所有的学习项目,可按照时间及相关名称进行快速信息搜索。</span > </div> </div> <div class="table-content"> <div class="btn-group"> <el-button type="primary" @click="addPermis()">新建学习项目</el-button> </div> <div class="party-table"> <el-table border style="width: 100%; height: 100%" height="100%" ref="multipleTable" :data="tableData" > <el-table-column type="index" width="120" label="序号"> <template slot-scope="scope"> <span>{{ (page.currentPage - 1) * 10 + scope.$index + 1 }}</span> </template> </el-table-column> <el-table-column label="学习项目名称" prop="name"></el-table-column> <el-table-column label="创建时间" prop="createTime"></el-table-column> <el-table-column label="相关学习内容" prop="learningContentNames" ></el-table-column> <el-table-column label="备注" prop="remarks"></el-table-column> <el-table-column label="操作" header-align="center" align="center"> <template slot-scope="scope" width="220"> <div class="table-btn-group"> <el-tooltip content="修改" placement="top"> <el-button circle @click="openEdit(scope.row)"> <i class="icon-table icon-edit"></i> </el-button> </el-tooltip> <el-tooltip content="删除" placement="top"> <el-button circle @click="handleDelete(scope.row)"> <i class="icon-table icon-del"></i> </el-button> </el-tooltip> </div> </template> </el-table-column> </el-table> </div> <div class="partyt-pagination"> <el-pagination background @current-change="handleCurrentChange" :current-page="page.currentPage" :page-size="page.pageSize" layout="prev, pager, next, jumper" :total="page.total" ></el-pagination> </div> </div> <!--新增弹框--> <el-dialog title="新建" custom-class="party-dialog" width="468px" :visible.sync="FormVisible1" :before-close="close" > <div class="dialog-content"> <el-form :model="classForm" ref="classForm" label-width="80px" label-position="top" :rules="rule" id="ruleo" class="party-form" > <el-form-item label="学习项目名称" prop="name"> <el-input v-model="classForm.name"></el-input> </el-form-item> <el-form-item label="备注"> <el-input type="textarea" v-model="classForm.remarks"></el-input> </el-form-item> </el-form> </div> <div slot="footer" class="dialog-footer btn-group"> <el-button size="mini" v-show="type" type="primary" @click="handleSubmit('save')" >确定</el-button > <el-button size="mini" v-show="!type" type="primary" @click="handleSubmit('edit')" >确定</el-button > <el-button size="mini" @click="close">取 消</el-button> </div> </el-dialog> </div> </template> <script> export default { data() { return { type: true, value1: "", page: { currentPage: 1, pageSize: 10, total: 0 }, tableData: [], FormVisible: false, FormVisible1: false, formLabelWidth: "100px", form: { name: "", }, editform: { menuName: "", menuUrl: "", parentId: "", sort: "", id: "", }, classForm: { id: "", name: "", remarks: "", }, typeList: [], rule:{ name: [ { required: true, message: "请输入学习项目名称", trigger: "blur" } ], }, rules: { name: [ { required: true, message: "请输入学习项目名称", trigger: "blur" }, ], }, value: "", name: "", }; }, computed: {}, mounted() { this.onSearch(); }, components: {}, methods: { // 获得数据接口 getTableData(param) { let vm = this; vm.$https( { url: "learningProject/getPageList", method: "post", authType: this.backToken, }, vm.$qs.stringify(param) // param ) .then((res) => { let data = res.data.data; vm.page.pageSize = data.size; vm.page.total = data.total; vm.tableData = data.records; }) .catch(function (err) { console.log(err); }); }, // 分页 handleCurrentChange(val) { let _this = this; _this.page.currentPage = val; _this.onSearch(); }, onSearch() { let _this = this; let param = _this.getSearchQuery(); _this.getTableData(param); }, Search() { let _this = this; _this.page.currentPage = 1; let searchObj = { _index: 1, _size: _this.page.pageSize, name: _this.form.name, startDate: this.value1 ? this.value1[0] : "", endDate: this.value1 ? this.value1[1] : "", }; this.getTableData(searchObj); }, // 重置 Reset() { this.form = {}; this.Search(); }, // // 获取当前查询参数 getSearchQuery() { let _this = this; let searchObj = { _index: _this.page.currentPage, _size: _this.page.pageSize, }; for (let key in _this.form) { if (_this.form[key]) { searchObj[key] = _this.form[key]; } } return searchObj; }, // 添加 addPermis() { // this.$router.push({ path: "videoContentAdd", query: { type: "add" } }); $(".el-dialog__title").html("新建"); this.FormVisible1 = true; this.type = true; }, handleSubmit(type) { let httpUrl, httpMethod,requestParams; if (type === "save") { httpUrl = "learningProject/save"; httpMethod = "post"; } if (type === "edit") { httpUrl = "learningProject/update"; httpMethod = "put"; } requestParams = {...this.classForm} this.handleSave(httpUrl,httpMethod,requestParams) }, handleSave(url,method,requestParams){ let _this = this; _this.$refs.classForm.validate((valid) => { if (valid) { _this.$https( { url: url, method: method, authType: this.backToken, }, _this.$qs.stringify(requestParams) ) .then( (res) => { if (res.data.resultCode == 200 || res.data.resultCode == 201) { _this.$message({ type: "success", message: res.data.message, }); //跳回用户列表 _this.onSearch(); _this.FormVisible1 = false; for (let key in _this.classForm) { _this.classForm[key] = null; } _this.$refs["classForm"].resetFields(); } else { _this.$message({ type: "error", message: res.data.msg, }); } }, (error) => { _this.$message({ type: "error", message: error, }); } ); } }); }, // 编辑关闭 close() { this.FormVisible1 = false; for (let key in this.classForm) { this.classForm[key] = null; } this.$refs["classForm"].resetFields(); }, // 编辑弹框 openEdit(row) { this.type = false; $(".el-dialog__title").html("编辑"); let _this = this; _this.FormVisible1 = true; this.getAssetTypeInfo(row.id); }, // 获取视频分类详情 getAssetTypeInfo(id) { let vm = this; vm.$https( { url: "learningProject/get/" + id, method: "get", authType: this.backToken, } // param ) .then((res) => { let data = res.data.data; this.classForm.id = data.id; this.classForm.name = data.name; this.classForm.remarks = data.remarks; }) .catch(function (err) { console.log(err); }); }, openDetails() { let _this = this; _this.FormVisible = true; }, // 删除 handleDelete(row) { let _this = this; this.$confirm("此操作将永久删除, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(() => { _this .$https({ method: "delete", url: "learningProject/delete/" + row.id, authType: this.backToken, }) .then( (res) => { this.$message({ type: "success", message: "删除成功!" }); _this.Search(); }, (error) => { this.$message({ type: "fail", message: "删除失败!" + error.response.data, }); } ); }) .catch(() => {}); } } }; </script> <style lang="less"> @import "../../../../style/dialog.less"; @import "../../../../style/table.less"; @import "../../../../style/pagination.less"; </style>