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