diff --git a/.env.production b/.env.production
index 93b0b95..a78180a 100644
--- a/.env.production
+++ b/.env.production
@@ -3,8 +3,12 @@ ENV = 'production'
# base api
-VUE_APP_BASE_API=https://wx.sstbc.com/
-VUE_APP_UPLOAD_API=https://wx.sstbc.com/api/admin/upload-file
+
+# VUE_APP_BASE_API=https://wx.sstbc.com/
+# VUE_APP_UPLOAD_API=https://wx.sstbc.com/api/admin/upload-file
+
+VUE_APP_BASE_API=''
+VUE_APP_UPLOAD_API='/api/admin/upload-file'
VUE_APP_PRO_API =https://www.sstbc.com
diff --git a/src/api/sign/index.js b/src/api/sign/index.js
new file mode 100644
index 0000000..7df5626
--- /dev/null
+++ b/src/api/sign/index.js
@@ -0,0 +1,55 @@
+import request from "@/utils/request";
+function customParamsSerializer(params) {
+ let result = '';
+ for (let key in params) {
+ if (params.hasOwnProperty(key)) {
+ if (Array.isArray(params[key])) {
+ params[key].forEach((item, index) => {
+ if (item.key) {
+ result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`;
+
+ } else {
+ result += `${key}[${index}]=${item}&`
+ }
+ });
+ } else {
+ result += `${key}=${params[key]}&`;
+ }
+ }
+ }
+ return result.slice(0, -1);
+}
+export function index(params, isLoading = false) {
+ return request({
+ method: "get",
+ url: "/api/admin/course-content-check/index",
+ params,
+ paramsSerializer: customParamsSerializer,
+ isLoading
+ })
+}
+
+export function show(params, isLoading = true) {
+ return request({
+ method: "get",
+ url: "/api/admin/course-content-check/show",
+ params,
+ isLoading
+ })
+}
+
+export function save(data) {
+ return request({
+ method: "post",
+ url: "/api/admin/course-content-check/save",
+ data
+ })
+}
+
+export function destroy(params) {
+ return request({
+ method: "get",
+ url: "/api/admin/course-content-check/destroy",
+ params
+ })
+}
diff --git a/src/mixin/selectMixin.js b/src/mixin/selectMixin.js
index 59ae258..b151764 100644
--- a/src/mixin/selectMixin.js
+++ b/src/mixin/selectMixin.js
@@ -197,4 +197,4 @@ export default {
methods: {
},
-};
+};
diff --git a/src/views/course/components/editClass.vue b/src/views/course/components/editClass.vue
index 57d3eac..c93a5dc 100644
--- a/src/views/course/components/editClass.vue
+++ b/src/views/course/components/editClass.vue
@@ -78,7 +78,7 @@
-
+
diff --git a/src/views/courseQr/components/signList.vue b/src/views/courseQr/components/signList.vue
new file mode 100644
index 0000000..ec8f830
--- /dev/null
+++ b/src/views/courseQr/components/signList.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
课程信息
+
+
+ 课程名称:
+ {{ courseInfo.name }}
+
+
+ 开始时间:
+ {{ courseInfo.start_date }}
+
+
+ 结束时间:
+ {{ courseInfo.end_date }}
+
+
+
+
+
+
+
课表信息
+
+
+ 主题:
+ {{ scheduleInfo.theme }}
+
+
+ 时间:
+ {{ scheduleInfo.date }} - {{ scheduleInfo.period }}
+
+
+ 地点:
+ {{ scheduleInfo.address }}
+
+
+ 主讲:
+ {{ scheduleInfo.teacher.name }}
+
+
+
+
+
+
+
查询条件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+ 重置
+
+
+ 导出
+
+
+
+
+
+
+
+
签到记录
+ 已签到{{ course_content_check_count }}人,未签到{{ course_content_check_count_no }}人
+
+
+
+
+
+
+
+
+
diff --git a/src/views/courseQr/index.vue b/src/views/courseQr/index.vue
index c800c6d..b0babb5 100644
--- a/src/views/courseQr/index.vue
+++ b/src/views/courseQr/index.vue
@@ -95,7 +95,7 @@
- {{ is_arrange === 0 ? selectedCourse.name : selectedCourse.course.name }}
+ {{ is_arrange === 0 ? (selectedCourse && selectedCourse.name) : (selectedCourse && selectedCourse.course && selectedCourse.course.name) }}
![]()
课表信息
- 课程名称:{{ selectedCourse.name }}
+ 课程名称:{{ selectedCourse && selectedCourse.name }}
- 开始时间:{{ selectedCourse.start_date }}
+ 开始时间:{{ selectedCourse && selectedCourse.start_date }}
- 结束时间:{{ selectedCourse.end_date }}
+ 结束时间:{{ selectedCourse && selectedCourse.end_date }}
- 主题:{{ selectedCourse.theme }}
+ 主题:{{ selectedCourse && selectedCourse.theme }}
- 时间:{{ selectedCourse.date }} -
- {{ selectedCourse.period }}
+ 时间:{{ selectedCourse && selectedCourse.date }} -
+ {{ selectedCourse && selectedCourse.period }}
- 地点:{{ selectedCourse.address }}
+ 地点:{{ selectedCourse && selectedCourse.address }}
主讲:{{
- selectedCourse.teacher ? selectedCourse.teacher.name : ""
+ selectedCourse && selectedCourse.teacher ? selectedCourse.teacher.name : ""
}}
- 签到地点:{{ selectedCourse.address_detail || '未设置' }}
+ 签到地点:{{ selectedCourse && (selectedCourse.address_detail || '未设置') }}
@@ -145,6 +145,13 @@
@click="downloadQR"
>下载二维码
+
查看签到记录
@@ -164,6 +171,13 @@
+
@@ -175,12 +189,14 @@ import {
} from "@/api/course/courseContent.js";
import editClass from "@/views/course/components/editClass.vue";
import addCourse from "@/views/course/components/addCourse.vue";
+import signList from "@/views/courseQr/components/signList.vue";
import { index as teacherIndex } from "@/api/info/teachers.js";
export default {
name: "CourseQr",
components: {
editClass,
addCourse,
+ signList,
},
data() {
return {
@@ -272,6 +288,8 @@ export default {
this.course_id = "";
this.course_date = "";
this.courseContentList = [];
+ this.selectedCourse = null;
+ this.qrImgUrl = "";
this.getCourse(e);
},
async getCourse() {
@@ -281,13 +299,17 @@ export default {
filter: [
{
key: "course_status",
- op: "eq",
- value: 10,
+ op: "in",
+ value: '10,20,30',
},
{
key: "is_arrange",
op: "eq",
value: this.is_arrange ? this.is_arrange : 0,
+ },{
+ key: "is_virtual",
+ op: "eq",
+ value: 0,
},
],
});
@@ -370,8 +392,8 @@ export default {
const link = document.createElement("a");
link.href = this.qrImgUrl;
const fileName = this.is_arrange === 0
- ? `${this.selectedCourse.name}-签到二维码.png`
- : `${this.selectedCourse.theme}-签到二维码.png`;
+ ? `${this.selectedCourse && this.selectedCourse.name}-签到二维码.png`
+ : `${this.selectedCourse && this.selectedCourse.theme}-签到二维码.png`;
link.download = fileName;
link.target = "_blank";
link.click();
@@ -418,6 +440,15 @@ export default {
}
});
},
+
+ // 显示签到记录
+ showSignList() {
+ if (!this.selectedCourse) {
+ this.$message.warning('请先选择课程或课表');
+ return;
+ }
+ this.$refs.signList.show();
+ },
},
computed: {},
};
diff --git a/src/views/student/search.vue b/src/views/student/search.vue
index a02150b..b2e7cfe 100644
--- a/src/views/student/search.vue
+++ b/src/views/student/search.vue
@@ -660,4 +660,4 @@
}
}
-
+
\ No newline at end of file
diff --git a/vue.config.js b/vue.config.js
index 0ed7363..90cdd01 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -28,6 +28,7 @@ module.exports = {
*/
publicPath: process.env.ENV === 'staging' ? '/admin' : '/admin',
outputDir: '/Users/mac/Documents/朗业/2025/s-苏州科技商学院/wx.sstbc.com/public/admin',
+ // outputDir: '/Users/mac/Documents/朗业/2024/s-苏州科技商学院/wx.sstbc.com/public/admin',
assetsDir: 'static',
css: {
loaderOptions: { // 向 CSS 相关的 loader 传递选项
@@ -63,7 +64,7 @@ module.exports = {
pathRewrite: {
['^' + process.env.VUE_APP_PRO_API]: process.env.VUE_APP_PRO_API
}
- },
+ }
}
},
configureWebpack: {