|
@@ -1,4 +1,4 @@
|
|
|
-import { defineComponent, nextTick, onMounted, onUnmounted, reactive, watch } from "vue";
|
|
|
+import { defineComponent, nextTick, onMounted, onUnmounted, reactive, ref, watch } from "vue";
|
|
|
import {
|
|
|
api_musicSheetCreationWav2mp3,
|
|
|
api_musicSheetCreationSaveMusic,
|
|
@@ -147,39 +147,49 @@ export default defineComponent({
|
|
|
froms.mp3 = data;
|
|
|
};
|
|
|
|
|
|
- const handleClose = () => {
|
|
|
- model.saveLoading = false;
|
|
|
- model.saveProgress = 0;
|
|
|
- }
|
|
|
+ const handleClose = () => {
|
|
|
+ model.saveLoading = false;
|
|
|
+ model.saveProgress = 0;
|
|
|
+ };
|
|
|
|
|
|
/** 自动生成图片 */
|
|
|
const handleAutoProduct = async () => {
|
|
|
- model.saveProgress = 0;
|
|
|
+ model.saveProgress = 0;
|
|
|
const xml = props.item.xml;
|
|
|
- if (!xml) {
|
|
|
- message.error("没有生成xml文件");
|
|
|
- handleClose();
|
|
|
+ const res = await fetch(xml);
|
|
|
+ if (res.status > 299 || res.status < 200) {
|
|
|
+ message.error("xml文件不存在");
|
|
|
+ handleClose();
|
|
|
return;
|
|
|
}
|
|
|
- const res = await fetch(xml)
|
|
|
- if (res.status > 299 || res.status < 200){
|
|
|
- message.error("xml文件不存在");
|
|
|
- handleClose();
|
|
|
- return;
|
|
|
- }
|
|
|
const origin = /(localhost|192)/.test(location.host)
|
|
|
? "https://test.lexiaoya.cn"
|
|
|
: location.origin;
|
|
|
model.productIfameSrc = `${origin}/instrument/#/product-img?xmlUrl=${xml}&productXmlImg=1`;
|
|
|
model.productOpen = true;
|
|
|
- setTimeout(() => {
|
|
|
- model.saveProgress = 10;
|
|
|
- }, 800)
|
|
|
+ setTimeout(() => {
|
|
|
+ model.saveProgress = 10;
|
|
|
+ }, 800);
|
|
|
};
|
|
|
-
|
|
|
+ const fromRef = ref();
|
|
|
const handleUpload = () => {
|
|
|
- model.saveLoading = true;
|
|
|
- handleAutoProduct();
|
|
|
+ fromRef.value.validate((err: any) => {
|
|
|
+ if (err) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!props.item.xml) {
|
|
|
+ message.error("没有生成xml文件");
|
|
|
+ handleClose();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!props.item.filePath) {
|
|
|
+ message.error("没有生成wav文件");
|
|
|
+ handleClose();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ model.saveLoading = true;
|
|
|
+ handleAutoProduct();
|
|
|
+ });
|
|
|
};
|
|
|
const handleSubmit = async () => {
|
|
|
await wav2mp3();
|
|
@@ -187,7 +197,7 @@ export default defineComponent({
|
|
|
await createMusic();
|
|
|
model.saveProgress = 100;
|
|
|
emit("success");
|
|
|
- message.success("上传成功");
|
|
|
+ message.success("上传成功");
|
|
|
setTimeout(() => {
|
|
|
model.saveLoading = false;
|
|
|
emit("update:show", false);
|
|
@@ -209,8 +219,23 @@ export default defineComponent({
|
|
|
<NIcon component={Close} size={18} />
|
|
|
</NButton>
|
|
|
</div>
|
|
|
- <NForm class={styles.form} labelPlacement="left">
|
|
|
- <NFormItem label="可用声部">
|
|
|
+ <NForm
|
|
|
+ ref={fromRef}
|
|
|
+ model={froms}
|
|
|
+ class={styles.form}
|
|
|
+ labelPlacement="left"
|
|
|
+ showRequireMark={false}
|
|
|
+ >
|
|
|
+ <NFormItem
|
|
|
+ label="可用声部"
|
|
|
+ path="subjectId"
|
|
|
+ rule={{
|
|
|
+ required: true,
|
|
|
+ type: "number",
|
|
|
+ message: "请选择素材可用乐器",
|
|
|
+ trigger: "change",
|
|
|
+ }}
|
|
|
+ >
|
|
|
<NSelect
|
|
|
to="body"
|
|
|
placeholder="请选择素材可用乐器"
|