|
@@ -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
|