diff --git a/src/api/apis/apis.js b/src/api/apis/apis.js
index be2452f..30f8138 100644
--- a/src/api/apis/apis.js
+++ b/src/api/apis/apis.js
@@ -567,6 +567,15 @@ export default {
data,
});
},
+ // 导出设备列表
+ exportDevice(data) {
+ return service({
+ url: setUpUrls.exportDevice,
+ method: "POST",
+ data,
+ responseType: 'arraybuffer',
+ });
+ },
// 查询设备详情
deviceDetail(data) {
return service({
@@ -704,6 +713,38 @@ export default {
responseType: 'arraybuffer',
});
},
+ // 班级归档
+ classArchiving(data) {
+ return service({
+ url: setUpUrls.classArchiving,
+ method: "POST",
+ data,
+ });
+ },
+ // 查询学校已归档班级列表
+ archivingClassList(data) {
+ return service({
+ url: setUpUrls.archivingClassList,
+ method: "POST",
+ data,
+ });
+ },
+ // 学生换班
+ studentChangeClass(data) {
+ return service({
+ url: setUpUrls.studentChangeClass,
+ method: "POST",
+ data,
+ });
+ },
+ // 升级年级
+ upgradeGrade(data) {
+ return service({
+ url: setUpUrls.upgradeGrade,
+ method: "POST",
+ data,
+ });
+ },
/**
* 集团管理员-学校管理
diff --git a/src/api/axios.js b/src/api/axios.js
index 6177210..fe62731 100644
--- a/src/api/axios.js
+++ b/src/api/axios.js
@@ -67,7 +67,6 @@ service.interceptors.response.use(
if (status === 403 || status === 401) {
if (data.status === 999) {
- console.log(data.data)
if (data.data) {
window.location.href = data.data;
} else {
diff --git a/src/api/urls/apis.js b/src/api/urls/apis.js
index a8eb3ef..fea6104 100644
--- a/src/api/urls/apis.js
+++ b/src/api/urls/apis.js
@@ -140,6 +140,8 @@ export default {
keyboardReport: "/api_html/school/manager/keyboardReport",
// 分页查询设备列表
deviceList: "/api_html/school/manager/deviceList",
+ // 导出设备列表
+ exportDevice: "/api_html/school/manager/exportDevice",
// 查询设备详情
deviceDetail: "/api_html/school/manager/deviceDetail",
// 分页查询设备日志列表
@@ -174,6 +176,15 @@ export default {
latestClickersApp: "/api_html/school/manager/latestClickersApp",
// 发卡导出
exportClickersLog: "/api_html/school/manager/exportClickersLog",
+ /*v1.3*/
+ // 班级归档
+ classArchiving: "/api_html/school/manager/classArchiving",
+ // 查询学校已归档班级列表
+ archivingClassList: "/api_html/school/manager/archivingClassList",
+ // 学生换班
+ studentChangeClass: "/api_html/school/manager/studentChangeClass",
+ // 升级年级
+ upgradeGrade: "/api_html/school/manager/upgradeGrade",
// 查询区域列表
diff --git a/src/components/charts/pieChart.vue b/src/components/charts/pieChart.vue
index 8fa82e3..7cd5b47 100644
--- a/src/components/charts/pieChart.vue
+++ b/src/components/charts/pieChart.vue
@@ -64,7 +64,6 @@ export default {
label: {
normal: {
formatter(v) {
- console.log(v)
let rate = v.data.rate*100
return v.name + rate.toFixed(2) + "%";
},
diff --git a/src/components/setAnswer.vue b/src/components/setAnswer.vue
index 36171ff..9e370aa 100644
--- a/src/components/setAnswer.vue
+++ b/src/components/setAnswer.vue
@@ -446,7 +446,6 @@ export default {
i--;
}
}
- console.log(questionList);
const { data, status, message } = await this.$request.setPeriodAnswer({
periodId: this.paperId,
questionList: questionList,
diff --git a/src/router/index.js b/src/router/index.js
index 264dd31..c301590 100755
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -12,18 +12,24 @@ const ExaminationPaper = () => import("@/views/examinationPaper/index")
const ExaminationPaperAdd = () => import("@/views/examinationPaper/add")
const ExaminationPaperEdit = () => import("@/views/examinationPaper/edit")
const ExaminationPaperRecycle = () => import("@/views/examinationPaper/recycle")
+const ExaminationPaperArchiving = () => import("@/views/examinationPaper/archiving")
const Portrait = () => import("@/views/portrait/index")
const PortraitDetail = () => import("@/views/portrait/detail")
const CSExaminationPaper = () => import("@/views/examinationPaper/index")
-const CSExaminationPaperAdd = () => import("@/views/standard/examinationPaper/add")
-const CSExaminationPaperEdit = () => import("@/views/standard/examinationPaper/edit")
-const CSExaminationPaperRecycle = () => import("@/views/standard/examinationPaper/recycle")
+// const CSExaminationPaperAdd = () => import("@/views/standard/examinationPaper/add")
+// const CSExaminationPaperEdit = () => import("@/views/standard/examinationPaper/edit")
+// const CSExaminationPaperRecycle = () => import("@/views/standard/examinationPaper/recycle")
+const CSExaminationPaperAdd = () => import("@/views/examinationPaper/add")
+const CSExaminationPaperEdit = () => import("@/views/examinationPaper/edit")
+const CSExaminationPaperRecycle = () => import("@/views/examinationPaper/recycle")
const Ask = () => import("@/views/standard/ask/index")
const AskAnalysis = () => import("@/views/standard/ask/analysis")
+const AskArchiving = () => import("@/views/standard/ask/archiving")
const Test = () => import("@/views/standard/test/index")
const TestAnalysis = () => import("@/views/standard/test/analysis")
+const TestArchiving = () => import("@/views/standard/test/archiving")
const DataSync = () => import("@/views/standard/dataSync/index")
const Card = () => import("@/views/standard/card/index")
const Analysis = () => import("@/views/standard/analysis/index")
@@ -34,13 +40,16 @@ const DownClient = () => import("@/views/standard/down/client")
const SetUpAccount = () => import("@/views/standard/setUp/account")
const SetUpConglomerate = () => import("@/views/standard/setUp/conglomerate")
const SetUpSchool = () => import("@/views/standard/setUp/school")
-const SetUpStudent = () => import("@/views/standard/setUp/student")
const SetUpTeacher = () => import("@/views/standard/setUp/teacher")
+const SetUpStudent = () => import("@/views/standard/setUp/student")
+const ArchivedClazz = () => import("@/views/standard/setUp/archivedClazz")
const PersonalAsk = () => import("@/views/personal/ask/index")
const PersonalAskAnalysis = () => import("@/views/personal/ask/analysis")
+const PersonalArchiving = () => import("@/views/personal/ask/archiving")
const PersonalTest = () => import("@/views/personal/test/index")
const PersonalTestAnalysis = () => import("@/views/personal/test/analysis")
+const PersonalTestArchiving = () => import("@/views/personal/test/archiving")
const PersonalDataSync = () => import("@/views/personal/dataSync/index")
const PersonalSetUpStudent = () => import("@/views/personal/setUp/student")
const PersonalDown = () => import("@/views/personal/down/index")
@@ -115,7 +124,7 @@ let defaultRouter = [
}
]
-let addrouters = [
+let addrouters = [
{
path: "/examinationPaper",
iconCls: "fa fa-file-text", // 图标样式class
@@ -149,11 +158,20 @@ let addrouters = [
{
path: "/examinationPaperRecycle",
iconCls: "", // 图标样式class
- name: "已归档答题卡",
+ name: "回收站答题卡",
component: ExaminationPaperRecycle,
parent: "examinationPaper",
children: []
},
+ {
+ path: "/examinationPaperArchiving",
+ iconCls: "", // 图标样式class
+ name: "已归档答题卡",
+ component: ExaminationPaperArchiving,
+ parent: "examinationPaper",
+ hidden: true,
+ children: []
+ },
]
},
{
@@ -182,6 +200,15 @@ let addrouters = [
component: AskAnalysis,
parent: "ask",
children: []
+ },
+ {
+ path: "/askArchiving",
+ iconCls: "", // 图标样式class
+ name: "随堂问已归档报表分析",
+ component: AskArchiving,
+ parent: "ask",
+ hidden: true,
+ children: []
}
]
},
@@ -209,6 +236,15 @@ let addrouters = [
component: TestAnalysis,
parent: "test",
children: []
+ },
+ {
+ path: "/testArchiving",
+ iconCls: "", // 图标样式class
+ name: "即时测已归档报表分析",
+ component: TestArchiving,
+ parent: "test",
+ hidden: true,
+ children: []
}
]
@@ -272,6 +308,14 @@ let addrouters = [
component: SetUpStudent,
children: []
},
+ {
+ path: "/archivedClazz",
+ iconCls: "fa fa-list-ul",
+ name: '已归档班级',
+ component: ArchivedClazz,
+ hidden: true,
+ children: []
+ },
]
},
{
@@ -401,7 +445,7 @@ let addrouters = [
// ]
// },
]
-let csAddrouters = [
+let csAddrouters = [
{
path: "/examinationPaper",
iconCls: "fa fa-file-text", // 图标样式class
@@ -435,11 +479,20 @@ let csAddrouters = [
{
path: "/examinationPaperRecycle",
iconCls: "", // 图标样式class
- name: "已归档答题卡",
+ name: "回收站答题卡",
component: CSExaminationPaperRecycle,
parent: "examinationPaper",
children: []
},
+ {
+ path: "/examinationPaperArchiving",
+ iconCls: "", // 图标样式class
+ name: "已归档答题卡",
+ component: ExaminationPaperArchiving,
+ parent: "examinationPaper",
+ hidden: true,
+ children: []
+ },
]
},
{
@@ -711,11 +764,20 @@ const addroutersPersonal = [
{
path: "/examinationPaperRecycle",
iconCls: "", // 图标样式class
- name: "已归档答题卡",
+ name: "回收站答题卡",
component: ExaminationPaperRecycle,
parent: "examinationPaper",
children: []
},
+ {
+ path: "/examinationPaperArchiving",
+ iconCls: "", // 图标样式class
+ name: "已归档答题卡",
+ component: ExaminationPaperArchiving,
+ parent: "examinationPaper",
+ hidden: true,
+ children: []
+ },
]
},
{
@@ -744,6 +806,15 @@ const addroutersPersonal = [
component: PersonalAskAnalysis,
parent: "ask",
children: []
+ },
+ {
+ path: "/askArchiving",
+ iconCls: "", // 图标样式class
+ name: "随堂已归档问报表分析",
+ component: PersonalArchiving,
+ parent: "ask",
+ hidden:true,
+ children: []
}
]
},
@@ -771,6 +842,15 @@ const addroutersPersonal = [
component: PersonalTestAnalysis,
parent: "test",
children: []
+ },
+ {
+ path: "/testArchiving",
+ iconCls: "", // 图标样式class
+ name: "即时已归档测报表分析",
+ component: PersonalTestArchiving,
+ parent: "test",
+ hidden:true,
+ children: []
}
]
@@ -901,4 +981,4 @@ const addRoutersAdmin = [
export default new Router({
routes: defaultRouter
})
-export { defaultRouter, addrouters,addroutersPersonal,addRoutersAdmin ,csAddrouters}
+export { defaultRouter, addrouters, addroutersPersonal, addRoutersAdmin, csAddrouters }
diff --git a/src/router/permission.js b/src/router/permission.js
index a3d6618..eebe527 100644
--- a/src/router/permission.js
+++ b/src/router/permission.js
@@ -9,6 +9,9 @@ router.beforeEach((to, from, next) => {
next();
} else {
if (store.getters.token) {
+ if (to.path == '/device' && from.path == '/deviceLog') {
+ to.query.back = true
+ }
next();
} else {
if (store.getters.info && store.getters.addRouters) {
@@ -17,7 +20,6 @@ router.beforeEach((to, from, next) => {
let authorityRouterObj = userInfo.permissions.filter((item) => {
return item.roleName == userInfo.showRoleName;
});
- console.log([...authorityRouterObj[0]?.authorityRouter])
store.commit("setRouters", [...authorityRouterObj[0]?.authorityRouter]);
store.commit("setInfo", { ...userInfo });
store.getters.addRouters.forEach((res) => {
diff --git a/src/utils/index.js b/src/utils/index.js
index 6b86f02..bffaba2 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -453,7 +453,6 @@ export function checkAnswer(
s = filtterChar(s, questionType == 3 && questionCount > 1, optionCount);
if (questionType == 2) {
//单选
- console.log(s.length + " " + questionCount);
if (s.length > questionCount) {
s = s.substring(0, questionCount);
}
@@ -679,7 +678,6 @@ export function formatClass(data) {
}
}
});
- console.log(sectionNameArr);
return sectionNameArr;
}
export function formatGradeClass(data) {
@@ -748,44 +746,52 @@ export function formatGradeNameClass(data) {
return gradeNameArr;
}
-export function tablePrint(id) {
+export function tablePrint(id, title) {
let divs = document.getElementById(id);
let awin = window.open("", "_blank");
awin.document.getElementsByTagName(
"head"
)[0].innerHTML = ``;
let aDom = divs.cloneNode(true);
let aTbody = aDom
.getElementsByClassName("el-table__body")[0]
.getElementsByTagName("tbody")[0];
aDom.getElementsByClassName("el-table__header")[0].append(aTbody);
+ if (title) {
+ let pTit = awin.document.createElement('p')
+ pTit.className = "tit"
+ pTit.innerHTML = title
+ awin.document.body.append(pTit)
+ }
awin.document.body.append(aDom);
awin.print();
awin.close()
diff --git a/src/views/admin/account/index.vue b/src/views/admin/account/index.vue
index 9185317..a1ac1b7 100644
--- a/src/views/admin/account/index.vue
+++ b/src/views/admin/account/index.vue
@@ -178,16 +178,6 @@
-
+
+
+ 班级专用
+ 多班复用
+ 用户配置
+
+
@@ -366,23 +350,29 @@ export default {
id: "",
questionList: [],
},
+ tabList: ["答题表现", "学生问答表现", "学生互动表现", "签到明细"],
detail: {},
tableData: [],
optionsList: [],
page: 1,
size: 20,
total: 0,
+ status: 0,
};
},
created() {
this.id = this.$route.query.id;
+ this.status = this.$route.query.status ? this.$route.query.status : 0;
this.title = this.$route.query.title;
this._QueryData();
this.periodDetail();
},
methods: {
print() {
- tablePrint("print-content");
+ tablePrint(
+ "print-content",
+ this.detail.title + "_" + this.tabList[this.type - 1]
+ );
},
setType(type) {
this.type = type;
@@ -524,7 +514,7 @@ export default {
let blob = new Blob([data], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
- downloadFile("随堂问-单课时报表.xlsx", blob);
+ downloadFile(this.status?"随堂问-已归档单课时报表.xlsx":"随堂问-单课时报表.xlsx", blob);
} else {
this.$message.error("下载失败");
}
diff --git a/src/views/personal/ask/archiving.vue b/src/views/personal/ask/archiving.vue
new file mode 100644
index 0000000..584f4f1
--- /dev/null
+++ b/src/views/personal/ask/archiving.vue
@@ -0,0 +1,838 @@
+
+
+
+
+ 问答-已归档数据报表
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+ {{ scoped.row.participationRate }}%
+
+ {{ scoped.row.answerCorrectRate }}%
+
+ {{ scoped.row.classCorrectRate }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scoped.row["participationRate" + item] }}%
+
+ {{ scoped.row["correctRate" + item] }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 导出报表
+ 打印
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/personal/ask/index.vue b/src/views/personal/ask/index.vue
index 4d41b66..188b543 100644
--- a/src/views/personal/ask/index.vue
+++ b/src/views/personal/ask/index.vue
@@ -4,6 +4,23 @@
问答-数据报表
+
+
+
+
+