收款信息修改 以及客户详情回款信息

This commit is contained in:
jia 2024-01-12 16:23:12 +08:00
parent 44293500ae
commit 0b7bef183d
29 changed files with 914 additions and 903 deletions

View File

@ -46,10 +46,15 @@ import { usePaging } from "@/hooks/usePaging"
import { useDictData } from "@/hooks/useDictOptions"
import { apiBidBuyBiddingDocumentLists } from '@/api/bid_buy_bidding_document'
import { defineEmits } from "vue"
const props = defineProps({
project_id: {
type: String
}
})
//
const queryParams = reactive({
custom_name: ''
project_id: props.project_id,
});
//

View File

@ -90,12 +90,16 @@ import { timeFormat } from '@/utils/util'
const props = defineProps({
productid: {
type: String
}
},
custom_id: {
type: String
},
})
console.log(props.productid)
//
const queryParams = reactive({
project_id: props.productid,
custom_id: props.custom_id
});
const { dictData } = useDictData('contract_type,contract_pricing_method,contract_status')
//

View File

@ -19,30 +19,18 @@
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="合同编号" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同类型" prop="contract_type">
<template #default="{ row }">
<dict-value :options="dictData.contract_type" :value="row.contract_type" />
</template>
</el-table-column>
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip />
<el-table-column label="客户名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
<el-table-column label="期次" prop="industry">
<template #default="{ row }">
<dict-value :options="dictData.pay_period" :value="row.period" />
</template>
</el-table-column>
<el-table-column label="期次" prop="period" show-overflow-tooltip />
<el-table-column label="计划回款日期" prop="return_date" show-overflow-tooltip />
<el-table-column label="状态" prop="return_status">
<template #default="{ row }">
<dict-value :options="dictData.return_status" :value="row.return_status" />
</template>
</el-table-column>
<el-table-column label="状态" prop="return_status" show-overflow-tooltip />
<el-table-column label="金额" prop="amount" show-overflow-tooltip />
<el-table-column label="已回款" prop="remark" show-overflow-tooltip />
<el-table-column label="未回款" prop="remark" show-overflow-tooltip />
<el-table-column label="回款责任人" prop="remark" show-overflow-tooltip />
<el-table-column label="已回款" prop="has_return_amount" show-overflow-tooltip />
<el-table-column label="未回款" prop="not_return_amount" show-overflow-tooltip />
<el-table-column label="回款责任人" prop="return_duty" show-overflow-tooltip />
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
</el-table>
@ -61,10 +49,16 @@ import { apireturnedLists } from '@/api/remittance'
import { defineEmits } from "vue"
import { timeFormat } from '@/utils/util'
const props = defineProps({
contract_id: {
type: String
},
})
//
const queryParams = reactive({
contract_no: '',
contract_id: props.contract_id
});
//

View File

