zhangchong 4 місяців тому
батько
коміт
f30c71ca8d

+ 45 - 1
src/api/snapshot/reAudit.ts

@@ -67,4 +67,48 @@ export const citizenRedEnvelopeApproval = (data: object) => {
 		method: 'put',
 		data,
 	});
-};
+}
+/**
+ * @description 添加备注页面基础信息
+ * @param {object} params
+ */
+export const getCitizenRedEnvelopeApprovalRemarkBaseInfo = (params?: object) => {
+	return request({
+		url: `/api/v1/RedPack/audit/remark/basedata`,
+		method: 'get',
+		params,
+	});
+}
+/**
+ * @description 添加备注
+ * @param {object} data
+ */
+export const citizenRedEnvelopeApprovalRemark = (data: object) => {
+	return request({
+		url: `/api/v1/RedPack/audit/remark`,
+		method: 'put',
+		data,
+	});
+}
+/**
+ * @description 添加补充发放信息基础信息
+ * @param {object} params
+ */
+export const getCitizenRedEnvelopeApprovalAdditionalBaseInfo = (params?: object) => {
+	return request({
+		url: `/api/v1/RedPack/record/basedata`,
+		method: 'get',
+		params,
+	});
+}
+/**
+ * @description 添加补充发放信息
+ * @param {object} data
+ */
+export const citizenRedEnvelopeApprovalAdditional = (data: object) => {
+	return request({
+		url: `/api/v1/RedPack/record`,
+		method: 'put',
+		data,
+	});
+}

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

@@ -0,0 +1,16 @@
+/*
+ * @Author: zc
+ * @description 随手拍-红包发放
+ */
+import request from '@/utils/request';
+/**
+ * @description 获取市民红包发放列表
+ * @param {object} params
+ */
+export const getCitizenRedEnvelopeApprovalList = (params?: object) => {
+	return request({
+		url: '/api/v1/RedPack/record',
+		method: 'get',
+		params,
+	});
+};

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

@@ -1,26 +1,25 @@
 <template>
 	<el-dialog v-model="state.dialogVisible" width="30%" draggable title="添加备注" @close="close">
 		<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading">
-			<el-form-item label="实发金额" prop="citizenReadPackAmount" :rules="[{ required: true, message: '请填写实发金额', trigger: 'blur' }]">
-				<el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写实发金额" />
+			<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="请填写实发金额" />
 			</el-form-item>
-			<el-form-item label="发放结果" prop="isPass">
-				<el-radio-group v-model="state.ruleForm.isPass">
-					<el-radio value="0">红包发放失败</el-radio>
-					<el-radio value="1">红包发放成功</el-radio>
+			<el-form-item label="发放结果" prop="isSend">
+				<el-radio-group v-model="state.ruleForm.isSend" @change="selectIsSend">
+					<el-radio :value="false">红包发放失败</el-radio>
+					<el-radio :value="true">红包发放成功</el-radio>
 				</el-radio-group>
 			</el-form-item>
-			<el-form-item label="发放失败原因" prop="isPass">
-				<el-radio-group v-model="state.ruleForm.isPass">
-					<el-radio value="0">无法联系</el-radio>
-					<el-radio value="1">婉拒红包</el-radio>
+			<el-form-item label="发放失败原因" prop="failCase" v-if="!state.ruleForm.isSend">
+				<el-radio-group v-model="state.ruleForm.failCase">
+					<el-radio v-for="item in failCaseOptions" :value="item.key" :label="item.value" :key="item.key"></el-radio>
 				</el-radio-group>
 			</el-form-item>
-			<el-form-item label="备注" prop="remark" :rules="[{ required: true, message: '请填写备注', trigger: 'blur' }]">
+			<el-form-item label="备注" prop="sendRemarks" :rules="[{ required: true, message: '请填写备注', trigger: 'blur' }]">
 				<el-input
 					type="textarea"
 					:autosize="{ minRows: 6, maxRows: 10 }"
-					v-model="state.ruleForm.remark"
+					v-model="state.ruleForm.sendRemarks"
 					placeholder="请填写备注"
 					maxlength="200"
 					show-word-limit
@@ -37,33 +36,53 @@
 </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 { citizenRedEnvelopeApprovalRemark, getCitizenRedEnvelopeApprovalRemarkBaseInfo } from '@/api/snapshot/reAudit';
 // 引入组件
-const Editor = defineAsyncComponent(() => import('@/components/Editor/index.vue')); // 富文本编辑器
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
 	ruleForm: {
-		citizenReadPackAmount: 0, // 实发金额
-		isPass: '0',
-		remark: null,
+		acutalAmount: 0, // 实发金额
+		isSend: false,
+		sendRemarks: null,
+		failCase: 0,
 	},
