lion 1 year ago
parent ba5f88d21c
commit 00f06e76f8

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -6,8 +6,12 @@
<div class="right-menu">
<el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper">
<img src="../../assets/face.jpg" class="user-avatar">
<div class="avatar-wrapper">
<div>
<img src="../../assets/face.png" class="user-avatar">
<span>{{userName}}</span>
</div>
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown" class="user-dropdown">
@ -36,7 +40,7 @@
} from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import state from '@/store/modules/user.js'
export default {
components: {
Breadcrumb,
@ -47,6 +51,15 @@
'sidebar',
'avatar'
])
},
data(){
return{
userName:''
}
},
created(){
console.log("state",state)
this.userName = state.state.name?state.state.name:''
},
methods: {
toggleSideBar() {
@ -88,7 +101,7 @@
.right-menu {
float: right;
height: 100%;
line-height: 50px;
line-height: 46px;
&:focus {
outline: none;
@ -116,21 +129,26 @@
margin-right: 30px;
.avatar-wrapper {
margin-top: 5px;
// margin-top: 5px;
position: relative;
display:flex;
align-items: center;
color:#3c4758;
.user-avatar {
cursor: pointer;
width: 40px;
height: 40px;
border-radius: 10px;
width: 30px;
height: 30px;
border-radius: 10px;
vertical-align: middle;
margin-right: 10px;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -20px;
top: 25px;
// position: absolute;
// right: -20px;
// top: 25px;
font-size: 12px;
}
}

@ -19,12 +19,12 @@ export default {
}],
false_or_true: [{
id: 0,
value: '否',
type:'info'
value: '否',
type: 'info'
}, {
id: 1,
value: '是',
type:''
value: '是',
type: ''
}],
apply_status_list: [{
id: 0,
@ -78,14 +78,21 @@ export default {
type: ''
}],
course_date: [{
value: '课程待定',
type: 'info',
id: 30,
}, {
value: '课程未开始',
type: 'info',
id: 20,
}, {
value: '课程进行中',
type: '',
id: 10,
}, {
value: '课程已结束',
type: 'success',
id: 40,
}],
// 学员
@ -114,19 +121,19 @@ export default {
//
is_vip_list: [{
id: 0,
value: '普通学员',
type:''
value: '普通学员',
type: ''
}, {
id: 1,
value: 'vip学员'
}],
is_schoolmate_list: [{
id: 0,
value: '否',
type:''
}, {
id: 1,
value: '是'
}],
is_schoolmate_list: [{
id: 0,
value: '否',
type: ''
}, {
id: 1,
value: '是'
}],
company_type_list: [{
id: 0,

@ -1,7 +1,8 @@
import {
login,
logout,
getInfo
getInfo,
loginMsg
} from '@/api/user'
import {
getToken,
@ -67,6 +68,31 @@ const actions = {
reject(error)
})
})
},
loginMsg({
commit
}, userInfo) {
const {
mobile,
code
} = userInfo
return new Promise((resolve, reject) => {
loginMsg({
mobile: mobile,
code: code
}).then(response => {
console.log(response)
const {
data
} = response;
console.log(response.access_token)
commit('SET_TOKEN', response.access_token)
setToken(response.access_token)
resolve()
}).catch(error => {
reject(error)
})
})
},
// get user info

@ -5,7 +5,8 @@ export function getToken() {
return Cookies.get(TOKEN_KEY)
}
export function setToken(token) {
export function setToken(token,callback) {
console.log("set",TOKEN_KEY, token)
return Cookies.set(TOKEN_KEY, token)
}

@ -1,4 +1,15 @@
import {
Message
} from 'element-ui'
let base = {
showMessage(msg,type){
return Message({
message: msg,
type: type,
duration: 2 * 1000,
offset: window.screen.height / 4
})
},
isPhone (val) {
return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(val)
},

@ -71,7 +71,8 @@ service.interceptors.response.use(
Message({
message: res.errmsg || 'Error',
type: 'error',
duration: 5 * 1000
duration: 5 * 1000,
offset: window.screen.height / 4
})
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
@ -98,10 +99,12 @@ service.interceptors.response.use(
loading?.close()
}
console.log('err' + error) // for debug
console.log("window.screen.height / 2",window.screen.height / 4)
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
duration: 5 * 1000,
offset: window.screen.height / 4
})
return Promise.reject(error)
}

@ -34,9 +34,19 @@
</div>
</template>
</el-table-column>
</template>
<template v-slot:dateRange>
<el-table-column align='center' label="可预约时间段" width="120" header-align="center">
<template slot-scope="scope">
<div v-if="scope.row.start_time">
{{scope.row.start_time}}~{{scope.row.end_time}}
</div>
<div v-else></div>
</template>
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='center' label="操作" width="180" header-align="center">
<el-table-column align='center' fixed="right" label="操作" width="180" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editAppointment('editor',scope.row.id)"></el-button>
<el-popconfirm style="margin:0 10px" @confirm="deleteList(scope.row.id)" title="确定删除吗?">
@ -92,7 +102,12 @@
label: '场地容纳人数',
align: 'center',
width: 120,
}, {
}, {
prop: 'dateRange',
label: '可预约时间段',
align: 'center',
width: 120,
},{
prop: 'status',
label: '状态',
align: 'center',

@ -1,6 +1,6 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增课程' : '编辑课程'"
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增场地' : '编辑场地'"
:form="form" :rules='rules' @submit="submit">
<template v-slot:no>
<div class="xy-table-item">
@ -69,6 +69,18 @@
</div>
</div>
</template>
<template v-slot:dateRange>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>可预约时间段
</div>
<div class="xy-table-item-content">
<el-time-picker @change="changeDateRange" value-format="HH:mm" format="HH:mm" is-range v-model="form.dateRange" range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围">
</el-time-picker>
</div>
</div>
</template>
<template v-slot:file_ids>
<div class="xy-table-item">
@ -109,8 +121,11 @@
content: '',
total: '',
status: 1,
use_student: 1,
file_ids:[]
use_student: 1,
dateRange: ['08:30','17:30'],
file_ids: [],
start_time:'08:30',
end_time:'17:30'
},
action: `${process.env.VUE_APP_UPLOAD_API}`,
fileList: [],
@ -123,29 +138,39 @@
}
},
created() {},
methods: {
uploadSuccesspublic(response, file, fileList) {
this.fileList = fileList
},
uploadRemovepublic(file, fileList) {
this.fileList = fileList
methods: {
changeDateRange(e) {
console.log(e)
if (e) {
this.form.start_time = e[0]
this.form.end_time = e[1]
} else {
this.form.start_time = ''
this.form.end_time = ''
}
},
uploadSuccesspublic(response, file, fileList) {
this.fileList = fileList
},
uploadRemovepublic(file, fileList) {
this.fileList = fileList
},
submit() {
if (this.id) {
this.form.id = this.id
}else{
this.form.id = ''
} else {
this.form.id = ''
}
let _files = []
if (this.fileList.length > 0) {
this.fileList.map(item => {
if (item.response) {
_files.push(item.response.id)
} else {
_files.push(item.id)
}
})
}
let _files = []
if (this.fileList.length > 0) {
this.fileList.map(item => {
if (item.response) {
_files.push(item.response.id)
} else {
_files.push(item.id)
}
})
}
this.form.file_ids = _files
save({
...this.form
@ -165,9 +190,10 @@
id: this.id
}).then(res => {
this.form = this.base.requestToForm(res, this.form)
this.fileList = res.files
this.form.status = res.status?res.status:0
this.form.use_student = res.use_student?res.use_student:0
this.fileList = res.files
this.form.status = res.status ? res.status : 0
this.form.use_student = res.use_student ? res.use_student : 0
this.form.dateRange = res.start_time?[res.start_time,res.end_time]:['','']
})
},
@ -180,7 +206,7 @@
this.getDetail()
}
} else {
this.id = ''
this.id = ''
this.fileList = []
this.$refs['dialog'].reset()
}
@ -191,5 +217,7 @@
</script>
<style scoped lang="scss">
::v-deep .file_ids{
flex-basis: 100%;
}
</style>

@ -77,7 +77,7 @@
list: [],
total:0,
table_item: [{
prop: 'name',
prop: 'username',
label: '预约人',
align: 'center',
}, {

@ -8,14 +8,13 @@
导入的时候请勿修改模版表单各列栏目名称
</div>
<el-upload style="margin-top: 10px" drag :action="action" :data="{
table_name: tableName,
course_id: course_id ? course_id : '',
...tableData
<el-upload style="margin-top: 10px" drag :action="action" :data="{
table_name: tableName,
course_id: course_id ? course_id : '',
...tableData
}" :headers="{
Authorization: `Bearer ${getToken()}`,
}" :on-success="uploadSuccess" :on-error="uploadFail"
:file-list="fileList">
}" :on-success="uploadSuccess" :on-error="uploadFail" :file-list="fileList" accept=".xls, .xlsx">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传xls/xlsx文件</div>
@ -63,8 +62,8 @@
tableData: {},
headers: [],
tableList: [],
table: [],
fileList:[]
table: [],
fileList: []
};
},
methods: {
@ -100,17 +99,17 @@
item.key = 'teacher_name'
}
})
}
//
if (this.tableName === 'course_keeps') {
b.map(item => {
if (item.key === 'user_id') {
item.key = 'user_name'
}
if(item.key==='status'){
item.key = 'status_name'
}
})
}
//
if (this.tableName === 'course_keeps') {
b.map(item => {
if (item.key === 'user_id') {
item.key = 'user_name'
}
if (item.key === 'status') {
item.key = 'status_name'
}
})
}
this.table = this.headers = b
@ -123,18 +122,32 @@
type: "error",
});
},
uploadSuccess(response,file,fileList) {
if(this.tableName==='course_keeps'){
response.map(item=>{
console.log("item",item)
item.status_name = item.status===1?'正常':'缺勤'
})
}
this.tableList = response;
this.fileList = fileList
uploadSuccess(response, file, fileList) {
console.log(response, file, fileList)
console.log("window.screen.height",window.screen.height)
if (response && response.hasOwnProperty("errcode")) {
this.$message({
message: response.errmsg || "上传失败",
type: "error",
duration:2000,
offset: window.screen.height / 4
});
this.fileList = []
this.tableList = []
return
}
if (this.tableName === 'course_keeps') {
response.map(item => {
console.log("item", item)
item.status_name = item.status === 1 ? '正常' : '缺勤'
})
}
this.tableList = response;
this.fileList = fileList
this.$message({
message: `上传成功`,
type: "success",
offset: window.screen.height / 2
});
},
@ -201,7 +214,7 @@
this.tableList = []
this.table = []
this.headers = []
this.tableData = []
this.tableData = []
this.fileList = []
}
}

