From 4e55f9b8826dc96a6727ac45e809d982215daadb Mon Sep 17 00:00:00 2001
From: lion <120344285@qq.com>
Date: Mon, 14 Jul 2025 13:58:26 +0800
Subject: [PATCH] survey
---
src/api/calendars/index.js | 60 ++++
src/views/calendar/components/addCalendar.vue | 321 ++++++++++++++++++
src/views/calendar/index.vue | 116 ++-----
src/views/survey/index.vue | 29 +-
4 files changed, 443 insertions(+), 83 deletions(-)
create mode 100644 src/api/calendars/index.js
create mode 100644 src/views/calendar/components/addCalendar.vue
diff --git a/src/api/calendars/index.js b/src/api/calendars/index.js
new file mode 100644
index 0000000..1f5b054
--- /dev/null
+++ b/src/api/calendars/index.js
@@ -0,0 +1,60 @@
+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/calendars/index",
+ params,
+ paramsSerializer: customParamsSerializer,
+ isLoading
+ })
+}
+
+export function show(params, isLoading = true) {
+ return request({
+ method: "get",
+ url: "/api/admin/calendars/show",
+ params,
+ isLoading
+ })
+}
+
+
+export function save(data) {
+ return request({
+ method: "post",
+ url: "/api/admin/calendars/save",
+ data
+ })
+}
+
+export function destroy(params) {
+ return request({
+ method: "get",
+ url: "/api/admin/calendars/destroy",
+ params
+ })
+}
+
+
+
diff --git a/src/views/calendar/components/addCalendar.vue b/src/views/calendar/components/addCalendar.vue
new file mode 100644
index 0000000..3a4315a
--- /dev/null
+++ b/src/views/calendar/components/addCalendar.vue
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+ *日程类型:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/calendar/index.vue b/src/views/calendar/index.vue
index 39303f0..637e572 100644
--- a/src/views/calendar/index.vue
+++ b/src/views/calendar/index.vue
@@ -25,7 +25,7 @@
@click="fetchData">拉取并关联
新建日历事件
+ @click="openCreateModal('add')">新建日历事件
@@ -55,75 +55,14 @@
style="margin-left:8px;">到期后:{{ expireText(ev.expire) }}
- 编辑
+ 编辑
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 保存
-
-
-
-
-
-
{{ eventDetail.title }}
-
{{ typeText(eventDetail.className) }}
-
- {{ eventDetail.start | formatDateTime }} ~
- {{ eventDetail.end | formatDateTime }}
-
-
{{ eventDetail.location }}
-
{{ eventDetail.teacher }}
-
{{ eventDetail.description }}
-
- 到期后:{{ expireText(eventDetail.expire) }}
-
-
-
- 关闭
-
-
+
@@ -177,8 +116,15 @@
teacher: '创业导师团',
description: '创新创业实战训练'
}]
- };
- export default {
+ };
+ import addCalendar from "./components/addCalendar.vue"
+ import {
+ index
+ } from "@/api/calendars/index.js"
+ export default {
+ components:{
+ addCalendar
+ },
data() {
return {
dataType: 'course',
@@ -213,15 +159,29 @@
const evDate = new Date(ev.start);
return evDate.getMonth() === month && evDate.getFullYear() === year;
});
+ },
+ selectMonth(){
+ console.log(this.calendarDate)
+ const now = this.calendarDate instanceof Date ? this.calendarDate : new Date(this.calendarDate);
+ const month = now.getMonth()+1<10?'0'+(now.getMonth()+1):now.getMonth()+1;
+ const year = now.getFullYear();
+ return year+'-'+month;
}
},
watch: {
dataType: 'onTypeChange'
},
created() {
- this.onTypeChange();
+ this.onTypeChange();
+ this.getList()
},
- methods: {
+ methods: {
+ async getList(){
+ const res = await index({
+ month:this.selectMonth
+ })
+ },
+
onTypeChange() {
this.dataList = mockData[this.dataType] || [];
this.dataId = '';
@@ -252,20 +212,12 @@
});
}
},
- openCreateModal() {
- this.modalTitle = '新建事件';
- this.modalForm = {
- type: 'course',
- title: '',
- start: '',
- end: '',
- location: '',
- teacher: '',
- description: '',
- expire: 'none'
- };
- this.editingIndex = null;
- this.modalVisible = true;
+ openCreateModal(type,id) {
+ if(id){
+ this.$refs.addCalendar.id = id
+ }
+ this.$refs.addCalendar.type = type
+ this.$refs.addCalendar.isShow = true
},
saveEvent() {
if (!this.modalForm.title || !this.modalForm.start || !this.modalForm.end) {
diff --git a/src/views/survey/index.vue b/src/views/survey/index.vue
index f0b25e1..668f48a 100644
--- a/src/views/survey/index.vue
+++ b/src/views/survey/index.vue
@@ -209,7 +209,34 @@
},
viewResults(survey) {
- this.resultsSurveyData = survey;
+ this.resultsSurveyData = {
+ id: 1,
+ title: '问卷1',
+ description: '请对本次智能制造专题课程进行评价和反馈',
+ status: 'published',
+ type: 'feedback',
+ bindType: 'course',
+ bindCourse: '2025产业加速营 | 智能制造专题',
+ createTime: '2025-06-01 10:00',
+ deadline: '2025-06-10 23:59',
+ responses: 1,
+ questions: 6,
+ avgScore: 4.6,
+ questions: [
+ {
+ id: 101,
+ type: 'single',
+ title: '单选框',
+ options: ['单选1', '单选2',]
+ },
+ // {
+ // id: 102,
+ // type: 'rate',
+ // title: '请为本次课程打分',
+ // rateMax: 5
+ // }
+ ]
+ };
this.resultsDialogVisible = true;
},
previewSurvey(survey) {