zaijin 1 жил өмнө
parent
commit
9b3e95927b

+ 23 - 0
common/apiurl.js

@@ -160,5 +160,28 @@ export const apiurl = {
     getAdBannerListUrl: '/admin/advertInfo',
     // 获取广告详情
     getAdBannerDetailsUrl: '/admin/advertInfo/detail'
+  },
+  // 发票模块
+  invoiceModule: {
+    // 获取发票列表
+    getInvoiceListUrl: '/admin/invoiceInfo',
+    // 新增发票
+    addInvoiceUrl: '/admin/invoiceInfo/add',
+    // 修改发票
+    updateInvoiceUrl: '/admin/invoiceInfo/update',
+    // 删除发票
+    deleteInvoiceUrl: '/admin/invoiceInfo/delete',
+    // 获取发票详情
+    getInvoiceDetailsUrl: '/admin/invoiceInfo/detail',
+    // 获取发票开头列表
+    getInvoiceHeadListUrl: '/admin/invoiceInfo/invoiceHeadList',
+    // 获取发票开头详情
+    getInvoiceHeadDetailsUrl: '/admin/invoiceInfo/invoiceHeadDetail',
+    // 新增发票开头
+    addInvoiceHeaderUrl: '',
+    // 修改发票开头
+    updateInvoiceHeaderUrl: '',
+    // 删除发票开头
+    deleteInvoiceHeaderUrl: '',
   }
 };

+ 28 - 4
common/http.api.js

