fix(auth): 完善权限控制与强制改密流程

This commit is contained in:
xy
2026-09-17 16:33:09 +08:00
parent 81922d774f
commit 61b4b19f55
22 changed files with 618 additions and 59 deletions
@@ -6,6 +6,9 @@ import { documentStatusLabels } from '../mock'
const props = defineProps<{
template: DocumentTemplate
canEdit: boolean
canInitiate: boolean
canRemove: boolean
}>()
const emit = defineEmits<{
@@ -18,12 +21,18 @@ const emit = defineEmits<{
const statusLabel = computed(() => documentStatusLabels[props.template.status])
/** 只有已发布 / 待复审的模板可以发起签署;草稿与已归档不可用 */
const canInitiate = computed(
() => props.template.status === 'published' || props.template.status === 'review',
const canInitiateTemplate = computed(
() =>
props.canInitiate &&
(props.template.status === 'published' || props.template.status === 'review'),
)
const initiateTitle = computed(() =>
canInitiate.value ? '用此模板发起签署' : '仅已发布或待复审的模板可发起签署',
canInitiateTemplate.value
? '用此模板发起签署'
: props.canInitiate
? '仅已发布或待复审的模板可发起签署'
: '当前账号没有发起签署任务的权限',
)
</script>
@@ -49,17 +58,21 @@ const initiateTitle = computed(() =>
</span>
<div class="template-actions">
<button type="button" class="card-button" @click="emit('preview', template)">预览</button>
<button type="button" class="card-button" @click="emit('edit', template)">编辑</button>
<button v-if="canEdit" type="button" class="card-button" @click="emit('edit', template)">
编辑
</button>
<button
v-if="canInitiate"
type="button"
class="card-button primary"
:disabled="!canInitiate"
:disabled="!canInitiateTemplate"
:title="initiateTitle"
@click="emit('initiate', template)"
>
发起
</button>
<button
v-if="canRemove"
type="button"
class="card-button danger"
title="删除此文书"