lhl преди 1 година
родител
ревизия
cab7fc9fca

+ 167 - 1
src/api/system/adver.js

@@ -232,10 +232,176 @@ export function  SystemDelArt(data = {}) {
 //   });
 // }
 
+/**
+ * 课程分类列表
+ * @param data
+ * @constructor
+ */
 export function getCate(data = {}) {
 	return request({
-	  url: '/systemv1/index/getCateList',
+	  url: '/systemv1/EducationController/getCateList',
 	  method: 'post',
 	  data : data
 	});
+}
+
+/**
+ * 修改课程分类
+ * @param data
+ * @constructor
+ */
+export function editCate(data = {}) {
+	return request({
+	 url: '/systemv1/EducationController/editCate',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 添加课程子分类
+ * @param data
+ * @constructor
+ */
+export function subcateadd(data = {}){
+	return request({
+	 url: '/systemv1/EducationController/subcateadd',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 删除课程分类
+ * @param data
+ * @constructor
+ */
+export function delCate(data= {}) {
+	return request({
+	 url: '/systemv1/EducationController/delCate',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 分组列表
+ * @param data
+ * @constructor
+ */
+export function getGrlist(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/index',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 切换是否过审
+ * @param data
+ * @constructor
+ */
+export function changeAudit(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/changeStatus',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 切换是否轮播
+ * @param data
+ * @constructor
+ */
+export function changeRecommend(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/changeRecommend',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 添加课程
+ * @param data
+ * @constructor
+ */
+export function addCourse(data={}) {
+	return request({
+	 url: '/systemv1/CourseController/addCourse',
+	 method: 'post',
+	 data : data
+	});
+}
+
+/**
+ * 课程详情
+ * @param data
+ * @constructor
+ */
+export function searchCourse(data={}) {
+	return request({
+	 url: '/systemv1/CourseController/searchCourse',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function getCourseList(data= {}) {
+	return request({
+	 url: '/systemv1/CourseController/getCourseList',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function editGr(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/edit',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function addGr(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/add',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function delGr(data = {}) {
+	return request({
+	 url: '/systemv1/GroupController/delete',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function updateCourseAudit(data = {}) {
+	return request({
+	 url: '/systemv1/courseController/updateCourseAudit',
+	 method: 'post',
+	 data : data
+	});
+}
+
+export function editCourse(data={}) {
+	return request({
+	 url: '/systemv1/CourseController/editCourse',
+	 method: 'post',
+	 data : data
+	});
+}
+
+//systemv1/CourseController/deleteCourse
+export function deleteCourse(data = {}) {
+	return request({
+	 url: '/systemv1/CourseController/deleteCourse',
+	 method: 'post',
+	 data : data
+	});
 }

+ 1 - 0
src/components/system/adver/page.vue

@@ -279,6 +279,7 @@
                     .then(res=>{
                         let data = res.data;
                         this.tableData = data;
+						console.log(this.tableData,'this.tableData');
                         this.loading = false;
                     })
                     .catch(err=>{

+ 13 - 5
src/components/system/audit/infoAudit.vue

@@ -71,9 +71,11 @@
 					<el-table-column prop="service_max_price"       label="最高服务价格" width="120"></el-table-column>
 					<el-table-column prop="service_area"            label="服务区域" width="150">
 						<template slot-scope="scope">
-							<el-tag v-for="(item,index) in scope.row.service_area_all" :key="index" type="warning" size="mini">
-								{{item[0].name+'-'+(item[1]?item[1].name:'')+'-'+(item[2]?item[2].name:'')}}
+							<el-tag v-for="(item,index) in scope.row.service_area_all" :key="index" type="warning" size="mini" v-if="item.length > 0">
+								<!-- {{item[0].name+'-'+(item[1]?item[1].name:'')+'-'+(item[2]?item[2].name:'')}} -->
+								{{item.length > 0 ?(item[0].name == '海外'? '海外': (item[0].name + '-' + (item[1] && item[1].name ?item[1].name : '') +'-'+ (item[2] && item[2].name ?item[2].name : ''))): '' }}
 							</el-tag>
+							<!-- {{scope.row.service_area_all}} -->
 						</template>
 						
 					</el-table-column>
@@ -285,9 +287,15 @@
                     .then(res=>{
                         this.isLoad = false;
                         if(res.code == 200) {
-                            this.listData = res.data.list;
-                            this.page.pageSize = res.data.pageSize;
-                            this.page.count = res.data.pageCount;
+							try{
+								this.listData = res.data.list;
+								
+								this.page.pageSize = res.data.pageSize;
+								this.page.count = res.data.pageCount;
+							}catch(e){
+								//TODO handle the exception
+							}
+                            
                         } else {
                             this.$alert(res.msg);
                         }

+ 2 - 2
src/components/system/audit/infoAuditItem.vue

@@ -128,8 +128,8 @@
 				<Row :gutter="24">
 				  <Col span="24">
 				    <el-form-item label="服务区域">
-				      <el-tag effect="dark" v-for="(item,index) in data.service_area_all" :key="index" size="mini" style="margin-right: 10px;margin-bottom: 10px;">
-				      	{{item[0].name+'-'+(item[1]?item[1].name:'')+'-'+(item[2]?item[2].name:'')}}
+				      <el-tag effect="dark" v-for="(item,index) in data.service_area_all" :key="index" size="mini" style="margin-right: 10px;margin-bottom: 10px;" v-if="item.length > 0">
+				      	{{item.length > 0 ?(item[0].name == '海外'? '海外': (item[0].name + '-' + (item[1] && item[1].name ?item[1].name : '') +'-'+ (item[2] && item[2].name ?item[2].name : ''))): '' }}
 				      </el-tag>
 				    </el-form-item>
 				  </Col>

+ 43 - 227
src/components/system/eduction/addGrlists.vue

@@ -3,12 +3,12 @@
 		<i-page-header :title="pageTitle"></i-page-header>
 		<Card :bordered="false" dis-hover class="ivu-mt">
 			<el-form ref="formData" :model="form" label-width="120px">
-				<el-form-item label="讲师" prop="user" :rules="[{ required: true, message: '请输入课程标题'}]">
+	<!-- 			<el-form-item label="讲师" prop="user" :rules="[{ required: true, message: '请输入课程标题'}]">
 					<el-select v-model="form.user" placeholder="请选择讲师" style="width: 100%;">
 						<el-option v-for="item in optionss" :key="item.value" :label="item.label" :value="item.value">
 						</el-option>
 					</el-select>
-				</el-form-item>
+				</el-form-item> -->
 				<el-form-item label="类型" prop="type1" :rules="[{ required: true, message: '请输入课程标题'}]">
 					<el-select v-model="form.type1" placeholder="请选择类型" style="width: 100%;">
 						<el-option v-for="item in optionss" :key="item.value" :label="item.label" :value="item.value">
@@ -18,7 +18,7 @@
 				<!-- type2 -->
 				<el-form-item label="分类" prop="type2" :rules="[{ required: true, message: '请选择分类'}]">
 					<el-cascader v-model="form.type2" :options="options" @change="handleChange"
-						:show-all-levels="false" style="width: 100%;"></el-cascader>
+						:show-all-levels="false" style="width: 100%;" :props="propss"></el-cascader>
 				</el-form-item>
 				<el-form-item label="标题" prop="title" :rules="[{ required: true, message: '请输入标题'}]">
 					<el-input placeholder="请输入标题" autocomplete="off" v-model="form.title"></el-input>
@@ -31,7 +31,7 @@
 					<el-input placeholder="请输入组简介" autocomplete="off" v-model="form.ins"></el-input>
 				</el-form-item>
 				<el-form-item>
-					<el-button type="primary" @click="tapOk(1)">{{form.id ? '修改提交': '保存发布'}}</el-button>
+					<el-button type="primary" @click="tapOk(1)">{{form.gr_id ? '修改提交': '保存发布'}}</el-button>
 				</el-form-item>
 			</el-form>
 		</Card>
@@ -62,7 +62,10 @@
 		updateArticle,
 		SystemArtDetail,
 		SystemGetArtList,
-		getArtDetail
+		getArtDetail,
+		getCate,
+		editGr,
+		addGr
 	} from "../../../api/system/adver";
 	import UiLoading from "../../../ui/loading/index";
 	import {
@@ -103,11 +106,11 @@
 					indeximg: '',
 					title: '',
 					user: '',
-					type1: '',
-					type2: '',
+					type1: 0,
+					type2: 0,
 					ins: ''
 				},
-				pageTitle: '课程详情',
+				pageTitle: '分组详情',
 				upHeaders: {},
 				formActiveName: "tab_base",
 				formData: {
@@ -117,220 +120,46 @@
 				dialogVisible: false,
 				upUrl: '',
 				optionss: [{
-					value: '选项1',
-					label: '黄金糕'
-				}, {
-					value: '选项2',
-					label: '双皮奶'
-				}, {
-					value: '选项3',
-					label: '蚵仔煎'
+					value: 0,
+					label: '视频'
 				}, {
-					value: '选项4',
-					label: '龙须面'
-				}, {
-					value: '选项5',
-					label: '北京烤鸭'
+					value: 1,
+					label: '音频'
 				}],
-				options: [{
-					value: 'zhinan',
-					label: '指南',
-					children: [{
-						value: 'shejiyuanze',
-						label: '设计原则'
-						
-					}, {
-						value: 'daohang',
-						label: '导航',
-						children: [{
-							value: 'cexiangdaohang',
-							label: '侧向导航'
-						}, {
-							value: 'dingbudaohang',
-							label: '顶部导航'
-						}]
-					}]
-				}, {
-					value: 'zujian',
-					label: '组件',
-					children: [{
-						value: 'basic',
-						label: 'Basic',
-						children: [{
-							value: 'layout',
-							label: 'Layout 布局'
-						}, {
-							value: 'color',
-							label: 'Color 色彩'
-						}, {
-							value: 'typography',
-							label: 'Typography 字体'
-						}, {
-							value: 'icon',
-							label: 'Icon 图标'
-						}, {
-							value: 'button',
-							label: 'Button 按钮'
-						}]
-					}, {
-						value: 'form',
-						label: 'Form',
-						children: [{
-							value: 'radio',
-							label: 'Radio 单选框'
-						}, {
-							value: 'checkbox',
-							label: 'Checkbox 多选框'
-						}, {
-							value: 'input',
-							label: 'Input 输入框'
-						}, {
-							value: 'input-number',
-							label: 'InputNumber 计数器'
-						}, {
-							value: 'select',
-							label: 'Select 选择器'
-						}, {
-							value: 'cascader',
-							label: 'Cascader 级联选择器'
-						}, {
-							value: 'switch',
-							label: 'Switch 开关'
-						}, {
-							value: 'slider',
-							label: 'Slider 滑块'
-						}, {
-							value: 'time-picker',
-							label: 'TimePicker 时间选择器'
-						}, {
-							value: 'date-picker',
-							label: 'DatePicker 日期选择器'
-						}, {
-							value: 'datetime-picker',
-							label: 'DateTimePicker 日期时间选择器'
-						}, {
-							value: 'upload',
-							label: 'Upload 上传'
-						}, {
-							value: 'rate',
-							label: 'Rate 评分'
-						}, {
-							value: 'form',
-							label: 'Form 表单'
-						}]
-					}, {
-						value: 'data',
-						label: 'Data',
-						children: [{
-							value: 'table',
-							label: 'Table 表格'
-						}, {
-							value: 'tag',
-							label: 'Tag 标签'
-						}, {
-							value: 'progress',
-							label: 'Progress 进度条'
-						}, {
-							value: 'tree',
-							label: 'Tree 树形控件'
-						}, {
-							value: 'pagination',
-							label: 'Pagination 分页'
-						}, {
-							value: 'badge',
-							label: 'Badge 标记'
-						}]
-					}, {
-						value: 'notice',
-						label: 'Notice',
-						children: [{
-							value: 'alert',
-							label: 'Alert 警告'
-						}, {
-							value: 'loading',
-							label: 'Loading 加载'
-						}, {
-							value: 'message',
-							label: 'Message 消息提示'
-						}, {
-							value: 'message-box',
-							label: 'MessageBox 弹框'
-						}, {
-							value: 'notification',
-							label: 'Notification 通知'
-						}]
-					}, {
-						value: 'navigation',
-						label: 'Navigation',
-						children: [{
-							value: 'menu',
-							label: 'NavMenu 导航菜单'
-						}, {
-							value: 'tabs',
-							label: 'Tabs 标签页'
-						}, {
-							value: 'breadcrumb',
-							label: 'Breadcrumb 面包屑'
-						}, {
-							value: 'dropdown',
-							label: 'Dropdown 下拉菜单'
-						}, {
-							value: 'steps',
-							label: 'Steps 步骤条'
-						}]
-					}, {
-						value: 'others',
-						label: 'Others',
-						children: [{
-							value: 'dialog',
-							label: 'Dialog 对话框'
-						}, {
-							value: 'tooltip',
-							label: 'Tooltip 文字提示'
-						}, {
-							value: 'popover',
-							label: 'Popover 弹出框'
-						}, {
-							value: 'card',
-							label: 'Card 卡片'
-						}, {
-							value: 'carousel',
-							label: 'Carousel 走马灯'
-						}, {
-							value: 'collapse',
-							label: 'Collapse 折叠面板'
-						}]
-					}]
-				}, {
-					value: 'ziyuan',
-					label: '资源',
-					children: [{
-						value: 'axure',
-						label: 'Axure Components'
-					}, {
-						value: 'sketch',
-						label: 'Sketch Templates'
-					}, {
-						value: 'jiaohu',
-						label: '组件交互文档'
-					}]
-				}]
+				options: [],
+				propss: {
+					value: 'id',
+					label: 'name',
+					checkStrictly: true
+				}
+				
 			}
 		},
 		created() {
 			if (this.$route.query.title) {
 				this.pageTitle = this.$route.query.title;
 			}
-			if (this.$route.query.id) {
-				this.form.id = parseInt(this.$route.query.id);
+			if (this.$route.query.item) {
+				// this.form = parseInt(this.$route.query.item);
+				this.form = JSON.parse(this.$route.query.item)
+				if(this.form.indeximg.indexOf('http') == -1 ) {
+					this.form.indeximg = 'http://myj.liuniu946.com' + this.form.indeximg
+				}
+				console.log(this.$route.query.item,this.form);
 			}
 			this.initView();
-
+			this.getCate()
 		},
 		mounted() {
 
 		},
 		methods: {
+			getCate() {
+				getCate().then(res => {
+					this.options = res.data
+					console.log(res.data);
+				})
+			},
 			beforeUpload4(file) {
 				console.log(file);
 				if(file.type == 'video/mp4') {
@@ -355,10 +184,10 @@
 			 */
 			onUpload: function(res) {
 				if (res.code == -1) {
-					Notice.error({
-						title: "系统提示",
-						content: res.msg
-					});
+					// Notice.error({
+					// 	title: "系统提示",
+					// 	content: res.msg
+					// });
 				} else {
 					this.form.indeximg = res.data.img;
 					
@@ -445,26 +274,13 @@
 			 * 确认审核通过
 			 */
 			tapOk: function(type) {
-				// this.form.id = this.data.id;
-				// this.title = "审核通过";
-				// this.form.mono = '';
-				// this.form.type = type;
-				// this.dialogVisible = true;
-				// console.log(this.content);
 				let that = this
-				if (this.form.id) {
-					updateArticle({
-						id: that.form.id,
-						title: that.form.title,
-						content: that.form.content
-					}).then(res => {
+				if (this.form.gr_id) {
+					editGr(this.form).then(res => {
 						this.$Message.success("修改成功");
 					})
 				} else {
-					SystemAddArt({
-						title: that.form.title,
-						content: that.form.content
-					}).then(res => {
+					addGr(this.form).then(res => {
 						this.$Message.success("发布成功");
 					})
 				}

+ 119 - 186
src/components/system/eduction/cate.vue

@@ -25,171 +25,74 @@
             </FormItem>
           </Col> -->
         </Row>
-        <Row type="flex">
+       <!-- <Row type="flex">
           <Col v-bind="grid">
             <Button type="primary" class="bnt" icon="md-add" @click="tapAdd">添加新分类</Button>
           </Col>
-        </Row>
+        </Row> -->
       </Form>
       <vxe-table
         class="mt25"
         highlight-hover-row
         :loading="loading"
+		 default-expand-all
         header-row-class-name="false"
-        :tree-config="{children: 'children',expandAll:true}"
+        :tree-config="{children: 'children',hasChildren:true}"
         :data="tableData">
         <vxe-table-column field="id" title="ID"  tooltip width="80"></vxe-table-column>
-        <vxe-table-column field="cate_name" tree-node title="分类名称"  min-width="250" ></vxe-table-column>
-        <vxe-table-column field="pic" title="显示个数" min-width="100">
-          <template v-slot="{ row }">
-            <div v-if="row.max_count == 0">无限</div>
-            <div v-else>{{ row.max_count }}</div>
-          </template>
-        </vxe-table-column>
-
-        <vxe-table-column field="is_show" title="状态" min-width="120">
-          <template v-slot="{ row }">
-            <div v-if="row.type == 1">图文</div>
-            <div v-if="row.type == 2">文字</div>
-          </template>
-        </vxe-table-column>
-        <vxe-table-column field="sort" title="排序" min-width="100" tooltip="true"></vxe-table-column>
+        <vxe-table-column field="name" tree-node title="分类名称"  min-width="250" ></vxe-table-column>
+		<vxe-table-column field="sort" title="排序"  min-width="250" ></vxe-table-column>
         <vxe-table-column field="date" title="操作" width="250" fixed="right" align="center">
           <template v-slot="{ row, index }">
-            <a @click="tapEdit(row.id)">编辑</a>
+			  <a @click="tapAddKid(row)">添加子类</a>
+			  <Divider type="vertical"/>
+            <a @click="tapEdit(row)">编辑</a>
             <Divider type="vertical"/>
-            <a @click="del(row,'删除商品分类',index)">删除</a>
+            <a @click="del(row,'删除课程分类',index)">删除</a>
           </template>
         </vxe-table-column>
       </vxe-table>
     </Card>
-
-    <Modal
-      v-model="dialogVisible"
-      :title="title"
-      @on-cancel="editClose">
-
-      <el-form ref="menu" :model="menu" label-width="80px">
-        <el-form-item label="分类名称" prop="cate_name"
-                      :rules="[{ required: true, message: '请输入分类名称'}]">
-          <el-input placeholder="请输入分类名称" autocomplete="off" v-model="menu.cate_name"></el-input>
-        </el-form-item>
-
-
-        <el-form-item label="归属分类"
-        >
-          <el-select v-model="menu.pid"  placeholder="归属分类" style=" width: 100%">
-            <el-option :label="item.html + item.cate_name" :value="item.id" :key="item.id" v-for="item in treeSelect"></el-option>
-          </el-select>
-        </el-form-item>
-
-
-        <el-form-item label="广告类型">
-
-          <el-select v-model="menu.type"  placeholder="广告类型" style=" width: 100%">
-            <el-option :label="item.name" :value="item.id" :key="item.id" v-for="item in adverType"></el-option>
-          </el-select>
-
-        </el-form-item>
-
-
-        <el-form-item label="自定义">
-          <el-table
-            :data="menu.jsonAr"
-            tooltip-effect="dark"
-            header-cell-class-name="table-header"
-          >
-            <el-table-column
-              prop="name"
-              label="属性名"
-              width="100">
-            </el-table-column>
-
-            <el-table-column
-              prop="type"
-              label="类型"
-              width="100">
-              <template slot-scope="scope">
-                <div>{{ getJsonName(scope.row.type) }}</div>
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              prop="code"
-              label="code"
-              width="100">
-            </el-table-column>
-
-            <el-table-column
-              label="操作">
-              <template slot-scope="scope">
-                <a @click="tapJsonEdit(scope.$index)">编辑</a>
-                <Divider type="vertical"/>
-                <a @click="tapJsonDel(scope.$index)">删除</a>
-              </template>
-            </el-table-column>
-
-          </el-table>
-
-          <Button style="margin-top: 10px;" @click="tapAddJson" type="primary" size="small">添加自定义</Button>
-        </el-form-item>
-
-
-        <el-form-item label="广告数">
-          <el-input  placeholder="广告位数" v-model="menu.max_count"></el-input>
-          <div>默认0,0无限广告显示</div>
-        </el-form-item>
-
-
-
-        <el-form-item label="栏目说明">
-          <el-input type="textarea" placeholder="栏目说明" v-model="menu.mono"></el-input>
-        </el-form-item>
-
-
-      </el-form>
-
-      <span slot="footer" class="dialog-footer">
-          <el-button @click="dialogVisible = false">取 消</el-button>
-          <el-button type="primary" @click="subAdmin">确 定</el-button>
-        </span>
-    </Modal>
-
-
     <Modal
-      v-model="dialogVisible2"
-      title="自定义操作"
+      v-model="dialogVisibleEdit"
+      title="修改分类"
       :modal="false"
       @on-cancel="editClose2">
-      <el-form ref="json" :model="json" label-width="120px">
-        <el-form-item label="属性名" prop="name"
-                      :rules="[{ required: true, message: '请输入属性名'}]">
-          <el-input placeholder="请输入属性名" autocomplete="off" v-model="json.name"></el-input>
-        </el-form-item>
-
-
-
-        <el-form-item label="code" prop="code"
-                      :rules="[{ required: true, message: '请输入属性CODE'}]">
-          <el-input placeholder="请输入属性CODE" autocomplete="off" v-model="json.code"></el-input>
+      <el-form ref="editcate" :model="menu" label-width="120px">
+        <el-form-item label="分类名称" prop="name"
+                      :rules="[{ required: true, message: '请输入分类名称'}]">
+          <el-input placeholder="请输入分类名称" autocomplete="off" v-model="menu.name"></el-input>
         </el-form-item>
-
-        <el-form-item label="属性类型"
-                      style="width: 250px;"
-                      prop="type"
-                      :rules="[{ required: true, message: '请选择属性类型'}]">
-          <el-select  v-model="json.type"  placeholder="属性类型" >
-            <el-option :label="item.name" :value="item.value" :key="item.value" v-for="item in adverJsonType"></el-option>
-          </el-select>
+        <el-form-item label="排序" prop="sort"
+                      :rules="[{ required: true, message: '请输入排序'}]">
+          <el-input placeholder="请输入排序" autocomplete="off" v-model="menu.sort" type="number"></el-input>
         </el-form-item>
-
       </el-form>
       <span slot="footer" class="dialog-footer">
-          <el-button @click="dialogVisible2 = false">取 消</el-button>
+          <el-button @click="dialogVisibleEdit = false">取 消</el-button>
           <el-button type="primary" @click="subJson">确 定</el-button>
         </span>
     </Modal>
-
+	<Modal
+	  v-model="dialogVisibleAdd"
+	  title="添加子分类"
+	  :modal="false"
+	  @on-cancel="editClose2">
+	  <el-form ref="addchildren" :model="addmenu" label-width="120px">
+	    <el-form-item label="分类名称" prop="name"
+	                  :rules="[{ required: true, message: '请输入分类名称'}]">
+	      <el-input placeholder="请输入分类名称" autocomplete="off" v-model="addmenu.name"></el-input>
+	    </el-form-item>
+	    <el-form-item label="排序" prop="sort"
+	                  :rules="[{ required: true, message: '请输入排序'}]">
+	      <el-input placeholder="请输入排序" autocomplete="off" v-model="addmenu.sort" type="number"></el-input>
+	    </el-form-item>
+	  </el-form>
+	  <span slot="footer" class="dialog-footer">
+	      <el-button @click="dialogVisibleAdd = false">取 消</el-button>
+	      <el-button type="primary" @click="addKidCate">确 定</el-button>
+	    </span>
+	</Modal>
   </div>
 </template>
 
@@ -198,7 +101,7 @@
     import IPageHeader from "../../../layouts/system/page-header/index";
     import Setting from "../../../setting";
     import UiUpload from "../../../ui/upload/index";
-    import {SystemAdverPageDel, SystemAdverPageInfo, SystemAdverPage, SystemAdverPageTree,SystemAdverPageUpdate,getCate} from "../../../api/system/adver";
+    import {SystemAdverPageDel, SystemAdverPageInfo, SystemAdverPage, SystemAdverPageTree,SystemAdverPageUpdate,getCate,editCate,subcateadd,delCate} from "../../../api/system/adver";
     export default {
         name: 'page',
         components: {
@@ -207,6 +110,8 @@
         },
         data () {
             return {
+				dialogVisibleAdd:false,//添加子类弹窗
+				dialogVisibleEdit: false,//编辑弹窗
                 title : "添加广告分类",
                 treeSelect: [],
                 FromData: null,
@@ -239,13 +144,14 @@
                 tableData: [],
                 menu:{
                     id : 0,
-                    cate_name:"",
-                    type:1,
-                    pid:"0",
-                    max_count:0,
-                    mono:"",
-                    jsonAr:[]
+					name: '',
+					sort: 0
                 },
+				addmenu: {
+					pid: 0,
+					name: '',
+					sort: 0
+				},
                  menuJsonIndex : -1,
                 json:{
                     name:"",
@@ -262,6 +168,31 @@
             this.getList();
         },
         methods: {
+			//添加子类
+			addKidCate() {
+				let that = this
+				// subcateadd(that.addmenu).then(res => {
+				// 	console.log(res);
+				// 	this.$Message.success("添加子分类成功");
+				// 	 this.getList();
+				// 	 this.dialogVisibleAdd = false;
+				// })
+				that.$refs.addchildren.validate(val => {
+					if(val) {
+						subcateadd(that.addmenu).then(res => {
+							console.log(res);
+							that.$Message.success("添加子分类成功");
+							 that.getList();
+							 that.dialogVisibleAdd = false;
+						})
+					}
+				})
+			},
+			//打开添加子类弹出
+			tapAddKid(item) {
+				this.addmenu.pid = item.id
+				this.dialogVisibleAdd = true
+			},
             // 商品分类;
             goodsCategory () {
                 SystemAdverPageTree().then(res => {
@@ -328,24 +259,27 @@
              * 关闭弹出层
              */
             editClose2:function(){
-                this.dialogVisible2 = false;
+                this.dialogVisibleEdit = false;
             },
             /**
-             * 自定义分类
+             * 编辑分类
              */
             subJson:function(){
-
-                this.$refs['json'].validate((valid) => {
-                    if (valid) {
-
-                         if(this.menuJsonIndex >= 0) {
-                             this.menu.jsonAr[this.menuJsonIndex] = JSON.parse(JSON.stringify(this.json));
-                         } else {
-                             this.menu.jsonAr.push(JSON.parse(JSON.stringify(this.json)));
-                         }
-                        this.dialogVisible2 = false;
-                    }
-                });
+				let that = this
+				this.$refs.editcate.validate(val=> {
+					if(val) {
+						editCate({
+							id: that.menu.id,
+							name: that.menu.name,
+							sort: that.menu.sort
+						}).then(res => {
+							console.log(res);
+							this.$Message.success("修改成功");
+							 this.getList();
+							 this.dialogVisibleEdit = false;
+						})
+					}
+				})
             },
             /**
              * 修改数据
@@ -383,22 +317,17 @@
             },
             // 删除
             del (row, tit, num) {
-                this.$confirm('此操作将永久删除该栏目分类, 是否继续?', '提示', {
+                this.$confirm('此操作将永久删除该分类, 是否继续?', '提示', {
                     confirmButtonText: '确定',
                     cancelButtonText: '取消',
                     type: 'warning'
                 }).then(() => {
-                    this.$utils.loading(this, "删除数据中...");
-                    SystemAdverPageDel({id: row.id})
+                    delCate({id: row.id})
                         .then(res => {
-                            this.$utils.loadingClose();
                             this.loading = true;
-                            if (res.code == 200) {
-                                this.getList();
-                                this.goodsCategory();
-                            } else {
-                                this.$alert(res.msg);
-                            }
+                            this.getList();
+                            // this.goodsCategory();
+                            this.$Message.success("删除成功");
                         })
                         .catch(err => {
                             this.$utils.loadingClose();
@@ -409,24 +338,28 @@
             /**
              * 修改分类
              */
-            tapEdit:function(id){
-                this.$utils.loading(this,"获取数据中...");
-                SystemAdverPageInfo({id:id})
-                    .then(res=>{
-                        this.$utils.loadingClose();
-                        if(res.code == 200) {
-                            this.menu = res.data;
-                            this.menu.jsonAr = res.data.json == "" ? [] :  JSON.parse(res.data.json);
-                            this.dialogVisible = true;
-                            this.title = "修改广告分类";
-                        } else {
-                            this.$alert(res.msg);
-                        }
-                    })
-                    .catch(err=>{
-                        this.$utils.loadingClose();
-                        this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-                    });
+            tapEdit:function(item){
+				console.log(item);
+				let that = this
+				that.menu = {id: item.id,name: item.name, sort: item.sort}
+				 this.dialogVisibleEdit = true;
+                // this.$utils.loading(this,"获取数据中...");
+                // SystemAdverPageInfo({id:id})
+                //     .then(res=>{
+                //         this.$utils.loadingClose();
+                //         if(res.code == 200) {
+                //             this.menu = res.data;
+                //             this.menu.jsonAr = res.data.json == "" ? [] :  JSON.parse(res.data.json);
+                //             this.dialogVisible = true;
+                //             this.title = "修改广告分类";
+                //         } else {
+                //             this.$alert(res.msg);
+                //         }
+                //     })
+                //     .catch(err=>{
+                //         this.$utils.loadingClose();
+                //         this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+                //     });
             },
             // 表格搜索
             userSearchs () {

+ 193 - 305
src/components/system/eduction/detail.vue

@@ -13,52 +13,54 @@
 				<el-form-item label="课程简介" prop="course_speaker_intro" :rules="[{ required: true, message: '请输入课程简介'}]">
 					<el-input placeholder="请输入课程简介" autocomplete="off" v-model="form.course_speaker_intro"></el-input>
 				</el-form-item>
-				<el-form-item label="课程分类" prop="course_cate_id" :rules="[{ required: true, message: '请选择课程分类'}]">
-					<el-cascader v-model="form.course_cate_id" :options="options" @change="handleChange"
-						:show-all-levels="false" style="width: 100%;"></el-cascader>
+				<el-form-item label="分类" prop="course_cate_id" :rules="[{ required: true, message: '请选择分类'}]">
+					<el-cascader v-model="form.course_cate_id" :options="options" @change="handleChange" :show-all-levels="false"
+						style="width: 100%;" :props="propss"></el-cascader>
 				</el-form-item>
 				<el-form-item label="课程分组" prop="gr_id" :rules="[{ required: true, message: '请选择课程分组'}]">
-					<el-cascader v-model="form.gr_id" :options="options" @change="handleChange" :show-all-levels="false"
-						style="width: 100%;"></el-cascader>
+					<el-select v-model="form.gr_id" placeholder="请选择" style="width: 100%;">
+						<el-option v-for="item in optionss" :key="item.gr_id" :label="item.title" :value="item.gr_id">
+						</el-option>
+					</el-select>
 				</el-form-item>
 				<el-form-item label="排序" prop="sort" :rules="[{ required: true, message: '请输入课程排序'}]">
-					<el-input placeholder="请输入课程标题" autocomplete="off" v-model="form.sort"></el-input>
+					<el-input placeholder="请输入课程标题" autocomplete="off" v-model="form.sort" type="number"></el-input>
 				</el-form-item>
 				<el-form-item label="价格" prop="course_price" :rules="[{ required: true, message: '请输入价格'}]">
-					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price"></el-input>
+					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price" type="number"></el-input>
 				</el-form-item>
 				<el-form-item label="认证价格" prop="course_price_2" :rules="[{ required: true, message: '请输入价格'}]">
-					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price_2"></el-input>
+					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price_2" type="number"></el-input>
 				</el-form-item>
 				<el-form-item label="二次认证价格" prop="course_price_3" :rules="[{ required: true, message: '请输入价格'}]">
-					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price_3"></el-input>
+					<el-input placeholder="请输入价格" autocomplete="off" v-model="form.course_price_3" type="number"></el-input>
 				</el-form-item>
-				<el-form-item label="积分最多抵扣" prop="deduct" :rules="[{ required: true, message: '请输入抵扣数量'}]">
+				<!-- 				<el-form-item label="积分最多抵扣" prop="deduct" >
 					<el-input placeholder="请输入抵扣数量" autocomplete="off" v-model="form.deduct"></el-input>
-				</el-form-item>
+				</el-form-item> -->
 				<el-form-item label="从业人员专用" prop="course_only_for_employee"
 					:rules="[{ required: true, message: '请选择是否从业人员专用'}]">
-					<el-radio v-model="form.course_only_for_employee" label="0">否</el-radio>
-					<el-radio v-model="form.course_only_for_employee" label="1">是</el-radio>
+					<el-radio v-model="form.course_only_for_employee" :label="0">否</el-radio>
+					<el-radio v-model="form.course_only_for_employee" :label="1">是</el-radio>
 				</el-form-item>
 				<el-form-item label="生成线下核销码" prop="make_code" :rules="[{ required: true, message: '请选择是否生成线下核销码'}]">
-					<el-radio v-model="form.make_code" label="0">否</el-radio>
-					<el-radio v-model="form.make_code" label="1">是</el-radio>
+					<el-radio v-model="form.make_code" :label="0">否</el-radio>
+					<el-radio v-model="form.make_code" :label="1">是</el-radio>
 				</el-form-item>
 				<!-- parent_course -->
 				<el-form-item label="前置课程" prop="parent_course">
 					<!-- <div style="display: flex;"> -->
-					<el-input placeholder="请选择前置课程(留空即为无条件)" autocomplete="off" v-model="form.course_price"
+					<el-input placeholder="请选择前置课程(留空即为无条件)" autocomplete="off" v-model="form.parent_course"
 						disabled></el-input>
-					<el-button type="primary" style="margin-top: 10px;">选择前置课程</el-button>
+					<el-button type="primary" style="margin-top: 10px;" @click="chooseKc = true">选择前置课程(留空或-1即为无条件)</el-button>
 					<!-- </div> -->
 				</el-form-item>
-				<el-form-item label="积分商城广告" prop="ad_pid">
+				<!-- <el-form-item label="积分商城广告" prop="ad_pid">
 					<el-select v-model="form.ad_pid" placeholder="请选择" style="width: 100%;">
 						<el-option v-for="item in optionss" :key="item.value" :label="item.label" :value="item.value">
 						</el-option>
 					</el-select>
-				</el-form-item>
+				</el-form-item> -->
 				<el-form-item label="课程介绍" prop="course_intro" :rules="[{ required: true, message: '请输入课程介绍'}]">
 					<Toolbar style="border: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" />
 					<!-- 编辑器 -->
@@ -67,43 +69,65 @@
 						@onCreated="onCreated" />
 				</el-form-item>
 				<!-- audio_file -->
-				<el-form-item label="课程文件" prop="audio_file" :rules="[{ required: true, message: '请输入课程介绍'}]">
-					<el-upload
-					  class="upload-demo"
-					  drag
-					  :action="upUrl"
-					  :multiple="false"
-					 :headers="upHeaders"
-					 :data="{isz:0,code:'files'}"
-					 :before-upload="beforeUpload"
-					 >
-					  <i class="el-icon-upload"></i>
-					  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-					  <div class="el-upload__tip" slot="tip">只能上传mp3文件</div>
+				<el-form-item label="课程文件" prop="course_audio" >
+					<el-upload class="upload-demo" drag :action="upUrl" :multiple="false" :headers="upHeaders"
+						:data="{isz:0,code:'files'}" :before-upload="beforeUpload" :show-file-list="false" :on-success="afterUpload">
+						<i class="el-icon-upload"></i>
+						<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+						<div class="el-upload__tip" slot="tip">只能上传mp3文件</div>
 					</el-upload>
 				</el-form-item>
-				<el-form-item label="课程视频" prop="audio_file" :rules="[{ required: true, message: '请输入课程视频'}]">
-					<el-upload
-					  class="upload-demo"
-					  drag
-					  :action="upUrl"
-					  multiple
-					  :before-upload="beforeUpload4"
-					 :headers="upHeaders"
-					 :data="{isz:0,code:'files'}"
-					 >
-					  <i class="el-icon-upload"></i>
-					  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-					  <div class="el-upload__tip" slot="tip">只能上传mp4文件</div>
+				<audio controls :src="form.course_audio" v-if="form.course_audio" style="margin-left: 120px;">
+				</audio>
+				<el-form-item label="课程视频" prop="course_sp" >
+					<el-upload class="upload-demo" drag :action="upUrl" :multiple="false" :before-upload="beforeUpload4" :on-success="afterUpload4"
+						:headers="upHeaders" :data="{isz:0,code:'files'}" :show-file-list="false">
+						<i class="el-icon-upload"></i>
+						<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+						<div class="el-upload__tip" slot="tip">只能上传mp4文件</div>
 					</el-upload>
 				</el-form-item>
-
+				<video   height="300px" :src="form.course_sp" controls style="margin-left: 120px;" v-if="form.course_sp">
+				</video>
 				<el-form-item>
 					<el-button type="primary" @click="tapOk(1)">{{form.id ? '修改提交': '保存发布'}}</el-button>
 				</el-form-item>
 			</el-form>
 
 		</Card>
+		<el-dialog v-model="chooseKc" :visible.sync="chooseKc" title="选择前置课程" @on-cancel="chooseClose" >
+			<div style="display: flex;align-items: center;margin-bottom: 20px;">
+				<span style="flex-shrink: 0;margin-right: 30px;">已选课程</span>
+				<el-input
+				  placeholder=""
+				  v-model="form.parent_course"
+				  :disabled="true"
+				 >
+				</el-input>
+			</div>
+			
+			<el-input placeholder="请输入课程名称" v-model="eduction.keyword" class="input-with-select" style="margin-bottom: 30px;">
+			    <el-button slot="append" icon="el-icon-search"></el-button>
+			  </el-input>
+			  
+			  <!-- <el-button type="primary" @click="chooseEduction">选择</el-button> -->
+			<el-table :data="eductionList" style="width: 100%" @select="chooseEduction" @select-all="chooseEduction">
+				<el-table-column type="selection" width="55">
+				</el-table-column>
+				<el-table-column prop="course_id" label="ID" width="60">
+				</el-table-column>
+				<el-table-column prop="course_topic" label="课题" width="300">
+				</el-table-column>
+			</el-table>
+			<div class="acea-row row-right page">
+				<Page :total="eduction.count" show-elevator show-total @on-change="tapPage" :page-size="eduction.pageSize" />
+			</div>
+			
+			<!-- <span slot="footer" class="dialog-footer">
+			    <el-button @click="chooseKc = false">取 消</el-button>
+			    <el-button type="primary" @click="chooseKc = false">确 定</el-button>
+			  </span> -->
+		</el-dialog>
 	</div>
 
 </template>
@@ -131,7 +155,13 @@
 		updateArticle,
 		SystemArtDetail,
 		SystemGetArtList,
-		getArtDetail
+		getArtDetail,
+		searchCourse,
+		getCate,
+		getGrlist,
+		getCourseList,
+		editCourse,
+		addCourse,
 	} from "../../../api/system/adver";
 	import UiLoading from "../../../ui/loading/index";
 	import {
@@ -149,6 +179,19 @@
 		computed: {},
 		data() {
 			return {
+				eduction: {
+					keyword: '',
+					count: 0,
+					page: 1,
+					pageSize: 10
+				},
+				eductionList: [],
+				chooseKc: false, //选择课程弹窗
+				propss: {
+					value: 'id',
+					label: 'name',
+					// checkStrictly: true
+				},
 				editor: null,
 
 				toolbarConfig: {
@@ -168,231 +211,34 @@
 				},
 				content: '',
 				form: {
-					content: '',
-					title: '',
-					id: '',
-					course_cover: ''
+					course_id: '',
+					course_cover: '',
+					course_topic: '',
+					course_speaker_intro: '',
+					course_cate_id: '',
+					gr_id: '',
+					sort: '',
+					course_price: '',
+					course_price_2: '',
+					course_price_3: '',
+					course_only_for_employee: 0,
+					make_code: 0,
+					parent_course: '',
+					course_intro: '',
+					course_audio: '',
+					course_sp: ''
 				},
 				pageTitle: '课程详情',
 				upHeaders: {},
 				formActiveName: "tab_base",
 				formData: {
-					id: ""
+					course_id: ""
 				},
 				title: "",
 				dialogVisible: false,
 				upUrl: '',
-				optionss: [{
-					value: '选项1',
-					label: '黄金糕'
-				}, {
-					value: '选项2',
-					label: '双皮奶'
-				}, {
-					value: '选项3',
-					label: '蚵仔煎'
-				}, {
-					value: '选项4',
-					label: '龙须面'
-				}, {
-					value: '选项5',
-					label: '北京烤鸭'
-				}],
-				options: [{
-					value: 'zhinan',
-					label: '指南',
-					children: [{
-						value: 'shejiyuanze',
-						label: '设计原则',
-						children: [{
-							value: 'yizhi',
-							label: '一致'
-						}, {
-							value: 'fankui',
-							label: '反馈'
-						}, {
-							value: 'xiaolv',
-							label: '效率'
-						}, {
-							value: 'kekong',
-							label: '可控'
-						}]
-					}, {
-						value: 'daohang',
-						label: '导航',
-						children: [{
-							value: 'cexiangdaohang',
-							label: '侧向导航'
-						}, {
-							value: 'dingbudaohang',
-							label: '顶部导航'
-						}]
-					}]
-				}, {
-					value: 'zujian',
-					label: '组件',
-					children: [{
-						value: 'basic',
-						label: 'Basic',
-						children: [{
-							value: 'layout',
-							label: 'Layout 布局'
-						}, {
-							value: 'color',
-							label: 'Color 色彩'
-						}, {
-							value: 'typography',
-							label: 'Typography 字体'
-						}, {
-							value: 'icon',
-							label: 'Icon 图标'
-						}, {
-							value: 'button',
-							label: 'Button 按钮'
-						}]
-					}, {
-						value: 'form',
-						label: 'Form',
-						children: [{
-							value: 'radio',
-							label: 'Radio 单选框'
-						}, {
-							value: 'checkbox',
-							label: 'Checkbox 多选框'
-						}, {
-							value: 'input',
-							label: 'Input 输入框'
-						}, {
-							value: 'input-number',
-							label: 'InputNumber 计数器'
-						}, {
-							value: 'select',
-							label: 'Select 选择器'
-						}, {
-							value: 'cascader',
-							label: 'Cascader 级联选择器'
-						}, {
-							value: 'switch',
-							label: 'Switch 开关'
-						}, {
-							value: 'slider',
-							label: 'Slider 滑块'
-						}, {
-							value: 'time-picker',
-							label: 'TimePicker 时间选择器'
-						}, {
-							value: 'date-picker',
-							label: 'DatePicker 日期选择器'
-						}, {
-							value: 'datetime-picker',
-							label: 'DateTimePicker 日期时间选择器'
-						}, {
-							value: 'upload',
-							label: 'Upload 上传'
-						}, {
-							value: 'rate',
-							label: 'Rate 评分'
-						}, {
-							value: 'form',
-							label: 'Form 表单'
-						}]
-					}, {
-						value: 'data',
-						label: 'Data',
-						children: [{
-							value: 'table',
-							label: 'Table 表格'
-						}, {
-							value: 'tag',
-							label: 'Tag 标签'
-						}, {
-							value: 'progress',
-							label: 'Progress 进度条'
-						}, {
-							value: 'tree',
-							label: 'Tree 树形控件'
-						}, {
-							value: 'pagination',
-							label: 'Pagination 分页'
-						}, {
-							value: 'badge',
-							label: 'Badge 标记'
-						}]
-					}, {
-						value: 'notice',
-						label: 'Notice',
-						children: [{
-							value: 'alert',
-							label: 'Alert 警告'
-						}, {
-							value: 'loading',
-							label: 'Loading 加载'
-						}, {
-							value: 'message',
-							label: 'Message 消息提示'
-						}, {
-							value: 'message-box',
-							label: 'MessageBox 弹框'
-						}, {
-							value: 'notification',
-							label: 'Notification 通知'
-						}]
-					}, {
-						value: 'navigation',
-						label: 'Navigation',
-						children: [{
-							value: 'menu',
-							label: 'NavMenu 导航菜单'
-						}, {
-							value: 'tabs',
-							label: 'Tabs 标签页'
-						}, {
-							value: 'breadcrumb',
-							label: 'Breadcrumb 面包屑'
-						}, {
-							value: 'dropdown',
-							label: 'Dropdown 下拉菜单'
-						}, {
-							value: 'steps',
-							label: 'Steps 步骤条'
-						}]
-					}, {
-						value: 'others',
-						label: 'Others',
-						children: [{
-							value: 'dialog',
-							label: 'Dialog 对话框'
-						}, {
-							value: 'tooltip',
-							label: 'Tooltip 文字提示'
-						}, {
-							value: 'popover',
-							label: 'Popover 弹出框'
-						}, {
-							value: 'card',
-							label: 'Card 卡片'
-						}, {
-							value: 'carousel',
-							label: 'Carousel 走马灯'
-						}, {
-							value: 'collapse',
-							label: 'Collapse 折叠面板'
-						}]
-					}]
-				}, {
-					value: 'ziyuan',
-					label: '资源',
-					children: [{
-						value: 'axure',
-						label: 'Axure Components'
-					}, {
-						value: 'sketch',
-						label: 'Sketch Templates'
-					}, {
-						value: 'jiaohu',
-						label: '组件交互文档'
-					}]
-				}]
+				optionss: [],
+				options: []
 			}
 		},
 		created() {
@@ -400,29 +246,82 @@
 				this.pageTitle = this.$route.query.title;
 			}
 			if (this.$route.query.id) {
-				this.form.id = parseInt(this.$route.query.id);
+				this.form.course_id = parseInt(this.$route.query.id);
 			}
 			this.initView();
-
+			this.getCate()
+			this.getEduction()
 		},
 		mounted() {
 
 		},
 		methods: {
+			chooseEduction(item) {
+				console.log(item);
+				let str = ''
+				item.forEach((bb,index)=> {
+					console.log(bb,index);
+					str = str + bb.course_id + (index ==  (item.length - 1) ? '': ',')
+				})
+				this.form.parent_course = str
+			},
+			tapPage: function(index) {
+				this.eduction.page = index;
+				this.getEduction();
+			},
+			getEduction() {
+				getCourseList({
+					page: this.eduction.page,
+					pageSize: this.eduction.pageSize,
+					course_topic: this.eduction.keyword
+				}).then(res => {
+					console.log(res);
+					this.eductionList = res.data.list
+					this.eduction.count = res.data.total
+				})
+			},
+			chooseClose(item) {
+				console.log(item,'ddd');
+			},
+			getCate() {
+				getCate().then(res => {
+					this.options = res.data
+					console.log(res.data);
+				})
+				getGrlist({
+					page: 1,
+					pageSize: 1000
+				}).then(res => {
+					this.optionss = res.data.list
+
+				})
+			},
 			beforeUpload4(file) {
 				console.log(file);
-				if(file.type == 'video/mp4') {
+				if (file.type == 'video/mp4') {
 					return file
-				}else {
+				} else {
 					this.$alert("只支持上传mp4文件", '系统提示');
 					return false
 				}
 			},
+			afterUpload(res) {
+				console.log(res);
+				if(res.code == 200) {
+					this.form.course_audio = res.data.img
+				}
+			},
+			afterUpload4(res) {
+				console.log(res);
+				if(res.code == 200) {
+					this.form.course_sp = res.data.img
+				}
+			},
 			beforeUpload(file) {
 				console.log(file);
-				if(file.type == 'audio/mpeg') {
+				if (file.type == 'audio/mpeg') {
 					return file
-				}else {
+				} else {
 					this.$alert("只支持上传mp3文件", '系统提示');
 					return false
 				}
@@ -454,8 +353,12 @@
 					console.log(res);
 				}
 			},
-			handleChange() {
-
+			handleChange(val) {
+				console.log(val[val.length-1],'ddd');
+				this.form.course_cate_id = val[val.length-1]
+			},
+			handleChangeGr(val) {
+				console.log(val);
 			},
 			onCreated(editor) {
 				this.editor = Object.seal(editor); // 【注意】一定要用 Object.seal() 否则会报错
@@ -485,7 +388,7 @@
 					upHeaders['SYSTEM-ACC-TOKEN'] = token;
 				}
 				this.upHeaders = upHeaders;
-				if (this.form.id) {
+				if (this.form.course_id) {
 					this.getData();
 				}
 			},
@@ -493,33 +396,19 @@
 				let that = this
 				var post = {};
 				const token = this.$utils.util.cookies.get('system_token');
-				console.log(token);
-				console.log(axios);
 				this.$utils.loading(this, "loading..");
-				post.id = this.form.id;
+				post.id = this.form.course_id;
 				let loading = this.$loading('获取数据中..');
-				// SystemArtDetail({},1).then(res => {
-				// 	loading.close();
-				// 	if (res.code == 200) {
-				// 		this.data = res.data;
-				// 	} else {
-				// 		this.$alert(res.msg, '系统提示');
-				// 	}
-				// }).catch(err => {
-				// 	loading.close();
-				// 	this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-				// });
-
 				try {
-					getArtDetail({
-						id: post.id
+					searchCourse({
+						course_id: post.id
 					}).then(res => {
-						console.log(res.data.list[0]);
-						let data = res.data.list[0]
-						this.form.title = data.title
-						// that.$set(that.form,title,)
-						this.form.content = data.content
+						this.form = res.data
+						if (this.form.course_cover && this.form.course_cover.indexOf('http') == -1) {
+							this.form.course_cover = 'http://myj.liuniu946.com' + this.form.course_cover
+						}
 						loading.close();
+						console.log(res);
 					}).catch(err => {
 						loading.close();
 						console.log(err, 'sss');
@@ -542,21 +431,20 @@
 				// this.dialogVisible = true;
 				// console.log(this.content);
 				let that = this
-				if (this.form.id) {
-					updateArticle({
-						id: that.form.id,
-						title: that.form.title,
-						content: that.form.content
-					}).then(res => {
+				if (this.form.course_id) {
+					editCourse(that.form).then(res => {
 						this.$Message.success("修改成功");
 					})
 				} else {
-					SystemAddArt({
-						title: that.form.title,
-						content: that.form.content
-					}).then(res => {
-						this.$Message.success("发布成功");
+					addCourse(that.form).then(res => {
+						this.$Message.success("保存成功");
 					})
+					// SystemAddArt({
+					// 	title: that.form.title,
+					// 	content: that.form.content
+					// }).then(res => {
+					// 	this.$Message.success("发布成功");
+					// })
 				}
 
 			},

+ 80 - 26
src/components/system/eduction/grlists.vue

@@ -26,29 +26,39 @@
 				no-filtered-userFrom-text="暂无筛选结果" :loading="loading" highlight-row>
 
 				     <template slot-scope="{ row, index }" slot="indeximg">
-						 <img  v-lazy="scope.row.indeximg" :src="scope.row.indeximg" v-image-preview style="width: 60px;cursor: pointer;"/>
+						 <img  :src="row.indeximg.indexOf('http') == -1 ? ('http://myj.liuniu946.com'+ row.indeximg) :  row.indeximg" v-image-preview style="width: 60px;cursor: pointer;"/>
 				     </template>
-
-
+					 <template slot-scope="{ row, index }" slot="audit" :style="{color: row.audit == 1 :  'rgb(0, 172, 28)': ''};">
+						 <div>{{row.audit == 1 ?'通过': '审核中'}}</div>
+					 </template>
 				<template slot-scope="{ row, index }" slot="data">
 					<div v-for="(item,index) in row.jsonAr" :key="index">
 						{{ item.name}}:{{ item[item.code] }}
 					</div>
 				</template>
 				<template slot-scope="{ row, index }" slot="action">
-					<a @click="tapEdit(row.id)">编辑</a>
-					<Divider type="vertical" />
-					<a @click="tapEdit(row.id)">轮播</a>
-					<template>
+					<a @click="tapEdit(row)">编辑</a>
+					<template v-if="row.recommend==0">
 						<Divider type="vertical" />
-						<a @click="tapEdit(row.id)">取消轮播</a>
+						<a @click="changeRecommend(row)">轮播</a>
+					</template>
+					<template v-if="row.recommend==1">
+						<Divider type="vertical" />
+						<a @click="changeRecommend(row)">取消轮播</a>
 					</template>
-					<Divider type="vertical" />
-					<a @click="tapDel(row)">审核</a>
 					<template>
+						
+					</template>
+					<template v-if="row.audit == 0">
 						<Divider type="vertical" />
-						<a @click="tapEdit(row.id)">取消审核</a>
+						<a @click="changeAudit(row)">审核</a>
 					</template>
+					<template v-if="row.audit == 1">
+						<Divider type="vertical" />
+						<a @click="changeAudit(row)">取消审核</a>
+					</template>
+					<Divider type="vertical" />
+					<a @click="del(row)">删除</a>
 				</template>
 			</Table>
 			<div class="acea-row row-right page">
@@ -77,7 +87,11 @@
 		SystemAdverUpdate,
 		SystemAdver,
 		SystemAdverInfo,
-		SystemAdverDel
+		SystemAdverDel,
+		getGrlist,
+		changeAudit,
+		changeRecommend,
+		delGr 
 	} from "../../../api/system/adver";
 	export default {
 		name: "adver_index",
@@ -107,12 +121,12 @@
 				adverPageOne: {},
 				columns1: [{
 						title: 'id',
-						key: 'id',
+						key: 'gr_id',
 						minWidth: 50
 					},
 					{
 							title: '排序',
-							key: 'id',
+							key: 'od',
 							minWidth: 50
 						},
 					{
@@ -120,11 +134,11 @@
 						key: 'title',
 						minWidth: 150
 					},
-					{
-						title: '讲师',
-						key: 'user',
-						minWidth: 150
-					},
+					// {
+					// 	title: '讲师',
+					// 	key: 'uname',
+					// 	minWidth: 150
+					// },
 					{
 						title: '封面图片',
 						key: 'indeximg',
@@ -133,7 +147,7 @@
 					},
 					{
 						title: '点击次数',
-						key: 'num',
+						key: 'times',
 						minWidth: 150
 					},
 					{
@@ -143,7 +157,8 @@
 					},
 					{
 						title: '状态',
-						key: 'status',
+						key: 'audit',
+						slot: 'audit',
 						minWidth: 150
 					},
 					{
@@ -151,7 +166,7 @@
 						key: 'action',
 						slot: 'action',
 						fixed: 'right',
-						minWidth: 120
+						minWidth: 250
 					}
 				],
 				loading: true,
@@ -180,6 +195,26 @@
 			this.initView();
 		},
 		methods: {
+			//是否轮播
+			changeRecommend(item) {
+				changeRecommend({
+					gr_id: item.gr_id,
+					recommend: item.recommend == 1? 0: 1
+				}).then(res => {
+					console.log(res);
+					this.getData()
+				})
+			},
+			//审核
+			changeAudit(item) {
+				changeAudit({
+					gr_id: item.gr_id,
+					audit: item.audit == 1? 0: 1
+				}).then(res => {
+					console.log(res);
+					this.getData()
+				})
+			},
 			initView: function() {
 				var upHeaders = {};
 				this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
@@ -227,13 +262,13 @@
 					pageSize: this.page.pageSize,
 					title: this.formValidate.title
 				}
-				SystemGetArtList(data)
+				getGrlist(data)
 					.then(res => {
 						this.loading = false;
 						if (res.code == 200) {
 							this.tableData = res.data.list;
 							// this.page.pageSize = res.data.pageSize;
-							this.page.count = res.data.count;
+							this.page.count = res.data.total;
 						} else {
 							this.$alert(res.msg);
 						}
@@ -284,8 +319,8 @@
 				this.$router.push('/system/eduction/addGrlists')
 			},
 			// 编辑分组
-			tapEdit: function(id) {
-				this.$router.push('/system/eduction/detail?id=' + id)
+			tapEdit: function(item) {
+				this.$router.push('/system/eduction/addGrlists?item=' + JSON.stringify(item))
 			},
 			/**
 			 * 分页
@@ -308,6 +343,25 @@
 					this.form.img = res.data.img;
 				}
 			},
+			del (row, tit, num) {
+			    this.$confirm('此操作将永久删除该分组, 是否继续?', '提示', {
+			        confirmButtonText: '确定',
+			        cancelButtonText: '取消',
+			        type: 'warning'
+			    }).then(() => {
+			        delGr({gr_id: row.gr_id})
+			            .then(res => {
+			                this.loading = true;
+			                this.getData();
+			                // this.goodsCategory();
+			                this.$Message.success("删除成功");
+			            })
+			            .catch(err => {
+			                this.$utils.loadingClose();
+			                this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+			            });
+			    });
+			},
 		}
 	}
 </script>

+ 395 - 343
src/components/system/eduction/list.vue

@@ -1,71 +1,75 @@
 <template>
-  <div>
-    <i-page-header class="product_tabs" title="课程列表">
-    </i-page-header>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-	  <div style="height: 30px;"></div>
-	  
-	  
-      <Form ref="formValidate" :model="formValidate" :label-width="50">
-        <Row type="flex"  :gutter="24">
-          <Col v-bind="grid">
-            <FormItem label="搜索:"  label-for="status2">
-              <Input search enter-button placeholder="请输入文章标题" v-model="formValidate.title" @on-search="userSearchs"/>
-            </FormItem>
-          </Col>
-        </Row>
-        <Row type="flex">
-          <Col v-bind="grid">
-            <Button type="primary" @click="tapAdd"  icon="md-add">添加新课程</Button>
-          </Col>
-        </Row>
-      </Form>
+	<div>
+		<i-page-header class="product_tabs" title="课程列表">
+		</i-page-header>
+		<Card :bordered="false" dis-hover class="ivu-mt">
+			<div style="height: 30px;"></div>
 
-      <Table :columns="columns1" :data="tableData" class="mt25" no-userFrom-text="暂无数据"
-             no-filtered-userFrom-text="暂无筛选结果"  :loading="loading" highlight-row>
 
-        <template slot-scope="{ row, index }" slot="imgs">
-          <img v-lazy="row.img" :src="row.img" v-image-preview style="width: 120px;cursor: pointer;"/>
-        </template>
+			<Form ref="formValidate" :model="formValidate" :label-width="50">
+				<Row type="flex" :gutter="24">
+					<Col v-bind="grid">
+					<FormItem label="搜索:" label-for="status2">
+						<Input search enter-button placeholder="请输入文章标题" v-model="formValidate.title"
+							@on-search="userSearchs" />
+					</FormItem>
+					</Col>
+				</Row>
+				<Row type="flex">
+					<Col v-bind="grid">
+					<Button type="primary" @click="tapAdd" icon="md-add">添加新课程</Button>
+					</Col>
+				</Row>
+			</Form>
 
-        <template slot-scope="{ row, index }" slot="data">
-          <div v-for="(item,index) in row.jsonAr" :key="index">
-            {{ item.name}}:{{ item[item.code] }}
-          </div>
-        </template>
-        <template slot-scope="{ row, index }" slot="action">
-         <a @click="tapEdit(row.id)">编辑</a>
-          <Divider type="vertical"/>
-          <a @click="tapDel(row)">审核</a>
-		  <a @click="tapDel(row)">取消审核</a>
-        </template>
-      </Table>
-      <div class="acea-row row-right page">
-        <Page :total="page.count" show-elevator show-total @on-change="tapPage"
-              :page-size="page.pageSize"/>
-      </div>
-    </Card>
+			<Table :columns="columns1" :data="tableData" class="mt25" no-userFrom-text="暂无数据"
+				no-filtered-userFrom-text="暂无筛选结果" :loading="loading" highlight-row>
 
+				<template slot-scope="{ row, index }" slot="imgs">
+					<img v-lazy="row.img" :src="row.img" v-image-preview style="width: 120px;cursor: pointer;" />
+				</template>
+				<template slot-scope="{ row, index }" slot="course_cover">
+					<img :src="row.course_cover.indexOf('http') == -1 ? ('http://myj.liuniu946.com'+ row.course_cover) :  row.course_cover"
+						v-image-preview style="width: 60px;cursor: pointer;" />
+				</template>
+				<template slot-scope="{ row, index }" slot="course_create_time">
+					<div>{{row.course_create_time | getTime}}</div>
+				</template>
+				<template slot-scope="{ row, index }" slot="data">
+					<div v-for="(item,index) in row.jsonAr" :key="index">
+						{{ item.name}}:{{ item[item.code] }}
+					</div>
+				</template>
+				<template slot-scope="{ row, index }" slot="action">
+					<a @click="tapEdit(row.course_id)">编辑</a>
+					<Divider type="vertical" />
+					<a @click="tapDel(row)" v-if="row.course_audit == 0">审核</a>
+					<a @click="tapDel(row)" v-if="row.course_audit == 1">取消审核</a>
+					<Divider type="vertical" />
+					<a @click="del(row)" >删除</a>
+				</template>
+			</Table>
+			<div class="acea-row row-right page">
+				<Page :total="page.count" show-elevator show-total @on-change="tapPage" :page-size="page.pageSize" />
+			</div>
+		</Card>
 
-    <Modal
-      v-model="dialogVisible"
-      :title="title"
-      @on-cancel="editClose">
 
-      <el-form ref="form" :model="form" label-width="120px">
-        <el-form-item label="文章标题" prop="title"
-                      :rules="[{ required: true, message: '请输入文章标题'}]">
-          <el-input placeholder="请输入文章标题" autocomplete="off" v-model="form.title"></el-input>
-        </el-form-item>
-      </el-form>
+		<Modal v-model="dialogVisible" :title="title" @on-cancel="editClose">
 
-      <span slot="footer" class="dialog-footer">
-          <el-button @click="dialogVisible = false">取 消</el-button>
-          <el-button type="primary" @click="subAdmin">确 定</el-button>
-        </span>
-    </Modal>
+			<el-form ref="form" :model="form" label-width="120px">
+				<el-form-item label="文章标题" prop="title" :rules="[{ required: true, message: '请输入文章标题'}]">
+					<el-input placeholder="请输入文章标题" autocomplete="off" v-model="form.title"></el-input>
+				</el-form-item>
+			</el-form>
 
-  </div>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="dialogVisible = false">取 消</el-button>
+				<el-button type="primary" @click="subAdmin">确 定</el-button>
+			</span>
+		</Modal>
+
+	</div>
 </template>
 
 <script>
@@ -73,308 +77,356 @@
 		SystemGetArtList,
 		SystemDelArt
 	} from "../../../api/system/adver";
-    import IPageHeader from "@/layouts/system/page-header/index";
-    import { mapState, mapActions } from 'vuex';
-    import UiUpload from "@/ui/upload/index";
-    import Setting from "@/setting";
-    import util from "@/libs/util";
-    import {
-        SystemAdverPage,
-        SystemAdverPageTree,
-        SystemAdverUpdate,
-        SystemAdver,
-        SystemAdverInfo, SystemAdverDel
-    } from "../../../api/system/adver";
-    export default {
-        name: "adver_index",
-        components: { UiUpload, IPageHeader},
-        computed: {
-        },
-        data() {
-            return {
-                title:"账号管理",
-                dialogVisible:false,
-                upHeaders:[],
-                upUrl:"",
-                grid: {
-                    xl: 7,
-                    lg: 7,
-                    md: 12,
-                    sm: 24,
-                    xs: 24
-                },
-                artType     : "all",
-                headeAr     : [],
-                headrIndex  : 0,
-                headrIndex2 : 0,
-                adverPage   : [],
-                adverPageOne : {},
-                columns1: [
+	import IPageHeader from "@/layouts/system/page-header/index";
+	import {
+		mapState,
+		mapActions
+	} from 'vuex';
+	import UiUpload from "@/ui/upload/index";
+	import Setting from "@/setting";
+	import util from "@/libs/util";
+	import {
+		SystemAdverPage,
+		SystemAdverPageTree,
+		SystemAdverUpdate,
+		SystemAdver,
+		SystemAdverInfo,
+		SystemAdverDel,
+		getCourseList,
+		updateCourseAudit,
+		deleteCourse
+	} from "../../../api/system/adver";
+	export default {
+		name: "adver_index",
+		components: {
+			UiUpload,
+			IPageHeader
+		},
+		computed: {},
+		data() {
+			return {
+				title: "账号管理",
+				dialogVisible: false,
+				upHeaders: [],
+				upUrl: "",
+				grid: {
+					xl: 7,
+					lg: 7,
+					md: 12,
+					sm: 24,
+					xs: 24
+				},
+				artType: "all",
+				headeAr: [],
+				headrIndex: 0,
+				headrIndex2: 0,
+				adverPage: [],
+				adverPageOne: {},
+				columns1: [{
+						title: 'id',
+						key: 'course_id',
+						minWidth: 50
+					},
 					{
-					    title: 'id',
-					    key: 'id',
-					    minWidth: 50
+						title: '课题',
+						key: 'course_topic',
+						minWidth: 250
 					},
-                    {
-                        title: '课题',
-                        key: 'title',
-                        minWidth: 150
-                    },
+					// {
+					// 	title: '讲师',
+					// 	key: 'course_speaker',
+					// 	minWidth: 150
+					// },
 					{
-					    title: '讲师',
-					    key: 'title',
-					    minWidth: 150
+						title: '封面图片',
+						key: 'course_cover',
+						slot: 'course_cover',
+						minWidth: 150
 					},
 					{
-					    title: '封面图片',
-					    key: 'title',
-					    minWidth: 150
+						title: '价格',
+						key: 'course_price',
+						minWidth: 150
 					},
 					{
-					    title: '价格',
-					    key: 'title',
-					    minWidth: 150
+						title: '次数',
+						key: 'course_play_count',
+						minWidth: 150
 					},
 					{
-					    title: '次数',
-					    key: 'title',
-					    minWidth: 150
+						title: '创建时间',
+						key: 'course_create_time',
+						slot: 'course_create_time',
+						minWidth: 150
 					},
-                    {
-                        title: '创建时间',
-                        key: 'create_time',
-                        minWidth: 150
-                    },
-                    {
-                        title: '操作',
-                        key: 'action',
-                        slot: 'action',
-                        fixed: 'right',
-                        minWidth: 120
-                    }
-                ],
-                loading: true,
-                tableData: [],
-                page : {
-                    count : 0,//一共多少数量
-                    pageSize : 10,//每一页码数量
-                    page : 1,//当前页码
-                },
-                formValidate:{title:""},
-                form:{
-                    title     : "",
-                    text      : "",
-                    url       : "",
-                    img       : "",
-                    sort      : 0,
-                    is_show   : 1,
-                    page_id   : 0
-                },
-                dataAr    : []
-            }
-        },
-        mounted(){
-            this.initView();
-        },
-        methods: {
-            initView : function(){
-                var upHeaders = {};
-                this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
-                const token = this.$utils.util.cookies.get('system_token');
-                if (token) {
-                    upHeaders['SYSTEM-ACC-TOKEN'] = token;
-                }
-                this.upHeaders = upHeaders;
-                 this.getAdverPage();
-            },
+					{
+						title: '操作',
+						key: 'action',
+						slot: 'action',
+						fixed: 'right',
+						minWidth: 200
+					}
+				],
+				loading: true,
+				tableData: [],
+				page: {
+					count: 0, //一共多少数量
+					pageSize: 10, //每一页码数量
+					page: 1, //当前页码
+				},
+				formValidate: {
+					title: ""
+				},
+				form: {
+					title: "",
+					text: "",
+					url: "",
+					img: "",
+					sort: 0,
+					is_show: 1,
+					page_id: 0
+				},
+				dataAr: []
+			}
+		},
+		mounted() {
+			this.initView();
+		},
+		filters: {
+			getTime(time) {
+				const num =13 - (time+'').length;
+				let l = 1;//倍数
+				for (let i = 0; i < num; i++) {
+					l+='0';
+				}
+				// 重新解析为数字
+				l = parseInt(l)
+				const date = new Date(parseInt(time) * l);
+				const year = date.getFullYear();
+				const mon = date.getMonth() + 1;
+				const day = date.getDate();
+				const hours = date.getHours();
+				const minu = date.getMinutes();
+				const sec = date.getSeconds();
+				return year + '-' + mon + '-' + day + ' ' + hours + ':' + minu + ':' + sec;
+			}
+		},
+		methods: {
+			initView: function() {
+				var upHeaders = {};
+				this.upUrl = Setting.apiBaseURL + "/systemv1/upload/index";
+				const token = this.$utils.util.cookies.get('system_token');
+				if (token) {
+					upHeaders['SYSTEM-ACC-TOKEN'] = token;
+				}
+				this.upHeaders = upHeaders;
+				this.getAdverPage();
+			},
 
 
-            getAdverPage:function(){
-                this.$utils.loading(this, "删除数据中...");
-                var PromiseAll = [SystemAdverPageTree(),SystemAdverPage()];
-                Promise.all(PromiseAll)
-                    .then(res=>{
-                        this.$utils.loadingClose();
-                        this.adverPage = res[0].data;
-                        this.headeAr = res[1].data;
-                        this.getData();
-                    })
-                    .catch(err=>{
-                        console.log(err);
-                        this.$utils.loadingClose();
-                        this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-                    });
-            },
+			getAdverPage: function() {
+				this.$utils.loading(this, "删除数据中...");
+				var PromiseAll = [SystemAdverPageTree(), SystemAdverPage()];
+				Promise.all(PromiseAll)
+					.then(res => {
+						this.$utils.loadingClose();
+						this.adverPage = res[0].data;
+						this.headeAr = res[1].data;
+						this.getData();
+					})
+					.catch(err => {
+						console.log(err);
+						this.$utils.loadingClose();
+						this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+					});
+			},
 
-            /**
-             * 获取数据
-             */
-            getData:function () {
-                // if (this.headeAr[this.headrIndex] == null ||
-                //     this.headeAr[this.headrIndex].children[this.headrIndex2] == null) {
-                //     return ;
-                // }
-                // var data = {
-                //     title : this.formValidate.title,
-                //     page : this.page.page,
-                //     pageSize : this.headeAr[this.headrIndex].children[this.headrIndex2].id
-                // };
+			/**
+			 * 获取数据
+			 */
+			getData: function() {
+				// if (this.headeAr[this.headrIndex] == null ||
+				//     this.headeAr[this.headrIndex].children[this.headrIndex2] == null) {
+				//     return ;
+				// }
+				// var data = {
+				//     title : this.formValidate.title,
+				//     page : this.page.page,
+				//     pageSize : this.headeAr[this.headrIndex].children[this.headrIndex2].id
+				// };
 				let data = {
 					page: this.page.page,
 					pageSize: this.page.pageSize,
-					title: this.formValidate.title
+					course_topic: this.formValidate.title
 				}
-                SystemGetArtList(data)
-                    .then(res=>{
-                        this.loading = false;
-                        if(res.code == 200) {
-                            this.tableData = res.data.list;
-                            // this.page.pageSize = res.data.pageSize;
-                            this.page.count = res.data.count;
-                        } else {
-                            this.$alert(res.msg);
-                        }
-                    })
-                    .catch(err=>{
-                        console.log(err);
-                        this.loading = false;
-                        this.$utils.loadingClose();
-                        this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-                    });
-            },
-            userSearchs () {
-                this.page.page = 1;
-                this.loading = true;
-                this.getData();
-            },
+				getCourseList(data)
+					.then(res => {
+						this.loading = false;
+						if (res.code == 200) {
+							this.tableData = res.data.list;
+							// this.page.pageSize = res.data.pageSize;
+							this.page.count = res.data.total;
+						} else {
+							this.$alert(res.msg);
+						}
+					})
+					.catch(err => {
+						console.log(err);
+						this.loading = false;
+						this.$utils.loadingClose();
+						this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+					});
+			},
+			userSearchs() {
+				this.page.page = 1;
+				this.loading = true;
+				this.getData();
+			},
 
-            tapEl1:function(index){
-                this.headrIndex = index;
-            },
-            tapEl2:function(index){
-                this.headrIndex2 = index;
-                this.page.page = 1;
-                this.loading = true;
-                this.getData();
-            },
+			tapEl1: function(index) {
+				this.headrIndex = index;
+			},
+			tapEl2: function(index) {
+				this.headrIndex2 = index;
+				this.page.page = 1;
+				this.loading = true;
+				this.getData();
+			},
 
-            tapInput:function(ethis,index,code){
-              console.log(ethis);
-            },
-            //关闭
-            editClose:function(){
-                this.dialogVisible = false;
-            },
-            /**
-             * 添加广告栏目
-             */
-            tapAdd:function(sassid){
-                // this.dialogVisible = true;
-                // if(this.headeAr.length <= 0) {
-                //     this.$alert('无广告栏目,无法添加');
-                // }
-                // var data = this.headeAr[this.headrIndex].children[this.headrIndex2];
-                // this.dataAr = data.json == '' ? [] : JSON.parse(data.json);
-                // this.adverPageOne = data;
-                // this.$refs['form'].resetFields();
-                // this.form = this.$utils.resetFields(this.form, {page_id:data.id});
-				this.$router.push('/system/article/detail')
-            },
-            /**
-             * 修改分页
-             */
-            tapEdit:function(id){
-                this.$router.push('/system/article/detail?id=' + id)
-            },
-            /**
-             * 切换广告
-             */
-            tapChanggePage:function(id){
-              var data = {};
-              for(var i in this.adverPage) {
-                  if(this.adverPage[i].id == id) {
-                      data = this.adverPage[i];
-                  }
-              }
-              var jsonData = data.json == '' ? [] : JSON.parse(data.json);
-              this.dataAr = jsonData;
-            },
-            /**
-             * 分页
-             */
-            tapPage:function(index){
-                this.page.page = index;
-                this.getData();
-            },
-            /**
-             * 修改数据
-             */
-            subAdmin:function(){
-                this.$refs['form'].validate((valid) => {
-                    if (valid) {
-                        let loading = this.$loading("提交数据中...");
-                        var data = {};
-                        for(var i in this.form) {
-                            data[i] = this.form[i];
-                        }
-                        data['data'] = JSON.stringify(this.dataAr);
-                        SystemAdverUpdate(data)
-                            .then(res => {
-                                loading.close();
-                                if (res.code == 200) {
-                                    this.dialogVisible = false;
-                                    this.$Message.success("操作成功");
-                                    this.getData();
-                                } else {
-                                    this.$alert(res.msg, '系统提示');
-                                }
-                            })
-                            .catch(err => {
-                                loading.close();
-                                this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-                            });
-                    }
-                });
-            },
-            /**
-             * 上传文件
-             * @param res
-             */
-            onUpload:function (res) {
-                if(res.code == -1) {
-                    Notice.error({ title : "系统提示", content:res.msg});
-                } else {
-                    this.form.img = res.data.img;
-                }
-            },
-            // 删除
-            tapDel (row) {
-                this.$confirm('此操作将永久删除该文章, 是否继续?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    this.$utils.loading(this, "删除数据中...");
-                    SystemDelArt({id:row.id})
-                        .then(res => {
-                            this.$utils.loadingClose();
-                            this.loading = true;
-                            if (res.code == 200) {
-                                this.getData();
-                            } else {
-                                this.$alert(res.msg);
-                            }
-                        })
-                        .catch(err => {
-                            this.$utils.loadingClose();
-                            this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
-                        });
-                });
-            },
-        }
-    }
+			tapInput: function(ethis, index, code) {
+				console.log(ethis);
+			},
+			//关闭
+			editClose: function() {
+				this.dialogVisible = false;
+			},
+			/**
+			 * 添加广告栏目
+			 */
+			tapAdd: function(sassid) {
+				// this.dialogVisible = true;
+				// if(this.headeAr.length <= 0) {
+				//     this.$alert('无广告栏目,无法添加');
+				// }
+				// var data = this.headeAr[this.headrIndex].children[this.headrIndex2];
+				// this.dataAr = data.json == '' ? [] : JSON.parse(data.json);
+				// this.adverPageOne = data;
+				// this.$refs['form'].resetFields();
+				// this.form = this.$utils.resetFields(this.form, {page_id:data.id});
+				this.$router.push('/system/eduction/detail')
+			},
+			/**
+			 * 修改分页
+			 */
+			tapEdit: function(id) {
+				this.$router.push('/system/eduction/detail?id=' + id)
+			},
+			/**
+			 * 切换广告
+			 */
+			tapChanggePage: function(id) {
+				var data = {};
+				for (var i in this.adverPage) {
+					if (this.adverPage[i].id == id) {
+						data = this.adverPage[i];
+					}
+				}
+				var jsonData = data.json == '' ? [] : JSON.parse(data.json);
+				this.dataAr = jsonData;
+			},
+			/**
+			 * 分页
+			 */
+			tapPage: function(index) {
+				this.page.page = index;
+				this.getData();
+			},
+			/**
+			 * 修改数据
+			 */
+			subAdmin: function() {
+				this.$refs['form'].validate((valid) => {
+					if (valid) {
+						let loading = this.$loading("提交数据中...");
+						var data = {};
+						for (var i in this.form) {
+							data[i] = this.form[i];
+						}
+						data['data'] = JSON.stringify(this.dataAr);
+						SystemAdverUpdate(data)
+							.then(res => {
+								loading.close();
+								if (res.code == 200) {
+									this.dialogVisible = false;
+									this.$Message.success("操作成功");
+									this.getData();
+								} else {
+									this.$alert(res.msg, '系统提示');
+								}
+							})
+							.catch(err => {
+								loading.close();
+								this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+							});
+					}
+				});
+			},
+			/**
+			 * 上传文件
+			 * @param res
+			 */
+			onUpload: function(res) {
+				if (res.code == -1) {
+					Notice.error({
+						title: "系统提示",
+						content: res.msg
+					});
+				} else {
+					this.form.img = res.data.img;
+				}
+			},
+		
+			tapDel(row) {
+				updateCourseAudit({
+					course_id: row.course_id
+				}).then(res => {
+					this.$Message.success("操作成功");
+					this.getData();
+				})
+				
+			},
+				// 删除
+			del (row, tit, num) {
+			    this.$confirm('此操作将永久删除该课程, 是否继续?', '提示', {
+			        confirmButtonText: '确定',
+			        cancelButtonText: '取消',
+			        type: 'warning'
+			    }).then(() => {
+			        deleteCourse({course_id: row.course_id})
+			            .then(res => {
+			                this.loading = true;
+			                this.getData();
+			                // this.goodsCategory();
+			                this.$Message.success("删除成功");
+			            })
+			            .catch(err => {
+			                this.$utils.loadingClose();
+			                this.$alert("网络繁忙,加载失败,请稍等片刻在尝试!", '系统提示');
+			            });
+			    });
+			},
+		}
+	}
 </script>
 <style scoped>
-  .platform-img{width: 20px;height: 20px;background: #f2f2f2; margin-right: 4px;}
-  .platform-img img{ width: 100%;}
-</style>
+	.platform-img {
+		width: 20px;
+		height: 20px;
+		background: #f2f2f2;
+		margin-right: 4px;
+	}
+
+	.platform-img img {
+		width: 100%;
+	}
+</style>

+ 7 - 6
src/components/system/login/index.vue

@@ -24,13 +24,13 @@
                    placeholder="请输入密码" size="large"/>
           </FormItem>
 
-          <FormItem prop="code">
+          <!-- <FormItem prop="code">
             <div class="code fx-r fx-bc">
               <Input type="text" style="width: 150px;" v-model="formInline.code" prefix="ios-keypad-outline"
                      placeholder="请输入验证码" size="large"/>
               <img :src="verifyImg" class="pictrue" @click="tapCaptchas"/>
             </div>
-          </FormItem>
+          </FormItem> -->
 
           <FormItem>
             <Button v-if="!isLogin" type="primary" long size="large" @click="handleSubmit('formInline')" class="btn">
@@ -91,9 +91,9 @@
                     password: [
                         { required: true, message: '请输入密码', trigger: 'blur' }
                     ],
-                    code: [
-                        { required: true, message: '请输入验证码', trigger: 'blur' }
-                    ]
+                    // code: [
+                    //     { required: true, message: '请输入验证码', trigger: 'blur' }
+                    // ]
                 },
                 sass:{
                     logo : "",
@@ -144,7 +144,8 @@
                 SystemLogin({
                     account: this.formInline.username,
                     pwd: this.formInline.password,
-                    imgcode: this.formInline.code
+                    // imgcode: this.formInline.code
+					imgcode: 1234
                 })
                     .then(async  res=>{
                         this.isLogin = false;