Browse Source

feat: 补款管理取消补款

lyc 1 month ago
parent
commit
56f8007c31

+ 8 - 0
src/api/financeCustomerSupplement.js

@@ -58,3 +58,11 @@ export function _remave(data) {
   })
 }
 
+export function _getCancelSupplement(params) {
+  return request({
+    url: '/Finance/CancelSupplement',
+    method: 'get',
+    params
+  })
+}
+

+ 97 - 5
src/views/finance/financeCustomerSupplements.vue

@@ -8,6 +8,7 @@
             type="month"
             value-format="yyyy-MM"
             placeholder="选择日期"
+            class="search-item"
           />
         </el-form-item>
         <el-form-item>
@@ -16,6 +17,7 @@
             placeholder="计费类型"
             filterable
             clearable
+            class="search-item"
           >
             <el-option
               v-for="item in types"
@@ -31,6 +33,7 @@
             placeholder="所属客户"
             filterable
             clearable
+            class="search-item"
           >
             <el-option
               v-for="item in FinanceCompanys"
@@ -49,9 +52,46 @@
               start-placeholder="开始日期"
               value-format="yyyy-MM-dd"
               end-placeholder="结束日期"
+              style="width: 270px;"
             />
           </div>
         </el-form-item>
+        <el-form-item label="内部单号">
+          <el-tooltip v-model="openNumbersInput" effect="light" :manual="true">
+            <div slot="content">
+              <el-input
+                v-model="inputMultiCodes"
+                type="textarea"
+                rows="7"
+                placeholder="请输入单号,每行一个"
+              />
+              <div style="text-align: right; padding: 5px">
+                <el-button
+                  size="mini"
+                  @click="openNumbersInput = false"
+                >关闭</el-button>
+                <el-button
+                  size="mini"
+                  type="danger"
+                  @click="inputMultiCodes = ''"
+                >清除</el-button>
+                <el-button
+                  size="mini"
+                  type="success"
+                  @click="confirmMultiCodes"
+                >确定</el-button>
+              </div>
+            </div>
+            <el-input
+              v-model="pagerDto._In_SystemNo"
+              clearable
+              @focus="openNumbersInputPannel"
+            />
+          </el-tooltip>
+        </el-form-item>
+        <el-form-item>
+          <el-checkbox v-model="pagerDto._Eq_IsCancel">是否被取消</el-checkbox>
+        </el-form-item>
         <el-form-item>
           <el-button @click="pagerSerach(1)">
             搜索
@@ -75,7 +115,7 @@
         :select-on-indeterminate="true"
         width="100%"
       >
-        <el-table-column label="月份" prop="Month" />
+        <el-table-column label="月份" prop="Month" width="80" />
         <el-table-column label="所属客户" prop="CustomerName" />
         <el-table-column label="渠道" prop="PublicName" />
         <el-table-column label="客户单号" prop="CustomerOrderNo" />
@@ -90,7 +130,24 @@
         </el-table-column>
         <el-table-column label="费用上传内容" prop="FeeString" />
         <el-table-column label="上传时间" prop="CreateTime" />
-        <el-table-column label="上传人" prop="CreateUserName" />
+        <el-table-column label="上传人" prop="CreateUserName" width="80" />
+        <el-table-column label="是否被取消" prop="IsCancel" width="70">
+          <template slot-scope="scope">
+            <el-tag :type="scope.row.IsCancel ? 'warning' : ''">{{ scope.row.IsCancel ? '是' : '否' }}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="85" fixed="right">
+          <template slot-scope="scope">
+            <el-button
+              type="warning"
+              size="mini"
+              :loading="scope.row.cancelLoading"
+              @click="hanleCancelPayment(scope.row)"
+            >
+              取消补款
+            </el-button>
+          </template>
+        </el-table-column>
       </el-table>
       <el-pagination
         :page-sizes="[10, 20, 40,100, 400]"
@@ -156,8 +213,9 @@
 <script>
 import BaseList from '@/components/Xyy/baselist'
 import { _getCustomers } from '@/api/baseInfo'
-import { _getPageResult, _inputFinanceCustomerSupplements, _AddCustomerSKUFeeFinanceCustomer, _getFinanceCustomerSupplementType, _edit, _add, _remave } from '@/api/financeCustomerSupplement'
+import { _getPageResult, _inputFinanceCustomerSupplements, _AddCustomerSKUFeeFinanceCustomer, _getFinanceCustomerSupplementType, _edit, _add, _remave, _getCancelSupplement } from '@/api/financeCustomerSupplement'
 import SkuBatchImport from '@/components/SkuBatchImport';
+import { format } from '@/utils/multiInput'
 export default {
   name: 'FinanceCustomerSupplements',
   components: { 'base-list': BaseList, SkuBatchImport },
@@ -172,9 +230,17 @@ export default {
       type: '',
       fileUrl: '',
       loading: false,
-      pagerDto: { PageIndex: 0, PageSize: 10, total: 0 },
+      pagerDto: {
+        _In_SystemNo: undefined,
+        _Eq_IsCancel: false,
+        PageIndex: 0,
+        PageSize: 10,
+        total: 0
+      },
       skuBatchImportDialog: false,
-      Customers: []
+      Customers: [],
+      inputMultiCodes: '',
+      openNumbersInput: false,
     }
   },
   created() {
@@ -234,8 +300,34 @@ export default {
       }).finally(r => {
         loadingFn()
       })
+    },
+    openNumbersInputPannel() {
+      const str = format(this.pagerDto._In_SystemNo, '\n')
+      this.inputMultiCodes = str
+      this.openNumbersInput = true
+    },
+    confirmMultiCodes() {
+      const inputs = this.inputMultiCodes
+      const str = format(inputs, ',')
+      this.pagerDto._In_SystemNo = str
+      this.inputMultiCodes = ''
+      this.openNumbersInput = false
+    },
+    // 取消补款
+    hanleCancelPayment(row) {
+      this.$set(row, 'cancelLoading', true)
+      _getCancelSupplement({ systemNo: row.SystemNo, transactionNumber: row.TransactionNumber }).then(() => {
+        this.$message({ type: 'success', message: '操作成功' })
+      }).finally(() => {
+        this.$set(row, 'cancelLoading', false)
+      })
     }
   }
 }
 
 </script>
+<style scoped>
+.search-item {
+  width: 160px;
+}
+</style>