|
@@ -55,6 +55,21 @@
|
|
|
<el-table-column prop="bankName" label="银行"></el-table-column>
|
|
<el-table-column prop="bankName" label="银行"></el-table-column>
|
|
|
<el-table-column prop="cardHolderName" label="姓名"></el-table-column>
|
|
<el-table-column prop="cardHolderName" label="姓名"></el-table-column>
|
|
|
<el-table-column prop="bankNum" label="开户行"></el-table-column>
|
|
<el-table-column prop="bankNum" label="开户行"></el-table-column>
|
|
|
|
|
+ <el-table-column label="操作" fixed="right" width="200">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-button link type="primary" size="small" @click="handlePay(scope.row)">付款</el-button>
|
|
|
|
|
+ <el-popover ref="RefusePopover" placement="top" width="300" trigger="click" title="驳回理由">
|
|
|
|
|
+ <template #reference>
|
|
|
|
|
+ <el-button link type="primary" size="small">驳回</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <el-input style="margin-bottom: 15px" placeholder="请输入" v-model="refuseReason" />
|
|
|
|
|
+ <div style="display: flex; align-items: center; justify-content: flex-end">
|
|
|
|
|
+ <el-button size="small" plain @click="refusePopoverCancel">取消</el-button>
|
|
|
|
|
+ <el-button size="small" type="primary" @click="refusePopoverConfirm(scope.row)">确定</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
<div class="pagination">
|
|
<div class="pagination">
|
|
|
<el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
|
|
<el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
|
|
@@ -195,11 +210,66 @@
|
|
|
</div>
|
|
</div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
|
|
+ <el-dialog :close-on-click-modal="false" v-model="drawShow" width="800" title="提现付款">
|
|
|
|
|
+ <el-form :model="drawForm" ref="DrawRef" :rules="drawRules" label-width="120">
|
|
|
|
|
+ <el-form-item prop="voucherId" label="凭证号">
|
|
|
|
|
+ <el-input placeholder="请填写" v-model="drawForm.voucherId" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="picId" label="上传凭证资料" class="upload-btn">
|
|
|
|
|
+ <img style="display: block; width: 150px; height: 150px" v-if="fileUrl" :src="fileUrl">
|
|
|
|
|
+ <el-upload class="upload-demo" v-else :auto-upload="false" action="#" drag :show-file-list="false"
|
|
|
|
|
+ accept=".png, .jpg, .jpeg" @change="uploadImage">
|
|
|
|
|
+ <el-button size="large" icon="Plus" />
|
|
|
|
|
+ </el-upload>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="accountName" label="付款账户">
|
|
|
|
|
+ <el-input placeholder="请填入" v-model="drawForm.accountName" @click="payAccount" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <el-popconfirm class="box-item" title="确定放弃付款?" placement="top" @confirm="handleConfirm">
|
|
|
|
|
+ <template #reference>
|
|
|
|
|
+ <el-button plain>退回任务</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-popconfirm>
|
|
|
|
|
+ <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="handleCancelVerifyAmount">取消</el-button>
|
|
|
|
|
+ <el-button type="primary" @click="handleVerifyAmount">确定</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+ <el-dialog :close-on-click-modal="false" v-model="payAccountShow" title="付款账户" width="800">
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="8">
|
|
|
|
|
+ <el-input prefix-icon="search" placeholder="请输入" v-model="account"></el-input>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="16">
|
|
|
|
|
+ <el-button type="primary" @click="accountSearch">查询</el-button>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-table ref="AccountRef" row-key="id" style="margin: 24px 0; max-height: 400px" @select="handleSelect"
|
|
|
|
|
+ :data="accountData">
|
|
|
|
|
+ <el-table-column type="selection" width="80"></el-table-column>
|
|
|
|
|
+ <!-- <el-table-column prop="bankCardNum" label="账户名称"></el-table-column> -->
|
|
|
|
|
+ <el-table-column prop="bankCardNum" label="银行卡号"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="bankNum" label="开户行"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="bankCardNum" label="开户行号"></el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <div class="pagination">
|
|
|
|
|
+ <el-pagination v-model:current-page="pageNo" v-model:page-size="pageSize" :page-sizes="[10, 20, 30, 40]"
|
|
|
|
|
+ layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlepageSizeChange"
|
|
|
|
|
+ @current-change="handlepageNoChange"></el-pagination>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="handleAccountCancel">取消</el-button>
|
|
|
|
|
+ <el-button type="primary" @click="handleAccountSubmit">确定</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
</PageMain>
|
|
</PageMain>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import api from '@/api'
|
|
import api from '@/api'
|
|
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
|
|
+let AccountRef = ref()
|
|
|
|
|
|
|
|
|
|
|
|
|
let activeName = ref('0')
|
|
let activeName = ref('0')
|
|
@@ -213,7 +283,12 @@ const handleClick = (e) => {
|
|
|
console.log()
|
|
console.log()
|
|
|
pages.value = 1
|
|
pages.value = 1
|
|
|
size.value = 10
|
|
size.value = 10
|
|
|
- queryInfo.value = {}
|
|
|
|
|
|
|
+ queryInfo.value = {
|
|
|
|
|
+ salesman: '',
|
|
|
|
|
+ attrType: '',
|
|
|
|
|
+ createTimeStart: '',
|
|
|
|
|
+ createTimeEnd: ''
|
|
|
|
|
+ }
|
|
|
activeName.value = e.props.name
|
|
activeName.value = e.props.name
|
|
|
console.log(activeName.value)
|
|
console.log(activeName.value)
|
|
|
initData(activeName.value)
|
|
initData(activeName.value)
|
|
@@ -231,6 +306,131 @@ let total3 = ref(0)
|
|
|
|
|
|
|
|
let pages = ref(1)
|
|
let pages = ref(1)
|
|
|
let size = ref(10)
|
|
let size = ref(10)
|
|
|
|
|
+//上传凭证资料
|
|
|
|
|
+let fileUrl = ref('')
|
|
|
|
|
+const uploadImage = (file) => {
|
|
|
|
|
+ let files = file.raw;
|
|
|
|
|
+ const params = new FormData(); // 声明formData数据类型
|
|
|
|
|
+ params.append("file", files);
|
|
|
|
|
+ api.areaApi.fileUpload(params).then((res: any) => {
|
|
|
|
|
+ // IDCardFrontName.value = res.data.fileName;
|
|
|
|
|
+ fileUrl.value = res.data.downloadUrl;
|
|
|
|
|
+ drawForm.value.picId = res.data.id
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+let payAccountShow = ref(false)
|
|
|
|
|
+// 体现付款
|
|
|
|
|
+let drawShow = ref(false)
|
|
|
|
|
+let drawForm = ref({
|
|
|
|
|
+ id: '',
|
|
|
|
|
+ voucherId: '',
|
|
|
|
|
+ picId: '',
|
|
|
|
|
+ accountId: '',
|
|
|
|
|
+ accountName: ''
|
|
|
|
|
+})
|
|
|
|
|
+let drawRules = ref({
|
|
|
|
|
+ voucherId: [{ required: true, trigger: "blur", message: "请输入" }],
|
|
|
|
|
+ picId: [{ required: true, trigger: "change", message: "请输入" }]
|
|
|
|
|
+})
|
|
|
|
|
+const handlePay = (row) => {
|
|
|
|
|
+ drawForm.value = {
|
|
|
|
|
+ voucherId: '',
|
|
|
|
|
+ picId: '',
|
|
|
|
|
+ accountId: '',
|
|
|
|
|
+ accountName: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ drawShow.value = true
|
|
|
|
|
+ drawForm.value.id = row.id
|
|
|
|
|
+}
|
|
|
|
|
+const payAccount = () => {
|
|
|
|
|
+ payAccountShow.value = true
|
|
|
|
|
+ initAccount();
|
|
|
|
|
+}
|
|
|
|
|
+let account = ref('')
|
|
|
|
|
+let accountData = ref([])
|
|
|
|
|
+let total = ref(0)
|
|
|
|
|
+let pageNo = ref(1)
|
|
|
|
|
+let pageSize = ref(10)
|
|
|
|
|
+const handlepageSizeChange = (size) => {
|
|
|
|
|
+ pageSize.value = size
|
|
|
|
|
+}
|
|
|
|
|
+const handlepageNoChange = (page) => {
|
|
|
|
|
+ pageNo.value = page
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const initAccount = () => {
|
|
|
|
|
+ api.financeApi.cardList({
|
|
|
|
|
+ accountName: account.value,
|
|
|
|
|
+ pageNo: pageNo.value,
|
|
|
|
|
+ pageSize: pageSize.value
|
|
|
|
|
+ }).then((res: any) => {
|
|
|
|
|
+ accountData.value = res.data.records
|
|
|
|
|
+ total.value = res.data.total
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+const accountSearch = () => {
|
|
|
|
|
+ pageNo.value = 1
|
|
|
|
|
+ pageSize.value = 10
|
|
|
|
|
+ initAccount();
|
|
|
|
|
+}
|
|
|
|
|
+let selectItem = ref(null)
|
|
|
|
|
+const handleSelect = (val, row) => {
|
|
|
|
|
+ selectItem.value = row
|
|
|
|
|
+ console.log(row)
|
|
|
|
|
+ if (val.length > 1) {
|
|
|
|
|
+ AccountRef.value.clearSelection()
|
|
|
|
|
+ AccountRef.value.toggleRowSelection(row);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+const handleAccountCancel = () => {
|
|
|
|
|
+ selectItem.value = null
|
|
|
|
|
+ payAccountShow.value = false
|
|
|
|
|
+}
|
|
|
|
|
+const handleAccountSubmit = () => {
|
|
|
|
|
+ payAccountShow.value = false
|
|
|
|
|
+ drawForm.value.accountName = selectItem.value.bankCardNum
|
|
|
|
|
+ drawForm.value.accountId = selectItem.value.accountId
|
|
|
|
|
+}
|
|
|
|
|
+const handleCancelVerifyAmount = () => {
|
|
|
|
|
+ drawForm.value = {
|
|
|
|
|
+ voucherId: '',
|
|
|
|
|
+ picId: '',
|
|
|
|
|
+ accountId: '',
|
|
|
|
|
+ accountName: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ drawShow.value = false
|
|
|
|
|
+}
|
|
|
|
|
+const handleVerifyAmount = () => {
|
|
|
|
|
+ api.financeApi.verifyAmount({
|
|
|
|
|
+ id: drawForm.value.id,
|
|
|
|
|
+ voucherId: drawForm.value.voucherId,
|
|
|
|
|
+ picId: drawForm.value.picId,
|
|
|
|
|
+ accountId: drawForm.value.accountId,
|
|
|
|
|
+ }).then((res: any) => {
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: res.msg,
|
|
|
|
|
+ type: 'success'
|
|
|
|
|
+ })
|
|
|
|
|
+ drawShow.value = false
|
|
|
|
|
+ initData(activeName.value)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const handleConfirm = () => {
|
|
|
|
|
+ api.financeApi.amountAuditCancel(drawForm.value.id).then((res: any) => {
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: res.msg,
|
|
|
|
|
+ type: 'success'
|
|
|
|
|
+ })
|
|
|
|
|
+ initData(activeName.value)
|
|
|
|
|
+ }
|
|
|
|
|
+ drawShow.value = false
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
const handleSizeChange = (size) => {
|
|
const handleSizeChange = (size) => {
|
|
|
size.value = size
|
|
size.value = size
|
|
|
initData(activeName.value)
|
|
initData(activeName.value)
|