Explorar o código

添加发卡记录页面,添加红包的时候可以输入数量,并自动计算总额

udream-cxs %!s(int64=4) %!d(string=hai) anos
pai
achega
bbd9f3eb08

+ 9 - 0
src/apps/mobile/api/cardbank/history.js

@@ -0,0 +1,9 @@
+import request from '@/apps/mobile/utils/request';
+
+export function queryCardHistoryList(data) {
+    return request({
+        method: 'post',
+        url: `/api/userCoupons/query-all-page`,
+        data,
+    });
+}

+ 1 - 0
src/apps/mobile/components/header/leftside.vue

@@ -198,6 +198,7 @@
           </template>
           <el-menu-item index="/card-bank/index" v-if="card.card1">卡券管理</el-menu-item>
           <el-menu-item index="/card-bank/card-approve" v-if="card.card2">卡券审批</el-menu-item>
+          <el-menu-item index="/card-bank/card-history">发卡记录</el-menu-item>
       </el-submenu>
       <el-submenu index="/expert-database" v-if="menuList.expert">
           <template slot="title">

+ 19 - 0
src/apps/mobile/filters/filters.js

@@ -71,6 +71,25 @@ Vue.filter('fileTypePipe', (type) => {
     return str;
 });
 
+// 卡券使用类型
+Vue.filter('couponUsedFlagPipe', (type) => {
+    let str = '';
+    switch (type) {
+        case 0:
+            str = '已失效';
+            break;
+        case 1:
+            str = '未使用';
+            break;
+        case 2:
+            str = '已使用';
+            break;
+        default:
+            break;
+    }
+    return str;
+});
+
 // 卡券类型
 Vue.filter('couponTypePipe', (type) => {
     let str = '';

+ 8 - 0
src/apps/mobile/router/index.js

@@ -546,6 +546,14 @@ const router = new Router({
           requiresAuth: true,
       },
     },
+    {
+      path: '/card-bank/card-history',
+      component: () => import('@/apps/mobile/views/card-bank/history/index.vue'),
+      meta: {
+          title: '发卡记录',
+          requiresAuth: true,
+      },
+    },
     {
         path: '/expert-database', // 专家库
         component: Layout,

+ 17 - 42
src/apps/mobile/views/card-bank/approve/index.vue

@@ -37,20 +37,11 @@
 
             <div class="SearchTitle">
                 已选择
-                <span class="subject-color">4</span> 项
+                <span class="subject-color">{{ tableSelection.length }}</span> 项
             </div>
 
             <div class="MaintenanceTable">
-                <el-table
-                    ref="multipleTable"
-                    :data="tableData"
-                    style="width: 100%"
-                    tooltip-effect="dark"
-                    @selection-change="selectColumn"
-                    class="OutTable"
-                    border
-                    v-loading="listLoading"
-                >
+                <el-table ref="multipleTable" :data="tableData" style="width: 100%" tooltip-effect="dark" @selection-change="selectColumn" class="OutTable" border v-loading="listLoading">
                     <el-table-column type="selection"></el-table-column>
                     <el-table-column prop="name" label="名称"></el-table-column>
                     <el-table-column prop="type" label="类型">
@@ -69,6 +60,8 @@
                             <span v-if="scope.row.type ===2">{{scope.row.price }}</span>
                         </template>
                     </el-table-column>
+                    <el-table-column prop="num" label="数量"></el-table-column>
+                    <el-table-column prop="totalPrice" label="总额"></el-table-column>
                     <el-table-column label="满减" prop="fullReduction"></el-table-column>
                     <el-table-column prop="validity" label="截止时间">
                         <template slot-scope="scope">
@@ -111,31 +104,13 @@
                                 round
                                 @click="showAddEditDialog(scope.row)"
                             >编辑</el-button> -->
-                            <el-button
-                                size="mini"
-                                type="primary"
-                                plain
-                                round
-                                @click="audit(scope.row,1)"
-                            >通过</el-button>
-                            <el-button
-                                size="mini"
-                                type="primary"
-                                plain
-                                round
-                                :disabled="scope.row.checkFalg === 0"
-                                @click="audit(scope.row,0)"
-                            >驳回</el-button>
+                            <el-button size="mini" type="primary" plain round @click="audit(scope.row,1)">通过</el-button>
+                            <el-button size="mini" type="primary" plain round :disabled="scope.row.checkFalg === 0" @click="audit(scope.row,0)">驳回</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <div class="pagenation">
-                    <PageComponent
-                        :total="total"
-                        @pagination="handlePagination"
-                        :pageSize.sync="page.pageSize"
-                        :pageNum.sync="page.pageNum"
-                    ></PageComponent>
+                    <PageComponent :total="total" @pagination="handlePagination" :pageSize.sync="page.pageSize" :pageNum.sync="page.pageNum"></PageComponent>
                 </div>
             </div>
         </div>
@@ -191,10 +166,10 @@ export default {
                 },
             };
             queryCouponsList(obj)
-                .then(res => {
+                .then((res) => {
                     console.log(res);
-                    if(res.statusCode == "10"){
-                        this.$router.replace("/login");
+                    if (res.statusCode == '10') {
+                        this.$router.replace('/login');
                     }
                     this.tableData = res.data.records;
                     this.total = res.data.total;
@@ -210,7 +185,7 @@ export default {
             };
             console.log(obj);
             updateCouponsStatus(obj)
-                .then(res => {
+                .then((res) => {
                     if (res.statusCode === '1') {
                         this.$message.success(res.message);
                     } else {
@@ -229,7 +204,7 @@ export default {
                 })
                     .then(() => {
                         deleteCouponSingle(data.id)
-                            .then(res => {
+                            .then((res) => {
                                 console.log(res);
                                 if (res.statusCode === '1') {
                                     this.$message.success(res.message);
@@ -256,12 +231,12 @@ export default {
                     closeOnClickModal: false,
                 })
                     .then(() => {
-                        let ids = this.tableSelection.map(item => {
+                        let ids = this.tableSelection.map((item) => {
                             return item.id;
                         });
                         console.log(ids);
                         deleteCouponBatch(ids)
-                            .then(res => {
+                            .then((res) => {
                                 if (res.statusCode === '1') {
                                     this.$message.success(res.message);
                                 } else {
@@ -289,12 +264,12 @@ export default {
                 closeOnClickModal: false,
             })
                 .then(() => {
-                    let ids = this.tableSelection.map(item => {
+                    let ids = this.tableSelection.map((item) => {
                         return item.id;
                     });
                     console.log(ids);
                     openCouponBatch(ids)
-                        .then(res => {
+                        .then((res) => {
                             if (res.statusCode === '1') {
                                 this.$message.success(res.message);
                             } else {
@@ -321,7 +296,7 @@ export default {
                         };
                         console.log(obj);
                         couponsExamine(obj)
-                            .then(res => {
+                            .then((res) => {
                                 if (res.statusCode === '1') {
                                     this.$message.success(res.message);
                                 } else {

+ 169 - 0
src/apps/mobile/views/card-bank/history/index.vue

@@ -0,0 +1,169 @@
+<template>
+    <div class="common-container common-container">
+        <TitleBar></TitleBar>
+        <div class="main-container">
+            <div class="search-container TableSelectMain">
+                <el-form class="table-select-main" :model="searchForm" label-position="left">
+                    <el-row :gutter="15">
+                        <el-col :span="4">
+                            <el-form-item>
+                                <el-select placeholder="请选择卡券类型" v-model="searchForm.type">
+                                    <el-option label="折扣卷" :value="1"></el-option>
+                                    <el-option label="红包" :value="2"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-form-item>
+                                <el-select placeholder="是否使用" v-model="searchForm.usedFlag">
+                                    <el-option label="已失效" :value="0"></el-option>
+                                    <el-option label="未使用" :value="1"></el-option>
+                                    <el-option label="已使用" :value="2"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="4">
+                            <el-form-item>
+                                <el-button type="primary" round @click="querySearch">查询</el-button>
+                                <el-button type="primary" plain round @click="reset">重置</el-button>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </div>
+
+            <!-- <div class="SearchTitle">
+                已选择
+                <span class="subject-color">{{ tableSelection.length }}</span> 项
+            </div> -->
+
+            <div class="MaintenanceTable">
+                <el-table ref="multipleTable" :data="tableData" style="width: 100%" tooltip-effect="dark" class="OutTable" border v-loading="listLoading">
+                    <!-- <el-table-column type="selection"></el-table-column> -->
+                    <el-table-column prop="userName" label="用户名称"></el-table-column>
+                    <!-- <el-table-column prop="userHeadPic" label="用户头像"></el-table-column> -->
+                    <el-table-column prop="couponName" label="卡券名称"></el-table-column>
+                    <el-table-column prop="couponType" label="卡券类型">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.couponType | couponTypePipe}}</span>
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column prop="usedFlag" label="是否使用">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.usedFlag | couponUsedFlagPipe}}</span>
+                        </template>
+                    </el-table-column>
+                    <!-- <el-table-column prop="scenario" label="使用范围">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.scenario | couponUsePipe}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="折扣/面值">
+                        <template slot-scope="scope">
+                            <span v-if="scope.row.type ===1">{{scope.row.discount }}</span>
+                            <span v-if="scope.row.type ===2">{{scope.row.price }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="num" label="数量"></el-table-column>
+                    <el-table-column prop="totalPrice" label="总额"></el-table-column>
+                    <el-table-column label="满减" prop="fullReduction"></el-table-column>
+                    <el-table-column prop="validity" label="截止时间">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.validity | formatTimePipe }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="checkFalg" label="审核状态">
+                        <template slot-scope="scope">
+                            <span class="success" v-show="scope.row.checkFalg == 1">通过</span>
+                            <span class="warn" v-show="scope.row.checkFalg == 2">待审核</span>
+                            <span class="danger" v-show="scope.row.checkFalg == 0">驳回</span>
+                            <span class="warn" v-show="scope.row.checkFalg == 3">等待财务审核</span>
+                        </template>
+                    </el-table-column>
+
+                    <el-table-column label="操作" min-width="180px;">
+                        <template slot-scope="scope">
+                            <el-button size="mini" type="primary" plain round @click="audit(scope.row,1)">通过</el-button>
+                            <el-button size="mini" type="primary" plain round :disabled="scope.row.checkFalg === 0" @click="audit(scope.row,0)">驳回</el-button>
+                        </template>
+                    </el-table-column>-->
+                </el-table>
+                <div class="pagenation">
+                    <PageComponent :total="total" @pagination="handlePagination" :pageSize.sync="page.pageSize" :pageNum.sync="page.pageNum"></PageComponent>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import TitleBar from '@/apps/mobile/components/common/TitleBar';
+import { queryCardHistoryList } from '@/apps/mobile/api/cardbank/history';
+export default {
+    components: {
+        TitleBar,
+    },
+    data() {
+        return {
+            searchForm: {},
+            tableData: [],
+            page: {
+                pageNum: 1,
+                pageSize: 5,
+            },
+            total: 10,
+            listLoading: false,
+            tableSelection: [],
+        };
+    },
+    created() {
+        this.getCardHistoryList();
+    },
+    methods: {
+        getCardHistoryList() {
+            this.listLoading = true;
+            let obj = {
+                ...this.page,
+                ...this.searchForm,
+                sort: {
+                    order: 'desc',
+                    orderBy: 'create_time',
+                },
+            };
+            queryCardHistoryList(obj)
+                .then((res) => {
+                    console.log(res);
+                    if (res.statusCode == '10') {
+                        this.$router.replace('/login');
+                    }
+                    this.tableData = res.data.records;
+                    this.total = res.data.total;
+                    this.listLoading = false;
+                })
+                .catch();
+        },
+        querySearch() {
+            this.page.pageNum = 1;
+            this.getCardHistoryList();
+        },
+        reset() {
+            this.page.pageNum = 1;
+            this.searchForm = {};
+            this.getCardHistoryList();
+        },
+        // selectColumn(selection) {
+        //     this.tableSelection = selection;
+        // },
+        // 页码变化时
+        handlePagination(val) {
+            this.page = val;
+            this.getCardHistoryList();
+        },
+    },
+};
+</script>
+<style lang="stylus" scoped>
+.TableSelectMain .el-date-editor.el-input.el-input--prefix.el-input--suffix.el-date-editor--date {
+    width: 95%;
+}
+</style>

+ 3 - 1
src/apps/mobile/views/card-bank/index.vue

@@ -63,6 +63,8 @@
                             <span v-if="scope.row.type ===2">{{scope.row.price }}</span>
                         </template>
                     </el-table-column>
+                    <el-table-column prop="num" label="数量"></el-table-column>
+                    <el-table-column prop="totalPrice" label="总额"></el-table-column>
                     <el-table-column prop="validity" label="有效期">
                         <template slot-scope="scope">
                             <span>{{scope.row.validity | formatTimePipe }}</span>
@@ -82,7 +84,7 @@
                             :inactive-value="0" :disabled="scope.row.checkFalg !==1" @change="changeSwitch(scope.row)"></el-switch>
                         </template>
                     </el-table-column>
-                    <el-table-column label="操作" min-width="220px;">
+                    <el-table-column label="操作" min-width="110px;">
                         <template slot-scope="scope">
                             <el-button size="mini" type="primary" plain round @click="deleteData(scope.row)">删除</el-button>
                             <el-button size="mini" type="success" plain round :disabled="scope.row.checkFalg === 1" @click="showAddEditDialog(scope.row)">编辑</el-button>