wangfukang 1 month ago
parent
commit
edae05fd85
  1. 5
      src/api/app.js
  2. 135
      src/views/app/shop/addEdit.vue
  3. 4
      vue.config.js

5
src/api/app.js

@ -412,6 +412,11 @@ export const editShopTakeway = (params) => {
export const editShop = (params) => {
return putRequest('/app/shop/edit', params)
}
export const findShopWorkerByMobile = (params) => {
return getRequest('/app/shop/findWorkerByMobile', params)
}
//删除评论
export const deleteComment = (params) => {
return postRequest('/app/comment/deleteByOrderId', params)

135
src/views/app/shop/addEdit.vue

@ -69,6 +69,52 @@
</FormItem>
</Col>
</Row>
<Divider>商家自配送</Divider>
<Row :gutter="32">
<Col span="12">
<FormItem label="是否支持商家自配送" prop="supportShopDelivery">
<RadioGroup v-model="form.supportShopDelivery">
<Radio :label="1"></Radio>
<Radio :label="0"></Radio>
</RadioGroup>
</FormItem>
</Col>
<Col span="12" v-if="form.supportShopDelivery == 1">
<FormItem label="自配送配送费" prop="orderBkge">
<InputNumber v-model="form.orderBkge" :min="0" :step="0.1" style="width: 100%" @on-change="handleOrderBkgeChange" />
</FormItem>
</Col>
</Row>
<Row :gutter="32" v-if="form.supportShopDelivery == 1">
<Col span="12">
<FormItem label="送达位置" prop="shopDeliveryLocation">
<Select v-model="form.shopDeliveryLocation" transfer>
<Option :value="1">送到宿舍</Option>
<Option :value="2">送到楼下</Option>
</Select>
</FormItem>
</Col>
<Col span="12">
<FormItem label="配送时长(分钟)" prop="shopDeliveryDuration">
<InputNumber v-model="form.shopDeliveryDuration" :min="1" :precision="0" style="width: 100%" />
</FormItem>
</Col>
</Row>
<Row :gutter="32" v-if="form.supportShopDelivery == 1">
<Col span="12">
<FormItem label="配送员手机号">
<Input v-model="workerMobile" autocomplete="off" :maxlength="16" placeholder="输入配送员手机号">
<Button slot="append" :loading="workerLoading" @click="findWorker">查询</Button>
</Input>
</FormItem>
</Col>
<Col span="12">
<FormItem label="已绑定配送员" prop="workerId">
<Input :value="boundWorkerText" readonly placeholder="暂未绑定配送员" />
</FormItem>
</Col>
</Row>
<Divider />
<Row :gutter="32">
<Col span="24">
@ -108,6 +154,7 @@
import {
addShop,
editShop,
findShopWorkerByMobile,
initShopArea,
loadShopArea,
} from "@/api/app";
@ -142,9 +189,13 @@
title: "",
passColor: "",
submitLoading: false,
workerLoading: false,
workerMobile: "",
maxHeight: 510,
form: {
address: [],
supportShopDelivery: 0,
orderBkge: 0,
},
formValidate: {
//
@ -192,9 +243,45 @@
message: "邮箱格式不正确"
},
],
workerId: [{
validator: (rule, value, callback) => {
if (this.form.supportShopDelivery == 1 && !this.form.workerId) {
callback(new Error("请查询并绑定配送员"));
} else {
callback();
}
},
trigger: "change"
}],
shopDeliveryLocation: [{
validator: (rule, value, callback) => {
if (this.form.supportShopDelivery == 1 && !value) {
callback(new Error("请选择送达位置"));
} else {
callback();
}
},
trigger: "change"
}],
shopDeliveryDuration: [{
validator: (rule, value, callback) => {
if (this.form.supportShopDelivery == 1 && (!value || value <= 0)) {
callback(new Error("请输入配送时长"));
} else {
callback();
}
},
trigger: "change"
}],
},
};
},
computed: {
boundWorkerText() {
if (!this.form.workerId) return "";
return `${this.form.workerName || ""} ${this.form.workerPhone || ""}`;
},
},
methods: {
init(v) {
this.getRoleList(v);
@ -237,10 +324,52 @@
handleSelectShopAreaTree(v) {
this.form.shopArea = v;
},
handleOrderBkgeChange(value) {
const numberValue = Number(value || 0);
this.$set(this.form, "orderBkge", Number(numberValue.toFixed(1)));
},
findWorker() {
if (!this.workerMobile) {
this.$Message.warning("请输入配送员手机号");
return;
}
this.workerLoading = true;
findShopWorkerByMobile({
mobile: this.workerMobile
}).then((res) => {
this.workerLoading = false;
if (res.success) {
this.$set(this.form, "workerId", res.result.workerId);
this.$set(this.form, "workerName", res.result.workerName);
this.$set(this.form, "workerPhone", res.result.workerPhone || res.result.mobile);
this.$Message.success("配送员绑定成功");
} else {
this.$Message.error(res.message || "未查询到配送员");
}
}).catch(() => {
this.workerLoading = false;
});
},
normalizeSelfDeliveryForm() {
if (this.form.supportShopDelivery == null) {
this.$set(this.form, "supportShopDelivery", 0);
}
this.form.supportShopDelivery = Number(this.form.supportShopDelivery);
this.form.orderBkge = Number(Number(this.form.orderBkge || 0).toFixed(1));
if (this.form.supportShopDelivery != 1) {
this.form.orderBkge = 0;
this.form.shopDeliveryLocation = null;
this.form.shopDeliveryDuration = null;
this.form.workerId = "";
this.form.workerName = "";
this.form.workerPhone = "";
}
},
changePass(v, grade, strength) {
this.form.passStrength = strength;
},
submit() {
this.normalizeSelfDeliveryForm();
this.$refs.form.validate((valid) => {
if (valid) {
if (typeof this.form.chargeTime == "object") {
@ -330,6 +459,9 @@
this.$refs.shopAreaTree.setData(data.shopArea, data.shopAreaTitle);
//
this.form = data;
this.form.supportShopDelivery = data.supportShopDelivery == null ? 0 : Number(data.supportShopDelivery);
this.form.orderBkge = data.orderBkge == null ? 0 : Number(data.orderBkge);
this.workerMobile = data.workerPhone || "";
} else {
//
//this.$refs.shopAreaTree.setData("", "");
@ -337,7 +469,10 @@
/*type: 0,
sex: "",
address: [],*/
supportShopDelivery: 0,
orderBkge: 0,
};
this.workerMobile = "";
}
this.visible = value;
},

4
vue.config.js

@ -7,8 +7,8 @@ module.exports = {
port: 8889,
proxy: {
'/hiver': {
//target: 'https://hbkuaishi.com', // 正式1
target: 'http://192.168.100.30:8888', // 本地
target: 'https://hbkuaishi.com', // 正式1
//target: 'http://192.168.100.30:8888', // 本地
ws: false
},
'/foo': {

Loading…
Cancel
Save