Parcourir la source

Merge branch 'master-charge' of http://git.yujin.shuziyunyao.com/yujin/digital-medicine-front into master-charge

huangxw il y a 4 mois
Parent
commit
a1c0fa8804

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

@@ -107,3 +107,18 @@ export const offOrNoTemp = (params: any): AxiosPromise => {
         params
     });
 };
+// 修改价格
+export const editPrice = (data: any): AxiosPromise => {
+    return request({
+        url: `/dgtmedicine/trainingSignup/editPrice`,
+        method: 'post',
+        data
+    });
+};
+// 开关会议临时状态
+export const confirmSigPublicPay = (id: any): AxiosPromise => {
+    return request({
+        url: `/dgtmedicine/trainingSignup/confirmSigPublicPay/${id}`,
+        method: 'get',
+    });
+};

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

@@ -189,9 +189,9 @@
                                                 <div v-if="+item?.certType" class="d-flex a-c">
                                                     <div v-if="item.vipLevel != 'P'" class="pl-10 f-s-14" style="white-space: nowrap;">每个单位免费</div>
                                                     <div v-else class="pl-10 f-s-14" style="white-space: nowrap;">免费</div>
-                                                    <el-input class="pl-10" v-model="item.total" maxlength="20" placeholder="请输入免费人数" style="width: 150px" />
+                                                    <el-input class="pl-10" v-model="item.total" maxlength="20" placeholder="请输入免费人数" style="width: 150px" :disabled="!+item.check"/>
                                                     <div class="f-s-14" style="white-space: nowrap;">人,其余每人收费</div>
-                                                    <el-input class="pl-10" v-model="item.cost" maxlength="20" placeholder="请输入费用" style="width: 150px" />
+                                                    <el-input class="pl-10" v-model="item.cost" maxlength="20" placeholder="请输入费用" style="width: 150px" :disabled="!+item.check"/>
                                                     <div f-s-14>元</div>
                                                 </div>
                                             </div>
