feat:增加课程二维码

This commit is contained in:
lixg
2022-12-06 22:11:47 +08:00
14 changed files with 255 additions and 120 deletions

21
package-lock.json generated
View File

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

View File

@@ -14,8 +14,8 @@
<p>公告内容</p> <p>公告内容</p>
<!-- 预览 --> <!-- 预览 -->
<template v-if="!editOn"> <template v-if="!editOn">
<div style="height: 120px; border: 1px solid rgb(217, 217, 217"> <div class="txt-content">
{{ noticeContent }} {{ noticeContent ? noticeContent : "暂无公告" }}
</div> </div>
<div class="btn-content"> <div class="btn-content">
<a-button type="primary" @click="handleEdit">编辑</a-button> <a-button type="primary" @click="handleEdit">编辑</a-button>
@@ -23,9 +23,13 @@
</template> </template>
<!-- 编辑 --> <!-- 编辑 -->
<template v-if="editOn"> <template v-if="editOn">
<div style="height: 120px; border: 1px solid rgb(217, 217, 217"> <div class="txt-contain">
{{ noticeContent }} <span>预览</span>
<div class="txt-content">
{{ noticeContent }}
</div>
</div> </div>
<p>编辑</p>
<a-textarea <a-textarea
v-model:value="noticeContent" v-model:value="noticeContent"
:maxlength="150" :maxlength="150"
@@ -69,6 +73,7 @@ export default {
getTask({ projectId: props.projectId }).then((res) => { getTask({ projectId: props.projectId }).then((res) => {
console.log("公告获取项目", res.data.data.projectInfo); console.log("公告获取项目", res.data.data.projectInfo);
state.projectInfo = res.data.data.projectInfo; state.projectInfo = res.data.data.projectInfo;
state.noticeContent = state.projectInfo.notice;
}); });
}; };
@@ -183,5 +188,35 @@ export default {
margin-right: 10px; margin-right: 10px;
} }
} }
.txt-content {
margin: 24px 0 32px;
text-indent: 2em;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
line-height: 22px;
}
.txt-contain {
margin-bottom: 18px;
display: flex;
span {
display: inline-block;
width: 50px;
}
.txt-content-tip {
width: calc(100% - 50px);
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
line-height: 22px;
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
word-break: break-all;
}
}
} }
</style> </style>

View File

