mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-20 00:06:47 +08:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -41,7 +41,7 @@ export default defineComponent({
|
|||||||
const store = useStore();
|
const store = useStore();
|
||||||
const isLogin = ref(false);
|
const isLogin = ref(false);
|
||||||
// console.log("router", router.getRoutes(), route);
|
// console.log("router", router.getRoutes(), route);
|
||||||
console.log("版本0.05------------");
|
console.log("版本0.06------------");
|
||||||
const routes = computed(() => {
|
const routes = computed(() => {
|
||||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-21 14:32:52
|
* @Date: 2022-11-21 14:32:52
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-29 17:09:48
|
* @LastEditTime: 2022-11-30 15:03:21
|
||||||
* @FilePath: /fe-manage/src/api/config.js
|
* @FilePath: /fe-manage/src/api/config.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -53,7 +53,7 @@ http.interceptors.response.use(
|
|||||||
return response;
|
return response;
|
||||||
} else {
|
} else {
|
||||||
if (code === 1000) {
|
if (code === 1000) {
|
||||||
window.open("https://u-pre.boe.com/web/", '_self');
|
// window.open("https://u-pre.boe.com/web/", '_self');
|
||||||
}
|
}
|
||||||
console.log("api %o", msg);
|
console.log("api %o", msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-04 22:45:31
|
* @Date: 2022-11-04 22:45:31
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-29 18:17:23
|
* @LastEditTime: 2022-11-30 10:39:27
|
||||||
* @FilePath: /fe-manage/src/api/index1.js
|
* @FilePath: /fe-manage/src/api/index1.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -130,7 +130,7 @@ export const orgtree = () => http.get("/org/tree");
|
|||||||
//获取积分列表
|
//获取积分列表
|
||||||
export const noticeList = (projectId) =>
|
export const noticeList = (projectId) =>
|
||||||
http.post(
|
http.post(
|
||||||
`http://localhost:8080/api/admin/project/noticeList?projectId=` +
|
`/admin/project/noticeList?projectId=` +
|
||||||
projectId +
|
projectId +
|
||||||
``
|
``
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="display: flex; flex-direction: row; padding-top:32px;">
|
<div style="display: flex; flex-direction: row; padding-top: 32px">
|
||||||
<button
|
<button
|
||||||
style="width: 100px"
|
style="width: 100px"
|
||||||
@click="changeOuter(1)"
|
@click="changeOuter(1)"
|
||||||
@@ -32,7 +32,6 @@
|
|||||||
外部考试
|
外部考试
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-form
|
<a-form
|
||||||
v-if="isOuter == 1"
|
v-if="isOuter == 1"
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
@@ -267,7 +266,6 @@
|
|||||||
style="width: 88px; height: 32px; margin-left: 35px"
|
style="width: 88px; height: 32px; margin-left: 35px"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<span style="margin-left: 8px">分</span>
|
<span style="margin-left: 8px">分</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -311,7 +309,6 @@
|
|||||||
<a-button class="btn2" html-type="submit">确定</a-button>
|
<a-button class="btn2" html-type="submit">确定</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
||||||
<a-form
|
<a-form
|
||||||
v-else
|
v-else
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
@@ -342,7 +339,6 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-form-item
|
<a-form-item
|
||||||
@@ -383,8 +379,6 @@
|
|||||||
<a-button class="btn2" html-type="submit">确定</a-button>
|
<a-button class="btn2" html-type="submit">确定</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 加载动画 -->
|
<!-- 加载动画 -->
|
||||||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||||||
@@ -406,7 +400,6 @@ import STest from "./SelectTest.vue";
|
|||||||
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
|
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
|
||||||
import { addTempTask } from "../../api/indexTaskadd";
|
import { addTempTask } from "../../api/indexTaskadd";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AddTest",
|
name: "AddTest",
|
||||||
components: {
|
components: {
|
||||||
@@ -623,7 +616,6 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const options1 = ref([
|
const options1 = ref([
|
||||||
{
|
{
|
||||||
label: "math",
|
label: "math",
|
||||||
@@ -637,11 +629,9 @@ export default {
|
|||||||
const handleFinish = () => {
|
const handleFinish = () => {
|
||||||
updateTest();
|
updateTest();
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleFinishFailed = () => {
|
const handleFinishFailed = () => {
|
||||||
message.error("handleFinishFailed");
|
message.error("handleFinishFailed");
|
||||||
};
|
};
|
||||||
|
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
formRef.value.resetFields();
|
formRef.value.resetFields();
|
||||||
state.paperName = "";
|
state.paperName = "";
|
||||||
@@ -649,12 +639,10 @@ export default {
|
|||||||
state.id = "";
|
state.id = "";
|
||||||
state.testName = "";
|
state.testName = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleValidate = (...args) => {
|
const handleValidate = (...args) => {
|
||||||
console.log(args);
|
console.log(args);
|
||||||
};
|
};
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
|
|
||||||
formState.choosedTime = "";
|
formState.choosedTime = "";
|
||||||
ctx.emit("update:addtestVisible", false);
|
ctx.emit("update:addtestVisible", false);
|
||||||
ctx.emit("update:edit", false);
|
ctx.emit("update:edit", false);
|
||||||
@@ -669,11 +657,9 @@ export default {
|
|||||||
queryTest();
|
queryTest();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectTest = () => {
|
const selectTest = () => {
|
||||||
state.STvisible = true;
|
state.STvisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
const delTag = () => {
|
const delTag = () => {
|
||||||
state.paperId = 0;
|
state.paperId = 0;
|
||||||
state.paperName = "";
|
state.paperName = "";
|
||||||
@@ -759,7 +745,6 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateTask = (res) => {
|
const updateTask = (res) => {
|
||||||
state.EditTestId = res.data.data.examinationId;
|
state.EditTestId = res.data.data.examinationId;
|
||||||
if (props.faceLevel) {
|
if (props.faceLevel) {
|
||||||
@@ -822,9 +807,7 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const cloradio1 = (value) => {
|
const cloradio1 = (value) => {
|
||||||
if (value != "") {
|
if (value != "") {
|
||||||
formState.showAnswers = "";
|
formState.showAnswers = "";
|
||||||
@@ -864,8 +847,8 @@ export default {
|
|||||||
const getData = (value) => {
|
const getData = (value) => {
|
||||||
state.paperId = value.paperId;
|
state.paperId = value.paperId;
|
||||||
state.paperName = value.testName;
|
state.paperName = value.testName;
|
||||||
state.id = value.id
|
state.id = value.id;
|
||||||
state.testName = value.testName
|
state.testName = value.testName;
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
formState,
|
formState,
|
||||||
|
|||||||
@@ -4813,7 +4813,7 @@ export default defineComponent({
|
|||||||
deptList: res[1],
|
deptList: res[1],
|
||||||
groupList: res[2],
|
groupList: res[2],
|
||||||
offcourseId: state.offcourseId,
|
offcourseId: state.offcourseId,
|
||||||
offcoursePlanId: "",
|
offcoursePlanId: state.offcoursePlanId, //开课id
|
||||||
studentList: res[0],
|
studentList: res[0],
|
||||||
};
|
};
|
||||||
console.log("obj", obj);
|
console.log("obj", obj);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-16 20:59:33
|
* @Date: 2022-11-16 20:59:33
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2022-11-24 16:21:04
|
* @LastEditTime: 2022-11-29 22:30:01
|
||||||
* @FilePath: /fe-manage/src/views/examine/CourseReviewedN.vue
|
* @FilePath: /fe-manage/src/views/examine/CourseReviewedN.vue
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
-->
|
-->
|
||||||
@@ -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,6 +80,9 @@
|
|||||||
</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" />
|
||||||
@@ -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,40 +219,32 @@
|
|||||||
<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>
|
||||||
@@ -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,26 +300,16 @@
|
|||||||
</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";
|
||||||
@@ -442,6 +350,7 @@ export default {
|
|||||||
chooseCreater: null,
|
chooseCreater: null,
|
||||||
chooseOffId: null,
|
chooseOffId: null,
|
||||||
lookCourseModal: false, //预览
|
lookCourseModal: false, //预览
|
||||||
|
faceDetailObj: null,
|
||||||
columns1: [
|
columns1: [
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
@@ -514,7 +423,13 @@ export default {
|
|||||||
审核
|
审核
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span style="cursor:pointer;color:#387DF7">预览</span>
|
<span
|
||||||
|
onClick={() => {
|
||||||
|
state.lookCourseModal = true;
|
||||||
|
getFaceDetail(value.record.offId);
|
||||||
|
console.log(value.record)
|
||||||
|
}}
|
||||||
|
style="cursor:pointer;color:#387DF7">预览</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -541,15 +456,16 @@ 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);
|
||||||
@@ -557,12 +473,77 @@ export default {
|
|||||||
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) => {
|
.catch((err) => {
|
||||||
console.log("获取面授列表失败", 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 = []
|
||||||
@@ -611,6 +592,7 @@ export default {
|
|||||||
state.chooseId = id;
|
state.chooseId = id;
|
||||||
state.chooseCreater = creater;
|
state.chooseCreater = creater;
|
||||||
state.chooseOffId = offId;
|
state.chooseOffId = offId;
|
||||||
|
getFaceList();
|
||||||
};
|
};
|
||||||
const closeCourAuditModal = () => {
|
const closeCourAuditModal = () => {
|
||||||
state.courAuditModal = false;
|
state.courAuditModal = false;
|
||||||
@@ -621,6 +603,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,
|
||||||
@@ -632,12 +621,13 @@ export default {
|
|||||||
console.log(res);
|
console.log(res);
|
||||||
state.courAuditModal = false;
|
state.courAuditModal = false;
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.success("审核提交成功");
|
message.success("审核提交成功");
|
||||||
|
getFaceList();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("审核提交失败");
|
message.warning("审核提交失败");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
@@ -648,12 +638,19 @@ export default {
|
|||||||
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 +677,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 +686,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 +795,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 {
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
class="learnBgItem"
|
class="learnBgItem"
|
||||||
:style="{
|
:style="{
|
||||||
border:
|
border:
|
||||||
learnPathBg === item.dictCode
|
pathBgId === item.dictCode
|
||||||
? '2px solid rgba(78, 166, 255, 1)'
|
? '2px solid rgba(78, 166, 255, 1)'
|
||||||
: '1px solid #C7CBD2',
|
: '1px solid #C7CBD2',
|
||||||
'background-image': 'url(' + item.dictValue + ')',
|
'background-image': 'url(' + item.dictValue + ')',
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
class="learnBgItem"
|
class="learnBgItem"
|
||||||
:style="{
|
:style="{
|
||||||
border:
|
border:
|
||||||
learnPathBg2 === item.dictCode
|
pathBgId === item.dictCode
|
||||||
? '2px solid rgba(78, 166, 255, 1)'
|
? '2px solid rgba(78, 166, 255, 1)'
|
||||||
: '1px solid #ccc',
|
: '1px solid #ccc',
|
||||||
'background-image': 'url(' + item.dictValue + ')',
|
'background-image': 'url(' + item.dictValue + ')',
|
||||||
@@ -670,7 +670,7 @@
|
|||||||
class="learnBgItem"
|
class="learnBgItem"
|
||||||
:style="{
|
:style="{
|
||||||
border:
|
border:
|
||||||
learnPathBg2 === item.id
|
pathBgId === item.id
|
||||||
? '2px solid rgba(78, 166, 255, 1)'
|
? '2px solid rgba(78, 166, 255, 1)'
|
||||||
: '1px solid #ccc',
|
: '1px solid #ccc',
|
||||||
'background-image': 'url(' + item.source + ')',
|
'background-image': 'url(' + item.source + ')',
|
||||||
@@ -749,8 +749,8 @@ export default {
|
|||||||
// source: require("../../assets/images/leveladd/1.png"),
|
// source: require("../../assets/images/leveladd/1.png"),
|
||||||
// },
|
// },
|
||||||
],
|
],
|
||||||
learnPathBg: null, //创建路径选择的路径图背景
|
// learnPathBg: null, //创建路径选择的路径图背景
|
||||||
learnPathBg2: null, //编辑路径选择的路径图背景
|
// learnPathBg2: null, //编辑路径选择的路径图背景
|
||||||
pub: false, //发布弹窗
|
pub: false, //发布弹窗
|
||||||
checked: false, //发布弹窗switch
|
checked: false, //发布弹窗switch
|
||||||
checkedTeacher: false, //发布弹窗勾选
|
checkedTeacher: false, //发布弹窗勾选
|
||||||
@@ -784,7 +784,8 @@ export default {
|
|||||||
], //归属组织
|
], //归属组织
|
||||||
organizationSelectName: null, //归属组织选择名称
|
organizationSelectName: null, //归属组织选择名称
|
||||||
organizationSelectId: null, //归属组织选择id
|
organizationSelectId: null, //归属组织选择id
|
||||||
pathBg: "", //路径图选择背景
|
pathBg: null, //路径图选择背景
|
||||||
|
pathBgId: null, //路径图选择id
|
||||||
pathIntro: "", //路径说明
|
pathIntro: "", //路径说明
|
||||||
createLoading: false, //创建路径loading
|
createLoading: false, //创建路径loading
|
||||||
deletePathId: null, //删除路径id
|
deletePathId: null, //删除路径id
|
||||||
@@ -849,6 +850,7 @@ export default {
|
|||||||
// console.log("打开创建路径弹窗");
|
// console.log("打开创建路径弹窗");
|
||||||
state.pathName = "";
|
state.pathName = "";
|
||||||
state.pathBg = "";
|
state.pathBg = "";
|
||||||
|
state.pathBgId = "";
|
||||||
state.organizationSelectName = null;
|
state.organizationSelectName = null;
|
||||||
state.organizationSelectId = null;
|
state.organizationSelectId = null;
|
||||||
state.pathIntro = "";
|
state.pathIntro = "";
|
||||||
@@ -857,6 +859,7 @@ export default {
|
|||||||
const handleOut1 = () => {
|
const handleOut1 = () => {
|
||||||
state.pathName = "";
|
state.pathName = "";
|
||||||
state.pathBg = "";
|
state.pathBg = "";
|
||||||
|
state.pathBgId = "";
|
||||||
state.organizationSelectName = null;
|
state.organizationSelectName = null;
|
||||||
state.organizationSelectId = null;
|
state.organizationSelectId = null;
|
||||||
state.pathIntro = "";
|
state.pathIntro = "";
|
||||||
@@ -865,11 +868,13 @@ export default {
|
|||||||
};
|
};
|
||||||
const chooseImg = (item) => {
|
const chooseImg = (item) => {
|
||||||
// console.log(item);
|
// console.log(item);
|
||||||
state.learnPathBg = item.dictCode;
|
state.pathBgId = item.dictCode;
|
||||||
|
state.pathBg = item.dictValue;
|
||||||
};
|
};
|
||||||
const chooseImg2 = (item) => {
|
const chooseImg2 = (item) => {
|
||||||
// console.log(item);
|
// console.log(item);
|
||||||
state.learnPathBg2 = item.dictCode;
|
state.pathBgId = item.dictCode;
|
||||||
|
state.pathBg = item.dictValue;
|
||||||
};
|
};
|
||||||
//发布弹窗
|
//发布弹窗
|
||||||
const showPub = (routerId) => {
|
const showPub = (routerId) => {
|
||||||
@@ -1141,14 +1146,9 @@ export default {
|
|||||||
<div
|
<div
|
||||||
class="jc"
|
class="jc"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log("text.record", text.record);
|
// console.log("text.record", text.record);
|
||||||
state.out1 = true;
|
|
||||||
state.pathName = text.record.manager;
|
getLearnPathInfo(text.record);
|
||||||
// state.pathBg = "";
|
|
||||||
// state.organizationSelectName = null;
|
|
||||||
// state.organizationSelectId = null;
|
|
||||||
state.pathIntro = text.record.remark;
|
|
||||||
state.editPathId = text.record.id;
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
@@ -1418,11 +1418,14 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请输入路径图名称");
|
return message.warning("请输入路径图名称");
|
||||||
}
|
}
|
||||||
|
if (!state.organizationSelectName) {
|
||||||
// if (!state.organizationSelectName){
|
message.destroy();
|
||||||
// message.destroy();
|
return message.warning("请选择归属组织");
|
||||||
// return message.warning("请选择归属组织");
|
}
|
||||||
// }
|
if (!state.pathBg) {
|
||||||
|
message.destroy();
|
||||||
|
return message.warning("请选择背景图");
|
||||||
|
}
|
||||||
state.lpLoading = true;
|
state.lpLoading = true;
|
||||||
let obj = {
|
let obj = {
|
||||||
name: state.pathName,
|
name: state.pathName,
|
||||||
@@ -1520,17 +1523,39 @@ export default {
|
|||||||
console.log("删除失败", err);
|
console.log("删除失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//获取路径图详细信息
|
||||||
|
const getLearnPathInfo = (item) => {
|
||||||
|
state.out1 = true;
|
||||||
|
state.pathName = item.manager;
|
||||||
|
state.pathBg = "";
|
||||||
|
state.pathBgId = "";
|
||||||
|
state.organizationSelectName = null;
|
||||||
|
state.organizationSelectId = null;
|
||||||
|
state.pathIntro = item.remark;
|
||||||
|
state.editPathId = item.id;
|
||||||
|
console.log("state.imgData", state.imgData);
|
||||||
|
let arr = state.imgData;
|
||||||
|
for (let i = 0; i < arr.length; i++) {
|
||||||
|
if (arr[i].dictCode === state.pathBgId) {
|
||||||
|
state.pathBgId = arr[i].dictValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
//编辑学习路径图
|
//编辑学习路径图
|
||||||
const editLearnPath = () => {
|
const editLearnPath = () => {
|
||||||
if (!state.pathName) {
|
if (!state.pathName) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请输入路径图名称");
|
return message.warning("请输入路径图名称");
|
||||||
}
|
}
|
||||||
|
if (!state.organizationSelectName) {
|
||||||
// if (!state.organizationSelectName){
|
message.destroy();
|
||||||
// message.destroy();
|
return message.warning("请选择归属组织");
|
||||||
// return message.warning("请选择归属组织");
|
}
|
||||||
// }
|
if (!state.pathBgId) {
|
||||||
|
message.destroy();
|
||||||
|
return message.warning("请选择背景图");
|
||||||
|
}
|
||||||
// state.createLoading = true;
|
// state.createLoading = true;
|
||||||
let obj = {
|
let obj = {
|
||||||
routerId: state.editPathId,
|
routerId: state.editPathId,
|
||||||
|
|||||||
@@ -616,7 +616,7 @@
|
|||||||
<div style="width: 5px; display: inline-block"></div>
|
<div style="width: 5px; display: inline-block"></div>
|
||||||
<span class="yi">项</span>
|
<span class="yi">项</span>
|
||||||
<span class="zon">列表选项总数:</span>
|
<span class="zon">列表选项总数:</span>
|
||||||
<span class="th">{{ tableData.length }}</span>
|
<span class="th">{{ tableDataTotal }}</span>
|
||||||
<span class="yi"> 条</span>
|
<span class="yi"> 条</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -648,6 +648,7 @@
|
|||||||
@change="pageChange"
|
@change="pageChange"
|
||||||
class="pagination"
|
class="pagination"
|
||||||
style="display: block"
|
style="display: block"
|
||||||
|
v-if="tableDataTotal > 10"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1333,7 +1334,7 @@ export default {
|
|||||||
fileList: [],
|
fileList: [],
|
||||||
docChecked: true,
|
docChecked: true,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
tableDataTotal: 100,
|
tableDataTotal: -1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
visiblene: false,
|
visiblene: false,
|
||||||
sh: false,
|
sh: false,
|
||||||
@@ -1494,6 +1495,7 @@ export default {
|
|||||||
key: "opacation",
|
key: "opacation",
|
||||||
width: 140,
|
width: 140,
|
||||||
align: "center",
|
align: "center",
|
||||||
|
fixed: "right",
|
||||||
scopedSlots: { customRender: "action" }, //引入的插槽
|
scopedSlots: { customRender: "action" }, //引入的插槽
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
@@ -1642,13 +1644,14 @@ export default {
|
|||||||
name: "",
|
name: "",
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
routerId: 100,
|
routerId: state.routerId,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.getStudent(obj)
|
.getStudent(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取学员列表", res);
|
console.log("获取学员列表", res);
|
||||||
let data = res.data.data.rows || null;
|
let data = res.data.data.rows || null;
|
||||||
|
state.tableDataTotal = res.data.data.total;
|
||||||
state.tableData = [];
|
state.tableData = [];
|
||||||
if (data.length) {
|
if (data.length) {
|
||||||
for (let i in data) {
|
for (let i in data) {
|
||||||
@@ -1656,7 +1659,7 @@ export default {
|
|||||||
state.tableData.push({
|
state.tableData.push({
|
||||||
key: data[i].studentId,
|
key: data[i].studentId,
|
||||||
com: data[i].userInfoBo.deptName,
|
com: data[i].userInfoBo.deptName,
|
||||||
name: data[i].userInfoBo.userName,
|
name: data[i].name,
|
||||||
gang: data[i].userInfoBo.jobName,
|
gang: data[i].userInfoBo.jobName,
|
||||||
cur: data[i].currentChapterName || "0",
|
cur: data[i].currentChapterName || "0",
|
||||||
jin: data[i].completeChapterCnt + "/" + data[i].totalChapterCnt,
|
jin: data[i].completeChapterCnt + "/" + data[i].totalChapterCnt,
|
||||||
@@ -2086,6 +2089,7 @@ export default {
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("添加学员成功", res);
|
console.log("添加学员成功", res);
|
||||||
message.success("添加学员成功");
|
message.success("添加学员成功");
|
||||||
|
getStudent();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("添加学员失败", err);
|
console.log("添加学员失败", err);
|
||||||
|
|||||||
@@ -576,7 +576,7 @@
|
|||||||
<!-- 编辑多层项目弹窗 - end -->
|
<!-- 编辑多层项目弹窗 - end -->
|
||||||
<!-- 创建多层子项目弹窗 -->
|
<!-- 创建多层子项目弹窗 -->
|
||||||
<div>
|
<div>
|
||||||
<a-modalbe
|
<a-modal
|
||||||
v-model:visible="doublesonpro"
|
v-model:visible="doublesonpro"
|
||||||
:title="null"
|
:title="null"
|
||||||
@ok="closeModal3"
|
@ok="closeModal3"
|
||||||
@@ -705,7 +705,7 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modalbe>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<!-- 创建多层子项目弹窗 -->
|
<!-- 创建多层子项目弹窗 -->
|
||||||
<!-- 编辑多层子项目弹窗 start-->
|
<!-- 编辑多层子项目弹窗 start-->
|
||||||
@@ -2054,9 +2054,10 @@ export default {
|
|||||||
console.log("点击发布");
|
console.log("点击发布");
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: state.releaseProjectId,
|
projectId: state.releaseProjectId,
|
||||||
|
type: 4,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.releaseProject(obj)
|
.handleProject(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("发布成功", res);
|
console.log("发布成功", res);
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -2081,7 +2082,7 @@ export default {
|
|||||||
const recallProject = () => {
|
const recallProject = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: state.recallProjectId,
|
projectId: state.recallProjectId,
|
||||||
type: 0,
|
type: -4,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.handleProject(obj)
|
.handleProject(obj)
|
||||||
|
|||||||
@@ -672,6 +672,9 @@ export default {
|
|||||||
// state.tableDataTotal = res.data.data.total;
|
// state.tableDataTotal = res.data.data.total;
|
||||||
// return res.data.data.rows;
|
// return res.data.data.rows;
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取学员失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
getMember();
|
getMember();
|
||||||
|
|||||||
@@ -576,12 +576,33 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<div class="groupname" style="width: 42px">部门:</div>
|
<div class="groupname" style="width: 42px">部门:</div>
|
||||||
<a-select
|
<a-tree-select
|
||||||
|
:getPopupContainer="
|
||||||
|
(triggerNode) => {
|
||||||
|
return triggerNode.parentNode || document.body;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
v-model:value="valuestub"
|
||||||
|
:dropdown-style="{
|
||||||
|
maxHeight: '400px',
|
||||||
|
overflow: 'auto',
|
||||||
|
}"
|
||||||
|
placeholder="请选择部门"
|
||||||
|
:options="bum"
|
||||||
|
@change="handleChangeBum"
|
||||||
|
:tree-data="bum"
|
||||||
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
></a-tree-select>
|
||||||
|
<!-- <a-select
|
||||||
v-model:value="valuestub"
|
v-model:value="valuestub"
|
||||||
placeholder="请选择部门"
|
placeholder="请选择部门"
|
||||||
:options="bum"
|
:options="bum"
|
||||||
@change="handleChangeBum"
|
@change="handleChangeBum"
|
||||||
/>
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
@@ -1645,7 +1666,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, onMounted, watch } from "vue";
|
import { reactive, toRefs, onMounted, watch, computed } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
// import { CaretRightOutlined } from "@ant-design/icons-vue";
|
// import { CaretRightOutlined } from "@ant-design/icons-vue";
|
||||||
@@ -1685,6 +1706,7 @@ import { toDate } from "../../api/method";
|
|||||||
import projSet from "../../components/Modals/projSet";
|
import projSet from "../../components/Modals/projSet";
|
||||||
import { overview } from "../../api/indexProjStu";
|
import { overview } from "../../api/indexProjStu";
|
||||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
|
import { useStore } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
name: "taskPage",
|
name: "taskPage",
|
||||||
components: {
|
components: {
|
||||||
@@ -1709,6 +1731,7 @@ export default {
|
|||||||
TwoDimensionalCode,
|
TwoDimensionalCode,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectId: storage.get("projectId")
|
projectId: storage.get("projectId")
|
||||||
? JSON.parse(storage.get("projectId"))
|
? JSON.parse(storage.get("projectId"))
|
||||||
@@ -1734,11 +1757,11 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
bum: [
|
bum: [
|
||||||
{
|
// {
|
||||||
id: 1,
|
// id: 1,
|
||||||
value: "",
|
// value: "",
|
||||||
label: "",
|
// label: "",
|
||||||
},
|
// },
|
||||||
],
|
],
|
||||||
changeGoods: [], //更改是否优秀的id数组
|
changeGoods: [], //更改是否优秀的id数组
|
||||||
choosedStageId: 1, // 选择的阶段id
|
choosedStageId: 1, // 选择的阶段id
|
||||||
@@ -2362,6 +2385,10 @@ export default {
|
|||||||
console.log("route:", router.query.id);
|
console.log("route:", router.query.id);
|
||||||
|
|
||||||
// 输入接入 -- start --
|
// 输入接入 -- start --
|
||||||
|
// 资源归属 sourceBelongId 后续给接口
|
||||||
|
state.bum = computed(() => {
|
||||||
|
return store.state.orgtreeList ? store.state.orgtreeList : [];
|
||||||
|
});
|
||||||
|
|
||||||
//任务大纲渲染
|
//任务大纲渲染
|
||||||
const getTaskList = () => {
|
const getTaskList = () => {
|
||||||
@@ -3192,6 +3219,7 @@ export default {
|
|||||||
const getStu = (obj) => {
|
const getStu = (obj) => {
|
||||||
let objf = obj || {
|
let objf = obj || {
|
||||||
deptIds: [], //部门
|
deptIds: [], //部门
|
||||||
|
groupId: 0,
|
||||||
groupName: "",
|
groupName: "",
|
||||||
name: "",
|
name: "",
|
||||||
pageNo: state.currentPageStu,
|
pageNo: state.currentPageStu,
|
||||||
@@ -3199,8 +3227,9 @@ export default {
|
|||||||
projectId: state.projectId,
|
projectId: state.projectId,
|
||||||
topFlag: "",
|
topFlag: "",
|
||||||
};
|
};
|
||||||
getProjStu(objf).then((res) => {
|
getProjStu(objf)
|
||||||
console.log(res.data, "获取学员列表");
|
.then((res) => {
|
||||||
|
console.log("获取学员列表", res.data);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
let leng = res.data.data.rows.length;
|
let leng = res.data.data.rows.length;
|
||||||
state.total = res.data.data.total;
|
state.total = res.data.data.total;
|
||||||
@@ -3210,6 +3239,9 @@ export default {
|
|||||||
// studentData();
|
// studentData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取学员列表失败", err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
//获取项目信息
|
//获取项目信息
|
||||||
@@ -3275,18 +3307,18 @@ export default {
|
|||||||
: "-";
|
: "-";
|
||||||
// state.fileList=info.attach.split(",")
|
// state.fileList=info.attach.split(",")
|
||||||
let d = info.attach.indexOf(",");
|
let d = info.attach.indexOf(",");
|
||||||
console.log(info.attach, "xgo", info.attach.length);
|
// console.log(info.attach, "xgo", info.attach.length);
|
||||||
if (info.attach.length == 0) {
|
if (info.attach.length == 0) {
|
||||||
return;
|
return;
|
||||||
} else if (info.attach.length !== 0 && d == -1) {
|
} else if (info.attach.length !== 0 && d == -1) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
console.log(info.attach, "xgo");
|
// console.log(info.attach, "xgo");
|
||||||
// let str = JSON.parse(info.attach)
|
// let str = JSON.parse(info.attach)
|
||||||
// console.log("赚回来",str)
|
// console.log("赚回来",str)
|
||||||
// let luj = info.attach.split(",")
|
// let luj = info.attach.split(",")
|
||||||
let luj = info.attach;
|
let luj = info.attach;
|
||||||
console.log("lulj", luj);
|
// console.log("lulj", luj);
|
||||||
console.log("赚回来", JSON.parse(luj));
|
console.log("赚回来", JSON.parse(luj));
|
||||||
state.fileList = JSON.parse(luj);
|
state.fileList = JSON.parse(luj);
|
||||||
// state.fileList = luj
|
// state.fileList = luj
|
||||||
@@ -3686,6 +3718,7 @@ export default {
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("添加学员成功", res);
|
console.log("添加学员成功", res);
|
||||||
message.success("添加学员成功");
|
message.success("添加学员成功");
|
||||||
|
getStu();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("添加学员失败", err);
|
console.log("添加学员失败", err);
|
||||||
|
|||||||
Reference in New Issue
Block a user