This commit is contained in:
itcsx committed 2026-09-05 23:08:56 +08:00
1 parent 6d68eb11b7
commit 67c632715b
29 files changed
+2801 -739

No files matched your search

+20 -9
View File
@@ -1,6 +1,6 @@
<template>
<a-spin size="large" :spinning="state.loading">
<a-modal v-model:open="props.showModel" title="修改用户名称" @cancel="emit('update:showModel', false)"
<a-modal v-model:open="innerShow" title="修改用户名称" @cancel="emit('update:showModel', false)"
@ok="handleSubmit">
<a-form name="basic" autocomplete="off" :label-col="{ span: 8 }" :rules="rules" :model="state.data"
ref="formRef">
@@ -38,15 +38,26 @@ const state = reactive({
});
const props = defineProps(['showModel']);
const emit = defineEmits(['update:showModel']);
computed({
get() {
return props.showModel;
},
set(value) {
emit('update:showModel', value);
}
const emit = defineEmits<{
"update:showModel": [val: boolean];
}>();
// ✅ 内部代理变量,避开直接修改props只读对象
const innerShow = ref(false);
// props改变同步到内部变量(父组件打开弹窗时同步)
watch(
() => props.showModel,
(val) => {
innerShow.value = val;
},
{ immediate: true }
);
// 内部弹窗状态变化,通知父组件更新props
watch(innerShow, (val) => {
emit("update:showModel", val);
});
const validatePass = async (_rule: Rule, value: string) => {
+15 -9
View File
@@ -1,6 +1,6 @@
<template>
<a-spin size="large" :spinning="state.loading">
<a-modal v-model:open="props.showModel" :title="t('login.changePassword.changePassword')"
<a-modal v-model:open="innerShow" :title="t('login.changePassword.changePassword')"
@cancel="emit('update:showModel', false)" @ok="handleSubmit">
<a-form name="basic" autocomplete="off" :label-col="{ span: 8 }" :rules="rules" :model="state.LoginData"
ref="formRef">
@@ -59,16 +59,22 @@ const state = reactive({
});
const props = defineProps(['showModel']);
const emit = defineEmits(['update:showModel']);
computed({
get() {
return props.showModel;
const emit = defineEmits<{
"update:showModel": [val: boolean];
}>();
// ✅ 内部代理变量,避开直接修改props只读对象
const innerShow = ref(false);
// props改变同步到内部变量(父组件打开弹窗时同步)
watch(
() => props.showModel,
(val) => {
innerShow.value = val;
},
set(value) {
emit('update:showModel', value);
}
});
{ immediate: true }
);
const validatePass = async (_rule: Rule, value: string) => {
if (value !== state.LoginData.UserPassword) {
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -630,7 +630,7 @@ onMounted(async () => {
const onViewPreview = async () => {
router.push({
name: "Previews",
name: "Preview",
params: { id: currentFamilyName.value, mode: "view" },
});
};
@@ -123,7 +123,7 @@ import {
} from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption =
actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
@@ -68,7 +68,7 @@ import { SearchCriteriaContext } from "@/injections";
//报表名称(layout)
const layoutProviderMethod = inject(layoutProviderMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod =inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalTree : false);
File diff suppressed because it is too large. Load diff
@@ -8,7 +8,7 @@
</template>
<template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === PublishAudioEntity.PUBLISH_NAME">
<a-button type="link" block @click.prevent="onViewAudioPreview">{{ record.PublishName }}</a-button>
<a-button type="link" block @click.prevent="onViewPreviewAudio">{{ record.PublishName }}</a-button>
</template>
<template v-else-if="column.dataIndex === PublishAudioEntity.DEFAULT_INDC">
<template v-if="record.DefaultIndc == 'Y'">
@@ -29,7 +29,7 @@
:disabled="!(keys && keys.length > 0)" @click.prevent="onAmend">修改</a-button>
<a-button type="primary" v-if="canView" :icon="h(FileTextOutlined)"
:disabled="!(keys && keys.length > 0)"
@click.prevent="onViewAudioPreview">音乐厅</a-button>
@click.prevent="onViewPreviewAudio">音乐厅</a-button>
</a-space>
</a-row>
</a-col>
@@ -200,9 +200,9 @@ const onReset = (() => {
result.value.Total = 0;
})
const onViewAudioPreview = (() => {
const onViewPreviewAudio = (() => {
if (keys.value.length == 0) return;
router.push({ name: "AudioPreviews", params: { id: keys.value[0].PublishName, mode: 'view' } });
router.push({ name: "PreviewAudio", params: { id: keys.value[0].PublishName, mode: 'view' } });
})
const onCreate = (() => {
@@ -247,7 +247,7 @@
:disabled="!hasData" v-if="canDelete">删除</a-button>
</a-popconfirm>
<a-button type="primary" v-if="canAmend" :icon="h(EditOutlined)"
:disabled="!hasData" @click.prevent="onViewAudioPreview">音乐厅</a-button>
:disabled="!hasData" @click.prevent="onViewPreviewAudio">音乐厅</a-button>
</a-space>
</a-row>
</div>
@@ -376,7 +376,7 @@ const columnDtls = ref([
]);
//================provide================
//弹出(Function Modal)
provide("isModalAudioPublish", showModal);
provide("isModalPublishAudio", showModal);
//记录单选还是多选(Modal)
provide("selectionTypeAudioPublish", rowSelectionType);
//初始化查询条件的值(Modal)
@@ -515,8 +515,8 @@ const onReset = (() => {
const onViewAudioPreview = (async () => {
router.push({ name: "AudioPreviews", params: { id: data.value.PublishAudio.PublishName, mode: 'view' } });
const onViewPreviewAudio = (async () => {
router.push({ name: "PreviewAudio", params: { id: data.value.PublishAudio.PublishName, mode: 'view' } });
})
const onCreate = (() => {
@@ -202,7 +202,7 @@ const onReset = (() => {
const onViewPreview = (() => {
if (keys.value.length == 0) return;
router.push({ name: "Previews", params: { id: keys.value[0].PublishName, mode: 'view' } });
router.push({ name: "Preview", params: { id: keys.value[0].PublishName, mode: 'view' } });
})
const onCreate = (() => {
@@ -181,13 +181,12 @@
</template>
</a-card-meta>
<template #actions>
<span v-if="isEdit">
<span v-if="isEdit" @click="upSon(datas.index)">
<UpSquareTwoTone
:style="{ fontSize: '24px', color: '#08c' }"
@click="upSon(datas.index)"
/>上移
</span>
<span v-if="isEdit">
<span v-if="isEdit" @click="downSon(datas.index)">
<DownSquareTwoTone
:style="{
fontSize: '24px',
@@ -195,13 +194,11 @@
marginLeft: '20px',
marginRight: '20px',
}"
@click="downSon(datas.index)"
/>下移
</span>
<span v-if="isEdit">
<span v-if="isEdit" @click="deleteSon(datas.record.DetailId)">
<DeleteOutlined
:style="{ fontSize: '24px', color: 'red' }"
@click="deleteSon(datas.record.DetailId)"
/>删除
</span>
</template>
@@ -329,7 +326,7 @@
:icon="h(EditOutlined)"
:disabled="!hasData"
@click.prevent="onViewPreview"
>作品展览</a-button
>相册展览</a-button
>
</a-space>
</a-row>
@@ -563,7 +560,7 @@ const onReset = () => {
const onViewPreview = async () => {
router.push({
name: "Previews",
name: "Preview",
params: { id: data.value.PublishPhoto.PublishName, mode: "view" },
});
};
@@ -8,7 +8,7 @@
</template>
<template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === PublishVideoEntity.PUBLISH_NAME">
<a-button type="link" block @click.prevent="onViewVideoPreview">{{ record.PublishName }}</a-button>
<a-button type="link" block @click.prevent="onViewPreviewVideo">{{ record.PublishName }}</a-button>
</template>
<template v-else-if="column.dataIndex === PublishVideoEntity.DEFAULT_INDC">
<template v-if="record.DefaultIndc == 'Y'">
@@ -29,7 +29,7 @@
:disabled="!(keys && keys.length > 0)" @click.prevent="onAmend">修改</a-button>
<a-button type="primary" v-if="canView" :icon="h(FileTextOutlined)"
:disabled="!(keys && keys.length > 0)"
@click.prevent="onViewVideoPreview">影视厅</a-button>
@click.prevent="onViewPreviewVideo">影视厅</a-button>
</a-space>
</a-row>
</a-col>
@@ -200,9 +200,9 @@ const onReset = (() => {
result.value.Total = 0;
})
const onViewVideoPreview = (() => {
const onViewPreviewVideo = (() => {
if (keys.value.length == 0) return;
router.push({ name: "VideoPreviews", params: { id: keys.value[0].PublishName, mode: 'view' } });
router.push({ name: "PreviewVideo", params: { id: keys.value[0].PublishName, mode: 'view' } });
})
const onCreate = (() => {
@@ -247,7 +247,7 @@
:disabled="!hasData" v-if="canDelete">删除</a-button>
</a-popconfirm>
<a-button type="primary" v-if="canAmend" :icon="h(EditOutlined)"
:disabled="!hasData" @click.prevent="onViewVideoPreview">影视厅</a-button>
:disabled="!hasData" @click.prevent="onViewPreviewVideo">影视厅</a-button>
</a-space>
</a-row>
</div>
@@ -375,7 +375,7 @@ const columnDtls = ref([
]);
//================provide================
//弹出(Function Modal)
provide("isModalVideoPublish", showModal);
provide("isModalPublishVideo", showModal);
//记录单选还是多选(Modal)
provide("selectionTypeVideoPublish", rowSelectionType);
//初始化查询条件的值(Modal)
@@ -515,8 +515,8 @@ const onReset = (() => {
const onViewVideoPreview = (async () => {
router.push({ name: "VideoPreviews", params: { id: data.value.PublishVideo.PublishName, mode: 'view' } });
const onViewPreviewVideo = (async () => {
router.push({ name: "PreviewVideo", params: { id: data.value.PublishVideo.PublishName, mode: 'view' } });
})
const onCreate = (() => {
+1 -1
View File
@@ -66,7 +66,7 @@ import { useOrderedChildren } from "@/hooks/use-ordered-children";
import { SearchCriteriaContext } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
@@ -68,7 +68,7 @@ import { SearchCriteriaContext } from "@/injections";
//报表名称(layout)
const layoutProviderMethod = inject(layoutProviderMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalFunction : false);
+1 -1
View File
@@ -60,7 +60,7 @@ import { useOrderedChildren } from "@/hooks/use-ordered-children";
import { SearchCriteriaContext } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod =inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalGroup : false);
+1 -1
View File
@@ -66,7 +66,7 @@ import { useOrderedChildren } from "@/hooks/use-ordered-children";
import { SearchCriteriaContext } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalMaster : false);
@@ -33,7 +33,7 @@ import { useOrderedChildren } from "@/hooks/use-ordered-children";
import { SearchCriteriaContext } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalPermissionDependent : false);
@@ -60,7 +60,7 @@ import { SearchCriteriaContext } from "@/injections";
import { enquiryMethodKey, searchCriteriaManagerKey, operationToEnquiryMethodKey, OperationToEnquiryModelOption, layoutProviderMethodKey } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod =inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalPermission : false);
+1 -1
View File
@@ -66,7 +66,7 @@ import { useOrderedChildren } from "@/hooks/use-ordered-children";
import { SearchCriteriaContext } from "@/injections";
//page from-----------------------------------------------------------------------------------------------------------------------------------
//================inject================
const actorOperationMethod = inject(operationToEnquiryMethodKey);
const actorOperationMethod = inject(operationToEnquiryMethodKey, undefined);
const modelOption = actorOperationMethod?.getOperationToEnquiryModelOption() as OperationToEnquiryModelOption;
const isModal = ref(modelOption ? modelOption.isModalUser : false);