|  | @@ -1,219 +1,229 @@
 | 
	
		
			
				|  |  |  import { defineComponent, nextTick, onMounted, onUnmounted, reactive, ref, watch } from "vue";
 | 
	
		
			
				|  |  |  import styles from "./index.module.less";
 | 
	
		
			
				|  |  | -import { NButton, NCheckbox, NModal, NRadio, NSpace, NSpin, useDialog } from "naive-ui";
 | 
	
		
			
				|  |  | +import { NRadio, NSpace, NSpin, useDialog } from "naive-ui";
 | 
	
		
			
				|  |  |  import { getImage } from "../home/images";
 | 
	
		
			
				|  |  |  import TheCreate from "./component/the-create";
 | 
	
		
			
				|  |  |  import { storeData } from "/src/store";
 | 
	
		
			
				|  |  |  import { api_musicSheetCreationPage, api_musicSheetCreationRemove } from "../api";
 | 
	
		
			
				|  |  | -import { useRouter } from "vue-router";
 | 
	
		
			
				|  |  |  import ABCJS from "abcjs";
 | 
	
		
			
				|  |  |  import { usePageVisibility } from "@vant/use";
 | 
	
		
			
				|  |  |  import UploadToResources from "../component/upload-to-resources";
 | 
	
		
			
				|  |  |  import { getQuery } from "/src/utils/queryString";
 | 
	
		
			
				|  |  |  import { browser } from "/src/utils";
 | 
	
		
			
				|  |  | +import UploadToTasks from "../component/upload-to-tasks";
 | 
	
		
			
				|  |  | +import UploadFile from "../component/upload-file";
 | 
	
		
			
				|  |  | +import { saveUploadCatch, uploadState } from "../component/upload-to-tasks/state";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  | -	name: "Create",
 | 
	
		
			
				|  |  | -	setup() {
 | 
	
		
			
				|  |  | -		const query = getQuery();
 | 
	
		
			
				|  |  | -		const dialog = useDialog();
 | 
	
		
			
				|  |  | -		console.log(storeData.user);
 | 
	
		
			
				|  |  | -		const forms = reactive({
 | 
	
		
			
				|  |  | -			teacherId: storeData.user.id,
 | 
	
		
			
				|  |  | -			page: 1,
 | 
	
		
			
				|  |  | -			keyword: "",
 | 
	
		
			
				|  |  | -			rows: 20,
 | 
	
		
			
				|  |  | -		});
 | 
	
		
			
				|  |  | -		const data = reactive({
 | 
	
		
			
				|  |  | -			list: [] as any[],
 | 
	
		
			
				|  |  | -			addShow: query.addShow ? true : false,
 | 
	
		
			
				|  |  | -			loading: false,
 | 
	
		
			
				|  |  | -			finish: false,
 | 
	
		
			
				|  |  | -			isCreated: false,
 | 
	
		
			
				|  |  | -			uploadShow: false,
 | 
	
		
			
				|  |  | -			item: {} as any,
 | 
	
		
			
				|  |  | -		});
 | 
	
		
			
				|  |  | -		const getList = async () => {
 | 
	
		
			
				|  |  | -			data.loading = true;
 | 
	
		
			
				|  |  | -			const res = await api_musicSheetCreationPage({ ...forms });
 | 
	
		
			
				|  |  | -			if (res?.code == 200) {
 | 
	
		
			
				|  |  | -				if (data.isCreated) {
 | 
	
		
			
				|  |  | -					data.isCreated = false;
 | 
	
		
			
				|  |  | -					handleOpenNotaion(res.data.rows[0]);
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				data.list = data.list.concat(res.data.rows);
 | 
	
		
			
				|  |  | -				data.finish = res.data.rows.length < forms.rows;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			data.loading = false;
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -		const handleReset = () => {
 | 
	
		
			
				|  |  | -			forms.page = 1;
 | 
	
		
			
				|  |  | -			data.finish = false;
 | 
	
		
			
				|  |  | -			data.list = [];
 | 
	
		
			
				|  |  | -			getList();
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -		const pageVisibility = usePageVisibility();
 | 
	
		
			
				|  |  | -		watch(pageVisibility, (val) => {
 | 
	
		
			
				|  |  | -			if (val === "visible") {
 | 
	
		
			
				|  |  | -				handleReset();
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		});
 | 
	
		
			
				|  |  | +  name: "Create",
 | 
	
		
			
				|  |  | +  setup() {
 | 
	
		
			
				|  |  | +    const query = getQuery();
 | 
	
		
			
				|  |  | +    const dialog = useDialog();
 | 
	
		
			
				|  |  | +    console.log(storeData.user);
 | 
	
		
			
				|  |  | +    const forms = reactive({
 | 
	
		
			
				|  |  | +      teacherId: storeData.user.id,
 | 
	
		
			
				|  |  | +      page: 1,
 | 
	
		
			
				|  |  | +      keyword: "",
 | 
	
		
			
				|  |  | +      rows: 20,
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const data = reactive({
 | 
	
		
			
				|  |  | +      list: [] as any[],
 | 
	
		
			
				|  |  | +      addShow: query.addShow ? true : false,
 | 
	
		
			
				|  |  | +      loading: false,
 | 
	
		
			
				|  |  | +      finish: false,
 | 
	
		
			
				|  |  | +      isCreated: false,
 | 
	
		
			
				|  |  | +      uploadShow: false,
 | 
	
		
			
				|  |  | +      item: {} as any,
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const getList = async () => {
 | 
	
		
			
				|  |  | +      data.loading = true;
 | 
	
		
			
				|  |  | +      const res = await api_musicSheetCreationPage({ ...forms });
 | 
	
		
			
				|  |  | +      if (res?.code == 200) {
 | 
	
		
			
				|  |  | +        if (data.isCreated) {
 | 
	
		
			
				|  |  | +          data.isCreated = false;
 | 
	
		
			
				|  |  | +          handleOpenNotaion(res.data.rows[0]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        data.list = data.list.concat(res.data.rows);
 | 
	
		
			
				|  |  | +        data.finish = res.data.rows.length < forms.rows;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      data.loading = false;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    const handleReset = () => {
 | 
	
		
			
				|  |  | +      forms.page = 1;
 | 
	
		
			
				|  |  | +      data.finish = false;
 | 
	
		
			
				|  |  | +      data.list = [];
 | 
	
		
			
				|  |  | +      getList();
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    const pageVisibility = usePageVisibility();
 | 
	
		
			
				|  |  | +    watch(pageVisibility, (val) => {
 | 
	
		
			
				|  |  | +      if (val === "visible") {
 | 
	
		
			
				|  |  | +        handleReset();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const handleDelte = (item: any) => {
 | 
	
		
			
				|  |  | -			const checked = ref(true);
 | 
	
		
			
				|  |  | -			dialog.warning({
 | 
	
		
			
				|  |  | -				autoFocus: false,
 | 
	
		
			
				|  |  | -				class: "deleteDialog",
 | 
	
		
			
				|  |  | -				title: "删除曲谱",
 | 
	
		
			
				|  |  | -				content: () => (
 | 
	
		
			
				|  |  | -					<div onClick={() => checked.value = !checked.value}>
 | 
	
		
			
				|  |  | -						<NRadio checked={checked.value}>同步删除我的资源中的该曲目</NRadio>
 | 
	
		
			
				|  |  | -					</div>
 | 
	
		
			
				|  |  | -				),
 | 
	
		
			
				|  |  | -				// content: () => <div>确认删除当前曲谱?</div>,
 | 
	
		
			
				|  |  | -				positiveText: "取消",
 | 
	
		
			
				|  |  | -				positiveButtonProps: {
 | 
	
		
			
				|  |  | -					type: "default",
 | 
	
		
			
				|  |  | -				},
 | 
	
		
			
				|  |  | -				negativeText: "删除",
 | 
	
		
			
				|  |  | -				negativeButtonProps: {
 | 
	
		
			
				|  |  | -					type: "primary",
 | 
	
		
			
				|  |  | -					ghost: false,
 | 
	
		
			
				|  |  | -				},
 | 
	
		
			
				|  |  | -				onPositiveClick: () => {},
 | 
	
		
			
				|  |  | -				onNegativeClick: async () => {
 | 
	
		
			
				|  |  | -					await api_musicSheetCreationRemove(item.id, checked.value ? 1 : 0);
 | 
	
		
			
				|  |  | -					handleReset();
 | 
	
		
			
				|  |  | -				},
 | 
	
		
			
				|  |  | -			});
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -		const loadingRef = ref();
 | 
	
		
			
				|  |  | +    const handleDelte = (item: any) => {
 | 
	
		
			
				|  |  | +      const checked = ref(true);
 | 
	
		
			
				|  |  | +      dialog.warning({
 | 
	
		
			
				|  |  | +        autoFocus: false,
 | 
	
		
			
				|  |  | +        class: "deleteDialog",
 | 
	
		
			
				|  |  | +        title: "删除曲谱",
 | 
	
		
			
				|  |  | +        content: () => (
 | 
	
		
			
				|  |  | +          <div onClick={() => (checked.value = !checked.value)}>
 | 
	
		
			
				|  |  | +            <NRadio checked={checked.value}>同步删除我的资源中的该曲目</NRadio>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        // content: () => <div>确认删除当前曲谱?</div>,
 | 
	
		
			
				|  |  | +        positiveText: "取消",
 | 
	
		
			
				|  |  | +        positiveButtonProps: {
 | 
	
		
			
				|  |  | +          type: "default",
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        negativeText: "删除",
 | 
	
		
			
				|  |  | +        negativeButtonProps: {
 | 
	
		
			
				|  |  | +          type: "primary",
 | 
	
		
			
				|  |  | +          ghost: false,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        onPositiveClick: () => {},
 | 
	
		
			
				|  |  | +        onNegativeClick: async () => {
 | 
	
		
			
				|  |  | +          await api_musicSheetCreationRemove(item.id, checked.value ? 1 : 0);
 | 
	
		
			
				|  |  | +          handleReset();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const messageEvent = (params?: any) => {
 | 
	
		
			
				|  |  | -			// 在老师端里面关闭要刷新
 | 
	
		
			
				|  |  | -			if (params.data?.api == "reload") {
 | 
	
		
			
				|  |  | -				handleReset();
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -		onMounted(() => {
 | 
	
		
			
				|  |  | -			getList();
 | 
	
		
			
				|  |  | -			if (loadingRef.value) {
 | 
	
		
			
				|  |  | -				const obv = new IntersectionObserver((entries) => {
 | 
	
		
			
				|  |  | -					if (entries[0].isIntersecting) {
 | 
	
		
			
				|  |  | -						if (data.finish || data.loading) return;
 | 
	
		
			
				|  |  | -						forms.page++;
 | 
	
		
			
				|  |  | -						getList();
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | -				});
 | 
	
		
			
				|  |  | -				obv.observe(loadingRef.value?.$el);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +          // 删除上传记录里面的数据
 | 
	
		
			
				|  |  | +          const index = uploadState.uploadList.findIndex((upload: any) => upload.musicSheetCreationId === item.id);
 | 
	
		
			
				|  |  | +          if (index !== -1) {
 | 
	
		
			
				|  |  | +            uploadState.uploadList.splice(index, 1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			window.addEventListener("message", (params?: any) => {
 | 
	
		
			
				|  |  | -				messageEvent(params);
 | 
	
		
			
				|  |  | -			});
 | 
	
		
			
				|  |  | -		});
 | 
	
		
			
				|  |  | +            saveUploadCatch();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    const loadingRef = ref();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		onUnmounted(() => {
 | 
	
		
			
				|  |  | -			window.removeEventListener("message", messageEvent);
 | 
	
		
			
				|  |  | -		});
 | 
	
		
			
				|  |  | -		const handleOpenNotaion = (item: any) => {
 | 
	
		
			
				|  |  | -			window.parent.postMessage(
 | 
	
		
			
				|  |  | -				{
 | 
	
		
			
				|  |  | -					api: "notation_open",
 | 
	
		
			
				|  |  | -					url: `${location.origin}/notation/#/?v=${Date.now()}&id=${item.id}`,
 | 
	
		
			
				|  |  | -				},
 | 
	
		
			
				|  |  | -				"*"
 | 
	
		
			
				|  |  | -			);
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -		const productSvg = (abc: string, id: string) => {
 | 
	
		
			
				|  |  | -			const a = ABCJS.renderAbc(id, abc, { selectTypes: false, add_classes: true })[0];
 | 
	
		
			
				|  |  | -			return a;
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +    const messageEvent = (params?: any) => {
 | 
	
		
			
				|  |  | +      // 在老师端里面关闭要刷新
 | 
	
		
			
				|  |  | +      if (params.data?.api == "reload") {
 | 
	
		
			
				|  |  | +        handleReset();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    onMounted(() => {
 | 
	
		
			
				|  |  | +      getList();
 | 
	
		
			
				|  |  | +      if (loadingRef.value) {
 | 
	
		
			
				|  |  | +        const obv = new IntersectionObserver((entries) => {
 | 
	
		
			
				|  |  | +          if (entries[0].isIntersecting) {
 | 
	
		
			
				|  |  | +            if (data.finish || data.loading) return;
 | 
	
		
			
				|  |  | +            forms.page++;
 | 
	
		
			
				|  |  | +            getList();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        obv.observe(loadingRef.value?.$el);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      window.addEventListener("message", (params?: any) => {
 | 
	
		
			
				|  |  | +        messageEvent(params);
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    onUnmounted(() => {
 | 
	
		
			
				|  |  | +      window.removeEventListener("message", messageEvent);
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const handleOpenNotaion = (item: any) => {
 | 
	
		
			
				|  |  | +      window.parent.postMessage(
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +          api: "notation_open",
 | 
	
		
			
				|  |  | +          url: `${location.origin}/notation/#/?v=${Date.now()}&id=${item.id}`,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        "*"
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    const productSvg = (abc: string, id: string) => {
 | 
	
		
			
				|  |  | +      const a = ABCJS.renderAbc(id, abc, { selectTypes: false, add_classes: true })[0];
 | 
	
		
			
				|  |  | +      return a;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const handleSuccess = () => {
 | 
	
		
			
				|  |  |        data.list.find((item: any) => item.id === data.item.id).uploadStatus = "YES";
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -		return () => (
 | 
	
		
			
				|  |  | -			<div class={styles.wrap}>
 | 
	
		
			
				|  |  | -				<div class={styles.wrapBox}>
 | 
	
		
			
				|  |  | -					<div class={styles.itemWrap}>
 | 
	
		
			
				|  |  | -						<div class={styles.itemWrapBox}>
 | 
	
		
			
				|  |  | -							<div class={styles.createItem} onClick={() => (data.addShow = true)}>
 | 
	
		
			
				|  |  | -								<img src={getImage("icon_29.png")} />
 | 
	
		
			
				|  |  | -								<div>新建乐谱</div>
 | 
	
		
			
				|  |  | -							</div>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -					</div>
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    return () => (
 | 
	
		
			
				|  |  | +      <div class={styles.wrap}>
 | 
	
		
			
				|  |  | +        <UploadFile />
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -					{data.list.map((item, index: number) => (
 | 
	
		
			
				|  |  | -						<div class={styles.itemWrap}>
 | 
	
		
			
				|  |  | -							<div class={styles.itemWrapBox}>
 | 
	
		
			
				|  |  | -								<div class={styles.item} onClick={() => handleOpenNotaion(item)}>
 | 
	
		
			
				|  |  | -									<div class={styles.imgBox} id={"item_" + index}>
 | 
	
		
			
				|  |  | -										<img
 | 
	
		
			
				|  |  | -											src={getImage("icon_staff.png")}
 | 
	
		
			
				|  |  | -											onLoad={() => {
 | 
	
		
			
				|  |  | -												item.visualObj = productSvg(item.creationConfig, "item_" + index);
 | 
	
		
			
				|  |  | -											}}
 | 
	
		
			
				|  |  | -										/>
 | 
	
		
			
				|  |  | -									</div>
 | 
	
		
			
				|  |  | -									<div class={styles.itemBottom}>
 | 
	
		
			
				|  |  | -										<div class={styles.bottombox}>
 | 
	
		
			
				|  |  | -											<div class={styles.bottomLeft}>
 | 
	
		
			
				|  |  | -												<div class={styles.itemtitle}>
 | 
	
		
			
				|  |  | -													<span>{item.name || `未命名乐谱-${index + 1}`}</span>
 | 
	
		
			
				|  |  | -												</div>
 | 
	
		
			
				|  |  | -												<div class={styles.time}>{item.updateTime}</div>
 | 
	
		
			
				|  |  | -											</div>
 | 
	
		
			
				|  |  | -											{item.uploadStatus !== "YES" && (
 | 
	
		
			
				|  |  | -												<img
 | 
	
		
			
				|  |  | -													class={styles.bottomBtn}
 | 
	
		
			
				|  |  | -													src={getImage("icon_29_2.png")}
 | 
	
		
			
				|  |  | -													onClick={(e: Event) => {
 | 
	
		
			
				|  |  | +        <div class={styles.wrapBox}>
 | 
	
		
			
				|  |  | +          <div class={styles.itemWrap}>
 | 
	
		
			
				|  |  | +            <div class={styles.itemWrapBox}>
 | 
	
		
			
				|  |  | +              <div class={styles.createItem} onClick={() => (data.addShow = true)}>
 | 
	
		
			
				|  |  | +                <img src={getImage("icon_29.png")} />
 | 
	
		
			
				|  |  | +                <div>新建乐谱</div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          {data.list.map((item, index: number) => (
 | 
	
		
			
				|  |  | +            <div class={styles.itemWrap}>
 | 
	
		
			
				|  |  | +              <div class={styles.itemWrapBox}>
 | 
	
		
			
				|  |  | +                <div class={styles.item} onClick={() => handleOpenNotaion(item)}>
 | 
	
		
			
				|  |  | +                  <div class={styles.imgBox} id={"item_" + index}>
 | 
	
		
			
				|  |  | +                    <img
 | 
	
		
			
				|  |  | +                      src={getImage("icon_staff.png")}
 | 
	
		
			
				|  |  | +                      onLoad={() => {
 | 
	
		
			
				|  |  | +                        item.visualObj = productSvg(item.creationConfig, "item_" + index);
 | 
	
		
			
				|  |  | +                      }}
 | 
	
		
			
				|  |  | +                    />
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                  <div class={styles.itemBottom}>
 | 
	
		
			
				|  |  | +                    <div class={styles.bottombox}>
 | 
	
		
			
				|  |  | +                      <div class={styles.bottomLeft}>
 | 
	
		
			
				|  |  | +                        <div class={styles.itemtitle}>
 | 
	
		
			
				|  |  | +                          <span>{item.name || `未命名乐谱-${index + 1}`}</span>
 | 
	
		
			
				|  |  | +                        </div>
 | 
	
		
			
				|  |  | +                        <div class={styles.time}>{item.updateTime}</div>
 | 
	
		
			
				|  |  | +                      </div>
 | 
	
		
			
				|  |  | +                      {item.uploadStatus !== "YES" && (
 | 
	
		
			
				|  |  | +                        <img
 | 
	
		
			
				|  |  | +                          class={styles.bottomBtn}
 | 
	
		
			
				|  |  | +                          src={getImage("icon_29_2.png")}
 | 
	
		
			
				|  |  | +                          onClick={(e: Event) => {
 | 
	
		
			
				|  |  |                              e.stopPropagation();
 | 
	
		
			
				|  |  | -														data.item = { ...item };
 | 
	
		
			
				|  |  | -														nextTick(() => {
 | 
	
		
			
				|  |  | -															data.uploadShow = true;
 | 
	
		
			
				|  |  | -														});
 | 
	
		
			
				|  |  | -													}}
 | 
	
		
			
				|  |  | -												/>
 | 
	
		
			
				|  |  | -											)}
 | 
	
		
			
				|  |  | -											<img
 | 
	
		
			
				|  |  | -												class={styles.bottomBtn}
 | 
	
		
			
				|  |  | -												src={getImage("icon_29_3.png")}
 | 
	
		
			
				|  |  | -												onClick={(e: Event) => {
 | 
	
		
			
				|  |  | -													e.stopPropagation();
 | 
	
		
			
				|  |  | -													handleDelte(item);
 | 
	
		
			
				|  |  | -												}}
 | 
	
		
			
				|  |  | -											/>
 | 
	
		
			
				|  |  | -										</div>
 | 
	
		
			
				|  |  | -									</div>
 | 
	
		
			
				|  |  | -									{item.uploadStatus === "YES" && (
 | 
	
		
			
				|  |  | -										<img class={styles.btn} src={getImage("icon_29_4.png")} />
 | 
	
		
			
				|  |  | -									)}
 | 
	
		
			
				|  |  | -									{item.uploadStatus === "UPDATE" && (
 | 
	
		
			
				|  |  | -										<img class={styles.btn} src={getImage("icon_29_5.png")} />
 | 
	
		
			
				|  |  | -									)}
 | 
	
		
			
				|  |  | -								</div>
 | 
	
		
			
				|  |  | -							</div>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -					))}
 | 
	
		
			
				|  |  | -				</div>
 | 
	
		
			
				|  |  | -				{!data.finish && (
 | 
	
		
			
				|  |  | -					<NSpace ref={loadingRef} justify="center" style={{ padding: "30px" }}>
 | 
	
		
			
				|  |  | -						<NSpin size="large" />
 | 
	
		
			
				|  |  | -					</NSpace>
 | 
	
		
			
				|  |  | -				)}
 | 
	
		
			
				|  |  | +                            data.item = { ...item };
 | 
	
		
			
				|  |  | +                            nextTick(() => {
 | 
	
		
			
				|  |  | +                              data.uploadShow = true;
 | 
	
		
			
				|  |  | +                            });
 | 
	
		
			
				|  |  | +                          }}
 | 
	
		
			
				|  |  | +                        />
 | 
	
		
			
				|  |  | +                      )}
 | 
	
		
			
				|  |  | +                      <img
 | 
	
		
			
				|  |  | +                        class={styles.bottomBtn}
 | 
	
		
			
				|  |  | +                        src={getImage("icon_29_3.png")}
 | 
	
		
			
				|  |  | +                        onClick={(e: Event) => {
 | 
	
		
			
				|  |  | +                          e.stopPropagation();
 | 
	
		
			
				|  |  | +                          handleDelte(item);
 | 
	
		
			
				|  |  | +                        }}
 | 
	
		
			
				|  |  | +                      />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                  {item.uploadStatus === "YES" && <img class={styles.btn} src={getImage("icon_29_4.png")} />}
 | 
	
		
			
				|  |  | +                  {item.uploadStatus === "UPDATE" && <img class={styles.btn} src={getImage("icon_29_5.png")} />}
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          ))}
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        {!data.finish && (
 | 
	
		
			
				|  |  | +          <NSpace ref={loadingRef} justify="center" style={{ padding: "30px" }}>
 | 
	
		
			
				|  |  | +            <NSpin size="large" />
 | 
	
		
			
				|  |  | +          </NSpace>
 | 
	
		
			
				|  |  | +        )}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <TheCreate
 | 
	
		
			
				|  |  | +          v-model:show={data.addShow}
 | 
	
		
			
				|  |  | +          onCreate={() => {
 | 
	
		
			
				|  |  | +            data.addShow = false;
 | 
	
		
			
				|  |  | +          }}
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -				<TheCreate
 | 
	
		
			
				|  |  | -					v-model:show={data.addShow}
 | 
	
		
			
				|  |  | -					onCreate={() => {
 | 
	
		
			
				|  |  | -						data.addShow = false;
 | 
	
		
			
				|  |  | -					}}
 | 
	
		
			
				|  |  | -				/>
 | 
	
		
			
				|  |  | +        <UploadToResources v-model:show={data.uploadShow} item={data.item} onSuccess={() => handleSuccess()} />
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -				<UploadToResources v-model:show={data.uploadShow} item={data.item} onSuccess={() => handleSuccess()} />
 | 
	
		
			
				|  |  | -			</div>
 | 
	
		
			
				|  |  | -		);
 | 
	
		
			
				|  |  | -	},
 | 
	
		
			
				|  |  | +        <UploadToTasks />
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |  });
 |