Просмотр исходного кода

feta: 积分订单列表接口对接

xyh 5 месяцев назад
Родитель
Сommit
bdc72f1a32

+ 77 - 40
src/api/points/order_api.js

@@ -3,51 +3,88 @@ import request from '@/utils/request'
 
 /**
  * 获取积分订单列表的函数
+ * @param {Object} data - 查询参数对象,包含查询条件
+ */
+export function getOrderPointsList(data) {
+  return request({
+    url: '/product/order/admin/page',
+    method: 'post',
+    data
+  })
+}
+
+/**
+ * 获取积分订单统计
  * @param {Object} query - 查询参数对象,包含查询条件
  */
-export function getOrderPointsList(query) {
-  let res = {
+export function getOrderPointStats(query) {
+  return request({
+    url: '/product/order/admin/page/stats',
+    method: 'get',
+    query:query
+  })
+}
+
+/**
+ * 获取积分订单详情
+ * @param {Object} query - 查询参数对象,包含查询条件
+ */
+export function getOrderDetail(query) {
+  const res = {
     "code": 200,
-    "msg": "查询成功",
-    "data":{
-      "total": 4,
-      "records": [
-        {
-          "orderNo": "DORDER2026020100001",
-          "shopName": "广誉源毛巾",
-          "shopNum": "1",
-          "shopPrice": "¥10+1000积分",
-          "nickName": '张三',
-          "phone": "15036985236",
-          "orderTime": "2026-1-27 10:00:00",
-          "deliveryTime": "2026-1-27 10:00:00",
-          "logisticsNo": "SF2014523698",
-          "orderStatus": '2',
-        },
-        {
-          "orderNo": "DORDER2026020100001",
-          "shopName": "广誉源被子",
-          "shopNum": "3",
-          "shopPrice": "1000积分",
-          "nickName": '李四',
-          "phone": "15036985236",
-          "orderTime": "2026-1-27 10:00:00",
-          "deliveryTime": "2026-1-27 10:00:00",
-          "logisticsNo": "SF2014523698",
-          "orderStatus": '3',
-        },
-      ],
+    "msg": "操作成功",
+    "data": {
+      "orderBaseInfo": {
+        "id": 2041435173245005825,
+        "orderNo": "PRODUCT2026040700001",
+        "orderStatus": 0,
+        "payStatus": 0,
+        "productName": "广誉源玻璃杯",
+        "productId": 18,
+        "quantity": 1,
+        "payAmount": 10,
+        "phone": null,
+        "deliveryTime": null,
+        "createTime": "2026-04-07 16:37:28",
+        "logisticsNo": null,
+        "buyerRemark": "请填写您的备注信息"
+      },
+      "receiverInfo": {
+        "receiverName": "小靳",
+        "receiverPhone": "19834500372",
+        "fullAddress": "山西省太原市万柏林区信达国际金融中心"
+      },
+      "orderItemInfo": {
+        "orderNo": "PRODUCT2026040700001",
+        "productImage": "/profile/upload/2024/05/09/tmp_b789739f02204299246f9535a2929bb9_20240509150153A001.jpg",
+        "productName": "广誉源玻璃杯",
+        "specName": "[{\"specName\":\"颜色\",\"specValue\":\"白色\"}]",
+        "priceMoney": null,
+        "pricePoint": null,
+        "payAmount": 10
+      },
+      "afterSaleInfo": {
+        "id": 2041435173245005833,
+        "afterSaleType": 1,
+        "createTime": "2026-04-07 16:37:28",
+        "applyReason": 1,
+        "afterSaleStatus": 0,
+        "logisticsNo": "125447ddfdeff",
+        "feeList": [
+          {
+            "type": "用户拒收",
+            "fee": 15.32,
+            "remark": "费用"
+          }
+        ]
+      }
     }
   }
-  return new Promise((resolve, reject) => {
-    // 模拟网络延迟 1000ms
-    setTimeout(() => {
-      resolve(res)
-    }, 1000);
-  });
+  return res;
+
   // return request({
-  //   url: '/ylxAlarm/getAlarmList', // 请求的API地址
-  //   method: 'get', // 请求方法为GET
-  //   params: query // 将查询参数作为请求参数发送
+  //   url: `/product/order/admin/detail/${query.orderId}`,
+  //   method: 'get',
   // })
 }
+

+ 6 - 8
src/utils/listMixin.js

@@ -34,8 +34,8 @@ export default {
       // 获取数据后的自定义
       getlistAfterFun: null,
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
+        current: 1,
+        size: 10,
       },
     };
   },
@@ -67,7 +67,6 @@ export default {
         }
         const {dateRange, ...params} = this.queryParams;
         let response = await this.getListUrl(params);
-        console.log(response);
         if (response.code == 200) {
           this.list = response.data.records;
           this.total = response.data.total;
@@ -82,13 +81,13 @@ export default {
     },
     // 重排序号
     getIndex(index) {
-      let curPage = this.queryParams.pageNum;
-      let limitPage = this.queryParams.pageSize;
+      let curPage = this.queryParams.current;
+      let limitPage = this.queryParams.size;
       return index + 1 + (curPage - 1) * limitPage;
     },
     /** 搜索按钮操作 */
     async handleQuery() {
-      this.queryParams.pageNum = 1;
+      this.queryParams.current = 1;
       await this.getList();
       if (this.tableRef && this.tableRef.tableCompontentRef && this.tableRef.tableCompontentRef.clearSelection) {
         this.tableRef.tableCompontentRef.clearSelection();
@@ -97,7 +96,7 @@ export default {
     /** 重置按钮操作 */
     resetQuery(callback) {
       this.$refs.queryRef && this.$refs.queryRef.resetFields();
-      this.queryParams.pageSize = 10;
+      this.queryParams.size = 10;
       // 自定义搜索
       if (callback && typeof callback === 'function') {
         callback();
@@ -110,7 +109,6 @@ export default {
     handleSelectionChange(selection) {
       this.selectedList = selection;
       this.ids = selection.map((item) => item[this.selectKey]);
-      console.log(this.ids);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },

+ 33 - 22
src/views/pointsManagement/pointsOrdeManagement/index.vue

@@ -39,9 +39,9 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5" class="tagList">
-        <el-tag type="success">待发货(0)</el-tag>
-        <el-tag type="warning">进行中(10)</el-tag>
-        <el-tag type="danger">售后(5)</el-tag>
+        <el-tag type="success">待发货({{pointStatistics.pendingShipmentQty}})</el-tag>
+        <el-tag type="warning">进行中({{pointStatistics.inProgressQty}})</el-tag>
+        <el-tag type="danger">售后({{pointStatistics.afterSalesQty}})</el-tag>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
@@ -55,15 +55,15 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
       @pagination="getList"
     />
   </div>
 </template>
 
 <script>
-import { getOrderPointsList } from "@/api/points/order_api";
+import { getOrderPointsList,getOrderPointStats } from "@/api/points/order_api";
 import tableCompontent from "@/components/tableCompontent/index.vue";
 import listMixin from '@/utils/listMixin';
 export default {
@@ -76,11 +76,8 @@ export default {
     return {
       // 用户表格数据
       list: null,
-      orderStatusOption:[
-        {label:'全部',value:'1'},
-        {label:'待发货',value:'2'},
-        {label:'已发货',value:'3'}
-      ],
+      orderStatusOption:[],
+      pointStatistics:[],
       columnData:[
         {
           prop: 'seq',
@@ -94,19 +91,21 @@ export default {
           prop: 'orderNo',
           label: '订单号',
           align:'center',
+          width: '200px'
         },
         {
-          prop: 'shopName',
+          prop: 'productName',
           label: '商品',
           align:'center',
+          width: '200px'
         },
         {
-          prop: 'shopNum',
+          prop: 'quantity',
           label: '数量',
           align:'center',
         },
         {
-          prop: 'shopPrice',
+          prop: 'payAmount',
           label: '价格',
           align:'center',
         },
@@ -121,14 +120,16 @@ export default {
           align:'center',
         },
         {
-          prop: 'orderTime',
+          prop: 'createTime',
           label: '下单时间',
           align:'center',
+          width: '150px',
         },
         {
           prop: 'deliveryTime',
           label: '发货时间',
           align:'center',
+          width: '150px',
         },
         {
           prop: 'logisticsNo',
@@ -154,32 +155,42 @@ export default {
     };
   },
   created() {
+    this.getOptionList();
     this.queryParams = {
       ...this.queryParams,
-      orderNo:'',
-      logisticsNo:'',
-      orderStatus:'',
-      dateRange:[],
+      orderNo: '',
+      logisticsNo: '',
+      orderStatus: '',
+      dateRange: [],
     }
     this.isImmediateLoad = false;
     this.getListUrl = getOrderPointsList;
     // 或者设置自定义数据处理函数
     this.customProcessDataFun = (val) => {
       // 自定义处理查询参数
-      this.queryParams = this.DateRange(this.queryParams,val.dateRange || [],['startTime','endTime'],'s')
+      this.queryParams = this.DateRange(this.queryParams, val.dateRange || [], ['startTime', 'endTime'])
     };
   },
   mounted(){
-    this.columnData.find(item => item.prop === 'orderStatus').option = this.orderStatusOption;
     this.handleQuery();
   },
   methods: {
+    async getOptionList() {
+      //获取活动类型,获取活动状态
+      const {order_status} = await this.useDict('order_status');
+      this.orderStatusOption = order_status;
+      this.columnData.find(item => item.prop === 'orderStatus').option = this.orderStatusOption;
+
+      //获取统计
+      const res = await getOrderPointStats();
+      this.pointStatistics = res.data;
+    },
     /** 查看详情 */
     handleView(row) {
       this.$router.push({
         path: "/pointsManagement/details",
         query: {
-          id: row.id,
+          orderId: row.id
         },
       });
     },

+ 2 - 2
src/views/pointsManagement/pointsRules/index.vue

@@ -70,8 +70,8 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
       @pagination="getList"
     />
     <!-- 积分时效 -->