Browse Source

新增会议缴费

lisy 4 months ago
parent
commit
7bf4288292
2 changed files with 28 additions and 5 deletions
  1. 8 0
      src/api/training/index.ts
  2. 20 5
      src/views/training/models/meeting-detail-attend.vue

+ 8 - 0
src/api/training/index.ts

@@ -122,3 +122,11 @@ export const confirmSigPublicPay = (id: any): AxiosPromise => {
         method: 'get',
     });
 };
+// 上传发票
+export const uploadInvoice = (data: any): AxiosPromise => {
+    return request({
+        url: `/dgtmedicine/trainingSignup/uploadInvoice`,
+        method: 'post',
+        data
+    });
+};

+ 20 - 5
src/views/training/models/meeting-detail-attend.vue

@@ -123,7 +123,8 @@
             </vxe-column>
             <vxe-column title="开票信息" field="remark" min-width="100" :formatter="colNoData">
                 <template #default="{ row }">
-                    <div v-if="row.payStatus == '1'" @click="checkInvoiceData(row.invoiceInfo)">查看</div>
+                    <div v-if="row.payStatus == '1'&& !+form?.trainingSignupVo?.invoiceStatus" @click="checkInvoiceData(row.invoiceInfo)" class="pointer">查看</div>
+                    <div v-if="row.payStatus == '1' && +form?.trainingSignupVo?.invoiceStatus" @click="checkInvoiceData(row.invoiceInfo)" class="pointer">已开票,点击查看</div>
                 </template>
             </vxe-column>
             <vxe-column title="特殊说明" min-width="100" fixed="right">
@@ -146,16 +147,24 @@
             <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-button v-if="row.payType === '2'&& row.payStatus !== '1'" size="small" color="#33aeeb" style="color: white" @click="openTransfer(row)">上传发票</el-button>
+                    <el-upload v-if="row?.trainingStatus == '2' && row.payStatus == '1' && +row?.hasInvoice && !+form?.trainingSignupVo?.invoiceStatus" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false">
+                        <el-button type="primary">上传发票</el-button>
+                    </el-upload>
+                    <el-upload v-if="row?.trainingStatus == '2' && row.payStatus == '1' && +row?.hasInvoice && +form?.trainingSignupVo?.invoiceStatus" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false">
+                        <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">
@@ -227,13 +236,14 @@
     <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'));
 // 获取详情
@@ -243,7 +253,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' }
@@ -264,6 +275,7 @@ const participationFee = ref()
 const editPricedata = ref()
 const invoicingInformation = ref(false)
 const invoiceData = ref()
+const headers = ref(globalHeaders());
 const fromvalue = ref({
     targetId: '',
     msg: ''
@@ -354,7 +366,10 @@ const changeEditPrice = async ()=>{
     modiFication.value = false
     getList();
 }
+const handleSuccess = (res)=>{
+    console.log(res,'res');
 
+}
 onMounted(() => {
     getList();
     getExpertPersonCount();