浏览代码

reactor:335 针对通知和公告的提醒,删除“失效时间字段”,以便契合老系统和目前消息通知要求

zhangchong 2 月之前
父节点
当前提交
c3af2c04c1

+ 70 - 0
src/api/snapshot/reAudit.ts

@@ -187,3 +187,73 @@ export const gridRedEnvelopeApproval = (data: object) => {
 		data,
 	});
 };
+/**
+ * @description 获取特殊红包审批列表
+ * @param {object} params
+ */
+export const getSpecialRedEnvelopeApprovalList = (params?: object) => {
+	return request({
+		url: `/api/v1/RedPack/special`,
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 特殊红包审批列表导出
+ * @param {object} data
+ */
+export const getSpecialRedEnvelopeApprovalListExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/RedPack/special/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
+/**
+ * @description 获取特殊红包审批基础参数
+ * @param {object} id
+ */
+export const getSpecialRedEnvelopeApprovalBaseInfo = (id?: string) => {
+	return request({
+		url: `/api/v1/RedPack/audit/special/${id}`,
+		method: 'get',
+	});
+};
+/**
+ * @description 特殊红包审批
+ * @param {object} data
+ */
+export const specialRedEnvelopeApproval = (data: object) => {
+	return request({
+		url: ` /api/v1/RedPack/audit/special`,
+		method: 'put',
+		data,
+	});
+};
+/**
+ * @description 获取特殊红包补充基础参数
+ * @param {object} id
+ */
+export const getSpecialRedEnvelopeApprovalAdditionalBaseInfo = (id?: string) => {
+	return request({
+		url: `/api/v1/RedPack/record/basedata/${id}`,
+		method: 'get',
+	});
+};
+/**
+ * @description 特殊红包补充
+ * @param {object} data
+ */
+export const specialRedEnvelopeApprovalAdditional = (data: object) => {
+	return request({
+		url: `/api/v1/RedPack/record`,
+		method: 'put',
+		data,
+	});
+};

+ 0 - 26
src/views/auxiliary/notice/components/Notice-add.vue

@@ -34,19 +34,6 @@
 							</el-radio-group>
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-						<el-form-item label="失效时间" prop="lostEfficacyTime" :rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]">
-							<el-date-picker
-								v-model="state.ruleForm.lostEfficacyTime"
-								type="datetime"
-								placeholder="请选择失效时间"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-								class="w100"
-								:disabled-date="disabledDate"
-								popper-class="no-atTheMoment"
-							/>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="来源单位" prop="sourceOrgId" :rules="[{ required: true, message: '请选择来源单位', trigger: 'change' }]">
 							<el-cascader
@@ -146,19 +133,6 @@
 							<el-input v-model="state.ruleForm.title" placeholder="请填写公告标题" clearable show-word-limit maxlength="200"></el-input>
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-						<el-form-item label="失效时间" prop="loseEfficacyTime" :rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]">
-							<el-date-picker
-								v-model="state.ruleForm.loseEfficacyTime"
-								type="datetime"
-								placeholder="请选择失效时间"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-								class="w100"
-								:disabled-date="disabledDate"
-								popper-class="no-atTheMoment"
-							/>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="来源单位" prop="sourceOrgId" :rules="[{ required: true, message: '请选择来源单位', trigger: 'change' }]">
 							<el-cascader

+ 0 - 26
src/views/auxiliary/notice/components/Notice-edit.vue

@@ -34,19 +34,6 @@
 							</el-radio-group>
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-						<el-form-item label="失效时间" prop="lostEfficacyTime" :rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]">
-							<el-date-picker
-								v-model="state.ruleForm.lostEfficacyTime"
-								type="datetime"
-								placeholder="请选择失效时间"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-								class="w100"
-								:disabled-date="disabledDate"
-								popper-class="no-atTheMoment"
-							/>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="来源单位" prop="sourceOrgId" :rules="[{ required: true, message: '请选择来源单位', trigger: 'change' }]">
 							<el-cascader
