Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
0e9fb75c
提交
0e9fb75c
编写于
12月 20, 2019
作者:
chengxiang.li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CME项目学分管理页面开发中
上级
81692899
变更
7
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
300 行增加
和
4 行删除
+300
-4
router.js
src/router/router.js
+6
-1
env-config.js
src/utils/env-config.js
+6
-0
fetch.js
src/utils/fetch.js
+1
-1
index.js
src/utils/index.js
+5
-0
mixins.js
src/utils/mixins.js
+11
-2
credit-manage.vue
src/views/cme/credit-manage.vue
+260
-0
slidebar.vue
src/views/layout/slidebar.vue
+11
-0
未找到文件。
src/router/router.js
浏览文件 @
0e9fb75c
...
...
@@ -27,6 +27,8 @@ const entryManager = r => require.ensure([], () => r(require('../views/education
const
editEntry
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/edit-entry.vue'
)),
'edit-entry'
)
const
editNotice
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/edit-notice.vue'
)),
'edit-notice'
)
const
creditManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/cme/credit-manage.vue'
)),
'credit-manage'
)
export
default
[{
path
:
'/'
,
component
:
App
,
...
...
@@ -108,7 +110,10 @@ export default [{
component
:
editNotice
,
// redirect: 'msgpush/msg-push',
},
{
path
:
'/credit-manage'
,
component
:
creditManage
,
},
// {
// path: '/followup',
...
...
src/utils/env-config.js
浏览文件 @
0e9fb75c
...
...
@@ -34,6 +34,7 @@ export const envConfig = {
// reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl
:
'https://uat-file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://dev-cms.yunqueyi.com/'
,
},
dev
:
{
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
...
...
@@ -51,6 +52,7 @@ export const envConfig = {
reportUrl
:
'https://dev-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://dev-cms.yunqueyi.com/'
,
},
test
:
{
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
...
...
@@ -68,6 +70,7 @@ export const envConfig = {
reportUrl
:
'https://test1-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://test1-cms.yunqueyi.com/'
,
},
test2
:
{
baseUrl
:
'https://test2-work.yunqueyi.com/sc/'
,
...
...
@@ -84,6 +87,7 @@ export const envConfig = {
reportUrl
:
'https://test2-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://test2-cms.yunqueyi.com/'
,
},
uat
:
{
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
...
...
@@ -101,6 +105,7 @@ export const envConfig = {
reportUrl
:
'https://uat-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://uat-cms.yunqueyi.com/'
,
},
pro
:
{
baseUrl
:
'https://sc.yunqueyi.com/'
,
...
...
@@ -118,5 +123,6 @@ export const envConfig = {
reportUrl
:
'https://sc-report.yunqueyi.com/'
,
excelUrl
:
'https://file.yunqueyi.com/File/template/portal/'
,
itemFileUrl
:
'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/'
,
cmsUrl
:
' http://cms.yunqueyi.com/'
,
}
}
src/utils/fetch.js
浏览文件 @
0e9fb75c
...
...
@@ -56,7 +56,7 @@ service.interceptors.request.use(config => {
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
// config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291';
config
.
headers
[
'token'
]
=
'
299F66567E7C48C78ADE418B364C5A35'
||
'F24CD42F1CFA46829639228E9CFE1E3D'
||
'2E46B77D801C479DBA1C550CE70D348F
'
;
config
.
headers
[
'token'
]
=
'
FDFBD0E7DC5748A08DA5E0C2CB8498A6
'
;
}
else
{
config
.
headers
[
'token'
]
=
localStorage
.
getItem
(
'storageToken'
)
}
...
...
src/utils/index.js
浏览文件 @
0e9fb75c
...
...
@@ -220,4 +220,9 @@ export function getExeclUrl(url) {
// 获取教培项目文件地址
export
function
getItemFileUrl
(
url
)
{
return
getConfigByEnvType
(
'itemFileUrl'
)
+
url
}
// 获取老的cms接口域名地址
export
function
getCmsUrl
(
url
)
{
return
getConfigByEnvType
(
'cmsUrl'
)
+
url
}
\ No newline at end of file
src/utils/mixins.js
浏览文件 @
0e9fb75c
import
fetch
from
'@/utils/fetch'
import
{
getBaseUrl
,
getReportUrl
,
getWorkApi
}
from
'@/utils/index'
import
{
getBaseUrl
,
getReportUrl
,
getWorkApi
,
getCmsUrl
}
from
'@/utils/index'
import
{
CryptoJS
}
from
'@/plugins/aes'
import
'jsencrypt'
...
...
@@ -252,7 +252,7 @@ module.exports = {
params
:
para
})
},
// 通用DELETE请求
DELETE
(
api
,
para
,
callback
,
str
)
{
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
...
...
@@ -289,6 +289,15 @@ module.exports = {
data
:
para
})
},
// 老的cms请求
cmsPOST
(
api
,
para
,
callback
)
{
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
return
fetch
({
url
:
getCmsUrl
(
api
),
method
:
'post'
,
data
:
para
})
},
// 通用saas-POST请求
saasPOST
(
api
,
para
,
cType
)
{
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
...
...
src/views/cme/credit-manage.vue
0 → 100644
浏览文件 @
0e9fb75c
<
template
>
<div
class=
"credit-manage-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"credit-list screenSet"
id=
"screenSet"
>
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"80px"
>
<el-form-item
label=
"学分名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.name"
size=
"small"
class=
"form-width"
></el-input>
</el-form-item>
<el-form-item
label=
"学分等级:"
class=
"search-item"
>
<el-select
v-model=
"searchForm.grade"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in creditGrade"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"状态:"
class=
"search-item"
>
<el-select
v-model=
"searchForm.status"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in creditStatus"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
class=
"btn-list"
>
<el-button
@
click=
"goToSearch"
size=
"small"
>
搜索
</el-button>
<el-button
@
click=
"showNewAddForm"
type=
"primary"
size=
"small"
>
新增学分
</el-button>
</el-form-item>
</el-form>
<el-table
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
type=
"index"
label=
"编号"
width=
"80"
></el-table-column>
<el-table-column
align=
"center"
prop=
"name"
label=
"学分名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"org"
label=
"主管机构"
></el-table-column>
<el-table-column
align=
"center"
prop=
"studyTypeText"
label=
"学习形式"
></el-table-column>
<el-table-column
align=
"center"
prop=
"gradeText"
label=
"学分等级"
></el-table-column>
<el-table-column
align=
"center"
prop=
"value"
label=
"项目学分分值"
></el-table-column>
<el-table-column
align=
"center"
prop=
"name"
label=
"最后修改者"
></el-table-column>
<el-table-column
align=
"center"
prop=
"modifiedTime"
label=
"最后修改日期"
></el-table-column>
<el-table-column
align=
"center"
prop=
"statusText"
label=
"状态"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
>
{{
returnHandleText
(
scope
.
row
)
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
<!-- 新增学分 弹窗 -->
<el-dialog
title=
"学分新增"
@
close=
"hideNewAddForm"
:visible
.
sync=
"centerDialogVisible"
:close-on-click-modal=
"false"
width=
"500px"
center
>
<el-form
ref=
"addForm"
:rules=
"rules"
:model=
"addForm"
label-width=
"120px"
>
<el-form-item
label=
"学分名称:"
class=
"search-item"
prop=
"name"
>
<el-input
v-model=
"addForm.name"
size=
"small"
class=
"form-width"
></el-input>
</el-form-item>
<el-form-item
label=
"主管机构:"
class=
"search-item"
prop=
"org"
>
<el-input
v-model=
"addForm.org"
size=
"small"
class=
"form-width"
></el-input>
</el-form-item>
<el-form-item
label=
"学习形式:"
class=
"search-item"
prop=
"studyType"
>
<el-radio-group
v-model=
"addForm.studyType"
>
<el-radio
:label=
"item.id"
v-for=
"(item, index) in studyType"
:key=
"index"
>
{{ item.text }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"学分等级:"
class=
"search-item"
prop=
"grade"
>
<el-select
v-model=
"addForm.grade"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in creditGrade"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"项目学分分值:"
class=
"search-item"
prop=
"value"
>
<el-input
v-model=
"addForm.value"
size=
"small"
class=
"form-width"
></el-input>
</el-form-item>
<el-form-item
label=
"关联学分证书:"
class=
"search-item"
prop=
"certificateId"
>
<el-input
v-model=
"addForm.certificateId"
size=
"small"
class=
"form-width"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"hideNewAddForm"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('addForm')"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"学分管理列表"
,
searchForm
:
{
name
:
''
,
grade
:
''
,
status
:
''
,
pageNo
:
1
,
pageSize
:
15
,
},
creditGrade
:
[],
// 学分等级
creditStatus
:
[],
// 状态
studyType
:
[],
// 学习形式
centerDialogVisible
:
false
,
tableData
:
[],
handleStatusText
:
{
// 1 已创建状态>显示上架; 2 上架状态>显示下架; 3 下架状态>显示上架
1
:
'上架'
,
2
:
'下架'
,
3
:
'上架'
,
},
addForm
:
{
name
:
''
,
org
:
''
,
studyType
:
''
,
grade
:
''
,
value
:
''
,
certificateId
:
''
,
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
org
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
studyType
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
grade
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
value
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
certificateId
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
}
}
},
components
:
{
BreadCrumb
},
created
()
{
this
.
getSelectList
(
'credit_grade'
);
// get 学分等级
this
.
getSelectList
(
'credit_status'
);
// get 状态
this
.
getSelectList
(
'study_type'
);
// get 学习形式
this
.
goToSearch
();
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
// 获取 学分等级/状态/学习形式 常亮接口
getSelectList
(
type
)
{
let
req
=
{};
// openLoading(this);
this
.
GET
(
`cme/constants/list?code=
${
type
}
`
,
req
).
then
(
res
=>
{
// closeLoading(this);
if
(
res
.
code
==
"000000"
)
{
if
(
type
==
'credit_grade'
)
{
this
.
creditGrade
=
res
.
data
;
}
else
if
(
type
==
'credit_status'
)
{
this
.
creditStatus
=
res
.
data
;
}
else
if
(
type
==
'study_type'
)
{
this
.
studyType
=
res
.
data
;
console
.
log
(
'学习形式: '
,
this
.
studyType
)
}
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
goToSearch
()
{
this
.
searchForm
.
pageNo
=
1
;
this
.
searchForm
.
pageSize
=
15
;
this
.
getCreditList
();
},
// 获取 学分table列表
getCreditList
()
{
let
req
=
{};
req
=
this
.
searchForm
;
openLoading
(
this
);
this
.
GET
(
`cme/credit/list`
,
req
).
then
(
res
=>
{
closeLoading
(
this
);
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
'@@@@@@@'
,
res
.
data
.
contentList
)
if
(
res
.
data
&&
res
.
data
.
contentList
)
{
this
.
tableData
=
res
.
data
.
contentList
;
}
else
{
this
.
tableData
=
[];
}
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
// 操作内的文案
returnHandleText
(
row
)
{
let
status
=
row
.
status
;
console
.
log
(
'>>>>**** status '
,
status
)
return
this
.
handleStatusText
[
status
]
||
''
;
},
// 获取 关联学分证书
getRelatedCredit
()
{
let
req
=
{
token
:
localStorage
.
getItem
(
'storageToken'
)
||
localStorage
.
getItem
(
'token'
),
};
this
.
cmsPOST
(
"api/PICACertificateModalManageServiceImpl/getCertificateEntryList.validate"
,
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
' 获取 关联学分证书: '
,
res
)
}
});
},
showNewAddForm
()
{
this
.
centerDialogVisible
=
true
;
this
.
getRelatedCredit
();
},
hideNewAddForm
()
{
this
.
centerDialogVisible
=
false
;
this
.
resetForm
(
'addForm'
);
},
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
},
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
alert
(
'submit!'
);
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
},
}
</
script
>
<
style
lang=
"scss"
>
.credit-manage-wrap
{
.credit-list
{
padding
:
10px
;
background
:
#fff
;
.search-item
{
float
:
left
;
}
.form-width
{
width
:
200px
;
}
.btn-list
{
float
:
right
;
margin-right
:
80px
;
}
}
}
</
style
>
\ No newline at end of file
src/views/layout/slidebar.vue
浏览文件 @
0e9fb75c
...
...
@@ -144,6 +144,17 @@
index
:
'export-download'
}
]
},{
title
:
'CME'
,
icon
:
'el-icon-tickets'
,
index
:
'credit-manage'
,
subs
:
[
{
title
:
'学分管理列表'
,
icon
:
'el-icon-document'
,
index
:
'credit-manage'
}
]
},
]
}
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录