fix: repair remaining admin selects

This commit is contained in:
hy 2026-04-24 14:11:38 +08:00
parent 3a3c5a4bf9
commit 4470a95a91
16 changed files with 229 additions and 336 deletions

View File

@ -17,7 +17,6 @@ import {
Modal,
Pagination,
Select,
SelectOption,
Space,
Table,
TextArea,
@ -250,19 +249,13 @@ function handleDelete(record: LegacyVersionDescriptionItem) {
>
<Form layout="vertical">
<FormItem label="语言">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="form.language"
:disabled="submitLoading || Boolean(form.id)"
:options="LANGUAGE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择语言"
>
<SelectOption
v-for="item in LANGUAGE_OPTIONS"
:key="item.value"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="更新描述">
<TextArea

View File

@ -14,7 +14,6 @@ import {
Input,
Modal,
Select,
SelectOption,
message,
} from 'antdv-next';
@ -204,36 +203,24 @@ async function handleSubmit() {
>
<Form :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }" layout="horizontal">
<FormItem label="平台">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="form.platform"
:disabled="loading || !isAdd"
:options="PLATFORM_ORIGINS.map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择平台"
@change="handlePlatformChange"
>
<SelectOption
v-for="item in PLATFORM_ORIGINS"
:key="item.value"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="渠道">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="form.channel"
:disabled="loading || !isAdd"
:options="(selectedPlatform?.channels || []).map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择渠道"
>
<SelectOption
v-for="item in selectedPlatform?.channels || []"
:key="item.value"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="版本号">
@ -254,31 +241,51 @@ async function handleSubmit() {
</FormItem>
<FormItem label="强更">
<Select option-label-prop="label" v-model:value="form.forceUpdate" :disabled="loading">
<SelectOption :value="false" label="否"></SelectOption>
<SelectOption :value="true" label="是"></SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.forceUpdate"
:disabled="loading"
:options="[
{ label: '否', value: false as any },
{ label: '是', value: true as any },
]"
/>
</FormItem>
<FormItem label="app类型">
<Select option-label-prop="label" v-model:value="form.appType" :disabled="loading">
<SelectOption value="CHAT" label="语聊">语聊</SelectOption>
<SelectOption value="WORSHIP" label="朝拜">朝拜</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.appType"
:disabled="loading"
:options="[
{ label: '语聊', value: 'CHAT' },
{ label: '朝拜', value: 'WORSHIP' },
]"
/>
</FormItem>
<FormItem label="审核中">
<Select option-label-prop="label" v-model:value="form.review" :disabled="loading">
<SelectOption :value="false" label="否"></SelectOption>
<SelectOption :value="true" label="是"></SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.review"
:disabled="loading"
:options="[
{ label: '否', value: false as any },
{ label: '是', value: true as any },
]"
/>
</FormItem>
<FormItem label="补丁">
<Select option-label-prop="label" v-model:value="form.patch" :disabled="loading">
<SelectOption :value="false" label="否"></SelectOption>
<SelectOption :value="true" label="是"></SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.patch"
:disabled="loading"
:options="[
{ label: '否', value: false as any },
{ label: '是', value: true as any },
]"
/>
</FormItem>
<FormItem label="安装包大小">

View File

