Explorar o código

reactor:随手拍对接;

zhangchong hai 4 meses
pai
achega
282a8f8297

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

@@ -68,6 +68,16 @@ export const citizenRedEnvelopeApproval = (data: object) => {
 		data,
 	});
 }
+/**
+ * @description 获取红包审批特提信息
+ * @param {string} id
+ */
+export const getCitizenRedEnvelopeApprovalSpecialInfo = (id?: string) => {
+	return request({
+		url: `/api/v1/RedPack/audit/back/${id}`,
+		method: 'get',
+	});
+}
 /**
  * @description 添加备注页面基础信息
  * @param {object} params

+ 11 - 0
src/api/snapshot/reSend.ts

@@ -14,3 +14,14 @@ export const getCitizenRedEnvelopeApprovalList = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 批量发送红包
+ * @param {object} data
+ */
+export const citizenRedEnvelopeApproval = (data: object) => {
+	return request({
+		url: '/api/v1/RedPack/record/send_bath',
+		method: 'put',
+		data,
+	});
+};

+ 1 - 1
src/views/business/visit/index.vue

@@ -153,7 +153,7 @@
 						<el-option v-for="items in visitSatisfaction" :key="items.dicDataValue" :label="items.dicDataName" :value="items.dicDataValue" />
 					</el-select>
 				</el-form-item>
-				<el-form-item label="部门办件态度" prop="OrgHandledAttitude" v-if="!['YiBin'].includes(themeConfig.appScope)">
+				<el-form-item label="部门办件态度" prop="OrgHandledAttitude" v-if="['ZiGong'].includes(themeConfig.appScope)">
 					<el-select v-model="state.queryParams.OrgHandledAttitude" placeholder="请选择部门办件态度" clearable multiple>
 						<el-option v-for="items in visitMananer" :key="items.dicDataValue" :label="items.dicDataName" :value="items.dicDataValue" />
 					</el-select>

+ 1 - 1
src/views/snapshot/reAudit/components/Re-audit.vue

@@ -1,5 +1,5 @@
 <template>
-	<el-dialog v-model="state.dialogVisible" draggable title="红包审批" @close="close">
+	<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>

+ 3 - 3
src/views/snapshot/reAudit/components/Re-remark.vue

@@ -1,5 +1,5 @@
 <template>
-	<el-dialog v-model="state.dialogVisible" width="30%" draggable title="添加备注" @close="close">
+	<el-dialog v-model="state.dialogVisible" width="30%" draggable title="添加备注" @close="close" destroy-on-close append-to-body>
 		<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading">
 			<el-form-item label="实发金额" prop="acutalAmount" :rules="[{ required: true, message: '请填写实发金额', trigger: 'blur' }]">
 				<el-input-number v-model="state.ruleForm.acutalAmount" :min="0" :precision="2" class="w100" placeholder="请填写实发金额" />
