瀏覽代碼

1.新增修改罚款金额、修改情况说明以及确认罚款金额功能
2.新增逾期未收款订单/产品罚款记录导出

GouGengquan 3 月之前
父節點
當前提交
99b4e0a84e
共有 2 個文件被更改,包括 127 次插入16 次删除
  1. 9 1
      src/api/modules/financeFine.js
  2. 118 15
      src/views/finance/fine.vue

+ 9 - 1
src/api/modules/financeFine.js

@@ -7,5 +7,13 @@ export default {
     // 分页查询
     page(params) {
         return request.get(`financeFine/page`, { params: params })
-    }
+    },
+    // 更新罚款记录
+    update(params) {
+        return request.put(`financeFine/update`, params)
+    },
+    // 更新罚款记录
+    confirm(params) {
+        return request.put(`financeFine/confirm/${params}`)
+    },
 }

+ 118 - 15
src/views/finance/fine.vue

@@ -28,6 +28,7 @@
                         ></el-date-picker>
                         <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="page()" round>搜索</el-button>
                         <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置</el-button>
+                        <el-button class="filter-item" style="float: left;" round type="warning" @click="fineListExport()">导出</el-button>
                     </template>
                     <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
                         <el-table-column label="项⽬编号" align="center" width="150">
@@ -47,7 +48,7 @@
                         </el-table-column>
                         <el-table-column label="产品类型" align="center" width="250">
                             <template slot-scope="{row}">
-                                <span>{{ row.productionType === 'REPORT' ? '评估报告' : row.productionType === 'CONSULT' ? '咨询报告' : row.productionType === 'LETTER' ? '意见函' : '未知' }}</span>
+                                <span>{{ row.productionType }}</span>
                             </template>
                         </el-table-column>
                         <el-table-column label="发票号" align="center" width="150">
@@ -115,8 +116,12 @@
                                 <span>{{ row.explain }}</span>
                             </template>
                         </el-table-column>
-                        <el-table-column label="操作" align="center" width="100" fixed="right">
-                            <template slot-scope="{row}"></template>
+                        <el-table-column label="操作" align="center" width="160" fixed="right">
+                            <template slot-scope="{row}">
+                                <PermissionButton menu-code="_views_finance_fine_explain" class-name="filter-item" name type="text" @click="openExplain(row)" />
+                                <PermissionButton menu-code="_views_finance_fine_confirm" class-name="filter-item" name type="text" @click="confirmFineAmount(row.id)" />
+                                <PermissionButton menu-code="_views_finance_fine_edit_amount" class-name="filter-item" name type="text" @click="openEditFineAmount(row)" />
+                            </template>
                         </el-table-column>
                     </parentTable>
                 </y-page-list-layout>
@@ -145,6 +150,7 @@
                         ></el-date-picker>
                         <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="page()" round>搜索</el-button>
                         <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置</el-button>
+                        <el-button class="filter-item" style="float: left;" round type="warning" @click="fineListExport()">导出</el-button>
                     </template>
                     <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
                         <el-table-column label="项⽬编号" align="center" width="150">
@@ -164,7 +170,7 @@
                         </el-table-column>
                         <el-table-column label="产品类型" align="center" width="250">
                             <template slot-scope="{row}">
-                                <span>{{ row.productionType === 'REPORT' ? '评估报告' : row.productionType === 'CONSULT' ? '咨询报告' : row.productionType === 'LETTER' ? '意见函' : '未知' }}</span>
+                                <span>{{ row.productionType }}</span>
                             </template>
                         </el-table-column>
                         <el-table-column label="发票号" align="center" width="150">
@@ -232,8 +238,12 @@
                                 <span>{{ row.explain }}</span>
                             </template>
                         </el-table-column>
-                        <el-table-column label="操作" align="center" width="100" fixed="right">
-                            <template slot-scope="{row}"></template>
+                        <el-table-column label="操作" align="center" width="160" fixed="right">
+                            <template slot-scope="{row}">
+                                <PermissionButton menu-code="_views_finance_fine_explain" class-name="filter-item" name type="text" @click="openExplain(row)" />
+                                <PermissionButton menu-code="_views_finance_fine_confirm" class-name="filter-item" name type="text" @click="confirmFineAmount(row.id)" />
+                                <PermissionButton menu-code="_views_finance_fine_edit_amount" class-name="filter-item" name type="text" @click="openEditFineAmount(row)" />
+                            </template>
                         </el-table-column>
                     </parentTable>
                 </y-page-list-layout>
@@ -262,6 +272,7 @@
                         ></el-date-picker>
                         <el-button class="filter-item" style="margin-left:20px;float: left;" type="primary" @click="page()" round>搜索</el-button>
                         <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置</el-button>
+                        <el-button class="filter-item" style="float: left;" round type="warning" @click="fineListExport()">导出</el-button>
                     </template>
                     <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
                         <el-table-column label="项⽬编号" align="center" width="150">
@@ -274,6 +285,11 @@
                                 <span>{{ row.orderName}}</span>
                             </template>
                         </el-table-column>
+                        <el-table-column label="产品类型" align="center" width="250">
+                            <template slot-scope="{row}">
+                                <span>{{ row.productionType }}</span>
+                            </template>
+                        </el-table-column>
                         <el-table-column label="发票号" align="center" width="150">
                             <template slot-scope="{row}">
                                 <span>{{ row.invoiceNo }}</span>
@@ -334,13 +350,42 @@
                                 <span>{{ row.explain }}</span>
                             </template>
                         </el-table-column>
