mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 13:56:45 +08:00
feat:合并
This commit is contained in:
6
package-lock.json
generated
6
package-lock.json
generated
@@ -9578,7 +9578,7 @@
|
||||
},
|
||||
"node_modules/sortablejs": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz",
|
||||
"integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w=="
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
@@ -10524,7 +10524,7 @@
|
||||
},
|
||||
"node_modules/vuedraggable": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz",
|
||||
"integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==",
|
||||
"dependencies": {
|
||||
"sortablejs": "1.14.0"
|
||||
@@ -10535,7 +10535,7 @@
|
||||
},
|
||||
"node_modules/vuedraggable/node_modules/sortablejs": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz",
|
||||
"integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w=="
|
||||
},
|
||||
"node_modules/vuex": {
|
||||
|
||||
@@ -32,7 +32,7 @@ http.interceptors.request.use(
|
||||
|
||||
// 此处测试默认配置token
|
||||
config.headers.token = "123456";
|
||||
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";
|
||||
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkyMTE4MzMsImV4cCI6MTY2OTIxOTAzMywiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.40067eca3be5d50857448005a673cbe1a48f560ff8e9c7aea4e7ff12f59c7962";
|
||||
}
|
||||
return config;
|
||||
},
|
||||
|
||||
@@ -2,13 +2,12 @@
|
||||
* @Author: lixg lixg@dongwu-inc.com
|
||||
* @Date: 2022-11-04 22:45:31
|
||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||
* @LastEditTime: 2022-11-24 10:59:33
|
||||
* @LastEditTime: 2022-11-24 15:11:25
|
||||
* @FilePath: /fe-manage/src/api/index1.js
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
import http from "./config";
|
||||
import qs from 'qs';
|
||||
|
||||
import qs from "qs";
|
||||
|
||||
/**
|
||||
* 接口传参数方式(get)
|
||||
@@ -44,45 +43,48 @@ import qs from 'qs';
|
||||
*/
|
||||
|
||||
//上传文件
|
||||
export const uploadFile = (obj) => http.post('/test/testRequest', qs.stringify({ obj }));
|
||||
export const uploadFile = (obj) =>
|
||||
http.post("/test/testRequest", qs.stringify({ obj }));
|
||||
|
||||
// 接口-请求
|
||||
|
||||
//创建学习路径
|
||||
export const createLearnPath = (obj) => http.post('/admin/router/edit', obj);
|
||||
export const createLearnPath = (obj) => http.post("/admin/router/edit", obj);
|
||||
// 获取学习路径图列表
|
||||
export const getLearnPath = (obj) => http.post('/admin/router/list', obj);
|
||||
export const getLearnPath = (obj) => http.post("/admin/router/list", obj);
|
||||
//学习路径图的发布、停用、删除
|
||||
export const handleLearnPath = (obj) => http.post('/admin/router/handle', obj);
|
||||
export const handleLearnPath = (obj) => http.post("/admin/router/handle", obj);
|
||||
//获取路径图统计数据
|
||||
export const getLearnCount = (routerId) => http.get('/admin/router/getCount', { params: { routerId: routerId } })
|
||||
|
||||
export const getLearnCount = (routerId) =>
|
||||
http.get("/admin/router/getCount", { params: { routerId: routerId } });
|
||||
|
||||
//新建或编辑关卡
|
||||
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
|
||||
export const editChapter = (obj) => http.post("/admin/router/editChapter", obj);
|
||||
// 编辑路径图设置
|
||||
export const setConfig = (obj) => http.post('/admin/router/setConfig', obj);
|
||||
export const setConfig = (obj) => http.post("/admin/router/setConfig", obj);
|
||||
//获取学员列表
|
||||
export const getStudent = (obj) => http.post('/admin/router/studentList', obj);
|
||||
export const getStudent = (obj) => http.post("/admin/router/studentList", obj);
|
||||
//获取路径图详情-包含关卡及任务列表
|
||||
export const getRouterDetail = (routerId) => http.get('/admin/router/detail', {
|
||||
export const getRouterDetail = (routerId) =>
|
||||
http.get("/admin/router/detail", {
|
||||
params: {
|
||||
routerId: routerId,
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
//添加学员
|
||||
export const addStudent = (obj) => http.post('/admin/router/addStudent', obj);
|
||||
export const addStudent = (obj) => http.post("/admin/router/addStudent", obj);
|
||||
//删除学员
|
||||
export const delStudent = (obj) => http.post('/admin/router/deleteStudent', obj);
|
||||
export const delStudent = (obj) =>
|
||||
http.post("/admin/router/deleteStudent", obj);
|
||||
// 获取学员路径图进度明细
|
||||
export const stuProgress = (obj) => http.post('/admin/router/studentProcess', obj);
|
||||
|
||||
export const stuProgress = (obj) =>
|
||||
http.post("/admin/router/studentProcess", obj);
|
||||
|
||||
//项目基础信息-----------------------------------
|
||||
//项目积分榜单
|
||||
export const scoreRank = (obj) => http.post('/admin/project/scoreRank', obj);
|
||||
export const scoreRank = (obj) => http.post("/admin/project/scoreRank", obj);
|
||||
//排行榜
|
||||
export const billboard = (obj) => http.post('/admin/project/billboard', obj);
|
||||
export const billboard = (obj) => http.post("/admin/project/billboard", obj);
|
||||
//项目基础信息-----------------------------------
|
||||
|
||||
//获取字典信息
|
||||
@@ -103,12 +105,18 @@ export const getAudienceInfo = (obj) => http.post('/admin/orgStruct/getAudienceI
|
||||
//获取授权(修改版)
|
||||
export const optionAuthPerm = (obj) => http.post('/admin/AuthPerm/optionAuthPerm', obj)
|
||||
|
||||
// 获取组织结构树
|
||||
export const orgtree = () => http.get('/org/tree');
|
||||
|
||||
|
||||
// 获取组织结构树
|
||||
export const orgtree = () => http.get("/org/tree");
|
||||
|
||||
//获取积分列表
|
||||
export const noticeList = (projectId) => http.post(`http://localhost:8080/api/admin/project/noticeList?projectId=` + projectId + ``)
|
||||
export const noticeList = (projectId) =>
|
||||
http.post(
|
||||
`http://localhost:8080/api/admin/project/noticeList?projectId=` +
|
||||
projectId +
|
||||
``
|
||||
);
|
||||
|
||||
// 测试方法
|
||||
// import * as api from '../../api/index'
|
||||
@@ -118,5 +126,4 @@ export const noticeList = (projectId) => http.post(`http://localhost:8080/api/ad
|
||||
// console.log(err)
|
||||
// })
|
||||
|
||||
|
||||
// export const choiceEvaluation = (obj) => http.post('/evaluation/choiceEvaluation', obj);
|
||||
@@ -11,3 +11,12 @@ export const listView = (obj) => http.post('/admin/project/listView', obj)
|
||||
|
||||
//获取面授课已审核列表
|
||||
export const courseListView = (obj) => http.post('/admin/offcourse/listReview', obj)
|
||||
|
||||
//项目审核日志
|
||||
export const auditList = (obj) => http.post('/admin/project/auditList', obj)
|
||||
|
||||
//项目审核
|
||||
export const auditView = (obj) => http.post('/admin/project/auditView', obj)
|
||||
|
||||
//面授课审核
|
||||
export const courseAuditView = (obj) => http.post('/admin/offcourse/auditView', obj)
|
||||
@@ -3,19 +3,52 @@ import http from "./config";
|
||||
/**
|
||||
* 1
|
||||
*/
|
||||
//添加课程学员
|
||||
export const addStudent = (obj) =>
|
||||
http.post("/admin/offcourse/addStudent", obj);
|
||||
//删除开课
|
||||
export const deletePlan = (obj) =>
|
||||
http.delete("/admin/offcourse/deletePlan", obj);
|
||||
http.delete(
|
||||
"/admin/offcourse/deletePlan",
|
||||
{ params: obj },
|
||||
{
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
}
|
||||
);
|
||||
//获取面授课详情
|
||||
export const detail = (obj) =>
|
||||
http.post("/admin/offcourse/detail", obj, {
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
});
|
||||
//获取面授课开课详情
|
||||
export const detailPlan = (obj) =>
|
||||
http.post("/admin/offcourse/detailPlan", obj, {
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
});
|
||||
//新建或编辑面授课
|
||||
export const edit = (obj) => http.post("/admin/offcourse/edit", obj);
|
||||
//新建或编辑面授课开课
|
||||
export const editPlan = (obj) => http.post("/admin/offcourse/editPlan", obj);
|
||||
//操作面授课(发布,撤回,删除)
|
||||
//课程导出
|
||||
export const exportP = (obj) => http.post("/admin/offcourse/export", obj);
|
||||
//操作面授课(发布,撤回,删除,审核,停用)
|
||||
export const handle = (obj) => http.post("/admin/offcourse/handle", obj);
|
||||
//学员操作-支持批量
|
||||
export const handleStudent = (obj) =>
|
||||
http.post("/admin/offcourse/handleStudent", obj);
|
||||
//获取面授课列表
|
||||
export const list = (obj) => http.post("/admin/offcourse/list", obj);
|
||||
//获取面授课已审核列表
|
||||
export const listReview = (obj) =>
|
||||
http.post("/admin/offcourse/listReview", obj);
|
||||
//面授课开课列表
|
||||
export const planList = (obj) => http.post("/admin/offcourse/planList", obj);
|
||||
//学员导出
|
||||
export const studentExport = (obj) =>
|
||||
http.post("/admin/offcourse/studentExport", obj);
|
||||
//获取学员列表
|
||||
export const studentList = (obj) =>
|
||||
http.post("/admin/offcourse/studentList", obj);
|
||||
//学习记录列表
|
||||
export const studyRecordList = (obj) =>
|
||||
http.post("/admin/offcourse/studyRecordList", obj);
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import http from "./config";
|
||||
|
||||
//获取面授课开课详情
|
||||
export const queryFaceDetailById = (offcoursePlanId) => http.post(`http://localhost:8080/api/admin/offcourse/detailPlan?offcoursePlanId=` + offcoursePlanId + ``)
|
||||
export const queryFaceDetailById = (offcoursePlanId) => http.post(`http://localhost:8080/manageApi/admin/offcourse/detailPlan?offcoursePlanId=` + offcoursePlanId + ``)
|
||||
|
||||
//新建或编辑面授课开课
|
||||
export const editPlan = (obj) => http.post('/admin/offcourse/editPlan', obj)
|
||||
@@ -38,16 +38,15 @@ import http from "./config";
|
||||
// 接口-请求
|
||||
|
||||
//创建评估
|
||||
export const createAppraiseMessage = (obj) => http.post('/survey/createAppraiseMessage', obj,);
|
||||
|
||||
//删除评估信息
|
||||
export const deleteAppraise = (obj) => http.post('/survey/deleteAppraise', { params: obj })
|
||||
|
||||
//根据ID获取评估信息详情
|
||||
export const queryAppraiseDetailById = (obj) => http.post('/survey/queryAppraiseDetailById', { params: obj })
|
||||
|
||||
//修改评估信息
|
||||
export const updateAppraiseMessage = (obj) => http.post('/survey/updateAppraiseMessage', obj)
|
||||
export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{
|
||||
headers: {
|
||||
'token': '123',
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
|
||||
}
|
||||
})
|
||||
|
||||
//获取全部评估信息接口
|
||||
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)
|
||||
|
||||
@@ -2,3 +2,6 @@ import http from "./config";
|
||||
|
||||
// 获取路径图概览
|
||||
export const getRouterOverview = (routerId) => http.get(`/admin/router/overview?routerId=${routerId}`)
|
||||
|
||||
//新建或编辑路径图
|
||||
export const editRoutered = (obj) => http.post('/admin/router/edit', obj)
|
||||
@@ -6,7 +6,7 @@ import http from "./config";
|
||||
// projectId: projectId,
|
||||
// }
|
||||
// });
|
||||
export const noticeList = (projectId) => http.post(`http://localhost:8080/manageApi/admin/project/noticeList?projectId=` + projectId + ``)
|
||||
export const noticeList = (obj) => http.post('/admin/project/noticeList', obj)
|
||||
|
||||
//发布项目公告
|
||||
export const publishNotice = (obj) => http.post('/admin/project/publishNotice', obj)
|
||||
|
||||
@@ -26,3 +26,5 @@ export const planList = (obj) => http.post('/admin/offcourse/planList', obj)
|
||||
|
||||
//获取面授课列表
|
||||
export const list = (obj) => http.post('/admin/offcourse/list', obj)
|
||||
|
||||
export const addTempTask = (obj) => http.post('/admin/project//template/editTask', obj)
|
||||
@@ -19,3 +19,6 @@ export const editTask = (obj) => http.post('/admin/project/template/editTask',ob
|
||||
export const handleTemplates = (obj) => http.post('/admin/project/template/handle',obj);
|
||||
// 模板库列表
|
||||
export const templateList = (obj) => http.post(`/admin/project/template/list`,obj);
|
||||
// 发布项目公告
|
||||
export const publishNotice = (obj) => http.post(`/admin/project/template/publishNotice`,obj);
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<!-- 评估列表 -->
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="assessmentVisible"
|
||||
@@ -46,7 +47,7 @@
|
||||
expandRowByClick="true"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
:row-selection=" rowSelection "
|
||||
:row-selection="rowSelection"
|
||||
filterMultiple:false
|
||||
/>
|
||||
|
||||
@@ -65,7 +66,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -82,28 +82,35 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
isface: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
titleTag: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
}
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
assessmentVisible:false,
|
||||
assessment:null,
|
||||
inputV1:"",
|
||||
assessmentVisible: false,
|
||||
assessment: null,
|
||||
inputV1: "",
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
tableDataTotal: 0,
|
||||
tableData: [],
|
||||
selectedRowKeys:[],
|
||||
selectedRowKeys: [],
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:assessmentVisible", false);
|
||||
ctx.emit("update:titleTag", true);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state getAllInvistText", bool);
|
||||
if(props.assessmentVisible){
|
||||
console.log("state getAllInvistText", bool,"======",props.titleTag);
|
||||
if (props.assessmentVisible) {
|
||||
getAllInvistText();
|
||||
}
|
||||
|
||||
};
|
||||
const tableDataFunc = () => {
|
||||
const columns = [
|
||||
@@ -142,11 +149,16 @@ export default {
|
||||
};
|
||||
const rowSelection = {
|
||||
type: "radio",
|
||||
onSelect:(selectedRows)=>{
|
||||
onSelect: (selectedRows) => {
|
||||
state.assessment = selectedRows;
|
||||
console.log("selectedRows=======",state.assessment);
|
||||
console.log("selectedRows=======", state.assessment);
|
||||
if (props.isface == 1) {
|
||||
ctx.emit("faceAssess", state.assessment);
|
||||
} else {
|
||||
ctx.emit("checkedAss", state.assessment);
|
||||
state.selectedRowKeys = []
|
||||
}
|
||||
|
||||
state.selectedRowKeys = [];
|
||||
closeDrawer();
|
||||
},
|
||||
};
|
||||
@@ -166,7 +178,7 @@ export default {
|
||||
data.map((value, index) => {
|
||||
let obj = {
|
||||
key: index,
|
||||
assessmentId:value.assessmentId,
|
||||
assessmentId: value.assessmentId,
|
||||
num: value.essayQuestionVoList.length,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
@@ -174,14 +186,13 @@ export default {
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.selectedRowKeys = [],
|
||||
state.tableData = array;
|
||||
(state.selectedRowKeys = []), (state.tableData = array);
|
||||
};
|
||||
//获取全部评估信息接口
|
||||
const getAllInvistText = () => {
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName:state.inputV1,
|
||||
assessmentName: state.inputV1,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
})
|
||||
@@ -199,7 +210,6 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
//重置评估信息
|
||||
const resetInvist = () => {
|
||||
state.inputV1 = "";
|
||||
@@ -243,7 +253,7 @@ export default {
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -380,6 +380,23 @@ export default {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
apiTask
|
||||
.addTempTask({
|
||||
courseId: res.data.data.activityId,
|
||||
duration: res.data.data.activityDuration,
|
||||
name: res.data.data.activityName,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 9,
|
||||
})
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
|
||||
console.log("");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
:row-class-name="
|
||||
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
@@ -189,11 +189,8 @@ export default {
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.apiTaskList = selectedRows;
|
||||
console.log('-------------%o-%o',state.apiTaskList, state.apiTaskList.length);
|
||||
};
|
||||
const onSelect = ( record ) => {
|
||||
state.caseId = record.caseid;
|
||||
state.caseName = record.title;
|
||||
}
|
||||
const handelChangePage = (page, pageSize) => {
|
||||
state.currentPage = page;
|
||||
state.pageSize = pageSize;
|
||||
@@ -215,6 +212,7 @@ export default {
|
||||
array.push(obj);
|
||||
});
|
||||
state.tableData = array;
|
||||
console.log('get下来的数据',state.tableData);
|
||||
};
|
||||
//获取全部案例信息接口
|
||||
const getAllCaseText = () => {
|
||||
@@ -237,10 +235,11 @@ export default {
|
||||
};
|
||||
const updateTask = () => {
|
||||
if (props.isLevel == 1) {
|
||||
for(let i = 0;i < state.apiTaskList.length;i++){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.caseId,
|
||||
name: state.caseName,
|
||||
courseId: state.apiTaskList[i].caseid,
|
||||
name: state.apiTaskList[i].caseName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 3,
|
||||
@@ -254,12 +253,14 @@ export default {
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
}
|
||||
} else if (props.isLevel == 2) {
|
||||
if(state.apiTaskList.length > 1){
|
||||
for(let i = 0;i <= state.apiTaskList.length;i++){
|
||||
console.log("state api task list: %o-length: %o", state.apiTaskList, state.apiTaskList.length )
|
||||
for(let i = 0;i < state.apiTaskList.length;i++){
|
||||
console.log(state.apiTaskList[i],'state.apiTaskList[i].caseIdstate.apiTaskList[i].caseId');
|
||||
apiTask
|
||||
.addTask({
|
||||
"courseId": state.apiTaskList[i].caseId,
|
||||
"courseId": state.apiTaskList[i].caseid,
|
||||
"duration": 0,
|
||||
"flag": true,
|
||||
"name": state.apiTaskList[i].caseName,
|
||||
@@ -279,27 +280,6 @@ export default {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
apiTask
|
||||
.addTask({
|
||||
"courseId": state.caseId,
|
||||
"duration": 0,
|
||||
"flag": true,
|
||||
"name": state.caseName,
|
||||
"projectId": props.projectId,
|
||||
"projectTaskId": props.projectTaskId,
|
||||
"stageId": props.chooseStageId,
|
||||
"type": 3,
|
||||
})
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
@@ -315,7 +295,6 @@ export default {
|
||||
closeDrawer,
|
||||
tableDataFunc,
|
||||
onSelectChange,
|
||||
onSelect,
|
||||
handelChangePage,
|
||||
getTableDate,
|
||||
updateTask,
|
||||
|
||||
@@ -193,9 +193,11 @@ export default {
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask.addTask({
|
||||
courseId: res.data.data.discussId,
|
||||
duration: res.data.data.discussExplain,
|
||||
name: res.data.data.discussName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 8,
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
|
||||
@@ -51,6 +51,14 @@
|
||||
<button class="checkEval" @click="showEvalDrawer">
|
||||
选择测评
|
||||
</button>
|
||||
<span style="margin-left: 10px">
|
||||
<a-tag
|
||||
class="tag-style"
|
||||
v-if="evaluationTypeName != ''"
|
||||
:closable="true"
|
||||
>{{ evaluationTypeName }}</a-tag
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -88,11 +96,8 @@
|
||||
</div>
|
||||
<EvList
|
||||
v-model:EvalListVisible="EvalListVisible"
|
||||
@getEvLsitDate="checkFinish"
|
||||
@getEvListData="checkFinish"
|
||||
/>
|
||||
<!-- v-model:evaluationTypeId="evaluationTypeId"
|
||||
v-model:evaluationTypeName="evaluationTypeName" -->
|
||||
|
||||
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
|
||||
<a-spin :spinning="addLoading" tip="添加中..." />
|
||||
</div> -->
|
||||
@@ -161,106 +166,105 @@ export default {
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
inputV1: "",
|
||||
inputV2: "",
|
||||
time: undefined,
|
||||
EvalId: null,
|
||||
//子传回来的参数
|
||||
evaluationTypeId: null,
|
||||
evaluationTypeId: 0,
|
||||
evaluationTypeName: "",
|
||||
description: "",
|
||||
EvalListVisible: false,
|
||||
// addLoading:false,
|
||||
});
|
||||
const checkFinish = (EvListDate)=> {
|
||||
state.evaluationTypeId = EvListDate.Id
|
||||
state.evaluationTypeName = EvListDate.Name
|
||||
const checkFinish = (value)=> {
|
||||
state.evaluationTypeId = value.quiz_kid
|
||||
state.evaluationTypeName = value.title
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addevalVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
state.inputV1 = "";
|
||||
state.inputV2 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if (props.edit && bool) {
|
||||
queryEval();
|
||||
queryInvistById()
|
||||
}
|
||||
};
|
||||
const showEvalDrawer = () => {
|
||||
state.EvalListVisible = true;
|
||||
};
|
||||
const queryEval = () => {
|
||||
api
|
||||
.queryEvaluationDetailById({ evaluationId: props.evaluationId })
|
||||
.then((res) => {
|
||||
state.inputV1 = res.data.data.evaluationName;
|
||||
state.time = [
|
||||
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
|
||||
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
|
||||
];
|
||||
state.evaluationTypeId = res.data.data.evaluationTypeId;
|
||||
state.evaluationTypeName = res.data.data.evaluationTypeName;
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
const updateTask = (value) => {
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: Number(value.evaluationId),
|
||||
name: value.evaluationName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 10,
|
||||
})
|
||||
.then(( ) => {
|
||||
message.success(`${props.EditTestId ? "编辑" : "新增"}关卡任务成功`);
|
||||
})
|
||||
.catch(( ) => {
|
||||
message.error(`${props.EditTestId ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apitaskadd
|
||||
.addTask({
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
duration: 0,
|
||||
flag: true,
|
||||
courseId: Number(value.evaluationId),
|
||||
name: value.evaluationName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
evaluationTypeId: state.evaluationTypeId,
|
||||
evaluationTypeName: state.evaluationTypeName,
|
||||
type: 10,
|
||||
})
|
||||
.then(( ) => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
})
|
||||
.catch(( ) => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
evaluationTypeId: state.evaluationTypeId,
|
||||
evaluationTypeName: state.evaluationTypeName,
|
||||
type: 10,
|
||||
})
|
||||
.then(( ) => {
|
||||
message.success(`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`);
|
||||
})
|
||||
.catch(( ) => {
|
||||
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
};
|
||||
//创建或编辑测评信息
|
||||
//根据id获取测评信息
|
||||
const queryInvistById = ()=> {
|
||||
let objqi = {
|
||||
evaluationId : props.EditEvalId
|
||||
}
|
||||
api
|
||||
.queryEvaluationDetailById(objqi)
|
||||
.then((res) => {
|
||||
message.destroy()
|
||||
message.success("获取测评信息成功");
|
||||
state.inputV1 = res.data.data.evaluationName
|
||||
state.evaluationTypeName = res.data.data.evaluationTypeName
|
||||
state.evaluationTypeId = res.data.data.evaluationTypeId;
|
||||
state.time = [
|
||||
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
|
||||
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
|
||||
];
|
||||
})
|
||||
.catch(() => {
|
||||
message.destroy()
|
||||
message.error("获取测量平信息失败");
|
||||
});
|
||||
}
|
||||
//创建测评信息
|
||||
const createEvalText = () => {
|
||||
if (!state.inputV1) {
|
||||
message.destroy();
|
||||
return message.info("请输入测评名称");
|
||||
}
|
||||
if (!state.inputV2) {
|
||||
if (!state.evaluationTypeId) {
|
||||
message.destroy();
|
||||
return message.info("请选择测评");
|
||||
}
|
||||
if (!state.time) {
|
||||
message.destroy();
|
||||
return message.warning("请输入直播时间");
|
||||
}
|
||||
|
||||
let obj = {
|
||||
evaluationName: state.inputV1,
|
||||
evaluationEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"),
|
||||
@@ -268,12 +272,15 @@ export default {
|
||||
evaluationStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"),
|
||||
evaluationTypeId: state.evaluationTypeId,
|
||||
evaluationTypeName: state.evaluationTypeName,
|
||||
evaluationFlag: "",
|
||||
evaluationPictureAddress: "",
|
||||
evaluationTag: "",
|
||||
updateTime: "",
|
||||
};
|
||||
if (props.edit !== true) {
|
||||
api
|
||||
.createEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
updateTask(res.data.data);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
@@ -281,19 +288,6 @@ export default {
|
||||
.catch(() => {
|
||||
message.error("创建失败");
|
||||
});
|
||||
} else {
|
||||
api
|
||||
.updateEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
message.success("编辑成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch(( ) => {
|
||||
message.error("编辑失败");
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -303,6 +297,7 @@ export default {
|
||||
closeDrawer,
|
||||
//增改
|
||||
createEvalText,
|
||||
queryInvistById,
|
||||
showEvalDrawer,
|
||||
updateTask,
|
||||
};
|
||||
@@ -366,6 +361,10 @@ export default {
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
.tag-style {
|
||||
color: rgb(113, 113, 237);
|
||||
background-color: #d7d1f7;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
|
||||
@@ -48,7 +48,24 @@
|
||||
<span style="margin-right: 3px">选择课程:</span>
|
||||
</div>
|
||||
<div class="btnbox" @click="showDrawerSelFacet">
|
||||
<button class="xkbtn">授课课程</button>
|
||||
<button class="xkbtn">
|
||||
{{ chooseCourse == null ? "授课" : "修改" }}课程
|
||||
</button>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseCourse !== null"
|
||||
closable
|
||||
@close="closeTag"
|
||||
>{{ chooseCourseName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
<div>
|
||||
@@ -259,7 +276,22 @@
|
||||
<a-checkbox v-model:checked="checkedAssessment"
|
||||
>需要评估</a-checkbox
|
||||
>
|
||||
<button class="xkbtn">选择评估</button>
|
||||
<button class="xkbtn" @click="showAssessment">选择评估</button>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseMent !== null"
|
||||
closable
|
||||
@close="closeTag"
|
||||
>{{ chooseMentName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -271,12 +303,35 @@
|
||||
<div class="btnbox" @click="showDrawerAddHomework">
|
||||
<button class="xkbtn">配置</button>
|
||||
</div>
|
||||
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
<div>
|
||||
<add-homework v-model:addhomeworkVisible="addhomeworkvisible" />
|
||||
<add-homework
|
||||
v-model:addhomeworkVisible="addhomeworkvisible"
|
||||
@getWork="getWork"
|
||||
v-model:face="face"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
</div>
|
||||
<div>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 120px;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseWork !== null"
|
||||
closable
|
||||
@close="closeTagWork"
|
||||
>{{ chooseWorkName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">配置考试:</span>
|
||||
@@ -295,7 +350,13 @@
|
||||
<span style="margin-right: 3px">附件:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button class="xkbtn">上传附件</button>
|
||||
<a-upload
|
||||
@change="handleChange"
|
||||
action="/manageApi/file/upload"
|
||||
v-model:file-list="fileList"
|
||||
>
|
||||
<button class="xkbtn">上传附件</button></a-upload
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -304,6 +365,11 @@
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2" @click="updateFaceTeach">确定</button>
|
||||
</div>
|
||||
<assessment-list
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:isface="isface"
|
||||
@faceAssess="faceAssess"
|
||||
/>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -315,21 +381,25 @@ import AddTest from "../../components/drawers/AddTest.vue";
|
||||
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
|
||||
// import * as method from "../../api/method"
|
||||
import { message } from "ant-design-vue";
|
||||
import { queryFaceDetailById } from "../../api/indexFace";
|
||||
import { queryFaceDetailById, editPlan } from "../../api/indexFace";
|
||||
import dayjs from "dayjs";
|
||||
import AssessmentList from "../drawers/ AssessmentList.vue";
|
||||
// import { toDate } from "../../api/method";
|
||||
import { queryWorkDetailById } from "../../api/indexWork";
|
||||
export default {
|
||||
name: "AddFaceteach",
|
||||
components: {
|
||||
SelFacet,
|
||||
AddHomework,
|
||||
AddTest,
|
||||
AssessmentList,
|
||||
},
|
||||
props: {
|
||||
addfaceteachVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
EditEvalId: {
|
||||
EditFaceId: {
|
||||
// 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
@@ -390,20 +460,52 @@ export default {
|
||||
checkedHolidy: false,
|
||||
checkedAssessment: false,
|
||||
chooseTime: [],
|
||||
fileList: [],
|
||||
chooseCourse: null, //选择的在线课程
|
||||
chooseCourseName: null, //选择的课程的名字
|
||||
face: true, //面授传给配置作业的标识
|
||||
chooseWork: null, //配置的work
|
||||
chooseWorkName: null, //配置的work名字
|
||||
chooseWorkId: null, //配置的work ID
|
||||
chooseMent: null,
|
||||
chooseMentName: null,
|
||||
assessmentVisible: false,
|
||||
isface: 1,
|
||||
});
|
||||
const clear = () => {
|
||||
state.inputV1 = null;
|
||||
state.inputV2 = null;
|
||||
state.inputV3 = null;
|
||||
state.inputV4 = null;
|
||||
state.inputV5 = null;
|
||||
state.inputV6 = null;
|
||||
state.inputV7 = null;
|
||||
state.chooseTime = [];
|
||||
state.textV1 = null;
|
||||
state.radioV1 = "";
|
||||
state.radioV2 = "";
|
||||
state.checkedHolidy = false;
|
||||
state.checkedAssessment = false;
|
||||
state.chooseMent = null;
|
||||
state.chooseWork = null;
|
||||
state.chooseWorkId = null;
|
||||
state.chooseWorkName = null;
|
||||
state.chooseCourse = null;
|
||||
state.chooseCourseName = null;
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addfaceteachVisible", false);
|
||||
state.radioV1 = "";
|
||||
state.radioV2 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
clear();
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if (bool && props.edit) {
|
||||
// 该页面显示同时 edit为true 时,发送查询请求,
|
||||
queryFaceTeach();
|
||||
}
|
||||
// queryFaceTeach();
|
||||
};
|
||||
const showDrawerSelFacet = () => {
|
||||
state.selfacetvisible = true;
|
||||
@@ -427,7 +529,7 @@ export default {
|
||||
//查询面授
|
||||
const queryFaceTeach = () => {
|
||||
//暂时写一个假的offcoursePlanId
|
||||
queryFaceDetailById(2).then((res) => {
|
||||
queryFaceDetailById(props.EditFaceId).then((res) => {
|
||||
// state.inputV1 = res.data.data.name;
|
||||
// state.inputV2 = res.data.data.teacherId;
|
||||
console.log("获取到了面授课开课详情", res.data.data);
|
||||
@@ -447,6 +549,8 @@ export default {
|
||||
state.inputV5 = result.beforeStart;
|
||||
state.inputV6 = result.afterStart;
|
||||
state.inputV7 = result.beforeEnd;
|
||||
state.fileList = JSON.parse(result.attach);
|
||||
state.chooseWorkId = result.homeWorkId;
|
||||
// state.radioV1 = result.
|
||||
state.checkedHolidy =
|
||||
result.completeType == 1
|
||||
@@ -469,14 +573,90 @@ export default {
|
||||
state.radioV1 = "2";
|
||||
}
|
||||
state.checkedAssessment = result.evalFlag == 1 ? true : false;
|
||||
if (state.chooseWorkId) {
|
||||
queryWorkDetailById({ workId: state.chooseWorkId }).then((res) => {
|
||||
state.chooseWork = res.data.data;
|
||||
state.chooseWorkName = res.data.data.workName;
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//新建或编辑面授
|
||||
const updateFaceTeach = () => {};
|
||||
const upDateTable = () => {};
|
||||
// 新增任务
|
||||
const updateFaceTeach = () => {
|
||||
if (
|
||||
state.inputV1 == "" ||
|
||||
state.chooseCourse == null ||
|
||||
state.inputV2 == "" ||
|
||||
state.chooseTime == [] ||
|
||||
state.inputV3 == "" ||
|
||||
state.inputV4 == ""
|
||||
) {
|
||||
message.destroy();
|
||||
return message.warning("请输入必填字段");
|
||||
} else {
|
||||
let obj = {
|
||||
address: state.inputV4,
|
||||
afterStart: state.inputV6,
|
||||
applyFlag: 1,
|
||||
attach: JSON.stringify(state.fileList),
|
||||
beforeEnd: state.inputV7,
|
||||
beforeStart: state.inputV5,
|
||||
// beginTime: dayjs(state.chooseTime[0]).format("YYYY-MM-DD"),
|
||||
beginTime: parseInt(
|
||||
new Date(state.chooseTime[0].$d).getTime() / 1000
|
||||
),
|
||||
completeType: state.radioV1 == "1" ? 2 : 1,
|
||||
description: state.textV1,
|
||||
// endTime: dayjs(state.chooseTime[1]).format("YYYY-MM-DD"),
|
||||
endTime: parseInt(new Date(state.chooseTime[0].$d).getTime() / 1000),
|
||||
evalFlag: state.checkedAssessment == true ? 1 : 0,
|
||||
evaluateId:
|
||||
state.chooseMent == null ? 0 : state.chooseMent.assessmentId,
|
||||
homeWorkId: state.chooseWorkId || 0,
|
||||
name: state.inputV1,
|
||||
noProjectMember: state.radioV2 == "1" ? 0 : 1,
|
||||
offcourseId: 0,
|
||||
offcoursePlanId: props.edit ? props.EditFaceId : 0,
|
||||
projectMember: state.radioV2 == "1" ? 1 : 0,
|
||||
signFlag: 0,
|
||||
signWordFlag: 0,
|
||||
teacherId: 0,
|
||||
testId: 0,
|
||||
teacher: state.inputV2,
|
||||
};
|
||||
|
||||
if (props.edit) {
|
||||
editPlan(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
} else {
|
||||
editPlan(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
const upDateTable = (value) => {
|
||||
console.log("gg", value);
|
||||
console.log("gg", value[0].name);
|
||||
state.chooseCourse = value[0];
|
||||
state.chooseCourseName = value[0].name;
|
||||
};
|
||||
|
||||
//更新任务列表
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
@@ -511,17 +691,47 @@ export default {
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success(
|
||||
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
|
||||
`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功`
|
||||
);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
|
||||
message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
};
|
||||
const closeTag = () => {
|
||||
state.chooseCourse = null;
|
||||
state.chooseCourseName = null;
|
||||
};
|
||||
const closeTagWork = () => {
|
||||
state.chooseWork = null;
|
||||
state.chooseWorkName = null;
|
||||
state.chooseWorkId = null;
|
||||
};
|
||||
const getWork = (value) => {
|
||||
console.log("getWork", value);
|
||||
state.chooseWork = value;
|
||||
state.chooseWorkName = value.workName;
|
||||
state.chooseWorkId = value.workId;
|
||||
|
||||
// console.log("getWorkName", value.workName);
|
||||
};
|
||||
const handleChange = ({ file, fileList }) => {
|
||||
if (file.status !== "uploading") {
|
||||
console.log(file, fileList);
|
||||
}
|
||||
};
|
||||
const showAssessment = () => {
|
||||
state.assessmentVisible = true;
|
||||
};
|
||||
const faceAssess = (value) => {
|
||||
console.log(value);
|
||||
state.chooseMent = value;
|
||||
state.chooseMentName = value.name;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerSelFacet,
|
||||
@@ -534,6 +744,13 @@ export default {
|
||||
updateFaceTeach,
|
||||
updateTask,
|
||||
upDateTable,
|
||||
closeTag,
|
||||
getWork,
|
||||
closeTagWork,
|
||||
clear,
|
||||
handleChange,
|
||||
showAssessment,
|
||||
faceAssess,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
action="/manageApi/file/upload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<button class="xkbtn" type="button">上传附件</button>
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<a-button class="btn1" @click="closeDrawer">取消</a-button>
|
||||
<a-button class="btn2" html-type="submit">确定</a-button>
|
||||
<a-button class="btn2" html-type="submit" @click="cle">确定</a-button>
|
||||
</div>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -164,6 +164,10 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
face: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const formState = reactive({
|
||||
@@ -362,6 +366,23 @@ export default {
|
||||
}
|
||||
};
|
||||
|
||||
const cle = () => {
|
||||
console.log("xx", formState);
|
||||
let obj = {
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
workEnclosureAddress: "",
|
||||
workId: props.edit ? props.EditWorkId : 0,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
};
|
||||
if (props.face) {
|
||||
createWorkTask(obj).then((res) => {
|
||||
ctx.emit("getWork", res.data.data);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
@@ -375,6 +396,7 @@ export default {
|
||||
formRef,
|
||||
// layout,
|
||||
rules,
|
||||
cle,
|
||||
...toRefs(state),
|
||||
};
|
||||
},
|
||||
|
||||
@@ -23,12 +23,15 @@
|
||||
<div class="main_notice">
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
<div v-if="assessment == null">
|
||||
<div v-if="assessment == null&&assessment1==null ">
|
||||
<span class="title"
|
||||
>已选择 <span class="data">0</span> 条</span
|
||||
>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
|
||||
<div v-if ="assessment1==null">
|
||||
<span class="title"
|
||||
>已选择 <span class="data">1</span> 条;</span
|
||||
>
|
||||
@@ -45,6 +48,28 @@
|
||||
>创建时间: <span class="data">{{ assessment.time }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span class="title"
|
||||
>已选择 <span class="data">1</span> 条;</span
|
||||
>
|
||||
<span class="title"
|
||||
>名称: <span class="data">{{ assessment1.createName }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>题数: <span class="data">{{ assessment1.essayQuestionVoList.length }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>创建人: <span class="data">{{ assessment1.createUser }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>创建时间: <span class="data">{{ assessment1.createTime }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -55,6 +80,7 @@
|
||||
<div class="main_item2">
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:titleTag="titleTag"
|
||||
@checkedAss="getCheckedAss"
|
||||
/>
|
||||
</div>
|
||||
@@ -77,6 +103,7 @@ import * as apiTask from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import AssessmentList from "./ AssessmentList.vue";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import * as api from "../../api/indexInvist";
|
||||
export default {
|
||||
name: "AddInvist",
|
||||
components: {
|
||||
@@ -139,10 +166,13 @@ export default {
|
||||
assessmentId: null,
|
||||
assessmentName: "",
|
||||
assessment: null,
|
||||
assessment1: null,
|
||||
assessmentVisible: false,
|
||||
titleTag:false,
|
||||
});
|
||||
const getCheckedAss = (ass) => {
|
||||
state.assessment = ass;
|
||||
state.assessment1 =null;
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addinvistVisible", false);
|
||||
@@ -159,8 +189,24 @@ export default {
|
||||
state.assessmentId = null;
|
||||
state.assessmentName = "";
|
||||
state.assessment = null;
|
||||
};
|
||||
queryInfo();
|
||||
|
||||
};
|
||||
const queryInfo = () => {
|
||||
if (props.edit) {
|
||||
state.titleTg =false;
|
||||
//编辑讨
|
||||
api
|
||||
.queryAppraiseDetailById({ assessmentId: props.EditInvistId })
|
||||
.then((res) => {
|
||||
//更新讨论信息
|
||||
state.assessment1=res.data.data;
|
||||
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
}
|
||||
};
|
||||
const updateTask = () => {
|
||||
if (state.assessment == null) {
|
||||
return message.warning("请选择评估");
|
||||
|
||||
574
src/components/drawers/AddProject.vue
Normal file
574
src/components/drawers/AddProject.vue
Normal file
@@ -0,0 +1,574 @@
|
||||
<template>
|
||||
|
||||
<a-drawer
|
||||
:visible="addprojvisible"
|
||||
class="drawerStyle addonlineDrawer"
|
||||
width="80%"
|
||||
title="添加在线"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div v-if="edit" class="headerTitle">编辑项目</div>
|
||||
<div v-else class="headerTitle">添加项目</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="main_items">
|
||||
<div class="mi_ipts">
|
||||
<div class="mii_ipt">
|
||||
<div class="ipt_name">项目名称:</div>
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 240px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入项目名称"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mii_ipt">
|
||||
<div class="ipt_name">项目经理:</div>
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV2"
|
||||
style="width: 240px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入项目经理"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mii_ipt">
|
||||
<div class="ipt_name">创建人:</div>
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV3"
|
||||
style="width: 240px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入创建人"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="mi_btns">
|
||||
<div class="btn btn1">
|
||||
<div class="search"></div>
|
||||
<div class="btnText" @click="searchProjectList()">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetProjectList()">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
<div class="drawerbox">
|
||||
<a-table
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="drawertableData"
|
||||
:row-selection="rowSelection"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 700 }"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
>
|
||||
</a-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button @click="closeDrawer" class="btn1">取消</button>
|
||||
<button @click="updateTaskList" class="btn2">确定</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a-drawer>
|
||||
|
||||
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs,ref } from "vue";
|
||||
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as apiProj from "../../api/index.js";
|
||||
import dayjs from "dayjs";
|
||||
export default {
|
||||
name: "AddProject",
|
||||
props: {
|
||||
addprojvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
EditProjectId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
projectId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
chooseStageId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
routerTaskId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
routerId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
inputV1: "",
|
||||
inputV2: "",
|
||||
inputV3: "",
|
||||
textV1: "",
|
||||
statu:0,
|
||||
checkedC1: false,
|
||||
discussSettings: "",
|
||||
addLoading: false,
|
||||
tableData: [
|
||||
{
|
||||
key: 1,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 5,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 2,
|
||||
parentId:2,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 7,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 9,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 3,
|
||||
parentId:3,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
],
|
||||
selectedRowKeys: [],
|
||||
selectedRows:[],
|
||||
currentPage: 1,
|
||||
tableDataTotal: 0,
|
||||
pageSize: 10,
|
||||
//项目抽屉、列表参数
|
||||
drawertableData: [
|
||||
{
|
||||
key: 1,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 5,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 2,
|
||||
parentId:2,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 7,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 9,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 3,
|
||||
parentId:3,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
],
|
||||
|
||||
});
|
||||
|
||||
const tableDataFunc = () => {
|
||||
const drawercolumns = [
|
||||
{
|
||||
title: "项目名称",
|
||||
dataIndex: "name",
|
||||
key: "projectName",
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: "项目经理",
|
||||
dataIndex: "manager",
|
||||
key: "manager",
|
||||
width: 100,
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建人",
|
||||
dataIndex: "creator",
|
||||
key: "creater",
|
||||
width: 100,
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: 180,
|
||||
align: "center",
|
||||
},
|
||||
];
|
||||
return drawercolumns;
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addprojvisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
|
||||
|
||||
};
|
||||
const rowSelection =()=> ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
|
||||
},
|
||||
onSelect: (record, selected, selectedRows) => {
|
||||
console.log(record, selected, selectedRows);
|
||||
},
|
||||
onSelectAll: (selected, selectedRows, changeRows) => {
|
||||
console.log(selected, selectedRows, changeRows);
|
||||
},
|
||||
});
|
||||
const start = () => {
|
||||
state.loading = true;
|
||||
// ajax request after empty completing
|
||||
setTimeout(() => {
|
||||
state.loading = false;
|
||||
state.selectedRowKeys = [];
|
||||
}, 1000);
|
||||
};
|
||||
const onSelectChange =(selectedRowKeys,selectedRows) => {
|
||||
console.log('selectedRowKeys changed: ', selectedRowKeys);
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
this.selectedRows=selectedRows;
|
||||
};
|
||||
const searchProjectList=()=>{
|
||||
getAllProjText();
|
||||
}
|
||||
const resetProjectList=()=>{
|
||||
state.inputV1="";
|
||||
state.inputV2="";
|
||||
state.inputV1="";
|
||||
getAllProjText();
|
||||
}
|
||||
|
||||
//获取全部项目信息接口
|
||||
const getAllProjText = () => {
|
||||
apiProj
|
||||
.getProjectList({
|
||||
"createName": state.inputV1,
|
||||
"manager": state.inputV2,
|
||||
"name":state.inputV3,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
"status": state.status
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
state.drawertableData = getTableDate(arr);
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
message.destroy()
|
||||
message.error("获取全部项目信息接口失败")
|
||||
});
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("哈哈,我进来了")
|
||||
if (bool) {
|
||||
getAllProjText();
|
||||
}
|
||||
};
|
||||
|
||||
const handelChangePage = (page, pageSize) => {
|
||||
state.currentPage = page;
|
||||
state.pageSize = pageSize;
|
||||
getAllProjText();
|
||||
};
|
||||
const getTableDate = (data) => {
|
||||
let array = []
|
||||
data.map((value)=>{
|
||||
if(value.type == 3){
|
||||
let obj = {
|
||||
key: value.projectId,
|
||||
parentId:value.parentId,
|
||||
projectId:value.projectId,
|
||||
name: value.name,
|
||||
manager:value.manager,
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
}
|
||||
array.push(obj)
|
||||
}
|
||||
else {
|
||||
let obj = {
|
||||
key: value.projectId,
|
||||
parentId:value.parentId,
|
||||
name: value.name,
|
||||
manager:value.manager,
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
children: value.subList ? getTableDate(value.subList) : [] ,
|
||||
}
|
||||
array.push(obj)
|
||||
}
|
||||
})
|
||||
return array
|
||||
};
|
||||
//项目抽屉用的
|
||||
const updateTaskList =()=>{
|
||||
//const resultArr = [];
|
||||
state.selectedRows.forEach((item) => {
|
||||
updateTask(item);
|
||||
});
|
||||
}
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: 0,
|
||||
name: res.data.data.discussName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 8,
|
||||
})
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask.addTask({
|
||||
courseId: res.data.data.discussId,
|
||||
duration: res.data.data.discussExplain,
|
||||
name: res.data.data.discussName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 8,
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
getTableDate,
|
||||
start,
|
||||
getAllProjText,
|
||||
onSelectChange,
|
||||
tableDataFunc,
|
||||
updateTaskList,
|
||||
searchProjectList,
|
||||
resetProjectList,
|
||||
handelChangePage,
|
||||
rowSelection,
|
||||
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
.addrefDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
margin-top: 32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.btnbox {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
.ant-input {
|
||||
height: 100%;
|
||||
}
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 32px;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.textarea {
|
||||
width: 423px;
|
||||
.ant-input {
|
||||
width: 100%;
|
||||
}
|
||||
.ant-input-textarea-show-count {
|
||||
position: relative;
|
||||
}
|
||||
.ant-input-textarea-show-count::after {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 0px;
|
||||
}
|
||||
.ant-input {
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -759,7 +759,7 @@ export default {
|
||||
};
|
||||
const getData = (value)=> {
|
||||
state.paperId = value.paperId;
|
||||
state.paperName = value.paperName;
|
||||
state.paperName = value.testName;
|
||||
}
|
||||
return {
|
||||
formState,
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
evaluationTypeName:"",
|
||||
tableData: [],
|
||||
selectedRowKeys:[],
|
||||
evListData:{},
|
||||
columns:[
|
||||
{
|
||||
title: "课程编号",
|
||||
@@ -148,17 +149,12 @@
|
||||
},
|
||||
]
|
||||
});
|
||||
// const onSelect = (record)=> {
|
||||
// state.evaluationTypeName = record.title
|
||||
// state.evaluationTypeId = record.quiz_code
|
||||
// };
|
||||
const onSelectChange = (selectedRowKeys,selectedRows)=> {
|
||||
if(state.selectedRowKeys.length>1){
|
||||
if(selectedRowKeys.length>1){
|
||||
return
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys
|
||||
state.evaluationTypeName = selectedRows[0].record.title
|
||||
state.evaluationTypeId = selectedRows[0].quiz_code
|
||||
state.evListData = selectedRows[0] ? selectedRows[0] : []
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:EvalListVisible", false);
|
||||
@@ -169,11 +165,7 @@
|
||||
}
|
||||
};
|
||||
const checkFinish =() =>{
|
||||
let EvListDate = {
|
||||
Id : state.evaluationTypeId,
|
||||
Name : state.evaluationTypeName,
|
||||
}
|
||||
ctx.emit("getEvListDate", EvListDate);
|
||||
ctx.emit("getEvListData", state.evListData);
|
||||
closeDrawer();
|
||||
}
|
||||
const changePagination = (page) => {
|
||||
@@ -187,6 +179,7 @@
|
||||
let obj = {
|
||||
status:value.status,
|
||||
quiz_code:value.quiz_code,
|
||||
quiz_kid:value.quiz_kid,
|
||||
title:value.title,
|
||||
theme_desc:value.theme_desc,
|
||||
quiz_price:value.quiz_price,
|
||||
|
||||
@@ -62,12 +62,17 @@ export default {
|
||||
state.notice = array;
|
||||
};
|
||||
const getNotice = () => {
|
||||
noticeList(props.projectId)
|
||||
let obj = {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectId: props.projectId,
|
||||
};
|
||||
noticeList(obj)
|
||||
.then((res) => {
|
||||
console.log("获取公告列表成功");
|
||||
let result = res.data.data;
|
||||
if (result.length > 0) {
|
||||
setNoticeData(result);
|
||||
if (result.total > 0) {
|
||||
setNoticeData(result.rows);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
||||
@@ -56,10 +56,10 @@ export default {
|
||||
return message.warning("请输入公告内容");
|
||||
} else {
|
||||
let obj = {
|
||||
createId: state.projectInfo.createId,
|
||||
createName: state.projectInfo.createName,
|
||||
// createId: state.projectInfo.createId,
|
||||
// createName: state.projectInfo.createName,
|
||||
notice: state.noticeContent,
|
||||
noticeId: 0,
|
||||
// noticeId: 0,
|
||||
projectId: props.projectId,
|
||||
title: "",
|
||||
};
|
||||
|
||||
@@ -100,7 +100,9 @@
|
||||
详情{{ showDetail ? "折叠" : "展开" }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2" tab="修改记录"> </a-tab-pane>
|
||||
</a-tabs>
|
||||
<div class="audit">
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>审核:</span></div>
|
||||
@@ -118,9 +120,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2" tab="修改记录"> </a-tab-pane>
|
||||
</a-tabs>
|
||||
<div class="detaile">
|
||||
<button class="can" @click="closeDrawer">取消</button>
|
||||
<button class="debtn" @click="subMit">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
@@ -130,6 +133,8 @@
|
||||
import { toRefs, reactive } from "vue";
|
||||
import { getTask } from "../../api/indexTaskadd";
|
||||
import { toDate } from "../../api/method";
|
||||
import { auditView } from "../../api/indexAudit";
|
||||
import { message } from "ant-design-vue";
|
||||
export default {
|
||||
name: "ProjectAudit",
|
||||
components: {},
|
||||
@@ -138,10 +143,18 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
projectId: {
|
||||
chooseProject: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
chooseCreateId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
chooseCreater: {
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
@@ -183,6 +196,7 @@ export default {
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:ProjAuditvisible", false);
|
||||
state.valueSuggest = null;
|
||||
state.valuePass = "1";
|
||||
};
|
||||
|
||||
//获取项目信息
|
||||
@@ -256,6 +270,25 @@ export default {
|
||||
const changeDe = () => {
|
||||
state.showDetail = !state.showDetail;
|
||||
};
|
||||
const subMit = () => {
|
||||
auditView({
|
||||
createId: props.chooseCreateId,
|
||||
createName: props.chooseCreater,
|
||||
description: state.valueSuggest,
|
||||
pass: state.valuePass == "1" ? 1 : -1,
|
||||
projectId: props.chooseProject,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("提交成功", res);
|
||||
message.destroy();
|
||||
message.success("提交成功");
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
message.warning("提交失败");
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
@@ -263,6 +296,7 @@ export default {
|
||||
afterVisibleChange,
|
||||
getTaskInfo,
|
||||
changeDe,
|
||||
subMit,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -372,11 +406,22 @@ export default {
|
||||
// background-color: blue;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.can {
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #387df7;
|
||||
color: #387df7;
|
||||
background-color: #fff;
|
||||
margin-right: 30px;
|
||||
}
|
||||
.debtn {
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
border-radius: 4px;
|
||||
color: #ffffff;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ export default {
|
||||
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.selectedRows = selectedRows;
|
||||
console.log(selectedRows);
|
||||
console.log("选择了", state.selectedRows[0].name);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:selfacetVisible", false);
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:row-selection="{selectedRowKeys:selectedRowKeys,onSelect:onSelect,onChange:onSelectChange}"
|
||||
:row-selection="{selectedRowKeys:selectedRowKeys, onChange:onSelectChange, hideSelectAll:true}"
|
||||
:scroll="{ x: 900 }"
|
||||
:pagination="false"
|
||||
/>
|
||||
@@ -184,14 +184,13 @@
|
||||
console.log("Page: ", pageNumber);
|
||||
};
|
||||
|
||||
const onSelect = (record) => {
|
||||
state.SelectTestData = record
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
const onSelectChange = (selectedRowKeys,selectedRows) => {
|
||||
if(selectedRowKeys.length>1){
|
||||
return
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.SelectTestData = selectedRows[0];
|
||||
console.log('state.SelectTestData---------------',state.SelectTestData);
|
||||
}
|
||||
|
||||
const newTest = ()=> {
|
||||
@@ -282,7 +281,6 @@
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
getTableDate,
|
||||
onSelect,
|
||||
onSelectChange,
|
||||
CreatSTText,
|
||||
newTest,
|
||||
@@ -298,7 +296,6 @@
|
||||
|
||||
<style lang="scss">
|
||||
.TimeManage {
|
||||
// overflow-x: auto;
|
||||
.drawerMain {
|
||||
min-width: 550px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
@@ -406,13 +403,7 @@
|
||||
}
|
||||
}
|
||||
.tab {
|
||||
|
||||
.ant-table-selection-column {
|
||||
.ant-table-selection{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
th.h {
|
||||
th,th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
@@ -423,15 +414,10 @@
|
||||
}
|
||||
.tableBox {
|
||||
.pa {
|
||||
// left: 0;
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// position: absolute;
|
||||
// bottom: 20px;
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-item,
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<script>
|
||||
import { toRefs, reactive } from "vue";
|
||||
import { studentScoreList } from "../../api/indexProjStu";
|
||||
import { toDate } from "@/api/method";
|
||||
// import { toDate } from "@/api/method";
|
||||
export default {
|
||||
name: "StuScoreDetail",
|
||||
props: {
|
||||
@@ -151,10 +151,10 @@ export default {
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
time: toDate(item.createTime / 1000, "Y-M-D h-m"),
|
||||
time: item.createTime,
|
||||
score: item.score,
|
||||
type: "完成任务",
|
||||
from: item.source,
|
||||
from: item.source == "" ? "-" : item.source,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
|
||||
@@ -669,7 +669,7 @@ export default {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
th,th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,3 +84,36 @@ export function filterCommon(arr, key) {
|
||||
});
|
||||
return newData;
|
||||
}
|
||||
|
||||
export function getdateToTime(date) {
|
||||
let now = new Date(parseInt(date)),
|
||||
y = now.getFullYear(),
|
||||
m = now.getMonth() + 1,
|
||||
d = now.getDate(),
|
||||
hh = now.getHours(),
|
||||
mm = now.getMinutes();
|
||||
return `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${hh}:${mm}`;
|
||||
}
|
||||
|
||||
//计算两个时间之间的时间差 多少天时分秒
|
||||
export function intervalTime(startTime) {
|
||||
const curTime = new Date().getTime(); //计算当前时间戳
|
||||
const date3 = curTime - startTime; //时间差的毫秒数
|
||||
//计算出相差天数
|
||||
const days = Math.floor(date3 / (24 * 3600 * 1000));
|
||||
//计算出小时数
|
||||
const leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
|
||||
const hours = Math.floor(leave1 / (3600 * 1000));
|
||||
//计算相差分钟数
|
||||
const leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
|
||||
const minutes = Math.floor(leave2 / (60 * 1000));
|
||||
//计算相差秒数
|
||||
const leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
|
||||
const seconds = Math.round(leave3 / 1000);
|
||||
return {
|
||||
days,
|
||||
hours,
|
||||
minutes,
|
||||
seconds,
|
||||
};
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -195,7 +195,7 @@ export default {
|
||||
};
|
||||
courseListView(objn)
|
||||
.then((res) => {
|
||||
console.log("获取已审核课程成功", res);
|
||||
console.log("获取已审核课程成功", res.data.data);
|
||||
let result = res.data.data.rows;
|
||||
state.total = res.data.data.total;
|
||||
setTableData(result);
|
||||
|
||||
@@ -86,16 +86,317 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 审核弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="courAuditModal"
|
||||
:footer="null"
|
||||
:closable="closeBack"
|
||||
wrapClassName="courAuditModal"
|
||||
centered="true"
|
||||
>
|
||||
<div class="delete">
|
||||
<div class="del_header"></div>
|
||||
<div class="del_main">
|
||||
<div class="header">
|
||||
<div class="icon"></div>
|
||||
<span>审核</span>
|
||||
<div class="close_exit" @click="closeCourAuditModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="item">
|
||||
<div class="left">审核:</div>
|
||||
<div class="rig">
|
||||
<a-radio-group name="radioGroup" v-model:value="valuepass">
|
||||
<a-radio value="1">通过</a-radio>
|
||||
<a-radio value="2" style="margin-left: 40px">不通过</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" style="margin-top: 20px">
|
||||
<div class="left">审核意见:</div>
|
||||
<div class="rig">
|
||||
<a-textarea v-model:value="valueSugg" :rows="4" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeCourAuditModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="sureCourAuditModal">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 预览弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="lookCourseModal"
|
||||
title="Title"
|
||||
@ok="handlePush"
|
||||
:footer="null"
|
||||
:closable="false"
|
||||
wrapClassName="modalStyle lookCourseModal"
|
||||
width="80%"
|
||||
@cancel="ft_exit"
|
||||
>
|
||||
<div class="modalHeader">
|
||||
<div class="headerLeft">
|
||||
<img
|
||||
style="width: 17px; height: 18px; margin-right: 8px"
|
||||
src="../../assets/images/basicinfo/add.png"
|
||||
/>
|
||||
<span class="headerLeftText">预览</span>
|
||||
</div>
|
||||
<div style="margin-right: 57px; cursor: pointer">
|
||||
<img
|
||||
@click="ft_exit"
|
||||
style="width: 22px; height: 22px"
|
||||
src="../../assets/images/basicinfo/close22.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modalMain">
|
||||
<div class="faceteach">
|
||||
<div class="ft_main">
|
||||
<div class="m_body">
|
||||
<div class="mb_left">
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">课程名称:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="i1_input">fefewf</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="i2_cz">
|
||||
<div class="i2_top">
|
||||
<div
|
||||
class="i2_right"
|
||||
@click="hideShow"
|
||||
style="cursor: pointer"
|
||||
>
|
||||
<div class="b_icon"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items2">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">封面图:</span>
|
||||
</div>
|
||||
<div class="item_inp">fefw</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
style="width: 10px; height: 10px"
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">目标人群:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="i1_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<span style="margin-right: 14px">课程价值:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="i1_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">资源归属:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="select i6_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">内容分类:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="select i6_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<span style="margin-right: 14px">场景:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="select i7_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<span style="margin-right: 14px">内容标签:</span>
|
||||
</div>
|
||||
<div class="item_inp"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb_right">
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt="asterisk"
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">授课教师:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="i1_input"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items2">
|
||||
<div class="item_nam">
|
||||
<span style="margin-right: 14px">课程简介:</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<div class="i10_textarea"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items">
|
||||
<div class="item_nam">
|
||||
<span style="margin-right: 10px">附件</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<a-upload
|
||||
multiple
|
||||
:show-upload-list="false"
|
||||
:before-upload="beforeUpload2"
|
||||
>
|
||||
<div class="accessory" style="cursor: pointer">
|
||||
<div class="accessory_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/enclosure.png"
|
||||
alt="enclosure"
|
||||
/>
|
||||
</div>
|
||||
<span style="color: #4ea6ff">添加附件</span>
|
||||
</div>
|
||||
</a-upload>
|
||||
<span>
|
||||
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items12">
|
||||
<div
|
||||
class="i12_box1"
|
||||
v-for="(item, index) in imgList"
|
||||
:key="index"
|
||||
>
|
||||
<div class="file_img">
|
||||
<img :src="item.img" />
|
||||
</div>
|
||||
<div class="file_detail">
|
||||
<div class="file_name">
|
||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||
</div>
|
||||
|
||||
<div class="file_updata">
|
||||
<div class="updatabox">
|
||||
<div class="updatacolor"></div>
|
||||
<div class="updataxq">上传完成</div>
|
||||
</div>
|
||||
<div class="upjd">
|
||||
<span style="margin: auto 5px">100%</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="file_operation">
|
||||
<div class="fobox">
|
||||
<span style="color: #4ea6ff" @click="handleDel(index)">
|
||||
删除
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m_footer">
|
||||
<div class="fotnam">
|
||||
<span>课程大纲</span>
|
||||
</div>
|
||||
<div class="fotarea">
|
||||
<div style="border: 1px solid #ccc">
|
||||
<Toolbar
|
||||
style="border-bottom: 1px solid #ccc"
|
||||
:editor="editorRef"
|
||||
:defaultConfig="toolbarConfig"
|
||||
:mode="mode"
|
||||
/>
|
||||
<Editor
|
||||
style="height: 500px; overflow-y: hidden"
|
||||
v-model="valueHtml"
|
||||
:defaultConfig="editorConfig"
|
||||
:mode="mode"
|
||||
@onCreated="handleCreated"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m_btn">
|
||||
<div class="btn btn5">
|
||||
<div class="btnText" @click="ft_exit">取消</div>
|
||||
</div>
|
||||
<div class="btn btn6">
|
||||
<div class="btnText" @click="handlePush">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, onMounted } from "vue";
|
||||
import { list } from "../../api/indexAudit";
|
||||
import { list, courseAuditView } from "../../api/indexAudit";
|
||||
import { toDate } from "../../api/method";
|
||||
import { message } from "ant-design-vue";
|
||||
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
||||
|
||||
export default {
|
||||
name: "CoursereViewedN",
|
||||
|
||||
components: {
|
||||
Editor,
|
||||
Toolbar,
|
||||
},
|
||||
setup() {
|
||||
const state = reactive({
|
||||
optionsproj: [
|
||||
@@ -115,6 +416,14 @@ export default {
|
||||
currentPage: 1,
|
||||
total: null,
|
||||
pageSize: 10,
|
||||
courAuditModal: false, //审核弹窗
|
||||
closeBack: false,
|
||||
valuepass: "1",
|
||||
valueSugg: null,
|
||||
chooseId: null,
|
||||
chooseCreater: null,
|
||||
chooseOffId: null,
|
||||
lookCourseModal: false, //预览
|
||||
columns1: [
|
||||
{
|
||||
title: "序号",
|
||||
@@ -170,38 +479,30 @@ export default {
|
||||
dataIndex: "opt",
|
||||
key: "opt",
|
||||
align: "center",
|
||||
customRender: () => {
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
<span style="cursor:pointer">审核</span>
|
||||
<span
|
||||
style="cursor:pointer"
|
||||
onClick={() => {
|
||||
showAudit(
|
||||
value.record.createId,
|
||||
value.record.creater,
|
||||
value.record.offId
|
||||
);
|
||||
}}
|
||||
>
|
||||
审核
|
||||
</span>
|
||||
|
||||
<span style="cursor:pointer">预览</span>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
tableData1: [
|
||||
{
|
||||
number: "1",
|
||||
name: "课程1",
|
||||
type: "在线",
|
||||
content: "领导力/领导业务",
|
||||
status: "待审核",
|
||||
change: "",
|
||||
creater: "-",
|
||||
time: "-",
|
||||
},
|
||||
{
|
||||
number: "2",
|
||||
name: "面授课程",
|
||||
type: "在线",
|
||||
content: "领导力/领导业务",
|
||||
status: "待审核",
|
||||
change: "已转审",
|
||||
creater: "-",
|
||||
time: "-",
|
||||
},
|
||||
],
|
||||
// 待审核课程的数据
|
||||
tableData1: [],
|
||||
});
|
||||
|
||||
const getFaceList = (obj) => {
|
||||
@@ -242,6 +543,8 @@ export default {
|
||||
change: "-",
|
||||
creater: item.createName,
|
||||
time: toDate(item.createTime, "Y-M-D h-m"),
|
||||
createrId: item.createId,
|
||||
offId: item.offcourseId,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
@@ -271,6 +574,40 @@ export default {
|
||||
state.currentPage = pagina;
|
||||
getFaceList();
|
||||
};
|
||||
const showAudit = (id, creater, offId) => {
|
||||
state.courAuditModal = true;
|
||||
state.chooseId = id;
|
||||
state.chooseCreater = creater;
|
||||
state.chooseOffId = offId;
|
||||
};
|
||||
const closeCourAuditModal = () => {
|
||||
state.courAuditModal = false;
|
||||
state.valueSugg = null;
|
||||
state.valuepass = "1";
|
||||
state.chooseId = null;
|
||||
state.chooseCreater = null;
|
||||
state.chooseOffId = null;
|
||||
};
|
||||
const sureCourAuditModal = () => {
|
||||
courseAuditView({
|
||||
createId: state.chooseId,
|
||||
createName: state.chooseCreater,
|
||||
description: state.valueSugg,
|
||||
offcourseId: state.chooseOffId,
|
||||
pass: state.valuepass == "1" ? 1 : 0,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
state.courAuditModal = false;
|
||||
message.destroy();
|
||||
return message.success("审核提交成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
message.destroy();
|
||||
return message.warning("审核提交失败");
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getFaceList();
|
||||
});
|
||||
@@ -281,11 +618,468 @@ export default {
|
||||
search,
|
||||
reset,
|
||||
changePagination,
|
||||
showAudit,
|
||||
closeCourAuditModal,
|
||||
sureCourAuditModal,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courAuditModal {
|
||||
.ant-modal {
|
||||
width: 640px !important;
|
||||
height: 400px !important;
|
||||
.ant-modal-content {
|
||||
width: 640px !important;
|
||||
height: 400px !important;
|
||||
.ant-modal-body {
|
||||
width: 640px !important;
|
||||
height: 400px !important;
|
||||
padding: 0 !important;
|
||||
.delete {
|
||||
z-index: 999;
|
||||
width: 640px;
|
||||
height: 400px;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
border-radius: 4px;
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 10%;
|
||||
// transform: translate(-50%, -50%);
|
||||
.del_header {
|
||||
position: absolute;
|
||||
width: calc(100%);
|
||||
height: 68px;
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
.del_main {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 20px;
|
||||
padding-left: 26px;
|
||||
font-size: 16px;
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 10px;
|
||||
background-image: url(@/assets/images/taskpage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.close_exit {
|
||||
position: absolute;
|
||||
right: 42px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.body {
|
||||
width: 100%;
|
||||
margin: 34px auto 56px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
// background-color: red;
|
||||
position: relative;
|
||||
.item {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
.left {
|
||||
width: 110px;
|
||||
text-align: right;
|
||||
}
|
||||
.rig {
|
||||
width: 450px;
|
||||
.ant-input {
|
||||
border-radius: 8px;
|
||||
resize: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.del_btnbox {
|
||||
display: flex;
|
||||
margin: 30px auto;
|
||||
justify-content: center;
|
||||
.del_btn {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: rgba(64, 158, 255, 0);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
color: #4ea6ff;
|
||||
margin-right: 14px;
|
||||
}
|
||||
.btn2 {
|
||||
background-color: #4ea6ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.lookCourseModal {
|
||||
.ant-modal {
|
||||
.ant-modal-content {
|
||||
// width:1358px !important;
|
||||
.ant-modal-body {
|
||||
.modalHeader {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.headerLeft {
|
||||
margin-left: 27px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.headerLeftText {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #000000;
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.modalMain {
|
||||
.m_title {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.m_body {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.mb_left {
|
||||
width: 50%;
|
||||
.mbl_items {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 10px;
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
.inp_num {
|
||||
position: absolute;
|
||||
left: 398px;
|
||||
top: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mbl_items2 {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
.i_upload_img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.i_upload {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
.addimg {
|
||||
position: relative;
|
||||
.heng {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 25px;
|
||||
width: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
.shu {
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
left: 50px;
|
||||
height: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.i2_cz {
|
||||
width: 440px;
|
||||
margin-left: 100px;
|
||||
.i2_top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.i8_bottom {
|
||||
display: flex;
|
||||
width: 440px;
|
||||
margin-left: 100px;
|
||||
}
|
||||
}
|
||||
.mb_right {
|
||||
width: 50%;
|
||||
.mbl_items {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 10px;
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-top: -15px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
}
|
||||
.accessory {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.accessory_icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-top: -8px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mbl_items2 {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
margin-bottom: 10px;
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
.inp_num {
|
||||
position: absolute;
|
||||
left: 395px;
|
||||
bottom: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.m_footer {
|
||||
display: flex;
|
||||
margin: 20px 0;
|
||||
.fotnam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.fotarea {
|
||||
position: relative;
|
||||
.fuwenben {
|
||||
width: 90%;
|
||||
height: 20px;
|
||||
background-color: rgb(95, 95, 95);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0);
|
||||
top: 3px;
|
||||
z-index: 9999;
|
||||
}
|
||||
}
|
||||
}
|
||||
.m_btn {
|
||||
width: 100%;
|
||||
margin-top: 25px;
|
||||
margin-bottom: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
.btn {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: rgba(64, 158, 255, 0);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
.btn5 {
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
color: #4ea6ff;
|
||||
}
|
||||
.btn6 {
|
||||
background-color: #4ea6ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.coursereviewedn {
|
||||
width: 100%;
|
||||
.tmpl {
|
||||
|
||||
@@ -106,11 +106,50 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 审核日志弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="projAuditModal"
|
||||
:footer="null"
|
||||
:closable="closeBack"
|
||||
wrapClassName="projAuditModal"
|
||||
centered="true"
|
||||
>
|
||||
<div class="delete">
|
||||
<div class="del_header"></div>
|
||||
<div class="del_main">
|
||||
<div class="header">
|
||||
<div class="icon"></div>
|
||||
<span>审核记录</span>
|
||||
<div class="close_exit" @click="closeProjAuditModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<a-table
|
||||
style="width: 90%"
|
||||
:columns="columnsAudit"
|
||||
:data-source="tableDataAudit"
|
||||
:loading="tableDataTotalAudit === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
:scroll="{ y: 150 }"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
/>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeProjAuditModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="closeProjAuditModal">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, onMounted } from "vue";
|
||||
import { listView } from "../../api/indexAudit";
|
||||
import { listView, auditList } from "../../api/indexAudit";
|
||||
import { toDate } from "@/api/method";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
@@ -137,6 +176,8 @@ export default {
|
||||
currentPage: 1,
|
||||
total: null,
|
||||
pageSize: 10,
|
||||
projAuditModal: false,
|
||||
closeBack: false,
|
||||
columns1: [
|
||||
{
|
||||
title: "序号",
|
||||
@@ -194,15 +235,55 @@ export default {
|
||||
dataIndex: "opt",
|
||||
key: "opt",
|
||||
align: "center",
|
||||
customRender: () => {
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
<span>审核日志</span>
|
||||
<span
|
||||
onClick={() => {
|
||||
showProjAuditModal(value.record.id);
|
||||
}}
|
||||
style="cursor:pointer"
|
||||
>
|
||||
审核日志
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
//审核记录的表
|
||||
columnsAudit: [
|
||||
{
|
||||
title: "审核人",
|
||||
dataIndex: "name",
|
||||
key: "name",
|
||||
align: "center",
|
||||
},
|
||||
|
||||
{
|
||||
title: "审核状态",
|
||||
dataIndex: "belong",
|
||||
key: "belong",
|
||||
align: "center",
|
||||
// width: "10%",
|
||||
},
|
||||
|
||||
{
|
||||
title: "审核时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
align: "center",
|
||||
},
|
||||
|
||||
{
|
||||
title: "备注",
|
||||
dataIndex: "description",
|
||||
key: "description",
|
||||
align: "center",
|
||||
},
|
||||
],
|
||||
//审核记录的数据
|
||||
tableDataAudit: [],
|
||||
tableData1: [
|
||||
{
|
||||
number: "1",
|
||||
@@ -220,7 +301,7 @@ export default {
|
||||
let objn = obj || {
|
||||
beginTime: 0,
|
||||
createName: "",
|
||||
endTime: 0,
|
||||
endTime: "",
|
||||
manager: "",
|
||||
name: "",
|
||||
pageNo: state.currentPage,
|
||||
@@ -229,10 +310,12 @@ export default {
|
||||
};
|
||||
listView(objn)
|
||||
.then((res) => {
|
||||
console.log("获取已审核项目成功", res);
|
||||
let result = res.data.data.rows;
|
||||
console.log("获取已审核项目成功", res.data.data.rows);
|
||||
let result = res.data.data;
|
||||
state.total = res.data.data.total;
|
||||
setTableData(result);
|
||||
if (result.total > 0) {
|
||||
setTableData(result.rows);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取已审核项目失败", err);
|
||||
@@ -240,19 +323,23 @@ export default {
|
||||
};
|
||||
const setTableData = (tabledata) => {
|
||||
let data = tabledata;
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
number: item.projectId,
|
||||
name: getName(item),
|
||||
belong: getBelong(item),
|
||||
// 需要加上
|
||||
// name: getName(item),
|
||||
// belong: getBelong(item),
|
||||
manager: item.manager,
|
||||
status: item.status == 2 ? "通过" : "拒绝",
|
||||
creater: item.createName,
|
||||
time: toDate(item.beginTime, "Y-M-D h-m"),
|
||||
msg: item.description,
|
||||
id: item.projectId,
|
||||
};
|
||||
state.tableData1.push(obj);
|
||||
array.push(obj);
|
||||
});
|
||||
state.tableData1 = array;
|
||||
};
|
||||
const getName = (item) => {
|
||||
if (
|
||||
@@ -323,6 +410,49 @@ export default {
|
||||
state.valuestate = null;
|
||||
getProjList();
|
||||
};
|
||||
const closeProjAuditModal = () => {
|
||||
state.projAuditModal = false;
|
||||
};
|
||||
const showProjAuditModal = (id) => {
|
||||
state.projAuditModal = true;
|
||||
auditList({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
project_id: id,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("获取到了审核日志列表", res);
|
||||
let result = res.data.data;
|
||||
// if (result.total > 0) {
|
||||
setAudit(result.rows);
|
||||
// }
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("审核日志列表获取失败", err);
|
||||
});
|
||||
};
|
||||
const setAudit = (table) => {
|
||||
let data = table;
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
name: item.create_name,
|
||||
belong:
|
||||
item.status == 1
|
||||
? "提交待审核"
|
||||
: item.status == 2
|
||||
? "通过"
|
||||
: item.status == 3
|
||||
? "拒绝"
|
||||
: "-",
|
||||
time: item.createTime,
|
||||
description: item.description,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.tableDataAudit = array;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getProjList();
|
||||
});
|
||||
@@ -336,11 +466,128 @@ export default {
|
||||
changePagination,
|
||||
search,
|
||||
reset,
|
||||
closeProjAuditModal,
|
||||
showProjAuditModal,
|
||||
setAudit,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.projAuditModal {
|
||||
.ant-modal {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
.ant-modal-content {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
.ant-modal-body {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
padding: 0 !important;
|
||||
.delete {
|
||||
z-index: 999;
|
||||
width: 816px;
|
||||
min-height: 420px;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
border-radius: 4px;
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 10%;
|
||||
// transform: translate(-50%, -50%);
|
||||
.del_header {
|
||||
position: absolute;
|
||||
width: calc(100%);
|
||||
height: 68px;
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
.del_main {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 20px;
|
||||
padding-left: 26px;
|
||||
font-size: 16px;
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 10px;
|
||||
background-image: url(@/assets/images/taskpage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.close_exit {
|
||||
position: absolute;
|
||||
right: 42px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.body {
|
||||
width: 100%;
|
||||
margin: 34px auto 56px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
// background-color: red;
|
||||
position: relative;
|
||||
.ant-table-empty {
|
||||
width: 100% !important;
|
||||
}
|
||||
.back {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
.del_btnbox {
|
||||
display: flex;
|
||||
margin: 30px auto;
|
||||
justify-content: center;
|
||||
.del_btn {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: rgba(64, 158, 255, 0);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
color: #4ea6ff;
|
||||
margin-right: 14px;
|
||||
}
|
||||
.btn2 {
|
||||
background-color: #4ea6ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.projectviewed {
|
||||
width: 100%;
|
||||
.tmpl {
|
||||
|
||||
@@ -101,7 +101,9 @@
|
||||
<!-- 审核项目页面 -->
|
||||
<project-audit
|
||||
v-model:ProjAuditvisible="ProjAuditvisible"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseProject="chooseProject"
|
||||
v-model:chooseCreateId="chooseCreateId"
|
||||
v-model:chooseCreater="chooseCreater"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@@ -134,6 +136,9 @@ export default {
|
||||
currentPage: 1,
|
||||
total: null,
|
||||
pageSize: 10,
|
||||
chooseProject: null, //要审核的项目
|
||||
chooseCreateId: null,
|
||||
chooseCreater: null,
|
||||
columns1: [
|
||||
{
|
||||
title: "序号",
|
||||
@@ -185,13 +190,17 @@ export default {
|
||||
dataIndex: "opt",
|
||||
key: "opt",
|
||||
align: "center",
|
||||
customRender: () => {
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div>
|
||||
<span
|
||||
style="cursor:pointer"
|
||||
onClick={() => {
|
||||
showProjAudit();
|
||||
showProjAudit(
|
||||
value.record.projectId,
|
||||
value.record.createId,
|
||||
value.record.creater
|
||||
);
|
||||
}}
|
||||
>
|
||||
审核
|
||||
@@ -213,8 +222,11 @@ export default {
|
||||
},
|
||||
],
|
||||
});
|
||||
const showProjAudit = () => {
|
||||
const showProjAudit = (id, createId, creater) => {
|
||||
state.ProjAuditvisible = true;
|
||||
state.chooseProject = id;
|
||||
state.chooseCreateId = createId;
|
||||
state.chooseCreater = creater;
|
||||
};
|
||||
const getProjList = (obj) => {
|
||||
let objn = obj || {
|
||||
@@ -252,6 +264,8 @@ export default {
|
||||
status: "待审核",
|
||||
creater: item.createName,
|
||||
time: toDate(item.createTime, "Y-M-D h-m"),
|
||||
projectId: item.projectId,
|
||||
createId: item.createId,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -230,12 +230,25 @@
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="itcon">
|
||||
<div class="itcon" @click="showAddface">
|
||||
<div class="img">
|
||||
<img src="../../assets/images/leveladd/mian.png" />
|
||||
</div>
|
||||
<div class="text">面授</div>
|
||||
</div>
|
||||
<!-- 添加面授 -->
|
||||
<add-faceteach
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
v-model:isactive="isactive"
|
||||
v-model:routerId="routerId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:routerTaskId="routerTaskId"
|
||||
v-model:addfaceteachVisible="addfaceteachVisible"
|
||||
v-model:EditFaceId="EditFaceId"
|
||||
:isLevel="isLevel"
|
||||
/>
|
||||
<!-- 添加面授 -->
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
<div class="item">
|
||||
@@ -470,10 +483,22 @@
|
||||
<div class="img">
|
||||
<img
|
||||
src="../../assets/images/leveladd/xiang.png"
|
||||
@click="showDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="text">项目</div>
|
||||
<div>
|
||||
<add-project
|
||||
v-model:addprojvisible="addprojvisible"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
v-model:routerId="routerId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:EditProjectId="EditProjectId"
|
||||
v-model:routerTaskId="routerTaskId"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -696,42 +721,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="draw" style="position: relative">
|
||||
<a-drawer
|
||||
v-model:visible="addprojvisible"
|
||||
class="drawerStyle ProjectDrawer"
|
||||
title="关联项目"
|
||||
placement="right"
|
||||
width="80%"
|
||||
@after-visible-change="afterProjVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">关联项目</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="leaveProjDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="drawerbox">
|
||||
<a-table
|
||||
:columns="drawertableColumns()"
|
||||
:data-source="drawertableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 700 }"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
>
|
||||
</a-table>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button @click="leaveProjDrawer" class="btn1">取消</button>
|
||||
<button @click="updateTask" class="btn2">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="right" :style="{ display: gqxy_hs ? 'none' : 'block' }">
|
||||
<div class="addhead">
|
||||
@@ -1042,6 +1033,8 @@ import AddInvist from "../../components/drawers/AddInvist.vue";
|
||||
import AddVote from "../../components/vote/AddVote.vue";
|
||||
import AddLive from "../../components/drawers/AddLive.vue";
|
||||
import AddRef from "../../components/drawers/AddRef.vue";
|
||||
import AddProject from "../../components/drawers/AddProject.vue";
|
||||
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
|
||||
import * as api from "../../api/indexLevel";
|
||||
import { GetRouterDetail } from "../../api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
@@ -1049,9 +1042,9 @@ import { storage } from "../../api/storage";
|
||||
import { deleteStudyTask } from "../../api/indexStudy";
|
||||
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 { toDate } from "../../api/method";
|
||||
import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
||||
export default {
|
||||
@@ -1072,6 +1065,8 @@ export default {
|
||||
AddRef,
|
||||
draggable,
|
||||
UnlockMode,
|
||||
AddFaceteach,
|
||||
AddProject,
|
||||
},
|
||||
setup() {
|
||||
const state = reactive({
|
||||
@@ -1173,94 +1168,52 @@ export default {
|
||||
time: "2022-07-15 14:00",
|
||||
},
|
||||
],
|
||||
// drawertableData: [
|
||||
// {
|
||||
// key: 1,
|
||||
// projectName: "管理者进阶",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// children: [
|
||||
// {
|
||||
// key: "1-1",
|
||||
// projectName: "管理者进阶-腾飞班",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// children: [
|
||||
// {
|
||||
// key: "1-1-1",
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// key: 2,
|
||||
// projectName: "管理者进阶",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// children: [
|
||||
// {
|
||||
// key: "2-1",
|
||||
// projectName: "管理者进阶-腾飞班",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// children: [
|
||||
// {
|
||||
// key: "2-1-1",
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// key: 3,
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// {
|
||||
// key: 4,
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// {
|
||||
// key: 5,
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// {
|
||||
// key: 6,
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// {
|
||||
// key: 7,
|
||||
// projectName: "管理者进阶-腾飞班K1",
|
||||
// manager: "黄华 刘俊",
|
||||
// creater: "毛继禹",
|
||||
// time: "2022-07-20 14:00:03",
|
||||
// },
|
||||
// ],
|
||||
drawertableData: [],
|
||||
//项目抽屉、列表参数
|
||||
drawertableData: [
|
||||
{
|
||||
key: 1,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 5,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 2,
|
||||
parentId:2,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 7,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
children:[
|
||||
{
|
||||
key: 9,
|
||||
parentId:1,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 3,
|
||||
parentId:3,
|
||||
name: '123',
|
||||
manager:'afssfa',
|
||||
},
|
||||
],
|
||||
selectedProjRowKeys:[],
|
||||
currentPage: 1,
|
||||
tableDataTotal: 0,
|
||||
pageSize: 10,
|
||||
@@ -1268,6 +1221,7 @@ export default {
|
||||
//项目
|
||||
editproj: false,
|
||||
addprojvisible: false,
|
||||
addfaceteachVisible: false,
|
||||
AddSvisible: false, //添加学员抽屉
|
||||
AddImpStuvisible: false, //导入学员抽屉
|
||||
addlivevisible: false, //添加直播抽屉
|
||||
@@ -1291,8 +1245,9 @@ export default {
|
||||
EditEvalId: "",
|
||||
EditInvistId: "",
|
||||
EditVoteId: "",
|
||||
EditFaceId: "",
|
||||
//项目
|
||||
EditProjId: "",
|
||||
EditProjectId: "",
|
||||
routerTaskId: "",
|
||||
chapterId: "",
|
||||
stageId: "",
|
||||
@@ -1304,7 +1259,6 @@ export default {
|
||||
isLevel: 1, //学习路径1项目2模板库3
|
||||
gqxy_hs: true,
|
||||
isactive: 0,
|
||||
projectChecked: null, //项目单选框
|
||||
adddiscussvisible: false, //讨论抽屉
|
||||
isStudiscuss: false,
|
||||
addactivevisible: false, //活动抽屉
|
||||
@@ -1434,20 +1388,18 @@ export default {
|
||||
console.log("删除关卡失败", err);
|
||||
});
|
||||
};
|
||||
|
||||
const showDrawer = () => {
|
||||
state.visible = true;
|
||||
};
|
||||
//关闭项目抽屉
|
||||
const leaveProjDrawer = () => {
|
||||
state.addprojvisible = false;
|
||||
};
|
||||
//在线抽屉
|
||||
const showDrawerAddOnline = (id, eleId) => {
|
||||
state.addonlinevisible = true;
|
||||
state.EditWorkId = id;
|
||||
state.routerTaskId = eleId;
|
||||
};
|
||||
//面授抽屉
|
||||
const showAddface = (id, eleId) => {
|
||||
state.addfaceteachVisible = true;
|
||||
state.EditFaceId = id;
|
||||
state.routerTaskId = eleId;
|
||||
};
|
||||
//案例抽屉
|
||||
const showDrawerAddCase = (id, eleId) => {
|
||||
state.addcasevisible = true;
|
||||
@@ -1469,14 +1421,12 @@ export default {
|
||||
};
|
||||
//测试抽屉
|
||||
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;
|
||||
@@ -1515,9 +1465,13 @@ export default {
|
||||
//打开项目抽屉
|
||||
const showDrawerAddProj = (id, eleId) => {
|
||||
state.addprojvisible = true;
|
||||
state.EditActiveId = id;
|
||||
state.EditProjectId = id;
|
||||
state.routerTaskId = eleId;
|
||||
};
|
||||
//关闭项目抽屉
|
||||
const leaveProjDrawer = () => {
|
||||
state.addprojvisible = false;
|
||||
};
|
||||
//tableData数据赋值方法
|
||||
const dataAssignment = (id) => {
|
||||
console.log(state.level);
|
||||
@@ -1569,7 +1523,7 @@ export default {
|
||||
});
|
||||
if (state.level.length > 0) {
|
||||
let chapter = localStorage.getItem("chapterId");
|
||||
if (chapter !== null) {
|
||||
if (chapter !== "null") {
|
||||
dataAssignment(chapter); //用哪个的任务表
|
||||
state.isactive = chapter; //哪个亮
|
||||
} else {
|
||||
@@ -1583,14 +1537,7 @@ export default {
|
||||
message.error(err);
|
||||
});
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
state.visible = false;
|
||||
};
|
||||
const afterProjVisibleChange = (bol) => {
|
||||
if(bol == true){
|
||||
getAllProjText()
|
||||
}
|
||||
};
|
||||
|
||||
const showAddStu = () => {
|
||||
state.AddSvisible = true;
|
||||
};
|
||||
@@ -1747,7 +1694,6 @@ export default {
|
||||
"rgb(245, 247, 250,1)";
|
||||
document.getElementsByTagName("main")[0].style.boxShadow = "none";
|
||||
getDetail();
|
||||
getAllProjText();
|
||||
});
|
||||
onUnmounted(() => {
|
||||
document.getElementsByTagName("main")[0].style.background = "#ffffff";
|
||||
@@ -1921,9 +1867,9 @@ export default {
|
||||
} else if (type == "活动") {
|
||||
showDrawerAddActive(id, eleId);
|
||||
} else if (type == "测评") {
|
||||
showDrawerAddInvist(id, eleId);
|
||||
} else if (type == "评估") {
|
||||
showDrawerAddEval(id, eleId);
|
||||
} else if (type == "评估") {
|
||||
showDrawerAddInvist(id, eleId);
|
||||
} else if (type == "投票") {
|
||||
showDrawerAddVote(id, eleId);
|
||||
} else if (type == "项目") {
|
||||
@@ -1932,6 +1878,8 @@ export default {
|
||||
showDrawerAddOnline(id, eleId);
|
||||
} else if (type == "案例") {
|
||||
showDrawerAddCase(id, eleId);
|
||||
} else if (type == "面授") {
|
||||
showAddface(id, eleId);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1975,138 +1923,28 @@ export default {
|
||||
console.log("阶段改变", value, option);
|
||||
state.removeStageId = option.chapterId;
|
||||
};
|
||||
//项目抽屉用的
|
||||
const rowSelection = {
|
||||
onSelect: (selectedRows, selected, selectedRowKeys) => {
|
||||
console.log(
|
||||
"selectedRowKeys",
|
||||
selectedRowKeys,
|
||||
"selectedRows",
|
||||
selectedRows,
|
||||
"selected",
|
||||
selected
|
||||
);
|
||||
state.projId = selectedRows.parentId;
|
||||
state.projName = selectedRows.name;
|
||||
},
|
||||
};
|
||||
const getTableDate = (drawertableData) => {
|
||||
console.log(drawertableData,'drawertableDatadrawertableDatadrawertableDatadrawertableData')
|
||||
let data = drawertableData
|
||||
let array = []
|
||||
data.map((value)=>{
|
||||
if(value.type ==3){
|
||||
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"),
|
||||
};
|
||||
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": "",
|
||||
"manager": "",
|
||||
"name": "",
|
||||
"pageNo": 1,
|
||||
"pageSize": 10,
|
||||
"status": 0
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
getTableDate(arr);
|
||||
console.log("---------------项目信息---------------------------",res.data.data);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取全部项目信息接口失败", err);
|
||||
console.log("+++++++++++++++++++++++++++++++++++++++++++++++");
|
||||
// state.createLoading = false;
|
||||
});
|
||||
};
|
||||
//不需要下面这个添加应该 没选数据
|
||||
//添加关卡项目
|
||||
const updateTask = () => {
|
||||
RouterEditTask({
|
||||
duration: 0,
|
||||
flag: true,
|
||||
chapterId: state.isactive,
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
courseId: Number(state.projId),
|
||||
name: state.projName,
|
||||
routerId: state.routerId,
|
||||
routerTaskId: state.routerTaskId || 0,
|
||||
routerTaskId: state.routerTaskId,
|
||||
type: 13,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
.then(( ) => {
|
||||
message.success(`${state.editproj ? "编辑" : "新增"}关卡任务成功`);
|
||||
// ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
leaveProjDrawer()
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
.catch(() => {
|
||||
message.destroy()
|
||||
message.error("添加关卡任务失败")
|
||||
});
|
||||
};
|
||||
|
||||
@@ -2114,19 +1952,12 @@ export default {
|
||||
const showModeVisible = () => {
|
||||
state.unlockModeVisible = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
// createCase();
|
||||
getAllProjText();
|
||||
});
|
||||
return {
|
||||
...toRefs(state),
|
||||
// tableDataFunc,
|
||||
tableDataFunc2,
|
||||
showDrawer,
|
||||
closeDrawer,
|
||||
showModal,
|
||||
closeModal,
|
||||
afterProjVisibleChange,
|
||||
showAddStu,
|
||||
showImpStu,
|
||||
// drawercolumns,
|
||||
@@ -2166,9 +1997,7 @@ export default {
|
||||
showChangeModal,
|
||||
closeChangeModal,
|
||||
handleChangeStage,
|
||||
rowSelection,
|
||||
getTableDate,
|
||||
getAllProjText,
|
||||
|
||||
updateTask,
|
||||
|
||||
showDeleteChapter,
|
||||
@@ -2176,6 +2005,7 @@ export default {
|
||||
deleteChapter,
|
||||
|
||||
showModeVisible,
|
||||
showAddface,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
<router-link to="/manage/templatelibrary"
|
||||
<router-link to="/templatelibrary"
|
||||
><div style="display: flex">
|
||||
<img class="img2" src="../../assets/images/leveladd/back.png" />
|
||||
<div class="return">返回</div>
|
||||
@@ -802,23 +802,9 @@ export default defineComponent({
|
||||
// 发布公告
|
||||
const addNotice = () => {
|
||||
let obj = {
|
||||
"beginTime": 0,
|
||||
"boeFlag": 0,
|
||||
"category": 0,
|
||||
"courseSyncFlag": 0,
|
||||
"endTime": 0,
|
||||
"level": 0,
|
||||
"manager": "",
|
||||
"managerId": "",
|
||||
"name": "",
|
||||
"notice": state.projectInfo.notice,
|
||||
"noticeFlag": 0,
|
||||
"picUrl": "",
|
||||
"projectTemplateId": store.state.projectTemplateId,
|
||||
"remark": "",
|
||||
"sourceBelongId": 0,
|
||||
"status": 0,
|
||||
"systemId": 0
|
||||
"projectId": store.state.projectTemplateId,
|
||||
"title": ""
|
||||
};
|
||||
api.templateEdit(obj).methods(obj).then(res => {
|
||||
message.success("公告发布成功")
|
||||
|
||||
@@ -196,7 +196,13 @@
|
||||
<div>
|
||||
<add-faceteach
|
||||
v-model:addfaceteachVisible="addfaceteachvisible"
|
||||
v-model:EditEvalId="EditEvalId"
|
||||
v-model:EditFaceId="EditFaceId"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@changeData="updateTableData"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加面授侧弹窗 -->
|
||||
@@ -1129,6 +1135,7 @@ export default {
|
||||
EditCaseId: null, //要编辑的案例id
|
||||
EditOnlineId: null, //要编辑的在线id
|
||||
EditFaceTeach: null,
|
||||
EditFaceId: null,
|
||||
EditEvalId: null,
|
||||
EditInvistId: null,
|
||||
EditVoteId: null, //编辑需要投票的id
|
||||
@@ -1548,7 +1555,7 @@ export default {
|
||||
// console.log("任务列表", stage, arr);
|
||||
// getTableData(arr);
|
||||
}
|
||||
|
||||
//获取阶段列表
|
||||
let stagearr = res.data.data.stageList;
|
||||
let arrlist = state.curLevel;
|
||||
console.log(stagearr, 111111);
|
||||
@@ -1556,7 +1563,7 @@ export default {
|
||||
getStageData(stagearr);
|
||||
stagearr.map((value) => {
|
||||
console.log(value);
|
||||
arrlist.push();
|
||||
arrlist.push(value);
|
||||
});
|
||||
}
|
||||
//给阶段id赋初始值
|
||||
@@ -1808,8 +1815,10 @@ export default {
|
||||
state.EditOnlineId = id;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerFaceteach = () => {
|
||||
const showDrawerFaceteach = (id, eleId) => {
|
||||
state.addfaceteachvisible = true;
|
||||
state.EditFaceId = id;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddCase = (id, eleId) => {
|
||||
state.addcasevisible = true;
|
||||
@@ -1846,7 +1855,7 @@ export default {
|
||||
state.addactivevisible = true;
|
||||
state.EditActiveId = id;
|
||||
state.projectTaskId = eleId;
|
||||
console.log("active=======", id);
|
||||
|
||||
};
|
||||
const showDrawerAddEval = (id, eleId) => {
|
||||
state.addevalvisible = true;
|
||||
@@ -1855,12 +1864,12 @@ export default {
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddInvist = (id, eleId) => {
|
||||
console.log(id, eleId, "213312");
|
||||
state.EditInvistId = id;
|
||||
state.addinvistvisible = true;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddVote = (id, eleId) => {
|
||||
console.log(id, eleId, "95835325932953295325");
|
||||
|
||||
state.addvotevisible = true;
|
||||
state.EditVoteId = id;
|
||||
state.projectTaskId = eleId;
|
||||
@@ -2009,6 +2018,8 @@ export default {
|
||||
showDrawerAddTest(id, eleId);
|
||||
} else if (type == "在线") {
|
||||
showDrawerOnline(id, eleId);
|
||||
} else if (type == "面授") {
|
||||
showDrawerFaceteach(id, eleId);
|
||||
}
|
||||
};
|
||||
const showdeAll = () => {
|
||||
|
||||
@@ -6124,6 +6124,11 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.btnbox{
|
||||
.ant-upload-list{
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
.onemain {
|
||||
margin-top: 20px;
|
||||
margin-left: 55px;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</div>
|
||||
<div class="inpbox1">
|
||||
<span>创建时间:</span>
|
||||
<a-date-picker v-model="selectTime" type="date" placeholder="创建时间" style="
|
||||
<a-date-picker v-model:value="time" type="date" placeholder="创建时间" style="
|
||||
width: 270px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
@@ -50,6 +50,7 @@ import { message } from "ant-design-vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useStore } from "vuex";
|
||||
import * as api from "@/api/indexTemplate"
|
||||
|
||||
const columns1 = [
|
||||
{
|
||||
title: "模版名称",
|
||||
@@ -97,6 +98,10 @@ export default defineComponent({
|
||||
const router = useRouter();
|
||||
const state = reactive({
|
||||
value1: null,
|
||||
time:null,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total:0,
|
||||
tableData1: [
|
||||
{
|
||||
key: "1",
|
||||
@@ -166,9 +171,9 @@ export default defineComponent({
|
||||
state.tableData = data;
|
||||
};
|
||||
const pagination = reactive({
|
||||
current: 1,
|
||||
total: 50,
|
||||
defaultPageSize: 10,
|
||||
current: state.currentPage,
|
||||
total: state.total,
|
||||
defaultPageSize: state.pageSize,
|
||||
onChange: (id) => { pagination.current = id; getLibraryList() },
|
||||
})
|
||||
getTableDate1();
|
||||
@@ -179,12 +184,14 @@ export default defineComponent({
|
||||
|
||||
// 获取模板列表
|
||||
const getLibraryList = () => {
|
||||
let date = Math.ceil(new Date(state.time).getTime() / 1000);
|
||||
|
||||
let obj = {
|
||||
"beginTime": 0,
|
||||
"name": "",
|
||||
// "create_time": state.time,
|
||||
"createTime" : date==0?null:date,
|
||||
"name": state.value1,
|
||||
"pageNo": pagination.current,
|
||||
"pageSize": 10,
|
||||
"status": 0
|
||||
"pageSize": state.pageSize
|
||||
}
|
||||
api.templateList(obj).then((res) => {
|
||||
state.tableData1 = []
|
||||
@@ -222,13 +229,16 @@ export default defineComponent({
|
||||
}
|
||||
const searchLevel = () => {
|
||||
getLibraryList();
|
||||
/*
|
||||
setTimeout(() => {
|
||||
const result = state.tableData1.filter(item => item.name.includes(state.value1))
|
||||
state.tableData1 = result;
|
||||
},100)
|
||||
*/
|
||||
};
|
||||
const resetLevel = () => {
|
||||
state.value1 = '';
|
||||
state.time = '';
|
||||
getLibraryList();
|
||||
getTableDate1()
|
||||
};
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
@changeData="updateTableData"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditOnlineId="EditOnlineId"
|
||||
@@ -216,7 +216,7 @@
|
||||
@changeData="updateTableData"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditCaseId="EditCaseId"
|
||||
@@ -239,7 +239,7 @@
|
||||
@changeData="updateTableData"
|
||||
v-model:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:EditWorkId="EditWorkId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -262,7 +262,7 @@
|
||||
@changeData="updateTableData"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:EditTestId="EditTestId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -284,7 +284,7 @@
|
||||
v-model:addliveVisible="addlivevisible"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:edit="edit"
|
||||
v-model:EditLiveId="EditLiveId"
|
||||
@@ -307,7 +307,7 @@
|
||||
v-model:addrefVisible="addrefvisible"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:edit="edit"
|
||||
v-model:EditRefId="EditRefId"
|
||||
@@ -330,7 +330,7 @@
|
||||
v-model:adddiscussVisible="adddiscussvisible"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:EditDiscussId="EditDiscussId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -351,7 +351,7 @@
|
||||
<div>
|
||||
<add-active
|
||||
v-model:addactiveVisible="addactivevisible"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:EditActiveId="EditActiveId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:edit="edit"
|
||||
@@ -377,7 +377,7 @@
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditEvalId="EditEvalId"
|
||||
@@ -400,7 +400,7 @@
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditInvistId="EditInvistId"
|
||||
@@ -423,7 +423,7 @@
|
||||
@getData="changeVData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:projectTemplateId="projectTemplateId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditVoteId="EditVoteId"
|
||||
@@ -1114,7 +1114,7 @@
|
||||
chooseStageId: null,
|
||||
removeStageId: null,
|
||||
edit: false,
|
||||
isLevel: 2, //学习路径1项目2模板库3
|
||||
isLevel: 3, //学习路径1项目2模板库3
|
||||
// isRefEdit: 1, //外链编辑
|
||||
// isLiveEdit: 1, //直播编辑
|
||||
isRefEdit: false, //外链编辑
|
||||
@@ -1528,13 +1528,16 @@
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
let result = stageList.find((item) => item.templateStageId == stage);
|
||||
console.log("又找到了", result);
|
||||
changebgc(res.data.data.stageList[0].templateStageId);
|
||||
getTableData(result.taskList);
|
||||
|
||||
} else {
|
||||
let arr = res.data.data.stageList[0].taskList;
|
||||
console.log("任务列表", arr);
|
||||
changebgc(res.data.data.stageList[0].templateStageId);
|
||||
getTableData(arr);
|
||||
// state.isActive = true;
|
||||
changebgc(res.data.data.stageList[0].templateStageId);
|
||||
|
||||
}
|
||||
|
||||
// 每次都获取了第一条taskList
|
||||
@@ -1542,7 +1545,6 @@
|
||||
// console.log("任务列表", stage, arr);
|
||||
// getTableData(arr);
|
||||
}
|
||||
|
||||
let stagearr = res.data.data.stageList;
|
||||
let arrlist = state.curLevel;
|
||||
console.log(stagearr, 111111);
|
||||
@@ -1685,6 +1687,7 @@
|
||||
state.valuesname = "";
|
||||
state.valuesnotice = "";
|
||||
state.updateStageID = null;
|
||||
|
||||
};
|
||||
//显示添加阶段弹窗
|
||||
const showModal = (element) => {
|
||||
@@ -1964,7 +1967,6 @@
|
||||
|
||||
//打开测评的弹窗
|
||||
const showEditEvalDrawer = (id, eleId) => {
|
||||
console.log("222222222222222222222", id);
|
||||
state.addevalvisible = true;
|
||||
state.projectTaskId = eleId;
|
||||
state.EditRefId = id;
|
||||
|
||||
@@ -47,7 +47,6 @@
|
||||
}
|
||||
"
|
||||
v-model:value="projectInfo.category"
|
||||
placeholder="管理者"
|
||||
style="width: 100%"
|
||||
:options="classifyList"
|
||||
@change="classificationChange"
|
||||
@@ -121,7 +120,8 @@
|
||||
<a-range-picker
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
v-model:value="rangevalue"
|
||||
v-model:value="projectInfo.choosedTime"
|
||||
format="YYYY-MM-DD"
|
||||
style="width: 100%; height: 40px; border-radius: 5px"
|
||||
/>
|
||||
</div>
|
||||
@@ -141,7 +141,8 @@
|
||||
return triggerNode.parentNode || document.body;
|
||||
}
|
||||
"
|
||||
:value="projectInfo.manager"
|
||||
|
||||
:value="classifySelect1"
|
||||
mode="multiple"
|
||||
placeholder="请选择项目经理"
|
||||
style="width: 100%"
|
||||
@@ -319,6 +320,7 @@ import * as api from "../../api/indexTemplate";
|
||||
import { storage } from "../../api/storage";
|
||||
import {useStore} from "vuex";
|
||||
// import { toDate } from "../../api/method";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
export default {
|
||||
name: "projectAdd",
|
||||
@@ -358,7 +360,7 @@ export default {
|
||||
valueE: null,
|
||||
valueE1: null,
|
||||
valueE2: null,
|
||||
classifySelect1: [],
|
||||
classifySelect1: ['李俊国'],
|
||||
classifySelect2: [],
|
||||
classifySelect3: [],
|
||||
classifySelect4: [],
|
||||
@@ -370,16 +372,16 @@ export default {
|
||||
totalPages: 0, //总页数
|
||||
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
|
||||
projectInfo:{
|
||||
beginTime:null,
|
||||
endTime:null,
|
||||
choosedTime:'',
|
||||
name: null,
|
||||
manager: null,
|
||||
notice: null,
|
||||
sourceBelongId: null,
|
||||
sourceBelongId: 1,
|
||||
category:1,
|
||||
remark: "",
|
||||
courseSyncFlag: false,
|
||||
level: null,
|
||||
systemId: null,
|
||||
level: 1,
|
||||
systemId: 2,
|
||||
boeFlag: false,
|
||||
}
|
||||
});
|
||||
@@ -628,9 +630,9 @@ export default {
|
||||
"name": state.projectInfo.name,
|
||||
"category": state.projectInfo.category,
|
||||
"picUrl": "x",
|
||||
"beginTime": state.projectInfo.rangevalue || 1,
|
||||
"endTime": state.projectInfo.rangevalue || 1,
|
||||
"manager": state.projectInfo.manager,
|
||||
"beginTime": Number(dayjs(state.projectInfo.choosedTime[0]).format("YYYY-MM-DD")) || 1,
|
||||
"endTime": Number(dayjs(state.projectInfo.choosedTime[1]).format("YYYY-MM-DD")) || 1,
|
||||
"manager": state.classifySelect1.toString(),
|
||||
"managerId": state.projectInfo.managerId || 0,
|
||||
"sourceBelongId": state.projectInfo.sourceBelongId,
|
||||
"level": state.projectInfo.level,
|
||||
|
||||
@@ -1,762 +0,0 @@
|
||||
<!-- 评估管理-创建评估页面 -->
|
||||
<template>
|
||||
<div class="researchadd">
|
||||
<div class="header">
|
||||
<span class="title">创建评估</span>
|
||||
<router-link to="/researchmanage" class="goback">
|
||||
<span class="return"></span>
|
||||
<router-link class="returntext" to="/researchmanage">
|
||||
返回
|
||||
</router-link>
|
||||
</router-link>
|
||||
</div>
|
||||
<div class="addtype">
|
||||
<div class="addtypen">创建评估类型</div>
|
||||
<div class="types" @click="handleTypes(1)">单选题</div>
|
||||
<div class="types" @click="handleTypes(2)">多选题</div>
|
||||
<div class="types" @click="handleTypes(3)">问答题</div>
|
||||
<div class="types" @click="handleTypes(4)">评分题</div>
|
||||
</div>
|
||||
<div v-for="(item, index) in allFormsData" :key="index">
|
||||
<ResearchAddSingle v-if="item.type === 1" :item="item" @del="handleDel" />
|
||||
<ResearchAddMulti v-if="item.type === 2" :item="item" @del="handleDel" />
|
||||
<ResearchAddAsk v-if="item.type === 3" :item="item" @del="handleDel" />
|
||||
<ResearchAddPin v-if="item.type === 4" :item="item" @del="handleDel" />
|
||||
</div>
|
||||
<div class="opinion name2">
|
||||
<div class="namebox">
|
||||
<div class="inname" style="margin-top: 13px">您的其他意见</div>
|
||||
</div>
|
||||
<div class="in">
|
||||
<a-textarea
|
||||
v-model:value="valueMore"
|
||||
style="height: 110px"
|
||||
show-count
|
||||
:maxlength="200"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
background-color: #409eff;
|
||||
"
|
||||
@click="handleSave"
|
||||
>
|
||||
保存
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
ghost
|
||||
style="
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-left: 14px;
|
||||
border-radius: 8px;
|
||||
"
|
||||
@click="handleAllCancel"
|
||||
>
|
||||
取消
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, computed } from "vue";
|
||||
// import { message } from "ant-design-vue";
|
||||
// import { createResearch } from "../../api/indexResearch";
|
||||
import ResearchAddSingle from "./components/ResearchAddSingle.vue";
|
||||
import ResearchAddMulti from "./components/ResearchAddMulti.vue";
|
||||
import ResearchAddAsk from "./components/ResearchAddAsk.vue";
|
||||
import ResearchAddPin from "./components/ResearchAddPin.vue";
|
||||
import { sortBy, traverseArr, filterCommon } from "../../utils/utils";
|
||||
import {
|
||||
queryResearchDetailById,
|
||||
editResearchMessage,
|
||||
createResearch,
|
||||
} from "@/api/indexResearch";
|
||||
import { useRouter } from "vue-router";
|
||||
import store from "@/store";
|
||||
|
||||
export default {
|
||||
name: "ResearchAdd",
|
||||
components: {
|
||||
ResearchAddSingle,
|
||||
ResearchAddMulti,
|
||||
ResearchAddAsk,
|
||||
ResearchAddPin,
|
||||
},
|
||||
setup() {
|
||||
const router = useRouter();
|
||||
const state = reactive({
|
||||
assessmentId: "", //编辑时候传
|
||||
assessmentName: "",
|
||||
assessmentNameNew: computed(() => store.state.assessmentName),
|
||||
|
||||
allFormsData: [],
|
||||
valueMore: "",
|
||||
});
|
||||
|
||||
const getInfoDate = async () => {
|
||||
let id = router.currentRoute.value.params.id;
|
||||
if (id) {
|
||||
state.assessmentId = id;
|
||||
let renderArr = [];
|
||||
let res = await queryResearchDetailById({
|
||||
assessmentId: state.assessmentId,
|
||||
});
|
||||
console.log("res1111111111");
|
||||
console.log(res);
|
||||
state.assessmentName = res.assessmentName;
|
||||
state.valueMore = res.assessmentMark;
|
||||
renderArr.concat(
|
||||
res.singleStemVoList,
|
||||
res.multipleStemVoList,
|
||||
res.essayQuestionVoList,
|
||||
res.scoringQuestionVoList
|
||||
);
|
||||
sortBy(renderArr, "orderNumber"); //序号
|
||||
console.log("renderArr");
|
||||
console.log(renderArr);
|
||||
this.allFormsData = parseData(renderArr, "questionType"); //类型
|
||||
console.log("this.allFormsData");
|
||||
console.log(this.allFormsData);
|
||||
}
|
||||
};
|
||||
getInfoDate();
|
||||
|
||||
// 转换成前端格式
|
||||
const parseData = (arr, typeKey) => {
|
||||
console.log(arr);
|
||||
console.log(typeKey);
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
if (item[typeKey] === 1) {
|
||||
let restList = traverseArr(item.assessmentSingleChoiceVoList, {
|
||||
inputVal: "singleOptionName",
|
||||
imgVal: "singleOptionPictureAddress",
|
||||
}).map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
type: item[typeKey],
|
||||
valueSingle: item.singleStemName,
|
||||
singleList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 2) {
|
||||
let restList = traverseArr(item.multipleChoiceVoList, {
|
||||
inputVal: "multipleOptionName",
|
||||
imgVal: "multipleOptionPictureAddress",
|
||||
}).map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
type: item[typeKey],
|
||||
valueMutil: item.multipleStemName,
|
||||
mutilList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 3) {
|
||||
obj = {
|
||||
type: item[typeKey],
|
||||
valueAsk: item.assessmentQaTitle,
|
||||
valueAskDesc: item.assessmentQaDescribe,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 4) {
|
||||
obj = {
|
||||
type: item[typeKey],
|
||||
valuePin: item.assessmentScTitle,
|
||||
minScore: item.assessmentScore, //?
|
||||
maxScore: item.assessmentScore, //?
|
||||
pinQuan: item.weightScale,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
console.log(resultArr);
|
||||
return resultArr;
|
||||
};
|
||||
// 转换成后端格式
|
||||
const restData = (arr, typeKey) => {
|
||||
console.log("转换成后端格式");
|
||||
console.log(arr);
|
||||
console.log(typeKey);
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
if (item[typeKey] === 1) {
|
||||
console.log(11111111111);
|
||||
let restList = traverseArr(item.singleList, {
|
||||
singleOptionName: "inputVal",
|
||||
singleOptionPictureAddress: "imgVal",
|
||||
}).map((itm, idx) => {
|
||||
itm.optionOrderNum = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
console.log(restList);
|
||||
|
||||
obj = {
|
||||
questionType: item[typeKey],
|
||||
singleStemName: item.valueSingle,
|
||||
singleList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 2) {
|
||||
let restList = traverseArr(item.mutilList, {
|
||||
multipleOptionName: "inputVal",
|
||||
multipleOptionPictureAddress: "imgVal",
|
||||
}).map((itm, idx) => {
|
||||
itm.optionOrderNum = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
questionType: item[typeKey],
|
||||
multipleStemName: item.valueMutil,
|
||||
mutilList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 3) {
|
||||
obj = {
|
||||
questionType: item[typeKey],
|
||||
assessmentQaTitle: item.valueAsk,
|
||||
assessmentQaDescribe: item.valueAskDesc,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
if (item[typeKey] === 4) {
|
||||
obj = {
|
||||
questionType: item[typeKey],
|
||||
assessmentScTitle: item.valuePin,
|
||||
assessmentScore: item.minScore, //?
|
||||
assessmentScore1: item.maxScore, //?
|
||||
weightScale: item.pinQuan,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
}
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.orderNumber = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
console.log(resultArr);
|
||||
return resultArr;
|
||||
};
|
||||
// 解散传值
|
||||
const parseItem = (arr) => {
|
||||
console.log(676767);
|
||||
console.log(arr);
|
||||
const filterComObj = filterCommon(arr, "questionType");
|
||||
console.log("filterComObj");
|
||||
console.log(filterComObj);
|
||||
let resultObj = {};
|
||||
for (let key in filterComObj) {
|
||||
console.log("key");
|
||||
console.log(key);
|
||||
if (key === "1") {
|
||||
let arrSingle = filterComObj[key];
|
||||
console.log(arrSingle);
|
||||
let arr = [];
|
||||
arrSingle.forEach((item) => {
|
||||
if (item.singleList.length) {
|
||||
item.singleList.forEach((itm) => {
|
||||
arr.push({
|
||||
...itm,
|
||||
singleStemName: item.singleStemName,
|
||||
orderNumber: item.orderNumber,
|
||||
questionType: item.questionType,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
resultObj.assessmentSingleChoiceDtoList = arr;
|
||||
}
|
||||
if (key === "2") {
|
||||
let arrMulti = filterComObj[key];
|
||||
let arr = [];
|
||||
arrMulti.forEach((item) => {
|
||||
if (item.mutilList.length) {
|
||||
item.mutilList.forEach((itm) => {
|
||||
arr.push({
|
||||
...itm,
|
||||
multipleStemName: item.multipleStemName,
|
||||
orderNumber: item.orderNumber,
|
||||
questionType: item.questionType,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
resultObj.assessmentMultipleChoiceDtoList = arr;
|
||||
}
|
||||
if (key === "3") {
|
||||
resultObj.assessmentEssayQuestionDtoList = filterComObj[key];
|
||||
}
|
||||
if (key === "4") {
|
||||
resultObj.assessmentScoringQuestionDtoList = filterComObj[key];
|
||||
}
|
||||
}
|
||||
console.log("resultObj");
|
||||
console.log(resultObj);
|
||||
return resultObj;
|
||||
};
|
||||
const creatFromData = (type) => {
|
||||
let obj = {};
|
||||
switch (type) {
|
||||
case 1:
|
||||
obj = {
|
||||
type,
|
||||
id: state.allFormsData.length,
|
||||
valueSingle: "",
|
||||
singleList: [
|
||||
{
|
||||
id: 1,
|
||||
inputVal: "",
|
||||
imgVal: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
break;
|
||||
case 2:
|
||||
obj = {
|
||||
type,
|
||||
id: state.allFormsData.length,
|
||||
valueMutil: "",
|
||||
mutilList: [
|
||||
{
|
||||
id: 1,
|
||||
inputVal: "",
|
||||
imgVal: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
break;
|
||||
case 3:
|
||||
obj = {
|
||||
type,
|
||||
id: state.allFormsData.length,
|
||||
valueAsk: "",
|
||||
valueAskDesc: "",
|
||||
};
|
||||
break;
|
||||
case 4:
|
||||
obj = {
|
||||
type,
|
||||
id: state.allFormsData.length,
|
||||
valuePin: "",
|
||||
minScore: 1,
|
||||
maxScore: 10,
|
||||
pinQuan: 100,
|
||||
};
|
||||
break;
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
|
||||
const handleTypes = (type) => {
|
||||
state.allFormsData.push(creatFromData(type));
|
||||
};
|
||||
|
||||
const handleDel = ({ id }) => {
|
||||
state.allFormsData.forEach((item, index) => {
|
||||
if (item.id === id) {
|
||||
state.allFormsData.splice(index, 1);
|
||||
}
|
||||
});
|
||||
state.allFormsData.map((item, index) => {
|
||||
item.id = index + 1;
|
||||
return item;
|
||||
});
|
||||
};
|
||||
|
||||
const handleSave = () => {
|
||||
let resultPost = {};
|
||||
let filterData = parseItem(restData(state.allFormsData, "type"));
|
||||
console.log(777);
|
||||
console.log(filterData);
|
||||
console.log(state.allFormsData);
|
||||
console.log("当前权重设置是百分制 请重新配置");
|
||||
|
||||
if (state.assessmentId) {
|
||||
resultPost = {
|
||||
assessmentId: state.assessmentId,
|
||||
assessmentName: state.assessmentName
|
||||
? state.assessmentName
|
||||
: "编辑测试",
|
||||
assessmentMark: state.assessmentMark,
|
||||
...filterData,
|
||||
};
|
||||
console.log("resultPost2222222222");
|
||||
console.log(resultPost);
|
||||
editResearchMessage(resultPost).then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
} else {
|
||||
resultPost = {
|
||||
assessmentName: state.assessmentNameNew,
|
||||
assessmentMark: state.assessmentMark,
|
||||
...filterData,
|
||||
};
|
||||
console.log("resultPost111111");
|
||||
console.log(resultPost);
|
||||
createResearch(resultPost).then((res) => {
|
||||
console.log(res);
|
||||
});
|
||||
}
|
||||
};
|
||||
const handleAllCancel = () => {
|
||||
state.allFormsData = [];
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
handleTypes,
|
||||
handleSave,
|
||||
handleAllCancel,
|
||||
handleDel,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.researchadd {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.header {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.title {
|
||||
color: #000000;
|
||||
font-size: 18px;
|
||||
//line-height: 36px;
|
||||
padding-top: 30px;
|
||||
padding-left: 37px;
|
||||
//font-weight: 500;
|
||||
}
|
||||
.goback {
|
||||
padding-right: 70px;
|
||||
//padding-top: 37px;
|
||||
position: relative;
|
||||
.return {
|
||||
display: inline-block;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
margin-top: 17px;
|
||||
margin-right: 10px;
|
||||
background-image: url("../../assets/images/projectadd/return.png");
|
||||
}
|
||||
.returntext {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 27px;
|
||||
color: #4ea6ff;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.addtype {
|
||||
display: flex;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
margin-right: 20px;
|
||||
align-items: center;
|
||||
margin-left: 41px;
|
||||
.addtypen {
|
||||
color: #6f6f6f;
|
||||
font-size: 14px;
|
||||
}
|
||||
.types {
|
||||
cursor: pointer;
|
||||
width: 80px;
|
||||
height: 40px;
|
||||
color: #409eff;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 20px 10px;
|
||||
}
|
||||
.typesCur {
|
||||
color: #fff;
|
||||
background: #409eff;
|
||||
}
|
||||
}
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
width: 70%;
|
||||
min-width: 690px;
|
||||
margin-left: 38px;
|
||||
margin-top: 20px;
|
||||
.tagbox {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.tagname {
|
||||
width: 90px;
|
||||
height: 32px;
|
||||
margin-top: 24px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-left: 134px;
|
||||
background: rgba(78, 166, 255, 0.1);
|
||||
border-radius: 4px;
|
||||
color: rgba(64, 158, 255, 1);
|
||||
font-size: 16px;
|
||||
}
|
||||
.deleteop {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-top: 20px;
|
||||
margin-right: 30px;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
.del_text {
|
||||
color: #409eff;
|
||||
font-size: 14px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.scorebox {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
margin-left: 70px;
|
||||
.scoretext {
|
||||
font-size: 14px;
|
||||
color: #56a3f9;
|
||||
}
|
||||
.number {
|
||||
display: flex;
|
||||
border: 1px solid #d7e5fd;
|
||||
border-radius: 5px;
|
||||
margin: 0 10px;
|
||||
padding: 5px;
|
||||
.btn {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 1px solid #56a3f9;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 5px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #56a3f9;
|
||||
line-height: 24px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.curBtn {
|
||||
background: #56a3f9;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.picture {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-top: 20px;
|
||||
margin-left: 133px;
|
||||
.pictureimg {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
.picturename {
|
||||
color: #6f6f6f;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.options {
|
||||
display: flex;
|
||||
}
|
||||
.delete {
|
||||
cursor: pointer;
|
||||
margin-top: 32px;
|
||||
margin-left: 20px;
|
||||
// float: right;
|
||||
color: #4ea6ff;
|
||||
font-size: 14px;
|
||||
}
|
||||
.name2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.name {
|
||||
width: 60%;
|
||||
// background-color: lightcoral;
|
||||
display: flex;
|
||||
margin-top: 20px;
|
||||
//align-items: center;
|
||||
//height: 40px;
|
||||
// border: 1px solid black;
|
||||
.namebox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
flex-shrink: 0;
|
||||
.nameimg {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
}
|
||||
.inname {
|
||||
color: #6f6f6f;
|
||||
font-size: 14px;
|
||||
margin-left: 7px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.in {
|
||||
margin-left: 14px;
|
||||
flex: 1;
|
||||
.assess {
|
||||
display: flex;
|
||||
width: 226px;
|
||||
height: 40px;
|
||||
border: 1px solid #56a3f9;
|
||||
//margin-bottom: 20px;
|
||||
.assesstype {
|
||||
width: 50%;
|
||||
background: #56a3f9;
|
||||
color: #ffffff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.assesswhole {
|
||||
width: 50%;
|
||||
background: rgba(86, 163, 249, 0.1);
|
||||
font-size: 14px;
|
||||
color: #6f6f6f;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.ratio {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 8px;
|
||||
color: #6f6f6f;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.addimg {
|
||||
cursor: pointer;
|
||||
color: rgba(78, 166, 255, 1);
|
||||
font-size: 14px;
|
||||
}
|
||||
.text {
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
//line-height: 24px;
|
||||
}
|
||||
.ant-radio-wrapper {
|
||||
}
|
||||
.ant-input {
|
||||
border-radius: 5px;
|
||||
// height: 120%;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
}
|
||||
.ant-select-selector {
|
||||
border-radius: 5px;
|
||||
// height: 120%;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.numberInp {
|
||||
width: 200px;
|
||||
.ant-input-number {
|
||||
width: 200px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
// .ant-input-number-input-wrap {
|
||||
// width: 200px;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
.name2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.opinion {
|
||||
display: flex;
|
||||
margin-top: 30px;
|
||||
.namebox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.in {
|
||||
margin-left: 14px;
|
||||
width: 500px;
|
||||
.ant-input-textarea-show-count {
|
||||
position: relative;
|
||||
height: 110px;
|
||||
}
|
||||
.ant-input-textarea-show-count::after {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 0px;
|
||||
}
|
||||
.ant-input {
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.footer {
|
||||
width: 100%;
|
||||
margin-top: 31px;
|
||||
margin-bottom: 14px;
|
||||
.btn {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.uploadContent {
|
||||
display: block !important;
|
||||
.uploadBtn {
|
||||
margin-left: 120px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -14,6 +14,7 @@ module.exports = defineConfig({
|
||||
port: 8080,
|
||||
proxy: {
|
||||
"/manageApi": {
|
||||
// target:"http://192.168.19.246:30001",
|
||||
// target:"http://192.168.100.208:30001",
|
||||
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
|
||||
changeOrigin: true, //表示是否改变原域名
|
||||
|
||||
Reference in New Issue
Block a user