This commit is contained in:
itcsx committed 2026-09-15 21:31:43 +08:00
1 parent 5d0b0c751a
commit d2278826fb
6 files changed
+58 -6

No files matched your search

@@ -145,6 +145,13 @@ namespace CloudBuilder.Master.Service
ObjectCopyHelper.Copy(data.FamilyPerson, d); ObjectCopyHelper.Copy(data.FamilyPerson, d);
var has = new FamilyTreePermissionHelper(service).HasPermission(d.TreeId, d.PersonId);
if (!has)
{
throw new ValidatedException("您没有修改权限.");
}
repository.UpdateNow(d); repository.UpdateNow(d);
return FindByKey(data.FamilyPerson.PersonId); return FindByKey(data.FamilyPerson.PersonId);
@@ -490,6 +490,13 @@ namespace CloudBuilder.Master.Service
Validate(data.FamilyTree); Validate(data.FamilyTree);
var has = new FamilyTreePermissionHelper(service).HasPermission(d.TreeId, d.AncestorPersonId);
if (!has)
{
throw new ValidatedException("您没有修改权限.");
}
ObjectCopyHelper.Copy(data.FamilyTree, d); ObjectCopyHelper.Copy(data.FamilyTree, d);
repository.UpdateNow(d); repository.UpdateNow(d);
@@ -517,6 +524,14 @@ namespace CloudBuilder.Master.Service
{ {
var ent = repository.DetachedEntities.Where(x => x.TreeId == key).FirstOrDefault()!; var ent = repository.DetachedEntities.Where(x => x.TreeId == key).FirstOrDefault()!;
if (ent == null) return; if (ent == null) return;
var has = new FamilyTreePermissionHelper(service).HasPermission(ent.TreeId, ent.AncestorPersonId);
if(!has)
{
throw new ValidatedException("您没有删除权限.");
}
repository.DeleteNow(ent); repository.DeleteNow(ent);
IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>(); IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
@@ -3,7 +3,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<_PublishTargetUrl>C:\inetpub\wwwroot\dockwebapi2</_PublishTargetUrl> <_PublishTargetUrl>C:\inetpub\wwwroot\dockwebapi2</_PublishTargetUrl>
<History>True|2026-09-13T11:02:59.5654245Z||;True|2026-09-10T09:14:56.2914193+08:00||;True|2026-09-09T16:40:16.6461154+08:00||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History> <History>True|2026-09-15T12:44:46.6559899Z||;True|2026-09-13T19:02:59.5654245+08:00||;True|2026-09-10T09:14:56.2914193+08:00||;True|2026-09-09T16:40:16.6461154+08:00||;True|2026-09-08T13:55:23.1502435+08:00||;True|2026-09-08T08:04:53.4279263+08:00||;True|2026-09-07T08:48:17.4682304+08:00||;True|2026-09-04T14:39:08.7878670+08:00||;True|2026-09-04T14:35:48.2937877+08:00||;True|2026-09-04T11:45:16.1372876+08:00||;True|2026-09-04T11:42:59.9356436+08:00||;True|2026-09-03T16:05:52.5270232+08:00||;True|2026-09-03T14:52:56.8559144+08:00||;True|2026-09-02T11:08:23.8720038+08:00||;True|2026-09-02T10:58:16.8081797+08:00||;True|2026-08-26T13:34:12.3805892+08:00||;True|2026-08-25T08:31:30.7787234+08:00||;True|2026-08-20T13:10:46.4725468+08:00||;True|2026-08-20T13:10:28.3142576+08:00||;True|2026-08-19T16:10:27.3362887+08:00||;True|2026-08-19T16:01:12.6234971+08:00||;True|2026-08-19T15:42:46.6576265+08:00||;True|2026-08-19T13:39:59.9363522+08:00||;True|2026-08-19T13:36:53.0379313+08:00||;True|2026-08-19T13:31:36.0841398+08:00||;True|2026-08-19T11:44:37.5319626+08:00||;True|2026-08-19T09:36:45.6000047+08:00||;True|2026-08-19T09:34:36.8468631+08:00||;True|2026-08-19T08:35:41.2202300+08:00||;True|2026-08-18T16:20:59.0170916+08:00||;</History>
<LastFailureDetails /> <LastFailureDetails />
</PropertyGroup> </PropertyGroup>
</Project> </Project>
@@ -529,6 +529,17 @@ const onSearch = async () => {
? dayjs(data.value.FamilyPerson.DeathDate) ? dayjs(data.value.FamilyPerson.DeathDate)
: null; : null;
hasData.value = true; hasData.value = true;
// 无权限且未公开(Privacy='N'):强制回到查看模式,只显示基本资料
if (readonlyBasicOnly.value && mode.value == "amend") {
mode.value = "view";
isEdit.value = false;
notification.info({
message: "系统提示:",
description: "该族员资料未公开,您仅有查看基本资料的权限",
placement: "topRight",
});
}
}; };
const onReset = () => { const onReset = () => {
@@ -91,7 +91,7 @@ const visible = computed<boolean>({
const { width } = useWindowSize(); const { width } = useWindowSize();
const { getPolicyOptionsComputed } = useLocalePolicy(); const { getPolicyOptionsComputed } = useLocalePolicy();
const genderOptions = getPolicyOptionsComputed("GenderPolicy") as SelectOption[]; const genderOptions = getPolicyOptionsComputed("GenderPolicy");
const surnameInputRef = ref<any>(null); const surnameInputRef = ref<any>(null);
const saving = ref<boolean>(false); const saving = ref<boolean>(false);
@@ -315,8 +315,7 @@
</div> </div>
<div v-if="data.IsManager && !isEdit" class="ft-item-actions"> <div v-if="data.IsManager && !isEdit" class="ft-item-actions">
<CheckCircleTwoTone class="ft-action" @click="approvePermission(record, 'N')" /> <CheckCircleTwoTone class="ft-action" @click="approvePermission(record, 'N')" />
<CrownOutlined class="ft-action" style="color: #faad14" <CrownOutlined class="ft-action" style="color: #faad14" @click="approvePermission(record, 'Y')" />
@click="approvePermission(record, 'Y')" />
<CloseCircleOutlined class="ft-action ft-action-delete" @click="rejectPermission(record)" /> <CloseCircleOutlined class="ft-action ft-action-delete" @click="rejectPermission(record)" />
</div> </div>
</div> </div>
@@ -730,11 +729,11 @@ onMounted(() => {
if (treeId.value && treeId.value.trim().length > 0) { if (treeId.value && treeId.value.trim().length > 0) {
onSearch(); onSearch();
} }
isCreate.value=false; isCreate.value = false;
if (mode.value && mode.value == "create") { if (mode.value && mode.value == "create") {
onCreate(); onCreate();
isEdit.value = true; isEdit.value = true;
isCreate.value=true; isCreate.value = true;
} else if (mode.value && mode.value == "amend") { } else if (mode.value && mode.value == "amend") {
isEdit.value = true; isEdit.value = true;
} }
@@ -903,6 +902,8 @@ const onChartSelectChild = async (personId: string) => {
}; };
const onSearch = async () => { const onSearch = async () => {
try {
loading.value = true;
if (!treeId.value || treeId.value.trim().length == 0) { if (!treeId.value || treeId.value.trim().length == 0) {
notification.info({ notification.info({
message: "系统提示:", message: "系统提示:",
@@ -930,6 +931,24 @@ const onSearch = async () => {
} }
hasData.value = true; hasData.value = true;
// 无修改权限:强制回到查看模式
if (!data.value.IsCanAmend && mode.value == "amend") {
mode.value = "view";
isEdit.value = false;
notification.info({
message: "系统提示:",
description: "您没有该族谱的修改权限",
placement: "topRight",
});
}
} catch (error) {
loading.value = false;
console.log(error);
}
finally {
loading.value = false;
}
}; };
const onReset = () => { const onReset = () => {