fix: BOM跳转恢复 + 采购单导入优化 + 基础信息表单禁用守卫
- BOM: 移除父件/子件跳转按钮的 isReadOnlyMode 限制, 任何模式均可跳转 - BOM: 补全缺失的5个权限码(sys_element + sys_role_permission) - 采购单导入: supplier_link→detail_link, 新增采购人/邮箱自动填充 - 采购单导入: 实时搜索(300ms防抖)+模糊匹配, 保留搜索按钮 - 采购单导入: 移除原始/详情链接的历史 autocomplete - 基础信息: el-form 增加 formDisabled, 无 material_list:operation 时全局禁用 - /approved-unstocked API 增加 permission_required(inbound_buy) - PurchaseRequest.to_dict() 增加 requester_email
This commit is contained in:
@ -93,7 +93,7 @@
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
<el-link
|
||||
v-if="form.parent_id && !isReadOnlyMode"
|
||||
v-if="form.parent_id"
|
||||
type="primary"
|
||||
:underline="false"
|
||||
style="margin-left: 12px; font-size: 13px;"
|
||||
@ -183,7 +183,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-autocomplete>
|
||||
<el-tooltip content="前往修改基础信息" placement="top" v-if="row.child_id && !isReadOnlyMode">
|
||||
<el-tooltip content="前往修改基础信息" placement="top" v-if="row.child_id">
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
|
||||
@ -408,7 +408,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="110px" :disabled="formDisabled">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -604,7 +604,7 @@
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel" :disabled="isUploading">取 消</el-button>
|
||||
<el-button type="primary" @click="submitForm" :loading="submitLoading || isUploading">确 定</el-button>
|
||||
<el-button type="primary" @click="submitForm" :loading="submitLoading || isUploading" :disabled="formDisabled">确 定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@ -1048,6 +1048,12 @@ const hasFieldPermission = (field: string) => {
|
||||
return userStore.hasPermission(code);
|
||||
};
|
||||
|
||||
// 表单全局禁用:没有 material_list:operation 权限时,所有表单字段不可编辑
|
||||
const formDisabled = computed(() => {
|
||||
if (userStore.role === 'SUPER_ADMIN' || userStore.username === 'IRIS') return false;
|
||||
return !userStore.hasPermission('material_list:operation');
|
||||
});
|
||||
|
||||
const companyOptions = ref<string[]>([]);
|
||||
const categoryOptions = ref<string[]>([]);
|
||||
const typeOptions = ref<string[]>([]);
|
||||
|
||||
Reference in New Issue
Block a user