|
@@ -1,39 +1,34 @@
|
|
<template>
|
|
<template>
|
|
<hc-new-dialog widths="600px" bg-color="#fff" :show="isShow" title="流程上报" @save="modalSave" @close="modalClose">
|
|
<hc-new-dialog widths="600px" bg-color="#fff" :show="isShow" title="流程上报" @save="modalSave" @close="modalClose">
|
|
- <el-form ref="formRef" class="p-4" label-position="top" :model="formModel" :rules="formRules" size="large">
|
|
|
|
- <el-form-item label="任务名称:" prop="key1">
|
|
|
|
- <el-input v-model="formModel.key1" :autosize="{ minRows: 2, maxRows: 6 }" placeholder="请输入名称" type="textarea" />
|
|
|
|
|
|
+ <el-form ref="formRef" class="p-4" :model="formModel" :rules="formRules" label-width="auto" size="large">
|
|
|
|
+ <el-form-item label="任务名称" prop="taskName">
|
|
|
|
+ <el-input v-model="formModel.taskName" disabled />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="任务流程:" prop="fixedFlowId">
|
|
|
|
- <el-select v-model="formModel.fixedFlowId" block @change="fixedFlowChange">
|
|
|
|
- <template v-for="item in fixedFlowData" :key="item.id">
|
|
|
|
- <el-option :label="item.name" :value="item.id" />
|
|
|
|
- </template>
|
|
|
|
|
|
+ <el-form-item label="任务描述" prop="taskContent">
|
|
|
|
+ <el-input v-model="formModel.taskContent" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入任务描述" type="textarea" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="任务流程" prop="fixedFlowId">
|
|
|
|
+ <el-select v-model="formModel.fixedFlowId" block @change="handleProcessValue">
|
|
|
|
+ <el-option v-for="item in processData" :key="item.id" :disabled="item.disabled" :value="item.id" :label="item.fixedFlowName">
|
|
|
|
+ <el-tooltip v-if="item.tips && item.disabled" class="box-item" effect="light" :content="item.tips " placement="right-end">{{ item.fixedFlowName }}</el-tooltip>
|
|
|
|
+ </el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item v-if="linkUserString" label="下一位审批人员:">
|
|
|
|
- <div class="form-item-div">{{ linkUserString }}</div>
|
|
|
|
|
|
+ <el-form-item v-if="diyProcessUser" label="任务人" prop="userTasks">
|
|
|
|
+ <hc-tasks-user
|
|
|
|
+ :contract-id="contractId" :project-id="projectId" :type="type" :type-data="typeData"
|
|
|
|
+ ui="w-full" :classify-type="classifyType" :table-owner="tableOwner" :node-id="formModel.ids ? formModel.ids : nodeId "
|
|
|
|
+ :info-ids="infoIds" @change="diyProcessUserChange"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item v-else label="任务人">
|
|
|
|
+ <div class="form-item-div">{{ linkUserJoinString }}</div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <template v-else>
|
|
|
|
- <el-form-item label="下一审批岗位:" prop="key2">
|
|
|
|
- <div class="form-item-div">
|
|
|
|
- <el-radio-group v-model="formModel.key2">
|
|
|
|
- <el-radio :label="3">承包商</el-radio>
|
|
|
|
- <el-radio :label="6">监理</el-radio>
|
|
|
|
- <el-radio :label="9">业主</el-radio>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </div>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="下一审批人员:" prop="userId">
|
|
|
|
- <el-select v-model="formModel.userId" block @change="userChange">
|
|
|
|
- <template v-for="item in userData" :key="item.id">
|
|
|
|
- <el-option :label="item.name" :value="item.id" />
|
|
|
|
- </template>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </template>
|
|
|
|
- <el-form-item label="上报说明:">
|
|
|
|
- <el-input v-model="formModel.key4" :autosize="{ minRows: 3, maxRows: 6 }" placeholder="请输入上报说明" type="textarea" />
|
|
|
|
|
|
+ <el-form-item label="上报批次">
|
|
|
|
+ <hc-counter v-model="formModel.batch" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="限定审批时间">
|
|
|
|
+ <hc-counter v-model="formModel.restrictDay" text="(天)" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</hc-new-dialog>
|
|
</hc-new-dialog>
|
|
@@ -41,9 +36,14 @@
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
import { ref, watch } from 'vue'
|
|
import { ref, watch } from 'vue'
|
|
|
|
+import { arrIndex } from 'js-fast-way'
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
- name: {
|
|
|
|
|
|
+ title: {
|
|
|
|
+ type: String,
|
|
|
|
+ default: '上报审批',
|
|
|
|
+ },
|
|
|
|
+ taskName: {
|
|
type: String,
|
|
type: String,
|
|
default: '',
|
|
default: '',
|
|
},
|
|
},
|
|
@@ -51,6 +51,58 @@ const props = defineProps({
|
|
type: String,
|
|
type: String,
|
|
default: null,
|
|
default: null,
|
|
},
|
|
},
|
|
|
|
+ projectId: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ contractId: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ classifyType: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ tableOwner: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ url: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ datas: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => ([]),
|
|
|
|
+ },
|
|
|
|
+ isDatas: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: false,
|
|
|
|
+ },
|
|
|
|
+ addition: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default: () => ({}),
|
|
|
|
+ },
|
|
|
|
+ type: { //first,log,wbs
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ typeData: {
|
|
|
|
+ type: [String, Number, Array, Object],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ trialSelfInspectionRecordId: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ nodeId:{
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: '',
|
|
|
|
+ },
|
|
|
|
+ reportArr: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => ([]),
|
|
|
|
+ },
|
|
})
|
|
})
|
|
|
|
|
|
//事件
|
|
//事件
|
|
@@ -66,72 +118,70 @@ const isShow = defineModel('modelValue', {
|
|
default: false,
|
|
default: false,
|
|
})
|
|
})
|
|
|
|
|
|
-//基础变量
|
|
|
|
-const formRef = ref(null)
|
|
|
|
-//监听
|
|
|
|
-watch(() => [
|
|
|
|
- props.name,
|
|
|
|
- props.ids,
|
|
|
|
-], ([name, ids]) => {
|
|
|
|
- formModel.value = { name: name, ids: ids }
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
//监听
|
|
//监听
|
|
watch(isShow, (val) => {
|
|
watch(isShow, (val) => {
|
|
- if (val) getFixedFlowApi()
|
|
|
|
|
|
+ if (val) {}
|
|
})
|
|
})
|
|
|
|
|
|
-//任务流程
|
|
|
|
-const fixedFlowDefault = [{ id: 0, name: '自定义流程' }]
|
|
|
|
-const fixedFlowData = ref([])
|
|
|
|
-const getFixedFlowApi = () => {
|
|
|
|
- if (isShow.value) {
|
|
|
|
- fixedFlowData.value = fixedFlowDefault
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-//任务流程变化
|
|
|
|
-const linkUserString = ref('')
|
|
|
|
-const fixedFlowChange = (val) => {
|
|
|
|
- if (val === 0) {
|
|
|
|
- linkUserString.value = '测试的审批人员'
|
|
|
|
- } else {
|
|
|
|
- linkUserString.value = ''
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//审批人员
|
|
|
|
-const userData = ref([{ id: 1, name: '测试的' }])
|
|
|
|
-const userChange = () => {
|
|
|
|
-
|
|
|
|
-}
|
|
|
|
|
|
+const processData = ref([])
|
|
|
|
+const projectId = ref(props.projectId)
|
|
|
|
+const contractId = ref(props.contractId)
|
|
|
|
|
|
-//表单变量
|
|
|
|
|
|
+//基础变量
|
|
|
|
+const formRef = ref(null)
|
|
const formModel = ref({
|
|
const formModel = ref({
|
|
- key1: '', fixedFlowId: null,
|
|
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ ids: props.ids,
|
|
|
|
+ userTasks: null,
|
|
|
|
+ taskName: props.taskName,
|
|
|
|
+ taskContent: '',
|
|
|
|
+ fixedFlowId: '',
|
|
|
|
+ batch: 1,
|
|
|
|
+ restrictDay: 1,
|
|
|
|
+ trialSelfInspectionRecordId: props.trialSelfInspectionRecordId,
|
|
|
|
+ ...props.addition,
|
|
})
|
|
})
|
|
-const formRules = {
|
|
|
|
- key1: {
|
|
|
|
- required: true,
|
|
|
|
|
|
+const formRules = ref({
|
|
|
|
+ taskContent: {
|
|
|
|
+ required: false,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
- message: '请输入任务名称',
|
|
|
|
|
|
+ message: '请输入任务描述',
|
|
},
|
|
},
|
|
fixedFlowId: {
|
|
fixedFlowId: {
|
|
required: true,
|
|
required: true,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
message: '请选择任务流程',
|
|
message: '请选择任务流程',
|
|
},
|
|
},
|
|
- key2: {
|
|
|
|
|
|
+ userTasks: {
|
|
required: true,
|
|
required: true,
|
|
trigger: 'blur',
|
|
trigger: 'blur',
|
|
- message: '请选择下一审批岗位',
|
|
|
|
- },
|
|
|
|
- userId: {
|
|
|
|
- required: true,
|
|
|
|
- trigger: 'blur',
|
|
|
|
- message: '请选择下一审批人员',
|
|
|
|
|
|
+ message: '请选择任务人',
|
|
},
|
|
},
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+//流程数据切换
|
|
|
|
+const infoIds = ref('')
|
|
|
|
+const diyProcessUser = ref(false)
|
|
|
|
+const linkUserJoinString = ref('')
|
|
|
|
+const handleProcessValue = (val) => {
|
|
|
|
+ if (val > 0) {
|
|
|
|
+ diyProcessUser.value = false
|
|
|
|
+ const list = processData.value
|
|
|
|
+ const index = arrIndex(list, 'id', val)
|
|
|
|
+ linkUserJoinString.value = list[index]?.linkUserJoinString
|
|
|
|
+ } else {
|
|
|
|
+ linkUserJoinString.value = ''
|
|
|
|
+ diyProcessUser.value = true
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//自定义流程任务人选择完毕
|
|
|
|
+const diyProcessUserChange = (user) => {
|
|
|
|
+ formModel.value.userTasks = user
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
//保存
|
|
//保存
|
|
const modalSave = () => {
|
|
const modalSave = () => {
|
|
emit('finish')
|
|
emit('finish')
|