1. 计费核心改动 (relay/helper/price.go): - applyDistributorMarkup 新增自定义价格支持 - 自定义价格转 USD 后与平台底价对比,计算等效加价倍率 - 保底机制:自定义价格不得低于平台底价,防止平台亏损 - 优先级:全站加价 > 自定义价格 > 单模型加价比例 2. 分站价格显示修复 (controller/dist_site.go): - 自定义价格跟随商家币种(CNY),发送前需转 USD - 修复 ¥6.8 显示为 ¥46.24 的翻倍问题 3. 管理页面改进 (DistributorModels.jsx): - 全站加价模式下展示含加价的价格 - 自定义价格输入框显示正确的币种单位 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 lines
4.8 KiB
JavaScript
10 lines
4.8 KiB
JavaScript
import{r as l,A as Y,B as q}from"./index-DZXnuqaY.js";const H=(e,t,r,i)=>{var n,d,y,g;const s=[r,{code:t,...i||{}}];if((d=(n=e==null?void 0:e.services)==null?void 0:n.logger)!=null&&d.forward)return e.services.logger.forward(s,"warn","react-i18next::",!0);p(s[0])&&(s[0]=`react-i18next:: ${s[0]}`),(g=(y=e==null?void 0:e.services)==null?void 0:y.logger)!=null&&g.warn?e.services.logger.warn(...s):console!=null&&console.warn&&console.warn(...s)},z={},U=(e,t,r,i)=>{p(r)&&z[r]||(p(r)&&(z[r]=new Date),H(e,t,r,i))},F=(e,t)=>()=>{if(e.isInitialized)t();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),t()};e.on("initialized",r)}},O=(e,t,r)=>{e.loadNamespaces(t,F(e,r))},A=(e,t,r,i)=>{if(p(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(t)>-1)return O(e,r,i);r.forEach(s=>{e.options.ns.indexOf(s)<0&&e.options.ns.push(s)}),e.loadLanguages(t,F(e,i))},J=(e,t,r={})=>!t.languages||!t.languages.length?(U(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:r.lng,precheck:(i,s)=>{if(r.bindI18n&&r.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!s(i.isLanguageChangingTo,e))return!1}}),p=e=>typeof e=="string",K=e=>typeof e=="object"&&e!==null,Q=l.createContext();class V{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(r=>{this.usedNamespaces[r]||(this.usedNamespaces[r]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var M={exports:{}},$={};/**
|
|
* @license React
|
|
* use-sync-external-store-shim.production.js
|
|
*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/var h=l;function Z(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ee=typeof Object.is=="function"?Object.is:Z,te=h.useState,ne=h.useEffect,re=h.useLayoutEffect,ae=h.useDebugValue;function se(e,t){var r=t(),i=te({inst:{value:r,getSnapshot:t}}),s=i[0].inst,n=i[1];return re(function(){s.value=r,s.getSnapshot=t,C(s)&&n({inst:s})},[e,r,t]),ne(function(){return C(s)&&n({inst:s}),e(function(){C(s)&&n({inst:s})})},[e]),ae(r),r}function C(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!ee(e,r)}catch{return!0}}function oe(e,t){return t()}var ce=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?oe:se;$.useSyncExternalStore=h.useSyncExternalStore!==void 0?h.useSyncExternalStore:ce;M.exports=$;var ue=M.exports;const ie=(e,t)=>{if(p(t))return t;if(K(t)&&p(t.defaultValue))return t.defaultValue;if(typeof e=="function")return"";if(Array.isArray(e)){const r=e[e.length-1];return typeof r=="function"?"":r}return e},le={t:ie,ready:!1},fe=()=>()=>{},ge=(e,t={})=>{var j,b,P;const{i18n:r}=t,{i18n:i,defaultNS:s}=l.useContext(Q)||{},n=r||i||q();n&&!n.reportNamespaces&&(n.reportNamespaces=new V),n||U(n,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const d=l.useMemo(()=>{var a;return{...Y(),...(a=n==null?void 0:n.options)==null?void 0:a.react,...t}},[n,t]),{useSuspense:y,keyPrefix:g}=d,x=s||((j=n==null?void 0:n.options)==null?void 0:j.defaultNS),_=p(x)?[x]:x||["translation"],f=l.useMemo(()=>_,_);(P=(b=n==null?void 0:n.reportNamespaces)==null?void 0:b.addUsedNamespaces)==null||P.call(b,f);const L=l.useRef(0),G=l.useCallback(a=>{if(!n)return fe;const{bindI18n:o,bindI18nStore:c}=d,u=()=>{L.current+=1,a()};return o&&n.on(o,u),c&&n.store.on(c,u),()=>{o&&o.split(" ").forEach(v=>n.off(v,u)),c&&c.split(" ").forEach(v=>n.store.off(v,u))}},[n,d]),R=l.useRef(),I=l.useCallback(()=>{if(!n)return le;const a=!!(n.isInitialized||n.initializedStoreOnce)&&f.every(X=>J(X,n,d)),o=t.lng||n.language,c=L.current,u=R.current;if(u&&u.ready===a&&u.lng===o&&u.keyPrefix===g&&u.revision===c)return u;const k={t:n.getFixedT(o,d.nsMode==="fallback"?f:f[0],g),ready:a,lng:o,keyPrefix:g,revision:c};return R.current=k,k},[n,f,g,d,t.lng]),[W,B]=l.useState(0),{t:N,ready:S}=ue.useSyncExternalStore(G,I,I);l.useEffect(()=>{if(n&&!S&&!y){const a=()=>B(o=>o+1);t.lng?A(n,t.lng,f,a):O(n,f,a)}},[n,t.lng,f,S,y,W]);const m=n||{},w=l.useRef(null),E=l.useRef(),T=a=>{const o=Object.getOwnPropertyDescriptors(a);o.__original&&delete o.__original;const c=Object.create(Object.getPrototypeOf(a),o);if(!Object.prototype.hasOwnProperty.call(c,"__original"))try{Object.defineProperty(c,"__original",{value:a,writable:!1,enumerable:!1,configurable:!1})}catch{}return c},D=l.useMemo(()=>{const a=m,o=a==null?void 0:a.language;let c=a;a&&(w.current&&w.current.__original===a?E.current!==o?(c=T(a),w.current=c,E.current=o):c=w.current:(c=T(a),w.current=c,E.current=o));const u=[N,c,S];return u.t=N,u.i18n=c,u.ready=S,u},[N,m,S,m.resolvedLanguage,m.language,m.languages]);if(n&&y&&!S)throw new Promise(a=>{const o=()=>a();t.lng?A(n,t.lng,f,o):O(n,f,o)});return D};export{ge as u};
|