mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-20 00:06:47 +08:00
Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop
This commit is contained in:
22
src/App.vue
22
src/App.vue
@@ -140,6 +140,28 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
//.ant-modal {
|
||||||
|
//
|
||||||
|
// .ant-modal-content {
|
||||||
|
// background-image: linear-gradient(
|
||||||
|
// 180deg, rgba(103, 64, 255, .2), rgba(166, 168, 255, 0), rgba(166, 168, 255, 0)) !important;
|
||||||
|
// border-radius: 4px;
|
||||||
|
//
|
||||||
|
// .ant-modal-body {
|
||||||
|
// .ant-btn {
|
||||||
|
// border-radius: 8px;
|
||||||
|
// width: 100px;
|
||||||
|
// height: 40px;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// .ant-btn-primary {
|
||||||
|
// background: #4ea6ff;
|
||||||
|
// color: #fff;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
// font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial,
|
// font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial,
|
||||||
// sans-serif;
|
// sans-serif;
|
||||||
|
|||||||
@@ -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-30 10:39:27
|
* @LastEditTime: 2022-12-08 20:20:26
|
||||||
* @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
|
||||||
*/
|
*/
|
||||||
@@ -80,6 +80,9 @@ export const delStudent = (obj) =>
|
|||||||
// 获取学员路径图进度明细
|
// 获取学员路径图进度明细
|
||||||
export const stuProgress = (obj) =>
|
export const stuProgress = (obj) =>
|
||||||
http.post("/admin/router/studentProcess", obj);
|
http.post("/admin/router/studentProcess", obj);
|
||||||
|
//编辑学习路径基本信息
|
||||||
|
export const editLearnInfo = (obj) => http.post('/admin/router/editInfo', obj)
|
||||||
|
|
||||||
|
|
||||||
//项目基础信息-----------------------------------
|
//项目基础信息-----------------------------------
|
||||||
//项目积分榜单
|
//项目积分榜单
|
||||||
|
|||||||
4
src/api/student.js
Normal file
4
src/api/student.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import http from "./config";
|
||||||
|
|
||||||
|
export const studentDelAll = (params) => http.get('/admin/student/del', {params})
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<div class="file_img"></div>
|
<div class="file_img"></div>
|
||||||
<div class="file_detail">
|
<div class="file_detail">
|
||||||
<div class="file_name">
|
<div class="file_name">
|
||||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="file_size">-->
|
<!-- <div class="file_size">-->
|
||||||
<!-- <span style="color: #999ba3">{{ item.size }}</span>-->
|
<!-- <span style="color: #999ba3">{{ item.size }}</span>-->
|
||||||
@@ -167,21 +167,21 @@ function del(i) {
|
|||||||
|
|
||||||
.updataxq {
|
.updataxq {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 2px;
|
right: -62px;
|
||||||
top: -30px;
|
top: -30px;
|
||||||
color: #57c887;
|
color: #57c887;
|
||||||
}
|
}
|
||||||
|
|
||||||
.updataxq1 {
|
.updataxq1 {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 2px;
|
right: -62px;
|
||||||
top: -30px;
|
top: -30px;
|
||||||
color: #388be1;
|
color: #388be1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.updataxq2 {
|
.updataxq2 {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 2px;
|
right: -62px;
|
||||||
top: -30px;
|
top: -30px;
|
||||||
color: #ff7474;
|
color: #ff7474;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ export default {
|
|||||||
name: value.memberName ? value.memberName : "-",
|
name: value.memberName ? value.memberName : "-",
|
||||||
|
|
||||||
com: value.orgName ? value.orgName : "-",
|
com: value.orgName ? value.orgName : "-",
|
||||||
gang: "-",
|
gang: value.positionMgrLevel ? value.positionMgrLevel : "-",
|
||||||
number: value.memberNo ? value.memberNo : "-",
|
number: value.memberNo ? value.memberNo : "-",
|
||||||
state: value.tagName ? value.tagName : "-",
|
state: value.tagName ? value.tagName : "-",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
@search="searchMember"
|
@search="searchMember"
|
||||||
:open="isOpen"
|
:open="isOpen"
|
||||||
@change="change"
|
@change="change"
|
||||||
|
@blur="blur"
|
||||||
>
|
>
|
||||||
<template v-if="loading" #notFoundContent>
|
<template v-if="loading" #notFoundContent>
|
||||||
<a-spin size="small"/>
|
<a-spin size="small"/>
|
||||||
@@ -60,8 +61,7 @@ const memberParam = ref({keyWord: '', pageNo: 1, pageSize: 10})
|
|||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
|
||||||
|
|
||||||
watch(() => memberParam.value.keyWord, throttle(getSearchMember, 500))
|
watch(() => memberParam.value, throttle(getMemberData, 1000))
|
||||||
watch(() => memberParam.value.pageNo, throttle(getPageMember, 500))
|
|
||||||
watch(props, init)
|
watch(props, init)
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -76,19 +76,15 @@ onMounted(() => {
|
|||||||
init()
|
init()
|
||||||
})
|
})
|
||||||
|
|
||||||
function getSearchMember() {
|
|
||||||
console.log('getSearchMember')
|
|
||||||
options.value && options.value.length && (options.value = [])
|
|
||||||
getMemberData()
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPageMember() {
|
|
||||||
console.log('getPageMember')
|
|
||||||
getMemberData()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function getMemberData() {
|
function getMemberData() {
|
||||||
|
console.log(memberParam)
|
||||||
|
if (!memberParam.value.keyWord) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (memberParam.value.pageNo !== 1) {
|
||||||
|
options.value && options.value.length && (options.value = [])
|
||||||
|
}
|
||||||
isOpen.value = true
|
isOpen.value = true
|
||||||
loading.value = true
|
loading.value = true
|
||||||
api1.getMemberInfo(memberParam.value).then((res) => {
|
api1.getMemberInfo(memberParam.value).then((res) => {
|
||||||
@@ -116,11 +112,16 @@ const memberScroll = (e) => {
|
|||||||
//搜索学员
|
//搜索学员
|
||||||
const searchMember = (keyWord) => {
|
const searchMember = (keyWord) => {
|
||||||
console.log('searchMember', keyWord)
|
console.log('searchMember', keyWord)
|
||||||
|
loading.value = true
|
||||||
options.value = []
|
options.value = []
|
||||||
isOpen.value = true
|
isOpen.value = true
|
||||||
keyWord && (memberParam.value = {keyWord, pageNo: 1, pageSize: 10});
|
keyWord && (memberParam.value = {keyWord, pageNo: 1, pageSize: 10});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function blur() {
|
||||||
|
isOpen.value = false
|
||||||
|
}
|
||||||
|
|
||||||
function change(e, l) {
|
function change(e, l) {
|
||||||
isOpen.value = false
|
isOpen.value = false
|
||||||
Array.isArray(l) && (selectOptions.value = l)
|
Array.isArray(l) && (selectOptions.value = l)
|
||||||
@@ -129,8 +130,8 @@ function change(e, l) {
|
|||||||
emit('update:name', l.map(t => t.label).join(','))
|
emit('update:name', l.map(t => t.label).join(','))
|
||||||
emit('update:value', l.map(t => t.value).join(','))
|
emit('update:value', l.map(t => t.value).join(','))
|
||||||
} else {
|
} else {
|
||||||
emit('update:name', l.label)
|
emit('update:name', l?.label)
|
||||||
emit('update:value', l.value)
|
emit('update:value', l?.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1403,7 +1403,7 @@
|
|||||||
placeholder="请选择状态"
|
placeholder="请选择状态"
|
||||||
v-model:value="gl_selectV2"
|
v-model:value="gl_selectV2"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
:options="options1"
|
:options="options11"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
@focus="focus"
|
@focus="focus"
|
||||||
@@ -2568,11 +2568,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1" @click="delete_exit1">
|
||||||
<div class="btnText" @click="delete_exit1">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2" @click="handleDeleteExit">
|
||||||
<div class="btnText" @click="handleDeleteExit">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -4029,7 +4029,7 @@ export default defineComponent({
|
|||||||
number: "studentId",
|
number: "studentId",
|
||||||
department: "deptName",
|
department: "deptName",
|
||||||
postion: "jobName",
|
postion: "jobName",
|
||||||
band: "userAutograph",
|
band: "bandDesc",
|
||||||
status: "applyStatus",
|
status: "applyStatus",
|
||||||
join: "source",
|
join: "source",
|
||||||
signstatus: "signStatus",
|
signstatus: "signStatus",
|
||||||
@@ -4052,6 +4052,7 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
const handleSearchTable3 = () => {
|
const handleSearchTable3 = () => {
|
||||||
console.log(7878);
|
console.log(7878);
|
||||||
|
message.error("该课程暂学员学习记录");
|
||||||
getTableDate333();
|
getTableDate333();
|
||||||
};
|
};
|
||||||
const getTableDate33 = async () => {
|
const getTableDate33 = async () => {
|
||||||
@@ -4161,6 +4162,16 @@ export default defineComponent({
|
|||||||
label: "审核未通过",
|
label: "审核未通过",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
const options11 = ref([
|
||||||
|
{
|
||||||
|
value: 0,
|
||||||
|
label: "未开始",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
label: "已完成",
|
||||||
|
},
|
||||||
|
]);
|
||||||
const options2 = ref([
|
const options2 = ref([
|
||||||
// {
|
// {
|
||||||
// value: "value2",
|
// value: "value2",
|
||||||
@@ -4723,7 +4734,6 @@ export default defineComponent({
|
|||||||
const obj = {
|
const obj = {
|
||||||
offcourseId: item.offcourseId,
|
offcourseId: item.offcourseId,
|
||||||
offcoursePlanId: null, //开课ID,不传代表新增
|
offcoursePlanId: null, //开课ID,不传代表新增
|
||||||
|
|
||||||
address: item.address,
|
address: item.address,
|
||||||
applyFlag: item.applyFlag,
|
applyFlag: item.applyFlag,
|
||||||
attach: item.attach,
|
attach: item.attach,
|
||||||
@@ -4731,7 +4741,7 @@ export default defineComponent({
|
|||||||
completeType: item.completeType,
|
completeType: item.completeType,
|
||||||
endTime: new Date(item.endTime) / 1000,
|
endTime: new Date(item.endTime) / 1000,
|
||||||
evalFlag: item.evalFlag,
|
evalFlag: item.evalFlag,
|
||||||
name: item.name,
|
name: item.name+'1',
|
||||||
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
||||||
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
||||||
teacherId: item.teacherId,
|
teacherId: item.teacherId,
|
||||||
@@ -4755,7 +4765,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
const postData = {
|
const postData = {
|
||||||
offcourseId: null, //不传代表新增
|
offcourseId: null, //不传代表新增
|
||||||
name: item.name,
|
name: item.name+'1',
|
||||||
picUrl: item.picUrl,
|
picUrl: item.picUrl,
|
||||||
targetUser: item.targetUser,
|
targetUser: item.targetUser,
|
||||||
meaning: item.meaning,
|
meaning: item.meaning,
|
||||||
@@ -4879,8 +4889,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//编辑面授课
|
//编辑面授课
|
||||||
const handleEdit = async (itm, type) => {
|
const handleEdit = async (itm, type) => {
|
||||||
console.log(45555);
|
|
||||||
console.log(itm);
|
|
||||||
if (type === "1") {
|
if (type === "1") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -5329,6 +5337,7 @@ export default defineComponent({
|
|||||||
columns6,
|
columns6,
|
||||||
columns7,
|
columns7,
|
||||||
options1,
|
options1,
|
||||||
|
options11,
|
||||||
options2,
|
options2,
|
||||||
options3,
|
options3,
|
||||||
options4,
|
options4,
|
||||||
|
|||||||
@@ -160,18 +160,43 @@
|
|||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="file_img">
|
<div class="file_img">
|
||||||
<img v-if="(item.indexOf('jpg')!==-1 ||item.indexOf('jpeg')!==-1 ||item.indexOf('png')!==-1 )" src="@/assets/images/coursewareManage/pngpic.png" />
|
<img
|
||||||
|
v-if="
|
||||||
|
item.indexOf('jpg') !== -1 ||
|
||||||
|
item.indexOf('jpeg') !== -1 ||
|
||||||
|
item.indexOf('png') !== -1
|
||||||
|
"
|
||||||
|
src="@/assets/images/coursewareManage/pngpic.png"
|
||||||
|
/>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<img v-if="(item.indexOf('doc')!==-1)" src="@/assets/images/coursewareManage/docpic.png" />
|
<img
|
||||||
|
v-if="item.indexOf('doc') !== -1"
|
||||||
|
src="@/assets/images/coursewareManage/docpic.png"
|
||||||
|
/>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<img v-if="(item.indexOf('xls')!==-1)" src="@/assets/images/coursewareManage/xlspic.png" />
|
<img
|
||||||
|
v-if="item.indexOf('xls') !== -1"
|
||||||
|
src="@/assets/images/coursewareManage/xlspic.png"
|
||||||
|
/>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<img v-if="(item.indexOf('ppt')!==-1)" src="@/assets/images/coursewareManage/pptpic.png" />
|
<img
|
||||||
|
v-if="item.indexOf('ppt') !== -1"
|
||||||
|
src="@/assets/images/coursewareManage/pptpic.png"
|
||||||
|
/>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<img v-if="(item.indexOf('pdf')!==-1)" src="@/assets/images/coursewareManage/pdfpic.png" />
|
<img
|
||||||
|
v-if="item.indexOf('pdf') !== -1"
|
||||||
|
src="@/assets/images/coursewareManage/pdfpic.png"
|
||||||
|
/>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<img v-if="(item.indexOf('zip')!==-1)" src="@/assets/images/coursewareManage/zippic.png" />
|
<img
|
||||||
<img v-else src="@/assets/images/coursewareManage/docpic.png" />
|
v-if="item.indexOf('zip') !== -1"
|
||||||
|
src="@/assets/images/coursewareManage/zippic.png"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
v-else
|
||||||
|
src="@/assets/images/coursewareManage/docpic.png"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -666,7 +691,9 @@ export default defineComponent({
|
|||||||
.fotarea {
|
.fotarea {
|
||||||
width: calc(100% - 150px);
|
width: calc(100% - 150px);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
.fuwenben {
|
.fuwenben {
|
||||||
width: 90%;
|
width: 90%;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
|||||||
@@ -310,7 +310,7 @@
|
|||||||
<span style="margin-right: 10px">附件</span>
|
<span style="margin-right: 10px">附件</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<FJUpload v-model:value="attach"></FJUpload>
|
<FJUpload v-model:value="attach" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -360,8 +360,8 @@ import {
|
|||||||
defineComponent,
|
defineComponent,
|
||||||
ref,
|
ref,
|
||||||
shallowRef,
|
shallowRef,
|
||||||
onMounted,
|
// onMounted,
|
||||||
onBeforeUnmount,
|
onUnmounted,
|
||||||
} from "vue";
|
} from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { edit, detail, handle } from "@/api/indexCourse";
|
import { edit, detail, handle } from "@/api/indexCourse";
|
||||||
@@ -372,7 +372,7 @@ import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
|||||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||||
import FJUpload from "@/components/common/FJUpload";
|
import FJUpload from "@/components/common/FJUpload";
|
||||||
import * as moment from "moment";
|
import * as moment from "moment";
|
||||||
import * as api2 from "../../api/indexAudit"
|
import * as api2 from "../../api/indexAudit";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
Editor,
|
Editor,
|
||||||
@@ -383,6 +383,7 @@ export default defineComponent({
|
|||||||
setup(props, { expose, emit }) {
|
setup(props, { expose, emit }) {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
hideshow: true,
|
hideshow: true,
|
||||||
|
ft_eidt: false,
|
||||||
attach: "",
|
attach: "",
|
||||||
ft_hs: false,
|
ft_hs: false,
|
||||||
addLoading: false,
|
addLoading: false,
|
||||||
@@ -408,10 +409,13 @@ export default defineComponent({
|
|||||||
state.offcourseId = offcourseId;
|
state.offcourseId = offcourseId;
|
||||||
|
|
||||||
if (state.offcourseId) {
|
if (state.offcourseId) {
|
||||||
|
state.ft_hs = true;
|
||||||
|
state.ft_eidt = true;
|
||||||
handleEditInfo(state.offcourseId);
|
handleEditInfo(state.offcourseId);
|
||||||
} else {
|
} else {
|
||||||
state.qdms_inputV1 = name;
|
|
||||||
state.ft_hs = true;
|
state.ft_hs = true;
|
||||||
|
state.ft_eidt = false;
|
||||||
|
state.qdms_inputV1 = name;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const visibleClose = () => {
|
const visibleClose = () => {
|
||||||
@@ -446,7 +450,7 @@ export default defineComponent({
|
|||||||
state.imgList = [];
|
state.imgList = [];
|
||||||
state.attach = "";
|
state.attach = "";
|
||||||
|
|
||||||
valueHtml.value = "";
|
// valueHtml.value = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
// 富文本 sssssssssssssss
|
// 富文本 sssssssssssssss
|
||||||
@@ -455,18 +459,17 @@ export default defineComponent({
|
|||||||
// 内容 HTML
|
// 内容 HTML
|
||||||
const valueHtml = ref("");
|
const valueHtml = ref("");
|
||||||
// // 模拟 ajax 异步获取内容
|
// // 模拟 ajax 异步获取内容
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
setTimeout(() => {
|
// setTimeout(() => {
|
||||||
// valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>";
|
// // valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>";
|
||||||
console.log("toolbar222222222222222");
|
// console.log(editorRef.value);
|
||||||
console.log(editorRef.value);
|
// // const toolbar = DomEditor.getToolbar(editorRef.value);
|
||||||
// const toolbar = DomEditor.getToolbar(editorRef.value);
|
// // const menu = editorRef.value.getAllMenuKeys();
|
||||||
// const menu = editorRef.value.getAllMenuKeys();
|
// // const bar = toolbar.getConfig().toolbarKeys;
|
||||||
// const bar = toolbar.getConfig().toolbarKeys;
|
// // console.log(menu);
|
||||||
// console.log(menu);
|
// // console.log(bar);
|
||||||
// console.log(bar);
|
// }, 3500);
|
||||||
}, 3500);
|
// });
|
||||||
});
|
|
||||||
const toolbarConfig = {
|
const toolbarConfig = {
|
||||||
excludeKeys: ["insertVideo", "insertImage"],
|
excludeKeys: ["insertVideo", "insertImage"],
|
||||||
};
|
};
|
||||||
@@ -478,7 +481,7 @@ export default defineComponent({
|
|||||||
formData.append("file", file);
|
formData.append("file", file);
|
||||||
fileUp(formData).then((res) => {
|
fileUp(formData).then((res) => {
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
// 最后插入图片
|
// 最后插入图片 url alt href
|
||||||
insertFn(res.data.data, file.name, res.data.data);
|
insertFn(res.data.data, file.name, res.data.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -487,11 +490,15 @@ export default defineComponent({
|
|||||||
const handleCreated = (editor) => {
|
const handleCreated = (editor) => {
|
||||||
editorRef.value = editor; // 记录 editor 实例,重要!
|
editorRef.value = editor; // 记录 editor 实例,重要!
|
||||||
};
|
};
|
||||||
|
// const handleDestory = () => {
|
||||||
|
// const editor = editorRef.value;
|
||||||
|
// if (editor == null) return;
|
||||||
|
// editor.destroy();
|
||||||
|
// };
|
||||||
// 组件销毁时,也及时销毁编辑器
|
// 组件销毁时,也及时销毁编辑器
|
||||||
onBeforeUnmount(() => {
|
onUnmounted(() => {
|
||||||
const editor = editorRef.value;
|
console.log("组件销毁时,也及时销毁编辑器");
|
||||||
if (editor == null) return;
|
// handleDestory();
|
||||||
editor.destroy();
|
|
||||||
});
|
});
|
||||||
// 富文本 eeeeeeeeeeeeee
|
// 富文本 eeeeeeeeeeeeee
|
||||||
|
|
||||||
@@ -620,7 +627,9 @@ export default defineComponent({
|
|||||||
if (param === "review") {
|
if (param === "review") {
|
||||||
//新建时点击审核按钮
|
//新建时点击审核按钮
|
||||||
submitReview(res.data.data.offcourseId);
|
submitReview(res.data.data.offcourseId);
|
||||||
} else visibleClose();
|
} else {
|
||||||
|
visibleClose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -647,6 +656,15 @@ export default defineComponent({
|
|||||||
type: 2,
|
type: 2,
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 1,
|
pageSize: 1,
|
||||||
|
};
|
||||||
|
const res = await api2.auditList(obj).then((res) => {
|
||||||
|
if (res.data.code === 200) return res.data.data;
|
||||||
|
});
|
||||||
|
if (res.rows && res.rows.length > 0) {
|
||||||
|
state.auditDescription = res.rows[0].description
|
||||||
|
? res.rows[0].description
|
||||||
|
: "-";
|
||||||
|
console.log("state.auditDescription", state.auditDescription);
|
||||||
}
|
}
|
||||||
api2.auditList(obj).then((res)=>{
|
api2.auditList(obj).then((res)=>{
|
||||||
|
|
||||||
@@ -670,8 +688,13 @@ export default defineComponent({
|
|||||||
state.qdms_inputV6 = item.intro;
|
state.qdms_inputV6 = item.intro;
|
||||||
state.member = { value: item.teacherId, name: item.teacher };
|
state.member = { value: item.teacherId, name: item.teacher };
|
||||||
valueHtml.value = item.outline;
|
valueHtml.value = item.outline;
|
||||||
state.attach = item.attach;
|
let arrss = item.attach.split(',')
|
||||||
state.ft_hs = true;
|
let str =''
|
||||||
|
for(let i=0;i<arrss.length;i++){
|
||||||
|
i == arrss.length -1 ? str += arrss[i].slice(arrss[i].lastIndexOf('/')+1) : str += arrss[i].slice(arrss[i].lastIndexOf('/')+1) + ','
|
||||||
|
}
|
||||||
|
console.log(str)
|
||||||
|
state.attach = str;
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleTagChange = () => {
|
const handleTagChange = () => {
|
||||||
@@ -721,15 +744,15 @@ export default defineComponent({
|
|||||||
visibleClose,
|
visibleClose,
|
||||||
handleTagChange,
|
handleTagChange,
|
||||||
handleTagClose,
|
handleTagClose,
|
||||||
handleCreated,
|
|
||||||
handlePush,
|
handlePush,
|
||||||
submitReview,
|
|
||||||
reviewClick,
|
reviewClick,
|
||||||
|
|
||||||
editorRef,
|
editorRef,
|
||||||
valueHtml,
|
valueHtml,
|
||||||
mode: "simple", // 或 'simple'
|
mode: "simple", // 或 'simple'
|
||||||
toolbarConfig,
|
toolbarConfig,
|
||||||
editorConfig,
|
editorConfig,
|
||||||
|
handleCreated,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -635,6 +635,7 @@
|
|||||||
<span class="th">{{ tableDataTotal }}</span>
|
<span class="th">{{ tableDataTotal }}</span>
|
||||||
<span class="yi"> 条</span>
|
<span class="yi"> 条</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="clear" @click="clearChooseStu">清空</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tableBox" style="margin-top: 30px">
|
<div class="tableBox" style="margin-top: 30px">
|
||||||
<a-table
|
<a-table
|
||||||
@@ -689,7 +690,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-show="twobtnn" class="twobtn">
|
<div v-show="twobtnn" class="twobtn">
|
||||||
<div class="btnone" @click="closebtn">取消</div>
|
<div class="btnone" @click="closebtn">取消</div>
|
||||||
<div class="btntwo" @click="closebtn">确定</div>
|
<div class="btntwo" @click="editLearnInfo">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="onemain clearfix">
|
<div class="onemain clearfix">
|
||||||
@@ -719,6 +720,7 @@
|
|||||||
:controls="false"
|
:controls="false"
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
:min="0"
|
:min="0"
|
||||||
|
:precision="0"
|
||||||
/>
|
/>
|
||||||
<span>关-第</span
|
<span>关-第</span
|
||||||
><span style="color: #4ea6ff" v-show="number">{{
|
><span style="color: #4ea6ff" v-show="number">{{
|
||||||
@@ -730,11 +732,17 @@
|
|||||||
:controls="false"
|
:controls="false"
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
:min="0"
|
:min="0"
|
||||||
|
:precision="0"
|
||||||
/>
|
/>
|
||||||
<span>关内容</span>
|
<span>关内容</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkcon" style="margin-top: 20px">
|
<div class="checkcon" style="margin-top: 20px">
|
||||||
|
<a-checkbox
|
||||||
|
class="in"
|
||||||
|
:disabled="number"
|
||||||
|
v-model:checked="studySelect"
|
||||||
|
></a-checkbox>
|
||||||
<!-- <input
|
<!-- <input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
name="cb1"
|
name="cb1"
|
||||||
@@ -755,6 +763,7 @@
|
|||||||
:controls="false"
|
:controls="false"
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
:min="0"
|
:min="0"
|
||||||
|
:precision="0"
|
||||||
/>
|
/>
|
||||||
<span>关-第</span
|
<span>关-第</span
|
||||||
><span style="color: #4ea6ff" v-show="number">{{
|
><span style="color: #4ea6ff" v-show="number">{{
|
||||||
@@ -766,6 +775,7 @@
|
|||||||
:controls="false"
|
:controls="false"
|
||||||
:autofocus="true"
|
:autofocus="true"
|
||||||
:min="0"
|
:min="0"
|
||||||
|
:precision="0"
|
||||||
/>
|
/>
|
||||||
<span>关内容</span>
|
<span>关内容</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -1279,6 +1289,7 @@ import * as api from "../../api/index1";
|
|||||||
import { editRoutered } from "../../api/indexLearningPath";
|
import { editRoutered } from "../../api/indexLearningPath";
|
||||||
import { codeUrl } from "../../api/method";
|
import { codeUrl } from "../../api/method";
|
||||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
|
// import * as student from "@/api/student";
|
||||||
export default {
|
export default {
|
||||||
name: "LevelAdd",
|
name: "LevelAdd",
|
||||||
components: {
|
components: {
|
||||||
@@ -1449,6 +1460,13 @@ export default {
|
|||||||
|
|
||||||
codevisible: false, //二维码是否显示
|
codevisible: false, //二维码是否显示
|
||||||
codeInfo: null, //二维码内容
|
codeInfo: null, //二维码内容
|
||||||
|
|
||||||
|
previewSelect: 0,
|
||||||
|
studySelect: 0,
|
||||||
|
previewStartNum: 0,
|
||||||
|
previewEndNum: 0,
|
||||||
|
studyStartNum: 0,
|
||||||
|
studyEndNum: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
const levelList = reactive({
|
const levelList = reactive({
|
||||||
@@ -1481,11 +1499,6 @@ export default {
|
|||||||
name: "关卡二xx",
|
name: "关卡二xx",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
previewStartNum: 0,
|
|
||||||
previewEndNum: 0,
|
|
||||||
studyStartNum: 0,
|
|
||||||
studyEndNum: 0,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const tableDataFunc = () => {
|
const tableDataFunc = () => {
|
||||||
@@ -1647,6 +1660,7 @@ export default {
|
|||||||
state.twobtn = true;
|
state.twobtn = true;
|
||||||
state.number = true;
|
state.number = true;
|
||||||
state.inputbox = false;
|
state.inputbox = false;
|
||||||
|
myGetRouterDetail();
|
||||||
};
|
};
|
||||||
const showCopyModal = () => {
|
const showCopyModal = () => {
|
||||||
state.copyModal = true;
|
state.copyModal = true;
|
||||||
@@ -2037,6 +2051,27 @@ export default {
|
|||||||
name: data[i].name,
|
name: data[i].name,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取设置信息
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
//previewSetting studySetting
|
||||||
|
state.previewSelect = res.data.data.routerInfo.enablePreview;
|
||||||
|
state.studySelect = res.data.data.routerInfo.enableStudy;
|
||||||
|
if (res.data.data.routerInfo.previewSetting) {
|
||||||
|
let arr = res.data.data.routerInfo.previewSetting.split(",");
|
||||||
|
if (arr.length === 2) {
|
||||||
|
state.previewStartNum = arr[0];
|
||||||
|
state.previewEndNum = arr[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (res.data.data.routerInfo.studySetting) {
|
||||||
|
let arr = res.data.data.routerInfo.studySetting.split(",");
|
||||||
|
if (arr.length === 2) {
|
||||||
|
state.studyStartNum = arr[0];
|
||||||
|
state.studyEndNum = arr[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
@@ -2194,7 +2229,30 @@ export default {
|
|||||||
message.warning("删除失败");
|
message.warning("删除失败");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 设置------------------------------------------------------
|
||||||
|
//编辑基本信息
|
||||||
|
const editLearnInfo = () => {
|
||||||
|
let obj = {
|
||||||
|
routerId: state.routerId,
|
||||||
|
enablePreview: state.previewSelect ? 1 : 0,
|
||||||
|
enableStudy: state.studySelect ? 1 : 0,
|
||||||
|
previewSetting: state.previewStartNum + "," + state.previewEndNum,
|
||||||
|
studySetting: state.studyStartNum + "," + state.studyEndNum,
|
||||||
|
};
|
||||||
|
console.log("编辑设置基本信息obj", obj);
|
||||||
|
api
|
||||||
|
.editLearnInfo(obj)
|
||||||
|
.then((res) => {
|
||||||
|
console.log("编辑设置基本信息成功", res);
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
message.success("修改成功");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("编辑设置基本信息失败", err);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 设置-----------------------------------------------------
|
||||||
//添加学员
|
//添加学员
|
||||||
watch(
|
watch(
|
||||||
() => state.addAuthList,
|
() => state.addAuthList,
|
||||||
@@ -2249,9 +2307,22 @@ export default {
|
|||||||
};
|
};
|
||||||
state.codeInfo = obj;
|
state.codeInfo = obj;
|
||||||
};
|
};
|
||||||
|
//清空所选的学员
|
||||||
|
const clearChooseStu = () => {
|
||||||
|
Modal.confirm({
|
||||||
|
title: '确定清空所有学员吗?', onOk: async () => {
|
||||||
|
state.addAuthList = []
|
||||||
|
// student.studentDelAll({id: state.routerId, type: 2})
|
||||||
|
// state.tabledata = []
|
||||||
|
// state.tableDataTotal = 0;
|
||||||
|
}, bodyStyle: 'margin-top:70%'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
...toRefs(levelList),
|
...toRefs(levelList),
|
||||||
|
clearChooseStu,
|
||||||
showDeleteALLModal,
|
showDeleteALLModal,
|
||||||
closeDeleteALLModal,
|
closeDeleteALLModal,
|
||||||
tableDataFunc,
|
tableDataFunc,
|
||||||
@@ -2305,11 +2376,20 @@ export default {
|
|||||||
checkedClose,
|
checkedClose,
|
||||||
showCodeModel,
|
showCodeModel,
|
||||||
showCodeModel2,
|
showCodeModel2,
|
||||||
|
editLearnInfo,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.clear {
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #387df7;
|
||||||
|
line-height: 24px;
|
||||||
|
position: absolute;
|
||||||
|
right: 60px;
|
||||||
|
}
|
||||||
.pub {
|
.pub {
|
||||||
.ant-modal {
|
.ant-modal {
|
||||||
.ant-modal-body {
|
.ant-modal-body {
|
||||||
@@ -4201,7 +4281,7 @@ export default {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
// margin-top: 10px;
|
// margin-top: 10px;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 3px;
|
top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.yulan {
|
.yulan {
|
||||||
|
|||||||
@@ -1883,7 +1883,6 @@
|
|||||||
import {reactive, toRefs, onMounted, watch, computed} 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 TimeManage from "../../components/drawers/TimeManage";
|
import TimeManage from "../../components/drawers/TimeManage";
|
||||||
import FaceManage from "../../components/drawers/FaceManage";
|
import FaceManage from "../../components/drawers/FaceManage";
|
||||||
import SubsetManage from "../../components/drawers/SubsetManage";
|
import SubsetManage from "../../components/drawers/SubsetManage";
|
||||||
@@ -1892,19 +1891,18 @@ import ActiveAttendance from "../../components/drawers/ActiveAttendance";
|
|||||||
import WorkManage from "../../components/drawers/WorkManage";
|
import WorkManage from "../../components/drawers/WorkManage";
|
||||||
import FaceStu from "../../components/drawers/FaceStu";
|
import FaceStu from "../../components/drawers/FaceStu";
|
||||||
import TestManage from "../../components/drawers/TestManage";
|
import TestManage from "../../components/drawers/TestManage";
|
||||||
// import StuAdd from "../../components/drawers/StuAdd";
|
|
||||||
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
||||||
import ImportStu from "../../components/drawers/ImportStu";
|
import ImportStu from "../../components/drawers/ImportStu";
|
||||||
import SeeStu from "../../components/drawers/SeeStu";
|
import SeeStu from "../../components/drawers/SeeStu";
|
||||||
import ChangeGroup from "../../components/drawers/ChangeGroup";
|
import ChangeGroup from "../../components/drawers/ChangeGroup";
|
||||||
import NoticePub from "../../components/drawers/NoticePub";
|
import NoticePub from "../../components/drawers/NoticePub";
|
||||||
import NoticeHis from "../../components/drawers/NoticeHis";
|
import NoticeHis from "../../components/drawers/NoticeHis";
|
||||||
// import ProjectScore from "../../components/drawers/ProjectScore";
|
|
||||||
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
||||||
import {storage} from "../../api/storage";
|
import {storage} from "../../api/storage";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
import * as apis from "../../api/index";
|
import * as apis from "../../api/index";
|
||||||
import * as apiproj from "../../api/index";
|
import * as apiproj from "../../api/index";
|
||||||
|
import * as student from "../../api/student";
|
||||||
import {
|
import {
|
||||||
getProjStu,
|
getProjStu,
|
||||||
deleteStu,
|
deleteStu,
|
||||||
@@ -1913,7 +1911,7 @@ import {
|
|||||||
editGroup,
|
editGroup,
|
||||||
topStudent,
|
topStudent,
|
||||||
} from "../../api/indexProjStu";
|
} from "../../api/indexProjStu";
|
||||||
import { message } from "ant-design-vue";
|
import {message, Modal} from "ant-design-vue";
|
||||||
import * as apitl from "../../api/index";
|
import * as apitl from "../../api/index";
|
||||||
import {getTask} from "../../api/indexTaskadd";
|
import {getTask} from "../../api/indexTaskadd";
|
||||||
import {editProj} from "../../api/indexTaskadd";
|
import {editProj} from "../../api/indexTaskadd";
|
||||||
@@ -1925,6 +1923,7 @@ import { useStore } from "vuex";
|
|||||||
import ProjectLevel from "@/components/project/ProjectLevel";
|
import ProjectLevel from "@/components/project/ProjectLevel";
|
||||||
import TrainClass from "@/components/project/TrainClass";
|
import TrainClass from "@/components/project/TrainClass";
|
||||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "taskPage",
|
name: "taskPage",
|
||||||
components: {
|
components: {
|
||||||
@@ -3498,8 +3497,12 @@ export default {
|
|||||||
};
|
};
|
||||||
//清空所选的学员
|
//清空所选的学员
|
||||||
const clearChooseStu = () => {
|
const clearChooseStu = () => {
|
||||||
state.selectedRowKeys = [];
|
Modal.confirm({
|
||||||
state.choosed = 0;
|
title: '确定清空所有学员吗?', onOk: async () => {
|
||||||
|
state.tabledata = []
|
||||||
|
student.studentDelAll({id: state.projectId, type: 1})
|
||||||
|
}, bodyStyle: 'margin-top:70%'
|
||||||
|
});
|
||||||
};
|
};
|
||||||
//学员重置
|
//学员重置
|
||||||
const resetCancel = () => {
|
const resetCancel = () => {
|
||||||
@@ -5724,6 +5727,7 @@ export default {
|
|||||||
margin-left: 12px;
|
margin-left: 12px;
|
||||||
margin-right: 50px;
|
margin-right: 50px;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
|
|
||||||
.iconame {
|
.iconame {
|
||||||
//position: absolute;
|
//position: absolute;
|
||||||
color: #4f5156;
|
color: #4f5156;
|
||||||
@@ -5776,6 +5780,7 @@ export default {
|
|||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
margin-right: 50px;
|
margin-right: 50px;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
|
||||||
.timetext {
|
.timetext {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #999ba3;
|
color: #999ba3;
|
||||||
|
|||||||
Reference in New Issue
Block a user