| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- import { computed, type ComputedRef } from "vue";
- import { GROUP_LABELS, GROUP_PROTECT_UNIT, GROUP_TO_REVIEW_PROGRESS, SUBMITED_PROGRESS, GROUP_PROVINCE, GROUP_DISTRICT_CENTER, GROUP_DISTRICT, GROUP_DISTRICT_ST, GROUP_DISTRICT_ND, GROUP_DISTRICT_RD, GROUP_DISTRICT_TH, GROUP_DISTRICT_FI } from "./GroupData";
- import { useAuthStore } from "@/stores/auth";
- export function useReview(sourceProgress?: ComputedRef<number>) {
-
- const authStore = useAuthStore();
- const currentUserGroup = computed(() =>
- (authStore.userInfo?.adminGroup || []).find((group) => GROUP_TO_REVIEW_PROGRESS[group.id])
- );
- const reviewProgressInfo = computed(() => {
- return GROUP_TO_REVIEW_PROGRESS[currentUserGroup.value?.id ?? 0];
- });
- /**
- * 是否是最终级别
- */
- const isEndLevel = computed(() => {
- return currentUserGroup.value?.id === GROUP_PROVINCE;
- });
- /**
- * 是否是区级审核级别
- */
- const isDistrict = computed(() => {
- return (
- currentUserGroup.value?.id === GROUP_DISTRICT_FI
- || currentUserGroup.value?.id === GROUP_DISTRICT_FI
- || currentUserGroup.value?.id === GROUP_DISTRICT_ND
- || currentUserGroup.value?.id === GROUP_DISTRICT_RD
- || currentUserGroup.value?.id === GROUP_DISTRICT_TH
- || currentUserGroup.value?.id === GROUP_DISTRICT_FI
- );
- });
- /**
- * 是否是项目保护单位
- */
- const isProtectUnit = computed(() => {
- return currentUserGroup.value?.id === GROUP_PROTECT_UNIT;
- });
- /**
- * 是否可以提交审核
- */
- const canSubmitReview = computed(() => {
- const info = reviewProgressInfo.value;
- if (!info || !sourceProgress)
- return false;
- if (info.noProgressChange) {
- return sourceProgress.value >= info.minSource;
- }
- return sourceProgress.value >= info.minSource //上一阶段已完成
- && sourceProgress.value < info.target;// 当前审核阶段未完成
- });
- /**
- * 是否可以审核
- * @param sourceProgress
- * @returns
- */
- const canReview = (sourceProgress: number) => {
- const info = reviewProgressInfo.value;
- if (!info)
- return false;
- if (info.noProgressChange) {
- return sourceProgress >= info.minSource;
- }
- return sourceProgress >= info.minSource //上一阶段已完成
- && sourceProgress < info.target;// 当前审核阶段未完成
- };
- /**
- * 是否当前级别已经审核完成
- * @param sourceProgress
- * @returns
- */
- const isCurrentLevelReviewed = (sourceProgress: number) => {
- const info = reviewProgressInfo.value;
- if (!info)
- return false;
- return sourceProgress >= info.target;
- };
- /**
- * 是否可以审核,但上一阶段未完成
- * @param sourceProgress
- * @returns
- */
- const canReviewButPrevNotCompleted = (sourceProgress: number) => {
- const info = reviewProgressInfo.value;
- if (!info)
- return false;
- return sourceProgress >= SUBMITED_PROGRESS //已提交
- && sourceProgress < info.minSource //上一阶段未完成
- };
- const reviewLevelLabel = computed(() => {
- return GROUP_LABELS[currentUserGroup.value?.id ?? 0];
- });
- const progressHint = computed(() => {
- const roleText = reviewLevelLabel.value ? `当前账号审核环节:${reviewLevelLabel.value}` : `当前用户组无权限审核`;
- return `${roleText}。`;
- });
- /**
- * 当前角色是否不修改进度(子角色审核)
- */
- const isNoProgressChange = computed(() => {
- return !!reviewProgressInfo.value?.noProgressChange;
- });
- /**
- * 当前角色是否仅可退回(不可通过审核)
- */
- const canRejectOnly = computed(() => {
- const info = reviewProgressInfo.value;
- return !!info?.noProgressChange && !info?.canReject;
- });
- return {
- reviewProgressInfo,
- currentUserGroup,
- canReview,
- canReviewButPrevNotCompleted,
- isCurrentLevelReviewed,
- canSubmitReview,
- reviewLevelLabel,
- progressHint,
- isDistrict,
- isEndLevel,
- isProtectUnit,
- isNoProgressChange,
- canRejectOnly,
- };
- }
|