Przeglądaj źródła

feat: 转交联调 100%, 转交方式有问题,等待处理

luoyali 1 rok temu
rodzic
commit
57a6da3314

+ 13 - 2
src/api/flow/processTask.ts

@@ -13,7 +13,8 @@ const api = {
 	rejectionTask: '/v1/process-task/rejection', // 审批拒绝
 	reviewTask: '/v1/process-task/comment', // 评论审批
 	approvalInfo: '/v1/process-task/approval-info', // 审批详情
-	appendNode: '/v1/process-task/append-node' // 加签审批
+	appendNode: '/v1/process-task/append-node', // 加签审批
+	transfer: '/v1/process-task/transfer' // 转交任务
 }
 
 // 待认领任务分页列表
@@ -113,6 +114,15 @@ export function processAppendNodeApi(data: any): AxiosPromise {
 	})
 }
 
+// 转交审批
+export function processTransferApi(data: any): AxiosPromise {
+	return request({
+		url: api.transfer,
+		method: 'post',
+		data
+	})
+}
+
 // 查看审批信息
 export function processTaskApprovalInfo(taskId: string): AxiosPromise {
 	return request({
@@ -130,5 +140,6 @@ export default {
 	processReviewTaskApi,
 	processApprovalInfoApi,
 	processTaskApprovalInfo,
-	processAppendNodeApi
+	processAppendNodeApi,
+	processTransferApi
 }

+ 1 - 1
src/views/approve/components/addSignDialog.vue

@@ -2,7 +2,7 @@
 	<!-- 加签审批弹窗 -->
 	<el-dialog v-model="reviewVisibleDialog" title="审批加签" width="700" destroy-on-close>
 		<el-form ref="formRef" v-loading="uploadLoading" label-position="top" element-loading-text="图片上传中..." :model="form" label-width="80px">
-			<el-form-item label="加签方式">
+			<el-form-item label="加签方式" prop="type">
 				<el-radio-group v-model="form.type">
 					<el-radio value="9"
 						>前加签

+ 63 - 45
src/views/approve/components/deliverToReviewDialog.vue

@@ -2,15 +2,31 @@
 	<!-- 转交审批弹窗 -->
 	<el-dialog v-model="reviewVisibleDialog" title="转交审批" width="700" destroy-on-close>
 		<el-form ref="formRef" v-loading="uploadLoading" label-position="top" element-loading-text="图片上传中..." :model="form" label-width="80px">
-			<el-form-item label="转交给" prop="review" :rules="[{ required: true, message: '转交人不能为空' }]">
-				<el-select v-model="form.deliverTo" placeholder="请选择转交人员">
-					<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+			<el-form-item label="转交方式" prop="type">
+				<el-radio-group v-model="form.type">
+					<el-radio value="0"
+						>转办
+						<el-tooltip effect="dark" content="A转给其B审批,B审批后,进入下一节点" placement="top">
+							<el-button text :icon="QuestionFilled" style="padding: 0"></el-button>
+						</el-tooltip>
+					</el-radio>
+					<el-radio value="1"
+						>委派
+						<el-tooltip effect="dark" content="A转给其B审批,B审批后,转给A,A审批后进入下一节点" placement="top">
+							<el-button text :icon="QuestionFilled" style="padding: 0"></el-button>
+						</el-tooltip>
+					</el-radio>
+				</el-radio-group>
+			</el-form-item>
+			<el-form-item label="转交给" prop="userId" :rules="[{ required: true, message: '转交人不能为空' }]">
+				<el-select v-model="form.userId" placeholder="请选择转交人员">
+					<el-option v-for="item in userOptList" :key="item.value" :label="item.label" :value="item.value" />
 				</el-select>
 			</el-form-item>
-			<el-form-item label="审批意见" prop="review">
-				<el-input v-model="form.review" type="textarea" placeholder="请输入审批意见" maxlength="64" show-word-limit> </el-input>
+			<el-form-item label="审批意见" prop="content">
+				<el-input v-model="form.content" type="textarea" placeholder="请输入审批意见" maxlength="64" show-word-limit> </el-input>
 			</el-form-item>
-			<el-form-item prop="attachment" label="附件" class="example-img-box">
+			<el-form-item v-if="false" prop="attachment" label="附件" class="example-img-box">
 				<!--'.docx', '.doc', '.pptx', '.ppt', '.xlsx', '.xls', '.zip', '.csv', '.pdf', '.png', '.jpg'  因前端不支持图片以外格式,所以注释 -->
 				<FileUpload
 					v-model="form.attachment"
@@ -33,23 +49,17 @@
 </template>
 
 <script setup>
-import { computed, reactive, ref } from 'vue'
+import { computed, onMounted, reactive, ref } from 'vue'
 import FileUpload from '@/components/FileUpload.vue'
+import { QuestionFilled } from '@element-plus/icons-vue'
+import user from '@/api/system/user'
+import { processTransferApi } from '@/api/flow/processTask'
 
 const props = defineProps({
 	modelValue: {
 		type: Boolean,
 		default: false
 	},
-	showOrderDesc: {
-		type: Boolean,
-		default: true
-	},
-	// 1-审核 2-复审 3-审核,复审 ,第一版默认审核
-	linkType: {
-		type: String,
-		default: '1'
-	},
 	taskId: {
 		type: String,
 		default: undefined
@@ -57,45 +67,49 @@ const props = defineProps({
 })
 const btnDisabled = ref(false)
 const form = reactive({
-	deliverTo: '',
-	review: '',
-	attachment: []
+	content: '',
+	userId: '',
+	type: 0
 })
 const formRef = ref(null)
 const uploadLoading = ref(false)
-const options = [
-	{
-		value: 'Option1',
-		label: 'Option1'
-	},
-	{
-		value: 'Option2',
-		label: 'Option2'
-	},
-	{
-		value: 'Option3',
-		label: 'Option3'
-	},
-	{
-		value: 'Option4',
-		label: 'Option4'
-	},
-	{
-		value: 'Option5',
-		label: 'Option5'
-	}
-]
-
+const userOptList = ref([])
 const $myEmit = defineEmits(['update:modelValue', 'confirm'])
 
+// 获取用户
+const getUserList = async () => {
+	var params = {
+		data: {
+			keyword: null,
+			departmentId: null
+		},
+		page: 1,
+		pageSize: 99999
+	}
+	const res = await user.userPageApi(params)
+	userOptList.value = res.records.map(item => {
+		return {
+			value: item.id,
+			label: item.username
+		}
+	})
+}
+
 const submitForm = () => {
 	btnDisabled.value = true
-	const formData = { ...form }
+	const formData = { ...form, taskId: props.taskId }
 	formRef.value
 		.validate()
-		.then(valid => {
+		.then(async valid => {
 			if (valid) {
-				emit('confirm', formData)
+				userOptList.value.forEach(item => {
+					if (item.value === formData.userId) {
+						formData.username = item.label
+					}
+				})
+				console.log(formData, '===')
+				await processTransferApi(formData)
+				closeDialog()
 				btnDisabled.value = false
 			}
 		})
@@ -109,6 +123,10 @@ const closeDialog = () => {
 	$myEmit('update:modelValue', false)
 }
 
+onMounted(() => {
+	getUserList()
+})
+
 const reviewVisibleDialog = computed({
 	get() {
 		return props.modelValue