feat: add resident miniapp MVP
This commit is contained in:
26
miniapp/miniprogram/api/addressApi.js
Normal file
26
miniapp/miniprogram/api/addressApi.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listAddresses() {
|
||||
return request({ url: '/api/mini/addresses' })
|
||||
}
|
||||
|
||||
function createAddress(data) {
|
||||
return request({
|
||||
url: '/api/mini/addresses',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
function setDefaultAddress(id) {
|
||||
return request({
|
||||
url: '/api/mini/addresses/' + id + '/default',
|
||||
method: 'PUT'
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listAddresses,
|
||||
createAddress,
|
||||
setDefaultAddress
|
||||
}
|
||||
48
miniapp/miniprogram/api/expressApi.js
Normal file
48
miniapp/miniprogram/api/expressApi.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function calculateExpressFeeCent(packageCount) {
|
||||
if (packageCount <= 0) {
|
||||
throw new Error('件数必须大于0')
|
||||
}
|
||||
return 300 + Math.max(0, packageCount - 1) * 100
|
||||
}
|
||||
|
||||
function createExpressOrder(data) {
|
||||
return request({
|
||||
url: '/api/mini/express-orders',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
function listExpressOrders() {
|
||||
return request({ url: '/api/mini/express-orders' })
|
||||
}
|
||||
|
||||
function getExpressOrderDetail(id) {
|
||||
return request({ url: '/api/mini/express-orders/' + id })
|
||||
}
|
||||
|
||||
function cancelExpressOrder(id, reason) {
|
||||
return request({
|
||||
url: '/api/mini/express-orders/' + id + '/cancel',
|
||||
method: 'PUT',
|
||||
data: { reason }
|
||||
})
|
||||
}
|
||||
|
||||
function completeExpressOrder(id) {
|
||||
return request({
|
||||
url: '/api/mini/express-orders/' + id + '/complete',
|
||||
method: 'PUT'
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
calculateExpressFeeCent,
|
||||
createExpressOrder,
|
||||
listExpressOrders,
|
||||
getExpressOrderDetail,
|
||||
cancelExpressOrder,
|
||||
completeExpressOrder
|
||||
}
|
||||
9
miniapp/miniprogram/api/expressApi.test.js
Normal file
9
miniapp/miniprogram/api/expressApi.test.js
Normal file
@@ -0,0 +1,9 @@
|
||||
const { calculateExpressFeeCent } = require('./expressApi')
|
||||
|
||||
describe('calculateExpressFeeCent', () => {
|
||||
test('matches backend express fee rule', () => {
|
||||
expect(calculateExpressFeeCent(1)).toBe(300)
|
||||
expect(calculateExpressFeeCent(2)).toBe(400)
|
||||
expect(calculateExpressFeeCent(4)).toBe(600)
|
||||
})
|
||||
})
|
||||
41
miniapp/miniprogram/api/groupBuyApi.js
Normal file
41
miniapp/miniprogram/api/groupBuyApi.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listGroupBuys() {
|
||||
return request({ url: '/api/mini/group-buys' })
|
||||
}
|
||||
|
||||
function getGroupBuyDetail(id) {
|
||||
return request({ url: '/api/mini/group-buys/' + id })
|
||||
}
|
||||
|
||||
function createGroupBuyOrder(data) {
|
||||
return request({
|
||||
url: '/api/mini/group-buy-orders',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
function listGroupBuyOrders() {
|
||||
return request({ url: '/api/mini/group-buy-orders' })
|
||||
}
|
||||
|
||||
function getGroupBuyOrderDetail(id) {
|
||||
return request({ url: '/api/mini/group-buy-orders/' + id })
|
||||
}
|
||||
|
||||
function cancelGroupBuyOrder(id) {
|
||||
return request({
|
||||
url: '/api/mini/group-buy-orders/' + id + '/cancel',
|
||||
method: 'PUT'
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listGroupBuys,
|
||||
getGroupBuyDetail,
|
||||
createGroupBuyOrder,
|
||||
listGroupBuyOrders,
|
||||
getGroupBuyOrderDetail,
|
||||
cancelGroupBuyOrder
|
||||
}
|
||||
21
miniapp/miniprogram/api/homeApi.js
Normal file
21
miniapp/miniprogram/api/homeApi.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function getHomeData() {
|
||||
return Promise.all([
|
||||
request({ url: '/api/mini/banners' }).catch(() => []),
|
||||
request({ url: '/api/mini/notices' }).catch(() => []),
|
||||
request({ url: '/api/mini/products' }).catch(() => []),
|
||||
request({ url: '/api/mini/group-buys' }).catch(() => []),
|
||||
request({ url: '/api/mini/second-goods' }).catch(() => [])
|
||||
]).then(([banners, notices, products, groupBuys, secondGoods]) => ({
|
||||
banners,
|
||||
notices,
|
||||
products,
|
||||
groupBuys,
|
||||
secondGoods
|
||||
}))
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getHomeData
|
||||
}
|
||||
14
miniapp/miniprogram/api/noticeApi.js
Normal file
14
miniapp/miniprogram/api/noticeApi.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listNotices() {
|
||||
return request({ url: '/api/mini/notices' })
|
||||
}
|
||||
|
||||
function getNoticeDetail(id) {
|
||||
return request({ url: '/api/mini/notices/' + id })
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listNotices,
|
||||
getNoticeDetail
|
||||
}
|
||||
22
miniapp/miniprogram/api/orderApi.js
Normal file
22
miniapp/miniprogram/api/orderApi.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listGoodsOrders() {
|
||||
return request({ url: '/api/mini/goods-orders' })
|
||||
}
|
||||
|
||||
function getGoodsOrderDetail(id) {
|
||||
return request({ url: '/api/mini/goods-orders/' + id })
|
||||
}
|
||||
|
||||
function cancelGoodsOrder(id) {
|
||||
return request({
|
||||
url: '/api/mini/goods-orders/' + id + '/cancel',
|
||||
method: 'PUT'
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listGoodsOrders,
|
||||
getGoodsOrderDetail,
|
||||
cancelGoodsOrder
|
||||
}
|
||||
31
miniapp/miniprogram/api/productApi.js
Normal file
31
miniapp/miniprogram/api/productApi.js
Normal file
@@ -0,0 +1,31 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listCategories() {
|
||||
return request({ url: '/api/mini/product-categories' })
|
||||
}
|
||||
|
||||
function listProducts(categoryId) {
|
||||
return request({
|
||||
url: '/api/mini/products',
|
||||
data: categoryId ? { categoryId } : {}
|
||||
})
|
||||
}
|
||||
|
||||
function getProductDetail(id) {
|
||||
return request({ url: '/api/mini/products/' + id })
|
||||
}
|
||||
|
||||
function createGoodsOrder(data) {
|
||||
return request({
|
||||
url: '/api/mini/goods-orders',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listCategories,
|
||||
listProducts,
|
||||
getProductDetail,
|
||||
createGoodsOrder
|
||||
}
|
||||
26
miniapp/miniprogram/api/secondGoodsApi.js
Normal file
26
miniapp/miniprogram/api/secondGoodsApi.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const { request } = require('../utils/request')
|
||||
|
||||
function listSecondGoods(category) {
|
||||
return request({
|
||||
url: '/api/mini/second-goods',
|
||||
data: category ? { category } : {}
|
||||
})
|
||||
}
|
||||
|
||||
function getSecondGoodsDetail(id) {
|
||||
return request({ url: '/api/mini/second-goods/' + id })
|
||||
}
|
||||
|
||||
function createSecondGoods(data) {
|
||||
return request({
|
||||
url: '/api/mini/second-goods',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listSecondGoods,
|
||||
getSecondGoodsDetail,
|
||||
createSecondGoods
|
||||
}
|
||||
Reference in New Issue
Block a user