feat: 教育管理员只获取active订阅计划&超级管理员可修改订阅计划状态
This commit is contained in:
@@ -430,7 +430,7 @@ export default defineComponent({
|
|||||||
if (!orgId) return
|
if (!orgId) return
|
||||||
Https.axiosPost(Https.httpUrls.searchSubscribeByOrg, {
|
Https.axiosPost(Https.httpUrls.searchSubscribeByOrg, {
|
||||||
organizationId: orgId,
|
organizationId: orgId,
|
||||||
status: ['PENDING', 'ACTIVE']
|
status: ['ACTIVE']
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
// 将与当前用户 subscriptionPlanId 相同的订阅计划放到第一个
|
// 将与当前用户 subscriptionPlanId 相同的订阅计划放到第一个
|
||||||
const userSubscriptionPlanId = store.state.UserHabit.userDetail.subscriptionPlanId
|
const userSubscriptionPlanId = store.state.UserHabit.userDetail.subscriptionPlanId
|
||||||
|
|||||||
@@ -293,6 +293,16 @@
|
|||||||
placeholder="Input the credit limit"
|
placeholder="Input the credit limit"
|
||||||
/>
|
/>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<div class="subscriptionPlan_btn admin_page">
|
<div class="subscriptionPlan_btn admin_page">
|
||||||
@@ -411,7 +421,8 @@ const formState = reactive({
|
|||||||
organizationId: undefined as string | undefined,
|
organizationId: undefined as string | undefined,
|
||||||
adminAccId: undefined as string | undefined,
|
adminAccId: undefined as string | undefined,
|
||||||
creditLimit: null as number | null,
|
creditLimit: null as number | null,
|
||||||
accountNum: null as number | null
|
accountNum: null as number | null,
|
||||||
|
status: undefined as PlanStatus | undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
const organizationModalVisible = ref(false)
|
const organizationModalVisible = ref(false)
|
||||||
@@ -499,6 +510,7 @@ const resetFormState = () => {
|
|||||||
formState.adminAccId = undefined
|
formState.adminAccId = undefined
|
||||||
formState.creditLimit = null
|
formState.creditLimit = null
|
||||||
formState.accountNum = null
|
formState.accountNum = null
|
||||||
|
formState.status = undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSearch = () => {
|
const handleSearch = () => {
|
||||||
@@ -537,7 +549,29 @@ const openEdit = (record: SubscriptionPlan) => {
|
|||||||
formState.adminAccId = record.adminAccId
|
formState.adminAccId = record.adminAccId
|
||||||
formState.creditLimit = record.creditLimit
|
formState.creditLimit = record.creditLimit
|
||||||
formState.accountNum = (record as any).accountNum || null
|
formState.accountNum = (record as any).accountNum || null
|
||||||
|
formState.status = record.status
|
||||||
formState.id = record.id
|
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
|
modalVisible.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -666,7 +700,20 @@ const getOrganizationList = async (isLoadMore = false) => {
|
|||||||
organizationParams
|
organizationParams
|
||||||
)
|
)
|
||||||
if (rv) {
|
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
|
organizationParams.total = rv.total || 0
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user