wwp 3 settimane fa
parent
commit
b56ab7ff0f
20 ha cambiato i file con 49 aggiunte e 27 eliminazioni
  1. +9
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/BuildingService/BuildingService.cs
  2. +1
    -1
      SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
  3. +1
    -1
      SafeCampus.WEB/src/typings/props.d.ts
  4. +1
    -1
      SafeCampus.WEB/src/views/userManage/classManage/components/formClass/index.vue
  5. +1
    -1
      SafeCampus.WEB/src/views/userManage/classManage/components/formTeacher/index.vue
  6. +2
    -1
      SafeCampus.WEB/src/views/userManage/classManage/index.vue
  7. +1
    -1
      SafeCampus.WEB/src/views/userManage/clothing/index.vue
  8. +4
    -4
      SafeCampus.WEB/src/views/userManage/department/components/form.vue
  9. +2
    -1
      SafeCampus.WEB/src/views/userManage/department/index.vue
  10. +1
    -1
      SafeCampus.WEB/src/views/userManage/dormitory/components/form/index.vue
  11. +4
    -4
      SafeCampus.WEB/src/views/userManage/dormitory/components/formDormitory/index.vue
  12. +2
    -1
      SafeCampus.WEB/src/views/userManage/dormitory/index.vue
  13. +1
    -0
      SafeCampus.WEB/src/views/userManage/keyPersonnel/components/form/form_basic.vue
  14. +1
    -1
      SafeCampus.WEB/src/views/userManage/keyPersonnel/components/form/index.vue
  15. +2
    -1
      SafeCampus.WEB/src/views/userManage/keyPersonnel/index.vue
  16. +3
    -3
      SafeCampus.WEB/src/views/userManage/major/components/form.vue
  17. +2
    -1
      SafeCampus.WEB/src/views/userManage/major/index.vue
  18. +8
    -1
      SafeCampus.WEB/src/views/userManage/personnel/components/form/form_basic.vue
  19. +1
    -1
      SafeCampus.WEB/src/views/userManage/personnel/components/form/index.vue
  20. +2
    -2
      SafeCampus.WEB/src/views/userManage/personnel/index.vue

+ 9
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/BuildingService/BuildingService.cs Vedi File

@@ -10,6 +10,11 @@ public class BuildingService:DbRepository<BuildingInfo>,IBuildingService
{
throw Oops.Oh("宿舍楼已存在");
}

if (model.InsCameraId==model.OutCameraId)
{
model.OutCameraId=null;
}
await InsertAsync(model);
return true;
}
@@ -30,6 +35,10 @@ public class BuildingService:DbRepository<BuildingInfo>,IBuildingService
{
throw Oops.Oh("信息不存在");
}
if (model.InsCameraId == model.OutCameraId)
{
model.OutCameraId = null;
}
var res = input.Adapt(model);
await UpdateAsync(res);
return true;


+ 1
- 1
SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user Vedi File

