杨豪
4 years ago
10 changed files with 785 additions and 3 deletions
@ -0,0 +1,27 @@
|
||||
import request from '@/utils/request' |
||||
|
||||
export function add(data) { |
||||
return request({ |
||||
url: 'api/cyCourse', |
||||
method: 'post', |
||||
data |
||||
}) |
||||
} |
||||
|
||||
export function del(ids) { |
||||
return request({ |
||||
url: 'api/cyCourse/', |
||||
method: 'delete', |
||||
data: ids |
||||
}) |
||||
} |
||||
|
||||
export function edit(data) { |
||||
return request({ |
||||
url: 'api/cyCourse', |
||||
method: 'put', |
||||
data |
||||
}) |
||||
} |
||||
|
||||
export default { add, edit, del } |
@ -0,0 +1,205 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px"> |
||||
<el-form-item label="标题"> |
||||
<el-input v-model="form.title" style="width: 370px;" /> |
||||
</el-form-item> |
||||
<el-form-item label="作者"> |
||||
<el-input v-model="form.author" style="width: 370px;" /> |
||||
</el-form-item> |
||||
<el-form-item label="封面"> |
||||
<MaterialList v-model="form.imageArr" style="width: 370px" type="image" :num="1" :width="150" :height="150" /> |
||||
</el-form-item> |
||||
<el-form-item label="简介"> |
||||
<el-input v-model="form.synopsis" style="width: 370px;" rows="5" type="textarea" /> |
||||
</el-form-item> |
||||
<el-form-item label="正文"> |
||||
<!--<editor v-model="form.content" />--> |
||||
<ueditor-wrap v-model="form.content" :config="myConfig" @beforeInit="addCustomDialog" style="width: 90%;"></ueditor-wrap> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<!--<el-button type="text" @click="cancel">取消</el-button>--> |
||||
<el-button :loading="loading" type="primary" @click="doSubmit">保存</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
<!--<div slot="footer" class="dialog-footer">--> |
||||
<!--<el-button type="text" @click="cancel">取消</el-button>--> |
||||
<!--<el-button :loading="loading" type="primary" @click="doSubmit">确认</el-button>--> |
||||
<!--</div>--> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import { add, edit, get } from '@/api/yxArticle' |
||||
import picUpload from '@/components/pic-upload' |
||||
// import editor from '../../components/Editor' |
||||
import yamedit from '@/components/YamlEdit' |
||||
import MaterialList from '@/components/material' |
||||
import UeditorWrap from 'vue-ueditor-wrap'; |
||||
export default { |
||||
components: { picUpload, yamedit, MaterialList, UeditorWrap }, |
||||
// props: { |
||||
// isAdd: { |
||||
// type: Boolean, |
||||
// required: true |
||||
// } |
||||
// }, |
||||
data() { |
||||
return { |
||||
loading: false, dialog: false, |
||||
form: { |
||||
id: '', |
||||
cid: '', |
||||
title: '', |
||||
author: '', |
||||
imageInput: '', |
||||
imageArr: [], |
||||
synopsis: '', |
||||
content: '', |
||||
shareTitle: '', |
||||
shareSynopsis: '', |
||||
visit: '', |
||||
sort: '', |
||||
url: '', |
||||
status: '', |
||||
addTime: '', |
||||
hide: '', |
||||
merId: '', |
||||
productId: '', |
||||
isHot: '', |
||||
isBanner: '' |
||||
}, |
||||
rules: { |
||||
}, |
||||
myConfig: { |
||||
autoHeightEnabled: false, // 编辑器不自动被内容撑高 |
||||
initialFrameHeight: 500, // 初始容器高度 |
||||
initialFrameWidth: '100%', // 初始容器宽度 |
||||
UEDITOR_HOME_URL: '/UEditor/', |
||||
serverUrl: '' |
||||
} |
||||
} |
||||
}, |
||||
watch: { |
||||
}, |
||||
created() { |
||||
this.form.id = this.$route.params.id |
||||
this.$nextTick(() => { |
||||
//this.init() |
||||
if(this.form.id){ |
||||
get(this.form.id).then(data => { |
||||
this.form = data |
||||
this.form.imageArr = [data.imageInput] |
||||
}) |
||||
} |
||||
|
||||
}) |
||||
}, |
||||
methods: { |
||||
addCustomDialog () { |
||||
window.UE.registerUI('yshop', function (editor, uiName) { |
||||
let dialog = new window.UE.ui.Dialog({ |
||||
iframeUrl: '/yshop/materia/index', |
||||
editor: editor, |
||||
name: uiName, |
||||
title: '上传图片', |
||||
cssRules: 'width:1200px;height:500px;padding:20px;' |
||||
}); |
||||
this.dialog = dialog; |
||||
|
||||
var btn = new window.UE.ui.Button({ |
||||
name: 'dialog-button', |
||||
title: '上传图片', |
||||
cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -726px -77px;`, |
||||
onclick: function () { |
||||
dialog.render(); |
||||
dialog.open(); |
||||
} |
||||
}); |
||||
|
||||
return btn; |
||||
}, 37); |
||||
}, |
||||
cancel() { |
||||
this.resetForm() |
||||
}, |
||||
doSubmit() { |
||||
this.loading = true |
||||
if(this.form.imageArr.length > 0){ |
||||
this.form.imageInput = this.form.imageArr.join(',') |
||||
}else{ |
||||
this.form.imageInput = '' |
||||
} |
||||
|
||||
if (!this.form.id) { |
||||
this.doAdd() |
||||
} else this.doEdit() |
||||
}, |
||||
doAdd() { |
||||
add(this.form).then(res => { |
||||
this.resetForm() |
||||
this.$notify({ |
||||
title: '添加成功', |
||||
type: 'success', |
||||
duration: 2500 |
||||
}) |
||||
this.loading = false |
||||
// this.$parent.init() |
||||
setTimeout(() => { |
||||
this.$router.push({ path: '/wechat/wearticle' }); |
||||
}, 500); |
||||
}).catch(err => { |
||||
this.loading = false |
||||
console.log(err.response.data.message) |
||||
}) |
||||
}, |
||||
doEdit() { |
||||
edit(this.form).then(res => { |
||||
this.resetForm() |
||||
this.$notify({ |
||||
title: '修改成功', |
||||
type: 'success', |
||||
duration: 2500 |
||||
}) |
||||
this.loading = false |
||||
// this.$parent.init() |
||||
setTimeout(() => { |
||||
this.$router.push({ path: '/wechat/wearticle' }); |
||||
}, 500); |
||||
}).catch(err => { |
||||
this.loading = false |
||||
console.log(err.response.data.message) |
||||
}) |
||||
}, |
||||
resetForm() { |
||||
this.dialog = false |
||||
this.$refs['form'].resetFields() |
||||
this.form = { |
||||
id: '', |
||||
cid: '', |
||||
title: '', |
||||
author: '', |
||||
imageInput: '', |
||||
synopsis: '', |
||||
shareTitle: '', |
||||
shareSynopsis: '', |
||||
visit: '', |
||||
sort: '', |
||||
url: '', |
||||
status: '', |
||||
addTime: '', |
||||
hide: '', |
||||
adminId: '', |
||||
merId: '', |
||||
productId: '', |
||||
isHot: '', |
||||
isBanner: '' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
@ -0,0 +1,189 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<!--工具栏--> |
||||
<div class="head-container"> |
||||
<!-- 新增 --> |
||||
<div style="display: inline-block;margin: 0px 2px;"> |
||||
<el-button |
||||
v-permission="['admin','YXARTICLE_ALL','YXARTICLE_CREATE']" |
||||
class="filter-item" |
||||
size="mini" |
||||
type="primary" |
||||
icon="el-icon-plus" |
||||
> |
||||
<router-link :to="'/wechat/artadd'"> |
||||
新增 |
||||
</router-link> |
||||
</el-button> |
||||
</div> |
||||
</div> |
||||
<!--表单组件--> |
||||
<!--<eForm ref="form" :is-add="isAdd" />--> |
||||
<!--表格渲染--> |
||||
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;"> |
||||
<el-table-column prop="id" label="ID" /> |
||||
<el-table-column prop="title" label="标题" /> |
||||
<el-table-column prop="author" label="作者" /> |
||||
<el-table-column ref="table" prop="imageInput" label="封面"> |
||||
<template slot-scope="scope"> |
||||
<a :href="scope.row.imageInput" style="color: #42b983" target="_blank"><img :src="scope.row.imageInput" alt="点击打开" class="el-avatar"></a> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建日期"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ scope.row.createTime }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column v-if="checkPermission(['admin','YXARTICLE_ALL','YXARTICLE_EDIT','YXARTICLE_DELETE'])" label="操作" width="220px" align="center"> |
||||
<template slot-scope="scope"> |
||||
<el-button v-permission="['admin','YXARTICLE_ALL','YXARTICLE_EDIT']" size="mini" |
||||
type="primary" icon="el-icon-edit" |
||||
> |
||||
<router-link :to="'/wechat/artadd/'+scope.row.id"> |
||||
编辑 |
||||
</router-link> |
||||
</el-button> |
||||
<el-popover |
||||
:ref="scope.row.id" |
||||
v-permission="['admin','YXARTICLE_ALL','YXARTICLE_DELETE']" |
||||
placement="top" |
||||
width="180" |
||||
> |
||||
<p>确定删除本条数据吗?</p> |
||||
<div style="text-align: right; margin: 0"> |
||||
<el-button size="mini" type="text" @click="$refs[scope.row.id].doClose()">取消</el-button> |
||||
<el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定</el-button> |
||||
</div> |
||||
<el-button slot="reference" type="danger" icon="el-icon-delete" size="mini" /> |
||||
</el-popover> |
||||
<el-popover |
||||
:ref="'item'+scope.row.id" |
||||
v-permission="['admin','YXARTICLE_ALL','YXARTICLE_DELETE']" |
||||
placement="top" |
||||
width="180" |
||||
> |
||||
<p>确定发布本条数据吗?</p> |
||||
<div style="text-align: right; margin: 0"> |
||||
<el-button size="mini" type="text" @click="$refs['item'+scope.row.id].doClose()">取消</el-button> |
||||
<el-button :loading="delLoading" type="primary" size="mini" @click="subPublish(scope.row.id)">确定</el-button> |
||||
</div> |
||||
<el-button slot="reference" type="primary" size="mini">发布</el-button> |
||||
</el-popover> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<!--分页组件--> |
||||
<el-pagination |
||||
:total="total" |
||||
:current-page="page + 1" |
||||
style="margin-top: 8px;" |
||||
layout="total, prev, pager, next, sizes" |
||||
@size-change="sizeChange" |
||||
@current-change="pageChange" |
||||
/> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import checkPermission from '@/utils/permission' |
||||
import initData from '@/mixins/crud' |
||||
import { del, publish } from '@/api/yxArticle' |
||||
import eForm from './addArt' |
||||
import { formatTime } from '@/utils/index' |
||||
export default { |
||||
components: { eForm }, |
||||
mixins: [initData], |
||||
data() { |
||||
return { |
||||
delLoading: false |
||||
} |
||||
}, |
||||
created() { |
||||
this.$nextTick(() => { |
||||
this.init() |
||||
}) |
||||
}, |
||||
methods: { |
||||
formatTime, |
||||
checkPermission, |
||||
beforeInit() { |
||||
this.url = 'api/yxArticle' |
||||
const sort = 'id,desc' |
||||
this.params = { page: this.page, size: this.size, sort: sort } |
||||
return true |
||||
}, |
||||
subDelete(id) { |
||||
this.delLoading = true |
||||
del(id).then(res => { |
||||
this.delLoading = false |
||||
this.$refs[id].doClose() |
||||
this.dleChangePage() |
||||
this.init() |
||||
this.$notify({ |
||||
title: '删除成功', |
||||
type: 'success', |
||||
duration: 2500 |
||||
}) |
||||
}).catch(err => { |
||||
this.delLoading = false |
||||
this.$refs[id].doClose() |
||||
console.log(err.response.data.message) |
||||
}) |
||||
}, |
||||
subPublish(id) { |
||||
this.delLoading = true |
||||
publish(id).then(res => { |
||||
this.delLoading = false |
||||
this.$refs[id].doClose() |
||||
this.dleChangePage() |
||||
this.init() |
||||
this.$notify({ |
||||
title: '发布成功', |
||||
type: 'success', |
||||
duration: 2500 |
||||
}) |
||||
}).catch(err => { |
||||
this.delLoading = false |
||||
this.$refs[id].doClose() |
||||
console.log(err.response.data.message) |
||||
}) |
||||
}, |
||||
add() { |
||||
this.isAdd = true |
||||
this.$refs.form.dialog = true |
||||
}, |
||||
edit(data) { |
||||
this.isAdd = false |
||||
const _this = this.$refs.form |
||||
_this.form = { |
||||
id: data.id, |
||||
cid: data.cid, |
||||
title: data.title, |
||||
author: data.author, |
||||
imageInput: data.imageInput, |
||||
imageArr: data.imageInput.split(','), |
||||
synopsis: data.synopsis, |
||||
content: data.content, |
||||
shareTitle: data.shareTitle, |
||||
shareSynopsis: data.shareSynopsis, |
||||
visit: data.visit, |
||||
sort: data.sort, |
||||
url: data.url, |
||||
status: data.status, |
||||
addTime: data.addTime, |
||||
hide: data.hide, |
||||
adminId: data.adminId, |
||||
merId: data.merId, |
||||
productId: data.productId, |
||||
isHot: data.isHot, |
||||
isBanner: data.isBanner |
||||
} |
||||
_this.dialog = true |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
@ -0,0 +1,353 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<!--工具栏--> |
||||
<div class="head-container"> |
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'--> |
||||
<crudOperation :permission="permission" /> |
||||
<!--表单组件--> |
||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title"> |
||||
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="120px"> |
||||
<el-form-item label="课程分类"> |
||||
<el-select v-model.number="form.categoryId"> |
||||
<el-option v-for="item in categoryList" |
||||
:key="item.id" |
||||
:label="item.categoryName" |
||||
:value="item.id"> |
||||
</el-option> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="课程图片"> |
||||
<picUpload v-model="form.imageInput"></picUpload> |
||||
</el-form-item> |
||||
<el-form-item label="课程名称"> |
||||
<el-input v-model="form.courseName" /> |
||||
</el-form-item> |
||||
<el-form-item label="课程简介"> |
||||
<el-input v-model="form.courseIntroduce" /> |
||||
</el-form-item> |
||||
<el-form-item label="课程时间" prop="courseEndTime"> |
||||
<el-date-picker |
||||
v-model="form.courseStartTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择课程开始时间" |
||||
:picker-options="courseStart" |
||||
@change="courseTimeChange"> |
||||
</el-date-picker> |
||||
<span>~</span> |
||||
<el-date-picker |
||||
v-model="form.courseEndTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择课程结束时间" |
||||
:picker-options="courseEnd" |
||||
@change="courseTimeChange"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item label="课程表" v-if="form.courseList.length>0"> |
||||
<el-input |
||||
type="textarea" |
||||
style="margin-bottom:10px;" |
||||
v-for="(item,index) in form.courseList" |
||||
:key="index" |
||||
:placeholder="'请输入第'+ item.id + '天的课程内容'" |
||||
v-model="item.desc"></el-input> |
||||
</el-form-item> |
||||
<el-form-item label="签到时间" prop="signEndTime"> |
||||
<el-date-picker |
||||
v-model="form.signStartTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择报名开始时间" |
||||
:picker-options="signStart"> |
||||
</el-date-picker> |
||||
<span>~</span> |
||||
<el-date-picker |
||||
v-model="form.signEndTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择报名结束时间" |
||||
:picker-options="signEnd"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item label="报名时间" prop="enterEndTime"> |
||||
<el-date-picker |
||||
v-model="form.enterStartTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择报名开始时间" |
||||
:picker-options="enterStart"> |
||||
</el-date-picker> |
||||
<span>~</span> |
||||
<el-date-picker |
||||
v-model="form.enterEndTime" |
||||
type="datetime" |
||||
value-format="yyyy-MM-dd HH:mm:ss" |
||||
placeholder="请选择报名结束时间" |
||||
:picker-options="enterEnd"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item label="开课地点"> |
||||
<el-input v-model="form.coursePlace" /> |
||||
</el-form-item> |
||||
<el-form-item label="报名人数" prop="courseEnterPerson"> |
||||
<el-input v-model="form.courseEnterPerson" /> |
||||
</el-form-item> |
||||
<el-form-item label="收费类型" prop="chargeType"> |
||||
<el-radio-group v-model="form.chargeType"> |
||||
<el-radio :label="0">免费</el-radio> |
||||
<el-radio :label="1">收费</el-radio> |
||||
</el-radio-group> |
||||
</el-form-item> |
||||
<el-form-item label="课程费用" prop="courseCharge"> |
||||
<el-input v-model="form.courseCharge" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
||||
<el-button :loading="crud.cu === 2" type="primary" @click="submit">确认</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
<!--表格渲染--> |
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler"> |
||||
<el-table-column type="selection" width="55" /> |
||||
<el-table-column v-if="columns.visible('id')" prop="id" label="id" width="75"/> |
||||
<el-table-column v-if="columns.visible('courseName')" prop="courseName" label="课程名称"/> |
||||
<el-table-column v-if="columns.visible('categoryName')" prop="categoryName" label="分类名称" /> |
||||
<el-table-column v-if="columns.visible('courseIntroduce')" prop="courseIntroduce" label="课程简介" width="160"/> |
||||
<el-table-column v-if="columns.visible('courseStartTime')" prop="courseStartTime" label="课程时间" width="280px"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ parseTime(scope.row.courseStartTime)}} ~ {{parseTime(scope.row.courseEndTime)}}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column v-if="columns.visible('signStartTime')" label="签到时间" width="280px"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ parseTime(scope.row.signStartTime) }} ~ {{ parseTime(scope.row.signEndTime) }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column v-if="columns.visible('enterStartTime')" label="报名开始时间" width="280px"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ parseTime(scope.row.enterStartTime) }} ~ {{ parseTime(scope.row.enterEndTime) }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column v-if="columns.visible('coursePlace')" prop="coursePlace" label="开课地点" width="200px" /> |
||||
<el-table-column v-if="columns.visible('courseEnterPerson')" prop="courseEnterPerson" label="报名人数" /> |
||||
<el-table-column v-if="columns.visible('courseCharge')" prop="courseCharge" label="费用" /> |
||||
<el-table-column v-permission="['admin','cyCourse:del']" label="操作" width="150px" align="center"> |
||||
<template slot-scope="scope"> |
||||
<udOperation |
||||
:data="scope.row" |
||||
:permission="permission" |
||||
/> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<!--分页组件--> |
||||
<pagination /> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import crudCyCourse from '@/api/cyCourse' |
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
||||
import rrOperation from '@crud/RR.operation' |
||||
import crudOperation from '@crud/CRUD.operation' |
||||
import udOperation from '@crud/UD.operation' |
||||
import pagination from '@crud/Pagination' |
||||
import picUpload from '@/components/pic-upload' |
||||
import MaterialList from "@/components/material" |
||||
import { initData } from '@/api/data' |
||||
|
||||
// crud交由presenter持有 |
||||
const defaultCrud = CRUD({ |
||||
title: '课程模块', |
||||
url: 'api/cyCourse', |
||||
sort: 'id,desc', |
||||
crudMethod: { ...crudCyCourse } |
||||
}) |
||||
const defaultForm = { |
||||
id: null, |
||||
categoryId: null, |
||||
courseName: null, |
||||
categoryName: null, |
||||
courseIntroduce: null, |
||||
courseStartTime: null, |
||||
courseEndTime: null, |
||||
signStartTime: null, |
||||
signEndTime: null, |
||||
enterStartTime: null, |
||||
enterEndTime: null, |
||||
coursePlace: null, |
||||
courseEnterPerson: null, |
||||
chargeType: 0, |
||||
courseCharge: null, |
||||
createTime: null, |
||||
updateTime: null, |
||||
deleted: null, |
||||
createUser: null, |
||||
updateUser: null, |
||||
imageInput: '', |
||||
imageArr: [], |
||||
courseList:[], |
||||
} |
||||
export default { |
||||
name: 'CyCourse', |
||||
components: {picUpload, pagination, crudOperation, rrOperation, udOperation ,MaterialList}, |
||||
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], |
||||
data() { |
||||
return { |
||||
courseTime:null, |
||||
signTime:null, |
||||
permission: { |
||||
add: ['admin', 'cyCourse:add'], |
||||
edit: ['admin', 'cyCourse:edit'], |
||||
del: ['admin', 'cyCourse:del'] |
||||
}, |
||||
categoryList: [], |
||||
rules: { |
||||
id: [ |
||||
{ required: true, message: '不能为空', trigger: 'blur' } |
||||
], |
||||
categoryId: [ |
||||
{ required: true, message: '分类id不能为空', trigger: 'blur' } |
||||
], |
||||
courseEndTime: [ |
||||
{ required: true, message: '课程时间不能为空', trigger: 'blur' } |
||||
], |
||||
signStartTime: [ |
||||
{ required: true, message: '签到开始时间不能为空', trigger: 'blur' } |
||||
], |
||||
signEndTime: [ |
||||
{ required: true, message: '签到结束时间不能为空', trigger: 'blur' } |
||||
], |
||||
enterEndTime: [ |
||||
{ required: true, message: '报名结束时间不能为空', trigger: 'blur' } |
||||
], |
||||
courseEnterPerson: [ |
||||
{ required: true, message: '课程报名人数不能为空', trigger: 'blur' } |
||||
], |
||||
chargeType: [ |
||||
{ required: true, message: '收费类型(0:免费;1:收费)不能为空', trigger: 'blur' } |
||||
], |
||||
courseCharge: [ |
||||
{ required: true, message: '课程费用不能为空', trigger: 'blur' } |
||||
] |
||||
}, |
||||
courseStart: { |
||||
disabledDate: time => { |
||||
const endDateVal = new Date(this.form.courseEndTime).getTime() |
||||
if (endDateVal) { |
||||
return time.getTime() > endDateVal - 0 |
||||
} |
||||
} |
||||
}, |
||||
courseEnd: { |
||||
disabledDate: time => { |
||||
const beginDateVal = new Date(this.form.courseStartTime).getTime() |
||||
if (beginDateVal) { |
||||
return time.getTime() < beginDateVal - 0 |
||||
} |
||||
} |
||||
}, |
||||
signStart: { |
||||
disabledDate: time => { |
||||
const endDateVal = new Date(this.form.signEndTime).getTime() |
||||
if (endDateVal) { |
||||
return time.getTime() > endDateVal - 0 |
||||
} |
||||
} |
||||
}, |
||||
signEnd: { |
||||
disabledDate: time => { |
||||
const beginDateVal = new Date(this.form.signStartTime).getTime() |
||||
if (beginDateVal) { |
||||
return time.getTime() < beginDateVal - 0 |
||||
} |
||||
} |
||||
}, |
||||
enterStart: { |
||||
disabledDate: time => { |
||||
const endDateVal = new Date(this.form.enterEndTime).getTime() |
||||
if (endDateVal) { |
||||
return time.getTime() > endDateVal - 0 |
||||
} |
||||
} |
||||
}, |
||||
enterEnd: { |
||||
disabledDate: time => { |
||||
const beginDateVal = new Date(this.form.enterStartTime).getTime() |
||||
if (beginDateVal) { |
||||
return time.getTime() < beginDateVal - 0 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
|
||||
watch: { |
||||
}, |
||||
created(){ |
||||
this.getCategory() |
||||
}, |
||||
methods: { |
||||
// 获取数据前设置好接口地址 |
||||
[CRUD.HOOK.beforeRefresh]() { |
||||
return true |
||||
}, // 新增与编辑前做的操作 |
||||
[CRUD.HOOK.afterToCU](crud, form) { |
||||
}, |
||||
getCategory(){ |
||||
initData('/api/cyCourseCategory',this.getQueryParams()).then((res)=>{ |
||||
console.log(res) |
||||
this.categoryList = res.content |
||||
}) |
||||
}, |
||||
getQueryParams: function() { |
||||
return { |
||||
page: 1, |
||||
size: 10, |
||||
sort: ['id,desc'], |
||||
} |
||||
}, |
||||
courseTimeChange(){ |
||||
console.log(this.form.courseStartTime) |
||||
console.log(this.form.courseEndTime) |
||||
this.form.courseList = []; |
||||
if(this.form.courseStartTime && this.form.courseEndTime){ |
||||
var day1 = new Date(this.form.courseStartTime) |
||||
var day2 = new Date(this.form.courseEndTime) |
||||
var num = (day2 - day1) / (1000 * 60 * 60 * 24) |
||||
for(var i = 0; i < num; i++){ |
||||
this.form.courseList.push({id:i+1,desc:''}) |
||||
} |
||||
} |
||||
console.log(this.form.courseList) |
||||
}, |
||||
submit(){ |
||||
this.form.imageArr = [this.form.imageInput] |
||||
this.crud.submitCU() |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
</script> |
||||
|
||||
<style scoped> |
||||
.table-img { |
||||
display: inline-block; |
||||
text-align: center; |
||||
background: #ccc; |
||||
color: #fff; |
||||
white-space: nowrap; |
||||
position: relative; |
||||
overflow: hidden; |
||||
vertical-align: middle; |
||||
width: 32px; |
||||
height: 32px; |
||||
line-height: 32px; |
||||
} |
||||
</style> |
Loading…
Reference in new issue