diff --git a/app.go b/app.go index 5941833..ac80d85 100644 --- a/app.go +++ b/app.go @@ -37,18 +37,20 @@ type App struct { } type DefaultSettings struct { - Server string `json:"server"` - Uploader string `json:"uploader"` - Secret string `json:"secret"` - Timeout string `json:"timeout"` + Server string `json:"server"` + Uploader string `json:"uploader"` + Secret string `json:"secret"` + Timeout string `json:"timeout"` + SourceChannel string `json:"sourceChannel"` } type UploadForm struct { - Server string `json:"server"` - Uploader string `json:"uploader"` - Secret string `json:"secret"` - Timeout string `json:"timeout"` - Data string `json:"data"` + Server string `json:"server"` + Uploader string `json:"uploader"` + Secret string `json:"secret"` + Timeout string `json:"timeout"` + SourceChannel string `json:"sourceChannel"` + Data string `json:"data"` } func NewApp() *App { @@ -61,10 +63,11 @@ func (a *App) startup(ctx context.Context) { func (a *App) DefaultSettings() DefaultSettings { return DefaultSettings{ - Server: envDefault("HFB_SERVER", "http://127.0.0.1:8080"), - Uploader: strings.TrimSpace(os.Getenv("HFB_UPLOADER_NAME")), - Secret: strings.TrimSpace(os.Getenv("HFB_UPLOAD_SECRET")), - Timeout: "15s", + Server: envDefault("HFB_SERVER", "http://127.0.0.1:8080"), + Uploader: strings.TrimSpace(os.Getenv("HFB_UPLOADER_NAME")), + Secret: strings.TrimSpace(os.Getenv("HFB_UPLOAD_SECRET")), + Timeout: "15s", + SourceChannel: strings.TrimSpace(os.Getenv("HFB_SOURCE_CHANNEL")), } } @@ -125,7 +128,11 @@ func buildUploadRequest(form UploadForm) (hfb.ExternalUploadRequest, error) { if uploaderName == "" { return hfb.ExternalUploadRequest{}, fmt.Errorf("缺少上传人名称:请展开“连接配置”填写上传人,或在文本中增加“上传人:姓名”") } - return hfb.NewExternalUploadRequest(uploaderName, parsed.Account, time.Now()), nil + sourceChannel := strings.TrimSpace(form.SourceChannel) + if sourceChannel == "" { + return hfb.ExternalUploadRequest{}, fmt.Errorf("请选择订单来源渠道") + } + return hfb.NewExternalUploadRequest(uploaderName, sourceChannel, parsed.Account, time.Now()), nil } func parseTimeout(raw string) (time.Duration, error) { diff --git a/frontend/src/main.js b/frontend/src/main.js index f2a8009..91dc970 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -2,6 +2,8 @@ import './style.css'; import { ClipboardGetText } from '../wailsjs/runtime/runtime.js'; const storageKey = 'hfb-upload-settings'; +const customChannelValue = '__custom__'; +const sourceChannelOptions = ['咸鱼', '淘宝', '京东', 'QQ', '微信']; const app = document.querySelector('#app'); @@ -37,6 +39,26 @@ app.innerHTML = ` +
+ 来源渠道 +
+ ${sourceChannelOptions + .map( + (item) => ` + ` + ) + .join('')} + + +
+
+