From 4ebb7babe7e392d62662d09f97f48647c114cc5f Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 29 五月 2023 14:37:47 +0800
Subject: [PATCH] 45
---
src/views/jifenShangCheng/components/myOrder.vue | 133 ++++++++++++++++++++++++++
src/views/login/index.vue | 45 +++++---
src/views/jifenShangCheng/components/dizhi.vue | 1
src/utils/axios.ts | 12 +-
src/views/jifenShangCheng/components/gouwuche.vue | 30 +++++
src/views/jifenShangCheng/index.vue | 62 ++++++++++-
6 files changed, 248 insertions(+), 35 deletions(-)
diff --git a/src/utils/axios.ts b/src/utils/axios.ts
index dfaec74..743aeca 100644
--- a/src/utils/axios.ts
+++ b/src/utils/axios.ts
@@ -69,16 +69,14 @@
instance.interceptors.response.use(
(response: AxiosResponse) => {
const { data, status } = response
- const { message } = data
+ console.log(status)
+ const { message,code } = data
// 请求正常时,仅返回需要用到的 data 信息即可
- if (message==='SUCCESS') return data.data
+ if (code===200) return data.data
// 1、对于一些请求正常,但后台处理失败的内容进行拦截,返回对应错误信息
alert(message || '请求异常,请刷新重试')
- return {
- code: status,
- message: message || '请求异常,请刷新重试',
- result: data
- }
+ return Promise.reject(data.data)
+
},
(error: AxiosError) => {
return error.response ? errorHandle(error) : Promise.reject(error)
diff --git a/src/views/jifenShangCheng/components/dizhi.vue b/src/views/jifenShangCheng/components/dizhi.vue
index 2727f31..c8a2287 100644
--- a/src/views/jifenShangCheng/components/dizhi.vue
+++ b/src/views/jifenShangCheng/components/dizhi.vue
@@ -81,6 +81,7 @@
console.log('默认地址')
console.log(re)
if (re.list.length===0){
+ list.value=[]
onAdd()
} else {
list.value=[]
diff --git a/src/views/jifenShangCheng/components/gouwuche.vue b/src/views/jifenShangCheng/components/gouwuche.vue
index 7c5a6c1..a95a7a0 100644
--- a/src/views/jifenShangCheng/components/gouwuche.vue
+++ b/src/views/jifenShangCheng/components/gouwuche.vue
@@ -92,7 +92,7 @@
</template>
<script setup lang="ts">
import { ajaxPost } from '@/utils/axios'
- import { Toast } from 'vant'
+ import { Toast } from 'vant'
import { watch } from 'vue'
import { computed } from 'vue'
import { ref } from 'vue'
@@ -215,7 +215,33 @@
}
const jieshuan=()=>{
- alert('结算')
+ console.log(gwcList.value,defaultDizhi.value)
+ const listCode: any[]=[]
+ gwcList.value.forEach((el:any)=>{
+ if (el.checked){
+ listCode.push(el.code)
+ }
+ })
+ if (listCode.length===0){
+ Toast('没有选中要结算的商品')
+ return false
+ }
+ const pasm=`cartCodes=${listCode.toString()}&addressCode=${defaultDizhi.value.code}`
+ console.log(pasm)
+ ajaxPost('/eshop/order/checkout',pasm)
+ .then((re:any)=>{
+ console.log(re)
+ if (re==='OK'){
+ Toast.success('您已经兑换成功')
+ } else {
+ Toast('兑换失败')
+ }
+
+ }).catch((error)=>{
+ console.log(error)
+ Toast('兑换失败')
+ })
+
}
const getDefDizhi=()=>{
const pasm=`page=0&size=0&wherecondition=patient_is_default=1 and patient_code="${userInfo.patient.patientInfo.code}"`
diff --git a/src/views/jifenShangCheng/components/myOrder.vue b/src/views/jifenShangCheng/components/myOrder.vue
new file mode 100644
index 0000000..4dd8c0f
--- /dev/null
+++ b/src/views/jifenShangCheng/components/myOrder.vue
@@ -0,0 +1,133 @@
+<template>
+ <div>
+ <van-popup v-model:show="show" position="bottom" :style="{ height: '100%' }">
+ <van-nav-bar
+ title="我的订单"
+ left-text="返回"
+ left-arrow
+ @click-left="show = false"
+ />
+ <div style="padding: 10px;">
+ <van-tabs v-model:active="active">
+ <van-tab :name="0" title="待发货"></van-tab>
+ <van-tab :name="1" title="已发货"></van-tab>
+ <van-tab :name="2" title="已签收"></van-tab>
+ <van-tab :name="-1" title="已取消"></van-tab>
+ </van-tabs>
+ <div class="parent " v-for="(order,index) in orderList" :key="index">
+ <div class="parentzi" v-for="(item) in order.items" :key="item.id">
+ <div>
+ <van-image
+ fit="contain"
+ width="100%"
+ height="3.5rem"
+ :src="item.itemPhoto"
+ />
+ </div>
+ <div style="padding-left: 10px;">
+ <div style="height: 2rem; line-height: 2rem; color: #409eff;">{{item.itemName}}x{{item.itemCount}}</div>
+
+ <div style="height: 2rem;">
+ <van-row>
+ <van-col :span="12" style="color: #f56c6c;">¥{{Number(item.itemPrice) * Number(item.itemCount)}}</van-col>
+ </van-row>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div style="height: 2rem; padding-left: 10px;">
+ <van-row style="color: #e6a23c;">
+ <van-icon size="20px" color="#E6A23C" name="free-postage" />{{order.recvName}}-{{order.recvMobile}}-{{ order.recvAddress}}
+ </van-row>
+ </div>
+ <div style="height: 2rem; padding-left: 10px;">
+ <van-row>
+ <van-col :span="12" style="padding-left: 10px; color: #f56c6c;">
+ 合计:{{funheji(order)}}
+ </van-col>
+ <van-col :span="12" v-if="order.orderStatus === 0" style="text-align: right;padding-right: 20px; color: #909399;">
+ <span @click="quxiao(order)">取消</span>
+ </van-col>
+ </van-row>
+ </div>
+ </div>
+ </div>
+ </div>
+ </van-popup>
+ </div>
+</template>
+<script setup lang="ts">
+ import { ref } from 'vue'
+ import { ajaxPost } from '@/utils/axios'
+ import { userInfoStore } from '@/stores/userInfo'
+ import { watch } from 'vue'
+ import { Dialog, Toast } from 'vant'
+ const userInfo = userInfoStore()
+ const show=ref(false)
+ const active=ref(0)
+ const orderList=ref(<any>[])
+ const openShow=()=>{
+ show.value=true
+ getOrders()
+ }
+ const quxiao=(item:any)=>{
+ Dialog.confirm({
+ title: '提示',
+ message:
+ '您确认要取消该条订单',
+ })
+ .then(() => {
+ const pasm={
+ code:item.code,
+ id:item.id,
+ orderStatus:-1
+ }
+ ajaxPost('/eshop/order/update',pasm).then((re:any)=>{
+ console.log(re)
+ Toast.success('订单取消成功')
+ getOrders()
+ })
+ })
+ .catch(() => {
+ Toast('已取消操作')
+ })
+
+ }
+ const getOrders=()=>{
+ const pasm=`page=0&size=0&wherecondition=patient_code=\'${userInfo.patient.patientInfo.code}\' and order_status=${active.value}`
+ ajaxPost('/eshop/order/list',pasm).then((re:any)=>{
+ console.log(re)
+ orderList.value=re.list
+ })
+
+ }
+ watch(()=>active.value,()=>{
+ getOrders()
+ })
+ const funheji=(row:any)=>{
+ let numb=0
+ row.items.forEach((e:any)=>{
+ numb+= Number(e.itemPrice)*Number(e.itemCount)
+ })
+ return numb
+ }
+ defineExpose({
+ openShow
+ })
+</script>
+<style>
+.parent {
+ border: 1px solid #cdd0d6;
+ border-radius: 10px;
+ margin-top: 10px;
+}
+
+.parentzi {
+ padding-top: 10px;
+ padding-left: 5px;
+ height: 4rem;
+ display: grid;
+ grid-template-columns: minmax(30%, 30%) 1fr;
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/jifenShangCheng/index.vue b/src/views/jifenShangCheng/index.vue
index af25a31..b03180e 100644
--- a/src/views/jifenShangCheng/index.vue
+++ b/src/views/jifenShangCheng/index.vue
@@ -11,8 +11,15 @@
:items="items"
>
<template #content>
- <div style="text-align: right; padding-right: 15px; height: 50px; line-height: 30px; color: #409eff; font-size: 16px;">
- <van-icon @click="openGwc" size="26px" name="cart-circle-o" style="margin-top: 20px;" />
+ <div
+ style="border-bottom: #e6e8eb solid 1px; text-align: right;
+ padding-right: 15px; height: 50px;
+ line-height: 30px; color: #409eff;
+ font-size: 16px;">
+ <!-- 订单 -->
+ <van-icon @click="openOrder" size="26px" name="balance-list-o" color="#67C23A" style="margin-top: 10px; margin-right: 20px;" />
+ <!-- 购物车 -->
+ <van-icon @click="openGwc" size="26px" name="cart-circle-o" color="#F56C6C" style="margin-top: 10px;" />
</div>
<div v-if="items.length > 0" style="border-left: 1px solid rgb(229, 226, 225); background: #f7f8fa;">
<van-card
@@ -54,8 +61,11 @@
<van-icon size="40px" color="#E6A23C" name="location-o" />
</van-col>
<van-col :span="20" style="font-size: 16px; padding-left: 10px; height: 60px; line-height: 30px;">
- <div>{{defaultDizhi.patientAddress}} </div>
- <div>联系电话:{{defaultDizhi.receivePersonMobile}} </div>
+ <div v-if="defaultDizhi.patientAddress !== ''">{{defaultDizhi.patientAddress}} </div>
+ <div v-if="defaultDizhi.patientAddress !== ''">联系电话:{{defaultDizhi.receivePersonMobile}} </div>
+ <div @click="openDizhi" v-else style="margin-top: 18px; color: #e6a23c;">
+ 请设置你的收货地址
+ </div>
</van-col>
<van-col :span="2" style="height: 60px; line-height: 60px;">
<van-icon size="20px" @click="openDizhi" name="arrow" />
@@ -73,7 +83,7 @@
<template #thumb>
<van-image
style="border: 1px solid #ebedf0;"
- fit="cover"
+ fit="contain"
width="100%"
height="100%"
:src="setItem.itemPhoto"
@@ -105,7 +115,7 @@
<van-action-bar-icon icon="revoke" @click="show = false" text="返回" dot />
<van-action-bar-icon icon="cart-o" text="购物车" :badge="gwcBadge" />
<van-action-bar-button @click="AddGwc" type="warning" text="加入购物车" />
- <van-action-bar-button type="danger" text="立即购买" />
+ <van-action-bar-button type="danger" @click="liJiGouMai" text="立即购买" />
</van-action-bar>
</van-popup>
</div>
@@ -115,6 +125,9 @@
</div>
<div>
<gouwuche ref="gouwucheRef"></gouwuche>
+ </div>
+ <div>
+ <myOrder ref="myOrderRef"></myOrder>
</div>
<van-tabbar v-model="active" @change="tabChang">
<van-tabbar-item name="home" icon="like">首页</van-tabbar-item>
@@ -129,6 +142,7 @@
import { useWindowSize } from '@vant/use'
import dizhi from '../jifenShangCheng/components/dizhi.vue'
import gouwuche from './components/gouwuche.vue'
+ import myOrder from './components/myOrder.vue'
import { userInfoStore } from '@/stores/userInfo'
const userInfo = userInfoStore()
import { ajaxPost} from '@/utils/axios'
@@ -137,6 +151,7 @@
const router=useRouter()
const { height } = useWindowSize()
const dizhiRef=ref()
+ const myOrderRef=ref()
const gouwucheRef=ref()
const show=ref(false)
const loading=ref(true)
@@ -172,6 +187,9 @@
const openGwc=()=>{
gouwucheRef.value.openShow()
}
+ const openOrder=()=>{
+ myOrderRef.value.openShow()
+ }
const tabChang=(index:any)=>{
if (index==='home'){
router.push('/')
@@ -199,7 +217,7 @@
})
}
- // 购买
+ // 打开购买
const goumai=(item:any)=>{
console.log(item)
setItem.value={
@@ -210,7 +228,35 @@
itemPhoto:item.itemPhoto,
id:item.id
}
- show.value=true
+ AddGwc()
+ // show.value=true
+ }
+ // 立即购买
+ const liJiGouMai=()=>{
+ if (defaultDizhi.value.id>0){
+ console.log(setItem.value,defaultDizhi.value)
+ const pasm={
+ addressCode:defaultDizhi.value.code,
+ cartCodes:setItem.value.code
+ }
+ console.log(pasm)
+ ajaxPost('/eshop/order/checkout',`addressCode=${defaultDizhi.value.code}&cartCodes=${setItem.value.code}`)
+ .then(re=>{
+ console.log(re)
+ if (re.data==='OK'){
+ Toast.success('您已经兑换成功')
+ } else {
+ Toast('兑换失败')
+ }
+
+ }).catch((error)=>{
+ console.log(error)
+ Toast('兑换失败')
+ })
+ } else {
+ Toast('请先选择您的收货地址')
+ }
+
}
// 编辑地址
const openDizhi=()=>{
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 5c74b1e..e8c2525 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -11,7 +11,7 @@
const config={
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
- },
+ }
}
const userInfo = userInfoStore()
const route = useRoute()
@@ -123,6 +123,7 @@
return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === 'micromessenger'
}
onMounted(()=>{
+ Session.remove('token')
if (isWechat()){
console.log('初始化',route)
const queryInfo=route.query
@@ -198,15 +199,15 @@
name="密 码"
label="密  码"
placeholder="6-16位数字或者字母组合"
-
+
>
<template #button>
<van-button size="small" type="default" @click="wjmm">忘记密码</van-button>
</template>
</van-field>
</van-cell-group>
- <div style="margin: 16px;text-align:center;">
- <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769AFF;">网站服务条款、法律声明及隐私权政策</b></div>
+ <div style="margin: 16px;text-align: center;">
+ <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769aff;">网站服务条款、法律声明及隐私权政策</b></div>
<van-button :loading="loadingBUt" round block type="primary" native-type="submit">
登 录
</van-button>
@@ -233,14 +234,14 @@
</template>
</van-field>
</van-cell-group>
- <div style="margin: 16px;text-align:center;">
- <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769AFF;">网站服务条款、法律声明及隐私权政策</b></div>
+ <div style="margin: 16px;text-align: center;">
+ <div class="tss"><van-icon name="circle" /> 登录即视为已经阅读并同意<b style="color: #769aff;">网站服务条款、法律声明及隐私权政策</b></div>
<van-button :loading="loadingBUt" round block type="primary" native-type="submit">
登 录
</van-button>
</div>
</van-form>
- <van-row class="loginType">
+ <van-row class="logintype">
<div class="toptype">
<van-divider
:style="{ color: '#1989fa', borderColor: '#1989fa', padding: '0 16px' }"
@@ -326,43 +327,51 @@
</div>
</template>
<style lang="scss">
-.login{
+.login {
width: 100%;
min-height: 900px;
}
-.logintt{
+
+.logintt {
text-align: center;
}
-.loginwenz{
+
+.loginwenz {
font-size: 12px;
font-weight: 400;
- color: #AAAAAA;
+ color: #aaa;
}
-.loginType{
+
+.logintype {
width: 100%;
margin-top: 120px;
text-align: center;
font-size: 11px;
font-weight: 400;
- color: #AAAAAA;
+ color: #aaa;
+
// background: black;
- .toptype{
+ .toptype {
width: 100%;
}
}
-.titlebiaoti{
+
+.titlebiaoti {
padding-top: 70px;
- text-align:center;
+ text-align: center;
padding-left: 30px;
+
// border: 1px solid black;
font-size: 15px;
padding-bottom: 70px;
}
-.tss{
+
+.tss {
font-size: 10px;
font-weight: 400;
- color: #AAAAAA;
+ color: #aaa;
height: 50px;
+
// line-height: 50px;
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0