|
@@ -0,0 +1,445 @@
|
|
|
+<template>
|
|
|
+ <div class="add-accounts-content">
|
|
|
+ <el-form ref="ruleForm" :key="key" :model="ruleForm" :rules="rules" label-width="150px" label-position="top" class="rule-form-orange">
|
|
|
+ <cy-info-title>出账信息</cy-info-title>
|
|
|
+ <el-form-item label="核心企业名称" prop="customerName">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.customerName"
|
|
|
+ placeholder="请输入核心企业名称"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="业务名称" prop="businessName">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.businessName"
|
|
|
+ placeholder="请输入业务名称"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="业务编号" prop="businessNumber">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.businessNumber"
|
|
|
+ placeholder="请输入业务编号"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="供应商名称" prop="supplierName">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.supplierName"
|
|
|
+ placeholder="请输入供应商名称"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="采购合同编号" prop="contractNumber">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.contractNumber"
|
|
|
+ placeholder="请输入采购合同编号"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" prop="type">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.type"
|
|
|
+ placeholder="请输入采购合同编号"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="金额" prop="amount">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.amount"
|
|
|
+ placeholder="请输入金额"
|
|
|
+ :disabled="disabled"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="日期" prop="cashDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="ruleForm.cashDate"
|
|
|
+ type="date"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择日期"
|
|
|
+ style="width: 100%"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="width: 100%;">
|
|
|
+ <el-table
|
|
|
+ :data="exitFinanceData"
|
|
|
+ :span-method="spanMethod"
|
|
|
+ :default-expand-all="true"
|
|
|
+ @expand-change="entryTableExpandChange"
|
|
|
+ >
|
|
|
+ <!-- <el-table-column type="expand">
|
|
|
+ <template slot-scope="props">
|
|
|
+ <template v-if="disabled">
|
|
|
+ <div class="entry-table-expand">
|
|
|
+ {{ (!props.row.xxs || props.row.xxs == '') ? '无附件' : '' }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div style="width: 100%">
|
|
|
+ <unified-editor :content.sync="props.row.lifeFeedback" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ label="序号"
|
|
|
+ type="index"
|
|
|
+ width="50"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ property="date"
|
|
|
+ label="此次放款日期"
|
|
|
+ width="120"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ property="date"
|
|
|
+ label="此次放款金额"
|
|
|
+ width="120"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="打款账户">
|
|
|
+ <el-table-column label="公司归属" :show-overflow-tooltip="true">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-select v-model="scope.row.companyOwnerId" placeholder="请选择归属公司">
|
|
|
+ <el-option
|
|
|
+ v-for="item in companyOwnershipCapitalList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.institutionName"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="银行名称" :show-overflow-tooltip="true"></el-table-column>
|
|
|
+ <el-table-column label="银行卡号" :show-overflow-tooltip="true"></el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="收款账户">
|
|
|
+ <el-table-column label="银行名称" :show-overflow-tooltip="true"></el-table-column>
|
|
|
+ <el-table-column label="银行卡号" :show-overflow-tooltip="true"></el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ property="date"
|
|
|
+ label="当前执行人"
|
|
|
+ width="120"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="addExitFinanceRow">增加</el-button>
|
|
|
+ <el-button v-if="scope.$index !== 0 && exitFinanceData.length >= 2" type="text" @click="delExitFinanceRow(scope.$index, scope.row)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注" style="width: 100%">
|
|
|
+ <el-input
|
|
|
+ v-model="ruleForm.remark"
|
|
|
+ placeholder="请输入备注"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import { mapGetters } from 'vuex'
|
|
|
+import { getEnterprises, getAttributionOfAccount, getCompanyOwnership, getInstitutionName, getNocapitalBankName, getBankCardNo, getBusinessType, getCpitalBankName, cashFlowGetExitDetail } from '@/api/financialManagement/financialManagement'
|
|
|
+import { codeChangeName, filterListData } from '@/utils/index'
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ UnifiedEditor: () => import('@/components/UnifiedEditor/index.vue')
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ disabled: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate(time) {
|
|
|
+ return time.getTime() > Date.now()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ key: 0,
|
|
|
+ ruleForm: {
|
|
|
+ id: '',
|
|
|
+ customerName: '',
|
|
|
+ businessName: '',
|
|
|
+ businessNumber: '',
|
|
|
+ supplierName: '',
|
|
|
+ contractNumber: '',
|
|
|
+ amount: '',
|
|
|
+ cashDate: '',
|
|
|
+ type: '',
|
|
|
+ remark: ''
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ customerName: [
|
|
|
+ { required: true, message: '请输入核心企业名称', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ businessName: [
|
|
|
+ { required: true, message: '请输入业务名称', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ businessNumber: [
|
|
|
+ { required: true, message: '请输入业务编号', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ supplierName: [
|
|
|
+ { required: true, message: '请输入供应商名称', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ contractNumber: [
|
|
|
+ { required: true, message: '请输入采购合同编号', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ amount: [
|
|
|
+ { required: true, message: '请输入金额', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ type: [
|
|
|
+ { required: true, message: '请选择类型', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ cashDate: [
|
|
|
+ { required: true, message: '请选择出账日期', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ exitFinanceData: [
|
|
|
+ {
|
|
|
+ date: '2024-03-22'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ companyOwnershipCapitalList: [] // 归属公司列表
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters([
|
|
|
+ 'name',
|
|
|
+ 'constant'
|
|
|
+ ]),
|
|
|
+ getCompanyOwnershipList() {
|
|
|
+ return (attributionOfAccountId) => {
|
|
|
+ const attributionOfAccountCode = codeChangeName(this.attributionOfAccountList, attributionOfAccountId, 'id', 'code')
|
|
|
+ let list = []
|
|
|
+ if (attributionOfAccountCode === 'longSilver') {
|
|
|
+ list = filterListData(this.companyOwnershipList, ['shang_hai_ao_hong', 'xi_an_ao_hong', 'shan_xi_ka_fubao', 'shen_zhen_chang_yin_bao', 'shang_hai_ke_fubao'])
|
|
|
+ } else if (attributionOfAccountCode === 'noLongSilver') {
|
|
|
+ list = filterListData(this.companyOwnershipList, ['zi_guan', 'factoring', 'investment', 'shen_zhen_chang_yin', 'shang_hai_yin_guo'])
|
|
|
+ }
|
|
|
+ return list
|
|
|
+ }
|
|
|
+ },
|
|
|
+ isCapital() {
|
|
|
+ return (attributionOfAccountId) => {
|
|
|
+ const attributionOfAccountCode = codeChangeName(this.attributionOfAccountList, attributionOfAccountId, 'id', 'code')
|
|
|
+ if (attributionOfAccountCode === 'longSilver') {
|
|
|
+ return false
|
|
|
+ } else if (attributionOfAccountCode === 'noLongSilver') {
|
|
|
+ return false
|
|
|
+ } else if (attributionOfAccountCode === 'capital') {
|
|
|
+ return true
|
|
|
+ } else if (attributionOfAccountCode === 'undefined') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.$store.dispatch('getConstant', ['cashFlowEntryType'])
|
|
|
+ this.getEnterprises()
|
|
|
+ this.getAttributionOfAccount()
|
|
|
+ this.getCompanyOwnership()
|
|
|
+ this.getInstitutionName()
|
|
|
+
|
|
|
+ this.getCashFlowGetExitDetail()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ spanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
+ if (columnIndex === 10) {
|
|
|
+ console.log(column)
|
|
|
+ return { rowspan: 1, colspan: 10 }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ addExitFinanceRow() {
|
|
|
+ this.exitFinanceData.push({ date: '2024-03-23' })
|
|
|
+ },
|
|
|
+ delExitFinanceRow(index) {
|
|
|
+ this.exitFinanceData.splice(index, 1)
|
|
|
+ },
|
|
|
+ // 获取出账详情
|
|
|
+ getCashFlowGetExitDetail() {
|
|
|
+ const { id } = this.$route.query
|
|
|
+ if (id) {
|
|
|
+ cashFlowGetExitDetail(id).then(data => {
|
|
|
+ console.log(data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getEnterprises() {
|
|
|
+ getEnterprises().then(response => {
|
|
|
+ this.corporateNameList = response.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getAttributionOfAccount() {
|
|
|
+ getAttributionOfAccount({ parentCode: 'attributionOfAccount' }).then(response => {
|
|
|
+ this.attributionOfAccountList = response.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getCompanyOwnership() {
|
|
|
+ getCompanyOwnership({ parentCode: 'companyOwnership' }).then(response => {
|
|
|
+ this.companyOwnershipList = response.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取归属公司列表
|
|
|
+ getInstitutionName() {
|
|
|
+ getInstitutionName().then(response => {
|
|
|
+ this.companyOwnershipCapitalList = response.data.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 归属公司方法chang
|
|
|
+ refinancingManagementChange(companyOwnership) {
|
|
|
+ const params = {
|
|
|
+ refinancingManagementId: companyOwnership
|
|
|
+ }
|
|
|
+ getBusinessType(params).then(({ data }) => {
|
|
|
+ // this.businessTypeList = data.data
|
|
|
+ console.log('businessTypeList -----------')
|
|
|
+ console.log(data.data)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ attributionOfAccountChange() {
|
|
|
+ this.ruleForm.companyOwnershipId = ''
|
|
|
+ this.ruleForm.refinancingManagementId = ''
|
|
|
+ this.ruleForm.bankName = ''
|
|
|
+ this.ruleForm.bankCardNo = ''
|
|
|
+ this.ruleForm.bankCardNoId = ''
|
|
|
+ this.ruleForm.businessTypeId = ''
|
|
|
+ this.ruleForm.businessNumberId = ''
|
|
|
+ },
|
|
|
+ companyOwnershipChange(companyOwnership) {
|
|
|
+ this.ruleForm.bankName = ''
|
|
|
+ this.ruleForm.bankCardNo = ''
|
|
|
+ this.ruleForm.bankCardNoId = ''
|
|
|
+ this.ruleForm.businessTypeId = ''
|
|
|
+ this.ruleForm.businessNumberId = ''
|
|
|
+ const params = {
|
|
|
+ companyOwnershipId: companyOwnership
|
|
|
+ }
|
|
|
+ getNocapitalBankName(params).then(({ data }) => {
|
|
|
+ this.bankList = data
|
|
|
+ this.nanCapitalDataList = data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取银行列表
|
|
|
+ getBankList() {
|
|
|
+ getCpitalBankName(params).then(({ data }) => {
|
|
|
+ console.log('getCpitalBankName -------------')
|
|
|
+ console.log(data)
|
|
|
+ this.bankList = data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ bankChange() {
|
|
|
+ this.ruleForm.bankCardNo = ''
|
|
|
+ this.ruleForm.bankCardNoId = ''
|
|
|
+ const { bankName, companyOwnershipId, attributionOfAccountId, refinancingManagementId, businessTypeId } = this.ruleForm
|
|
|
+ const attributionOfAccountCode = codeChangeName(this.attributionOfAccountList, attributionOfAccountId, 'id', 'code')
|
|
|
+ let params = {}
|
|
|
+ if (attributionOfAccountCode === 'capital') {
|
|
|
+ params = {
|
|
|
+ refinancingManagementId,
|
|
|
+ bankName,
|
|
|
+ businessType: businessTypeId
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ params = {
|
|
|
+ companyOwnershipId,
|
|
|
+ bankName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ getBankCardNo(params).then(response => {
|
|
|
+ this.ruleForm.bankCardNo = response.data[0].bankCardNo
|
|
|
+ this.ruleForm.bankCardNoId = response.data[0].id
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getParams() {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const { companyId, attributionOfAccountId, companyOwnershipId, refinancingManagementId, bankCardNoId, businessTypeId, businessNumberId, type, incomeDate, incomeAmount, invoiceAmount, realAmount, remark, bankName, bankCardNo, id } = this.ruleForm
|
|
|
+
|
|
|
+ // 账户归属选择为资方的时候校验公司归属和业务类型
|
|
|
+ if (this.isCapital(attributionOfAccountId)) {
|
|
|
+ if (!refinancingManagementId) {
|
|
|
+ this.$message.warning('请选择公司归属')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!businessTypeId) {
|
|
|
+ this.$message.warning('请选择业务类型')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!this.isCapital(attributionOfAccountId)) {
|
|
|
+ if (!companyOwnershipId) {
|
|
|
+ this.$message.warning('请选择公司归属')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 当类型为现金时校验入账金额
|
|
|
+ if (type === 'entryType_cash') {
|
|
|
+ if (!incomeAmount) {
|
|
|
+ this.$message.warning('请输入账金额')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 当类型为票据贴现时校验票据金额和实际金额
|
|
|
+ if (type === 'entryType_bills_discounted') {
|
|
|
+ if (!invoiceAmount) {
|
|
|
+ this.$message.warning('请输入票据金额')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!realAmount) {
|
|
|
+ this.$message.warning('请输入实际金额')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const param = {
|
|
|
+ Loading: true,
|
|
|
+ id,
|
|
|
+ companyId,
|
|
|
+ accountBelong: attributionOfAccountId,
|
|
|
+ companyBelong: companyOwnershipId || refinancingManagementId,
|
|
|
+ bankAccountId: bankCardNoId,
|
|
|
+ businessType: businessTypeId,
|
|
|
+ businessTypeNumber: businessNumberId,
|
|
|
+ type,
|
|
|
+ incomeDate,
|
|
|
+ remark,
|
|
|
+ bankName,
|
|
|
+ bankAccount: bankCardNo
|
|
|
+ }
|
|
|
+ this.$refs.ruleForm.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ resolve(param)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ entryTableExpandChange() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|