Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	src/views/projectcenter/ProjectAdd.vue
This commit is contained in:
yuping
2022-12-07 12:39:41 +08:00
18 changed files with 569 additions and 311 deletions

21
package-lock.json generated
View File

@@ -3579,8 +3579,6 @@
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -3592,9 +3590,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"optional": true,
"peer": true
"dev": true
},
"node_modules/ajv-keywords": {
"version": "3.5.2",
@@ -13727,6 +13723,7 @@
"integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==",
"dev": true,
"requires": {
"@babel/core": "^7.12.16",
"@babel/helper-compilation-targets": "^7.12.16",
"@babel/helper-module-imports": "^7.12.13",
"@babel/plugin-proposal-class-properties": "^7.12.13",
@@ -13739,6 +13736,7 @@
"@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.1.2",
"babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.8.3",
"core-js-compat": "^3.8.3",
"semver": "^7.3.4"
},
@@ -14577,14 +14575,15 @@
"resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true,
"requires": {},
"requires": {
"ajv": "^8.0.0"
},
"dependencies": {
"ajv": {
"version": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"version": "8.11.0",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -14596,9 +14595,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"optional": true,
"peer": true
"dev": true
}
}
},

View File

@@ -43,7 +43,7 @@ export default defineComponent({
const store = useStore();
const isLogin = ref(false);
// console.log("router", router.getRoutes(), route);
console.log("版本0.9.2------------");
console.log("版本0.9.3------------");
const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink);
});

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-06 18:00:21
* @LastEditTime: 2022-12-07 08:54:55
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -55,10 +55,10 @@ http.interceptors.response.use(
if (code === 0 || code === 200) {
return response;
} else {
// if (code === 1000) {
// window.open("https://u-pre.boe.com/web/", '_self');
// // window.open("http://111.231.196.214:12013/manage/login", '_self');
// }
if (code === 1000) {
// window.open("https://u-pre.boe.com/web/", '_self');
// window.open("http://111.231.196.214:12013/manage/login", '_self');
}
console.log("api %o", msg);
}
return response;

View File

@@ -43,7 +43,6 @@ import http from "./config";
//根据ID获取评估信息详情
export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{
headers: {
'token': '123',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
}
})

View File