@ -28,7 +28,6 @@ import {
Modal,
Pagination,
Select,
SelectOption,
Switch,
Table,
Tag,
@ -236,26 +235,28 @@ loadData(true);
option-label-prop="label"
v-model:value="query.shelfStatus"
allow-clear
:options="[
{ label: '上架', value: 1 },
{ label: '下架', value: 0 },
]"
placeholder="状态"
style="width: 140px"
@change="loadData(true)"
>
<SelectOption :value="1" label="上架">上架</SelectOption>
<SelectOption :value="0" label="下架">下架</SelectOption>
</Select>
/>
</InlineFilterField>
<InlineFilterField label="KTV">
<Select
option-label-prop="label"
v-model:value="query.ktvStatus"
allow-clear
:options="[
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]"
placeholder="KTV表情"
style="width: 140px"
@change="loadData(true)"
>
<SelectOption :value="1" label="是"></SelectOption>
<SelectOption :value="0" label="否"></SelectOption>
</Select>
/>
</InlineFilterField>
<InlineFilterField label="分组Code" :label-width="88">
<Input
@ -380,17 +381,25 @@ loadData(true);
</div>
<div class="form-item">
<label class="form-label">/下架</label>
<Select option-label-prop="label" v-model:value="form.shelfStatus">
<SelectOption :value="1" label="上架">上架</SelectOption>
<SelectOption :value="0" label="下架">下架</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.shelfStatus"
:options="[
{ label: '上架', value: 1 },
{ label: '下架', value: 0 },
]"
/>
</div>
<div class="form-item">
<label class="form-label">ktv表情</label>
<Select option-label-prop="label" v-model:value="form.ktvStatus">
<SelectOption :value="1" label="是"></SelectOption>
<SelectOption :value="0" label="否"></SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.ktvStatus"
:options="[
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]"
/>
</div>
<div class="form-item">
<label class="form-label">权重</label>

View File

