Jelajahi Sumber

刚刚是删除优惠券部分,现在才是删除订单部分

chillqi 2 tahun lalu
induk
melakukan
8e3f3802ef

+ 0 - 1
components.d.ts

@@ -40,7 +40,6 @@ declare module 'vue' {
     ElUpload: typeof import('element-plus/es')['ElUpload']
     Footer: typeof import('./src/components/Footer.vue')['default']
     Header: typeof import('./src/components/Header.vue')['default']
-    OrderItem: typeof import('./src/components/OrderItem.vue')['default']
     ProductItem: typeof import('./src/components/ProductItem.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']

+ 1 - 7
src/components/Header.vue

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

+ 0 - 366
src/components/OrderItem.vue

@@ -1,366 +0,0 @@
-<script setup lang="ts">
-import {ref, computed} from "vue"
-import {deliverOrder, getOrder, getOrderById, payOrder, commentOrder} from "../api/order.ts"
-
-const props = defineProps({
-  orderId: {
-    type: Number,
-    required: true
-  }
-})
-
-const role = sessionStorage.getItem("role")
-
-const orderDialogVisible = ref(false)
-const commentDialogVisible = ref(false)
-
-const userId = ref(0)
-const productId = ref(0)
-const productName = ref('')
-const price = ref(0)
-const amount = ref(0)
-const paid = ref(0)
-const type = ref('')
-const content = ref('')
-const rating = ref(0)
-const status = ref('')
-const createTime = ref('')
-const finishTime = ref('')
-const storeId = ref(0)
-
-const totalPrice = ref(0)
-const discountPrice = ref(0)
-
-getOrderDetail()
-
-function getOrderDetail() {
-  getOrderById(props.orderId).then(res => {
-    userId.value = res.result.userId
-    productId.value = res.result.productId
-    productName.value = res.result.productName
-    amount.value = res.result.amount
-    price.value = res.result.price
-    paid.value = res.result.paid
-    type.value = res.result.type
-    content.value = res.result.content
-    rating.value = res.result.rating
-    status.value = res.result.status
-    createTime.value = res.result.createTime
-    finishTime.value = res.result.finishTime
-    storeId.value = res.result.storeId
-
-    totalPrice.value = amount.value * price.value
-    discountPrice.value = totalPrice.value
-  })
-}
-
-function handlePay() {
-  orderDialogVisible.value = true
-}
-
-function handleConfirmOrder() {
-  payOrder(props.orderId).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '订单提交成功!',
-        type: 'success',
-        center: true,
-      })
-      getOrderDetail()
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-function handlePayDialogClose() {
-  orderDialogVisible.value = false
-}
-
-function handleDeliver() {
-  deliverOrder(props.orderId).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '订单发货成功!',
-        type: 'success',
-        center: true,
-      })
-      getOrderDetail()
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-function handleGet() {
-  getOrder(props.orderId).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '订单收货成功!',
-        type: 'success',
-        center: true,
-      })
-      getOrderDetail()
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-function handleComment() {
-  commentDialogVisible.value = true
-}
-
-function handleSendComment() {
-
-  const payload = {
-    orderId: props.orderId,
-    comment: content.value,
-    rating: rating.value
-  }
-
-  commentOrder(payload).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '评价成功!',
-        type: 'success',
-        center: true,
-      })
-      getOrderDetail()
-      commentDialogVisible.value = false
-    } else {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-function parsePaid() {
-  if (paid.value === null) {
-    return "暂未支付"
-  } else {
-    return paid.value + " 元"
-  }
-}
-
-function parseOrderType(type) {
-  if (type === "PICKUP") {
-    return "到店自提"
-  } else if (type === "DELIVERY") {
-    return "快递到家"
-  }
-}
-
-// 对于变化的内容使用计算属性返回响应式结果
-const statusText = computed(() => {
-  switch (status.value) {
-    case 'UNPAID':
-      return "待顾客支付"
-    case 'UNSEND':
-      return "待商家发货"
-    case 'UNGET':
-      return "待顾客收货"
-    case 'UNCOMMENT':
-      return "待顾客评价"
-    case 'DONE':
-      return "已完成"
-    default:
-      return "状态标签"
-  }
-})
-
-function parseTime(time) {
-  if (time === null) {
-    return "暂未完成"
-  }
-  let times = time.split(/T|\./)
-  return times[0] + " " + times[1]
-}
-
-function parseType() {
-  if (type.value === 'DELIVERY') {
-    return "快递到家"
-  } else if (type.value === 'PICKUP') {
-    return "到店自取"
-  }
-}
-
-function parseNull(value) {
-  if (value === null) {
-    return "/"
-  } else {
-    return value
-  }
-}
-</script>
-
-
-<template>
-  <el-card class="order-item-card" shadow="hover">
-
-    <template #header>
-      <div class="card-header">
-        <div>
-          <span> 订单号 {{ props.orderId }}</span>
-          <el-tag style="margin-left: 8px" v-if="status!=='DONE'" type="info"> {{ statusText }}</el-tag>
-          <el-tag style="margin-left: 8px" v-if="status==='DONE'" type="success"> {{ statusText }}</el-tag>
-        </div>
-        <el-button @click="handlePay" v-if="status==='UNPAID' && role==='CUSTOMER'"
-                   class="status-change-button" size="small" type="primary">
-          支付
-        </el-button>
-        <el-button @click="handleDeliver" v-if="status==='UNSEND' && role==='STAFF'"
-                   class="status-change-button" size="small" type="primary">
-          发货
-        </el-button>
-        <el-button @click="handleGet" v-if="status==='UNGET' && role==='CUSTOMER'"
-                   class="status-change-button" size="small" type="primary">
-          收货
-        </el-button>
-        <el-button @click="handleComment" v-if="status==='UNCOMMENT'&& role==='CUSTOMER'"
-                   class="status-change-button" size="small" type="primary">
-          评价
-        </el-button>
-      </div>
-    </template>
-
-    <el-descriptions
-        :column="1"
-    >
-      <el-descriptions-item style="font-size: 15px" label="商品">
-        {{ productName }}
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="数量">
-        {{ amount }} 件
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="订单原价">
-        {{ totalPrice }} 元
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="实付金额">
-        {{ parsePaid() }}
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="取货类型">
-        <el-tag> {{ parseType() }}</el-tag>
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="创建时间">
-        {{ parseTime(createTime) }}
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="完成时间">
-        {{ parseTime(finishTime) }}
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="评分" v-if="status==='DONE'">
-        <el-rate
-            v-model="rating"
-            disabled
-            show-score
-            text-color="#ff9900"
-            score-template="{value} 分"
-            size="small"
-        />
-      </el-descriptions-item>
-      <el-descriptions-item style="font-size: 15px" label="评价内容" v-if="status==='DONE'">
-        {{ content }}
-      </el-descriptions-item>
-    </el-descriptions>
-  </el-card>
-
-  <el-dialog v-model="orderDialogVisible" :before-close="handlePayDialogClose">
-    <el-row>
-      <span class="pay-dialog-title">订单支付</span>
-    </el-row>
-
-    <div>
-      <el-form>
-        <el-form-item>
-          <label>购买数量:</label>
-          {{ amount }} 件
-        </el-form-item>
-        <el-form-item>
-          <label>折扣前总价:</label>
-          {{ totalPrice }} 元
-        </el-form-item>
-        <el-form-item>
-          <label>提货方式:</label>
-          {{ parseOrderType(type) }}
-        </el-form-item>
-        <el-form-item>
-          <label>优惠券:</label>
-        </el-form-item>
-        <el-form-item>
-          <label>折扣后金额:</label>
-          {{ discountPrice }} 元
-        </el-form-item>
-      </el-form>
-      <el-button @click="handleConfirmOrder" type="primary" plain>
-        确认支付
-      </el-button>
-    </div>
-  </el-dialog>
-
-  <el-dialog
-      v-model="commentDialogVisible"
-      title="发起评价"
-  >
-    <el-form>
-
-      <el-form-item>
-        <span style="margin-right: 30px">商品满意度</span>
-        <el-rate v-model="rating" clearable
-                 :texts="['非常差', '差', '普通', '好', '非常好']"
-                 show-text/>
-      </el-form-item>
-
-      <el-form-item>
-        <label>文字评价</label>
-        <el-input v-model="content" type="textarea" rows="10" placeholder="说点什么吧">
-
-        </el-input>
-      </el-form-item>
-
-      <el-form-item>
-        <el-button type="primary" @click="handleSendComment">评价</el-button>
-        <el-button @click="commentDialogVisible = false">取消</el-button>
-      </el-form-item>
-    </el-form>
-  </el-dialog>
-
-</template>
-
-
-<style scoped>
-.order-item-card {
-  margin: 20px;
-  border-radius: 8px;
-  min-width: max-content;
-}
-
-.card-header {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-.status-change-button {
-  margin-left: 10px;
-}
-
-.pay-dialog-title {
-  font-size: 30px;
-  margin-bottom: 20px;
-}
-</style>

+ 0 - 33
src/views/order/AllOrder.vue

@@ -1,33 +0,0 @@
-<script setup lang="ts">
-import {ref} from "vue"
-import {getAllOrder} from "../../api/order.ts"
-import OrderItem from "../../components/OrderItem.vue"
-
-const role = sessionStorage.getItem("role")
-
-const orderList = ref()
-
-getAllOrder().then(res => {
-  orderList.value = res.result
-})
-</script>
-
-
-<template>
-  <el-main>
-    <div class="order-item-list">
-      <OrderItem
-          v-for="orderVO in orderList" :orderId="orderVO.id"/>
-    </div>
-  </el-main>
-</template>
-
-
-<style scoped>
-.order-item-list {
-  display: flex;
-  padding: 2px;
-  flex-flow: wrap;
-  justify-content: center;
-}
-</style>

+ 0 - 180
src/views/product/ProductDetail.vue

@@ -3,9 +3,6 @@ import {ref, computed} from "vue"
 import {router} from '../../router'
 import {Back} from "@element-plus/icons-vue"
 import {addStock, getProductById} from "../../api/product.ts"
-import {createOrder, payOrder} from "../../api/order.ts"
-import {getCommentsById} from "../../api/product.ts"
-import CommentItem from "../../components/CommentItem.vue"
 
 const role = sessionStorage.getItem("role")
 
@@ -21,35 +18,13 @@ const stock = ref(0)
 const category = ref('')
 const price = ref(0)
 
-const amount = ref(1)
-const totalPrice = ref(price.value)
-const discountPrice = ref(0)
-
-const handleChange = () => {
-  totalPrice.value = amount.value * price.value
-}
-const type = ref()
-const orderDialogVisible = ref(false)
-const orderId = ref()
 const addStockNumber = ref('')
 
-const hasTypeInput = computed(() => type.value != null)
-const amountLegal = computed(() => amount.value <= stock.value)
-const createOrderDisabled = computed(() => {
-  return !(amountLegal.value && hasTypeInput.value)
-})
-
 const hasAddStockInput = computed(() => addStockNumber.value != '')
 const addStockDisabled = computed(() => {
   return !(hasAddStockInput.value)
 })
 
-const commentList = ref([])
-
-getCommentsById(productId).then(res => {
-  commentList.value = res.result
-})
-
 getProductDetail()
 
 function getProductDetail() {
@@ -64,8 +39,6 @@ function getProductDetail() {
     stock.value = productVO.value.stock
     category.value = productVO.value.category
     price.value = productVO.value.price
-
-    totalPrice.value = price.value
   })
 }
 
@@ -90,57 +63,6 @@ function AddStock() {
   })
 }
 
