feat:合并

This commit is contained in:
lixg
2022-11-23 15:42:17 +08:00
6 changed files with 158 additions and 217 deletions

View File

@@ -22,7 +22,7 @@ export default createStore({
assessmentName: "",
routerId: null,
projectTemplateId:null,
orgtreeList: [],
},
getters: {},
@@ -43,6 +43,9 @@ export default createStore({
},
getOrgtreeList(state, orgtreeList) {
state.orgtreeList = orgtreeList;
},
SET_projectTemplateId (state,projectTemplateId) {
state.projectTemplateId = projectTemplateId;
}
},
actions: {},

View File

@@ -703,7 +703,7 @@
title="关联项目"
placement="right"
width="80%"
@after-visible-change="afterVisibleChange"
@after-visible-change="afterProjVisibleChange"
>
<div class="drawerMain">
<div class="header">
@@ -1051,7 +1051,7 @@ import draggable from "vuedraggable";
import { editTask } from "../../api/indexTaskadd";
import * as apiProj from "../../api/index.js";
import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs";
// import dayjs from "dayjs";
import { toDate } from "../../api/method";
import UnlockMode from "../../components/drawers/UnlockMode.vue";
export default {
@@ -1173,7 +1173,6 @@ export default {
time: "2022-07-15 14:00",
},
],
drawertableData: [],
// drawertableData: [
// {
// key: 1,
@@ -1261,6 +1260,7 @@ export default {
// time: "2022-07-20 14:00:03",
// },
// ],
drawertableData: [],
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
@@ -1326,8 +1326,8 @@ export default {
picUrl: null,
//项目抽屉参数
time: undefined,
assessmentId: null,
assessmentName: "",
projId: null, //选项选到的id
projName: "", //选项选到的name
projectId: null,
projectTaskId: null,
chooseStageId: null,
@@ -1454,52 +1454,59 @@ export default {
state.EditWorkId = id;
state.routerTaskId = eleId;
};
// 作业和考试的抽屉
// 作业抽屉
const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive);
state.addhomeworkvisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
};
//考试抽屉
const showDrawerAddTest = (id, eleId) => {
state.addtestvisible = true;
state.EditTestId = id;
state.routerTaskId = eleId;
};
//测试评估投票抽屉
//测试抽屉
const showDrawerAddEval = (id, eleId) => {
// state.addevalVisible = true;
state.addevalvisible = true;
state.EditEvalId = id;
state.routerTaskId = eleId;
};
//评估抽屉
const showDrawerAddInvist = (id, eleId) => {
// state.addinvistVisible = true;
state.addinvistvisible = true;
state.routerTaskId = eleId;
state.EditInvistId = id;
};
//投票抽屉
const showDrawerAddVote = (id, eleId) => {
// state.addhomeworkvisible = true;
state.addvotevisible = true;
state.EditVoteId = id;
state.routerTaskId = eleId;
};
//直播抽屉
const showDrawerAddLive = (id, eleId) => {
state.addlivevisible = true;
state.EditLiveId = id;
state.routerTaskId = eleId;
};
//外链抽屉
const showDrawerAddRef = (id, eleId) => {
state.addrefvisible = true;
state.EditRefId = id;
state.routerTaskId = eleId;
};
//讨论抽屉
const showDrawerAddDiscuss = (id, eleId) => {
state.adddiscussvisible = true;
state.EditDiscussId = id;
state.routerTaskId = eleId;
};
//活动抽屉
const showDrawerAddActive = (id, eleId) => {
state.addactivevisible = true;
state.EditActiveId = id;
@@ -1511,7 +1518,7 @@ export default {
state.EditActiveId = id;
state.routerTaskId = eleId;
};
// tableData数据赋值方法
//tableData数据赋值方法
const dataAssignment = (id) => {
console.log(state.level);
for (let i = 0; i < state.level.length; i++) {
@@ -1579,9 +1586,10 @@ export default {
const closeDrawer = () => {
state.visible = false;
};
const afterVisibleChange = (bool) => {
console.log("visible", bool);
const afterProjVisibleChange = (bol) => {
if(bol == true){
getAllProjText()
}
};
const showAddStu = () => {
state.AddSvisible = true;
@@ -1698,38 +1706,9 @@ export default {
{
title: "项目名称",
dataIndex: "name",
// dataIndex: "projectName",
key: "projectName",
width: 200,
// align: "center",
ellipsis: true,
// scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.key);
if (!text.record.children) {
return (
<div style={{ display: "flex" }}>
<a-checkbox
checked={
state.projectChecked === text.record.key ? true : false
}
value={text.record.key}
onChange={() => {
// console.log("改变了", text.record.key);
if (state.projectChecked === text.record.key) {
state.projectChecked = null;
} else {
state.projectChecked = text.record.key;
}
}}
></a-checkbox>
<span style="margin-left: 5px">{text.text}</span>
</div>
);
} else {
return <span>{text.text}</span>;
}
},
},
{
title: "项目经理",
@@ -1741,7 +1720,6 @@ export default {
{
title: "创建人",
dataIndex: "creator",
// width: "30%",
key: "creater",
width: 100,
align: "center",
@@ -2008,45 +1986,100 @@ export default {
"selected",
selected
);
console.log(selectedRows.assessmentId);
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
state.projId = selectedRows.parentId;
state.projName = selectedRows.name;
},
};
const getTableDate = (drawertableData) => {
let data = drawertableData;
let array = [];
data.map((value, index) => {
console.log(drawertableData,'drawertableDatadrawertableDatadrawertableDatadrawertableData')
let data = drawertableData
let array = []
data.map((value)=>{
if(value.type ==3){
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
}
else if(value.type == 2){
value.subList.map((item)=>{
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
children:[{
key: item.projectId,
parentId:item.parentId,
name: item.name,
manager:item.manager,
creator: item.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
}]
}
array.push(obj);
})
}
else{
value.subList.map((item)=>{
item.subList.map((items)=>{
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
children:[{
key: item.projectId,
parentId:item.parentId,
name: item.name,
manager:item.manager,
creator: item.createName,
children:[{
key: items.projectId,
parentId:items.parentId,
name: items.name,
manager:items.manager,
creator: items.createName,
}]
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
}]
}
array.push(obj);
})
})
}
})
state.drawertableData = array;
console.log(state.drawertableData,"------------state.drawertableData---------------");
};
//获取全部项目信息接口
const getAllProjText = () => {
apiProj
.getProjectList({
beginTime: 0,
createName: "",
endTime: 0,
manager: "",
name: "",
pageNo: 0,
pageSize: 0,
status: 0,
"beginTime": 0,
"createName": "",
"endTime": "",
"manager": "",
"name": "",
"pageNo": 1,
"pageSize": 10,
"status": 0
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
console.log("---------------项目信息---------------------------");
console.log("---------------项目信息---------------------------",res.data.data);
}
})
.catch((err) => {
@@ -2055,6 +2088,7 @@ export default {
// state.createLoading = false;
});
};
//不需要下面这个添加应该 没选数据
const updateTask = () => {
RouterEditTask({
chapterId: state.isactive,
@@ -2092,7 +2126,7 @@ export default {
closeDrawer,
showModal,
closeModal,
afterVisibleChange,
afterProjVisibleChange,
showAddStu,
showImpStu,
// drawercolumns,

View File

@@ -565,9 +565,11 @@ import { ref, reactive, defineComponent, toRefs, onMounted} from "vue";
import { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate"
import { useRouter } from "vue-router";
import { useStore } from "vuex";
export default defineComponent({
name: "LibraryAdd",
setup() {
const store = useStore();
const state = reactive({
//任务大纲列表
taskSyllabus: [
@@ -761,11 +763,12 @@ export default defineComponent({
onMounted(() => {getDetail()});
// 获取详情
const getDetail = () => {
api.templateDetail(1).then(res => {
api.templateDetail(store.state.projectTemplateId).then(res => {
state.taskSyllabus = []
console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name
state.projectInfo.beginTime = res.data.data.projectTemplateInfo.createTime
let time = new Date(Number(res.data.data.projectTemplateInfo.createTime))
state.projectInfo.beginTime = time.toLocaleDateString()
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
@@ -811,7 +814,7 @@ export default defineComponent({
"notice": state.projectInfo.notice,
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": 0,
"projectTemplateId": store.state.projectTemplateId,
"remark": "",
"sourceBelongId": 0,
"status": 0,
@@ -860,7 +863,7 @@ export default defineComponent({
const stateEdit = () => {
let obj={
"name": "",
"projectTemplateId": 0,
"projectTemplateId": store.state.projectTemplateId,
"remark": "",
"stageId": 0
}
@@ -880,7 +883,7 @@ export default defineComponent({
"flag": true,
"name": "",
"projectTaskId": 0,
"projectTemplateId": 0,
"projectTemplateId": store.state.projectTemplateId,
"stageId": 0,
"type": 0
}
@@ -920,7 +923,6 @@ export default defineComponent({
<style lang="scss">
.content7 {
margin-top: 20px;
.set_tit {
margin-left: 34px;
font-size: 18px;

View File

@@ -47,6 +47,8 @@
<script>
import { reactive, defineComponent, toRefs, onMounted } from "vue";
import { message } from "ant-design-vue";
import { useRouter } from "vue-router";
import { useStore } from "vuex";
import * as api from "@/api/indexTemplate"
const columns1 = [
{
@@ -90,6 +92,9 @@ const columns1 = [
export default defineComponent({
name: "TemplateLibrary",
setup() {
const store = useStore();
// 编辑页面跳转过来时候,自动填充表格
const router = useRouter();
const state = reactive({
value1: null,
tableData1: [
@@ -101,15 +106,6 @@ export default defineComponent({
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 1,
},
{
key: "2",
name: "测试模板2",
status: "未发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 2,
}
],
});
@@ -124,12 +120,10 @@ export default defineComponent({
{value.status === "已发布" ? (
<div class="nselect">
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">
<div class="jc" onClick={() => {toLibraryAdd(value.projectTemplateId)}}>
查看{" "}
<span style="color:#E9E9E9;margin-left:15px;">|</span>
</div>
</router-link>
</div>
<div class="ops3">
<div class="jc"
@@ -150,12 +144,10 @@ export default defineComponent({
</div>
</div>
<div class="ops2">
<router-link to="/libraryadd">
<div class="jc">
<div class="jc" onClick={() => {toLibraryAdd(value.projectTemplateId)}}>
查看
<span style="color:#E9E9E9;margin-left:15px;">|</span>
</div>
</router-link>
</div>
<div class="ops3">
<div class="jc"
@@ -189,26 +181,28 @@ export default defineComponent({
const getLibraryList = () => {
let obj = {
"beginTime": 0,
"endTime": 0,
"name": "",
"pageNo": pagination.current,
"pageSize": 10,
"status": 0 || 1
"status": 0
}
api.templateList(obj).then((res) => {
state.tableData1 = []
console.log(res);
let resData = res.data.data.rows
if (resData.length) {
for (let i in resData) {
state.tableData1[i].id = i + 1;
state.tableData1[i].projectTemplateId = resData[i].projectTemplateId;
state.tableData1[i].status = resData[i].status ? "已发布" : "未发布";
state.tableData1[i].name = resData[i].name;
state.tableData1[i].creator = resData[i].createName;
state.tableData1[i].stutime = resData[i].publishTime;
state.tableData1[i].operation = "operation";
state.tableData1.push({
id : i + 1,
projectTemplateId:resData[i].projectTemplateId,
status:resData[i].status ? "已发布" : "未发布",
name:resData[i].name,
creator:resData[i].createName,
stutime:resData[i].publishTime,
operation:"operation"
})
}
getTableDate1()
} else {
message.warning("获取的列表数据为空值")
}
@@ -227,55 +221,21 @@ export default defineComponent({
})
}
const searchLevel = () => {
state.tableData1 = [
{
key: "1",
name: "测试模板1",
status: "已发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 1,
},
{
key: "2",
name: "测试模板2",
status: "未发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 2,
}
];
const result = state.tableData1.filter(item => item.name.includes(state.value1))
state.tableData1 = result;
getTableDate1()
getLibraryList();
setTimeout(() => {
const result = state.tableData1.filter(item => item.name.includes(state.value1))
state.tableData1 = result;
},100)
};
const resetLevel = () => {
state.value1 = '';
// getLibraryList();
state.tableData1 = [
{
key: "1",
name: "测试模板1",
status: "已发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 1,
},
{
key: "2",
name: "测试模板2",
status: "未发布",
creator: "李部长",
stutime: "2022-10-31 23:12:00",
operation: "operation",
projectTemplateId: 2,
}
]
getLibraryList();
getTableDate1()
};
const toLibraryAdd = (id) => {
router.push("/libraryAdd");
store.state.projectTemplateId = id
}
return {
...toRefs(state),
@@ -284,6 +244,7 @@ export default defineComponent({
searchLevel,
resetLevel,
pagination,
toLibraryAdd,
};
},
});

View File

@@ -1045,6 +1045,7 @@
import draggable from "vuedraggable";
import { storage } from "../../api/storage";
import UnlockMode from "../../components/drawers/UnlockMode.vue";
import {useStore} from "vuex";
// import * as api1 from "../../api/index1";
const drawercolumns = [
@@ -1105,6 +1106,7 @@
UnlockMode,
},
setup() {
const store = useStore();
const state = reactive({
projectId: storage.get("projectId")
? JSON.parse(storage.get("projectId"))
@@ -1507,8 +1509,7 @@
const getTask = () => {
state.tableData = []
api
// .templateDetail(state.projectId || 1)
.templateDetail(1)
.templateDetail(store.state.projectTemplateId)
.then((res) => {
if (res.status == 200) {
console.log("22222", res.data.data.stageList);
@@ -1706,7 +1707,7 @@
if (state.updateStageID) {
let obj = {
name: state.valuesname,
projectTemplateId: 1,
projectTemplateId: store.state.projectTemplateId,
remark: state.valuesnotice,
stageId:state.updateStageID,
};
@@ -1728,7 +1729,7 @@
} else {
let obj = {
name: state.valuesname,
projectTemplateId: 1,
projectTemplateId: store.state.projectTemplateId,
remark: state.valuesnotice,
stageId:0,
};

View File

@@ -311,17 +311,19 @@
</div>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
import { reactive, toRefs, ref,onMounted } from "vue";
import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router";
// import dayjs from "dayjs";
import * as api from "../../api/indexTemplate";
import { storage } from "../../api/storage";
import {useStore} from "vuex";
// import { toDate } from "../../api/method";
export default {
name: "projectAdd",
setup() {
const store = useStore();
// 编辑页面跳转过来时候,自动填充表格
const routers = useRoute();
const isEdit = ref(false);
@@ -580,23 +582,7 @@ export default {
console.log(`selected ${key}`, classifyList4);
// systemid = key;
};
//模版滚动加载信息
const templateScroll = (e) => {
// console.log("滚动", e, b);
const { target } = e;
const scrllHeight = target.scrollHeight - target.scrollTop;
const clientHeight = target.clientHeight;
// console.log("scrllHeight", scrllHeight, clientHeight);
if (scrllHeight === 0 && clientHeight === 0) {
state.currentPage = 1;
} else if (scrllHeight - clientHeight == 0) {
// 下拉到底部时
if (state.currentPage < state.totalPages) {
// 如果滑到底部,则加载下一页
state.currentPage++;
}
}
};
// const removeFile = (file) => {
// const index = fileList1.value.indexOf(file);
@@ -619,6 +605,9 @@ export default {
// attach = attachStr;
// };
onMounted(() => {
})
const errorMsgs = {
name: "请输入模板名称",
category: "请选择模板分类",
@@ -646,11 +635,11 @@ export default {
"sourceBelongId": state.projectInfo.sourceBelongId,
"level": state.projectInfo.level,
"systemId": state.projectInfo.systemId,
"boeFlag": state.projectInfo.boeFlag,
"courseSyncFlag": state.projectInfo.courseSyncFlag,
"boeFlag": state.projectInfo.boeFlag ? 1:0,
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
"notice": "",
"noticeFlag": 0,
"projectTemplateId": 0,
"projectTemplateId": store.state.projectTemplateId,
"remark": "",
"status": 0,
@@ -667,25 +656,7 @@ export default {
}
}
api
.templateEdit({
"beginTime": 0,
"boeFlag": 0,
"category": 0,
"courseSyncFlag": 0,
"endTime": 0,
"level": 0,
"manager": "",
"managerId": "",
"name": "",
"notice": "",
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": 0,
"remark": "",
"sourceBelongId": 0,
"status": 0,
"systemId": 0
})
.templateEdit(obj)
.then((res) => {
console.log(res);
if (res.status == 200 && res.data.code == 200) {
@@ -708,35 +679,6 @@ export default {
});
};
// 编辑项目模板
const editTemplate = () => {
let obj = {
"beginTime": state.projectInfo.time,
"boeFlag": state.projectInfo.boeFlag,
"category": 0,
"courseSyncFlag": state.projectInfo.courseSyncFlag,
"endTime": state.projectInfo.time,
"level": state.projectInfo.level,
"manager": state.projectInfo.manager,
"managerId": "",
"name": state.projectInfo.name,
"notice": "",
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": 0,
"remark": state.projectInfo.remark,
"sourceBelongId": state.projectInfo.sourceBelongId,
"status": 0,
"systemId": state.projectInfo.systemId
};
api.templateEdit(obj).methods(obj).then(res => {
message.success("编辑成功")
console.log(res)
}).catch(err => {
message.error("编辑失败"+err)
console.log(err)
})
}
return {
...toRefs(state),
@@ -766,8 +708,6 @@ export default {
isEdit,
backPage,
dateFormatList,
editTemplate,
templateScroll,
};
},
};