lisy 4 месяцев назад
Родитель
Сommit
02be811bb8

+ 18 - 18
src/views/training/meeting-add/index.vue

@@ -403,24 +403,23 @@ const form = ref<any>({
         levelTypeCheck: levelTypeCheck,
         typeCheck: [
             {
-                vipLevel: "0",
+                vipLevel: "5",
                 check: "0"
             },
             {
-                vipLevel: "1",
+                vipLevel: "4",
                 check: "0"
             },
-
             {
                 vipLevel: "3",
                 check: "0"
             },
             {
-                vipLevel: "4",
+                vipLevel: "1",
                 check: "0"
             },
             {
-                vipLevel: "5",
+                vipLevel: "0",
                 check: "0"
             },
             {
@@ -480,36 +479,37 @@ const form = ref<any>({
         hasFee: null,//是否收取参会费用
         pricing: null,//收费标准
         hasFlatFee: null,//收费标准类型 0所有人统一收取费用 1按报名人员类型收取
-        typeCharge: [{
-            vipLevel: '0',
-            check: "0",
-            total: '',//免费的人数
-            certType: '1',//全部免费还是部分免费 0全部 1部分
-            cost: null //每人收费多少
-        }, {
-            vipLevel: '1',
+        typeCharge: [
+        {
+            vipLevel: '5',
             check: "0",
             total: '',
             certType: '1',
             cost: null
-        }, {
-            vipLevel: '3',
+        },{
+            vipLevel: '4',
             check: "0",
             total: '',
             certType: '1',
             cost: null
         }, {
-            vipLevel: '4',
+            vipLevel: '3',
             check: "0",
             total: '',
             certType: '1',
             cost: null
         }, {
-            vipLevel: '5',
+            vipLevel: '1',
             check: "0",
             total: '',
             certType: '1',
             cost: null
+        },{
+            vipLevel: '0',
+            check: "0",
+            total: '',//免费的人数
+            certType: '1',//全部免费还是部分免费 0全部 1部分
+            cost: null //每人收费多少
         },
         {
             vipLevel: "P",
@@ -626,7 +626,7 @@ const save = debounce(async () => {
     }
 }, 500);
 const goEditor = () => {
-    window.open('https://lm.yujin.shuziyunyao.com/poster#/editor', '_blank');
+    window.open('https://lm.yujin.shuziyunyao.com/poster#/editor?type=2', '_blank');
 }
 
 const addCertInfo = () => {

+ 22 - 13
src/views/training/models/meeting-detail-attend.vue

@@ -71,7 +71,7 @@
         <div class="d-flex mb-16 ">
             <div class="info-title">
                 <span>参会人员信息</span>
-                <span class="f-s-14 c-666">(提交报名:{{ form?.submitCount || 0 }}人 | 已缴费:{{ form?.payCount || 0 }} 人 | 审核通过:{{ form?.joinCount || 0 }}人 | 签到:{{ form?.signCount || 0 }}人 | 领取证书:{{ form?.certCount || 0 }}人)</span>
+                <span class="f-s-14 c-666">(提交报名:{{ form?.submitCount || 0 }}人 | 已缴费:{{ form?.payCount || 0 }} 人 |待审核:{{ form?.resWaitingCount  }} 审核通过:{{ form?.joinCount || 0 }}人 | 签到:{{ form?.signCount || 0 }}人 | 领取证书:{{ form?.certCount || 0 }}人)</span>
             </div>
         </div>
         <div class="d-flex j-sb">
@@ -142,19 +142,24 @@
             <!-- <vxe-column title="职务" field="position" min-width="100" :formatter="colNoData" /> -->
             <vxe-column title="联系方式" field="contact" min-width="100" :formatter="colNoData" />
             <vxe-column title="备注" field="remark" min-width="100" :formatter="colNoData" />
-            <vxe-column title="参会费用" field="joinFee" min-width="100" :formatter="colNoData" v-if="form?.meetingCharge?.hasFee =='1'" />
+            <vxe-column title="参会费用" field="joinFee" min-width="100" :formatter="colNoData" v-if="form?.meetingCharge?.hasFee =='1'">
+                <template #default="{ row }">
+                    <div class="f-w-5">{{ row?.joinFee }}</div>
+                </template>
+            </vxe-column>
             <vxe-column title="支付方式" field="payType" min-width="100" :formatter="colNoData" v-if="form?.meetingCharge?.hasFee =='1'">
                 <template #default="{ row }">
-                    <div v-if="row.payType === '1'">微信支付</div>
-                    <div v-if="row.payType === '2'">对公转账</div>
+                    <div v-if="row.payType === '1'" class="f-w-5">微信支付</div>
+                    <div v-if="row.payType === '2'" class="f-w-5">对公转账</div>
                     <div v-if="row?.payType !=='1'&& row?.payType !=='2'">-</div>
                 </template>
             </vxe-column>
             <vxe-column title="开票信息" field="remark" min-width="100" :formatter="colNoData" v-if="form?.meetingCharge?.hasFee =='1'">
                 <template #default="{ row }">
-                    <div v-if="row.payStatus == '1'&& !+row?.invoiceStatus && +row?.hasInvoice" @click="checkInvoiceData(row.invoiceInfo)" class="pointer">查看</div>
-                    <div v-if="row.payStatus == '1' && +row?.invoiceStatus && +row?.hasInvoice" @click="checkInvoiceData(row.invoiceInfo)" class="pointer" style="color: red;">已开票,点击查看</div>
-                    <div v-if="!+row?.hasInvoice">{{ '不需要' }}</div>
+                    <div v-if="row.payStatus == '1'&& !+row?.invoiceStatus && +row?.hasInvoice" @click="checkInvoiceData(row?.invoiceInfo)" class="pointer">查看</div>
+                    <div v-if="row.payStatus == '1' && +row?.invoiceStatus && +row?.hasInvoice" @click="openPDF(row?.invoiceUrl?.url)" class="pointer" style="color: red;">已开票,点击查看</div>
+                    <div v-if="row?.payStatus == '0'">{{ '-' }}</div>
+                    <div v-if="row?.payStatus !== '0' &&!+row?.hasInvoice">{{ '不需要' }}</div>
                 </template>
             </vxe-column>
             <vxe-column title="报名时间" align="center" field="createTime" min-width="100" :formatter="colNoData" />
@@ -165,7 +170,7 @@
             </vxe-column>
             <vxe-column title="支付状态" field="payStatus" min-width="100" :formatter="colNoData" v-if="form?.meetingCharge?.hasFee =='1'">
                 <template #default="{ row }">
-                    {{ selectDictLabel(dm_pay_status, row?.payStatus)}}
+                    <div class="f-w-5">{{ selectDictLabel(dm_pay_status, row?.payStatus)}}</div>
                     <el-tooltip :content="`系统单号${row?.outTradeNo}`" placement="top" effect="light">
                         <el-icon v-if="row.payStatus == '1'"><QuestionFilled /></el-icon>
                     </el-tooltip>
@@ -196,18 +201,18 @@
                     </div>
                 </template>
             </vxe-column>
-            <vxe-column v-if="form?.conditions?.totalCheck == '1' || form?.meetingCharge?.hasFee == '1'" title="操作" width="180" align="center" fixed="right">
+            <vxe-column v-if="form?.conditions?.totalCheck == '1' || form?.meetingCharge?.hasFee == '1'" title="操作" width="260" 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' &&form?.trainingStatus !== '2'">审核</el-button>
                     <el-button v-if="row.res=='3' || row.res== '5'" size="small" color="#e99d42" style="color: white" @click="openModification(row)">修改费用金额</el-button>
                     <el-button v-if="row.res== '5' && row?.payType=='2'" size="small" color="#81b337" style="color: white" @click="openTransfer(row)">确认收到转账</el-button>
-                    <div v-if="row.payStatus == '1' && row?.res == '0'&& form?.trainingStatus == '2'">用户报名未成功,请至微信商户号进行退款</div>
+                    <div v-if="row.payStatus == '1' && (row?.res == '0'|| row?.res == '2') && form?.trainingStatus == '2' && !+row?.joinFee && row.payStatus !== '10'">用户报名未成功,请至微信商户号进行退款</div>
                     <div v-if="row.payStatus === '10'">该报名已退款</div>
-                    <el-upload v-if="form?.trainingStatus == '2' && +row.joinFee && +row?.hasInvoice && !+row?.invoiceStatus && row.payType !== '10' &&form?.meetingCharge?.hasFee =='1' && row?.res !== '0' && row?.res !== '2'" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false" accept=".pdf,.PDF">
+                    <el-upload v-if="form?.trainingStatus == '2' && +row.joinFee && +row?.hasInvoice && !+row?.invoiceStatus && row.payStatus == '1' &&form?.meetingCharge?.hasFee =='1' && row?.res !== '0' && row?.res !== '2'" 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.joinFee && +row?.hasInvoice && +row?.invoiceStatus && row.payType !== '10' &&form?.meetingCharge?.hasFee =='1'&& row?.res !== '0' && row?.res !== '2'" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false" accept=".pdf,.PDF">
+                    <el-upload v-if="form?.trainingStatus == '2' && +row.joinFee && +row?.hasInvoice && +row?.invoiceStatus && row.payStatus == '1' &&form?.meetingCharge?.hasFee =='1'&& row?.res !== '0' && row?.res !== '2'" class="upload-demo" :action="uploadFileUrl" multiple :limit="1" :on-success="handleSuccess" :headers="headers" :show-file-list="false" accept=".pdf,.PDF">
                         <el-button type="primary" color="#33aeeb" style="color: white" @click=" invoiceId = row.id">重新上传</el-button>
                     </el-upload>
                 </template>
@@ -291,10 +296,11 @@ import { exportTrainingMembers, signupApproval, signupCount, trainingMembers,edi
 import { colNoData } from '@/utils/noData';
 import { searchTabs } from '@/views/models';
 import { debounce } from 'lodash';
-import { onMounted, reactive, ref } from 'vue';
+import { onMounted, reactive, ref ,ComponentPublicInstance} from 'vue';
 import registrationInfo from './registration-info.vue';
 import { AreaCascader } from '@/views/components';
 import { globalHeaders } from '@/utils/request';
+import { isWindow } from 'element-plus/es/utils';
 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'));
 // 获取详情
@@ -432,6 +438,9 @@ const handleSuccess = async(res,uploadFile)=>{
     })
     getList();
 }
+const openPDF = (url)=>{
+    window.open(url)
+}
 onMounted(() => {
     getList();
     getExpertPersonCount();