除了模板中常规的功能之外,还包含了
1 枚举类
2 下拉多选功能
效果:
展示字段的增加
<template> <div> <!-- <h1>这是一个标题</h1> --> <!-- 导航 Question--> <!-- 这是最外层的一个面包屑标签 --> <el-breadcrumb> <!-- 第二层item项 --> <el-breadcrumb-item> <!-- 第三层最里面的路由 可以实现页面跳转的功能,跳转到首页 --> <router-link to="./">首页</router-link> </el-breadcrumb-item> <el-breadcrumb-item> 题库管理</el-breadcrumb-item> </el-breadcrumb> <!-- 主体内容 --> <div class="content"> <!-- inline 行内表单模式 布尔类型 label-position 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 label-width. string类型 size 用于控制该表单内组件的尺寸 --> <!-- 灰色条代码段 --> <el-form inline label-position="right" label-width="60px" size="small" class="query-form" > <!-- 搜索 输入框 --> <el-form-item label="搜索"> <el-input v-model="key" placeholder="请输入关键词语"></el-input> </el-form-item> <!-- 按钮 单击事件 selList--> <el-form-item> <el-button type="primary" @click="selList()">查询</el-button> <!-- 给按钮 加属性 --> <el-button type="success" @click=" dialogVisible = true; form = { isEnable: true }; " >新增</el-button > </el-form-item> </el-form> <!-- 列表查询 复制 --> <el-card class="box-card table"> <div slot="header" class="clearfix"> <span>题库管理</span> </div> <el-tabs v-model="query.positionID" @tab-click="tabClick()"> <el-tab-pane :label="item.name" :name="item.id.toString()" v-for="item in typeList" :key="item.id" ></el-tab-pane> </el-tabs> <!-- 列表展示列名的代码顶部 列表定义 C#程序中接口读取的数据在这里展示. --> <el-table v-loading="loading" :data="tableData" ref="tableData" border stripe style="width: 100%" > <!-- name 小写 列表展示内容的vue组件 column 使用 --> <el-table-column prop="title" label="题目名称"></el-table-column> <!-- 4 选项 --> <el-table-column prop="selectA" label="选项A"></el-table-column> <el-table-column prop="selectB" label="选项B"></el-table-column> <el-table-column prop="selectC" label="选项C"></el-table-column> <el-table-column prop="selectD" label="选项D"></el-table-column> <!-- 正确选项 --> <el-table-column prop="correctKey" label="正确选项"></el-table-column> <!-- <el-table-column prop="sort" label="排序"></el-table-column> --> <!-- 是否可用列名 字段 --> <el-table-column prop="isEnable" label="是否可用"> <template slot-scope="scope"> <el-tag type="success" v-if="scope.row.isEnable == true" >是</el-tag > <el-tag type="warn" v-else>否</el-tag> </template> </el-table-column> <el-table-column prop="createTime" label="添加时间"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-tooltip content="编辑" placement="top"> <el-button type="primary" size="mini" icon="el-icon-edit" @click="editClick(scope.row)" ></el-button> </el-tooltip> <el-tooltip content="删除" placement="top"> <el-button type="warning" size="mini" icon="el-icon-delete" @click="delClick(scope.row)" ></el-button> </el-tooltip> </template> </el-table-column> </el-table> <!-- 列表展示列名的代码底部 --> <!-- 分页条 --> <div class="block" style="margin-top: 20px"> <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage4" :page-sizes="[10, 20, 30, 50, 100]" :page-size="pageSize" layout="total, sizes,prev, pager, next, jumper" :total="total" ></el-pagination> </div> </el-card> </div> <!-- 上面为展示,一切展示不出来问题,找上面代码 --> <!-- 下面是对话框,一切对话框问题找form表单对话框 --> <!-- form表单 操作对话框 C#实体框架类需要展示的字段,需要从这里修改--> <!-- 三元表达式 --> <el-dialog :title="form.id > 0 ? ‘编辑题库管理‘ : ‘添加题库管理‘" :visible.sync="dialogVisible" @opened="dialogOpened()" > <!-- 表单事件 --> <el-form :model="form" ref="form" label-width="100px" :status-icon="true" @submit.native.prevent="submitForm(‘form‘)" > <!-- name 分类名称字段,对应的是C# 数据库中的name字段,这是一一对应关系 1 这里对应的是title,不是名字 --> <el-form-item label="题目名称" prop="title" :rules="[{ required: false, message: ‘请输入题目名称‘ }]" > <el-input v-model="form.title" placeholder="请输入题目名称" ></el-input> </el-form-item> <!-- select a 1 form点prop验证的变量字段,就可以不同时修改的了 --> <el-form-item label="选项a" prop="selectA" :rules="[{ required: true, message: ‘请输入选项a‘ }]" > <!-- 输入框 --> <el-input v-model="form.selectA" placeholder="请输入选项"></el-input> </el-form-item> <!-- select b --> <el-form-item label="选项b" prop="selectB" :rules="[{ required: true, message: ‘请输入选项b‘ }]" > <!-- 输入框 --> <el-input v-model="form.selectB" placeholder="请输入选项"></el-input> </el-form-item> <el-form-item label="选项c" prop="selectC" :rules="[{ required: false, message: ‘请输入选项c‘ }]" > <!-- 输入框 --> <el-input v-model="form.selectC" placeholder="请输入选项"></el-input> </el-form-item> <el-form-item label="选项d" prop="selectD" :rules="[{ required: false, message: ‘请输入选项d‘ }]" > <!-- 输入框 --> <el-input v-model="form.selectD" placeholder="请输入选项"></el-input> </el-form-item> <!-- 正确选项 --> <el-form-item label="正确选项" prop="correctKey" :rules="[{ required: true, message: ‘请选择正确选项‘ }]" > <!-- sellist 修改 输入框 可以直接替代input --> <el-select v-model="form.correctKey" style="width: 100%" multiple placeholder="请选择正确选项" > <el-option v-for="item in sellist" :key="item.id" :label="item.name" :value="item.name" > </el-option> </el-select> </el-form-item> <!-- 所属岗位分类 属于哪一分类 要展示出来 --> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="所属岗位" prop="positionID" :rules="{ required: true, message: ‘不能为空‘ }" > <el-select v-model="form.positionID" placeholder="请选择类型" filterable > <el-option v-for="item in typeList" :label="item.name" :value="item.id" :key="item.id" ></el-option> </el-select> </el-form-item> </el-col> </el-row> <!-- 所属分类底部 --> <!-- 学校标签借用 --> <!-- <el-form-item label="所属岗位" prop="labelList"> <el-select v-model="form.labelList" placeholder="请选择所属岗位" clearable filterable multiple style="width: 100%" > <el-option v-for="item in labellist" :label="item.label" :value="item.label" :key="item.id" ></el-option> </el-select> </el-form-item> --> <!-- 学校标签底部 --> <!-- 简介顶部 --> <!-- <el-form-item label="简介" prop="summary"> <el-input v-model="form.summary" placeholder="请输入简介内容" ></el-input> </el-form-item> --> <!-- 简介底部 --> <el-form-item label="排序字段" prop="sort"> <el-input v-model.number="form.sort" placeholder="请输入排序字段" ></el-input> </el-form-item> <!-- 是否可用顶部 2层 must 必须的 --> <el-row :gutter="24"> <el-col :span="8"> <el-form-item prop="isEnable" label="是否可用" :rules="[{ required: true, message: ‘‘ }]" > <el-switch v-model="form.isEnable"></el-switch> </el-form-item> </el-col> </el-row> <!-- 是否可用功能组件底部 --> <el-form-item> <el-button type="primary" :loading="submiting" native-type="submit" >提交</el-button > <el-button @click="dialogVisible = false">取消</el-button> </el-form-item> </el-form> </el-dialog> <!-- 复制底部 --> </div> </template> <script> import url from "@/plugins/urlHelper.js"; // 1 富文本组件导入 import VueUeditorWrap from "vue-ueditor-wrap"; export default { components: { VueUeditorWrap }, //2 组件使用 //data 必须是一个函数 data() { return { // 多选的JavaScript代码 data中的代码 sellist: [ { id: 1, name: "A" }, { id: 2, name: "B" }, { id: 3, name: "C" }, { id: 4, name: "D" }, ], //选项 // 3 增加富文本 editorConfig: { initialFrameHeight: 500, //设置高度 initialFrameWidth: "100%", //设置宽度 UEDITOR_HOME_URL: url.getUEConfig(), serverUrl: url.getUE(), }, domain: url.getDomain(), key: "", query: { positionID: "1" }, //对象 枚举类 字段 data中的写入 loading: false, currentPage4: 1, pageSize: 10, total: 0, tableData: [], form: {}, //表单对象 dialogVisible: false, submiting: false, typeList: [], labellist: [], //标签所属岗位 id: 0, }; }, methods: { handleSizeChange(val) { this.pageSize = val; this.currentPage4 = 1; this.getList(); }, handleCurrentChange(val) { this.currentPage4 = val; this.getList(); }, //筛选 filterTag(filter) { var val = filter["isEnable"][0]; this.form.isEnable = val; //刷新列表 this.getList(); }, // 获取所属岗位 函数 getSchLabelList: function () { var _this = this; var modelid = 5; var link = url.getKnow("GetType_QuestionEnum"); // 接口方法去看原来的C# $.get(link, { modelid: modelid }, (data) => { _this.labellist = data; }); }, //排序 sortChange(sortColumn) { this.form.sort = sortColumn.prop; this.form.order = sortColumn.order; //刷新列表 this.getList(); }, //获取枚举类文章类型列表的函数 方法 1 枚举类 initData: function () { var _this = this; var link = url.getKnow("GetType_QuestionEnum"); //2 C#方法引入。修改类型控制器。 接口。 $.get(link, {}, (data) => { _this.typeList = data; }); }, // 查询列表 获取分页列表函数 方法 getList: function () { var _this = this; _this.loading = true; var params = _this.query; params.pageindex = _this.currentPage4; params.pagesize = _this.pageSize; params.key = _this.key; // console.info(params) var link = url.getKnow("GetList_Question"); // 控制器文件。C#接口 1 修改控制器为需要的接口方法 $.get(link, params, (data) => { _this.loading = false; _this.tableData = data.list; _this.total = data.total; }); }, //搜索查询 selList: function () { this.currentPage4 = 1; this.getList(); }, // 切换函数的定义。 分类的切换 tabClick: function () { (this.tableData = []), this.getList(); }, //上传文件 dialogOpened: function () { var _this = this; // 上传图片的 if 条件与语句 if ($("#uploadBtn2 input").length == 0) { $("#uploadBtn2").uploader({ url: url.getUpload(), text: "上传图片", fileExts: "jpg;png;", type: "dialog", // 剪切图片增加的JavaScript代码部分 coverParams: { targetWidth: 100, // 目标宽度 targetHeight: 100, }, // 剪切图片js底部 maxSize: 1024 * 1024 * 100, onSuccess: function (data) { var src = url.getDomain() + data.relativeName; _this.$set(_this.form, "imgUrl", data.relativeName); }, }); } }, //提交表单 submitForm(formName) { var _this = this; var link = url.getKnow("Save_Question"); //添加方法C# 修改这里的控制器。接口添加。 var info = this.form; info.correctKey = info.correctKey.toString(); // console.info(info); this.$refs.form.validate((valid) => { if (valid) { this.submiting = true; //提交后台添加 //添加或者修改 $.post(link, info, (res) => { _this.submiting = false; if (res.status) { _this.dialogVisible = false; _this.getList(); _this.$message({ type: "success", message: res.msg, }); } else { _this.$message({ type: "error", message: res.msg, }); } }); } else { return false; } }); }, //编辑事件 函数 页面点击可以编辑,修改的地方 // editClick: function (row) { // //this.form = Object.assign({}, row); // this.dialogVisible = true; // var _this = this; // 变量声明 // var id = row.id; // row 这一行 // var link = url.getKnow("GetModel_KnowCate"); // 对应C#中是 获取对象的接口方法 // $.get(link, { id: id }, (res) => { // _this.form = res; // }); // }, //编辑 函数 editClick: function (row) { var _this = this; _this.dialogVisible = true; var link = url.getKnow("GetModel_Question"); // C#中获取对象接口方法的调用访问 var id = row.id; $.get(link, { id: id }, (data) => { if (data.correctKey) { data.correctKey = data.correctKey.split(","); } _this.form = data; }); }, //删除 delClick: function (row) { var _this = this; var link = url.getKnow("Delete_KnowCate"); //获取请求地址 5 这里面的控制器,接口方法都要修改的。 var id = row.id; //获取对象id C# 里面删除的也是id ,不是IDS字符串 console.info(id); this.$confirm("确定要删除吗?", "提示", { confirmButtonText: "确定", concelButtonText: "取消", type: "warning", }) .then(() => { $.post(link, { id: id }, (res) => { // 第一个id对应C#中删除方法()小括号里面接收的参数 id. if (res.status) { _this.dialogVisible = false; _this.getList(); _this.$message({ type: "success", message: res.msg, }); } else { _this.$message({ type: "error", message: res.msg, }); } }); }) .catch(() => { this.$message({ type: "info", message: "已取消删除", }); }); }, }, mounted() { // 获取视频类型 this.initData(); //获取服务器列表 this.getList(); // 所属岗位 this.getSchLabelList(); }, }; </script>