@ -18,7 +18,6 @@ import {
Modal,
Pagination,
Select,
SelectOption,
Space,
Table,
Tag,
@ -149,20 +148,14 @@ function resolveApprovalUser(record: Record<string, any>) {
<div class="toolbar">
<Space wrap>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="query.violationType"
allow-clear
:options="APPROVAL_TYPE_OPTIONS.map((item) => ({ label: item.label, value: item.value }))"
placeholder="审批类型"
style="width: 240px"
>
<SelectOption
v-for="item in APPROVAL_TYPE_OPTIONS"
:key="item.value"
:value="item.value"
:label="`${item.label}`">
{{ item.label }}
</SelectOption>
</Select>
/>
<DateRangePicker
v-model:value="rangeDate"
show-time

View File

@ -31,7 +31,6 @@ import {
Modal,
Pagination,
Select,
SelectOption,
Space,
Table,
Tag,
@ -460,19 +459,13 @@ loadData(true);
<div class="form-item">
<label class="form-label">数据类型</label>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="form.dataType"
:options="ENUM_CONFIG_DATA_TYPES.map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择数据类型"
@change="handleDataTypeChange"
>
<SelectOption
v-for="item in ENUM_CONFIG_DATA_TYPES"
:key="item.value"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
/>
</div>
<div class="form-item">
@ -502,23 +495,25 @@ loadData(true);
<div class="form-item">
<label class="form-label">操作状态</label>
<Select option-label-prop="label" v-model:value="form.inoperable" placeholder="请选择操作状态">
<SelectOption
v-for="item in ENUM_CONFIG_OPERATES"
:key="String(item.value)"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.inoperable"
:options="ENUM_CONFIG_OPERATES.map((item) => ({ label: item.name, value: item.value as any }))"
placeholder="请选择操作状态"
/>
</div>
<div class="form-item">
<label class="form-label">返回APP</label>
<Select option-label-prop="label" v-model:value="form.returnApp" placeholder="请选择是否返回APP">
<SelectOption :value="true" label="是"></SelectOption>
<SelectOption :value="false" label="否"></SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.returnApp"
:options="[
{ label: '是', value: true as any },
{ label: '否', value: false as any },
]"
placeholder="请选择是否返回APP"
/>
</div>
</div>
</Modal>

View File

@ -25,7 +25,6 @@ import {
Card,
Modal,
Select,
SelectOption,
Table,
message,
} from 'antdv-next';
@ -302,46 +301,34 @@ loadData();
<div class="form-grid">
<div class="form-item">
<label class="form-label">平台</label>
<Select option-label-prop="label" v-model:value="form.platform" placeholder="支付平台">
<SelectOption
v-for="item in PLATFORM_ORIGINS_V2"
:key="item.value"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.platform"
:options="PLATFORM_ORIGINS_V2.map((item) => ({ label: item.name, value: item.value }))"
placeholder="支付平台"
/>
</div>
<div class="form-item">
<label class="form-label">区域</label>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="form.regionList"
:loading="regionLoading"
:options="regions.map((item) => ({ label: item.regionName, value: item.id }))"
mode="multiple"
placeholder="请选择区域"
>
<SelectOption
v-for="item in regions"
:key="item.id"
:value="item.id"
:label="`${item.regionName}`">
{{ item.regionName }}
</SelectOption>
</Select>
/>
</div>
<div class="form-item">
<label class="form-label">状态</label>
<Select option-label-prop="label" v-model:value="form.showcase" placeholder="状态">
<SelectOption
v-for="item in PRODUCT_SHOWCASE_OPTIONS"
:key="String(item.value)"
:value="item.value"
:label="`${item.name}`">
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.showcase"
:options="PRODUCT_SHOWCASE_OPTIONS.map((item) => ({ label: item.name, value: item.value as any }))"
placeholder="状态"
/>
</div>
<div class="form-item">

View File

@ -18,7 +18,6 @@ import {
InputNumber,
Modal,
Select,
SelectOption,
Space,
message,
} from 'antdv-next';
@ -195,21 +194,21 @@ async function handleSubmit() {
<Input v-model:value="form.description" />
</FormItem>
<FormItem label="语言">
<Select option-label-prop="children" v-model:value="form.languageType">
<SelectOption
v-for="item in LANGUAGE_OPTIONS"
:key="item.value"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.languageType"
:options="LANGUAGE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
/>
</FormItem>
<FormItem label="状态">
<Select option-label-prop="children" v-model:value="form.del">
<SelectOption :value="false">上架</SelectOption>
<SelectOption :value="true">下架</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.del"
:options="[
{ label: '上架', value: false as any },
{ label: '下架', value: true as any },
]"
/>
</FormItem>
<FormItem label="排序">
<InputNumber

View File

@ -27,7 +27,6 @@ import {
Modal,
Pagination,
Select,
SelectOption,
Space,
Table,
Tag,
@ -358,59 +357,44 @@ watch(
></SysOriginSelect>
</FormItem>
<FormItem v-if="!form.id" label="等级Key">
<Select option-label-prop="children" v-model:value="form.levelKey">
<SelectOption
v-for="item in FAMILY_LEVEL_OPTIONS"
:key="item.value"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.levelKey"
:options="FAMILY_LEVEL_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
/>
</FormItem>
<FormItem label="等级类型">
<Select option-label-prop="children" v-model:value="form.levelType">
<SelectOption
v-for="item in FAMILY_TYPE_OPTIONS"
:key="item.value"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.levelType"
:options="FAMILY_TYPE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
/>
</FormItem>
<FormItem label="头像框">
<Select option-label-prop="children" v-model:value="form.avatarFrameId" allow-clear>
<SelectOption
v-for="item in avatarFrameOptions"
:key="item.id"
:value="item.id"
>
{{ item.name || item.id }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.avatarFrameId"
allow-clear
:options="avatarFrameOptions.map((item) => ({ label: item.name || item.id, value: item.id }))"
/>
</FormItem>
<FormItem label="徽章">
<Select option-label-prop="children" v-model:value="form.badgeId">
<SelectOption
v-for="item in badgeOptions"
:key="item.id"
:value="item.id"
>
{{ item.name || item.id }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.badgeId"
:options="badgeOptions.map((item) => ({ label: item.name || item.id, value: item.id }))"
/>
</FormItem>
<FormItem label="礼物">
<Select option-label-prop="children" v-model:value="form.giftId" allow-clear>
<SelectOption
v-for="item in giftOptions"
:key="item.id"
:value="item.id"
>
{{ item.giftCode ? `${item.giftCode} - ${item.giftName}` : item.giftName || item.id }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.giftId"
allow-clear
:options="giftOptions.map((item) => ({
label: item.giftCode ? `${item.giftCode} - ${item.giftName}` : item.giftName || item.id,
value: item.id,
}))"
/>
</FormItem>
<FormItem label="贡献值">
<InputNumber

View File

@ -14,7 +14,6 @@ import {
Input,
Modal,
Select,
SelectOption,
message,
} from 'antdv-next';
@ -100,28 +99,20 @@ async function handleSubmit() {
>
<Form layout="vertical">
<FormItem label="类型">
<Select option-label-prop="label" v-model:value="formData.type" placeholder="请选择">
<SelectOption
v-for="item in BEAN_OPERATION_TYPE_OPTIONS"
:key="item.value"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="formData.type"
:options="BEAN_OPERATION_TYPE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择"
/>
</FormItem>
<FormItem label="原因">
<Select option-label-prop="label" v-model:value="formData.reason" placeholder="请选择">
<SelectOption
v-for="item in getReasonOptions()"
:key="item.value"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="formData.reason"
:options="getReasonOptions().map((item) => ({ label: item.name, value: item.value }))"
placeholder="请选择"
/>
</FormItem>
<FormItem label="豆子">
<Input

View File

@ -17,7 +17,6 @@ import {
DateRangePicker,
Pagination,
Select,
SelectOption,
Table,
Tag,
} from 'antdv-next';
@ -132,39 +131,28 @@ if (!props.userId && sysOriginOptions.length > 0) {
:options="sysOriginOptions"
></SysOriginSelect>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="query.type"
allow-clear
:options="INCOME_EXPENSE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
placeholder="类型"
style="width: 120px"
@change="handleSearch"
>
<SelectOption
v-for="item in INCOME_EXPENSE_OPTIONS"
:key="item.value"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select option-label-prop="label"
/>
<Select
option-label-prop="label"
v-model:value="query.origin"
allow-clear
:options="BEAN_ORIGIN_OPTIONS.map((item) => ({
label: `${item.name} / ${item.value}`,
value: item.value,
}))"
placeholder="来源"
show-search
style="width: 160px"
@change="handleSearch"
>
<SelectOption
v-for="item in BEAN_ORIGIN_OPTIONS"
:key="item.value"
:label="`${item.name} / ${item.value}`"
:value="item.value"
>
{{ item.name }} / {{ item.value }}
</SelectOption>
</Select>
/>
<AccountInput
v-if="!userId"
v-model:value="query.userId"

View File

@ -24,7 +24,6 @@ import {
Radio,
RadioGroup,
Select,
SelectOption,
Space,
Tabs,
TabPane,
@ -560,34 +559,26 @@ async function handleSubmit() {
:key="`condition-${index}`"
class="condition-row"
>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="item.conditionType"
:options="PET_UNLOCK_CONDITION_OPTIONS.map((option) => ({
label: option.name,
value: option.value,
}))"
placeholder="类型"
style="width: 220px"
>
<SelectOption
v-for="option in PET_UNLOCK_CONDITION_OPTIONS"
:key="option.value"
:label="option.name"
:value="option.value"
>
{{ option.name }}
</SelectOption>
</Select>
<Select option-label-prop="label"
/>
<Select
option-label-prop="label"
v-model:value="item.unit"
:options="UNIT_CONDITION_OPTIONS.map((option) => ({
label: option.name,
value: option.value,
}))"
placeholder="条件"
style="width: 140px"
>
<SelectOption
v-for="option in UNIT_CONDITION_OPTIONS"
:key="option.value"
:label="option.name"
:value="option.value"
>
{{ option.name }}
</SelectOption>
</Select>
/>
<InputNumber
v-model:value="item.quantity"
:max="999999"