@@ -91,14 +91,14 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 		loading.value = true;
 		const request = {
 			...state.ruleForm,
-			redPackAuditId:state.auditObj.id,
+			redPackAuditId: state.auditObj.id,
 		};
 		citizenRedEnvelopeApprovalRemark(request)
 			.then(() => {
 				loading.value = false;
 				closeDialog();
 				emit('updateList');
-				ElMessage.success('操作成功');
+				ElMessage.success('添加备注成功');
 			})
 			.catch(() => {
 				loading.value = false;

+ 5 - 4
src/views/snapshot/reAudit/components/Re-return.vue

@@ -61,6 +61,7 @@ import { storeToRefs } from 'pinia';
 import { useUserInfo } from '@/stores/userInfo';
 import { useThemeConfig } from '@/stores/themeConfig';
 import { commonEnum } from '@/utils/constants';
+import { getCitizenRedEnvelopeApprovalSpecialInfo } from '@/api/snapshot/reAudit';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
@@ -96,13 +97,13 @@ const baseTypeId = ref<string>(''); // 默认选中的特提节点ID
  */
 const isTerminate = ref(false); //  终止需要提示
 const openDialog = async (val: any) => {
-	console.log(val,'111')
-	state.orderDetail = val;
-	state.workflowId = val.workflowId;
 	state.loading = true;
 	state.dialogVisible = true;
 	try {
-		const { result } = await specialApplyBase(val.workflowId);
+		const res = await getCitizenRedEnvelopeApprovalSpecialInfo(val.orderId); // 查询基础信息
+		const { result } = await specialApplyBase(res.result.workflowId); // 查询流程
+		state.orderDetail = res.result;
+		state.workflowId = res.result.workflowId;
 		baseTypeId.value = result?.baseTypeId ?? '';
 		steps.value = result?.step?.steps ?? [];
 		specialReason.value = result.specialReason ?? [];

+ 16 - 33
src/views/snapshot/reAudit/components/Re-supply.vue

@@ -1,5 +1,5 @@
 <template>
-	<el-dialog v-model="state.dialogVisible" draggable title="添加补充发放" @close="close">
+	<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">
@@ -34,13 +34,9 @@
 					</el-form-item>
 				</el-col>
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item
-						label="补充奖励类型"
-						prop="productExpiredTime"
-						:rules="[{ required: false, message: '请选择补充奖励类型', trigger: 'change' }]"
-					>
-						<el-select v-model="state.ruleForm.status" class="w100" placeholder="请选择补充奖励类型">
-							<el-option v-for="item in state.auditComBox" :label="item.value" :key="item.key" :value="item.key" />
+					<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>
@@ -73,14 +69,11 @@
 </template>
 
 <script setup lang="tsx" name="noticeDetail">
-import { reactive, ref, defineAsyncComponent, computed, unref, FunctionalComponent } from 'vue';
+import { reactive, ref } from 'vue';
 import { throttle } from '@/utils/tools';
 import { ElMessage, FormInstance } from 'element-plus';
-import { disabledDate } from '@/utils/constants';
 import { ElCheckbox } from 'element-plus';
-import { addSnapshotBulletin, editSnapshotBulletinBase } from '@/api/snapshot/info';
 import { citizenRedEnvelopeApprovalAdditional, getCitizenRedEnvelopeApprovalAdditionalBaseInfo } from '@/api/snapshot/reAudit';
-import dayjs from 'dayjs';
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 // 定义变量内容
@@ -91,39 +84,28 @@ const state = reactive<any>({
 		bankCardNo: null, // 卡号
 		openBank: null, // 开户行
 		replenishAmount: null, // 补充金额
-		replenishTime: dayjs().toDate(), // 补充发放时间
-		productExpiredTime: null, // 补充奖励类型
+		replenishTime: null, // 补充发放时间 默认当前时间
+		replenishType: '1', // 补充奖励类型
 		replenishRemark: null, // 备注
 		isSendSMS: true, // 发送短信
 	},
+	auditObj: {},
 });
 let loading = ref<boolean>(false); // 加载状态
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
-
-const bulletinTypeOptions = ref<EmptyArrayType>([]); // 公告类型
-const orgsOptions = ref<EmptyArrayType>([]); // 来源单位
-const bulletinSource = ref<EmptyArrayType>([]); // 来源
-const openDialog = async (row: any) => {
-	console.log(row, '测试1231');
-	loading.value = true;
+const openDialog = (row: any) => {
+	getBaseData();
+	state.ruleForm.replenishTime = new Date().toISOString();
+	state.auditObj = row;
 	state.dialogVisible = true;
-	try {
-		const responseAnnounce = await editSnapshotBulletinBase();
-		bulletinTypeOptions.value = responseAnnounce.result?.bulletinType ?? [];
-		orgsOptions.value = responseAnnounce.result?.orgsOptions ?? [];
-		bulletinSource.value = responseAnnounce.result?.bulletinSource ?? [];
-		loading.value = false;
-	} catch (error) {
-		console.log(error);
-		loading.value = true;
-	}
 };
 // 获取基础数据
+const replenishTypeOptions = ref<EmptyArrayType>([]);
 const getBaseData = async () => {
 	try {
 		const { result } = await getCitizenRedEnvelopeApprovalAdditionalBaseInfo();
-		console.log(result, '测试');
+		replenishTypeOptions.value = result.replenishType;
 	} catch (e) {
 		console.log(e);
 	}
@@ -136,13 +118,14 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 		loading.value = true;
 		const request = {
 			...state.ruleForm,
+			redPackAuditId: state.auditObj.id,
 		};
 		citizenRedEnvelopeApprovalAdditional(request)
 			.then(() => {
 				loading.value = false;
 				closeDialog();
 				emit('updateList');
-				ElMessage.success('操作成功');
+				ElMessage.success('补充发放成功');
 			})
 			.catch(() => {
 				loading.value = false;

+ 40 - 21
src/views/snapshot/reSend/citizen/index.vue

@@ -31,18 +31,13 @@
 					</el-form>
 				</template>
 				<template #toolbar_buttons>
-					<el-button
-						type="primary"
-						@click="onSend"
-						v-if="state.queryParams.Status === 1"
-						v-auth="'snapshot:reSend:citizen:send'"
-						:disabled="isChecked"
-						:loading="state.loading"
+					<!--						v-if="state.queryParams.Status === 1"-->
+					<el-button type="primary" @click="onSend" v-auth="'snapshot:reSend:citizen:send'" :disabled="isChecked" :loading="state.loading"
 						>批量发送红包<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
 				</template>
 				<template #order_detail="{ row }">
-					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.no }}</order-detail>
 				</template>
 				<template #pager>
 					<pagination
@@ -83,9 +78,11 @@
 
 <script lang="tsx" setup name="snapshotReSendCitizen">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { FormInstance } from 'element-plus';
+import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reSend';
+import { citizenRedEnvelopeApproval, getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reSend';
+import Other from '@/utils/other';
+import { knowledgeLexiconDelete } from '@/api/auxiliary/knowledgeLexicon';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -140,38 +137,38 @@ const gridOptions = reactive<any>({
 	columns: [
 		{ type: 'checkbox', width: 50, align: 'center' },
 		{
-			field: 'name',
+			field: 'no',
 			title: '工单编码',
 			slots: { default: 'order_detail' },
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'creationTime',
 			title: '增加时间',
-			// formatter: 'formatDate',
+			formatter: 'formatDate',
 		},
 		{
-			field: 'guiderReadPackAmountTxt',
+			field: 'phoneNumber',
 			title: '手机号',
 		},
 		{
-			field: 'displayOrder',
+			field: 'amount',
 			title: '金额',
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'receiveTime',
 			title: '发放时间',
-			// formatter: 'formatDate',
+			formatter: 'formatDate',
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'distributionStateTxt',
 			title: '状态',
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'pickupStatusTxt',
 			title: '领取状态',
 		},
 		{
-			field: 'displayOrder',
+			field: 'remark',
 			title: '备注',
 			minWidth: 200,
 		},
@@ -188,6 +185,7 @@ const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
+	requestParams.value = Other.deepClone(state.queryParams);
 	requestParams.value.BeginCreationTime = state.queryParams.zjTime === null ? null : state.queryParams.zjTime[0]; // 增加时间
 	requestParams.value.EndCreationTime = state.queryParams.zjTime === null ? null : state.queryParams.zjTime[1];
 	Reflect.deleteProperty(requestParams.value, 'zjTime'); // 删除无用的参数
@@ -197,10 +195,14 @@ const queryList = () => {
 			gridOptions.data = res.result.items ?? [];
 			state.total = res.result.total ?? 0;
 			gridOptions.loading = false;
+			gridRef.value.clearCheckboxRow();
+			checkTable.value = [];
 		})
 		.finally(() => {
 			state.loading = false;
 			gridOptions.loading = false;
+			gridRef.value.clearCheckboxRow();
+			checkTable.value = [];
 		});
 };
 // 重置表单
@@ -236,7 +238,24 @@ const isChecked = computed(() => {
 });
 
 // 批量发送红包
-const onSend = () => {};
+const onSend = () => {
+	const ids = checkTable.value.map((item: any) => item.id);
+	ElMessageBox.confirm(`您确认要批量发送红包选中的工单?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(() => {
+			citizenRedEnvelopeApproval({ ids }).then(() => {
+				ElMessage.success('批量发送成功');
+				queryList();
+			});
+		})
+		.catch(() => {});
+};
 // 页面加载时
 onMounted(() => {
 	queryList();