提交 99d6e525 authored 作者: matian's avatar matian

Merge remote-tracking branch 'origin/master'

import httpRequest from '@/utils/axios'
/**
* 获取课程列表
* 获取证书列表
*/
export function getCertList(params) {
return httpRequest.get('/api/zy-admin/school/certificate/list', { params })
}
/**
* 获取课程列表
* 获取证书详情
*/
export function getCertDetails(params) {
return httpRequest.get('/api/zy-admin/school/certificate/view', { params })
}
/**
* 导出证书列表
*/
export function exportCertList(params) {
return httpRequest.get('/api/zy-admin/school/certificate/download', { params, headers: { responseType: 'blob' } })
}
......@@ -24,6 +24,12 @@
<el-button type="primary" size="mini" plain>查看</el-button>
</router-link>
</template>
<div class="buttons">
<a :href="exportUrl" download target="_blank">
<el-button type="primary" icon="el-icon-download">导出</el-button>
</a>
<span style="font-size: 12px; padding: 0 10px; color: #606266">导出当前搜索结果</span>
</div>
</app-list>
</app-card>
</template>
......@@ -31,22 +37,22 @@
<script>
import AppClassSelect from '@/components/base/AppClassSelect.vue'
import { getCertList } from '../api'
import queryString from 'query-string'
export default {
data() {
return {
isShowDialog: false,
info: {}
listParams: {}
}
},
components: {
AppClassSelect
},
components: { AppClassSelect },
computed: {
// 列表配置
tableOptions() {
return {
remote: {
httpRequest: getCertList,
beforeRequest: this.beforeRequest,
params: { personal_name: '', class_id: '', has_certificate: '' }
},
filters: [
......@@ -57,6 +63,7 @@ export default {
columns: [
{ label: '姓名', align: 'center', prop: 'personal_name' },
{ label: '所属班级', align: 'center', prop: 'class_name' },
{ label: '所属机构', align: 'center', prop: 'organization_name' },
{
label: '是否取证',
align: 'center',
......@@ -68,32 +75,18 @@ export default {
{ label: '操作', slots: 'table-x', align: 'center', width: '220', fixed: 'right' }
]
}
},
// 导出地址
exportUrl() {
const query = queryString.stringify(this.listParams)
return import.meta.env.VITE_BASE_URL + '/api/zy-admin/school/certificate/download?' + query
}
},
methods: {
handleAdd() {
this.isShowDialog = true
this.info = null
},
onDetails(row) {
console.log(row)
},
onEdit(row) {
this.isShowDialog = true
this.info = row
},
// 删除课程
onRemove(row) {
this.$confirm('你确定要删除此项吗', '确认提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 调用删除接口
this.delTeach(row)
})
},
delTeach(row) {}
beforeRequest(params) {
this.listParams = { ...params }
return params
}
}
}
</script>
<template>
<el-dialog v-bind="$attrs" v-on="$listeners" width="25%" top="40vh">
<el-dialog title="添加学员" v-bind="$attrs" v-on="$listeners" width="400px" :close-on-click-modal="false">
<el-form ref="formRef" :model="form">
<el-form-item label="学员" prop="personal_name">
<el-select v-model="form.students_id" multiple placeholder="请选择学员">
<el-form-item prop="personal_name">
<el-select v-model="form.students_id" multiple placeholder="请选择学员" style="width: 100%">
<el-option v-for="item in detail" :key="item.index" :value="item.id" :label="item.personal_name"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="$emit('update:visible', false)" style="margin-left: 50px">取消</el-button>
<el-button type="primary" style="margin-left: 20px" @click="submit">提交</el-button>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" @click="submit">提交</el-button>
</template>
</el-dialog>
</template>
......
<template>
<el-dialog v-bind="$attrs" v-on="$listeners" width="25%" top="40vh">
<el-dialog title="添加教师" v-bind="$attrs" v-on="$listeners" width="400px" :close-on-click-modal="false">
<el-form ref="formRef" :model="form">
<el-form-item label="教师" prop="personal_name">
<el-select v-model="form.staffs_id" multiple placeholder="请选择教师">
<el-form-item prop="personal_name">
<el-select v-model="form.staffs_id" multiple placeholder="请选择教师" style="width: 100%">
<el-option v-for="item in detail" :key="item.index" :value="item.id" :label="item.personal_name"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="$emit('update:visible', false)" style="margin-left: 50px">取消</el-button>
<el-button type="primary" style="margin-left: 20px" @click="submit">提交</el-button>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" @click="submit">提交</el-button>
</template>
</el-dialog>
</template>
......
<template>
<el-dialog title="添加考试" v-bind="$attrs" v-on="$listeners" width="400px" align="center">
<el-dialog title="添加考试" v-bind="$attrs" v-on="$listeners" width="400px" :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules">
<el-form-item prop="exams_id">
<el-select v-model="form.exams_id" multiple filterable placeholder="请选择考试" style="width: 100%">
......
<template>
<el-card>
<app-card>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<!-- 姓名 -->
<el-form-item label="姓名" prop="personal_name">
......@@ -47,7 +47,7 @@
<el-button type="primary" @click="submit">提交</el-button>
</el-form-item>
</el-form>
</el-card>
</app-card>
</template>
<script>
......
<template>
<el-card>
<app-card>
<el-form :model="form" label-width="120px" ref="form" :rules="rules">
<!-- 姓名 -->
<el-form-item label="姓名" prop="personal_name">
......@@ -26,7 +26,7 @@
<el-button type="primary" @click="submit">提交</el-button>
</el-form-item>
</el-form>
</el-card>
</app-card>
</template>
<script>
......
......@@ -49,20 +49,12 @@ httpRequest.interceptors.request.use(
httpRequest.interceptors.response.use(
function (response) {
const { data } = response
// 正常返回
if (data.code === 0) {
return data
// 请求失败
if (data.code === 1) {
Message({ message: data.message || data.msg, type: 'error' })
return Promise.reject(data)
}
// 下载excel流
if (data.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
return data
}
// 获取阿里视频地址
if (data.video) {
return data
}
Message({ message: data.message || data.msg, type: 'error' })
return Promise.reject(data)
return data
},
function (error) {
if (error.response) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论