@@ -155,19 +142,6 @@
 							<el-input v-model="state.ruleForm.title" placeholder="请填写公告标题" clearable show-word-limit maxlength="200"></el-input>
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-						<el-form-item label="失效时间" prop="loseEfficacyTime" :rules="[{ required: true, message: '请选择失效时间', trigger: 'change' }]">
-							<el-date-picker
-								v-model="state.ruleForm.loseEfficacyTime"
-								type="datetime"
-								placeholder="请选择失效时间"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-								class="w100"
-								:disabled-date="disabledDate"
-								popper-class="no-atTheMoment"
-							/>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="来源单位" prop="sourceOrgId" :rules="[{ required: true, message: '请选择来源单位', trigger: 'change' }]">
 							<el-cascader

+ 0 - 10
src/views/auxiliary/notice/detail.vue

@@ -19,11 +19,6 @@
 								{{ state.ruleForm.isMustRead ? '是' : '否' }}
 							</el-form-item>
 						</el-col>
-						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-							<el-form-item label="失效时间:">
-								{{ formatDate(state.ruleForm.lostEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</el-form-item>
-						</el-col>
 						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 							<el-form-item label="通知对象:">
 								{{ state.ruleForm.circularTypeText }}
@@ -76,11 +71,6 @@
 								{{ state.ruleForm.title }}
 							</el-form-item>
 						</el-col>
-						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-							<el-form-item label="失效时间:">
-								{{ formatDate(state.ruleForm.loseEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</el-form-item>
-						</el-col>
 						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 							<el-form-item label="来源单位:">
 								{{ state.ruleForm.sourceOrgName }}

+ 0 - 10
src/views/auxiliary/notice/index.vue

@@ -132,11 +132,6 @@
 								{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}
 							</template>
 						</vxe-column>
-						<vxe-column field="lostEfficacyTime" title="失效时间" width="160">
-							<template #default="{ row }">
-								{{ formatDate(row.lostEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</template>
-						</vxe-column>
 					</template>
 					<template v-if="listType === '1'">
 						<vxe-column field="bulletinTypeName" title="公告类型" width="120"></vxe-column>
@@ -150,11 +145,6 @@
 								{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}
 							</template>
 						</vxe-column>
-						<vxe-column field="loseEfficacyTime" title="失效时间" width="160">
-							<template #default="{ row }">
-								{{ formatDate(row.loseEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</template>
-						</vxe-column>
 					</template>
 					<vxe-column field="sourceOrgName" title="来源单位" width="140"></vxe-column>
 					<vxe-column field="examinOpinion" title="审核理由" min-width="150"></vxe-column>

+ 0 - 10
src/views/public/notice/index.vue

@@ -19,11 +19,6 @@
 								{{ state.ruleForm.isMustRead ? '是' : '否' }}
 							</el-form-item>
 						</el-col>
-						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-							<el-form-item label="失效时间:">
-								{{ formatDate(state.ruleForm.lostEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</el-form-item>
-						</el-col>
 						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 							<el-form-item label="通知对象:">
 								{{ state.ruleForm.circularTypeText }}
@@ -73,11 +68,6 @@
 								{{ state.ruleForm.title }}
 							</el-form-item>
 						</el-col>
-						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-							<el-form-item label="失效时间:">
-								{{ formatDate(state.ruleForm.loseEfficacyTime, 'YYYY-mm-dd HH:MM:SS') }}
-							</el-form-item>
-						</el-col>
 						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 							<el-form-item label="来源单位:">
 								{{ state.ruleForm.sourceOrgName }}

+ 186 - 0
src/views/snapshot/reAudit/components/Re-audit-special.vue

@@ -0,0 +1,186 @@
+<template>
+	<el-dialog v-model="state.dialogVisible" draggable title="红包审批" @close="close" destroy-on-close append-to-body>
+		<el-form :model="state.infoForm" label-width="110px" :disabled="loading" class="show-info-form">
+			<el-row :gutter="10">
+				<el-col>
+					<p class="border-title">来电信息</p>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="受理人">{{ state.infoForm.order?.acceptorName }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="受理时间">{{ formatDate(state.infoForm.order?.creationTime, 'YYY-mm-dd HH:MM:SS') }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="工单编码">{{ state.infoForm.order?.no }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="所在区域">{{ state.infoForm.order?.county }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="来源方式">{{ state.infoForm.order?.sourceChannel }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="受理类型">{{ state.infoForm.order?.acceptType }}</el-form-item>
+				</el-col>
+				<el-col>
+					<el-form-item label="热点分类">{{ state.infoForm.order?.hotspotSpliceName }}</el-form-item>
+				</el-col>
+				<el-col>
+					<p class="border-title mt10">联系人</p>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="来电人"
+						>{{ state.infoForm.order?.fromName }} <el-text tag="b" v-if="state.infoForm.order?.isSecret" class="ml5">保密</el-text></el-form-item
+					>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="性别">{{ state.infoForm.order?.fromGenderTxt }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="联系电话">{{ state.infoForm.order?.fromPhone }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="地址">{{ state.infoForm.order?.fullAddress }}</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="身份证">{{ state.infoForm.order?.licenceNo }}</el-form-item>
+				</el-col>
+				<el-col :lg="12" :md="12" :sm="12" :xl="12" :xs="24">
+					<el-form-item label="工作单位">{{ state.infoForm.order?.workUnit }}</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<p class="border-title mt10 mb10">审批信息<el-text tag="b" type="danger" class="ml5">特殊审批</el-text></p>
+		<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading">
+			<el-form-item label="审批状态" prop="status" :rules="[{ required: true, message: '请选择审批状态', trigger: 'change' }]">
+				<el-select v-model="state.ruleForm.status" clearable style="max-width: 240px" placeholder="请选择审批状态" @change="selectStatus">
+					<el-option v-for="item in auditComBox" :label="item.value" :key="item.key" :value="item.key" />
+				</el-select>
+			</el-form-item>
+			<el-form-item label="短信模板" prop="smsTemplateId" :rules="[{ required: true, message: '请选择短信模板', trigger: 'change' }]">
+				<el-select v-model="state.ruleForm.smsTemplateId" placeholder="请选择短信模板" clearable>
+					<el-option v-for="item in smsTemplateList" :value="item.id" :key="item.id" :label="item.content" />
+				</el-select>
+			</el-form-item>
+			<el-form-item label="审批意见" prop="opinion" :rules="[{ required: false, message: '请填写审批意见', trigger: 'blur' }]">
+				<el-input
+					type="textarea"
+					:autosize="{ minRows: 6, maxRows: 10 }"
+					v-model="state.ruleForm.opinion"
+					placeholder="请填写审批意见"
+					clearable
+				></el-input>
+			</el-form-item>
+		</el-form>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDialog" class="default-button">取 消</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script setup lang="tsx" name="noticeDetail">
+import { reactive, ref } from 'vue';
+import { throttle } from '@/utils/tools';
+import { ElMessage, FormInstance } from 'element-plus';
+import { getCitizenRedEnvelopeApprovalSmsTemplate, getSpecialRedEnvelopeApprovalBaseInfo, specialRedEnvelopeApproval } from '@/api/snapshot/reAudit';
+import { formatDate } from '@/utils/formatTime';
+
+// 定义子组件向父组件传值/事件
+const emit = defineEmits(['updateList']);
+// 定义变量内容
+const state = reactive<any>({
+	dialogVisible: false,
+	infoForm: {},
+	ruleForm: {
+		redPackAuditId: null, // 审批ID
+		status: null, // 审批状态
+		opinion: null, // 审批意见
+		smsTemplateId: null, // 短信模板
+		isSendSms: true, // 是否发送短信
+	},
+	orderId: null,
+});
+let loading = ref<boolean>(false); // 加载状态
+// 打开弹窗
+const auditComBox = ref<EmptyArrayType>([]); // 审批状态
+const openDialog = async (row: any) => {
+	loading.value = true;
+	state.dialogVisible = true;
+	state.orderId = row.orderId;
+	try {
+		// 特殊审批
+		const { result } = await getSpecialRedEnvelopeApprovalBaseInfo(row.orderId);
+		auditComBox.value = result.auditComBox ?? [];
+		state.infoForm = result;
+		state.ruleForm.redPackAuditId = row.id;
+		loading.value = false;
+	} catch (error) {
+		console.log(error);
+		loading.value = false;
+	}
+};
+const ruleFormRef = ref<RefType>();
+const smsTemplateList = ref<EmptyArrayType>([]); // 短信模板
+// 选择审批状态
+const selectStatus = (val: any) => {
+	ruleFormRef.value?.resetFields('smsTemplateId');
+	if (val || val === 0) {
+		loading.value = true;
+		getCitizenRedEnvelopeApprovalSmsTemplate({ OrderId: state.orderId, Status: val })
+			.then((res) => {
+				smsTemplateList.value = res.result ?? [];
+				if (smsTemplateList.value.length) {
+					// 默认选中第一条
+					state.ruleForm.smsTemplateId = smsTemplateList.value[0].id;
+				}
+				loading.value = false;
+			})
+			.catch((e) => {
+				console.log(e);
+				smsTemplateList.value = [];
+				loading.value = false;
+			});
+	} else {
+		smsTemplateList.value = [];
+	}
+};
+// 保存
+const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	await formEl.validate((valid: boolean) => {
+		if (!valid) return;
+		loading.value = true;
+		const request = {
+			...state.ruleForm,
+		};
+		specialRedEnvelopeApproval(request)
+			.then(() => {
+				loading.value = false;
+				closeDialog();
+				emit('updateList');
+				ElMessage.success('红包审批成功');
+			})
+			.catch(() => {
+				loading.value = false;
+			});
+	});
+}, 300);
+// 关闭弹窗
+const closeDialog = () => {
+	state.dialogVisible = false;
+};
+const close = () => {
+	ruleFormRef.value?.clearValidate();
+	ruleFormRef.value?.resetFields();
+	state.orderId = null;
+};
+// 暴露变量
+defineExpose({
+	openDialog,
+	closeDialog,
+});
+</script>

+ 152 - 0
src/views/snapshot/reAudit/components/Re-supply-special.vue

@@ -0,0 +1,152 @@
+<template>
+	<el-dialog v-model="state.dialogVisible" draggable title="添加补充发放" @close="close" destroy-on-close append-to-body>
+		<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading" scroll-to-error>
+			<el-row :gutter="10">
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="姓名" prop="name" :rules="[{ required: false, message: '请填写姓名', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.name" placeholder="请填写姓名" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="卡号" prop="bankCardNo" :rules="[{ required: false, message: '请填写卡号', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.bankCardNo" placeholder="请填写卡号" clearable type="number"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="开户行" prop="openBank" :rules="[{ required: false, message: '请填写开户行', trigger: 'blur' }]">
+						<el-input v-model="state.ruleForm.openBank" placeholder="请填写开户行" clearable></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="补充金额" prop="replenishAmount" :rules="[{ required: false, message: '请填写补充金额', trigger: 'blur' }]">
+						<el-input-number v-model="state.ruleForm.replenishAmount" :min="0" :precision="2" class="w100" placeholder="请填写补充金额" />
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="补充发放时间" prop="replenishTime" :rules="[{ required: false, message: '请选择补充发放时间', trigger: 'change' }]">
+						<el-date-picker
+							v-model="state.ruleForm.replenishTime"
+							type="datetime"
+							placeholder="请选择补充发放时间"
+							class="w100"
+							value-format="YYYY-MM-DD[T]HH:mm:ss"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="补充奖励类型" prop="replenishType" :rules="[{ required: false, message: '请选择补充奖励类型', trigger: 'change' }]">
+						<el-select v-model="state.ruleForm.replenishType" class="w100" placeholder="请选择补充奖励类型">
+							<el-option v-for="item in replenishTypeOptions" :label="item.dicDataName" :key="item.dicDataValue" :value="item.dicDataValue" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="">
+						<el-checkbox v-model="state.ruleForm.isSendSMS">发送短信</el-checkbox>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<el-form-item label="备注" prop="replenishRemark" :rules="[{ required: true, message: '请填写备注', trigger: 'blur' }]">
+						<el-input
+							type="textarea"
+							:autosize="{ minRows: 6, maxRows: 10 }"
+							v-model="state.ruleForm.replenishRemark"
+							placeholder="请填写备注"
+							maxlength="200"
+							show-word-limit
+						></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDialog" class="default-button">取 消</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script setup lang="tsx" name="noticeDetail">
+import { reactive, ref } from 'vue';
+import { throttle } from '@/utils/tools';
+import { ElMessage, FormInstance } from 'element-plus';
+import { ElCheckbox } from 'element-plus';
+import { getSpecialRedEnvelopeApprovalAdditionalBaseInfo, specialRedEnvelopeApprovalAdditional } from '@/api/snapshot/reAudit';
+// 定义子组件向父组件传值/事件
+const emit = defineEmits(['updateList']);
+// 定义变量内容
+const state = reactive<any>({
+	dialogVisible: false,
+	ruleForm: {
+		name: null, // 姓名
+		bankCardNo: null, // 卡号
+		openBank: null, // 开户行
+		replenishAmount: null, // 补充金额
+		replenishTime: null, // 补充发放时间 默认当前时间
+		replenishType: '1', // 补充奖励类型
+		replenishRemark: null, // 备注
+		isSendSMS: true, // 发送短信
+	},
+	auditObj: {},
+});
+let loading = ref<boolean>(false); // 加载状态
+// 打开弹窗
+const ruleFormRef = ref<RefType>();
+const openDialog = (row: any) => {
+	getBaseData(row.orderId);
+	state.ruleForm.replenishTime = new Date().toISOString();
+	state.auditObj = row;
+	state.dialogVisible = true;
+};
+// 获取基础数据
+const replenishTypeOptions = ref<EmptyArrayType>([]);
+const getBaseData = async (id: string) => {
+	try {
+		const { result } = await getSpecialRedEnvelopeApprovalAdditionalBaseInfo(id);
+		state.ruleForm.replenishAmount = result.amount ?? 0;
+		state.ruleForm.bankCardNo = result.bankCardNo ?? 0;
+		state.ruleForm.name = result.name;
+		state.ruleForm.openBank = result.openBank;
+		replenishTypeOptions.value = result.replenishType;
+	} catch (e) {
+		console.log(e);
+	}
+};
+// 保存
+const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	await formEl.validate((valid: boolean) => {
+		if (!valid) return;
+		loading.value = true;
+		const request = {
+			...state.ruleForm,
+			redPackAuditId: state.auditObj.id,
+		};
+		specialRedEnvelopeApprovalAdditional(request)
+			.then(() => {
+				loading.value = false;
+				closeDialog();
+				emit('updateList');
+				ElMessage.success('补充发放成功');
+			})
+			.catch(() => {
+				loading.value = false;
+			});
+	});
+}, 300);
+// 关闭弹窗
+const closeDialog = () => {
+	state.dialogVisible = false;
+};
+const close = () => {
+	ruleFormRef.value?.clearValidate();
+	ruleFormRef.value?.resetFields();
+};
+// 暴露变量
+defineExpose({
+	openDialog,
+	closeDialog,
+});
+</script>

+ 90 - 111
src/views/snapshot/reAudit/special.vue

@@ -33,16 +33,10 @@
 					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.title }}</order-detail>
 				</template>
 				<template #action="{ row }">
-					<el-button link type="primary" @click="onAudit(row)" v-auth="'snapshot:reAudit:citizen:audit'" v-if="row.auditStatus === 0">
+					<el-button link type="primary" @click="onAudit(row)" v-auth="'snapshot:reAudit:special:audit'" v-if="row.auditStatus === 0">
 						审批
 					</el-button>
-					<el-button link type="danger" @click="onReturn(row)" v-auth="'snapshot:reAudit:citizen:return'" v-if="row.auditStatus === 0">
-						退回
-					</el-button>
-					<el-button link type="primary" @click="onRemark(row)" v-auth="'snapshot:reAudit:citizen:remark'" v-if="row.auditStatus === 1">
-						添加备注
-					</el-button>
-					<el-button link type="primary" @click="onSupply(row)" v-auth="'snapshot:reAudit:citizen:supply'" v-if="row.auditStatus === 1">
+					<el-button link type="primary" @click="onSupply(row)" v-auth="'snapshot:reAudit:special:supply'" v-if="row.auditStatus === 1">
 						补充发放
 					</el-button>
 				</template>
@@ -91,18 +85,23 @@
 				<el-form-item label="来电人电话" prop="FromPhone">
 					<el-input v-model="state.queryParams.FromPhone" placeholder="请填写来电人电话" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
-        <el-form-item label="审批金额" prop="AcutalAmount">
-          <el-input v-model="state.queryParams.AcutalAmount" placeholder="请填写审批金额" clearable @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="补充发放金额" prop="AcutalAmount">
-          <el-input v-model="state.queryParams.AcutalAmount" placeholder="请填写补充发放金额" clearable @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="补发卡号" prop="ApprovedAmount">
-          <el-input v-model="state.queryParams.ApprovedAmount" placeholder="请填写补发卡号" clearable @keyup.enter="handleQuery" />
-        </el-form-item>
-        <el-form-item label="区域" prop="ApprovedAmount">
-          <el-input v-model="state.queryParams.ApprovedAmount" placeholder="请填写区域" clearable @keyup.enter="handleQuery" />
-        </el-form-item>
+				<el-form-item label="行业类型" prop="IndustryId">
+					<el-select v-model="state.queryParams.IndustryId" class="w100" placeholder="请选择行业类型" @change="handleQuery" clearable>
+						<el-option v-for="item in industryOptions" :key="item.id" :label="item.name" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="审批金额" prop="AcutalAmount">
+					<el-input v-model="state.queryParams.AcutalAmount" placeholder="请填写审批金额" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="补充发放金额" prop="AcutalAmount">
+					<el-input v-model="state.queryParams.AcutalAmount" placeholder="请填写补充发放金额" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="补发卡号" prop="ApprovedAmount">
+					<el-input v-model="state.queryParams.ApprovedAmount" placeholder="请填写补发卡号" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="区域" prop="ApprovedAmount">
+					<el-input v-model="state.queryParams.ApprovedAmount" placeholder="请填写区域" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
 			</el-form>
 			<template #footer>
 				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -110,13 +109,9 @@
 			</template>
 		</el-drawer>
 		<!--	红包审批	-->
-		<re-audit ref="reAuditRef" @updateList="queryList" />
-		<!--	红包退回	-->
-		<re-return ref="reReturnRef" @updateList="queryList" />
+		<re-audit-special ref="reAuditRef" @updateList="queryList" />
 		<!--	红包补充	-->
-		<re-supply ref="reSupplyRef" @updateList="queryList" />
-		<!--	红包备注	-->
-		<re-remark ref="reRemarkRef" @updateList="queryList" />
+		<re-supply-special ref="reSupplyRef" @updateList="queryList" />
 	</div>
 </template>
 
@@ -126,18 +121,16 @@ import { ElMessage, FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import {
 	getCitizenRedEnvelopeApprovalBaseData,
-	getCitizenRedEnvelopeApprovalExport,
-	getCitizenRedEnvelopeApprovalList,
+	getSpecialRedEnvelopeApprovalList,
+	getSpecialRedEnvelopeApprovalListExport,
 } from '@/api/snapshot/reAudit';
 import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
-const ReAudit = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-audit.vue')); // 红包审批
-const ReReturn = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-return.vue')); // 红包退回
-const ReRemark = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-remark.vue')); // 红包备注
-const ReSupply = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-supply.vue')); // 红包补充
+const ReAuditSpecial = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-audit-special.vue')); // 红包审批
+const ReSupplySpecial = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-supply-special.vue')); // 红包补充
 
 // 定义变量内容
 const state = reactive<any>({
@@ -197,13 +190,13 @@ const gridOptions = reactive<any>({
 		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
 	params: {
-		exportMethod: getCitizenRedEnvelopeApprovalExport,
+		exportMethod: getSpecialRedEnvelopeApprovalListExport,
 		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
 	},
-	id: 'snapshotReSendCitizen',
+	id: 'snapshotReAuditSpecial',
 	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
 	height: 'auto',
 	columns: [
@@ -265,72 +258,72 @@ const gridOptions = reactive<any>({
 			title: '补充发放金额',
 			width: 120,
 		},
-    {
+		{
 			field: 'replenishAmount',
 			title: '补发姓名',
 			width: 140,
 		},
-    {
-      field: 'bankCardNo',
-      title: '补发卡号',
-      width: 140,
-    },
-    {
-      field: 'openBank',
-      title: '补发开户行',
-      width: 140,
-    },
-    {
-      field: 'county',
-      title: '区域',
-      width: 120,
-    },
-    {
-      field: 'isRectify',
-      title: '部门是否整改完成',
-      width: 140,
-      slots: {
-        default: ({ row }) => {
-          return row.isRectify === null ? '' : row.isRectify ? '是' : '否';
-        },
-      },
-    },
-    {
-      field: 'isTruthDepartment',
-      title: '部门是否属实',
-      width: 120,
-      slots: {
-        default: ({ row }) => {
-          return row.isTruthDepartment === null ? '' : row.isTruthDepartment ? '是' : '否';
-        },
-      },
-    },
-    {
-      field: 'creationTime',
-      title: '受理时间',
-      formatter: 'formatDate',
-      width: 160,
-    },
-    {
-      field: 'auditStatusTxt',
-      title: '审批状态',
-      width: 100,
-    },
-    {
-      field: 'auditName',
-      title: '审批人',
-      width: 120,
-    },
-    {
-      field: 'auditOrgName',
-      title: '审批部门',
-      width: 140,
-    },
-    {
-      field: 'auditRemark',
-      title: '审批意见',
-      minWidth: 200,
-    },
+		{
+			field: 'bankCardNo',
+			title: '补发卡号',
+			width: 140,
+		},
+		{
+			field: 'openBank',
+			title: '补发开户行',
+			width: 140,
+		},
+		{
+			field: 'county',
+			title: '区域',
+			width: 120,
+		},
+		{
+			field: 'isRectify',
+			title: '部门是否整改完成',
+			width: 140,
+			slots: {
+				default: ({ row }) => {
+					return row.isRectify === null ? '' : row.isRectify ? '是' : '否';
+				},
+			},
+		},
+		{
+			field: 'isTruthDepartment',
+			title: '部门是否属实',
+			width: 120,
+			slots: {
+				default: ({ row }) => {
+					return row.isTruthDepartment === null ? '' : row.isTruthDepartment ? '是' : '否';
+				},
+			},
+		},
+		{
+			field: 'creationTime',
+			title: '受理时间',
+			formatter: 'formatDate',
+			width: 160,
+		},
+		{
+			field: 'auditStatusTxt',
+			title: '审批状态',
+			width: 100,
+		},
+		{
+			field: 'auditName',
+			title: '审批人',
+			width: 120,
+		},
+		{
+			field: 'auditOrgName',
+			title: '审批部门',
+			width: 140,
+		},
+		{
+			field: 'auditRemark',
+			title: '审批意见',
+			minWidth: 200,
+		},
 		{
 			title: '操作',
 			width: 160,
@@ -358,7 +351,7 @@ const queryList = () => {
 	requestParams.value.BeginAuditTime = state.queryParams.spTime === null ? null : state.queryParams.spTime[0]; // 审批时间
 	requestParams.value.EndAuditTime = state.queryParams.spTime === null ? null : state.queryParams.spTime[1];
 	Reflect.deleteProperty(requestParams.value, 'spTime'); // 删除无用的参数
-	getCitizenRedEnvelopeApprovalList(requestParams.value)
+	getSpecialRedEnvelopeApprovalList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -411,20 +404,6 @@ const reAuditRef = ref<RefType>();
 const onAudit = (row: any) => {
 	reAuditRef.value.openDialog(row);
 };
-// 退回
-const reReturnRef = ref<RefType>();
-const onReturn = (row: any) => {
-	reReturnRef.value.openDialog(row);
-};
-// 添加备注
-const reRemarkRef = ref<RefType>();
-const onRemark = (row: any) => {
-	if (checkTable.value.length > 1) {
-		ElMessage.warning('只能选择1个添加备注。');
-		return;
-	}
-	reRemarkRef.value.openDialog(row);
-};
 // 补充
 const reSupplyRef = ref<RefType>();
 const onSupply = (row: any) => {