liyongli 2 rokov pred
rodič
commit
9cd24d0717

+ 46 - 2
src/api/index.js

@@ -208,10 +208,10 @@ export function getCoffeeTypes(){
   });
 }
 
-export function getAddrees(){
+export function getAddrees(data){
   return ajax({
     urlType: "coffee",
-    url: `/addressList`,
+    url: `/addressList?phone=${data.phone}`,
     method: "GET",
   });
 }
@@ -223,3 +223,47 @@ export function getAddreesOne(){
     method: "GET",
   });
 }
+
+export function pushOrder(data){
+  return ajax({
+    urlType: "coffee",
+    url: `/pushOrder`,
+    method: "POST",
+    data
+  });
+}
+
+export function pushAddress(data){
+  return ajax({
+    urlType: "coffee",
+    url: `/addressPush`,
+    method: "POST",
+    data
+  });
+}
+
+export function editAddress(data){
+    return ajax({
+        urlType: "coffee",
+        url: `/addressEdit`,
+        method: "POST",
+        data
+      });
+}
+
+export function deleteAddress(data){
+    return ajax({
+        urlType: "coffee",
+        url: `/addressDetele`,
+        method: "DELETE",
+        data
+      });
+}
+
+export function listOrder(data){
+    return ajax({
+        urlType: "coffee",
+        url: `/listOrder?page=${data.page}&size=${data.size}`,
+        method: "GET",
+      });
+}

+ 1 - 1
src/utils/tool.js

