mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-20 08:16:46 +08:00
Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop
This commit is contained in:
@@ -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-12-08 08:48:26
|
* @LastEditTime: 2022-12-08 15:47:05
|
||||||
* @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
|
||||||
*/
|
*/
|
||||||
@@ -56,7 +56,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');
|
||||||
// window.open("http://111.231.196.214:12013/manage/login", '_self');
|
// window.open("http://111.231.196.214:12013/manage/login", '_self');
|
||||||
}
|
}
|
||||||
console.log("api %o", msg);
|
console.log("api %o", msg);
|
||||||
|
|||||||
BIN
src/assets/images/coursewareManage/docpic.png
Normal file
BIN
src/assets/images/coursewareManage/docpic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/coursewareManage/pdfpic.png
Normal file
BIN
src/assets/images/coursewareManage/pdfpic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/coursewareManage/pngpic.png
Normal file
BIN
src/assets/images/coursewareManage/pngpic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/coursewareManage/pptpic.png
Normal file
BIN
src/assets/images/coursewareManage/pptpic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/coursewareManage/xlspic.png
Normal file
BIN
src/assets/images/coursewareManage/xlspic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/coursewareManage/zippic.png
Normal file
BIN
src/assets/images/coursewareManage/zippic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -7,7 +7,7 @@
|
|||||||
:closable="closableQR"
|
:closable="closableQR"
|
||||||
wrapClassName="codeModal"
|
wrapClassName="codeModal"
|
||||||
style="margin-top: 400px"
|
style="margin-top: 400px"
|
||||||
:zIndex="999"
|
:zIndex="9999"
|
||||||
@cancel="qr_exit"
|
@cancel="qr_exit"
|
||||||
>
|
>
|
||||||
<div id="qrcode" class="QR">
|
<div id="qrcode" class="QR">
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ export default {
|
|||||||
await addTempTask({
|
await addTempTask({
|
||||||
courseId: Number(value.evaluationId),
|
courseId: Number(value.evaluationId),
|
||||||
name: value.evaluationName,
|
name: value.evaluationName,
|
||||||
projectTemplateId: props.projectTemplateId,
|
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
|
||||||
projectTaskId: props.projectTaskId || 0,
|
projectTaskId: props.projectTaskId || 0,
|
||||||
stageId: props.chooseStageId || 0,
|
stageId: props.chooseStageId || 0,
|
||||||
type: 10,
|
type: 10,
|
||||||
|
|||||||
@@ -221,7 +221,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<div class="b_sup" :style="{ display: bs_hs ? 'block' : 'none' }">
|
<div class="b_sup" :style="{ display: bs_hs ? 'block' : 'none' }">
|
||||||
<div class="ofmb_items">
|
<div class="ofmb_items">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
@@ -1626,8 +1626,16 @@
|
|||||||
<a
|
<a
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
QR_hs = true;
|
//QR_hs = true;
|
||||||
ftsQR_hs = true;
|
//ftsQR_hs = true;
|
||||||
|
codevisible = true;
|
||||||
|
codeIndex = 0;
|
||||||
|
codeType = 0;
|
||||||
|
codeInfo = {
|
||||||
|
title: '面授课签到',
|
||||||
|
name: record.name,
|
||||||
|
url: codeUrl,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
@@ -1675,8 +1683,16 @@
|
|||||||
<a-menu-item
|
<a-menu-item
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
QR_hs = true;
|
//QR_hs = true;
|
||||||
vipftQR_hs = true;
|
//vipftQR_hs = true;
|
||||||
|
codevisible = true;
|
||||||
|
codeIndex = 1;
|
||||||
|
codeType = 1;
|
||||||
|
codeInfo = {
|
||||||
|
title: '面授课二维码',
|
||||||
|
name: record.name,
|
||||||
|
url: codeUrl,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
@@ -2626,6 +2642,15 @@
|
|||||||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||||||
<a-spin :spinning="addLoading" tip="" />
|
<a-spin :spinning="addLoading" tip="" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 二维码弹窗 -->
|
||||||
|
<two-dimensional-code
|
||||||
|
v-model:codevisible="codevisible"
|
||||||
|
:codeInfo="codeInfo"
|
||||||
|
:index="codeIndex"
|
||||||
|
:type="codeType === 1 ? '课程二维码' : '签到二维码'"
|
||||||
|
/>
|
||||||
|
<!-- 二维码弹窗 -->
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
@@ -2687,7 +2712,8 @@ import ProjectManager from "@/components/project/ProjectManagerNew";
|
|||||||
import SeeModal from "./components/seeModal.vue";
|
import SeeModal from "./components/seeModal.vue";
|
||||||
import CourseModal from "./courseModal.vue";
|
import CourseModal from "./courseModal.vue";
|
||||||
import * as moment from "moment";
|
import * as moment from "moment";
|
||||||
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
|
import { codeUrl } from "../../api/method";
|
||||||
//列表表格
|
//列表表格
|
||||||
const columns1 = [
|
const columns1 = [
|
||||||
{
|
{
|
||||||
@@ -3203,6 +3229,7 @@ export default defineComponent({
|
|||||||
// return attrs.vnodes;
|
// return attrs.vnodes;
|
||||||
// },
|
// },
|
||||||
addOnlineCourse,
|
addOnlineCourse,
|
||||||
|
TwoDimensionalCode,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const CourseModalRef = ref(null);
|
const CourseModalRef = ref(null);
|
||||||
@@ -3471,6 +3498,9 @@ export default defineComponent({
|
|||||||
assessmentId: null,
|
assessmentId: null,
|
||||||
assessmentName: "",
|
assessmentName: "",
|
||||||
assessmentVisible: false,
|
assessmentVisible: false,
|
||||||
|
codevisible: false, //二维码弹窗
|
||||||
|
codeInfo: null, //二维码内容
|
||||||
|
codeUrl: codeUrl,
|
||||||
});
|
});
|
||||||
|
|
||||||
const showStuAdd = (record) => {
|
const showStuAdd = (record) => {
|
||||||
@@ -3977,7 +4007,7 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
// console.log("获取学员信息", obj);
|
// console.log("获取学员信息", obj);
|
||||||
let res = await studentList(obj);
|
let res = await studentList(obj);
|
||||||
// console.log("获取学员列表", res);
|
console.log("获取学员列表", res);
|
||||||
const { rows, total, pageNo } = res.data.data;
|
const { rows, total, pageNo } = res.data.data;
|
||||||
state.tableDataTotal3 = total;
|
state.tableDataTotal3 = total;
|
||||||
|
|
||||||
@@ -4102,6 +4132,7 @@ export default defineComponent({
|
|||||||
address: "address",
|
address: "address",
|
||||||
starttime: "beginTime",
|
starttime: "beginTime",
|
||||||
createtime: "createTime",
|
createtime: "createTime",
|
||||||
|
createName: "createName",
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -4109,6 +4140,7 @@ export default defineComponent({
|
|||||||
itm.pageNo = pageNo;
|
itm.pageNo = pageNo;
|
||||||
});
|
});
|
||||||
state.tableData6 = datas;
|
state.tableData6 = datas;
|
||||||
|
console.log("state.tableData6", state.tableData6);
|
||||||
};
|
};
|
||||||
|
|
||||||
const options1 = ref([
|
const options1 = ref([
|
||||||
@@ -4190,11 +4222,17 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
const createft = () => {
|
const createft = () => {
|
||||||
if(!state.valueE1 || !state.xzinputV1){
|
if (!state.valueE1 || !state.xzinputV1) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请输入必填项");
|
return message.warning("请输入必填项");
|
||||||
}
|
}
|
||||||
console.log(" state.valueE1", state.valueE1,!state.bs_hs && state.valueE1 == 2,state.bs_hs,state.valueE1 == 2);
|
console.log(
|
||||||
|
" state.valueE1",
|
||||||
|
state.valueE1,
|
||||||
|
!state.bs_hs && state.valueE1 == 2,
|
||||||
|
state.bs_hs,
|
||||||
|
state.valueE1 == 2
|
||||||
|
);
|
||||||
if (state.bs_hs && state.valueE1 == 2) {
|
if (state.bs_hs && state.valueE1 == 2) {
|
||||||
state.of_hs = false;
|
state.of_hs = false;
|
||||||
// state.ft_hs = true;
|
// state.ft_hs = true;
|
||||||
@@ -4206,7 +4244,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
state.qdms_inputV1 = state.xzinputV1;
|
state.qdms_inputV1 = state.xzinputV1;
|
||||||
state.xzinputV1 = "";
|
state.xzinputV1 = "";
|
||||||
console.log("qdms_inputV1", state.qdms_inputV1 );
|
console.log("qdms_inputV1", state.qdms_inputV1);
|
||||||
getDictList("faceclassPic");
|
getDictList("faceclassPic");
|
||||||
getTea();
|
getTea();
|
||||||
}
|
}
|
||||||
@@ -4841,8 +4879,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
//编辑面授课
|
//编辑面授课
|
||||||
const handleEdit = async (itm, type) => {
|
const handleEdit = async (itm, type) => {
|
||||||
|
|
||||||
|
|
||||||
console.log(45555);
|
console.log(45555);
|
||||||
console.log(itm);
|
console.log(itm);
|
||||||
if (type === "1") {
|
if (type === "1") {
|
||||||
|
|||||||
@@ -160,7 +160,23 @@
|
|||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="file_img">
|
<div class="file_img">
|
||||||
<img :src="item.img" />
|
<img v-if="(item.indexOf('jpg')!==-1 ||item.indexOf('jpeg')!==-1 ||item.indexOf('png')!==-1 )" src="@/assets/images/coursewareManage/pngpic.png" />
|
||||||
|
<div v-else>
|
||||||
|
<img v-if="(item.indexOf('doc')!==-1)" src="@/assets/images/coursewareManage/docpic.png" />
|
||||||
|
<div v-else>
|
||||||
|
<img v-if="(item.indexOf('xls')!==-1)" src="@/assets/images/coursewareManage/xlspic.png" />
|
||||||
|
<div v-else>
|
||||||
|
<img v-if="(item.indexOf('ppt')!==-1)" src="@/assets/images/coursewareManage/pptpic.png" />
|
||||||
|
<div v-else>
|
||||||
|
<img v-if="(item.indexOf('pdf')!==-1)" src="@/assets/images/coursewareManage/pdfpic.png" />
|
||||||
|
<div v-else>
|
||||||
|
<img 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>
|
</div>
|
||||||
<div class="file_detail">
|
<div class="file_detail">
|
||||||
<div class="file_name">
|
<div class="file_name">
|
||||||
|
|||||||
@@ -1448,7 +1448,7 @@ export default {
|
|||||||
addAuthList: [],
|
addAuthList: [],
|
||||||
|
|
||||||
codevisible: false, //二维码是否显示
|
codevisible: false, //二维码是否显示
|
||||||
codeInfo: null, //二维码标题
|
codeInfo: null, //二维码内容
|
||||||
});
|
});
|
||||||
|
|
||||||
const levelList = reactive({
|
const levelList = reactive({
|
||||||
|
|||||||
@@ -964,7 +964,10 @@ export default defineComponent({
|
|||||||
console.log("data=====", data);
|
console.log("data=====", data);
|
||||||
for (let i in data) {
|
for (let i in data) {
|
||||||
console.log("what ------ > ", i, data);
|
console.log("what ------ > ", i, data);
|
||||||
state.taskSyllabus.push({ text: data[i].name?data[i].name:'无阶段任务', children: [] });
|
if(data[i].taskList.length!==0){
|
||||||
|
state.taskSyllabus.push({ text: data[i].name?data[i].name:'无阶段任务', children: [] });
|
||||||
|
}
|
||||||
|
|
||||||
for (let j in data[i].taskList) {
|
for (let j in data[i].taskList) {
|
||||||
state.taskSyllabus[i].children.push({
|
state.taskSyllabus[i].children.push({
|
||||||
course: checkType(data[i].taskList[j].type),
|
course: checkType(data[i].taskList[j].type),
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
<div class="projectAdd">
|
<div class="projectAdd">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<span class="title"
|
<span class="title"
|
||||||
>{{ projectInfo.parentId ? "编辑" : "创建" }}项目</span
|
>{{ projectInfo.parentId ? "编辑" : "创建" }}项目</span
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
@click="backPage"
|
@click="backPage"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
to="/projectmanage"
|
to="/projectmanage"
|
||||||
class="goback"
|
class="goback"
|
||||||
>
|
>
|
||||||
<span class="return"></span><span class="returntext">返回</span>
|
<span class="return"></span><span class="returntext">返回</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -19,8 +19,8 @@
|
|||||||
<div class="name" v-if="projectInfo.parentName">
|
<div class="name" v-if="projectInfo.parentName">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">项目归属</div>
|
<div class="inname">项目归属</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,26 +33,26 @@
|
|||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">项目名称</div>
|
<div class="inname">项目名称</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="projectInfo.name"
|
v-model:value="projectInfo.name"
|
||||||
placeholder="请输入项目名称"
|
placeholder="请输入项目名称"
|
||||||
show-count
|
show-count
|
||||||
:maxlength="30"
|
:maxlength="30"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">分类</div>
|
<div class="inname">分类</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,92 +61,97 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name flex-top">
|
<div class="name flex-top">
|
||||||
<div class="namebox" style="margin-top:10px">
|
<div class="namebox" style="margin-top: 10px">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">封面图</div>
|
<div class="inname">封面图</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in select" style="flex:1">
|
<div class="in select" style="flex: 1">
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="picUrlName"
|
v-model:value="picUrlName"
|
||||||
dropdownClassName="dropdown-style"
|
dropdownClassName="dropdown-style"
|
||||||
style="width: 440px"
|
style="width: 440px"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="projectPic"
|
:options="projectPic"
|
||||||
@change="handleChangeSelect"
|
@change="handleChangeSelect"
|
||||||
allowClear
|
allowClear
|
||||||
></a-select>
|
></a-select>
|
||||||
<img
|
<img
|
||||||
style="width:100px;height:100px;margin-top:20px;border-radius: 8px"
|
style="
|
||||||
v-if="projectInfo.picUrl"
|
width: 100px;
|
||||||
:src="projectInfo.picUrl"
|
height: 100px;
|
||||||
alt="avatar"
|
margin-top: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
"
|
||||||
|
v-if="projectInfo.picUrl"
|
||||||
|
:src="projectInfo.picUrl"
|
||||||
|
alt="avatar"
|
||||||
/>
|
/>
|
||||||
<div class="i_bottom">
|
<div class="i_bottom">
|
||||||
<span style="color: #999ba3">
|
<span style="color: #999ba3">
|
||||||
高宽比为16:9 (如:800*450) png或jpg图片
|
高宽比为16:9 (如:800*450) png或jpg图片
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">项目时间</div>
|
<div class="inname">项目时间</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="in">
|
<div class="in">
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
separator="至"
|
separator="至"
|
||||||
:placeholder="[' 开始时间', ' 结束时间']"
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
v-model:value="projectInfo.rangeTime"
|
v-model:value="projectInfo.rangeTime"
|
||||||
style="width: 100%; height: 40px; border-radius: 5px"
|
style="width: 100%; height: 40px; border-radius: 5px"
|
||||||
valueFormat="YYYY-MM-DD HH:mm:ss"
|
valueFormat="YYYY-MM-DD HH:mm:ss"
|
||||||
@change="timeChange"
|
@change="timeChange"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">项目经理</div>
|
<div class="inname">项目经理</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in">
|
||||||
<ProjectManager
|
<ProjectManager
|
||||||
v-model:value="projectInfo.managerId"
|
v-model:value="projectInfo.managerId"
|
||||||
v-model:name="projectInfo.manager"
|
v-model:name="projectInfo.manager"
|
||||||
@onChange="managerChange"
|
@onChange="managerChange"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
></ProjectManager>
|
></ProjectManager>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">资源归属</div>
|
<div class="inname">资源归属</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="in select">
|
<div class="in select">
|
||||||
<OrgClass
|
<OrgClass
|
||||||
v-model:value="projectInfo.sourceBelongId"
|
v-model:value="projectInfo.sourceBelongId"
|
||||||
v-model:name="projectInfo.sourceBelongName"
|
v-model:name="projectInfo.sourceBelongName"
|
||||||
></OrgClass>
|
></OrgClass>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -156,12 +161,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:value="projectInfo.remark"
|
v-model:value="projectInfo.remark"
|
||||||
style="height: 80px"
|
style="height: 80px"
|
||||||
placeholder="请输入说明"
|
placeholder="请输入说明"
|
||||||
show-count
|
show-count
|
||||||
:maxlength="200"
|
:maxlength="200"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -171,16 +176,16 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in">
|
||||||
<a-checkbox
|
<a-checkbox
|
||||||
v-model:checked="courseSyncFlag"
|
v-model:checked="courseSyncFlag"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
><span
|
><span
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: rgba(109, 117, 132, 1);
|
color: rgba(109, 117, 132, 1);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
"
|
"
|
||||||
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
||||||
></a-checkbox
|
></a-checkbox
|
||||||
>
|
>
|
||||||
<!-- <a-switch
|
<!-- <a-switch
|
||||||
v-model:checked="projectInfo.courseSyncFlag"
|
v-model:checked="projectInfo.courseSyncFlag"
|
||||||
@@ -201,8 +206,8 @@
|
|||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">项目级别</div>
|
<div class="inname">项目级别</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -213,8 +218,8 @@
|
|||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">培训分类</div>
|
<div class="inname">培训分类</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -229,8 +234,8 @@
|
|||||||
<!-- src="../../assets/images/basicinfo/asterisk.png"-->
|
<!-- src="../../assets/images/basicinfo/asterisk.png"-->
|
||||||
<!-- />-->
|
<!-- />-->
|
||||||
<img
|
<img
|
||||||
class="nameimg"
|
class="nameimg"
|
||||||
src="../../assets/images/basicinfo/asterisk.png"
|
src="../../assets/images/basicinfo/asterisk.png"
|
||||||
/>
|
/>
|
||||||
<div class="inname">是否BOEU实施</div>
|
<div class="inname">是否BOEU实施</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -242,8 +247,8 @@
|
|||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
></a-switch> -->
|
></a-switch> -->
|
||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-model:value="projectInfo.boeFlag"
|
v-model:value="projectInfo.boeFlag"
|
||||||
:disabled="viewDetail ? true : false"
|
:disabled="viewDetail ? true : false"
|
||||||
>
|
>
|
||||||
<a-radio :style="radioStyle" :value="1">是</a-radio>
|
<a-radio :style="radioStyle" :value="1">是</a-radio>
|
||||||
<a-radio :style="radioStyle" :value="0">否</a-radio>
|
<a-radio :style="radioStyle" :value="0">否</a-radio>
|
||||||
@@ -256,19 +261,19 @@
|
|||||||
<div class="inname" style="width: 50px">模版</div>
|
<div class="inname" style="width: 50px">模版</div>
|
||||||
<div class="in select" style="margin-left: 2px">
|
<div class="in select" style="margin-left: 2px">
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="classifySelect5"
|
v-model:value="classifySelect5"
|
||||||
placeholder="请选择模版"
|
placeholder="请选择模版"
|
||||||
:size="size"
|
:size="size"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:options="classifyList5"
|
:options="classifyList5"
|
||||||
@change="classificationChange5"
|
@change="classificationChange5"
|
||||||
@popupScroll="templateScroll"
|
@popupScroll="templateScroll"
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
label: 'name',
|
label: 'name',
|
||||||
value: 'projectTemplateId',
|
value: 'projectTemplateId',
|
||||||
}"
|
}"
|
||||||
@@ -281,7 +286,7 @@
|
|||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
<a-button v-on:click="createProject" type="primary" class="btn1"
|
<a-button v-on:click="createProject" type="primary" class="btn1"
|
||||||
>确定
|
>确定
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button @click="backPage" class="btn2">取消</a-button>
|
<a-button @click="backPage" class="btn2">取消</a-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -289,18 +294,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {onMounted, reactive, toRefs, watch} from "vue";
|
import { onMounted, reactive, toRefs, watch } from "vue";
|
||||||
import {message} from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import {useRoute, useRouter} from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import * as api from "../../api/index";
|
import * as api from "../../api/index";
|
||||||
import {useStore} from "vuex";
|
import { useStore } from "vuex";
|
||||||
import ProjectClass from "@/components/project/ProjectClass";
|
import ProjectClass from "@/components/project/ProjectClass";
|
||||||
import TrainClass from "@/components/project/TrainClass";
|
import TrainClass from "@/components/project/TrainClass";
|
||||||
import OrgClass from "@/components/project/OrgClass";
|
import OrgClass from "@/components/project/OrgClass";
|
||||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||||
import ProjectLevel from "@/components/project/ProjectLevel";
|
import ProjectLevel from "@/components/project/ProjectLevel";
|
||||||
import {changeOwnership, scrollLoad} from "@/api/method";
|
import { changeOwnership, scrollLoad } from "@/api/method";
|
||||||
|
import { storage } from "../../api/storage";
|
||||||
export default {
|
export default {
|
||||||
name: "projectAdd",
|
name: "projectAdd",
|
||||||
components: {
|
components: {
|
||||||
@@ -329,16 +334,19 @@ export default {
|
|||||||
},
|
},
|
||||||
classifyList5: [],
|
classifyList5: [],
|
||||||
courseSyncFlag: false,
|
courseSyncFlag: false,
|
||||||
picUrlName:'请选择封面图'
|
picUrlName: "请选择封面图",
|
||||||
});
|
});
|
||||||
|
|
||||||
// 封面图选择
|
// 封面图选择
|
||||||
const handleChangeSelect = (value) => {
|
const handleChangeSelect = (value) => {
|
||||||
console.log(value)
|
console.log(value);
|
||||||
state.projectInfo.picUrl= value
|
state.projectInfo.picUrl = value;
|
||||||
}
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
state.projectPic = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
|
state.projectPic = store.state.projectPic.map((e) => ({
|
||||||
|
value: e.dictValue,
|
||||||
|
label: e.dictName,
|
||||||
|
}));
|
||||||
state.viewDetail = routers.query.viewDetail;
|
state.viewDetail = routers.query.viewDetail;
|
||||||
getProjectInfo();
|
getProjectInfo();
|
||||||
getTemplate();
|
getTemplate();
|
||||||
@@ -359,29 +367,32 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
api
|
api
|
||||||
.getProjectDetail({projectId: routers.query.projectId})
|
.getProjectDetail({ projectId: routers.query.projectId })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
state.projectInfo = res.data.data.projectInfo;
|
state.projectInfo = res.data.data.projectInfo;
|
||||||
|
|
||||||
console.log(res)
|
console.log(res);
|
||||||
let picurl = res.data.data.projectInfo.picUrl
|
let picurl = res.data.data.projectInfo.picUrl;
|
||||||
let dates = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
|
let dates = store.state.projectPic.map((e) => ({
|
||||||
console.log(dates,picurl)
|
value: e.dictValue,
|
||||||
for(let i=0;i<dates.length;i++){
|
label: e.dictName,
|
||||||
if(dates[i].value==picurl){
|
}));
|
||||||
state.picUrlName = dates[i].label
|
console.log(dates, picurl);
|
||||||
}
|
for (let i = 0; i < dates.length; i++) {
|
||||||
|
if (dates[i].value == picurl) {
|
||||||
|
state.picUrlName = dates[i].label;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
state.projectInfo.rangeTime = [
|
state.projectInfo.rangeTime = [
|
||||||
state.projectInfo.beginTime,
|
state.projectInfo.beginTime,
|
||||||
state.projectInfo.endTime,
|
state.projectInfo.endTime,
|
||||||
];
|
];
|
||||||
state.projectInfo.parentName = routers.query.parentName;
|
state.projectInfo.parentName = routers.query.parentName;
|
||||||
state.courseSyncFlag = state.projectInfo.courseSyncFlag
|
state.courseSyncFlag = state.projectInfo.courseSyncFlag
|
||||||
? true
|
? true
|
||||||
: false;
|
: false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const backPage = () => {
|
const backPage = () => {
|
||||||
@@ -466,19 +477,23 @@ export default {
|
|||||||
state.projectInfo.type = 3;
|
state.projectInfo.type = 3;
|
||||||
state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0;
|
state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0;
|
||||||
api.createProject(state.projectInfo).then((res) => {
|
api.createProject(state.projectInfo).then((res) => {
|
||||||
state.projectInfo.projectId || changeOwnership(
|
state.projectInfo.projectId ||
|
||||||
"project",
|
changeOwnership("project", res.data.data.projectId, [
|
||||||
res.data.data.projectId,
|
{ id: res.data.data.createId, name: res.data.data.createName },
|
||||||
[{id: res.data.data.createId, name: res.data.data.createName}]
|
]);
|
||||||
);
|
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("编辑成功");
|
message.success(state.projectInfo.projectId ? "编辑成功" : "创建成功");
|
||||||
router.back();
|
// router.back();
|
||||||
|
router.push({
|
||||||
|
path: "/taskpage",
|
||||||
|
query: { projectId: res.data.data.projectId },
|
||||||
|
});
|
||||||
|
storage.set("projectId", res.data.data.projectId);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function managerChange(e, l, d) {
|
function managerChange(e, l, d) {
|
||||||
state.projectInfo.sourceBelongId = d
|
state.projectInfo.sourceBelongId = d;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -490,7 +505,7 @@ export default {
|
|||||||
createProject,
|
createProject,
|
||||||
backPage,
|
backPage,
|
||||||
templateScroll,
|
templateScroll,
|
||||||
handleChangeSelect
|
handleChangeSelect,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1407,9 +1407,18 @@ export default {
|
|||||||
state.level = [];
|
state.level = [];
|
||||||
// state.tableData = array[0]
|
// state.tableData = array[0]
|
||||||
// 当无阶段任务出现时 显示当前数据
|
// 当无阶段任务出现时 显示当前数据
|
||||||
getTableData(array[0].taskList)
|
if(array[0].taskList.length!==0){
|
||||||
|
getTableData(array[0].taskList)
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
state.level = array;
|
let datearr = []
|
||||||
|
for(let i=0;i<array.length;i++){
|
||||||
|
if(array[i].id!==0&&array[i].taskList.length!==0){
|
||||||
|
datearr.push(array[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.level = datearr;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user