feat: 教育管理员只获取active订阅计划&超级管理员可修改订阅计划状态
This commit is contained in:
@@ -430,7 +430,7 @@ export default defineComponent({
|
||||
if (!orgId) return
|
||||
Https.axiosPost(Https.httpUrls.searchSubscribeByOrg, {
|
||||
organizationId: orgId,
|
||||
status: ['PENDING', 'ACTIVE']
|
||||
status: ['ACTIVE']
|
||||
}).then(res => {
|
||||
// 将与当前用户 subscriptionPlanId 相同的订阅计划放到第一个
|
||||
const userSubscriptionPlanId = store.state.UserHabit.userDetail.subscriptionPlanId
|
||||
|
||||
@@ -293,6 +293,16 @@
|
||||
placeholder="Input the credit limit"
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>Status:</span>
|
||||
<a-select
|
||||
v-model:value="formState.status"
|
||||
placeholder="Select status"
|
||||
allow-clear
|
||||
style="width: 250px"
|
||||
:options="statusOption"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="subscriptionPlan_btn admin_page">
|
||||
@@ -411,7 +421,8 @@ const formState = reactive({
|
||||
organizationId: undefined as string | undefined,
|
||||
adminAccId: undefined as string | undefined,
|
||||
creditLimit: null as number | null,
|
||||
accountNum: null as number | null
|
||||
accountNum: null as number | null,
|
||||
status: undefined as PlanStatus | undefined
|
||||
})
|
||||
|
||||
const organizationModalVisible = ref(false)
|
||||
@@ -499,6 +510,7 @@ const resetFormState = () => {
|
||||
formState.adminAccId = undefined
|
||||
formState.creditLimit = null
|
||||
formState.accountNum = null
|
||||
formState.status = undefined
|
||||
}
|
||||
|
||||
const handleSearch = () => {
|
||||
@@ -537,7 +549,29 @@ const openEdit = (record: SubscriptionPlan) => {
|
||||
formState.adminAccId = record.adminAccId
|
||||
formState.creditLimit = record.creditLimit
|
||||
formState.accountNum = (record as any).accountNum || null
|
||||
formState.status = record.status
|
||||
formState.id = record.id
|
||||
|
||||
// 检查组织ID是否在已加载的组织列表中,如果不在,则添加临时项
|
||||
if (record.organizationId) {
|
||||
const orgExists = organizationOptions.value.some(
|
||||
(org: any) => org.id === record.organizationId || String(org.id) === String(record.organizationId)
|
||||
)
|
||||
if (!orgExists) {
|
||||
// 从表格数据中获取组织名称,如果存在则添加临时项
|
||||
const orgName = (record as any).organizationName
|
||||
if (orgName) {
|
||||
organizationOptions.value = [
|
||||
{
|
||||
id: record.organizationId,
|
||||
name: orgName
|
||||
},
|
||||
...organizationOptions.value
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modalVisible.value = true
|
||||
}
|
||||
|
||||
@@ -666,7 +700,20 @@ const getOrganizationList = async (isLoadMore = false) => {
|
||||
organizationParams
|
||||
)
|
||||
if (rv) {
|
||||
organizationOptions.value = [...organizationOptions.value, ...(rv.records || [])]
|
||||
const newRecords = rv.records || []
|
||||
// 去重:如果新数据中包含已存在的组织ID,则移除旧项(包括临时项),保留新项
|
||||
const existingIds = new Set(
|
||||
organizationOptions.value.map((org: any) => String(org.id))
|
||||
)
|
||||
const newIds = new Set(newRecords.map((org: any) => String(org.id)))
|
||||
|
||||
// 移除会被新数据覆盖的旧项(包括临时项)
|
||||
organizationOptions.value = organizationOptions.value.filter(
|
||||
(org: any) => !newIds.has(String(org.id))
|
||||
)
|
||||
|
||||
// 追加新数据
|
||||
organizationOptions.value = [...organizationOptions.value, ...newRecords]
|
||||
organizationParams.total = rv.total || 0
|
||||
}
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user