提交 0a3c890b authored 作者: pengxiaohui's avatar pengxiaohui

bug fixes

上级 96fa4350
...@@ -26,7 +26,6 @@ export function exportStudentList(params) { ...@@ -26,7 +26,6 @@ export function exportStudentList(params) {
* 学员导入 * 学员导入
*/ */
export function importStudents(formData) { export function importStudents(formData) {
console.log(formData)
return httpRequest({ return httpRequest({
url: '/api/certs/v1/student/import', url: '/api/certs/v1/student/import',
method: 'post', method: 'post',
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
:file-list="fileList" :file-list="fileList"
:limit="1" :limit="1"
:before-upload="beforeUpload" :before-upload="beforeUpload"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" accept=".xls,.xlsx"
> >
<el-button slot="trigger" size="mini" type="primary">选取文件</el-button> <el-button slot="trigger" size="mini" type="primary">选取文件</el-button>
<span slot="tip" style="margin-left:10px;">只能上传excel文件</span> <span slot="tip" style="margin-left:10px;">只能上传excel文件</span>
......
<template> <template>
<div class="form-container"> <div class="form-container">
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="140px" :disabled="!isEditFlag"> <el-form :model="form" :rules="rules" ref="ruleForm" label-width="140px" :disabled="!isShowBtns">
<el-form-item label="项目名称:" prop="chinese_name"> <el-form-item label="项目名称:" prop="chinese_name">
<el-input v-model="form.chinese_name" placeholder="请输入项目名称" size="mini"/> <el-input v-model="form.chinese_name" placeholder="请输入项目名称" size="mini"/>
</el-form-item> </el-form-item>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-date-picker v-model="form.pubdate" type="datetime" placeholder="请选择发布时间" size="small" value-format="yyyy-MM-dd hh:mm:ss" style="width:100%;"/> <el-date-picker v-model="form.pubdate" type="datetime" placeholder="请选择发布时间" size="small" value-format="yyyy-MM-dd hh:mm:ss" style="width:100%;"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="foot-btn-bar" v-if="isEditFlag"> <div class="foot-btn-bar" v-if="isShowBtns">
<el-button size="mini" @click="handleCancel">取消</el-button> <el-button size="mini" @click="handleCancel">取消</el-button>
<el-button type="primary" size="mini" @click="handleEnsure">确认提交</el-button> <el-button type="primary" size="mini" @click="handleEnsure">确认提交</el-button>
</div> </div>
...@@ -53,7 +53,7 @@ export default { ...@@ -53,7 +53,7 @@ export default {
} }
}, },
computed: { computed: {
isEditFlag() { isShowBtns() {
return this.value return this.value
} }
}, },
...@@ -66,6 +66,7 @@ export default { ...@@ -66,6 +66,7 @@ export default {
handleCancel() { handleCancel() {
this.$refs.ruleForm.clearValidate() this.$refs.ruleForm.clearValidate()
this.$emit('input', false) this.$emit('input', false)
this.$emit('closeDrawer')
}, },
handleEnsure() { handleEnsure() {
this.$refs.ruleForm.validate((valid) => { this.$refs.ruleForm.validate((valid) => {
......
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
}).catch(() => {}); }).catch(() => {});
}, },
handleCancel() { handleCancel() {
this.$emit('input', false) this.$emit('closeDrawer')
}, },
fetchCourseRelation() { fetchCourseRelation() {
const msg = this.isEdit ? '删除课程' : '添加课程' const msg = this.isEdit ? '删除课程' : '添加课程'
...@@ -104,7 +104,7 @@ export default { ...@@ -104,7 +104,7 @@ export default {
this.$message.success(msg + '成功') this.$message.success(msg + '成功')
this.$emit('tableRefetch') this.$emit('tableRefetch')
if (this.isEdit) this.$refs.tabList.refetch() if (this.isEdit) this.$refs.tabList.refetch()
else this.$emit('input', false) else this.$emit('closeDrawer')
} else { } else {
this.$message.error(msg + '失败') this.$message.error(msg + '失败')
} }
......
...@@ -37,7 +37,6 @@ export default { ...@@ -37,7 +37,6 @@ export default {
const msg = '编辑项目' const msg = '编辑项目'
if (res.code === 0 && res.message === 'OK') { if (res.code === 0 && res.message === 'OK') {
this.$message.success(msg + '成功') this.$message.success(msg + '成功')
this.createDrawerVisible = false
this.$emit('tableRefetch') this.$emit('tableRefetch')
} else { } else {
this.$message.error(msg + '失败') this.$message.error(msg + '失败')
......
...@@ -82,7 +82,6 @@ export default { ...@@ -82,7 +82,6 @@ export default {
}, },
methods: { methods: {
tableCallback(list) { tableCallback(list) {
console.log(this.info)
if (!this.isEdit && Array.isArray(list) && this.info && this.info.studentIds.length > 0) { if (!this.isEdit && Array.isArray(list) && this.info && this.info.studentIds.length > 0) {
// 默认删除已有项 // 默认删除已有项
list = list.filter(item => !this.info.studentIds.includes(item.id)) list = list.filter(item => !this.info.studentIds.includes(item.id))
...@@ -100,7 +99,9 @@ export default { ...@@ -100,7 +99,9 @@ export default {
this.fetchStudentRelation() this.fetchStudentRelation()
}).catch(() => {}); }).catch(() => {});
}, },
handleCancel() {}, handleCancel() {
this.$emit('closeDrawer')
},
fetchStudentRelation () { fetchStudentRelation () {
const msg = this.isEdit ? '删除学员' : '添加学员' const msg = this.isEdit ? '删除学员' : '添加学员'
const params = { const params = {
...@@ -113,7 +114,7 @@ export default { ...@@ -113,7 +114,7 @@ export default {
this.$message.success(msg + '成功') this.$message.success(msg + '成功')
this.$emit('tableRefetch') this.$emit('tableRefetch')
if (this.isEdit) this.$refs.tabList.refetch() if (this.isEdit) this.$refs.tabList.refetch()
else this.$emit('input', false) else this.$emit('closeDrawer')
} else { } else {
this.$message.error(msg + '失败') this.$message.error(msg + '失败')
} }
......
...@@ -57,10 +57,11 @@ ...@@ -57,10 +57,11 @@
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
size="960px" size="960px"
ref="drawer"
@close="handleClose"> @close="handleClose">
<info-form v-if="createType === 'project'" v-model="createDrawerVisible" @formSubmit="fetchCreateProject" /> <info-form v-if="createType === 'project'" :value="true" @formSubmit="fetchCreateProject" @closeDrawer="$refs.drawer.closeDrawer()"/>
<tab-student v-if="createType === 'student'" v-model="createDrawerVisible" :info="details" @tableRefetch="tableRefetch"/> <tab-student v-if="createType === 'student'" :info="details" @tableRefetch="tableRefetch" @closeDrawer="$refs.drawer.closeDrawer()"/>
<tab-course v-if="createType === 'course'" v-model="createDrawerVisible" :info="details" @tableRefetch="tableRefetch"/> <tab-course v-if="createType === 'course'" :info="details" @tableRefetch="tableRefetch" @closeDrawer="$refs.drawer.closeDrawer()"/>
</el-drawer> </el-drawer>
</div> </div>
</template> </template>
...@@ -224,7 +225,7 @@ export default { ...@@ -224,7 +225,7 @@ export default {
const msg = '新增项目' const msg = '新增项目'
if (res.code === 0 && res.message === 'OK') { if (res.code === 0 && res.message === 'OK') {
this.$message.success(msg + '成功') this.$message.success(msg + '成功')
this.createDrawerVisible = false this.$refs.drawer.closeDrawer()
this.$refs.tabList.refetch() this.$refs.tabList.refetch()
} else { } else {
this.$message.error(msg + '失败') this.$message.error(msg + '失败')
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<el-table-column label="项目状况"> <el-table-column label="项目状况">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-show="!isEdit">{{scope.row.graduation_status | filterStatus(statusMap)}}</span> <span v-show="!isEdit">{{scope.row.graduation_status | filterStatus(statusMap)}}</span>
<el-select v-show="isEdit" v-model="scope.row.graduation_status" placeholder="请选择" size="mini"> <el-select v-show="isEdit" v-model="scope.row.graduation_status" placeholder="请选择" size="mini" @change="handleStatusChange(scope.row)">
<el-option v-for="(label, key) in statusMap" :key="key" :label="label" :value="parseInt(key)"/> <el-option v-for="(label, key) in statusMap" :key="key" :label="label" :value="parseInt(key)"/>
</el-select> </el-select>
</template> </template>
...@@ -190,8 +190,13 @@ export default { ...@@ -190,8 +190,13 @@ export default {
this.expands = [row.id] this.expands = [row.id]
} else this.expands = [] } else this.expands = []
}, },
handleStatusChange(item) {
console.log(item)
if (item.graduation_status !== 2) {
item.graduation_time = null
}
},
handleSave() { handleSave() {
console.log(this.tableData)
for (let i = 0; i < this.tableData.length; i++) { for (let i = 0; i < this.tableData.length; i++) {
const item = this.tableData[i] const item = this.tableData[i]
if (!item.graduation_status) { if (!item.graduation_status) {
...@@ -221,7 +226,6 @@ export default { ...@@ -221,7 +226,6 @@ export default {
this.$refs.drawer.closeDrawer() this.$refs.drawer.closeDrawer()
}, },
handleEnsure() { handleEnsure() {
console.log(this.multipleSelection)
const arr = [] const arr = []
this.multipleSelection.forEach(item => { this.multipleSelection.forEach(item => {
const _item = { const _item = {
...@@ -246,7 +250,6 @@ export default { ...@@ -246,7 +250,6 @@ export default {
}) })
arr.push(_item) arr.push(_item)
}) })
console.log(arr)
this.tableData = this.tableData.concat(arr) this.tableData = this.tableData.concat(arr)
this.handleCancel() this.handleCancel()
}, },
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<el-form-item label="姓名(英):" prop="english_name"> <el-form-item label="姓名(英):" prop="english_name">
<el-input v-model="form.english_name" placeholder="请输入英文名" size="mini" :disabled="!isEdit"/> <el-input v-model="form.english_name" placeholder="请输入英文名" size="mini" :disabled="!isEdit"/>
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">
<el-select v-model="form.gender" placeholder="请选择性别" size="mini" style="width:100%;" :disabled="!isEdit"> <el-select v-model="form.gender" placeholder="请选择性别" size="mini" style="width:100%;" :disabled="!isEdit">
<el-option label="女" :value="0"></el-option> <el-option label="女" :value="0"></el-option>
<el-option label="男" :value="1"></el-option> <el-option label="男" :value="1"></el-option>
......
...@@ -71,12 +71,12 @@ ...@@ -71,12 +71,12 @@
<el-upload <el-upload
class="file-import" class="file-import"
ref="upload" ref="upload"
action="/" action="#"
:auto-upload="false" :auto-upload="false"
:file-list="fileList" :file-list="fileList"
:limit="1" :limit="1"
:before-upload="beforeUpload" :before-upload="beforeUpload"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" accept=".xls,.xlsx"
> >
<el-button slot="trigger" size="mini" type="primary">选取文件</el-button> <el-button slot="trigger" size="mini" type="primary">选取文件</el-button>
<span slot="tip" style="margin-left:10px;">只能上传excel文件</span> <span slot="tip" style="margin-left:10px;">只能上传excel文件</span>
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
</div> </div>
<div style="text-align:center;"> <div style="text-align:center;">
<el-button size="mini" @click="dialogVisible = false">取消</el-button> <el-button size="mini" @click="dialogVisible = false">取消</el-button>
<el-button type="primary" size="mini" @click="submitUpload">确认提交</el-button> <el-button type="primary" size="mini" @click="submitUpload" :disabled="fileLoading"><i class="el-icon-loading" v-if="fileLoading"></i>确认提交</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
...@@ -97,6 +97,7 @@ import TabInfo from './components/info.vue' ...@@ -97,6 +97,7 @@ import TabInfo from './components/info.vue'
import TabDegree from './components/degree.vue' import TabDegree from './components/degree.vue'
import TabCourse from './components/course.vue' import TabCourse from './components/course.vue'
import { getStudentList, deleteStudent, importStudents, exportStudentList } from '@/api/student' import { getStudentList, deleteStudent, importStudents, exportStudentList } from '@/api/student'
import _ from 'lodash'
import { splitStrLast, funDownload } from '@/utils/utils' import { splitStrLast, funDownload } from '@/utils/utils'
const genderMap = { const genderMap = {
0: '女', 0: '女',
...@@ -118,7 +119,8 @@ export default { ...@@ -118,7 +119,8 @@ export default {
{ label: '学位信息', value: 'degree' }, { label: '学位信息', value: 'degree' },
{ label: '课程信息', value: 'course' } { label: '课程信息', value: 'course' }
], ],
importType: 'info' importType: 'info',
fileLoading: false
} }
}, },
computed: { computed: {
...@@ -215,7 +217,6 @@ export default { ...@@ -215,7 +217,6 @@ export default {
} }
}, },
created() { created() {
console.log(this.onlyView)
}, },
methods: { methods: {
handleSelectionChange(val) { handleSelectionChange(val) {
...@@ -223,9 +224,12 @@ export default { ...@@ -223,9 +224,12 @@ export default {
}, },
handleImport() {}, handleImport() {},
handleRemove() { handleRemove() {
const ids = this.multipleSelection.join() this.$confirm('确定删除选中项?', '提示', {
console.log(ids) confirmButtonText: '确定',
this.fetchDeleteStudents(ids) cancelButtonText: '取消'
}).then(() => {
this.fetchDeleteStudents()
}).catch(() => {});
}, },
handleDetails(val) { handleDetails(val) {
if (this.hasViewInfo || this.hasViewDegree || this.hasViewCourse) { if (this.hasViewInfo || this.hasViewDegree || this.hasViewCourse) {
...@@ -241,12 +245,12 @@ export default { ...@@ -241,12 +245,12 @@ export default {
this.fileList = [] this.fileList = []
}, },
beforeUpload(file) { beforeUpload(file) {
console.log(file)
const suffix = splitStrLast(file.name, '.') const suffix = splitStrLast(file.name, '.')
if (!['xlsx', 'xls'].includes(suffix)) { if (!['xlsx', 'xls'].includes(suffix)) {
this.$message.error('只能上传excel文件') this.$message.error('只能上传excel文件')
return false return false
} else { } else {
this.fileLoading = true
const formData = new window.FormData() const formData = new window.FormData()
formData.append('type', this.importType) formData.append('type', this.importType)
formData.append('file', file) formData.append('file', file)
...@@ -256,6 +260,7 @@ export default { ...@@ -256,6 +260,7 @@ export default {
this.$message.success('导入数据成功') this.$message.success('导入数据成功')
resolve(true) resolve(true)
this.$refs.tabList.refetch() this.$refs.tabList.refetch()
this.fileLoading = false
window.setTimeout(() => { window.setTimeout(() => {
this.dialogVisible = false this.dialogVisible = false
}, 300) }, 300)
...@@ -267,9 +272,9 @@ export default { ...@@ -267,9 +272,9 @@ export default {
}) })
} }
}, },
submitUpload() { submitUpload: _.debounce(function() {
this.$refs.upload.submit() this.$refs.upload.submit()
}, }, 500),
handleBeforeClose(done) { handleBeforeClose(done) {
if (this.hasSaveCourse) { if (this.hasSaveCourse) {
this.$confirm('您已确认保存好修改的数据,并关闭弹框吗?', '提示', { this.$confirm('您已确认保存好修改的数据,并关闭弹框吗?', '提示', {
...@@ -294,7 +299,8 @@ export default { ...@@ -294,7 +299,8 @@ export default {
} }
}) })
}, },
fetchDeleteStudents(ids) { fetchDeleteStudents() {
const ids = this.multipleSelection.join()
deleteStudent(ids).then(res => { deleteStudent(ids).then(res => {
if (res.code === 0 && res.message === 'OK') { if (res.code === 0 && res.message === 'OK') {
this.$message.success('删除学员成功') this.$message.success('删除学员成功')
......
...@@ -22,7 +22,6 @@ httpRequest.interceptors.request.use( ...@@ -22,7 +22,6 @@ httpRequest.interceptors.request.use(
// Object.keys(defaultParams).forEach(key => { // Object.keys(defaultParams).forEach(key => {
// params.append(key, defaultParams[key]) // params.append(key, defaultParams[key])
// }) // })
console.log(config)
} else { } else {
params = Object.assign({}, defaultParams, params) params = Object.assign({}, defaultParams, params)
if (['post', 'put', 'delete'].includes(config.method)) { if (['post', 'put', 'delete'].includes(config.method)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论