diff --git a/.env.production b/.env.production index 1149ceb..4082428 100644 --- a/.env.production +++ b/.env.production @@ -2,5 +2,10 @@ 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://suzhoukeji-test.ali251.langye.net +VUE_APP_UPLOAD_API=https://suzhoukeji-test.ali251.langye.net/api/admin/upload-file + +#VUE_APP_BASE_API = https://wx.sstbc.com +#VUE_APP_UPLOAD_API = https://wx.sstbc.com/api/admin/upload-file + diff --git a/src/api/survey/evaluations.js b/src/api/survey/evaluations.js new file mode 100644 index 0000000..03d5506 --- /dev/null +++ b/src/api/survey/evaluations.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/course-content-evaluations/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/course-content-evaluations/show", + params, + isLoading + }) +} + + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/course-content-evaluations/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/course-content-evaluations/destroy", + params + }) +} + + + diff --git a/src/api/survey/index.js b/src/api/survey/index.js new file mode 100644 index 0000000..63c0c54 --- /dev/null +++ b/src/api/survey/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/course-content-evaluation-ask/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/course-content-evaluation-ask/show", + params, + isLoading + }) +} + + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/course-content-evaluation-ask/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/course-content-evaluation-ask/destroy", + params + }) +} + + + diff --git a/src/views/courseQr/index.vue b/src/views/courseQr/index.vue new file mode 100644 index 0000000..6c12fb8 --- /dev/null +++ b/src/views/courseQr/index.vue @@ -0,0 +1,209 @@ + + + + + + + 课程二维码管理 + + + + + + + + 选择课程 + + + + {{ course.name }} + + {{ course.time }} + {{ course.location }} + {{ course.teacher }} + + + + + + + + + 课程签到二维码 + + + + 请选择课程生成二维码 + 选择左侧课程后,将自动生成对应的签到二维码 + + + + {{ selectedCourse.name }} + + + + + 课程信息 + + 时间:{{ selectedCourse.time }} + 地点:{{ selectedCourse.location }} + 主讲:{{ selectedCourse.teacher }} + 类型:{{ getTypeName(selectedCourse.type) }} + + + + 下载二维码 + 预览签到页 + 复制链接 + + + + 使用说明 + + 学员扫描此二维码可直接进入课程签到页面 + 二维码包含课程信息,自动识别对应课程 + 支持微信扫一扫 + 建议在课程开始前30分钟展示二维码 + 可下载二维码图片用于打印或分享 + + + + + + + + + + + diff --git a/src/views/survey/components/SurveyCreateDialog.vue b/src/views/survey/components/SurveyCreateDialog.vue index ec24817..4dd6e7a 100644 --- a/src/views/survey/components/SurveyCreateDialog.vue +++ b/src/views/survey/components/SurveyCreateDialog.vue @@ -64,21 +64,23 @@ export default { name: 'SurveyCreateDialog', components: { draggable }, props: { - visible: Boolean, surveyData: Object }, data() { return { + visible:false, + course_content_id:'', localSurvey: { title: '', description: '', questions: [] }, questionTypes: [ - { label: '单选题', value: 'single' }, - { label: '多选题', value: 'multi' }, + { label: '单选题', value: 'radio' }, + { label: '多选题', value: 'checkbox' }, { label: '文本题', value: 'text' }, - { label: '评分题', value: 'rate' } + { label: '评分题', value: 'number' }, + { label: '评分题', value: 'number' } ] } }, diff --git a/src/views/survey/components/SurveyCreateWizard.vue b/src/views/survey/components/SurveyCreateWizard.vue new file mode 100644 index 0000000..ce1c2c2 --- /dev/null +++ b/src/views/survey/components/SurveyCreateWizard.vue @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + *课程: + + + + + + + + + + + + + *课表: + + + + + + + + + + + + + *问卷标题: + + + + + + + + + + 问卷描述: + + + + + + + + + + + 问卷类型: + + + + + + + + + + + + + + 开始时间: + + + + + + + + + + + 截止时间: + + + + + + + + + + + + + : + + + + + + 编辑问卷问题 + 新增问卷问题 + + + 问卷问题详情 + + + + + + + + + + + + 上一步 + + 保存并下一步 + 保存待发布 + 完成并发布 + + + + + + + + 请确认问卷表单无误后再发布。 + + 取 消 + 确 定 + + + + + + + + + + diff --git a/src/views/survey/components/SurveyFillDialog.vue b/src/views/survey/components/SurveyFillDialog.vue index 715d37e..ef09c47 100644 --- a/src/views/survey/components/SurveyFillDialog.vue +++ b/src/views/survey/components/SurveyFillDialog.vue @@ -1,231 +1,308 @@ - - - - - - {{ surveyData.title }} - {{ surveyData.description }} - - {{ surveyData.createTime }} - {{ surveyData.deadline }} - - - - - - {{ idx+1 }} - {{ q.title }} - * - - - - - {{ opt }} - + + + + + + {{ surveyData.title }} + {{ surveyData.desc }} + + {{ surveyData.start_time }} + {{ surveyData.end_time }} + + + + + + {{ idx+1 }} + * + {{ q.name }} + + + + + + {{ opt.value }} + + + + + + {{ opt.value }} + + + + + + + + + + + + - - - {{ opt }} - - - - - - - - - - - - - - - - - - - {{ q.minLabel }} - - {{ q.maxLabel }} - - - - - - 提交 - 关闭 - - - - - - - - diff --git a/src/views/survey/components/applyForm.vue b/src/views/survey/components/applyForm.vue new file mode 100644 index 0000000..291ae52 --- /dev/null +++ b/src/views/survey/components/applyForm.vue @@ -0,0 +1,465 @@ + + + + + + + 创建问题 + + + + 完成并关闭 + + + + + + + + + + {{ item.name }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是否确认克隆{{hasCourseName}}的报名表单,克隆后将覆盖原有课程的报名表单,请谨慎操作。 + + 取 消 + 确 定 + + + + + + + + + + diff --git a/src/views/survey/components/editPane.vue b/src/views/survey/components/editPane.vue new file mode 100644 index 0000000..286cea5 --- /dev/null +++ b/src/views/survey/components/editPane.vue @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + 否 + 是 + + + + + + 键 + 值 + + + + + + + + + + + + + + + + + + 保存 + + 确定删除字段吗? + + 取消 + 确定 + + 删除 + + + + + + + + + + + + + diff --git a/src/views/survey/index.vue b/src/views/survey/index.vue index 32fea39..f0b25e1 100644 --- a/src/views/survey/index.vue +++ b/src/views/survey/index.vue @@ -1,575 +1,456 @@ - - - - - - - 调查问卷管理 - - - - - - - - - - - - - - - - - - - - - - 创建问卷 - - - - - - - - {{ survey.title }} - {{ statusText(survey.status) }} - - - - - 编辑 - 查看结果 - 复制 - 删除 - - - - - 创建时间:{{ survey.createTime }} - 截止时间:{{ survey.deadline }} - - - {{ survey.bindCourse }} - - - - - {{ survey.responses }} - 回复数 - - - {{ survey.questions.length }} - 题目数 - - - {{ survey.avgScore || '-' }} - 平均分 - - - - 发布 - 预览 - 分享 - 导出 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 取消 - 创建问卷 - - - - - - - - - - - - - -
选择左侧课程后,将自动生成对应的签到二维码
确定删除字段吗?