@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project>
<PropertyGroup>
<_PublishTargetUrl>F:\Project\QJKJ\SafeCampus\SafeCampus.API\SafeCampus.Web.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl>
<History>True|2024-10-24T01:34:12.7696084Z;True|2024-10-23T10:41:37.0558539+08:00;True|2024-10-23T09:28:31.4313071+08:00;True|2024-10-23T09:26:31.5501719+08:00;True|2024-10-23T09:23:51.0582343+08:00;True|2024-10-23T09:06:44.5849207+08:00;True|2024-10-22T13:08:17.1569031+08:00;True|2024-10-22T09:42:47.5945039+08:00;True|2024-10-21T17:29:20.3317104+08:00;True|2024-10-21T16:46:26.6984879+08:00;True|2024-10-21T10:12:44.0443975+08:00;True|2024-10-10T10:57:40.0075220+08:00;True|2024-10-10T10:02:41.0397715+08:00;True|2024-10-09T17:39:11.0140701+08:00;True|2024-10-09T17:18:07.5988076+08:00;True|2024-10-09T17:10:57.0818759+08:00;True|2024-10-09T17:08:07.1773134+08:00;True|2024-10-09T16:38:21.4832776+08:00;True|2024-10-09T16:31:58.3589164+08:00;True|2024-10-09T16:10:50.3337773+08:00;True|2024-10-09T10:39:55.8405182+08:00;True|2024-10-08T17:55:12.0035540+08:00;True|2024-10-08T16:48:00.5056466+08:00;True|2024-10-08T16:27:40.5071980+08:00;True|2024-10-08T16:24:26.2664694+08:00;True|2024-10-08T15:41:46.6016263+08:00;True|2024-09-30T17:07:19.0903067+08:00;True|2024-09-30T10:34:23.6203647+08:00;True|2024-09-29T14:44:27.0928205+08:00;True|2024-09-24T17:04:13.1154955+08:00;True|2024-09-23T14:58:29.0998917+08:00;True|2024-09-23T14:34:42.4664825+08:00;True|2024-09-23T14:34:14.9788969+08:00;True|2024-09-23T14:21:01.8969413+08:00;True|2024-09-23T14:17:25.6978104+08:00;True|2024-09-23T13:44:21.2948521+08:00;True|2024-09-23T13:42:29.2647186+08:00;True|2024-09-19T17:53:09.3428873+08:00;True|2024-09-19T17:47:47.8015573+08:00;True|2024-09-19T17:33:18.0038814+08:00;True|2024-09-19T17:13:16.6885326+08:00;True|2024-09-19T16:40:10.4911580+08:00;True|2024-09-19T15:32:43.5092007+08:00;True|2024-09-19T14:13:40.1278496+08:00;True|2024-09-19T11:00:03.7642790+08:00;True|2024-09-04T16:01:07.1761640+08:00;True|2024-09-04T15:47:33.3094448+08:00;True|2024-09-04T13:33:22.9396193+08:00;True|2024-08-30T13:27:03.2003529+08:00;True|2024-08-27T15:31:21.7026102+08:00;True|2024-08-20T11:12:26.7141701+08:00;True|2024-08-19T17:23:34.5703879+08:00;True|2024-08-19T15:55:28.3484786+08:00;True|2024-08-19T15:45:49.5623372+08:00;True|2024-08-19T14:56:17.7733738+08:00;True|2024-08-19T14:52:03.2782392+08:00;True|2024-08-19T14:10:57.7043528+08:00;True|2024-08-19T13:38:29.9236695+08:00;False|2024-08-19T13:29:18.8873264+08:00;True|2024-08-19T12:31:57.9280692+08:00;True|2024-08-19T11:50:36.7241244+08:00;True|2024-08-19T10:24:05.0018377+08:00;True|2024-08-19T10:23:30.0445364+08:00;True|2024-08-19T10:12:33.8316906+08:00;True|2024-08-19T10:10:48.0967630+08:00;True|2024-08-16T12:17:51.5743944+08:00;True|2024-08-16T11:36:15.1880346+08:00;True|2024-08-12T11:27:42.2864171+08:00;True|2024-08-09T14:54:42.9062124+08:00;True|2024-08-09T11:49:01.0339449+08:00;True|2024-08-09T11:43:21.9947939+08:00;True|2024-08-09T10:43:25.7641675+08:00;True|2024-08-08T15:23:17.0510180+08:00;True|2024-08-08T15:20:50.3450876+08:00;True|2024-08-08T11:06:43.0783261+08:00;True|2024-08-07T17:24:03.0780935+08:00;True|2024-08-07T17:20:50.6266614+08:00;True|2024-08-07T17:18:15.6367265+08:00;True|2024-08-06T17:31:40.3452266+08:00;True|2024-07-31T16:54:03.1890463+08:00;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;True|2024-07-26T17:46:06.7922851+08:00;</History>
<History>True|2024-10-24T01:50:55.5191427Z;True|2024-10-24T09:34:12.7696084+08:00;True|2024-10-23T10:41:37.0558539+08:00;True|2024-10-23T09:28:31.4313071+08:00;True|2024-10-23T09:26:31.5501719+08:00;True|2024-10-23T09:23:51.0582343+08:00;True|2024-10-23T09:06:44.5849207+08:00;True|2024-10-22T13:08:17.1569031+08:00;True|2024-10-22T09:42:47.5945039+08:00;True|2024-10-21T17:29:20.3317104+08:00;True|2024-10-21T16:46:26.6984879+08:00;True|2024-10-21T10:12:44.0443975+08:00;True|2024-10-10T10:57:40.0075220+08:00;True|2024-10-10T10:02:41.0397715+08:00;True|2024-10-09T17:39:11.0140701+08:00;True|2024-10-09T17:18:07.5988076+08:00;True|2024-10-09T17:10:57.0818759+08:00;True|2024-10-09T17:08:07.1773134+08:00;True|2024-10-09T16:38:21.4832776+08:00;True|2024-10-09T16:31:58.3589164+08:00;True|2024-10-09T16:10:50.3337773+08:00;True|2024-10-09T10:39:55.8405182+08:00;True|2024-10-08T17:55:12.0035540+08:00;True|2024-10-08T16:48:00.5056466+08:00;True|2024-10-08T16:27:40.5071980+08:00;True|2024-10-08T16:24:26.2664694+08:00;True|2024-10-08T15:41:46.6016263+08:00;True|2024-09-30T17:07:19.0903067+08:00;True|2024-09-30T10:34:23.6203647+08:00;True|2024-09-29T14:44:27.0928205+08:00;True|2024-09-24T17:04:13.1154955+08:00;True|2024-09-23T14:58:29.0998917+08:00;True|2024-09-23T14:34:42.4664825+08:00;True|2024-09-23T14:34:14.9788969+08:00;True|2024-09-23T14:21:01.8969413+08:00;True|2024-09-23T14:17:25.6978104+08:00;True|2024-09-23T13:44:21.2948521+08:00;True|2024-09-23T13:42:29.2647186+08:00;True|2024-09-19T17:53:09.3428873+08:00;True|2024-09-19T17:47:47.8015573+08:00;True|2024-09-19T17:33:18.0038814+08:00;True|2024-09-19T17:13:16.6885326+08:00;True|2024-09-19T16:40:10.4911580+08:00;True|2024-09-19T15:32:43.5092007+08:00;True|2024-09-19T14:13:40.1278496+08:00;True|2024-09-19T11:00:03.7642790+08:00;True|2024-09-04T16:01:07.1761640+08:00;True|2024-09-04T15:47:33.3094448+08:00;True|2024-09-04T13:33:22.9396193+08:00;True|2024-08-30T13:27:03.2003529+08:00;True|2024-08-27T15:31:21.7026102+08:00;True|2024-08-20T11:12:26.7141701+08:00;True|2024-08-19T17:23:34.5703879+08:00;True|2024-08-19T15:55:28.3484786+08:00;True|2024-08-19T15:45:49.5623372+08:00;True|2024-08-19T14:56:17.7733738+08:00;True|2024-08-19T14:52:03.2782392+08:00;True|2024-08-19T14:10:57.7043528+08:00;True|2024-08-19T13:38:29.9236695+08:00;False|2024-08-19T13:29:18.8873264+08:00;True|2024-08-19T12:31:57.9280692+08:00;True|2024-08-19T11:50:36.7241244+08:00;True|2024-08-19T10:24:05.0018377+08:00;True|2024-08-19T10:23:30.0445364+08:00;True|2024-08-19T10:12:33.8316906+08:00;True|2024-08-19T10:10:48.0967630+08:00;True|2024-08-16T12:17:51.5743944+08:00;True|2024-08-16T11:36:15.1880346+08:00;True|2024-08-12T11:27:42.2864171+08:00;True|2024-08-09T14:54:42.9062124+08:00;True|2024-08-09T11:49:01.0339449+08:00;True|2024-08-09T11:43:21.9947939+08:00;True|2024-08-09T10:43:25.7641675+08:00;True|2024-08-08T15:23:17.0510180+08:00;True|2024-08-08T15:20:50.3450876+08:00;True|2024-08-08T11:06:43.0783261+08:00;True|2024-08-07T17:24:03.0780935+08:00;True|2024-08-07T17:20:50.6266614+08:00;True|2024-08-07T17:18:15.6367265+08:00;True|2024-08-06T17:31:40.3452266+08:00;True|2024-07-31T16:54:03.1890463+08:00;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

