|
@@ -906,8 +906,8 @@
|
|
|
<el-form-item label="副标题:">
|
|
<el-form-item label="副标题:">
|
|
|
<div class="theme-color-setting-pro">
|
|
<div class="theme-color-setting-pro">
|
|
|
<el-input v-model="adForm.subTitle" placeholder="请输入副标题" style="width: 300px" />
|
|
<el-input v-model="adForm.subTitle" placeholder="请输入副标题" style="width: 300px" />
|
|
|
- <el-color-picker v-model="adForm.titleColor" />
|
|
|
|
|
- <span class="value">{{ adForm.titleColor }}</span>
|
|
|
|
|
|
|
+ <el-color-picker v-model="adForm.subTitleColor" />
|
|
|
|
|
+ <span class="value">{{ adForm.subTitleColor }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
@@ -2515,12 +2515,23 @@ const handleDeleteHeaderCategory = async (index: number) => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const moveHeader = (index, delta) => {
|
|
|
|
|
- const target = index + delta;
|
|
|
|
|
- if (target < 0 || target >= headerCategoryList.value.length) return;
|
|
|
|
|
- const temp = headerCategoryList.value[index];
|
|
|
|
|
- headerCategoryList.value[index] = headerCategoryList.value[target];
|
|
|
|
|
- headerCategoryList.value[target] = temp;
|
|
|
|
|
|
|
+const moveHeader = async (index: number, direction: number) => {
|
|
|
|
|
+ const newIndex = index + direction;
|
|
|
|
|
+ if (newIndex < 0 || newIndex >= headerCategoryList.value.length) return;
|
|
|
|
|
+ const item = headerCategoryList.value.splice(index, 1)[0];
|
|
|
|
|
+ headerCategoryList.value.splice(newIndex, 0, item);
|
|
|
|
|
+
|
|
|
|
|
+ // 同步排序到后端
|
|
|
|
|
+ try {
|
|
|
|
|
+ const start = Math.min(index, newIndex);
|
|
|
|
|
+ const end = Math.max(index, newIndex);
|
|
|
|
|
+ for (let i = start; i <= end; i++) {
|
|
|
|
|
+ const row = headerCategoryList.value[i] as any;
|
|
|
|
|
+ await updateHeaderCategory({ id: row.id, sortOrder: i } as any);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('排序更新失败:', error);
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 导航滚动逻辑
|
|
// 导航滚动逻辑
|