-// 创建订单按钮
-function handleCreateOrder() {
-  const payload = {
-    productId: productId,
-    amount: amount.value,
-    type: type.value
-  }
-  createOrder(payload).then(res => {
-    if (res.code === '000') {
-      ElMessage({
-        message: '创建订单成功!',
-        type: 'success',
-        center: true,
-      })
-      orderId.value = res.result.id
-      orderDialogVisible.value = true
-      discountPrice.value = totalPrice.value
-    } else if (res.code === '400') {
-      ElMessage({
-        message: res.msg,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-// 确定订单按钮
-function handleConfirmOrder() {
-  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,
-        type: 'error',
-        center: true,
-      })
-    }
-  })
-}
-
-function handlePayDialogClose() {
-  orderDialogVisible.value = false
-}
-
 function parseCategory(category) {
   if (category === 'FOOD') {
     return "食品"
@@ -159,22 +81,6 @@ function parseCategory(category) {
   }
 }
 
-function parseOrderType(type) {
-  if (type === "PICKUP") {
-    return "到店自提"
-  } else if (type === "DELIVERY") {
-    return "快递到家"
-  }
-}
-
-function parseNull(value) {
-  if (value === null) {
-    return "/"
-  } else {
-    return value
-  }
-}
-
 function toBackPage() {
   router.push("/storeDetail/" + storeId.value)
 }
@@ -233,35 +139,6 @@ function toBackPage() {
     </el-aside>
 
     <el-main>
-      <div v-if="role === 'CUSTOMER'">
-        <div>
-          <span class="main-title">购买商品</span>
-        </div>
-        <el-form class="buy-form">
-          <el-form-item>
-            <label for="amount">购买数量:</label>
-            <el-input-number v-model="amount" :min="1" :max="stock + 10" @change="handleChange"/>
-          </el-form-item>
-          <el-form-item>
-            <label for="type">提货方式:</label>
-            <el-select id="type"
-                       v-model="type"
-                       placeholder="请选择"
-            >
-              <el-option value="PICKUP" label="到店自提"/>
-              <el-option value="DELIVERY" label="快递到家"/>
-            </el-select>
-          </el-form-item>
-          <el-form-item>
-            <label for="discountPrice">折扣前总价:</label>
-            {{ totalPrice }} 元
-          </el-form-item>
-        </el-form>
-        <el-button @click="handleCreateOrder" :disabled="createOrderDisabled"
-                   class="buy-button" type="primary" plain>创建订单
-        </el-button>
-      </div>
-
       <div v-if="role === 'STAFF'">
         <div>
           <span class="main-title">添加库存</span>
@@ -278,48 +155,7 @@ function toBackPage() {
           </el-button>
         </div>
       </div>
-
-      <div>
-        <div>
-          <span class="main-title">评论区</span>
-        </div>
-        <commentItem v-for="commentVO in commentList" :commentVO="commentVO">
-        </commentItem>
-      </div>
     </el-main>
-
-    <el-dialog v-model="orderDialogVisible" :before-close="handlePayDialogClose">
-      <el-row>
-        <span class="pay-dialog-title">订单支付</span>
-      </el-row>
-
-      <div>
-        <el-form>
-          <el-form-item>
-            <label for="amount">购买数量:</label>
-            {{ amount }} 件
-          </el-form-item>
-          <el-form-item>
-            <label for="type">提货方式:</label>
-            {{ parseOrderType(type) }}
-          </el-form-item>
-          <el-form-item>
-            <label for="discountPrice">折扣前总价:</label>
-            {{ totalPrice }} 元
-          </el-form-item>
-          <el-form-item>
-            <label for="type">优惠券:</label>
-          </el-form-item>
-
-          <el-form-item>
-            <label>折扣后金额:</label>
-            {{ discountPrice }} 元
-          </el-form-item>
-        </el-form>
-
-        <el-button @click="handleConfirmOrder" type="primary" plain>确认支付</el-button>
-      </div>
-    </el-dialog>
   </el-container>
 </template>
 
@@ -367,24 +203,8 @@ function toBackPage() {
   margin-left: 20px;
 }
 
-.buy-form {
-  margin-top: 20px;
-  margin-left: 30px;
-  width: 20%;
-}
-
 .add-stock-main {
   margin-top: 20px;
   margin-left: 30px;
 }
-
-.buy-button {
-  margin-left: 30px;
-  margin-bottom: 40px;
-}
-
-.pay-dialog-title {
-  font-size: 30px;
-  margin-bottom: 20px;
-}
 </style>