@ -176,7 +176,9 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['typeDetail'],
show_relation: ['typeDetail'],
sort_name:'id',
sort_type:'DESC',
filter: [{
key: 'name',
op: 'like',
@ -216,7 +218,7 @@
status:status,
title: row.name,
id: row.id,
date: row.start_date + '至' + row.end_date,
date: row.start_date?row.start_date + '至' + row.end_date:'',
leibie: row.type_detail.name
}
})

@ -95,7 +95,8 @@
return {
select: {
theme: '',
date: '',
date: '',
course_id:'',
page: 1,
page_size: 10
},
@ -151,7 +152,8 @@
},
created() {
this.subjectObj = this.$route.query
console.log(this.$route.query)
console.log(this.$route.query)
this.select.course_id = this.$route.query.id
this.getList()
},
methods: {
@ -174,7 +176,11 @@
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['teacher'],
filter: [{
filter: [{
key:'course_id',
op:'eq',
value:this.select.course_id
},{
key: 'theme',
op: 'like',
value: this.select.theme

@ -171,7 +171,9 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['teacher','typeDetail'],
show_relation: ['teacher','typeDetail'],
sort_name:'id',
sort_type:'DESC',
filter: [{
key: 'name',
op: 'like',
@ -204,7 +206,7 @@
query: {
title: row.name,
id: row.id,
date: row.start_date + '至' + row.end_date,
date: row.start_date?row.start_date + '至' + row.end_date:'',
leibie: value,
teacher:teacher
}

@ -196,8 +196,8 @@
<template v-slot:footerContent>
<Button ghost type="primary" v-if="active===1" @click="active=0"></Button>
<Button ghost type="primary" v-if="active===0" @click="next"></Button>
<Button type="primary" @click="checkSubmit"></Button>
<!-- <Button ghost type="primary" v-if="active===0" @click="next"></Button> -->
<Button type="primary" ghost @click="checkSubmit" v-if="active===0"></Button>
<Button type="primary" @click="closeSubmit"></Button>
</template>
@ -249,8 +249,8 @@
signRange: '',
total: '',
status: 0,
is_arrange: '',
is_fee: '',
is_arrange: 1,
is_fee: 1,
image_id: '',
publicize_ids: [],
content: '',
@ -356,11 +356,24 @@
},
checkSubmit() {
this.$refs.dialog.submit(true)
},
compareTime(date,sign){
let date1 = this.$moment(date)
let sign1 = this.$moment(sign)
return sign1.isBefore(date1)
},
submit() {
if (this.id) {
this.form.id = this.id
}
}
//
if(this.form.start_date && this.form.sign_end_date){
if(!this.compareTime(this.form.start_date,this.form.sign_end_date)){
this.$Message.warning("报名截止时间不能晚于课程开始时间")
return
}
}
// return
let pubFiles = []
if (this.publicizeList.length > 0) {
this.publicizeList.map(item => {
@ -381,7 +394,8 @@
message: '保存课程成功'
})
this.id = res.id
this.$emit('refresh')
this.$emit('refresh')
this.active = 1
// this.active = 1
})
@ -402,7 +416,9 @@
this.publicizeList = res.publicize
this.form.dateRange = [res.start_date, res.end_date]
this.form.signRange = [res.sign_start_date, res.sign_end_date]
this.form.status = res.status ? res.status : 0
this.form.status = res.status ? res.status : 0
this.form.is_arrange = res.is_arrange ? res.is_arrange : 0
this.form.is_fee = res.is_fee ? res.is_fee : 0
this.showTinymce = true
})
},
@ -450,7 +466,22 @@
this.imgList = []
this.publicizeList = []
this.active = 0
this.formList = []
this.formList = []
this.form = {
step: '', //
name: '',
type: '',
dateRange: '',
signRange: '',
total: '',
status: 0,
is_arrange: 1,
is_fee: 1,
image_id: '',
publicize_ids: [],
content: '',
applylabel: ''
}
this.$refs['dialog'].reset()
}
},

