feat: 教育管理员不可切换子账号订阅计划&Peding状态提示开始时间
This commit is contained in:
@@ -96,7 +96,7 @@
|
||||
style="width: 250px"
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item" v-if="title?.value == 'Edit'">
|
||||
<!-- <div class="admin_state_item" v-if="title?.value == 'Edit'">
|
||||
<span>
|
||||
{{ $t('admin.SubscribePlan') }}:
|
||||
<span>*</span>
|
||||
@@ -108,7 +108,7 @@
|
||||
:field-names="{ label: 'name', value: 'id' }"
|
||||
:placeholder="$t('admin.SelectPlan')"
|
||||
></a-select>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="allUserPoeration_btn admin_page">
|
||||
<div class="admin_search_item" @click="cancelDsign">{{ $t('admin.Close') }}</div>
|
||||
|
||||
@@ -85,17 +85,24 @@
|
||||
v-for="plan in planFilterOptions"
|
||||
:key="plan.id"
|
||||
class="plan_item"
|
||||
:class="{
|
||||
:class="{
|
||||
active: subscriptionPlanId === plan.id,
|
||||
disabled: plan.status === 'PENDING'
|
||||
}"
|
||||
@click="plan.status !== 'PENDING' && selectPlanFilter(plan.id)"
|
||||
>
|
||||
<span class="plan_name">{{ plan.name }}</span>
|
||||
<MoreOutlined
|
||||
class="plan_more_icon"
|
||||
@click.stop="plan.status !== 'PENDING' && openPlanRenameModal(plan)"
|
||||
/>
|
||||
<a-tooltip v-if="plan.status === 'PENDING'">
|
||||
<template #title>{{ $t('admin.PlanStart') }} {{ plan.startTime }}</template>
|
||||
<span class="plan_name">{{ plan.name }}</span>
|
||||
<MoreOutlined class="plan_more_icon" />
|
||||
</a-tooltip>
|
||||
<template v-else>
|
||||
<span class="plan_name">{{ plan.name }}</span>
|
||||
<MoreOutlined
|
||||
class="plan_more_icon"
|
||||
@click.stop="plan.status !== 'PENDING' && openPlanRenameModal(plan)"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<a-table
|
||||
@@ -435,8 +442,11 @@ export default defineComponent({
|
||||
if (!orgId) return
|
||||
Https.axiosPost(Https.httpUrls.searchSubscribeByOrg, {
|
||||
organizationId: orgId,
|
||||
status: ['ACTIVE','PENDING']
|
||||
status: ['ACTIVE', 'PENDING']
|
||||
}).then(res => {
|
||||
res.forEach(plan => {
|
||||
plan.startTime = formatTime(plan.currentPeriodStart, 'YYYY-MM-DD hh:mm:ss')
|
||||
})
|
||||
// 将与当前用户 subscriptionPlanId 相同的订阅计划放到第一个
|
||||
const userSubscriptionPlanId = store.state.UserHabit.userDetail.subscriptionPlanId
|
||||
if (userSubscriptionPlanId && Array.isArray(res)) {
|
||||
@@ -451,6 +461,7 @@ export default defineComponent({
|
||||
} else {
|
||||
planFilterOptions.value = res
|
||||
}
|
||||
console.log(planFilterOptions.value)
|
||||
})
|
||||
}
|
||||
// 监听组织ID,获取到值后再拉取订阅计划
|
||||
@@ -459,7 +470,8 @@ export default defineComponent({
|
||||
orgId => {
|
||||
if (orgId) {
|
||||
fetchSubscribePlanList()
|
||||
const userSubscriptionPlanId = store.state.UserHabit.userDetail.subscriptionPlanId
|
||||
const userSubscriptionPlanId =
|
||||
store.state.UserHabit.userDetail.subscriptionPlanId
|
||||
if (userSubscriptionPlanId) {
|
||||
selectPlanFilter(userSubscriptionPlanId)
|
||||
}
|
||||
|
||||
@@ -1593,7 +1593,8 @@ export default {
|
||||
InputPlanName: '请输入计划名称',
|
||||
Cancel: '取消',
|
||||
SelectPlan: '选择计划',
|
||||
AllPlan: '全部'
|
||||
AllPlan: '全部',
|
||||
PlanStart:'订阅计划生效时间:'
|
||||
},
|
||||
Login: {
|
||||
Login: '登录',
|
||||
|
||||
102
src/lang/en.ts
102
src/lang/en.ts
@@ -1192,9 +1192,10 @@ export default {
|
||||
createGroup: 'Create Group',
|
||||
slutionGroup: 'Slution Group',
|
||||
deleteLayer: 'Delete Layer',
|
||||
cannotDeleteOnlyLayer: 'Cannot delete the last layer. At least one layer must remain.',
|
||||
cannotDeleteOnlyLayer:
|
||||
'Cannot delete the last layer. At least one layer must remain.',
|
||||
fixedLayerCannotDelete: 'Fixed layer cannot be deleted',
|
||||
backLayerCannotDelete: 'Background layer cannot be deleted',
|
||||
backLayerCannotDelete: 'Background layer cannot be deleted',
|
||||
clearSelection: 'Clear Selection',
|
||||
AddPinnedLayer: 'Add a pinned layer',
|
||||
selectedLayers: 'The number of selected layers:',
|
||||
@@ -1216,7 +1217,7 @@ export default {
|
||||
color: 'Color',
|
||||
Print: 'Print',
|
||||
Elements: 'Elements',
|
||||
PrintAndElementsGroup: 'Print and Elements Group',
|
||||
PrintAndElementsGroup: 'Print and Elements Group',
|
||||
KeyboardShortcutsOperationGuide: 'Keyboard shortcuts & Operation guide',
|
||||
other: 'Other',
|
||||
touchDevice: 'Touch Device',
|
||||
@@ -1335,14 +1336,14 @@ export default {
|
||||
flipVertical: 'Vertical Flip',
|
||||
cropAndAdd: 'Crop and Add',
|
||||
cropImage: 'Crop Image',
|
||||
noRepeat: 'no-repeat',
|
||||
repeat: 'repeat',
|
||||
repeatX: 'repeat-x',
|
||||
repeatY: 'repeat-y',
|
||||
repeatSetting: 'Repeat Setting',
|
||||
noRepeat: 'no-repeat',
|
||||
repeat: 'repeat',
|
||||
repeatX: 'repeat-x',
|
||||
repeatY: 'repeat-y',
|
||||
repeatSetting: 'Repeat Setting',
|
||||
angle: 'Angle',
|
||||
scale: 'Scale',
|
||||
offset: 'Offset',
|
||||
offset: 'Offset',
|
||||
group: 'Group',
|
||||
//长毛笔
|
||||
FurSettings: 'FurSettings',
|
||||
@@ -1506,41 +1507,47 @@ export default {
|
||||
DeleteTexture: 'Delete Texture',
|
||||
TextureSettings: 'Texture Settings',
|
||||
TextureSelector: 'Texture Selector',
|
||||
// 混合模式
|
||||
CompositeNormal: 'Normal',
|
||||
CompositeNormalTip: 'Normal: Default, new graphics cover original content',
|
||||
CompositeDarken: 'Darken',
|
||||
CompositeDarkenTip: 'Darken: Take the darkest color',
|
||||
CompositeMultiply: 'Multiply',
|
||||
CompositeMultiplyTip: 'Multiply: Darken the image',
|
||||
CompositeColorBurn: 'Color Burn',
|
||||
CompositeColorBurnTip: 'Color Burn: Increase contrast and darken the bottom color',
|
||||
CompositeLighten: 'Lighten',
|
||||
CompositeLightenTip: 'Lighten: Take the brightest color',
|
||||
CompositeScreen: 'Screen',
|
||||
CompositeScreenTip: 'Screen: Lighten the image',
|
||||
CompositeColorDodge: 'Color Dodge',
|
||||
CompositeColorDodgeTip: 'Color Dodge: Reduce contrast and lighten the bottom color',
|
||||
CompositeLighter: 'Color Dodge (Add)',
|
||||
CompositeLighterTip: 'Color Dodge (Add): Add the brightness of the overlapping parts',
|
||||
CompositeOverlay: 'Overlay',
|
||||
CompositeOverlayTip: 'Overlay: Highlight effect',
|
||||
CompositeSoftLight: 'Soft Light',
|
||||
CompositeSoftLightTip: 'Soft Light: Blend effect',
|
||||
CompositeHardLight: 'Hard Light',
|
||||
CompositeHardLightTip: 'Hard Light: Highlight effect',
|
||||
CompositeDifference: 'Difference',
|
||||
CompositeDifferenceTip: 'Difference: Take the color difference between the two images',
|
||||
CompositeExclusion: 'Exclusion',
|
||||
CompositeExclusionTip: 'Exclusion: Take the absolute value of the color difference between the two images',
|
||||
CompositeHue: 'Hue',
|
||||
CompositeHueTip: 'Hue: Preserve the original image color and change the hue of the new image',
|
||||
CompositeSaturation: 'Saturation',
|
||||
CompositeSaturationTip: 'Saturation: Preserve the original image hue and change the saturation of the new image',
|
||||
CompositeColor: 'Color',
|
||||
CompositeColorTip: 'Color: Preserve the original image saturation and change the color of the new image',
|
||||
CompositeLuminosity: 'Luminosity',
|
||||
CompositeLuminosityTip: 'Luminosity: Preserve the original image color and change the luminosity of the new image',
|
||||
// 混合模式
|
||||
CompositeNormal: 'Normal',
|
||||
CompositeNormalTip: 'Normal: Default, new graphics cover original content',
|
||||
CompositeDarken: 'Darken',
|
||||
CompositeDarkenTip: 'Darken: Take the darkest color',
|
||||
CompositeMultiply: 'Multiply',
|
||||
CompositeMultiplyTip: 'Multiply: Darken the image',
|
||||
CompositeColorBurn: 'Color Burn',
|
||||
CompositeColorBurnTip: 'Color Burn: Increase contrast and darken the bottom color',
|
||||
CompositeLighten: 'Lighten',
|
||||
CompositeLightenTip: 'Lighten: Take the brightest color',
|
||||
CompositeScreen: 'Screen',
|
||||
CompositeScreenTip: 'Screen: Lighten the image',
|
||||
CompositeColorDodge: 'Color Dodge',
|
||||
CompositeColorDodgeTip: 'Color Dodge: Reduce contrast and lighten the bottom color',
|
||||
CompositeLighter: 'Color Dodge (Add)',
|
||||
CompositeLighterTip: 'Color Dodge (Add): Add the brightness of the overlapping parts',
|
||||
CompositeOverlay: 'Overlay',
|
||||
CompositeOverlayTip: 'Overlay: Highlight effect',
|
||||
CompositeSoftLight: 'Soft Light',
|
||||
CompositeSoftLightTip: 'Soft Light: Blend effect',
|
||||
CompositeHardLight: 'Hard Light',
|
||||
CompositeHardLightTip: 'Hard Light: Highlight effect',
|
||||
CompositeDifference: 'Difference',
|
||||
CompositeDifferenceTip:
|
||||
'Difference: Take the color difference between the two images',
|
||||
CompositeExclusion: 'Exclusion',
|
||||
CompositeExclusionTip:
|
||||
'Exclusion: Take the absolute value of the color difference between the two images',
|
||||
CompositeHue: 'Hue',
|
||||
CompositeHueTip:
|
||||
'Hue: Preserve the original image color and change the hue of the new image',
|
||||
CompositeSaturation: 'Saturation',
|
||||
CompositeSaturationTip:
|
||||
'Saturation: Preserve the original image hue and change the saturation of the new image',
|
||||
CompositeColor: 'Color',
|
||||
CompositeColorTip:
|
||||
'Color: Preserve the original image saturation and change the color of the new image',
|
||||
CompositeLuminosity: 'Luminosity',
|
||||
CompositeLuminosityTip:
|
||||
'Luminosity: Preserve the original image color and change the luminosity of the new image'
|
||||
},
|
||||
speedList: {
|
||||
High: 'High',
|
||||
@@ -1624,7 +1631,7 @@ export default {
|
||||
ChatRobot: 'ChatRobot',
|
||||
Yes: 'Yes',
|
||||
No: 'No',
|
||||
SubscribePlan:'Subscribe Plan',
|
||||
SubscribePlan: 'Subscribe Plan',
|
||||
SwitchPlanSuccess: 'Switch subscription plan successfully',
|
||||
SwitchPlanFailed: 'Failed to switch subscription plan',
|
||||
NoPlanSelected: 'Please select a subscription plan first',
|
||||
@@ -1637,7 +1644,8 @@ export default {
|
||||
InputPlanName: 'Please enter plan name',
|
||||
Cancel: 'Cancel',
|
||||
SelectPlan: 'Select Plan',
|
||||
AllPlan:'All'
|
||||
AllPlan: 'All',
|
||||
PlanStart:'This plan will be actived from',
|
||||
},
|
||||
Login: {
|
||||
Login: 'Login',
|
||||
@@ -1656,7 +1664,7 @@ export default {
|
||||
AgreePolicies: 'Please agree to all terms, privacy policy, and fees.',
|
||||
PasswordConditions: 'You must satisfy ALL password conditions to register.',
|
||||
LoginWithGoogle: 'Sign in with Google',
|
||||
LoginWithWechat: 'Sign in with Wechat',
|
||||
LoginWithWechat: 'Sign in with Wechat'
|
||||
},
|
||||
LoginPersonal: {
|
||||
Email: 'Email',
|
||||
|
||||
Reference in New Issue
Block a user