@@ -25,7 +25,7 @@
<a-input <a-input
v-model:value="name" v-model:value="name"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称" placeholder="请输入课程名称"
/> />
</div> </div>
</div> </div>
@@ -136,7 +136,7 @@
</template> </template>
<script> <script>
//import { ApiFilled } from "@ant-design/icons-vue"; //import { ApiFilled } from "@ant-design/icons-vue";
import {reactive, toRefs, computed} from "vue"; import {reactive, toRefs, computed} from "vue";
// import { planList } from "../../api/indexTaskadd"; // import { planList } from "../../api/indexTaskadd";
//import {detail} from "../../api/indexCourse"; //import {detail} from "../../api/indexCourse";
import {list} from "../../api/indexTaskadd"; import {list} from "../../api/indexTaskadd";
@@ -231,7 +231,7 @@ export default {
offcourse: null, offcourse: null,
auditStatus: null, auditStatus: null,
name: null, name: null,
courseInfo:[] courseInfo: []
}); });
@@ -281,7 +281,8 @@ export default {
//获取面授课列表 //获取面授课列表
const getClassList = (obj) => { const getClassList = (obj) => {
let objn = obj || { let objn = obj || {
auditStatus:2, auditStatus: 2,
status: 1,
name: state.name, name: state.name,
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: state.pageSize pageSize: state.pageSize
@@ -316,22 +317,22 @@ export default {
}); });
state.classTableData = array; state.classTableData = array;
}; };
/** /**
const options1 = ref([ const options1 = ref([
{ {
value: 0, value: 0,
label: "未提交", label: "未提交",
}, },
{ {
value: 1, value: 1,
label: "待审核", label: "待审核",
}, },
{ {
value: 2, value: 2,
label: "已审核", label: "已审核",
}, },
]);*/ ]);*/
const handleChange = (value, option) => { const handleChange = (value, option) => {
console.log("改变了", value, option); console.log("改变了", value, option);
console.log(state.valueContent); console.log(state.valueContent);
@@ -358,7 +359,7 @@ export default {
// showDrawerSelFacet, // showDrawerSelFacet,
afterVisibleChange, afterVisibleChange,
closeDrawer, closeDrawer,
columns1, columns1,
getClassData, getClassData,
handleChange, handleChange,

View File

@@ -53,8 +53,11 @@
<a-range-picker <a-range-picker
v-model:value="projectTime" v-model:value="projectTime"
:show-time="{ :show-time="{
defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], defaultValue: [
}" moment('00:00:00', 'HH:mm:ss'),
moment('23:59:59', 'HH:mm:ss'),
],
}"
valueFormat="X" valueFormat="X"
separator="至" separator="至"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
@@ -397,11 +400,7 @@
<img <img
class="i_upload_img" class="i_upload_img"
v-if="feng_mian_1" v-if="feng_mian_1"
:src=" :src="feng_mian_1"
feng_mian_1.indexOf(',') > -1
? feng_mian_1.split(',')[0]
: feng_mian_1
"
alt="avatar" alt="avatar"
/> />
<!-- <a-upload <!-- <a-upload
@@ -843,11 +842,7 @@
<img <img
class="i_upload_img" class="i_upload_img"
v-if="feng_mian_2" v-if="feng_mian_2"
:src=" :src="feng_mian_2"
feng_mian_2.indexOf(',') > -1
? feng_mian_2.split(',')[0]
: feng_mian_2
"
alt="avatar" alt="avatar"
/> />
<!-- <a-upload <!-- <a-upload
@@ -3109,7 +3104,7 @@ import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import SeeModal from "./components/seeModal.vue"; import SeeModal from "./components/seeModal.vue";
import * as moment from 'moment' import * as moment from "moment";
//列表表格 //列表表格
const columns1 = [ const columns1 = [
@@ -3367,16 +3362,39 @@ const columns6 = [
key: "num", key: "num",
width: "6%", width: "6%",
align: "center", align: "center",
ellipsis: true,
customRender: ({ index }) => { customRender: ({ index }) => {
//{ text, record, index, column } //{ text, record, index, column }
return index + 1; return index + 1;
}, },
}, },
{
title: "创建人",
dataIndex: "name",
key: "name",
width: "10%",
align: "center",
ellipsis: true,
customRender: ({ text }) => {
return text ? text : "-";
},
},
{
title: "教师名称",
dataIndex: "teacher",
key: "teacher",
width: "10%",
align: "center",
ellipsis: true,
customRender: ({ text }) => {
return text ? text : "-";
},
},
{ {
title: "课程名称", title: "课程名称",
dataIndex: "organization", dataIndex: "organization",
key: "organization", key: "organization",
width: "25%", width: "15%",
align: "center", align: "center",
ellipsis: true, ellipsis: true,
customRender: ({ text }) => { customRender: ({ text }) => {
@@ -3387,7 +3405,7 @@ const columns6 = [
title: "场地", title: "场地",
dataIndex: "address", dataIndex: "address",
key: "saddress", key: "saddress",
width: "25%", width: "15%",
align: "center", align: "center",
ellipsis: true, ellipsis: true,
customRender: ({ text }) => { customRender: ({ text }) => {
@@ -3399,6 +3417,7 @@ const columns6 = [
dataIndex: "starttime", dataIndex: "starttime",
key: "starttime", key: "starttime",
width: "12%", width: "12%",
ellipsis: true,
align: "center", align: "center",
customRender: ({ text }) => { customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-"; return text ? getdateToTime(text * 1000) : "-";
@@ -3409,6 +3428,7 @@ const columns6 = [
dataIndex: "createtime", dataIndex: "createtime",
key: "createtime", key: "createtime",
width: "12%", width: "12%",
ellipsis: true,
align: "center", align: "center",
customRender: ({ text }) => { customRender: ({ text }) => {
return text ? getdateToTime(text * 1000) : "-"; return text ? getdateToTime(text * 1000) : "-";
@@ -3523,7 +3543,7 @@ const columns7 = [
key: "7", key: "7",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({ record }) => {
switch (String(record.source)) { switch (String(record.signStatus)) {
case "0": case "0":
return "未签到"; return "未签到";
case "1": case "1":
@@ -3540,7 +3560,7 @@ const columns7 = [
key: "8", key: "8",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({ record }) => {
switch (String(record.source)) { switch (String(record.evalStatus)) {
case "0": case "0":
return "未评估"; return "未评估";
case "1": case "1":
@@ -4032,8 +4052,8 @@ export default defineComponent({
let startTime = ""; let startTime = "";
let endTime = ""; let endTime = "";
if (state.projectTime) { if (state.projectTime) {
startTime = state.projectTime[0] startTime = state.projectTime[0];
endTime = state.projectTime[1] endTime = state.projectTime[1];
} }
let res = await list({ let res = await list({
pageNo: state.currentPage1, pageNo: state.currentPage1,
@@ -4283,7 +4303,7 @@ export default defineComponent({
let newArr = []; let newArr = [];
arr.forEach((item) => { arr.forEach((item) => {
newArr.push({ newArr.push({
value: item.dictValue + "," + item.dictCode, value: item.dictValue,
label: item.dictName, label: item.dictName,
}); });
}); });

View File

@@ -59,11 +59,7 @@
<span style="margin-right: 14px">封面图</span> <span style="margin-right: 14px">封面图</span>
</div> </div>
<img <img
:src=" :src="detail.picUrl"
detail.picUrl.indexOf(',') > -1
? detail.picUrl.split(',')[0]
: detail.picUrl
"
alt="img" alt="img"
style="width: 100px; height: 100px" style="width: 100px; height: 100px"
/> />

View File

@@ -117,6 +117,38 @@ export default {
currentPage: 1, currentPage: 1,
total: null, total: null,
pageSize: 10, pageSize: 10,
//审核记录的表
columnsAudit: [
{
title: "审核人",
dataIndex: "createName",
key: "createName",
align: "center",
},
{
title: "审核状态",
dataIndex: "status",
key: "status",
align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>,
},
{
title: "审核时间",
dataIndex: "createTime",
key: "createTime",
align: "center",
width: 220
},
{
title: "备注",
dataIndex: "description",
key: "description",
align: "center",
},
],
columns1: [ columns1: [
{ {
title: "序号", title: "序号",
@@ -180,7 +212,8 @@ export default {
return <div return <div
style="color:#387DF7;cursor:pointer;" style="color:#387DF7;cursor:pointer;"
onClick={() => { onClick={() => {
showProjAuditModal(value.record.auditList); console.log(value)
showProjAuditModal(value.record.auditLogDtoList);
}}>审核日志</div>; }}>审核日志</div>;
}, },
}, },
@@ -228,9 +261,9 @@ export default {
} }
let data = table; let data = table;
let array = []; let array = [];
data.map((item) => { data.map((item, n) => {
let obj = { let obj = {
number: item.offcourseId, number: n+1,
name: item.name || "- ", name: item.name || "- ",
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,
@@ -247,10 +280,12 @@ export default {
creater: item.createName, creater: item.createName,
time: item.createTime, time: item.createTime,
msg: item.description || "-", msg: item.description || "-",
auditLogDtoList: item.auditLogDtoList
}; };
array.push(obj); array.push(obj);
}); });
state.tableData1 = array; state.tableData1 = array;
console.log(data)
}; };
const reset = () => { const reset = () => {
(state.valueproj = ''), (state.valueproj = ''),

View File

@@ -424,9 +424,9 @@ export default {
} }
let data = tableData; let data = tableData;
let array = []; let array = [];
data.map((item) => { data.map((item, i) => {
let obj = { let obj = {
number: item.offcourseId, number: i+1,
name: item.name, name: item.name,
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,

View File

@@ -175,8 +175,8 @@ export default {
columns1: [ columns1: [
{ {
title: "序号", title: "序号",
dataIndex: "projectId", dataIndex: "number",
key: "projectId", key: "number",
align: "center", align: "center",
}, },
{ {
@@ -299,7 +299,14 @@ export default {
console.log('获取已审核项目列表数据',res) console.log('获取已审核项目列表数据',res)
let result = res.data.data; let result = res.data.data;
state.total = res.data.data.total; state.total = res.data.data.total;
state.tableData1 = result.rows let numdata = []
result.rows.map((value, index) => {
let obj = value
obj.number = index+1
numdata.push(obj);
});
state.tableData1 = numdata
}) })
}; };
const changePagination = (pagina) => { const changePagination = (pagina) => {

View File

@@ -106,8 +106,8 @@ export default {
columns1: [ columns1: [
{ {
title: "序号", title: "序号",
dataIndex: "projectId", dataIndex: "number",
key: "projectId", key: "number",
align: "center", align: "center",
}, },
{ {
@@ -200,7 +200,17 @@ export default {
console.log("获取待审核项目成功", res); console.log("获取待审核项目成功", res);
let result = res.data.data; let result = res.data.data;
state.total = result.total; state.total = result.total;
state.tableData1 = result.rows // state.tableData1 = result.rows
let numdata = []
result.rows.map((value, index) => {
let obj = value
obj.number = index+1
numdata.push(obj);
});
state.tableData1 = numdata
// setProjList(result.rows); // setProjList(result.rows);
}) })
.catch((err) => { .catch((err) => {

View File

@@ -1255,8 +1255,8 @@ import { getRouterOverview } from "@/api/indexLearningPath";
import { handleLearnPath } from "../../api/index1"; import { handleLearnPath } from "../../api/index1";
import { GetRouterDetail } from "@/api/indexTask"; import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { toDate, codeUrl } from "../../api/method";
import { editRoutered } from "../../api/indexLearningPath"; import { editRoutered } from "../../api/indexLearningPath";
import { codeUrl } from "../../api/method";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue"; import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
export default { export default {
name: "LevelAdd", name: "LevelAdd",
@@ -1892,10 +1892,7 @@ export default {
GetRouterDetail(state.routerId).then((res) => { GetRouterDetail(state.routerId).then((res) => {
// console.log("获取路径图详情", res); // console.log("获取路径图详情", res);
state.styTitle = res.data.data.routerInfo.name; state.styTitle = res.data.data.routerInfo.name;
state.cretime = toDate( state.cretime = res.data.data.routerInfo.createTime;
res.data.data.routerInfo.createTime / 1000,
"Y-M-D h:m"
);
state.picUrl = res.data.data.routerInfo.picUrl; state.picUrl = res.data.data.routerInfo.picUrl;
state.action = res.data.data.routerInfo.status; state.action = res.data.data.routerInfo.status;
state.remark = res.data.data.routerInfo.remark; state.remark = res.data.data.routerInfo.remark;

View File

@@ -1059,7 +1059,6 @@ import { editTask } from "../../api/indexTaskadd";
// import { RouterEditTask } from "@/api/indexTask"; // import { RouterEditTask } from "@/api/indexTask";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { toDate } from "../../api/method";
// import UnlockMode from "../../components/drawers/UnlockMode.vue"; // import UnlockMode from "../../components/drawers/UnlockMode.vue";
export default { export default {
name: "LevelAddDetail", name: "LevelAddDetail",
@@ -1422,10 +1421,7 @@ export default {
//给level赋初始值 //给level赋初始值
state.level = res.data.data.chapterList; state.level = res.data.data.chapterList;
state.styTitle = res.data.data.routerInfo.name; state.styTitle = res.data.data.routerInfo.name;
state.creTime = toDate( state.creTime = res.data.data.routerInfo.createTime ;
res.data.data.routerInfo.createTime / 1000,
"Y-M-D h:m"
);
state.picUrl = res.data.data.routerInfo.picUrl; state.picUrl = res.data.data.routerInfo.picUrl;
//增加两个字段 //增加两个字段
state.level.forEach((item) => { state.level.forEach((item) => {

View File

@@ -60,8 +60,8 @@
<ProjectClass v-model:value="projectInfo.category"></ProjectClass> <ProjectClass v-model:value="projectInfo.category"></ProjectClass>
</div> </div>
</div> </div>
<div class="name"> <div class="name flex-top">
<div class="namebox"> <div class="namebox" style="margin-top:10px">
<img <img
class="nameimg" class="nameimg"
src="../../assets/images/basicinfo/asterisk.png" src="../../assets/images/basicinfo/asterisk.png"
@@ -94,35 +94,6 @@
</span> </span>
</div> </div>
</div> </div>
<!-- <div-->
<!-- :class="`box ${projectInfo.picUrl == src ? 'active' : ''}`"-->
<!-- style="-->
<!-- width: 100px;-->
<!-- height: 100px;-->
<!-- border-radius: 5px;-->
<!-- cursor: pointer;-->
<!-- position: relative;-->
<!-- overflow: hidden;-->
<!-- "-->
<!-- v-for="(src, index) in projectPic"-->
<!-- :key="index"-->
<!-- @click="-->
<!-- () => {-->
<!-- projectInfo.picUrl = src;-->
<!-- }-->
<!-- "-->
<!-- >-->
<!-- <img-->
<!-- style="-->
<!-- width: 100px;-->
<!-- height: 100px;-->
<!-- margin-bottom: 4px;-->
<!-- margin-right: 4px;-->
<!-- "-->
<!-- :src="src"-->
<!-- alt="avatar"-->
<!-- />-->
<!-- </div>-->
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
@@ -326,7 +297,7 @@ import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import { scrollLoad } from "@/api/method"; import {changeOwnership, scrollLoad} from "@/api/method";
export default { export default {
name: "projectAdd", name: "projectAdd",
@@ -475,7 +446,12 @@ export default {
} }
state.projectInfo.type = 3; state.projectInfo.type = 3;
state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0; state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0;
api.createProject(state.projectInfo).then(() => { api.createProject(state.projectInfo).then((res) => {
state.projectInfo.projectId || changeOwnership(
"project",
res.data.data.projectId,
[{id: res.data.data.createId, name: res.data.data.createName}]
);
message.destroy(); message.destroy();
message.success("编辑成功"); message.success("编辑成功");
router.back(); router.back();
@@ -495,6 +471,9 @@ export default {
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.flex-top{
align-items: flex-start !important;
}
.projectAdd { .projectAdd {
width: 100%; width: 100%;
// height: inherit; // height: inherit;

View File

@@ -816,6 +816,7 @@ import ProjectClass from "@/components/project/ProjectClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as moment from 'moment' import * as moment from 'moment'
import {changeOwnership} from "@/api/method";
export default { export default {
name: "projectManage", name: "projectManage",
@@ -951,11 +952,16 @@ export default {
if (!validate(state.projectInfo, errorMsgs)) { if (!validate(state.projectInfo, errorMsgs)) {
return; return;
} }
api.createProject(state.projectInfo).then(() => { api.createProject(state.projectInfo).then((res) => {
state.doublepro = false; state.doublepro = false;
message.destroy(); message.destroy();
message.success("创建成功"); message.success("创建成功");
state.currentPage = 1; state.currentPage = 1;
state.projectInfo.projectId || changeOwnership(
"project",
res.data.data.projectId,
[{id: res.data.data.createId, name: res.data.data.createName}]
);
getTableDate(); getTableDate();
}); });
}; };

View File

@@ -11,7 +11,11 @@
<div class="fort">起止时间{{ startTime }}{{ endTime }}</div> <div class="fort">起止时间{{ startTime }}{{ endTime }}</div>
</div> </div>
<div class="right"> <div class="right">
<img class="img1" src="../../assets/images/leveladd/ma.png" /> <img
class="img1"
src="../../assets/images/leveladd/ma.png"
@click="showCodeModel2()"
/>
<div class="line" v-if="action == 1 || action == 0"></div> <div class="line" v-if="action == 1 || action == 0"></div>
<img <img
v-if="action == 1 || action == 0" v-if="action == 1 || action == 0"
@@ -473,7 +477,9 @@
</div> </div>
</div> </div>
<div> <div>
<div class="iconame">「{{ item.name }}」</div> <div class="iconame">
「{{ checkType(item.type) }}」
</div>
<div class="icontext">{{ item.name }}</div> <div class="icontext">{{ item.name }}</div>
</div> </div>
</div> </div>
@@ -550,7 +556,7 @@
<div <div
class="operation" class="operation"
style="cursor: pointer" style="cursor: pointer"
@click="showCodeModal" @click="showCodeModel(item)"
> >
二维码 二维码
</div> </div>
@@ -1613,15 +1619,6 @@
<!-- 编辑项目弹窗 --> <!-- 编辑项目弹窗 -->
<proj-set v-model:editHs="editHs" v-model:projectId="projectId" /> <proj-set v-model:editHs="editHs" v-model:projectId="projectId" />
<!-- 二维码弹窗 -->
<two-dimensional-code
v-model:codevisible="codevisible"
:codeInfo="codeInfo"
index="0"
type="课程二维码"
/>
<!-- 二维码弹窗 -->
<!-- 发布弹窗 --> <!-- 发布弹窗 -->
<a-modal <a-modal
v-model:visible="projectPub" v-model:visible="projectPub"
@@ -1793,6 +1790,15 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 二维码弹窗 -->
<two-dimensional-code
v-model:codevisible="codevisible"
:codeInfo="codeInfo"
index="0"
type="课程二维码"
/>
<!-- 二维码弹窗 -->
</div> </div>
</template> </template>
<script> <script>
@@ -1833,7 +1839,7 @@ import { message } from "ant-design-vue";
import * as apitl from "../../api/index"; import * as apitl from "../../api/index";
import { getTask } from "../../api/indexTaskadd"; import { getTask } from "../../api/indexTaskadd";
import { editProj } from "../../api/indexTaskadd"; import { editProj } from "../../api/indexTaskadd";
import { toDate } from "../../api/method"; import { toDate, codeUrl } from "../../api/method";
import projSet from "../../components/Modals/projSet"; import projSet from "../../components/Modals/projSet";
import { overview } from "../../api/indexProjStu"; import { overview } from "../../api/indexProjStu";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue"; import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
@@ -1975,8 +1981,6 @@ export default {
huodModal: false, //活动二维码弹窗 huodModal: false, //活动二维码弹窗
allDelete: false, //批量删除弹窗 allDelete: false, //批量删除弹窗
codevisible: false, //二维码弹窗
codeInfo: null, //二维码信息
pubproject: false, pubproject: false,
stugroup: false, stugroup: false,
canclestu: false, canclestu: false,
@@ -2490,6 +2494,9 @@ export default {
isPass: false, // 是否审核未通过 isPass: false, // 是否审核未通过
passInfo: null, // 审核未通过原因说明 passInfo: null, // 审核未通过原因说明
reviewModal: false, reviewModal: false,
codevisible: false, //二维码是否显示
codeInfo: null, //二维码标题
}); });
const levelList = reactive({ const levelList = reactive({
@@ -4020,6 +4027,46 @@ export default {
// let a = state.attach.split(",") // let a = state.attach.split(",")
// state.fileList = a // state.fileList = a
}); });
const checkType = (type) => {
let typeRules = [
"",
"在线",
"面授",
"案例",
"作业",
"考试",
"直播",
"外链",
"讨论",
"活动",
"测评",
"评估",
"投票",
"项目",
];
return typeRules[type];
};
//显示二维码弹窗
const showCodeModel = (item) => {
state.codevisible = true;
let obj = {
title: "[" + checkType(item.type) + "]二维码",
name: item.name,
url: codeUrl,
};
state.codeInfo = obj;
};
//显示二维码弹窗
const showCodeModel2 = () => {
state.codevisible = true;
let obj = {
title: "[项目]二维码",
name: state.name,
url: codeUrl,
};
state.codeInfo = obj;
};
return { return {
...toRefs(state), ...toRefs(state),
...toRefs(levelList), ...toRefs(levelList),
@@ -4116,6 +4163,9 @@ export default {
submitExamine, submitExamine,
closeReviewModal, closeReviewModal,
recallReviewProject, recallReviewProject,
showCodeModel,
showCodeModel2,
checkType,
}; };
}, },
}; };