Browse Source

reactor:新增工单撤销弹窗和按钮;

zhangchong 6 months ago
parent
commit
2a6c1e45ab

+ 0 - 13
src/components/OrderDetail/index.vue

@@ -553,8 +553,6 @@
 	</audit-record>
 	<!-- 工单补充 -->
 	<order-supply ref="orderSupplyRef" @onSupplySuccess="onSupplySuccess" />
-	<!-- 工单撤销 -->
-	<order-revoke ref="orderRevokeRef" @onRevokeSuccess="onRevokeSuccess" />
 	<!-- 工单督办 -->
 	<order-supervise ref="orderSuperviseRef" @updateList="onSuperviseSuccess" />
 	<!-- 工单催办 -->
@@ -583,7 +581,6 @@ import { useThemeConfig } from '@/stores/themeConfig';
 // 引入组件
 const OrderExpandDetail = defineAsyncComponent(() => import('@/views/business/order/components/Order-expand-detail.vue')); // 扩展信息
 const OrderSupply = defineAsyncComponent(() => import('@/views/business/order/components/Order-supply.vue')); // 工单补充
-const OrderRevoke = defineAsyncComponent(() => import('@/views/business/order/components/Order-revoke.vue')); // 工单撤销
 const OrderSupervise = defineAsyncComponent(() => import('@/views/business/supervise/components/Order-supervise.vue')); // 工单督办
 const OrderUrge = defineAsyncComponent(() => import('@/views/business/urge/components/Order-urge.vue')); // 工单催办
 const OrderRepeat = defineAsyncComponent(() => import('@/views/business/order/components/Order-repeat.vue')); // 重复工单
@@ -824,16 +821,6 @@ const onSupplySuccess = () => {
 	handleClick(state.activeName);
 	emit('updateList');
 };
