From 306328631a08962c887c552f8a933bb63a91e105 Mon Sep 17 00:00:00 2001 From: "2090205686@qq.com" Date: Fri, 6 Jun 2025 19:00:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E4=B8=AD=E5=BF=83=E7=9A=84?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=92=8C=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=AF=B9=E6=8E=A5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- src/api/common.js | 10 + src/api/goods/info.js | 58 +- src/assets/styles/custom.scss | 16 + src/components/myUploadImage.vue | 2 +- src/components/myUploadVideo.vue | 88 ++- src/components/tableComponent.vue | 17 +- src/router/index.js | 14 +- .../index.vue} | 0 .../goods/{ => goodsManage}/addGoods.vue | 243 ++++-- src/views/goods/goodsManage/editGoods.vue | 699 ++++++++++++++++++ .../index.vue} | 34 +- 12 files changed, 1026 insertions(+), 157 deletions(-) create mode 100644 src/api/common.js rename src/views/goods/{goodsCategory.vue => goodsCategory/index.vue} (100%) rename src/views/goods/{ => goodsManage}/addGoods.vue (67%) create mode 100644 src/views/goods/goodsManage/editGoods.vue rename src/views/goods/{goodsManage.vue => goodsManage/index.vue} (92%) diff --git a/.env.development b/.env.development index 84a632c..5bbd0a4 100644 --- a/.env.development +++ b/.env.development @@ -5,5 +5,5 @@ VITE_APP_TITLE = 运营云后台管理系统 VITE_APP_ENV = 'development' # 开发环境 -VITE_APP_BASE_API = 'http://192.168.18.151:8080' +VITE_APP_BASE_API = 'http://192.168.18.99:8080' VITE_APP_PLATFORM = 'http://localhost:9000/platform' \ No newline at end of file diff --git a/src/api/common.js b/src/api/common.js new file mode 100644 index 0000000..fc80f79 --- /dev/null +++ b/src/api/common.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +//云南省所有区域信息 +export function getRegion(code) { + let codeVal = code ? code : '530000'; + return request('/apis/system/area/region?areaCode=' + codeVal, { + method: 'GET', + }); +} + diff --git a/src/api/goods/info.js b/src/api/goods/info.js index 861fc76..46bbe52 100644 --- a/src/api/goods/info.js +++ b/src/api/goods/info.js @@ -2,7 +2,6 @@ import request from '@/utils/request' // 获取商品管理列表 export function getGoodManageInfo(query) { - console.log(query) return request({ url: '/goods/goodInfoManage/getGoodManage', method: 'get', @@ -12,7 +11,6 @@ export function getGoodManageInfo(query) { // 获取商品分类列表 export function getGoodType(query) { - console.log(query) return request({ url: '/goods/goodInfoManage/goodType', method: 'get', @@ -20,44 +18,52 @@ export function getGoodType(query) { }) } - - - - - - - - -// 查询岗位详细 -export function getPost(postId) { +// 新商品发布 +export function goodAdd(data) { return request({ - url: '/system/post/' + postId, - method: 'get' + url: '/goods/goodInfoManage/goodSave', + method: 'post', + data: data }) } - -// 新增岗位 -export function addPost(data) { +// 编辑商品发布 +export function goodEdit(data) { return request({ - url: '/system/post', + url: '/goods/goodInfoManage/goodEdit', + method: 'put', + data: data + }) +} +// 商品删除 +export function goodDelete(data) { + return request({ + url: '/goods/business/category/remove', method: 'post', data: data }) } -// 修改岗位 -export function updatePost(data) { +// 商品上下架 +export function goodUpAndDown(data) { return request({ - url: '/system/post', - method: 'put', + url: '/goods/goodInfoManage/goodEdit', + method: 'post', data: data }) } -// 删除岗位 -export function delPost(postId) { +// 获取商品信息(id) +export function getGoodInfo(id) { return request({ - url: '/system/post/' + postId, - method: 'delete' + url: '/goods/goodInfoManage/getGoodInfo/' + id, + method: 'get' }) } + +// 获取商品优惠信息配置项 +export function getActiveInfos() { + return request({ + url: '/goods/goodInfoManage/getActiveInfos', + method: 'get' + }) +} \ No newline at end of file diff --git a/src/assets/styles/custom.scss b/src/assets/styles/custom.scss index f466efa..6d508e8 100644 --- a/src/assets/styles/custom.scss +++ b/src/assets/styles/custom.scss @@ -266,6 +266,15 @@ .attr-input { width: 120px; } + .attr-clomn { + width: 160px; + } + .attr-clomn200 { + width: 160px; + } + .attr-clomn220 { + width: 220px; + } .attr-box { padding: 16px 16px 6px 16px; border-radius: 6px; @@ -273,3 +282,10 @@ } } // 新增商品页面-结束 + +.flex-left-top { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: flex-start; +} diff --git a/src/components/myUploadImage.vue b/src/components/myUploadImage.vue index 435908c..5501de9 100644 --- a/src/components/myUploadImage.vue +++ b/src/components/myUploadImage.vue @@ -62,7 +62,7 @@ const props = defineProps({ // 上传接口地址 action: { type: String, - default: "/uploadApis/file/upload" + default: "/uploadApis/upload" }, // 上传携带的参数 data: { diff --git a/src/components/myUploadVideo.vue b/src/components/myUploadVideo.vue index 3ccac7d..37e4418 100644 --- a/src/components/myUploadVideo.vue +++ b/src/components/myUploadVideo.vue @@ -1,37 +1,24 @@ - diff --git a/src/views/goods/goodsManage/editGoods.vue b/src/views/goods/goodsManage/editGoods.vue new file mode 100644 index 0000000..2922214 --- /dev/null +++ b/src/views/goods/goodsManage/editGoods.vue @@ -0,0 +1,699 @@ + + + diff --git a/src/views/goods/goodsManage.vue b/src/views/goods/goodsManage/index.vue similarity index 92% rename from src/views/goods/goodsManage.vue rename to src/views/goods/goodsManage/index.vue index 5b5cf0b..acd2463 100644 --- a/src/views/goods/goodsManage.vue +++ b/src/views/goods/goodsManage/index.vue @@ -38,7 +38,7 @@
批量删除 - + 新增商品
@@ -105,8 +105,11 @@ import { ref, reactive, computed, onMounted, onBeforeUnmount } from "vue"; import tableComponent from "@/components/tableComponent.vue"; import Mock from "mockjs"; -import { getGoodManageInfo, getGoodType } from "@/api/goods/info"; -import { ca } from "element-plus/es/locales.mjs"; +import { getGoodManageInfo, getGoodType, goodDelete } from "@/api/goods/info"; +import { id } from "element-plus/es/locales.mjs"; +import { ElMessage } from 'element-plus' +const route = useRoute() +const router = useRouter() const formInline = reactive({ goodName: "", @@ -152,7 +155,7 @@ const tabChange = (Event) => { } else if (Event.index == "1") { // 请求已上架 formInline.type = "2"; - } else if (Event.index == "2"){ + } else if (Event.index == "2") { // 请求已下架 formInline.type = "3"; } @@ -211,6 +214,7 @@ const generateMockData = () => { return Mock.mock({ "list|10": [ { + "id|+1": 10000, "goodId|+1": 10000, "sort|+1": 1, goodUrl: " @image", //商品图片 @@ -220,7 +224,7 @@ const generateMockData = () => { salesVolume: "@integer(1000, 20000)", //销量 pageView: Mock.mock("@id").toString().slice(0, 6), //浏览量 stock: "@integer(5000, 90000)", //库存 - isListed: '@pick(["上架", "下架"])', //状态 + isListed: '@pick([0, 1, 2, 3, 4])', //状态 ordersNums: "@integer(10, 200)", }, ], @@ -229,8 +233,11 @@ const generateMockData = () => { // 加载数据 const loadData = async () => { tableLoading.value = true; + // 测试 // tableData.value = generateMockData(); // tableTotal.value = tableData.value.length; + // console.log(tableData.value); + try { let response = await getGoodManageInfo(formInline); console.log(response); @@ -277,6 +284,11 @@ const toDownload = () => { const handleEdit = (row) => { nowClickRow.value = row; console.log("要编辑的行:", row); + // 跳转路由并携带参数,行数据,和query的值edit + router.push({ + path: "/goods/goodsManage/editGoods", + query: { goodId: row.goodId } + }) }; // 删除操作 const handleDelete = (row) => { @@ -284,8 +296,16 @@ const handleDelete = (row) => { console.log("要删除的行:", row); }; // 批量删除 -const batchDelete = () => { - console.log("要删除的行:", selectedIds.value); +const batchDelete = async() => { + console.log("要删除的行:", selectedIds.value.join(",")); + ElMessage.success("删除成功"); + // let res = await goodDelete({id: selectedIds.value}); + // if (res.code == 200) { + // ElMessage.success("删除成功"); + // loadData(); + // } else { + // ElMessage.error("删除失败"); + // } }; const titleRef = ref(null);