From afeb9e10f6f39e690d7be036c9990781d33da9e5 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Tue, 30 Jul 2024 17:48:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=BE=E7=A8=8B=E6=8A=A5?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/course/form.js | 57 ++ src/components/XyDialog/index.vue | 15 +- src/store/modules/form.js | 1 + src/views/course/components/addCourse.vue | 505 ++++++++++-------- src/views/course/components/applyForm.vue | 257 +++++++++ src/views/course/components/editPane.vue | 267 +++++++++ src/views/system/components/formEditor.vue | 3 + .../system/components/formSlotRender.vue | 8 +- 8 files changed, 880 insertions(+), 233 deletions(-) create mode 100644 src/api/course/form.js create mode 100644 src/views/course/components/applyForm.vue create mode 100644 src/views/course/components/editPane.vue diff --git a/src/api/course/form.js b/src/api/course/form.js new file mode 100644 index 0000000..2deacc1 --- /dev/null +++ b/src/api/course/form.js @@ -0,0 +1,57 @@ +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-forms/index", + params, + paramsSerializer: customParamsSerializer, + isLoading + }) +} + +export function show(params, isLoading = true) { + return request({ + method: "get", + url: "/api/admin/course-forms/show", + params, + isLoading + }) +} + +export function save(data) { + return request({ + method: "post", + url: "/api/admin/course-forms/save", + data + }) +} + +export function destroy(params) { + return request({ + method: "get", + url: "/api/admin/course-forms/destroy", + params + }) +} + + diff --git a/src/components/XyDialog/index.vue b/src/components/XyDialog/index.vue index 940cf22..36e089d 100644 --- a/src/components/XyDialog/index.vue +++ b/src/components/XyDialog/index.vue @@ -87,18 +87,29 @@ export default { } this.$refs['elForm'].resetFields() }, - submit(){ + submit(ischeck){ + // ischeck 自定义提交验证 if(this.type === 'normal'){ return } this.$refs['elForm'].validate().then(res=>{ - if(res)this.$emit('submit') + if(res){ + if(ischeck){ + this.$emit('mysubmit',true) + }else{ + this.$emit('submit') + } + } }).catch(err => { + console.log("456") this.$Message.warning({ content: "请填写完整信息", background: true, duration: 1 }) + if(ischeck){ + this.$emit('mysubmit',false) + } }) }, okClick(){ diff --git a/src/store/modules/form.js b/src/store/modules/form.js index 6f274c7..bb9020d 100644 --- a/src/store/modules/form.js +++ b/src/store/modules/form.js @@ -150,6 +150,7 @@ const actions = { state.formList.forEach((item,index) => { item.sort = index + 1 }) + console.log("state.formList",state.formList) res.fields = state.formList save(res).then(res1 => { Message({ diff --git a/src/views/course/components/addCourse.vue b/src/views/course/components/addCourse.vue index 52a4107..f98b977 100644 --- a/src/views/course/components/addCourse.vue +++ b/src/views/course/components/addCourse.vue @@ -1,8 +1,21 @@