mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 05:46:45 +08:00
feat:合并
This commit is contained in:
60
src/App.vue
60
src/App.vue
@@ -1,33 +1,35 @@
|
||||
<template>
|
||||
<div id="container" v-if="!isLogin">
|
||||
<nav-top />
|
||||
<nav-top/>
|
||||
<div style="display: flex">
|
||||
<nav-left />
|
||||
<nav-left/>
|
||||
<div style="flex: 1; display: flex; flex-direction: column; width: 0">
|
||||
<open-pages />
|
||||
<bread-crumb />
|
||||
<open-pages/>
|
||||
<bread-crumb/>
|
||||
<main>
|
||||
<a-config-provider :locale="zhCN">
|
||||
<router-view />
|
||||
<router-view/>
|
||||
</a-config-provider>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container" v-if="isLogin">
|
||||
<router-view />
|
||||
<router-view/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { computed, defineComponent, ref, watch } from "vue";
|
||||
import { useRouter, useRoute } from "vue-router";
|
||||
import { useStore } from "vuex";
|
||||
import {computed, defineComponent, ref, watch} from "vue";
|
||||
import {useRouter, useRoute} from "vue-router";
|
||||
import {useStore} from "vuex";
|
||||
import NavLeft from "@/components/NavLeft";
|
||||
import NavTop from "@/components/NavTop";
|
||||
import OpenPages from "@/components/OpenPages";
|
||||
import BreadCrumb from "@/components/BreadCrumb";
|
||||
import zhCN from "ant-design-vue/es/locale/zh_CN";
|
||||
import * as api from "./api/index1";
|
||||
import * as api1 from "@/api/index1";
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
NavLeft,
|
||||
@@ -55,20 +57,53 @@ export default defineComponent({
|
||||
|
||||
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 orgtreeList = localStorage.getItem("orgtreeList")
|
||||
if (orgtreeList) {
|
||||
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
|
||||
return;
|
||||
}
|
||||
let obj = {
|
||||
keyWord: "",
|
||||
id: -1,
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
};
|
||||
api
|
||||
.getOrgInfo(obj)
|
||||
api.getOrgInfo(obj)
|
||||
.then((res) => {
|
||||
console.log("组织树获取成功", res);
|
||||
if (res.data.code === 200) {
|
||||
// state.treeData = res.data.data;
|
||||
localStorage.setItem("orgtreeList", JSON.stringify(res.data.data));
|
||||
store.commit("getOrgtreeList", res.data.data);
|
||||
}
|
||||
})
|
||||
@@ -77,7 +112,7 @@ export default defineComponent({
|
||||
});
|
||||
};
|
||||
|
||||
getOrgTree();
|
||||
init();
|
||||
|
||||
return {
|
||||
isLogin,
|
||||
@@ -125,6 +160,7 @@ export default defineComponent({
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
}
|
||||
|
||||
// @media screen and (max-width: 1366px) {
|
||||
// .cmMain {
|
||||
// width: 750px;
|
||||
|
||||
@@ -318,7 +318,7 @@ export default {
|
||||
state.textV1 = "";
|
||||
state.textV2 = "";
|
||||
state.time = "";
|
||||
// message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
|
||||
@@ -251,8 +251,8 @@ export default {
|
||||
if (props.edit) {
|
||||
api
|
||||
.updateDiscuss(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
.then(async (res) => {
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
message.destroy();
|
||||
@@ -265,8 +265,8 @@ export default {
|
||||
} else {
|
||||
api
|
||||
.createDiscuss(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
.then(async (res) => {
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
message.destroy();
|
||||
|
||||
@@ -337,11 +337,15 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectName: {
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const options = ref([]);
|
||||
const state = reactive({
|
||||
loading:false,
|
||||
selfacetvisible: false,
|
||||
addhomeworkvisible: false,
|
||||
addtestvisible: false,
|
||||
|
||||
@@ -304,9 +304,9 @@ export default {
|
||||
};
|
||||
if (props.EditWorkId > 0) {
|
||||
updateWorkTaskUsing(obj)
|
||||
.then((res) => {
|
||||
.then(async(res) => {
|
||||
// console.log("添加成功", res);
|
||||
updateTask(res);
|
||||
await updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
@@ -316,9 +316,9 @@ export default {
|
||||
});
|
||||
} else {
|
||||
createWorkTask(obj)
|
||||
.then((res) => {
|
||||
.then(async(res) => {
|
||||
console.log("添加成功", res);
|
||||
updateTask(res);
|
||||
await updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
|
||||
@@ -642,20 +642,20 @@ export default {
|
||||
if (props.edit) {
|
||||
api
|
||||
.updateLiveBroadcastMessage(state.obj)
|
||||
.then((res) => {
|
||||
.then(async(res) => {
|
||||
message.destroy();
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {});
|
||||
} else {
|
||||
api
|
||||
.createLiveBroadcast(state.obj)
|
||||
.then((res) => {
|
||||
.then(async(res) => {
|
||||
message.destroy();
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {});
|
||||
|
||||
@@ -270,7 +270,17 @@ export default {
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys,selectedRows) => {
|
||||
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 = () => {
|
||||
@@ -294,6 +304,7 @@ export default {
|
||||
teacher:value.teacher,
|
||||
sysCreateBy:value.sysCreateBy,
|
||||
overtime:"",
|
||||
courseId: Number(value.onlineClassesId),
|
||||
};
|
||||
array.push(obj);
|
||||
}
|
||||
|
||||
@@ -477,6 +477,7 @@ export default {
|
||||
})
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
@@ -727,8 +727,8 @@ export default {
|
||||
if (props.edit) {
|
||||
// 编辑任务
|
||||
updateExamination(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
.then(async(res) => {
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -737,8 +737,8 @@ export default {
|
||||
} else {
|
||||
// 创建任务
|
||||
createExamination(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
.then(async(res) => {
|
||||
await updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
@@ -114,11 +114,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { toRefs, reactive } from "vue";
|
||||
import {toRefs, reactive, onMounted} from "vue";
|
||||
import { getTask } from "../../api/indexTaskadd";
|
||||
import { toDate } from "../../api/method";
|
||||
import { auditView } from "../../api/indexAudit";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as api1 from "@/api/index1";
|
||||
|
||||
export default {
|
||||
name: "ProjectAudit",
|
||||
@@ -180,6 +181,8 @@ export default {
|
||||
noticeFlag: null, //未改
|
||||
templateId: null, //未改
|
||||
attach: null,
|
||||
calssifyList:[],
|
||||
faceclassScene:[]
|
||||
});
|
||||
|
||||
const closeDrawer = () => {
|
||||
@@ -284,7 +287,15 @@ export default {
|
||||
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 {
|
||||
...toRefs(state),
|
||||
closeDrawer,
|
||||
|
||||
@@ -353,9 +353,9 @@ export default {
|
||||
if (props.edit) {
|
||||
api
|
||||
.editVote(obj)
|
||||
.then((res) => {
|
||||
.then(async(res) => {
|
||||
console.log("updte======");
|
||||
updateToTask(res);
|
||||
await updateToTask(res);
|
||||
closeDrawer();
|
||||
message.destroy();
|
||||
message.success("修改投票信息成功")
|
||||
@@ -367,8 +367,8 @@ export default {
|
||||
} else {
|
||||
api
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
.then(async(res) => {
|
||||
await updateToTask(res);
|
||||
closeDrawer();
|
||||
message.destroy();
|
||||
message.success("创建投票信息成功")
|
||||
|
||||
@@ -24,6 +24,11 @@ export default createStore({
|
||||
routerId: null,
|
||||
projectTemplateId: null,
|
||||
orgtreeList: [],
|
||||
faceclassPic: null,
|
||||
faceclassClass: [],
|
||||
faceclassScene: [],
|
||||
projectLevel: [],//项目级别
|
||||
projectSys: [],//培训分类
|
||||
},
|
||||
getters: {},
|
||||
mutations: {
|
||||
@@ -45,6 +50,9 @@ export default createStore({
|
||||
getOrgtreeList(state, data) {
|
||||
state.orgtreeList = data
|
||||
},
|
||||
SET_DICT(state,{key,data}){
|
||||
state[key] = data
|
||||
},
|
||||
SET_projectTemplateId(state, projectTemplateId) {
|
||||
state.projectTemplateId = projectTemplateId;
|
||||
}
|
||||
|
||||
@@ -613,7 +613,7 @@
|
||||
:key="index"
|
||||
>
|
||||
<div class="file_img">
|
||||
<img :src="item.img" />
|
||||
|
||||
</div>
|
||||
<div class="file_detail">
|
||||
<!-- <div class="file_name">
|
||||
@@ -1786,6 +1786,8 @@
|
||||
<div class="select fitems">
|
||||
<a-range-picker
|
||||
style="width: 440px; height: 40px; border-radius: 8px"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
format="YYYY-MM-DD HH:mm"
|
||||
v-model:value="xjkkinputV3"
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
@@ -1870,12 +1872,13 @@
|
||||
<span style="margin-right: 3px">完成规则</span>
|
||||
</div>
|
||||
<div class="b_input">
|
||||
<!--
|
||||
<a-checkbox
|
||||
v-model:checked="regisCom"
|
||||
@click="regisCom = !regisCom"
|
||||
>
|
||||
<span style="color: #6d7584">报名即完成</span>
|
||||
</a-checkbox>
|
||||
</a-checkbox> -->
|
||||
<a-checkbox v-model:checked="signCom" @click="signCom = !signCom">
|
||||
<span style="color: #6d7584">签到即完成</span>
|
||||
</a-checkbox>
|
||||
@@ -1926,6 +1929,61 @@
|
||||
</span>
|
||||
</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="cstm_btn btn5">
|
||||
<div class="btnText" @click="handleCancelStu">取消</div>
|
||||
@@ -2638,7 +2696,7 @@ const columns1 = [
|
||||
case "1":
|
||||
return "线上";
|
||||
case "2":
|
||||
return "线下";
|
||||
return "面授";
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -3308,6 +3366,7 @@ export default defineComponent({
|
||||
addStudentList: null, //选中列表
|
||||
|
||||
newCourseName: null, //新建开课名称
|
||||
addLoading:false,
|
||||
});
|
||||
|
||||
const showStuAdd = () => {
|
||||
@@ -3445,6 +3504,9 @@ export default defineComponent({
|
||||
const handleDel = (index) => {
|
||||
state.imgList.splice(index, 1);
|
||||
};
|
||||
const handleDel2 = (index) => {
|
||||
state.fileList.splice(index, 1);
|
||||
};
|
||||
|
||||
// 渲染列表1操作
|
||||
const getTableDate = async () => {
|
||||
@@ -3977,8 +4039,10 @@ export default defineComponent({
|
||||
state.qdms_inputV6 = "";
|
||||
state.imgList = [];
|
||||
valueHtml.value = "";
|
||||
state.fileList =[];
|
||||
};
|
||||
const handlePush = (param) => {
|
||||
state.addLoading = true;
|
||||
console.log("state.imgList");
|
||||
console.log(state.imgList);
|
||||
let files = "";
|
||||
@@ -4020,6 +4084,7 @@ export default defineComponent({
|
||||
getTableDate();
|
||||
ft_exit();
|
||||
rest();
|
||||
state.addLoading = false;
|
||||
// console.log("res.data", res.data);
|
||||
if (param === "review") {
|
||||
//新建时点击审核按钮
|
||||
@@ -4047,6 +4112,7 @@ export default defineComponent({
|
||||
state.cstm_hs = true;
|
||||
};
|
||||
const handleCancelStu = () => {
|
||||
|
||||
state.cstm_hs = false;
|
||||
state.kk_eidt = false;
|
||||
state.xjkkradioV1 = "";
|
||||
@@ -4059,12 +4125,16 @@ export default defineComponent({
|
||||
state.checked4 = false;
|
||||
};
|
||||
const handleSureStu = () => {
|
||||
state.addLoading = false;
|
||||
let startTime,
|
||||
endTime = 0;
|
||||
if (state.xjkkinputV3) {
|
||||
startTime = parseInt(state.xjkkinputV3[0].$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 = {
|
||||
offcourseId: state.offcourseId,
|
||||
offcoursePlanId: state.offcoursePlanId, //开课ID,不传代表新增
|
||||
@@ -4073,13 +4143,7 @@ export default defineComponent({
|
||||
applyFlag: state.checked1 ? 1 : 0,
|
||||
attach: state.filesList.length ? state.filesList.join(",") : "",
|
||||
beginTime: startTime,
|
||||
completeType: state.regisCom
|
||||
? "1,"
|
||||
: "0," + state.signCom
|
||||
? "1,"
|
||||
: "0," + state.comLeave
|
||||
? "1"
|
||||
: "0",
|
||||
completeType:type,
|
||||
endTime: endTime,
|
||||
evalFlag: state.checked4 ? 1 : 0,
|
||||
name: state.xjkkinputV1,
|
||||
@@ -4099,10 +4163,12 @@ export default defineComponent({
|
||||
return false;
|
||||
}
|
||||
editPlan(postData).then((res) => {
|
||||
state.addLoading = false;
|
||||
if (res.data.code === 200) {
|
||||
getTableDate3();
|
||||
handleCancelStu();
|
||||
rest();
|
||||
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -4123,20 +4189,14 @@ export default defineComponent({
|
||||
state.checked1 = item.applyFlag === 1 ? true : false;
|
||||
state.filesList = item.attach ? item.attach.split(",") : [];
|
||||
state.xjkkinputV3 = [
|
||||
dayjs(item.beginTime, "YYYY/MM/DD"),
|
||||
dayjs(item.endTime, "YYYY/MM/DD"),
|
||||
dayjs(item.beginTime, "YYYY-MM-DD HH:mm:ss"),
|
||||
dayjs(item.endTime, "YYYY-MM-DD HH:mm:ss"),
|
||||
];
|
||||
options4CurId.value = item.teacherId;
|
||||
(state.regisCom = item.completeType.split(",")[0] == 1 ? true : false),
|
||||
(state.signCom = item.completeType.split(",")[1] == 1 ? true : false),
|
||||
(state.comLeave = item.completeType.split(",")[2] == 1 ? true : false),
|
||||
(state.completeType = state.regisCom
|
||||
? "1,"
|
||||
: "0," + state.signCom
|
||||
? "1,"
|
||||
: "0," + state.comLeave
|
||||
? "1"
|
||||
: "0"),
|
||||
// (state.regisCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||||
(state.signCom = item.completeType.split(",")[0] == "1" ? true : false),
|
||||
(state.comLeave = item.completeType.split(",")[1] == "1" ? true : false),
|
||||
|
||||
(state.checked4 = item.evalFlag === 1 ? true : false);
|
||||
state.xjkkinputV1 = item.name;
|
||||
if (item.signFlag === 1) {
|
||||
@@ -4525,6 +4585,9 @@ export default defineComponent({
|
||||
options4CurId.value = item.teacherId;
|
||||
state.qdms_inputV5 = null;
|
||||
state.qdms_inputV6 = item.intro;
|
||||
if(item.attach==""){
|
||||
state.imgList =[];
|
||||
}else{
|
||||
if (item.attach.indexOf(",")) {
|
||||
const arr = item.attach.split(",");
|
||||
arr.forEach((item) => {
|
||||
@@ -4533,6 +4596,8 @@ export default defineComponent({
|
||||
} else {
|
||||
state.imgList = [{ img: item.attach }];
|
||||
}
|
||||
}
|
||||
|
||||
valueHtml.value = item.outline;
|
||||
|
||||
getTea();
|
||||
@@ -4685,7 +4750,13 @@ export default defineComponent({
|
||||
console.log(file);
|
||||
fileUp(formData).then((res) => {
|
||||
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;
|
||||
@@ -4844,6 +4915,7 @@ export default defineComponent({
|
||||
getdateToTimeFn,
|
||||
handlePostSure,
|
||||
handleDeleteKaike,
|
||||
handleDel2,
|
||||
handelEditStu,
|
||||
handelGuan,
|
||||
beforeUpload3,
|
||||
@@ -5109,7 +5181,7 @@ export default defineComponent({
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
top:-100%;
|
||||
transform: translate(-50%, -50%);
|
||||
.of_header {
|
||||
position: absolute;
|
||||
@@ -5249,7 +5321,7 @@ export default defineComponent({
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 10%;
|
||||
top: -100%;
|
||||
transform: translate(-50%, -50%);
|
||||
.cst_header {
|
||||
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 {
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
@@ -6061,7 +6219,7 @@ export default defineComponent({
|
||||
.file_img {
|
||||
width: 27px;
|
||||
height: 32px;
|
||||
// background-image: url(@/assets/images/coursewareManage/imgs.png);
|
||||
background-image: url(@/assets/images/coursewareManage/imgs.png);
|
||||
margin-right: 22px;
|
||||
img {
|
||||
width: 100%;
|
||||
|
||||
@@ -160,9 +160,9 @@
|
||||
"
|
||||
v-model:value="classifySelect1"
|
||||
placeholder="请选择项目经理"
|
||||
:filterOption="false"
|
||||
style="width: 100%"
|
||||
:options="classifyList1"
|
||||
:filterOption="false"
|
||||
@change="classificationChange1"
|
||||
allowClear
|
||||
showSearch
|
||||
@@ -190,12 +190,12 @@
|
||||
return triggerNode.parentNode || document.body;
|
||||
}
|
||||
"
|
||||
v-model:value="classifySelect2"
|
||||
v-model:value="projectInfo.sourceBelongId"
|
||||
style="width: 100%"
|
||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||
placeholder="自动带出 可修改"
|
||||
allow-clear
|
||||
:tree-data="classifyList2"
|
||||
:tree-data="orgtreeList"
|
||||
:fieldNames="{
|
||||
children: 'treeChildList',
|
||||
label: 'name',
|
||||
@@ -275,16 +275,11 @@
|
||||
return triggerNode.parentNode || document.body;
|
||||
}
|
||||
"
|
||||
v-model:value="classifySelect3"
|
||||
v-model:value="projectInfo.level"
|
||||
:options="classifyList3"
|
||||
style="width: 100%"
|
||||
@change="classificationChange3"
|
||||
placeholder="请选择项目级别"
|
||||
:disabled="viewDetail ? true : false"
|
||||
:fieldNames="{
|
||||
label: 'dictName',
|
||||
value: 'dictCode',
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -303,16 +298,11 @@
|
||||
return triggerNode.parentNode || document.body;
|
||||
}
|
||||
"
|
||||
v-model:value="classifySelect4"
|
||||
:options="classifyList4"
|
||||
v-model:value="projectInfo.systemId"
|
||||
:options="systemOption"
|
||||
style="width: 100%"
|
||||
@change="classificationChange4"
|
||||
placeholder="请选择培训分类"
|
||||
:disabled="viewDetail ? true : false"
|
||||
:fieldNames="{
|
||||
label: 'dictName',
|
||||
value: 'dictCode',
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -404,7 +394,8 @@
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
<a-button v-on:click="createProject" type="primary" class="btn1"
|
||||
>确定</a-button
|
||||
>确定
|
||||
</a-button
|
||||
>
|
||||
<a-button @click="backPage" class="btn2">取消</a-button>
|
||||
</div>
|
||||
@@ -412,15 +403,16 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, ref, onUnmounted, computed } from "vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import { useRouter, useRoute } from "vue-router";
|
||||
import {reactive, toRefs, ref, onUnmounted, onMounted} from "vue";
|
||||
import {message} from "ant-design-vue";
|
||||
import {useRouter, useRoute} from "vue-router";
|
||||
import dayjs from "dayjs";
|
||||
import * as api from "../../api/index";
|
||||
import * as api1 from "../../api/index1";
|
||||
import { storage } from "../../api/storage";
|
||||
import { toDate, scrollLoad } from "../../api/method";
|
||||
import { useStore } from "vuex";
|
||||
import {storage} from "../../api/storage";
|
||||
import {toDate, scrollLoad} from "../../api/method";
|
||||
import {useStore} from "vuex";
|
||||
|
||||
export default {
|
||||
name: "projectAdd",
|
||||
setup() {
|
||||
@@ -446,19 +438,24 @@ export default {
|
||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||
|
||||
currentPage1: 1, //项目经理
|
||||
pageSize1: 10, //项目经理
|
||||
|
||||
searchName: null,
|
||||
pageSize1: 10, //项目经理,
|
||||
orgtreeList: [],
|
||||
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 imageUrl = ref("");
|
||||
// 项目级别
|
||||
const classifyList3 = ref([
|
||||
// { value: 1, label: "集团级" },
|
||||
]);
|
||||
|
||||
// 培训分类
|
||||
const classifyList4 = ref([
|
||||
@@ -485,16 +482,13 @@ export default {
|
||||
picUrl = res.data.data.rows[0].dictValue;
|
||||
}
|
||||
}
|
||||
if (param === "projectLevel") {
|
||||
classifyList3.value = res.data.data.rows;
|
||||
}
|
||||
|
||||
if (param === "projectSys") {
|
||||
classifyList4.value = res.data.data.rows;
|
||||
}
|
||||
if (
|
||||
classifyList.value &&
|
||||
imageUrl.value &&
|
||||
classifyList3.value &&
|
||||
classifyList4.value
|
||||
) {
|
||||
getDictInfo();
|
||||
@@ -507,7 +501,6 @@ export default {
|
||||
};
|
||||
getDictList("projectClass");
|
||||
getDictList("projectPic");
|
||||
getDictList("projectLevel");
|
||||
getDictList("projectSys");
|
||||
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
|
||||
//分类、封面图、项目级别、培训分类回显
|
||||
@@ -533,7 +526,6 @@ export default {
|
||||
|
||||
const isEdit = ref(false);
|
||||
let peojectID = ""; //项目id
|
||||
console.log("store.state.orgtreeList", store.state.orgtreeList);
|
||||
const editProject = () => {
|
||||
if (routers.query.projectId) {
|
||||
storage.set("projectAddId", routers.query.projectId);
|
||||
@@ -541,10 +533,11 @@ export default {
|
||||
peojectID = routers.query.projectId;
|
||||
// 需要编辑
|
||||
api
|
||||
.getProjectDetail({ projectId: routers.query.projectId })
|
||||
.getProjectDetail({projectId: routers.query.projectId})
|
||||
.then((res) => {
|
||||
if (res.status == 200 && res.data.code == 200) {
|
||||
let info = res.data.data.projectInfo;
|
||||
state.projectInfo = info;
|
||||
console.log(
|
||||
"classifyList.value.find(item=>item.dictCode===info.category)",
|
||||
classifyList.value.find((item) => {
|
||||
@@ -584,21 +577,17 @@ export default {
|
||||
}
|
||||
console.log(optionsManage);
|
||||
state.classifySelect1 = optionsManage;
|
||||
state.classifySelect2 =
|
||||
classifyList2.value[info.sourceBelongId - 1];
|
||||
state.classifySelect2 = info.sourceBelongId
|
||||
remark.value = info.remark;
|
||||
state.checked = info.boeFlag ? info.boeFlag : false;
|
||||
state.classifySelect3 = classifyList3.value[info.level];
|
||||
state.classifySelect4 = classifyList4.value[info.systemId - 1];
|
||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||
// fileList1.value = info.attach.split(",");
|
||||
|
||||
state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
|
||||
picUrl = info.picUrl;
|
||||
beginTime = Number(info.beginTime / 1000);
|
||||
endTime = Number(info.endTime / 1000);
|
||||
manager = info.manager;
|
||||
managerId = info.managerId;
|
||||
sourceBelongIdC = Number(info.sourceBelongId);
|
||||
courseSyncFlag = info.courseSyncFlag;
|
||||
levels = info.level;
|
||||
systemid = info.systemId;
|
||||
@@ -614,10 +603,11 @@ export default {
|
||||
peojectID = storage.get("projectAddId");
|
||||
// 需要编辑
|
||||
api
|
||||
.getProjectDetail({ projectId: storage.get("projectAddId") })
|
||||
.getProjectDetail({projectId: storage.get("projectAddId")})
|
||||
.then((res) => {
|
||||
if (res.status == 200 && res.data.code == 200) {
|
||||
let info = res.data.data.projectInfo;
|
||||
state.projectInfo = info;
|
||||
console.log("我是从本地存储获取的id", info);
|
||||
projectName.value = info.name;
|
||||
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
|
||||
@@ -643,11 +633,10 @@ export default {
|
||||
}
|
||||
console.log(optionsManage);
|
||||
state.classifySelect1 = optionsManage;
|
||||
state.classifySelect2 =
|
||||
classifyList2.value[info.sourceBelongId - 1];
|
||||
state.classifySelect2 = info.sourceBelongId
|
||||
state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
|
||||
remark.value = info.remark;
|
||||
state.checked = info.boeFlag ? info.boeFlag : false;
|
||||
state.classifySelect3 = classifyList3.value[info.level];
|
||||
state.classifySelect4 = classifyList4.value[info.systemId - 1];
|
||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||
|
||||
@@ -656,7 +645,6 @@ export default {
|
||||
endTime = Number(info.endTime / 1000);
|
||||
manager = info.manager;
|
||||
managerId = info.managerId;
|
||||
sourceBelongIdC = Number(info.sourceBelongId);
|
||||
courseSyncFlag = info.courseSyncFlag;
|
||||
levels = info.level;
|
||||
systemid = info.systemId;
|
||||
@@ -802,20 +790,18 @@ export default {
|
||||
// 项目经理 后续接口调用
|
||||
const classifyList1 = ref([]);
|
||||
//获取学员
|
||||
const getMember = () => {
|
||||
console.log("state.searchName", state.searchName);
|
||||
const getMember = (e) => {
|
||||
console.log("state.classifySelect1", e, state.classifySelect1);
|
||||
api1
|
||||
.getMemberInfo({
|
||||
pageNo: state.currentPage1,
|
||||
pageSize: state.pageSize1,
|
||||
keyWord: state.searchName ? state.searchName : "",
|
||||
keyWord: e ? e : "",
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
let arr = res.data.data.rows;
|
||||
|
||||
let array = classifyList1.value;
|
||||
console.log("array", array);
|
||||
arr.map((value) => {
|
||||
let obj = {
|
||||
value: value.id,
|
||||
@@ -885,21 +871,13 @@ export default {
|
||||
managerId = midstr;
|
||||
};
|
||||
|
||||
// 资源归属 sourceBelongId 后续给接口
|
||||
const classifyList2 = computed(() => {
|
||||
return store.state.orgtreeList ? store.state.orgtreeList : ref([]);
|
||||
});
|
||||
|
||||
let sourceBelongIdC = "";
|
||||
const classificationChange2 = (key) => {
|
||||
console.log(`selected ${key}`, classifyList2);
|
||||
sourceBelongIdC = key;
|
||||
const classificationChange2 = (key, obj) => {
|
||||
state.projectInfo.sourceBelongName = obj[0]
|
||||
};
|
||||
|
||||
//选择项目级别
|
||||
let levels = "";
|
||||
const classificationChange3 = (key) => {
|
||||
console.log(`selected ${key}`, classifyList3);
|
||||
levels = key;
|
||||
};
|
||||
|
||||
@@ -956,11 +934,10 @@ export default {
|
||||
}
|
||||
console.log(optionsManage);
|
||||
state.classifySelect1 = optionsManage;
|
||||
state.classifySelect2 =
|
||||
classifyList2.value[info.sourceBelongId - 1];
|
||||
state.classifySelect2 = info.sourceBelongId
|
||||
state.orgtreeList.unshift({id: info.sourceBelongId, name: info.sourceBelongName})
|
||||
remark.value = info.remark;
|
||||
state.checked = info.boeFlag ? info.boeFlag : false;
|
||||
state.classifySelect3 = classifyList3.value[info.level];
|
||||
state.classifySelect4 = classifyList4.value[info.systemId - 1];
|
||||
state.checked1 = info.boeFlag ? info.boeFlag : false;
|
||||
// fileList1.value = info.attach.split(",");
|
||||
@@ -970,7 +947,6 @@ export default {
|
||||
endTime = Number(info.endTime / 1000);
|
||||
manager = info.manager;
|
||||
managerId = info.managerId;
|
||||
sourceBelongIdC = Number(info.sourceBelongId);
|
||||
courseSyncFlag = info.courseSyncFlag;
|
||||
levels = info.level;
|
||||
systemid = info.systemId;
|
||||
@@ -1092,11 +1068,12 @@ export default {
|
||||
endTime: endTime,
|
||||
manager: manager,
|
||||
managerId: managerId,
|
||||
sourceBelongId: sourceBelongIdC,
|
||||
sourceBelongId: state.projectInfo.sourceBelongId,
|
||||
sourceBelongName: state.projectInfo.sourceBelongName,
|
||||
remark: remark["value"],
|
||||
courseSyncFlag: courseSyncFlag,
|
||||
level: levels,
|
||||
systemId: systemid,
|
||||
level: state.projectInfo.level,
|
||||
systemId: state.projectInfo.systemId,
|
||||
boeFlag: boeFlag,
|
||||
attach: attach,
|
||||
type: 3,
|
||||
@@ -1149,7 +1126,8 @@ export default {
|
||||
endTime: endTime,
|
||||
manager: manager,
|
||||
managerId: managerId,
|
||||
sourceBelongId: sourceBelongIdC,
|
||||
sourceBelongId: state.projectInfo.sourceBelongId,
|
||||
sourceBelongName: state.projectInfo.sourceBelongName,
|
||||
remark: remark["value"],
|
||||
courseSyncFlag: courseSyncFlag,
|
||||
level: levels,
|
||||
@@ -1183,7 +1161,7 @@ export default {
|
||||
setTimeout(() => {
|
||||
router.push({
|
||||
path: "/taskpage",
|
||||
query: { id: res.data.data.projectId },
|
||||
query: {id: res.data.data.projectId},
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
@@ -1222,8 +1200,6 @@ export default {
|
||||
beforeUpload1,
|
||||
onRangeChange,
|
||||
classifyList1,
|
||||
classifyList2,
|
||||
classifyList3,
|
||||
classifyList4,
|
||||
classifyList5,
|
||||
remark,
|
||||
@@ -1240,7 +1216,7 @@ export default {
|
||||
templateScroll,
|
||||
memberScroll,
|
||||
getMember,
|
||||
searchMember,
|
||||
searchMember
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -1538,16 +1514,19 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.treeDropdown {
|
||||
// width: 240px !important;
|
||||
// border-radius: 5px;
|
||||
// min-height: 600px !important;
|
||||
.ant-select-tree-list-scrollbar {
|
||||
width: 5px !important;
|
||||
|
||||
.ant-select-tree-list-scrollbar-thumb {
|
||||
background-color: #4ea6ff !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-select-tree-indent-unit {
|
||||
width: 7px !important;
|
||||
}
|
||||
|
||||
@@ -1209,6 +1209,7 @@ export default {
|
||||
taskList: value.taskList,
|
||||
value: value.stageId,
|
||||
label: value.name,
|
||||
courseId: value.courseId ? value.courseId : null
|
||||
};
|
||||
array.push(obj);
|
||||
}
|
||||
@@ -1660,6 +1661,7 @@ export default {
|
||||
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
||||
});
|
||||
const showDrawerOnline = (id, eleId) => {
|
||||
console.log('id, eleId',id, eleId);
|
||||
state.addonlinevisible = true;
|
||||
state.EditOnlineId = id;
|
||||
state.projectTaskId = eleId;
|
||||
@@ -1834,7 +1836,7 @@ export default {
|
||||
//编辑的按钮
|
||||
const decideType = (type, id, eleId) => {
|
||||
state.edit = true;
|
||||
console.log(type, id);
|
||||
console.log(type, id, eleId);
|
||||
if (type == "外链") {
|
||||
showDrawerAddRef(id, eleId);
|
||||
} else if (type == "直播") {
|
||||
|
||||
Reference in New Issue
Block a user