@ -56,15 +56,14 @@ import { apiProjectLists } from '@/api/project'
import { defineEmits } from "vue"
import { timeFormat } from '@/utils/util'
const props = defineProps({
customer_id: {
custom_id: {
type: String
}
})
//
const queryParams = reactive({
name: '',
customer_id: props.customer_id
custom_id: props.custom_id
});
const { dictData } = useDictData('project_type,project_content,bidding_method,relationship,information_sources,construction_funds_sources,construction_financial_status,construction_recognition,my_construction_recognition,strategic_significance,industry,unit_nature')

View File

@ -87,14 +87,16 @@ import { projectcontracts } from '@/api/common'
import { defineEmits } from "vue"
import { timeFormat } from '@/utils/util'
const props = defineProps({
productid: {
project_id: {
type: String
}
},
})
console.log(props.productid)
// console.log(props.productid)
//
const queryParams = reactive({
project_id: props.productid,
project_id: props.project_id || '',
});
const { dictData } = useDictData('contract_type,contract_pricing_method,contract_status')
//

View File

@ -2,8 +2,8 @@
<div>
<el-card class="!border-none" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="查询" prop="name">
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入内容" />
<el-form-item label="查询" prop="contract_code">
<el-input class="w-[280px]" v-model="queryParams.contract_code" clearable placeholder="请输入内容" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
@ -15,24 +15,20 @@
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<div class="mt-4">
<el-table :data="pager.lists" @cell-click="handleCurrentChange">
<el-table-column label="序号" property="name" />
<el-table-column label="合同类型" property="custom_type">
<template #default="{ row }">
<dict-value :options="dictData.contract_type" :value="row.contract_type" />
</template>
</el-table-column>
<el-table-column label="客户名称" property="customer_name" />
<el-table-column label="序号" type="index" />
<el-table-column label="合同类型" property="contract_type" />
<el-table-column label="客户名称" property="custom_name" />
<el-table-column label="订单编号" property="province_name" />
<el-table-column label="订单金额" property="city_name" />
<el-table-column label="调整金额" property="street_name" />
<el-table-column label="实际合同金额" property="master_name" />
<el-table-column label="实际合同金额" property="reality_contract_amount" />
<el-table-column label="项目名称" property="project_name" />
<el-table-column label="项目编码" property="project_code" />
<el-table-column label="签约日期" property="contract_date" />
<el-table-column label="已回款" property="master_name" />
<el-table-column label="未回款" property="master_name" />
<el-table-column label="已开票" property="master_name" />
<el-table-column label="未开票" property="master_name" />
<el-table-column label="已回款" property="returned_amount" />
<el-table-column label="未回款" property="not_returned_amount" />
<el-table-column label="已开票" property="invoicing_amount" />
<el-table-column label="未开票" property="not_invoicing_amount" />
</el-table>
</div>
@ -49,6 +45,9 @@ import { useDictData } from "@/hooks/useDictOptions"
import { apiContractLists } from '@/api/contract'
import { defineEmits } from "vue"
const props = defineProps({
project_id: {
type: String
},
contract_type: {
type: String
}
@ -57,8 +56,8 @@ const props = defineProps({
//
const queryParams = reactive({
contract_name: '',
contract_code: '',
project_id: props.project_id,
contract_type: props.contract_type,
});
const { dictData } = useDictData('contract_type')

View File

@ -3,173 +3,74 @@
<div class="detail-popup">
<popup ref="popupRef" title="开票申请详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="160px">
<el-card class="mb-2">
<el-row>
<el-col :span="8">
<el-form-item label="项目名称">
{{ formData.project_name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称">
{{ formData.custom.name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码">
{{ formData.project_code
}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同编号">
{{ formData.contract.contract_name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称">
{{ formData.contract ? formData.contract.contract_code : '暂无数据' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额">
{{ formData.contract.amount
}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次">
<dict-value :options="dictData.pay_period" :value="formData.period" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="累计开票金额">
{{ formData.accumulate_amount }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="累计回款金额">
{{ formData.accumulated_payments_received }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="税率">
{{ formData.tax_rate }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发票类型">
<dict-value :options="dictData.invoice_type" :value="formData.invoice_type" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票金额(含税)">
{{ formData.invoicing_amount }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="金额大写">
{{ formData.invoicing_amount_daxie }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票金额(税额)">
{{ formData.invoicing_amount }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票金额(非税)">
{{ formData.amount_including_tax }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票内容">
{{ formData.content }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发票编号">
{{ formData.invoice_no }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票公司名称">
{{ formData.invoicing_company_name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人识别号">
{{ formData.taxpayer_identification_number }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户银行">
{{ formData.deposit_bank }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="账号">
{{ formData.bank_accnout }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户地址及电话">
{{ formData.address_phone }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收票地址">
{{ formData.receiving_address }}
</el-form-item>
</el-col> <el-col :span="8">
<el-form-item label="联系人">
{{ formData.contacts }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系电话">
{{ formData.phone }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮寄时间">
{{ formData.mailing_time }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮寄方式">
{{ formData.mailing_type }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮寄单号">
{{ formData.mailing_no }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注">
{{ formData.remark }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
</div>
</el-form-item>
</el-col>
<el-descriptions :column="3" title="基本信息" border>
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_name }}</el-descriptions-item>
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label"> {{ formData.contract_code }}</el-descriptions-item>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label">{{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="合同金额" label-align="left" align="left" label-class-name="my-label">
{{ formData.contract_amount }}
</el-descriptions-item>
<el-descriptions-item label="期次" label-align="left" align="left" label-class-name="my-label"> {{ formData.period_text }}</el-descriptions-item>
<el-descriptions-item label="税率(%)" label-align="left" align="left" label-class-name="my-label"> {{ formData.tax_rate_text }}</el-descriptions-item>
<el-descriptions-item label="发票类型" label-align="left" align="left" label-class-name="my-label"> {{ formData.invoice_type_text }}</el-descriptions-item>
<el-descriptions-item label="开票金额(含税)" label-align="left" align="left" label-class-name="my-label"> {{ formData.amount_including_tax }}</el-descriptions-item>
<!-- <el-descriptions-item label="开票金额(税额)" label-align="left" align="left" label-class-name="my-label"> {{ formData.industry_text }}</el-descriptions-item> -->
<el-descriptions-item label="开票内容" label-align="left" align="left" label-class-name="my-label"> {{ formData.content }}</el-descriptions-item>
<el-descriptions-item label="发票编号" label-align="left" align="left" label-class-name="my-label"> {{ formData.invoice_no }}</el-descriptions-item>
</el-row>
</el-card>
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
<div v-if="formData.annex && formData.annex.length > 0">
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }} 查看</a>
</div>
</div>
<div v-else>
暂无文件
</div>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3" title="客户开票信息" border style="margin: 20px 0;">
<el-descriptions-item label="开票公司名称" label-align="left" align="left" label-class-name="my-label">{{ formData.invoicing_company_name }}</el-descriptions-item>
<el-descriptions-item label="纳税人识别号" label-align="left" align="left" label-class-name="my-label"> {{ formData.taxpayer_identification_number }}</el-descriptions-item>
<el-descriptions-item label="开户银行" label-align="left" align="left" label-class-name="my-label">{{ formData.deposit_bank }}</el-descriptions-item>
<el-descriptions-item label="账号" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_accnout }}</el-descriptions-item>
<el-descriptions-item label="开户地址及电话" label-align="left" align="left" label-class-name="my-label">
{{ formData.address_phone }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3" title="发票邮寄信息" border style="margin: 20px 0;">
<el-descriptions-item label="收票地址" label-align="left" align="left" label-class-name="my-label">{{ formData.receiving_address }}</el-descriptions-item>
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{ formData.contacts }}</el-descriptions-item>
<el-descriptions-item label="联系电话" label-align="left" align="left" label-class-name="my-label">{{ formData.phone }}</el-descriptions-item>
<el-descriptions-item label="邮寄时间" label-align="left" align="left" label-class-name="my-label"> {{ formData.mailing_type }}</el-descriptions-item>
<el-descriptions-item label="邮寄方式" label-align="left" align="left" label-class-name="my-label"> {{ formData.mailing_type }}</el-descriptions-item>
<el-descriptions-item label="邮寄单号" label-align="left" align="left" label-class-name="my-label">
{{ formData.mailing_no }}
</el-descriptions-item>
</el-descriptions>
</el-form>
</popup>
</div>

View File

@ -11,26 +11,14 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" @click="showDialog = true" clearable placeholder="请选择客户" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择开票日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_no" @click="showDialog1 = true">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_no" clearable readonly placeholder="请选择合同" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name">
<el-form-item label="合同名称" prop="contract_id">
<el-input v-model="contract_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -43,7 +31,19 @@
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="contract_id">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票日期" prop="invoicing_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.invoicing_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择开票日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同金额" prop="project_amount">
@ -57,19 +57,22 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item label="累计开票金额" prop="accumulate_amount">
<el-input v-model="formData.accumulate_amount" clearable placeholder="请输入累计开票金额" />
<el-input v-model="accumulate_amount" clearable placeholder="请输入累计开票金额" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="累计回款金额" prop="accumulated_payments_received">
<el-input v-model="formData.accumulated_payments_received" clearable placeholder="请输入累计回款金额" />
<el-input v-model="accumulated_payments_received" clearable placeholder="请输入累计回款金额" />
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item label="税率" prop="tax_rate">
<el-input v-model="formData.tax_rate" clearable placeholder="请输入税率" />
<el-select class="flex-1" v-model="formData.tax_rate" clearable placeholder="请选择税率">
<el-option v-for="(item, index) in dictData.tax_rate" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
@ -86,19 +89,19 @@
</el-col>
<el-col :span="8">
<el-form-item label="金额大写" prop="invoicing_amount_daxie">
<el-input v-model="formData.invoicing_amount_daxie" clearable placeholder="请输入金额大写" />
<el-input v-model="invoicing_amount_daxie" disabled clearable placeholder="请输入金额大写" />
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item label="开票金额(税额)" prop="tax">
<el-input v-model="formData.tax" clearable placeholder="请输入开票金额(税额)" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-col> -->
<!-- <el-col :span="8">
<el-form-item label="开票金额(非税)" prop="amount_including_tax">
<el-input v-model="formData.amount_including_tax" clearable placeholder="请输入开票金额(非税)" />
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="24">
@ -194,7 +197,7 @@
</el-col> <el-col :span="8">
<el-form-item label="邮寄时间" prop="mailing_time">
<el-date-picker class="flex-1 !flex" v-model="formData.mailing_time" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择邮寄时间">
<el-date-picker class="flex-1 !flex" v-model="formData.mailing_time" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择邮寄时间">
</el-date-picker>
</el-form-item>
@ -214,7 +217,7 @@
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<salescontractDialog @customEvent="customEvent1" contract_type="2"></salescontractDialog>
<contractDialog @customEvent="customEvent1"></contractDialog>
</el-dialog>
</el-form>
</popup>
@ -227,7 +230,7 @@ import customDialog from '@/components/custom-dialog/index.vue'
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { toChinesNum } from "@/utils/util";
import salescontractDialog from '@/components/salescontract/index.vue'
import contractDialog from '@/components/contract/index.vue'
import { apiinvoiceapplyAdd, apiinvoiceapplyEdit, apiinvoiceapplyDetail } from '@/api/InvoicingRequests'
import { getAllProjectTypes } from '@/api/projecttype'
import { timeFormat } from '@/utils/util'
@ -235,7 +238,7 @@ import { isEmail, isIdCard, isPhone } from '@/utils/validate'
import type { PropType } from 'vue'
import configs from "@/config"
import useUserStore from "@/stores/modules/user";
const protype = reactive([])
const base_url = configs.baseUrl + configs.urlPrefix
const userStore = useUserStore();
const active = ref(0)
@ -246,6 +249,7 @@ const project_code = ref('')
const project_amount = ref('')
const contract_no = ref('')
const custom_name = ref('')
const invoicing_amount_daxie = ref('')
const next = () => {
if (active.value++ > 3) active.value = 0
}
@ -294,7 +298,7 @@ const userEmail = (rule: any, value: string, callback: (arg0: Error | undefined)
const amountinput = (e) => {
// console.log(e)
if (e && e > 0) {
formData.invoicing_amount_daxie = toChinesNum(e)
invoicing_amount_daxie.value = toChinesNum(e)
}
}
//
@ -321,6 +325,7 @@ const customEvent = (e: any) => {
};
const customEvent1 = (e: any) => {
formData.contract_id = e.id;
custom_name.value = e.custom_name;
project_name.value = e.project_name;
project_code.value = e.project_code;
contract_name.value = e.contract_name;
@ -337,18 +342,15 @@ const popupTitle = computed(() => {
//
const formData = reactive({
id: '',
customer_id: '',
contract_id: '',
approve_id: '',
invoicing_date: "",
period: "",
accumulate_amount: '',
accumulated_payments_received: '',
tax_rate: "",
invoice_type: '',
invoicing_amount: '',
invoicing_amount_daxie: "",
tax: '',
amount_including_tax: '',
content: "",
invoice_no: "",
@ -398,12 +400,12 @@ const setFormData = async (data: Record<any, any>) => {
if (formData.invoicing_amount) {
toChinesNum(formData.invoicing_amount)
}
custom_name.value = data.custom.name
custom_name.value = data.custom_name
project_name.value = data.contract_name;
project_code.value = data.contract_code
project_amount.value = data.contract.amount
contract_name.value = data.contract.contract_name;
contract_no.value = data.contract.contract_code
project_amount.value = data.contract_amount
contract_name.value = data.contract_name;
contract_no.value = data.contract_code
}
@ -438,10 +440,7 @@ const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
getAllProjectTypes().then((res) => {
protype.splice(0, protype.length, ...res);
})
}
//

View File

@ -41,27 +41,19 @@
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="客户" prop="customer_name" show-overflow-tooltip />
<el-table-column label="客户" prop="custom_name" show-overflow-tooltip />
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="开票日期" prop="invoicing_date" show-overflow-tooltip />
<el-table-column label="期次" prop="industry">
<template #default="{ row }">
<dict-value :options="dictData.pay_period" :value="row.period" />
</template>
</el-table-column>
<el-table-column label="发票类型" prop="invoice_type">
<template #default="{ row }">
<dict-value :options="dictData.invoice_type" :value="row.invoice_type" />
</template>
</el-table-column>
<el-table-column label="期次" prop="period" show-overflow-tooltip />
<el-table-column label="发票类型" prop="invoice_type" show-overflow-tooltip />
<el-table-column label="开票金额(含税)" prop="invoicing_amount" show-overflow-tooltip />
<el-table-column label="开票金额(非税)" prop="amount_including_tax" show-overflow-tooltip />
<el-table-column label="税率" prop="tax_rate" show-overflow-tooltip />
<el-table-column label="开票金额(税额)" prop="tax" show-overflow-tooltip />
<el-table-column label="税率(%)" prop="tax_rate" show-overflow-tooltip />
<!-- <el-table-column label="开票金额(税额)" prop="tax" show-overflow-tooltip /> -->
<el-table-column label="操作" width="160" fixed="right">
<template #default="{ row }">
<el-button v-perms="['InvoicingRequests.InvoicingRequests/edit']" type="primary" link @click="handleEdit(row)">
@ -126,7 +118,7 @@ const handleSelectionChange = (val: any[]) => {
}
//
const { dictData } = useDictData('pay_period,invoice_type')
const { dictData } = useDictData('pay_period,invoice_type,tax_rate')
//
const { pager, getLists, resetParams, resetPage } = usePaging({

View File

@ -13,13 +13,10 @@
</div>
<el-row>
<el-col :span="8">
<el-form-item label="客户" prop="customer_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="客户" prop="custom_id" @click="showDialog = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" readonly clearable placeholder="请选择客户" />
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="投标编号" prop="buy_bidding_document_id" @click="showDialog1 = true">
<el-input v-model="bidding_code" readonly clearable placeholder="请选择投标编号" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
@ -28,6 +25,10 @@
<el-form-item label="项目编码" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="投标编号" prop="buy_bidding_document_id" @click="showDialog1 = true">
<el-input v-model="bidding_code" readonly clearable placeholder="请选择投标编号" />
</el-form-item></el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" />
@ -47,7 +48,7 @@
<el-option v-for="(item, index) in dictData.contract_pricing_method" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方" prop="party_a">
<el-form-item label="甲方" prop="party_a" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.party_a" clearable placeholder="请输入甲方" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="甲方通讯地址" prop="party_a_contact_address">
@ -83,18 +84,18 @@
<el-form-item label="乙方邮箱" prop="party_b_email" :rules="[{ validator: userEmail, trigger: 'blur' }]">
<el-input v-model="formData.party_b_email" clearable placeholder="请输入乙方邮箱" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="金额" prop="amount">
<el-form-item label="金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" clearable placeholder="请输入金额" @input="amountinput" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="金额大写" prop="amount_daxie">
<el-input v-model="amount_daxie" readonly clearable placeholder="请输入金额大写" />
<el-input v-model="amount_daxie" disabled clearable placeholder="系统自动填写" />
</el-form-item></el-col><el-col :span="8">
<el-form-item label="业务负责人" prop="business_director" @click="userclick">
<el-form-item label="业务负责人" prop="business_director" @click="userclick" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="business_director_name" readonly clearable placeholder="请输入业务负责人" />
</el-form-item></el-col>
<el-col :span="24">
<el-form-item label="合同状态" prop="contract_status">
<el-form-item label="合同状态" prop="contract_status" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-radio-group v-model="formData.contract_status" placeholder="请选择合同状态">
<el-radio v-for="(item, index) in dictData.contract_status" :key="index" :label="parseInt(item.value)">
{{ item.name }}
@ -104,13 +105,13 @@
</el-col>
<el-col :span="8">
<el-form-item label="合同有效期" prop="expire">
<el-date-picker class="flex-1 !flex" v-model="formData.expire" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择合同有效期">
<el-form-item label="合同有效期" prop="expire" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.expire" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择合同有效期">
</el-date-picker>
</el-form-item></el-col><el-col :span="8">
<el-form-item label="签约日期" prop="contract_date">
<el-date-picker class="flex-1 !flex" v-model="formData.contract_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择签约日期">
<el-form-item label="签约日期" prop="contract_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.contract_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签约日期">
</el-date-picker>
</el-form-item></el-col><el-col :span="8">
@ -136,6 +137,37 @@
</el-form-item>
</el-col>
</el-row>
<div style="margin-bottom: 30px;">回款计划</div>
<div style="margin-bottom: 30px;">
<el-table :data="paymentList">
<el-table-column label="序号">
<template #default="{ row }">
<el-button @click="handleAdd(row)">+</el-button>
<el-button @click="handleDelete(row)">-</el-button>
</template>
</el-table-column>
<el-table-column label="期次" prop="name1">
<template #default="{ row }">
<el-select v-model="row.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period " :key="index" :label="item.name" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="计划回款日期" prop="return_date">
<template #default="{ row }">
<el-date-picker v-model="row.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择签订日期">
</el-date-picker>
</template></el-table-column>
<el-table-column label="金额" prop="amount">
<template #default="{ row }"> <el-input v-model="row.amount" /> </template></el-table-column>
<el-table-column label="备注" prop="remark">
<template #default="{ row }">
<el-input v-model="row.remark" />
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<reviewprocess />
</popup>
@ -144,10 +176,10 @@
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择标书" width="70%">
<biddocumentTable @customEvent="customEvent1"></biddocumentTable>
<biddocumentTable @customEvent="customEvent1" :project_id="project_id"></biddocumentTable>
</el-dialog>
<el-dialog v-model="showDialog2" title="选择项目" width="70%">
<projectTable @customEvent="customEvent2" :customer_id="formData.customer_id"></projectTable>
<projectTable @customEvent="customEvent2" :custom_id="formData.custom_id"></projectTable>
</el-dialog>
<personnelselector ref="personnel" @confirm="submituser" type="1"></personnelselector>
</div>
@ -186,9 +218,11 @@ const project_name = ref('')
const project_code = ref('')
const bidding_code = ref('')
const amount_daxie = ref('')
const project_id = ref('')
const business_director_name = ref('')
const list1 = reactive([])
const list2 = reactive([])
const paymentList = reactive([{}])
const personnel = ref<any>()
import { deptAll } from '@/api/org/department'
import { getAll } from '@/api/org/organization'
@ -219,6 +253,17 @@ const userEmail = (rule: any, value: string, callback: (arg0: Error | undefined)
}
};
const handleAdd = (row: any) => {
// row
const index = paymentList.indexOf(row);
paymentList.splice(index + 1, 0, {});
};
const handleDelete = (row: any) => {
// row
const index = paymentList.indexOf(row);
paymentList.splice(index, 1);
};
//
const handleAvatarSuccess_four = (
response,
@ -244,6 +289,19 @@ const userclick = () => {
personnel.value.open()
}
//
const paymentplanList = (id: any) => {
// paymentplanLists({ 'page_no': 1, 'page_size': 5000, 'contract_type': 1, 'contract_id': id }).then((res) => {
// const data = res.lists.map((item: any) => ({
// 'period': item.period,
// 'return_date': item.return_date,
// 'amount': item.amount,
// 'remark': item.remark,
// }))
// paymentList.splice(0, paymentList.length, ...data);
// })
}
//
const submituser = (e: any) => {
formData.business_director = e.id;
@ -251,7 +309,7 @@ const submituser = (e: any) => {
}
//
const tanchuan = () => {
if (formData.customer_id) {
if (formData.custom_id) {
showDialog2.value = true
} else {
feedback.msgError('请先选择客户')
@ -260,7 +318,7 @@ const tanchuan = () => {
//
const customEvent = (e: any) => {
formData.customer_id = e.id;
formData.custom_id = e.id;
custom_name.value = e.name;
console.log(custom_name.value, e.name)
showDialog.value = false;
@ -273,6 +331,7 @@ const customEvent1 = (e: any) => {
showDialog1.value = false;
};
const customEvent2 = (e: any) => {
project_id.value = e.id;
project_name.value = e.name;
project_code.value = e.project_code
showDialog2.value = false;
@ -324,7 +383,7 @@ const formData = reactive({
dept_id: '',
org_id: '',
approve_id: 1,
customer_id: '',
custom_id: '',
buy_bidding_document_id: '',
contract_name: '',
contract_code: '',
@ -343,7 +402,7 @@ const formData = reactive({
party_b_mobile: '',
party_b_email: '',
amount: '',
returned_money: '',
business_director: '',
contract_status: '',
expire: '',
@ -375,6 +434,7 @@ const setFormData = async (data: Record<any, any>) => {
}
if (data.dept_id) {
getlist1(data.org_id)
}
@ -408,6 +468,15 @@ const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.annex = JSON.stringify(formDataannex.map((item) => item.uri))
}
if (paymentList.length > 0) {
formData.returned_money = JSON.stringify(paymentList.map((item) => ({
'id': item.id,
'period': item.period,
'remark': item.remark,
'amount': item.amount,
'return_date': item.return_date,
})))
}
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'

View File

@ -50,7 +50,7 @@
<el-table-column label="甲方" prop="party_a" show-overflow-tooltip />
<el-table-column label="乙方" prop="party_b" show-overflow-tooltip />
<el-table-column label="金额" prop="amount" show-overflow-tooltip />
<el-table-column label="业务负责人" prop="business_director" show-overflow-tooltip />
<el-table-column label="业务负责人" prop="business_director_name" show-overflow-tooltip />
<el-table-column label="合同状态" prop="contract_status" show-overflow-tooltip>
<template #default="{ row }">
<dict-value :options="dictData.contract_status" :value="row.contract_status" />
@ -115,7 +115,7 @@ const handleSelectionChange = (val: any[]) => {
}
//
const { dictData } = useDictData('contract_type,contract_pricing_method,contract_status')
const { dictData } = useDictData('contract_type,contract_pricing_method,contract_status,pay_period')
//
const { pager, getLists, resetParams, resetPage } = usePaging({

View File

@ -161,11 +161,46 @@
</el-tab-pane>
<el-tab-pane label="订单" name="new_name_5">Task</el-tab-pane>
<el-tab-pane label="发票" name="new_name_6">Task</el-tab-pane>
<el-tab-pane label="回款" name="new_name_7">Task</el-tab-pane>
<el-tab-pane label="回款" name="new_name_7">
<div class="tit" style="margin:20px 0">回款计划</div>
<div>
<el-table :data="tableData6" stripe style="width: 100%">
<el-table-column label="合同编号" prop='contract_name' width="180" />
<el-table-column label="合同名称" prop='contract_code' width="180" />
<el-table-column label="期次" prop='period' />
<el-table-column label="计划日期" prop='return_date' />
<el-table-column label="状态" prop='return_status' />
<el-table-column label="金额" prop='amount' />
<el-table-column label="已回款" prop='has_return_amount' />
<el-table-column label="未回款" prop='not_return_amount' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager6.page_no" v-model:page-size="pager6.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total6" @size-change="handleSizeChange6" @current-change="handleCurrentChange6" />
</div>
<div class="tit" style="margin:20px 0">回款记录</div>
<div>
<el-table :data="tableData7" stripe style="width: 100%">
<el-table-column label="合同名称" prop='contract_name' width="180" />
<el-table-column label="合同编号" prop='contract_code' width="180" />
<el-table-column label="期次" prop='period' />
<el-table-column label="日期" prop='return_date' />
<el-table-column label="金额" prop='amount' />
<!-- <el-table-column label="累计回款" prop='is_solve_text' /> -->
<el-table-column label="收款人" prop='receiver' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager7.page_no" v-model:page-size="pager7.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total7" @size-change="handleSizeChange7" @current-change="handleCurrentChange7" />
</div>
</el-tab-pane>
<el-tab-pane label="售后" name="new_name_8">
<div>
<el-table :data="tableData3" stripe style="width: 100%">
<el-table-column label="工单编号" prop='custom service code' width="180" />
<el-table-column label="工单编号" prop='custom_service_code' width="180" />
<el-table-column label="合同编号" prop='contract_code' width="180" />
<el-table-column label="投诉主题" prop='name' />
<el-table-column label="日期" prop='date' />
@ -202,7 +237,8 @@ import { apiCustomServiceLists } from '@/api/custom_service'
import { apiCustomContactsLists } from '@/api/custom_contacts'
import { apiContractLists } from '@/api/contract'
import { apiContractNegotiationLists } from '@/api/contract_negotiation'
import { apireturnedLists } from '@/api/remittance'
import { apireturnedrecordLists } from '@/api/recordsPayment'
import { timeFormat } from '@/utils/util'
import type { TabsPaneContext } from 'element-plus'
import type { PropType } from 'vue'
@ -222,7 +258,7 @@ const tableData3 = ref([])
const tableData4 = ref([])
const tableData5 = ref([])
const tableData6 = ref([])
const tableData7 = ref([])
const activeName = ref('new_name_1')
const handleClick = (tab: TabsPaneContext, event: Event) => {
@ -271,6 +307,11 @@ const pager6 = reactive({
page_no: 1,
custom_id: ""
})
const pager7 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const total1 = ref(0)
const total2 = ref(0)
@ -312,7 +353,14 @@ const handleSizeChange5 = (val: number) => {
const handleSizeChange6 = (val: number) => {
pager6.page_size = val
competitorLists()
returnedLists()
}
const handleSizeChange7 = (val: number) => {
pager7.page_size = val
returnedrecordLists()
}
//
@ -340,7 +388,7 @@ const handleCurrentChange4 = (val: number) => {
}
const handleCurrentChange5 = (val: number) => {
pager5page_no = val
pager5.page_no = val
console.log(`current page: ${val}`)
negotiationLists()
@ -348,7 +396,15 @@ const handleCurrentChange5 = (val: number) => {
const handleCurrentChange6 = (val: number) => {
pager6.page_no = val
console.log(`current page: ${val}`)
competitorLists()
returnedLists()
}
const handleCurrentChange7 = (val: number) => {
pager7.page_no = val
console.log(`current page: ${val}`)
returnedrecordLists()
}
//
const setFormData = async (data: Record<any, any>) => {
@ -375,12 +431,14 @@ const setFormData = async (data: Record<any, any>) => {
pager4.custom_id = data.id
pager5.custom_id = data.id
pager6.custom_id = data.id
pager7.custom_id = data.id
projectLists()
quotationLists()
customServiceLists()
contractLists()
negotiationLists()
returnedLists()
returnedrecordLists()
}
const getDetail = async (row: Record<string, any>) => {
@ -457,6 +515,25 @@ const negotiationLists = () => {
total5.value = res.count
})
}
//
const returnedLists = () => {
apireturnedLists(pager6).then((res) => {
tableData6.value = res.lists
total6.value = res.count
})
}
//
const returnedrecordLists = () => {
apireturnedrecordLists(pager7).then((res) => {
tableData7.value = res.lists
total7.value = res.count
})
}
defineExpose({
open,
setFormData,

View File

@ -10,11 +10,11 @@
<el-descriptions :column="3" title="基本信息" border>
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.dept_name }}</el-descriptions-item>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label">{{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label">{{ formData.name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="项目状态" label-align="left" align="left" label-class-name="my-label">
{{ formData.contract_code }}
{{ formData.status_text }}
</el-descriptions-item>
<el-descriptions-item label="项目类型" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_type_name }}</el-descriptions-item>
<el-descriptions-item label="立项日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time }}</el-descriptions-item>
@ -256,13 +256,13 @@
<div class="tit">投标保证金</div>
<div>
<el-table :data="tableData10" stripe style="width: 100%">
<el-table-column label="流程编号" prop='code' width="180" />
<el-table-column label="流程编号" prop='bidding_decision_code' width="180" />
<el-table-column label="投标时间" prop='bidding_time' width="180" />
<el-table-column label="预计退还时间" prop='refund_date' />
<el-table-column label="申请人" prop='competitive_power' />
<el-table-column label="申请人" prop='applier' />
<el-table-column label="保证金金额 " prop='margin_amount' />
<el-table-column label="已退金额" prop='remark' />
<el-table-column label="未退金额" prop='remark' />
<el-table-column label="已退金额" prop='refund_amount' />
<el-table-column label="未退金额" prop='not_refund_amount' />
</el-table>
</div>
<div style="margin: 20px 0;">
@ -271,14 +271,13 @@
<div class="tit">退投标保证金</div>
<div>
<el-table :data="tableData11" stripe style="width: 100%">
<el-table-column label="投标时间" prop='competitor_name' width="180" />
<el-table-column label="投标时间" prop='bidding_time' width="180" />
<el-table-column label="退款日期" prop='refund_date' width="180" />
<el-table-column label="账户编码" prop='competitor_contacts_phone' />
<el-table-column label="申请人" prop='competitive_power' />
<el-table-column label="开户银行" prop='competitor_advantages' />
<el-table-column label="账户编码" prop='bank_account_info.account_sn' />
<el-table-column label="开户银行" prop='bank_account_info.deposit_bank' />
<el-table-column label="退款金额" prop='refund_amount' />
<el-table-column label="添加人" prop='remark' />
<el-table-column label="创建日期" prop='remark' />
<el-table-column label="客户名称" prop='custom_name' />
<el-table-column label="创建日期" prop='create_time' />
</el-table>
</div>
<div style="margin: 20px 0;">

View File

@ -10,11 +10,11 @@
<el-descriptions :column="3" title="基本信息" border>
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.dept_name }}</el-descriptions-item>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label">{{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label">{{ formData.name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="项目状态" label-align="left" align="left" label-class-name="my-label">
{{ formData.contract_code }}
{{ formData.status_text }}
</el-descriptions-item>
<el-descriptions-item label="项目类型" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_type_name }}</el-descriptions-item>
<el-descriptions-item label="立项日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time }}</el-descriptions-item>
@ -256,13 +256,13 @@
<div class="tit">投标保证金</div>
<div>
<el-table :data="tableData10" stripe style="width: 100%">
<el-table-column label="流程编号" prop='code' width="180" />
<el-table-column label="流程编号" prop='bidding_decision_code' width="180" />
<el-table-column label="投标时间" prop='bidding_time' width="180" />
<el-table-column label="预计退还时间" prop='refund_date' />
<el-table-column label="申请人" prop='competitive_power' />
<el-table-column label="申请人" prop='applier' />
<el-table-column label="保证金金额 " prop='margin_amount' />
<el-table-column label="已退金额" prop='remark' />
<el-table-column label="未退金额" prop='remark' />
<el-table-column label="已退金额" prop='refund_amount' />
<el-table-column label="未退金额" prop='not_refund_amount' />
</el-table>
</div>
<div style="margin: 20px 0;">
@ -271,14 +271,13 @@
<div class="tit">退投标保证金</div>
<div>
<el-table :data="tableData11" stripe style="width: 100%">
<el-table-column label="投标时间" prop='competitor_name' width="180" />
<el-table-column label="投标时间" prop='bidding_time' width="180" />
<el-table-column label="退款日期" prop='refund_date' width="180" />
<el-table-column label="账户编码" prop='competitor_contacts_phone' />
<el-table-column label="申请人" prop='competitive_power' />
<el-table-column label="开户银行" prop='competitor_advantages' />
<el-table-column label="账户编码" prop='bank_account_info.account_sn' />
<el-table-column label="开户银行" prop='bank_account_info.deposit_bank' />
<el-table-column label="退款金额" prop='refund_amount' />
<el-table-column label="添加人" prop='remark' />
<el-table-column label="创建日期" prop='remark' />
<el-table-column label="客户名称" prop='custom_name' />
<el-table-column label="创建日期" prop='create_time' />
</el-table>
</div>
<div style="margin: 20px 0;">
@ -416,7 +415,86 @@
<el-pagination v-model:current-page="pager28.page_no" v-model:page-size="pager28.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total27" @size-change="handleSizeChange28" @current-change="handleCurrentChange28" />
</div>
</el-tab-pane>
<el-tab-pane label="收款" name="demo-14">Task</el-tab-pane>
<el-tab-pane label="收款" name="demo-14">
<div class='tit'>开票记录</div>
<div>
<el-table :data="tableData29" stripe style="width: 100%">
<el-table-column label="开票单号" prop='invoicing_code' width="180" />
<el-table-column label="合同编号" prop='contract_code' width="180" />
<el-table-column label="合同名称" prop='contract_name' />
<el-table-column label="开票日期" prop='invoicing_date' width="180" />
<el-table-column label="期次" prop='period' width="180" />
<el-table-column label="发票类型" prop='invoice_type' />
<!-- <el-table-column label="申请人" prop='amount_excluding_tax' /> -->
<el-table-column label="发票编号" prop='tax' />
<el-table-column label="开票金额(含税) " prop='amount_including_tax' />
<el-table-column label="开票金额(非税)" prop='invoicing_amount' />
<el-table-column label="税率" prop='tax_rate' />
<el-table-column label="税额" prop='tax_amount' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager29.page_no" v-model:page-size="pager29.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total28" @size-change="handleSizeChange29" @current-change="handleCurrentChange29" />
</div>
<div class='tit' style="margin:20px 0">回款计划</div>
<div>
<el-table :data="tableData30" stripe style="width: 100%">
<el-table-column label="合同编号" prop='contract_name' width="180" />
<el-table-column label="合同名称" prop='contract_code' width="180" />
<el-table-column label="期次" prop='period' />
<el-table-column label="计划日期" prop='return_date' />
<el-table-column label="状态" prop='return_status' />
<el-table-column label="金额" prop='amount' />
<el-table-column label="已回款" prop='has_return_amount' />
<el-table-column label="未回款" prop='not_return_amount' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager30.page_no" v-model:page-size="pager30.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total29" @size-change="handleSizeChange30" @current-change="handleCurrentChange30" />
</div>
<div class='tit' style="margin:20px 0">回款记录</div>
<div>
<el-table :data="tableData31" stripe style="width: 100%">
<el-table-column label="合同名称" prop='contract_name' width="180" />
<el-table-column label="合同编号" prop='contract_code' width="180" />
<el-table-column label="期次" prop='period' />
<el-table-column label="日期" prop='return_date' />
<el-table-column label="金额" prop='amount' />
<!-- <el-table-column label="累计回款" prop='is_solve_text' /> -->
<el-table-column label="收款人" prop='receiver' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager31.page_no" v-model:page-size="pager31.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total30" @size-change="handleSizeChange31" @current-change="handleCurrentChange31" />
</div>
<div class='tit' style="margin:20px 0">退款记录</div>
<div>
<el-table :data="tableData32" stripe style="width: 100%">
<el-table-column label="退款单号" prop='refund_code' width="180" />
<el-table-column label="合同编号" prop='contract_code' width="180" />
<el-table-column label="合同名称" prop='contract_nanme' width="180" />
<el-table-column label="退款日期" prop='refund_date' width="180" />
<el-table-column label="退款原因" prop='reason' />
<el-table-column label="退款方式" prop='refund_type' />
<el-table-column label="退款金额" prop='amount' />
<el-table-column label="备注" prop='remark' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager32.page_no" v-model:page-size="pager32.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total31" @size-change="handleSizeChange32" @current-change="handleCurrentChange32" />
</div>
</el-tab-pane>
<el-tab-pane label="付款" name="demo-15">
<div class='tit'>收票记录</div>
<div>
@ -444,8 +522,8 @@
<el-table-column label="期次" prop='period' width="180" />
<el-table-column label="状态" prop='status' />
<el-table-column label="金额" prop='amount' />
<el-table-column label="已付款" prop='competitor_advantages' />
<el-table-column label="未付款" prop='competitor_disadvantages' />
<el-table-column label="已付款" prop='has_payment_amount' />
<el-table-column label="未付款" prop='not_payment_amoun' />
<el-table-column label="备注" prop='remark' />
</el-table>
@ -720,6 +798,10 @@ import { apiProcurementContractLists } from '@/api/procurement_contract'
import { apiSubcontractingContractLists } from '@/api/subcontracting_contract'
import { apinegotiationLists } from '@/api/subcontractor'
import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
import { apireturnedLists } from '@/api/remittance'
import { apireturnedrecordLists } from '@/api/recordsPayment'
import { apirefundapplyLists } from '@/api/refund'
const active = ref('first-1')
const activeName = ref('demo-1')
const handleClick = (tab: TabsPaneContext, event: Event) => {
@ -902,6 +984,16 @@ const pager30 = reactive({
page_no: 1,
project_id: ""
})
const pager31 = reactive({
page_size: 10,
page_no: 1,
project_id: ""
})
const pager32 = reactive({
page_size: 10,
page_no: 1,
project_id: ""
})
@ -937,6 +1029,11 @@ const total25 = ref(0)
const total26 = ref(0)
const total27 = ref(0)
const total28 = ref(0)
const total29 = ref(0)
const total30 = ref(0)
const total31 = ref(0)
const total32 = ref(0)
const total33 = ref(0)
const tableData1 = ref([])
const tableData2 = ref([])
const tableData3 = ref([])
@ -971,7 +1068,8 @@ const tableData27 = ref([])
const tableData28 = ref([])
const tableData29 = ref([])
const tableData30 = ref([])
const tableData31 = ref([])
const tableData32 = ref([])
//
const formData = reactive({
@ -1160,7 +1258,7 @@ const handleSizeChange29 = (val: number) => {
pager29.page_size = val
customServiceLists()
invoiceapplyLists()
}
@ -1170,7 +1268,18 @@ const handleSizeChange30 = (val: number) => {
pager30.page_size = val
customServiceLists()
returnedLists()
}
const handleSizeChange31 = (val: number) => {
pager30.page_size = val
returnedrecordLists()
}
const handleSizeChange32 = (val: number) => {
pager30.page_size = val
refundapplyLists()
}
@ -1358,8 +1467,7 @@ const handleCurrentChange28 = (val: number) => {
const handleCurrentChange29 = (val: number) => {
pager29.page_no = val
console.log(`current page: ${val}`)
customServiceLists()
invoiceapplyLists()
}
@ -1367,10 +1475,29 @@ const handleCurrentChange30 = (val: number) => {
pager30.page_no = val
console.log(`current page: ${val}`)
customServiceLists()
returnedLists()
}
const handleCurrentChange31 = (val: number) => {
pager31.page_no = val
console.log(`current page: ${val}`)
returnedrecordLists()
}
const handleCurrentChange32 = (val: number) => {
pager32.page_no = val
console.log(`current page: ${val}`)
refundapplyLists()
}
@ -1607,6 +1734,37 @@ const negotiationLists = () => {
})
}
//
const invoiceapplyLists = () => {
apiinvoiceapplyLists(pager29).then((res) => {
tableData29.value = res.lists
total28.value = res.count
})
}
//
const returnedLists = () => {
apireturnedLists(pager30).then((res) => {
tableData30.value = res.lists
total29.value = res.count
})
}
//
const returnedrecordLists = () => {
apireturnedrecordLists(pager31).then((res) => {
tableData31.value = res.lists
total30.value = res.count
})
}
//退
const refundapplyLists = () => {
apirefundapplyLists(pager32).then((res) => {
tableData32.value = res.lists
total31.value = res.count
})
}
//
@ -1653,6 +1811,8 @@ const setFormData = async (data: Record<any, any>) => {
pager28.project_id = data.id
pager29.project_id = data.id
pager30.project_id = data.id
pager31.project_id = data.id
pager32.project_id = data.id
Object.assign(formData, data)
if (data.annex && data.annex.length > 0) {
@ -1692,6 +1852,10 @@ const setFormData = async (data: Record<any, any>) => {
procurementContractLists()
subcontractingContractLists()
negotiationLists()
invoiceapplyLists()
returnedLists()
returnedrecordLists()
refundapplyLists()
}
const getDetail = async (row: Record<string, any>) => {

View File

@ -12,64 +12,64 @@
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline label-width="auto">
<el-form-item label="客户名称" prop="custom_name">
<el-input class="w-[280px]" v-model="queryParams.custom_name" clearable placeholder="请输入客户昵称" />
<el-input class="w-[260px]" v-model="queryParams.custom_name" clearable placeholder="请输入客户昵称" />
</el-form-item>
<el-form-item label="负责人" prop="person">
<el-input class="w-[280px]" v-model="queryParams.person" clearable placeholder="请输入负责人" />
<el-input class="w-[260px]" v-model="queryParams.person" clearable placeholder="请输入负责人" />
</el-form-item>
<el-form-item label="项目编码" prop="project_code">
<el-input class="w-[280px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编码" />
<el-input class="w-[260px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="项目名称" prop="name">
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入项目名称" />
<el-input class="w-[260px]" v-model="queryParams.name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目内容" prop="project_content">
<el-select class="w-[280px]" v-model="queryParams.project_content" clearable placeholder="请选择战略意义">
<el-select class="w-[260px]" v-model="queryParams.project_content" clearable placeholder="请选择战略意义">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.project_content" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目状态" prop="status">
<el-input class="w-[280px]" v-model="queryParams.status" clearable placeholder="请输入项目状态" />
<el-input class="w-[260px]" v-model="queryParams.status" clearable placeholder="请输入项目状态" />
</el-form-item>
<el-form-item label="项目所在地址" prop="project_address">
<el-input class="w-[280px]" v-model="queryParams.project_address" clearable placeholder="请输入客户昵称" />
<el-input class="w-[260px]" v-model="queryParams.project_address" clearable placeholder="请输入客户昵称" />
</el-form-item>
<el-form-item label="战略意义" prop="strategic_significance">
<el-select class="w-[280px]" v-model="queryParams.strategic_significance" clearable placeholder="请选择战略意义">
<el-select class="w-[260px]" v-model="queryParams.strategic_significance" clearable placeholder="请选择战略意义">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.strategic_significance" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="所属行业" prop="industry">
<el-select class="w-[280px]" v-model="queryParams.industry" clearable placeholder="请选择所属行业">
<el-select class="w-[260px]" v-model="queryParams.industry" clearable placeholder="请选择所属行业">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.industry" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="单位性质" prop="unit_nature">
<el-select class="w-[280px]" v-model="queryParams.unit_nature" clearable placeholder="请选择单位性质">
<el-select class="w-[260px]" v-model="queryParams.unit_nature" clearable placeholder="请选择单位性质">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.unit_nature" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="招标方式" prop="bidding_method">
<el-select class="w-[280px]" v-model="queryParams.bidding_method" clearable placeholder="请选择招标方式">
<el-select class="w-[260px]" v-model="queryParams.bidding_method" clearable placeholder="请选择招标方式">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.bidding_method" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="信息来源" prop="information_sources">
<el-select class="w-[280px]" v-model="queryParams.information_sources" clearable placeholder="请选择信息来源">
<el-select class="w-[260px]" v-model="queryParams.information_sources" clearable placeholder="请选择信息来源">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.information_sources" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目类型" prop="project_type">
<el-select class="w-[280px]" v-model="queryParams.project_type" clearable placeholder="请选择项目类型">
<el-select class="w-[260px]" v-model="queryParams.project_type" clearable placeholder="请选择项目类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
</el-select>
@ -122,64 +122,64 @@
<el-form class="mb-[-16px]" :model="queryParams" inline label-width="auto">
<el-form-item label="客户名称" prop="custom_name">
<el-input class="w-[280px]" v-model="queryParams.custom_name" clearable placeholder="请输入客户昵称" />
<el-input class="w-[260px]" v-model="queryParams.custom_name" clearable placeholder="请输入客户昵称" />
</el-form-item>
<el-form-item label="负责人" prop="person">
<el-input class="w-[280px]" v-model="queryParams.person" clearable placeholder="请输入负责人" />
<el-input class="w-[260px]" v-model="queryParams.person" clearable placeholder="请输入负责人" />
</el-form-item>
<el-form-item label="项目编码" prop="project_code">
<el-input class="w-[280px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编码" />
<el-input class="w-[260px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="项目名称" prop="name">
<el-input class="w-[280px]" v-model="queryParams.name" clearable placeholder="请输入项目名称" />
<el-input class="w-[260px]" v-model="queryParams.name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目内容" prop="project_content">
<el-select class="w-[280px]" v-model="queryParams.project_content" clearable placeholder="请选择战略意义">
<el-select class="w-[260px]" v-model="queryParams.project_content" clearable placeholder="请选择战略意义">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.project_content" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目状态" prop="status">
<el-input class="w-[280px]" v-model="queryParams.status" clearable placeholder="请输入项目状态" />
<el-input class="w-[260px]" v-model="queryParams.status" clearable placeholder="请输入项目状态" />
</el-form-item>
<el-form-item label="项目所在地址" prop="project_address">
<el-input class="w-[280px]" v-model="queryParams.project_address" clearable placeholder="请输入客户昵称" />
<el-input class="w-[260px]" v-model="queryParams.project_address" clearable placeholder="请输入客户昵称" />
</el-form-item>
<el-form-item label="战略意义" prop="strategic_significance">
<el-select class="w-[280px]" v-model="queryParams.strategic_significance" clearable placeholder="请选择战略意义">
<el-select class="w-[260px]" v-model="queryParams.strategic_significance" clearable placeholder="请选择战略意义">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.strategic_significance" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="所属行业" prop="industry">
<el-select class="w-[280px]" v-model="queryParams.industry" clearable placeholder="请选择所属行业">
<el-select class="w-[260px]" v-model="queryParams.industry" clearable placeholder="请选择所属行业">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.industry" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="单位性质" prop="unit_nature">
<el-select class="w-[280px]" v-model="queryParams.unit_nature" clearable placeholder="请选择单位性质">
<el-select class="w-[260px]" v-model="queryParams.unit_nature" clearable placeholder="请选择单位性质">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.unit_nature" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="招标方式" prop="bidding_method">
<el-select class="w-[280px]" v-model="queryParams.bidding_method" clearable placeholder="请选择招标方式">
<el-select class="w-[260px]" v-model="queryParams.bidding_method" clearable placeholder="请选择招标方式">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.bidding_method" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="信息来源" prop="information_sources">
<el-select class="w-[280px]" v-model="queryParams.information_sources" clearable placeholder="请选择信息来源">
<el-select class="w-[260px]" v-model="queryParams.information_sources" clearable placeholder="请选择信息来源">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.information_sources" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目类型" prop="project_type">
<el-select class="w-[280px]" v-model="queryParams.project_type" clearable placeholder="请选择项目类型">
<el-select class="w-[260px]" v-model="queryParams.project_type" clearable placeholder="请选择项目类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
</el-select>
@ -367,7 +367,7 @@ getLists()
.first_list-item {
background-color: #f3f7f9;
width: 280px;
width: 260px;
height: 90px;
margin-right: 40px;
margin-bottom: 20px;

View File

@ -59,7 +59,7 @@
<projectTable @customEvent="customEvent"></projectTable>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<contractTable @customEvent="customEvent1" :productid="formData.project_id"></contractTable>
<contractTable @customEvent="customEvent1" :project_id="formData.project_id"></contractTable>
</el-dialog>
</div>
</template>

View File

@ -59,7 +59,7 @@
<projectTable @customEvent="customEvent"></projectTable>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<contractTable @customEvent="customEvent1" :productid="formData.project_id"></contractTable>
<contractTable @customEvent="customEvent1" :project_id="formData.project_id"></contractTable>
</el-dialog>
</div>
</template>

View File

@ -2,95 +2,66 @@
<template>
<div class="detail-popup">
<popup ref="popupRef" title="回款记录详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="160px">
<el-card class="mb-2">
<el-row>
<el-col :span="12">
<el-form-item label="合同编号">
{{ formData.contract.contract_name }}
</el-form-item>
</el-col>
<el-descriptions title="基本信息" :column="2" border>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_name }}</el-descriptions-item>
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="期次" label-align="left" align="left" label-class-name="my-label">
{{ formData.period }}
</el-descriptions-item>
<el-descriptions-item label="收款性质" label-align="left" align="left" label-class-name="my-label">
{{ formData.invoice_status_text }}
</el-descriptions-item>
<el-descriptions-item label="金额" label-align="left" align="left" label-class-name="my-label">
{{ formData.amount }}
</el-descriptions-item>
<el-col :span="12">
<el-form-item label="项目名称">
{{ formData.project ? formData.project.name : '暂无数据'
}}
</el-form-item>
</el-col>
<el-descriptions-item label="付款方式" label-align="left" align="left" label-class-name="my-label">
{{ formData.pay_type_text }}
</el-descriptions-item>
<!-- <el-descriptions-item label="累计回款" label-align="left" align="left" label-class-name="my-label">
{{ formData.contract_amount }}
</el-descriptions-item>-->
<el-descriptions-item label="款项说明" label-align="left" align="left" label-class-name="my-label">
{{ formData.return_desc }}
</el-descriptions-item>
<el-descriptions-item label="收款人" label-align="left" align="left" label-class-name="my-label">
{{ formData.receiver }}
</el-descriptions-item>
<el-col :span="12">
<el-form-item label="项目编码">
{{ formData.project.project_code
}}
</el-form-item>
</el-col>
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label">
{{ formData.remark }}
</el-descriptions-item>
<el-descriptions-item label="合同附件" label-align="left" align="left" label-class-name="my-label">
<div v-if="formData.annex.length > 0">
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
<el-col :span="12">
<el-form-item label="客户名称">
{{ formData.custom.name
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="期次">
<dict-value :options="dictData.pay_period" :value="formData.period" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划回款日期">
{{ formData.return_date
}}
</el-form-item>
</el-col>
</div>
</div>
<div v-else>
暂无附件
</div>
</el-descriptions-item>
</el-descriptions>
<el-col :span="12">
<el-form-item label="状态">
<dict-value :options="dictData.invoice_status" :value="formData.invoice_status" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="付款方式">
<dict-value :options="dictData.pay_type" :value="formData.pay_type" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收款性质">
<dict-value :options="dictData.collection_type" :value="formData.collection_type" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额">
{{ formData.amount
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注">
{{ formData.remark
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="回款责任人">
{{ formData.return_date
}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<!-- <span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span> -->
</div>
</el-form-item>
</el-col>
<el-descriptions title="收款账户" :column="3" style="margin: 20px 0;" border>
<el-descriptions-item label="账户编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_account_info.account_sn }}</el-descriptions-item>
<el-descriptions-item label="开户银行" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_account_info.deposit_bank }}</el-descriptions-item>
<el-descriptions-item label="账号" label-align="left" align="left" label-class-name="my-label">{{ formData.bank_account_info.account }}</el-descriptions-item>
</el-descriptions>
</el-row>
</el-card>
</el-form>
</popup>
</div>
</template>

View File

@ -5,41 +5,41 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" @click="showDialog = true" clearable placeholder="请选择客户" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="日期" prop="return_date">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_no" clearable readonly placeholder="请输入合同编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="contract_id" @click="showDialog1 = true">
<el-input v-model="project_name" clearable placeholder="请输入项目名称" />
<el-form-item label="合同名称" prop="contract_id">
<el-input v-model="contract_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="contract_id">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="contract_id">
<el-input v-model="project_name" disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编码" prop="contract_id">
<el-input v-model="project_code" clearable placeholder="请输入项目编码" />
<el-input v-model="project_code" disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_no">
<el-input v-model="contract_no" clearable placeholder="请输入合同编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name">
<el-input v-model="contract_name" clearable placeholder="请输入合同名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="日期" prop="return_date">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
@ -64,7 +64,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="金额大写" prop="amount_daxie">
<el-input v-model="amount_daxie" readonly clearable placeholder="请输入金额大写" />
<el-input v-model="amount_daxie" disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -83,9 +83,9 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-col :span="8">
<el-form-item label="累计回款" prop="return_total_amount">
<el-input v-model="formData.return_total_amount" type="textarea" clearable placeholder="请输入累计回款" />
<el-input v-model="return_total_amount" disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -128,63 +128,41 @@
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="账户编码" prop="invoicing_company_name" @click="showDialog2 = true">
<el-input v-model="formData.invoicing_company_name" clearable placeholder="请输入账户编码" />
<el-form-item label="账户编码" @click="showDialog2 = true">
<el-input v-model="account_sn" readonly clearable placeholder="请选择收款账户" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户银行" prop="deposit_bank">
<el-input v-model="formData.deposit_bank" clearable placeholder="请输入开户银行" />
<el-input v-model="deposit_bank" clearable disabled placeholder="请输入开户银行" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="账号" prop="bank_accnout">
<el-input v-model="formData.bank_accnout" clearable placeholder="请输入开票公司名称" />
<el-form-item label="账号" prop="account">
<el-input v-model="account" clearable disabled placeholder="请输入开票公司名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开户地址及电话" prop="address_phone">
<el-input v-model="formData.address_phone" clearable placeholder="请输入开户地址及电话" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否计息" prop="is_interest">
<el-radio-group v-model="formData.is_interest" placeholder="请选择是否计息">
<el-radio v-for="(item, index) in dictData.isaccrued" :key="index" :label="parseInt(item.value)">
{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开始计息日期" prop="interest_date">
<el-date-picker class="flex-1 !flex" v-model="formData.interest_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<!-- <el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
</el-dialog> -->
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<salescontractDialog @customEvent="customEvent1"></salescontractDialog>
<contractDialog @customEvent="customEvent1"></contractDialog>
</el-dialog>
<el-dialog v-model="showDialog2" title="选择银行账户" width="70%">
<bankaccountDialog @customEvent="customEvent2"></bankaccountDialog>
</el-dialog>
<el-dialog v-model="showDialog3" title="选择待回款计划" width="70%">
<pendingDialog @customEvent="customEvent3"></pendingDialog>
<pendingDialog @customEvent="customEvent3" :contract_id="formData.contract_id"></pendingDialog>
</el-dialog>
</el-form>
</popup>
@ -196,7 +174,7 @@
import customDialog from '@/components/custom-dialog/index.vue'
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import salescontractDialog from '@/components/salescontract/index.vue'
import contractDialog from '@/components/contract/index.vue'
import bankaccountDialog from '@/components/bankaccount/index.vue'
import pendingDialog from '@/components/pending_paymentplan/index.vue'
import { apireturnedrecordAdd, apireturnedrecordEdit, apireturnedrecordDetail } from '@/api/recordsPayment'
@ -210,7 +188,7 @@ import useUserStore from "@/stores/modules/user";
const protype = reactive([])
const base_url = configs.baseUrl + configs.urlPrefix
const userStore = useUserStore();
const return_total_amount = ref('')
const formDataannex = reactive([])
const contract_name = ref('')
const project_name = ref('')
@ -218,6 +196,10 @@ const project_code = ref('')
const project_amount = ref('')
const contract_no = ref('')
const custom_name = ref('')
const account_sn = ref('')
const account = ref('')
const deposit_bank = ref('')
//
const handleAvatarSuccess_four = (
@ -234,31 +216,7 @@ const handleAvatarSuccess_four = (
);
};
//
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
if (value && !/^1\d{10}$/.test(value)) {
callback(new Error('请输入正确的手机号码'));
} else {
callback()
}
}
const userEmail = (rule: any, value: string, callback: (arg0: Error | undefined) => void) => {
// const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
// // if (!value) {
// // return callback(new Error(''))
// // }
if (value && !mailReg.test(value)) {
callback(new Error('请输入正确的邮箱格式'))
} else {
callback()
}
};
//
const delFileFn = (index: number) => {
formDataannex.splice(index, 1)
@ -287,10 +245,18 @@ const customEvent1 = (e: any) => {
formData.contract_id = e.id;
project_name.value = e.project_name;
project_code.value = e.project_code;
custom_name.value = e.custom_name;
contract_name.value = e.contract_name;
contract_no.value = e.contract_code
showDialog1.value = false;
};
const customEvent2 = (e: any) => {
formData.bank_account_id = e.id;
account_sn.value = e.account_sn;
account.value = e.account;
deposit_bank.value = e.deposit_bank;
showDialog2.value = false;
}
const customEvent3 = (e: any) => {
formData.finance_returned_money_id = e.id;
@ -317,7 +283,6 @@ const popupTitle = computed(() => {
//
const formData = reactive({
id: '',
customer_id: '',
contract_id: '',
finance_returned_money_id: 0,
return_date: "",
@ -326,12 +291,10 @@ const formData = reactive({
collection_type: '',
invoice_status: '',
pay_type: '',
return_total_amount: 0,
return_desc: "",
receiver: "",
payee_id: "",
is_interest: 0,
interest_date: "",
bank_account_id: "",
remark: "",
annex: ""
})
@ -364,12 +327,15 @@ const setFormData = async (data: Record<any, any>) => {
formData[key] = data[key]
}
}
custom_name.value = data.custom.name
project_name.value = data.project.name
project_code.value = data.project.project_code
project_amount.value = data.contract.amount
contract_name.value = data.contract.contract_name;
contract_no.value = data.contract.contract_code
custom_name.value = data.custom_name
project_name.value = data.project_name
project_code.value = data.project_code
project_amount.value = data.contract_amount
contract_name.value = data.contract_name;
contract_no.value = data.contract_code
account_sn.value = data.bank_account_info.account_sn;
account.value = data.bank_account_info.account;
deposit_bank.value = data.bank_account_info.deposit_bank;
if (data.amount) {
amount_daxie.value = toChinesNum(data.amount)
}

View File

@ -43,24 +43,11 @@
</el-table-column>
<el-table-column label="金额" prop="amount" show-overflow-tooltip />
<el-table-column label="开票状态" prop="invoice_status">
<template #default="{ row }">
<dict-value :options="dictData.invoice_status" :value="row.invoice_status" />
</template>
</el-table-column>
<el-table-column label="付款方式" prop="pay_type">
<template #default="{ row }">
<dict-value :options="dictData.pay_type" :value="row.pay_type" />
</template>
</el-table-column>
<el-table-column label="收款性质" prop="collection_type">
<template #default="{ row }">
<dict-value :options="dictData.collection_type" :value="row.collection_type" />
</template>
</el-table-column>
<el-table-column label="开票状态" prop="invoice_status" show-overflow-tooltip />
<el-table-column label="付款方式" prop="pay_type" show-overflow-tooltip />
<el-table-column label="收款性质" prop="collection_type" show-overflow-tooltip />
<el-table-column label="收款人" prop="receiver" show-overflow-tooltip />
<el-table-column label="开户银行" prop="deposit_bank" show-overflow-tooltip />
<el-table-column label="开户银行" prop="bank_account_info.deposit_bank" show-overflow-tooltip />
<el-table-column label="操作" width="150" fixed="right">
<template #default="{ row }">
<el-button v-perms="['recordsPayment.recordsPayment/edit']" type="primary" link @click="handleEdit(row)">

View File

@ -3,85 +3,58 @@
<div class="detail-popup">
<popup ref="popupRef" title="项目合同详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="160px">
<el-card class="mb-2">
<el-row>
<el-col :span="12">
<el-form-item label="合同编号">
{{ formData.contract.contract_name }}
</el-form-item>
</el-col>
<el-descriptions title="基本信息" :column="2" border>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_name }}</el-descriptions-item>
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="退款原因" label-align="left" align="left" label-class-name="my-label">
{{ formData.reason }}
</el-descriptions-item>
<el-descriptions-item label="退款金额" label-align="left" align="left" label-class-name="my-label">
{{ formData.amount }}
</el-descriptions-item>
<el-descriptions-item label="退款人" label-align="left" align="left" label-class-name="my-label">
{{ formData.refund_user }}
</el-descriptions-item>
<el-descriptions-item label="退款日期" label-align="left" align="left" label-class-name="my-label">
{{ formData.refund_date }}
</el-descriptions-item>
<el-col :span="12">
<el-form-item label="项目名称">
{{ formData.project ? formData.project.name : '暂无数据'
}}
</el-form-item>
</el-col>
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label">
{{ formData.remark }}
</el-descriptions-item>
<el-descriptions-item label="合同附件" label-align="left" align="left" label-class-name="my-label">
<div v-if="formData.annex.length > 0">
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
<el-col :span="12">
<el-form-item label="项目编码">
{{ formData.project.project_code
}}
</el-form-item>
</el-col>
</div>
</div>
<div v-else>
暂无附件
</div>
</el-descriptions-item>
</el-descriptions>
<el-col :span="12">
<el-form-item label="客户名称">
{{ formData.custom.name
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退款日期">
{{ formData.reason
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退款金额">
{{ formData.amount }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额大写">
{{ formData.amount_daxie }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退款方式">
<dict-value :options="dictData.refund_type" :value="formData.refund_type" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退款人">
{{ formData.refunder }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收款账号">
{{ formData.collection_acccount }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收款银行">
{{ formData.collection_bank }}
</el-form-item>
</el-col>
<el-descriptions title="付款账户信息" :column="3" style="margin: 20px 0;" border>
<el-descriptions-item label="账户编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_account_info.account_sn }}</el-descriptions-item>
<el-descriptions-item label="开户银行" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_account_info.deposit_bank }}</el-descriptions-item>
<el-descriptions-item label="账号" label-align="left" align="left" label-class-name="my-label">{{ formData.bank_account_info.account }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="收款账户信息" :column="3" style="margin: 20px 0;" border>
<el-descriptions-item label="开户银行" label-align="left" align="left" label-class-name="my-label"> {{ formData.collection_bank }}</el-descriptions-item>
<el-descriptions-item label="账号" label-align="left" align="left" label-class-name="my-label">{{ formData.collection_account }}</el-descriptions-item>
</el-descriptions>
<el-col :span="12">
<el-form-item label="备注">
{{ formData.remark
}}
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-form>
</popup>
</div>

View File

@ -10,21 +10,10 @@
</el-steps>
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" @click="showDialog = true" clearable placeholder="请选择客户" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退款日期" prop="return_date">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目名称" prop="contract_id" @click="showDialog1 = true">
<el-form-item label="项目名称" prop="contract_id" @click="showDialog1 = true" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-input v-model="project_name" clearable placeholder="请选择项目" />
</el-form-item>
</el-col>
@ -44,6 +33,18 @@
<el-input v-model="contract_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退款日期" prop="refund_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退款原因" prop="reason">
<el-input v-model="formData.reason" type='textarea' clearable placeholder="请输入退款原因" />
@ -56,7 +57,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="金额大写" prop="amount_daxie">
<el-input v-model="formData.amount_daxie" clearable disabled placeholder="系统自动填写" />
<el-input v-model="amount_daxie" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
@ -68,8 +69,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="退款人" prop="refunder">
<el-input v-model="formData.refunder" readonly clearable placeholder="请输入退款人" />
<el-form-item label="退款人" prop="refund_user">
<el-input v-model="formData.refund_user" readonly clearable placeholder="请输入退款人" />
</el-form-item>
</el-col>
@ -101,10 +102,14 @@
<div style="margin: 20px 0;">客户收款信息</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="收款账号" prop="collection_acccount" @click="showDialog2 = true">
<el-input v-model="formData.collection_acccount" clearable placeholder="请输入收款账号" />
<el-form-item label="付款银行账号" prop="bank_account_no" @click="showDialog = true">
<el-input v-model="bank_account_no" readonly clearable placeholder="请输入付款银行账号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收款账号" prop="collection_account">
<el-input v-model="formData.collection_account" clearable placeholder="请输入收款账号" />
</el-form-item>
</el-col>
@ -119,11 +124,11 @@
</el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
<el-dialog v-model="showDialog" title="选择收款银行" width="70%">
<bankaccountDialog @customEvent="customEvent"></bankaccountDialog>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<salescontractDialog @customEvent="customEvent1"></salescontractDialog>
<contractDialog @customEvent="customEvent1"></contractDialog>
</el-dialog>
@ -135,10 +140,10 @@
</template>
<script lang="ts" setup name="projectEdit">
import customDialog from '@/components/custom-dialog/index.vue'
import bankaccountDialog from '@/components/bankaccount/index.vue'
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import salescontractDialog from '@/components/salescontract/index.vue'
import contractDialog from '@/components/contract/index.vue'
import { apirefundapplyAdd, apirefundapplyEdit, apirefundapplyDetail } from '@/api/refund'
import { toChinesNum } from "@/utils/util";
@ -159,6 +164,7 @@ const project_code = ref('')
const project_amount = ref('')
const contract_no = ref('')
const custom_name = ref('')
const bank_account_no = ref('')
const userInfo = userStore.userInfo
console.log(userInfo, '222222')
//
@ -176,31 +182,7 @@ const handleAvatarSuccess_four = (
);
};
//
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
if (value && !/^1\d{10}$/.test(value)) {
callback(new Error('请输入正确的手机号码'));
} else {
callback()
}
}
const userEmail = (rule: any, value: string, callback: (arg0: Error | undefined) => void) => {
// const mailReg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
// // if (!value) {
// // return callback(new Error(''))
// // }
if (value && !mailReg.test(value)) {
callback(new Error('请输入正确的邮箱格式'))
} else {
callback()
}
};
//
const delFileFn = (index: number) => {
formDataannex.splice(index, 1)
@ -220,12 +202,14 @@ const showDialog = ref(false)
const showDialog1 = ref(false)
const customEvent = (e: any) => {
formData.customer_id = e.id;
custom_name.value = e.name;
formData.bank_account_id = e.id;
bank_account_no.value = e.account;
showDialog.value = false;
};
const customEvent1 = (e: any) => {
formData.contract_id = e.id;
custom_name.value = e.custom_name;
project_name.value = e.project_name;
project_code.value = e.project_code;
contract_name.value = e.contract_name;
@ -239,7 +223,7 @@ const customEvent1 = (e: any) => {
const amountinput = (e) => {
// console.log(e)
if (e && e > 0) {
formData.amount_daxie = toChinesNum(e)
amount_daxie.value = toChinesNum(e)
}
}
//
@ -250,19 +234,20 @@ const popupTitle = computed(() => {
//
const formData = reactive({
id: '',
customer_id: "",
contract_id: "",
approve_id: 0,
refund_date: "",
reason: "",
amount: 0,
amount_daxie: "",
refund_type: "",
refunder: '',
return_total_amount: "",
return_desc: "",
refund_user: '',
annex: "",
bank_account_id: "",
collection_bank: "",
collection_acccount: ""
collection_account: ""
})
@ -274,9 +259,9 @@ const formRules = reactive<any>({
//
const setFormData = async (data: Record<any, any>) => {
if (data.return_desc && data.return_desc.length > 0) {
if (data.annex && data.annex.length > 0) {
const arry1 = data.return_desc.map((item: any, index: any) => {
const arry1 = data.annex.map((item: any, index: any) => {
return {
name: `文件${index + 1}`,
uri: item
@ -294,14 +279,14 @@ const setFormData = async (data: Record<any, any>) => {
formData[key] = data[key]
}
}
custom_name.value = data.custom.name
project_name.value = data.project.name
project_code.value = data.project.project_code
project_amount.value = data.contract.amount
contract_name.value = data.contract.contract_name;
contract_no.value = data.contract.contract_code
custom_name.value = data.custom_name
project_name.value = data.project_name
project_code.value = data.project_code
project_amount.value = data.contract_amount
contract_name.value = data.contract_name;
contract_no.value = data.contract_code
bank_account_no.value = data.bank_account_info.account;
}
const getDetail = async (row: Record<string, any>) => {
@ -315,7 +300,7 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
if (formDataannex.length > 0) {
formData.return_desc = formDataannex.map((item: any) => item.uri).toString()
formData.annex = formDataannex.map((item: any) => item.uri).toString()
}
console.log(formRef.value?.validate(), '22222222')
await formRef.value?.validate()
@ -345,7 +330,7 @@ const handleClose = () => {
emit('close')
}
formData.refunder = userInfo.name
formData.refund_user = userInfo.name
defineExpose({
open,

View File

@ -2,11 +2,13 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="合同编号" prop="project_name">
<el-input class="w-[280px]" v-model="queryParams.contract_no" clearable placeholder="请输入合同编号" />
<el-form-item label="退款方式" prop="refund_type">
<el-select class="w-[280px]" v-model="queryParams.refund_type" clearable placeholder="请选择退款方式">
<el-option v-for="(item, index) in dictData.refund_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="合同名称" prop="project_role_name">
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
<el-form-item label="退款人" prop="refund_user">
<el-input class="w-[280px]" v-model="queryParams.refund_user" clearable placeholder="请输入退款人" />
</el-form-item>
@ -31,19 +33,15 @@
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="退款单号" prop="project_name" show-overflow-tooltip />
<el-table-column label="退款单号" prop="refund_code" show-overflow-tooltip />
<el-table-column label="客户名称" prop="project_code" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_role_name" show-overflow-tooltip />
<el-table-column label="合同编号" prop="admin_name" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
<el-table-column label="退款原因" prop="reason" show-overflow-tooltip />
<el-table-column label="退款日期" prop="refund_date" show-overflow-tooltip />
<el-table-column label="退款金额" prop="amount" show-overflow-tooltip />
<el-table-column label="退款方式" prop="refund_type" show-overflow-tooltip>
<template #default="{ row }">
<dict-value :options="dictData.refund_type" :value="row.refund_type" />
</template>
</el-table-column>
<el-table-column label="退款人" prop="refunder" show-overflow-tooltip />
<el-table-column label="退款方式" prop="refund_type" show-overflow-tooltip />
<el-table-column label="退款人" prop="refund_user" show-overflow-tooltip />
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
<el-table-column label="操作" width="150" fixed="right">
<template #default="{ row }">
@ -88,8 +86,8 @@ const showDtail = ref(false)
//
const queryParams = reactive({
contract_no: '',
contract_name: '',
refund_type: '',
refund_user: '',
})

View File

@ -1,82 +1,58 @@
<template>
<div class="detail-popup">
<popup ref="popupRef" title="项目合同详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="160px">
<el-card class="mb-2">
<el-row>
<el-col :span="12">
<el-form-item label="合同编号">
{{ formData.contract_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同类型">
<dict-value :options="dictData.contract_type" :value="formData.contract.contract_type" />
</el-form-item>
</el-col>
<popup ref="popupRef" title="回款计划详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="auto">
<el-descriptions title="基本信息" :column="2" border>
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_name }}</el-descriptions-item>
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_code }}</el-descriptions-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
<el-descriptions-item label="期次" label-align="left" align="left" label-class-name="my-label">
{{ formData.period }}
</el-descriptions-item>
<el-descriptions-item label="计划回款日期" label-align="left" align="left" label-class-name="my-label">
{{ formData.return_date }}
</el-descriptions-item>
<el-descriptions-item label="金额" label-align="left" align="left" label-class-name="my-label">
{{ formData.amount }}
</el-descriptions-item>
<el-col :span="12">
<el-form-item label="项目名称">
{{ formData.project ? formData.project.name : '暂无数据'
}}
</el-form-item>
</el-col>
<!-- <el-descriptions-item label="已回款" label-align="left" align="left" label-class-name="my-label">
{{ formData.pay_type_text }}
</el-descriptions-item>
<el-col :span="12">
<el-form-item label="项目编码">
{{ formData.project.project_code
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="期次">
<dict-value :options="dictData.pay_period" :value="formData.period" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划回款日期">
{{ formData.return_date
}}
</el-form-item>
</el-col>
<el-descriptions-item label="未回款" label-align="left" align="left" label-class-name="my-label">
{{ formData.return_desc }}
</el-descriptions-item> -->
<el-descriptions-item label="状态" label-align="left" align="left" label-class-name="my-label">
{{ formData.return_status_text }}
</el-descriptions-item>
<el-descriptions-item label="回款责任人" label-align="left" align="left" label-class-name="my-label">
{{ formData.return_duty }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label">
{{ formData.remark }}
</el-descriptions-item>
<el-descriptions-item label="合同附件" label-align="left" align="left" label-class-name="my-label">
<div v-if="formData.annex.length > 0">
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
<el-col :span="12">
<el-form-item label="状态">
<dict-value :options="dictData.return_status" :value="formData.return_status" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额">
{{ formData.amount
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注">
{{ formData.remark
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="回款责任人">
{{ formData.return_date
}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="附件">
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
<!-- <span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span> -->
</div>
</el-form-item>
</el-col>
</el-row>
</el-card>
</div>
</div>
<div v-else>
暂无附件
</div>
</el-descriptions-item>
</el-descriptions>
</el-form>
</popup>
</div>

View File

@ -5,24 +5,28 @@
<el-form ref="formRef" :model="formData" label-width="auto" :rules="formRules">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="客户名称" prop="customer_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<!-- <el-col :span="8">
<el-form-item label="客户名称" prop="custom_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" @click="showDialog = true" clearable placeholder="请选择客户" />
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item label="合同编号" prop="contract_no" @click="showDialog1 = true">
<el-form-item label="合同编号" prop="contract_id" @click="showDialog1 = true">
<el-input v-model="contract_no" clearable placeholder="请选择合同" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="合同名称" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="contract_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="contract_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="custom_name" clearable disabled placeholder="系统自动填写" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="期次" prop="period" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-select class="flex-1" v-model="formData.period" clearable placeholder="请选择期次">
@ -32,14 +36,14 @@
</el-col>
<el-col :span="8">
<el-form-item label="金额" prop="amount" rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-form-item label="金额" prop="amount" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.amount" type="number" clearable placeholder="请输入金额" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划回款日期" prop="return_date" rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-form-item label="计划回款日期" prop="return_date" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择计划回款日期">
<el-date-picker class="flex-1 !flex" v-model="formData.return_date" clearable type="date" value-format="YYYY-MM-DD" placeholder="选择计划回款日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -87,12 +91,15 @@
</el-row>
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<!-- <el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog>
</el-dialog> -->
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<salescontractDialog @customEvent="customEvent1"></salescontractDialog>
<contractDialog @customEvent="customEvent1"></contractDialog>
<!-- <salescontractDialog @customEvent="customEvent1" :contract_type="2"></salescontractDialog> -->
</el-dialog>
<personnelselector ref="personnel" @confirm="submituser" type="1"></personnelselector>
</el-form>
</popup>
@ -105,6 +112,8 @@ import customDialog from '@/components/custom-dialog/index.vue'
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import salescontractDialog from '@/components/salescontract/index.vue'
//使
import contractDialog from '@/components/contract/index.vue'
import personnelselector from '@/components/personnelselector/index.vue'
import { apireturnedAdd, apireturnedEdit, apireturnedDetail } from '@/api/remittance'
import { getAllProjectTypes } from '@/api/projecttype'
@ -159,12 +168,13 @@ const showDialog = ref(false)
const showDialog1 = ref(false)
const customEvent = (e: any) => {
formData.customer_id = e.id;
formData.custom_id = e.id;
custom_name.value = e.name;
showDialog.value = false;
};
const customEvent1 = (e: any) => {
formData.contract_id = e.id;
custom_name.value = e.custom_name;
contract_name.value = e.contract_name;
contract_no.value = e.contract_code
showDialog1.value = false;
@ -179,12 +189,11 @@ const popupTitle = computed(() => {
//
const formData = reactive({
id: '',
customer_id: 0,
contract_id: 0,
contract_id: "",
return_date: "",
period: "",
amount: 0,
return_status: 0,
amount: "",
return_status: "",
return_duty_id: '',
remark: "",
annex: ""
@ -218,9 +227,10 @@ const setFormData = async (data: Record<any, any>) => {
formData[key] = data[key]
}
}
custom_name.value = data.custom.name
contract_name.value = data.contract.contract_name;
contract_no.value = data.contract.contract_code
custom_name.value = data.custom_name
contract_name.value = data.contract_name;
contract_no.value = data.contract_code
return_name.value = data.return_duty
}
const getDetail = async (row: Record<string, any>) => {

View File

@ -2,14 +2,17 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="合同编号" prop="project_name">
<el-input class="w-[280px]" v-model="queryParams.contract_no" clearable placeholder="请输入合同编号" />
<el-form-item label="期次" prop="project_name">
<el-select class="flex-1" v-model="queryParams.period" clearable placeholder="请选择期次">
<el-option v-for="(item, index) in dictData.pay_period" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="合同名称" prop="project_role_name">
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
<el-form-item label="回款状态" prop="return_status">
<el-select class="flex-1" v-model="queryParams.return_status" clearable placeholder="请选择回款状态">
<el-option v-for="(item, index) in dictData.return_status" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
@ -31,31 +34,23 @@
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="合同编号" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同类型" prop="contract_type">
<template #default="{ row }">
<dict-value :options="dictData.contract_type" :value="row.contract_type" />
</template>
</el-table-column>
<el-table-column label="客户名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip />
<el-table-column label="客户名称" prop="custom_name" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
<el-table-column label="期次" prop="industry">
<el-table-column label="期次" prop="period">
<template #default="{ row }">
<dict-value :options="dictData.pay_period" :value="row.period" />
</template>
</el-table-column>
<el-table-column label="计划回款日期" prop="return_date" show-overflow-tooltip />
<el-table-column label="状态" prop="return_status">
<template #default="{ row }">
<dict-value :options="dictData.return_status" :value="row.return_status" />
</template>
</el-table-column>
<el-table-column label="状态" prop="return_status" show-overflow-tooltip />
<el-table-column label="金额" prop="amount" show-overflow-tooltip />
<el-table-column label="已回款" prop="remark" show-overflow-tooltip />
<el-table-column label="未回款" prop="remark" show-overflow-tooltip />
<el-table-column label="回款责任人" prop="remark" show-overflow-tooltip />
<el-table-column label="已回款" prop="has_return_amount" show-overflow-tooltip />
<el-table-column label="未回款" prop="not_return_amount" show-overflow-tooltip />
<el-table-column label="回款责任人" prop="return_duty" show-overflow-tooltip />
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
<el-table-column label="操作" width="150" fixed="right">
<template #default="{ row }">
@ -100,8 +95,8 @@ const showDtail = ref(false)
//
const queryParams = reactive({
contract_no: '',
contract_name: '',
period: '',
return_status: '',
})

View File

@ -2,27 +2,11 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline label-width="auto">
<el-form-item label="项目" prop="project_id">
<el-select v-model="queryParams.project_id" clearable placeholder="请选择合同类型">
<el-option v-for="(item, index) in projectList" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="供应商" prop="supplier_id">
<el-select v-model="queryParams.supplier_id" clearable placeholder="请选择供应商">
<el-option v-for="(item, index) in supplierList" :key="index" :label="item.supplier_name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item label="合同名称" prop="contract_name">
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item>
<el-form-item label="合同编号" prop="contract_no">
<el-input class="w-[280px]" v-model="queryParams.contract_no" clearable placeholder="请输入合同编号" />
</el-form-item>
<el-form-item label="合同类型" prop="contract_type">
<el-select v-model="queryParams.contract_type" clearable placeholder="请选择合同类型">
<el-option v-for="(item, index) in dictData.contract_type" :key="index" :label="item.name" :value="parseInt(item.value)" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
@ -43,9 +27,9 @@
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="处理流程" prop="project_name" show-overflow-tooltip />
<el-table-column label="流程步骤" prop="project_name" show-overflow-tooltip />
<el-table-column label="流程编号" prop="project_name" show-overflow-tooltip />
<el-table-column label="处理流程" prop="" show-overflow-tooltip />
<el-table-column label="流程步骤" prop="" show-overflow-tooltip />
<el-table-column label="流程编号" prop="" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_no" show-overflow-tooltip />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
@ -105,15 +89,12 @@ const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
const showDtail = ref(false)
const projectList = ref([])
const supplierList = ref([])
//
const queryParams = reactive({
contract_name: '',
contract_no: '',
project_id: '',
contract_type: '',
supplier_id: ''
})
//
@ -164,18 +145,6 @@ const handleDetail = async (data: any) => {
detailRef.value?.setFormData(res)
}
//
const projectlist = async () => {
let res = await apiProjectLists({ page_no: 1, page_size: 9999 })
projectList.value = res.lists
}
//
const supplierlist = async () => {
let res = await apisupplierLists({ page_no: 1, page_size: 9999 })
supplierList.value = res.lists
}
projectlist()
supplierlist()
getLists()
</script>

View File

@ -1,19 +1,6 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<!-- <el-form-item label="部门id" prop="department_id">
<el-input class="w-[280px]" v-model="queryParams.department_id" clearable placeholder="请输入部门id" />
</el-form-item> -->
<el-form-item label="合同名称" prop="contract_name">
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<!-- <el-button v-perms="['contract.subcontracting_contract/add']" type="primary" @click="handleAdd">
<template #icon>
@ -28,18 +15,18 @@
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="流程编号" prop="project_name" show-overflow-tooltip />
<el-table-column label="流程编号" prop="" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="项目编码" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_no" show-overflow-tooltip />
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip />
<el-table-column label="签订日期" prop="signing_date" show-overflow-tooltip />
<!-- <el-table-column label="签订日期" prop="signing_date" show-overflow-tooltip /> -->
<el-table-column label="供应商名称" prop="supplier_name" show-overflow-tooltip />
<el-table-column label="工作类型" prop="work_type" show-overflow-tooltip />
<el-table-column label="工作内容" prop="work_content" show-overflow-tooltip />
<el-table-column label="项目特征" prop="project_features" show-overflow-tooltip />
<el-table-column label="单位" prop="unit" show-overflow-tooltip />
<el-table-column label="税率" prop="tax_rate">
<el-table-column label="税率(%)" prop="tax_rate">
<template #default="{ row }">
<dict-value :options="dictData.tax_rate" :value="row.tax_rate" />
</template>
@ -90,8 +77,7 @@ const showDtail = ref(false)
//
const queryParams = reactive({
department_id: '',
contract_name: ''
})
//

View File

@ -2,29 +2,22 @@
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="合同编号" prop="procurement_contract_id">
<el-input class="w-[280px]" v-model="queryParams.procurement_contract_id" clearable placeholder="请输入合同编号" />
<el-form-item label="洽商单名称" prop="negotiation_name">
<el-input class="w-[280px]" v-model="queryParams.negotiation_name" clearable placeholder="请输入洽商单名称" />
</el-form-item>
<el-form-item label="洽商编号" prop="negotiation_no">
<el-input class="w-[280px]" v-model="queryParams.negotiation_no" clearable placeholder="请输入洽商编号" />
</el-form-item>
<el-form-item label="洽商类别" prop="negotiation_type">
<el-select class="w-[280px]" v-model="queryParams.negotiation_type" clearable placeholder="请选择洽商类别">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.negotiation_type" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目" prop="project_id">
<el-select class="w-[280px]" v-model="queryParams.project_id" clearable placeholder="项目">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="采购合同" prop="supplier_id">
<el-select class="w-[280px]" v-model="queryParams.supplier_id" clearable placeholder="请选择采购合同">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="供应商" prop="project_type">
<el-select class="w-[280px]" v-model="queryParams.project_type" clearable placeholder="请选择供应商">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in protype" :key="index" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
@ -108,11 +101,9 @@ const showDtail = ref(false)
//
const queryParams = reactive({
supplier_id: '',
procurement_contract_id: '',
contract_no: '',
project_id: '',
negotiation_no: '',
negotiation_name: '',
negotiation_type: ''
})