feat:合并

This commit is contained in:
lixg
2022-12-02 10:43:04 +08:00
15 changed files with 701 additions and 491 deletions

View File

@@ -1,33 +1,35 @@
<template> <template>
<div id="container" v-if="!isLogin"> <div id="container" v-if="!isLogin">
<nav-top /> <nav-top/>
<div style="display: flex"> <div style="display: flex">
<nav-left /> <nav-left/>
<div style="flex: 1; display: flex; flex-direction: column; width: 0"> <div style="flex: 1; display: flex; flex-direction: column; width: 0">
<open-pages /> <open-pages/>
<bread-crumb /> <bread-crumb/>
<main> <main>
<a-config-provider :locale="zhCN"> <a-config-provider :locale="zhCN">
<router-view /> <router-view/>
</a-config-provider> </a-config-provider>
</main> </main>
</div> </div>
</div> </div>
</div> </div>
<div id="container" v-if="isLogin"> <div id="container" v-if="isLogin">
<router-view /> <router-view/>
</div> </div>
</template> </template>
<script> <script>
import { computed, defineComponent, ref, watch } from "vue"; import {computed, defineComponent, ref, watch} from "vue";
import { useRouter, useRoute } from "vue-router"; import {useRouter, useRoute} from "vue-router";
import { useStore } from "vuex"; import {useStore} from "vuex";
import NavLeft from "@/components/NavLeft"; import NavLeft from "@/components/NavLeft";
import NavTop from "@/components/NavTop"; import NavTop from "@/components/NavTop";
import OpenPages from "@/components/OpenPages"; import OpenPages from "@/components/OpenPages";
import BreadCrumb from "@/components/BreadCrumb"; import BreadCrumb from "@/components/BreadCrumb";
import zhCN from "ant-design-vue/es/locale/zh_CN"; import zhCN from "ant-design-vue/es/locale/zh_CN";
import * as api from "./api/index1"; import * as api from "./api/index1";
import * as api1 from "@/api/index1";
export default defineComponent({ export default defineComponent({
components: { components: {
NavLeft, NavLeft,
@@ -55,20 +57,53 @@ export default defineComponent({
const currentRouteName = computed(() => route.name); const currentRouteName = computed(() => route.name);
function init() {
console.log(store)
initDict('faceclassPic')
initDict('faceclassClass')
initDict('faceclassScene')
initDict('projectLevel')
initDict('projectSys')
getOrgTree()
}
async function initDict(key) {
let list = localStorage.getItem(key)
if (list) {
store.commit('SET_DICT', {key, data:JSON.parse(list)});
return;
}
list = await getDictList(key)
localStorage.setItem(key, JSON.stringify(list));
store.commit('SET_DICT', {key, data:list});
}
const getDictList = (param) => api1.getDict({
pageNo: 1,
pageSize: 20,
setCode: param
}).then((res) => res.data.data.rows)
//获取组织树 //获取组织树
const getOrgTree = () => { const getOrgTree = () => {
const orgtreeList = localStorage.getItem("orgtreeList")
if (orgtreeList) {
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
return;
}
let obj = { let obj = {
keyWord: "", keyWord: "",
id: -1, id: -1,
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
}; };
api api.getOrgInfo(obj)
.getOrgInfo(obj)
.then((res) => { .then((res) => {
console.log("组织树获取成功", res); console.log("组织树获取成功", res);
if (res.data.code === 200) { if (res.data.code === 200) {
// state.treeData = res.data.data; // state.treeData = res.data.data;
localStorage.setItem("orgtreeList", JSON.stringify(res.data.data));
store.commit("getOrgtreeList", res.data.data); store.commit("getOrgtreeList", res.data.data);
} }
}) })
@@ -77,7 +112,7 @@ export default defineComponent({
}); });
}; };
getOrgTree(); init();
return { return {
isLogin, isLogin,
@@ -125,6 +160,7 @@ export default defineComponent({
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
} }
// @media screen and (max-width: 1366px) { // @media screen and (max-width: 1366px) {
// .cmMain { // .cmMain {
// width: 750px; // width: 750px;

View File

@@ -318,7 +318,7 @@ export default {
state.textV1 = ""; state.textV1 = "";
state.textV2 = ""; state.textV2 = "";
state.time = ""; state.time = "";
// message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
localStorage.setItem("stageId", props.chooseStageId); localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive); localStorage.setItem("chapterId", props.isactive);
}; };

View File

@@ -251,8 +251,8 @@ export default {
if (props.edit) { if (props.edit) {
api api
.updateDiscuss(obj) .updateDiscuss(obj)
.then((res) => { .then(async (res) => {
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
message.destroy(); message.destroy();
@@ -265,8 +265,8 @@ export default {
} else { } else {
api api
.createDiscuss(obj) .createDiscuss(obj)
.then((res) => { .then(async (res) => {
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
message.destroy(); message.destroy();

View File

@@ -337,11 +337,15 @@ export default {
type: Number, type: Number,
default: null, default: null,
}, },
projectName: {
type: String,
default: null,
},
}, },
setup(props, ctx) { setup(props, ctx) {
const options = ref([]); const options = ref([]);
const state = reactive({ const state = reactive({
loading:false,
selfacetvisible: false, selfacetvisible: false,
addhomeworkvisible: false, addhomeworkvisible: false,
addtestvisible: false, addtestvisible: false,

View File

@@ -304,9 +304,9 @@ export default {
}; };
if (props.EditWorkId > 0) { if (props.EditWorkId > 0) {
updateWorkTaskUsing(obj) updateWorkTaskUsing(obj)
.then((res) => { .then(async(res) => {
// console.log("添加成功", res); // console.log("添加成功", res);
updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
@@ -316,9 +316,9 @@ export default {
}); });
} else { } else {
createWorkTask(obj) createWorkTask(obj)
.then((res) => { .then(async(res) => {
console.log("添加成功", res); console.log("添加成功", res);
updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })

View File

@@ -642,20 +642,20 @@ export default {
if (props.edit) { if (props.edit) {
api api
.updateLiveBroadcastMessage(state.obj) .updateLiveBroadcastMessage(state.obj)
.then((res) => { .then(async(res) => {
message.destroy(); message.destroy();
message.success("提交成功"); message.success("提交成功");
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => {}); .catch(() => {});
} else { } else {
api api
.createLiveBroadcast(state.obj) .createLiveBroadcast(state.obj)
.then((res) => { .then(async(res) => {
message.destroy(); message.destroy();
message.success("提交成功"); message.success("提交成功");
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => {}); .catch(() => {});

View File

@@ -270,7 +270,17 @@ export default {
}; };
const onSelectChange = (selectedRowKeys,selectedRows) => { const onSelectChange = (selectedRowKeys,selectedRows) => {
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.addOnlineList = selectedRows state.addOnlineList = selectedRows;
if( props.edit && selectedRows.length > 0 ){
selectedRows.map((value)=>{
if(value.courseId == props.EditOnlineId){
message.destroy()
message.error('选项相同,请重新选择')
state.selectedRowKeys = []
state.addOnlineList = []
}
})
}
}; };
//清空所选 //清空所选
const clearLine = () => { const clearLine = () => {
@@ -294,6 +304,7 @@ export default {
teacher:value.teacher, teacher:value.teacher,
sysCreateBy:value.sysCreateBy, sysCreateBy:value.sysCreateBy,
overtime:"", overtime:"",
courseId: Number(value.onlineClassesId),
}; };
array.push(obj); array.push(obj);
} }

View File

@@ -477,6 +477,7 @@ export default {
}) })
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`); message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {

View File

@@ -727,8 +727,8 @@ export default {
if (props.edit) { if (props.edit) {
// 编辑任务 // 编辑任务
updateExamination(obj) updateExamination(obj)
.then((res) => { .then(async(res) => {
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
@@ -737,8 +737,8 @@ export default {
} else { } else {
// 创建任务 // 创建任务
createExamination(obj) createExamination(obj)
.then((res) => { .then(async(res) => {
updateTask(res); await updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {

View File

@@ -114,11 +114,12 @@
</template> </template>
<script> <script>
import { toRefs, reactive } from "vue"; import {toRefs, reactive, onMounted} from "vue";
import { getTask } from "../../api/indexTaskadd"; import { getTask } from "../../api/indexTaskadd";
import { toDate } from "../../api/method"; import { toDate } from "../../api/method";
import { auditView } from "../../api/indexAudit"; import { auditView } from "../../api/indexAudit";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import * as api1 from "@/api/index1";
export default { export default {
name: "ProjectAudit", name: "ProjectAudit",
@@ -180,6 +181,8 @@ export default {
noticeFlag: null, //未改 noticeFlag: null, //未改
templateId: null, //未改 templateId: null, //未改
attach: null, attach: null,
calssifyList:[],
faceclassScene:[]
}); });
const closeDrawer = () => { const closeDrawer = () => {
@@ -284,7 +287,15 @@ export default {
message.warning("提交失败"); message.warning("提交失败");
}); });
}; };
const getDictList = async (param) => api1.getDict({
pageNo: 1,
pageSize: 20,
setCode: param
}).then((res) => res.data.data.rows)
onMounted(async () => {
state.calssifyList = (await getDictList("faceclassClass")).map(e => ({ label: e.dictName, value: e.dictCode })) //内容
state.faceclassScene = (await getDictList("faceclassScene")).map(e => ({ label: e.dictName, value: e.dictCode })) //场景
});
return { return {
...toRefs(state), ...toRefs(state),
closeDrawer, closeDrawer,

View File

@@ -353,9 +353,9 @@ export default {
if (props.edit) { if (props.edit) {
api api
.editVote(obj) .editVote(obj)
.then((res) => { .then(async(res) => {
console.log("updte======"); console.log("updte======");
updateToTask(res); await updateToTask(res);
closeDrawer(); closeDrawer();
message.destroy(); message.destroy();
message.success("修改投票信息成功") message.success("修改投票信息成功")
@@ -367,8 +367,8 @@ export default {
} else { } else {
api api
.createVote(obj) .createVote(obj)
.then((res) => { .then(async(res) => {
updateToTask(res); await updateToTask(res);
closeDrawer(); closeDrawer();
message.destroy(); message.destroy();
message.success("创建投票信息成功") message.success("创建投票信息成功")

View File

@@ -24,6 +24,11 @@ export default createStore({
routerId: null, routerId: null,
projectTemplateId: null, projectTemplateId: null,
orgtreeList: [], orgtreeList: [],
faceclassPic: null,
faceclassClass: [],
faceclassScene: [],
projectLevel: [],//项目级别
projectSys: [],//培训分类
}, },
getters: {}, getters: {},
mutations: { mutations: {
@@ -45,6 +50,9 @@ export default createStore({
getOrgtreeList(state, data) { getOrgtreeList(state, data) {
state.orgtreeList = data state.orgtreeList = data
}, },
SET_DICT(state,{key,data}){
state[key] = data
},
SET_projectTemplateId(state, projectTemplateId) { SET_projectTemplateId(state, projectTemplateId) {
state.projectTemplateId = projectTemplateId; state.projectTemplateId = projectTemplateId;
} }

View File

@@ -613,7 +613,7 @@
:key="index" :key="index"
> >
<div class="file_img"> <div class="file_img">
<img :src="item.img" />
</div> </div>
<div class="file_detail"> <div class="file_detail">
<!-- <div class="file_name"> <!-- <div class="file_name">
@@ -1786,6 +1786,8 @@
<div class="select fitems"> <div class="select fitems">
<a-range-picker <a-range-picker
style="width: 440px; height: 40px; border-radius: 8px" style="width: 440px; height: 40px; border-radius: 8px"
:show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm"
v-model:value="xjkkinputV3" v-model:value="xjkkinputV3"
separator="至" separator="至"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
@@ -1870,12 +1872,13 @@
<span style="margin-right: 3px">完成规则</span> <span style="margin-right: 3px">完成规则</span>
</div> </div>
<div class="b_input"> <div class="b_input">
<!--
<a-checkbox <a-checkbox
v-model:checked="regisCom" v-model:checked="regisCom"
@click="regisCom = !regisCom" @click="regisCom = !regisCom"
> >
<span style="color: #6d7584">报名即完成</span> <span style="color: #6d7584">报名即完成</span>
</a-checkbox> </a-checkbox> -->
<a-checkbox v-model:checked="signCom" @click="signCom = !signCom"> <a-checkbox v-model:checked="signCom" @click="signCom = !signCom">
<span style="color: #6d7584">签到即完成</span> <span style="color: #6d7584">签到即完成</span>
</a-checkbox> </a-checkbox>
@@ -1926,6 +1929,61 @@
</span> </span>
</div> </div>
</div> </div>
<div class="mbl_items12">
<div
class="i12_box1"
v-for="(item, index) in filesList"
:key="index"
>
<div class="file_img">
</div>
<div class="file_detail">
<!-- <div class="file_name">
<span style="color: #6f6f6f">{{ item.name }}</span>
</div> -->
<!-- 条件渲染 s -->
<!-- <div class="file_size">
<span style="color: #999ba3">{{ item.size }}</span>
</div> -->
<div class="file_updata">
<div class="updatabox">
<div class="updatacolor"></div>
<div class="updataxq">上传完成</div>
<!-- <div class="updatacolor2"></div>
<div class="updataxq2">上传失败</div> -->
<!-- <div class="updatacolor3"></div>
<div class="updataxq3">正在上传</div> -->
</div>
<div class="upjd">
<span style="margin: auto 5px">100%</span>
</div>
</div>
<!-- 条件渲染 e -->
</div>
<div class="file_operation">
<div class="fobox">
<span style="color: #4ea6ff" @click="handleDel2(index)">
删除
</span>
</div>
<!-- <div class="fobox">
<span style="color: #4ea6ff">重传</span>
</div>
<div class="fobox">
<span style="color: #4ea6ff">取消</span>
</div> -->
<!-- <div class="fobox">
<span style="color: #4ea6ff; margin-right: 5px">
暂停
</span>
</div>
<div class="fobox">
<span style="color: #4ea6ff">取消</span>
</div> -->
</div>
</div>
</div>
<div class="items_btn"> <div class="items_btn">
<div class="cstm_btn btn5"> <div class="cstm_btn btn5">
<div class="btnText" @click="handleCancelStu">取消</div> <div class="btnText" @click="handleCancelStu">取消</div>
@@ -2638,7 +2696,7 @@ const columns1 = [
case "1": case "1":
return "线上"; return "线上";
case "2": case "2":
return "线下"; return "面授";
} }
}, },
}, },
@@ -3308,6 +3366,7 @@ export default defineComponent({
addStudentList: null, //选中列表 addStudentList: null, //选中列表
newCourseName: null, //新建开课名称 newCourseName: null, //新建开课名称
addLoading:false,
}); });
const showStuAdd = () => { const showStuAdd = () => {
@@ -3445,6 +3504,9 @@ export default defineComponent({
const handleDel = (index) => { const handleDel = (index) => {
state.imgList.splice(index, 1); state.imgList.splice(index, 1);
}; };
const handleDel2 = (index) => {
state.fileList.splice(index, 1);
};
// 渲染列表1操作 // 渲染列表1操作
const getTableDate = async () => { const getTableDate = async () => {
@@ -3977,8 +4039,10 @@ export default defineComponent({
state.qdms_inputV6 = ""; state.qdms_inputV6 = "";
state.imgList = []; state.imgList = [];
valueHtml.value = ""; valueHtml.value = "";
state.fileList =[];
}; };
const handlePush = (param) => { const handlePush = (param) => {
state.addLoading = true;
console.log("state.imgList"); console.log("state.imgList");
console.log(state.imgList); console.log(state.imgList);
let files = ""; let files = "";
@@ -4020,6 +4084,7 @@ export default defineComponent({
getTableDate(); getTableDate();
ft_exit(); ft_exit();
rest(); rest();
state.addLoading = false;
// console.log("res.data", res.data); // console.log("res.data", res.data);
if (param === "review") { if (param === "review") {
//新建时点击审核按钮 //新建时点击审核按钮
@@ -4047,6 +4112,7 @@ export default defineComponent({
state.cstm_hs = true; state.cstm_hs = true;
}; };
const handleCancelStu = () => { const handleCancelStu = () => {
state.cstm_hs = false; state.cstm_hs = false;
state.kk_eidt = false; state.kk_eidt = false;
state.xjkkradioV1 = ""; state.xjkkradioV1 = "";
@@ -4059,12 +4125,16 @@ export default defineComponent({
state.checked4 = false; state.checked4 = false;
}; };
const handleSureStu = () => { const handleSureStu = () => {
state.addLoading = false;
let startTime, let startTime,
endTime = 0; endTime = 0;
if (state.xjkkinputV3) { if (state.xjkkinputV3) {
startTime = parseInt(state.xjkkinputV3[0].$d.getTime() / 1000); startTime = parseInt(state.xjkkinputV3[0].$d.getTime() / 1000);
endTime = parseInt(state.xjkkinputV3[1].$d.getTime() / 1000); endTime = parseInt(state.xjkkinputV3[1].$d.getTime() / 1000);
} }
let t=state.signCom?"1,":"0,";
let p= state.comLeave?"1":"0";
let type = t.concat(p);
const postData = { const postData = {
offcourseId: state.offcourseId, offcourseId: state.offcourseId,
offcoursePlanId: state.offcoursePlanId, //开课ID,不传代表新增 offcoursePlanId: state.offcoursePlanId, //开课ID,不传代表新增
@@ -4073,13 +4143,7 @@ export default defineComponent({
applyFlag: state.checked1 ? 1 : 0, applyFlag: state.checked1 ? 1 : 0,
attach: state.filesList.length ? state.filesList.join(",") : "", attach: state.filesList.length ? state.filesList.join(",") : "",
beginTime: startTime, beginTime: startTime,
completeType: state.regisCom completeType:type,
? "1,"
: "0," + state.signCom
? "1,"
: "0," + state.comLeave
? "1"
: "0",
endTime: endTime, endTime: endTime,
evalFlag: state.checked4 ? 1 : 0, evalFlag: state.checked4 ? 1 : 0,
name: state.xjkkinputV1, name: state.xjkkinputV1,
@@ -4099,10 +4163,12 @@ export default defineComponent({
return false; return false;
} }
editPlan(postData).then((res) => { editPlan(postData).then((res) => {
state.addLoading = false;
if (res.data.code === 200) { if (res.data.code === 200) {
getTableDate3(); getTableDate3();
handleCancelStu(); handleCancelStu();
rest(); rest();
} }
}); });
}; };
@@ -4123,20 +4189,14 @@ export default defineComponent({
state.checked1 = item.applyFlag === 1 ? true : false; state.checked1 = item.applyFlag === 1 ? true : false;
state.filesList = item.attach ? item.attach.split(",") : []; state.filesList = item.attach ? item.attach.split(",") : [];
state.xjkkinputV3 = [ state.xjkkinputV3 = [
dayjs(item.beginTime, "YYYY/MM/DD"), dayjs(item.beginTime, "YYYY-MM-DD HH:mm:ss"),
dayjs(item.endTime, "YYYY/MM/DD"), dayjs(item.endTime, "YYYY-MM-DD HH:mm:ss"),
]; ];
options4CurId.value = item.teacherId; options4CurId.value = item.teacherId;
(state.regisCom = item.completeType.split(",")[0] == 1 ? true : false), // (state.regisCom = item.completeType.split(",")[0] == "1" ? true : false),
(state.signCom = item.completeType.split(",")[1] == 1 ? true : false), (state.signCom = item.completeType.split(",")[0] == "1" ? true : false),
(state.comLeave = item.completeType.split(",")[2] == 1 ? true : false), (state.comLeave = item.completeType.split(",")[1] == "1" ? true : false),
(state.completeType = state.regisCom
? "1,"
: "0," + state.signCom
? "1,"
: "0," + state.comLeave
? "1"
: "0"),
(state.checked4 = item.evalFlag === 1 ? true : false); (state.checked4 = item.evalFlag === 1 ? true : false);
state.xjkkinputV1 = item.name; state.xjkkinputV1 = item.name;
if (item.signFlag === 1) { if (item.signFlag === 1) {
@@ -4525,6 +4585,9 @@ export default defineComponent({
options4CurId.value = item.teacherId; options4CurId.value = item.teacherId;
state.qdms_inputV5 = null; state.qdms_inputV5 = null;
state.qdms_inputV6 = item.intro; state.qdms_inputV6 = item.intro;
if(item.attach==""){
state.imgList =[];
}else{
if (item.attach.indexOf(",")) { if (item.attach.indexOf(",")) {
const arr = item.attach.split(","); const arr = item.attach.split(",");
arr.forEach((item) => { arr.forEach((item) => {
@@ -4533,6 +4596,8 @@ export default defineComponent({
} else { } else {
state.imgList = [{ img: item.attach }]; state.imgList = [{ img: item.attach }];
} }
}
valueHtml.value = item.outline; valueHtml.value = item.outline;
getTea(); getTea();
@@ -4685,7 +4750,13 @@ export default defineComponent({
console.log(file); console.log(file);
fileUp(formData).then((res) => { fileUp(formData).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
state.filesList.push(res.data.data); state.filesList.push({
img: res.data.data,
name: file.name,
size: file.size,
});
console.log(state.filesList);
// state.hasImgName = res.data.data;
} }
}); });
return false; return false;
@@ -4844,6 +4915,7 @@ export default defineComponent({
getdateToTimeFn, getdateToTimeFn,
handlePostSure, handlePostSure,
handleDeleteKaike, handleDeleteKaike,
handleDel2,
handelEditStu, handelEditStu,
handelGuan, handelGuan,
beforeUpload3, beforeUpload3,
@@ -5109,7 +5181,7 @@ export default defineComponent({
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 50%; top:-100%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
.of_header { .of_header {
position: absolute; position: absolute;
@@ -5249,7 +5321,7 @@ export default defineComponent({
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 10%; top: -100%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
.cst_header { .cst_header {
position: absolute; position: absolute;
@@ -5325,6 +5397,92 @@ export default defineComponent({
} }
} }
} }
.mbl_items12 {
width: 440px;
margin-left: 100px;
.i12_box1 {
display: flex;
align-items: center;
padding: 17px 0px 17px 21px;
border: 1px solid #eff4fc;
border-radius: 8px;
margin-bottom: 10px;
.file_img {
width: 27px;
height: 32px;
background-image: url(@/assets/images/coursewareManage/imgs.png);
margin-right: 22px;
img {
width: 100%;
height: 100%;
}
}
.file_detail {
width: 250px;
margin-right: 21px;
.file_updata {
display: flex;
align-items: center;
.updatabox {
position: relative;
width: 230px;
height: 5px;
background-color: rgba(192, 192, 192, 0.25);
border-radius: 3px;
.updatacolor {
position: absolute;
left: 0;
width: 100%;
height: 5px;
background-color: #57c887;
border-radius: 3px;
}
.updatacolor2 {
position: absolute;
left: 0;
width: 80%;
height: 5px;
background-color: #ff7474;
border-radius: 3px;
}
.updatacolor3 {
position: absolute;
left: 0;
width: 60%;
height: 5px;
background-color: #388be1;
border-radius: 3px;
}
.updataxq {
position: absolute;
right: 2px;
top: -30px;
color: #57c887;
}
.updataxq2 {
position: absolute;
right: 2px;
top: -30px;
color: #ff7474;
}
.updataxq3 {
position: absolute;
right: 2px;
top: -30px;
color: #388be1;
}
}
}
}
.file_operation {
display: flex;
.fobox {
margin-right: 5px;
cursor: pointer;
}
}
}
}
.items_fj { .items_fj {
margin-bottom: 1px; margin-bottom: 1px;
} }
@@ -6061,7 +6219,7 @@ export default defineComponent({
.file_img { .file_img {
width: 27px; width: 27px;
height: 32px; height: 32px;
// background-image: url(@/assets/images/coursewareManage/imgs.png); background-image: url(@/assets/images/coursewareManage/imgs.png);
margin-right: 22px; margin-right: 22px;
img { img {
width: 100%; width: 100%;

View File

@@ -160,9 +160,9 @@
" "
v-model:value="classifySelect1" v-model:value="classifySelect1"
placeholder="请选择项目经理" placeholder="请选择项目经理"
:filterOption="false"
style="width: 100%" style="width: 100%"
:options="classifyList1" :options="classifyList1"
:filterOption="false"
@change="classificationChange1" @change="classificationChange1"
allowClear allowClear
showSearch showSearch
@@ -190,12 +190,12 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" "
v-model:value="classifySelect2" v-model:value="projectInfo.sourceBelongId"
style="width: 100%" style="width: 100%"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="自动带出 可修改" placeholder="自动带出 可修改"
allow-clear allow-clear
:tree-data="classifyList2" :tree-data="orgtreeList"
:fieldNames="{ :fieldNames="{
children: 'treeChildList', children: 'treeChildList',
label: 'name', label: 'name',
@@ -275,16 +275,11 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" "
v-model:value="classifySelect3" v-model:value="projectInfo.level"
:options="classifyList3" :options="classifyList3"
style="width: 100%" style="width: 100%"
@change="classificationChange3"
placeholder="请选择项目级别" placeholder="请选择项目级别"
:disabled="viewDetail ? true : false" :disabled="viewDetail ? true : false"
:fieldNames="{
label: 'dictName',
value: 'dictCode',
}"
/> />
</div> </div>
</div> </div>
@@ -303,16 +298,11 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" "
v-model:value="classifySelect4" v-model:value="projectInfo.systemId"
:options="classifyList4" :options="systemOption"
style="width: 100%" style="width: 100%"
@change="classificationChange4"
placeholder="请选择培训分类" placeholder="请选择培训分类"
:disabled="viewDetail ? true : false" :disabled="viewDetail ? true : false"
:fieldNames="{
label: 'dictName',
value: 'dictCode',
}"
/> />
</div> </div>
</div> </div>
@@ -404,7 +394,8 @@
<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>
@@ -412,15 +403,16 @@
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs, ref, onUnmounted, computed } from "vue"; import {reactive, toRefs, ref, onUnmounted, onMounted} from "vue";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import { useRouter, useRoute } from "vue-router"; import {useRouter, useRoute} from "vue-router";
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as api from "../../api/index"; import * as api from "../../api/index";
import * as api1 from "../../api/index1"; import * as api1 from "../../api/index1";
import { storage } from "../../api/storage"; import {storage} from "../../api/storage";
import { toDate, scrollLoad } from "../../api/method"; import {toDate, scrollLoad} from "../../api/method";
import { useStore } from "vuex"; import {useStore} from "vuex";
export default { export default {
name: "projectAdd", name: "projectAdd",
setup() { setup() {
@@ -446,19 +438,24 @@ export default {
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null, viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
currentPage1: 1, //项目经理 currentPage1: 1, //项目经理
pageSize1: 10, //项目经理 pageSize1: 10, //项目经理,
orgtreeList: [],
searchName: null, projectInfo: {},
classifyList3: [],
systemOption: []
}); });
onMounted(() => {
console.log('onMounted')
state.orgtreeList = [...store.state.orgtreeList]
state.classifyList3 = store.state.projectLevel.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
state.systemOption = store.state.projectSys.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
})
//分类列表 //分类列表
const classifyList = ref([]); const classifyList = ref([]);
//项目封面 //项目封面
const imageUrl = ref(""); const imageUrl = ref("");
// 项目级别
const classifyList3 = ref([
// { value: 1, label: "集团级" },
]);
// 培训分类 // 培训分类
const classifyList4 = ref([ const classifyList4 = ref([
@@ -485,16 +482,13 @@ export default {
picUrl = res.data.data.rows[0].dictValue; picUrl = res.data.data.rows[0].dictValue;
} }
} }
if (param === "projectLevel") {
classifyList3.value = res.data.data.rows;
}
if (param === "projectSys") { if (param === "projectSys") {
classifyList4.value = res.data.data.rows; classifyList4.value = res.data.data.rows;
} }
if ( if (
classifyList.value && classifyList.value &&
imageUrl.value && imageUrl.value &&
classifyList3.value &&
classifyList4.value classifyList4.value
) { ) {
getDictInfo(); getDictInfo();
@@ -507,7 +501,6 @@ export default {
}; };
getDictList("projectClass"); getDictList("projectClass");
getDictList("projectPic"); getDictList("projectPic");
getDictList("projectLevel");
getDictList("projectSys"); getDictList("projectSys");
//获取分类、封面图、项目级别、培训分类---------------字典配置--------------------------- //获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
//分类、封面图、项目级别、培训分类回显 //分类、封面图、项目级别、培训分类回显
@@ -533,7 +526,6 @@ export default {
const isEdit = ref(false); const isEdit = ref(false);
let peojectID = ""; //项目id let peojectID = ""; //项目id
console.log("store.state.orgtreeList", store.state.orgtreeList);
const editProject = () => { const editProject = () => {
if (routers.query.projectId) { if (routers.query.projectId) {
storage.set("projectAddId", routers.query.projectId); storage.set("projectAddId", routers.query.projectId);
@@ -541,10 +533,11 @@ export default {
peojectID = routers.query.projectId; peojectID = routers.query.projectId;
// 需要编辑 // 需要编辑
api api
.getProjectDetail({ projectId: routers.query.projectId }) .getProjectDetail({projectId: routers.query.projectId})
.then((res) => { .then((res) => {
if (res.status == 200 && res.data.code == 200) { if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo; let info = res.data.data.projectInfo;
state.projectInfo = info;
console.log( console.log(
"classifyList.value.find(item=>item.dictCode===info.category)", "classifyList.value.find(item=>item.dictCode===info.category)",
classifyList.value.find((item) => { classifyList.value.find((item) => {
@@ -584,21 +577,17 @@ export default {
} }
console.log(optionsManage); console.log(optionsManage);
state.classifySelect1 = optionsManage; state.classifySelect1 = optionsManage;
state.classifySelect2 = state.classifySelect2 = info.sourceBelongId
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark; remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false; state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1]; state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false; state.checked1 = info.boeFlag ? info.boeFlag : false;
// fileList1.value = info.attach.split(","); state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
picUrl = info.picUrl; picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000); beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000); endTime = Number(info.endTime / 1000);
manager = info.manager; manager = info.manager;
managerId = info.managerId; managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag; courseSyncFlag = info.courseSyncFlag;
levels = info.level; levels = info.level;
systemid = info.systemId; systemid = info.systemId;
@@ -614,10 +603,11 @@ export default {
peojectID = storage.get("projectAddId"); peojectID = storage.get("projectAddId");
// 需要编辑 // 需要编辑
api api
.getProjectDetail({ projectId: storage.get("projectAddId") }) .getProjectDetail({projectId: storage.get("projectAddId")})
.then((res) => { .then((res) => {
if (res.status == 200 && res.data.code == 200) { if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo; let info = res.data.data.projectInfo;
state.projectInfo = info;
console.log("我是从本地存储获取的id", info); console.log("我是从本地存储获取的id", info);
projectName.value = info.name; projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息 state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
@@ -643,11 +633,10 @@ export default {
} }
console.log(optionsManage); console.log(optionsManage);
state.classifySelect1 = optionsManage; state.classifySelect1 = optionsManage;
state.classifySelect2 = state.classifySelect2 = info.sourceBelongId
classifyList2.value[info.sourceBelongId - 1]; state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
remark.value = info.remark; remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false; state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1]; state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false; state.checked1 = info.boeFlag ? info.boeFlag : false;
@@ -656,7 +645,6 @@ export default {
endTime = Number(info.endTime / 1000); endTime = Number(info.endTime / 1000);
manager = info.manager; manager = info.manager;
managerId = info.managerId; managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag; courseSyncFlag = info.courseSyncFlag;
levels = info.level; levels = info.level;
systemid = info.systemId; systemid = info.systemId;
@@ -802,20 +790,18 @@ export default {
// 项目经理 后续接口调用 // 项目经理 后续接口调用
const classifyList1 = ref([]); const classifyList1 = ref([]);
//获取学员 //获取学员
const getMember = () => { const getMember = (e) => {
console.log("state.searchName", state.searchName); console.log("state.classifySelect1", e, state.classifySelect1);
api1 api1
.getMemberInfo({ .getMemberInfo({
pageNo: state.currentPage1, pageNo: state.currentPage1,
pageSize: state.pageSize1, pageSize: state.pageSize1,
keyWord: state.searchName ? state.searchName : "", keyWord: e ? e : "",
}) })
.then((res) => { .then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
let arr = res.data.data.rows; let arr = res.data.data.rows;
let array = classifyList1.value; let array = classifyList1.value;
console.log("array", array);
arr.map((value) => { arr.map((value) => {
let obj = { let obj = {
value: value.id, value: value.id,
@@ -885,21 +871,13 @@ export default {
managerId = midstr; managerId = midstr;
}; };
// 资源归属 sourceBelongId 后续给接口 const classificationChange2 = (key, obj) => {
const classifyList2 = computed(() => { state.projectInfo.sourceBelongName = obj[0]
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
});
let sourceBelongIdC = "";
const classificationChange2 = (key) => {
console.log(`selected ${key}`, classifyList2);
sourceBelongIdC = key;
}; };
//选择项目级别 //选择项目级别
let levels = ""; let levels = "";
const classificationChange3 = (key) => { const classificationChange3 = (key) => {
console.log(`selected ${key}`, classifyList3);
levels = key; levels = key;
}; };
@@ -956,11 +934,10 @@ export default {
} }
console.log(optionsManage); console.log(optionsManage);
state.classifySelect1 = optionsManage; state.classifySelect1 = optionsManage;
state.classifySelect2 = state.classifySelect2 = info.sourceBelongId
classifyList2.value[info.sourceBelongId - 1]; state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
remark.value = info.remark; remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false; state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1]; state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false; state.checked1 = info.boeFlag ? info.boeFlag : false;
// fileList1.value = info.attach.split(","); // fileList1.value = info.attach.split(",");
@@ -970,7 +947,6 @@ export default {
endTime = Number(info.endTime / 1000); endTime = Number(info.endTime / 1000);
manager = info.manager; manager = info.manager;
managerId = info.managerId; managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag; courseSyncFlag = info.courseSyncFlag;
levels = info.level; levels = info.level;
systemid = info.systemId; systemid = info.systemId;
@@ -1092,11 +1068,12 @@ export default {
endTime: endTime, endTime: endTime,
manager: manager, manager: manager,
managerId: managerId, managerId: managerId,
sourceBelongId: sourceBelongIdC, sourceBelongId: state.projectInfo.sourceBelongId,
sourceBelongName: state.projectInfo.sourceBelongName,
remark: remark["value"], remark: remark["value"],
courseSyncFlag: courseSyncFlag, courseSyncFlag: courseSyncFlag,
level: levels, level: state.projectInfo.level,
systemId: systemid, systemId: state.projectInfo.systemId,
boeFlag: boeFlag, boeFlag: boeFlag,
attach: attach, attach: attach,
type: 3, type: 3,
@@ -1149,7 +1126,8 @@ export default {
endTime: endTime, endTime: endTime,
manager: manager, manager: manager,
managerId: managerId, managerId: managerId,
sourceBelongId: sourceBelongIdC, sourceBelongId: state.projectInfo.sourceBelongId,
sourceBelongName: state.projectInfo.sourceBelongName,
remark: remark["value"], remark: remark["value"],
courseSyncFlag: courseSyncFlag, courseSyncFlag: courseSyncFlag,
level: levels, level: levels,
@@ -1183,7 +1161,7 @@ export default {
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/taskpage", path: "/taskpage",
query: { id: res.data.data.projectId }, query: {id: res.data.data.projectId},
}); });
}, 1000); }, 1000);
} else { } else {
@@ -1222,8 +1200,6 @@ export default {
beforeUpload1, beforeUpload1,
onRangeChange, onRangeChange,
classifyList1, classifyList1,
classifyList2,
classifyList3,
classifyList4, classifyList4,
classifyList5, classifyList5,
remark, remark,
@@ -1240,7 +1216,7 @@ export default {
templateScroll, templateScroll,
memberScroll, memberScroll,
getMember, getMember,
searchMember, searchMember
}; };
}, },
}; };
@@ -1538,16 +1514,19 @@ export default {
} }
} }
} }
.treeDropdown { .treeDropdown {
// width: 240px !important; // width: 240px !important;
// border-radius: 5px; // border-radius: 5px;
// min-height: 600px !important; // min-height: 600px !important;
.ant-select-tree-list-scrollbar { .ant-select-tree-list-scrollbar {
width: 5px !important; width: 5px !important;
.ant-select-tree-list-scrollbar-thumb { .ant-select-tree-list-scrollbar-thumb {
background-color: #4ea6ff !important; background-color: #4ea6ff !important;
} }
} }
.ant-select-tree-indent-unit { .ant-select-tree-indent-unit {
width: 7px !important; width: 7px !important;
} }

View File

@@ -1209,6 +1209,7 @@ export default {
taskList: value.taskList, taskList: value.taskList,
value: value.stageId, value: value.stageId,
label: value.name, label: value.name,
courseId: value.courseId ? value.courseId : null
}; };
array.push(obj); array.push(obj);
} }
@@ -1660,6 +1661,7 @@ export default {
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)"; "0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
}); });
const showDrawerOnline = (id, eleId) => { const showDrawerOnline = (id, eleId) => {
console.log('id, eleId',id, eleId);
state.addonlinevisible = true; state.addonlinevisible = true;
state.EditOnlineId = id; state.EditOnlineId = id;
state.projectTaskId = eleId; state.projectTaskId = eleId;
@@ -1834,7 +1836,7 @@ export default {
//编辑的按钮 //编辑的按钮
const decideType = (type, id, eleId) => { const decideType = (type, id, eleId) => {
state.edit = true; state.edit = true;
console.log(type, id); console.log(type, id, eleId);
if (type == "外链") { if (type == "外链") {
showDrawerAddRef(id, eleId); showDrawerAddRef(id, eleId);
} else if (type == "直播") { } else if (type == "直播") {