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

# Conflicts:
#	src/components/drawers/AssessmentAll.vue
This commit is contained in:
yuping
2023-02-16 13:09:08 +08:00
15 changed files with 255 additions and 6887 deletions

View File

@@ -18,7 +18,7 @@
{{ noticeContent1 ? noticeContent1 : "暂无公告" }}
</div> -->
<a-textarea
disabled="true"
disabled="false"
v-model:value="noticeContent1"
:maxlength="150"
placeholder="公告信息最多输入150个字"
@@ -142,8 +142,8 @@ export default {
if (res.data.code === 200) {
message.destroy();
// message.success("发布成功");
state.noticeContent1 =
res.data.data.notice == "" ? "暂无公告" : res.data.data.notice;
// state.noticeContent1 =
// res.data.data.notice == "" ? "暂无公告" : res.data.data.notice;
handleCancel();
emitter.emit("setNotice", false);
}

View File

@@ -602,6 +602,7 @@ export default {
.then((res) => {
console.log(res.data, "修改成功");
message.destroy();
getScoreRule();
return message.success("修改积分规则成功");
})
.catch((err) => {

View File

@@ -159,6 +159,10 @@ export default {
type: Number,
default: null,
},
outchapter: {
type: Number,
default: null,
},
datasource: {
type: Object,
default: function () {
@@ -386,7 +390,7 @@ export default {
console.log("我是传递的查询参数", {
"pageNo": state.currentPage,
"pageSize": state.pageSize,
"chapterId": props.datasource.chapterId,
"chapterId": props.outchapter,
"status": state.projectName,
"studentName": state.name,
"taskId": props.datasource.courseId,
@@ -397,7 +401,7 @@ export default {
api.QueryOnlineManagementDetail({
"pageNo": state.currentPage,
"pageSize": state.pageSize,
"chapterId": props.datasource.chapterId,
"chapterId": props.outchapter,
"status": state.projectName,
"studentName": state.name,
"targetId":props.datasource.routerId,

View File

@@ -159,6 +159,10 @@
return {};
},
},
outchapter: {
type: Number,
default: null,
},
},
setup(props, ctx) {
@@ -378,13 +382,13 @@
function getData() {
state.loadingData = true;
api.QueryExternalExamManageDetail({
chapterId: props.datasource.chapterId,
chapterId: props.outchapter,
pageNo: state.currentPage,
pageSize: state.pageSize,
status: state.projectName,
studentName: state.name,
targetId: props.datasource.routerId,
taskId: props.datasource.routerTaskId,
taskId: props.datasource.courseId,
type: 1,
}).then(res=>{
console.log(res)

View File

@@ -158,6 +158,10 @@
return {};
},
},
outchapter: {
type: Number,
default: null,
},
},
setup(props, ctx) {
@@ -381,7 +385,7 @@
console.log("我是传递的查询参数", {
"pageNo": state.currentPage,
"pageSize": state.pageSize,
"chapterId": props.datasource.stageId=="0"?"":props.datasource.stageId,
"chapterId": props.datasource.stageId=="0"?"":props.outchapter,
"status": state.projectName,
"studentName": state.name,
"targetId":props.datasource.projectId,
@@ -391,7 +395,7 @@
api.QueryVoteManagementDetail({
"pageNo": state.currentPage,
"pageSize": state.pageSize,
"chapterId": props.datasource.chapterId,
"chapterId": props.outchapter,
"status": state.projectName,
"studentName": state.name,
"targetId":props.datasource.routerId,

View File

@@ -244,14 +244,14 @@
<div v-if="i < 11">
<div class="chose">
{{ item.realName }}
<div class="ch" @click="stuDel(i)"></div>
<div class="ch" @click="memberDel(i)"></div>
</div>
</div>
<div v-else>
<div v-if="person">
<div class="chose">
{{ item.realName }}
<div class="ch" @click="stuDel(i)"></div>
<div class="ch" @click="memberDel(i)"></div>
</div>
</div>
</div>
@@ -536,13 +536,23 @@ const getStu = () => {
});
};
getStu();
const projectChangePagination = () => {};
const projectChangePagination = (page) => {
procurrentPage.value = page;
getStu();
};
function onProjectSelectChange(e, l) {
console.log("eeeee", e, l);
projectSelectKeys.value = e;
selectsData.value.projectMemberList = l;
}
function memberDel(i) {
projectSelectKeys.value = projectSelectKeys.value.filter(
(e) => e !== selectsData.value.projectMemberList[i].id
);
selectsData.value.projectMemberList.splice(i, 1);
}
const person = ref(false);
// const dept =ref(false)
const group = ref(false);
@@ -889,7 +899,9 @@ function handleStageOk() {
deptIds: selectsData.value.deptList?.map((e) => e.id),
stageId: selectsData.value.stageId,
groupIds: selectsData.value.groupList?.map((e) => e.id),
studentList: selectsData.value.studentList,
studentList: selectsData.value.studentList.concat(
selectsData.value.projectMemberList
),
groupName: props.groupName,
groupId: props.groupId,
}).then(() => {
@@ -940,6 +952,7 @@ watch(visiable, () => {
studentList: [],
deptList: [],
groupList: [],
projectMemberList: [],
};
stuReset();
auditReset();

View File

@@ -440,6 +440,15 @@ const tablecolumns = ref([
customRender: ({ record: { studentOrgName, studentDepartName } }) =>
allDepartShow(studentOrgName, studentDepartName),
},
{
title: "所属小组",
dataIndex: "groupName",
key: "groupName",
width: "20%",
align: "center",
className: "h",
ellipsis: true,
},
{
title: "加入方式",
dataIndex: "source",
@@ -449,13 +458,13 @@ const tablecolumns = ref([
customRender: ({ record: { source } }) =>
// ({ 1: "快速添加", 2: "组织", 3: "受众", 4: "报名" }[source]),
({
0: "手动加入",
1: "手动加入",
2: "手动加入",
3: "手动加入",
0: "入",
1: "入",
2: "入",
3: "入",
4: "报名",
5: "手动加入",
6: "手动加入",
5: "入",
6: "入",
}[source]),
},
...props.columns,

View File

@@ -2030,7 +2030,7 @@ const columns7 = [
customRender: ({ record }) => {
switch (String(record.source)) {
case "1":
return "手动加入";
return "入";
case "2":
return "报名加入";
}

View File

@@ -3573,7 +3573,7 @@ const columns7 = [
customRender: ({ record }) => {
switch (String(record.source)) {
case "1":
return "手动加入";
return "入";
case "2":
return "报名加入";
}

View File

@@ -124,6 +124,98 @@
</div>
</div>
</a-modal>
<!-- 邀请审核弹窗 -->
<a-modal v-model:visible="courInvitationAuditModal" :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="closeInvitationCourAuditModal"></div>
</div>
<div class="body">
<div class="item" style="align-items: center;">
<div class="left">教师</div>
<div class="rig" style="margin-left: 10px;">
<ProjectManager
placeholder="请输入教师姓名"
v-model:value="memberValue.value"
v-model:name="memberValue.label">
</ProjectManager>
</div>
</div>
<div class="item" style="margin-top: 20px">
<div class="sign" style="position: relative; left: 30px; top: -2px">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<div class="left">邀请说明</div>
<div class="rig">
<a-textarea v-model:value="valueSuggInvitation" :rows="4" show-count :maxlength="20" />
</div>
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeInvitationCourAuditModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="sureInvitationCourAuditModal">
<div class="btnText">转审</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 转审完成弹窗 -->
<a-modal v-model:visible="transferInvitationAuditModal" :footer="null" :closable="closeBack" wrapClassName="courAuditModal"
centered="true">
<div class="delete" style="height:460px;">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>审核信息</span>
<div class="close_exit" @click="closeTransferInvitationCourAuditModal"></div>
</div>
<div class="body">
<div class="item" style="align-items: center;">
<div class="left">审核人</div>
<div class="rig" style="margin-left: 10px;">
<span>董瑞华</span>
</div>
</div>
<div class="item" style="align-items: center;margin-top: 20px;">
<div class="left">审核结果</div>
<div class="rig" style="margin-left: 10px;">
<a-tag color="red">拒绝</a-tag>
<a-tag color="green">通过</a-tag>
</div>
</div>
<div class="item" style="margin-top: 20px">
<div class="sign" style="position: relative; left: 30px; top: -2px">
<!-- <img src="@/assets/images/coursewareManage/asterisk.png" alt="" /> -->
</div>
<div class="left">审核备注</div>
<div class="rig">
<a-textarea v-model:value="valueTransferSuggInvitation" :rows="4" show-count :maxlength="20" />
</div>
</div>
<div class="item" style="align-items: center;margin-top: 20px;">
<div class="left">审核时间</div>
<div class="rig" style="margin-left: 10px;">
<span>2023-02-14 11:23:45</span>
</div>
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeTransferInvitationCourAuditModal">
<div class="btnText">关闭</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 预览弹窗 -->
<SeeModal :visible="lookCourseModal" :detail="faceDetailObj" @cancel="ft_exit" />
@@ -139,6 +231,7 @@
import {reactive, toRefs, onMounted, ref, computed} from "vue";
import { list, courseAuditView, courseDetail } from "../../api/indexAudit";
import { message } from "ant-design-vue";
import ProjectManager from "@/components/project/ProjectManagerNew";
import SeeModal from "../courselibrary/components/seeModal.vue";
import { iframeUrl } from "../../api/method";
import {useStore} from "vuex";
@@ -148,6 +241,7 @@ export default {
name: "CoursereViewedN",
components: {
SeeModal,
ProjectManager
},
setup() {
const state = reactive({
@@ -162,6 +256,10 @@ export default {
label: "rose",
},
],
memberValue: {
value: "",
label: "",
},
calssifyList: [], //分类字典
valueproj: null,
valuecreater: "",
@@ -171,9 +269,13 @@ export default {
total: null,
pageSize: 10,
courAuditModal: false, //审核弹窗
courInvitationAuditModal: false, //邀请审核弹窗
transferInvitationAuditModal: false, //转审完成 弹框
closeBack: false,
valuepass: "1",
valueSugg: null,
valueSuggInvitation: null,
valueTransferSuggInvitation: null,
createId: null,
chooseCreater: null,
chooseOffId: null,
@@ -214,21 +316,40 @@ export default {
dataIndex: "status",
key: "status",
align: "center",
width: "10%",
width: "8%",
},
{
title: "转审",
dataIndex: "transfer",
key: "transfer",
align: "center",
width: "10%",
customRender: (value) => {
return (
<div>
<a-tag
color="blue">已转审</a-tag>
<a-tag
onClick={()=>{
showTransferInvitationAudit(
value.record.createrId,
value.record.creater,
value.record.offId
)
}}
style="cursor:pointer;"
color="green">转审完成</a-tag>
</div>
);
},
},
// {
// title: "转审",
// dataIndex: "change",
// key: "change",
// align: "center",
// },
{
title: "创建人",
dataIndex: "creater",
key: "creater",
align: "center",
ellipsis: true,
width: "15%",
width: "10%",
},
{
title: "创建时间",
@@ -236,7 +357,7 @@ export default {
key: "time",
align: "center",
ellipsis: true,
width: "15%",
width: "10%",
},
{
@@ -261,6 +382,19 @@ export default {
审核
</span>
&nbsp;
<span
style="cursor:pointer;color:#387DF7"
onClick={() => {
showInvitationAudit(
value.record.createrId,
value.record.creater,
value.record.offId
)
}}
>
邀请审核
</span>
&nbsp;
<span
onClick={() => {
getFaceDetail(value.record.offId);
@@ -563,6 +697,7 @@ export default {
time: item.processTime,
createrId: item.createId,
offId: item.id,
transfer: item.id // 转审
};
array.push(obj);
});
@@ -587,6 +722,32 @@ export default {
state.chooseOffId = offId;
getFaceList();
};
// 显示邀请审核弹框
const showInvitationAudit = (createId, creater, offId) => {
console.log("参数",createId, creater, offId)
state.courInvitationAuditModal = true;
};
// 关闭邀请审核弹框
const closeInvitationCourAuditModal = () => {
state.courInvitationAuditModal = false;
}
// 邀请审核确定
const sureInvitationCourAuditModal = () => {
state.courInvitationAuditModal = false;
}
// 转审完成弹框
const showTransferInvitationAudit = (createId, creater, offId) => {
console.log("参数",createId, creater, offId)
state.transferInvitationAuditModal = true;
}
// 关闭转审完成弹框
const closeTransferInvitationCourAuditModal = () => {
state.transferInvitationAuditModal = false;
}
const closeCourAuditModal = () => {
state.courAuditModal = false;
state.valueSugg = null;
@@ -646,6 +807,11 @@ export default {
reset,
changePagination,
showAudit,
showInvitationAudit,
closeInvitationCourAuditModal,
sureInvitationCourAuditModal,
showTransferInvitationAudit,
closeTransferInvitationCourAuditModal,
closeCourAuditModal,
sureCourAuditModal,
ft_exit,

View File

@@ -115,8 +115,8 @@
<a-button @click="showDeleteModal(record.id)" type="link" danger>删除</a-button>
<a-button v-if="record.state==='已发布'" @click="showBackModal(record.id)" type="link">撤回</a-button>
<a-button v-if="record.state==='已发布'" @click="showStopModal(record.id)" type="link">结束</a-button>
<a-button v-if="record.state==='已结束'" @click="showStartModal(record.id)" type="link">启用</a-button>
</DropDown>
<!-- <a-button v-if="record.state==='已结束'" @click="showStartModal(record.id)" type="link">启用</a-button> -->
</a-space>
</template>
</template>

View File

@@ -340,7 +340,9 @@
</div>
<!-- 无数据显示快速创建 -->
<div v-show="!taskSyllabus.length">
<router-link :to="{ path: '/leveladddetail', query:{ routerId: routerId } }">
<router-link
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
>
<div
class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
@@ -529,17 +531,17 @@
item.type === 6 ||
item.type === 11 ||
item.type === 9
? commonModel(item, value.name)
? commonModel(item, value.name, value.chapterId)
: item.type === 2
? faceTeachModel(item)
: item.type === 4
? homeworkModel(item)
: item.type === 5
? examinationModel(item, value.name)
? examinationModel(item, value.name, value.chapterId)
: item.type === 10
? evaluationModel(item, value.name)
: item.type === 12
? voteModel(item, value.name)
? voteModel(item, value.name, value.chapterId)
: item.type === 13
? projectModel(item, value.name)
: null
@@ -1301,6 +1303,7 @@
v-model:ExaminationExaminaModelVisible="examinationExaminaModelVisible"
:title="examinationModelVisibleTitle"
:datasource="examinationData"
:outchapter="outchapter"
:levelName="examLevelName"
/>
<!-- 外部考试管理抽屉 结束-->
@@ -1327,6 +1330,7 @@
v-model:CommonModelVisible="commonModelVisible"
:title="commonModelVisibleTitle"
:datasource="commonData"
:outchapter="outchapter"
:levelName="commonLevelName"
/>
<!-- 公共管理抽屉 结束-->
@@ -1336,6 +1340,7 @@
v-model:VoteModelVisible="voteModelVisible"
:title="voteModelVisibleTitle"
:datasource="voteData"
:outchapter="outchapter"
:levelName="voteLevelName"
/>
<!-- 投票管理抽屉 结束-->
@@ -1590,6 +1595,7 @@ export default {
projectModelVisible: false,
faceTeachModelVisibleTitle: "",
examinationModelVisibleTitle: "",
outchapter:"",
evaluationModelVisibleTitle: "",
homeworkModelVisibleTitle: "",
commonModelVisibleTitle: "",
@@ -1900,11 +1906,12 @@ export default {
// 面授课弹框名称 RouterFaceTeachManage
};
// 考试点击管理弹框
const examinationModel = (data, levelname) => {
const examinationModel = (data, levelname, outchapterid) => {
console.log(data);
if (data.startTime == null && data.endTime == null) {
// 外部考试
state.examinationExaminaModelVisible = true;
state.outchapter = outchapterid;
} else {
// 系统考试
state.examinationModelVisible = true;
@@ -1924,12 +1931,13 @@ export default {
// 测评弹框名称 RouterEvaluationManage
};
// 投票点击管理弹框
const voteModel = (data, levelname) => {
const voteModel = (data, levelname, outchapterid) => {
console.log(data);
state.voteLevelName = levelname;
state.voteModelVisible = true;
state.voteModelVisibleTitle = data.name;
state.voteData = data;
state.outchapter = outchapterid;
// 投票弹框名称 RouterVoteManage
};
// 项目点击管理弹框
@@ -1950,12 +1958,13 @@ export default {
// 作业弹框名称 RouterHomeworkManage
};
// 在线、案例、外链、评估、直播、活动点击管理弹框
const commonModel = (data, levelname) => {
const commonModel = (data, levelname, outchapterid) => {
state.commonLevelName = levelname;
console.log(data);
state.commonModelVisible = true;
state.commonModelVisibleTitle = data.name;
state.commonData = data;
state.outchapter = outchapterid;
// 公共模块弹框名称 RouterCommonManage
};
@@ -2278,6 +2287,7 @@ export default {
state.nodata = false;
}
let data = res.data.data.chapterList;
console.log('----------------111111111111111-----------------2222222222', res.data.data.chapterList)
state.stage = res.data.data.chapterList.map((e) => ({
id: e.chapterId,
name: e.name,
@@ -2549,7 +2559,7 @@ export default {
// console.log("state.taskSyllabus", state.taskSyllabus);
router.push({
path: "/leveladddetail",
query:{ routerId: state.routerId }
query: { routerId: state.routerId },
});
// if (state.taskSyllabus.length===1) {
// if(state.taskSyllabus[0].taskList.length===0){
@@ -2594,6 +2604,7 @@ export default {
"&id=" +
item.projectTaskId;
}
if (item.type == 3) return message.error("请在pc端完成");
if (item.type == 4) {
let date1 = new Date(item.endTime).getTime();

View File

@@ -4719,7 +4719,7 @@ export default {
"&id=" +
item.projectTaskId;
}
if (item.type == 3) return message.error("请在pc端完成");
if (item.type == 4) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();

View File

@@ -228,7 +228,7 @@ export default defineComponent({
for (let i in resData) {
state.tableData1.push({
id : i + 1,
projectTemplateId:resData[i].projectTemplateId,
projectTemplateId:resData[i].id,
status:resData[i].status ? "已发布" : "未发布",
name:resData[i].name,
creator:resData[i].createName,

6844
yarn.lock

File diff suppressed because it is too large Load Diff