Commit 3e30b0a7 by tangjiale

更新代码

parent a4e2e3c4
......@@ -21,7 +21,7 @@
</div>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="update">修改密码</el-dropdown-item>
<!-- <el-dropdown-item command="update">修改密码</el-dropdown-item> -->
<el-dropdown-item command="layout">退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
......@@ -63,7 +63,7 @@
this.$service.base.getUserInfo(this.myUserInfo.token).then(result =>{
this.$store.commit('updateUserInfo', result);
setTimeout(() =>{
location.href = '/'
location.href = '/pxsys/'
},500)
})
})
......@@ -76,7 +76,7 @@
this.$refs['r-dialog'].change()
break
case 'layout':
this.$showConfirm("是否确认退出登录?").then(() => {
this.$showConfirm("是否确认登录?").then(() => {
this.$store.commit("logout");
});
break
......
......@@ -3,48 +3,64 @@
* @eMail: 932055106@qq.com
* @Date: 2022-06-06 09:28:37
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-06 11:12:28
* @LastEditTime: 2022-06-11 13:54:16
-->
<template>
<div class="add-course-bg">
<el-form ref="ruleForm" :model="param">
<el-form ref="courseFrom" :model="param" :rules="rules">
<el-form-item label="课程名称:" prop="name">
<el-input v-model="param.name" placeholder="最多输入30个汉字(60个字符)" ></el-input>
<el-input v-model="param.name" placeholder="最多输入60个字符" maxlength="60"></el-input>
</el-form-item>
<el-form-item label="上课时段:" prop="name">
<el-input v-model="param.name" placeholder="如:每周三下午4:30至5:30"></el-input>
<el-form-item label="上课时段:" prop="courseTime">
<el-input v-model="param.courseTime" placeholder="如:每周三下午4:30至5:30"></el-input>
</el-form-item>
<el-form-item label="可用校区:" prop="checkList">
<el-form-item label="可用校区:" error="" required>
<el-checkbox-group v-model="checkList" @change="handCheck">
<el-checkbox v-for="(lab,index) in list" :key="index" :label="lab.value">{{lab.name}}</el-checkbox>
<el-checkbox v-for="(lab,index) in schoolList" :key="index" :label="lab.value">{{lab.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<div class="arr-bg">
<el-form-item label="重要属性:"></el-form-item>
<el-form-item v-if="coachList.length || mangerList.length" label="添加校区下的人员:"></el-form-item>
<div class="course-arr-flex">
<el-form-item label="课程属性:" prop="arr">
<t-select v-model="param.arr" placeholder="请选择" :ds="[{name:'小学组',value:''},{name:'初中组',value:''},{name:'高中组',value:''}]"></t-select>
<template v-if="coachList && coachList.length">
<el-form-item label="添加教练:" error="" required>
<t-select v-model="coachSelect" placeholder="请选择" multiple :ds="coachList" @input="e => handleSelect(e,'coach')"></t-select>
</el-form-item>
</template>
<template v-if="mangerList && mangerList.length">
<el-form-item label="添加班主任:" error="" required>
<t-select v-model="mangerSelect" placeholder="请选择" multiple :ds="mangerList" @input="e => handleSelect(e,'manger')"></t-select>
</el-form-item>
</template>
</div>
<el-form-item label="添加重要属性:"></el-form-item>
<div class="course-arr-flex">
<el-form-item label="课程属性:" prop="courseStep">
<t-select v-model="param.courseStep" placeholder="请选择" :ds="[{name:'小学组',value:1},{name:'初中组',value:2},{name:'高中组',value:3}]"></t-select>
</el-form-item>
<el-form-item label="课程类型:" prop="type">
<t-select v-model="param.type" placeholder="请选择" :ds="[{name:'体验课',value:''},{name:'正式班课',value:''}]"></t-select>
<t-select v-model="param.type" placeholder="请选择" :ds="[{name:'体验课',value:1},{name:'正式班课',value:2}]"></t-select>
</el-form-item>
<el-form-item label="课时:" prop="arr">
<el-input v-model="param.name" placeholder="请输入数字"></el-input>
<el-form-item label="课时:" prop="classHour">
<el-input v-model="param.classHour" placeholder="请输入数字" onkeyup="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"
onafterpaste="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"></el-input>
</el-form-item>
<el-form-item label="课程价格:" prop="arr">
<el-input v-model="param.price" placeholder="请输入数字"></el-input>
<el-form-item label="课程价格:" prop="cost">
<el-input v-model="param.cost" placeholder="请输入数字" onkeyup="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"
onafterpaste="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"></el-input>
</el-form-item>
</div>
</div>
<el-form-item label="课程图片:" prop="name">
<el-form-item label="课程图片:" prop="poster">
<el-upload accept="image/jpg,image/jpeg,image/png"
:before-upload="beforeUpload"
class="upload-demo" action="#"
:show-file-list="false">
<template>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<img class="image-ctn" v-if="param.poster" :src="param.poster">
<div class="upload-ctn" v-else>
<div class="tip">课程图片大小不能超过3MB。</div>
<div class="upload-bg">
......@@ -56,20 +72,29 @@
</el-upload>
</el-form-item>
<el-form-item label="课程详情:" prop="name" class="curstom-editor">
<quill-editor :options="editorOption" v-model="content"></quill-editor>
<el-form-item label="课程详情:" prop="detail" class="curstom-editor">
<quill-editor :options="editorOption" v-model="param.detail"></quill-editor>
</el-form-item>
<div class="btns">
<el-button type="primary" @click="onSubmit('studentForm',0)">保存</el-button>
<el-button v-if="param.status != 1" type="primary" @click="onSubmit('studentForm',1)">直接发布</el-button>
</div>
</el-form>
</div>
</template>
<script>
import { Loading } from 'element-ui';
export default {
services:['base','course'],
data(){
return{
param:{},
imageUrl:'',
param:{
poster:'',
detail:'',
},
checkList:[],
content:'',
......@@ -77,17 +102,53 @@ export default {
placeholder: "请输入正文",
},
list:[
{name:'宇腾校区',value:'4',},{name:'河西校区',value:'6',},{name:'南湖馆校区',value:'3',},
]
schoolList:[], //校区
mangerList:[], //班主任
coachList:[], // 教练
mangerSelect:[],
coachSelect:[],
rules:{
name: [{ required: true, message: '请输入课程名称', trigger: 'change' }],
courseTime:[ { required: true, message: '请输入上课时段', trigger: 'change' }],
// checkList:[{ required: true, message: '请选择校区', trigger: 'change' }],
// pxEmployeeList:[{ required: true, message: '请选择校区人员', trigger: 'change' }],
courseStep:[{ required: true, message: '请选择课程属性', trigger: 'change' }],
type:[{ required: true, message: '请选择课程类型', trigger: 'change' }],
classHour:[{ required: true, message: '请输入课时', trigger: 'change' }],
cost:[{ required: true, message: '请输入课程价格', trigger: 'change' }],
poster:[{ required: true, message: '请上传课程图片', trigger: 'change' }],
detail:[{ required: true, message: '请填入课程详情', trigger: 'change' }]
}
}
},
methods:{
handCheck(){
async mounted(){
this.schoolList = await this.$service.base.getUserAllSchList() || []
},
methods:{
handCheck(e){
this.mangerList = []
this.mangerSelect = []
this.coachList = []
this.coachSelect = []
this.param.pxEmployeeList = []
if(!e.length){
return
}
let schIds = e.join(',')
//manger班主任 coach教练
this.$service.base.getSchEmpList({empPosition:'manger',schIds}).then(res =>{
this.mangerList = res || []
})
this.$service.base.getSchEmpList({empPosition:'coach',schIds}).then(res =>{
this.coachList = res || []
})
},
beforeUpload(file) {
//验证资源格式
let that = this
var img = file.name.substring(file.name.lastIndexOf('.') + 1)
const suffix = img === 'jpg'
const suffix2 = img === 'png'
......@@ -101,28 +162,114 @@ export default {
if (!isLt1M) {
this.$message.error('上传图片大小不能超过 1MB!');
}
// return this.getToken(file).then(res => {
// this.dataObj.token = res.token;
// this.dataObj.key = res.key;
// let url = file.type.includes('image') ? (this.$config.imgUrl + res.filePath) : (this.$config.imgUrl + res.filePath)
// this.uploadList.push({
// url: url,
// })
// })
return this.getToken(file).then(res => {
that.param.poster = res
that.$forceUpdate()
})
},
handleSelect(e,form){
let arr = form == 'coach' ? this.coachList : this.mangerList
let list = [...[],...this.param.pxEmployeeList]
list = list.filter(v => v.empPosition != form)
e && e.length && e.forEach(id => {
arr.forEach(data => {
if(data.value == id){
list.push({
empCode:data.empCode,empPosition:data.empPosition,id:data.value
})
}
})
})
this.param.pxEmployeeList = list
},
getToken(file={}) {
let datas = {
busType: 1,
submitType: 0,
fname: file.type
let formData = new FormData();
formData.append("imageFile", file);
return this.$service.base.upLoadImage(formData)
},
onSubmit(data,form){
let that = this
this.$refs.courseFrom.validate((valid) => {
if(!that.checkList.length){
that.$message.error('请选择校区')
return
}
if(!that.param.pxEmployeeList.length){
that.$message.error('请选择校区人员')
return
}
if(!(that.param.pxEmployeeList.filter(v => v.empPosition == 'coach')).length){
that.$message.error('请添加教练')
return
}
if(!(that.param.pxEmployeeList.filter(v => v.empPosition == 'manger')).length){
that.$message.error('请添加班主任')
return
}
if(!that.param.poster){
that.$message.error('请上传课程图片')
return
}
return this.$service.upload.getUploadTokenForWeb(datas)
if(!that.param.detail){
that.$message.error('请输入课程详情')
return
}
let param = {
...that.param,
status:form, //0未发布 1已发布
schIds:that.checkList.join(','),
}
//单位:分
param.cost = param.cost * 100
let funName = param.id ? 'emitCourse' : 'addCourse'
this.$service.course[funName](param).then(res =>{
that.$notifySuccess()
that.$emit('update')
})
})
},
queryDetail(id){
let loadingInstance = Loading.service({text:'数据加载中...'});
let that = this
this.$service.course.queryCourseDetail(id).then(res =>{
let {name='',courseTime='',courseStep = '',schIds = '',status = '',type = '',
pxEmployeeList = [],poster = '',detail = '',classHour = '',id = '',cost = ''} = res
this.param = {
id,name,courseTime,courseStep,status,type,poster,detail,classHour,cost:cost / 100
}
let arr = schIds.split(',')
if(arr.length){
arr = arr.map( v => Number(v))
}else{
arr = [Number(arr)]
}
this.checkList = arr
this.handCheck(arr)
this.$forceUpdate()
pxEmployeeList.length && pxEmployeeList.forEach(e =>{
if(e.empPosition == 'manger'){
that.mangerSelect.push(e.id)
}else{
that.coachSelect.push(e.id)
}
})
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
loadingInstance.close();
});
})
}
}
}
</script>
<style lang="less" scoped>
/deep/ .el-form-item__error{
padding-top: 5px !important;
}
.add-course-bg{
padding: 20px 0px;
}
......@@ -152,6 +299,12 @@ export default {
/deep/ .el-form-item__content{
height: auto !important;
}
.image-ctn{
height: 150px;
width: 200px;
object-fit: cover;
object-position: center;
}
.upload-bg{
cursor: pointer;
height: 150px;
......@@ -162,7 +315,8 @@ export default {
display: block !important;
}
}
// /deep/ .curstom-editor .ql-container{
// min-height:300px;
// }
.btns{
display: flex;
justify-content: center;
}
</style>
\ No newline at end of file
......@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com
* @Date: 2022-06-02 15:02:39
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 15:13:26
* @LastEditTime: 2022-06-09 17:23:26
-->
<template>
<div>
......@@ -33,8 +33,8 @@
<el-form-item label="其它人手机号" prop="otherPhone">
<el-input v-model="param.otherPhone" placeholder="请输入手机号" style="width:222px"></el-input>
</el-form-item>
<el-form-item label="所在校区" prop="schId">
<t-select v-model="param.schId" :ds="{service:'base', func: 'getUserAllSchList'}"></t-select>
<el-form-item label="所在校区" prop="schIds">
<t-select v-model="param.schIds" :ds="{service:'base', func: 'getUserAllSchList'}"></t-select>
</el-form-item>
......@@ -58,7 +58,7 @@ export default {
fatherPhone:'',
motherPhone:'',
otherPhone:'',
schId:''
schIds:''
},
rules:{
......@@ -78,8 +78,8 @@ export default {
},
queryDetail(id){
this.$service.student.queryStudentDetail(id).then(res =>{
let {id,name,birthday,gender,fatherPhone,motherPhone,otherPhone,schId} = res
this.param = {id,name,birthday,gender,fatherPhone,motherPhone,otherPhone,schId}
let {id,name,birthday,gender,fatherPhone,motherPhone,otherPhone,schIds} = res
this.param = {id,name,birthday,gender,fatherPhone,motherPhone,otherPhone,schIds}
})
},
onSubmit(){
......
......@@ -50,9 +50,9 @@
<div class="import-tip" v-if="resultObj.message && resultObj.message.length">
<div class="import-tip-title flex-s">
<span>错误信息:</span>
<div class="download-btn" v-if="resultObj.message && resultObj.message.length" @click="importErrorMsg">导出错误信息</div>
<!-- <div class="download-btn" v-if="resultObj.message && resultObj.message.length" @click="importErrorMsg">导出错误信息</div> -->
</div>
<div v-for="(t,idx) in resultObj.message" :key="idx">{{t.row}}{{t.errorInfoList.join(';')}}</div>
<div v-for="(t,idx) in resultObj.message" :key="idx">{{t.lineNum}}{{t.errMsg}}</div>
</div>
</div>
<!-- 校验成功 -->
......@@ -139,9 +139,8 @@ export default {
formData.append("file", this.file);
this.$service.student.recordCheck(formData).then(res =>{
let {success= 0 ,error = 0 ,message = []} = res
debugger
this.resultObj = {success,error,message}
let {rightNum= 0 ,errorNum = 0 ,checkVoList = []} = res
this.resultObj = {success:rightNum,error:errorNum,message:checkVoList}
this.step =2
})
},
......@@ -149,15 +148,17 @@ export default {
importData(){
let formData = new FormData();
formData.append("file", this.file);
formData.append("taskId", this.activeObj.taskId);
const config = {
onUploadProgress: progressEvent => {
debugger
// progressEvent.loaded:已上传文件大小
// progressEvent.total:被上传文件的总大小
this.progressPercent = Number((progressEvent.loaded / progressEvent.total * 100).toFixed(2))
}
}
this.$service.physiqueTester.downloadRecordImport(formData,config).then(res =>{
this.$service.student.downloadRecordImport(formData,config).then(res =>{
})
},
goNext(from){
......
......@@ -3,74 +3,84 @@
* @eMail: 932055106@qq.com
* @Date: 2022-06-02 14:08:46
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-06 09:31:15
* @LastEditTime: 2022-06-11 13:49:44
-->
<template>
<div class="page-bg">
<!-- autoLoad -->
<t-table autoLoad ref="table" :options="options" :params="params"
@row-btn-click="onRowButtonClick">
<!-- 操作栏 -->
<template slot="form-order-search">
<div class="search-bottom">
<el-button type="primary" size="mini" plain @click="exportOrder"><i class="el-icon-plus"></i> 新增课程</el-button>
<el-button type="primary" size="mini" plain @click="addCourse"><i class="el-icon-plus"></i> 新增课程</el-button>
</div>
</template>
</t-table>
<c-popup ref="c-popup" title="您正在新增课程信息">
<add-course></add-course>
<c-popup ref="c-popup" :title="title">
<add-course ref="add-course" @update="updateList(),$refs['c-popup'].change()"></add-course>
</c-popup>
</div>
</template>
<script>
import addCourse from './components/add-course.vue'
const courseStep = ['','小学组','初中组','高中组']
export default {
services:['order','base'],
services:['base','course'],
components:{addCourse},
data(){
return{
title:'',
params:{
regionCode:'',schName:''
},
options: {
title: "订单管理",
title: "课程管理",
search: [
{
label: '所属校区:',field: 'orderStatus', type: 'select',autoSelect:true,required:true,
ds: [{name:'全部',value:''}, {name:'待发货',value:1}, {name:'已退货',value:2}, {name:'已收货',value:3}, {name:'已取消',value:4}, {name:'待收货',value:5}]
ds: {service:'base',func:'getUserAllSchList',params:{all:true}}
},{
label: '课程属性:', field: 'valid', type: 'select',autoSelect:true,required:true,
ds: [{name:'全部',value:''}, {name:'小学组',value:1}, {name:'初中组',value:0},{name:'高中组',value:0}]
label: '课程属性:', field: 'courseStep', type: 'select',autoSelect:true,required:true,
ds: [{name:'全部',value:''}, {name:'小学组',value:1}, {name:'初中组',value:2},{name:'高中组',value:3}]
},{
label: '课程类型:', field: 'valid', type: 'select',autoSelect:true,required:true,
ds: [{name:'全部',value:''}, {name:'体验课',value:1}, {name:'正式班课',value:0}]
},{
label: '课程状态:', field: 'valid', type: 'select',autoSelect:true,required:true,
label: '课程状态:', field: 'status', type: 'select',autoSelect:true,required:true,
ds: [{name:'全部',value:''}, {name:'已发布',value:1}, {name:'未发布',value:0}]
},{
placeholder: "请输入课程名称 ",field: "productName",type: "text",label: "课程名称:",
placeholder: "请输入课程名称 ",field: "name",type: "text",label: "课程名称:",
},
],
table: {
service: "order", height:(screen.height - (482 * this.$px2rem)),
func: "getOrderPcList",
service: "course", height:(screen.height - (482 * this.$px2rem)),
func: "queryCourseList",
selectable: false,customRow:true,
columns: [
{title: "课程名单",field: "orderNo"},
{title: "所属小区",field: "orderNo"},
{title: "课程属性",field: "orderNo"},
{title: "课程名称",field: "name"},
{title: "所属小区",field: "schNames"},
{
title: "课时",width:'100px',
title: "课程属性",type: 'customField',width:'140px',
fieldFunction: row => courseStep[row.courseStep],
},{
title: "课时",width:'140px',
type: 'customField',
fieldFunction: row => 4 + '课时',
fieldFunction: row => row.classHour + '课时',
},{
title: "课程价格", type: 'customField',width:'140px',
fieldFunction: row => (row.cost / 100),
},{
title: "课程类型", type: 'customField',width:'140px',
fieldFunction: row => row.type == 0 ?'体验课' : '正式课',
},
{title: "课程价格",field: "orderNo"},
{title: "课程类型",field: "orderNo"},
{
title: "操作",
width: "220px",fixed:'right',
width: "260px",fixed:'right',
type: "buttons",
//orderType 1:智慧体育订单 2移动活动订单 3腾讯同步订单 4 h5天天订单
buttons: [
......@@ -78,12 +88,13 @@ export default {
name: "修改", event: "emit" ,type:'primary'
},{
name: "发布", type:'success',event: "publish",
controlBtn:function(data){ return true}
controlBtn:function(data){ return data.status == 0}
},{
name: "取消发布", type:'success',event: "publish",
controlBtn:function(data){ return data.orderStatus == 3 && (data.orderType == 1 || data.orderType == 4)}
controlBtn:function(data){ return data.status == 1}
}, {
name: "删除", event: "delete" ,type:'danger'
name: "删除", event: "delete" ,type:'danger',
controlBtn:function(data){ return data.status == 0 && data.canDel == 1}
}
],
},
......@@ -93,20 +104,49 @@ export default {
}
},
mounted(){
this.$refs['c-popup'].change()
// this.$refs['c-popup'].change()
},
methods:{
onRowButtonClick(data, i) {
let self = this
let that = this
let {event,row} = data
if(!event) return
switch (event) {
case 'emit': //修改
that.title = '您正在编辑课程信息'
that.$refs['c-popup'].change()
setTimeout(() =>{
that.$refs['add-course'].queryDetail(row.id)
},100)
break
case 'publish': //发布 取消发布
that.$service.course.publishCourse({
id:row.id,status:row.status == 0 ? 1 : 0
}).then(res =>{
that.$notifySuccess()
setTimeout(() =>{
that.updateList()
},800)
})
break
case 'delete': //删除
that.$showConfirm().then(res => {
that.$service.course.deleteCourse(row.id).then(()=>{
that.$notifySuccess()
setTimeout(() =>{
that.updateList()
},800)
})
})
break
}
},
exportOrder(){
addCourse(){
this.title = '您正在新增课程信息'
this.$refs['c-popup'].change()
},
updateList(){
this.$refs['table'].reload(true)
}
}
}
......
......@@ -70,8 +70,6 @@
inputCode: this.inputCode,
}).then(res =>{
this.$service.base.getUserInfo(res.token).then(result =>{
debugger
result.token = res.token
this.$store.commit('updateUserInfo', result);
this.$router.push('/');
......
......@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com
* @Date: 2022-06-02 14:08:46
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 15:22:07
* @LastEditTime: 2022-06-10 14:04:54
-->
<template>
<div class="page-bg">
......@@ -14,7 +14,7 @@
@row-btn-click="onRowButtonClick">
<!-- 操作栏 -->
<template slot="form-order-search">
<template slot="form-order-search" v-if="!([1,2].includes(myUserInfo.roleId))">
<div class="search-bottom">
<el-button type="primary" size="mini" plain @click="handleOption('add')"><i class="el-icon-plus"></i> 新增学生</el-button>
<el-button type="primary" size="mini" plain @click="handleOption('import')"><i class="el-icon-upload2"></i> 导入学生</el-button>
......@@ -27,7 +27,7 @@
<!-- 导入学生 -->
<c-popup ref="i-popup" title="您正在导入学生数据">
<import-student @close="$refs['i-popup'].change()" @updateData="init()"></import-student>
<import-student @close="$refs['i-popup'].change()" @updateData="updateList"></import-student>
</c-popup>
</div>
</template>
......
......@@ -141,7 +141,6 @@ export default class Service {
}
return promise;
};
return _sendTo(options);
}
......
/*
* @Author: tangjiale
* @eMail: 932055106@qq.com
* @Date: 2022-06-11 14:08:04
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-11 14:13:27
*/
/**
* http基础类
*/
import axios from 'axios'
import hooks from './framework/core/hook'
let config = require(`@/config/${process.env.ENV_CONFIG||'pro'}.config.json`);
export default {
async send(options) {
options = {
toastError: true,
...options
}
options.loadingText && hooks.callHook('showLoading', options.loadingText)
options.headers = {
'content-type': options.contentType,
...options.headers
}
//https域名
options.url = (options.url.indexOf('http://') === 0 || options.url.indexOf('https://') === 0) ? options.url : (config[options.domainKey || 'baseUrl'] + options.url);
if (options.downloadFile || options.playAudio) { // 下载文件
options.responseType = 'blob';
}
if (options.method === 'get') {
options.params = options.data;
} else {
if (options.contentType === 'application/x-www-form-urlencoded') {
let form = new FormData();
let keys = Object.keys(options.data);
keys.forEach(key => {
form.append(key, options.data[key]);
});
options.data = form;
}
}
await hooks.callHook('beforeHttp', options)
return axios(options).then(res => {
options.loadingText && hooks.callHook('hideLoading')
return hooks.callHook('resolveHttpSuccess', res, options)
}).catch(err => {
console.error('request error', err)
options.toastError && hooks.callHook('toastError', err.message || err.toString())
return hooks.callHook('catchHttpError', err, options)
})
},
get(options) {
options.method = 'get';
return this.send(options);
},
postJson(options) {
options.contentType = 'application/json';
return this.post(options);
},
postForm(options) {
options.contentType = 'application/x-www-form-urlencoded';
return this.post(options);
},
post(options) {
options.method = 'post';
return this.send(options);
},
put(options) {
options.method = 'put';
return this.send(options);
},
delete(options) {
options.method = 'delete';
return this.send(options);
}
}
......@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com
* @Date: 2022-02-11 10:04:50
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 11:18:12
* @LastEditTime: 2022-06-10 17:19:11
*/
export default class BaseService extends Service {
......@@ -66,12 +66,15 @@ export default class BaseService extends Service {
}
//获取用户学校列表
getUserAllSchList(){
getUserAllSchList(param = {}){
return this.get({
url: '/user/getSchList',
data:{}
}).then(res =>{
let list = []
if(param.all){
list.unshift({name:'全部',value:''})
}
if(res && res.length){
res.forEach(v =>{
list.push({
......@@ -94,5 +97,32 @@ export default class BaseService extends Service {
})
}
//图片上传
upLoadImage(param){
return this.post({
url:'/common/image',
data: param
})
}
//获取机构职位员工
getSchEmpList(param){
return this.get({
url:'/common/getSchEmpList',
data: param
}).then(res =>{
let list = []
res && res.length && res.forEach(e =>{
list.push({
name:e.empName,
value:e.id,
empCode:e.empCode,
empPosition:e.empPosition
})
})
return list
})
}
}
......@@ -3,19 +3,55 @@
* @eMail: 932055106@qq.com
* @Date: 2022-02-11 09:23:35
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 11:30:08
* @LastEditTime: 2022-06-10 17:56:54
*/
import service from '../plugins/framework/core/service'
export default class CourseService extends Service {
queryStudentList(param){
return service.get({
url: '/student',
queryCourseList(param){
return this.get({
url: '/course',
data: param
})
}
//新增课程
addCourse(param){
return this.post({
url: '/course',
data: param
})
}
//发布课程
publishCourse(param){
return this.get({
url: '/course/publishCourse',
data: param
})
}
//删除课程
deleteCourse(id){
return this.delete({
url: `/course/${id}`,
data: {}
})
}
//编辑课程
emitCourse(param){
return this.put({
url: `/course`,
data: param
})
}
queryCourseDetail(id){
return this.get({
url: `/course/${id}`,
data: {}
})
}
}
......@@ -3,9 +3,9 @@
* @eMail: 932055106@qq.com
* @Date: 2022-02-11 09:23:35
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 15:12:00
* @LastEditTime: 2022-06-11 14:08:51
*/
import services from '../plugins/service'
export default class StudentService extends Service {
queryStudentList(param){
......@@ -65,5 +65,15 @@ export default class StudentService extends Service {
data: param
})
}
//学生导入
downloadRecordImport(param,config = {}){
return services.post({
url: '/student/studentImport',
data: param,
progress:true,
...config
})
}
}
......@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com
* @Date: 2022-02-11 15:54:33
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-09 11:03:11
* @LastEditTime: 2022-06-10 11:28:53
*/
import Vue from 'vue'
//配置对象
......@@ -31,7 +31,7 @@ export default {
logout(state) {
state.myUserInfo = null;
sessionStorage.removeItem('myUserInfo');
location.href = '/login';
location.href = '/pxsys/login';
},
//更新理由
updateRoute(state,list){
......
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