123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672 |
- <template>
- <view class="ayuu">
- <view class="hdtgyyqb">
- <view class="flztoa scuuerm">
- <view :class="['sczhbry',Inv==0?'sctyxer':'']" @click="Inv=0">
- <text>直播课程</text>
- <view class="scmmtui"></view>
- </view>
- <view :class="['sczhbry',Inv==1?'sctyxer':'']" @click="Inv=1">
- <text>录制课程</text>
- <view class="scmmtui"></view>
- </view>
- </view>
- <view class="scmbberr"></view>
- <view v-show="Inv == 0">
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程名称</text></view>
- <view class="hdtcuutxta"><input type="text" value=""
- placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入姓名" /></view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程时间</text></view>
- <view class="hdtcuutxta" @click="showa = true"><text>请选择课程时间</text></view>
- </view>
- <image @click="showa = true" src="/static/user/hdr1.png" style="width: 48rpx;min-width: 48rpx;height: 48rpx;" mode="">
- </image>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程分类</text></view>
- <view class="hdtcuutxta"><text>请选择课程分类</text></view>
- </view>
- <image src="/static/user/hdr1.png" style="width: 48rpx;min-width: 48rpx;height: 48rpx;" mode="">
- </image>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>金额</text></view>
- <view class="hdtcuutxta"><input type="text" value=""
- placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入金额" /></view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="sczbfmty">
- <text>直播封面</text>
- </view>
- <view class="fzddrew cpsahngc">
- <u-upload :action="action" :file-list="fileList" :max-count="1" width="642" height="392"
- upload-text="上传直播封面">
- </u-upload>
- </view>
- </view>
- <view v-show="Inv == 1">
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程名称</text></view>
- <view class="hdtcuutxta">
- <input type="text" v-model.trim="title" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入课程名称" />
- </view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur" @click="show = true">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程分类</text></view>
- <view class="hdtcuutxta"><text>{{classStr || '请选择课程分类'}}</text></view>
- </view>
- <image src="/static/user/hdr1.png" style="width: 48rpx;min-width: 48rpx;height: 48rpx;" mode=""></image>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>金额</text></view>
- <view class="hdtcuutxta"><input type="digit" v-model.trim="price" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入金额" /></view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa">
- <view class="fsxto">
- <view class="sczbfmty">
- <text>课程封面</text>
- </view>
- <view class="fzddrew cpsahngc">
-
- <view v-if="!img" class="choose-outer" @click="choodeImage">
- <text class="up-label">+</text>
- <text class="up-title">上传课程封面</text>
- </view>
- <image v-if="img" @click="choodeImage" :src="img" mode="aspectFill" style="width: 294rpx; height: 198rpx; border-radius: 15rpx;"></image>
- </view>
- </view>
- <view class="fsxto">
- <view class="sczbfmty">
- <text>上传视频</text>
- </view>
- <view class="fzddrew cpsahngc">
-
- <view v-if="!one_video_url" class="choose-outer" @click="chooseVideo">
- <text class="up-label">+</text>
- <text class="up-title">上传视频课程</text>
- </view>
- <video v-if="one_video_url" :src="one_video_url" style="width: 294rpx; height: 198rpx; border-radius: 15rpx;"></video>
- </view>
- </view>
- </view>
- </view>
- </view>
- <view v-show="Inv == 1">
- <view class="hdtgyyqb" v-for="(item,index) in chapter" :key="index">
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>章节</text></view>
- <view class="hdtcuutxta"><input type="text" v-model.trim="item.catalog_title" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入章节名称" /></view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="flztoa hdtcuur">
- <view class="fzctob">
- <view class="hdtcuutxt"><text>课程名称</text></view>
- <view class="hdtcuutxta"><input type="text" v-model.trim="item.title"
- placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入课程名称" /></view>
- </view>
- </view>
- <view class="scjhrw"></view>
- <view class="fzctob">
- <view class="fsxto">
- <view class="sczbfmty">
- <text>上传视频</text>
- </view>
- <view class="fzddrew cpsahngc">
-
- <view v-if="!item.video_url" class="choose-outer" @click="choosezjVideo(index)">
- <text class="up-label">+</text>
- <text class="up-title">上传视频课程</text>
- </view>
- <video v-if="item.video_url" :src="item.video_url" style="width: 294rpx; height: 198rpx; border-radius: 15rpx;"></video>
- </view>
- </view>
-
- </view>
- </view>
- </view>
- <view v-show="Inv == 1">
- <view class="hdtgyyqb" @click="addzj">
- <view class="fzddrew" style="padding: 30rpx 0;">
- <u-icon name="plus" size="36"></u-icon>
- <text style="margin-top: 20rpx;">添加章节</text>
- </view>
- </view>
- </view>
- <view class="fzddrew scjjhrt">
- <view class="fzddrew fkdibr" @click="subCourse">
- <text>上传课程</text>
- </view>
- </view>
-
-
-
- <u-popup v-model="show" mode="bottom" :closeable="false" :border-radius="20" :safe-area-inset-bottom="true">
- <view class="" style="padding: 50rpx;30rpx">
- <view class="flztoa" style="margin-bottom: 40rpx;">
- <text @click="show = false;" style="color: #999999;">取消</text>
- <text style="font-size: 36rpx;font-weight: bold;">选择标签</text>
- <text @click="ensureLabel">确定</text>
- </view>
-
-
- <scroll-view scroll-y style="height: 500rpx;">
- <view class="label-outer">
- <view :class="index == curlabel?'label-act':'class-label'" @click="changeLabel(index)" v-for="(item,index) in labellist" :key="index">{{item.title}}</view>
- </view>
- </scroll-view>
-
- </view>
- </u-popup>
-
- <u-popup v-model="showa" mode="bottom" :closeable="false" :border-radius="20" :safe-area-inset-bottom="true">
- <view class="">
- <view class="flztoa" style="padding: 50rpx 30rpx;" >
- <text @click="showa = false;" style="color: #999999;">取消</text>
- <text style="font-size: 36rpx;font-weight: bold;">选择时间</text>
- <text @click="showa = false;">确定</text>
- </view>
- <view class="" style="background: #E4E4E4;width: 100%;height: 1rpx;"></view>
- <view class="flztoa yebbfrt">
- <view class="yeuddw" style="color: #FF0000;"><text>1月</text></view>
- <view class="yeuddw"><text>2月</text></view>
- <view class="yeuddw"><text>3月</text></view>
- <view class="yeuddw"><text>4月</text></view>
- </view>
-
- <view class="fzctob">
- <view class="fsxto rixdbyy">
- <view class="rixdrt"><text>18日</text></view>
- <view class="rixdrt"><text>19日</text></view>
- <view class="rixdrt" style="color: #FF0000;"><text>今天20日</text></view>
- <view class="rixdrt"><text>明天21日</text></view>
- <view class="rixdrt"><text>22日</text></view>
- <view class="rixdrt"><text>23日</text></view>
- <view class="rixdrt"><text>24日</text></view>
- </view>
-
- <view class="fsxto sjbbaq">
- <view class="flztoa rixdrt" style="color: #FF0000;">
- <text>18日</text>
- <image src="/static/lecturer/yyddw01.png" style="width: 32rpx;height: 32rpx;" mode=""></image>
- </view>
- <view class="rixdrt"><text>19日</text></view>
- <view class="rixdrt"><text>今天20日</text></view>
- <view class="rixdrt"><text>明天21日</text></view>
- <view class="rixdrt"><text>22日</text></view>
- <view class="rixdrt"><text>23日</text></view>
- <view class="rixdrt"><text>24日</text></view>
- </view>
- </view>
-
-
- </view>
- </u-popup>
- </view>
- </template>
- <style>
- page {
- background: #FAFAFA ;
- }
- </style>
- <script>
- export default {
- data() {
- return {
- Inv: 1,
- show: false,
- showa: false,
- timestamp: 86400,
- sex: [{
- text: '心里咨询',
- value: '1',
- }, {
- text: '心里咨询',
- value: '2',
- }, {
- text: '心里咨询',
- value: '3',
- }, {
- text: '心里咨询',
- value: '4',
- }],
- labellist:[],
- curlabel:'-1',
- classStr:'',
- action:'https://xlzx.vvv5g.com/app/index.php?i=2&c=entry&a=wxapp&m=yzd_edu&do=UploadImg',
- title:'' ,
- price:'',
- img:'',
- one_video_url:'',
- one_video_time:'',
- one_video_title:'',
- chapter:[
- {
- "catalog_title":"",
- "title":"",
- "video_url":"",
- "video_title":"",
- "video_time":""
- }
- ]
- }
- },
- onLoad() {
-
- this.getClassType()
- },
- methods: {
-
- choodeImage(){
- uni.chooseImage({
- count:1,
- sizeType: ['original', 'compressed'],
- sourceType: ['album'],
- success: (res)=> {
-
- uni.showLoading({title:'上传中...'})
- uni.uploadFile({
- url: 'https://xlzx.vvv5g.com/app/index.php?i=2&c=entry&a=wxapp&m=yzd_edu&do=UploadImg',
- filePath: res.tempFilePaths[0],
- name: 'upfile',
- success: (uploadFileRes) => {
- uni.hideLoading()
- console.log(uploadFileRes, '111111111111111')
- this.img = uploadFileRes.data
- }
- });
- }
- })
- },
-
- choosezjVideo(index){
- uni.chooseVideo({
- sourceType: ['camera', 'album'],
- success: res=> {
- console.log(res)
- this.chapter[index].video_time = this.formatSeconds(res.duration)
-
-
-
- uni.showLoading({title:'上传中...'})
- uni.uploadFile({
- url: 'https://xlzx.vvv5g.com/app/index.php?i=2&c=entry&a=wxapp&m=yzd_edu&do=UploadFile',
- filePath: res.tempFilePath,
- name: 'upfile',
- success: (uploadFileRes) => {
- uni.hideLoading()
- console.log(uploadFileRes, '111111111111111')
- this.chapter[index].video_url = uploadFileRes.data
- this.chapter[index].video_title = uploadFileRes.data.substring(uploadFileRes.data.lastIndexOf("/")+1)
- console.log(this.chapter)
- }
- });
- }
- });
- },
- changeTab(Inv) {
- that.navIdx = Inv;
- },
-
- changeLabel(index){
- this.curlabel = index
- this.classStr = this.labellist[this.curlabel].title
- },
-
- ensureLabel(){
- this.show = false
-
-
-
-
-
- },
- upSuccess(e){
- console.log(e,'+++++++++')
- },
-
- getClassType(){
- this.$post({
- data:{
- do:'CourseType',
- data:{
- user_id:uni.getStorageSync('id'),
- type_id:0,
- pw:375
- }
- }
- }).then(res=>{
- console.log(res,'课程分类')
- this.labellist = res.data
-
- })
- },
-
- chooseVideo(){
- uni.chooseVideo({
- sourceType: ['camera', 'album'],
- success: res=> {
- console.log(res)
- this.one_video_time = this.formatSeconds(res.duration)
- uni.showLoading({title:'上传中...'})
- uni.uploadFile({
- url: 'https://xlzx.vvv5g.com/app/index.php?i=2&c=entry&a=wxapp&m=yzd_edu&do=UploadFile',
- filePath: res.tempFilePath,
- name: 'upfile',
- success: (uploadFileRes) => {
- uni.hideLoading()
- console.log(uploadFileRes, '111111111111111')
- this.one_video_url = uploadFileRes.data
- this.one_video_title = uploadFileRes.data.substring(uploadFileRes.data.lastIndexOf("/")+1)
- }
- });
- }
- });
- },
-
- addzj(){
- this.chapter.push({
- "catalog_title":"",
- "title":"",
- "video_url":"",
- "video_title":"",
- "video_time":""
- })
- },
-
- subCourse(){
- if(this.Inv==1){
- if(!this.title){
- uni.showToast({
- title:'请输入课题名称',
- icon:'none'
- })
- return
- }
- if(this.curlabel<0){
- uni.showToast({
- title:'请选择课程分类',
- icon:'none'
- })
- return
- }
- if(this.price!=0 && this.price==''){
- uni.showToast({
- title:'请输入课程价格',
- icon:'none'
- })
- return
- }
- if(!this.img){
- uni.showToast({
- title:'请上传课程封面',
- icon:'none'
- })
- return
- }
- if(!this.one_video_url){
- uni.showToast({
- title:'请上传课程视频',
- icon:'none'
- })
- return
- }
- let flag = this.chapter.every(item=>item.catalog_title!=''&&item.title!=''&&item.video_url!='')
- if(!flag){
- uni.showToast({
- title:'请完善章节信息',
- icon:'none'
- })
- return
- }
- this.$post({
- data:{
- do:'CourseOption',
- data:{
- "group_state":0,
- "group_img":"",
- "lecturer_id":uni.getStorageSync('id'),
- "update_state":1,
- "state":1,
- "type":1,
- "course_id":"",
- "term":1,
- "term_day":"",
- title:this.title,
- img:this.img,
- type_id:this.labellist[this.curlabel].id,
- price:this.price,
- user_id:uni.getStorageSync('id'),
- one_video:{
- video_url:this.one_video_url,
- video_title:this.one_video_title,
- video_time:this.one_video_time
- },
- chapter:this.chapter
- }
- }
- }).then(res=>{
- console.log(res,'ssssssssssssssssssssss')
- uni.showToast({
- title:'添加成功',
- mask:true
- })
- setTimeout(()=>{
- uni.navigateBack()
- },1500)
- })
- }
-
- },
-
-
-
- formatSeconds(value) {
-
- let second = parseInt(value)
-
- let minute = 0
-
- let hour = 0
-
-
-
- if (second >= 60) {
-
- minute = parseInt(second / 60)
-
- second = parseInt(second % 60)
-
- if (minute > 60) {
-
- hour = parseInt(minute / 60)
-
- minute = parseInt(minute % 60)
-
-
-
-
-
-
-
- }
- }
- let h = parseInt(hour)>9?parseInt(hour):'0'+parseInt(hour)
- let m = parseInt(minute)>9?parseInt(minute):'0'+parseInt(minute)
- let s = parseInt(second)>9?parseInt(second):'0'+parseInt(second)
- let result = '' + s;
- if (minute > 0) {
- result = '' + m + ':' + result
- }
- if (hour > 0) {
- result = '' + h + ':' + result
- }
-
-
-
-
-
- result = result.includes(':')?result:'00:'+result
- console.log('result:', result)
- return result
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .yebbfrt{
- padding: 34rpx 60rpx;
- }
- .yeuddw{
- font-size: 22rpx;
- font-family: PingFang SC-常规体, PingFang SC;
- font-weight: normal;
- color: #000000;
- line-height: 30rpx;
- }
- .rixdbyy {
- width: 218rpx;
- min-width: 218rpx;
- background: #F6F6F6;
- padding: 50rpx 30rpx;
- }
- .rixdrt{
- height: 30rpx;
- font-size: 22rpx;
- font-family: PingFang SC-常规体, PingFang SC;
- font-weight: normal;
- color: #000000;
- line-height: 30rpx;
- margin-bottom: 76rpx;
- }
- .sjbbaq{
- width: 100%;
- padding: 50rpx 32rpx;
- }
-
- .label-outer{
- display: flex;
- flex-wrap: wrap;
- align-content: flex-start;
- }
-
- .label-outer>view{
- margin-right: 30rpx;
- margin-bottom: 30rpx;
- }
- .label-outer>view:nth-of-type(3n+3){
- margin-right: 0rpx;
- }
- .class-label{
- width: 192rpx;
- height: 72rpx;
- background: #F4F4F4;
- border-radius: 36rpx 36rpx 36rpx 36rpx;
- opacity: 1;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 28rpx;
- color: #999999;
- overflow: hidden;
- }
- .label-act{
- width: 192rpx;
- height: 72rpx;
- background: #374B6E;
- border-radius: 36rpx;
- font-size: 28rpx;
- color: #FFFFFF;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 28rpx;
- color: #ffffff;
- overflow: hidden;
- }
-
-
- .choose-outer{
- width: 290rpx;
- height: 198rpx;
- border: 2px dotted #CCCCCC;
- border-radius: 15rpx;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- }
- .up-label{
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 50rpx;
- width: 60rpx;
- height: 60rpx;
- background: #E4E4E4;
- color: #FFFFFF;
- border-radius: 15rpx;
- }
- .up-title{
- font-size: 28rpx;
- color: #999999;
- margin-top: 20rpx;
- }
- </style>
|