@@ -476,7 +476,7 @@ const form = ref<any>({
     meetingCharge: {
         hasFee: null,//是否收取参会费用
         pricing: null,//收费标准
-        hasFlatFee: null,//所有人是否统一收取标准费用
+        hasFlatFee: null,//收费标准类型 0所有人统一收取费用 1按报名人员类型收取
         typeCharge: [{
             vipLevel: '0',
             check: "0",

+ 81 - 8
src/views/training/models/meeting-detail-attend.vue

@@ -94,7 +94,8 @@
             <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="报名信息" min-width="100" fixed="right">
+            <vxe-column title="参会费用" field="joinFee" min-width="100" :formatter="colNoData" />
+            <vxe-column title="报名信息" min-width="80" fixed="right">
                 <template #default="{ row }">
                     <div class="c-s-p"><u @click="checkRegostrationInfo(row)">查看报名信息</u></div>
                 </template>
@@ -106,6 +107,21 @@
                     <div v-else>-</div>
                 </template>
             </vxe-column>
+            <vxe-column title="支付方式" field="payType" min-width="100" :formatter="colNoData">
+                <template #default="{ row }">
+                    <div v-if="row.payType === '1'">微信支付</div>
+                    <div v-if="row.payType === '2'">对公转账</div>
+                </template>
+            </vxe-column>
+            <vxe-column title="支付状态" field="remark" min-width="100" :formatter="colNoData">
+                <template #default="{ row }">
+                    {{ selectDictLabel(dm_pay_status, row?.payStatus)}}
+                    <el-tooltip content="系统单号" placement="top" effect="light">
+                        <el-icon v-if="row.payStatus == '1'"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                </template>
+            </vxe-column>
+            <vxe-column title="开票信息" field="remark" min-width="100" :formatter="colNoData" />
             <vxe-column title="特殊说明" min-width="100" fixed="right">
                 <template #default="{ row }">
                     {{ +row?.tempJoin?'通过临时报名通道报名':'-' }}
@@ -123,10 +139,12 @@
                     </div>
                 </template>
             </vxe-column>
-            <vxe-column v-if="form?.conditions?.totalCheck == '1'" title="操作" width="250" align="center" fixed="right">
+            <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'" @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'">审核</el-button>
+                    <el-button type="danger" size="small" v-if="row?.res !== '0' && row?.signInFlag !=='1' && form?.conditions?.totalCheck == '1'&& row?.payStatus == '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 v-if="row.payStatus !== '1'" size="small" color="#e99d42" style="color: white" @click="openModification(row)">修改费用金额</el-button>
+                    <el-button v-if="row.payType === '2'" size="small" color="#81b337" style="color: white" @click="openTransfer(row)">确认收到转账</el-button>
                 </template>
             </vxe-column>
         </vxe-table>
@@ -151,10 +169,33 @@
             </div>
         </template>
     </el-dialog>
+    <el-dialog v-model="modiFication" title="修改费用金额" width="300" center>
+        <div class="d-flex a-c">
+            <span class="flex1" style="white-space: nowrap;">参会费用:</span>
+            <el-input v-model.number="participationFee" placeholder="请填写费用金额" />
+        </div>
+        <template #footer>
+            <div class="dialog-footer">
+                <el-button @click="modiFication = false">我再看看</el-button>
+                <el-button type="primary" @click="changeEditPrice">确认修改</el-button>
+            </div>
+        </template>
+    </el-dialog>
+    <el-dialog v-model="showTransfer" title="系统提示" width="360" center>
+        <div class="d-flex a-c">
+            <span>确认收款后将直接改为已支付状态,并进入报名审核流程,操作无法撤回请慎重操作。是否确认收款?</span>
+        </div>
+        <template #footer>
+            <div class="dialog-footer">
+                <el-button @click="modiFication = false">我再看看</el-button>
+                <el-button type="primary" @click="confirmTransfer">确认收到转账</el-button>
+            </div>
+        </template>
+    </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 } from '@/api/training';
+import { exportTrainingMembers, signupApproval, signupCount, trainingMembers,editPrice,confirmSigPublicPay} from '@/api/training';
 import { colNoData } from '@/utils/noData';
 import { searchTabs } from '@/views/models';
 import { debounce } from 'lodash';
@@ -162,7 +203,7 @@ import { onMounted, reactive, ref } from 'vue';
 import registrationInfo from './registration-info.vue';
 import { AreaCascader } from '@/views/components';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { cpy_res_status, lm_signup_status_app_show, dm_check_join_type,temp_join_type } = toRefs<any>(proxy?.useDict('cpy_res_status', 'lm_signup_status_app_show', 'dm_check_join_type','temp_join_type'));
+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'));
 // 获取详情
 const props = defineProps({
     form: {
@@ -185,6 +226,10 @@ const rules = reactive({
 const showTemporary = ref(false);
 const dialogVisible = ref(false);
 const temporaryRegistration = ref();
+const modiFication=ref<any>(false)
+const showTransfer = ref(false)
+const participationFee = ref()
+const editPricedata = ref()
 const fromvalue = ref({
     targetId: '',
     msg: ''
@@ -221,8 +266,6 @@ const getList = async () => {
     const res = await trainingMembers(queryParams.value);
     if (!res || res.code !== 200) return;
     list.value = res.rows;
-    console.log(list.value);
-
     total.value = res.total;
     loading.value = false;
 };
@@ -250,6 +293,29 @@ const exportSearch = debounce(() => {
     delete params.pageSize;
     exportTrainingMembers(params);
 }, 500);
+// 打开修改金额的按钮
+const openModification = (row)=>{
+    modiFication.value = true;
+    participationFee.value = row.joinFee
+    editPricedata.value = row
+}
+const openTransfer = (row)=>{
+    showTransfer.value = true
+    editPricedata.value = row
+}
+const confirmTransfer = async()=>{
+    await confirmSigPublicPay(editPricedata.value?.id)
+    showTransfer.value = false
+}
+const changeEditPrice = async ()=>{
+    await editPrice({
+        id:editPricedata.value?.id,
+        price:participationFee.value
+    });
+    modiFication.value = false
+    getList();
+}
+
 onMounted(() => {
     getList();
     getExpertPersonCount();
@@ -293,4 +359,11 @@ onMounted(() => {
 :deep(.reject-radio.el-radio.is-bordered.is-checked) {
     border-color: #F56C6C !important;
 }
+.single{
+    position: absolute;
+    top: -20px;
+    right: 30px;
+    width: 200px;
+    left: 70px;
+}
 </style>

+ 1 - 0
src/views/training/models/meeting-detail-info.vue

@@ -30,6 +30,7 @@
                 <el-descriptions-item min-width="100px" label="每成功参会(签到成功)1人发放积分数:" v-if="form?.pointsFlag == '1'">{{ form?.points || '-' }}</el-descriptions-item>
                 <el-descriptions-item min-width="100px" label="创建人:">{{ form?.createByName || '-' }}</el-descriptions-item>
                 <el-descriptions-item min-width="100px" label="创建时间:">{{ form?.createTime || '-' }}</el-descriptions-item>
+                <el-descriptions-item min-width="100px" label="收取参会费用标准:">{{ form?.meetingCharge?.pricing || '-' }}元/每人</el-descriptions-item>
             </el-descriptions>
             <div class="d-flex f-s-14 c-666 mb-10">
                 <div class="flex1">