@@ -104,7 +104,9 @@ export default {
watch(
props,
(newVal) => {
state.selectedRowKeys = [newVal.assessmentId];
state.selectedRowKeys = newVal.assessmentId
? [newVal.assessmentId]
: [];
},
{ deep: true }
);
@@ -218,7 +220,8 @@ export default {
};
array.push(obj);
});
(state.selectedRowKeys = []), (state.tableData = array);
// (state.selectedRowKeys = []), (state.tableData = array);
state.tableData = array;
};
//获取全部评估信息接口
const getAllInvistText = () => {
@@ -231,7 +234,9 @@ export default {
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
// console.log("获取全部评估信息", res.data.data);
console.log("获取全部评估信息", res.data.data);
state.selectedRowKeys = [props.assessmentId]
console.log(props.assessmentId,props)
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}

View File

@@ -303,13 +303,13 @@ export default {
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
} else if (props.isLevel == 3) {
@@ -327,13 +327,13 @@ export default {
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
}

View File

@@ -203,11 +203,11 @@ export default {
type: 10,
})
.then(() => {
message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
//message.destroy()
// message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
message.destroy()
// message.destroy()
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {

View File

@@ -711,7 +711,7 @@ export default {
await ProjectEditTask(editObj)
.then(() => {
console.log("props.EditFaceId", props.EditFaceId);
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
// message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
//message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);

View File

@@ -212,6 +212,7 @@ export default {
console.log(res);
//更新讨论信息
state.assessment1 = res.data.data;
state.assessmentId = res.data.data.assessmentId;
})
.catch(() => {});
}
@@ -251,12 +252,12 @@ export default {
type: 11,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
} else if (props.isLevel == 3) {
addTempTask({
@@ -269,13 +270,13 @@ export default {
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
});
}
};

View File

@@ -540,7 +540,7 @@ export default {
.then(() => {
message.destroy();
message.success(
`${props.edit ? "编辑" : "新增"}阶段任务成功`
`${props.edit ? "编辑" : "新增"}任务成功`
);
ctx.emit("changeData", false);
closeDrawer();
@@ -548,7 +548,7 @@ export default {
.catch(() => {
message.destroy();
message.error(
`${props.edit ? "编辑" : "新增"}阶段任务失败`
`${props.edit ? "编辑" : "新增"}任务失败`
);
});
});

View File

@@ -547,18 +547,21 @@
placeholder="请输入按回车键创建成功"
:options="tagsOptions"
></a-select> -->
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="tags_val"
mode="tags"
style="width: 440px; height: 40px"
<a-input
v-model:value="tags_val_single"
placeholder="请输入按回车键创建成功"
@change="handleTagChange"
></a-select>
@pressEnter="handleTagChange"
/>
<div class="tag-content">
<a-tag
v-for="(item, index) in tags_val"
:key="index"
closable
@close="handleTagClose(index)"
>
{{ item }}
</a-tag>
</div>
</div>
</div>
</div>
@@ -709,12 +712,10 @@
<div class="btn btn5" @click="ft_exit_1">
<div class="btnText">取消</div>
</div>
<div class="btn btn6" v-if="isEdit == 0" @click="handlePush">
<div class="btn btn6" @click="handlePush">
<div class="btnText">保存</div>
</div>
<div class="btn btn6" v-if="isEdit == 1">
<div class="btnText">未提交</div>
</div>
<div
class="btn btn6"
v-if="statusTingQi == 1"
@@ -2302,6 +2303,25 @@
</a-checkbox>
</div>
</div>
<div v-if="checked4" class="cstm_items main_item">
<div class="signbox"></div>
<div class="btnbox">
<button class="xkbtn" @click="showAssessment">选择评估</button>
<div v-if="assessmentId > 0">
<a-tag closable @close="removePG" color="processing">
<span style="font-size: 14px; line-height: 33px">
{{ assessmentName }}
</span>
</a-tag>
</div>
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:assessmentName="assessmentName"
:assessmentId="assessmentId"
@checkedAss="getCheckedAss"
/>
</div>
</div>
<div class="cstm_items">
<div class="signbox">
<span style="margin-right: 3px">完成规则</span>
@@ -2467,13 +2487,13 @@
<div class="stmm_i1">
<span style="margin-right: 52px">
{{ currentPlanItem.name }}课程-第1期-
{{ getdateToDateFn(currentPlanItem.createTime) }}
{{ currentPlanItem.createTime }}
</span>
<span style="color: #ffb751">已开课 4.5</span>
</div>
<div class="stmm_i2">
<span style="color: #999ba3">时间:</span>
<span>{{ getdateToTimeFn(currentPlanItem.endTime) }}</span>
<span>{{ currentPlanItem.endTime }}</span>
</div>
<div class="stmm_i3">
<span style="color: #999ba3">地点:</span>
@@ -3072,6 +3092,7 @@ import {
onBeforeUnmount,
watch,
} from "vue";
import * as api from "../../api/indexInvist.js";
import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router";
// import StuAdd from "../../components/drawers/StuAdd";
@@ -3082,6 +3103,7 @@ import addOnlineCourse from "../../components/Modals/addOnlineCourse.vue";
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import AssessmentList from "../../components/drawers/ AssessmentList.vue";
import {
list,
edit,
@@ -3126,8 +3148,10 @@ const columns1 = [
dataIndex: "num",
key: "num",
align: "center",
customRender: ({ index }) => {
return index + 1;
customRender: ({ index, record }) => {
const pageNum =
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
return index + 1 + pageNum;
},
},
{
@@ -3374,11 +3398,7 @@ const columns6 = [
key: "num",
width: "6%",
align: "center",
ellipsis: true,
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
},
ellipsis: true
},
{
title: "创建人",
@@ -3432,7 +3452,8 @@ const columns6 = [
ellipsis: true,
align: "center",
customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-";
// return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
},
},
{
@@ -3443,7 +3464,8 @@ const columns6 = [
ellipsis: true,
align: "center",
customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-";
// return text ? getdateToTime(text * 1000) : "-";
return text ? text : "-";
},
},
{
@@ -3462,10 +3484,6 @@ const columns7 = [
dataIndex: "num",
key: "num",
align: "center",
customRender: ({ index }) => {
//{ text, record, index, column }
return index + 1;
},
},
{
title: "姓名",
@@ -3621,6 +3639,7 @@ export default defineComponent({
ProjOwnerShip,
ProjPowerList,
ProjCheckShip,
AssessmentList,
// VNodes: (_, {attrs}) => {
// return attrs.vnodes;
// },
@@ -3819,6 +3838,7 @@ export default defineComponent({
feng_mian_1: null,
feng_mian_2: null,
chang_jin: null,
tags_val_single: "",
tags_val: [],
qdms_inputV6: "",
//在线面授管理
@@ -3861,7 +3881,7 @@ export default defineComponent({
selectTime: "",
pageSize3: 10,
currentPage3: 0,
currentPage3: 1,
tableDataTotal3: 0,
checked1: false,
@@ -3884,6 +3904,11 @@ export default defineComponent({
addStudentList: null, //选中列表
newCourseName: null, //新建开课名称
assessment: {},
assessmentId: null,
assessmentName: "",
assessmentVisible: false,
});
const showStuAdd = (record) => {
@@ -4078,14 +4103,17 @@ export default defineComponent({
endTime: endTime,
beginTime: startTime,
});
const { rows, total } = res.data.data;
const { rows, total, pageNo } = res.data.data;
console.log(res.data.data);
state.tableDataTotal1 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage1-1)*10
}
const datas = traverseArr(
rows,
{
key: "offcourseId",
num: "offcourseId",
num: "num",
name: "name",
content: "categoryId",
courseform: "type",
@@ -4103,6 +4131,7 @@ export default defineComponent({
true
);
datas.forEach((itm) => {
itm.pageNo = pageNo;
for (let item of options2.value) {
if (String(item.value) === String(itm.content)) {
itm.contentTxt = item.label;
@@ -4264,6 +4293,24 @@ export default defineComponent({
});
};
const showAssessment = () => {
state.assessmentVisible = true;
};
const removePG = () => {
console.log("11111");
state.assessmentId = null;
state.assessmentName = "";
// state.isEvaluate = "0";
};
const getCheckedAss = (ass) => {
console.log("ass");
console.log(ass);
state.assessmentId = ass.assessmentId;
state.assessmentName = ass.name;
state.assessment = ass;
// state.assessment1 = null;
};
const rest = () => {
options4CurName.value = "";
options4CurId.value = "";
@@ -4371,6 +4418,11 @@ export default defineComponent({
// console.log("获取学员列表", res);
const { rows, total } = res.data.data;
state.tableDataTotal3 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage3-1)*10
}
rows.forEach((item, index) => {
rows[index] = {
...item,
@@ -4381,7 +4433,7 @@ export default defineComponent({
rows,
{
key: "studentId",
num: "studentId",
num: "num",
name: "name",
number: "studentId",
department: "deptName",
@@ -4473,11 +4525,16 @@ export default defineComponent({
console.log("开课res", res);
const { rows, total } = res.data.data;
state.tableDataTotal222 = total;
for(let i=0;i<rows.length;i++){
rows[i].num = i+1+ (state.currentPage222-1)*10
}
const datas = traverseArr(
rows,
{
key: "offcoursePlanId",
num: "offcoursePlanId",
num: "num",
organization: "name",
address: "address",
starttime: "beginTime",
@@ -4672,7 +4729,7 @@ export default defineComponent({
// ft_exit_1();
rest();
state.addLoading = false;
state.isEdit = 1;
state.statusTingQi = 1;
// console.log("res.data", res.data);
if (param === "review") {
@@ -4714,6 +4771,7 @@ export default defineComponent({
state.xjkkinputV4 = null;
state.checked1 = false;
state.checked4 = false;
removePG();
};
//保存开课
const handleSureStu = () => {
@@ -4737,6 +4795,7 @@ export default defineComponent({
completeType: type,
endTime: endTime,
evalFlag: state.checked4 ? 1 : 0,
evaluateId: Number(state.assessmentId),
name: state.xjkkinputV1,
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
@@ -4770,6 +4829,7 @@ export default defineComponent({
//编辑开课
const handelEditStu = async (itm) => {
console.log(itm);
state.offcourseId = itm.offcourseId;
state.offcoursePlanId = itm.offcoursePlanId;
@@ -4778,6 +4838,17 @@ export default defineComponent({
}).then((res) => {
if (res.data.code === 200) return res.data.data;
});
let obj = {
assessmentId: item.evaluateId,
};
api
.queryAppraiseDetailById(obj)
.then((res) => {
state.assessmentName = res.data.data.assessmentName;
})
.catch();
console.log("res");
console.log(item);
@@ -4794,6 +4865,7 @@ export default defineComponent({
(state.comLeave =
item.completeType.split(",")[1] == "1" ? true : false),
(state.checked4 = item.evalFlag === 1 ? true : false);
state.assessmentId = String(item.evaluateId);
state.xjkkinputV1 = item.name;
if (item.signFlag === 1) {
//是否允许未报名的签到:1是0否
@@ -5189,7 +5261,6 @@ export default defineComponent({
};
//编辑面授课
const handleEdit = async (itm, type) => {
state.isEdit = 0;
console.log(45555);
console.log(itm);
if (type === "1") {
@@ -5247,8 +5318,13 @@ export default defineComponent({
// handleTagChange
const handleTagChange = () => {
console.log(7877878);
console.log(state.tagsOptions);
if (state.tags_val_single) {
state.tags_val.push(state.tags_val_single);
}
state.tags_val_single = "";
};
const handleTagClose = (index) => {
state.tags_val.splice(index, 1);
};
// 预览弹框 开启和关闭
@@ -5256,7 +5332,6 @@ export default defineComponent({
state.lookCourseModal = false;
};
const handleLook = async (itm, type) => {
// state.isEdit = 0;
if (type === "1") {
return;
}
@@ -5650,6 +5725,7 @@ export default defineComponent({
stm_exit,
ft_exit_see,
handleTagChange,
handleTagClose,
createkk,
handleCancelStu,
handleSureStu,
@@ -5683,6 +5759,9 @@ export default defineComponent({
handelChangePage1,
handleSearch1,
handleRest1,
showAssessment,
removePG,
getCheckedAss,
beforeUpload,
beforeUpload2,
handleDel,
@@ -6089,6 +6168,8 @@ export default defineComponent({
.cst_main {
width: 100%;
max-height: 600px;
overflow-y: auto;
position: relative;
.cstm_header {
@@ -7970,6 +8051,12 @@ export default defineComponent({
}
}
.tag-content {
.ant-tag {
margin-top: 10px;
}
}
.coursewareDetail {
.ant-modal {
height: 320px;
@@ -8039,6 +8126,42 @@ export default defineComponent({
}
}
// 选择评估
.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;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
}
}
.DelModal {
.ant-modal {
.ant-modal-content {

View File

@@ -81,7 +81,7 @@
</div>
</div>
</div>
<div class="mbl_items">
<div v-if="detail.meaning" class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">课程价值</span>
</div>
@@ -107,7 +107,7 @@
</div>
</div>
</div>
<div class="mbl_items">
<div class="mbl_items" v-if="detail.sceneId">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
@@ -117,7 +117,7 @@
</div>
</div>
</div>
<div class="mbl_items">
<div class="mbl_items" v-if="detail.tips">
<div class="item_nam">
<span style="margin-right: 14px">内容标签</span>
</div>
@@ -143,7 +143,7 @@
</div>
</div>
</div>
<div class="mbl_items2">
<div class="mbl_items2" v-if="detail.intro">
<div class="item_nam">
<span style="margin-right: 14px">课程简介</span>
</div>
@@ -181,7 +181,7 @@
</div>
</div>
</div>
<div class="m_footer">
<div class="m_footer" v-if="detail.outline !== '<p><br></p>'">
<div class="fotnam">
<span>课程大纲</span>
</div>

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:06
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:08:27
* @LastEditTime: 2022-12-07 08:53:23
* @FilePath: /fe-manage/src/views/examine/CourseReviewed.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
-->
@@ -14,24 +14,38 @@
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<a-select v-model:value="valueproj" value-key="value"
:options="[{ label: '请选择内容分类', value: '' }, ...calssifyList]" />
<a-select
v-model:value="valueproj"
value-key="value"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>
</div>
<div class="inpbox1">
<a-input v-model:value="valuecreater" style="
<a-input
v-model:value="valuecreater"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
" placeholder="请输入创建人" />
"
placeholder="请输入创建人"
/>
</div>
<div class="inpbox1">
<a-input v-model:value="valuename" style="
<a-input
v-model:value="valuename"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
" placeholder="请输入名称" />
"
placeholder="请输入名称"
/>
</div>
</div>
</div>
@@ -48,56 +62,71 @@
</div>
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table :columns="columns1" :data-source="tableData1" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" @expand="expandTable" :scroll="{ x: 1300 }" :pagination="false" />
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
/>
</div>
<div class="tableBox">
<div class="pa">
<a-pagination v-if="total > 10" showSizeChanger="true" show-quick-jumper :pageSize="pageSize"
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" />
<a-pagination
v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div>
</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> -->
<!-- 审核日志弹窗 -->
<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="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 class="del_btn btn2" @click="closeProjAuditModal">
<div class="btnText">确定</div>
</div>
</div>
</div>
</a-modal>
</div>
</a-modal>
</div>
</template>
<script>
@@ -131,7 +160,9 @@ export default {
dataIndex: "status",
key: "status",
align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>,
customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div>
),
},
{
@@ -139,7 +170,7 @@ export default {
dataIndex: "createTime",
key: "createTime",
align: "center",
width: 220
width: 220,
},
{
@@ -173,7 +204,8 @@ export default {
dataIndex: "content",
key: "content",
align: "center",
customRender: ({ text }) => state.calssifyList.find(e => e.value == text)?.label,
customRender: ({ text }) =>
state.calssifyList.find((e) => e.value == text)?.label,
},
{
title: "审核状态",
@@ -195,7 +227,6 @@ export default {
customRender: (time) => {
return <div style="color:#387DF7">{time.record.time}</div>;
},
},
{
title: "审核说明",
@@ -209,12 +240,17 @@ export default {
key: "opt",
align: "center",
customRender: (value) => {
return <div
style="color:#387DF7;cursor:pointer;"
onClick={() => {
console.log(value)
showProjAuditModal(value.record.auditLogDtoList);
}}>审核日志</div>;
return (
<div
style="color:#387DF7;cursor:pointer;"
onClick={() => {
console.log(value);
showProjAuditModal(value.record.auditLogDtoList);
}}
>
审核日志
</div>
);
},
},
],
@@ -243,7 +279,7 @@ export default {
pageNo: state.currentPage,
pageSize: 10,
};
console.log(objn)
console.log(objn);
courseListView(objn)
.then((res) => {
console.log("获取已审核课程成功", res.data.data);
@@ -256,14 +292,14 @@ export default {
};
const setTableData = (table) => {
if (!table || !table.length) {
state.tableData1 = []
return
state.tableData1 = [];
return;
}
let data = table;
let array = [];
data.map((item, n) => {
let obj = {
number: n+1 + (state.currentPage-1) *10,
number: n + 1 + (state.currentPage - 1) * 10,
name: item.name || "- ",
type: item.type == 1 ? "线上" : "线下",
content: item.categoryId,
@@ -271,24 +307,24 @@ export default {
item.auditStatus == 0
? "未提交"
: item.auditStatus == 1
? "提交待审核"
: item.auditStatus == 2
? "通过"
: item.auditStatus == -1
? "拒绝"
: "-",
? "提交待审核"
: item.auditStatus == 2
? "通过"
: item.auditStatus == -1
? "拒绝"
: "-",
creater: item.createName,
time: item.createTime,
msg: item.description || "-",
auditLogDtoList: item.auditLogDtoList
auditLogDtoList: item.auditLogDtoList,
};
array.push(obj);
});
state.tableData1 = array;
console.log(data)
console.log(data);
};
const reset = () => {
(state.valueproj = ''),
(state.valueproj = ""),
(state.valuecreater = null),
(state.valuename = null),
getList();
@@ -297,21 +333,27 @@ export default {
state.currentPage = pagina;
getList();
};
const getDictList = (param) => api1.getDict({
pageNo: 1,
pageSize: 20,
setCode: param
}).then((res) => res.data.data.rows)
const getDictList = (param) =>
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
onMounted(async () => {
getList();
//获取分类列表
state.calssifyList = (await getDictList("faceclassClass")).map(e => ({ label: e.dictName, value: e.dictCode }))
state.calssifyList = (await getDictList("faceclassClass")).map((e) => ({
label: e.dictName,
value: e.dictCode,
}));
});
// 显示审核
const showProjAuditModal = (data) => {
state.tableDataAudit = data
state.tableDataAudit = data;
state.projAuditModal = true;
};
@@ -326,7 +368,7 @@ export default {
reset,
changePagination,
showProjAuditModal,
closeProjAuditModal
closeProjAuditModal,
};
},
};
@@ -522,8 +564,8 @@ export default {
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:33
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-29 22:30:01
* @LastEditTime: 2022-12-07 08:49:02
* @FilePath: /fe-manage/src/views/examine/CourseReviewedN.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -426,7 +426,7 @@ export default {
let array = [];
data.map((item, i) => {
let obj = {
number: i+1 + (state.currentPage-1) *10,
number: i + 1 + (state.currentPage - 1) * 10,
name: item.name,
type: item.type == 1 ? "线上" : "线下",
content: item.categoryId,
@@ -442,7 +442,7 @@ export default {
: "-",
change: "-",
creater: item.createName,
time: item.createTime,
time: item.processTime,
createrId: item.createId,
offId: item.offcourseId,
};

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:00:40
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:09:49
* @LastEditTime: 2022-12-07 08:53:15
* @FilePath: /fe-manage/src/views/examine/ProjectReviewed.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -15,49 +15,52 @@
<div class="inpbox">
<div class="inpbox1">
<a-input
v-model:value="valueproj"
style="
v-model:value="valueproj"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
"
placeholder="请输入项目名称/所属项目"
placeholder="请输入项目名称/所属项目"
/>
</div>
<div class="inpbox1">
<a-input
v-model:value="valuename"
style="
v-model:value="valuename"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
"
placeholder="请输入项目经理"
placeholder="请输入项目经理"
/>
</div>
<div class="inpbox1">
<a-input
v-model:value="valuecreater"
style="
v-model:value="valuecreater"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
"
placeholder="请输入创建人"
placeholder="请输入创建人"
/>
</div>
<div class="inpbox1">
<a-range-picker
v-model:value="valueDate"
:show-time="{
defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
}"
style="border-radius: 8px; height: 40px; margin-left: 5px"
:placeholder="[' 开始时间', ' 结束时间']"
valueFormat="X"
v-model:value="valueDate"
:show-time="{
defaultValue: [
moment('00:00:00', 'HH:mm:ss'),
moment('23:59:59', 'HH:mm:ss'),
],
}"
style="border-radius: 8px; height: 40px; margin-left: 5px"
:placeholder="[' 开始时间', ' 结束时间']"
valueFormat="X"
/>
</div>
</div>
@@ -76,26 +79,26 @@
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
/>
</div>
<div class="tableBox">
<div class="pa">
<a-pagination
v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div>
</div>
@@ -103,11 +106,11 @@
</div>
<!-- 审核日志弹窗 -->
<a-modal
v-model:visible="projAuditModal"
:footer="null"
:closable="closeBack"
wrapClassName="projAuditModal"
centered="true"
v-model:visible="projAuditModal"
:footer="null"
:closable="closeBack"
wrapClassName="projAuditModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
@@ -119,14 +122,14 @@
</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"
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">
@@ -143,9 +146,9 @@
</div>
</template>
<script>
import {onMounted, reactive, toRefs} from "vue";
import {auditedlist} from "../../api/indexAudit";
import * as moment from 'moment'
import { onMounted, reactive, toRefs } from "vue";
import { auditedlist } from "../../api/indexAudit";
import * as moment from "moment";
export default {
name: "ProjectViewed",
@@ -192,7 +195,15 @@ export default {
key: "topName",
align: "center",
width: "10%",
customRender: ({record: {gaName,faName,name}}) => <div>{ faName ?gaName!==null?gaName+'/'+faName:faName:name}</div>,
customRender: ({ record: { gaName, faName, name } }) => (
<div>
{faName
? gaName !== null
? gaName + "/" + faName
: faName
: name}
</div>
),
},
{
title: "项目经理",
@@ -205,7 +216,9 @@ export default {
dataIndex: "status",
key: "status",
align: "center",
customRender: ({record: {status}}) => <div>{status==-2?'未通过':'已通过'}</div>,
customRender: ({ record: { status } }) => (
<div>{status == -2 ? "未通过" : "已通过"}</div>
),
},
{
title: "创建人",
@@ -224,7 +237,17 @@ export default {
dataIndex: "description",
key: "description",
align: "center",
customRender: ({record: {auditList,description}}) => <div>{auditList.length!==0?auditList[auditList.length-1].description?auditList[auditList.length-1].description:'-':description?description:'-'}</div>,
customRender: ({ record: { auditList, description } }) => (
<div>
{auditList.length !== 0
? auditList[auditList.length - 1].description
? auditList[auditList.length - 1].description
: "-"
: description
? description
: "-"}
</div>
),
},
{
@@ -234,16 +257,16 @@ export default {
align: "center",
customRender: (value) => {
return (
<div>
<div>
<span
onClick={() => {
showProjAuditModal(value.record.auditList);
}}
style="cursor:pointer;color:#387DF7"
onClick={() => {
showProjAuditModal(value.record.auditList);
}}
style="cursor:pointer;color:#387DF7"
>
审核日志
</span>
</div>
</div>
);
},
},
@@ -262,7 +285,9 @@ export default {
dataIndex: "status",
key: "status",
align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>,
customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div>
),
},
{
@@ -270,7 +295,7 @@ export default {
dataIndex: "createTime",
key: "createTime",
align: "center",
width: 220
width: 220,
},
{
@@ -286,8 +311,8 @@ export default {
});
const getProjList = () => {
let objn = {
beginTime: state.valueDate ? state.valueDate[0] : '',
endTime: state.valueDate ? state.valueDate[1] : '',
beginTime: state.valueDate ? state.valueDate[0] : "",
endTime: state.valueDate ? state.valueDate[1] : "",
createName: state.valuecreater,
manager: state.valuename,
name: state.valueproj,
@@ -296,18 +321,18 @@ export default {
status: 1,
};
auditedlist(objn).then((res) => {
console.log('获取已审核项目列表数据',res)
console.log("获取已审核项目列表数据", res);
let result = res.data.data;
state.total = res.data.data.total;
let numdata = []
let numdata = [];
result.rows.map((value, index) => {
let obj = value
obj.number = index+1 + (state.currentPage-1) *10
let obj = value;
obj.number = index + 1 + (state.currentPage - 1) * 10;
numdata.push(obj);
});
state.tableData1 = numdata
})
state.tableData1 = numdata;
});
};
const changePagination = (pagina) => {
state.currentPage = pagina;
@@ -325,7 +350,7 @@ export default {
state.projAuditModal = false;
};
const showProjAuditModal = (data) => {
state.tableDataAudit = data
state.tableDataAudit = data;
state.projAuditModal = true;
};
const setAudit = (table) => {
@@ -335,13 +360,13 @@ export default {
let obj = {
name: item.create_name,
belong:
item.status == 1
? "提交待审核"
: item.status == 2
? "通过"
: item.status == 3
? "拒绝"
: "-",
item.status == 1
? "提交待审核"
: item.status == 2
? "通过"
: item.status == 3
? "拒绝"
: "-",
time: item.createTime,
description: item.description,
};
@@ -362,7 +387,7 @@ export default {
reset,
closeProjAuditModal,
showProjAuditModal,
setAudit
setAudit,
};
},
};
@@ -398,8 +423,8 @@ export default {
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:01:51
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:10:02
* @LastEditTime: 2022-12-07 08:42:20
* @FilePath: /fe-manage/src/views/examine/ProjectReviewedN.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -14,33 +14,45 @@
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<a-input v-model:value="valueproj" style="
<a-input
v-model:value="valueproj"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
" placeholder="请输入项目名称/所属项目" />
"
placeholder="请输入项目名称/所属项目"
/>
</div>
<div class="inpbox1">
<a-input v-model:value="valuename" style="
<a-input
v-model:value="valuename"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
" placeholder="请输入项目经理" />
"
placeholder="请输入项目经理"
/>
</div>
<div class="inpbox1">
<a-input v-model:value="valuecreater" style="
<a-input
v-model:value="valuecreater"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 14px;
" placeholder="请输入创建人" />
"
placeholder="请输入创建人"
/>
</div>
<!-- <div class="inpbox1">-->
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
<!-- </div>-->
<!-- <div class="inpbox1">-->
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
<!-- </div>-->
</div>
</div>
<div class="tmplh_btn">
@@ -56,26 +68,46 @@
</div>
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table :columns="columns1" :data-source="tableData1" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" @expand="expandTable" :pagination="false" :scroll="{ x: 1300 }" />
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:scroll="{ x: 1300 }"
/>
</div>
<div class="tableBox">
<div class="pa">
<a-pagination v-if="total > 10" showSizeChanger="true" show-quick-jumper :pageSize="pageSize"
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" />
<a-pagination
v-if="total > 10"
showSizeChanger="true"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div>
</div>
</div>
</div>
<!-- 审核项目页面 -->
<project-audit v-model:ProjAuditvisible="ProjAuditvisible" v-model:chooseProject="chooseProject"
v-model:chooseCreateId="chooseCreateId" v-model:chooseCreater="chooseCreater" v-model:finishdFun="getProjList" />
<project-audit
v-model:ProjAuditvisible="ProjAuditvisible"
v-model:chooseProject="chooseProject"
v-model:chooseCreateId="chooseCreateId"
v-model:chooseCreater="chooseCreater"
v-model:finishdFun="getProjList"
/>
</div>
</template>
<script>
import {onMounted, reactive, toRefs} from "vue";
import { onMounted, reactive, toRefs } from "vue";
import ProjectAudit from "../../components/drawers/ProjectAudit";
import {auditlist} from "../../api/indexAudit";
import { auditlist } from "../../api/indexAudit";
export default {
name: "ProjectViewedN",
@@ -116,7 +148,7 @@ export default {
key: "name",
align: "center",
},
// todo 根项目保存
// todo 根项目保存
// {
// title: "所属项目",
// dataIndex: "sourceBelongName",
@@ -135,7 +167,7 @@ export default {
dataIndex: "status",
key: "status",
align: "center",
customRender: ()=><div>待审核</div>,
customRender: () => <div>待审核</div>,
},
{
title: "创建人",
@@ -145,8 +177,8 @@ export default {
},
{
title: "创建时间",
dataIndex: "createTime",
key: "createTime",
dataIndex: "processTime",
key: "processTime",
align: "center",
},
@@ -175,8 +207,7 @@ export default {
},
},
],
tableData1: [
],
tableData1: [],
});
const showProjAudit = (id, createId, creater) => {
state.ProjAuditvisible = true;
@@ -186,9 +217,11 @@ export default {
};
const getProjList = () => {
let objn = {
beginTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]),
beginTime:
state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]),
createName: state.valuecreater,
endTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]),
endTime:
state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]),
manager: state.valuename,
name: state.valueproj,
pageNo: state.currentPage,
@@ -202,14 +235,14 @@ export default {
state.total = result.total;
// state.tableData1 = result.rows
let numdata = []
let numdata = [];
result.rows.map((value, index) => {
let obj = value
obj.number = index+1 + (state.currentPage-1) *10
let obj = value;
obj.number = index + 1 + (state.currentPage - 1) * 10;
numdata.push(obj);
});
state.tableData1 = numdata
state.tableData1 = numdata;
// setProjList(result.rows);
})
@@ -222,10 +255,10 @@ export default {
getProjList();
};
const reset = () => {
state.valueproj = "",
state.valuecreater = "",
state.valuename = "",
state.valueDate = undefined;
(state.valueproj = ""),
(state.valuecreater = ""),
(state.valuename = ""),
(state.valueDate = undefined);
getProjList();
};
onMounted(() => {

View File

@@ -959,6 +959,7 @@ export default defineComponent({
state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
state.projectInfo.attach = res.data.data.projectTemplateInfo.attach;
state.projectInfo.category = res.data.data.projectTemplateInfo.category;
let data = res.data.data.stageList;
console.log("data=====", data);
for (let i in data) {
@@ -1131,8 +1132,28 @@ export default defineComponent({
console.log(file);
list = state.fileList;
console.log("list", list);
let str = JSON.stringify(list);
let str = JSON.stringify(fileList);
console.log("str", str);
console.table({
name: state.projectInfo.name,
category: state.projectInfo.category,
picUrl: state.projectInfo.picUrl,
beginTime: new Date(state.projectInfo.beginTime).getTime()/1000,
endTime: new Date(state.projectInfo.endTime).getTime()/1000,
manager: state.projectInfo.manager,
managerId: state.projectInfo.managerId || 0,
sourceBelongId: state.projectInfo.sourceBelongId,
level: state.projectInfo.level,
systemId: state.projectInfo.systemId,
boeFlag: state.projectInfo.boeFlag ? 1 : 0,
courseSyncFlag: state.projectInfo.courseSyncFlag ? 1 : 0,
notice: state.projectInfo.notice,
noticeFlag: state.projectInfo.noticeFlag,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
remark: state.projectInfo.remark,
status: state.projectInfo.status,
attach: str,
})
//要编辑项目
api
.templateEdit({

View File

@@ -68,33 +68,32 @@
/>
<div class="inname">封面图</div>
</div>
<div
:class="`box ${projectInfo.picUrl === src?'active':''}`"
style="
width: 100px;
height: 100px;
border: 1px solid rgba(78, 166, 255, 1);
border-radius: 5px;
cursor: pointer;
position: relative;
overflow: hidden;
"
v-for="(src,index) in projectPic"
:key="index"
@click="()=>{
projectInfo.picUrl = src
}"
>
<div class="in select" style="flex:1">
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="picUrlName"
dropdownClassName="dropdown-style"
style="width: 440px"
placeholder="请选择"
:options="projectPic"
@change="handleChangeSelect"
allowClear
></a-select>
<img
style="
width: 100px;
height: 100px;
margin-bottom: 4px;
margin-right: 4px;
"
:src="src"
style="width:100px;height:100px;margin-top:20px;border-radius: 8px"
v-if="projectInfo.picUrl"
:src="projectInfo.picUrl"
alt="avatar"
/>
<div class="i_bottom">
<span style="color: #999ba3">
高宽比为16:9 (:800*450) png或jpg图片
</span>
</div>
</div>
</div>
<div class="name">
@@ -130,7 +129,7 @@
<ProjectManager
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
@onChange="managerChange"
@change="managerChange"
mode="multiple"
></ProjectManager>
</div>
@@ -294,13 +293,13 @@ import {onMounted, reactive, toRefs, watch} from "vue";
import {message} from "ant-design-vue";
import {useRoute, useRouter} from "vue-router";
import * as api from "../../api/index";
import {useStore} from "vuex";
import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel";
import {changeOwnership, scrollLoad} from "@/api/method";
import * as api1 from "@/api/index1";
export default {
name: "projectAdd",
@@ -312,6 +311,7 @@ export default {
OrgClass,
},
setup() {
const store = useStore();
const routers = useRoute();
const router = useRouter();
const state = reactive({
@@ -329,10 +329,16 @@ export default {
},
classifyList5: [],
courseSyncFlag: false,
picUrlName:'请选择封面图'
});
onMounted(async () => {
state.projectPic = await getDictList('pathmapPic').then(e => e.map(e => e.dictValue));
// 封面图选择
const handleChangeSelect = (value) => {
console.log(value)
state.projectInfo.picUrl= value
}
onMounted(() => {
state.projectPic = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
state.viewDetail = routers.query.viewDetail;
getProjectInfo();
getTemplate();
@@ -344,12 +350,6 @@ export default {
state.projectInfo.parentId = routers.query.parentId;
});
const getDictList = (param) => api1.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
}).then((res) => res.data.data.rows);
function getProjectInfo() {
if (!routers.query.projectId) {
state.projectInfo = {
@@ -362,6 +362,17 @@ export default {
.getProjectDetail({projectId: routers.query.projectId})
.then((res) => {
state.projectInfo = res.data.data.projectInfo;
console.log(res)
let picurl = res.data.data.projectInfo.picUrl
let dates = store.state.projectPic.map((e) => ({value: e.dictValue, label: e.dictName}));
console.log(dates,picurl)
for(let i=0;i<dates.length;i++){
if(dates[i].value==picurl){
state.picUrlName = dates[i].label
}
}
state.projectInfo.rangeTime = [
state.projectInfo.beginTime,
state.projectInfo.endTime,
@@ -479,6 +490,7 @@ export default {
createProject,
backPage,
templateScroll,
handleChangeSelect
};
},
};