优化页面

This commit is contained in:
2026-04-24 16:47:29 +08:00
parent 719317e281
commit 551d2a47b8

View File

@@ -76,38 +76,56 @@
</div>
</div>
<div class="grid grid-cols-1 gap-4 md:grid-cols-[minmax(0,1fr),minmax(0,1fr),220px,220px] items-end">
<div>
<label class="mb-2 block text-sm font-medium text-gray-700">分组轮换间隔分钟</label>
<input v-model.number="configForm.groupSwitchMinutes" :disabled="isConfigControlDisabled"
type="number" min="1" step="1"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@blur="handleSwitchMinutesBlur" />
<div class="rounded-xl border border-gray-200 bg-gradient-to-br from-slate-50 via-white to-blue-50/40 p-4">
<div class="flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between">
<div>
<div class="text-sm font-medium text-gray-900">运行设置</div>
<p class="text-xs text-gray-500">控制分组轮换单用户节奏以及首次进入全流程的分组</p>
</div>
<span class="rounded-full border border-gray-200 bg-white px-3 py-1 text-xs text-gray-600">启动前生效</span>
</div>
<div>
<label class="mb-2 block text-sm font-medium text-gray-700">每用户休眠秒数</label>
<input v-model.number="configForm.postUserSleepSeconds" :disabled="isConfigControlDisabled"
type="number" min="1" step="1"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@blur="handlePostUserSleepBlur" />
<div class="mt-4 grid grid-cols-1 gap-3 md:grid-cols-2">
<div class="rounded-xl border border-gray-200 bg-white/90 p-3 shadow-sm">
<div class="mb-2 flex items-center justify-between gap-2">
<span class="text-xs font-medium text-gray-500">轮换间隔</span>
<span class="text-[11px] text-gray-400">分钟</span>
</div>
<input v-model.number="configForm.groupSwitchMinutes" :disabled="isConfigControlDisabled"
type="number" min="1" step="1"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@blur="handleSwitchMinutesBlur" />
</div>
<div class="rounded-xl border border-gray-200 bg-white/90 p-3 shadow-sm">
<div class="mb-2 flex items-center justify-between gap-2">
<span class="text-xs font-medium text-gray-500">用户休眠</span>
<span class="text-[11px] text-gray-400"></span>
</div>
<input v-model.number="configForm.postUserSleepSeconds" :disabled="isConfigControlDisabled"
type="number" min="1" step="1"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@blur="handlePostUserSleepBlur" />
</div>
<div class="rounded-xl border border-gray-200 bg-white/90 p-3 shadow-sm">
<label class="mb-2 block text-xs font-medium text-gray-500">全流程起始分组</label>
<select v-model.number="configForm.initialFullGroupNumber" :disabled="isConfigControlDisabled"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@change="handleInitialFullGroupChange">
<option v-for="option in startFullGroupOptions" :key="option.value" :value="option.value"
:disabled="!option.enabled">
{{ option.label }}{{ option.hint }}{{ option.enabled ? '' : ',未启用' }}
</option>
</select>
</div>
<label v-if="!isBrotherInfoMode"
class="flex min-h-[92px] flex-col justify-between rounded-xl border border-gray-200 bg-white/90 p-3 shadow-sm">
<span class="text-xs font-medium text-gray-500">未读消息处理</span>
<span class="flex h-11 items-center gap-3 rounded-lg border border-gray-200 bg-gray-50 px-4 text-sm text-gray-700">
<input v-model="configForm.replyUnreadMessages" :disabled="isConfigControlDisabled"
type="checkbox" class="h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500" />
<span>开启 AI 回复未读消息</span>
</span>
</label>
</div>
<div>
<label class="mb-2 block text-sm font-medium text-gray-700">全流程起始分组</label>
<select v-model.number="configForm.initialFullGroupNumber" :disabled="isConfigControlDisabled"
class="h-11 w-full rounded-lg border border-gray-300 bg-white px-4 text-sm text-gray-800 outline-none focus:border-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
@change="handleInitialFullGroupChange">
<option v-for="option in startFullGroupOptions" :key="option.value" :value="option.value"
:disabled="!option.enabled">
{{ option.label }}{{ option.hint }}{{ option.enabled ? '' : ',未启用' }}
</option>
</select>
</div>
<label v-if="!isBrotherInfoMode"
class="flex h-11 items-center gap-3 rounded-lg border border-gray-200 bg-gray-50 px-4 py-3 text-sm text-gray-700">
<input v-model="configForm.replyUnreadMessages" :disabled="isConfigControlDisabled"
type="checkbox" class="h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500" />
<span>开启 AI 回复未读消息</span>
</label>
</div>
<div class="rounded-xl border border-gray-200 bg-white p-4">
@@ -119,7 +137,7 @@
<span class="rounded-full border border-gray-200 bg-gray-100 px-3 py-1 text-xs text-gray-600">{{
dataPoolLabel }}</span>
</div>
<div class="grid grid-cols-2 gap-3">
<div class="grid grid-cols-1 gap-3 sm:grid-cols-2">
<label class="flex items-center gap-3 rounded-lg border px-4 py-3 text-sm transition-colors"
:class="configForm.dataPoolSource === 'anchor_hosts' ? 'border-blue-500 bg-blue-50 text-blue-700' : 'border-gray-200 bg-gray-50 text-gray-700'">
<input v-model="configForm.dataPoolSource" :disabled="isConfigControlDisabled" type="radio"