-// 撤销
-const orderRevokeRef = ref<RefType>(); // 工单撤销
-const onRevoke = () => {
-	orderRevokeRef.value.openDialog(state.ruleForm);
-};
-// 撤销提交成功
-const onRevokeSuccess = () => {
-	handleClick(state.activeName);
-	emit('updateList');
-};
 // 督办
 const orderSuperviseRef = ref<RefType>(); // 工单督办
 const onSupervise = () => {

+ 19 - 47
src/views/business/order/components/Order-revoke.vue

@@ -12,47 +12,22 @@
 	>
 		<el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
 			<el-row :gutter="35">
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item label="工单编码">
-						{{ state.orderDetail.no }}
-					</el-form-item>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item label="工单标题">
-						{{ state.orderDetail.title }}
-					</el-form-item>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item label="撤销人">
-						{{ userInfos.name }}
-					</el-form-item>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item label="撤销部门">
-						{{ userInfos.orgName }}
-					</el-form-item>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-					<el-form-item label="撤销时间">
-						{{ formatDate(Date(), 'YYYY-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="撤销短信" prop="acceptSms" :rules="[{ required: false, message: '请选择发送督办短信', trigger: 'change' }]">
-						<el-checkbox v-model="state.ruleForm.acceptSms" label="发送撤销短信" />
-					</el-form-item>
-				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-					<el-form-item label="撤销原因" class="textarea" prop="opinion" :rules="[{ required: true, message: '请填写撤销原因', trigger: 'blur' }]">
+					<el-form-item label="撤销说明" class="textarea" prop="opinion" :rules="[{ required: true, message: '请填写撤销说明', trigger: 'blur' }]">
 						<common-advice
 							@chooseAdvice="chooseAdvice"
 							v-model="state.ruleForm.opinion"
-							placeholder="请填写撤销原因"
+							placeholder="请填写撤销说明"
 							:loading="state.loading"
-							:commonEnum="commonEnum['OrderCirculation']"
+							:commonEnum="commonEnum.OrderCirculation"
 						/>
 					</el-form-item>
 				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="" prop="acceptSms" :rules="[{ required: false, message: '请选择发送撤销短信', trigger: 'change' }]">
+						<el-checkbox v-model="state.ruleForm.acceptSms" label="发送撤销短信" />
+					</el-form-item>
+				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 					<el-form-item label="附件" prop="additions">
 						<annex-list name="撤销附件" ref="annexListRef" :businessId="state.orderDetail.id" classify="撤销上传" />
@@ -63,7 +38,7 @@
 		<template #footer>
 			<span class="dialog-footer">
 				<el-button @click="closeDialog" class="default-button">取 消</el-button>
-				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading">提 交</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading">撤 销</el-button>
 			</span>
 		</template>
 	</el-dialog>
@@ -73,9 +48,6 @@
 import { reactive, ref, defineAsyncComponent } from 'vue';
 import { ElMessageBox, FormInstance } from 'element-plus';
 import { throttle } from '@/utils/tools';
-import { storeToRefs } from 'pinia';
-import { useUserInfo } from '@/stores/userInfo';
-import { formatDate } from '@/utils/formatTime';
 import { commonEnum } from '@/utils/constants';
 import { workflowCancel } from '@/api/system/workflow';
 
@@ -84,7 +56,7 @@ const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/inde
 const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
 
 // 定义子组件向父组件传值/事件
-const emit = defineEmits(['onSupplySuccess']);
+const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
@@ -98,13 +70,13 @@ const state = reactive<any>({
 	transform: 'translate(0px, 0px)', // 滚动条位置
 });
 const ruleFormRef = ref<RefType>();
-const storesUserInfo = useUserInfo();
-const { userInfos } = storeToRefs(storesUserInfo); // 用户信息
 // 打开弹窗
 const openDialog = async (val: any) => {
-	state.orderDetail = val;
-	state.ruleForm.workflowId = val.workflowId;
+	// state.orderDetail = val;
+	// state.ruleForm.workflowId = val.workflowId;
+	console.log(val,'111')
 	state.dialogVisible = true;
+	state.loading = false;
 };
 // 关闭弹窗
 const closeDialog = () => {
@@ -129,7 +101,7 @@ const onSubmit = throttle((formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.validate((valid: boolean) => {
 		if (!valid) return;
-		ElMessageBox.confirm(`确认撤销?`, '提示', {
+		ElMessageBox.confirm(`确认要设置撤销?`, '提示', {
 			confirmButtonText: '确认',
 			cancelButtonText: '取消',
 			type: 'warning',
@@ -139,20 +111,20 @@ const onSubmit = throttle((formEl: FormInstance | undefined) => {
 		})
 			.then(() => {
 				state.loading = true;
-				let request = {
+				const request = {
 					...state.ruleForm,
 					files: annexListRef.value?.fileList,
 				};
-				workflowCancel(request)
+				/*workflowCancel(request)
 					.then(() => {
 						state.loading = false;
 						state.dialogVisible = false;
-						emit('onSupplySuccess');
+						emit('updateList');
 					})
 					.catch(() => {
 						state.loading = false;
 						state.dialogVisible = false;
-					});
+					});*/
 			})
 			.catch(() => {});
 	});

+ 15 - 2
src/views/business/order/index.vue

@@ -153,9 +153,9 @@
 											<el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
 										</el-checkbox-group>
 									</el-form-item>
-									<!--									<el-form-item>
+									<el-form-item>
 										<el-button @click="contentRetrieval"><SvgIcon name="ele-DocumentCopy" class="mr5" />内容检索</el-button>
-									</el-form-item>-->
+									</el-form-item>
 								</el-col>
 							</el-row>
 							<el-form-item label="工单标题" prop="Keyword">
@@ -188,6 +188,9 @@
 						<el-button type="primary" @click="onCreateRepeatEvent" :loading="state.loading">
 							<SvgIcon name="ele-Plus" class="mr5" />创建重复性事件
 						</el-button>
+						<el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected" >
+							<SvgIcon name="ele-Setting" class="mr5" />设置撤销
+						</el-button>
 						<el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
 							>设置观察件
 						</el-button>
@@ -415,6 +418,8 @@
 				</span>
 			</template>
 		</el-dialog>
+		<!-- 工单撤销 -->
+		<order-revoke ref="orderRevokeRef" @updateList="handleQuery" />
 	</div>
 </template>
 <script setup lang="tsx" name="order">
@@ -435,6 +440,7 @@ import mittBus from '@/utils/mitt';
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 const RepeatEventEdit = defineAsyncComponent(() => import('@/views/business/repeatEvent/components/Repeat-event-edit.vue')); // 编辑重复性事件
 const OrderReturn = defineAsyncComponent(() => import('@/views/business/return/components/Apply.vue')); // 工单退回
+const OrderRevoke = defineAsyncComponent(() => import('@/views/business/order/components/Order-revoke.vue')); // 工单撤销
 
 // 定义变量内容
 const state = reactive<any>({
@@ -772,6 +778,12 @@ const repeatEventEditRef = ref<RefType>();
 const onCreateRepeatEvent = () => {
 	repeatEventEditRef.value.openDialog();
 };
+// 设置撤销
+const orderRevokeRef = ref<RefType>();
+const onRevoke = ()=>{
+	const ids = proTableRef.value.selectedList.map((item: any) => item.id);
+	orderRevokeRef.value.openDialog(ids);
+}
 // 工单省退回
 const orderReturnRef = ref<RefType>(); // 工单退回ref
 const onReturn = (row: any) => {
@@ -802,6 +814,7 @@ const onJbExport = () => {
 		})
 		.catch(() => {});
 };
+//
 // 打开内容检索
 const contentRetrieval = () => {
 	state.dialogVisible = !state.dialogVisible;