@@ -27,8 +27,8 @@ const install = (Vue, vm) => {
 
   let getWXInfo = (params = {}) => vm.$u.get(apiurl.getWXInfoUrl + params);
 
-	let getWxOpenidApi = (params = {}) => vm.$u.get(apiurl.getWxOpenidUrl + params.code);
-	
+  let getWxOpenidApi = (params = {}) => vm.$u.get(apiurl.getWxOpenidUrl + params.code);
+
   let wxPay = (params = {}) => vm.$u.post(apiurl.wxPayUrl, params);
 
   let getIndexData = (params = {}) => vm.$u.post(apiurl.getIndexDataUrl, params);
@@ -134,7 +134,30 @@ const install = (Vue, vm) => {
   let adBannerModuleApi = {
     getAdBannerListApi: (params = {}) => vm.$u.get(apiurl.adBannerModule.getAdBannerListUrl, params),
     getAdBannerDetailsApi: (params = {}) => vm.$u.get(apiurl.adBannerModule.getAdBannerDetailsUrl, params)
-  }
+  };
+  // 发票模块api
+  let invoiceModuleApi = {
+    // 获取发票列表
+    getInvoiceListApi: (params = {}) => vm.$u.get(apiurl.invoiceModule.getInvoiceDetailsUrl, params),
+    // 新增发票
+    addInvoiceApi: (params = {}) => vm.$u.post(apiurl.invoiceModule.addInvoiceUrl, params),
+    // 修改发票
+    updateInvoiceApi: (params = {}) => vm.$u.post(apiurl.invoiceModule.updateInvoiceUrl, params),
+    // 删除发票
+    deleteInvoiceApi: (params = {}) => vm.$u.delete(apiurl.invoiceModule.deleteInvoiceUrl, params),
+    // 获取发票详情
+    getInvoiceDetailsApi: (params = {}) => vm.$u.get(apiurl.invoiceModule.getInvoiceDetailsUrl, params),
+    // 获取发票开头列表
+    getInvoiceHeadListApi: (params = {}) => vm.$u.get(apiurl.invoiceModule.getInvoiceHeadListUrl, params),
+    // 获取发票开头详情
+    getInvoiceHeadDetailsApi: (params = {}) => vm.$u.get(apiurl.invoiceModule.getInvoiceHeadDetailsUrl, params),
+    // 新增发票开头
+    addInvoiceHeaderApi: (params = {}) => vm.$u.post(apiurl.invoiceModule.addInvoiceHeaderUrl, params),
+    // 修改发票开头
+    updateInvoiceHeaderApi: (params = {}) => vm.$u.post(apiurl.invoiceModule.updateInvoiceHeaderUrl, params),
+    // 删除发票开头
+    deleteInvoiceHeaderApi: (params = {}) => vm.$u.delete(apiurl.invoiceModule.deleteInvoiceHeaderUrl, params)
+  };
   // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
   vm.$u.api = {
     feedbackAdd,
@@ -207,7 +230,8 @@ const install = (Vue, vm) => {
     getVehicleInquiryListApi,
     getOrderInfoByParknoApi,
     indoorPaymentApi,
-    adBannerModuleApi
+    adBannerModuleApi,
+    invoiceModuleApi
   };
 };
 

+ 27 - 1
pages.json

@@ -343,11 +343,37 @@
     {
       "path": "pages/invoiceModule/invoiceHeaderList/invoiceHeaderList",
       "style": {
-        "navigationBarTitleText": "常用发票开头",
+        "navigationBarTitleText": "抬头信息",
         "enablePullDownRefresh": false,
         "navigationBarBackgroundColor": "#008CFF",
         "navigationBarTextStyle": "white"
       }
+    },
+    {
+      "path": "pages/invoiceModule/invoiceDetails/invoiceDetails",
+      "style": {
+        "navigationBarTitleText": "详情",
+        "enablePullDownRefresh": false,
+        "navigationBarBackgroundColor": "#008CFF",
+        "navigationBarTextStyle": "white"
+      }
+    },
+    {
+      "path": "pages/invoiceModule/addInvoiceHeader/addInvoiceHeader",
+      "style": {
+        "navigationBarTitleText": "新增抬头",
+        "enablePullDownRefresh": false,
+        "navigationBarBackgroundColor": "#008CFF",
+        "navigationBarTextStyle": "white"
+      }
+    },
+    {
+      "path": "pages/invoiceModule/invoiceSuccess/invoiceSuccess",
+      "style": {
+        "navigationBarTitleText": "开票申请",
+        "enablePullDownRefresh": false,
+        "navigationStyle": "custom"
+      }
     }
   ],
   "globalStyle": {

+ 2 - 19
pages/center/index.vue

@@ -29,36 +29,19 @@
         <u-cell-item title="停车记录" @click="openPage('pages/center/order/order')">
           <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="tingchejilu"></u-icon>
         </u-cell-item>
-      </u-cell-group>
-    </view>
-
-    <view class="u-m-t-20">
-      <u-cell-group>
         <u-cell-item title="包月" @click="openPage('pages/center/monthly/monthly')">
           <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="baoyue"></u-icon>
         </u-cell-item>
-      </u-cell-group>
-    </view>
-    <view class="u-m-t-20">
-      <u-cell-group>
         <u-cell-item title="消息中心" @click="openPage('pages/message/message', true)">
           <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="xiaoxi"></u-icon>
           <u-badge type="success" :count="messageNum" :offset="[38, 80]"></u-badge>
         </u-cell-item>
-      </u-cell-group>
-    </view>
-    <template v-if="projectFlag !== 'zhenning'">
-      <view class="u-m-t-20">
-        <u-cell-group>
+        <template v-if="projectFlag !== 'zhenning'">
           <u-cell-item icon="coupon" title="我的优惠券" @click="openPage('/pages/center/coupon/myCoupon/myCoupon')"></u-cell-item>
           <u-cell-item title="我的发票" @click="openPage('/pages/invoiceModule/myInvoice/myInvoice')">
             <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="fapiao" />
           </u-cell-item>
-        </u-cell-group>
-      </view>
-    </template>
-    <view class="u-m-t-20 u-m-b-40">
-      <u-cell-group>
+        </template>
         <u-cell-item title="拨打客服电话" @click="callPhoneShow = true">
           <u-icon slot="icon" custom-prefix="custom-icon" size="35" name="dianhua"></u-icon>
         </u-cell-item>

+ 1 - 0
pages/invoiceModule/addInvoice/addInvoice.scss

@@ -21,6 +21,7 @@
   .popup {
     padding: 30rpx 0;
     margin-top: 60rpx;
+    height: 50vh;
     max-height: 50vh;
     position: relative;
 

+ 8 - 1
pages/invoiceModule/addInvoice/addInvoice.vue

@@ -1,3 +1,4 @@
+<!-- 新增发票 -->
 <template>
   <view class="invoice">
     <view class="invoice-form">
@@ -23,7 +24,7 @@
     </view>
     <view class="invoice-tips"> 注:本公司目前只支持开具增值税普通发票 </view>
     <view class="invoice-submit">
-      <u-button type="primary">提交</u-button>
+      <u-button type="primary" @click="submitForm">提交</u-button>
     </view>
     <!-- 公司弹框 -->
     <u-popup v-model="companyPop.show" mode="bottom" :closeable="true" height="50vh">
@@ -83,9 +84,15 @@ export default {
       this.form.dutyNum = item.no;
     },
     addInvoiceHeader() {
+      this.companyPop.show = false;
       this.$u.route({
         url: '/pages/invoiceModule/invoiceHeaderList/invoiceHeaderList'
       })
+    },
+    submitForm() {
+      this.$u.route({
+        url: '/pages/invoiceModule/invoiceSuccess/invoiceSuccess'
+      })
     }
   }
 };