@ -1,14 +1,14 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增课程' : '编辑课程'"
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增课程类别' : '编辑课程类别'"
:form="form" :rules='rules' @submit="submit">
<template v-slot:name>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>课程类
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>课程类
</div>
<div class="xy-table-item-content">
<el-input v-model="form.name" placeholder="请输入课程类" clearable style="width: 100%;"></el-input>
<el-input v-model="form.name" placeholder="请输入课程类" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
@ -100,10 +100,10 @@
form: {
name:'',
status:1,
wait_tip:"",
pass_tip:"",
fault_tip:'',
back_tip:"",
wait_tip:"我们将在1-3个工作日内审核并通知您报名结果….",
pass_tip:"恭喜您,您已被录取!",
fault_tip:'很遗憾,您未通过审核。',
back_tip:"很遗憾,您未通过审核。",
year_total:""
},
rules: {

@ -12,8 +12,8 @@
<img style="height:300px" :src="item.url" alt="">
</div>
<div>
<el-button type="primary" style='margin:15px;' @click="updateFee(1)"></el-button>
<el-button type="primary" plain style='margin:15px;' @click="updateFee(2)"></el-button>
<el-button type="primary" style='margin:15px;' @click="updateFee(1)"></el-button>
<el-button type="primary" plain style='margin:15px;' @click="updateFee(2)"></el-button>
</div>
</div>
</div>

@ -111,7 +111,8 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation:['user'],
show_relation:['user'],
name:this.select.name,
filter: [{
key: 'course_content_id',
op: 'eq',
@ -131,7 +132,9 @@
if (newVal) {
} else {
this.keepsObj = {}
this.keepsObj = {}
this.list = []
this.select.name = ''
}
},
}

@ -69,7 +69,7 @@
<template slot-scope="scope">
<el-button type="primary" size="small" @click="showCourse('show',scope.row.id)"></el-button>
<el-button type="primary" size="small" @click="toTxl(scope.row)"></el-button>
<el-button type="primary" size="small" @click="toPay(scope.row)"></el-button>
<el-button type="primary" size="small" @click="toPay(scope.row)"></el-button>
</template>
</el-table-column>
</template>
@ -143,7 +143,7 @@
}
},
created() {
this.history_date = this.$moment().add(0, 'days').format('YYYY-MM-DD'),
this.history_date = this.$moment().add(30, 'days').format('YYYY-MM-DD'),
this.getList()
this.getTypes()
@ -171,9 +171,9 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['typeDetail'],
sort_name: 'sign_status',
sort_type: 'DESC',
show_relation: ['typeDetail'],
sort_name:'id',
sort_type:'DESC',
filter: [{
key: 'name',
op: 'like',

@ -21,8 +21,8 @@
</el-select>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择发布状态" clearable>
<el-option v-for="item in course_status" :key="item.id" :label="item.value" :value="item.id">
<el-select v-model="select.course_status" placeholder="请选择课程状态" clearable>
<el-option v-for="(item,index) in course_date" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
@ -45,7 +45,7 @@
<template v-slot:dateRange>
<el-table-column align='center' label="开课日期" width="200" header-align="center">
<template slot-scope="scope">
{{scope.row.start_date}}{{scope.row.end_date}}
{{scope.row.start_date?scope.row.start_date:""}}{{scope.row.end_date?'至'+scope.row.end_date:''}}
</template>
</el-table-column>
</template>
@ -68,7 +68,7 @@
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='left' label="操作" width="380" header-align="center">
<el-table-column align='left' fixed="right" label="操作" width="400" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editCourse('editor',scope.row.id)"></el-button>
<el-popconfirm style="margin:0 10px" @confirm="deleteList(scope.row.id)" title="确定删除吗?">
@ -76,7 +76,7 @@
</el-popconfirm>
<el-button type="primary" size="small" @click="toTxl(scope.row)"></el-button>
<el-button type="primary" size="small" v-if="scope.row.is_fee===1"
@click="toPay(scope.row)">缴费</el-button>
@click="toPay(scope.row)">缴费记录</el-button>
<el-button type="primary" size="small" @click="showQrCode(scope.row)"></el-button>
</template>
</el-table-column>
@ -114,7 +114,7 @@
name: '',
dateRange: '',
type: "",
status: '',
course_status: '',
page: 1,
page_size: 10,
},
@ -163,7 +163,8 @@
page: 1,
page_size: 999
}).then(res => {
this.courseTypesList = res.data.filter(item => item.status === 1)
// this.courseTypesList = res.data.filter(item => item.status === 1)
this.courseTypesList = res.data
})
},
pageIndexChange(e) {
@ -179,9 +180,10 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['typeDetail'],
sort_name:'sign_status',
sort_type:'DESC',
show_relation: ['type_detail'],
sort_name:'id',
sort_type:'DESC',
// course_status:this.select.course_status,
filter: [{
key: 'name',
op: 'like',
@ -190,11 +192,13 @@
key: 'type',
op: 'eq',
value: this.select.type
}, {
key: 'status',
},
{
key: 'course_status',
op: 'eq',
value: this.select.status
}, {
value: this.select.course_status
},
{
key: 'start_date',
op: 'range',
value: this.select.dateRange
@ -236,7 +240,7 @@
query: {
title: row.name,
id: row.id,
date: row.start_date + '至' + row.end_date,
date: row.start_date?row.start_date + '至' + row.end_date:'',
leibie: value
}
})
@ -248,7 +252,7 @@
query: {
title: row.name,
id: row.id,
date: row.start_date + '至' + row.end_date,
date: row.start_date?row.start_date + '至' + row.end_date:'',
leibie: value,
type:'pay'
}

@ -70,7 +70,7 @@
<el-table-column align='center' label="缴费截图" width="120" header-align="center">
<template slot-scope="scope">
<div v-for="item in scope.row.fee_files">
<el-image style="width:'40px',height:'40px'" :src="item.url"
<el-image mode="cover" style="width:'40px';height:'40px'" :src="item.url"
:preview-src-list="scope.row.fee_files"></el-image>
</div>
</template>
@ -81,7 +81,7 @@
header-align="center">
<template slot-scope="scope">
<!-- -->
<el-button type="primary" size="small" v-if="scope.row.fee_status===3"
<el-button type="primary" v-if="scope.row.fee_status===3" size="small"
@click="showCheckPay(scope.row)">核对</el-button>
</template>
</el-table-column>

@ -10,6 +10,9 @@
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
</div>
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
</div>
@ -55,6 +58,13 @@
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.apply_status" placeholder="请选择审核状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="getList"></el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
@ -122,14 +132,16 @@
return {
subjectObj: {},
select: {
name: '',
name: '',
mobile:'',
course_id: '',
company_name: '',
company_position: '',
company_area: '',
company_type: '',
company_industry: '',
status: '',
status: '',
apply_status:'',
page: 1,
page_size: 10
},
@ -215,6 +227,7 @@
page: this.select.page,
page_size: this.select.page_size,
name: this.select.name,
mobile:this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
@ -227,7 +240,7 @@
}, {
key: 'status',
op: 'eq',
value: this.select.status
value: this.select.apply_status
}]
})
this.list = res.data

