|
|
@@ -113,7 +113,7 @@
|
|
|
<div v-if="row.payType === '2'">对公转账</div>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
- <vxe-column title="支付状态" field="remark" min-width="100" :formatter="colNoData">
|
|
|
+ <vxe-column title="支付状态" field="outTradeNo" min-width="100" :formatter="colNoData">
|
|
|
<template #default="{ row }">
|
|
|
{{ selectDictLabel(dm_pay_status, row?.payStatus)}}
|
|
|
<el-tooltip :content="`系统单号${row?.outTradeNo}`" placement="top" effect="light">
|
|
|
@@ -121,7 +121,12 @@
|
|
|
</el-tooltip>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
- <vxe-column title="开票信息" field="remark" min-width="100" :formatter="colNoData" ></vxe-column>
|
|
|
+ <vxe-column title="开票信息" field="remark" min-width="100" :formatter="colNoData">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <div v-if="row.payStatus == '1'&& !+row?.invoiceStatus" @click="checkInvoiceData(row.invoiceInfo)" class="pointer">查看</div>
|
|
|
+ <div v-if="row.payStatus == '1' && +row?.invoiceStatus" @click="checkInvoiceData(row.invoiceInfo)" class="pointer">已开票,点击查看</div>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
<vxe-column title="特殊说明" min-width="100" fixed="right">
|
|
|
<template #default="{ row }">
|
|
|
{{ +row?.tempJoin?'通过临时报名通道报名':'-' }}
|
|
|
@@ -142,16 +147,23 @@
|
|
|
<vxe-column v-if="form?.conditions?.totalCheck == '1' || form?.meetingCharge?.hasFee == '1'" title="操作" width="250" align="center" fixed="right">
|
|
|
<template #default="{ row }">
|
|
|
<el-button type="danger" size="small" v-if="row?.res !== '0' && row?.signInFlag !=='1' && form?.conditions?.totalCheck == '1'&& row?.payStatus == '1' && form?.meetingCharge?.hasFee !== '1'" @click="openDialog(row)" style="color: white">重审</el-button>
|
|
|
- <el-button size="small" color="#33aeeb" @click="openDialog(row)" style="color: white" v-if="row?.res == '0' && form?.conditions?.totalCheck == '1'&& row?.payStatus == '1'">审核</el-button>
|
|
|
+ <el-button size="small" color="#33aeeb" @click="openDialog(row)" style="color: white" v-if="row?.res == '0' && form?.conditions?.totalCheck == '1'&& row?.payStatus == '1' &&form?.trainingStatus !== '2'">审核</el-button>
|
|
|
<el-button v-if="row.payStatus !== '1'" size="small" color="#e99d42" style="color: white" @click="openModification(row)">修改费用金额</el-button>
|
|
|
<el-button v-if="row.payType === '2'&& row.payStatus !== '1'" size="small" color="#81b337" style="color: white" @click="openTransfer(row)">确认收到转账</el-button>
|
|
|
- <div v-if="row.payStatus == '1' &&row?.res !== '0'&& row?.trainingStatus == '2'">用户报名未成功,请至微信商户号进行退款</div>
|
|
|
+ <div v-if="row.payStatus == '1' && row?.res == '0'&& form?.trainingStatus == '2'">用户报名未成功,请至微信商户号进行退款</div>
|
|
|
<div v-if="row.payType === '10'">该报名已退款</div>
|
|
|
+ <el-upload v-if="form?.trainingStatus == '2' && row.payStatus == '1' && +row?.hasInvoice && !+row?.invoiceStatus && row.payType !== '10'" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false" accept=".pdf,.PDF">
|
|
|
+ <el-button size="small" color="#33aeeb" style="color: white" @click=" invoiceId = row.id">上传发票</el-button>
|
|
|
+ </el-upload>
|
|
|
+ <el-upload v-if="form?.trainingStatus == '2' && row.payStatus == '1' && +row?.hasInvoice && +row?.invoiceStatus && row.payType !== '10'" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false" accept=".pdf,.PDF">
|
|
|
+ <el-button type="primary">重新上传</el-button>
|
|
|
+ </el-upload>
|
|
|
</template>
|
|
|
</vxe-column>
|
|
|
</vxe-table>
|
|
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
</div>
|
|
|
+
|
|
|
<el-dialog v-model="dialogVisible" title="审核信息" width="500" center>
|
|
|
<el-form ref="formRef" :model="fromvalue" :rules="rules" label-width="80px">
|
|
|
<el-form-item label="审核结果" prop="res">
|
|
|
@@ -194,42 +206,43 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="invoicingInformation" title="开票信息" width="360" center>
|
|
|
+ <el-dialog v-model="invoicingInformation" title="开票信息" width="600" center>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>名称:</div>
|
|
|
- <div>123</div>
|
|
|
+ <div>{{ invoiceData?.headTitle || '-' }}</div>
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>税号:</div>
|
|
|
- <div>123131312321313123123</div>
|
|
|
+ <div>{{ invoiceData?.taxSn || '-'}}</div>
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>单位地址:</div>
|
|
|
- <div>萨达</div>
|
|
|
+ <div>{{ invoiceData?.address || '-'}}</div>
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>电话号码:</div>
|
|
|
- <div>17754441247</div>
|
|
|
+ <div>{{ invoiceData?.contactPhone || '-'}}</div>
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>开户银行:</div>
|
|
|
- <div>工行</div>
|
|
|
+ <div>{{ invoiceData?.bankName || '-'}}</div>
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-sb pt-10 pb-10 f-s-16">
|
|
|
<div>银行账户:</div>
|
|
|
- <div>123131312321313123123</div>
|
|
|
+ <div>{{ invoiceData?.bankAccount || '-'}}</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<registrationInfo v-if="showTemporary" v-model:show="showTemporary" :info="temporaryRegistration"></registrationInfo>
|
|
|
</template>
|
|
|
<script setup name="MeetingDetailInfo" lang="ts">
|
|
|
-import { exportTrainingMembers, signupApproval, signupCount, trainingMembers,editPrice,confirmSigPublicPay} from '@/api/training';
|
|
|
+import { exportTrainingMembers, signupApproval, signupCount, trainingMembers,editPrice,confirmSigPublicPay,uploadInvoice} from '@/api/training';
|
|
|
import { colNoData } from '@/utils/noData';
|
|
|
import { searchTabs } from '@/views/models';
|
|
|
import { debounce } from 'lodash';
|
|
|
import { onMounted, reactive, ref } from 'vue';
|
|
|
import registrationInfo from './registration-info.vue';
|
|
|
import { AreaCascader } from '@/views/components';
|
|
|
+import { globalHeaders } from '@/utils/request';
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const { cpy_res_status, lm_signup_status_app_show, dm_check_join_type,temp_join_type,dm_pay_status } = toRefs<any>(proxy?.useDict('cpy_res_status', 'lm_signup_status_app_show', 'dm_check_join_type','temp_join_type','dm_pay_status'));
|
|
|
// 获取详情
|
|
|
@@ -239,7 +252,8 @@ const props = defineProps({
|
|
|
default: () => ({})
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+const baseUrl = import.meta.env.VITE_APP_BASE_API;
|
|
|
+const uploadFileUrl = ref(baseUrl + '/resource/oss/upload'); // 上传文件服务器地址
|
|
|
const rules = reactive({
|
|
|
res: [
|
|
|
{ required: true, message: '请选择审核结果', trigger: 'blur' }
|
|
|
@@ -259,10 +273,17 @@ const showTransfer = ref(false)
|
|
|
const participationFee = ref()
|
|
|
const editPricedata = ref()
|
|
|
const invoicingInformation = ref(false)
|
|
|
+const invoiceData = ref()
|
|
|
+const invoiceId = ref()
|
|
|
+const headers = ref(globalHeaders());
|
|
|
const fromvalue = ref({
|
|
|
targetId: '',
|
|
|
msg: ''
|
|
|
})
|
|
|
+const checkInvoiceData = (row)=>{
|
|
|
+ invoicingInformation.value = true
|
|
|
+ invoiceData.value = row
|
|
|
+}
|
|
|
const checkRegostrationInfo = (row) => {
|
|
|
temporaryRegistration.value = row;
|
|
|
showTemporary.value = true;
|
|
|
@@ -345,7 +366,17 @@ const changeEditPrice = async ()=>{
|
|
|
modiFication.value = false
|
|
|
getList();
|
|
|
}
|
|
|
-
|
|
|
+const handleSuccess = async(res,uploadFile)=>{
|
|
|
+ await uploadInvoice({
|
|
|
+ id:invoiceId.value,
|
|
|
+ invoiceUrl:{
|
|
|
+ fileName:res.data.fileName,
|
|
|
+ url:res.data.fileName,
|
|
|
+ fileSize:uploadFile.raw.size
|
|
|
+ }
|
|
|
+ })
|
|
|
+ getList();
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
getList();
|
|
|
getExpertPersonCount();
|