From 771cd1ede21113e906697731c135a8a11428b83f Mon Sep 17 00:00:00 2001
From: yuanteng <1876787513@qq.com>
Date: Wed, 6 Nov 2024 01:12:38 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=89=8D=E9=9D=A2=E7=9A=84bu?=
 =?UTF-8?q?g?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/Orders/orderOperations.vue | 367 +++++++++++++++------------
 1 file changed, 201 insertions(+), 166 deletions(-)

diff --git a/src/views/Orders/orderOperations.vue b/src/views/Orders/orderOperations.vue
index 5f8d2eb..87f4e9c 100644
--- a/src/views/Orders/orderOperations.vue
+++ b/src/views/Orders/orderOperations.vue
@@ -1,167 +1,202 @@
- <template>
-<div>
-  <el-input style="width: 200px; height: 30px; margin-right: 10px;" suffix-icon="Search" placeholder="请输入商品名称"
-            v-model="id"></el-input>
-  <el-button class="ml-5" type="primary" @click="load" style="height: 25px;">搜索</el-button>
-  <el-button type="warning" @click="reset" style="height:25px">重置</el-button>
-</div>
-  <div style="margin: 15px 0">
-    <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
-                   title="您确定批量删除这些数据吗?" @confirm="delBatch" width=180>
-      <template #reference>
-        <el-button style="height: 25px" class="ml-5" type="danger">批量删除 <el-icon style="margin-left: 5px;">
-          <Remove />
-        </el-icon></el-button>
-      </template>
-    </el-popconfirm>
+<template>
+  <div>
+    <el-input style="width: 200px; height: 30px; margin-right: 10px;" suffix-icon="Search" placeholder="请输入商品名称"
+              v-model="id"></el-input>
+    <el-button class="ml-5" type="primary" @click="load" style="height: 25px;">搜索</el-button>
+    <el-button type="warning" @click="reset" style="height:25px">重置</el-button>
   </div>