+ 1
- 1
SafeCampus.WEB/src/typings/props.d.ts Vedi File

@@ -31,6 +31,6 @@ declare namespace FormProps {
treeAllData?: Array<any>;
records?: Array<any>;
/** 表单布局 */
successful?: () => void;
successful?: (init?: any) => void;
}
}

+ 1
- 1
SafeCampus.WEB/src/views/userManage/classManage/components/formClass/index.vue Vedi File

@@ -98,7 +98,7 @@ async function handleSubmit() {
.add(sysUserProps.record)
.then(() => {
ElMessage.success("新增成功");
sysUserProps.successful!(); //调用父组件的successful方法
sysUserProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();


+ 1
- 1
SafeCampus.WEB/src/views/userManage/classManage/components/formTeacher/index.vue Vedi File

@@ -96,7 +96,7 @@ async function handleSubmit() {
await userManageTeacherApi
.add(sysUserProps.record)
.then(() => {
sysUserProps.successful!(); //调用父组件的successful方法
sysUserProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();


+ 2
- 1
SafeCampus.WEB/src/views/userManage/classManage/index.vue Vedi File

@@ -144,7 +144,8 @@ const formRefC = ref<InstanceType<typeof FormClass> | null>(null);
}

// 刷新表格
const RefreshTable = () => {
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
}



+ 1
- 1
SafeCampus.WEB/src/views/userManage/clothing/index.vue Vedi File

@@ -36,7 +36,7 @@
</template>
</TreeFilter>
<div class="table-box">
<ProTable ref="proTable" title="服装库管理" :columns="columns" rowKey="clothId" :data="tableData.clothes">
<ProTable ref="proTable" :pagination="false" title="服装库管理" :columns="columns" rowKey="clothId" :data="tableData.clothes">
<!-- 表格 header 按钮 -->
<template #tableHeader="scope">
<s-button suffix="服装" @click="onOpen(FormOptEnum.ADD, { clothSetId: clothSetId }, treeData)" />


+ 4
- 4
SafeCampus.WEB/src/views/userManage/department/components/form.vue Vedi File

@@ -32,7 +32,7 @@

<script setup lang="ts">
import { SysDepartment, userManageDepartmentApi } from "@/api";
import { FormOptEnum, SysDictEnum } from "@/enums";
import { FormOptEnum } from "@/enums";
import { required } from "@/utils/formRules";
import { FormInstance } from "element-plus";
import { useDictStore } from "@/stores/modules";
@@ -86,16 +86,16 @@ async function handleSubmit() {
//提交表单
if (departmentProps.opt == FormOptEnum.ADD) {
await userManageDepartmentApi
.add(departmentProps.record, departmentProps.record.id != undefined)
.add(departmentProps.record)
.then(() => {
departmentProps.successful!(); //调用父组件的successful方法
departmentProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();
});
} else {
await userManageDepartmentApi
.update(departmentProps.record, departmentProps.record.id != undefined)
.update(departmentProps.record)
.then(() => {
departmentProps.successful!(); //调用父组件的successful方法
})


+ 2
- 1
SafeCampus.WEB/src/views/userManage/department/index.vue Vedi File

@@ -94,7 +94,8 @@ function onOpen(opt: FormOptEnum, record: {} | SysDepartment.DepartmentInfo = {}
}

// 刷新表格
const RefreshTable = () => {
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
}



+ 1
- 1
SafeCampus.WEB/src/views/userManage/dormitory/components/form/index.vue Vedi File

@@ -98,7 +98,7 @@ async function handleSubmit() {
await userManageDormitoryApi
.add(SysDormitoryProps.record)
.then(() => {
SysDormitoryProps.successful!(); //调用父组件的successful方法
SysDormitoryProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();


+ 4
- 4
SafeCampus.WEB/src/views/userManage/dormitory/components/formDormitory/index.vue Vedi File

@@ -125,7 +125,7 @@ async function handleSubmit() {
await userManageDormitoryApi
.addDormitory(sysDormitoryProps.record)
.then(() => {
sysDormitoryProps.successful!(); //调用父组件的successful方法
sysDormitoryProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();
@@ -156,12 +156,12 @@ const getCreamaList = () => {
console.log(sysDormitoryProps.record, 89);

creamaData.value = res.data;
let dormitoryData = sysDormitoryProps.record;
let insObj = reactive({
let dormitoryData: any = sysDormitoryProps.record;
let insObj: any = reactive({
sensorId: "",
sensorName: ""
});
let outObj = reactive({
let outObj: any = reactive({
sensorId: "",
sensorName: ""
});


+ 2
- 1
SafeCampus.WEB/src/views/userManage/dormitory/index.vue Vedi File

@@ -293,7 +293,8 @@ function onOpen(opt: FormOptEnum, record: {} | SysDormitory.ChamberInfo = {}) {
}

// 刷新表格
const RefreshTable = () => {
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
}
// 同时刷新列表和树并恢复初始状态


+ 1
- 0
SafeCampus.WEB/src/views/userManage/keyPersonnel/components/form/form_basic.vue Vedi File

@@ -20,6 +20,7 @@
v-model:file-list="fileList"
action="/api/business/personApi/uploadFile"
list-type="picture-card"
:limit="5"
:on-success="handleAvatarSuccess"
:on-error="handleAvatarError"
:on-preview="handlePictureCardPreview"


+ 1
- 1
SafeCampus.WEB/src/views/userManage/keyPersonnel/components/form/index.vue Vedi File

@@ -105,7 +105,7 @@ async function handleSubmit() {
await userManageKeyPersonApi
.add(sysUserProps.record)
.then(() => {
sysUserProps.successful!(); //调用父组件的successful方法
sysUserProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();


+ 2
- 1
SafeCampus.WEB/src/views/userManage/keyPersonnel/index.vue Vedi File

@@ -131,7 +131,8 @@ function onOpen(opt: FormOptEnum, record: {} | SysUserPersonnel.SysUserPerInfo =
}

// 刷新表格
const RefreshTable = () => {
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
}
</script>


+ 3
- 3
SafeCampus.WEB/src/views/userManage/major/components/form.vue Vedi File

@@ -103,16 +103,16 @@ async function handleSubmit() {
//提交表单
if (majorProps.opt == FormOptEnum.ADD) {
await userManageMajorApi
.add(majorProps.record, majorProps.record.id != undefined)
.add(majorProps.record)
.then(() => {
majorProps.successful!(); //调用父组件的successful方法
majorProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();
});
} else {
await userManageMajorApi
.update(majorProps.record, majorProps.record.id != undefined)
.update(majorProps.record)
.then(() => {
majorProps.successful!(); //调用父组件的successful方法
})


+ 2
- 1
SafeCampus.WEB/src/views/userManage/major/index.vue Vedi File

@@ -118,7 +118,8 @@ function onOpen(opt: FormOptEnum, record: {} | SysMajor.MajorInfo = {}) {
}

// 刷新表格
const RefreshTable = () => {
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
}



+ 8
- 1
SafeCampus.WEB/src/views/userManage/personnel/components/form/form_basic.vue Vedi File

@@ -42,6 +42,7 @@
v-model:file-list="fileList"
action="/api/business/personApi/uploadFile"
list-type="picture-card"
:limit="5"
:on-success="handleAvatarSuccess"
:on-error="handleAvatarError"
:on-preview="handlePictureCardPreview"
@@ -191,7 +192,7 @@ onMounted(async () => {
watch(
() => [userInfo.value?.depId, userInfo.value?.majorId],
async ([newDepId, newMajorId], [oldDepId, oldMajorId]) => {
if (newDepId != oldDepId) {
if (newDepId && newDepId != oldDepId) {
majorOptions.value = await getMajorList(newDepId);
classOptions.value = [];
userInfo.value.personSetId = "";
@@ -200,6 +201,12 @@ onMounted(async () => {
if (newMajorId && newMajorId != oldMajorId) {
classOptions.value = await getClassList(newMajorId);
}
if (!newDepId) {
majorOptions.value = [];
userInfo.value.personSetId = "";
userInfo.value.majorId = "";
classOptions.value = await getClassList("");
}
},
{ deep: true, immediate: false }
);


+ 1
- 1
SafeCampus.WEB/src/views/userManage/personnel/components/form/index.vue Vedi File

@@ -105,7 +105,7 @@ async function handleSubmit() {
await userManagePersonnelApi
.add(sysUserProps.record)
.then(() => {
sysUserProps.successful!(); //调用父组件的successful方法
sysUserProps.successful!(true); //调用父组件的successful方法
})
.finally(() => {
onClose();


+ 2
- 2
SafeCampus.WEB/src/views/userManage/personnel/index.vue Vedi File

@@ -160,8 +160,8 @@ function onOpen(opt: FormOptEnum, record: {} | SysUserPersonnel.SysUserPerInfo =
}

// 刷新表格
const RefreshTable = () => {
proTable.value!.pageable.pageNum = 1;
const RefreshTable = (init: boolean = false) => {
if(init)proTable.value!.pageable.pageNum = 1
proTable.value?.refresh();
// treeFilter.value?.refresh(); //刷新树形筛选器
}


Caricamento…
Annulla
Salva