
<view class="contai">
<view class="list">
<view class="item">
<view class="title">
课程标题/名称
</view>
<view class="row1">
<input bindinput="titleInput" type="text" placeholder="请输入课程标题/名称" />
</view>
</view>
<view class="item">
<view class="title">
课程分类
</view>
<view class="row1">
<picker class="r1_left" range-key="name" mode="multiSelector" bindchange="typeChange" bindcolumnchange="typeColumnChange" value="{{typeIndex}}" range="{{typeArray}}">
<view class="picker">
{{typeArray[0][typeIndex[0]].name}}-{{typeArray[1][typeIndex[1]].name}}
</view>
</picker>
<image class="r1_right" src="/assets/icon/right2.png" />
</view>
</view>
<view class="item">
<view class="title">
课程等级
</view>
<view class="row1">
<picker class="r1_left" bindchange="levelChange" value="{{level_arr_index}}" range="{{level_arr}}">
<view class="picker">
{{level_arr[level_arr_index]}}
</view>
</picker>
<image class="r1_right" src="/assets/icon/right2.png" />
</view>
</view>
<view class="item">
<view class="title" style=" margin-bottom: 20rpx;">
课程封面(限1张)
<text bindtap="chat_chooes_img" style="padding:5rpx 15rpx 5rpx 15rpx;border-radius: 10rpx; background-color: teal; color: white; font-size: 28rpx; ">从聊天记录中选择图片</text>
</view>
<view class="upload_pic">
<view wx:if="{{img!=''}}" class="pic">
<image class="show_img" src="{{baseURL+img}}" />
<view bindtap="del_img" class="del_img" class="del_img">
<image style="width: 30rpx; height: 30rpx;" src="/assets/icon/x.png" />
</view>
</view>
<view bindtap="chooes_img" class="pic">
<view style="text-align: center; margin-top: 35rpx;">
<image style="width: 45rpx; height: 45rpx;" src="/assets/icon/uppic2.png" />
</view>
<view class="p_title ">上传图片</view>
</view>
</view>
</view>
<view class="item">
<view class="title" style=" margin-bottom: 20rpx;">
课程内容图片(可多张)
<text bindtap="chat_duo_chooes_img" style="padding:5rpx 15rpx 5rpx 15rpx;border-radius: 10rpx; background-color: teal; color: white; font-size: 28rpx; ">从聊天记录中选择图片</text>
</view>
<view class="upload_pic">
<block wx:for="{{img_arr}}" wx:key="index">
<view class="pic">
<image class="show_img" src="{{baseURL+item}}" />
<view data-index="{{index}}" bindtap="duo_del_img" class="del_img">
<image style="width: 30rpx; height: 30rpx;" src="/assets/icon/x.png" />
</view>
</view>
</block>
<view bindtap="chooes_duo_img" class="pic">
<view style="text-align: center; margin-top: 35rpx;">
<image style="width: 45rpx; height: 45rpx;" src="/assets/icon/uppic2.png" />
</view>
<view class="p_title ">上传图片</view>
</view>
</view>
</view>
<view class="item" style="text-align: center; padding-top: 15rpx;">
<button wx:if="{{sub==0}}" bindtap="sub" class="btn-normal btn">提交</button>
<button wx:if="{{sub==1}}" class="btn-success btn">已提交</button>
</view>
</view>
</view>/* pages/niu_index/niu_index.wxss */
.name_1{
text-align: center;
font-size: 40rpx;
margin-bottom: 50rpx;
}
/* pages/nongji_fabu/nongji_fabu.wxss */
.contai{
padding-bottom: 155rpx;
background-color: white;
}
.list {
padding: 20rpx 20rpx 20rpx 20rpx;
background-color: white;
}
.list .item {
margin-bottom: 10rpx;
}
.list .item .title {
padding: 20rpx 20rpx 1rpx 20rpx;
}
.list .item .write {
background-color: whitesmoke;
border-radius: 15rpx;
padding: 20rpx 20rpx 20rpx 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
color: #696969;
}
/* 弹性布局 */
.list .item .row1{
display: flex;
align-items: center;
background-color: whitesmoke;
border-radius: 15rpx;
padding: 20rpx 20rpx 20rpx 20rpx;
color: #696969;
}
.list .item .row1 .r1_left{
position: relative;
display: inline-block;
width: 100%;
transition: all .3s;
}
.list .item .row1 .r1_right{
width: 50rpx;
height: 50rpx;
}
.list .item .row1 .r1_right2{
width:300rpx;
text-align: left;
}
/* 弹性布局 */
/* 弹性布局2 */
.list .item .row2{
display: flex;
align-items: center;
}
.list .item .row2 .r2_left{
position: relative;
display: inline-block;
width: 100%;
transition: all .3s;
background-color: whitesmoke;
border-radius: 15rpx;
padding: 20rpx 20rpx 20rpx 20rpx;
color: #696969;
}
.list .item .row2 .r2_right2{
width:300rpx;
text-align: center;
}
/* 弹性布局2 */
.list .item .select {
background-color: rgb(145 255 245);
color: #464646;
}
.list .item .write text {}
.list .item .write image {
width: 50rpx;
height: 50rpx;
}
.list .item .write input {
width: 100%;
}
.list .item .upload_pic {
display: flex;
flex-wrap: wrap;
padding: 20rpx 20rpx 20rpx 20rpx;
}
.list .item .upload_pic .pic {
width: 150rpx;
height: 150rpx;
position: relative;
box-sizing: border-box;
background-color: rgb(234 234 234);
margin: 0rpx 16rpx 16rpx 0rpx;
}
.list .item .upload_pic .pic .p_title {
text-align: center;
font-size: 25rpx;
color: #484848;
}
.list .item .upload_pic .show_img {
width: 100%;
height:100%;
}
.list .item .upload_pic .del_img {
width: 40rpx;
height: 40rpx;
position: absolute;
right: -9rpx;
top: -19rpx;
border-radius: 35rpx;
background-color: red;
z-index: 9;
text-align: center;
}
.btn_fix {
/* background-color:green; */
width: 100%;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 30rpx;
z-index: 99;
}
.btn_fix .poster {
font-size: 32rpx;
background-color: #009688 ;
color: #fff;
padding: 20rpx 152rpx;
border-radius: 8rpx;
}
/* 遮罩层s */
.shade {
position: fixed;
width: 100vw;
height: 100vh;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
z-index: 100;
}
.shade .box {
border-radius: 15rpx 15rpx 0 0;
position: absolute;
background-color: white;
bottom: 0;
left: 0;
right: 0;
z-index: 101;
padding: 40rpx;
padding-bottom: 150rpx;
}
.shade .box .head {
display: flex;
justify-content: space-between;
}
.shade .box .head .cancel {
color: rgb(128 128 128);
}
.shade .box input{
margin-top: 15rpx;
border: 1rpx solid #3333;
padding: 15rpx;
border-radius: 15rpx;
}
.shade .box textarea{
margin-top: 15rpx;
border: 1rpx solid #3333;
padding: 15rpx;
border-radius: 15rpx;
}
/* 遮罩层s */
.ok_btn{
display: inline-block;
font-size: 32rpx;
background-color: #18b51f ;
color: #fff;
padding: 18rpx 102rpx;
border-radius: 8rpx;
font-weight: bold;
}
.t_list{
padding: 10rpx 10rpx 10rpx 0rpx ;
margin-bottom: 20rpx;
max-height: 400rpx;
}
.t_list .t_item{
padding: 10rpx 15rpx 10rpx 15rpx ;
background-color: #e8e8e8;
margin-right: 20rpx;
margin-bottom: 20rpx;
border: 1rpx solid #ccc;
box-sizing: border-box;
display: inline-block;
}
.t_list .t_item_select{
padding: 10rpx 15rpx 10rpx 15rpx ;
background-color: #1e9fff;
margin-right: 20rpx;
margin-bottom: 20rpx;
border: 1rpx solid #ccc;
box-sizing: border-box;
display: inline-block;
color: white;
}
.btn{
padding-left: 135rpx;
padding-right: 135rpx;
}import {
baseURL
} from '../../utils/config.js'
import {
wx_login,
request,
uploadFile
} from '../../utils/util.js'
import {
find_openid
} from '../../api/xcxUser.js'
import {
kecheng_type_list
} from '../../api/kecheng_type.js'
import {
kecheng_create
} from '../../api/kecheng.js'
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
baseURL: baseURL,
openid: "",
title: "",
img: "", //封面
img_arr: [], //课程内容
level_arr: ["请选择", "初级", "中级", "高级"], //课程等级
level_arr_index: 0,
typeArray: [
[],
[]
], //这里 1 2级分类。 [ ["",""],[],["",""] ]
typeIndex: [0, 0],
sub: 0, //0未发布 1发布
},
wx_login() {
var that = this;
var openid = app.globalData.openid
if (openid == '') {
wx_login().then(res => {
console.log(res);
openid = res.data.openid;
this.setData({
openid: openid
})
this.load_wx_user_info(openid);
})
} else {
this.setData({
openid: openid
})
this.load_wx_user_info(openid);
}
},
load_wx_user_info(openid) {
find_openid(openid).then(res => {
console.log(res.data.xcxUser);
console.log(res.data.xcxUser.weixinUser);
this.setData({
xcxUser: res.data.xcxUser,
weixinUser: res.data.xcxUser.weixinUser,
nickname: res.data.xcxUser.weixinUser.nickname,
phone: res.data.xcxUser.phone,
})
})
},
titleInput(e) {
this.setData({
title: e.detail.value
})
},
levelChange(e) {
console.log('picker发送选择改变,携带值为', e.detail.value) //这个value 就是下标,0 1 2 3
this.setData({
level_arr_index: e.detail.value
})
},
load_kecheng_type() {
var this_ = this;
var data = {
typeArray: this.data.typeArray,
typeIndex: [0, 0]
};
//加载
kecheng_type_list(1, 1000, "", -1).then(res => {
//我想在cityArray[0] city2Array[0] 第1个对象是 name是 不限, id是0 这里存的是对象
let typeData = res.data.data;
typeData.unshift({
name: "请选择课程分类",
id: 0
}); // 在数组的开头添加一个对象
data.typeArray[0] = typeData;
this.setData(data); //设置,
});
},
typeChange(e) {
console.log('picker发送选择改变,携带值为', e.detail.value);
this.setData({
typeIndex: e.detail.value
})
},
typeColumnChange(e) {
console.log('修改的列为', e.detail.column, ',值为', e.detail.value); //输出的是下标
var data = {
typeArray: this.data.typeArray,
typeIndex: this.data.typeIndex
};
data.typeIndex[e.detail.column] = e.detail.value;
if (e.detail.column == 0) {
//第1列 变动了
kecheng_type_list(1, 1000, "", this.data.typeArray[0][e.detail.value].id).then(res => {
let typeData = res.data.data;
data.typeArray[1] = typeData;
data.typeIndex[1] = 0;
this.setData(data);
});
} else {
//第2列 变动了 不用管。
this.setData(data);
}
},
chooes_img: function () {
var that = this;
wx.chooseImage({
count: 1, // 默认9,这里我们设置为1,表示只选择一张图片
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册album 还是相机camera,默认二者都有
success: function (res) {
wx.showLoading({
title: '提交中',
mask: true
})
var tempFilePaths = res.tempFilePaths;
uploadFile(baseURL + "/api/xcx/kecheng/type/uploadimage", tempFilePaths[0], "image").then(res => {
var result = JSON.parse(res.data); //
that.setData({
img: result.url
})
wx.hideLoading()
})
}
})
},
chat_chooes_img() {
var that = this;
wx.chooseMessageFile({
count: 1, // 默认9,这里我们设置为1,表示只选择一张图片
type: 'image', //默认 'all' 所选的文件的类型
success: function (res) {
var tempFilePaths = res.tempFiles;
wx.showLoading({
title: '提交中',
mask: true
})
uploadFile(baseURL + "/api/xcx/kecheng/type/uploadimage", tempFilePaths[0].path, "image").then(res => {
var result = JSON.parse(res.data); //
that.setData({
img: result.url
})
wx.hideLoading()
})
}
})
},
del_img() {
this.setData({
img: ""
});
//传后台删除这个图片。
},
chooes_duo_img: function () {
var that = this;
wx.chooseImage({
count: 9, // 默认9,这里我们设置为1,表示只选择一张图片
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册album 还是相机camera,默认二者都有
success: function (res) {
wx.showLoading({
title: '提交中',
mask: true
})
var tempFilePaths = res.tempFilePaths;
var promises = tempFilePaths.map(filePath => {
return uploadFile(baseURL + "/api/xcx/kecheng/type/uploadimage", filePath, "image");
});
wx.hideLoading()
console.log(promises); //pei_create_kecheng.js? [sm]:173 (3) [$, $, $]
Promise.all(promises).then(results => {
var urls = results.map(res => JSON.parse(res.data).url);
console.log(urls); //这是一个数组
//保留之前的在后面追加。
var newImgArr = that.data.img_arr.concat(urls);
that.setData({
img_arr: newImgArr
})
}).catch(error => {
console.error("上传图片失败", error);
});
}
})
},
chat_duo_chooes_img() {
var that = this;
wx.chooseMessageFile({
count: 9, // 默认9,这里我们设置为1,表示只选择一张图片
type: 'image', //默认 'all' 所选的文件的类型
success: function (res) {
wx.showLoading({
title: '提交中',
mask: true
})
console.log(res);
var tempFilePaths = res.tempFiles;
console.log(tempFilePaths);
var promises = tempFilePaths.map(filePath => {
return uploadFile(baseURL + "/api/xcx/kecheng/type/uploadimage", filePath.path, "image");
});
console.log(promises); //pei_create_kecheng.js? [sm]:173 (3) [$, $, $]
Promise.all(promises).then(results => {
var urls = results.map(res => JSON.parse(res.data).url);
console.log(urls); //这是一个数组
//保留之前的在后面追加。
var newImgArr = that.data.img_arr.concat(urls);
that.setData({
img_arr: newImgArr
})
wx.hideLoading()
}).catch(error => {
console.error("上传图片失败", error);
});
}
})
},
duo_del_img(e) {
var del_index = e.currentTarget.dataset.index;
console.log(del_index);
var new_arr = this.data.img_arr.filter(function (item, index) {
return index !== del_index;
});
console.log(new_arr);
this.setData({
img_arr: new_arr
})
},
sub() {
var title = this.data.title;
var type_id1 = this.data.typeArray[0][this.data.typeIndex[0]].id;
var type_id2 = 0;
if (this.data.typeArray[1].length > 0) {
type_id2 = this.data.typeArray[1][this.data.typeIndex[1]].id;
}
console.log(title);
console.log(type_id1);
console.log(type_id2);
if (this.data.level_arr_index == 0) {
wx.showToast({
title: "请选择课程等级",
icon: 'none',
duration: 2000
})
return;
}
var level_text = this.data.level_arr[this.data.level_arr_index];
console.log(level_arr_index);
var openid = this.data.openid;
var img_url = this.data.img;
var img_arr = JSON.stringify(this.data.img_arr);
kecheng_create(openid, title, type_id1, type_id2, level_arr_index, img_url, img_arr).then(res => {
})
return;
var city_id1 = this.data.cityArray[0][this.data.cityIndex[0]].id;
var city_id2 = 0;
if (this.data.cityArray[1].length > 0) {
city_id2 = this.data.cityArray[1][this.data.cityIndex[1]].id;
}
console.log("城市1:" + city_id1 + "_" + city_id2);
},
onLoad: function (options) {},
onReady: function () { this.load_kecheng_type();},
onShow: function () {
this.wx_login();
},
onHide: function () {},
onUnload: function () {},
onPullDownRefresh: function () {},
onReachBottom: function () {},
onShareAppMessage: function () {}
})站长微信:xiaomao0055
站长QQ:14496453