|
@@ -1,7 +1,12 @@
|
|
|
<template>
|
|
|
<el-drawer
|
|
|
:close-on-click-modal="false"
|
|
|
- class="local-launch_drawer-wrap" :title="record.processName" :model-value="modelValue" size="760px" @update:model-value="updateModelValue">
|
|
|
+ class="local-launch_drawer-wrap"
|
|
|
+ :title="record.processName"
|
|
|
+ :model-value="modelValue"
|
|
|
+ size="760px"
|
|
|
+ @update:model-value="updateModelValue"
|
|
|
+ >
|
|
|
<div class="info-wrap">
|
|
|
<el-divider content-position="left">{{ record.processName }}表单</el-divider>
|
|
|
<FormCreate class="form-wrap" :option="formOption" :rule="formRule" />
|
|
@@ -15,28 +20,42 @@
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<div style="padding-bottom: 6px">{{ v.name }}</div>
|
|
|
- <div v-if="v.type !== 0" style="display: flex; align-items: center; gap: 6px">
|
|
|
- <el-button :icon="Plus" style="width: 32px" @click="selectHandler(v.name)" />
|
|
|
+ <div v-if="v.type === 1" style="display: flex; align-items: center; gap: 6px">
|
|
|
+ <el-tooltip content="添加用户" placement="left">
|
|
|
+ <el-button style="width: 32px" @click="selectHandler(v.name, 1)">
|
|
|
+ <svg-icon style="font-size: 18px" icon-class="flow-user-add" />
|
|
|
+ </el-button>
|
|
|
+ </el-tooltip>
|
|
|
<FlowNodeAvatar v-for="(item, index) in userMap.get(v.name).assignees" :key="index" :name="item.name" style="margin-top: 5px" />
|
|
|
</div>
|
|
|
+ <div v-if="v.type === 2" style="display: flex; align-items: center; gap: 6px">
|
|
|
+ <el-tooltip content="添加角色" placement="left">
|
|
|
+ <el-button style="width: 32px" @click="selectHandler(v.name, 2)">
|
|
|
+ <svg-icon style="font-size: 18px" icon-class="flow-group-add" />
|
|
|
+ </el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ <FlowNodeAvatar v-for="(item, index) in userMap.get(v.name).assignees" :key="index" :name="item.name" style="margin-top: 5px">
|
|
|
+ <template #avatar>
|
|
|
+ <svg-icon icon-class="flow-group" color="#fff" />
|
|
|
+ </template>
|
|
|
+ </FlowNodeAvatar>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-timeline-item>
|
|
|
</el-timeline>
|
|
|
<el-divider></el-divider>
|
|
|
</div>
|
|
|
|
|
|
- <template #footer>
|
|
|
- 123
|
|
|
- </template>
|
|
|
+ <template #footer> 123 </template>
|
|
|
</el-drawer>
|
|
|
<use-select ref="useSelectRef"></use-select>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
+import SvgIcon from '@/components/SvgIcon/index.vue'
|
|
|
import model from '@/api/flow/process'
|
|
|
import viewForm from '@/utils/form'
|
|
|
import { ref, shallowRef, computed, reactive } from 'vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
-import { Plus } from '@element-plus/icons-vue'
|
|
|
import UseSelect from '@/components/scWorkflow/select.vue'
|
|
|
import FlowNodeAvatar from '@/components/Flow/FlowNodeAvatar.vue'
|
|
|
type Props = {
|
|
@@ -51,11 +70,11 @@ const emit = defineEmits<{
|
|
|
const updateModelValue = (bool: boolean) => emit('update:modelValue', bool)
|
|
|
const userMap = ref(new Map())
|
|
|
const useSelectRef = ref()
|
|
|
-const selectHandler = (name: string) => {
|
|
|
+const selectHandler = (name: string, type: number) => {
|
|
|
if (!userMap.value.get(name)) {
|
|
|
- userMap.value.set(name, { assignees: [], type: 1 })
|
|
|
+ userMap.value.set(name, { assignees: [], type })
|
|
|
}
|
|
|
- useSelectRef.value.open(1, userMap.value.get(name).assignees)
|
|
|
+ useSelectRef.value.open(type, userMap.value.get(name).assignees)
|
|
|
}
|
|
|
const FormCreate = viewForm.$form()
|
|
|
const formOption = ref({
|