Commit b125b04e authored by 罗超's avatar 罗超
parents f8fa4df4 2f14e283
......@@ -45,15 +45,16 @@ module.exports = function (ctx) {
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build: {
vueRouterMode: 'hash', // available values: 'hash', 'history'
env: ctx.dev ? {
API: 'http://192.168.20.51:8088/api',
API_ZC:'http://192.168.20.9:8087/api',
API_SK:'ws:192.168.20.214:'
API: 'https://localhost:5001/api',
// API: 'http://192.168.20.51:8088/api',
API_ZC: 'http://192.168.20.9:8087/api',
API_SK: 'ws:192.168.20.214:'
} : {
API: 'https://eduapi.oytour.com/api',
API_ZC:'http://propertyedu.oytour.com/api',
API_SK:'ws://47.96.23.199:'
API_ZC: 'http://propertyedu.oytour.com/api',
API_SK: 'ws://47.96.23.199:'
},
// transpile: false,
......@@ -153,7 +154,7 @@ module.exports = function (ctx) {
],
directives: [
'ClosePopup'
],
],
// Quasar plugins
plugins: [
......
......@@ -20,7 +20,7 @@ export default {
</script>
<style>
@import url("//at.alicdn.com/t/font_2077629_8vzffiv0anf.css");
@import url("//at.alicdn.com/t/font_2077629_21slbfvfeud.css");
.q-scrollarea__thumb {
z-index: 999999 !important;
}
......
......@@ -389,4 +389,32 @@ export function EduDownLoad(cmd, msg, fileName, callBack) {
callBack(result);
}
})
}
/**
* 上传文件 企微写死阿里云
*/
export function wechatUploadSelfFile(path, file, callback, configObj) {
//用户登录缓存
//配置写死的 阿里云
var uploadConfig = {
Region:"oss-cn-chengdu",
SecretId:"LTAIwE7l9dImZSa3",
SecretKey:"j47Ajn0d0WzUCIX8Biyj3P2r8QDltI",
Bucket: "vt-im-bucket"
};
//获取文件扩展名
var index = file.name.lastIndexOf(".");
var suffix = file.name.substr(index);
var timestamp1 = Date.parse(new Date()) + "_" + (Math.ceil(Math.random() * 1000));
let str = '/Test';
var newPath = "/EduSystem" + str + '/Upload/' + path;
var uploadLoadding = Loading;
uploadLoadding.show({
message: '正在上传文件,请稍后...'
})
if (uploadConfig) {
newPath += "/" + timestamp1 + "" + suffix;
UploadFileToALi(uploadConfig, newPath, file, uploadLoadding, callback);
}
}
\ No newline at end of file
......@@ -79,4 +79,101 @@ export function SetSynvEduEmployee(data) {
method: 'post',
data
})
}
/**
* 素材管理 获取素材类型枚举列表
*
*/
export function getMediumTypeEnumList(data) {
return request({
url: '/QYWeChat/GetMediumTypeEnumList',
method: 'post',
data
})
}
/**
* 素材管理 素材分组列表
*
*/
export function getWeChatMediumGroupList(data) {
return request({
url: '/QYWeChat/GetWeChatMediumGroupList',
method: 'post',
data
})
}
/**
* 素材管理 获取素材分页列表
*
*/
export function getWeChatMediumPageList(data) {
return request({
url: '/QYWeChat/GetWeChatMediumPageList',
method: 'post',
data
})
}
/**
* 素材管理 新增修改素材
*
*/
export function setWeChatMediumInfo(data) {
return request({
url: '/QYWeChat/SetWeChatMediumInfo',
method: 'post',
data
})
}
/**
* 素材管理 删除素材
*
*/
export function delWecharMediumInfo(data) {
return request({
url: '/QYWeChat/DelWecharMediumInfo',
method: 'post',
data
})
}
/**
* 素材管理 素材移动
*
*/
export function setWecharMediumMore(data) {
return request({
url: '/QYWeChat/SetWecharMediumMore',
method: 'post',
data
})
}
/**
* 获取欢迎语分页列表
*
*/
export function getWeChatWelcomesPageList(data) {
return request({
url: '/QYWeChat/GetWeChatWelcomesPageList',
method: 'post',
data
})
}
/**
* 新增修改欢迎语
*
*/
export function setWeChatWelcomesInfo(data) {
return request({
url: '/QYWeChat/SetWeChatWelcomesInfo',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -118,3 +118,39 @@ export function saveAuditMan(data) {
data
})
}
/**
* 获取试卷分页列表
* @param {JSON参数} data
*/
export function GetPaperPage(data) {
return request({
url: '/Exam/GetPaperPage',
method: 'post',
data
})
}
/**
* 根据编号获取试卷题目
* @param {JSON参数} data
*/
export function GetPaper(data) {
return request({
url: '/Exam/GetPaper',
method: 'post',
data
})
}
/**
* 保存试卷信息
* @param {JSON参数} data
*/
export function savePaperInfo(data) {
return request({
url: '/Exam/SetPaper',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -16,6 +16,11 @@
<q-select filled option-value="TId" option-label="TeacherName" class="q-pr-lg" v-model="statusMsg.Teacher_Id"
:options="TeacherList" emit-value map-options label="带班老师" />
</div>
<div class="col-12" v-if="setingObj.ClassRoomId==0&&statusMsg.ClassStatus==2">
<q-select filled stack-label option-value="RoomId" option-label="RoomName" v-model="statusMsg.ClassRoomId"
ref="ClassRoomId" :options="ClassRoomList" label="关联教室" :dense="false" class="col-6 q-pb-lg" emit-value
map-options />
</div>
</div>
<q-separator />
<q-card-actions align="right" class="bg-white">
......@@ -33,7 +38,8 @@
saveClassStatus, //修改班级状态
} from '../../api/course/class'
import {
getTeacherDropDownList
getTeacherDropDownList,
queryClassRoomList,
} from '../../api/school/index';
export default {
......@@ -50,10 +56,12 @@
statusMsg: {
ClassId: 0,
ClassStatus: 0,
Teacher_Id: 0
Teacher_Id: 0,
ClassRoomId: 0
},
classStatusList: [],
TeacherList: [],
ClassRoomList: []
}
},
created() {
......@@ -68,6 +76,7 @@
this.getClassStatus();
this.GetTeacherList();
this.getClassRoomList();
},
methods: {
//获取班级状态列表
......@@ -84,6 +93,18 @@
}
}).catch(() => {})
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
this.ClassRoomList.unshift({
RoomId: 0,
RoomName: "不限"
})
}
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
......@@ -107,7 +128,17 @@
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择老师`
message: `请选择上课老师`
})
return
}
}
if (this.setingObj.ClassRoomId == 0 && ClassStatus == 2) {
if (this.statusMsg.ClassRoomId == 0) {
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择上课教室`
})
return
}
......@@ -133,14 +164,14 @@
ok: "查看名单",
cancel: "我知道了",
}).onOk(() => {
this.OpenNewUrl('/stuMan/unfinishedStudent',{
ClassId:this.statusMsg.ClassId
this.OpenNewUrl('/stuMan/unfinishedStudent', {
ClassId: this.statusMsg.ClassId
})
}).onCancel(() => {
});
}
if(ClassStatus==2 && res.Data){
if (ClassStatus == 2 && res.Data) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
......
......@@ -110,15 +110,26 @@
</div>
<div class="row wrap">
<div class="col-6">
<q-input filled v-model="objOption.OpenTime" class="col-6 q-pr-lg q-pb-lg" mask="date" label="开班时间">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.OpenTime" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<template v-if="objOption.ClassId>0">
<q-input filled v-model="objOption.OpenTime" class="col-6 q-pr-lg q-pb-lg" mask="date" label="开始报名时间">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.OpenTime" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</template>
<template v-else>
<q-field filled class="q-pr-lg">
 <template v-slot:control>
<el-date-picker type="dates" style="width:100%" v-model="objOption.ClassDateList"
value-format="yyyy-MM-dd" placeholder="开班时间">
</el-date-picker>
</template>
</q-field>
</template>
</div>
<div class="col-6">
<q-input filled v-model="objOption.EndOrderTime" class="col-6 q-pr-lg q-pb-lg" mask="date" label="截止报名时间">
......@@ -219,7 +230,8 @@
</div>
<div class="col-6">
<q-input filled stack-label maxlength="6" v-model="objOption.ClassHours" :dense="false"
class="col-6 q-pr-lg q-pb-lg" label="学习课时(课程)" @keyup.native="checkInteger(objOption,'ClassHours')" disable />
class="col-6 q-pr-lg q-pb-lg" label="学习课时(课程)" @keyup.native="checkInteger(objOption,'ClassHours')"
disable />
</div>
</div>
<div class="row wrap" v-if="objOption.ClassStyle==1">
......@@ -428,6 +440,7 @@
CompleteProgress: 0, //完成进度
ClassType: 1, //班级类型
ClassHourMinute: 45, //课时分钟数
ClassDateList: [], //开班时间
},
optionTitle: "",
saveCourseLoading: false,
......@@ -496,7 +509,7 @@
checkedDays: [],
//默认上课时间数组
DefaultPlanTimeList: [],
BtnStr: "立即提交",
BtnStr: "立即提交"
}
},
created() {
......@@ -571,6 +584,7 @@
this.objOption.InnerRemark = TempData.InnerRemark;
this.objOption.ClassType = TempData.ClassType;
this.objOption.ClassHourMinute = TempData.ClassHourMinute;
this.objOption.ClassDateList = TempData.ClassDateList;
//默认时间
if (TempData.DefaultTimeList && TempData.DefaultTimeList.length > 0) {
this.DefaultPlanTimeList = TempData.DefaultTimeList;
......@@ -609,7 +623,51 @@
saveCourse() {
this.$refs.ClassName.validate();
this.$refs.ClassPersion.validate();
if (this.DefaultPlanTimeList.length == 0) {
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择学习时段`
})
return;
} else {
for (let i = 0; i < this.DefaultPlanTimeList.length; i++) {
if (this.DefaultPlanTimeList[i].DateList.length == 0) {
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择第${i+1}行周几`
})
return
}
for (let j = 0; j < this.DefaultPlanTimeList[i].TimeList.length; j++) {
if (this.DefaultPlanTimeList[i].TimeList[j].StartTime == '') {
this.$q.notify({
type: 'negative',
position: "top",
message: `请填写第${i+1}行,第${j+1}个开始时间`
})
return
}
if (this.DefaultPlanTimeList[i].TimeList[j].EndTime == '') {
this.$q.notify({
type: 'negative',
position: "top",
message: `请填写第${i+1}行,第${j+1}个结束时间`
})
return
}
if (this.DefaultPlanTimeList[i].TimeList[j].TimeHour == '') {
this.$q.notify({
type: 'negative',
position: "top",
message: `请填写第${i+1}行,第${j+1}个的课时`
})
return
}
}
}
}
if (!this.$refs.ClassName.hasError && !this.$refs.ClassPersion.hasError) {
if (this.objOption.IsOpenCommission == 1) {
if (this.objOption.CommissionValue == '') {
......@@ -630,57 +688,68 @@
this.saveCourseLoading = true;
saveClass(this.objOption).then(res => {
if (res.Code == 1) {
//有上课计划
if (res.Data && res.Data.ClassPlanList && res.Data.ClassPlanList.length > 0) {
this.BtnStr = "正在检查排班是否存在冲突";
var newMsg = {
ClassId: res.Data.ClassId,
PlanList: res.Data.ClassPlanList,
}
var NewClassId = res.Data.ClassId;
batchSaveClassPlan(newMsg).then(res => {
this.saveCourseLoading = false
if (res.Code == 1) {
if (res.Data) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!但存在上课冲突数据,请调整。',
position: 'top'
})
this.$emit('getClassFlict', NewClassId);
} else {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
}
this.$emit("success")
this.closeCourseForm()
}
})
} else {
this.saveCourseLoading = false
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeCourseForm()
}
var newClassId = res.Data.ClassId
var PlanList = res.Data.ClassPlanList;
// //有上课计划
// if (res.Data && res.Data.ClassPlanList && res.Data.ClassPlanList.length > 0 && this.objOption
// .ClassDateList.length < 2) {
// this.checkPlan(newClassId, PlanList)
// } else {
// this.refreshForm();
// }
this.refreshForm();
} else {
this.$q.notify({
type: 'negative',
position: "top",
message: `操作失败!`
})
}
}).catch(() => {
this.BtnStr = "立即提交"
this.saveCourseLoading = false
})
}
},
//检查上课计划是否冲突
checkPlan(ClassId, ClassPlanList) {
this.BtnStr = "正在检查排班是否存在冲突";
var newMsg = {
ClassId: ClassId,
PlanList: ClassPlanList,
}
var NewClassId = ClassId;
batchSaveClassPlan(newMsg).then(res => {
this.saveCourseLoading = false
if (res.Code == 1) {
if (res.Data) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!但存在上课冲突数据,请调整。',
position: 'top'
})
this.$emit('getClassFlict', NewClassId);
} else {
this.refreshForm()
}
}
});
},
//刷新表单
refreshForm() {
this.saveCourseLoading = false
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success");
this.closeCourseForm();
},
//获取课程
getCourseList() {
queryCourseDropdownList({
......@@ -759,6 +828,7 @@
TimeList: [{
StartTime: "",
EndTime: "",
TimeHour: ''
}],
}
this.DefaultPlanTimeList.push(planObj);
......@@ -783,6 +853,7 @@
var obj = {
StartTime: "",
EndTime: "",
TimeHour: ''
}
item.TimeList.push(obj);
},
......
......@@ -83,13 +83,16 @@
text-decoration: underline;
cursor: pointer;
}
.TeacherNewClass{
.TeacherNewClass {
display: flex;
margin-bottom:3px;
margin-bottom: 3px;
}
.TeacherNewClass:last-child{
margin-bottom:0;
.TeacherNewClass:last-child {
margin-bottom: 0;
}
</style>
<template>
<div class="page-body">
......@@ -157,6 +160,23 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-AskforleaveNum="props">
<q-td auto-width :props="props" style="width:25%">
<div v-for="(item,index) in props.row.TimeList">
<span style="color:red;" :class="{'underLine':item.AskforleaveList.length>0}">
{{item.AskforleaveNum}}
<q-popup-proxy v-if="item.AskforleaveList.length>0">
<div style="min-width:360px;max-width:360px;">
<q-banner>
<q-chip dense v-for="(subItem,subindex) in item.AskforleaveList" :key="subindex">
{{subItem.GuestName}}</q-chip>
</q-banner>
</div>
</q-popup-proxy>
</span>
</div>
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.PageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
......@@ -183,9 +203,10 @@
<div class="TeacherContent">
<div v-for="(subItem,subIndex) in item.TimeList" class="TeacherNewClass">
<div>{{subIndex+1}}节课 {{subItem.StartTime}}-{{subItem.EndTime}}</div>
<div style="color:green;margin:0 20px;" title="签到数">{{subItem.CheckNum}}</div>
<div style="color:red;" title="缺勤数">{{subItem.NoCheckNum}}</div>
</div>
<div style="color:green;margin:0 20px;" title="签到数">签到数:{{subItem.CheckNum}}</div>
<div style="color:red;margin:0 20px;" title="缺勤数">缺勤数:{{subItem.NoCheckNum}}</div>
<div style="color:red;" title="请假数">请假数:{{subItem.AskforleaveNum}}</div>
</div>
</div>
</div>
</div>
......@@ -261,10 +282,16 @@
label: '缺勤数',
field: 'NoCheckNum',
align: 'left'
},
{
name: 'AskforleaveNum',
label: '请假数',
field: 'AskforleaveNum',
align: 'left'
}
],
checkType: 1, //默认列表模式
isShowBtn:true
isShowBtn: true
}
},
created() {
......@@ -272,8 +299,8 @@
},
mounted() {
this.TeacherId = this.setingObj.Teacher_Id;
if(this.isShowMyBtn==1){
this.isShowBtn=false;
if (this.isShowMyBtn == 1) {
this.isShowBtn = false;
}
this.getRecord();
......
This diff is collapsed.
<template>
<div class="appletmaterial" style="padding: 0;margin: 0;">
<div class="page-content">
<div>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="add" label="添加小程序"
@click="goadd()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="delete" label="批量删除"
@click="pldelete()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="edit" label="修改分组"
@click="plmove()"></q-btn>
</div>
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;" v-if="dataList.length>0">
<q-card class="imgcard" v-for="(x,y) in dataList" :key='y'
:style="{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="dataList[y].check = !dataList[y].check,$forceUpdate();">
<q-card-section>
<div
style="display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;">
<span>{{x.UpdateTime}}</span>
<!-- <q-btn class="q-mr-md" label="编辑" size="xs" color="accent" style="margin-right: 0;" @click.stop="goedit(x)" /> -->
<i class="el-icon-edit-outline" style="font-size: 20px;color: #1890ff;"
@click.stop="goedit(x)"></i>
</div>
<q-img :src="x.AppletModel && x.AppletModel.ImagePath?x.AppletModel.ImagePath:''" class="imgstyle">
<div class="absolute-bottom text-subtitle1 text-center onetext"
style="padding: 0;padding: 0 5px;font-size: 12px;">
{{x.AppletModel&& x.AppletModel.Title?x.AppletModel.Title:''}}
</div>
</q-img>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分钟:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据</div>
</div>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据</div>
</div>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" type='6' @editsuccess="getchildren" :editobj='editobj' @getcancel='Isadd=false'></alladdsc>
</div>
</div>
</template>
<script>
import alladdsc from './allAddSC'
export default {
name: "appletmaterial",
components: {
alladdsc,
},
props: {
dataList: {
type: Array,
default: [],
},
allclassifyList:{
type: Array,
default: [],
}
},
data() {
return {
loading: false,
Isadd: false,
editobj:null
}
},
created() {
},
methods: {
goadd() {
this.Isadd = true;
this.editobj=null
},
goedit(row){
this.editobj= {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
this.editobj.AppletModel = JSON.parse(JSON.stringify(row.AppletModel)) ;
this.Isadd = true
},
getchildren(){
this.$emit('editsuccess')
this.Isadd = false
},
pldelete(){
this.$emit('getdelete')
},
plmove(){
this.$emit('getmove')
}
}
}
</script>
<style>
.appletmaterial .Sysuser_Date .el-input--prefix .el-input__inner {
background-color: red;
border: 0;
}
.appletmaterial .state-item {
padding: 2px 5px;
border-radius: 3px;
text-align: center;
font-size: 10px;
}
.appletmaterial .frIdlist {
padding: 3px 10px;
border-radius: 3px;
background: #EEEEEF;
align-items: center;
justify-content: center;
margin-right: 5px;
margin-bottom: 5px;
cursor: pointer;
}
.class-popover .q-pr-lg {
padding-right: 0;
margin-top: 20px;
}
.appletmaterial .el-date-editor.el-input {
width: 100%;
}
.appletmaterial .el-date-editor.el-input input {
background-color: transparent !important;
}
.appletmaterial .el-range-editor .el-range-input {
background: none;
}
.Sysuser_Date .el-input__inner {
background: transparent !important;
border: 0 !important;
}
.appletmaterial .el-drawer.rtl {
overflow: inherit;
}
.appletmaterial .imgcard {
width: 240px;
margin: 0 15px 15px 0
}
.appletmaterial .imgstyle {
width: 100%;
height: 120px;
border-radius: 0;
}
.appletmaterial .onetext {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 208px;
}
</style>
\ No newline at end of file
......@@ -3,148 +3,101 @@
<div class="page-content">
<div>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="cloud_upload" label="上传图片"
@click="goadd()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="delete" label="批量删除"
@click="pldelete()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="edit" label="修改分组"
@click="plmove()"></q-btn>
</div>
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;">
<q-card class="imgcard" v-for="(x,y) in data" :key='y'
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;" v-if="dataList.length>0">
<q-card class="imgcard" v-for="(x,y) in dataList" :key='y'
:style="{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
@click="dataList[y].check = !dataList[y].check,$forceUpdate()">
<q-card-section>
<div
style="display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;">
<span>{{x.UpdateTime}}</span>
<!-- <q-btn class="q-mr-md" label="编辑" size="xs" color="accent" style="margin-right: 0;" @click.stop="goedit(x)" /> -->
<i class="el-icon-edit-outline" style="font-size: 20px;color: #1890ff;" @click.stop="goedit(x)"></i>
<!-- <i class="el-icon-edit-outline" style="font-size: 20px;color: #1890ff;" @click.stop="goedit(x)"></i> -->
</div>
<q-img :src="x.Content" class="imgstyle">
<q-img :src="x.ImageModel && x.ImageModel.ImagePath?x.ImageModel.ImagePath:''" class="imgstyle">
<div class="absolute-bottom text-subtitle1 text-center onetext"
style="padding: 0;padding: 0 5px;font-size: 12px;">
{{x.title}}
style="padding: 0;padding: 0 5px;font-size: 12px;" >
{{x.ImageModel && x.ImageModel.ImageName ?x.ImageModel.ImageName:''}}
</div>
</q-img>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.CreatorName}}</div>
<div class="onetext" style="margin-top: 5px;">来源:{{x.source}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
</div>
</div>
<q-dialog v-model="Isadd" persistent>
<q-card style="width: 520px; max-width: 80vw;">
<q-card-section>
<div class="text-h6">新建图片素材</div>
</q-card-section>
<q-separator />
<q-card-section class="q-pt-none" style="margin-top: 15px;padding: 20px;">
<q-select filled stack-label option-value="ID" option-label="Name" v-model="addMsg.classifyId"
ref="ID" :options="classifyList" label="分组" :dense="false" emit-value map-options />
<div style="margin-top: 15px;">
<div style="width:70px">上传图片:</div>
<div style="margin-top: 15px;">
<el-upload class="avatar-uploader materialupload" action="" :before-upload="uploadFile" accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"
:show-file-list="false">
<i class="el-icon-plus avatar-uploader-icon" style="font-size: 30px;" v-if="addMsg.img==''"></i>
<q-img v-else :src="addMsg.img"
style="width: 110px;height: 110px;border-radius: 6px;display: flex;">
</q-img>
</el-upload>
<div style="margin-top: 20px;">
(图片大小不超过2M,图片名不能重复,支持JPG,JPEG及PNG格式)
</div>
</div>
</div>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="Isadd = false" />
<q-btn color="accent" class="q-mr-md" label="添加" @click="submit()" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" type='2' @editsuccess="getchildren" :editobj='editobj' @getcancel='Isadd=false'></alladdsc>
</div>
</div>
</template>
<script>
import {
UploadSelfFile
} from "../../../api/common/common"; //上传图片
const addobj={ Id: 0, classifyId: '', img: '',}
import alladdsc from './allAddSC'
export default {
name: "imgmaterial",
components: {
alladdsc,
},
props: {
dataList: {
type: Array,
default: [],
},
allclassifyList:{
type: Array,
default: [],
}
},
data() {
return {
loading: false,
Isadd: false,
data: [{
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
}, {
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090216027320000000011.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
}, {
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090302364350000000080.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
},],
pageCount: 0,
msg: {
pageIndex: 1,
pageSize: 18,
},
classifyList: [
{ Name: '活动', ID: 1, },
{ Name: '产品', ID: 2, },
{ Name: '校园', ID: 3, },
],
addMsg: Object.assign({}, addobj)
editobj:null
}
},
created() {
console.log('进去所有页面')
},
methods: {
changePage(e) {
},
goadd() {
this.Isadd = true;
this.addMsg= Object.assign({}, addobj)
this.editobj=null
},
goedit(x){
this.Isadd = true;
this.addMsg.img= x.Content
goedit(row){
this.editobj= {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
this.editobj.ImageModel = JSON.parse(JSON.stringify(row.ImageModel)) ;
this.Isadd = true
},
uploadFile(files) {//图片上传
UploadSelfFile("course", files, res => {
if (res.Code == 1) {
this.addMsg.img = res.FileUrl;
}
});
getchildren(){
this.$emit('editsuccess')
this.Isadd = false
},
submit(){//提交
pldelete(){
this.$emit('getdelete')
},
plmove(){
this.$emit('getmove')
}
}
}
......
......@@ -5,11 +5,15 @@
<div>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="add" label="添加图文"
@click="goadd()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="delete" label="批量删除"
@click="pldelete()"></q-btn>
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="edit" label="修改分组"
@click="plmove()"></q-btn>
</div>
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;">
<q-card class="imgcard" v-for="(x,y) in data" :key='y'
<q-card class="imgcard" v-for="(x,y) in dataList" :key='y'
:style="{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
@click="dataList[y].check = !dataList[y].check,$forceUpdate();">
<q-card-section>
<div
style="display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;">
......@@ -18,139 +22,77 @@
<i class="el-icon-edit-outline" style="font-size: 20px;color: #1890ff;"
@click.stop="goedit(x)"></i>
</div>
<q-img :src="x.Content" class="imgstyle">
<q-img :src="x.ImgTextModel && x.ImgTextModel.ImgPath?x.ImgTextModel.ImgPath:''" class="imgstyle">
<div class="absolute-bottom text-subtitle1 text-center onetext"
style="padding: 0;padding: 0 5px;font-size: 12px;">
{{x.title}}
{{x.ImgTextModel&& x.ImgTextModel.Title?x.ImgTextModel.Title:''}}
</div>
</q-img>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.CreatorName}}</div>
<div class="onetext" style="margin-top: 5px;">来源:{{x.source}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分钟:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据</div>
</div>
</div>
<q-dialog v-model="Isadd" persistent>
<q-card style="width: 520px; max-width: 80vw;">
<q-card-section>
<div class="text-h6">新建图文</div>
</q-card-section>
<q-separator />
<q-card-section class="q-pt-none" style="margin-top: 15px;padding: 20px;">
<q-select filled stack-label option-value="ID" option-label="Name" v-model="addMsg.classifyId"
ref="ID" :options="classifyList" label="分组" :dense="false" emit-value map-options />
<div style="margin-top: 15px;">
<div style="width:70px">上传图片:</div>
<div style="margin-top: 15px;">
<el-upload class="avatar-uploader materialupload" action="" :before-upload="uploadFile"
accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp" :show-file-list="false">
<i class="el-icon-plus avatar-uploader-icon" style="font-size: 30px;"
v-if="addMsg.img==''"></i>
<q-img v-else :src="addMsg.img"
style="width: 110px;height: 110px;border-radius: 6px;display: flex;">
</q-img>
</el-upload>
<div style="margin-top: 20px;">
图片大小不超过2M,图片名不能重复,支持JPG,JPEG及PNG格式
</div>
<q-input clearable standout="bg-primary text-white" v-model="addMsg.title" label="添加标题"
style="margin-top: 20px;" />
<q-input clearable standout="bg-primary text-white" v-model="addMsg.content" type="textarea"
label="添加描述" style="margin-top: 20px;" />
<q-input clearable standout="bg-primary text-white" v-model="addMsg.link"
label="请输入跳转链接,且必须以http://或https://开头" style="margin-top: 20px;" />
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="Isadd = false" />
<q-btn color="accent" class="q-mr-md" label="添加" @click="submit()" />
</q-card-actions>
</q-card>
</q-dialog>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" type='3' @editsuccess="getchildren" :editobj='editobj' @getcancel='Isadd=false'></alladdsc>
</div>
</div>
</template>
<script>
import {
UploadSelfFile
} from "../../../api/common/common"; //上传图片
const addobj = { Id: 0, classifyId: '', img: '', title: '', content: '', }
import alladdsc from './allAddSC'
export default {
name: "imgtextmaterial",
components: {
alladdsc,
},
props: {
dataList: {
type: Array,
default: [],
},
allclassifyList:{
type: Array,
default: [],
}
},
data() {
return {
loading: false,
Isadd: false,
data: [{
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
}, {
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090216027320000000011.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
}, {
Type: 1,
title: '测试文本.png',
Content: 'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090302364350000000080.jpg',
source: '本地上传',
CreatorName: '小张',
check: false,
UpdateTime: '2021-08-04 15:48'
},],
pageCount: 0,
msg: {
pageIndex: 1,
pageSize: 18,
},
classifyList: [
{ Name: '活动', ID: 1, },
{ Name: '产品', ID: 2, },
{ Name: '校园', ID: 3, },
],
addMsg: Object.assign({}, addobj)
editobj:null
}
},
created() {
console.log('进去所有页面')
},
methods: {
changePage(e) {
},
goadd() {
this.Isadd = true;
this.addMsg = Object.assign({}, addobj)
this.editobj=null
},
goedit(x) {
goedit(row){
this.Isadd = true;
this.addMsg.img = x.Content
this.editobj= {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
this.editobj.ImgTextModel = JSON.parse(JSON.stringify(row.ImgTextModel)) ;
this.Isadd = true
},
uploadFile(files) {//图片上传
UploadSelfFile("course", files, res => {
if (res.Code == 1) {
this.addMsg.img = res.FileUrl;
}
});
getchildren(){
this.$emit('editsuccess')
this.Isadd = false
},
submit() {//提交
pldelete(){
this.$emit('getdelete')
},
plmove(){
this.$emit('getmove')
}
}
......
......@@ -2,84 +2,79 @@
<div class="textmaterial" style="padding: 0;margin: 0;">
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" title="" :data="data" :columns="columns" row-key="name">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table no-bottom-table"
separator="none" title="" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title"></div>
<q-space />
<q-btn color="accent" style="float:right;margin-right:0;" size="sm" class="q-mr-md" icon="add"
label="添加文本" @click="goadd()"></q-btn>
</template>
<template v-slot:body-cell-Type="props">
<template v-slot:body-cell-title="props">
<q-td :props="props">
<span v-if="props.row.Type==1">图文</span>
<span v-if="props.row.Type==2">图片</span>
<span>{{props.row.TextModel && props.row.TextModel.Title?props.row.TextModel.Title:''}}</span>
</q-td>
</template>
<template v-slot:body-cell-Content="props">
<q-td :props="props">
<span>{{props.row.TextModel && props.row.TextModel.Content?props.row.TextModel.Content:''}}</span>
</q-td>
</template>
<template v-slot:bottom>
<!-- <q-pagination class="full-width justify-end" v-model="msg.PageIndex" color="primary"
:max="msg.PageCount" :input="true" @input="changePage" /> -->
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="编辑" @click="goDetailed(props.row,'0')" />
<q-btn flat size="xs" icon="delete" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="删除" @click="goDetailed(props.row,'0')" />
label="编辑" @click="goedits(props.row)" />
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="移动" @click="plmove(props)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs"
label="删除" @click="goDetailed(props.row)" />
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary"
:max="pageCount" :input="true" @input="changePage" />
</template>
</q-table>
</div>
<q-dialog v-model="Isadd" persistent>
<q-card style="width: 520px; max-width: 80vw;">
<q-card-section>
<div class="text-h6">新建文本素材</div>
</q-card-section>
<q-separator />
<q-card-section class="q-pt-none" style="margin-top: 15px;">
<q-select filled stack-label option-value="ID" option-label="Name" v-model="addMsg.classifyId"
ref="ID" :options="classifyList" label="分组" :dense="false" emit-value map-options />
<q-input clearable standout="bg-primary text-white" v-model="addMsg.title" label="文本标题" style="margin-top: 20px;"
/>
<q-input clearable standout="bg-primary text-white" v-model="addMsg.content" type="textarea" label="文本内容" style="margin-top: 20px;"
/>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="Isadd = false" />
<q-btn color="accent" class="q-mr-md" label="添加" @click="savelocal()" />
</q-card-actions>
</q-card>
</q-dialog>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" type='1' @editsuccess="getchildren" :editobj='editobj' @getcancel='Isadd=false'></alladdsc>
</div>
</div>
</template>
<script>
import {
delWecharMediumInfo,//删除素材
} from '../../../api/system/wechat';
import alladdsc from './allAddSC'
export default {
name: "textmaterial",
components: {
alladdsc,
},
props: {
dataList: {
type: Array,
default: [],
},
allclassifyList:{
type: Array,
default: [],
}
},
data() {
return {
loading: false,
Isadd: false,
data: [{
Type: 1,
title: '测试文本',
Content: '测试文本',
source: '本地上传',
CreatorName: '小张',
UpdateTime: '2021-08-04 15:48'
}],
pageCount: 0,
msg: {
pageIndex: 1,
pageSize: 10,
rowsPerPage: 10,
Month: '',
TeacherId: 0,
State: 0,
},
//公告column
columns: [{
......@@ -95,20 +90,20 @@
align: 'left',
},
{
name: 'CreatorName',
field: 'CreatorName',
name: 'UpdateByName',
field: 'UpdateByName',
label: '上传者',
align: 'left'
},
{
name: 'source',
field: 'source',
label: '素材来源',
name: 'MediumGroupName',
field: 'MediumGroupName',
label: '分组',
align: 'left'
},
{
name: 'Type',
field: 'Type',
name: 'TypeName',
field: 'TypeName',
label: '类型',
align: 'left'
},
......@@ -124,22 +119,13 @@
field: 'DeptId'
}
],
classifyList: [
{ Name: '活动', ID: 1, },
{ Name: '产品', ID: 2, },
{ Name: '校园', ID: 3, },
],
addMsg: {
Id: 0,
classifyId: '',
title: '',
content: '',
}
editobj: null
}
},
created() {
console.log('进去所有页面')
},
methods: {
changePage(e) {
......@@ -147,8 +133,52 @@
},
goadd() {
this.Isadd = true
this.editobj=null
},
getchildren(){
this.$emit('editsuccess')
this.Isadd = false
},
goedits(row){
this.editobj= {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
this.editobj.TextModel = JSON.parse(JSON.stringify(row.TextModel)) ;
this.Isadd = true
},
goDetailed(row){//删除
let delMsg = {
MediumIds: row.Id,
};
this.$q.dialog({
title: '提示信息',
message: '是否确定删除该素材?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
delWecharMediumInfo(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.$emit('editsuccess')
}
})
}).onCancel(() => {
});
},
plmove(row){
this.dataList[row.rowIndex].check = !this.dataList[row.rowIndex].check
this.$emit('getmove')
}
}
}
......
......@@ -196,7 +196,7 @@
this.$emit('close')
},
getList(){//获取数据
console.log('获取数据')
},
resetSearch(){
this.msg.pageIndex = 1;
......
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 850px;max-width:900px;">
<q-card-section>
<div class="text-h6">问题列表</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="research" clearable standout="bg-primary text-white" v-model="msg.Title" label="关键字"
@clear="research" maxlength="20" />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.QCategoryId" :options="questionCategoryList" emit-value map-options label="分类" multiple
clearable />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="QId" option-label="Name"
v-model="msg.QuestionTypeId" :options="questionTypeList" emit-value map-options label="题型" multiple
clearable />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.DifficultyType" :options="questionDifficultyTypeList" emit-value map-options label="难度"
multiple clearable />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-right-column-table" separator="none" :data="dataList" :columns="columns"
row-key="QuestionId" selection="multiple" :selected.sync="selectedQuestion">
<template v-slot:top="props">
<div class="col-2 q-table__title">问题列表</div>
<q-space />
</template>
<template v-slot:body-cell-Title="props">
<td style="width:400px;">
<div @click="goDetail(props.row)" v-html="props.row.Title" class="quetion_Title">
</div>
</td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
</q-table>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="确认选择" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="saveCategory" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
queryQuestionCategory,
queryQuestionTypeList,
queryDifficultyType,
queryQuestionPageList,
} from '../../api/question/question';
export default {
data() {
return {
persistent: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
CourseId: 0,
BankId: 0,
Title: "",
PointName: "", //知识点
QuestionTypeId: [], //题型
DifficultyType: [], //难易程度
QCategoryId: [], //分类
},
questionCategoryList: [],
questionTypeList: [], //问题类型列表
questionDifficultyTypeList: [],
columns: [{
name: 'Number',
label: '编号',
field: 'Number',
align: 'left'
},
{
name: 'Title',
label: '题目',
field: 'Title',
align: 'left'
},
{
name: 'CategoryName',
label: '分类',
field: 'CategoryName',
align: 'left',
},
{
name: 'QuestionTypeName',
label: '题型',
field: 'QuestionTypeName',
align: 'left',
},
{
name: 'DifficultyTypeName',
label: '难易',
field: 'DifficultyTypeName',
align: 'left'
},
{
name: 'LevelTypeName',
label: '考级程度',
field: 'LevelTypeName',
align: 'left'
}
],
dataList:[],
pageCount:0,
selectedQuestion:[],
loading:false,
saveLoading:false
}
},
mounted() {
this.getQuestionCategory()
this.getQuestionType();
this.getDifficultyType();
this.getQuestionList();
},
methods: {
//获取问题大类
getQuestionCategory() {
queryQuestionCategory().then(res => {
this.questionCategoryList = res.Data;
})
},
//获取题型列表
getQuestionType() {
queryQuestionTypeList({}).then(res => {
if (res.Code == 1) {
this.questionTypeList = res.Data;
}
});
},
//获取问题难易程度列表
getDifficultyType() {
queryDifficultyType().then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
tempArray.splice(0, 1);
this.questionDifficultyTypeList = tempArray;
}
});
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getQuestionList()
},
research() {
this.msg.pageIndex = 1;
this.getQuestionList();
},
//获取问题分页列表
getQuestionList() {
this.loading = true;
queryQuestionPageList(this.msg).then(res => {
console.log(res,'res');
this.loading = false;
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false
})
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
saveCategory(){
},
},
}
</script>
......@@ -10,7 +10,6 @@
}
</style>
<!--订单操作-->
<template>
<q-dialog v-model="IsShowEditOrder" maximized full-height seamless position="right">
......@@ -89,7 +88,6 @@
maxlength="50" v-model="OrderMsg.GeneralOccupation" class="col-12 q-pb-lg" label="一般同行" />
<q-input :disable="(modityOrderType==2)" v-if="OrderMsg.OrderSource==7" filled stack-label :dense="false"
maxlength="50" v-model="OrderMsg.EduOccupation" class="col-12 q-pb-lg" label="教育同行" />
<q-toggle :disable="(modityOrderType==2)" v-model="OrderMsg.IsLessPrice" :false-value="0" :true-value="1"
label="是否少价" class="q-mb-md" />
<q-input :disable="(modityOrderType==2)" v-if="OrderMsg.IsLessPrice==1"
......
......@@ -34,15 +34,7 @@ export default {
msg: {}
}
},
// watch: {
// dict: {
// handler(val) {
// this.msg = val
// console.log(this.msg)
// },
// deep: true
// }
// },
created() {
try {
if (!this.multiple) {
......@@ -56,9 +48,9 @@ export default {
}
this.msg = this.dict
console.log(this.msg)
} catch (error) {
console.log('错误', error)
}
},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -840,10 +840,10 @@
</span>
</template>
<template v-if="GetDetail.OtherType==28">
<span class="fr" style="text-decoration: underline;cursor: pointer;"
@click="goTuikuanDetail('/user/billquery',GetDetail.ReFinanceId)"> 退款申请单:{{GetDetail.ReFinanceId}}</span>
<span class="fr" style="text-decoration: underline;cursor: pointer;margin-right:20px;"
@click="goTuikuanDetail('/courseRefund',GetDetail.ReFinanceId2)"> 退款协议:{{GetDetail.ReFinanceId2}}</span>
<span class="fr" v-if="GetDetail&&GetDetail.ReFinanceId" style="text-decoration: underline;cursor: pointer;color:red;"
@click="goTuikuanDetail('/user/billquery',GetDetail.ReFinanceId)" title="点击查看退款申请单"> 退款申请单:{{GetDetail.ReFinanceId}}</span>
<span class="fr" v-if="GetDetail&&GetDetail.ReFinanceId2" style="text-decoration: underline;cursor: pointer;margin-right:20px;color:red;"
@click="goTuikuanDetail('/courseRefund',GetDetail.ReFinanceId2)" title="点击查看退款协议"> 退款协议:{{GetDetail.ReFinanceId2}}</span>
</template>
<span class="fr" style="text-decoration: underline;cursor: pointer;" v-if="GetDetail.OtherType==17"
@click="lookbreakage(GetDetail.ReFinanceId)"> 报损/报溢单:{{GetDetail.ReFinanceId}}</span>
......
......@@ -19,17 +19,17 @@
</div>
</el-select>
</div>
<div class="col-2">
<div class="col-2" style="width:13%">
<el-date-picker v-model="msg.StartTime" type="date" value-format="yyyy-MM-dd" placeholder="开始日期" size="small"
style="width:100%;" @change="getTypeWay()" :picker-options="picker" :clearable="false">
</el-date-picker>
</div>
<div class="col-2">
<div class="col-2" style="width:13%">
<el-date-picker v-model="msg.EndTime" type="date" value-format="yyyy-MM-dd" placeholder="结束日期" size="small"
style="width:100%;" @change="getTypeWay()" clear-icon="iconfont icon-guanbi" :picker-options="pickerEnd">
</el-date-picker>
</div>
<div class="col-2">
<div class="col-1" style="width:10%">
<el-select v-model="msg.ClassType" style="width:100%;" placeholder="类型" size="small" @change="getTypeWay()">
<el-option :key="0" label="全部" :value="0">
</el-option>
......@@ -42,9 +42,10 @@
</div>
</el-select>
</div>
<div class="col-2">
<div class="col-3" style="width:30%">
<q-btn color="accent" size="sm" class="q-mr-md" style="margin-top:2px;" @click="exchangeType"
:label="typeName" />
<q-btn color="accent" size="sm" class="q-mr-md" label="下载计划" @click="downLoadPlan()" />
<q-btn color="negative" size="sm" label="调课申请" @click="openForm"></q-btn>
</div>
</div>
......@@ -64,12 +65,16 @@
GetClassPlanStatistical,
GetClassPlanStatisticalPage
} from '../../api/teacher/index';
import {
EduDownLoad,
} from '../../api/common/common';
import classmateForm from '../../components/course/classmate-form';
import teachTable from '../teacher/components/teachTable';
import changeClassForm from '../../components/teacher/changeClassForm.vue'
export default {
meta: {
title: "我的课表"
title: "教师课表"
},
components: {
classmateForm,
......@@ -146,6 +151,10 @@
this.getPlanList();
},
methods: {
downLoadPlan() { //导出
var newMsg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/Class/DownLoadClassPlan", newMsg, "老师上课计划.xls")
},
refreshPage() {
this.getPlanList();
},
......@@ -161,8 +170,6 @@
if (res.Code == 1) {
this.dataList = res.Data;
}
}).catch(() => {
})
},
//获取教师下拉
......
......@@ -124,7 +124,7 @@
},
changeStatus(x){
x.EditorStatus=!x.EditorStatus
console.log(x)
this.$forceUpdate()
},
init(){
......
......@@ -1038,6 +1038,16 @@ const routes = [{
component: () =>
import("pages/teacher/myClass")
},
{
path: "/exam/examManagement", //试卷管理
component: () =>
import("pages/exam/examManagement")
},
{
path: "/exam/examEdit", //考试编辑
component: () =>
import("pages/exam/examEdit")
},
{
path: "/teacher/testdatabase", //题库查询
component: () =>
......@@ -1193,6 +1203,7 @@ const routes = [{
component: () =>
import("pages/courseRefundH5.vue")
},
{
path: "/financial/financalDocument/PrintPage", //财务单据打印
component: () =>
......
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