mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-16 06:16:46 +08:00
feat:增加课程待审核界面搜索、审核意见、数据刷新及概览部分数据展示
This commit is contained in:
@@ -12,6 +12,9 @@ export const listView = (obj) => http.post('/admin/project/listView', obj)
|
|||||||
//获取面授课已审核列表
|
//获取面授课已审核列表
|
||||||
export const courseListView = (obj) => http.post('/admin/offcourse/listReview', obj)
|
export const courseListView = (obj) => http.post('/admin/offcourse/listReview', obj)
|
||||||
|
|
||||||
|
//获取面授课详情
|
||||||
|
export const courseDetail = (offcourseId) => http.post(`/admin/offcourse/detail?offcourseId=${offcourseId}`)
|
||||||
|
|
||||||
//项目审核日志
|
//项目审核日志
|
||||||
export const auditList = (obj) => http.post('/admin/project/auditList', obj)
|
export const auditList = (obj) => http.post('/admin/project/auditList', obj)
|
||||||
|
|
||||||
|
|||||||
@@ -14,39 +14,28 @@
|
|||||||
<div class="tmplh_inp">
|
<div class="tmplh_inp">
|
||||||
<div class="inpbox">
|
<div class="inpbox">
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-select
|
<a-select v-model:value="valueproj" :options="[{ label: '请选择内容分类', value: '' }, ...calssifyList]" />
|
||||||
v-model:value="valueproj"
|
|
||||||
:options="[{label:'请选择内容分类',value:''},...calssifyList]"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input
|
<a-input v-model:value="valuecreater" style="
|
||||||
v-model:value="valuecreater"
|
|
||||||
style="
|
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
"
|
" placeholder="请输入创建人" />
|
||||||
placeholder="请输入创建人"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input
|
<a-input v-model:value="valuename" style="
|
||||||
v-model:value="valuename"
|
|
||||||
style="
|
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
"
|
" placeholder="请输入名称" />
|
||||||
placeholder="请输入名称"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tmplh_btn">
|
<div class="tmplh_btn">
|
||||||
<div class="btn btn1" @click="getFaceList">
|
<div class="btn btn1" @click="searchList">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText btnText1">搜索</div>
|
<div class="btnText btnText1">搜索</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -58,40 +47,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tmpl_body">
|
<div class="tmpl_body">
|
||||||
<div class="tmpl_tabbox">
|
<div class="tmpl_tabbox">
|
||||||
<a-table
|
<a-table :columns="columns1" :data-source="tableData1" :loading="tableDataTotal === -1 ? true : false"
|
||||||
:columns="columns1"
|
expandRowByClick="true" @expand="expandTable" :scroll="{ x: 1300 }" :pagination="false" />
|
||||||
:data-source="tableData1"
|
|
||||||
:loading="tableDataTotal === -1 ? true : false"
|
|
||||||
expandRowByClick="true"
|
|
||||||
@expand="expandTable"
|
|
||||||
:scroll="{ x: 1300 }"
|
|
||||||
:pagination="false"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tableBox">
|
<div class="tableBox">
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
<a-pagination
|
<a-pagination v-if="total > 10" showSizeChanger="true" show-quick-jumper :pageSize="pageSize"
|
||||||
v-if="total > 10"
|
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" />
|
||||||
showSizeChanger="true"
|
|
||||||
show-quick-jumper
|
|
||||||
:pageSize="pageSize"
|
|
||||||
v-model:current="currentPage"
|
|
||||||
:total="total"
|
|
||||||
class="pagination"
|
|
||||||
@change="changePagination"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 审核弹窗 -->
|
<!-- 审核弹窗 -->
|
||||||
<a-modal
|
<a-modal v-model:visible="courAuditModal" :footer="null" :closable="closeBack" wrapClassName="courAuditModal"
|
||||||
v-model:visible="courAuditModal"
|
centered="true">
|
||||||
:footer="null"
|
|
||||||
:closable="closeBack"
|
|
||||||
wrapClassName="courAuditModal"
|
|
||||||
centered="true"
|
|
||||||
>
|
|
||||||
<div class="delete">
|
<div class="delete">
|
||||||
<div class="del_header"></div>
|
<div class="del_header"></div>
|
||||||
<div class="del_main">
|
<div class="del_main">
|
||||||
@@ -111,9 +80,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" style="margin-top: 20px">
|
<div class="item" style="margin-top: 20px">
|
||||||
|
<div class="sign" style="position:relative;left:30px;top:-2px;">
|
||||||
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
|
</div>
|
||||||
<div class="left">审核意见:</div>
|
<div class="left">审核意见:</div>
|
||||||
<div class="rig">
|
<div class="rig">
|
||||||
<a-textarea v-model:value="valueSugg" :rows="4"/>
|
<a-textarea v-model:value="valueSugg" :rows="4" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -129,30 +101,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<!-- 预览弹窗 -->
|
<!-- 预览弹窗 -->
|
||||||
<a-modal
|
<a-modal v-model:visible="lookCourseModal" title="Title" @ok="handlePush" :footer="null" :closable="false"
|
||||||
v-model:visible="lookCourseModal"
|
wrapClassName="modalStyle lookCourseModal" width="80%" @cancel="ft_exit">
|
||||||
title="Title"
|
|
||||||
@ok="handlePush"
|
|
||||||
:footer="null"
|
|
||||||
:closable="false"
|
|
||||||
wrapClassName="modalStyle lookCourseModal"
|
|
||||||
width="80%"
|
|
||||||
@cancel="ft_exit"
|
|
||||||
>
|
|
||||||
<div class="modalHeader">
|
<div class="modalHeader">
|
||||||
<div class="headerLeft">
|
<div class="headerLeft">
|
||||||
<img
|
<img style="width: 17px; height: 18px; margin-right: 8px" src="../../assets/images/basicinfo/add.png" />
|
||||||
style="width: 17px; height: 18px; margin-right: 8px"
|
|
||||||
src="../../assets/images/basicinfo/add.png"
|
|
||||||
/>
|
|
||||||
<span class="headerLeftText">预览</span>
|
<span class="headerLeftText">预览</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-right: 57px; cursor: pointer">
|
<div style="margin-right: 57px; cursor: pointer">
|
||||||
<img
|
<img @click="ft_exit" style="width: 22px; height: 22px" src="../../assets/images/basicinfo/close22.png" />
|
||||||
@click="ft_exit"
|
|
||||||
style="width: 22px; height: 22px"
|
|
||||||
src="../../assets/images/basicinfo/close22.png"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modalMain">
|
<div class="modalMain">
|
||||||
@@ -163,24 +120,17 @@
|
|||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">课程名称:</span>
|
<span style="margin-right: 14px">课程名称:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input">fefewf</div>
|
<div class="i1_input">{{ faceDetailObj !== null ? faceDetailObj.name : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="i2_cz">
|
<div class="i2_cz">
|
||||||
<div class="i2_top">
|
<div class="i2_top">
|
||||||
<div
|
<div class="i2_right" @click="hideShow" style="cursor: pointer">
|
||||||
class="i2_right"
|
|
||||||
@click="hideShow"
|
|
||||||
style="cursor: pointer"
|
|
||||||
>
|
|
||||||
<div class="b_icon"></div>
|
<div class="b_icon"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -188,28 +138,23 @@
|
|||||||
<div class="mbl_items2">
|
<div class="mbl_items2">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">封面图:</span>
|
<span style="margin-right: 14px">封面图:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">fefw</div>
|
<img ref="heroImg" alt="" style="width:100px;height:100px;" />
|
||||||
|
<!-- <div class="item_inp"></div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img style="width: 10px; height: 10px" src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
style="width: 10px; height: 10px"
|
alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">目标人群:</span>
|
<span style="margin-right: 14px">目标人群:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input"></div>
|
<div class="i1_input">{{ faceDetailObj !== null ? faceDetailObj.targetUser : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
@@ -217,35 +162,29 @@
|
|||||||
<span style="margin-right: 14px">课程价值:</span>
|
<span style="margin-right: 14px">课程价值:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input"></div>
|
<div class="i1_input">{{ faceDetailObj !== null ? faceDetailObj.meaning : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">资源归属:</span>
|
<span style="margin-right: 14px">资源归属:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="select i6_input"></div>
|
<div class="select i6_input">{{ faceDetailObj !== null ? faceDetailObj.projectId : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">内容分类:</span>
|
<span style="margin-right: 14px">内容分类:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="select i6_input"></div>
|
<div class="select i6_input">{{ faceDetailObj !== null ? faceDetailObj.categoryId : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
@@ -253,29 +192,26 @@
|
|||||||
<span style="margin-right: 14px">场景:</span>
|
<span style="margin-right: 14px">场景:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="select i7_input"></div>
|
<div class="select i7_input">{{ faceDetailObj !== null ? faceDetailObj.sceneId : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<span style="margin-right: 14px">内容标签:</span>
|
<span style="margin-right: 14px">内容标签:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp"></div>
|
<div class="item_inp">{{ faceDetailObj !== null ? faceDetailObj.tips : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb_right">
|
<div class="mb_right">
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt="asterisk"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">授课教师:</span>
|
<span style="margin-right: 14px">授课教师:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input"></div>
|
<div class="i1_input">{{ faceDetailObj !== null ? faceDetailObj.teacherId : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items2">
|
<div class="mbl_items2">
|
||||||
@@ -283,42 +219,34 @@
|
|||||||
<span style="margin-right: 14px">课程简介:</span>
|
<span style="margin-right: 14px">课程简介:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i10_textarea"></div>
|
<div class="i10_textarea">{{ faceDetailObj !== null ? faceDetailObj.intro : "" }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items">
|
<div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<span style="margin-right: 10px">附件</span>
|
<span style="margin-right: 10px">附件</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp" v-for="(value, index) in attachMap" :key="index">
|
||||||
<a-upload
|
<a :src="value">
|
||||||
multiple
|
{{ ['附件一', '附件二', '附件三', '附件四', '附件五', '附件六'][index] }}
|
||||||
:show-upload-list="false"
|
</a>
|
||||||
:before-upload="beforeUpload2"
|
<!-- <a-upload multiple :show-upload-list="false" :before-upload="beforeUpload2">
|
||||||
>
|
|
||||||
<div class="accessory" style="cursor: pointer">
|
<div class="accessory" style="cursor: pointer">
|
||||||
<div class="accessory_icon">
|
<div class="accessory_icon">
|
||||||
<img
|
<img src="@/assets/images/coursewareManage/enclosure.png" alt="enclosure" />
|
||||||
src="@/assets/images/coursewareManage/enclosure.png"
|
|
||||||
alt="enclosure"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<span style="color: #4ea6ff">添加附件</span>
|
<span style="color: #4ea6ff">添加附件</span>
|
||||||
</div>
|
</div>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
<span>
|
<span>
|
||||||
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
|
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
|
||||||
</span>
|
</span> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mbl_items12">
|
<div class="mbl_items12">
|
||||||
<div
|
<div class="i12_box1" v-for="(item, index) in imgList" :key="index">
|
||||||
class="i12_box1"
|
|
||||||
v-for="(item, index) in imgList"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<div class="file_img">
|
<div class="file_img">
|
||||||
<img :src="item.img"/>
|
<img :src="item.img" />
|
||||||
</div>
|
</div>
|
||||||
<div class="file_detail">
|
<div class="file_detail">
|
||||||
<div class="file_name">
|
<div class="file_name">
|
||||||
@@ -352,28 +280,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="fotarea">
|
<div class="fotarea">
|
||||||
<div style="border: 1px solid #ccc">
|
<div style="border: 1px solid #ccc">
|
||||||
<Toolbar
|
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig"
|
||||||
style="border-bottom: 1px solid #ccc"
|
:mode="mode" />
|
||||||
:editor="editorRef"
|
<Editor v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode" @onCreated="handleCreated" />
|
||||||
:defaultConfig="toolbarConfig"
|
|
||||||
:mode="mode"
|
|
||||||
/>
|
|
||||||
<Editor
|
|
||||||
style="height: 500px; overflow-y: hidden"
|
|
||||||
v-model="valueHtml"
|
|
||||||
:defaultConfig="editorConfig"
|
|
||||||
:mode="mode"
|
|
||||||
@onCreated="handleCreated"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="m_btn">
|
<div class="m_btn">
|
||||||
<div class="btn btn5">
|
<div class="btn btn5" @click="ft_exit">
|
||||||
<div class="btnText" @click="ft_exit">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn btn6">
|
<div class="btn btn6" @click="handlePush">
|
||||||
<div class="btnText" @click="handlePush">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -382,30 +300,20 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<!-- 审核在线课 -->
|
<!-- 审核在线课 -->
|
||||||
<a-modal
|
<a-modal v-model:visible="onlineClassesVisible" :footer="null" :closable="false"
|
||||||
v-model:visible="onlineClassesVisible"
|
wrapClassName="modalStyle onlineClassesStyle" :zIndex="9999">
|
||||||
:footer="null"
|
<iframe id="iframe" style="width: 100%; height: 100%" :src="iframeUrl + 'course/noapproved'" name="myframe"
|
||||||
:closable="false"
|
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"></iframe>
|
||||||
wrapClassName="modalStyle onlineClassesStyle"
|
|
||||||
:zIndex="9999"
|
|
||||||
>
|
|
||||||
<iframe
|
|
||||||
id="iframe"
|
|
||||||
style="width: 100%; height: 100%"
|
|
||||||
:src="iframeUrl + 'course/noapproved'"
|
|
||||||
name="myframe"
|
|
||||||
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
|
|
||||||
></iframe>
|
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {reactive, toRefs, onMounted} from "vue";
|
import { reactive, toRefs, onMounted, ref } from "vue";
|
||||||
import {list, courseAuditView} from "../../api/indexAudit";
|
import { list, courseAuditView, courseDetail } from "../../api/indexAudit";
|
||||||
import {toDate} from "../../api/method";
|
import { toDate } from "../../api/method";
|
||||||
import {message} from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import {Editor, Toolbar} from "@wangeditor/editor-for-vue";
|
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
||||||
import {iframeUrl} from "../../api/method";
|
import { iframeUrl } from "../../api/method";
|
||||||
import * as api1 from "@/api/index1";
|
import * as api1 from "@/api/index1";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -442,6 +350,7 @@ export default {
|
|||||||
chooseCreater: null,
|
chooseCreater: null,
|
||||||
chooseOffId: null,
|
chooseOffId: null,
|
||||||
lookCourseModal: false, //预览
|
lookCourseModal: false, //预览
|
||||||
|
faceDetailObj: null,
|
||||||
columns1: [
|
columns1: [
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
@@ -466,7 +375,7 @@ export default {
|
|||||||
dataIndex: "content",
|
dataIndex: "content",
|
||||||
key: "content",
|
key: "content",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: ({text}) => state.calssifyList.find(e => e.value == text)?.label,
|
customRender: ({ text }) => state.calssifyList.find(e => e.value == text)?.label,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
@@ -500,22 +409,28 @@ export default {
|
|||||||
align: "center",
|
align: "center",
|
||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<span
|
<span
|
||||||
style="cursor:pointer;color:#387DF7"
|
style="cursor:pointer;color:#387DF7"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
showAudit(
|
showAudit(
|
||||||
value.record.createId,
|
value.record.createId,
|
||||||
value.record.creater,
|
value.record.creater,
|
||||||
value.record.offId
|
value.record.offId
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
审核
|
审核
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span style="cursor:pointer;color:#387DF7">预览</span>
|
<span
|
||||||
</div>
|
onClick={() => {
|
||||||
|
state.lookCourseModal = true;
|
||||||
|
getFaceDetail(value.record.offId);
|
||||||
|
console.log(value.record)
|
||||||
|
}}
|
||||||
|
style="cursor:pointer;color:#387DF7">预览</span>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -541,30 +456,96 @@ export default {
|
|||||||
const getFaceList = () => {
|
const getFaceList = () => {
|
||||||
let objn = {
|
let objn = {
|
||||||
auditStatus: 1,
|
auditStatus: 1,
|
||||||
// beginTime: 0,
|
|
||||||
categoryId: state.valueproj,
|
categoryId: state.valueproj,
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
// endTime: 0,
|
|
||||||
name: state.valuename,
|
name: state.valuename,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
projectName: "",
|
projectName: ""
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log(objn);
|
||||||
|
|
||||||
list(objn)
|
list(objn)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取面授列表成功", res);
|
console.log("获取面授列表成功", res);
|
||||||
let result = res.data.data;
|
let result = res.data.data;
|
||||||
state.total = result.total;
|
state.total = result.total;
|
||||||
if (result.total > 0) {
|
if (result.total > 0) {
|
||||||
setFaceData(result.rows);
|
setFaceData(result.rows);
|
||||||
}
|
} else {
|
||||||
})
|
setFaceData([]);
|
||||||
.catch((err) => {
|
}
|
||||||
console.log("获取面授列表失败", err);
|
})
|
||||||
});
|
.catch((err) => {
|
||||||
|
console.log("获取面授列表失败", err);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 获取面授详情
|
||||||
|
const heroImg = ref(null);
|
||||||
|
const valueHtml = ref(null);
|
||||||
|
const attachMap = ref([]);
|
||||||
|
const getFaceDetail = (id) => {
|
||||||
|
console.log(id);
|
||||||
|
courseDetail(id)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取面授详情信息成功", res);
|
||||||
|
let result = res.data.data;
|
||||||
|
state.faceDetailObj = result;
|
||||||
|
heroImg.value.src = result.picUrl
|
||||||
|
valueHtml.value = result.outline
|
||||||
|
attachMap.value = result.attach.split(",")
|
||||||
|
console.log(result, attachMap.value);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取面授详情信息失败", err);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const searchList = () => {
|
||||||
|
let objn = {
|
||||||
|
auditStatus: 1,
|
||||||
|
categoryId: state.valueproj,
|
||||||
|
createName: state.valuecreater,
|
||||||
|
name: state.valuename,
|
||||||
|
pageNo: state.currentPage,
|
||||||
|
pageSize: 10,
|
||||||
|
projectName: ""
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(objn);
|
||||||
|
|
||||||
|
list(objn)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("获取面授列表成功", res);
|
||||||
|
let result = res.data.data;
|
||||||
|
state.total = result.total;
|
||||||
|
if (result.total > 0) {
|
||||||
|
setFaceData(result.rows);
|
||||||
|
} else {
|
||||||
|
setFaceData([]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取面授列表失败", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 预览弹框 开启和关闭
|
||||||
|
|
||||||
|
const ft_exit = () => {
|
||||||
|
state.lookCourseModal = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const handlePush = () => {
|
||||||
|
state.lookCourseModal = false;
|
||||||
|
}
|
||||||
|
|
||||||
const setFaceData = (tableData) => {
|
const setFaceData = (tableData) => {
|
||||||
if(!tableData || !tableData.length){
|
if (!tableData || !tableData.length) {
|
||||||
state.tableData1 = []
|
state.tableData1 = []
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -577,15 +558,15 @@ export default {
|
|||||||
type: item.type == 1 ? "线上" : "线下",
|
type: item.type == 1 ? "线上" : "线下",
|
||||||
content: item.categoryId,
|
content: item.categoryId,
|
||||||
status:
|
status:
|
||||||
item.status == 0
|
item.status == 0
|
||||||
? "未提交"
|
? "未提交"
|
||||||
: item.status == 1
|
: item.status == 1
|
||||||
? "待审核"
|
? "待审核"
|
||||||
: item.status == 2
|
: item.status == 2
|
||||||
? "通过"
|
? "通过"
|
||||||
: item.status == -1
|
: item.status == -1
|
||||||
? "拒绝"
|
? "拒绝"
|
||||||
: "-",
|
: "-",
|
||||||
change: "-",
|
change: "-",
|
||||||
creater: item.createName,
|
creater: item.createName,
|
||||||
time: toDate(item.createTime, "Y-M-D h:m"),
|
time: toDate(item.createTime, "Y-M-D h:m"),
|
||||||
@@ -621,6 +602,13 @@ export default {
|
|||||||
state.chooseOffId = null;
|
state.chooseOffId = null;
|
||||||
};
|
};
|
||||||
const sureCourAuditModal = () => {
|
const sureCourAuditModal = () => {
|
||||||
|
console.log(state.valueSugg)
|
||||||
|
if (state.valueSugg == null || state.valueSugg == undefined || state.valueSugg == "") {
|
||||||
|
message.destroy();
|
||||||
|
message.error("请输入审核意见")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
courseAuditView({
|
courseAuditView({
|
||||||
createId: state.chooseId,
|
createId: state.chooseId,
|
||||||
createName: state.chooseCreater,
|
createName: state.chooseCreater,
|
||||||
@@ -628,32 +616,40 @@ export default {
|
|||||||
offcourseId: state.chooseOffId,
|
offcourseId: state.chooseOffId,
|
||||||
pass: state.valuepass == "1" ? 1 : 0,
|
pass: state.valuepass == "1" ? 1 : 0,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
state.courAuditModal = false;
|
state.courAuditModal = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.success("审核提交成功");
|
message.success("审核提交成功");
|
||||||
})
|
getFaceList();
|
||||||
.catch((err) => {
|
})
|
||||||
console.log(err);
|
.catch((err) => {
|
||||||
message.destroy();
|
console.log(err);
|
||||||
return message.warning("审核提交失败");
|
message.destroy();
|
||||||
});
|
message.warning("审核提交失败");
|
||||||
|
});
|
||||||
};
|
};
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
getFaceList();
|
getFaceList();
|
||||||
//获取分类列表
|
//获取分类列表
|
||||||
state.calssifyList = (await getDictList("faceclassClass")).map(e => ({label: e.dictName, value: e.dictCode}))
|
state.calssifyList = (await getDictList("faceclassClass")).map(e => ({ label: e.dictName, value: e.dictCode }))
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
getFaceList,
|
getFaceList,
|
||||||
|
searchList,
|
||||||
setFaceData,
|
setFaceData,
|
||||||
reset,
|
reset,
|
||||||
changePagination,
|
changePagination,
|
||||||
showAudit,
|
showAudit,
|
||||||
closeCourAuditModal,
|
closeCourAuditModal,
|
||||||
sureCourAuditModal,
|
sureCourAuditModal,
|
||||||
|
ft_exit,
|
||||||
|
handlePush,
|
||||||
|
getFaceDetail,
|
||||||
|
heroImg,
|
||||||
|
valueHtml,
|
||||||
|
attachMap
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -680,6 +676,7 @@ export default {
|
|||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
||||||
// position: absolute;
|
// position: absolute;
|
||||||
// left: 50%;
|
// left: 50%;
|
||||||
// top: 10%;
|
// top: 10%;
|
||||||
@@ -688,10 +685,8 @@ export default {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
width: calc(100%);
|
width: calc(100%);
|
||||||
height: 68px;
|
height: 68px;
|
||||||
background: linear-gradient(
|
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%,
|
||||||
rgba(78, 166, 255, 0.2) 0%,
|
rgba(78, 166, 255, 0) 100%);
|
||||||
rgba(78, 166, 255, 0) 100%
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.del_main {
|
.del_main {
|
||||||
@@ -799,6 +794,7 @@ export default {
|
|||||||
.lookCourseModal {
|
.lookCourseModal {
|
||||||
.ant-modal {
|
.ant-modal {
|
||||||
.ant-modal-content {
|
.ant-modal-content {
|
||||||
|
|
||||||
// width:1358px !important;
|
// width:1358px !important;
|
||||||
.ant-modal-body {
|
.ant-modal-body {
|
||||||
.modalHeader {
|
.modalHeader {
|
||||||
|
|||||||
Reference in New Issue
Block a user