@ -13,8 +13,8 @@
<div class="title-container">
<h3 class="title">欢迎登录</h3>
<div class="title-change">
<span @click="changeLoginType" :class="{color:!changeLogin}">账号登录</span>
<span @click="changeLoginType" :class="{color:changeLogin}">短信登录</span>
<span @click="changeLogin = false" :class="{color:!changeLogin}">账号登录</span>
<span @click="changeLogin = true" :class="{color:changeLogin}">短信登录</span>
</div>
</div>
@ -69,7 +69,8 @@
loginMsg
} from "@/api/user.js"
import {
setToken
setToken,
getToken
} from '@/utils/auth'
const defaultSettings = require('../../../src/settings.js')
export default {
@ -155,17 +156,20 @@
return
}
if (this.base.isNull(this.loginForm.mobile)) {
this.$Message.warning('请输入手机号')
// this.$Message.warning('')
this.base.showMessage("请输入手机号",'error')
return
}
if (!this.base.isPhone(this.loginForm.mobile)) {
this.$Message.warning('请输入正确的手机号')
// this.$Message.warning('')
this.base.showMessage("请输入正确的手机号",'error')
return
}
getMsg({
mobile: this.loginForm.mobile
}).then(res => {
this.$Message.success('发送成功')
}).then(res => {
this.base.showMessage("发送成功",'success')
// this.$Message.success('')
// 60s
this.hasSend = true
this.sendTimer = setInterval(() => {
@ -181,24 +185,25 @@
//
handleMsgLogin(){
if (this.base.isNull(this.loginForm.mobile)) {
this.$Message.warning('请输入手机号')
// this.$Message.warning('')
this.base.showMessage("请输入手机号",'error')
return
}
if (this.base.isNull(this.loginForm.code)) {
this.$Message.warning('请输入验证码')
// this.$Message.warning('')
this.base.showMessage("请输入验证码",'error')
return
}
this.loading = true
loginMsg({
mobile:this.loginForm.mobile,
code:this.loginForm.code
}).then(res=>{
setToken(res.access_token)
let that = this
this.$store.dispatch('user/loginMsg', this.loginForm).then(() => {
// this.$Message.success("")
this.base.showMessage("登录成功",'success')
this.$router.push({
path: this.redirect || '/dashboard'
})
this.loading = false
}).catch(res=>{
}).catch(() => {
this.loading = false
})
},
@ -210,7 +215,8 @@
if (valid) {
this.loading = true
this.$store.dispatch('user/login', this.loginForm).then(() => {
// this.$Message.success("")
this.base.showMessage("登录成功",'success')
this.$router.push({
path: this.redirect || '/dashboard'
})
@ -411,7 +417,8 @@
border: none;
height: 47px;
line-height: 47px;
padding: 0;
padding: 0;
cursor: pointer;
font-size: 18px;
}

@ -16,7 +16,7 @@
<lx-header icon="" text="个人信息" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div>
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item>
<template slot="label">
姓名
@ -104,19 +104,32 @@
style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type==='check' || type==='checkshow'">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item v-for="item in sign_info">
<template slot="label">
{{item.name}}
</template>
{{item.value}}
</el-descriptions-item>
<el-descriptions class="margin-top" :column="2" border>
<template v-for="item in sign_info">
<el-descriptions-item :span="2" v-if="item.submit_files && item.submit_files.length>0">
<template slot="label">
{{item.name}}
</template>
<div>
<template v-for="file in item.submit_files">
<img style="width:100px;margin:10px" :src="host+file"></img>
</template>
</div>
</el-descriptions-item>
<el-descriptions-item v-else>
<template slot="label">
{{item.name}}
</template>
{{item.value}}
</el-descriptions-item>
</template>
</el-descriptions>
</div>
</template>
<lx-header icon="" text="审核结果" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<lx-header v-if="type=='checkshow' || type=='check'" icon="" text="审核结果" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type=='checkshow'">
@ -131,8 +144,8 @@
<span>评分</span>
<span>{{sign_result.score}}</span>
</div>
<div style="display: flex;">
<span>附件</span>
<div style="display: flex;" v-if="sign_result.status===1">
<span>录取通知书</span>
<div>
<div v-for="item in sign_result.files">
<a :href="item.url" target="_blank" style="color:#0077CC">{{item.original_name}}</a>
@ -142,7 +155,7 @@
</div>
<div>
<span>备注</span>
<span>{{sign_result.reason}}</span>
<span>{{sign_result.reason?sign_result.reason:''}}</span>
</div>
</div>
</div>
@ -176,15 +189,18 @@
</div>
</div>
</template>
<template v-slot:file_ids v-if="type=='check'">
<template v-slot:file_ids v-if="type=='check' && form.status===1">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>附件
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>录取通知书
</div>
<div class="xy-table-item-content">
<el-upload :action="action" class='upload-demo' :file-list="fileList"
ref="pictureUpload" :auto-upload="true" :on-success="uploadSuccess" :on-remove="uploadRemove">
<el-button size="small" type="primary">点击上传</el-button>
ref="pictureUpload" :auto-upload="true"
accept=".xls, .ppt, .pdf, .docx, .xlsx, .pptx"
:limit="1" :on-success="uploadSuccess" :on-remove="uploadRemove">
<el-button size="small" type="primary">点击上传</el-button>
<div class="el-upload__tip" slot="tip">只能上传xls/ppt/pdf/docx/xlsx/pptx文件</div>
</el-upload>
</div>
</div>
@ -204,9 +220,9 @@
<template v-slot:footerContent>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' v-if="type=='check'"
@click="submit">确认</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-if="type=='check'"
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-else-if="type=='check'"
@click="isShow=false">取消</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-if="type=='show'"
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-else-if="type=='show'||type=='checkshow'"
@click="isShow=false">关闭</el-button>
</template>
@ -237,7 +253,8 @@
type: 'show',
typeName: '查看个人明细',
id: '',
action: `${process.env.VUE_APP_UPLOAD_API}`,
action: `${process.env.VUE_APP_UPLOAD_API}`,
host:`${process.env.VUE_APP_BASE_API}`,
subjectObj: {},
student_info: {},
row: {},
@ -260,7 +277,14 @@
},
uploadRemove(file, fileList) {
this.fileList = fileList
},
},
// beforeUpload(file) {
// const isImage = file.type.includes('image');
// if (!isImage) {
// this.$message.error('');
// }
// return isImage && isLt2M;
// },
submit() {
if (this.id) {
this.form.id = this.id
@ -305,8 +329,16 @@
show_relation: ['user']
}).then(res => {
this.student_info = res.user
this.sign_result = res
this.sign_info = res.data
this.sign_result = res
if(res.data && Array.isArray(res.data)){
res.data.map(item=>{
if(!this.base.isNull(item.value) && item.value.indexOf("/storage/files/")!==-1){
item.submit_files = item.value.split(",")
}
})
}
this.sign_info = res.data
console.log("this.sign_info",this.sign_info)
})
}
},

@ -10,6 +10,9 @@
<div>
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
</div>
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
@ -113,9 +116,11 @@
<template v-slot:is_vip>
<el-table-column align='center' label="学员身份" width="120" header-align="center">
<template slot-scope="scope">
<div v-for="item in is_schoolmate_list">
<!-- <div v-for="item in is_schoolmate_list">
<div v-if="scope.row.is_vip===item.id">{{item.value}}</div>
</div>
</div> -->
<div v-if="scope.row.is_vip===1">VIP</div>
<div v-else></div>
</template>
</el-table-column>
</template>
@ -150,7 +155,8 @@
return {
path: '',
select: {
name: '',
name: '',
mobile:'',
course_name: '',
company_name: '',
company_position: '',
@ -244,7 +250,8 @@
const res = await indexStudy({
page: this.select.page,
page_size: this.select.page_size,
name: this.select.name,
name: this.select.name,
mobile:this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,

@ -10,6 +10,9 @@
<div>
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
</div>
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
@ -140,7 +143,8 @@
return {
path: '',
select: {
name: '',
name: '',
mobile:'',
course_name: '',
company_name: '',
company_position: '',
@ -230,7 +234,8 @@
const res = await indexStudy({
page: this.select.page,
page_size: this.select.page_size,
name: this.select.name,
name: this.select.name,
mobile:this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,

Loading…
Cancel
Save