From 09304e1ca42f793732e167a1f4bf510a4e5841d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=98=B1=E8=BE=BE?= Date: Mon, 17 Mar 2025 12:22:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor(home):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BB=84=E4=BB=B6=E5=92=8C=20API=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 consoleSurveys 和 useTemplate API 接口 - 优化 create-survey 组件,支持创建新页面和使用模板 - 更新 last-survey 和 market 组件,使用新的 API 接口 -重构 home 页面,统一处理用户信息获取和错误处理 - 更新类型声明,添加 Element Plus 和 Vant 组件 --- components.d.ts | 11 +++ src/api/home/index.js | 16 ++++ src/assets/css/public.scss | 2 +- src/layouts/index.vue | 2 +- src/request/axios/index.ts | 2 +- src/utils/request.js | 2 +- .../Design/components/Questions/Choice.vue | 31 +++++--- src/views/Home/Index.vue | 34 ++++---- .../Home/components/CreateSurvey/Index.vue | 77 ++++++++++++++----- .../Home/components/LastSurvey/Index.vue | 6 +- src/views/Home/components/Market/Index.vue | 31 ++++---- 11 files changed, 145 insertions(+), 69 deletions(-) diff --git a/components.d.ts b/components.d.ts index a36d716..bdaf31a 100644 --- a/components.d.ts +++ b/components.d.ts @@ -8,9 +8,15 @@ export {} declare module 'vue' { export interface GlobalComponents { Contenteditable: typeof import('./src/components/contenteditable.vue')['default'] + ElButton: typeof import('element-plus/es')['ElButton'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] ElInput: typeof import('element-plus/es')['ElInput'] ElOption: typeof import('element-plus/es')['ElOption'] ElSelect: typeof import('element-plus/es')['ElSelect'] + ElSpace: typeof import('element-plus/es')['ElSpace'] + ElText: typeof import('element-plus/es')['ElText'] RichText: typeof import('./src/components/RichText.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] @@ -23,6 +29,8 @@ declare module 'vue' { VanCol: typeof import('vant/es')['Col'] VanDivider: typeof import('vant/es')['Divider'] VanField: typeof import('vant/es')['Field'] + VanGrid: typeof import('vant/es')['Grid'] + VanGridItem: typeof import('vant/es')['GridItem'] VanIcon: typeof import('vant/es')['Icon'] VanNavBar: typeof import('vant/es')['NavBar'] VanPicker: typeof import('vant/es')['Picker'] @@ -30,9 +38,12 @@ declare module 'vue' { VanRadio: typeof import('vant/es')['Radio'] VanRadioGroup: typeof import('vant/es')['RadioGroup'] VanRow: typeof import('vant/es')['Row'] + VanSearch: typeof import('vant/es')['Search'] VanStepper: typeof import('vant/es')['Stepper'] VanSwitch: typeof import('vant/es')['Switch'] VanTab: typeof import('vant/es')['Tab'] + VanTabbar: typeof import('vant/es')['Tabbar'] + VanTabbarItem: typeof import('vant/es')['TabbarItem'] VanTabs: typeof import('vant/es')['Tabs'] YLCascader: typeof import('./src/components/YLCascader.vue')['default'] YLInput: typeof import('./src/components/YLInput.vue')['default'] diff --git a/src/api/home/index.js b/src/api/home/index.js index 9c200c1..c4c979f 100644 --- a/src/api/home/index.js +++ b/src/api/home/index.js @@ -8,6 +8,14 @@ export function getQuestionList(params) { }); } export function consoleSurveys(params) { + return request({ + url: '/console/surveys', + method: 'post', + data: params + }); +} + +export function getSurveysPage(params) { return request({ url: '/console/surveys', method: 'get', @@ -29,3 +37,11 @@ export function getSurveyTemplates(params) { params }); } + +export function useTemplate(sn, params) { + return request({ + url: `console/templates/${sn}`, + method: 'post', + data: params + }); +} diff --git a/src/assets/css/public.scss b/src/assets/css/public.scss index 2e98915..cc802c0 100644 --- a/src/assets/css/public.scss +++ b/src/assets/css/public.scss @@ -1,6 +1,6 @@ .van-nav-bar { - padding-top: calc(var(--status-bar-height) + 15px) !important; z-index:999; + padding-top: calc(var(--status-bar-height) + 15px) !important; } .van-cell { diff --git a/src/layouts/index.vue b/src/layouts/index.vue index 25632e6..d615e4f 100644 --- a/src/layouts/index.vue +++ b/src/layouts/index.vue @@ -19,7 +19,7 @@ import appBridge from '@/assets/js/appBridge'; const route = useRoute(); const router = useRouter(); -function goBack () { +function goBack() { if (window.history.length > 1 && route.meta.title !== '伊调研') { router.go(-1); } else { diff --git a/src/request/axios/index.ts b/src/request/axios/index.ts index a04fc91..bded0ab 100644 --- a/src/request/axios/index.ts +++ b/src/request/axios/index.ts @@ -21,7 +21,7 @@ service.interceptors.request.use( config.headers.Accept = 'application/json'; } config.headers.Authorization = `${localStorage.getItem('plantToken')}`; - config.headers.Source = 1 + config.headers.Source = 1; // if (!config.headers.remoteIp) { // config.baseURL += '/api'; // } diff --git a/src/utils/request.js b/src/utils/request.js index bfacc4c..9f27953 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -26,7 +26,7 @@ service.interceptors.request.use( config.headers.Accept = 'application/json'; } config.headers.Authorization = `${localStorage.getItem('plantToken')}`; - config.headers.Source = 1 + config.headers.Source = 1; // if (!config.headers.remoteIp) { // config.baseURL += '/api'; // } diff --git a/src/views/Design/components/Questions/Choice.vue b/src/views/Design/components/Questions/Choice.vue index 3a315b3..a9eb239 100644 --- a/src/views/Design/components/Questions/Choice.vue +++ b/src/views/Design/components/Questions/Choice.vue @@ -1,6 +1,8 @@