From 5eb33d4f7e7ebeebed3466774ddd61f6db27c15a Mon Sep 17 00:00:00 2001 From: lcc Date: Fri, 16 May 2025 00:59:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BD=A6=E5=9E=8B=E4=BA=A7?= =?UTF-8?q?=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/api/car/product/index.js | 62 ++++ .../src/components/RegionsSelect/load-data.js | 5 +- admin/src/components/UploadImg/index.vue | 108 +++++++ admin/src/layout/components/header-tools.vue | 8 +- .../src/views/car/product/components/edit.vue | 248 ++++++++++++++++ admin/src/views/car/product/index.vue | 266 ++++++++++++++++++ 6 files changed, 693 insertions(+), 4 deletions(-) create mode 100644 admin/src/api/car/product/index.js create mode 100644 admin/src/components/UploadImg/index.vue create mode 100644 admin/src/views/car/product/components/edit.vue create mode 100644 admin/src/views/car/product/index.vue diff --git a/admin/src/api/car/product/index.js b/admin/src/api/car/product/index.js new file mode 100644 index 0000000..6c365dc --- /dev/null +++ b/admin/src/api/car/product/index.js @@ -0,0 +1,62 @@ +import request from '@/utils/request'; + +/** + * 分页查询专题 + * @param params 查询条件 + */ +export async function pageProduct(params) { + const res = await request.get('/car/product/page', { + params + }); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * @param data + */ +export async function addProduct(data) { + const res = await request.post('/car/product', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * @param data + */ +export async function updateProduct(data) { + const res = await request.put('/car/product', data); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +export async function updateProductStatus(id, status) { + const res = await request.put('/car/product/status', { + id, + status + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除 + * @param ids id集合 + */ +export async function removeProduct(ids) { + const res = await request.delete('/car/product/delete', { + data: { ids } + }); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/admin/src/components/RegionsSelect/load-data.js b/admin/src/components/RegionsSelect/load-data.js index 3e89e9a..2412469 100644 --- a/admin/src/components/RegionsSelect/load-data.js +++ b/admin/src/components/RegionsSelect/load-data.js @@ -1,5 +1,6 @@ import request from '@/utils/request'; -const BASE_URL = process.env.BASE_URL; +import { API_BASE_URL } from '@/config/setting'; +const BASE_URL = API_BASE_URL; let reqPromise; /** @@ -9,7 +10,7 @@ export function getRegionsData() { if (!reqPromise) { reqPromise = new Promise((resolve, reject) => { request - .get(BASE_URL + 'json/regions-data.json', { + .get(BASE_URL + '/common/regionsData', { baseURL: '' }) .then((res) => { diff --git a/admin/src/components/UploadImg/index.vue b/admin/src/components/UploadImg/index.vue new file mode 100644 index 0000000..62bd53d --- /dev/null +++ b/admin/src/components/UploadImg/index.vue @@ -0,0 +1,108 @@ + + + + diff --git a/admin/src/layout/components/header-tools.vue b/admin/src/layout/components/header-tools.vue index 1857305..e338ba4 100644 --- a/admin/src/layout/components/header-tools.vue +++ b/admin/src/layout/components/header-tools.vue @@ -10,13 +10,17 @@ + +
@@ -59,12 +63,12 @@ // import HeaderNotice from './header-notice.vue'; import PasswordModal from './password-modal.vue'; import SettingDrawer from './setting-drawer.vue'; - import I18nIcon from './i18n-icon.vue'; + // import I18nIcon from './i18n-icon.vue'; import { logout } from '@/utils/page-tab-util'; export default { // components: { HeaderNotice, PasswordModal, SettingDrawer, I18nIcon }, - components: { PasswordModal, SettingDrawer, I18nIcon }, + components: { PasswordModal, SettingDrawer }, props: { // 是否是全屏 fullscreen: Boolean diff --git a/admin/src/views/car/product/components/edit.vue b/admin/src/views/car/product/components/edit.vue new file mode 100644 index 0000000..db27517 --- /dev/null +++ b/admin/src/views/car/product/components/edit.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/admin/src/views/car/product/index.vue b/admin/src/views/car/product/index.vue new file mode 100644 index 0000000..836fb80 --- /dev/null +++ b/admin/src/views/car/product/index.vue @@ -0,0 +1,266 @@ + + +