提交 37845a9b authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 b4820f47
...@@ -73,10 +73,14 @@ export function getCourses(data) { ...@@ -73,10 +73,14 @@ export function getCourses(data) {
}) })
} }
// 获取成绩单 // 获取成绩单
export function getTranscript(params) { export function getReport(params) {
return httpRequest({ return httpRequest({
url: `/api/ehall/v2/lobby/havereport`, url: `/api/ehall/v2/lobby/havereport`,
method: 'get', method: 'get',
params params
}) })
} }
// 获取学生
export function getStudent() {
return httpRequest.get('/api/ehall/v2/lobby/student')
}
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
<menu class="menu" :class="{ 'is-show': menuVisible }"> <menu class="menu" :class="{ 'is-show': menuVisible }">
<div class="inner"> <div class="inner">
<div class="menu-icon" @click="toggleMenu"> <div class="menu-icon" @click="toggleMenu">
<span></span><span></span><span></span> <span></span>
<span></span>
<span></span>
</div> </div>
<ul class="menu-list"> <ul class="menu-list">
<li @click="toPage({ name: 'index' })">首页</li> <li @click="toPage({ name: 'index' })">首页</li>
...@@ -17,10 +19,8 @@ ...@@ -17,10 +19,8 @@
query: { channel: item.form_name, channel_id: item.id } query: { channel: item.form_name, channel_id: item.id }
}) })
" "
> >{{ item.affair_name }}</li>
{{ item.affair_name }} <li @click="toPage({ name: 'reportIndex' })">成绩单</li>
</li>
<li @click="toPage({ name: 'transcriptIndex' })">成绩单</li>
<li @click="$router.back()">返回上一页</li> <li @click="$router.back()">返回上一页</li>
</ul> </ul>
</div> </div>
...@@ -45,9 +45,7 @@ export default { ...@@ -45,9 +45,7 @@ export default {
return this.$store.state.affairTypes return this.$store.state.affairTypes
}, },
menus() { menus() {
return this.affairTypes.filter( return this.affairTypes.filter(item => !['pareport', 'elreport'].includes(item.form_name))
item => !['pareport', 'elreport'].includes(item.form_name)
)
} }
}, },
methods: { methods: {
......
...@@ -15,9 +15,7 @@ const routes = [ ...@@ -15,9 +15,7 @@ const routes = [
{ {
path: '/list', path: '/list',
component: Layout, component: Layout,
children: [ children: [{ name: 'list', path: '', component: () => import('@/views/List.vue') }]
{ name: 'list', path: '', component: () => import('@/views/List.vue') }
]
}, },
{ {
path: '/create', path: '/create',
...@@ -33,30 +31,44 @@ const routes = [ ...@@ -33,30 +31,44 @@ const routes = [
{ {
path: '/edit', path: '/edit',
component: Layout, component: Layout,
children: [ children: [{ name: 'edit', path: '', component: () => import('@/views/Edit.vue') }]
{ name: 'edit', path: '', component: () => import('@/views/Edit.vue') }
]
}, },
{ {
path: '/view', path: '/view',
component: Layout, component: Layout,
children: [{ name: 'view', path: '', component: () => import('@/views/View.vue') }]
},
// 成绩单
{
path: '/report',
component: Layout,
children: [ children: [
{ name: 'view', path: '', component: () => import('@/views/View.vue') } {
name: 'reportIndex',
path: '',
component: () => import('@/views/report/Index.vue')
},
{
name: 'reportCreate',
path: 'create',
component: () => import('@/views/report/Create.vue')
}
] ]
}, },
// 重修
{ {
path: '/transcript', path: '/retake',
component: Layout, component: Layout,
children: [ children: [
{ {
name: 'transcriptIndex', name: 'retakeIndex',
path: '', path: '',
component: () => import('@/views/transcript/Index.vue') component: () => import('@/views/retake/Index.vue')
}, },
{ {
name: 'transcriptCreate', name: 'retakeCreate',
path: 'create', path: 'create',
component: () => import('@/views/transcript/Create.vue') component: () => import('@/views/retake/Update.vue')
} }
] ]
} }
......
import Vue from 'vue' import Vue from 'vue'
import Vuex from 'vuex' import Vuex from 'vuex'
import { getAffairType } from '@/api/index' import { getAffairType, getStudent } from '@/api/index'
Vue.use(Vuex) Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
affairTypes: [] // 事务类型列表 affairTypes: [], // 事务类型列表
student: {}
}, },
mutations: { mutations: {
updateAffairTypes(state, types) { updateAffairTypes(state, types) {
state.affairTypes = types state.affairTypes = types
},
updateStudent(state, student) {
state.student = student
} }
}, },
actions: { actions: {
async getAffairTypes({ commit }) { async getAffairTypes({ commit }) {
const affairTypes = await getAffairType() const affairTypes = await getAffairType()
commit('updateAffairTypes', affairTypes) commit('updateAffairTypes', affairTypes)
},
async getStudent({ commit }) {
const student = await getStudent()
commit('updateStudent', student)
} }
} }
}) })
...@@ -30,15 +30,15 @@ export default { ...@@ -30,15 +30,15 @@ export default {
return this.affairTypes.find(item => item.id === this.radio) return this.affairTypes.find(item => item.id === this.radio)
}, },
// 成绩单列表 // 成绩单列表
transcriptList() { reportList() {
return this.affairTypes.filter(item => ['pareport', 'elreport'].includes(item.form_name)) return this.affairTypes.filter(item => ['pareport', 'elreport'].includes(item.form_name))
}, },
chooseList() { chooseList() {
let list = this.affairTypes.filter(item => !['pareport', 'elreport'].includes(item.form_name)) let list = this.affairTypes.filter(item => !['pareport', 'elreport'].includes(item.form_name))
list.push({ list.push({
id: 'transcript', id: 'report',
affair_name: '成绩单', affair_name: '成绩单',
children: this.transcriptList children: this.reportList
}) })
return list return list
} }
...@@ -50,8 +50,8 @@ export default { ...@@ -50,8 +50,8 @@ export default {
return return
} }
// 成绩单 // 成绩单
if (this.radio === 'transcript') { if (this.radio === 'report') {
this.$router.push({ name: 'transcriptIndex' }) this.$router.push({ name: 'reportIndex' })
return return
} }
this.$router.push({ this.$router.push({
......
...@@ -183,7 +183,7 @@ export default { ...@@ -183,7 +183,7 @@ export default {
}, },
// 获取详情 // 获取详情
getDetail() { getDetail() {
api.getTranscript({ type: this.channel }).then(response => { api.getReport({ type: this.channel }).then(response => {
this.formModel = response this.formModel = response
}) })
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="choose"> <div class="choose">
<div class="choose-list"> <div class="choose-list">
<van-radio-group v-model="radio"> <van-radio-group v-model="radio">
<div class="choose-item" v-for="item in transcriptList" :key="item.value"> <div class="choose-item" v-for="item in reportList" :key="item.value">
<van-radio :name="item.id">{{ item.affair_name }}</van-radio> <van-radio :name="item.id">{{ item.affair_name }}</van-radio>
</div> </div>
</van-radio-group> </van-radio-group>
...@@ -31,7 +31,7 @@ export default { ...@@ -31,7 +31,7 @@ export default {
return this.affairTypes.find(item => item.id === this.radio) return this.affairTypes.find(item => item.id === this.radio)
}, },
// 成绩单列表 // 成绩单列表
transcriptList() { reportList() {
return this.affairTypes.filter(item => ['pareport', 'elreport'].includes(item.form_name)) return this.affairTypes.filter(item => ['pareport', 'elreport'].includes(item.form_name))
} }
}, },
...@@ -42,7 +42,7 @@ export default { ...@@ -42,7 +42,7 @@ export default {
return return
} }
this.$router.push({ this.$router.push({
name: 'transcriptCreate', name: 'reportCreate',
query: Object.assign(this.$route.query, { query: Object.assign(this.$route.query, {
channel: this.currentItem.form_name, channel: this.currentItem.form_name,
channel_id: this.radio channel_id: this.radio
......
<template>
<div></div>
</template>
<script>
export default {}
</script>
\ No newline at end of file
<template>
<div class="main">
<van-form @submit="onSubmit">
<van-field
v-model="formModel.personal_name"
name="personal_name"
label="姓名"
placeholder="请输入姓名"
:rules="[{ required: true, message: '请输入姓名' }]"
/>
<van-field
v-model="formModel.class_name"
name="class_name"
label="班级"
placeholder="请输入班级"
:rules="[{ required: true, message: '请输入班级' }]"
/>
<van-field
v-model="formModel.semester_name"
name="semester_name"
label="Sofia ID"
placeholder="请输入Sofia ID"
:rules="[{ required: true, message: '请输入Sofia ID' }]"
/>
<van-field
v-model="formModel.semester_name"
name="semester_name"
label="挂科学期"
:rules="[{ required: true, message: '请选择挂科学期' }]"
/>
<van-field
v-model="formModel.course_name"
name="course_name"
label="重修课程"
:rules="[{ required: true, message: '请选择重修课程' }]"
/>
</van-form>
<div class="fixed-box">
<div class="fixed-inner">
<div class="fixed-button" v-if="isSubmited">已提交</div>
<div class="fixed-button" @click="handleSubmit" v-else>提交</div>
</div>
</div>
</div>
</template>
<script>
import * as api from '@/api/index'
export default {
name: 'Create',
metaInfo() {
return {
title: '申请重修'
}
},
data() {
return {
formModel: {
personal_name: '',
class_name: '',
semester_name: '',
sofia_id: '',
course_name: '',
payment_instrument: ''
}
}
},
watch: {
$route: {
immediate: true,
deep: true,
handler(route) {
if (!route.query.channel) {
this.$dialog
.alert({
message: '请选择事务'
})
.then(() => {
this.$router.replace({
name: 'index',
query: this.$route.query
})
})
}
}
}
},
computed: {
channel() {
return this.$route.query.channel
},
channelId() {
return this.$route.query.channel_id
},
isSubmited() {
return this.formModel.submit === 1
}
},
methods: {
handleSubmit() {
this.$refs.form.submit()
},
onSubmit(data) {
if (data.telephone && data.telephone.length !== 11) {
this.$notify('请输入正确的电话号码')
return
}
data.affair_id = this.channelId
api.createAffair(data).then(response => {
if (response.success) {
this.$dialog.alert({ confirmButtonText: '确定', message: '已提交成功!' }).then(() => {
this.getDetail()
})
} else {
this.$toast(response.message)
}
})
},
// 获取详情
getDetail() {
api.getReport({ type: this.channel }).then(response => {
this.formModel = response
})
}
},
beforeMount() {
this.getDetail()
this.$store.dispatch('getStudent')
}
}
</script>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论