Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
425604a2
提交
425604a2
编写于
12月 26, 2019
作者:
chengxiang.li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CME项目学分发放页面及审核权限管理页面开发
上级
c373a262
变更
11
展开全部
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
933 行增加
和
108 行删除
+933
-108
router.js
src/router/router.js
+5
-1
cmeStore.js
src/store/cme/cmeStore.js
+18
-0
index.js
src/store/index.js
+4
-0
cmeApi.js
src/utils/cme/cmeApi.js
+110
-12
fetch.js
src/utils/fetch.js
+1
-1
apply-detail.vue
src/views/cme/apply-detail.vue
+399
-0
credit-manage.vue
src/views/cme/credit-manage.vue
+2
-3
credit-send-manage.vue
src/views/cme/credit-send-manage.vue
+96
-23
review-access-manage.vue
src/views/cme/review-access-manage.vue
+183
-41
slidebar.vue
src/views/layout/slidebar.vue
+67
-27
temp-show.vue
src/views/temp-show.vue
+48
-0
未找到文件。
src/router/router.js
浏览文件 @
425604a2
...
...
@@ -30,6 +30,7 @@ const editNotice = r => require.ensure([], () => r(require('../views/education/e
const
creditManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/cme/credit-manage.vue'
)),
'credit-manage'
)
const
reviewAccessManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/cme/review-access-manage.vue'
)),
'review-access-manage'
)
const
creditSendManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/cme/credit-send-manage.vue'
)),
'credit-send-manage'
)
const
applyDetail
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/cme/apply-detail.vue'
)),
'apply-detail'
)
export
default
[{
path
:
'/'
,
...
...
@@ -124,7 +125,10 @@ export default [{
path
:
'/credit-send-manage'
,
component
:
creditSendManage
,
},
{
path
:
'/apply-detail'
,
component
:
applyDetail
,
},
// {
// path: '/followup',
// name: 'followUp',
...
...
src/store/cme/cmeStore.js
0 → 100644
浏览文件 @
425604a2
const
cmeStore
=
{
namespaced
:
true
,
state
:
{
isOutsideUser
:
false
,
},
mutations
:
{
UPDATE_OUTSIDE_USER_STATUS
:
(
state
,
data
)
=>
{
state
.
isOutsideUser
=
data
;
}
},
actions
:
{
updateOutUserStatus
({
commit
},
data
)
{
commit
(
'UPDATE_OUTSIDE_USER_STATUS'
,
data
);
}
}
}
export
default
cmeStore
;
\ No newline at end of file
src/store/index.js
浏览文件 @
425604a2
...
...
@@ -7,6 +7,9 @@ import getters from './getters'
//居民诊断
import
patientsDiagnose
from
'./patientsManage/patientsDiagnose'
;
// cme
import
cmeStore
from
'./cme/cmeStore'
;
Vue
.
use
(
Vuex
)
...
...
@@ -15,6 +18,7 @@ export default new Vuex.Store({
common
,
...
followModules
,
patientsDiagnose
,
cmeStore
,
},
getters
})
...
...
src/utils/cme/cmeApi.js
浏览文件 @
425604a2
import
fetch
from
'../fetch'
;
import
{
getBaseUrl
,
getSaasDomain
,
getSaasApiDomain
}
from
'@/utils/index'
let
headers
=
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
token
:
localStorage
.
getItem
(
'storageToken'
),
};
// 是否是外部用户
export
const
getUserTypeReq
=
(
type
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/auth/external`
),
method
:
'get'
,
description
:
'获取是否是外部用户'
,
})
};
export
const
getSelectListReq
=
(
type
)
=>
{
return
fetch
({
...
...
@@ -42,10 +56,7 @@ export const getRelatedCreditReq = (params) => {
export
const
goUpReq
=
(
data
,
id
)
=>
{
return
fetch
({
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
token
:
localStorage
.
getItem
(
'storageToken'
),
},
headers
,
url
:
getBaseUrl
(
`cme/credit/deploy/
${
id
}
`
),
method
:
'post'
,
data
:
data
,
...
...
@@ -55,10 +66,7 @@ export const goUpReq = (data, id) => {
export
const
goDownReq
=
(
data
,
id
)
=>
{
return
fetch
({
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
token
:
localStorage
.
getItem
(
'storageToken'
),
},
headers
,
url
:
getBaseUrl
(
`cme/credit/revoke/
${
id
}
`
),
method
:
'post'
,
data
:
data
,
...
...
@@ -68,10 +76,7 @@ export const goDownReq = (data, id) => {
export
const
goAddNewReq
=
(
data
)
=>
{
return
fetch
({
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
token
:
localStorage
.
getItem
(
'storageToken'
),
},
headers
,
// url: 'http://10.177.15.4:13801/cme/credit/create',
url
:
getBaseUrl
(
`cme/credit/create`
),
method
:
'post'
,
...
...
@@ -80,3 +85,96 @@ export const goAddNewReq = (data) => {
})
}
// 审核权限管理页面
export
const
getAuthTableReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/auth/list`
),
method
:
'post'
,
data
:
data
,
description
:
'获取table列表'
,
})
}
export
const
getAccessListReq
=
(
params
)
=>
{
return
fetch
({
url
:
getBaseUrl
(
`cme/constants/list?code=approval_auth`
),
method
:
'get'
,
params
:
params
,
description
:
'获取权限下拉列表'
,
})
};
export
const
getUserListReq
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/auth/userList`
),
method
:
'get'
,
params
:
params
,
description
:
'获取待选用户列表'
,
})
};
export
const
handleSaveEditReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/auth/save`
),
method
:
'post'
,
data
:
data
,
description
:
'新增/编辑权限'
,
})
}
export
const
handleDeleteReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/auth/remove`
),
method
:
'post'
,
data
:
data
,
description
:
'删除'
,
})
}
// 学分发放管理页面
export
const
getSendListReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/credit/creditList`
),
method
:
'post'
,
data
:
data
,
description
:
'学分发放管理列表'
,
})
}
// 学分申请明细页面
export
const
getDetailListReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/credit/creditDetails`
),
method
:
'post'
,
data
:
data
,
description
:
'学分申请明细列表'
,
})
}
export
const
handleImportReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/credit/importExcel`
),
method
:
'post'
,
data
:
data
,
description
:
'导入'
,
})
}
export
const
handleExportReq
=
(
data
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`cme/admin/credit/exportExcel`
),
method
:
'post'
,
data
:
data
,
description
:
'导出'
,
})
}
\ No newline at end of file
src/utils/fetch.js
浏览文件 @
425604a2
...
...
@@ -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'
]
=
'A
686102457254CA986639F97DFB4F9F6
'
;
config
.
headers
[
'token'
]
=
'A
2F48933424E4AD38E750E77F59D0619
'
;
}
else
{
config
.
headers
[
'token'
]
=
localStorage
.
getItem
(
'storageToken'
)
}
...
...
src/views/cme/apply-detail.vue
0 → 100644
浏览文件 @
425604a2
此差异已折叠。
点击以展开。
src/views/cme/credit-manage.vue
浏览文件 @
425604a2
...
...
@@ -205,14 +205,13 @@
goToSearch
()
{
this
.
searchForm
.
pageNo
=
1
;
this
.
searchForm
.
pageSize
=
15
;
//
this.searchForm.pageSize = 15;
this
.
getCreditList
();
},
// 获取 学分table列表
getCreditList
()
{
let
req
=
{};
req
=
this
.
searchForm
;
let
req
=
this
.
searchForm
;
openLoading
(
this
);
getCreditListReq
(
req
).
then
(
res
=>
{
closeLoading
(
this
);
...
...
src/views/cme/credit-send-manage.vue
浏览文件 @
425604a2
...
...
@@ -7,25 +7,33 @@
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"100px"
class=
"search-form-wrap"
>
<div
style=
"width: 75%; float:left;"
>
<el-form-item
label=
"项目编号:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.
code
"
size=
"small"
class=
"form-width"
placeholder=
"请输入项目编号"
></el-input>
<el-input
v-model=
"searchForm.
serialNo
"
size=
"small"
class=
"form-width"
placeholder=
"请输入项目编号"
></el-input>
</el-form-item>
<el-form-item
label=
"项目名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.
n
ame"
size=
"small"
class=
"form-width"
placeholder=
"请输入项目名称"
></el-input>
<el-input
v-model=
"searchForm.
projectN
ame"
size=
"small"
class=
"form-width"
placeholder=
"请输入项目名称"
></el-input>
</el-form-item>
<el-form-item
label=
"项目时间:"
class=
"search-item"
>
<el-date-picker
v-model=
"searchForm.date"
type=
"daterange"
range-separator=
"—"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
v-model=
"searchForm.beginTime"
type=
"datetime"
size=
"small"
value-format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择开始日期"
>
</el-date-picker>
<span
style=
"color: #DCDFE6;"
>
—
</span>
<el-date-picker
v-model=
"searchForm.endTime"
type=
"datetime"
size=
"small"
value-format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择结束日期"
>
</el-date-picker>
</el-form-item>
</div>
<div
style=
"width: 25%; float: right;"
>
<el-form-item
class=
"btn-list"
>
<el-button
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
size=
"small"
>
重置
</el-button>
<el-button
@
click=
"goToSearch"
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
@
click=
"handleReset"
size=
"small"
>
重置
</el-button>
</el-form-item>
</div>
</el-form>
...
...
@@ -35,19 +43,30 @@
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
></el-table-column>
<el-table-column
align=
"center"
prop=
"code"
label=
"项目编号"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"serialNo"
label=
"项目编号"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"name"
label=
"项目名称"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"
start
Time"
label=
"项目开始时间"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"
begin
Time"
label=
"项目开始时间"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"endTime"
label=
"项目结束时间"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
prop=
"status"
label=
"项目状态"
show-overflow-tooltip
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
>
查看申请明细
</el-button>
<el-button
@
click=
"goToApplyDetail(scope.row)"
type=
"text"
size=
"small"
>
查看申请明细
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
class=
"pagination-style"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"totalRows"
:current-page=
"searchForm.pageNo"
:page-sizes=
"[15, 30, 50, 100]"
:page-size=
"searchForm.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
>
</el-pagination>
</div>
</div>
</div>
...
...
@@ -58,7 +77,7 @@
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
import
{
getSendListReq
,
}
from
'@/utils/cme/cmeApi'
...
...
@@ -70,16 +89,15 @@
totalRows
:
0
,
searchForm
:
{
code
:
''
,
name
:
''
,
date
:
[],
serialNo
:
''
,
projectName
:
''
,
beginTime
:
''
,
endTime
:
''
,
pageNo
:
1
,
pageSize
:
15
,
},
tableData
:
[
{
code
:
11
,
name
:
'撒地方的阿萨德李开复就j克拉的房客哦佛i额我joie就哦覅我'
,
startTime
:
'20191224'
,
endTime
:
'20201111'
,
status
:
'已结束'
},
],
tableData
:
[],
multipleSelection
:
[],
}
...
...
@@ -90,15 +108,70 @@
},
created
()
{
this
.
goToSearch
();
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
goToSearch
()
{
this
.
searchForm
.
pageNo
=
1
;
// this.searchForm.pageSize = 15;
this
.
getSendList
();
},
getSendList
()
{
let
req
=
this
.
searchForm
;
openLoading
(
this
);
getSendListReq
(
req
).
then
(
res
=>
{
closeLoading
(
this
);
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
'@@@@@@@'
,
res
)
if
(
res
.
data
&&
res
.
data
.
data
)
{
this
.
tableData
=
res
.
data
.
data
;
this
.
totalRows
=
res
.
data
.
totalRows
;
}
else
{
this
.
tableData
=
[];
}
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
handleReset
()
{
this
.
searchForm
.
serialNo
=
''
;
this
.
searchForm
.
projectName
=
''
;
this
.
searchForm
.
beginTime
=
''
;
this
.
searchForm
.
endTime
=
''
;
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
goToApplyDetail
(
row
)
{
console
.
log
(
'去申请明细页面 '
,
row
);
this
.
$router
.
push
({
path
:
'/apply-detail'
,
query
:
{
id
:
row
.
id
}
})
},
handleSizeChange
(
val
){
console
.
log
(
'handleSizeChange>>>'
)
this
.
searchForm
.
pageSize
=
val
;
this
.
getSendList
();
},
handleCurrentChange
(
val
){
// 切换当前页
this
.
searchForm
.
pageNo
=
val
;
this
.
getSendList
();
},
},
...
...
@@ -120,7 +193,7 @@
width
:
200px
;
}
.header-title
{
padding
:
10px
12px
;
padding
:
10px
12px
20px
;
font-size
:
14px
;
color
:
#606266
;
border-bottom
:
1px
solid
#efefef
;
...
...
src/views/cme/review-access-manage.vue
浏览文件 @
425604a2
此差异已折叠。
点击以展开。
src/views/layout/slidebar.vue
浏览文件 @
425604a2
<
template
>
<div
id=
"slidebar-container"
class=
"slidebar-container"
>
<el-menu
:default-active=
"onRoutes"
class=
"el-menu-vertical-demo"
theme=
"dark"
unique-opened
router
>
<template
v-if=
"isOutsideGetted && isOutsideUser"
>
<el-menu-item
v-for=
"(outItem, outIndex) in outsideItems"
:index=
"'/'+outItem.index"
:key=
"outItem.index"
>
<i
:class=
"outItem.icon"
></i>
{{
outItem
.
title
}}
</el-menu-item>
</
template
>
<
template
v-if=
"isOutsideGetted && !isOutsideUser"
>
<template
v-for=
"(item,_index) in items"
>
<template
v-if=
"item.subs"
>
<el-submenu
:index=
" 'index_' + _index"
:key=
"item.index"
>
...
...
@@ -32,6 +38,7 @@
</
template
>
</template>
</template>
</template>
</el-menu>
</div>
</template>
...
...
@@ -40,6 +47,8 @@
import
{
mapGetters
}
from
'vuex'
import
{
setTimeout
}
from
'timers'
import
{
isNotEmptyUtils
}
from
'../../utils/utils'
import
{
getUserTypeReq
}
from
'@/utils/cme/cmeApi'
let
vm
=
null
export
default
{
props
:
{
...
...
@@ -64,6 +73,8 @@
},
data
()
{
return
{
isOutsideUser
:
false
,
// 是否是外部用户;(外部用户:只展示一个页面路由; 非外部用户:正常展示之前的逻辑)
isOutsideGetted
:
false
,
items
:
[
{
title
:
'数据总览'
,
...
...
@@ -166,7 +177,14 @@
},
]
},
]
],
outsideItems
:
[
// 外部用户 路由
{
title
:
'学分发放管理'
,
icon
:
'el-icon-document'
,
index
:
'credit-send-manage'
},
],
}
},
computed
:
{
...
...
@@ -176,6 +194,7 @@
},
created
()
{
vm
=
this
;
this
.
getUserType
();
},
mounted
(){
if
(
vm
.
storageIdType
==
2
){
...
...
@@ -208,6 +227,27 @@
}
},
methods
:
{
getUserType
()
{
// console.log('当前路由地址:', this.$route.path, typeof this.$route.path)
// let currentPath = this.$route.path;
let
req
=
{};
console
.
log
(
'cmeStore: '
,
this
.
$store
.
state
.
cmeStore
.
isOutsideUser
)
getUserTypeReq
(
req
).
then
(
res
=>
{
this
.
isOutsideGetted
=
true
;
if
(
res
.
code
==
"219015"
)
{
// 外部用户,只展示一个页面
this
.
isOutsideUser
=
true
;
this
.
$store
.
dispatch
(
'cmeStore/updateOutUserStatus'
,
true
);
this
.
$router
.
replace
({
path
:
'/credit-send-manage'
});
}
else
{
// 非外部用户 正常展示多路由
this
.
isOutsideUser
=
false
;
this
.
$store
.
dispatch
(
'cmeStore/updateOutUserStatus'
,
false
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
setFollowSide
(){
const
followSider
=
{
title
:
'履约管理'
,
...
...
src/views/temp-show.vue
0 → 100644
浏览文件 @
425604a2
<
template
>
<div
id=
"screenSet"
class=
"blank-wrap screenSet"
>
<div
class=
"blank-content"
>
</div>
</div>
</
template
>
<
script
>
import
*
as
commonUtil
from
'../utils/utils'
export
default
{
data
()
{
return
{
}
},
// 挂载到Dom完成时
mounted
:
function
()
{
commonUtil
.
resizeHeight
(
100
)
}
}
</
script
>
<
style
lang=
"scss"
>
.blank-wrap
{
background
:
#fff
;
margin
:
20px
!
important
;
position
:
relative
;
text-align
:
center
;
.blank-content
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
width
:
400px
;
height
:
100px
;
margin-top
:
-50px
;
margin-left
:
-200px
;
p
{
margin-top
:
20px
;
font-size
:
20px
;
color
:
#999
;
}
img
{
width
:
100px
;
}
}
}
</
style
>
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录