feat: 本次提交更新内容如下

场景计划基础设置搞定
This commit is contained in:
笔记本里的永平
2025-07-23 17:36:49 +08:00
parent 762bd722db
commit e67db8b05f
3 changed files with 38 additions and 27 deletions

View File

@@ -21,12 +21,7 @@ export async function uploadFile(
}, },
}); });
// 检查响应结果 return res.url;
if (res?.code === 200 && res?.data?.url) {
return res.data.url;
} else {
throw new Error(res?.msg || "文件上传失败");
}
} catch (e: any) { } catch (e: any) {
throw new Error(e?.message || "文件上传失败"); throw new Error(e?.message || "文件上传失败");
} }

View File

@@ -204,7 +204,7 @@ export default function NewPlan() {
<Layout <Layout
header={ header={
<> <>
<NavCommon title={isEdit ? "编辑朋友圈同步" : "新建朋友圈同步"} /> <NavCommon title={isEdit ? "编辑场景计划" : "新建场景计划"} />
<StepIndicator currentStep={currentStep} steps={steps} /> <StepIndicator currentStep={currentStep} steps={steps} />
</> </>
} }

View File

@@ -1,5 +1,5 @@
import React, { useState, useEffect, useRef } from "react"; import React, { useState, useEffect, useRef } from "react";
import { Form, Input, Button, Tag, Switch, Modal } from "antd"; import { Form, Input, Button, Tag, Switch, Modal, Spin } from "antd";
import { Button as ButtonMobile } from "antd-mobile"; import { Button as ButtonMobile } from "antd-mobile";
import { import {
PlusOutlined, PlusOutlined,
@@ -10,7 +10,6 @@ import {
CheckOutlined, CheckOutlined,
} from "@ant-design/icons"; } from "@ant-design/icons";
import { uploadFile } from "@/api/common"; import { uploadFile } from "@/api/common";
import Layout from "@/components/Layout/Layout";
import styles from "./base.module.scss"; import styles from "./base.module.scss";
interface BasicSettingsProps { interface BasicSettingsProps {
@@ -418,6 +417,18 @@ const BasicSettings: React.FC<BasicSettingsProps> = ({
<div className={styles["basic-container"]}> <div className={styles["basic-container"]}>
{/* 场景选择区块 */} {/* 场景选择区块 */}
<div className={styles["basic-scene-select"]}> <div className={styles["basic-scene-select"]}>
{sceneLoading ? (
<div
style={{
display: "flex",
justifyContent: "center",
alignItems: "center",
minHeight: 80,
}}
>
<Spin size="large"></Spin>
</div>
) : (
<div className={styles["basic-scene-grid"]}> <div className={styles["basic-scene-grid"]}>
{sceneList.map((scene) => { {sceneList.map((scene) => {
const selected = formData.scenario === scene.id; const selected = formData.scenario === scene.id;
@@ -435,6 +446,7 @@ const BasicSettings: React.FC<BasicSettingsProps> = ({
); );
})} })}
</div> </div>
)}
</div> </div>
{/* 计划名称输入区 */} {/* 计划名称输入区 */}
<div className={styles["basic-label"]}></div> <div className={styles["basic-label"]}></div>
@@ -586,7 +598,6 @@ const BasicSettings: React.FC<BasicSettingsProps> = ({
onChange={async (e) => { onChange={async (e) => {
const file = e.target.files?.[0]; const file = e.target.files?.[0];
if (file) { if (file) {
// 直接上传
try { try {
const url = await uploadFile(file); const url = await uploadFile(file);
const newPoster = { const newPoster = {
@@ -595,9 +606,14 @@ const BasicSettings: React.FC<BasicSettingsProps> = ({
type: "poster", type: "poster",
preview: url, preview: url,
}; };
console.log(newPoster);
setCustomPosters((prev) => [...prev, newPoster]); setCustomPosters((prev) => [...prev, newPoster]);
setSelectedMaterials([newPoster]);
onChange({ ...formData, materials: [newPoster] });
} catch (err) { } catch (err) {
// 可加toast提示 // 可加toast提示
log;
} }
e.target.value = ""; e.target.value = "";
} }