@@ -44,7 +44,7 @@ export async function getUser() {
   let search = urlSearchData();
   // if (!search.ticket) return;
   const loginName = await getAPPUser({
-    ticket: search.ticket || "5743649465927746567",
+    ticket: search.ticket || "-370678896315970136",
   });
   let APPToken = await getAPPToken("rest/63bada00-7d01-4acc-ab2b-df8061eeeb8f");
   let APPUserDetail = await getAPPUserDetail({ loginName });

+ 32 - 4
src/views/coffee/contacts/edit_add.vue

@@ -11,7 +11,8 @@
 </template>
 
 <script>
-import { AddressEdit as VanAddressEdit, Toast } from "vant";
+import { pushAddress, editAddress, deleteAddress } from "@/api/index";
+import { AddressEdit as VanAddressEdit } from "vant";
 import "vant/lib/address-list/style/index";
 import "vant/lib/toast/style/index";
 export default {
@@ -34,12 +35,39 @@ export default {
   methods: {
     onSave(e) {
       // 保存/新增地址
-      console.log(e);
-      Toast("save");
+      !this.item.id &&
+        pushAddress({
+          address_phone: e.tel || "",
+          address_name: e.name || "",
+          address_detail: e.addressDetail || "",
+        }).then(r => {
+          console.log(r);
+          localStorage.setItem("addr", JSON.stringify(r || "{}"));
+          this.$router.go(-2);
+        });
+      this.item.id &&
+        editAddress({
+          address_phone: e.tel || "",
+          address_name: e.name || "",
+          address_detail: e.addressDetail || "",
+          address_id: this.item.id,
+        }).then(r => {
+          console.log(r);
+          this.$router.go(-1);
+        });
     },
     onDelete() {
       // 删除地址
-      Toast("delete");
+      let t = JSON.parse(localStorage.getItem("addr") || "{}");
+
+      if (!this.item.id) return;
+      deleteAddress({
+        address_id: this.item.id,
+      }).then(r => {
+        console.log(r);
+        this.item.id == t.id && localStorage.setItem("addr", "{}");
+        this.$router.go(-1);
+      });
     },
   },
   beforeUnmount: function () {},

+ 11 - 2
src/views/coffee/contacts/list.vue

@@ -25,7 +25,11 @@ export default {
     };
   },
   mounted() {
-    getAddrees().then(r => {
+    const t = JSON.parse(localStorage.getItem("user") || "{}");
+    const addr = JSON.parse(localStorage.getItem("addr") || "{}");
+    getAddrees({
+      phone: t.telNumber,
+    }).then(r => {
       this.list = (r || []).map(v => {
         let p = {
           id: v.address_id + "",
@@ -34,8 +38,9 @@ export default {
           address: v.address_detail,
         };
         if (v.address_isDefault == 1) p.idDefault = v.address_isDefault == 1;
-        return p
+        return p;
       });
+      this.chosenAddressId = (addr.address_id || this.list[0].id || "1").toString();
     });
   },
   computed: {},
@@ -74,5 +79,9 @@ export default {
   width: 100vw;
   height: 100vh;
   background-color: #eee;
+  overflow-y: auto;
+}
+.van-address-list {
+  height: auto;
 }
 </style>

+ 25 - 9
src/views/coffee/drinks/index.vue

@@ -12,7 +12,7 @@
     </div>
     <div class="body">
       <van-search shape="round" v-model="value" placeholder="搜索商品" />
-      <div ref="main" class="main">
+      <div @scroll="scrollMain" ref="main" class="main">
         <van-card
           v-for="(item, index) in list"
           :key="item.goods_title + index"
@@ -113,7 +113,8 @@ import sku from "./components/sku.vue";
 import i1 from "@/assets/icon/i1.png";
 
 const size = 10;
-let page = 1;
+let page = 1,
+  time = undefined;
 
 export default {
   name: "drinks",
@@ -136,12 +137,6 @@ export default {
       "type=" + this.activeKey + "&page=" + page + "&size=" + size
     ).then(r => (this.list = r || []));
     getCoffeeTypes().then(r => (this.sidlist = r || []));
-
-    this.$refs.main.onscroll = () => {
-      const ele = this.$refs.main || undefined;
-      if (ele.scrollHeight - ele.scrollTop - ele.clientHeight > 30) return;
-      console.log(ele.scrollTop + ele.clientHeight, ele.scrollHeight);
-    };
   },
   computed: {},
   methods: {
@@ -175,7 +170,9 @@ export default {
     },
 
     goodsChange(item) {
-      let listIndex = (this.list || []).findIndex(r => r.goods_id == item.goods_id);
+      let listIndex = (this.list || []).findIndex(
+        r => r.goods_id == item.goods_id
+      );
       if (listIndex != -1) this.list[listIndex].num = item.num;
       let selectItemIndex = (this.selectItem || []).findIndex(
         r => r.goods_id == item.goods_id
@@ -219,6 +216,25 @@ export default {
         },
       });
     },
+
+    scrollMain(event) {
+      const ele = event.target;
+      if (
+        ele.scrollHeight - ele.scrollTop - ele.clientHeight > 30 ||
+        time === -1
+      )
+        return;
+      if (time) clearTimeout(time);
+      time = setTimeout(() => {
+        getCoffeeGoods(
+          "type=" + this.activeKey + "&page=" + ++page + "&size=" + size
+        ).then(r => {
+          this.list = this.list.concat(r || []);
+          if (r && r.length >= 10) return;
+          time = -1;
+        });
+      }, 200);
+    },
   },
   beforeUnmount: function () {},
   components: {

+ 22 - 4
src/views/coffee/order/index.vue

@@ -13,18 +13,24 @@
     <van-card
       v-for="(item, index) in list"
       :key="item.title + index"
-      :desc="item.goods_subTitle" 
+      :desc="item.goods_subTitle"
       :title="item.goods_title"
       :thumb="item.goods_url"
       :num="item.num"
     >
       <template #price> ¥{{ item.goods_price }}{{ item.goods_com }} </template>
     </van-card>
-    <van-submit-bar :price="priceTotal" button-text="提交订单" @submit="onSubmit" />
+    <van-submit-bar
+      :price="priceTotal"
+      button-text="提交订单"
+      @submit="onSubmit"
+    />
   </div>
 </template>
 
 <script>
+import { pushOrder } from "@/api/index";
+
 import {
   Card as VanCard,
   ContactCard as VanContactCard,
@@ -62,8 +68,20 @@ export default {
       this.$router.push("/coffeeAddList");
     },
     onSubmit() {
-      console.log("sub");
-      this.$router.push("/coffee/orders?active=1")
+      pushOrder({
+        order_name: this.addr.name,
+        order_phone: this.addr.tel,
+        address_id: this.addr.id,
+        goods: (this.list || []).map(v=>{
+            return {
+                'goods_orders_quantity': v.num,
+                'goods_orders_price': v.goods_price,
+                'goods_orders_goods_id': v.goods_id
+            }
+        }),
+      }).then(() => {
+        this.$router.replace("/coffee/orders?active=1");
+      });
     },
   },
   beforeUnmount: function () {},

+ 5 - 0
src/views/coffee/orders/index.vue

@@ -16,6 +16,8 @@
 </template>
 
 <script>
+let size = 10, page= 1;
+import { listOrder } from "@/api/index";
 import {
   Tab as VanTab,
   Tabs as VanTabs,
@@ -36,6 +38,9 @@ export default {
   },
   mounted() {
     this.active = Number(this.$route.query.active || 0);
+    listOrder({ size, page }).then(r => {
+      console.log(r);
+    });
   },
   computed: {},
   methods: {