-  <el-table :data="tableData" border stripe header-cell-class-name="headerBg"
-            :cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
-            :header-cell-style="{ 'text-align': 'center' }">
-    <el-table-column type="selection" width="55"></el-table-column>
-    <el-table-column prop="id" label="订单id" width="80"></el-table-column>
-    <el-table-column prop="goodSnapshot.name" label="商品名称"></el-table-column>
-    <el-table-column prop="quantity" label="购买数量" width="180"></el-table-column>
-    <el-table-column prop="totalAmount" label="订单总金额"></el-table-column>
-    <el-table-column prop="createTime" label="下单时间"></el-table-column>
-    <el-table-column prop="orderNumber" label="快递单号"></el-table-column>
-    <el-table-column prop="orderStatus" label="订单状态"></el-table-column>
-    <el-table-column label="操作" width="250px">
-      <template #default="scope">
-        <el-button size="small" @click="ReviseOrView(scope.$index, scope.row , 0)">
-          编辑
-        </el-button>
-        <el-button plain @click="dialogFormVisible = true">
-          发货
-        </el-button>
-        <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
-                       title="是否确认删除" @confirm="deleteProduct(scope.row.id)" width=180>
-          <template #reference>
-            <el-button  class="ml-5" type="danger">取消订单</el-button>
-          </template>
-        </el-popconfirm>
-        <el-popconfirm confirm-button-text='确定' cancel-button-text='取消' icon="el-icon-info" icon-color="red"
-                       title="您确定删除吗?">
-        </el-popconfirm>
-      </template>
-    </el-table-column>
-  </el-table>
-  <div style="padding: 10px 0">
-    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                   :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]"
-                   :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
-                   :total="total" />
-  </div>
-<!--  <el-dialog v-model="dialogFormVisible" title="Shipping address" width="500">-->
-<!--    <el-form :model="">-->
-<!--      <el-form-item label="快递单号" :label-width="formLabelWidth">-->
-<!--        <el-input v-model=" " autocomplete="off" />-->
-<!--      </el-form-item>-->
-<!--    </el-form>-->
-<!--    <template #footer>-->
-<!--      <div class="dialog-footer">-->
-<!--        <el-button @click="dialogFormVisible = false">取消</el-button>-->
-<!--        <el-button type="primary" @click="dialogFormVisible = false">-->
-<!--          确定-->
-<!--        </el-button>-->
-<!--      </div>-->
-<!--    </template>-->
-<!--  </el-dialog>-->
-<!--</template>-->
-
-<!--<script lang="ts" setup>-->
-<!--import {ref} from "vue";-->
-<!--import myAxios from "@/api/myAxios";-->
-<!--import {ElMessage} from "element-plus";-->
-<!--const tableData : any= ref([]);-->
-<!--const total = ref(0);-->
-<!--// const title = ref('')-->
-<!--// const editForm : any = ref({});-->
-<!--// const DialogVisible = ref(true);-->
-<!--const dialogFormVisible = ref(false)-->
-<!--const formLabelWidth = '140px'-->
-<!--const searchParams: any = ref({ //封装分页-->
-<!--  current: 1, //当前页码-->
-<!--  pageSize: 5 //每页显示条数-->
-<!--})-->
-<!--const handleSizeChange = (newSize: any) => {-->
-<!--  searchParams.value.pageSize = newSize //新的页面数-->
-<!--  getOrderList()-->
-<!--}-->
-<!--const handleCurrentChange = (Current: any) => {-->
-<!--  searchParams.value.current = Current-->
-<!--  getOrderList()-->
-<!--}-->
-<!--const handleSelectionChange = (row: any) => {-->
-<!--  id.value = JSON.parse(JSON.stringify(row));-->
-<!--}-->
-<!--const getOrderList = async () => {-->
-<!--  try {-->
-<!--    const res = await myAxios.post('', { ...searchParams.value });-->
-<!--    if (res.data.code === 1) {-->
-<!--      tableData.value = res.data.data.records;-->
-<!--      total.value = parseInt(res.data.data.total)-->
-<!--    } else {-->
-<!--      ElMessage({-->
-<!--        message: '获取数据失败',-->
-<!--      });-->
-<!--    }-->
-<!--  } catch (error) {-->
-<!--    ElMessage({-->
-<!--      message: '发生错误',-->
-<!--    });-->
-<!--  }-->
-<!--}-->
-<!--const orderList = ref({-->
-<!--id:'',-->
-<!--userId:'',-->
-<!--addressSnapshot:{-->
-<!--name:'',-->
-<!--phone:'',-->
-<!--region:'',-->
-<!--detailAddress:''-->
-<!--},-->
-<!--couponSnapshot:{-->
-<!--name:'',-->
-<!--conditionAmount:''-->
-<!--},-->
-<!--totalAmount:'',-->
-<!--orderStatus:'',-->
-<!--createTime:'',-->
-<!--updateTime:'',-->
-<!--isDelete:'',-->
-<!--orderNumber:''-->
-<!--})-->
-<!--const delBatch =()=>{-->
-<!--  //批量取消-->
-<!--}-->
-<!--//发货-->
-<!--const shipments = (index: number, row: any , flag : number) => {-->
-
-<!--};-->
-<!--//编辑-->
-<!--const ReviseOrView = (index: number, row: any , flag : number) => {-->
-
-<!--};-->
-<!--const deleteProduct = async (index: number) => {-->
-<!--  console.log(typeof index)-->
-<!--  const res = await myAxios.post('/goods/delete', { id: index })-->
-<!--  console.log(res)-->
-<!--  if (res.data.code === 1) {-->
-<!--    ElMessage({-->
-<!--      type: 'success',-->
-<!--      message: '删除成功',-->
-<!--    })-->
-<!--    getOrderList()-->
-<!--  }-->
-<!--}-->
-<!--const reset = () => {-->
-<!--  id.value = '';-->
-
-<!--};-->
-<!--const load =()=>{}-->
-<!--</script>-->
-
-<!--<style lang="scss" scoped>-->
-
-<!--</style> -->
+    <div style="margin: 15px 0">
+      <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
+                     title="您确定批量删除这些数据吗?" @confirm="delBatch" width=180>
+        <template #reference>
+          <el-button style="height: 25px" class="ml-5" type="danger">批量删除 <el-icon style="margin-left: 5px;">
+            <Remove />
+          </el-icon></el-button>
+        </template>
+      </el-popconfirm>
+    </div>
+    <el-table :data="tableData" border stripe header-cell-class-name="headerBg"
+              :cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
+              :header-cell-style="{ 'text-align': 'center' }">
+      <el-table-column type="selection" width="55"></el-table-column>
+      <el-table-column prop="id" label="订单id" width="80"></el-table-column>
+      <el-table-column prop="goodSnapshot.name" label="商品名称"></el-table-column>
+      <el-table-column prop="quantity" label="购买数量" width="180"></el-table-column>
+      <el-table-column prop="totalAmount" label="订单总金额"></el-table-column>
+      <el-table-column prop="createTime" label="下单时间"></el-table-column>
+      <el-table-column prop="orderNumber" label="快递单号"></el-table-column>
+      <el-table-column prop="orderStatus" label="订单状态"></el-table-column>
+      <el-table-column label="操作" width="250px">
+        <template #default="scope">
+          <el-button size="small" @click="ReviseOrView(scope.$index, scope.row , 0)">
+            编辑
+          </el-button>
+          <el-button plain @click="dialogFormVisible = true">
+            发货
+          </el-button>
+          <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='取消' icon="InfoFilled" icon-color="red"
+                         title="是否确认删除" @confirm="deleteProduct(scope.row.id)" width=180>
+            <template #reference>
+              <el-button  class="ml-5" type="danger">取消订单</el-button>
+            </template>
+          </el-popconfirm>
+          <el-popconfirm confirm-button-text='确定' cancel-button-text='取消' icon="el-icon-info" icon-color="red"
+                         title="您确定删除吗?">
+          </el-popconfirm>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div style="padding: 10px 0">
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                     :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]"
+                     :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
+                     :total="total" />
+    </div>
+  <!--  <el-dialog v-model="dialogFormVisible" title="Shipping address" width="500">-->
+  <!--    <el-form :model="">-->
+  <!--      <el-form-item label="快递单号" :label-width="formLabelWidth">-->
+  <!--        <el-input v-model=" " autocomplete="off" />-->
+  <!--      </el-form-item>-->
+  <!--    </el-form>-->
+  <!--    <template #footer>-->
+  <!--      <div class="dialog-footer">-->
+  <!--        <el-button @click="dialogFormVisible = false">取消</el-button>-->
+  <!--        <el-button type="primary" @click="dialogFormVisible = false">-->
+  <!--          确定-->
+  <!--        </el-button>-->
+  <!--      </div>-->
+  <!--    </template>-->
+  <!--  </el-dialog>-->
+  </template>
+  
+  <script lang="ts" setup>
+  import {ref,onMounted} from "vue";
+  import myAxios from "@/api/myAxios";
+  import {ElMessage} from "element-plus";
+  const tableData : any= ref([]);
+  const total = ref(0);
+  const num  = ref(0)
+  const dialogFormVisible = ref(false)
+  const formLabelWidth = '140px'
+  onMounted(()=>{
+    getOrderList()
+  })
+  
+  const searchParams: any = ref({ //封装分页
+    current: 1, //当前页码
+    pageSize: 5 //每页显示条数
+  })
+  const handleSizeChange = (newSize: any) => {
+    searchParams.value.pageSize = newSize //新的页面数
+    getOrderList()
+  }
+  const handleCurrentChange = (Current: any) => {
+    searchParams.value.current = Current
+    getOrderList()
+  }
+  const handleSelectionChange = (row: any) => {
+    // id.value = JSON.parse(JSON.stringify(row));
+  }
+  const getOrderList = async () => {
+    try {
+      const res = await myAxios.post('/order/list/page', { ...searchParams.value });
+        // console.log(res)
+      if (res.data.code === 1) {
+        tableData.value = res.data.data.records
+        total.value = parseInt(res.data.data.total)
+        for(let key in tableData.value) {
+          num.value = parseInt(key)
+          const resOrderDetail = await myAxios.post('/order/list/item',{id:tableData.value[key].id})
+          if( resOrderDetail.data.code === 1 ) {
+            tableData.value.goodSnapshot= resOrderDetail.data.data[key].goodSnapshot
+            tableData.value.quantity = resOrderDetail.data.data[key].quality
+            // console.log(resOrderDetail.data.data[0].goodSnapshot.name)
+            console.log( tableData.value.goodSnapshot.name)
+            console.log( resOrderDetail.data.data[key].quantity)
+          }
+        }
+      } else {
+        ElMessage({
+          message: '获取数据失败',
+        });
+      }
+    } catch (error) {
+      ElMessage({
+        message: '发生错误',
+      });
+    }
+  }
+  
+  
+  // const getItemList = async (id: number) => {
+  //   try {
+  //     const res = await myAxios.post('/order/list/item', { id:tableData.value[key].id});
+  //     console.log(res)
+  //     if (res.data.code === 1) {
+  //       tableData.value = res.data.data.records;
+  //       total.value = parseInt(res.data.data.total)
+  //     } else {
+  //       ElMessage({
+  //         message: '获取数据失败',
+  //       });
+  //     }
+  //   } catch (error) {
+  //     ElMessage({
+  //       message: '发生错误',
+  //     });
+  //   }
+  // }
+  
+  // const orderList = ref({
+  // id:'',
+  // userId:'',
+  // addressSnapshot:{
+  // name:'',
+  // phone:'',
+  // region:'',
+  // detailAddress:''
+  // },
+  // couponSnapshot:{
+  // name:'',
+  // conditionAmount:''
+  // },
+  // totalAmount:'',
+  // orderStatus:'',
+  // createTime:'',
+  // updateTime:'',
+  // isDelete:'',
+  // orderNumber:''
+  // })
+  const delBatch =()=>{
+    //批量取消
+  }
+  //发货
+  const shipments = (index: number, row: any , flag : number) => {
+  
+  };
+  //编辑
+  const ReviseOrView = (index: number, row: any , flag : number) => {
+  
+  };
+  const deleteProduct = async (index: number) => {
+    console.log(typeof index)
+    const res = await myAxios.post('/goods/delete', { id: index })
+    console.log(res)
+    if (res.data.code === 1) {
+      ElMessage({
+        type: 'success',
+        message: '删除成功',
+      })
+      getOrderList()
+    }
+  }
+  const reset = () => {
+    id.value = '';
+  
+  };
+  const load =()=>{}
+  </script>
+  
+  <style lang="scss" scoped>
+  
+  </style>
\ No newline at end of file