Przeglądaj źródła

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

luoyali 1 rok temu
rodzic
commit
36c6b331b7

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

@@ -12,7 +12,8 @@ const api = {
 	consentTask: '/v1/process-task/consent', // 审批同意
 	rejectionTask: '/v1/process-task/rejection', // 审批拒绝
 	reviewTask: '/v1/process-task/comment', // 评论审批
-	approvalInfo: '/v1/process-task/approval-info' // 审批详情
+	approvalInfo: '/v1/process-task/approval-info', // 审批详情
+	appendNode: '/v1/process-task/append-node' // 加签审批
 }
 
 // 待认领任务分页列表
@@ -103,6 +104,15 @@ export function processApprovalInfoApi(taskId: string): AxiosPromise {
 	})
 }
 
+// 加签审批
+export function processAppendNodeApi(data: any): AxiosPromise {
+	return request({
+		url: api.appendNode,
+		method: 'post',
+		data
+	})
+}
+
 // 查看审批信息
 export function processTaskApprovalInfo(taskId: string): AxiosPromise {
 	return request({
@@ -119,5 +129,6 @@ export default {
 	processRejectionTaskApi,
 	processReviewTaskApi,
 	processApprovalInfoApi,
-	processTaskApprovalInfo
+	processTaskApprovalInfo,
+	processAppendNodeApi
 }

+ 50 - 49
src/views/approve/components/addSignDialog.vue

@@ -2,15 +2,15 @@
 	<!-- 加签审批弹窗 -->
 	<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="resource" :rules="[{ required: true, message: '请选择加签方式' }]">
-				<el-radio-group v-model="form.resource">
-					<el-radio value="Sponsorship"
+			<el-form-item label="加签方式">
+				<el-radio-group v-model="form.type">
+					<el-radio value="9"
 						>前加签
 						<el-tooltip effect="dark" content="在当前节点之前增加一个审批节点,当新增的节点同意后,再流转至当前节点。" placement="top">
 							<el-button text :icon="QuestionFilled" style="padding: 0"></el-button>
 						</el-tooltip>
 					</el-radio>
-					<el-radio value="Venue"
+					<el-radio value="11"
 						>后加签
 						<el-tooltip effect="dark" content="在当前节点之后增加一个审批节点,当前节点会默认同意,并流转至新增的节点。" placement="top">
 							<el-button text :icon="QuestionFilled" style="padding: 0"></el-button>
@@ -18,13 +18,13 @@
 					</el-radio>
 				</el-radio-group>
 			</el-form-item>
-			<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="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 v-if="false" prop="attachment" label="附件" class="example-img-box">
 				<!--'.docx', '.doc', '.pptx', '.ppt', '.xlsx', '.xls', '.zip', '.csv', '.pdf', '.png', '.jpg'  因前端不支持图片以外格式,所以注释 -->
@@ -49,24 +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 { processAppendNodeApi } 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
@@ -74,51 +67,55 @@ const props = defineProps({
 })
 const btnDisabled = ref(false)
 const form = reactive({
-	resource: '',
-	deliverTo: '',
-	review: '',
-	attachment: []
+	content: '',
+	userId: '',
+	type: 9
 })
 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 processAppendNodeApi(formData)
+				closeDialog()
 				btnDisabled.value = false
 			}
 		})
 		.catch(err => {
-			console.error('挂起订单表单拦截', err)
 			btnDisabled.value = false
 		})
 }
@@ -127,6 +124,10 @@ const closeDialog = () => {
 	$myEmit('update:modelValue', false)
 }
 
+onMounted(() => {
+	getUserList()
+})
+
 const reviewVisibleDialog = computed({
 	get() {
 		return props.modelValue