-                        <el-table-column label="操作" align="center" width="100" fixed="right">
-                            <template slot-scope="{row}"></template>
+                        <el-table-column label="操作" align="center" width="160" fixed="right">
+                            <template slot-scope="{row}">
+                                <PermissionButton menu-code="_views_finance_fine_explain" class-name="filter-item" name type="text" @click="openExplain(row)" />
+                                <PermissionButton menu-code="_views_finance_fine_confirm" class-name="filter-item" name type="text" @click="confirmFineAmount(row.id)" />
+                                <PermissionButton menu-code="_views_finance_fine_edit_amount" class-name="filter-item" name type="text" @click="openEditFineAmount(row)" />
+                            </template>
                         </el-table-column>
                     </parentTable>
                 </y-page-list-layout>
             </el-tab-pane>
         </el-tabs>
+        <el-dialog title="情况说明" :visible.sync="explainVisible" width="40%">
+            <el-form :model="updateFineForm">
+                <el-form-item label="情况说明:">
+                    <el-input v-model="updateFineForm.explain" type="textarea" :rows="5"></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="explainVisible = false">取 消</el-button>
+                <el-button type="primary" @click="updateFine(updateFineForm)">确 定</el-button>
+            </div>
+        </el-dialog>
+        <el-dialog title="修改罚款金额" :visible.sync="editFineAmountVisible" width="40%">
+            <el-form :model="updateFineForm">
+                <el-form-item label="情况说明:">
+                    <el-input v-model="updateFineForm.explain" type="textarea" :rows="5" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="罚款金额:">
+                    <el-input v-model="updateFineForm.fineAmount" type="number"></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="editFineAmountVisible = false">取 消</el-button>
+                <el-button type="primary" @click="updateFine(updateFineForm)">确 定</el-button>
+            </div>
+        </el-dialog>
     </div>
 </template>
 <script>
@@ -353,11 +398,12 @@ export default {
         Breadcrumb,
         YPageListLayout,
     },
-
     data() {
         return {
             activeName: 'ASSET_BUSINESS',
-            listLoading: true,
+            listLoading: false,
+            explainVisible: false,
+            editFineAmountVisible: false,
             findDate: null,
             // 分页查询条件
             queryDTO: {
@@ -371,7 +417,7 @@ export default {
                 startPunishDate: null,
                 endPunishDate: null,
             },
-            pageData: {records :[]},
+            pageData: { records: [] },
             pickerOptions: {
                 shortcuts: [
                     {
@@ -403,6 +449,11 @@ export default {
                     },
                 ],
             },
+            updateFineForm: {
+                id: null,
+                explain: null,
+                fineAmount: null,
+            },
         };
     },
     created() {
@@ -413,7 +464,7 @@ export default {
             this.queryDTO = {
                 page: 1,
                 size: 10,
-                businessType : this.activeName,
+                businessType: this.activeName,
                 keyWord: null,
                 invoiceNo: null,
                 clientManagerName: null,
@@ -429,7 +480,7 @@ export default {
             this.queryDTO = {
                 page: 1,
                 size: 10,
-                businessType : this.activeName,
+                businessType: this.activeName,
                 keyWord: null,
                 invoiceNo: null,
                 clientManagerName: null,
@@ -441,13 +492,65 @@ export default {
         },
         // 查询罚款记录
         page() {
+            this.listLoading = true;
             if (this.findDate) {
                 this.queryDTO.startPunishDate = this.findDate[0] + ' 00:00:00';
-                this.queryDTO.endPunishDate = this.findDate[1]  + ' 23:59:59';
+                this.queryDTO.endPunishDate = this.findDate[1] + ' 23:59:59';
             }
             this.$api.financeFine.page(this.queryDTO).then((res) => {
-                this.listLoading = false;
                 this.pageData = res.data;
+                this.listLoading = false;
+            });
+        },
+        fineListExport() {
+            this.$utils.exportUtil('/financeFine/export', this.queryDTO, '导出');
+        },
+        // 打开情况说明dialog
+        openExplain(row) {
+            this.explainVisible = true;
+            this.updateFineForm.id = row.id;
+            this.updateFineForm.explain = row.explain;
+        },
+        // 打开修改罚款金额dialog
+        openEditFineAmount(row) {
+            this.editFineAmountVisible = true;
+            this.updateFineForm.id = row.id;
+            this.updateFineForm.explain = row.explain;
+            this.updateFineForm.fineAmount = row.fineAmount;
+        },
+        // 更新罚款记录
+        updateFine(financeFine) {
+            this.$api.financeFine.update(financeFine).then((res) => {
+                if (res.code === 200 && res.data) {
+                    this.$notify({
+                        title: '成功',
+                        message: '请求成功!',
+                        type: 'success',
+                        duration: 3000,
+                    });
+                    // 判断开的哪一个dialog并关闭
+                    if (this.explainVisible) {
+                        this.explainVisible = false;
+                    }
+                    if (this.editFineAmountVisible) {
+                        this.editFineAmountVisible = false;
+                    }
+                    this.page();
+                }
+            });
+        },
+        // 确认罚款金额
+        confirmFineAmount(id) {
+            this.$api.financeFine.confirm(id).then((res) => {
+                if (res.code === 200 && res.data) {
+                    this.$notify({
+                        title: '成功',
+                        message: '请求成功!',
+                        type: 'success',
+                        duration: 3000,
+                    });
+                    this.page();
+                }
             });
         },
     },