From 7ee6309073fdc9fd38979accabb733cee42cefaa Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 09 六月 2025 14:59:55 +0800 Subject: [PATCH] 商品api接口 --- config/api.js | 2 pages.json | 23 +++++ pages/goods-manager/goodsList/goodsList.vue | 32 ++++++- pages/goods-manager/addGoods/addGoods.vue | 54 ++++++++++--- api/goods.js | 103 +++++++++++++++++++++++-- 5 files changed, 184 insertions(+), 30 deletions(-) diff --git a/api/goods.js b/api/goods.js index bc8ae30..8d33982 100644 --- a/api/goods.js +++ b/api/goods.js @@ -3,11 +3,12 @@ */ import { http, Method } from "@/utils/request.js"; +import api from "@/config/api.js"; /** * 浠嶦S涓幏鍙栫浉鍏冲晢鍝佸搧鐗屽悕绉帮紝鍒嗙被鍚嶇О鍙婂睘鎬� */ - export function getGoodsMessage(goodsId) { +export function getGoodsMessage(goodsId) { return http.request({ url: `/goods/goods/get/${goodsId}`, method: Method.GET, @@ -30,7 +31,7 @@ * @param skuId 鍟嗗搧ID * @returns {AxiosPromise} */ - export function getGoods(skuId, goodsId) { +export function getGoods(skuId, goodsId) { return http.request({ url: `/goods/goods/sku/${goodsId}/${skuId}`, method: Method.GET, @@ -41,7 +42,7 @@ * 鑾峰彇鍟嗗搧鍒嗛攢 * @param distributionId 鍟嗗搧鍒嗛攢ID */ - export function getGoodsDistribution(distributionId) { +export function getGoodsDistribution(distributionId) { return http.request({ url: `/distribution/distribution/bindingDistribution/${distributionId}`, method: Method.GET, @@ -200,10 +201,10 @@ /** * 鑾峰彇 灏忕▼搴忕爜 */ - export function getMpCode(params){ +export function getMpCode(params) { return http.request({ - url:`/passport/connect/miniProgram/mp/unlimited`, - method:Method.GET, + url: `/passport/connect/miniProgram/mp/unlimited`, + method: Method.GET, params }) } @@ -211,10 +212,94 @@ /** * 鏍规嵁shortlink 鑾峰彇椤甸潰鍙傛暟 */ - export function getMpScene(id){ +export function getMpScene(id) { return http.request({ - url:`/passport/connect/miniProgram/mp/unlimited/scene?id=${id}`, - method:Method.GET, + url: `/passport/connect/miniProgram/mp/unlimited/scene?id=${id}`, + method: Method.GET, }) } + +/** + * 鍗栧鍟嗗搧鍒楄〃 + * + */ +export function getStoreGoods(params) { + return http.request({ + url: api.store + '/goods/goods/list', + method: Method.GET, + needToken: true, + params + }) +} + +/** + * 鍗栧鍟嗗搧璇︽儏 + * + */ +export function getStoreGoodsInfo(id) { + return http.request({ + url: api.store + `/goods/goods/get/${id}`, + needToken: true, + method: Method.GET + }) +} + + +/** + * 鍒涘缓鍟嗗搧 + */ +export function createStoreGoods(params) { + return http.request({ + url: api.store + `/goods/goods/create`, + method: Method.POST, + needToken: true, + params, + }); +} + +/** + * 淇敼鍟嗗搧 + */ +export function updateStoreGoods(params) { + return http.request({ + url: api.store + +`/goods/goods/update/${params.id}`, + needToken: true, + method: Method.PUT, + params, + }); +} + + +/** + * 鍗栧鍟嗗搧鍒嗙被淇℃伅 + * + */ +export function getStoreGoodsCategory() { + return http.request({ + url: api.store + `/goods/category/all`, + needToken: true, + method: Method.GET + }) +} + +/** + * 鍗栧鍟嗗搧鍒嗙被淇℃伅 + * + */ +export function getStoreGoodsBrands(categoryId) { + return http.request({ + url: api.store + `/goods/category/${categoryId}/brands`, + needToken: true, + method: Method.GET + }) +} +export function getgoodsUnit() { + return http.request({ + url: api.store + `/goods/goodsUnit`, + needToken: true, + method: Method.GET, + params: { pageNumber: 1, pageSize: 200 } + }) +} + diff --git a/config/api.js b/config/api.js index 769e179..778e0d7 100644 --- a/config/api.js +++ b/config/api.js @@ -10,6 +10,7 @@ im: "http://127.0.0.1:8885", common: "http://127.0.0.1:8890", buyer: "http://127.0.0.1:8888", + store: "http://127.0.0.1:8889", // common: "http://192.168.0.113:8890", // buyer: "http://192.168.0.113:8888", // im: "http://192.168.0.113:8885", @@ -36,6 +37,7 @@ api.buyer += "/buyer"; api.common += "/common"; +api.store += "/store"; api.im += "/im"; export default { ...api, diff --git a/pages.json b/pages.json index 9bbcf07..8c0d19a 100644 --- a/pages.json +++ b/pages.json @@ -220,14 +220,33 @@ "style" : { "enablePullDownRefresh" : true, - "navigationBarTitleText" : "鍟嗗搧鍒楄〃" + "navigationBarTitleText" : "鍟嗗搧鍒楄〃", + "componentPlaceholder": { + "u-icon": "view", + "u-button": "view", + "u-form": "view", + "u-form-item": "view", + "u-input": "view", + "u-popup": "view", + "u-search": "view" + } } }, { "path" : "pages/goods-manager/addGoods/addGoods", "style" : { - "navigationBarTitleText" : "" + "enablePullDownRefresh" : true, + "navigationBarTitleText" : "鏂板鍟嗗搧", + "componentPlaceholder": { + "u-icon": "view", + "u-button": "view", + "u-form": "view", + "u-form-item": "view", + "u-input": "view", + "u-popup": "view", + "u-search": "view" + } } } diff --git a/pages/goods-manager/addGoods/addGoods.vue b/pages/goods-manager/addGoods/addGoods.vue index 0a13802..bcc7e93 100644 --- a/pages/goods-manager/addGoods/addGoods.vue +++ b/pages/goods-manager/addGoods/addGoods.vue @@ -4,9 +4,9 @@ <u-form :border-bottom="false" :model="form" ref="uForm" :error-type="['toast']" :rule="rules"> <u-form-item label="鍟嗗搧鍒嗙被" label-width="130" prop=""> - <div @click="showPicker"> - {{ form.___path || '璇烽�夋嫨鎵�鍦ㄥ湴鍖�' }} - </div> + <picker @change="bindCategoryChange" :value="index" :range="categoryArray"> + <view class="uni-input">{{categoryArray[index]}}</view> + </picker> </u-form-item> <u-form-item class="border" label="鍟嗗搧鍚嶇О" label-width="130" prop="name"> @@ -24,13 +24,13 @@ </u-form-item> <u-form-item label="鍟嗗搧鍝佺墝" label-width="130" prop=""> - <div @click="showPicker"> - {{ form.___path || '璇烽�夋嫨鎵�鍦ㄥ湴鍖�' }} + <div @click="showBrands"> + {{ form.___path || '璇烽�夋嫨鍝佺墝' }} </div> </u-form-item> <u-form-item label="璁¢噺鍗曚綅" label-width="130" prop="___path"> - <div @click="showPicker"> + <div @click="showUnit"> {{ form.___path || '璇烽�夋嫨鎵�鍦ㄥ湴鍖�' }} </div> </u-form-item> @@ -64,16 +64,19 @@ import UCheckboxGroup from '@/uview-components/uview-ui/components/u-checkbox-group/u-checkbox-group.vue'; import UCheckbox from '@/uview-components/uview-ui/components/u-checkbox/u-checkbox.vue'; import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue'; -import UActionSheet from '@/uview-components/uview-ui/components/u-action-sheet/u-action-sheet.vue'; import storage from "@/utils/storage.js"; +import * as API_GOODS from "@/api/goods.js"; export default { - components: { UForm, UFormItem, UInput, UUpload, UCheckboxGroup, UCheckbox, UIcon, UActionSheet }, + components: { UForm, UFormItem, UInput, UUpload, UCheckboxGroup, UCheckbox, UIcon }, data() { return { storage, - form: {} + form: {}, + categoryArray:[], + brandsArray:[], + unitArray:[] } }, methods: { @@ -86,17 +89,44 @@ }); this.form.images = images; }, + bindCategoryChange(){}, + bindBrandsChange(){}, + bindUnitChange(){}, + initCategory(){ + API_GOODS.getStoreGoodsCategory().then((res) => { + const params = res.data.result; + this.categoryArray = params + if(params.length>0){ + this.initBrands(params[0].id) + } + }); + }, + initBrands(categoryId){ + API_GOODS.getStoreGoodsBrands(categoryId).then((res) => { + const params = res.data.result; + this.brandsArray = params + }); + }, + initGoods(){ + API_GOODS.getgoodsUnit().then((res) => { + const params = res.data.result; + this.unitArray = params + }); + }, }, - + onShow() { + this.initGoods() + this.initCategory() + + }, onLoad(option) { uni.showLoading({ title: "鍔犺浇涓�", }); this.routerVal = option; - console.log(option); if (option.id) { - getGoodsDetail(option.id).then((res) => { + API_GOODS.getStoreGoodsInfo(option.id).then((res) => { const params = res.data.result; params.___path = params.consigneegoodsPath; this.$set(this, "form", params); diff --git a/pages/goods-manager/goodsList/goodsList.vue b/pages/goods-manager/goodsList/goodsList.vue index ec15364..69a0d94 100644 --- a/pages/goods-manager/goodsList/goodsList.vue +++ b/pages/goods-manager/goodsList/goodsList.vue @@ -58,6 +58,9 @@ <script> import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue'; + +import * as API_GOODS from "@/api/goods.js"; + export default { components: { UIcon }, data() { @@ -65,6 +68,10 @@ formData: { waterfall: false, // 甯冨眬鏂瑰悜鍒囨崲 status: 'loading', // 鍔犺浇鐘舵�� + }, + params: { + pageNumber: 1, + pageSize: 10, }, data: [ { @@ -94,16 +101,27 @@ tipShow: false // 鏄惁鏄剧ず椤堕儴鎻愮ず妗� }; }, - onLoad() { }, + onLoad() { + }, + onShow() { + if (this.$options.filters.tipsToLogin()) { + this.getGoodsList(); + } + }, methods: { - load(data, ended) { - if (ended) { - this.formData.status = 'noMore' - } + + getGoodsList() { + uni.showLoading(); + API_GOODS.getStoreGoods( + this.params.pageNumber, + this.params.pageSize + ).then((res) => { + this.data = res.data.result.records; + + if (this.$store.state.isShowToast) { uni.hideLoading() }; + }); }, addGoods(id) { - console.log("addGoods:" + id); - uni.navigateTo({ url: `/pages/goods-manager/addGoods/addGoods${id ? "?id=" + id : ""}`, }); -- Gitblit v1.8.0