Browse Source

删除订单部分

chillqi 2 years ago
parent
commit
5562ad6a6d

+ 0 - 2
src/api/_prefix.ts

@@ -8,5 +8,3 @@ export const STORE_MODULE= `${API_MODULE}/stores`
 export const PRODUCT_MODULE= `${API_MODULE}/products`
 //订单模块
 export const ORDER_MODULE= `${API_MODULE}/orders`
-//优惠券模块
-export const COUPON_MODULE= `${API_MODULE}/coupons`

+ 0 - 43
src/api/coupon.ts

@@ -1,43 +0,0 @@
-import {axios} from '../utils/request'
-import {COUPON_MODULE} from './_prefix'
-
-// 获取已有优惠券
-export const getCoupons = () => {
-    return axios.get(`${COUPON_MODULE}/`, )
-        .then(res => {
-            return res
-        })
-}
-
-// 查看优惠券组(剩余数量大于0、未领取过的优惠券组/门店下优惠券组/全部优惠券组)
-export const getCouponGroups = () => {
-    return axios.get(`${COUPON_MODULE}/group`, )
-        .then(res => {
-            return res
-        })
-}
-
-// 创建优惠券
-export const createCoupons = payload => {
-    return axios.post(`${COUPON_MODULE}/`, payload,
-        {headers: {'Content-Type': 'application/json'}})
-        .then(res => {
-            return res
-        })
-}
-
-// 领取优惠券
-export const receiveCouponGroup = couponGroupId => {
-    return axios.post(`${COUPON_MODULE}/receive/?couponGroupId=${couponGroupId}`)
-        .then(res => {
-            return res
-        })
-}
-
-// 获取门店下可用优惠券
-export const getAvailableCouponsByStoreId = storeId => {
-    return axios.get(`${COUPON_MODULE}/available/?storeId=${storeId}`)
-        .then(res => {
-            return res
-        })
-}

+ 2 - 10
src/api/order.ts

@@ -11,16 +11,8 @@ export const createOrder = payload => {
 }
 
 // 订单支付
