提交 d8e827ad 编写于 作者: M maguohua

增加商店代码优化

上级 0dd82dfd
import fetch from '@/config/fetch'
const cityGuess = () => fetch('GET', '/v1/cities', {
type: 'guess'
});
const addShop = data => fetch('POST', '/shopping/addShop', {...data});
/**
* 获取搜索地址
*/
const searchplace = (cityid, value) => fetch('GET', '/v1/pois', {
type: 'search',
city_id: cityid,
keyword: value
});
export { cityGuess, addShop, searchplace }
......@@ -9,10 +9,10 @@ let baseUrl;
let routerMode;
if (process.env.NODE_ENV == 'development') {
baseUrl = '';
baseUrl = 'http://localhost:8001';
routerMode = 'hash'
}else{
baseUrl = 'http://cangdu.org';
baseUrl = 'http://cangdu.org:8001';
routerMode = 'hash'
}
......
import { baseUrl } from '@/env'
import { baseUrl } from './env'
export default async(type = 'GET', url = '', data = {}, method = 'fetch') => {
type = type.toUpperCase();
......
......@@ -3,48 +3,55 @@
<head-top></head-top>
<el-row style="margin-top: 20px;">
<el-col :span="12" :offset="4">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" class="demo-ruleForm">
<el-form :model="formData" :rules="rules" ref="formData" label-width="110px" class="demo-formData">
<el-form-item label="店铺名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>
<el-input v-model="formData.name"></el-input>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="ruleForm.address"></el-input>
<el-autocomplete
v-model="formData.address"
:fetch-suggestions="querySearchAsync"
placeholder="请输入地址"
style="width: 100%;"
@select="addressSelect"
></el-autocomplete>
<span>当前城市:{{city.name}}</span>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input v-model.number="ruleForm.phone" maxLength="11"></el-input>
<el-input v-model.number="formData.phone" maxLength="11"></el-input>
</el-form-item>
<el-form-item label="店铺简介" prop="description">
<el-input v-model="ruleForm.description"></el-input>
<el-input v-model="formData.description"></el-input>
</el-form-item>
<el-form-item label="店铺标语" prop="promotion_info">
<el-input v-model="ruleForm.promotion_info"></el-input>
</el-form-item>
<el-form-item label="配送费" prop="float_delivery_fee">
<el-input-number v-model="ruleForm.float_delivery_fee" :min="0" :max="20"></el-input-number>
</el-form-item>
<el-form-item label="起送价" prop="float_minimum_order_amount">
<el-input-number v-model="ruleForm.float_minimum_order_amount" :min="0" :max="100"></el-input-number>
<el-input v-model="formData.promotion_info"></el-input>
</el-form-item>
<el-form-item label="店铺特点" style="white-space: nowrap;">
<span>品牌保证</span>
<el-switch on-text="" off-text="" v-model="ruleForm.is_premium"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.is_premium"></el-switch>
<span>蜂鸟专送</span>
<el-switch on-text="" off-text="" v-model="ruleForm.delivery_mode"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.delivery_mode"></el-switch>
<span>新开店铺</span>
<el-switch on-text="" off-text="" v-model="ruleForm.new"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.new"></el-switch>
</el-form-item>
<el-form-item style="white-space: nowrap;">
<span>外卖保</span>
<el-switch on-text="" off-text="" v-model="ruleForm.bao"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.bao"></el-switch>
<span>准时达</span>
<el-switch on-text="" off-text="" v-model="ruleForm.zhun"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.zhun"></el-switch>
<span>开发票</span>
<el-switch on-text="" off-text="" v-model="ruleForm.piao"></el-switch>
<el-switch on-text="" off-text="" v-model="formData.piao"></el-switch>
</el-form-item>
<el-form-item label="配送费" prop="float_delivery_fee">
<el-input-number v-model="formData.float_delivery_fee" :min="0" :max="20"></el-input-number>
</el-form-item>
<el-form-item label="起送价" prop="float_minimum_order_amount">
<el-input-number v-model="formData.float_minimum_order_amount" :min="0" :max="100"></el-input-number>
</el-form-item>
<el-form-item label="营业时间" style="white-space: nowrap;">
<el-time-select
placeholder="起始时间"
v-model="ruleForm.startTime"
v-model="formData.startTime"
:picker-options="{
start: '05:30',
step: '00:15',
......@@ -53,12 +60,12 @@
</el-time-select>
<el-time-select
placeholder="结束时间"
v-model="ruleForm.endTime"
v-model="formData.endTime"
:picker-options="{
start: '05:30',
step: '00:15',
end: '23:30',
minTime: ruleForm.startTime
minTime: formData.startTime
}">
</el-time-select>
</el-form-item>
......@@ -69,7 +76,7 @@
:show-file-list="false"
:on-success="handleShopAvatarScucess"
:before-upload="beforeAvatarUpload">
<img v-if="ruleForm.image_path" :src="ruleForm.image_path" class="avatar">
<img v-if="formData.image_path" :src="formData.image_path" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
......@@ -80,7 +87,7 @@
:show-file-list="false"
:on-success="handleBusinessAvatarScucess"
:before-upload="beforeAvatarUpload">
<img v-if="ruleForm.business_license_image" :src="ruleForm.business_license_image" class="avatar">
<img v-if="formData.business_license_image" :src="formData.business_license_image" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
......@@ -91,7 +98,7 @@
:show-file-list="false"
:on-success="handleServiceAvatarScucess"
:before-upload="beforeAvatarUpload">
<img v-if="ruleForm.catering_service_license_image" :src="ruleForm.catering_service_license_image" class="avatar">
<img v-if="formData.catering_service_license_image" :src="formData.catering_service_license_image" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
......@@ -139,7 +146,7 @@
</el-table-column>
</el-table>
<el-form-item class="button_submit">
<el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
<el-button type="primary" @click="submitForm('formData')">立即创建</el-button>
</el-form-item>
</el-form>
</el-col>
......@@ -148,18 +155,22 @@
</template>
<script>
import headTop from '../components/headTop'
import headTop from '@/components/headTop'
import {cityGuess, addShop, searchplace} from '@/api/getData'
export default {
data(){
return {
ruleForm: {
city: {},
formData: {
name: '', //店铺名称
address: '', //地址
latitude: '',
longitude: '',
description: '', //介绍
phone: '',
promotion_info: '',
float_delivery_fee: 0, //运费
float_minimum_order_amount: 0, //起价
float_delivery_fee: 5, //运费
float_minimum_order_amount: 20, //起价
is_premium: false,
delivery_mode: false,
new: false,
......@@ -208,35 +219,52 @@
components: {
headTop,
},
mounted(){
this.initData();
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
this.$notify.error({
title: '错误',
message: '请检查输入是否正确',
offset: 100
});
return false;
}
});
},
async initData(){
try{
this.city = await cityGuess();
}catch(err){
console.error(err);
}
},
async querySearchAsync(queryString, cb) {
if (queryString) {
try{
const cityList = await searchplace(this.city.id, queryString);
if (cityList instanceof Array) {
cityList.map(item => {
item.value = item.address;
return item;
})
cb(cityList)
}
}catch(err){
console.error(err)
}
}
},
addressSelect(address){
this.formData.latitude = address.latitude;
this.formData.longitude = address.longitude;
console.log(address)
},
handleShopAvatarScucess(res, file) {
this.ruleForm.image_path = URL.createObjectURL(file.raw);
this.formData.image_path = URL.createObjectURL(file.raw);
},
handleBusinessAvatarScucess(res, file) {
this.ruleForm.business_license_image = URL.createObjectURL(file.raw);
this.formData.business_license_image = URL.createObjectURL(file.raw);
},
handleServiceAvatarScucess(res, file) {
this.ruleForm.catering_service_license_image = URL.createObjectURL(file.raw);
this.formData.catering_service_license_image = URL.createObjectURL(file.raw);
},
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg';
const isRightType = (file.type === 'image/jpeg') || (file.type === 'image/png');
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
if (!isRightType) {
this.$message.error('上传头像图片只能是 JPG 格式!');
}
if (!isLt2M) {
......@@ -282,7 +310,7 @@
break;
case '新用户立减':
newObj= {
icon_name: '',
icon_name: '',
name: '新用户立减',
description: value,
}
......@@ -305,7 +333,27 @@
},
handleDelete(index){
this.activities.splice(index, 1)
}
},
submitForm(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
Object.assign(this.formData, {activities: this.activities})
try{
let result = await addShop(this.formData);
console.log(result)
}catch(err){
console.error(err)
}
} else {
this.$notify.error({
title: '错误',
message: '请检查输入是否正确',
offset: 100
});
return false;
}
});
},
}
}
</script>
......
import fetch from '@/config/fetch'
var cityGuess = () => fetch('GET', '/v1/cities', {
type: 'guess'
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册