This commit is contained in:
parent
0788b36218
commit
9329366191
|
@ -5,10 +5,10 @@ VITE_NOW_TYPE = 'dist'
|
||||||
# VITE_BASE_URL = 'http://192.168.1.201:8545'
|
# VITE_BASE_URL = 'http://192.168.1.201:8545'
|
||||||
|
|
||||||
# VITE_PUSH_URL = 'ws://192.168.1.22:8787'
|
# VITE_PUSH_URL = 'ws://192.168.1.22:8787'
|
||||||
# VITE_BASE_URL = 'http://192.168.1.22:8545'
|
VITE_BASE_URL = 'http://192.168.1.22:8545'
|
||||||
|
|
||||||
VITE_PUSH_URL ='wss://test-multi-store.lihaink.cn/pull'
|
VITE_PUSH_URL ='wss://test-multi-store.lihaink.cn/pull'
|
||||||
VITE_BASE_URL = 'https://test-multi-store.lihaink.cn'
|
# VITE_BASE_URL = 'https://test-multi-store.lihaink.cn'
|
||||||
|
|
||||||
# VITE_PUSH_URL ='wss://multi-store.lihaink.cn/pull'
|
# VITE_PUSH_URL ='wss://multi-store.lihaink.cn/pull'
|
||||||
# VITE_BASE_URL = 'https://multi-store.lihaink.cn'
|
# VITE_BASE_URL = 'https://multi-store.lihaink.cn'
|
|
@ -184,3 +184,10 @@ export function merchantOrderCountApi(data) {
|
||||||
export function storeOrderCheckSmsApi(data) {
|
export function storeOrderCheckSmsApi(data) {
|
||||||
return request.post(`/store_order/StoreOrder/checkSms`, data)
|
return request.post(`/store_order/StoreOrder/checkSms`, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 订单打印
|
||||||
|
*/
|
||||||
|
export function storeOrderPrintApi(data) {
|
||||||
|
return request.get(`/store_order/StoreOrder/print`, { params: data })
|
||||||
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ export function logout() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 会员类型
|
* @description 用户类型
|
||||||
*/
|
*/
|
||||||
export function userShipApi(data) {
|
export function userShipApi(data) {
|
||||||
return request.get(`/user/UserShip/lists`, { params: data })
|
return request.get(`/user/UserShip/lists`, { params: data })
|
||||||
|
@ -75,3 +75,10 @@ export function userAddressEditApi(data) {
|
||||||
export function userRechangeAmountApi(data) {
|
export function userRechangeAmountApi(data) {
|
||||||
return request.post(`/store_order/StoreOrder/rechange_amount`, data)
|
return request.post(`/store_order/StoreOrder/rechange_amount`, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 设置会员
|
||||||
|
*/
|
||||||
|
export function userShipUpdateApi(data) {
|
||||||
|
return request.post(`/user/user/user_ship`, data)
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,9 @@ import { orderCreateApi, orderStatusApi, orderPayApi, storeOrderCheckSmsApi } fr
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { audioplay } from "@/utils/audio.js";
|
import { audioplay } from "@/utils/audio.js";
|
||||||
import mitt from "@/utils/mitt.js";
|
import mitt from "@/utils/mitt.js";
|
||||||
|
import {
|
||||||
|
storeOrderPrintApi
|
||||||
|
} from "@/api/store.js";
|
||||||
import { useUserStore } from "@/store/user.js";
|
import { useUserStore } from "@/store/user.js";
|
||||||
|
|
||||||
const drawer = ref(false);
|
const drawer = ref(false);
|
||||||
|
@ -13,6 +16,15 @@ const codeRef = ref("");
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
|
||||||
|
const onPrint = (id) => {
|
||||||
|
storeOrderPrintApi({
|
||||||
|
id: id,
|
||||||
|
}).then(res => {
|
||||||
|
mitt.emit('letPrintReceipt', res.data);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const cancelClick = () => {
|
const cancelClick = () => {
|
||||||
beforeClose();
|
beforeClose();
|
||||||
};
|
};
|
||||||
|
@ -51,7 +63,7 @@ const setForm = (e) => {
|
||||||
form.value = e.data;
|
form.value = e.data;
|
||||||
cart_id.value = e.cart_id;
|
cart_id.value = e.cart_id;
|
||||||
uid.value = e.uid;
|
uid.value = e.uid;
|
||||||
console.log('选择了用户==', uid.value||'游客');
|
console.log('选择了用户==', uid.value || '游客');
|
||||||
isRePay.value = e.isRePay || false;
|
isRePay.value = e.isRePay || false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -117,6 +129,7 @@ const handleEnter = () => {
|
||||||
});
|
});
|
||||||
// if(res.data.message) audioplay(res.data.message);
|
// if(res.data.message) audioplay(res.data.message);
|
||||||
beforeClose(res.data);
|
beforeClose(res.data);
|
||||||
|
onPrint(res.data.id);
|
||||||
} else {
|
} else {
|
||||||
if (res.msg == "用户支付中" && res.code == 1) {
|
if (res.msg == "用户支付中" && res.code == 1) {
|
||||||
ElMessage.warning(res.msg);
|
ElMessage.warning(res.msg);
|
||||||
|
@ -125,6 +138,7 @@ const handleEnter = () => {
|
||||||
message: "支付成功",
|
message: "支付成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
|
onPrint(res.data.id);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
mitt.off("pay_success");
|
mitt.off("pay_success");
|
||||||
}, 200);
|
}, 200);
|
||||||
|
@ -167,6 +181,7 @@ const orderPay = () => {
|
||||||
message: "支付成功",
|
message: "支付成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
|
onPrint(res.data.id);
|
||||||
// if(res.data.message) audioplay(res.data.message);
|
// if(res.data.message) audioplay(res.data.message);
|
||||||
beforeClose();
|
beforeClose();
|
||||||
} else {
|
} else {
|
||||||
|
@ -177,6 +192,7 @@ const orderPay = () => {
|
||||||
message: "支付成功",
|
message: "支付成功",
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
|
onPrint(res.data.id);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
mitt.off("pay_success");
|
mitt.off("pay_success");
|
||||||
}, 200);
|
}, 200);
|
||||||
|
@ -327,6 +343,7 @@ const cashBnt = () => {
|
||||||
message: res.msg,
|
message: res.msg,
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
|
onPrint(res.data.id);
|
||||||
changeActive(1);
|
changeActive(1);
|
||||||
beforeClose();
|
beforeClose();
|
||||||
})
|
})
|
||||||
|
@ -401,6 +418,7 @@ const keyboard = (event) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const getSms = () => {
|
const getSms = () => {
|
||||||
|
if(!uid.value) return ElMessage.error('请先选择用户');
|
||||||
storeOrderCheckSmsApi({
|
storeOrderCheckSmsApi({
|
||||||
cart_id: cart_id.value,
|
cart_id: cart_id.value,
|
||||||
uid: uid.value
|
uid: uid.value
|
||||||
|
@ -414,6 +432,7 @@ const getSms = () => {
|
||||||
const smsCode = ref('');
|
const smsCode = ref('');
|
||||||
// 提交验证码/支付
|
// 提交验证码/支付
|
||||||
const handlecodeEnter = () => {
|
const handlecodeEnter = () => {
|
||||||
|
if(!uid.value) return ElMessage.error('请先选择用户');
|
||||||
orderCreateApi({
|
orderCreateApi({
|
||||||
pay_type: 18, //余额/采购款支付
|
pay_type: 18, //余额/采购款支付
|
||||||
sms_code: smsCode.value,
|
sms_code: smsCode.value,
|
||||||
|
@ -425,6 +444,7 @@ const handlecodeEnter = () => {
|
||||||
message: res.msg,
|
message: res.msg,
|
||||||
type: "success",
|
type: "success",
|
||||||
});
|
});
|
||||||
|
onPrint(res.data.id);
|
||||||
changeActive(1);
|
changeActive(1);
|
||||||
beforeClose();
|
beforeClose();
|
||||||
})
|
})
|
||||||
|
@ -522,7 +542,7 @@ onUnmounted(() => {
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<el-button v-for="item in numList" :key="item" @click="numTap(item)">{{
|
<el-button v-for="item in numList" :key="item" @click="numTap(item)">{{
|
||||||
item
|
item
|
||||||
}}
|
}}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
|
|
|
@ -84,7 +84,7 @@ defineExpose({
|
||||||
<div class="r-1"><span class="bold">{{ item.nickname }}</span><span>{{ ' (ID:' + item.id
|
<div class="r-1"><span class="bold">{{ item.nickname }}</span><span>{{ ' (ID:' + item.id
|
||||||
+ ')' }}</span>
|
+ ')' }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>手机号: {{ item.account }}</div>
|
<div>手机号: {{ item.mobile || item.account }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom flex" style="justify-content: space-between;">
|
<div class="bottom flex" style="justify-content: space-between;">
|
||||||
<!-- <div class="r-1">积分: <span class="red">55</span></div> -->
|
<!-- <div class="r-1">积分: <span class="red">55</span></div> -->
|
||||||
|
@ -144,7 +144,7 @@ defineExpose({
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
width: 45%;
|
width: 45%;
|
||||||
height: auto;
|
height: 6rem;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
|
@ -7,7 +7,8 @@ import {
|
||||||
cartListApi,
|
cartListApi,
|
||||||
cashierinfoListApi,
|
cashierinfoListApi,
|
||||||
cashierinfoDetailsApi,
|
cashierinfoDetailsApi,
|
||||||
writeoffOrderApi
|
writeoffOrderApi,
|
||||||
|
storeOrderPrintApi
|
||||||
} from "@/api/store.js";
|
} from "@/api/store.js";
|
||||||
import { useUserStore } from "@/store/user.js";
|
import { useUserStore } from "@/store/user.js";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
|
@ -125,9 +126,17 @@ const convert = ()=>{
|
||||||
writeoffOrderApi({
|
writeoffOrderApi({
|
||||||
verify_code: formData.value.verify_code
|
verify_code: formData.value.verify_code
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
console.log("===", res);
|
|
||||||
if(res.show==0&&res.msg=='核销成功') ElMessage.success(res.msg);
|
if(res.show==0&&res.msg=='核销成功') ElMessage.success(res.msg);
|
||||||
formData.value.is_writeoff = 1;
|
formData.value.is_writeoff = 1;
|
||||||
|
onPrint();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const onPrint = ()=>{
|
||||||
|
storeOrderPrintApi({
|
||||||
|
id: formData.value.id,
|
||||||
|
}).then(res=>{
|
||||||
|
mitt.emit('letPrintReceipt', res.data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,7 +226,8 @@ onUnmounted(() => {
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<el-button v-if="formData.is_writeoff==0" type="primary" size="large" :disabled="formData.is_writeoff" @click="convert">立即核销</el-button>
|
<el-button v-if="formData.is_writeoff==0" type="primary" size="large" :disabled="formData.is_writeoff" @click="convert">立即核销</el-button>
|
||||||
<div v-else>该订单已核销</div>
|
<div v-if="formData.is_writeoff==1">该订单已核销</div>
|
||||||
|
<el-button style="margin-left: 1rem" v-if="formData.is_writeoff==1" type="warning" size="large" @click="onPrint">打印小票</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|
|
@ -135,7 +135,7 @@ onUnmounted(() => {
|
||||||
<el-avatar class="avatar" :src="userInfo.avatar" />
|
<el-avatar class="avatar" :src="userInfo.avatar" />
|
||||||
<div class="info" v-if="userInfo.uid">
|
<div class="info" v-if="userInfo.uid">
|
||||||
<div class="flex-bewteen">
|
<div class="flex-bewteen">
|
||||||
<div>手机号: {{ userInfo.account }}</div>
|
<div>手机号: {{ userInfo.mobile || userInfo.account }}</div>
|
||||||
<el-button type="primary" link class="change-user" @click="userListRef.open()">切换用户<el-icon><ArrowRight /></el-icon></el-button>
|
<el-button type="primary" link class="change-user" @click="userListRef.open()">切换用户<el-icon><ArrowRight /></el-icon></el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-bewteen" style="align-items: flex-end;">
|
<div class="flex-bewteen" style="align-items: flex-end;">
|
||||||
|
|
|
@ -18,7 +18,7 @@ const formDataRules = reactive({
|
||||||
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
|
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
user_ship: [
|
user_ship: [
|
||||||
{ required: true, message: '请选择会员类型', trigger: 'change' }
|
{ required: true, message: '请选择用户类型', trigger: 'change' }
|
||||||
],
|
],
|
||||||
selectedValues: [
|
selectedValues: [
|
||||||
{ required: true, message: '请选择用户地址', trigger: 'change' }
|
{ required: true, message: '请选择用户地址', trigger: 'change' }
|
||||||
|
@ -145,11 +145,11 @@ defineExpose({
|
||||||
<template>
|
<template>
|
||||||
<div class="add-user">
|
<div class="add-user">
|
||||||
<el-form :model="formDataInfo" :rules="formDataRules" ref="formDataRef" label-width="80px">
|
<el-form :model="formDataInfo" :rules="formDataRules" ref="formDataRef" label-width="80px">
|
||||||
<el-form-item label="会员电话" prop="mobile">
|
<el-form-item label="用户电话" prop="mobile">
|
||||||
<el-input v-model="formDataInfo.mobile" placeholder="请输入会员电话" />
|
<el-input v-model="formDataInfo.mobile" placeholder="请输入用户电话" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会员类型" prop="user_ship">
|
<el-form-item label="用户类型" prop="user_ship">
|
||||||
<el-select v-model="formDataInfo.user_ship" placeholder="请选择会员类型" style="width: 100%;">
|
<el-select v-model="formDataInfo.user_ship" placeholder="请选择用户类型" style="width: 100%;">
|
||||||
<el-option v-for="item in userShip" :key="item.id" :label="item.title" :value="item.id" :disabled="item.id==1" />
|
<el-option v-for="item in userShip" :key="item.id" :label="item.title" :value="item.id" :disabled="item.id==1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
@ -7,6 +7,7 @@ import mitt from "@/utils/mitt.js";
|
||||||
import payUser from "@/components/payUser.vue";
|
import payUser from "@/components/payUser.vue";
|
||||||
import { userAddressDetailApi, userAddressEditApi, userDetailApi } from "@/api/user"
|
import { userAddressDetailApi, userAddressEditApi, userDetailApi } from "@/api/user"
|
||||||
import { apiProvince, apiCity, apiArea, apiStreet, apiVillage, apiBrigade } from '@/api/public'
|
import { apiProvince, apiCity, apiArea, apiStreet, apiVillage, apiBrigade } from '@/api/public'
|
||||||
|
import { userShipApi, userShipUpdateApi } from "@/api/user"
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
@ -41,6 +42,29 @@ const paySuccess = () => {
|
||||||
mitt.emit('re-load-user-list');
|
mitt.emit('re-load-user-list');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const updateShip = ref(false);
|
||||||
|
const userShip = ref([]);
|
||||||
|
const getUserShip = () => {
|
||||||
|
userShipApi().then(res => {
|
||||||
|
userShip.value = res.data.lists;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getUserShip()
|
||||||
|
const updateUserShip = ()=>{
|
||||||
|
userShipUpdateApi({
|
||||||
|
id: formData.value.id,
|
||||||
|
user_ship: formData.value.user_ship
|
||||||
|
}).then(res => {
|
||||||
|
ElMessage.success('修改成功');
|
||||||
|
formData.value.user_ship_name = userShip.value.find(item=>item.id==formData.value.user_ship)?.title;
|
||||||
|
updateShip.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const cancelUserShip = ()=>{
|
||||||
|
updateShip.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const addressInfo = ref({
|
const addressInfo = ref({
|
||||||
id: '',
|
id: '',
|
||||||
province: '',
|
province: '',
|
||||||
|
@ -213,13 +237,17 @@ onUnmounted(() => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<div class="info-item-title">用户昵称:</div>
|
<div class="info-item-title">礼品券:</div>
|
||||||
<div class="info-item-info">{{ formData.nickname }}</div>
|
<div class="info-item-info red">¥{{ formData.integral }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<div class="info-item-title">ID:</div>
|
<div class="info-item-title">ID:</div>
|
||||||
<div class="info-item-info">{{ formData.id }}</div>
|
<div class="info-item-info">{{ formData.id }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-item-title">用户昵称:</div>
|
||||||
|
<div class="info-item-info">{{ formData.nickname }}</div>
|
||||||
|
</div>
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<div class="info-item-title">用户电话:</div>
|
<div class="info-item-title">用户电话:</div>
|
||||||
<div class="info-item-info">{{ formData.mobile }}</div>
|
<div class="info-item-info">{{ formData.mobile }}</div>
|
||||||
|
@ -236,21 +264,21 @@ onUnmounted(() => {
|
||||||
<div class="info-item-title">用户类型:</div>
|
<div class="info-item-title">用户类型:</div>
|
||||||
<div class="info-item-info">
|
<div class="info-item-info">
|
||||||
<template v-if="updateShip == false">
|
<template v-if="updateShip == false">
|
||||||
<el-tag type="primary" v-if="formData.user_ship == 0">{{ formData.user_ship_name
|
<el-tag type="primary" size="large" v-if="formData.user_ship != 1">{{ formData.user_ship_name
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
<el-tag type="success" v-else>{{ formData.user_ship_name }}</el-tag>
|
<el-tag type="success" size="large" v-else>{{ formData.user_ship_name }}</el-tag>
|
||||||
<el-button v-if="isDisabled" type="primary" style="margin-left: 1rem;" size="small"
|
<el-button type="primary" style="margin-left: 1rem;"
|
||||||
@click="isDisabled = false">修改</el-button>
|
@click="updateShip = true">修改</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-select v-model="formDataInfo.user_ship" placeholder="请选择会员类型" style="width: 100%;">
|
<el-select v-model="formData.user_ship" placeholder="请选择用户类型" style="width: 10rem;">
|
||||||
<el-option v-for="item in userShip" :key="item.id" :label="item.title"
|
<el-option v-for="item in userShip" :key="item.id" :label="item.title"
|
||||||
:value="item.id" :disabled="item.id == 1" />
|
:value="item.id" :disabled="item.id == 1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button v-if="!isDisabled" type="primary" style="margin-left: 1rem;"
|
<el-button type="primary" style="margin-left: 1rem;"
|
||||||
@click="updateAddress">确认</el-button>
|
@click="updateUserShip">确认</el-button>
|
||||||
<el-button v-if="!isDisabled" style="margin-left: 1rem;"
|
<el-button style="margin-left: 1rem;"
|
||||||
@click="cancelUpdate">取消</el-button>
|
@click="cancelUserShip">取消</el-button>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -120,6 +120,7 @@ onUnmounted(()=>{
|
||||||
<div>余额: <span class="red">{{item.now_money}}</span></div>
|
<div>余额: <span class="red">{{item.now_money}}</span></div>
|
||||||
<div>采购款: <span class="red">{{item.purchase_funds}}</span></div>
|
<div>采购款: <span class="red">{{item.purchase_funds}}</span></div>
|
||||||
<div>待返还: <span class="red">{{item.return_money}}</span></div>
|
<div>待返还: <span class="red">{{item.return_money}}</span></div>
|
||||||
|
<div>礼品券: <span class="red">{{item.integral}}</span></div>
|
||||||
<div>
|
<div>
|
||||||
<el-tag type="primary" v-if="item.user_ship!=1">{{ item.user_ship_name }}</el-tag>
|
<el-tag type="primary" v-if="item.user_ship!=1">{{ item.user_ship_name }}</el-tag>
|
||||||
<el-tag type="success" v-else>{{ item.user_ship_name }}</el-tag>
|
<el-tag type="success" v-else>{{ item.user_ship_name }}</el-tag>
|
||||||
|
@ -206,7 +207,8 @@ onUnmounted(()=>{
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom {
|
.bottom>div{
|
||||||
|
margin-left: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.red {
|
.red {
|
||||||
|
|
Loading…
Reference in New Issue