+	auditObj: {},
 });
 let loading = ref<boolean>(false); // 加载状态
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
-const openDialog = async (row:any) => {
-	console.log(row,'测试1231')
+const openDialog = (row: any) => {
+	state.auditObj = row;
 	state.dialogVisible = true;
+	getBaseData();
+};
+// 获取基础数据
+const failCaseOptions = ref<EmptyArrayType>([]);
+const getBaseData = async () => {
+	try {
+		const { result } = await getCitizenRedEnvelopeApprovalRemarkBaseInfo();
+		failCaseOptions.value = result.failCase;
+	} catch (e) {
+		console.log(e);
+	}
+};
+// 选择发送状态
+const selectIsSend = (val: boolean) => {
+	if (val) {
+		state.ruleForm.failCase = null;
+		if (state.auditObj.approvedAmount) {
+			state.ruleForm.acutalAmount = state.auditObj.approvedAmount;
+		}
+	} else {
+		state.ruleForm.failCase = 0;
+	}
 };
-
 // 保存
 const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -72,8 +91,9 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 		loading.value = true;
 		const request = {
 			...state.ruleForm,
+			redPackAuditId:state.auditObj.id,
 		};
-		addSnapshotBulletin(request)
+		citizenRedEnvelopeApprovalRemark(request)
 			.then(() => {
 				loading.value = false;
 				closeDialog();

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

@@ -23,9 +23,7 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="state.ruleForm.nextStepCode">
-						<el-form-item label="特提次数" prop="cause">
-							{{ state.orderDetail.specialNum }}次
-						</el-form-item>
+						<el-form-item label="特提次数" prop="cause"> {{ state.orderDetail.specialNum }}次 </el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="特提理由" prop="reason" :rules="[{ required: true, message: '请填写特提理由', trigger: 'blur' }]">
@@ -40,7 +38,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="files" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-							<annex-list name="特提附件" v-model:format="filesFormat" :businessId="state.orderDetail.id" classify="特提附件" />
+							<annex-list name="特提附件" v-model:format="filesFormat" :businessId="state.orderDetail.orderId" classify="特提附件" />
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -98,6 +96,7 @@ 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;
@@ -139,8 +138,6 @@ const mouseup = () => {
 // 选择节点确定处理对象
 const stores = useUserInfo();
 const { userInfos } = storeToRefs(stores);
-const storesThemeConfig = useThemeConfig();
-const { themeConfig } = storeToRefs(storesThemeConfig);
 const selectTrace = (val: any, choose?: boolean) => {
 	const next = steps.value.find((item) => item.key === val);
 	if (choose) state.ruleForm.nextStepCode = val;
@@ -174,7 +171,7 @@ const selectTrace = (val: any, choose?: boolean) => {
 	}
 	queryHandleTime();
 	// 若终止申请已同意的工单再次被特提后是无法重新派单给承办部门,若选择了派给承办部门则提示:“该工单已终止办理。”若派给非承办部门则是允许的
-	if(isTerminate.value && [2,3].includes(next.businessType)){
+	if (isTerminate.value && [2, 3].includes(next.businessType)) {
 		ElMessage.warning('该工单已终止办理!');
 		ruleFormRef.value?.resetFields('nextStepCode');
 	}
@@ -203,7 +200,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 		let request = {
 			...state.ruleForm,
 			workflowId: state.workflowId,
-			orderId: state.orderDetail.id,
+			orderId: state.orderDetail.acceptTypeCode,
 			files: filesFormat.value,
 			stepCode: state.orderDetail.actualHandleStepCode,
 			stepName: state.orderDetail.actualHandleStepName,

+ 32 - 39
src/views/snapshot/reAudit/components/Re-supply.vue

@@ -8,29 +8,25 @@
 					</el-form-item>
 				</el-col>
 				<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 type="number"></el-input>
+					<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="name" :rules="[{ required: false, message: '请填写开户行', trigger: 'blur' }]">
-						<el-input v-model="state.ruleForm.name" placeholder="请填写开户行" clearable></el-input>
+					<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="citizenReadPackAmount" :rules="[{ required: false, message: '请填写补充金额', trigger: 'blur' }]">
-						<el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写补充金额" />
+					<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="productExpiredTime"
-						:rules="[{ required: false, message: '请选择补充发放时间', trigger: 'change' }]"
-					>
+					<el-form-item label="补充发放时间" prop="replenishTime" :rules="[{ required: false, message: '请选择补充发放时间', trigger: 'change' }]">
 						<el-date-picker
-							v-model="state.ruleForm.productExpiredTime"
-							type="date"
+							v-model="state.ruleForm.replenishTime"
+							type="datetime"
 							placeholder="请选择补充发放时间"
 							class="w100"
 							value-format="YYYY-MM-DD[T]HH:mm:ss"
@@ -50,15 +46,15 @@
 				</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-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="txtRemarks" :rules="[{ required: true, message: '请填写备注', trigger: 'blur' }]">
+					<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.txtRemarks"
+							v-model="state.ruleForm.replenishRemark"
 							placeholder="请填写备注"
 							maxlength="200"
 							show-word-limit
@@ -83,33 +79,22 @@ import { ElMessage, FormInstance } from 'element-plus';
 import { disabledDate } from '@/utils/constants';
 import { ElCheckbox } from 'element-plus';
 import { addSnapshotBulletin, editSnapshotBulletinBase } from '@/api/snapshot/info';
-// 引入组件
-const Editor = defineAsyncComponent(() => import('@/components/Editor/index.vue')); // 富文本编辑器
+import { citizenRedEnvelopeApprovalAdditional, getCitizenRedEnvelopeApprovalAdditionalBaseInfo } from '@/api/snapshot/reAudit';
+import dayjs from 'dayjs';
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
 	ruleForm: {
-		bulletinTypeId: null, // 公告类型
-		bulletinTypeName: null, // 公告类型名称
-		title: null, // 标题
-		no: null, // 文档编码
-		bulletinTime: null, // 时间
-		departmentId: null, // 所属部门ID
-		sourceOrgName: null, // 所属部门名称
-		departmentName: null, // 来源单位名称
-		isOpen: false, // 公开
-		isBold: false, // 加粗
-		isOpenWebsite: false, // 网站公开
-		isWeibo: false, // 微博公开
-		isWeChat: false, // 微信公开
-		isTop: false, // 置顶
-		isPopup: false, // 弹窗
-		content: null, // 内容
-		videoPath: null, // 视频地址
-		sourceMode: '1', // 来源方式 默认自建
-		isSendSms: true,
+		name: null, // 姓名
+		bankCardNo: null, // 卡号
+		openBank: null, // 开户行
+		replenishAmount: null, // 补充金额
+		replenishTime: dayjs().toDate(), // 补充发放时间
+		productExpiredTime: null, // 补充奖励类型
+		replenishRemark: null, // 备注
+		isSendSMS: true, // 发送短信
 	},
 });
 let loading = ref<boolean>(false); // 加载状态
@@ -134,7 +119,15 @@ const openDialog = async (row: any) => {
 		loading.value = true;
 	}
 };
-
+// 获取基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await getCitizenRedEnvelopeApprovalAdditionalBaseInfo();
+		console.log(result, '测试');
+	} catch (e) {
+		console.log(e);
+	}
+};
 // 保存
 const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
@@ -144,7 +137,7 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 		const request = {
 			...state.ruleForm,
 		};
-		addSnapshotBulletin(request)
+		citizenRedEnvelopeApprovalAdditional(request)
 			.then(() => {
 				loading.value = false;
 				closeDialog();

+ 29 - 22
src/views/snapshot/reSend/citizen/index.vue

@@ -4,26 +4,20 @@
 			<vxe-grid v-bind="gridOptions" ref="gridRef" @checkbox-all="selectAllChangeEvent" @checkbox-change="selectChangeEvent">
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
-						<el-form-item label="发送状态" prop="isPass">
-							<el-radio-group v-model="state.queryParams.isPass">
-								<el-radio value="0">发送成功</el-radio>
-								<el-radio value="1">发送失败</el-radio>
-								<el-radio value="2">婉拒</el-radio>
-								<el-radio value="3">未发送</el-radio>
+						<el-form-item label="发送状态" prop="Status">
+							<el-radio-group v-model="state.queryParams.Status" @change="handleQuery">
+								<el-radio :value="0">发送成功</el-radio>
+								<el-radio :value="1">发送失败</el-radio>
+								<el-radio :value="3">婉拒</el-radio>
+								<el-radio :value="2">未发送</el-radio>
 							</el-radio-group>
 						</el-form-item>
-						<el-form-item label="工单编码" prop="CaseName">
-							<el-input
-								v-model="state.queryParams.CaseName"
-								placeholder="请填写工单编码"
-								clearable
-								@keyup.enter="handleQuery"
-								class="keyword-input"
-							/>
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="请填写工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
-						<el-form-item label="手机号" prop="IndustryName">
+						<el-form-item label="手机号" prop="PhoneNumber">
 							<el-input
-								v-model="state.queryParams.IndustryName"
+								v-model="state.queryParams.PhoneNumber"
 								placeholder="请填写手机号"
 								clearable
 								@keyup.enter="handleQuery"
@@ -37,7 +31,13 @@
 					</el-form>
 				</template>
 				<template #toolbar_buttons>
-					<el-button type="primary" @click="onSend" v-auth="'snapshot:reSend:citizen:send'" :disabled="isChecked" :loading="state.loading"
+					<el-button
+						type="primary"
+						@click="onSend"
+						v-if="state.queryParams.Status === 1"
+						v-auth="'snapshot:reSend:citizen:send'"
+						:disabled="isChecked"
+						:loading="state.loading"
 						>批量发送红包<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
 				</template>
@@ -84,8 +84,8 @@
 <script lang="tsx" setup name="snapshotReSendCitizen">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reSend';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -98,9 +98,12 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 20,
-		CaseName: null, // 线索名称
-		IndustryName: null, // 行业类型
-		zjTime: [],
+		zjTime: [], // 增加时间
+		BeginCreationTime: null,
+		EndCreationTime: null,
+		Status: 0, // 状态 默认发送成功
+		PhoneNumber: null, // 手机号
+		No: null, // 工单编号
 	},
 	total: 0, // 总条数
 });
@@ -181,10 +184,14 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
+const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getClueList(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'); // 删除无用的参数
+	getCitizenRedEnvelopeApprovalList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];