-export const payOrder = (orderId, couponId) => {
-    return axios.post(`${ORDER_MODULE}/pay/?orderId=${orderId}&couponId=${couponId}`)
-        .then(res => {
-            return res
-        })
-}
-
-// 预计算价格
-export const calculateOrder = (orderId, couponId) => {
-    return axios.get(`${ORDER_MODULE}/calculate/?orderId=${orderId}&couponId=${couponId}`)
+export const payOrder = (orderId) => {
+    return axios.post(`${ORDER_MODULE}/pay/?orderId=${orderId}`)
         .then(res => {
             return res
         })

+ 1 - 7
src/components/Header.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import {router} from '../router'
-import {User, Discount, SwitchButton, Document} from "@element-plus/icons-vue"
+import {User, SwitchButton, Document} from "@element-plus/icons-vue"
 
 const role = sessionStorage.getItem('role')
 
@@ -60,12 +60,6 @@ function parseRole() {
         </router-link>
       </el-col>
 
-      <el-col :span="1" class="header-icon">
-        <router-link to="/allCoupon" v-slot="{navigate}">
-          <el-icon @click="navigate" :size="35" color="white" ><Discount /></el-icon>
-        </router-link>
-      </el-col>
-
       <el-col :span="1" class="header-icon">
         <router-link to="/dashboard" v-slot="{navigate}">
           <el-icon @click="navigate" :size="35" color="white" ><User /></el-icon>

+ 2 - 76
src/components/OrderItem.vue

@@ -1,8 +1,6 @@
 <script setup lang="ts">
 import {ref, computed} from "vue"
-import {ElTable} from "element-plus"
-import {deliverOrder, getOrder, getOrderById, payOrder, commentOrder, calculateOrder} from "../api/order.ts"
-import {getAvailableCouponsByStoreId} from "../api/coupon.ts"
+import {deliverOrder, getOrder, getOrderById, payOrder, commentOrder} from "../api/order.ts"
 
 const props = defineProps({
   orderId: {
@@ -33,8 +31,6 @@ const storeId = ref(0)
 const totalPrice = ref(0)
 const discountPrice = ref(0)
 
-const couponId = ref(0)
-
 getOrderDetail()
 
 function getOrderDetail() {
@@ -60,11 +56,10 @@ function getOrderDetail() {
 
 function handlePay() {
   orderDialogVisible.value = true
-  getAvailableCouponList()
 }
 
 function handleConfirmOrder() {
-  payOrder(props.orderId, couponId.value).then(res => {
+  payOrder(props.orderId).then(res => {
     if (res.code === '000') {
       ElMessage({
         message: '订单提交成功!',
@@ -84,7 +79,6 @@ function handleConfirmOrder() {
 
 function handlePayDialogClose() {
   orderDialogVisible.value = false
-  couponId.value = 0
 }
 
 function handleDeliver() {
@@ -156,41 +150,6 @@ function handleSendComment() {
   })
 }
 
-// 处理优惠券
-interface Coupon {
-  id: number
-  groupId: number
-  type: string
-  satisfaction: number
-  minus: number
-}
-
-const availableCouponList = ref<Coupon[]>([])
-const currentRow = ref()
-const singleTableRef = ref<InstanceType<typeof ElTable>>()
-
-function getAvailableCouponList() {
-  getAvailableCouponsByStoreId(storeId.value).then(res => {
-    availableCouponList.value = res.result
-  })
-}
-
-const handleCurrentChange = (val: Coupon | undefined) => {
-  if (val) {
-    couponId.value = val.id
-  } else {
-    couponId.value = 0
-  }
-  currentRow.value = val
-  calculateOrder(props.orderId, couponId.value).then(res => {
-    discountPrice.value = res.result
-  })
-}
-
-const setCurrent = (row?: User) => {
-  singleTableRef.value!.setCurrentRow(row)
-}
-
 function parsePaid() {
   if (paid.value === null) {
     return "暂未支付"
@@ -199,14 +158,6 @@ function parsePaid() {
   }
 }
 
-function parseCouponType(type) {
-  if (type === "FULL_REDUCTION") {
-    return "满减"
-  } else if (type === "SPECIAL") {
-    return "折扣"
-  }
-}
-
 function parseOrderType(type) {
   if (type === "PICKUP") {
     return "到店自提"
@@ -349,31 +300,6 @@ function parseNull(value) {
         </el-form-item>
         <el-form-item>
           <label>优惠券:</label>
-          <el-button @click="setCurrent()">不使用优惠券</el-button>
-          <el-table
-              ref="singleTableRef"
-              :data="availableCouponList"
-              highlight-current-row
-              style="width: 100%"
-              @current-change="handleCurrentChange"
-          >
-            <el-table-column type="index" width="50"/>
-            <el-table-column prop="type" label="类型" width="180">
-              <template #default="scope">
-                {{ parseCouponType(scope.row.type) }}
-              </template>
-            </el-table-column>
-            <el-table-column prop="satisfaction" label="满(元)" width="180">
-              <template #default="scope">
-                {{ parseNull(scope.row.satisfaction) }}
-              </template>
-            </el-table-column>
-            <el-table-column prop="minus" label="减(元)" width="180">
-              <template #default="scope">
-                {{ parseNull(scope.row.minus) }}
-              </template>
-            </el-table-column>
-          </el-table>
         </el-form-item>
         <el-form-item>
           <label>折扣后金额:</label>

+ 0 - 279
src/views/coupon/AllCoupon.vue

@@ -1,279 +0,0 @@
-<script setup lang="ts">
-import {computed, ref} from "vue";
-import {createCoupons, getCouponGroups, getCoupons, receiveCouponGroup} from "../../api/coupon.ts";
-import {userInfo} from "../../api/user.ts";
-
-const role = sessionStorage.getItem("role")
-const myCouponList = ref()
-const receiveCouponList = ref()
-const type = ref()
-const satisfaction = ref('')
-const minus = ref('')
-const rest = ref('')
-const storeName = ref()
-
-userInfo().then(res => {
-  storeName.value = res.result.storeName
-})
-
-const hasTypeInput = computed(() => type.value != null)
-const hasSatisfactionInput = computed(() => satisfaction.value != '')
-const hasMinusInput = computed(() => minus.value != '')
-const hasRestInput = computed(() => rest.value != '')
-
-const createCouponDisabled = computed(() => {
-  if (type.value === 'FULL_REDUCTION') {
-    return !(hasTypeInput.value && hasSatisfactionInput.value && hasMinusInput.value && hasRestInput.value);
-  } else if (type.value === 'SPECIAL') {
-    return !(hasTypeInput.value && hasRestInput.value);
-  } else {
-    return true;
-  }
-})
-
-const couponDialogVisible = ref(false)
-
-function toCreateCoupon() {
-  couponDialogVisible.value = true
-}
-
-function handleCloseCouponDialog() {
-  type.value = null
-  satisfaction.value = ''
-  minus.value = ''
-  rest.value = ''
-  couponDialogVisible.value = false
-}
-
-function handleCreateCoupon() {
-  const payload = {
-    type: type.value,
-    satisfaction: satisfaction.value,
-    minus: minus.value,
-    rest: rest.value
-  }
-  couponDialogVisible.value = false
-  createCoupons(payload).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '创建优惠券成功!',
-        type: 'success',
-        center: true,
-      })
-      getReceiveCouponList()
-      type.value = ''
-      satisfaction.value = null
-      minus.value = null
-      rest.value = null
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-getCoupons().then(res => {
-  myCouponList.value = res.result
-})
-
-getCouponGroups().then(res => {
-  receiveCouponList.value = res.result
-})
-
-function parseType(type) {
-  if (type === "FULL_REDUCTION") {
-    return "满减"
-  } else if (type === "SPECIAL") {
-    return "折扣"
-  }
-}
-
-function parseNull(value) {
-  if (value === null) {
-    return "/"
-  } else {
-    return value
-  }
-}
-
-function receiveCoupon(couponGroupId) {
-  receiveCouponGroup(couponGroupId).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '获取优惠券成功!',
-        type: 'success',
-        center: true,
-      })
-      getMyCouponList()
-      getReceiveCouponList()
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-</script>
-
-
-<template>
-  <div>
-    <el-button @click="toCreateCoupon()" v-if="role === 'MANAGER' || role === 'STAFF'"
-               class="create-coupon-button" type="primary" plain>
-      新增优惠券
-    </el-button>
-
-    <el-dialog v-model="couponDialogVisible" title="创建优惠券" :before-close="handleCloseCouponDialog">
-      <el-form label-width="100px" class="create-coupon-form">
-        <el-form-item label="应用范围:">
-          <span v-if="role === 'MANAGER'">全平台</span>
-          <span v-if="role === 'STAFF'">{{ storeName }}</span>
-        </el-form-item>
-
-        <el-form-item label="类型:" for="type">
-          <el-select id="identity"
-                     v-model="type"
-                     placeholder="请选择"
-          >
-            <el-option value="FULL_REDUCTION" label="满减"/>
-            <el-option value="SPECIAL" label="折扣"/>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="满:" for="satisfaction" v-if="type === 'FULL_REDUCTION'">
-          <el-input id="satisfaction" v-model="satisfaction"
-                    required placeholder="请输入金额" class="create-coupon-dialog-input">
-            <template #append>元</template>
-          </el-input>
-        </el-form-item>
-
-        <el-form-item label="减:" for="minus" v-if="type === 'FULL_REDUCTION'">
-          <el-input id="minus" v-model="minus" required placeholder="请输入金额"
-                    class="create-coupon-dialog-input">
-            <template #append>元</template>
-          </el-input>
-        </el-form-item>
-
-        <el-alert v-if="type === 'SPECIAL'"
-                  title="“蓝鲸券”使用规则:" type="success" :closable="false" class="special-alert">
-          * 0-100元区间打九五折;<br>
-          * 200-300元区间打八五折;<br>
-          * 300-400元区间打八折;<br>
-          * 400-500元区间打七五折;<br>
-          * 500元以上区间打七折。<br>
-        </el-alert>
-
-        <el-form-item label="数量:" for="rest">
-          <el-input id="rest" v-model="rest" required placeholder="请输入数量"
-                    class="create-coupon-dialog-input">
-            <template #append>张</template>
-          </el-input>
-        </el-form-item>
-
-        <el-button @click.prevent="handleCreateCoupon()" :disabled="createCouponDisabled"
-                   type="primary" plain>
-          创建
-        </el-button>
-
-      </el-form>
-    </el-dialog>
-
-    <div class="all-coupon-main">
-      <div v-if="role === 'CUSTOMER'">
-        <span class="this-title">我的优惠券</span>
-        <el-table :data="myCouponList" stripe class="coupon-table">
-          <el-table-column type="index" width="50"/>
-          <el-table-column prop="storeName" label="所属商店" width="180"/>
-          <el-table-column prop="type" label="类型" width="180">
-            <template #default="scope">
-              {{ parseType(scope.row.type) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="satisfaction" label="满(元)" width="180">
-            <template #default="scope">
-              {{ parseNull(scope.row.satisfaction) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="minus" label="减(元)" width="180">
-            <template #default="scope">
-              {{ parseNull(scope.row.minus) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="used" label="状态" width="180">
-            <template #default="scope">
-              <el-tag v-if="scope.row.used === false" type="success">待使用</el-tag>
-              <el-tag v-if="scope.row.used === true" type="info">已使用</el-tag>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-
-      <div>
-        <span class="this-title" v-if="role === 'CUSTOMER'">可获取优惠券</span>
-        <span class="this-title" v-if="role === 'MANAGER'">全部优惠券</span>
-        <span class="this-title" v-if="role === 'STAFF'">门店下优惠券</span>
-        <el-table :data="receiveCouponList" stripe class="coupon-table">
-          <el-table-column type="index" width="50"/>
-          <el-table-column prop="storeName" label="所属商店" width="180"/>
-          <el-table-column prop="type" label="类型" width="180">
-            <template #default="scope">
-              {{ parseType(scope.row.type) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="satisfaction" label="满(元)" width="180">
-            <template #default="scope">
-              {{ parseNull(scope.row.satisfaction) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="minus" label="减(元)" width="180">
-            <template #default="scope">
-              {{ parseNull(scope.row.minus) }}
-            </template>
-          </el-table-column>
-          <el-table-column prop="rest" label="剩余数量(张)" width="180"/>
-          <el-table-column label="操作" v-if="role === 'CUSTOMER'">
-            <template #default="scope">
-              <el-button @click="receiveCoupon(scope.row.id)" type="primary" plain>领取</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </div>
-</template>
-
-
-<style scoped>
-.create-coupon-button {
-  width: 100px;
-  margin-left: 20px;
-  margin-top: 30px;
-}
-
-.create-coupon-form {
-  width: 60%;
-}
-
-.special-alert {
-  margin-bottom: 15px;
-}
-
-.all-coupon-main {
-  margin-left: 20px;
-  margin-top: 20px;
-}
-
-.this-title {
-  font-size: large;
-  margin-bottom: 20px;
-}
-
-.coupon-table {
-  margin-bottom: 30px;
-}
-</style>

+ 4 - 80
src/views/product/ProductDetail.vue

@@ -1,11 +1,9 @@
 <script setup lang="ts">
-import {ref, onMounted, computed} from "vue"
+import {ref, computed} from "vue"
 import {router} from '../../router'
 import {Back} from "@element-plus/icons-vue"
-import {ElTable} from "element-plus"
 import {addStock, getProductById} from "../../api/product.ts"
-import {calculateOrder, createOrder, payOrder} from "../../api/order.ts"
-import {getAvailableCouponsByStoreId} from "../../api/coupon.ts"
+import {createOrder, payOrder} from "../../api/order.ts"
 import {getCommentsById} from "../../api/product.ts"
 import CommentItem from "../../components/CommentItem.vue"
 
@@ -33,7 +31,6 @@ const handleChange = () => {
 const type = ref()
 const orderDialogVisible = ref(false)
 const orderId = ref()
-const couponId = ref(0)
 const addStockNumber = ref('')
 
 const hasTypeInput = computed(() => type.value != null)
@@ -107,7 +104,6 @@ function handleCreateOrder() {
         type: 'success',
         center: true,
       })
-      getAvailableCouponList()
       orderId.value = res.result.id
       orderDialogVisible.value = true
       discountPrice.value = totalPrice.value
@@ -123,13 +119,14 @@ function handleCreateOrder() {
 
 // 确定订单按钮
 function handleConfirmOrder() {
-  payOrder(orderId.value, couponId.value).then(res => {
+  payOrder(orderId.value).then(res => {
     if (res.code === '000') {
       ElMessage({
         message: '订单提交成功!',
         type: 'success',
         center: true,
       })
+      orderDialogVisible.value = false
     } else if (res.code === '400') {
       ElMessage({
         message: res.msg,
@@ -142,46 +139,6 @@ function handleConfirmOrder() {
 
 function handlePayDialogClose() {
   orderDialogVisible.value = false
-  couponId.value = 0
-}
-
-onMounted(() => {
-  showForm.value = true // 组件加载后显示表单
-})
-
-// 处理优惠券
-interface Coupon {
-  id: number
-  groupId: number
-  type: string
-  satisfaction: number
-  minus: number
-}
-
-const availableCouponList = ref<Coupon[]>([])
-const currentRow = ref()
-const singleTableRef = ref<InstanceType<typeof ElTable>>()
-
-function getAvailableCouponList() {
-  getAvailableCouponsByStoreId(storeId.value).then(res => {
-    availableCouponList.value = res.result
-  })
-}
-
-const setCurrent = (row?: User) => {
-  singleTableRef.value!.setCurrentRow(row)
-}
-
-const handleCurrentChange = (val: Coupon | undefined) => {
-  if (val) {
-    couponId.value = val.id
-  } else {
-    couponId.value = 0
-  }
-  currentRow.value = val
-  calculateOrder(orderId.value, couponId.value).then(res => {
-    discountPrice.value = res.result
-  })
 }
 
 function parseCategory(category) {
@@ -210,14 +167,6 @@ function parseOrderType(type) {
   }
 }
 
-function parseCouponType(type) {
-  if (type === "FULL_REDUCTION") {
-    return "满减"
-  } else if (type === "SPECIAL") {
-    return "折扣"
-  }
-}
-
 function parseNull(value) {
   if (value === null) {
     return "/"
@@ -360,31 +309,6 @@ function toBackPage() {
           </el-form-item>
           <el-form-item>
             <label for="type">优惠券:</label>
-            <el-button @click="setCurrent()">不使用优惠券</el-button>
-            <el-table
-                ref="singleTableRef"
-                :data="availableCouponList"
-                highlight-current-row
-                style="width: 100%"
-                @current-change="handleCurrentChange"
-            >
-              <el-table-column type="index" width="50"/>
-              <el-table-column prop="type" label="类型" width="180">
-                <template #default="scope">
-                  {{ parseCouponType(scope.row.type) }}
-                </template>
-              </el-table-column>
-              <el-table-column prop="satisfaction" label="满(元)" width="180">
-                <template #default="scope">
-                  {{ parseNull(scope.row.satisfaction) }}
-                </template>
-              </el-table-column>
-              <el-table-column prop="minus" label="减(元)" width="180">
-                <template #default="scope">
-                  {{ parseNull(scope.row.minus) }}
-                </template>
-              </el-table-column>
-            </el-table>
           </el-form-item>
 
           <el-form-item>