+ 34 - 0
pages/invoiceModule/addInvoiceHeader/addInvoiceHeader.scss

@@ -0,0 +1,34 @@
+.invoice-header {
+  height: calc(100vh - 44px);
+  background-color: #f9f9f9;
+  padding: 30rpx;
+
+  &-form {
+    padding: 0 30rpx 30rpx;
+    background-color: #fff;
+  }
+
+  &-default {
+    background-color: #fff;
+    margin-top: 20rpx;
+    padding: 0 30rpx 10rpx;
+
+    &-item {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      width: 100%;
+
+      .tips {
+        font-size: 20rpx;
+      }
+    }
+  }
+
+  &-bottom {
+    position: fixed;
+    bottom: 0;
+    width: 100%;
+    left: 0;
+  }
+}

+ 125 - 0
pages/invoiceModule/addInvoiceHeader/addInvoiceHeader.vue

@@ -0,0 +1,125 @@
+<!-- 新增发票抬头 -->
+<template>
+  <view class="invoice-header">
+    <view class="invoice-header-form">
+      <u-form :model="form" ref="uForm" label-width="150">
+        <u-form-item label="抬 头:" prop="type">
+          <u-radio-group v-model="form.type">
+            <u-radio :name="1">企业</u-radio>
+            <u-radio :name="2">个人</u-radio>
+          </u-radio-group>
+        </u-form-item>
+        <u-form-item label="发票抬头:" prop="name">
+          <u-input v-model="form.name" placeholder="请输入发票抬头" />
+        </u-form-item>
+        <u-form-item label="税 号:" prop="dutyNum" v-if="form.type === 1">
+          <u-input v-model="form.dutyNum" placeholder="请输入税号" />
+        </u-form-item>
+      </u-form>
+    </view>
+    <view class="invoice-header-default">
+      <u-form :model="form" ref="uForm1" label-width="150">
+        <u-form-item label="默认抬头:">
+          <view class="invoice-header-default-item">
+            <text class="tips">每次开票都会默认填写该抬头信息系</text>
+            <u-switch v-model="form.checked" size="40" />
+          </view>
+        </u-form-item>
+      </u-form>
+    </view>
+    <view class="invoice-header-bottom">
+      <u-button type="primary" @click="submitForm" :loading="loading">保存</u-button>
+    </view>
+    <u-toast ref="uToast" />
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {
+        type: 1,
+        name: '',
+        dutyNum: '',
+        checked: false
+      },
+      rules: {
+        name: [{ required: true, message: '请输入发票抬头', trigger: ['blur', 'change'] }],
+        dutyNum: [{ required: true, message: '请输入税号', trigger: ['blur', 'change'] }]
+      },
+      loading: false
+    };
+  },
+  onLoad(options) {
+    const { id } = options;
+    if (id) {
+      uni.setNavigationBarTitle({
+        title: '编辑抬头'
+      });
+    }
+  },
+  // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
+  onReady() {
+    this.$refs.uForm.setRules(this.rules);
+  },
+  methods: {
+    /**
+     * @description: 获取发票抬头信息
+     * @param {*} id
+     * @return {*}
+     */
+    async getInvoiceHeaderDetails(id) {
+      const { code, data } = await this.$u.api.invoiceModuleApi.getInvoiceHeadDetailsApi({ id });
+      if (code === 200) {
+      }
+    },
+    /**
+     * @description: 提交发票
+     * @return {*}
+     */
+    submitForm() {
+      this.$refs.uForm.validate(async (valid) => {
+        if (valid) {
+          this.loading = true;
+          if (this.form.id) {
+            try {
+              const { code } = await this.$u.api.invoiceModuleApi.updateInvoiceHeaderApi({ ...this.form });
+              if (code === 200) {
+                this.$refs.uToast.show({
+                  title: '修改成功!',
+                  type: 'success',
+                  duration: 2000,
+                  url: '/pages/invoiceModule/invoiceHeaderList/invoiceHeaderList'
+                });
+              }
+            } catch (error) {
+            } finally {
+              this.loading = false;
+            }
+          } else {
+            try {
+              const { code } = await this.$u.api.invoiceModuleApi.addInvoiceHeaderApi({ ...this.form });
+              if (code === 200) {
+                this.$refs.uToast.show({
+                  title: '保存成功!',
+                  type: 'success',
+                  duration: 2000,
+                  url: '/pages/invoiceModule/invoiceHeaderList/invoiceHeaderList'
+                });
+              }
+            } catch (error) {
+            } finally {
+              this.loading = false;
+            }
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+@import './addInvoiceHeader.scss';
+</style>

+ 1 - 0
pages/invoiceModule/availableOrder/availableOrder.vue

@@ -1,3 +1,4 @@
+<!-- 可开发票订单 -->
 <template>
   <view class="order-box">
     <z-paging ref="paging" v-model="orderList" @query="queryList">

+ 3 - 0
pages/invoiceModule/invoiceDetails/invoiceDetails.scss

@@ -0,0 +1,3 @@
+.details {
+  
+}

+ 47 - 0
pages/invoiceModule/invoiceDetails/invoiceDetails.vue

@@ -0,0 +1,47 @@
+<!-- 发票详情 -->
+<template>
+  <view class="details"> </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      invoiceInfo: null
+    };
+  },
+  onLoad(options) {
+    const { id, orderType } = options;
+    if (id) {
+      // this.getInvoiceDetails(id);
+    }
+  },
+  methods: {
+    /**
+     * @description: 获取发票详情
+     * @param {*} id
+     * @return {*}
+     */
+    async getInvoiceDetails(id) {
+      const { code, data } = await this.$u.api.invoiceModuleApi.getInvoiceDetailsApi({ id });
+      if (code === 200) {
+        this.invoiceInfo = data;
+      }
+    },
+    /**
+     * @description: 预览图片
+     * @param {*} url
+     * @return {*}
+     */
+    previewImage(url) {
+      uni.previewImage({
+        urls: [url]
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+@import './invoiceDetails.scss';
+</style>

+ 43 - 0
pages/invoiceModule/invoiceHeaderList/invoiceHeaderList.scss

@@ -0,0 +1,43 @@
+.invoice-header {
+  height: calc(100vh - 44px);
+  background-color: #f9f9f9;
+
+  &-list {
+    padding: 31rpx;
+
+    &-item {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      // background-color: #fff;
+      padding: 20rpx 30rpx;
+      // margin-bottom: 20rpx;
+
+      .left {
+        width: 50%;
+
+        &-item {
+          margin-bottom: 10rpx;
+          font-weight: bold;
+          width: 100%;
+          white-space: nowrap;
+          overflow: hidden;
+          text-overflow: ellipsis;
+
+          &:last-child {
+            font-weight: normal;
+          }
+        }
+      }
+
+      .center {
+        color: $u-type-primary;
+        font-size: 24rpx;
+      }
+    }
+  }
+
+  &-bottom {
+    padding: 30rpx;
+  }
+}

+ 106 - 12
pages/invoiceModule/invoiceHeaderList/invoiceHeaderList.vue

@@ -1,19 +1,113 @@
+<!-- 发票抬头列表 -->
 <template>
-	<view>
-		
-	</view>
+  <view class="invoice-header">
+    <z-paging ref="paging" v-model="invoiceHeaderList" @query="queryList">
+      <view class="invoice-header-list">
+        <u-swipe-action
+          v-for="(item, index) in invoiceHeaderList"
+          :key="index"
+          :index="index"
+          :show="item.show"
+          :options="options"
+          btn-width="120"
+          @click="invoiceHeaderClick"
+          bg-color="#fff"
+        >
+          <view class="invoice-header-list-item" @click="addInvoiceHeader(item)">
+            <view class="left">
+              <view class="left-item">{{ item.companyName }}</view>
+              <view class="left-item">{{ item.dutyNum }}</view>
+            </view>
+            <view class="center">
+              {{ formatType(item.type) }}
+            </view>
+            <view class="right">
+              <u-icon name="arrow-right" color="#909399" size="30"></u-icon>
+            </view>
+          </view>
+        </u-swipe-action>
+      </view>
+      <view class="invoice-header-bottom" slot="bottom">
+        <u-button type="primary" @click="addInvoiceHeader">新增抬头</u-button>
+      </view>
+    </z-paging>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				
-			};
-		}
-	}
+export default {
+  data() {
+    return {
+      invoiceHeaderList: [],
+      options: [
+        {
+          text: '删除',
+          style: {
+            backgroundColor: '#dd524d'
+          }
+        }
+      ]
+    };
+  },
+  methods: {
+    queryList(pageNo, pageSize) {
+      this.$refs.paging.complete([
+        { id: 1, companyName: '企业11111111111111111111111111', dutyNum: '1541564564165465', type: 1 },
+        { id: 2, companyName: '企业2', dutyNum: '1541564564165465', type: 1 },
+        { id: 3, companyName: '企业3', dutyNum: '1541564564165465', type: 1 },
+        { id: 4, companyName: '个人1', dutyNum: '1541564564165465', type: 2 }
+      ]);
+    },
+    /**
+     * @description: 滑动按钮点击
+     * @param {*} index
+     * @param {*} btnIndex
+     * @return {*}
+     */
+    invoiceHeaderClick(index, btnIndex) {
+      if (btnIndex === 0) {
+        uni.showModal({
+          title: '提示',
+          content: '你确认删除该条发票抬头信息吗?',
+          success: function (res) {
+            if (res.confirm) {
+              console.log('确认删除');
+            }
+            if (res.cancel) {
+              console.log('取消删除');
+            }
+          }
+        });
+      }
+    },
+    /**
+     * @description: 新增抬头
+     * @return {*}
+     */
+    addInvoiceHeader(item) {
+      this.$u.route({
+        url: '/pages/invoiceModule/addInvoiceHeader/addInvoiceHeader',
+        params: {
+          id: item.id
+        }
+      });
+    },
+    /**
+     * @description: 初始化类型
+     * @param {*} val
+     * @return {*}
+     */
+    formatType(val) {
+      const typeObj = {
+        1: '企业',
+        2: '个人'
+      };
+      return typeObj[val];
+    }
+  }
+};
 </script>
 
-<style lang="scss">
-
+<style lang="scss" scoped>
+@import './invoiceHeaderList.scss';
 </style>

+ 34 - 0
pages/invoiceModule/invoiceSuccess/invoiceSuccess.vue

@@ -0,0 +1,34 @@
+<!-- 开票成功 -->
+<template>
+  <view class="invoice-success">
+    <!-- 导航栏 -->
+    <u-navbar
+      title-color="#fff"
+      :custom-back="customBack"
+      :border-bottom="false"
+      back-icon-color="#CCE8FF"
+      :background="{ background: '#008CFF' }"
+      title="开票申请"
+    />
+		<!-- 主要内容 -->
+		<view class="invoice-success-content">1111111</view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  methods: {
+    customBack() {
+      this.$u.route({
+        url: '/pages/invoiceModule/myInvoice/myInvoice',
+        type: 'redirectTo'
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss"></style>

+ 15 - 1
pages/invoiceModule/myInvoice/myInvoice.scss

@@ -1,6 +1,6 @@
 .invoice {
   background-color: #f9f9f9;
-  height: calc(100vh - 44px);
+  height: 100vh;
   &-navbar {
     &-right {
       color: #fff;
@@ -20,12 +20,26 @@
       padding: 40rpx 30rpx;
       margin-bottom: 20rpx;
       border-radius: 6rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
       
       &-left {
         
         &-item {
           display: flex;
           margin-bottom: 10rpx;
+          font-size: 26rpx;
+
+          .money {
+            font-weight: bold;
+            color: $u-type-primary;
+            font-size: 28rpx;
+          }
+
+          .status {
+            margin-right: 40rpx;
+          }
         }
       }
     }

+ 81 - 18
pages/invoiceModule/myInvoice/myInvoice.vue

@@ -1,3 +1,4 @@
+<!-- 我的发票 -->
 <template>
   <view class="invoice">
     <z-paging ref="paging" v-model="invoiceList" @query="queryList">
@@ -16,22 +17,33 @@
       </u-navbar>
       <!-- 列表 -->
       <view class="invoice-list">
-        <view class="invoice-list-item" v-for="(item, index) in invoiceList" :key="index">
+        <view class="invoice-list-item" v-for="(item, index) in invoiceList" :key="index" @click="invoiceItemClick(item)">
           <view class="invoice-list-item-left">
             <view class="invoice-list-item-left-item" v-for="(child, childIndex) in invoiceObjectList" :key="childIndex">
               <view class="left">{{ child.label }}</view>
               <view class="right">
-                <template v-if="child.type === 'money'">¥{{ item[child.key] }}</template>
+                <template v-if="child.type === 'money'">
+                  <text class="money">¥{{ item[child.key] }}</text>
+                </template>
+                <template v-else-if="child.type === 'status'">
+                  <text class="status">
+                    {{ item[child.key] }}
+                  </text>
+                  <u-tag :text="formatStatus(item['status'])" :type="formatStatusType(item['status'])" mode="dark" />
+                </template>
                 <template v-else>
                   {{ item[child.key] }}
                 </template>
               </view>
             </view>
           </view>
-          <view class="invoice-list-item-right"></view>
+          <view class="invoice-list-item-right">
+            <u-icon name="arrow-right" color="#909399" size="28" />
+          </view>
         </view>
       </view>
     </z-paging>
+    <!-- 选择开票类型 -->
     <u-select v-model="chooseRecords.show" :list="chooseRecords.list" @confirm="chooseRecordsConfirm" />
   </view>
 </template>
@@ -40,17 +52,16 @@
 export default {
   data() {
     return {
-      invoiceList: [
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' }
-      ],
+      invoiceList: [],
       invoiceObjectList: [
-        { label: '主题:', key: 'title' },
-        { label: '金额:', key: 'price', type: 'money' },
-        { label: '申请开票时间:', key: 'applyTime' }
+        { label: '', key: 'title', type: 'status' },
+        { label: '', key: 'price', type: 'money' },
+        { label: '申请时间:', key: 'applyTime' }
       ],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10
+      },
       chooseRecords: {
         show: false,
         list: [
@@ -84,7 +95,7 @@ export default {
     addInvoice() {
       this.chooseRecords.show = true;
     },
-    /** 
+    /**
      * @description: 开发票选择确认
      * @param {*} val
      * @return {*}
@@ -97,19 +108,71 @@ export default {
         }
       });
     },
-    /** 
+    /**
      * @description: 分页触发
      * @param {*} pageNo
      * @param {*} pageSize
      * @return {*}
      */
     queryList(pageNo, pageSize) {
+      this.queryParams.pageNum = pageNo;
+      this.queryParams.pageSize = pageSize;
+      // this.getInvoiceList();
       this.$refs.paging.complete([
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' },
-        { title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30' }
+        { id: 1, title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30', status: 0 },
+        { id: 2, title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30', status: 1 },
+        { id: 3, title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30', status: 2 },
+        { id: 4, title: '停车服务', price: 0.03, applyTime: '2023-06-12 11:21:30', status: 1 }
       ]);
+    },
+    /** 
+     * @description: 获取发票列表
+     * @return {*}
+     */
+    async getInvoiceList() {
+      const { code, data } = await this.$u.api.invoiceModuleApi.getInvoiceListApi({ ...this.queryParams });
+      if (code === 200) {
+        this.$refs.paging.complete(data?.rows || []);
+      }
+    },
+    /**
+     * @description: 单条发票点击
+     * @param {*} item
+     * @return {*}
+     */
+    invoiceItemClick(item) {
+      this.$u.route({
+        url: '/pages/invoiceModule/invoiceDetails/invoiceDetails',
+        params: {
+          id: item.id
+        }
+      });
+    },
+    /**
+     * @description: 初始化状态
+     * @param {*} val
+     * @return {*}
+     */
+    formatStatus(val) {
+      const statusObj = {
+        0: '申请中',
+        1: '已开票',
+        2: '开票失败'
+      };
+      return statusObj[val];
+    },
+    /**
+     * @description: 初始化状态按钮样式
+     * @param {*} val
+     * @return {*}
+     */
+    formatStatusType(val) {
+      const statusTypeObj = {
+        0: 'info',
+        1: 'primary',
+        2: 'error'
+      };
+      return statusTypeObj[val];
     }
   }
 };