Skip to content

Commit 6b32c11

Browse files
committed
add a lot code
1 parent 5a3bedd commit 6b32c11

File tree

12 files changed

+1208
-46
lines changed

12 files changed

+1208
-46
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# project
33

4-
此项目是 [后台项目node-elm](https://github.com/bailicangdu/node-elm) 的数据管理系统。配合[前台项目vue2-elm](https://github.com/bailicangdu/vue2-elm)组成一个 后台系统 + 数据管理 + 前台展示 的完整流程。
4+
此项目是后台项目[node-elm](https://github.com/bailicangdu/node-elm) 的数据管理系统。配合前台项目[vue2-elm](https://github.com/bailicangdu/vue2-elm)组成一个 后台系统 + 数据管理 + 前台展示 的完整流程。
55

66

77
# 说明
@@ -49,11 +49,11 @@ npm run dev
4949
- [x] 登陆/注销
5050
- [x] 添加商铺
5151
- [x] 添加商品
52+
- [x] 数据展示
53+
- [x] 管理用户
54+
- [x] 管理商铺
55+
- [x] 食品管理
5256
- [ ] 权限验证
53-
- [ ] 数据展示
54-
- [ ] 管理用户
55-
- [ ] 管理商铺
56-
- [ ] 地区管理
5757
- [ ] 管理员设置
5858
- [ ] 图表📈
5959
- [ ] 上传文件

src/api/getData.js

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,115 @@ const addCategory = data => fetch('/shopping/addcategory', data, 'POST');
4343
const addFood = data => fetch('/shopping/addfood', data, 'POST');
4444

4545

46-
export { cityGuess, addShop, searchplace, getCategory, addCategory, addFood }
46+
/**
47+
* category 种类列表
48+
*/
49+
50+
const foodCategory = (latitude, longitude) => fetch('/shopping/v2/restaurant/category');
51+
52+
/**
53+
* 获取餐馆列表
54+
*/
55+
56+
const getResturants = data => fetch('/shopping/restaurants', data);
57+
58+
/**
59+
* 获取餐馆详细信息
60+
*/
61+
62+
const getResturantDetail = restaurant_id => fetch('/shopping/restaurant/' + restaurant_id);
63+
64+
/**
65+
* 获取餐馆数量
66+
*/
67+
68+
const getResturantsCount = () => fetch('/shopping/restaurants/count');
69+
70+
/**
71+
* 更新餐馆信息
72+
*/
73+
74+
const updateResturant = data => fetch('/shopping/updateshop', data, 'POST');
75+
76+
/**
77+
* 删除餐馆
78+
*/
79+
80+
const deleteResturant = restaurant_id => fetch('/shopping/restaurant/' + restaurant_id, {}, 'DELETE');
81+
82+
/**
83+
* 获取食品列表
84+
*/
85+
86+
const getFoods = data => fetch('/shopping/v2/foods', data);
87+
88+
/**
89+
* 获取食品数量
90+
*/
91+
92+
const getFoodsCount = data => fetch('/shopping/v2/foods/count', data);
93+
94+
95+
/**
96+
* 获取menu列表
97+
*/
98+
99+
const getMenu = data => fetch('/shopping/v2/menu', data);
100+
101+
/**
102+
* 获取menu列表
103+
*/
104+
105+
const getMenuById = category_id => fetch('/shopping/v2/menu/' + category_id);
106+
107+
/**
108+
* 更新食品信息
109+
*/
110+
111+
const updateFood = data => fetch('/shopping/v2/updatefood', data, 'POST');
112+
113+
/**
114+
* 删除食品
115+
*/
116+
117+
const deleteFood = food_id => fetch('/shopping/v2/food/' + food_id, {}, 'DELETE');
118+
119+
/**
120+
* 获取用户列表
121+
*/
122+
123+
const getUserList = data => fetch('/v1/users/list', data);
124+
125+
/**
126+
* 获取用户数量
127+
*/
128+
129+
const getUserCount = data => fetch('/v1/users/count', data);
130+
131+
/**
132+
* 获取订单列表
133+
*/
134+
135+
const getOrderList = data => fetch('/bos/orders', data);
136+
137+
/**
138+
* 获取订单数量
139+
*/
140+
141+
const getOrderCount = data => fetch('/bos/orders/count', data);
142+
143+
/**
144+
* 获取订单数量
145+
*/
146+
147+
const getUserInfo = user_id => fetch('/v1/user/' + user_id);
148+
149+
/**
150+
* 获取订单数量
151+
*/
152+
153+
const getAddressById = address_id => fetch('/v1/addresse/' + address_id);
154+
155+
156+
export { cityGuess, addShop, searchplace, getCategory, addCategory, addFood, foodCategory ,getResturants, getResturantDetail, getResturantsCount, updateResturant, deleteResturant, getFoods, getFoodsCount, getMenu, updateFood, getMenuById, deleteFood, getUserList, getUserCount, getOrderList, getOrderCount, getUserInfo, getAddressById}
47157

src/config/env.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
*
44
* baseUrl: 域名地址
55
* routerMode: 路由模式
6+
* baseImgPath: 图片存放地址
67
*
78
*/
89
let baseUrl;
9-
let routerMode;
10+
let routerMode = 'hash';
11+
let baseImgPath = 'http://images.cangdu.org/';
1012

1113
if (process.env.NODE_ENV == 'development') {
1214
baseUrl = 'http://localhost:8001';
13-
routerMode = 'hash'
1415
}else{
1516
baseUrl = 'http://cangdu.org:8001';
16-
routerMode = 'hash'
1717
}
1818

1919
export {
2020
baseUrl,
2121
routerMode,
22+
baseImgPath
2223
}

src/page/addGoods.vue

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@
5050
<el-form-item label="上传店铺头像">
5151
<el-upload
5252
class="avatar-uploader"
53-
:action="baseUrl + '/shopping/addimg/food'"
53+
:action="baseUrl + '/v1/addimg/food'"
5454
:show-file-list="false"
5555
:on-success="uploadImg"
5656
:before-upload="beforeImgUpload">
57-
<img v-if="foodForm.image_path" :src="baseUrl + foodForm.image_path" class="avatar">
57+
<img v-if="foodForm.image_path" :src="baseImgPath + foodForm.image_path" class="avatar">
5858
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
5959
</el-upload>
6060
</el-form-item>
@@ -137,12 +137,13 @@
137137
<script>
138138
import headTop from '@/components/headTop'
139139
import {getCategory, addCategory, addFood} from '@/api/getData'
140-
import {baseUrl} from '@/config/env'
140+
import {baseUrl, baseImgPath} from '@/config/env'
141141
export default {
142142
data(){
143143
return {
144144
baseUrl,
145-
restaurant_id: 3,
145+
baseImgPath,
146+
restaurant_id: null,
146147
categoryForm: {
147148
categoryList: [],
148149
categorySelect: '',
@@ -188,10 +189,19 @@
188189
}
189190
}
190191
},
192+
beforeRouteEnter (to, from, next) {
193+
if (to.query.restaurant_id) {
194+
next()
195+
}else{
196+
alert('请先选择店铺');
197+
next('/shopList');
198+
}
199+
},
191200
components: {
192201
headTop,
193202
},
194-
mounted(){
203+
created(){
204+
this.restaurant_id = this.$route.query.restaurant_id;
195205
this.initData();
196206
},
197207
computed: {

src/page/addShop.vue

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@
2626
<el-form-item label="店铺标语" prop="promotion_info">
2727
<el-input v-model="formData.promotion_info"></el-input>
2828
</el-form-item>
29+
<el-form-item label="店铺分类">
30+
<el-cascader
31+
:options="categoryOptions"
32+
v-model="selectedCategory"
33+
change-on-select
34+
></el-cascader>
35+
</el-form-item>
2936
<el-form-item label="店铺特点" style="white-space: nowrap;">
3037
<span>品牌保证</span>
3138
<el-switch on-text="" off-text="" v-model="formData.is_premium"></el-switch>
@@ -69,36 +76,37 @@
6976
}">
7077
</el-time-select>
7178
</el-form-item>
79+
7280
<el-form-item label="上传店铺头像">
7381
<el-upload
7482
class="avatar-uploader"
75-
:action="baseUrl + '/shopping/addimg/shop'"
83+
:action="baseUrl + '/v1/addimg/shop'"
7684
:show-file-list="false"
7785
:on-success="handleShopAvatarScucess"
7886
:before-upload="beforeAvatarUpload">
79-
<img v-if="formData.image_path" :src="baseUrl + formData.image_path" class="avatar">
87+
<img v-if="formData.image_path" :src="baseImgPath + formData.image_path" class="avatar">
8088
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
8189
</el-upload>
8290
</el-form-item>
8391
<el-form-item label="上传营业执照">
8492
<el-upload
8593
class="avatar-uploader"
86-
:action="baseUrl + '/shopping/addimg/shop'"
94+
:action="baseUrl + '/v1/addimg/shop'"
8795
:show-file-list="false"
8896
:on-success="handleBusinessAvatarScucess"
8997
:before-upload="beforeAvatarUpload">
90-
<img v-if="formData.business_license_image" :src="baseUrl + formData.business_license_image" class="avatar">
98+
<img v-if="formData.business_license_image" :src="baseImgPath + formData.business_license_image" class="avatar">
9199
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
92100
</el-upload>
93101
</el-form-item>
94102
<el-form-item label="上传餐饮服务许可证">
95103
<el-upload
96104
class="avatar-uploader"
97-
:action="baseUrl + '/shopping/addimg/shop'"
105+
:action="baseUrl + '/v1/addimg/shop'"
98106
:show-file-list="false"
99107
:on-success="handleServiceAvatarScucess"
100108
:before-upload="beforeAvatarUpload">
101-
<img v-if="formData.catering_service_license_image" :src="baseUrl + formData.catering_service_license_image" class="avatar">
109+
<img v-if="formData.catering_service_license_image" :src="baseImgPath + formData.catering_service_license_image" class="avatar">
102110
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
103111
</el-upload>
104112
</el-form-item>
@@ -156,8 +164,8 @@
156164

157165
<script>
158166
import headTop from '@/components/headTop'
159-
import {cityGuess, addShop, searchplace} from '@/api/getData'
160-
import {baseUrl} from '@/config/env'
167+
import {cityGuess, addShop, searchplace, foodCategory} from '@/api/getData'
168+
import {baseUrl, baseImgPath} from '@/config/env'
161169
export default {
162170
data(){
163171
return {
@@ -183,6 +191,7 @@
183191
image_path: '',
184192
business_license_image: '',
185193
catering_service_license_image: '',
194+
186195
},
187196
rules: {
188197
name: [
@@ -216,6 +225,9 @@
216225
description: '满30减5,满60减8',
217226
}],
218227
baseUrl,
228+
baseImgPath,
229+
categoryOptions: [],
230+
selectedCategory: ['快餐便当', '简餐']
219231
}
220232
},
221233
components: {
@@ -228,6 +240,27 @@
228240
async initData(){
229241
try{
230242
this.city = await cityGuess();
243+
const categories = await foodCategory();
244+
categories.forEach(item => {
245+
if (item.sub_categories.length) {
246+
const addnew = {
247+
value: item.name,
248+
label: item.name,
249+
children: []
250+
}
251+
item.sub_categories.forEach((subitem, index) => {
252+
if (index == 0) {
253+
return
254+
}
255+
addnew.children.push({
256+
value: subitem.name,
257+
label: subitem.name,
258+
})
259+
})
260+
this.categoryOptions.push(addnew)
261+
262+
}
263+
})
231264
}catch(err){
232265
console.error(err);
233266
}
@@ -251,7 +284,7 @@
251284
addressSelect(address){
252285
this.formData.latitude = address.latitude;
253286
this.formData.longitude = address.longitude;
254-
console.log(address)
287+
console.log(this.formData.latitude, this.formData.longitude)
255288
},
256289
handleShopAvatarScucess(res, file) {
257290
if (res.status == 1) {
@@ -351,7 +384,9 @@
351384
submitForm(formName) {
352385
this.$refs[formName].validate(async (valid) => {
353386
if (valid) {
354-
Object.assign(this.formData, {activities: this.activities})
387+
Object.assign(this.formData, {activities: this.activities}, {
388+
category: this.selectedCategory.join('/')
389+
})
355390
try{
356391
let result = await addShop(this.formData);
357392
if (result.status == 1) {

src/page/area.vue

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)