Commit f1c18d8e authored by youjie's avatar youjie

Merge branch 'master' of http://gitlab.oytour.com/youjie/thinkapp

parents 61d5a5ab 5ae6e3c4
<template>
<van-popup :show="show" :round="true" position="bottom"
custom-style="height: 80%" @close="closepopup">
<view class="studentsPopu-box flex">
<view class="studentsPopu-title">选择学员 <text>(2/50)</text></view>
<view class="studentsPopu-search flex">
<van-search
:value="Keywords"
shape="round"
style="border-radius: 20rpx;width: 100%;"
input-align="center"
background="#F6F6F6"
@change="searchKeywords"
placeholder="请输入搜索关键词"
/>
</view>
<view class="studentsPopuImg">
<view class="studentsPopu-img-box flex">
<view class="studentsPopu-img-list active flex" @click="clickChoose">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">学员名称</text>
</view>
<view class="studentsPopu-img-list flex" @click="clickChoose">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">学员名称</text>
</view>
</view>
</view>
<view class="footer">
<view class="studentsPopu-save flex">
<view @click="save">确认</view>
</view>
</view>
</view>
</van-popup>
<van-popup :show="show" :round="true" position="bottom" custom-style="height: 80%" @close="closepopup">
<view class="studentsPopu-box flex">
<view class="studentsPopu-title">
选择学员 <text>({{chooseStuArray?chooseStuArray.length:0}} / {{stuList?stuList.length:0}})</text>
</view>
<view class="studentsPopu-search flex">
<van-search :value="Keywords" shape="round" style="border-radius: 20rpx;width: 100%;" input-align="center"
background="#F6F6F6" @change="searchKeywords" placeholder="请输入搜索关键词" />
</view>
<view class="studentsPopuImg">
<view class="studentsPopu-img-box flex">
<template v-for="(item,index) in stuList">
<view class="studentsPopu-img-list active flex" @click="clickChoose(item)">
<view class="studentsPopu-imgbox flex">
<view class="studentsPopu-img flex">
<view>
<van-image width="119rpx" height="119rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="studentsPopu-text">{{item.StuName}}</text>
</view>
</template>
</view>
</view>
<view class="footer">
<view class="studentsPopu-save flex">
<view @click="save">确认</view>
</view>
</view>
</view>
</van-popup>
</template>
<script>
import {
ref,
ref,
reactive,
toRefs,
onMounted,
getCurrentInstance,
inject,
watch
watch
} from "vue";
import { uploadFile } from "@/utils/index";
import {
uploadFile
} from "@/utils/index";
export default {
props: {
},
props: ["courseStuList"],
emits: ['getdata'],
components: {},
setup(props,ctx) {
let {
setup(props, ctx) {
let {
proxy
} = getCurrentInstance();
let data = reactive({
show: false,
loading: false,
Keywords:''
show: false,
loading: false,
Keywords: '',
stuList: [],
chooseStuArray: []
});
let methods = {
// 选中
clickChoose(item) {
data.chooseStuArray.push(item);
},
// 搜索
searchKeywords() {
},
showFun() {
data.show = true
},
closepopup() {
data.show = false
},
save() {
ctx.emit("getdata", data.chooseStuArray);
data.show = false
}
};
//监听属性数组
watch(() => props["courseStuList"], (newValue, oldValue) => {
if (newValue != oldValue && newValue && newValue.length > 0) {
data.stuList = newValue;
}
}, {
deep: true,
});
let methods = {
// 选中
clickChoose(){
},
// 搜索
searchKeywords(){
},
showFun(){
data.show = true
},
closepopup(){
data.show = false
},
save(){
data.show = false
}
};
let that = methods;
return {
...toRefs(data),
...methods
...methods
};
},
onLoad(){
},
onShow() {
onLoad() {
},
onShow() {
}
};
</script>
<style scoped>
.studentsPopu-text{
.studentsPopu-text {
text-align: center;
font-weight: 500;
font-size: 26rpx;
......@@ -116,88 +112,102 @@
letter-spacing: 1rpx;
margin-top: 15rpx;
}
.studentsPopu-img view{
.studentsPopu-img view {
width: 119rpx;
height: 119rpx;
/* border: 1rpx solid #E5E5E5; */
background: #E5E5E5;
background: #E5E5E5;
border-radius: 50%;
overflow: hidden;
}
.studentsPopu-img-list.active .studentsPopu-img{
background: #C91928;
box-shadow: 0rpx 0rpx 59rpx 0rpx rgba(201, 23, 39, 0.34);
}
.studentsPopu-img{
.studentsPopu-img-list.active .studentsPopu-img {
background: #C91928;
box-shadow: 0rpx 0rpx 59rpx 0rpx rgba(201, 23, 39, 0.34);
}
.studentsPopu-img {
width: 130rpx;
height: 130rpx;
background: #FFFFFF;
box-shadow: 0rpx 6rpx 29rpx 0rpx rgba(76, 76, 76, 0.09);
box-shadow: 0rpx 6rpx 29rpx 0rpx rgba(76, 76, 76, 0.09);
border-radius: 50%;
justify-content: center;
align-items: center;
justify-content: center;
align-items: center;
}
.studentsPopu-imgbox{
.studentsPopu-imgbox {
justify-content: center;
}
.studentsPopu-img-list{
.studentsPopu-img-list {
flex: 0 0 25%;
flex-direction: column;
}
.studentsPopu-img-box{
height: 90%;
.studentsPopu-img-box {
height: 90%;
padding: 40rpx 25rpx;
flex-wrap: wrap;
margin-bottom: 100rpx;
overflow-y: auto;
margin-bottom: 100rpx;
overflow-y: auto;
}
.studentsPopuImg {
max-height: 670rpx;
overflow: hidden;
}
.studentsPopu-search {
padding: 30rpx 27rpx 5rpx 27rpx;
}
.studentsPopu-title text {
font-size: 26rpx;
color: #949494;
font-weight: 400;
margin-left: 20rpx;
}
.studentsPopu-title {
font-size: 36rpx;
font-weight: 800;
color: #282828;
letter-spacing: 1rpx;
padding: 48rpx 55rpx 0 55rpx;
}
.studentsPopu-save view {
background: #C91727;
font-size: 30rpx;
font-weight: bold;
letter-spacing: 1rpx;
width: 260rpx;
line-height: 88rpx;
border-radius: 44rpx;
text-align: center;
color: #FFFFFF;
}
.studentsPopu-save {
justify-content: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
}
.studentsPopu-box {
background: #f6f6f6;
/* padding: 48rpx 0 60rpx 0; */
flex-direction: column;
height: 100%;
overflow: hidden;
}
.footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
.studentsPopuImg{
max-height: 670rpx;
overflow: hidden;
}
.studentsPopu-search{
padding: 30rpx 27rpx 5rpx 27rpx;
}
.studentsPopu-title text{
font-size: 26rpx;
color: #949494;
font-weight: 400;
margin-left: 20rpx;
}
.studentsPopu-title{
font-size: 36rpx;
font-weight: 800;
color: #282828;
letter-spacing: 1rpx;
padding: 48rpx 55rpx 0 55rpx;
}
.studentsPopu-save view{
background: #C91727;
font-size: 30rpx;
font-weight: bold;
letter-spacing: 1rpx;
width: 260rpx;
line-height: 88rpx;
border-radius: 44rpx;
text-align: center;
color: #FFFFFF;
}
.studentsPopu-save{
justify-content: center;
margin-top: 40rpx;
margin-bottom: 40rpx;
}
.studentsPopu-box{
background: #f6f6f6;
/* padding: 48rpx 0 60rpx 0; */
flex-direction: column;
height: 100%;
overflow: hidden;
}
.footer{
position: fixed;
left: 0;
right: 0;
bottom: 0;
}
</style>
{
"name": "甲鹤学生端",
"appid": "",
"description": "甲鹤小程序学生端",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
"app-plus": {
"name" : "jjsw",
"appid" : "",
"description" : "甲鹤小程序学生端",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
"app-plus" : {
/* 5+App特有相关 */
"usingComponents": true,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
"usingComponents" : true,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"modules": {},
"modules" : {},
/* 模块配置 */
"distribute": {
"distribute" : {
/* 应用发布信息 */
"android": {
"android" : {
/* android打包配置 */
"permissions": [
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
......@@ -45,36 +45,38 @@
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
"ios": {},
"ios" : {},
/* ios打包配置 */
"sdkConfigs": {},
"splashscreen": {
"androidStyle": "common",
"iosStyle": "common"
"sdkConfigs" : {},
"splashscreen" : {
"androidStyle" : "common",
"iosStyle" : "common"
}
}
},
/* SDK配置 */
"quickapp": {},
"quickapp" : {},
/* 快应用特有相关 */
"mp-weixin": {
/* 微信小程序特有相关 */
"appid": "wx0f4b451960f8ef29",
"setting": {
"urlCheck": false
"mp-weixin" : {
"appid" : "wx10655d8e5b0a67c5",
"setting" : {
"urlCheck" : false,
"es6" : false,
"postcss" : true,
"minified" : true
},
"usingComponents": true
"usingComponents" : true
},
"mp-alipay": {
"usingComponents": true
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu": {
"usingComponents": true
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao": {
"usingComponents": true
"mp-toutiao" : {
"usingComponents" : true
},
"mp-qq": {
"usingComponents": true
"mp-qq" : {
"usingComponents" : true
}
}
\ No newline at end of file
}
......@@ -170,20 +170,20 @@
this.userData = uni.getStorageSync('userInfo');
this.getExamStuScore();
},
onShareAppMessage() {
return {
title: "甲小鹤",
query: "/pages/index/index",
imageUrl: "",
};
},
onShareTimeline() {
return {
title: "甲小鹤",
query: "/pages/index/index",
imageUrl: "",
};
},
// onShareAppMessage() {
// return {
// title: "甲小鹤",
// query: "/pages/index/index",
// imageUrl: "",
// };
// },
// onShareTimeline() {
// return {
// title: "甲小鹤",
// query: "/pages/index/index",
// imageUrl: "",
// };
// },
};
</script>
......
......@@ -118,7 +118,7 @@
homeWorks:[],
exams:[],
pageState: "more",
currentCourseId:45329247,
currentCourseId:0,
userData:{},
loading:false
});
......@@ -142,9 +142,9 @@
})
},
changeCourseHandler(id){
data.Msg.courseId=45329247
data.OperationMsg.courseId=45329247
data.currentCourseId=45329247
data.Msg.courseId=id
data.OperationMsg.courseId=id
data.currentCourseId=id
methods.getCourseStuList()
methods.getExamPageList()
methods.getCourseHomeWorkList()
......@@ -252,14 +252,14 @@
},
onShareAppMessage() {
return {
title: "甲小鹤",
title: "进阶思维学情反馈",
query: "/pages/index/index",
imageUrl: "",
};
},
onShareTimeline() {
return {
title: "甲小鹤",
title: "进阶思维学情反馈",
query: "/pages/index/index",
imageUrl: "",
};
......
......@@ -79,8 +79,8 @@
} = getCurrentInstance();
let Toast = inject("$toast");
let msg = reactive({
Account: "13982128958",
Password: "128958",
Account: "",
Password: "",
});
let data = reactive({
phoneNum: "",
......
......@@ -10,7 +10,7 @@
<view class="addComment-title flex">
<van-icon name="friends-o" />
<text>
选择学员 (0)
选择学员 ({{postMsg.ChooseStuList?postMsg.ChooseStuList.length:0}})
</text>
</view>
<view class="addComment-img-box flex">
......@@ -24,30 +24,32 @@
</view>
<text class="addComment-text">添加学员</text>
</view>
<view class="addComment-img-list flex">
<view class="addComment-imgbox flex">
<view class="addComment-img">
<view>
<van-image width="119rpx" height="119rpx" fit="cover"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
<template v-for="(item,index) in postMsg.ChooseStuList">
<view class="addComment-img-list flex">
<view class="addComment-imgbox flex">
<view class="addComment-img">
<view>
<van-image width="119rpx" height="119rpx" fit="cover" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653894197000_691.png" />
</view>
</view>
</view>
<text class="addComment-text">{{item.StuName}}</text>
</view>
<text class="addComment-text">学员名称</text>
</view>
</template>
</view>
<view class="addComment-textarea-box">
<view class="content-textarea-box">
<textarea placeholder="请填写评论内容"></textarea>
<textarea placeholder="请填写评论内容" v-model="postMsg.Info"></textarea>
</view>
<view class="Sure-button flex">
<view v-if="clickShow" @click="clickSure" >确定</view>
<view v-else class="active" >确定</view>
<view v-if="clickShow" @click="clickSure">确定</view>
<view v-else class="active">确定</view>
</view>
</view>
<template v-show="show">
<studentsPopu ref="getstudentsPopup"></studentsPopu>
<studentsPopu ref="getstudentsPopup" :courseStuList="StuList" @getdata="getChooseStu"></studentsPopu>
</template>
</view>
<view class="addComment-bj"></view>
......@@ -107,58 +109,67 @@
checked: '1',
Msg: {
CourseId: '',
CommentTimes: 0, //评论次数
},
courseTimeList: [], //课程自动生成评论次数
courseRule: {}, //课程评价规则
clickShow:true,
show:false
postMsg: {
CourseId: '',
ChooseStuList: [],
Times: 0,
Info: "", //评论内容
},
StuList: [], //课程学员列表
clickShow: true,
show: false
});
let methods = {
back() {
uni.navigateBack({
delta: 1
})
},
// 点击弹出学员列表
selectStudents(){
selectStudents() {
data.show = true
setTimeout(()=>{
setTimeout(() => {
refs.getstudentsPopup.$vm.showFun()
},500)
}, 500)
},
// 点击确定
clickSure(){
data.clickShow = false
console.log(data.clickShow)
},
radioChange(e) {
console.log("打印国家名称", e.target.value)
},
//获取课程评论次数列表
getCourseCommentTimes() {
proxy.$request("/Teacher/GetCourseCommentTimes", data.Msg).then(res => {
if (res) {
data.courseTimeList = res.Data;
clickSure() {
data.clickShow = false;
data.postMsg.Times = data.Msg.CommentTimes;
data.postMsg.CourseId = data.Msg.CourseId;
proxy.$request("/Teacher/BatchSetStuComment", data.postMsg).then(res => {
if (res.Code == 1) {
uni.showToast({
title: '操作成功!',
icon: 'none',
duration: 500
})
}
})
},
//获取课程评价规则信息
getCourseRule() {
proxy.$request("/Teacher/GetCourseComment", data.Msg).then(res => {
//课程学员列表
getChooseStu(array) {
if (array) {
data.postMsg.ChooseStuList = array
}
},
//根据课程编号获取课程学员
getCourseStu() {
let stuMsg = {
courseId: data.Msg.CourseId
};
proxy.$request("/Teacher/GetCourseStu", stuMsg).then(res => {
console.log("res", res);
if (res) {
data.courseRule = res.Data;
data.StuList = res.Data;
}
})
},
goRules() {
uni.navigateTo({
url: '/pages/setComments/commentRulesList?CourseId=' + data.Msg.CourseId
})
}
};
return {
...toRefs(data),
...methods
......@@ -166,18 +177,19 @@
},
onLoad(option) {
this.Msg.CourseId = option.CourseId;
this.getCourseRule();
this.getCourseCommentTimes();
this.Msg.CommentTimes = option.CommentTimes;
this.getCourseStu();
},
};
</script>
<style scoped>
.Sure-button view.active{
.Sure-button view.active {
background-color: #F6F6F6;
color: #C91727;
}
.Sure-button view{
.Sure-button view {
width: 359rpx;
line-height: 88rpx;
background-color: #C91727;
......@@ -188,27 +200,32 @@
text-align: center;
letter-spacing: 1rpx;
}
.Sure-button{
.Sure-button {
justify-content: center;
margin-top: 67rpx;
}
.content-textarea-box textarea{
.content-textarea-box textarea {
width: 100%;
}
.content-textarea-box{
.content-textarea-box {
background: #F6F6F6;
border-radius: 30rpx;
padding: 33rpx 37rpx;
min-height: 537rpx;
}
.addComment-textarea-box{
.addComment-textarea-box {
border-radius: 50rpx 50rpx 0 0;
/* background: #FFFFFF; */
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1654049334000_485.png') no-repeat top 0 center #FFFFFF;
background-size: 141rpx 41rpx;
padding: 50rpx 50rpx 37rpx 50rpx;
}
.addComment-text{
.addComment-text {
text-align: center;
font-weight: 500;
font-size: 26rpx;
......@@ -216,14 +233,16 @@
letter-spacing: 1rpx;
margin-top: 15rpx;
}
.addComment-img-list.activeOne .addComment-img view{
.addComment-img-list.activeOne .addComment-img view {
text-align: center;
line-height: 123rpx;
color: #DCDCDC;
font-weight: bold;
font-size: 50rpx;
}
.addComment-img view{
.addComment-img view {
width: 119rpx;
height: 119rpx;
border: 1rpx solid #DBDBDB;
......@@ -231,58 +250,69 @@
margin: 5rpx;
overflow: hidden;
}
.addComment-img{
.addComment-img {
width: 130rpx;
height: 130rpx;
background: #FFFFFF;
border-radius: 50%;
}
.addComment-imgbox{
.addComment-imgbox {
justify-content: center;
}
.addComment-img-list{
.addComment-img-list {
flex: 0 0 25%;
flex-direction: column;
}
.addComment-img-box{
.addComment-img-box {
padding: 0 20rpx;
flex-wrap: wrap;
margin-bottom: 50rpx;
}
.addComment-title van-icon{
.addComment-title van-icon {
font-size: 38rpx;
margin-right: 20rpx;
}
.addComment-title{
.addComment-title {
font-size: 30rpx;
font-weight: bold;
color: #282828;
letter-spacing: 1rpx;
padding: 54rpx 50rpx 42rpx 50rpx;
}
.addComment-header-box{
padding: 20rpx 42rpx;
.addComment-header-box {
padding: 20rpx 42rpx;
flex-direction: row;
align-items: center;
}
.addComment-header-title{
font-size: 32rpx;
font-weight: 500;
color: #282828;
flex:1;
text-align: center;
padding-right: 40rpx;
.addComment-header-title {
font-size: 32rpx;
font-weight: 500;
color: #282828;
flex: 1;
text-align: center;
padding-right: 40rpx;
}
.addComment-header-left{
font-size: 40rpx;
position: relative;
z-index: 3;
.addComment-header-left {
font-size: 40rpx;
position: relative;
z-index: 3;
}
.addComment-content{
.addComment-content {
position: relative;
z-index: 1;
}
.addComment-bj{
.addComment-bj {
position: fixed;
right: 0;
left: 0;
......@@ -291,6 +321,7 @@
z-index: 0;
background: #F6F6F6;
}
.navbarSticky {
display: sticky;
top: 0;
......
......@@ -25,7 +25,7 @@
</view>
</view>
</view>
<commentDetails :CourseCommentTimesList="courseTimeList" @refreshData="getStuCommentList"></commentDetails>
<commentDetails :qMsg="Msg" :CourseCommentTimesList="courseTimeList" @refreshData="getStuCommentList"></commentDetails>
</view>
......
......@@ -4,7 +4,7 @@ if (process.env.NODE_ENV === "development") {
host = 'http://192.168.10.36:8082/api'
// host = 'http://192.168.10.65:8085/api'
} else {
host = 'https://eduapi.oytour.com/api'
host = 'https://jjswapi.oytour.com/api'
}
import Toast from '../wxcomponents/vant/toast/toast';
let request = (param) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment