Bladeren bron

feat(order): 添加充电订单导出功能并优化订单管理界面

- 新增充电订单信息导出Excel功能
- 优化充电订单查询界面,添加站点选择和创建时间范围筛选
- 在用户订单管理中添加导出功能
- 更新环境配置文件中的项目标题和API地址
- 修复刷新令牌接口参数传递方式
- 优化表格列显示和排序,提升用户体验
- 添加充电时间格式化显示功能
- 更新项目logo引用路径
zouzexu 4 dagen geleden
bovenliggende
commit
557d28e606

+ 2 - 2
.env.development

@@ -1,12 +1,12 @@
 # 应用端口
 VITE_APP_PORT=3000
 # 项目名称
-VITE_APP_TITLE=zhongshudiandong
+VITE_APP_TITLE=zhongShuDianDong
 # 代理前缀
 VITE_APP_BASE_API=/dev-api
 
 # 接口地址
-#VITE_APP_API_URL=https://api.youlai.tech # 线上
+#VITE_APP_API_URL=https://cd.admin.zswlgz.com # 线上
 VITE_APP_API_URL=http://192.168.0.11:8989    # 本地
 #VITE_APP_API_URL=http://192.168.0.217:8989    # 本地
 

+ 4 - 1
.env.production

@@ -1,5 +1,8 @@
 # 代理前缀
-VITE_APP_BASE_API = '/prod-api'
+VITE_APP_BASE_API = ''
+# 接口地址
+VITE_APP_API_URL = 'https://cd.admin.zswlgz.com'
+#VITE_APP_API_URL = 'http://localhost:8989'
 # 项目名称
 VITE_APP_TITLE=中数电动
 # WebSocket端点(可选)

+ 1 - 1
README.en-US.md

@@ -1,5 +1,5 @@
 <div align="center">
-  <img alt="vue3-element-admin" width="80" height="80" src="./src/assets/logo.png">
+  <img alt="vue3-element-admin" width="80" height="80" src="./src/assets/logo.svg">
   <h1>中数电动</h1>
 
   <img src="https://img.shields.io/badge/Vue-3.5.21-brightgreen.svg"/>

+ 1 - 1
README.md

@@ -21,7 +21,7 @@
 ![](https://foruda.gitee.com/images/1708618984641188532/a7cca095_716974.png "rainbow.png")
 
 <div align="center">
-  <img alt="vue3-element-admin" width="80" height="80" src="./src/assets/logo.png">
+  <img alt="vue3-element-admin" width="80" height="80" src="./src/assets/logo.svg">
   <h1>vue3-element-admin</h1>
 
   <img src="https://img.shields.io/badge/Vue-3.5.22-brightgreen.svg"/>

+ 3 - 2
src/api/auth-api.ts

@@ -21,11 +21,12 @@ const AuthAPI = {
   },
 
   /** 刷新 token 接口*/
-  refreshToken(refreshToken: string) {
+  refreshToken(data: string) {
     return request<any, LoginResult>({
       url: `${AUTH_BASE_URL}/refresh-token`,
       method: "post",
-      params: { refreshToken },
+      // params: { refreshToken },
+      data: { refreshToken: data },
       headers: {
         Authorization: "no-auth",
       },

+ 12 - 0
src/api/orderManage/charge-order-info-api.ts

@@ -50,6 +50,18 @@ const ChargeOrderInfoAPI = {
       data,
     });
   },
+  /**
+   * 导出充电订单信息
+   * @param queryParams 查询参数
+   */
+  exportExcel(data: ChargeOrderInfoForm) {
+    return request<any, Blob>({
+      url: `${CHARGEORDERINFO_BASE_URL}/export`,
+      method: "post",
+      data,
+      responseType: "blob",
+    });
+  },
 
   /**
    * 批量删除充电订单信息,多个以英文逗号(,)分割

+ 116 - 103
src/api/orderManage/user-order-info-api.ts

@@ -1,125 +1,138 @@
 import request from "@/utils/request";
+import { ChargeOrderInfoForm } from "@/api/orderManage/charge-order-info-api";
 
 const USERORDERINFO_BASE_URL = "/api/v1/user-order-info";
 
 const UserOrderInfoAPI = {
-    /** 获取用户支付订单信息分页数据 */
-    getPage(queryParams?: UserOrderInfoPageQuery) {
-        return request<any, PageResult<UserOrderInfoPageVO[]>>({
-            url: `${USERORDERINFO_BASE_URL}/page`,
-            method: "get",
-            params: queryParams,
-        });
-    },
-    /**
-     * 获取用户支付订单信息表单数据
-     *
-     * @param id 用户支付订单信息ID
-     * @returns 用户支付订单信息表单数据
-     */
-    getFormData(id: number) {
-        return request<any, UserOrderInfoForm>({
-            url: `${USERORDERINFO_BASE_URL}/${id}/form`,
-            method: "get",
-        });
-    },
+  /** 获取用户支付订单信息分页数据 */
+  getPage(queryParams?: UserOrderInfoPageQuery) {
+    return request<any, PageResult<UserOrderInfoPageVO[]>>({
+      url: `${USERORDERINFO_BASE_URL}/page`,
+      method: "get",
+      params: queryParams,
+    });
+  },
+  /**
+   * 获取用户支付订单信息表单数据
+   *
+   * @param id 用户支付订单信息ID
+   * @returns 用户支付订单信息表单数据
+   */
+  getFormData(id: number) {
+    return request<any, UserOrderInfoForm>({
+      url: `${USERORDERINFO_BASE_URL}/${id}/form`,
+      method: "get",
+    });
+  },
 
-    /**
-     *  添加用户支付订单信息
-     *
-     *  @param data 用户支付订单信息表单数据
-     */
-    create(data: UserOrderInfoForm) {
-        return request({
-            url: `${USERORDERINFO_BASE_URL}`,
-            method: "post",
-            data,
-        });
-    },
+  /**
+   *  添加用户支付订单信息
+   *
+   *  @param data 用户支付订单信息表单数据
+   */
+  create(data: UserOrderInfoForm) {
+    return request({
+      url: `${USERORDERINFO_BASE_URL}`,
+      method: "post",
+      data,
+    });
+  },
 
-    /**
-     * 更新用户支付订单信息
-     *
-     * @param id 用户支付订单信息ID
-     * @param data 用户支付订单信息表单数据
-     */
-     update(id: string, data: UserOrderInfoForm) {
-        return request({
-            url: `${USERORDERINFO_BASE_URL}/${id}`,
-            method: "put",
-            data,
-        });
-    },
+  /**
+   * 更新用户支付订单信息
+   *
+   * @param id 用户支付订单信息ID
+   * @param data 用户支付订单信息表单数据
+   */
+  update(id: string, data: UserOrderInfoForm) {
+    return request({
+      url: `${USERORDERINFO_BASE_URL}/${id}`,
+      method: "put",
+      data,
+    });
+  },
 
-    /**
-     * 批量删除用户支付订单信息,多个以英文逗号(,)分割
-     *
-     * @param ids 用户支付订单信息ID字符串,多个以英文逗号(,)分割
-     */
-     deleteByIds(ids: string) {
-        return request({
-            url: `${USERORDERINFO_BASE_URL}/${ids}`,
-            method: "delete",
-        });
-    }
-}
+  /**
+   * 批量删除用户支付订单信息,多个以英文逗号(,)分割
+   *
+   * @param ids 用户支付订单信息ID字符串,多个以英文逗号(,)分割
+   */
+  deleteByIds(ids: string) {
+    return request({
+      url: `${USERORDERINFO_BASE_URL}/${ids}`,
+      method: "delete",
+    });
+  },
+  /**
+   * 导出充电订单信息
+   * @param queryParams 查询参数
+   */
+  exportExcel(data: ChargeOrderInfoForm) {
+    return request<any, Blob>({
+      url: `${USERORDERINFO_BASE_URL}/export`,
+      method: "post",
+      data,
+      responseType: "blob",
+    });
+  },
+};
 
 export default UserOrderInfoAPI;
 
 /** 用户支付订单信息分页查询参数 */
 export interface UserOrderInfoPageQuery extends PageQuery {
-    /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
-    orderStatus?: number;
+  /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
+  orderStatus?: number;
 }
 
 /** 用户支付订单信息表单对象 */
 export interface UserOrderInfoForm {
-    /** 订单编号 */
-    orderNo?:  string;
-    /** 订单金额 */
-    orderMoney?:  number;
-    /** 订单剩余金额 */
-    lastMoney?:  number;
-    /** 支付时间 */
-    payTime?:  string;
-    /** 第三方支付单号 */
-    outTradeNo?:  string;
-    /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
-    orderStatus?:  number;
-    /** 订单类型 1 微信 2 第三方 */
-    orderType?:  number;
-    /** 退款金额 */
-    refundMoney?:  number;
-    /** 退款时间 */
-    refundTime?:  string;
-    /** 备注 */
-    remark?:  string;
-    /** 创建时间 */
-    createTime?:  number;
+  /** 订单编号 */
+  orderNo?: string;
+  /** 订单金额 */
+  orderMoney?: number;
+  /** 订单剩余金额 */
+  lastMoney?: number;
+  /** 支付时间 */
+  payTime?: string;
+  /** 第三方支付单号 */
+  outTradeNo?: string;
+  /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
+  orderStatus?: number;
+  /** 订单类型 1 微信 2 第三方 */
+  orderType?: number;
+  /** 退款金额 */
+  refundMoney?: number;
+  /** 退款时间 */
+  refundTime?: string;
+  /** 备注 */
+  remark?: string;
+  /** 创建时间 */
+  createTime?: number;
 }
 
 /** 用户支付订单信息分页对象 */
 export interface UserOrderInfoPageVO {
-    /** 订单编号 */
-    orderNo?: string;
-    /** 订单金额 */
-    orderMoney?: number;
-    /** 订单剩余金额 */
-    lastMoney?: number;
-    /** 支付时间 */
-    payTime?: string;
-    /** 第三方支付单号 */
-    outTradeNo?: string;
-    /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
-    orderStatus?: number;
-    /** 订单类型 1 微信 2 第三方 */
-    orderType?: number;
-    /** 退款金额 */
-    refundMoney?: number;
-    /** 退款时间 */
-    refundTime?: string;
-    /** 备注 */
-    remark?: string;
-    /** 创建时间 */
-    createTime?: number;
+  /** 订单编号 */
+  orderNo?: string;
+  /** 订单金额 */
+  orderMoney?: number;
+  /** 订单剩余金额 */
+  lastMoney?: number;
+  /** 支付时间 */
+  payTime?: string;
+  /** 第三方支付单号 */
+  outTradeNo?: string;
+  /** 订单状态 1 待支付  2 已支付 3 已取消 4 已退款 */
+  orderStatus?: number;
+  /** 订单类型 1 微信 2 第三方 */
+  orderType?: number;
+  /** 退款金额 */
+  refundMoney?: number;
+  /** 退款时间 */
+  refundTime?: string;
+  /** 备注 */
+  remark?: string;
+  /** 创建时间 */
+  createTime?: number;
 }

+ 39 - 16
src/components/CURD/PageContent.vue

@@ -11,6 +11,7 @@
             v-hasPerm="btn.perm ?? '*:*:*'"
             v-bind="typeof btn.attrs === 'function' ? btn.attrs() : btn.attrs"
             :disabled="(typeof btn.attrs === 'function' ? btn.attrs() : btn.attrs)?.disabled || (btn.name === 'delete' && removeIds.length === 0)"
+            :loading="btn.name === 'export' && exportLoading"
             @click="handleToolbar(btn.name)"
           >
             {{ btn.text }}
@@ -369,17 +370,28 @@ const emit = defineEmits<{
 // 表格工具栏按钮配置
 const config = computed(() => props.contentConfig);
 const buttonConfig = reactive<Record<string, IObject>>({
-  add: { text: "新增", attrs: { icon: "plus", type: "success" }, perm: "add" },
-  delete: { text: "删除", attrs: { icon: "delete", type: "danger" }, perm: "delete" },
-  import: { text: "导入", attrs: { icon: "upload", type: "" }, perm: "import" },
-  export: { text: "导出", attrs: { icon: "download", type: "" }, perm: "export" },
+  // add: { text: "新增", attrs: { icon: "plus", type: "success" }, perm: "add" },
+  // delete: { text: "删除", attrs: { icon: "delete", type: "danger" }, perm: "delete" },
+  // import: { text: "导入", attrs: { icon: "upload", type: "" }, perm: "import" },
+  // export: { text: "导出", attrs: { icon: "download", type: "" }, perm: "export" },
+  // refresh: { text: "刷新", attrs: { icon: "refresh", type: "" }, perm: "*:*:*" },
+  // filter: { text: "筛选列", attrs: { icon: "operation", type: "" }, perm: "*:*:*" },
+  // search: { text: "搜索", attrs: { icon: "search", type: "" }, perm: "search" },
+  // imports: { text: "批量导入", attrs: { icon: "upload", type: "" }, perm: "imports" },
+  // exports: { text: "批量导出", attrs: { icon: "download", type: "" }, perm: "exports" },
+  // view: { text: "查看", attrs: { icon: "view", type: "primary" }, perm: "view" },
+  // edit: { text: "编辑", attrs: { icon: "edit", type: "primary" }, perm: "edit" },
+  add: { text: "新增", attrs: { icon: "plus", type: "success" }, perm: "*:*:*" },
+  delete: { text: "删除", attrs: { icon: "delete", type: "danger" }, perm: "*:*:*" },
+  import: { text: "导入", attrs: { icon: "upload", type: "" }, perm: "*:*:*" },
+  export: { text: "导出", attrs: { icon: "download", type: "" }, perm: "*:*:*" },
   refresh: { text: "刷新", attrs: { icon: "refresh", type: "" }, perm: "*:*:*" },
   filter: { text: "筛选列", attrs: { icon: "operation", type: "" }, perm: "*:*:*" },
-  search: { text: "搜索", attrs: { icon: "search", type: "" }, perm: "search" },
-  imports: { text: "批量导入", attrs: { icon: "upload", type: "" }, perm: "imports" },
-  exports: { text: "批量导出", attrs: { icon: "download", type: "" }, perm: "exports" },
-  view: { text: "查看", attrs: { icon: "view", type: "primary" }, perm: "view" },
-  edit: { text: "编辑", attrs: { icon: "edit", type: "primary" }, perm: "edit" },
+  search: { text: "搜索", attrs: { icon: "search", type: "" }, perm: "*:*:*" },
+  imports: { text: "批量导入", attrs: { icon: "upload", type: "" }, perm: "*:*:*" },
+  exports: { text: "批量导出", attrs: { icon: "download", type: "" }, perm: "*:*:*" },
+  view: { text: "查看", attrs: { icon: "view", type: "primary" }, perm: "*:*:*" },
+  edit: { text: "编辑", attrs: { icon: "edit", type: "primary" }, perm: "*:*:*" },
 });
 
 // 主键
@@ -473,6 +485,8 @@ const cols = ref(
 );
 // 加载状态
 const loading = ref(false);
+// 导出加载状态
+const exportLoading = ref(false);
 // 列表数据
 const pageData = ref<IObject[]>([]);
 // 显示分页
@@ -914,13 +928,22 @@ fetchPageData();
 // 导出Excel
 function exportPageData(formData: IObject = {}) {
   if (props.contentConfig.exportAction) {
-    props.contentConfig.exportAction(formData).then((response) => {
-      const fileData = response.data;
-      const fileName = decodeURI(
-        response.headers["content-disposition"].split(";")[1].split("=")[1]
-      );
-      saveXlsx(fileData, fileName);
-    });
+    exportLoading.value = true;
+    props.contentConfig.exportAction(formData)
+      .then((response) => {
+        const fileData = response.data;
+        const fileName = decodeURI(
+          response.headers["content-disposition"].split(";")[1].split("=")[1]
+        );
+        saveXlsx(fileData, fileName);
+        ElMessage.success("导出成功");
+      })
+      .catch(() => {
+        ElMessage.error("导出失败");
+      })
+      .finally(() => {
+        exportLoading.value = false;
+      });
   } else {
     ElMessage.error("未配置exportAction");
   }

+ 73 - 47
src/views/orderManage/charge-order-info/index.vue

@@ -39,6 +39,9 @@
       <template #orderType="scope">
         <DictLabel v-model="scope.row[scope.prop]" code="charge_order_type" />
       </template>
+      <template #chargeTime="scope">
+        <span>{{ formatSeconds(scope.row[scope.prop]) }}</span>
+      </template>
       <template #status="scope">
         <DictLabel v-model="scope.row[scope.prop]" code="charge_order_status" />
       </template>
@@ -97,8 +100,8 @@
 </template>
 
 <script setup lang="ts">
+import BillingStrategyAPI from "@/api/operationsManage/billing-strategy-api";
 defineOptions({ name: "ChargeOrderInfo" });
-
 import ChargeOrderInfoAPI, {
   ChargeOrderInfoForm,
   ChargeOrderInfoPageQuery,
@@ -181,24 +184,45 @@ const searchConfig: ISearchConfig = reactive({
     },
     {
       type: "input",
-      label: "请求启动充电的手机号",
+      label: "用户手机号",
       prop: "phoneNum",
       attrs: {
-        placeholder: "请求启动充电的手机号",
+        placeholder: "用户手机号",
         clearable: true,
         style: { width: "200px" },
       },
     },
     {
-      type: "custom",
-      slotName: "maspStatus",
-      label: "补缴状态", // 0.无需补缴  1.待补缴  2.已补缴
-      prop: "maspStatus",
+      type: "select",
+      label: "所属站点",
+      prop: "thirdStationId",
       attrs: {
-        placeholder: "补缴状态",
+        placeholder: "请选择站点",
         clearable: true,
+        filterable: true,
         style: { width: "200px" },
       },
+      options: [],
+      async initFn(formItem) {
+        const data = await BillingStrategyAPI.getChargingPileSelect();
+        formItem.options = (data || []).map((item: any) => ({
+          label: item.stationName,
+          value: item.id,
+        }));
+      },
+    },
+    {
+      type: "date-picker",
+      label: "创建时间",
+      prop: "createTime",
+      attrs: {
+        type: "daterange",
+        "range-separator": "~",
+        "start-placeholder": "开始时间",
+        "end-placeholder": "截止时间",
+        "value-format": "YYYY-MM-DD",
+        style: { width: "240px" },
+      },
     },
   ],
 });
@@ -214,9 +238,24 @@ const contentConfig: IContentConfig<ChargeOrderInfoPageQuery> = reactive({
   // 主键
   pk: "id",
   // 列表查询接口
-  indexAction: ChargeOrderInfoAPI.getPage,
+  // indexAction: ChargeOrderInfoAPI.getPage,
+  // 列表查询接口
+  indexAction: (params: any) => {
+    // 处理创建时间范围参数
+    if ("createTime" in params) {
+      const createTime = params.createTime as string[];
+      if (createTime?.length > 1) {
+        params.startTime = createTime[0] + " 00:00:00";
+        params.endTime = createTime[1] + " 23:59:59";
+      }
+      delete params.createTime;
+    }
+    return ChargeOrderInfoAPI.getPage(params);
+  },
   // 删除接口
   deleteAction: ChargeOrderInfoAPI.deleteByIds,
+  // 导出接口
+  exportAction: ChargeOrderInfoAPI.exportExcel,
   // 数据解析函数
   parseData(res: any) {
     return {
@@ -232,80 +271,58 @@ const contentConfig: IContentConfig<ChargeOrderInfoPageQuery> = reactive({
     pageSizes: [10, 20, 30, 50],
   },
   // 工具栏配置
-  // toolbar: ["add", "delete"],
+  toolbar: ["export"],
   defaultToolbar: ["refresh", "filter"],
   // 表格列配置
   cols: [
     { type: "selection", width: 55, align: "center" },
+    { label: "充电订单号", prop: "chargeOrderNo" },
+    { label: "用户手机号", prop: "phoneNum" },
     {
       label: "订单类型", // 1 个人订单 2 集团订单
       prop: "orderType",
       templet: "custom",
       slotName: "orderType",
     },
+    { label: "充电站名称", prop: "stationName" },
+    { label: "设备名称", prop: "connectorName" },
     { label: "充电桩编号", prop: "equipmentId" },
-    { label: "充电订单号", prop: "chargeOrderNo" },
     { label: "充电开始时间", prop: "startTime" },
     { label: "充电结束时间", prop: "endTime" },
     {
       label: "充电时间", //:秒
       prop: "chargeTime",
+      templet: "custom",
+      slotName: "chargeTime",
     },
     {
-      label: "状态", //0待启动 1 充电中 2 结算中 3 已完成, 5未成功充电
+      label: "订单状态", //0待启动 1 充电中 2 结算中 3 已完成, 5未成功充电
       prop: "status",
       templet: "custom",
       slotName: "status",
     },
-    { label: "充电消费总额", prop: "thirdPartyTotalCost" },
-    { label: "充电服务费", prop: "thirdPartyServerfee" },
-    { label: "充电金额", prop: "thirdPartyElecfee" },
     {
       label: "实际充电度数", //(单位:0.001 kw/h)
       prop: "totalCharge",
     },
     { label: "平台实际收取金额", prop: "realCost" },
     { label: "平台总服务费", prop: "realServiceCost" },
+    { label: "三方充电消费总额", prop: "thirdPartyTotalCost" },
+    { label: "三方充电服务费", prop: "thirdPartyServerfee" },
+    { label: "三方充电金额", prop: "thirdPartyElecfee" },
+    { label: "预充值金额", prop: "preAmt" },
+    { label: "优惠金额", prop: "discountMoney" },
+    { label: "优惠描述", prop: "discountDesc" },
+    { label: "优惠券金额", prop: "couponPrice" },
     {
       label: "停止类型", //1 主动停止 2 充满停止 3 余额不足停止, 4电桩按钮停止
       prop: "stopType",
       templet: "custom",
       slotName: "stopType",
     },
-    { label: "请求启动充电的手机号", prop: "phone" },
-    {
-      label: "车牌号", //( 停车减免必传,格式确保正确)
-      prop: "plateNum",
-    },
     { label: "充电结束原因", prop: "stopReason" },
-    {
-      label: "推送", //:充电明细信息
-      prop: "chargeDetails",
-    },
-    { label: "充电站id", prop: "thirdPartyStationId" },
-    { label: "预充值金额", prop: "preAmt" },
-    { label: "平台预扣服务费", prop: "realPredictServiceCost" },
-    {
-      label: "补缴金额", //(智停)
-      prop: "maspAmount",
-    },
-    { label: "平台补缴金额", prop: "maspRealAmount" },
-    { label: "需要补缴的总金额", prop: "totalMaspMoney" },
-    {
-      label: "补缴状态", //  0.无需补缴  1.待补缴  2.已补缴
-      prop: "maspStatus",
-      templet: "custom",
-      slotName: "maspStatus",
-    },
-    { label: "补缴时间", prop: "maspTime" },
-    { label: "补缴描述", prop: "maspDesc" },
-    { label: "优惠金额", prop: "discountMoney" },
-    { label: "优惠描述", prop: "discountDesc" },
-    { label: "优惠活动ID", prop: "discountInfoId" },
-    { label: "服务费", prop: "realThirdCost" },
-    { label: "企业id", prop: "firmId" },
+    { label: "企业名称", prop: "firmName" },
     { label: "企业专享优惠价", prop: "firmPrice" },
-    { label: "优惠券金额", prop: "couponPrice" },
     { label: "备注", prop: "remark" },
     { label: "创建时间", prop: "createTime" },
 
@@ -666,4 +683,13 @@ const handleOperateClick = (data: IObject) => {
 const handleToolbarClick = (name: string) => {
   console.log(name);
 };
+
+// 格式化秒数为时分秒
+const formatSeconds = (seconds: number) => {
+  if (!seconds && seconds !== 0) return '-';
+  const hours = Math.floor(seconds / 3600);
+  const minutes = Math.floor((seconds % 3600) / 60);
+  const secs = seconds % 60;
+  return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
+};
 </script>

+ 7 - 3
src/views/orderManage/user-order-info/index.vue

@@ -68,6 +68,7 @@ import UserOrderInfoAPI, {
 } from "@/api/orderManage/user-order-info-api";
 import type { IObject, IModalConfig, IContentConfig, ISearchConfig } from "@/components/CURD/types";
 import usePage from "@/components/CURD/usePage";
+import ChargeOrderInfoAPI from "@/api/orderManage/charge-order-info-api";
 
 // 组合式 CRUD
 const {
@@ -161,6 +162,8 @@ const contentConfig: IContentConfig<UserOrderInfoPageQuery> = reactive({
   },
   // 删除接口
   deleteAction: UserOrderInfoAPI.deleteByIds,
+  // 导出接口
+  exportAction: UserOrderInfoAPI.exportExcel,
   // 数据解析函数
   parseData(res: any) {
     return {
@@ -176,17 +179,16 @@ const contentConfig: IContentConfig<UserOrderInfoPageQuery> = reactive({
     pageSizes: [10, 20, 30, 50],
   },
   // 工具栏配置
-  // toolbar: ["add", "delete"],
+  toolbar: ["export"],
   defaultToolbar: ["refresh", "filter"],
   // 表格列配置
   cols: [
     { type: "selection", width: 55, align: "center" },
     { label: "订单编号", prop: "orderNo" },
+    { label: "手机号", prop: "phone" },
     { label: "订单金额", prop: "orderMoney" },
     { label: "订单剩余金额", prop: "lastMoney" },
     { label: "支付时间", prop: "payTime" },
-    { label: "第三方支付单号", prop: "outTradeNo" },
-    { label: "手机号", prop: "phone" },
     {
       label: "订单状态", // 1 待支付  2 已支付 3 已取消 4 已退款
       prop: "orderStatus",
@@ -199,6 +201,8 @@ const contentConfig: IContentConfig<UserOrderInfoPageQuery> = reactive({
       templet: "custom",
       slotName: "orderType",
     },
+    { label: "第三方支付单号", prop: "outTradeNo" },
+    { label: "微信支付流水号", prop: "transactionId" },
     { label: "退款金额", prop: "refundMoney" },
     { label: "退款时间", prop: "refundTime" },
     { label: "备注", prop: "remark" },

+ 1 - 1
src/views/userManage/user-info/index.vue

@@ -145,7 +145,6 @@ const contentConfig: IContentConfig<UserInfoPageQuery> = reactive({
     { label: "用户ID", prop: "id", width: 100 },
     { label: "手机号", prop: "phone" },
     { label: "昵称", prop: "nickName" },
-    { label: "所属企业", prop: "firmName" },
     {
       label: "当前余额",
       prop: "balance",
@@ -161,6 +160,7 @@ const contentConfig: IContentConfig<UserInfoPageQuery> = reactive({
       slotName: "totalConsumption",
     },
     { label: "创建时间", prop: "createTime" },
+    { label: "所属企业", prop: "firmName" },
     {
       label: "操作",
       prop: "operation",