Merge branch 'zcwy_0712_bug' into dev_master

This commit is contained in:
nisen
2024-08-23 14:20:11 +08:00
23 changed files with 161 additions and 68 deletions

View File

@@ -370,7 +370,9 @@ export function usePage(_url, params, init = true,listing = false) {
state.totalPage = r.data.total/10 || 1;
state.total = r.data.total;
state.loading = false;
});
}).catch(err => {
state.loading = false;
})
}
init && fetch();
@@ -494,6 +496,9 @@ export async function request(_url, params) {
if (res.code === 0 || res.code === 200) {
return res;
}
if (res.code === 4 ){
return Promise.reject(res);
}
if (res.code === 1000 || res.code === 1002) {
window.location.href = process.env.VUE_APP_LOGIN_URL + encodeURIComponent(window.location.protocol + process.env.VUE_APP_BOE_API_URL + process.env.VUE_APP_BASE + router.currentRoute.value.fullPath)
localStorage.removeItem('refreshPage')

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

View File

@@ -17,7 +17,7 @@
</div>
<div>
<div class="contentMain" style="padding:20px">
<CreateOnline ref="onlineRef" :id="props.courseSyncFlag?'':props.id" :type="props.courseSyncFlag?'':props.infoType">
<CreateOnline ref="onlineRef" :id="props.courseSyncFlag?'':props.id" :type="props.courseSyncFlag?'':props.infoType" :courseIds="props.taskList" :projectId="props.id">
<a-button type="primary" style="border-radius: 4px">{{
taskIndex === -1 ? "选择/新建课程" : "重新选择"
}}
@@ -53,6 +53,7 @@ const props = defineProps({
taskList: [],
chapterList: []
});
const visible = ref(false);
const onlineRef = ref(false);
const taskIndex = ref(-1);
@@ -137,7 +138,6 @@ function confirm() {
}
function selectCourse(row) {
console.log(row);
if (!props.courseSyncFlag && row.refId != props.id) {
message.warning("请新建本项目在线课!");
return;

View File

@@ -141,7 +141,7 @@
"
/>
</div>
<div class="altext">{{ item.status === 0 ? "进行中" : item.status === 1 ? "已完成" : "未开始" }}</div>
<div class="altext">{{ item.status === 2 ? "进行中" : item.status === 1 ? "已完成" : "未开始" }}</div>
</div>
</div>

View File

@@ -14,7 +14,7 @@
<iframe
id="iframe"
style="width: 100%; height: 600px"
:src="`${iframeUrl}/course/manages?f=choose&refId=${props.id}&refType=${props.type}`"
:src="`${iframeUrl}/course/manages?f=choose&refId=${props.id}&refType=${props.type}&courseIds=${couresIdArray}&projectId=${props.projectId}`"
name="myframe"
security="restricted"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
@@ -26,12 +26,23 @@ import {defineProps, ref} from "vue";
import {iframeUrl} from "@/api/method";
const visible = ref(false);
const couresIdArray = ref();
const props = defineProps({
type: Number,
id: Number,
courseIds: Array,
projectId: String
});
// 把任务列表里类型为在线课的课程ID放到数组里
if(props.courseIds && props.courseIds.length){
var arr = []
for(var i = 0;i<props.courseIds.length;i++){
if(props.courseIds[i].type === 1){
arr.push(props.courseIds[i].courseId)
}
}
couresIdArray.value = arr
}
function openModal() {
visible.value = true;
}

View File

@@ -60,7 +60,7 @@
</div>
</div>
<div class="contentMain nolimits" v-else>
<img style="width: 700px" src="../../assets/images/evImg.png" />
<img style="width: 700px" src="../../assets/images/evimg2.png" />
</div>
<div class="main_btns">
<button class="btn2" @click="closeDrawer">取消</button>

View File

@@ -314,7 +314,7 @@ export default {
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({2:'进行中',1:'未开始',9:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({1:'进行中',0:'未开始',9:'已完成'}[status] || '未开始'),
},
{
title: "操作",

View File

@@ -327,7 +327,7 @@
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',null:'进行中',2:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'已完成',null:'未开始',2:'进行中'}[status] || '未开始'),
},
],
loadingData: true

View File

@@ -62,6 +62,7 @@
placeholder="请选择"
:options="finishOptions"
allowClear
@change="changeStatus"
></a-select>
</div>
</div>
@@ -161,8 +162,13 @@ const finishOptions = ref([
value: 0,
label: "未完成",
},
// {
// id: 2,
// value: 2,
// label: "进行中",
// },
{
id: 2,
id: 3,
value: 1,
label: "已完成",
},
@@ -191,6 +197,11 @@ const props = defineProps({
},
},
});
const changeStatus = (e) => {
if(e === undefined){
delete params.value.status;
}
}
const params = ref({ pid: 0, type: 3 });
const courseSelectRows = ref([]);
const planParams = computed(() => ({

View File

@@ -224,11 +224,11 @@ export default {
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",

View File

@@ -62,7 +62,7 @@
v-model:value="projectName"
style="width: 200px"
placeholder="请选择"
:options="projectNameList"
:options="datasource.type==3||datasource.type==8||datasource.type === 7?projectNameListNot:projectNameList"
@change="selectProjectName"
allowClear
></a-select>
@@ -128,7 +128,7 @@
</div>-->
</div>
</a-drawer>
<view-assess v-model:Assessvisible="Assessvisible" :datasource="evalDataSource" :evalName="datasource.info?.assessmentName"
<view-assess v-model:Assessvisible="Assessvisible" :assessmentId="evalDataSource.courseId" :datasource="evalDataSource" :evalName="datasource.info?.assessmentName"
:basicdata="datasource.info" />
</template>
@@ -189,18 +189,30 @@ export default {
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameListNot: [
{
id: 1,
value: "0",
label: "未开始",
},
{
id: 3,
value: "1",
label: "已完成",
},
],
projectNameList: [
{
id: 1,
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",
@@ -365,7 +377,7 @@ export default {
ctx.emit("update:Tvisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -377,6 +389,9 @@ export default {
};
const selectProjectName = (value) => {
state.projectName = value;
if(value === undefined){
state.projectName = null;
}
};
//催促
const godie = () => {
@@ -503,7 +518,7 @@ export default {
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = "";
state.projectName = null;
getData();
}

View File

@@ -178,17 +178,22 @@
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameList: [
{
id: 1,
value: "1",
value: 3,
label: "未开始",
},
{
id: 2,
value: 2,
label: "进行中",
},
{
id: 3,
value: "3",
value: 1,
label: "已完成",
},
],
@@ -292,7 +297,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.finishStatus == 1 || text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 3 ? "已完成" :"未完成"}</span>
<span> { text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 1 ? "已完成" :"未完成"}</span>
</div>
);
},
@@ -337,7 +342,7 @@
ctx.emit("update:ProjectVoteModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -438,7 +443,7 @@
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -62,7 +62,7 @@
v-model:value="projectName"
style="width: 200px"
placeholder="请选择"
:options="projectNameList"
:options="datasource.type==3||datasource.type==8||datasource.type === 7?projectNameListNot:projectNameList"
@change="selectProjectName"
></a-select>
@@ -192,7 +192,19 @@ export default {
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameListNot: [
{
id: 1,
value: "0",
label: "未开始",
},
{
id: 3,
value: "1",
label: "已完成",
},
],
projectNameList: [
{
@@ -200,11 +212,11 @@ export default {
value: "0",
label: "未开始",
},
//{
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",
@@ -372,7 +384,7 @@ export default {
ctx.emit("update:CommonModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -384,6 +396,9 @@ export default {
};
const selectProjectName = (value) => {
state.projectName = value;
if(value === undefined){
state.projectName = null;
}
};
//催促
const godie = () => {
@@ -511,7 +526,7 @@ export default {
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -174,11 +174,11 @@ export default {
value: "0",
label: "未开始",
},
//{
// id: 2,
// value: "2",
// label: "进行中",
// },
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",

View File

@@ -340,7 +340,7 @@
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({0:'未开始',1:'进行中',null:'进行中',2:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({0:'未开始',1:'已完成',null:'未开始',2:'进行中'}[status] || '未开始'),
},
],
loadingData: true

View File

@@ -295,7 +295,7 @@ export default {
align: "center",
ellipsis: true,
className: "h",
customRender: ({record:{status}}) => ({1:'已完成',0:'未开始',9:'已完成'}[status] || '未开始'),
customRender: ({record:{status}}) => ({9:'已完成',0:'未开始',1:'进行中'}[status] || '未开始'),
},
{
title: "操作",
@@ -442,6 +442,10 @@ export default {
{/* 导出数据 */ }
function exportData() {
if(state.tabledata.length==0){
message.error("没有数据可以导出");
return
}
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?currentStageId=${props.datasource.chapterId}&type=${1}&pid=${props.datasource.routerId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&taskType=${props.datasource.type}`)

View File

@@ -167,11 +167,11 @@ export default {
value: "0",
label: "未开始",
},
// {
// id: 2,
// value: "2",
// label: "进行中",
//},
{
id: 2,
value: "2",
label: "进行中",
},
{
id: 3,
value: "1",

View File

@@ -182,17 +182,22 @@
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: undefined,
projectName: null,
projectNameList: [
{
id: 1,
value: "1",
value: 3,
label: "未开始",
},
{
id: 2,
value: 2,
label: "进行中",
},
{
id: 3,
value: "3",
value: 1,
label: "已完成",
}
],
@@ -312,7 +317,7 @@
customRender: (text) => {
return (
<div class="racona">
<span> {text.record.finishStatus == 1 || text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 3 ? "已完成" :"未完成"}</span>
<span> { text.record.finishStatus == 0 || text.record.finishStatus==null ? "未开始" :text.record.finishStatus == 2 ?"进行中":text.record.finishStatus == 1 ? "已完成" :"未完成"}</span>
</div>
);
},
@@ -357,7 +362,7 @@
ctx.emit("update:VoteModelVisible", false);
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
state.tabledata = [];
};
const afterVisibleChange = (bol) => {
@@ -459,7 +464,7 @@
state.tableDataTotalLoading = true;
state.currentPage = 1;
state.name = "";
state.projectName = undefined;
state.projectName = null;
getData();
}

View File

@@ -103,7 +103,7 @@
<a-tree v-model:selectedKeys="selectedOrgKeys"
:tree-data="searchOrgName.keyword ? orgData : treeOrgData" @select="onOrgSelectChange"
:loading="orgOrgLoading" :load-data="onLoadOrgData" :fieldNames="{
children: 'treeChildList',
children: 'directChildList',
key: 'id',
title: 'name',
value: 'name',
@@ -542,7 +542,7 @@ function onLoadData(treeNode) {
function onLoadOrgData(treeNode) {
return request(ORG_CHILD_LIST, { keyword: "", orgId: treeNode.id }).then(
(r) => {
treeNode.dataRef.treeChildList = r.data;
treeNode.dataRef.directChildList = r.data;
treeOrgData.value = [...treeOrgData.value];
}
);

View File

@@ -1909,8 +1909,8 @@ const columns2 = [
<span>
{" "}
{text.record.finishStatus == 0 || text.record.finishStatus == null
? "未开始"
: "已完成"}
? "未开始" :text.record.finishStatus == 1?"已完成"
: '进行中'}
</span>
</div>
);

View File

@@ -539,7 +539,7 @@ function handleOper(record, type, status = "") {
<div style="text-align: center; margin-top: 18px;">
<a-pagination :defaultPageSize="pageSize" :showSizeChanger="false" v-model:current="current1" show-quick-jumper :total="total" @change="onChange" />
<a-pagination v-if="total>15" :defaultPageSize="pageSize" :showSizeChanger="false" v-model:current="current1" show-quick-jumper :total="total" @change="onChange" />
</div>
<!--创建认证和编辑认证 -->
<a-modal v-model:visible="visible" :title="editId?'编辑认证':'创建认证'" @ok="!editId?handleOk():handleEdit()" width="610px">

View File

@@ -2494,8 +2494,8 @@ export default {
};
const coursePlanRef = ref();
const openCourse = async (item,key,index) => {
await apitl.getDraftTask({projectId: item.projectId}).then((item)=>{
coursePlanRef.value.openDrawer(item.data.data.stageList[index].taskDraftDtoList[key]);
await apitl.getDraftTask({projectId: item.projectId}).then((res)=>{
coursePlanRef.value.openDrawer(res.data.data.stageList[index].taskDraftDtoList.find(fin=>fin.projectTaskId === item.id));
})
}
const qrCodeItems = ref([]);

View File

@@ -78,8 +78,30 @@ const data = ref({
essayQuestionVoList: [],
scoringQuestionVoList: []
});
const canSubmit = computed(()=>data.value.singleStemVoList.length || data.value.multipleStemVoList.length || data.value.essayQuestionVoList.length || data.value.scoringQuestionVoList.length)
const orderList = computed(()=>[...data.value.singleStemVoList.filter(t=>!t.deleted),...data.value.multipleStemVoList.filter(t=>!t.deleted),...data.value.essayQuestionVoList.filter(t=>!t.deleted),...data.value.scoringQuestionVoList.filter(t=>!t.deleted)].sort((a,b)=>a.orderNumber-b.orderNumber))
// const canSubmit = computed(()=>data.value.singleStemVoList.length || data.value.multipleStemVoList.length || data.value.essayQuestionVoList.length || data.value.scoringQuestionVoList.length)
const canSubmit = computed(() => {
const lists = [
data.value.singleStemVoList,
data.value.multipleStemVoList,
data.value.essayQuestionVoList,
data.value.scoringQuestionVoList
];
return lists.some(list => Array.isArray(list) && list.length > 0);
});
// const orderList = computed(()=>[...data.value.singleStemVoList.filter(t=>!t.deleted),...data.value.multipleStemVoList.filter(t=>!t.deleted),...data.value.essayQuestionVoList.filter(t=>!t.deleted),...data.value.scoringQuestionVoList.filter(t=>!t.deleted)].sort((a,b)=>a.orderNumber-b.orderNumber))
const orderList = computed(() => {
const allLists = [
...(Array.isArray(data.value.singleStemVoList) ? data.value.singleStemVoList : []),
...(Array.isArray(data.value.multipleStemVoList) ? data.value.multipleStemVoList : []),
...(Array.isArray(data.value.essayQuestionVoList) ? data.value.essayQuestionVoList : []),
...(Array.isArray(data.value.scoringQuestionVoList) ? data.value.scoringQuestionVoList : [])
];
return allLists
.filter(({ deleted }) => !deleted)
.sort((a, b) => a.orderNumber - b.orderNumber);
});
watch(()=>orderList.value.length,()=> orderList.value.forEach((t,i)=>t.orderNumber = i + 1))
watchEffect(() => id && request(ASSESSMENT_DETAIL(id), {}).then((res) => data.value = res.data));
const handleSave = () => {