Merge branch 'develop' of https://gitee.com/siwa-team/dawa-vue into develop
This commit is contained in:
commit
4998a082a8
|
@ -28,7 +28,8 @@ export function reqRegister (parameter) {
|
|||
return request({
|
||||
url: userApi.register,
|
||||
method: 'post',
|
||||
data: parameter
|
||||
data: parameter,
|
||||
params: {type: parameter.type, phone: parameter.phone, verifyCode: parameter.code}
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||
|
||||
const myresourceApi = {
|
||||
list: 'courseManagement/xmCourseCourseware/resource', // 学习统计
|
||||
addPreview: 'courseManagement/xmCourseCourseware/details' // 下载次数和预览次数
|
||||
addPreview: 'courseManagement/xmCourseCourseware/details', // 预览次数
|
||||
}
|
||||
|
||||
export function gerMyresource (params) {
|
||||
|
|
|
@ -220,13 +220,17 @@ export default {
|
|||
if (!err) {
|
||||
this.btnLoading = true
|
||||
state.passwordLevelChecked = false
|
||||
this.$store.dispatch('ChangePassword', values).then(res => {
|
||||
this.btnLoading = false
|
||||
this.$message.success('修改密码成功')
|
||||
this.$store.dispatch('Logout').then(() => {
|
||||
this.$router.push({ name: 'login' })
|
||||
this.$store
|
||||
.dispatch('ChangePassword', values)
|
||||
.then(res => {
|
||||
this.$message.success('修改密码成功')
|
||||
this.$store.dispatch('Logout').then(() => {
|
||||
this.$router.push({ name: 'login' })
|
||||
})
|
||||
})
|
||||
.finally(() => {
|
||||
this.btnLoading = false
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -93,6 +93,8 @@ const user = {
|
|||
password: data.password
|
||||
}).then(res => {
|
||||
resolve(res)
|
||||
}).finally((error)=>{
|
||||
reject(error)
|
||||
})
|
||||
} catch (error) {
|
||||
reject(error)
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</span>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a-popconfirm
|
||||
v-if="record.status === 1"
|
||||
v-if="record.signStatus === 1 && record.status === 2"
|
||||
slot="actions"
|
||||
:title="`确定要报名参加${record.trainName}吗?`"
|
||||
ok-text="添加"
|
||||
|
@ -33,7 +33,8 @@
|
|||
>
|
||||
<a>报名参加</a>
|
||||
</a-popconfirm>
|
||||
<a v-else slot="actions" href="javascript:void(0);">已报名</a>
|
||||
<a v-if="record.signStatus === 2" slot="actions" href="javascript:void(0);">已报名</a>
|
||||
<a v-if="record.signStatus === 3" slot="actions" href="javascript:void(0);">已签到</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<CentralizedTrainingDetail ref="centralizedTrainingDetail"></CentralizedTrainingDetail>
|
||||
|
@ -91,14 +92,12 @@ export default {
|
|||
}
|
||||
},
|
||||
mounted () {
|
||||
// setTimeout(() => {
|
||||
// this.loading = false
|
||||
// }, 800)
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
initData () {
|
||||
reqCourseCenterList({ pageNum: 1, pageSize: 5 }).then(res => {
|
||||
const { person } = this.$store.state.user
|
||||
reqCourseCenterList({ personId: person.id, pageNum: 1, pageSize: 5 }).then(res => {
|
||||
this.loading = false
|
||||
this.dataList = res.rows
|
||||
})
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
<template>
|
||||
<a-card :bordered="false" :loading="loading">
|
||||
<div class="table-page-search-wrapper">
|
||||
<SearchCom :form="queryParam" :list="queryOptions" @search="handleRefresh" @reset="
|
||||
<SearchCom
|
||||
:form="queryParam"
|
||||
:list="queryOptions"
|
||||
@search="handleRefresh"
|
||||
@reset="
|
||||
() => {
|
||||
queryParam = {}
|
||||
handleRefresh()
|
||||
}
|
||||
"></SearchCom>
|
||||
</div>
|
||||
</br>
|
||||
<a-tabs :default-active-key="activeTab" @change="(key)=>{activeTab = key}">
|
||||
<a-tab-pane key="1" tab="预约考试">
|
||||
<s-table ref="examTable" :pageSize="5" :columns="examColumns" :data="loadExamData" :rowKey="record => record.id">
|
||||
|
@ -58,163 +61,161 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { STable, SearchCom } from '@/components';
|
||||
import { reqExamList, reqExamAttendList, reqExamSubscribe } from '@/api/myexam/exam';
|
||||
import { dictionaryDropDown } from '@/api/sys/dictionaryItem';
|
||||
import { dictToTree } from '@/utils/util';
|
||||
import { dictGet } from '@/api/project/project';
|
||||
import { STable, SearchCom } from '@/components'
|
||||
import { reqExamList, reqExamAttendList, reqExamSubscribe } from '@/api/myexam/exam'
|
||||
import { dictGet } from '@/api/project/project'
|
||||
|
||||
export default {
|
||||
components: { STable, SearchCom },
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
activeTab: '1',
|
||||
queryParam: {
|
||||
examClassify: '', // 课程分类
|
||||
examClassify: '' // 课程分类
|
||||
},
|
||||
queryOptions: [
|
||||
{ type: 'select-dic-tree', placeholder: '课程分类', key: 'examClassify', options: [] },
|
||||
{ type: 'select', placeholder: '课程分类', key: 'examClassify', options: [] }
|
||||
],
|
||||
examColumns: [
|
||||
{
|
||||
title: '序号',
|
||||
width: '80px',
|
||||
scopedSlots: { customRender: 'index' },
|
||||
align: 'center',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '考试科目',
|
||||
dataIndex: 'projectName',
|
||||
dataIndex: 'projectName'
|
||||
},
|
||||
{
|
||||
title: '准考证号',
|
||||
dataIndex: 'candidateNo',
|
||||
dataIndex: 'candidateNo'
|
||||
},
|
||||
{
|
||||
title: '考试形式',
|
||||
dataIndex: 'testType',
|
||||
scopedSlots: { customRender: 'testType' },
|
||||
scopedSlots: { customRender: 'testType' }
|
||||
},
|
||||
{
|
||||
title: '考试时间',
|
||||
dataIndex: 'examSdate',
|
||||
dataIndex: 'examSdate'
|
||||
},
|
||||
{
|
||||
title: '考试时长',
|
||||
dataIndex: 'examTime',
|
||||
scopedSlots: { customRender: 'examTime' },
|
||||
scopedSlots: { customRender: 'examTime' }
|
||||
},
|
||||
{
|
||||
title: '考试资格',
|
||||
dataIndex: 'zige',
|
||||
scopedSlots: { customRender: 'zige' },
|
||||
scopedSlots: { customRender: 'zige' }
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '150px',
|
||||
dataIndex: 'action',
|
||||
scopedSlots: { customRender: 'action' },
|
||||
},
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
examDoneColumns: [
|
||||
{
|
||||
title: '序号',
|
||||
width: '80px',
|
||||
scopedSlots: { customRender: 'index' },
|
||||
align: 'center',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '考试科目',
|
||||
dataIndex: 'projectName',
|
||||
dataIndex: 'projectName'
|
||||
},
|
||||
{
|
||||
title: '准考证号',
|
||||
dataIndex: 'candidateNo',
|
||||
dataIndex: 'candidateNo'
|
||||
},
|
||||
{
|
||||
title: '考试形式',
|
||||
dataIndex: 'testType',
|
||||
scopedSlots: { customRender: 'testType' },
|
||||
scopedSlots: { customRender: 'testType' }
|
||||
},
|
||||
{
|
||||
title: '答卷时间',
|
||||
dataIndex: 'submitTime',
|
||||
dataIndex: 'submitTime'
|
||||
},
|
||||
{
|
||||
title: '考试时长',
|
||||
dataIndex: 'examTime',
|
||||
scopedSlots: { customRender: 'examTime' },
|
||||
scopedSlots: { customRender: 'examTime' }
|
||||
},
|
||||
{
|
||||
title: '考试成绩',
|
||||
dataIndex: 'score',
|
||||
dataIndex: 'score'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '150px',
|
||||
dataIndex: 'action',
|
||||
scopedSlots: { customRender: 'action' },
|
||||
},
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
loadExamData: parameter => {
|
||||
return reqExamList(Object.assign(parameter, this.queryParam)).then(res => {
|
||||
return res;
|
||||
});
|
||||
return res
|
||||
})
|
||||
},
|
||||
loadExamDoneData: parameter => {
|
||||
return reqExamAttendList(Object.assign(parameter, this.queryParam)).then(res => {
|
||||
return res;
|
||||
});
|
||||
},
|
||||
};
|
||||
return res
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dictionaryDropDown();
|
||||
mounted () {
|
||||
this.dictionaryDropDown()
|
||||
},
|
||||
methods: {
|
||||
dictionaryDropDown() {
|
||||
dictionaryDropDown () {
|
||||
dictGet({ type: 1 }).then(res => {
|
||||
this.queryOptions[0].options = res.data;
|
||||
this.loading = false;
|
||||
});
|
||||
this.queryOptions[0].options = res.data
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 搜索
|
||||
handleRefresh() {
|
||||
const { activeTab } = this;
|
||||
console.log('activeTab', activeTab);
|
||||
handleRefresh () {
|
||||
const { activeTab } = this
|
||||
console.log('activeTab', activeTab)
|
||||
if (activeTab === '1') {
|
||||
this.$refs.examTable.refresh();
|
||||
this.$refs.examTable.refresh()
|
||||
} else {
|
||||
this.$refs.examDoneTable.refresh();
|
||||
this.$refs.examDoneTable.refresh()
|
||||
}
|
||||
},
|
||||
// 预约考试
|
||||
handlerMarker(data) {
|
||||
const _this = this;
|
||||
handlerMarker (data) {
|
||||
const _this = this
|
||||
this.$confirm({
|
||||
title: '提示',
|
||||
content: '确定要预约考试吗?',
|
||||
onOk() {
|
||||
onOk () {
|
||||
reqExamSubscribe({ projectId: data.id }).then(res => {
|
||||
_this.$message.success('预约成功!');
|
||||
_this.handleRefresh();
|
||||
});
|
||||
_this.$message.success('预约成功!')
|
||||
_this.handleRefresh()
|
||||
})
|
||||
},
|
||||
onCancel() {},
|
||||
});
|
||||
onCancel () {}
|
||||
})
|
||||
},
|
||||
handlerGoExam(row) {
|
||||
handlerGoExam (row) {
|
||||
// 考试前5分钟才能进入考试界面(待办...)
|
||||
// const diff = new Date().getTime() - new Date(examSdate).getTime()
|
||||
// if(diff > -1000*60*5){}
|
||||
this.$router.push({ path: '/myexamDetail', query: { type: 'exam', projectId: row.id } });
|
||||
this.$router.push({ path: '/myexamDetail', query: { type: 'exam', projectId: row.id } })
|
||||
},
|
||||
handlerGoReport(row) {
|
||||
this.$router.push({ path: '/myreport', query: { type: 'exam', reportId: row.report.id } });
|
||||
},
|
||||
},
|
||||
};
|
||||
handlerGoReport (row) {
|
||||
this.$router.push({ path: '/myreport', query: { type: 'exam', reportId: row.report.id } })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
<!-- 系统推荐课程 start -->
|
||||
<a-col :span="24" :style="{ marginBottom: '24px' }">
|
||||
<a-card :bordered="false" title="系统推荐课程" :style="{ height: '100%' }">
|
||||
<a-row v-if="sysList && sysList.length>0" :gutter="16">
|
||||
<a-row v-if="sysList && sysList.length > 0" :gutter="16">
|
||||
<a-col :span="6" :md="4" :sm="6" v-for="(item, index) in sysList" :key="index">
|
||||
<a-card
|
||||
@click="handlerContinue(item)"
|
||||
|
@ -103,9 +103,11 @@
|
|||
<a-card :bordered="false" title="集中培训" :style="{ height: '100%' }">
|
||||
<a-list class="demo-loadmore-list" item-layout="horizontal" :data-source="jzpxList">
|
||||
<a-list-item slot="renderItem" slot-scope="item">
|
||||
<a @click="handlerCenterDetail(item)" slot="actions" href="javascript:void(0);">培训详情</a>
|
||||
<a @click="handlerCenterDetail(item)" slot="actions" href="javascript:void(0);">
|
||||
培训详情
|
||||
</a>
|
||||
<a-popconfirm
|
||||
v-if="item.status === 1"
|
||||
v-if="item.signStatus === 1 && item.status === 2"
|
||||
slot="actions"
|
||||
:title="`确定要报名参加${item.trainName}吗?`"
|
||||
ok-text="添加"
|
||||
|
@ -114,7 +116,8 @@
|
|||
>
|
||||
<a>报名参加</a>
|
||||
</a-popconfirm>
|
||||
<a v-else slot="actions" href="javascript:void(0);">已报名</a>
|
||||
<a v-if="item.signStatus === 2" slot="actions" href="javascript:void(0);">已报名</a>
|
||||
<a v-if="item.signStatus === 3" slot="actions" href="javascript:void(0);">已签到</a>
|
||||
<a-list-item-meta :title="item.trainName"></a-list-item-meta>
|
||||
<div style="width: 200px;">
|
||||
{{ item.trainSdate }}
|
||||
|
@ -225,7 +228,7 @@ export default {
|
|||
// 集中培训
|
||||
getJzpxList () {
|
||||
const { person } = this.$store.state.user
|
||||
reqCourseCenterList({personId:person.id, pageSize: 5, pageNum: 1 }).then(res => {
|
||||
reqCourseCenterList({ personId: person.id, pageSize: 5, pageNum: 1 }).then(res => {
|
||||
this.jzpxList = res.rows
|
||||
})
|
||||
},
|
||||
|
@ -248,7 +251,8 @@ export default {
|
|||
reqAddMyCourse({ personId: person.id, projectId: row.id }).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.$message.success('添加课程成功!')
|
||||
this.reqMyCourseList()
|
||||
this.getCourseList()
|
||||
this.getPxjhList()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
|
@ -70,7 +70,7 @@ export default {
|
|||
courseType: '' // 课程分类
|
||||
},
|
||||
queryOptions: [
|
||||
{ type: 'select-dic-tree', placeholder: '课程分类', key: 'courseType', options: [] }
|
||||
{ type: 'select-dic-tree', width: '200', placeholder: '课程分类', key: 'courseType', options: [] }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
|
@ -108,10 +108,10 @@ export default {
|
|||
})
|
||||
},
|
||||
handlerDownload (data, file) {
|
||||
window.open(file.path)
|
||||
// reqAddPreview({ coursewareId: data.id, isEdit: 0 }).then(res => {
|
||||
// window.open(file.path)
|
||||
// })
|
||||
reqAddPreview({ coursewareId: data.id, isDown: 1 }).then(res => {
|
||||
window.open(file.path)
|
||||
data.downCount++
|
||||
})
|
||||
},
|
||||
handlerPreview (data) {
|
||||
this.$router.push({
|
||||
|
|
|
@ -19,10 +19,13 @@
|
|||
<div v-html="model.content"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-operator" v-if="path">
|
||||
<a-button type="primary" icon="arrow-down" @click="download" class="down">
|
||||
附件下载
|
||||
</a-button>
|
||||
|
||||
<div class="down-class" v-show="fileList.length > 0">
|
||||
<a-divider orientation="left">附件下载</a-divider>
|
||||
<a-upload
|
||||
:file-list="fileList"
|
||||
:showUploadList="{showDownloadIcon: true, showRemoveIcon: false}">
|
||||
</a-upload>
|
||||
</div>
|
||||
</div>
|
||||
</a-card>
|
||||
|
@ -80,6 +83,7 @@ export default {
|
|||
readCount: 0,
|
||||
unreadCount: 0,
|
||||
noticeRange: 1,
|
||||
fileList: [],
|
||||
// 表头
|
||||
columns1: [
|
||||
{
|
||||
|
@ -138,12 +142,12 @@ export default {
|
|||
close () {
|
||||
this.$router.push({ path: '/notice/list', query: { noticeRange: this.noticeRange } })
|
||||
},
|
||||
getDetail (id) {
|
||||
noticeGet({ id: id }).then(res => {
|
||||
async getDetail (id) {
|
||||
await noticeGet({ id: id }).then(res => {
|
||||
this.model = res.data
|
||||
const fileArr = JSON.parse(res.data.file)
|
||||
if (fileArr.length > 0) {
|
||||
this.path = fileArr[0].url
|
||||
this.fileList = fileArr
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -182,4 +186,8 @@ export default {
|
|||
.article-body {
|
||||
margin-top: 15px;
|
||||
}
|
||||
.down-class {
|
||||
width: 50%;
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -309,7 +309,9 @@ export default {
|
|||
userName: data.username,
|
||||
password: data.password,
|
||||
phone: data.mobile,
|
||||
orgId: this.unitInfo.id
|
||||
code: data.captcha,
|
||||
orgId: this.unitInfo.id,
|
||||
type: 'register'
|
||||
}
|
||||
reqRegister(params).then(res => {
|
||||
this.$message.success('注册成功!')
|
||||
|
|
Loading…
Reference in New Issue