Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
c3aa03a8
提交
c3aa03a8
编写于
6月 23, 2020
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
审核页面图片及视频内容字段审核
上级
f6639455
变更
6
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
967 行增加
和
1586 行删除
+967
-1586
audit-custom-course copy.vue
src/views/education/audit-custom-course copy.vue
+952
-0
audit-custom-course.vue
src/views/education/audit-custom-course.vue
+15
-13
external-resource-manage copy 2.vue
src/views/education/external-resource-manage copy 2.vue
+0
-476
external-resource-manage copy 3.vue
src/views/education/external-resource-manage copy 3.vue
+0
-399
external-resource-manage copy 4.vue
src/views/education/external-resource-manage copy 4.vue
+0
-296
external-resource-manage copy.vue
src/views/education/external-resource-manage copy.vue
+0
-402
未找到文件。
src/views/education/audit-custom-course copy.vue
0 → 100644
浏览文件 @
c3aa03a8
<
template
>
<div
class=
"review-access-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"edit-course-wrapper review-access screenSet"
id=
"screenSet"
>
<div
class=
"course-content"
>
<el-form
ref=
"formDataRef"
:model=
"formData"
:rules=
"rules"
label-width=
"120px"
class=
"basic-form"
>
<el-form-item
label=
"课程名称:"
prop=
"courseName"
class=
"valid-msg"
>
<el-col
:span=
"20"
>
<el-input
size=
"small"
v-model=
"formData.courseName"
placeholder=
"请输入课程名称"
style=
"width: 360px"
maxlength=
"25"
:disabled=
"disabled"
></el-input>
<span
class=
"word-num"
>
{{
(
formData
.
courseName
||
''
).
replace
(
/
\s
+/g
,
""
).
length
}}
/25
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData, 'courseNameCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseNameCheck && formData.checkStatus != 2"
class=
"error"
>
<span>
{{
formData
.
courseNameCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData, 'courseNameCheck')"
>
X
</span>
</div>
</el-col>
</el-form-item>
<el-form-item
label=
"学科分类:"
prop=
"subjectIdList"
class=
"valid-msg"
>
<el-col
:span=
"18"
>
<el-cascader
style=
"width: 360px"
v-model=
"formData.subjectIdList"
:options=
"labelOptions"
:props=
"
{ value: 'id', label: 'name', children: 'subList'}"
:disabled="disabled"
>
</el-cascader>
</el-col>
</el-form-item>
<el-form-item
label=
"开放范围:"
prop=
"shareType"
class=
"valid-msg"
>
<el-radio-group
v-model=
"formData.shareType"
>
<el-radio
:label=
"1"
>
机构共享
</el-radio>
</el-radio-group>
</el-form-item>
<div
class=
"basic-item-icon"
style=
"margin-top: 0; padding-top: 0;"
>
<ul
v-show=
"formData.courseCustomChapterModels[0].courseCustomLectureModelList.length"
class=
"custom-list"
>
<li
v-for=
"(lecture, index) in formData.courseCustomChapterModels[0].courseCustomLectureModelList"
:key=
"index"
class=
"valid-msg"
>
<ul
class=
"video"
>
<li
class=
"video-wapper"
>
<span
class=
"title"
>
视频
{{
index
+
1
}}
</span>
<img
src=
"../../assets/image/phrase3/icon-pin.png"
/>
<span
class=
"name"
@
click=
"previewVideoAction(lecture)"
>
{{
lecture
.
resourceModel
&&
lecture
.
resourceModel
.
name
}}
</span>
</li>
</ul>
<div
class=
"video-name"
>
<span
class=
"title"
>
<span
style=
"color: red;"
>
*
</span>
<span
class=
"video-title"
>
视频名称
</span>
</span>
<el-input
size=
"small"
v-model=
"lecture.name"
placeholder=
"请输入课程名称"
style=
"width: 380px"
maxlength=
"25"
:disabled=
"disabled"
></el-input>
<span
class=
"word-num"
>
{{
(
lecture
.
name
||
''
).
replace
(
/
\s
+/g
,
""
).
length
}}
/25
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData.courseCustomChapterModels[0].courseCustomLectureModelList[index], 'nameCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseCustomChapterModels[0].courseCustomLectureModelList[index].nameCheck && formData.checkStatus != 2"
class=
"error-video"
>
<span>
{{
formData
.
courseCustomChapterModels
[
0
].
courseCustomLectureModelList
[
index
].
nameCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData.courseCustomChapterModels[0].courseCustomLectureModelList[index], 'nameCheck')"
>
X
</span>
</div>
</div>
</li>
<span
v-show=
"needShowUploadProcess"
class=
"upload-process"
:style=
"
{'width': (uploadProgress/100 * 340) + 'px'}">
</span>
</ul>
</div>
<div
class=
"other-content valid-msg"
>
<div
class=
"tips"
>
注:以下信息为非必填项,您也可以根据实际情况修改
</div>
<div
class=
"basic-item-icon"
>
<!--
<span
class=
"require"
>
*
</span>
-->
<el-form-item
label=
"课程封面:"
>
<el-upload
v-model=
"formData.courseIntroImage"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:disabled=
"disabled"
>
<div
class=
"bg-img-wrapper"
>
<img
v-if=
"formData.courseIntroImage"
@
mouseover
.
stop=
"imgMouseOver=true"
:src=
"formData.courseIntroImage"
class=
"bg-img"
/>
<img
v-if=
"!formData.courseIntroImage"
class=
"bg-img"
src=
"../../assets/image/small.png"
/>
</div>
</el-upload>
<div
class=
"limit-text"
>
尺寸:750*420,只支持jpeg格式
</div>
<span
class=
"word-num"
>
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData, 'courseIntroImageCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseIntroImageCheck"
class=
"error"
:class=
"
{'top-124': formData.checkStatus == 0}" style="position:absolute;top:103px;">
<span>
{{
formData
.
courseIntroImageCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData, 'courseIntroImageCheck')"
>
X
</span>
</div>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage"
>
请选择列表图片
</p>
</div>
<el-form-item
label=
"课程难度:"
>
<el-radio-group
v-model=
"formData.difficultyLevel"
:disabled=
"disabled"
>
<el-radio
:label=
"1"
>
初级
</el-radio>
<el-radio
:label=
"2"
>
中级
</el-radio>
<el-radio
:label=
"3"
>
高级
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"讲师名称:"
class=
"valid-msg"
>
<el-col
:span=
"18"
>
<el-input
size=
"small"
v-model=
"formData.courseCustomDoctorModels[0].courseDoctorName"
placeholder=
"请输入讲师名称"
style=
"width: 360px"
maxlength=
"25"
@
focus=
"isShowDoctorList=true"
@
input=
"filterDoctorName"
@
blur=
"doctorNameInputBlur"
:disabled=
"disabled"
></el-input>
<ul
v-show=
"isShowDoctorList"
class=
"doctor-select-list"
>
<li
v-for=
"(item, index) in doctorNameList"
:key=
"index"
@
click=
"selectDoctor(item.courseDoctorName, index)"
:class=
"
{'doctor-selected': item.seleted}"
>
<span
v-show=
"item.show"
>
{{
item
.
courseDoctorName
||
'测试名'
}}
</span>
</li>
</ul>
<span
class=
"word-num"
>
{{
(
formData
.
courseCustomDoctorModels
[
0
]
&&
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorName
||
''
).
replace
(
/
\s
+/g
,
""
).
length
}}
/25
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData.courseCustomDoctorModels[0], 'courseDoctorNameCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseCustomDoctorModels[0].courseDoctorNameCheck && formData.checkStatus != 2"
class=
"error"
>
<span>
{{
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorNameCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData.courseCustomDoctorModels[0], 'courseDoctorNameCheck')"
>
X
</span>
</div>
</el-col>
</el-form-item>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"讲师头像:"
class=
"valid-msg"
>
<el-upload
v-model=
"formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:disabled=
"disabled"
>
<div
class=
"bg-img-wrapper"
>
<img
v-if=
"formData.courseCustomDoctorModels && formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl || ''"
@
mouseover
.
stop=
"imgMouseOver=true"
:src=
"formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl"
class=
"bg-img-doctor"
/>
<img
v-if=
"!(formData.courseCustomDoctorModels && formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl || '')"
class=
"bg-img-doctor"
src=
"../../assets/image/small.png"
/>
</div>
</el-upload>
<div
class=
"limit-text"
>
尺寸:88*88,只支持jpeg格式
</div>
<span
class=
"word-num"
>
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData.courseCustomDoctorModels[0], 'courseDoctorAvatarUrlCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseCustomDoctorModels[0].courseDoctorAvatarUrlCheck"
class=
"error"
:class=
"
{'top-124': formData.checkStatus == 0}" style="position:absolute;top: 102px;">
<span>
{{
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorAvatarUrlCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData.courseCustomDoctorModels[0], 'courseDoctorAvatarUrlCheck')"
>
X
</span>
</div>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage"
>
请选择列表图片
</p>
</div>
<el-form-item
label=
"所属机构:"
class=
"valid-msg"
>
<el-col
:span=
"18"
>
<el-input
size=
"small"
v-model=
"formData.courseCustomDoctorModels[0].courseDoctorHospital"
placeholder=
"请输入所属机构"
style=
"width: 360px"
maxlength=
"25"
:disabled=
"disabled"
></el-input>
<span
class=
"word-num"
>
{{
(
formData
.
courseCustomDoctorModels
&&
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorHospital
||
''
).
replace
(
/
\s
+/g
,
""
).
length
}}
/25
<!--
<span
class=
"edit-wrapper"
>
-->
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData.courseCustomDoctorModels[0], 'courseDoctorHospitalCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseCustomDoctorModels[0].courseDoctorHospitalCheck && formData.checkStatus != 2"
class=
"error"
>
<span>
{{
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorHospitalCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData.courseCustomDoctorModels[0], 'courseDoctorHospitalCheck')"
>
X
</span>
</div>
</el-col>
</el-form-item>
<el-form-item
label=
"课程简介:"
class=
"valid-msg"
>
<el-col
:span=
"14"
>
<el-input
style=
"width:420px"
size=
"small"
type=
"textarea"
maxlength=
"200"
:autosize=
"
{ minRows: 5}"
placeholder="请输入课程简介"
v-model="formData.courseIntro"
:disabled="disabled"
/>
<span
class=
"word-num"
>
{{
(
formData
.
courseIntro
||
''
).
replace
(
/
\s
+/g
,
""
).
length
}}
/200
<span
v-show=
"formData.checkStatus == 0"
class=
"edit-wrapper"
@
click=
"auditField(formData, 'courseIntroCheck')"
>
<img
class=
"edit-img"
src=
"../../assets/image/phrase3/icon-pz.png"
/>
拒绝原因
</span>
</span>
<div
v-show=
"needShowAuditMsg && formData.courseIntroCheck && formData.checkStatus != 2"
class=
"error-area"
>
<span>
{{
formData
.
courseIntroCheck
}}
</span>
<span
v-show=
"formData.checkStatus == 0"
class=
"cancle"
@
click=
"cancleAudit(formData, 'courseIntroCheck')"
>
X
</span>
</div>
</el-col>
</el-form-item>
</div>
</el-form>
</div>
<footer
style=
"padding: 30px;padding-bottom: 50px;"
>
<el-button
style=
"margin-left: 20px"
@
click=
"backToListPage"
>
返回列表
</el-button>
<el-button
v-if=
"formData.checkStatus == 0"
style=
"margin-left: 100px"
type=
"primary"
@
click=
"passOrRefuse(2)"
>
通 过
</el-button>
<el-button
v-if=
"formData.checkStatus == 0"
type=
"primary"
@
click=
"passOrRefuse(1)"
>
拒 绝
</el-button>
</footer>
</div>
<DialogComponet
:dialogObj=
"dialogObj"
@
hide=
"passOrRefuseAction"
@
confirm=
"dialogObj.visible=false"
></DialogComponet>
<PreviewVideo
:dialogVisible=
"isPreviewVideo"
:videoUrl=
"videoUrl"
@
close=
"isPreviewVideo=false"
></PreviewVideo>
<RejectReasonDialog
:refuseReasonList=
"refuseReasonList"
:dialogVisible=
"auditVisible"
@
close=
"auditVisible=false"
@
checkInfo=
"checkInfo"
></RejectReasonDialog>
</div>
</
template
>
<
script
>
import
PreviewVideo
from
"@/components/education/custom-resource/preview-video"
;
import
PreviewProtocol
from
"@/components/education/custom-resource/preview-protocol"
;
import
DialogComponet
from
"@/components/education/template/dialog"
;
import
RejectReasonDialog
from
"@/components/education/custom-resource/reject-reason-dialog"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
let
vm
=
null
;
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"外部资源管理"
,
auditVisible
:
false
,
needCheckField
:
false
,
needShowAuditMsg
:
false
,
needShowUploadProcess
:
false
,
disabled
:
true
,
formData
:
{
checkStatus
:
0
,
courseCustomChapterModels
:
[
{
courseCustomLectureModelList
:
[],
id
:
null
,
name
:
"视频课程"
}
],
courseCustomDoctorModels
:
[
{
courseDoctorAvatarUrl
:
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorName
:
""
,
courseDoctorNameCheck
:
""
,
id
:
null
}
],
courseId
:
null
,
courseIntro
:
""
,
courseIntroCheck
:
""
,
courseIntroImage
:
"https://test1-file.yunqueyi.com/image/png/common/202006201528136.png"
,
courseIntroImageCheck
:
""
,
courseName
:
""
,
courseNameCheck
:
""
,
deleteCustomLectureIds
:
[],
difficultyLevel
:
1
,
shareType
:
1
,
subjectIdList
:
[]
},
uploadImgMessage
:
false
,
imgMouseOver
:
false
,
rules
:
{
courseName
:
[
{
required
:
true
,
message
:
" "
},
],
subjectIdList
:
[
{
required
:
true
,
message
:
"请输入课程名称"
}
],
shareType
:
[
{
required
:
true
,
message
:
"请选择开放范围"
}
]
},
labelOptions
:
[],
fileList
:
[
],
projectBanner
:
"https://file.yunqueyi.com/h5/images/cme/project-banner.png"
,
doctorHeader
:
"https://file.yunqueyi.com/h5/images/cme/doctor-header.png"
,
doctorNameList
:
[
{
courseDoctorName
:
"333"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"334"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"335"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"336"
,
show
:
true
,
seleted
:
false
}
],
isShowDoctorList
:
false
,
isPreviewVideo
:
false
,
videoUrl
:
""
,
orgCourseInfo
:
{
defaultDoctor
:
{
courseDoctorAvatarUrl
:
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorName
:
""
,
courseDoctorNameCheck
:
""
,
id
:
null
},
doctorModelList
:
[
{
courseDoctorAvatarUrl
:
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorName
:
""
,
courseDoctorNameCheck
:
""
,
id
:
null
}
],
limitModel
:
{
maxLimitOneVideoSize
:
0
,
maxLimitVideoCount
:
0
,
maxStorageSpace
:
0
,
usedStorageSpace
:
0
}
},
uploadProgress
:
0
,
dialogObj
:
{
visible
:
false
,
title
:
"确定取消吗?"
,
message
:
"确定课程已完成检测并通过审核?"
,
tip
:
""
,
// confirmMsg: "取 消",
// hideMsg: "确 定"
},
statusObj
:
{
pass
:
{
title
:
"确认通过"
,
message
:
"确定课程已完成检测并通过审核?"
,
// message: "确定“云小鹊”提交的「高血压治疗规范」课程已完成检测并通过审核?",
tip
:
""
,
confirmMsg
:
"取 消"
,
hideMsg
:
"确 定"
},
refuse
:
{
title
:
""
,
message
:
"您已添加过「拒绝原因」,不能通过该课程"
,
// message: "确定“云小鹊”提交的「高血压治疗规范」课程已完成检测并通过审核?",
tip
:
""
,
confirmMsg
:
"我知道了"
,
hideMsg
:
""
},
refuseReasen
:
{
title
:
""
,
message
:
"请填写拒绝原因"
,
// message: "确定“云小鹊”提交的「高血压治疗规范」课程已完成检测并通过审核?",
tip
:
""
,
confirmMsg
:
"取 消"
,
hideMsg
:
"确 定"
},
confirmRefuse
:
{
title
:
"确认拒绝"
,
message
:
"确定“云小鹊”提交的「高血压治疗规范」课程审核为拒绝"
,
// message: "确定“云小鹊”提交的「高血压治疗规范」课程已完成检测并通过审核?",
tip
:
""
,
confirmMsg
:
"取 消"
,
hideMsg
:
"确 定"
},
},
courseId
:
0
,
currentModifiedOrg
:
{},
currentFieldName
:
''
,
refuseReasonList
:
[],
createdDoctorName
:
''
};
},
computed
:
{},
components
:
{
BreadCrumb
,
PreviewVideo
,
DialogComponet
,
RejectReasonDialog
},
created
()
{
vm
=
this
;
this
.
courseId
=
this
.
$route
&&
this
.
$route
.
query
&&
this
.
$route
.
query
.
courseId
||
0
;
this
.
createdDoctorName
=
this
.
$route
&&
this
.
$route
.
query
&&
this
.
$route
.
query
.
createdDoctorName
||
''
;
vm
.
initModify
();
},
mounted
()
{
this
.
getLabelList
();
this
.
getRefuseList
();
commonUtil
.
resizeHeight
();
},
methods
:
{
// 返回到列表页面
backToListPage
()
{
this
.
$router
.
back
(
-
1
)
},
// 创建课程页面的初始信息
initOrgCourseInfo
()
{
vm
.
GET
(
"contents/course/custom/info/init"
,
{
setEntry
:
true
}).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
orgCourseInfo
=
res
.
data
;
this
.
formData
.
courseCustomDoctorModels
[
0
]
=
this
.
orgCourseInfo
.
defaultDoctor
;
this
.
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorAvatarUrl
=
this
.
orgCourseInfo
.
defaultDoctor
.
courseDoctorAvatarUrl
||
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
;
this
.
doctorNameList
=
this
.
convertDNameToSelectOpt
(
this
.
orgCourseInfo
.
doctorModelList
);
+
this
.
courseId
&&
this
.
getCourseInfoById
(
this
.
courseId
);
}
}
);
},
// 将医生名称进行处理
convertDNameToSelectOpt
(
doctorModelList
)
{
doctorModelList
.
forEach
(
item
=>
{
item
.
show
=
true
;
item
.
seleted
=
false
;
});
return
doctorModelList
;
},
// 初始化课程信息
initModify
()
{
this
.
needShowAuditMsg
=
true
;
this
.
initOrgCourseInfo
();
},
// 创建课程页面的初始信息
getCourseInfoById
(
courseId
)
{
vm
.
GET
(
`contents/course/custom/info/
${
courseId
}
`
)
.
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
formData
=
res
.
data
;
}
}
);
},
// 过滤医生信息
filterDoctorName
(
value
)
{
this
.
doctorNameList
.
forEach
(
item
=>
{
if
(
value
)
{
if
((
item
.
value
+
""
).
indexOf
(
value
)
==
-
1
)
{
item
.
show
=
false
;
}
else
{
item
.
show
=
true
;
}
if
(
item
.
value
==
value
)
{
item
.
seleted
=
true
;
}
else
{
item
.
seleted
=
false
;
}
}
else
{
item
.
show
=
true
;
}
});
},
// 当选择医生的焦点失去时,要反选医生信息
doctorNameInputBlur
()
{
setTimeout
(()
=>
{
this
.
isShowDoctorList
=
false
;
this
.
selectDoctorByName
(
this
.
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorName
);
},
200
);
},
// 根据姓名反选医生信息
// TODO 尝试找到完全匹配的医生
selectDoctorByName
(
name
)
{
},
// 选择其中一个
selectDoctor
(
name
)
{
console
.
log
(
name
);
this
.
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorName
=
name
;
this
.
selectDoctorByName
(
name
);
},
// 获取学科列表
getLabelList
()
{
let
req
=
{};
this
.
GET
(
"aggregate/content/labelList"
,
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
convertLabelList
(
res
.
data
);
}
});
},
// 将所有子分类中的“全部”去掉
convertLabelList
(
labelList
)
{
let
newLabelList
=
[];
labelList
.
forEach
(
item
=>
{
item
.
subList
=
item
.
subList
.
slice
(
1
);
});
this
.
labelOptions
=
labelList
;
},
// 查找是否有拒绝原因
hasAuditMsg
(
cData
)
{
let
flag
=
false
;
if
(
cData
.
courseNameCheck
||
cData
.
courseIntroCheck
||
cData
.
courseIntroImageCheck
||
cData
.
courseCustomDoctorModels
[
0
].
courseDoctorNameCheck
||
cData
.
courseCustomDoctorModels
[
0
].
courseDoctorAvatarUrlCheck
||
cData
.
courseCustomDoctorModels
[
0
].
courseDoctorHospitalCheck
)
{
flag
=
true
;
}
if
(
!
flag
)
{
let
lectureList
=
cData
.
courseCustomChapterModels
[
0
].
courseCustomLectureModelList
;
for
(
let
i
=
0
;
i
<
lectureList
.
length
;
i
++
)
{
if
(
lectureList
[
i
].
nameCheck
)
{
flag
=
true
;
break
;
}
}
}
return
flag
;
},
// 添加或修改课程(kind = 3)
passOrRefuse
(
checkStatus
)
{
// checkStatus 1:拒绝的话,要有理由;2:通过的话,没有拒绝理由
// TODO 判断
this
.
currentCheckStatus
=
checkStatus
;
let
flag
=
this
.
hasAuditMsg
(
this
.
formData
);
console
.
log
(
'passOrRefuse'
,
flag
);
// 点击拒绝按钮
if
(
checkStatus
==
1
)
{
if
(
flag
)
{
// 有拒绝原因
vm
.
statusObj
.
confirmRefuse
.
message
=
`确定“
${
this
.
createdDoctorName
}
”提交的「
${
this
.
formData
.
courseName
}
」课程审核为拒绝`
,
vm
.
dialogObj
=
Object
.
assign
(
vm
.
dialogObj
,
vm
.
statusObj
.
confirmRefuse
);
}
else
{
vm
.
dialogObj
=
Object
.
assign
(
vm
.
dialogObj
,
vm
.
statusObj
.
refuseReasen
);
}
// 点击通过按钮
}
else
{
if
(
flag
)
{
// 有拒绝原因
vm
.
dialogObj
=
Object
.
assign
(
vm
.
dialogObj
,
vm
.
statusObj
.
refuse
);
}
else
{
vm
.
dialogObj
=
Object
.
assign
(
vm
.
dialogObj
,
vm
.
statusObj
.
pass
);
}
}
vm
.
dialogObj
.
visible
=
true
;
},
passOrRefuseAction
(){
this
.
formData
.
checkStatus
=
this
.
currentCheckStatus
;
this
.
POST
(
"contents/course/custom/check/v1/check"
,
this
.
formData
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
backToListPage
();
}
this
.
dialogObj
.
visible
=
false
;
});
},
// 关闭(“取消”按钮弹出来的)弹框
hideCancleTips
()
{
this
.
dialogObj
.
visible
=
false
;
},
// 预览视频
previewVideoAction
(
lecture
)
{
this
.
videoUrl
=
lecture
.
resourceModel
.
filePath
;
this
.
isPreviewVideo
=
true
;
},
// 对特定字段进行修改
auditField
(
modifiedOrg
,
fieldName
)
{
this
.
currentModifiedOrg
=
modifiedOrg
;
this
.
currentFieldName
=
fieldName
;
this
.
auditVisible
=
true
;
},
// 对特定字段进行重置
cancleAudit
(
modifiedOrg
,
fieldName
)
{
modifiedOrg
[
fieldName
]
=
''
;
},
// 获取到审核结果
checkInfo
(
info
)
{
this
.
currentModifiedOrg
[
this
.
currentFieldName
]
=
info
;
console
.
log
(
info
);
},
// 获取默认的拒绝原因列表
getRefuseList
()
{
this
.
GET
(
"contents/course/custom/check/v1/refuse/list"
,
{}).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
refuseReasonList
=
res
.
data
||
[];
}
});
},
}
};
</
script
>
<
style
scoped
lang=
"scss"
>
.edit-course-wrapper
{
.course-content
{
// color: red;
padding-top
:
30px
;
.basic-item-icon
{
position
:
relative
;
margin-top
:
20px
;
.require
{
position
:
absolute
;
left
:
40px
;
top
:
11px
;
color
:
#f56c6c
;
}
.upload-message
{
position
:
absolute
;
left
:
160px
;
top
:
105px
;
font-size
:
12px
;
color
:
#f56c6c
;
}
.img-delete
{
position
:
absolute
;
left
:
0px
;
top
:
0px
;
width
:
84px
;
height
:
100px
;
background
:
#000
;
opacity
:
0
.7
;
z-index
:
999
;
i
{
color
:
#fff
;
margin-top
:
39px
;
margin-left
:
0px
;
}
}
.upload-tips
{
width
:
100%
;
position
:
relative
;
top
:
-10px
;
font-size
:
12px
;
color
:
#979899
;
// display: inline-block;
}
.custom-list
{
// width: 100%;
width
:
800px
;
display
:
flex
;
flex-direction
:
column
;
// border-radius: 3px;
// border: 1px solid rgba(228,231,237,1);
padding
:
20px
;
padding-top
:
0px
;
font-size
:
12px
;
color
:
#606266
;
&
>
li
{
margin
:
10px
0
;
}
.video
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
align-items
:
center
;
.video-wapper
{
height
:
28px
;
line-height
:
28px
;
.title
{
display
:
inline-block
;
width
:
70px
;
text-align
:
right
;
margin-right
:
10px
;
}
.name
{
cursor
:
pointer
;
color
:
#5890DD
;
}
img
{
width
:
12px
;
height
:
12px
;
}
}
// .delete {
// position: relative;
// top: 4px;
// cursor: pointer;
// width: 16px;
// height: 16px;
// }
}
.video-name
{
.title
{
display
:
inline-block
;
width
:
70px
;
text-align
:
right
;
margin-right
:
10px
;
}
}
}
}
.word-num
{
font-size
:
12px
;
color
:
#999
;
padding-top
:
5px
;
}
.bg-uploader
{
img
{
float
:
left
;
}
.bg-img-wrapper
{
.bg-img
{
display
:
block
;
width
:
160px
;
height
:
90px
;
}
.bg-img-doctor
{
display
:
block
;
width
:
88px
;
height
:
88px
;
}
}
.bg-video
{
float
:
left
;
width
:
84px
;
height
:
100px
;
}
}
.limit-text
{
position
:
absolute
;
top
:
86px
;
left
:
0px
;
font-size
:
12px
;
color
:
#979899
;
}
.separator-line
{
width
:
100%
;
display
:
flex
;
flex-direction
:
row
;
align-content
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
.center
{
cursor
:
pointer
;
width
:
130px
;
color
:
#666666
;
img
{
width
:
12px
;
}
}
.line-left
,
.line-right
{
// display: inline-block;
// width: 100%;
flex
:
1
;
border-bottom
:
1px
dashed
#e4e7ed
;
}
}
.tips
{
width
:
500px
;
height
:
32px
;
line-height
:
32px
;
margin-left
:
38px
;
padding-left
:
12px
;
background
:
rgba
(
254
,
250
,
245
,
1
);
border-radius
:
3px
;
color
:
#e6a23c
;
}
.valid-msg
{
position
:
relative
;
.error
{
width
:
370px
;
position
:
absolute
;
display
:
flex
;
justify-content
:
space-between
;
top
:
29px
;
font-size
:
13px
;
color
:
#ed3131
;
.text
{
flex
:
1
;
}
.cancle
{
width
:
20px
;
margin-left
:
20px
;
cursor
:
pointer
;
}
}
.error-area
{
position
:
absolute
;
bottom
:
-32px
;
font-size
:
13px
;
color
:
#ed3131
;
.cancle
{
width
:
20px
;
margin-left
:
20px
;
cursor
:
pointer
;
}
}
.error-video
{
position
:
absolute
;
top
:
64px
;
left
:
82px
;
font-size
:
13px
;
color
:
#ed3131
;
.cancle
{
width
:
20px
;
margin-left
:
20px
;
cursor
:
pointer
;
}
}
.edit-wrapper
{
cursor
:
pointer
;
color
:
#449284
;
.edit-img
{
position
:
relative
;
top
:
2px
;
width
:
12px
;
margin
:
0
2px
0
4px
;
}
}
.doctor-select-list
{
width
:
200px
;
// max-height: 100px;
position
:
absolute
;
z-index
:
100
;
background
:
#fff
;
box-shadow
:
0
0
6px
rgba
(
0
,
0
,
0
,
0
.3
);
-webkit-box-shadow
:
0
0
6px
rgba
(
0
,
0
,
0
,
0
.3
);
// margin: 10px;
li
{
padding-left
:
20px
;
cursor
:
pointer
;
&
:hover
{
background
:
#f4f7fd
;
}
&
.doctor-selected
{
background
:
#f4f7fd
;
}
}
}
}
.upload-process
{
margin
:
10px
0
10px
10px
;
display
:
block
;
// width: 310px;
height
:
4px
;
background
:
#449284
;
border-radius
:
2px
;
}
}
}
</
style
>
<
style
scoped
lang=
"scss"
>
.review-access-wrap
{
.review-access
{
padding
:
10px
;
background
:
#fff
;
}
.top-124
{
top
:
124px
!
important
;
}
}
</
style
>
\ No newline at end of file
src/views/education/audit-custom-course.vue
浏览文件 @
c3aa03a8
...
@@ -115,7 +115,7 @@
...
@@ -115,7 +115,7 @@
<img
<img
v-if=
"formData.courseIntroImage"
v-if=
"formData.courseIntroImage"
@
mouseover
.
stop=
"imgMouseOver=true"
@
mouseover
.
stop=
"imgMouseOver=true"
:src=
"
formData.courseIntroImage
"
:src=
"
getOSSDomain(formData.courseIntroImage)
"
class=
"bg-img"
class=
"bg-img"
/>
/>
<img
<img
...
@@ -195,7 +195,7 @@
...
@@ -195,7 +195,7 @@
<img
<img
v-if=
"formData.courseCustomDoctorModels && formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl || ''"
v-if=
"formData.courseCustomDoctorModels && formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl || ''"
@
mouseover
.
stop=
"imgMouseOver=true"
@
mouseover
.
stop=
"imgMouseOver=true"
:src=
"
formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl
"
:src=
"
getOSSDomain(formData.courseCustomDoctorModels[0].courseDoctorAvatarUrl)
"
class=
"bg-img-doctor"
class=
"bg-img-doctor"
/>
/>
<img
<img
...
@@ -288,7 +288,9 @@ import DialogComponet from "@/components/education/template/dialog";
...
@@ -288,7 +288,9 @@ import DialogComponet from "@/components/education/template/dialog";
import
RejectReasonDialog
from
"@/components/education/custom-resource/reject-reason-dialog"
;
import
RejectReasonDialog
from
"@/components/education/custom-resource/reject-reason-dialog"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
{
openLoading
,
closeLoading
}
from
"@/utils/utils"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
{
getOSSImgUrl
}
from
"@/utils/index"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
data
()
{
data
()
{
...
@@ -312,7 +314,7 @@ export default {
...
@@ -312,7 +314,7 @@ export default {
courseCustomDoctorModels
:
[
courseCustomDoctorModels
:
[
{
{
courseDoctorAvatarUrl
:
courseDoctorAvatarUrl
:
"
https://test1-file.yunqueyi.com/image/png/common/2020062015265063
.png"
,
"
/h5/images/cme/doctor-header
.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorHospitalCheck
:
""
,
...
@@ -324,8 +326,7 @@ export default {
...
@@ -324,8 +326,7 @@ export default {
courseId
:
null
,
courseId
:
null
,
courseIntro
:
""
,
courseIntro
:
""
,
courseIntroCheck
:
""
,
courseIntroCheck
:
""
,
courseIntroImage
:
courseIntroImage
:
"/h5/images/cme/project-banner.png"
,
"https://test1-file.yunqueyi.com/image/png/common/202006201528136.png"
,
courseIntroImageCheck
:
""
,
courseIntroImageCheck
:
""
,
courseName
:
""
,
courseName
:
""
,
courseNameCheck
:
""
,
courseNameCheck
:
""
,
...
@@ -350,9 +351,8 @@ export default {
...
@@ -350,9 +351,8 @@ export default {
labelOptions
:
[],
labelOptions
:
[],
fileList
:
[
fileList
:
[
],
],
projectBanner
:
projectBanner
:
"/h5/images/cme/project-banner.png"
,
"https://file.yunqueyi.com/h5/images/cme/project-banner.png"
,
doctorHeader
:
"/h5/images/cme/doctor-header.png"
,
doctorHeader
:
"https://file.yunqueyi.com/h5/images/cme/doctor-header.png"
,
doctorNameList
:
[
doctorNameList
:
[
{
courseDoctorName
:
"333"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"333"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"334"
,
show
:
true
,
seleted
:
false
},
{
courseDoctorName
:
"334"
,
show
:
true
,
seleted
:
false
},
...
@@ -366,8 +366,7 @@ export default {
...
@@ -366,8 +366,7 @@ export default {
orgCourseInfo
:
{
orgCourseInfo
:
{
defaultDoctor
:
{
defaultDoctor
:
{
courseDoctorAvatarUrl
:
courseDoctorAvatarUrl
:
"/h5/images/cme/doctor-header.png"
,
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorHospitalCheck
:
""
,
...
@@ -377,8 +376,7 @@ export default {
...
@@ -377,8 +376,7 @@ export default {
},
},
doctorModelList
:
[
doctorModelList
:
[
{
{
courseDoctorAvatarUrl
:
courseDoctorAvatarUrl
:
"/h5/images/cme/doctor-header.png"
,
"https://test1-file.yunqueyi.com/image/png/common/2020062015265063.png"
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorAvatarUrlCheck
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospital
:
""
,
courseDoctorHospitalCheck
:
""
,
courseDoctorHospitalCheck
:
""
,
...
@@ -465,6 +463,10 @@ export default {
...
@@ -465,6 +463,10 @@ export default {
},
},
methods
:
{
methods
:
{
getOSSDomain
(
url
)
{
return
getOSSImgUrl
(
url
);
},
// 返回到列表页面
// 返回到列表页面
backToListPage
()
{
backToListPage
()
{
this
.
$router
.
back
(
-
1
)
this
.
$router
.
back
(
-
1
)
...
@@ -479,7 +481,7 @@ export default {
...
@@ -479,7 +481,7 @@ export default {
this
.
formData
.
courseCustomDoctorModels
[
0
]
=
this
.
orgCourseInfo
.
defaultDoctor
;
this
.
formData
.
courseCustomDoctorModels
[
0
]
=
this
.
orgCourseInfo
.
defaultDoctor
;
this
.
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorAvatarUrl
=
this
.
formData
.
courseCustomDoctorModels
[
0
].
courseDoctorAvatarUrl
=
this
.
orgCourseInfo
.
defaultDoctor
.
courseDoctorAvatarUrl
||
this
.
orgCourseInfo
.
defaultDoctor
.
courseDoctorAvatarUrl
||
"
https://test1-file.yunqueyi.com/image/png/common/2020062015265063
.png"
;
"
/h5/images/cme/doctor-header
.png"
;
this
.
doctorNameList
=
this
.
convertDNameToSelectOpt
(
this
.
doctorNameList
=
this
.
convertDNameToSelectOpt
(
this
.
orgCourseInfo
.
doctorModelList
this
.
orgCourseInfo
.
doctorModelList
);
);
...
...
src/views/education/external-resource-manage copy 2.vue
已删除
100644 → 0
浏览文件 @
f6639455
<
template
>
<div
class=
"review-access-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"review-access screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
外部资源管理
</div>
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"100px"
class=
"search-form-wrap"
>
<el-row>
<el-form-item
label=
"资源名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</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 statusList"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"添加人:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
<!--
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
-->
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-date-picker
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>
<el-form-item
class=
"btn-list"
>
<el-button
@
click=
"goToSearch(1)"
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
@
click=
"goToReset"
size=
"small"
>
重置
</el-button>
</el-form-item>
</el-row>
</el-form>
<!--
<div>
<el-button
@
click=
"goToAdd"
type=
"primary"
size=
"small"
class=
"new-add"
>
新增
</el-button>
</div>
-->
<el-table
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"seq"
label=
"资源名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"资源类型"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"创建人"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"创建日期"
></el-table-column>
<el-table-column
align=
"center"
prop=
"authName"
label=
"状态"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"goToEdit(scope.row)"
type=
"text"
size=
"small"
><span
style=
"color: #449284;"
>
查看
</span></el-button>
<!--
<el-button
@
click=
"goToDelete(scope.row)"
type=
"text"
size=
"small"
>
删除
</el-button>
-->
</
template
>
</el-table-column>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
>
<p>
没有查询到外部资源
</p>
</div>
</div>
</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>
<!-- 拒绝原因 -->
<el-dialog
title=
"拒绝原因"
@
close=
"hideAddEditForm"
:visible
.
sync=
"addEditVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<el-form
ref=
"addEditForm"
:rules=
"rules"
:model=
"addEditForm"
label-width=
"120px"
>
<el-form-item
label=
"拒绝原因:"
>
<el-radio-group
v-model=
"addEditForm.doctorId"
>
<div
style=
"padding-top: 12px;"
>
<el-radio
label=
"含有政治类、医疗健康、社会事件类不实信息"
value=
"1"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"含有欺诈,色情,诱导、违法犯罪非法字符"
value=
"2"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"其他"
value=
"3"
></el-radio>
</div>
</el-radio-group>
<el-input
type=
"textarea"
v-model=
"addEditForm.desc"
maxlength=
"25"
style=
"width: 310px;margin-top: 10px;"
></el-input>
<span
class=
"word-num"
>
{{(addEditForm.desc).replace(/\s+/g,"").length}}/25
</span>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"hideAddEditForm"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('addEditForm')"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 删除 弹窗 -->
<el-dialog
title=
"删除"
@
close=
"hideDeleteFrom"
:visible
.
sync=
"deleteVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<p
style=
"text-align: center;"
>
确定删除该权限?
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"confirmDelete"
>
确 定
</el-button>
<el-button
@
click=
"hideDeleteFrom"
>
取 消
</el-button>
</span>
</el-dialog>
<PreviewVideo
:dialogVisible=
"isPreviewVideo"
:videoUrl=
"videoUrl"
@
close=
"closeVideo"
></PreviewVideo>
<PreviewPDF
:dialogVisible=
"isPreviewPDF"
:pdfUrl=
"pdfUrl"
@
close=
"closePDF"
></PreviewPDF>
<PreviewProtocol
:dialogVisible=
"isPreviewProtocol"
:protocolId=
"protocolId"
@
close=
"closeProtocol"
></PreviewProtocol>
<PreviewEditCourse
:dialogVisible=
"isPreviewEditCourse"
@
close=
"closeEditCourse"
></PreviewEditCourse>
<button
@
click=
"previewVideoAction"
>
test video
</button>
<button
@
click=
"previewPDFAction"
>
test pdf
</button>
<button
@
click=
"previewProtocolAction"
>
test protocol
</button>
<button
@
click=
"previewEditCourseAction"
>
test course
</button>
</div>
</template>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
PreviewVideo
from
"@/components/education/custom-resource/preview-video"
;
import
PreviewPDF
from
"@/components/education/custom-resource/preview-pdf"
;
import
PreviewProtocol
from
"@/components/education/custom-resource/preview-protocol"
;
import
PreviewEditCourse
from
"@/components/education/custom-resource/edit-course-dialog"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
import
{
getAuthTableReq
,
getUserListReq
,
handleSaveEditReq
,
handleDeleteReq
,
}
from
'@/utils/cme/cmeApi'
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"外部资源管理"
,
totalRows
:
0
,
addEditVisible
:
false
,
isAdd
:
true
,
// 新增或编辑状态:新增 true; 编辑 false
deleteVisible
:
false
,
currentRow
:
null
,
// 当前行数据
searchForm
:
{
doctorName
:
''
,
status
:
''
,
beginTime
:
''
,
endTime
:
''
,
pageNo
:
1
,
pageSize
:
15
,
},
addEditForm
:
{
desc
:
''
,
doctorId
:
''
,
status
:
''
,
},
statusList
:
[{
name
:
'全部状态'
,
value
:
''
},{
name
:
'待审核'
,
value
:
'1'
},{
name
:
'通过'
,
value
:
'2'
},{
name
:
'拒绝'
,
value
:
'3'
}],
// 权限列表
tableData
:
[],
nameList
:
[],
rules
:
{
doctorId
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
status
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
},
isPreviewVideo
:
false
,
videoUrl
:
''
,
isPreviewPDF
:
false
,
pdfUrl
:
''
,
isPreviewProtocol
:
false
,
protocolId
:
0
,
isPreviewEditCourse
:
false
,
}
},
components
:
{
BreadCrumb
,
PreviewVideo
,
PreviewPDF
,
PreviewProtocol
,
PreviewEditCourse
},
created
()
{
this
.
goToSearch
(
1
);
this
.
getUserList
();
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
// 打开预览课程弹框
previewVideoAction
(
videoUrl
)
{
this
.
videoUrl
=
'http://10.177.11.169:9000/1584002682204479.mp4'
;
this
.
isPreviewVideo
=
true
;
},
// 关闭预览课程弹框
closeVideo
()
{
this
.
isPreviewVideo
=
false
;
},
// 打开预览PDF弹框
previewPDFAction
(
videoUrl
)
{
this
.
pdfUrl
=
'http://10.177.11.169:9000/test.pdf'
;
this
.
isPreviewPDF
=
true
;
},
// 关闭预览PDF弹框
closePDF
()
{
this
.
isPreviewPDF
=
false
;
},
// 打开预览PDF弹框
previewProtocolAction
()
{
this
.
protocolId
=
5
;
this
.
isPreviewProtocol
=
true
;
},
// 关闭预览协议弹框
closeProtocol
()
{
this
.
isPreviewProtocol
=
false
;
},
// 打开编辑课程弹框
previewEditCourseAction
()
{
this
.
isPreviewEditCourse
=
true
;
},
// 关闭编辑课程弹框
closeEditCourse
()
{
this
.
isPreviewEditCourse
=
false
;
},
// 搜索
goToSearch
(
pageNo
)
{
if
(
pageNo
){
// 自定义第几页,不传则表示当前页
this
.
searchForm
.
pageNo
=
pageNo
;
}
this
.
getAuthTable
();
},
getAuthTable
()
{
let
req
=
this
.
searchForm
;
getAuthTableReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('表格列表 ', res)
this
.
tableData
=
res
.
data
.
contentList
;
this
.
totalRows
=
res
.
data
.
total
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
// 重置
goToReset
()
{
this
.
searchForm
=
{
doctorName
:
''
,
status
:
''
,
pageNo
:
1
,
pageSize
:
15
,
};
},
// 新增
goToAdd
()
{
this
.
isAdd
=
true
;
this
.
addEditVisible
=
true
;
},
// 编辑
goToEdit
(
row
)
{
this
.
isAdd
=
false
;
this
.
currentRow
=
row
;
// console.log('编辑 ', row)
this
.
addEditVisible
=
true
;
// 编辑回显状态
this
.
addEditForm
=
{
desc
:
''
,
status
:
row
.
status
,
doctorId
:
row
.
doctorId
,
};
},
// 获取新增、编辑的用户列表
getUserList
()
{
let
req
=
{};
getUserListReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('获取用户列表 ', res)
this
.
nameList
=
res
.
data
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
goToDelete
(
row
)
{
this
.
deleteVisible
=
true
;
this
.
currentRow
=
row
;
},
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
// alert('submit!');
this
.
handleSaveEdit
();
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
},
handleSaveEdit
()
{
// 新增、编辑传参不同
// debugger;
let
req
=
{};
if
(
this
.
isAdd
)
{
req
=
{
status
:
this
.
addEditForm
.
status
,
doctorId
:
this
.
addEditForm
.
doctorId
,
}
}
else
{
req
=
{
status
:
this
.
addEditForm
.
status
,
doctorId
:
this
.
addEditForm
.
doctorId
,
id
:
this
.
currentRow
.
id
,
};
}
handleSaveEditReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
addEditVisible
=
false
;
this
.
goToSearch
();
// console.log('新增/编辑权限 ', res)
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideAddEditForm
()
{
this
.
addEditVisible
=
false
;
this
.
resetForm
(
'addEditForm'
);
this
.
addEditForm
=
{
desc
:
''
,
doctorId
:
''
,
status
:
''
,
};
},
confirmDelete
()
{
// 调接口
let
req
=
{
id
:
this
.
currentRow
.
id
,
};
handleDeleteReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('删除用户列表 ', res)
this
.
goToSearch
();
this
.
deleteVisible
=
false
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideDeleteFrom
()
{
this
.
deleteVisible
=
false
;
},
handleSizeChange
(
val
){
// console.log('handleSizeChange>>>')
this
.
searchForm
.
pageSize
=
val
;
this
.
goToSearch
(
1
);
},
handleCurrentChange
(
val
){
// 切换当前页
this
.
searchForm
.
pageNo
=
val
;
this
.
getAuthTable
();
},
},
}
</
script
>
<
style
lang=
"scss"
>
.review-access-wrap
{
.review-access
{
padding
:
10px
;
background
:
#fff
;
.el-button--small
{
font-size
:
14px
;
}
.header-title
{
padding
:
10px
12px
20px
;
font-size
:
14px
;
color
:
#606266
;
border-bottom
:
1px
solid
#efefef
;
}
.search-form-wrap
{
padding
:
25px
0
20px
;
overflow
:
hidden
;
// border-bottom: 1px dashed #efefef;
}
.search-item
{
float
:
left
;
}
.btn-list
{
float
:
right
;
.el-form-item__content
{
margin-left
:
0
!
important
;
}
}
.new-add
{
float
:
right
;
margin
:
10px
0
20px
;
}
.table-empty
{
img
{
width
:
100px
;
}
p
{
margin-top
:
-50px
;
}
}
}
}
</
style
>
\ No newline at end of file
src/views/education/external-resource-manage copy 3.vue
已删除
100644 → 0
浏览文件 @
f6639455
<
template
>
<div
class=
"review-access-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"review-access screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
外部资源管理
</div>
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"100px"
class=
"search-form-wrap"
>
<el-row>
<el-form-item
label=
"课程名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.courseName"
size=
"small"
class=
"form-width"
placeholder=
"请输入课程名称"
></el-input>
</el-form-item>
<el-form-item
label=
"状态:"
class=
"search-item"
>
<el-select
v-model=
"searchForm.checkStatus"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in checkStatusList"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"创建人:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.createdDoctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入创建人"
></el-input>
</el-form-item>
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-date-picker
v-model=
"searchForm.createdTime"
type=
"datetime"
size=
"small"
class=
"form-width"
value-format=
"yyyy-MM-dd"
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>
<el-form-item
class=
"btn-list"
>
<el-button
@
click=
"goToSearch(1)"
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
@
click=
"goToReset"
size=
"small"
>
重置
</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"courseName"
label=
"课程名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"subjectName"
label=
"课程分类"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdDoctorName"
label=
"创建人"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdHospitalName"
label=
"所属机构"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdTime"
label=
"创建日期"
></el-table-column>
<el-table-column
align=
"center"
prop=
"checkStatus"
label=
"审核状态"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"viewOrAudit(scope.row)"
type=
"text"
size=
"small"
><span
style=
"color: #449284;"
>
查看
</span></el-button>
</
template
>
</el-table-column>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
>
<p>
没有查询到外部资源
</p>
</div>
</div>
</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>
<!-- 拒绝原因 -->
<el-dialog
title=
"拒绝原因"
@
close=
"hideAddEditForm"
:visible
.
sync=
"addEditVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<el-form
ref=
"addEditForm"
:model=
"addEditForm"
label-width=
"120px"
>
<el-form-item
label=
"拒绝原因:"
>
<el-radio-group
v-model=
"addEditForm.doctorId"
>
<div
style=
"padding-top: 12px;"
>
<el-radio
label=
"含有政治类、医疗健康、社会事件类不实信息"
value=
"1"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"含有欺诈,色情,诱导、违法犯罪非法字符"
value=
"2"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"其他"
value=
"3"
></el-radio>
</div>
</el-radio-group>
<el-input
type=
"textarea"
v-model=
"addEditForm.desc"
maxlength=
"25"
style=
"width: 310px;margin-top: 10px;"
></el-input>
<span
class=
"word-num"
>
{{(addEditForm.desc).replace(/\s+/g,"").length}}/25
</span>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"hideAddEditForm"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"auditAction()"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 删除 弹窗 -->
<el-dialog
title=
"删除"
@
close=
"hideDeleteFrom"
:visible
.
sync=
"deleteVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<p
style=
"text-align: center;"
>
确定删除该权限?
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"confirmDelete"
>
确 定
</el-button>
<el-button
@
click=
"hideDeleteFrom"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- <PreviewVideo :dialogVisible="isPreviewVideo" :videoUrl="videoUrl" @close="closeVideo"></PreviewVideo>
<PreviewProtocol :dialogVisible="isPreviewProtocol" :protocolId="protocolId" @close="closeProtocol"></PreviewProtocol>
<PreviewEditCourse :dialogVisible="isPreviewEditCourse" @close="closeEditCourse"></PreviewEditCourse>
<button @click="previewVideoAction">test video</button>
<button @click="previewProtocolAction">test protocol</button>
<button @click="previewEditCourseAction">test course</button> -->
</div>
</template>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
// import PreviewVideo from "@/components/education/custom-resource/preview-video";
// import PreviewProtocol from "@/components/education/custom-resource/preview-protocol";
// import PreviewEditCourse from "@/components/education/custom-resource/edit-course-dialog";
import
*
as
commonUtil
from
"../../utils/utils"
;
import
{
handleSaveEditReq
,
handleDeleteReq
,
}
from
'@/utils/cme/cmeApi'
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"外部资源管理"
,
totalRows
:
0
,
addEditVisible
:
false
,
isAdd
:
true
,
// 新增或编辑状态:新增 true; 编辑 false
deleteVisible
:
false
,
currentRow
:
null
,
// 当前行数据
searchForm
:
{
courseName
:
''
,
checkStatus
:
-
1
,
createdDoctorName
:
''
,
// createdTime: '',
// createdHospitalName: '',
// subjectName: '',
pageNo
:
1
,
pageSize
:
15
,
},
addEditForm
:
{
desc
:
''
,
doctorId
:
''
,
status
:
''
,
},
checkStatusList
:
[
{
name
:
'全部状态'
,
value
:
-
1
},{
name
:
'待审核'
,
value
:
0
},{
name
:
'通过'
,
value
:
1
},{
name
:
'拒绝'
,
value
:
2
}
],
tableData
:
[],
// isPreviewVideo: false,
// videoUrl: '',
// isPreviewProtocol: false,
// protocolId: 0,
// isPreviewEditCourse: false,
}
},
components
:
{
BreadCrumb
,
// PreviewVideo,
// PreviewProtocol,
// PreviewEditCourse
},
created
()
{
this
.
goToSearch
(
1
);
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
// 查询列表
goToSearch
(
pageNo
)
{
this
.
searchForm
.
pageNo
=
pageNo
;
this
.
GET
(
"contents/course/custom/check/v1/list"
,
this
.
searchForm
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// this.protocolInfo = res.data;
}
});
},
// 打开预览课程弹框
previewVideoAction
(
videoUrl
)
{
this
.
videoUrl
=
'http://10.177.11.169:9000/1584002682204479.mp4'
;
this
.
isPreviewVideo
=
true
;
},
// 关闭预览课程弹框
closeVideo
()
{
this
.
isPreviewVideo
=
false
;
},
// 打开预览协议弹框
previewProtocolAction
()
{
this
.
protocolId
=
5
;
this
.
isPreviewProtocol
=
true
;
},
// 关闭预览协议弹框
closeProtocol
()
{
this
.
isPreviewProtocol
=
false
;
},
// 打开编辑课程弹框
previewEditCourseAction
()
{
this
.
isPreviewEditCourse
=
true
;
},
// 关闭编辑课程弹框
closeEditCourse
()
{
this
.
isPreviewEditCourse
=
false
;
},
// 重置
goToReset
()
{
this
.
searchForm
=
{
courseName
:
''
,
checkStatus
:
''
,
createdDoctorName
:
''
,
createdTime
:
''
,
// createdHospitalName: '',
// subjectName: '',
pageNo
:
1
,
pageSize
:
15
,
};
},
// 查看 每种查看的方式不一样
viewOrAudit
(
row
)
{
},
auditAction
()
{
},
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
},
handleSaveEdit
()
{
// 新增、编辑传参不同
// debugger;
let
req
=
{};
if
(
this
.
isAdd
)
{
req
=
{
status
:
this
.
addEditForm
.
status
,
doctorId
:
this
.
addEditForm
.
doctorId
,
}
}
else
{
req
=
{
status
:
this
.
addEditForm
.
status
,
doctorId
:
this
.
addEditForm
.
doctorId
,
id
:
this
.
currentRow
.
id
,
};
}
handleSaveEditReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
addEditVisible
=
false
;
// this.goToSearch();
// console.log('新增/编辑权限 ', res)
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideAddEditForm
()
{
this
.
addEditVisible
=
false
;
this
.
resetForm
(
'addEditForm'
);
this
.
addEditForm
=
{
desc
:
''
,
doctorId
:
''
,
status
:
''
,
};
},
confirmDelete
()
{
// 调接口
let
req
=
{
id
:
this
.
currentRow
.
id
,
};
handleDeleteReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('删除用户列表 ', res)
// this.goToSearch();
this
.
deleteVisible
=
false
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideDeleteFrom
()
{
this
.
deleteVisible
=
false
;
},
handleSizeChange
(
val
){
this
.
searchForm
.
pageSize
=
val
;
this
.
goToSearch
(
1
);
},
handleCurrentChange
(
val
){
// 切换当前页
this
.
searchForm
.
pageNo
=
val
;
this
.
goToSearch
(
1
);
},
},
}
</
script
>
<
style
lang=
"scss"
>
.review-access-wrap
{
.review-access
{
padding
:
10px
;
background
:
#fff
;
.el-button--small
{
font-size
:
14px
;
}
.header-title
{
padding
:
10px
12px
20px
;
font-size
:
14px
;
color
:
#606266
;
border-bottom
:
1px
solid
#efefef
;
}
.search-form-wrap
{
padding
:
25px
0
20px
;
overflow
:
hidden
;
// border-bottom: 1px dashed #efefef;
}
.search-item
{
float
:
left
;
}
.btn-list
{
float
:
right
;
.el-form-item__content
{
margin-left
:
0
!
important
;
}
}
.new-add
{
float
:
right
;
margin
:
10px
0
20px
;
}
.table-empty
{
img
{
width
:
100px
;
}
p
{
margin-top
:
-50px
;
}
}
}
}
</
style
>
\ No newline at end of file
src/views/education/external-resource-manage copy 4.vue
已删除
100644 → 0
浏览文件 @
f6639455
<
template
>
<div
class=
"review-access-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"review-access screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
外部资源管理
</div>
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"100px"
class=
"search-form-wrap"
>
<el-row>
<el-form-item
label=
"课程名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.courseName"
size=
"small"
class=
"form-width"
placeholder=
"请输入课程名称"
></el-input>
</el-form-item>
<el-form-item
label=
"状态:"
class=
"search-item"
>
<el-select
v-model=
"searchForm.checkStatus"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in checkStatusList"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"创建人:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.createdDoctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入创建人"
></el-input>
</el-form-item>
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-date-picker
v-model=
"searchForm.createdTime"
type=
"date"
size=
"small"
class=
"form-width"
value-format=
"yyyy-MM-dd"
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>
<el-form-item
class=
"btn-list"
>
<el-button
@
click=
"search()"
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
@
click=
"reset"
size=
"small"
>
重置
</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
:data=
"tableList"
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"courseName"
label=
"课程名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"subjectName"
label=
"课程分类"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdDoctorName"
label=
"创建人"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdHospitalName"
label=
"所属机构"
></el-table-column>
<el-table-column
align=
"center"
prop=
"createdTime"
label=
"创建日期"
></el-table-column>
<el-table-column
align=
"center"
prop=
"checkStatus"
label=
"审核状态"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"viewOrAudit(scope.row)"
type=
"text"
size=
"small"
><span
style=
"color: #449284;"
>
查看
</span></el-button>
</
template
>
</el-table-column>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
>
<p>
没有查询到外部资源
</p>
</div>
</div>
</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>
<!-- 拒绝原因 -->
<el-dialog
title=
"拒绝原因"
@
close=
"hideAuditForm"
:visible
.
sync=
"addEditVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<el-form
ref=
"auditForm"
:model=
"auditForm"
label-width=
"120px"
>
<el-form-item
label=
"拒绝原因:"
>
<el-radio-group
v-model=
"auditForm.auditRadio"
>
<div
style=
"padding-top: 12px;"
>
<el-radio
label=
"含有政治类、医疗健康、社会事件类不实信息"
value=
"1"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"含有欺诈,色情,诱导、违法犯罪非法字符"
value=
"2"
></el-radio>
</div>
<div
style=
"padding-top: 16px;"
>
<el-radio
label=
"其他"
value=
"3"
></el-radio>
</div>
</el-radio-group>
<el-input
type=
"textarea"
v-model=
"auditForm.desc"
maxlength=
"25"
style=
"width: 310px;margin-top: 10px;"
></el-input>
<span
class=
"word-num"
>
{{(auditForm.desc).replace(/\s+/g,"").length}}/25
</span>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"hideAuditForm"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"auditAction()"
>
确 定
</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"
;
import
{
handleDeleteReq
,
}
from
'@/utils/cme/cmeApi'
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"外部资源管理"
,
totalRows
:
0
,
addEditVisible
:
false
,
isAdd
:
true
,
// 新增或编辑状态:新增 true; 编辑 false
deleteVisible
:
false
,
currentRow
:
null
,
// 当前行数据
searchForm
:
{
courseName
:
''
,
checkStatus
:
-
1
,
createdDoctorName
:
''
,
createdTime
:
''
,
// createdHospitalName: '',
// subjectName: '',
pageNo
:
1
,
pageSize
:
15
,
},
auditForm
:
{
auditRadio
:
''
,
desc
:
''
,
},
checkStatusList
:
[
{
name
:
'全部状态'
,
value
:
-
1
},{
name
:
'待审核'
,
value
:
0
},{
name
:
'通过'
,
value
:
1
},{
name
:
'拒绝'
,
value
:
2
}
],
tableList
:
[],
}
},
components
:
{
BreadCrumb
,
},
created
()
{
this
.
search
();
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
// 查询列表
search
()
{
let
searchForm
=
Object
.
assign
({},
this
.
searchForm
);
let
createdTime
=
searchForm
.
createdTime
;
if
(
createdTime
)
{
searchForm
.
createdTime
=
new
Date
(
searchForm
.
createdTime
).
getTime
();
}
else
{
searchForm
.
createdTime
=
''
;
}
this
.
GET
(
"contents/course/custom/check/v1/list"
,
searchForm
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
tableList
=
res
.
data
&&
res
.
data
.
courseList
||
[];
this
.
totalRows
=
res
.
data
.
totalSize
||
0
;
// this.protocolInfo = res.data;
}
});
},
// 重置
reset
()
{
this
.
searchForm
=
{
courseName
:
''
,
checkStatus
:
-
1
,
createdDoctorName
:
''
,
createdTime
:
''
,
// createdHospitalName: '',
// subjectName: '',
pageNo
:
1
,
pageSize
:
15
,
};
},
// 查看 每种查看的方式不一样
viewOrAudit
(
row
)
{
console
.
log
(
row
);
this
.
$router
.
push
({
path
:
'audit-custom-course'
,
query
:
{
courseId
:
row
.
courseId
}
})
},
auditAction
()
{
console
.
log
(
row
);
},
// 重置
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
},
hideAuditForm
()
{
this
.
addEditVisible
=
false
;
this
.
resetForm
(
'auditForm'
);
this
.
auditForm
=
{
auditRadio
:
''
,
desc
:
''
,
};
},
handleSizeChange
(
val
){
this
.
searchForm
.
pageSize
=
val
;
this
.
search
();
},
// 切换当前页
handleCurrentChange
(
val
){
this
.
searchForm
.
pageNo
=
val
;
this
.
search
();
},
},
}
</
script
>
<
style
lang=
"scss"
>
.review-access-wrap
{
.review-access
{
padding
:
10px
;
background
:
#fff
;
.el-button--small
{
font-size
:
14px
;
}
.header-title
{
padding
:
10px
12px
20px
;
font-size
:
14px
;
color
:
#606266
;
border-bottom
:
1px
solid
#efefef
;
}
.search-form-wrap
{
padding
:
25px
0
20px
;
overflow
:
hidden
;
// border-bottom: 1px dashed #efefef;
}
.search-item
{
float
:
left
;
}
.btn-list
{
float
:
right
;
.el-form-item__content
{
margin-left
:
0
!
important
;
}
}
.new-add
{
float
:
right
;
margin
:
10px
0
20px
;
}
.table-empty
{
img
{
width
:
100px
;
}
p
{
margin-top
:
-50px
;
}
}
}
}
</
style
>
\ No newline at end of file
src/views/education/external-resource-manage copy.vue
已删除
100644 → 0
浏览文件 @
f6639455
<
template
>
<div
class=
"review-access-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"review-access screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
外部资源管理
</div>
<el-form
ref=
"form"
:model=
"searchForm"
label-width=
"100px"
class=
"search-form-wrap"
>
<el-row>
<el-form-item
label=
"资源名称:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"资源类型:"
class=
"search-item"
>
<el-select
v-model=
"searchForm.authId"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in accessList"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"添加人:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
<!--
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-input
v-model=
"searchForm.doctorName"
size=
"small"
class=
"form-width"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
-->
<el-form-item
label=
"创建日期:"
class=
"search-item"
>
<el-date-picker
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>
<el-form-item
class=
"btn-list"
>
<el-button
@
click=
"goToSearch(1)"
type=
"primary"
size=
"small"
>
查询
</el-button>
<el-button
@
click=
"goToReset"
size=
"small"
>
重置
</el-button>
</el-form-item>
</el-row>
</el-form>
<!--
<div>
<el-button
@
click=
"goToAdd"
type=
"primary"
size=
"small"
class=
"new-add"
>
新增
</el-button>
</div>
-->
<el-table
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"seq"
label=
"资源名称"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"资源类型"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"创建人"
></el-table-column>
<el-table-column
align=
"center"
prop=
"doctorName"
label=
"创建日期"
></el-table-column>
<el-table-column
align=
"center"
prop=
"authName"
label=
"状态"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
@
click=
"goToEdit(scope.row)"
type=
"text"
size=
"small"
><span
style=
"color: #449284;"
>
查看
</span></el-button>
<!--
<el-button
@
click=
"goToDelete(scope.row)"
type=
"text"
size=
"small"
>
删除
</el-button>
-->
</
template
>
</el-table-column>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
>
<p>
没有查询到外部资源
</p>
</div>
</div>
</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>
<!-- 新增/编辑 弹窗 -->
<el-dialog
title=
"新增/编辑权限"
@
close=
"hideAddEditForm"
:visible
.
sync=
"addEditVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<el-form
ref=
"addEditForm"
:rules=
"rules"
:model=
"addEditForm"
label-width=
"120px"
>
<el-form-item
label=
"姓名:"
class=
"search-item"
prop=
"doctorId"
>
<el-select
v-model=
"addEditForm.doctorId"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in nameList"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"权限:"
class=
"search-item"
prop=
"authId"
>
<el-select
v-model=
"addEditForm.authId"
placeholder=
"请选择"
size=
"small"
class=
"form-width"
>
<el-option
v-for=
"(item, index) in accessList"
:key=
"index"
:label=
"item.text"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"hideAddEditForm"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('addEditForm')"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 删除 弹窗 -->
<el-dialog
title=
"删除"
@
close=
"hideDeleteFrom"
:visible
.
sync=
"deleteVisible"
:close-on-click-modal=
"false"
width=
"600px"
center
>
<p
style=
"text-align: center;"
>
确定删除该权限?
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"confirmDelete"
>
确 定
</el-button>
<el-button
@
click=
"hideDeleteFrom"
>
取 消
</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"
;
import
{
getAccessListReq
,
getAuthTableReq
,
getUserListReq
,
handleSaveEditReq
,
handleDeleteReq
,
}
from
'@/utils/cme/cmeApi'
export
default
{
data
()
{
return
{
curmbFirst
:
"CME"
,
curmbSecond
:
"外部资源管理"
,
totalRows
:
0
,
addEditVisible
:
false
,
isAdd
:
true
,
// 新增或编辑状态:新增 true; 编辑 false
deleteVisible
:
false
,
currentRow
:
null
,
// 当前行数据
searchForm
:
{
doctorName
:
''
,
authId
:
''
,
beginTime
:
''
,
endTime
:
''
,
pageNo
:
1
,
pageSize
:
15
,
},
addEditForm
:
{
doctorId
:
''
,
authId
:
''
,
},
accessList
:
[],
// 权限列表
tableData
:
[],
nameList
:
[],
rules
:
{
doctorId
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
authId
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
},
}
},
components
:
{
BreadCrumb
},
created
()
{
// this.getAccessList();
this
.
goToSearch
(
1
);
this
.
getUserList
();
},
mounted
()
{
commonUtil
.
resizeHeight
();
},
methods
:
{
// // 获取权限 下拉列表
// getAccessList() {
// let req = {};
// getAccessListReq(req).then(res => {
// if (res.code == "000000") {
// // console.log('权限列表 ', res)
// this.accessList = res.data;
// } else {
// this.$message(res.message);
// }
// }).catch(err => {
// this.$message.error('请求失败');
// });
// },
// 搜索
goToSearch
(
pageNo
)
{
if
(
pageNo
){
// 自定义第几页,不传则表示当前页
this
.
searchForm
.
pageNo
=
pageNo
;
}
this
.
getAuthTable
();
},
getAuthTable
()
{
let
req
=
this
.
searchForm
;
getAuthTableReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('表格列表 ', res)
this
.
tableData
=
res
.
data
.
contentList
;
this
.
totalRows
=
res
.
data
.
total
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
// 重置
goToReset
()
{
this
.
searchForm
=
{
doctorName
:
''
,
authId
:
''
,
pageNo
:
1
,
pageSize
:
15
,
};
},
// 新增
goToAdd
()
{
this
.
isAdd
=
true
;
this
.
addEditVisible
=
true
;
},
// 编辑
goToEdit
(
row
)
{
this
.
isAdd
=
false
;
this
.
currentRow
=
row
;
// console.log('编辑 ', row)
this
.
addEditVisible
=
true
;
// 编辑回显状态
this
.
addEditForm
=
{
authId
:
row
.
authId
,
doctorId
:
row
.
doctorId
,
};
},
// 获取新增、编辑的用户列表
getUserList
()
{
let
req
=
{};
getUserListReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('获取用户列表 ', res)
this
.
nameList
=
res
.
data
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
goToDelete
(
row
)
{
this
.
deleteVisible
=
true
;
this
.
currentRow
=
row
;
},
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
// alert('submit!');
this
.
handleSaveEdit
();
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
();
},
handleSaveEdit
()
{
// 新增、编辑传参不同
// debugger;
let
req
=
{};
if
(
this
.
isAdd
)
{
req
=
{
authId
:
this
.
addEditForm
.
authId
,
doctorId
:
this
.
addEditForm
.
doctorId
,
}
}
else
{
req
=
{
authId
:
this
.
addEditForm
.
authId
,
doctorId
:
this
.
addEditForm
.
doctorId
,
id
:
this
.
currentRow
.
id
,
};
}
handleSaveEditReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
addEditVisible
=
false
;
this
.
goToSearch
();
// console.log('新增/编辑权限 ', res)
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideAddEditForm
()
{
this
.
addEditVisible
=
false
;
this
.
resetForm
(
'addEditForm'
);
this
.
addEditForm
=
{
doctorId
:
''
,
authId
:
''
,
};
},
confirmDelete
()
{
// 调接口
let
req
=
{
id
:
this
.
currentRow
.
id
,
};
handleDeleteReq
(
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// console.log('删除用户列表 ', res)
this
.
goToSearch
();
this
.
deleteVisible
=
false
;
}
else
{
this
.
$message
(
res
.
message
);
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
hideDeleteFrom
()
{
this
.
deleteVisible
=
false
;
},
handleSizeChange
(
val
){
// console.log('handleSizeChange>>>')
this
.
searchForm
.
pageSize
=
val
;
this
.
goToSearch
(
1
);
},
handleCurrentChange
(
val
){
// 切换当前页
this
.
searchForm
.
pageNo
=
val
;
this
.
getAuthTable
();
},
},
}
</
script
>
<
style
lang=
"scss"
>
.review-access-wrap
{
.review-access
{
padding
:
10px
;
background
:
#fff
;
.el-button--small
{
font-size
:
14px
;
}
.header-title
{
padding
:
10px
12px
20px
;
font-size
:
14px
;
color
:
#606266
;
border-bottom
:
1px
solid
#efefef
;
}
.search-form-wrap
{
padding
:
25px
0
20px
;
overflow
:
hidden
;
border-bottom
:
1px
dashed
#efefef
;
}
.search-item
{
float
:
left
;
}
.btn-list
{
float
:
right
;
.el-form-item__content
{
margin-left
:
0
!
important
;
}
}
.new-add
{
float
:
right
;
margin
:
10px
0
20px
;
}
.table-empty
{
img
{
width
:
100px
;
}
p
{
margin-top
:
-50px
;
}
}
}
}
</
style
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录