|
@@ -16,10 +16,10 @@
|
|
|
<a-button type="primary" class="button-primary" @click="handleCommonOk">{{ okText }}</a-button>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <a-table :columns="chooseColumns" :pagination="false" :data-source="chooseData" bordered>
|
|
|
+ <a-table :columns="columns" :scroll="{ y: 400 }" :pagination="false" :data-source="chooseData" bordered>
|
|
|
<!-- 收款单号 -->
|
|
|
- <template slot="salesBillNo" slot-scope="text, record">
|
|
|
- <span class="link-bule">{{ record.salesBillNo }}</span>
|
|
|
+ <template slot="bookNo" slot-scope="text, record">
|
|
|
+ <span class="link-bule">{{ record.bookNo }}</span>
|
|
|
</template>
|
|
|
<!-- 操作 -->
|
|
|
<template slot="action" slot-scope="text, record">
|
|
@@ -43,17 +43,17 @@
|
|
|
<a-row :gutter="15">
|
|
|
<a-col :md="6" :sm="24">
|
|
|
<a-form-item label="收款单号">
|
|
|
- <a-input v-model.trim="queryParam.salesBillNo" allowClear placeholder="请输入收款单号"/>
|
|
|
+ <a-input v-model.trim="queryParam.bookNo" allowClear placeholder="请输入收款单号"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="6" :sm="24">
|
|
|
<a-form-item label="财务收款事由">
|
|
|
- <a-input v-model.trim="queryParam.purchaseBillNo" allowClear placeholder="请输入财务收款事由"/>
|
|
|
+ <a-input v-model.trim="queryParam.bookReason" allowClear placeholder="请输入财务收款事由"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="6" :sm="24">
|
|
|
<a-form-item label="申请人">
|
|
|
-
|
|
|
+ <employee style="width: 100%;" placeholder="请选择申请人" v-model="queryParam.applyPersonSn"></employee>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
<a-col :md="6" :sm="24">
|
|
@@ -67,17 +67,17 @@
|
|
|
</div>
|
|
|
<!-- 表格数据 -->
|
|
|
<s-table
|
|
|
- class="sTable fixPagination"
|
|
|
+ class="sTable"
|
|
|
ref="table"
|
|
|
size="small"
|
|
|
:rowKey="(record) => record.id"
|
|
|
:columns="columns"
|
|
|
:data="loadData"
|
|
|
- :defaultLoadData="false"
|
|
|
+ :scroll="{ y: 400 }"
|
|
|
bordered>
|
|
|
- <!-- 销售单号 -->
|
|
|
- <template slot="salesBillNo" slot-scope="text, record">
|
|
|
- <span class="link-bule">{{ record.salesBillNo }}</span>
|
|
|
+ <!-- 单号 -->
|
|
|
+ <template slot="bookNo" slot-scope="text, record">
|
|
|
+ <span class="link-bule">{{ record.bookNo }}</span>
|
|
|
</template>
|
|
|
<!-- 操作 -->
|
|
|
<template slot="action" slot-scope="text, record">
|
|
@@ -85,8 +85,10 @@
|
|
|
size="small"
|
|
|
type="link"
|
|
|
class="button-warning"
|
|
|
+ v-if="!record.checked"
|
|
|
@click="handleChoose(record)"
|
|
|
>选择</a-button>
|
|
|
+ <span style="color:green;" v-else>已选</span>
|
|
|
</template>
|
|
|
</s-table>
|
|
|
</div>
|
|
@@ -95,12 +97,13 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { salesList } from '@/api/sales'
|
|
|
import { STable, VSelect } from '@/components'
|
|
|
-import { settleReceiptBookBatch } from '@/api/settleReceipt.js'
|
|
|
+import { financeBookQueryPage } from '@/api/financeBook.js'
|
|
|
+import employee from '../../expenseManagement/expenseReimbursement/employee.js'
|
|
|
+import { settleReceiptBookBatch } from '@/api/settleReceipt'
|
|
|
export default {
|
|
|
name: 'CommonModal',
|
|
|
- components: { STable, VSelect },
|
|
|
+ components: { STable, VSelect, employee },
|
|
|
props: {
|
|
|
openModal: { // 弹框显示状态
|
|
|
type: Boolean,
|
|
@@ -130,54 +133,49 @@ export default {
|
|
|
spinning: false,
|
|
|
handlePlData: [],
|
|
|
queryParam: {
|
|
|
-
|
|
|
+ bookNo: '',
|
|
|
+ bookReason: '',
|
|
|
+ applyPersonSn: undefined,
|
|
|
+ status: 'AUDIT_PASS'
|
|
|
},
|
|
|
- // 已选列
|
|
|
- chooseColumns: [
|
|
|
- { title: '序号', dataIndex: 'no', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '收款单号', scopedSlots: { customRender: 'salesBillNo' }, width: '7%', align: 'center' },
|
|
|
- { title: '申请人', dataIndex: 'buyerName', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
- { title: '财务收款事由', dataIndex: 'buyerName', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
- { title: '订单总金额', dataIndex: 'totalQty', scopedSlots: { customRender: 'totalQty' }, width: '4%', align: 'center' },
|
|
|
- { title: '收款总金额', dataIndex: 'totalAmount', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '授信总金额', dataIndex: 'totalPushedQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '余款抵扣总金额', dataIndex: 'totalPushedAmount', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '审核时间', dataIndex: 'auditDate', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '状态', dataIndex: 'billStatusDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '操作', scopedSlots: { customRender: 'action' }, width: '7%', align: 'center' }
|
|
|
- ],
|
|
|
chooseData: [],
|
|
|
columns: [
|
|
|
{ title: '序号', dataIndex: 'no', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '收款单号', scopedSlots: { customRender: 'salesBillNo' }, width: '7%', align: 'center' },
|
|
|
- { title: '申请人', dataIndex: 'buyerName', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
- { title: '财务收款事由', dataIndex: 'buyerName1', width: '8%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
- { title: '订单总金额', dataIndex: 'totalQty', scopedSlots: { customRender: 'totalQty' }, width: '4%', align: 'center' },
|
|
|
- { title: '收款总金额', dataIndex: 'totalAmount', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '授信总金额', dataIndex: 'totalPushedQty', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '余款抵扣总金额', dataIndex: 'totalPushedAmount', width: '4%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
- { title: '审核时间', dataIndex: 'auditDate', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '状态', dataIndex: 'billStatusDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '操作', scopedSlots: { customRender: 'action' }, width: '7%', align: 'center' }
|
|
|
+ { title: '收款单号', scopedSlots: { customRender: 'bookNo' }, width: '8%', align: 'center' },
|
|
|
+ { title: '申请人', dataIndex: 'applyPersonName', width: '8%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
+ { title: '财务收款事由', dataIndex: 'bookReason', width: '12%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
+ { title: '订单总金额', dataIndex: 'orderTotalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '收款总金额', dataIndex: 'receiptTotalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '使用授信总金额', dataIndex: 'useTotalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '授信还款总金额', dataIndex: 'payTotalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '余款抵扣总金额', dataIndex: 'balanceTotalAmount', width: '8%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '审核时间', dataIndex: 'auditDate', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
+ { title: '状态', dataIndex: 'statusDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
+ { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
|
|
|
],
|
|
|
+ orginData: [],
|
|
|
// 加载数据方法 必须为 Promise 对象
|
|
|
loadData: parameter => {
|
|
|
this.disabled = true
|
|
|
this.spinning = true
|
|
|
- return salesList(Object.assign(parameter, this.queryParam)).then(res => {
|
|
|
+ return financeBookQueryPage(Object.assign(parameter, this.queryParam)).then(res => {
|
|
|
let data
|
|
|
if (res.status == 200) {
|
|
|
data = res.data
|
|
|
const no = (data.pageNo - 1) * data.pageSize
|
|
|
for (var i = 0; i < data.list.length; i++) {
|
|
|
data.list[i].no = no + i + 1
|
|
|
+ const index = this.chooseData.findIndex(item => data.list[i].bookSn == item.bookSn)
|
|
|
+ data.list[i].checked = index >= 0
|
|
|
}
|
|
|
this.disabled = false
|
|
|
}
|
|
|
this.spinning = false
|
|
|
+ this.orginData = data.list
|
|
|
return data
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ snList: []
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -190,28 +188,62 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- setData (data) {
|
|
|
+ setData (data, snList) {
|
|
|
this.handlePlData = data
|
|
|
+ this.snList = snList
|
|
|
},
|
|
|
// 删除
|
|
|
handleDel (row) {
|
|
|
-
|
|
|
+ const i = this.chooseData.findIndex(item => row.bookSn == item.bookSn)
|
|
|
+ const oi = this.orginData.findIndex(item => row.bookSn == item.bookSn)
|
|
|
+ this.chooseData.splice(i, 1)
|
|
|
+ if (oi >= 0) {
|
|
|
+ this.orginData[oi].checked = false
|
|
|
+ }
|
|
|
},
|
|
|
// 选择
|
|
|
handleChoose (row) {
|
|
|
-
|
|
|
+ row.checked = true
|
|
|
+ this.chooseData.push(row)
|
|
|
},
|
|
|
- // 确定
|
|
|
+ // 获取sn
|
|
|
+ // 确定收款
|
|
|
handleCommonOk () {
|
|
|
- this.$emit('ok')
|
|
|
+ const snList = this.snList
|
|
|
+ const bookSnList = []
|
|
|
+ this.chooseData.map(item => {
|
|
|
+ bookSnList.push(item.bookSn)
|
|
|
+ })
|
|
|
+
|
|
|
+ if (bookSnList.length) {
|
|
|
+ this.spinning = true
|
|
|
+ settleReceiptBookBatch({
|
|
|
+ bookSnList: bookSnList,
|
|
|
+ snList: snList
|
|
|
+ }).then(res => {
|
|
|
+ this.spinning = false
|
|
|
+ if (res.status == 200) {
|
|
|
+ this.$emit('ok')
|
|
|
+ this.$message.info(res.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message.info('请选择关联的财务收款单')
|
|
|
+ }
|
|
|
},
|
|
|
// 取消
|
|
|
handleCommonCancel () {
|
|
|
this.$emit('cancel')
|
|
|
+ this.chooseData = []
|
|
|
},
|
|
|
// 重置
|
|
|
resetSearchForm () {
|
|
|
-
|
|
|
+ this.queryParam = {
|
|
|
+ bookNo: '',
|
|
|
+ bookReason: '',
|
|
|
+ applyPersonSn: undefined,
|
|
|
+ status: 'AUDIT_PASS'
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -222,7 +254,7 @@ export default {
|
|
|
// 重定义的弹框状态
|
|
|
isShow (newValue, oldValue) {
|
|
|
if (!newValue) {
|
|
|
- this.$emit('cancel')
|
|
|
+ this.handleCommonCancel()
|
|
|
}
|
|
|
}
|
|
|
}
|