提交 fda88968 authored 作者: zyx's avatar zyx

update

......@@ -58,4 +58,5 @@ export default class ScoreAPI extends BaseAPI {
* 参数同上
*/
deleteSubmitReport = (rid, reid) => this.delete(`/v2/education/symposium/report/${reid}`, {})
getDataList = () => this.get('/v2/lobby/affairs')
}
......@@ -23,4 +23,5 @@ export default class ReportAction {
updateSubmitReport (rid, reid, obj) { return reportApi.updateSubmitReport(rid, reid, obj).then(res => res) }
/* 删除学术报告 */
deleteSubmitReport (rid, reid) { return reportApi.deleteSubmitReport(rid, reid).then(res => res) }
getDataList () { return reportApi.getDataList().then(res => res) }
}
......@@ -61,6 +61,7 @@ export default {
case '/app/my-learn/report-list': defaultActive = '1-3'; break
case '/app/my-grade/credit': defaultActive = '2-1'; break
case '/app/account/feedbackList': defaultActive = '3'; break
case '/app/service-hall/hall': defaultActive = '4'; break
}
return {
UserInfo: this.$GlobalVariable.UserInfo || {},
......@@ -84,6 +85,11 @@ export default {
{ name: '我的学分', index: '2-1' }
]
},
{
name: '办事大厅',
iconClass: 'el-icon-self-fankuiyijian',
index: '4'
},
{
name: '意见反馈',
iconClass: 'el-icon-self-fankuiyijian',
......@@ -103,6 +109,7 @@ export default {
case '1-3': this.$router.push({ path: '/app/my-learn/report-active-list' }); break
case '2-1': this.$router.push({ path: '/app/my-grade/credit' }); break
case '3': this.$router.push({ path: '/app/account/feedbackList' }); break
case '4': this.$router.push({ path: '/app/service-hall/hall' }); break
}
},
/* 修改头像 - 跳转方法 */
......
......@@ -6,7 +6,7 @@
:size="tableConfig.size || 'small'"
:header-cell-style="headerCellStyle"
@selection-change="selectionChange"
style="width: 100%">
style="width: 100%;">
<template v-if="tableConfig.selection.has">
<el-table-column
type="selection"
......@@ -161,10 +161,15 @@ export default {
}
</script>
<style lang="scss" scoped>
<style lang="scss">
/* 列表需要 带分页 */
.table-box {
overflow: hidden;
.el-table__body {
td {
height: 60px;
}
}
/* 列表中 - 图片显示 */
.img-inline {
width: 100%;
......
<template>
<div>
<div class="con-box">
<template v-for="(item, index) in tapParam">
<ul :key="index+'^-^'" class="tabs-list">
<li class="tabs-hd">{{item.name}}</li>
<template v-for="(item1, index1) in item.arrItem">
<li v-bind:key="index1">
<div :class="['tab', (item.selectIndex == index1 ? 'on' : '')]" @click="selFindSelect" :data-index='index1' :data-i="index" :data-key='item.key' :data-val='item1.val'>{{item1.name}}</div>
</li>
</template>
</ul>
</template>
</div>
</div>
</template>
<script>
export default {
data () {
return {
// find: [{
// name: '分类',
// isShow: false,
// selectIndex: 0,
// key: 'cc',
// arrItem: [ // 从后台请求
// { val: '1', name: '学术活动' },
// { val: '2', name: '乐分享' },
// { val: '3', name: '重修' }
// ]
// }]
}
},
props: {
tapParam: {
type: Array,
default: {}
}
},
methods: {
selFindSelect (e) {
let _data = e.currentTarget.dataset
let index = _data.index
let json = this.tapParam
let i = _data.i
json[i].selectIndex = index
// json[i].isShow = false
this.$emit('tapIndex', index)
}
}
}
</script>
<style lang="scss" scoped>
.live-msg {
position: relative;
padding: 15px;
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
.txt {
padding-right: 100px;
}
.in-btn {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
}
}
/* 列表 筛选 */
ul.tabs-list {
float: left;
width: 100%;
margin: 0 0 0.15rem 0;
padding: 0;
font-size: 0.16rem;
line-height: 1.5;
border-top: 1px solid #e8e8e8;
&:last-child {
margin-bottom: 0;
}
.tabs-hd {
display: inline-block;
color: #fff;
padding: 5px 0 9px;
margin-top: -5px;
width: 94px;
text-align: center;
background: url(https://zws-imgs-pub.ezijing.com/754005be709bf2295bc55923c2b91fd8.png) no-repeat 0 0;
}
li {
float: left;
list-style: none;
padding: 0.1rem 0;
margin-right: 0.2rem;
.tab {
padding: 0 0.1rem;
cursor: pointer;
&.on {
background: #b49441;
color: #ffffff;
}
&:focus, &:hover {
color: #b49441;
background: #eeeeee;
}
}
}
}
/* 筛选按钮 */
.switch-box {
margin: 0 0.3rem;
.icon {
margin-left: 0.1rem;
}
.rbtn {
float: right;
}
}
/* 课程列表 */
ul.course-list {
margin: 0;
padding: 0;
font-size: 0.18rem;
color: #313131;
.no-data {
text-align: center;
line-height: 2rem;
}
li.item {
padding: 0.1rem 0;
list-style: none;
border-bottom: 1px solid #dcdcdc;
overflow: hidden;
&:first-child {
padding-top: 0;
}
&:last-child {
margin-bottom: 0.2rem;
}
.left-pic {
position: relative;
float: left;
width: 1.8rem;
// min-height: 1rem;
overflow: hidden;
.no-img {
width: 100%;
height: 1rem;
text-align: center;
line-height: 1.1rem;
border: 1px solid #e2e2e2;
i {
font-size: 0.4rem;
color: #e2e2e2;
}
}
img {
// position: absolute;
// top: 50%;
// left: 50%;
display: block;
width: 100%;
// height: 100%;
// transform: translate(-50%, -50%);
cursor: pointer;
}
}
.right-bd {
position: relative;
display: block;
margin-left: 2rem;
.title {
width: 80%;
line-height: 1.5;
font-weight: 700;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
}
.tags {
margin: 0.05rem 0;
font-size: 0.14rem;
span {
padding: 0 0.1rem;
margin: 0;
border-right: 1px solid #313131;
&:first-child {
padding-left: 0;
}
&:last-child {
border: none;
}
}
}
.time {
font-size: 0.12rem;
em {
font-style: normal;
color: #898989;
}
}
.progress {
margin-top: 0.05rem;
font-size: 14px;
.el-progress {
width: 50%;
display: inline-block;
vertical-align: text-bottom;
}
}
.right-sel {
position: absolute;
right: 0;
top: 0;
font-size: 14px;
padding: 0 0.1rem;
}
.in-btn {
position: absolute;
right: 0;
bottom: 0;
}
}
}
}
.con-box {
margin: 0.3rem;
padding: 0.3rem 0.3rem 0.15rem 0.3rem;
background: #ffffff;
overflow: hidden;
position: relative;
}
@media (max-width: 767px) {
.switch-box {
margin: 0;
}
}
</style>
\ No newline at end of file
<template>
<div class="certif-box">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title">美国索菲亚大学学位证书三级认证申请</span>
</div>
<div class="form-box">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="180px" class="demo-ruleForm">
<el-form-item label="1.您的姓名" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="2.您的班级" prop="class">
<el-input v-model="ruleForm.class"></el-input>
</el-form-item>
<el-form-item label="3.请输入您的身份证号" prop="idcode">
<el-input v-model="ruleForm.idcode"></el-input>
</el-form-item>
<el-form-item label="4.请输入您的手机号" prop="phone">
<el-input v-model="ruleForm.phone"></el-input>
</el-form-item>
<el-form-item label="5.请上传您的学位证书" prop="fileList1">
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-change="(file,fileList)=>{return changeFile(file,fileList,'fileList1')}"
:on-remove="(file,fileList)=>{return changeFile(file,fileList,'fileList1')}"
:file-list="ruleForm.fileList1"
accept='.jpg,.jpeg,.png,.bmp'
:on-preview="handlePictureCardPreview">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-form-item label="6.请上传您的护照" prop="fileList2">
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-change="(file,fileList)=>{return changeFile(file,fileList,'fileList2')}"
:on-remove="(file,fileList)=>{return changeFile(file,fileList,'fileList2')}"
:file-list="ruleForm.fileList2"
accept='.jpg,.jpeg,.png,.bmp'
:on-preview="handlePictureCardPreview">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-form-item label="7.请上传您的缴费凭证" prop="fileList3">
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-change="(file,fileList)=>{return changeFile(file,fileList,'fileList3')}"
:on-remove="(file,fileList)=>{return changeFile(file,fileList,'fileList3')}"
:file-list="ruleForm.fileList3"
accept='.jpg,.jpeg,.png,.bmp'
:on-preview="handlePictureCardPreview">
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<!-- prop="fileList4" -->
<el-form-item label="8.请上传您的申请表">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-change="(file,fileList)=>{return changeFile(file,fileList,'fileList4')}"
:on-remove="(file,fileList)=>{return changeFile(file,fileList,'fileList4')}"
multiple
:limit="3"
accept='.word,.pdf'
:file-list="ruleForm.fileList4">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传word/pdf文件</div>
</el-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<script>
import cAction from '@actions'
export default {
data () {
return {
dialogImageUrl: '',
dialogVisible: false,
ruleForm: {
name: '',
class: '',
idcode: '',
phone: '',
delivery: false,
fileList1: [],
fileList2: [],
fileList3: [],
fileList4: []
},
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
class: [
{ required: true, message: '请输入您的班级', trigger: 'blur' }
],
idcode: [
{ required: true, message: '请输入您的身份证号码', trigger: 'blur' }
],
phone: [
{ required: true, message: '请输入您的手机号码', trigger: 'blur' }
],
fileList1: [
{ type: 'array', required: true, message: '请上传您的学位证书' }
],
fileList2: [
{ type: 'array', required: true, message: '请上传您的护照' }
],
fileList3: [
{ type: 'array', required: true, message: '请上传您的缴费凭证' }
],
fileList4: [
{ type: 'array', required: true, message: '请上传您的申请表' }
]
}
}
},
methods: {
submitForm (formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
cAction.chapterAction.getCourseHomework(this.sid, this.cid).then(data => {
}).catch(e => { this.filesArr.pop(); this.$message.error(e.message) }).finally(() => {
})
} else {
console.log('error submit!!')
return false
}
})
},
changeFile (file, fileList, name) {
this.ruleForm[name] = fileList
if (fileList) {
// this.$refs['ruleForm'].validate()
}
console.log(JSON.stringify(this.ruleForm[name]))
},
handlePictureCardPreview (file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
}
}
}
</script>
<style lang="scss" scoped>
.certif-box{
margin: 0.3rem;
overflow: hidden;
position: relative;
.box-card{
.title{
font-size: 24px;
display: block;
text-align: center;
}
.form-box{
width: 600px;
margin: 0 auto;
}
}
}
</style>
\ No newline at end of file
<template>
<div>
<div class="con-title">办事大厅</div>
<Tap :tapParam='tapParam' @tapIndex='tapIndexs'></Tap>
<div class="con-box">
<el-button type="primary" v-show="tapIndex==0">申请新的活动</el-button>
<el-button type="primary" v-show="tapIndex==1">申请新乐分享</el-button>
<el-button type="primary" v-show="tapIndex==2">申请重修</el-button>
<!-- <el-button style="float:right;" type="text" @click='gobackReportList'>返回报告列表</el-button> -->
<div style="width: 100%; height: 0.2rem;"></div>
<m-page
:tableHead="tableHead"
:tableData="tableData"
:params="params"
:objFn="objFn"
:tableConfig="tableConfig"
/>
</div>
</div>
</template>
<script>
import Tap from '../../components/module/tap.vue'
import mPage from '../../components/module/mPage.vue'
import cAction from '@actions'
export default {
components: {
Tap,
mPage
},
data () {
return {
tapIndex: 0,
// tap切换
tapParam: [{
name: '分类',
isShow: false,
selectIndex: 0,
key: 'cc',
arrItem: [
{ val: '1', name: '学术活动' },
{ val: '2', name: '乐分享' },
{ val: '3', name: '重修' }
]
}],
// 学术活动
tableConfig: { border: '', size: '', selection: { has: false, sels: [], width: '50px', fix: 'left', align: '' } }, // 增加选择框,has设置为true
tableHead: [],
tableData: [],
params: { keywords: '', curPage: 1, pageSize: 100, total: '' },
objFn: {
paramsFn: (_this) => { return {} },
nameAPI: 'getReportActiveList',
actionClass: 'reportAction',
// nameExcel: 'getStatSummaryExcel',
nameExcel: 'getExportExcel3_4_14',
callback: (_this, data) => {
_this.params.total = 100
data.forEach((elem, i) => {
elem.approve_status = elem.approve_status === 1 ? '通过' : (elem.approve_status === 0 ? '未通过' : '未审核') // 0 未通过;1 通过;2 未审核
elem.index = i + 1 + (_this.params.curPage - 1) * _this.params.pageSize
elem.reportscount = Number(elem.reportscount || '0')
_this.tableData.push(elem)
})
}
}
// 音分享
}
},
mounted () {
this.getInfo(0)
this.getTapData()
},
methods: {
tapIndexs (index) {
this.tapIndex = index
this.getInfo(index)
},
getInfo (index) {
let n = parseInt(index)
switch (n) {
case 0:
this.tableHead = [
{ prop: 'index', label: '序号', minWidth: '80', fix: false },
{ prop: 'symposium_name', label: '活动名称', minWidth: '150', fix: false },
{ prop: 'symposium_time', label: '活动时间', minWidth: '120', fix: false },
{ prop: 'symposium_lecturer', label: '主讲人', minWidth: '120', fix: false },
{ prop: 'approve_status', label: '审核状态', minWidth: '80', fix: false },
{ prop: 'approve_time', label: '审核时间', minWidth: '120', fix: false },
// { prop: '', label: '', minWidth: '', fix: false, goObj: { routerName: '', params: {} } }, // 点击跳转页面并传参数
{ prop: 'operate-x', label: '操作', width: '200px', fix: false, commandArr: [ { command: 'activelist-show', name: '查看报告' }, { command: 'activereport-add', name: '上传报告' }, { command: 'activelist-edit', name: '编辑' }, { command: 'activelist-delete', name: '删除' } ] }
]
break
case 1:
this.tableHead = [
{ prop: 'index', label: '序号', minWidth: '80', fix: true },
{ prop: 'symposium_name', label: '分享主题', minWidth: '150', fix: false },
{ prop: 'symposium_time', label: '班级', minWidth: '80', fix: false },
{ prop: 'symposium_lecturer', label: '申请人', minWidth: '80', fix: false },
{ prop: 'approve_status', label: '电话', minWidth: '120', fix: false },
{ prop: 'approve_time', label: '审核状态', minWidth: '80', fix: false },
{ prop: 'approve_time', label: '审核时间', minWidth: '200', fix: false },
{ prop: 'operate-x', label: '备注', width: '120', fix: false }
]
break
case 2:
this.tableHead = [
{ prop: 'index', label: '序号', minWidth: '80', fix: false },
{ prop: 'symposium_name', label: '班级', minWidth: '150', fix: false },
{ prop: 'symposium_time', label: '课程', minWidth: '80', fix: false },
{ prop: 'symposium_lecturer', label: '审核状态', minWidth: '80', fix: false },
{ prop: 'approve_time', label: '审核时间', minWidth: '120', fix: false },
{ prop: 'operate-x', label: '备注', width: '120', fix: false }
]
break
}
},
getTapData () {
cAction.reportAction.getDataList().then(data => {
console.log('------------', data)
}).catch(e => {
this.$message.error(e.message)
})
}
}
}
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
......@@ -63,6 +63,16 @@ export default [
{ path: 'message', component: () => import('../pages/myGrade/message.vue') }
]
},
{
path: 'my-grade',
redirect: 'error/404',
component: container,
children: [
{ path: 'credit', component: () => import('../pages/myGrade/credit.vue') },
{ path: 'rebuild', component: () => import('../pages/myGrade/rebuild.vue') },
{ path: 'message', component: () => import('../pages/myGrade/message.vue') }
]
},
{
path: 'account',
redirect: 'error/404',
......@@ -73,6 +83,14 @@ export default [
{ path: 'feedbackList', component: () => import('../pages/account/feedbackList.vue') },
{ path: 'feedbackCreate', component: () => import('../pages/account/feedbackCreate.vue') }
]
},
{
path: 'service-hall',
redirect: 'error/404',
component: container,
children: [
{ path: 'hall', component: () => import('../pages/serviceHall/hall.vue') }
]
}
]
},
......
......@@ -41,8 +41,8 @@ const agentProcessor = () => {
headers['Host'] = 'sso.ezijing.com'
headers['host'] = 'sso.ezijing.com'
} else {
headers['Host'] = 'lms-api.ezijing.com'
headers['host'] = 'lms-api.ezijing.com'
headers['Host'] = 'lms-api2.ezijing.com'
headers['host'] = 'lms-api2.ezijing.com'
}
/* 测试 */
// if (/\/essay/gi.test(options.url) && /post/gi.test(req.method)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论