View File

@ -11,7 +11,6 @@ import {
Input,
Pagination,
Select,
SelectOption,
Tag,
} from 'antdv-next';
@ -91,22 +90,15 @@ function selectRecord(record: Record<string, any>) {
>
<div class="selector-layout">
<div class="selector-toolbar">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="query.shelfStatus"
allow-clear
:options="PRODUCT_SHOWCASE_OPTIONS.map((item) => ({ label: item.name, value: item.value as any }))"
placeholder="上/下架"
style="width: 140px"
@change="handleSearch"
>
<SelectOption
v-for="item in PRODUCT_SHOWCASE_OPTIONS"
:key="String(item.value)"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
/>
<Input
v-model:value="query.id"
allow-clear

View File

@ -33,7 +33,6 @@ import {
RadioGroup,
Row,
Select,
SelectOption,
Space,
Spin,
Tag,
@ -318,21 +317,18 @@ loadResources();
<Input v-model:value="form.router" :disabled="saving" placeholder="请输入菜单路由" />
</FormItem>
<FormItem v-if="isMenuTypeToMenu" label="对应资源">
<Select option-label-prop="children"
<Select
option-label-prop="label"
v-model:value="form.resourceIds"
:disabled="saving"
:loading="resourcesLoading"
:options="resources.map((item) => ({
label: `${item.resourceName}${item.perm}`,
value: item.id,
}))"
mode="multiple"
placeholder="请选择资源"
>
<SelectOption
v-for="item in resources"
:key="item.id"
:value="item.id"
>
{{ item.resourceName }}{{ item.perm }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="修改时间">
{{ selectedNode?.updateTime ? formatDate(selectedNode.updateTime) : '-' }}

View File

@ -13,7 +13,6 @@ import {
Input,
Modal,
Select,
SelectOption,
TextArea,
message,
} from 'antdv-next';
@ -149,16 +148,12 @@ function handleDelete(record: Record<string, any>, index: number) {
>
<Form layout="vertical">
<FormItem label="类型">
<Select option-label-prop="label" v-model:value="form.type" placeholder="选择类型">
<SelectOption
v-for="item in TEAM_CONTACT_TYPE_OPTIONS"
:key="item.value"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
<Select
option-label-prop="label"
v-model:value="form.type"
:options="TEAM_CONTACT_TYPE_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
placeholder="选择类型"
/>
</FormItem>
<FormItem label="联系">
<Input

View File

@ -19,7 +19,6 @@ import {
Empty,
Input,
Select,
SelectOption,
Space,
Tag,
message,
@ -526,20 +525,13 @@ onBeforeUnmount(() => {
<template v-else>
<div class="draft-field">
<label>资源</label>
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="draft.content"
:options="getOptions(draft.clickType).map((item) => ({ label: item.name, value: item.id }))"
show-search
@change="applySelectedOption"
>
<SelectOption
v-for="item in getOptions(draft.clickType)"
:key="item.id"
:label="item.name"
:value="item.id"
>
{{ item.name }}
</SelectOption>
</Select>
/>
</div>
<div
v-if="isCustomize(draft.clickType)"
@ -557,20 +549,16 @@ onBeforeUnmount(() => {
>
<label>{{ isBadge(draft.clickType) ? '天数' : '数量/天数' }}</label>
<template v-if="isBadge(draft.clickType)">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="draft.quantity"
allow-clear
:options="TEAM_POLICY_BADGE_DAY_OPTIONS.map((item) => ({
label: item.label,
value: item.value,
}))"
placeholder="0表示永久"
>
<SelectOption
v-for="item in TEAM_POLICY_BADGE_DAY_OPTIONS"
:key="item.value"
:label="item.label"
:value="item.value"
>
{{ item.label }}
</SelectOption>
</Select>
/>
</template>
<template v-else>
<Input

View File

@ -24,7 +24,6 @@ import {
FormItem,
Input,
Select,
SelectOption,
Table,
Tag,
message,
@ -355,35 +354,21 @@ watch(
>
<Form layout="vertical">
<FormItem label="区域">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="excelQuery.region"
:options="exportRegionOptions.map((item) => ({ label: item.regionName, value: item.id }))"
placeholder="区域"
>
<SelectOption
v-for="item in exportRegionOptions"
:key="item.id"
:label="item.regionName"
:value="item.id"
>
{{ item.regionName }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="状态">
<Select option-label-prop="label"
<Select
option-label-prop="label"
v-model:value="excelQuery.billStatusList"
:options="TEAM_BILL_STATUS_OPTIONS.map((item) => ({ label: item.name, value: item.value }))"
mode="multiple"
placeholder="账单状态"
>
<SelectOption
v-for="item in TEAM_BILL_STATUS_OPTIONS"
:key="item.value"
:label="item.name"
:value="item.value"
>
{{ item.name }}
</SelectOption>
</Select>
/>
</FormItem>
<FormItem label="时间">
<DatePicker