feat: team admin can pay billing (#2240)

This commit is contained in:
Joel 2024-01-26 18:06:54 +08:00 committed by GitHub
parent 9fd55157d6
commit 2fc0dcc10a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 18 additions and 11 deletions

View File

@ -11,23 +11,23 @@ import { useProviderContext } from '@/context/provider-context'
const Billing: FC = () => {
const { t } = useTranslation()
const { isCurrentWorkspaceOwner } = useAppContext()
const { isCurrentWorkspaceManager } = useAppContext()
const [billingUrl, setBillingUrl] = React.useState('')
const { enableBilling } = useProviderContext()
useEffect(() => {
if (!enableBilling || !isCurrentWorkspaceOwner)
if (!enableBilling || !isCurrentWorkspaceManager)
return
(async () => {
const { url } = await fetchBillingUrl()
setBillingUrl(url)
})()
}, [isCurrentWorkspaceOwner])
}, [isCurrentWorkspaceManager])
return (
<div>
<PlanComp loc={'billing-page'} />
{enableBilling && isCurrentWorkspaceOwner && billingUrl && (
{enableBilling && isCurrentWorkspaceManager && billingUrl && (
<a className='mt-5 flex px-6 justify-between h-12 items-center bg-gray-50 rounded-xl cursor-pointer' href={billingUrl} target='_blank'>
<div className='flex items-center'>
<ReceiptList className='w-4 h-4 text-gray-700' />

View File

@ -20,8 +20,8 @@ const Pricing: FC<Props> = ({
}) => {
const { t } = useTranslation()
const { plan } = useProviderContext()
const { isCurrentWorkspaceOwner } = useAppContext()
const canPay = isCurrentWorkspaceOwner
const { isCurrentWorkspaceManager } = useAppContext()
const canPay = isCurrentWorkspaceManager
const [planRange, setPlanRange] = React.useState<PlanRange>(PlanRange.monthly)
return createPortal(

View File

@ -132,6 +132,7 @@ export enum CurrentSystemQuotaTypeEnum {
export enum QuotaUnitEnum {
times = 'times',
tokens = 'tokens',
credits = 'credits',
}
export type QuotaConfiguration = {

View File

@ -62,6 +62,9 @@ const QuotaPanel: FC<QuotaPanelProps> = ({
{
currentQuota?.quota_unit === QuotaUnitEnum.times && t('common.modelProvider.callTimes')
}
{
currentQuota?.quota_unit === QuotaUnitEnum.credits && t('common.modelProvider.credits')
}
</div>
)
}

View File

@ -20,7 +20,7 @@ const translation = {
save: 'Save ',
free: 'Free',
currentPlan: 'Current Plan',
contractOwner: 'Contact your workspace owner',
contractOwner: 'Contact team manager',
startForFree: 'Start for free',
getStartedWith: 'Get started with ',
contactSales: 'Contact Sales',
@ -68,7 +68,7 @@ const translation = {
tooltip: 'Manual editing and annotation of responses provides customizable high-quality question-answering abilities for apps. (Applicable only in chat apps)',
},
ragAPIRequestTooltip: 'Refers to the number of API calls invoking only the knowledge base processing capabilities of Dify.',
receiptInfo: 'Only team owner can subscribe and view billing information',
receiptInfo: 'Only team owner and team admin can subscribe and view billing information',
},
plans: {
sandbox: {

View File

@ -20,7 +20,7 @@ const translation = {
save: 'Save ',
free: 'Free',
currentPlan: 'Current Plan',
contractOwner: 'Contact your workspace owner',
contractOwner: 'Contact team manager',
startForFree: 'Start for free',
getStartedWith: 'Get started with ',
contactSales: 'Contact Sales',
@ -68,6 +68,7 @@ const translation = {
tooltip: 'Manual editing and annotation of responses provides customizable high-quality question-answering abilities for apps. (Applicable only in chat apps)',
},
ragAPIRequestTooltip: 'Refers to the number of API calls invoking only the knowledge base processing capabilities of Dify.',
receiptInfo: 'Somente proprietários e administradores de equipe podem se inscrever e visualizar informações de cobrança',
},
plans: {
sandbox: {

View File

@ -19,7 +19,7 @@ const translation = {
year: '年',
save: '节省',
currentPlan: '当前计划',
contractOwner: '联系您的工作区所有者',
contractOwner: '联系团队管理员',
free: '免费',
startForFree: '免费开始',
getStartedWith: '开始使用',
@ -68,7 +68,7 @@ const translation = {
tooltip: '标注回复功能通过人工编辑标注为应用提供了可定制的高质量问答回复能力',
},
ragAPIRequestTooltip: '指单独调用 Dify 知识库数据处理能力的 API。',
receiptInfo: '只有团队所有者才能订阅和查看账单信息',
receiptInfo: '只有团队所有者和团队管理员才能订阅和查看账单信息',
},
plans: {
sandbox: {

View File

@ -303,6 +303,7 @@ const translation = {
model: 'Model',
featureSupported: '{{feature}} supported',
callTimes: 'Call times',
credits: 'Message Credits',
buyQuota: 'Buy Quota',
getFreeTokens: 'Get free Tokens',
priorityUsing: 'Prioritize using',

View File

@ -303,6 +303,7 @@ const translation = {
model: '模型',
featureSupported: '支持 {{feature}} 功能',
callTimes: '调用次数',
credits: '消息额度',
buyQuota: '购买额度',
getFreeTokens: '获得免费 Tokens',
priorityUsing: '优先使用',