<script lang="ts" setup>
|
import { computed } from 'vue';
|
|
import { openWindow } from '@jnpf/utils';
|
|
import { Badge } from 'ant-design-vue';
|
|
import { APP_PREFIX } from '#/utils/constants';
|
|
const props = defineProps({
|
list: {
|
default: () => [],
|
type: Array as any,
|
},
|
});
|
|
const getList = computed(() => props.list.filter((o) => !o.urlAddress.includes('flowQuickLaunch')));
|
const ifShowAdd = computed(() => props.list.some((o) => o.urlAddress.includes('flowQuickLaunch')));
|
|
function openSystem(url) {
|
const fullUrl = `${window.location.origin}/${APP_PREFIX}workFlow/${url}`;
|
openWindow(fullUrl);
|
}
|
function getClass(url: string) {
|
if (url.includes('flowToSign')) return 'flow-item-flowToSign';
|
if (url.includes('flowTodo')) return 'flow-item-flowTodo';
|
if (url.includes('flowDoing')) return 'flow-item-flowDoing';
|
if (url.includes('flowDone')) return 'flow-item-flowDone';
|
if (url.includes('flowCirculate')) return 'flow-item-flowCirculate';
|
return '';
|
}
|
</script>
|
<template>
|
<div class="flow-pane dashboard-pane">
|
<div class="dashboard-header">
|
<div class="dashboard-header-title">审批中心</div>
|
<div class="dashboard-header-more" @click="openSystem('')">更多<i class="icon-ym icon-ym-right"></i></div>
|
</div>
|
<div class="flow-pane-main">
|
<div class="flow-list" v-if="getList.length">
|
<div class="flow-item" :class="getClass(item.urlAddress)" v-for="(item, i) in getList" :key="i" @click="openSystem(item.urlAddress)">
|
<div class="flow-item-icon">
|
<i :class="item.icon"></i>
|
</div>
|
<div class="flow-item-title">{{ item.fullName }}</div>
|
<Badge :count="item.count || 0" class="flow-item-num" />
|
</div>
|
</div>
|
<div class="add-flow" @click="openSystem('workFlow/flowQuickLaunch')" v-if="ifShowAdd">
|
<i class="icon-ym icon-ym-add-flow"></i>
|
<div class="add-flow-title">发起流程</div>
|
</div>
|
</div>
|
</div>
|
</template>
|