|
@@ -12,9 +12,9 @@ export default defineComponent({
|
|
|
const route = useRoute();
|
|
|
|
|
|
const state = reactive({
|
|
|
- images: [] as { id: string; qos: 1 }[],
|
|
|
- videos: [] as { id: string; qos: 1 }[],
|
|
|
- }) as any;
|
|
|
+ images: [] as { id: string; qos: number }[],
|
|
|
+ videos: [] as { id: string; qos: number }[],
|
|
|
+ });
|
|
|
|
|
|
const submit = async () => {
|
|
|
if (state.images.length == 0 && state.videos.length == 0) {
|
|
@@ -31,6 +31,25 @@ export default defineComponent({
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const selectTmp = (record: { id: string }, type = "image") => {
|
|
|
+ const list = type == "image" ? state.images : state.videos;
|
|
|
+
|
|
|
+ const selected = !!list.find((v: any) => v.id == record.id);
|
|
|
+ if (selected) {
|
|
|
+ const index = list.findIndex((d: any) => d.id == record.id);
|
|
|
+ list.splice(index);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ list.push({ id: record.id, qos: 1 });
|
|
|
+ };
|
|
|
+
|
|
|
+ const changeQos = (record: { id: string }, qos: number, type = "image") => {
|
|
|
+ const list = type == "image" ? state.images : state.videos;
|
|
|
+ const selected = list.find((v: any) => v.id == record.id);
|
|
|
+ if (!selected) return;
|
|
|
+ selected.qos = qos;
|
|
|
+ };
|
|
|
+
|
|
|
return () => {
|
|
|
const { sourceDetail } = resource.store;
|
|
|
const isEmpty =
|
|
@@ -40,29 +59,21 @@ export default defineComponent({
|
|
|
<div>
|
|
|
{isEmpty && <Empty description="暂无数据" />}
|
|
|
<div class="grid grid-cols-4 gap-10px">
|
|
|
- {sourceDetail.images.map((record: any) => (
|
|
|
+ {sourceDetail.images?.map((record: any) => (
|
|
|
<OutputTemplateItem
|
|
|
record={record}
|
|
|
active={!!state.images.find((v: any) => v.id == record.id)}
|
|
|
- onChange={(qos) => {
|
|
|
- const selected = state.images.find(
|
|
|
- (v: any) => v.id == record.id
|
|
|
- );
|
|
|
- selected.qos = qos;
|
|
|
- }}
|
|
|
- onSelect={() => {
|
|
|
- const selected = !!state.images.find(
|
|
|
- (v: any) => v.id == record.id
|
|
|
- );
|
|
|
- if (selected) {
|
|
|
- const index = state.images.findIndex(
|
|
|
- (d: any) => d.id == record.id
|
|
|
- );
|
|
|
- state.images.splice(index);
|
|
|
- return;
|
|
|
- }
|
|
|
- state.images.push({ id: record.id, qos: 1 });
|
|
|
- }}
|
|
|
+ onChange={(qos) => changeQos(record, qos)}
|
|
|
+ onSelect={() => selectTmp(record)}
|
|
|
+ />
|
|
|
+ ))}
|
|
|
+ {sourceDetail.videos?.map((record: any) => (
|
|
|
+ <OutputTemplateItem
|
|
|
+ type="video"
|
|
|
+ record={record}
|
|
|
+ active={!!state.videos.find((v: any) => v.id == record.id)}
|
|
|
+ onChange={(qos) => changeQos(record, qos, "video")}
|
|
|
+ onSelect={() => selectTmp(record, "video")}
|
|
|
/>
|
|
|
))}
|
|
|
</div>
|