feat: 所有参数字段改为文本类型,长文本字段标记input_style

This commit is contained in:
2026-04-29 00:35:19 +08:00
parent 151829296e
commit 643a934c83
6 changed files with 308 additions and 3276 deletions

View File

@@ -1904,7 +1904,7 @@
if (!cat) return '';
const fields = cat.fields || [];
const fixedFields = ['id', 'subcategory_id', 'images', 'visible', 'created_at', 'updated_at', 'raw_text', 'is_pinned', 'views'];
const fixedFields = ['id', 'subcategory_id', 'images', 'visible', 'created_at', 'updated_at', 'raw_text', 'is_pinned', 'views', 'parse_sources', 'product_images'];
// 合并子类别额外字段
let allFields = fields;
@@ -1922,22 +1922,14 @@
const required = field.required ? 'required' : '';
const requiredMark = field.required ? '<span class="text-red-500">*</span>' : '';
const desc = field.description ? `<p class="text-xs text-gray-400 mt-1">${field.description}</p>` : '';
const inputStyle = field.input_style || 'normal';
let inputHtml = '';
if (field.type === 'boolean') {
inputHtml = `<select name="${field.key}" class="w-full px-3 py-2 border rounded-lg" ${required}>
<option value="true" ${value === true ? 'selected' : ''}>是</option>
<option value="false" ${value === false || !value ? 'selected' : ''}>否</option>
</select>`;
} else if (field.type === 'number') {
inputHtml = `<input type="number" name="${field.key}" value="${value}" step="any" class="w-full px-3 py-2 border rounded-lg" ${required}>`;
} else if (field.type === 'date') {
inputHtml = `<input type="date" name="${field.key}" value="${value}" class="w-full px-3 py-2 border rounded-lg" ${required}>`;
} else if (field.type === 'json') {
inputHtml = `<textarea name="${field.key}" rows="3" class="w-full px-3 py-2 border rounded-lg font-mono text-sm" ${required}>${typeof value === 'object' ? JSON.stringify(value, null, 2) : value}</textarea>`;
} else if (field.type === 'url') {
inputHtml = `<input type="url" name="${field.key}" value="${value}" class="w-full px-3 py-2 border rounded-lg" ${required}>`;
if (inputStyle === 'long') {
// 长文本用 textarea
inputHtml = `<textarea name="${field.key}" rows="4" class="w-full px-3 py-2 border rounded-lg" ${required}>${value}</textarea>`;
} else {
// 普通文本用 input
inputHtml = `<input type="text" name="${field.key}" value="${value}" class="w-full px-3 py-2 border rounded-lg" ${required}>`;
}