This commit is contained in:
zpc 2026-03-16 23:31:07 +08:00
parent a7e5c11007
commit 47f02cccf6
53 changed files with 760 additions and 51 deletions

View File

@ -0,0 +1,181 @@
using MiAssessment.Admin.Business.Attributes;
using MiAssessment.Admin.Business.Models;
using MiAssessment.Admin.Business.Models.Common;
using MiAssessment.Admin.Business.Models.ReportPageConfig;
using MiAssessment.Admin.Business.Services.Interfaces;
using Microsoft.AspNetCore.Mvc;
namespace MiAssessment.Admin.Business.Controllers;
/// <summary>
/// 报告页面配置控制器
/// </summary>
[Route("api/admin/business/reportpageconfig")]
public class ReportPageConfigController : BusinessControllerBase
{
private readonly IReportPageConfigService _service;
public ReportPageConfigController(IReportPageConfigService service)
{
_service = service;
}
/// <summary>
/// 获取报告页面配置列表
/// </summary>
[HttpGet("getList")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> GetList([FromQuery] ReportPageConfigQueryRequest request)
{
try
{
var result = await _service.GetListAsync(request);
return Ok(result);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "获取报告页面配置列表失败");
}
}
/// <summary>
/// 创建报告页面配置
/// </summary>
[HttpPost("create")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> Create([FromBody] CreateReportPageConfigRequest request)
{
if (string.IsNullOrWhiteSpace(request.PageName))
return ValidationError("页面标识不能为空");
if (string.IsNullOrWhiteSpace(request.Title))
return ValidationError("页面标题不能为空");
try
{
var id = await _service.CreateAsync(request);
return Ok(id);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "创建报告页面配置失败");
}
}
/// <summary>
/// 更新报告页面配置
/// </summary>
[HttpPost("update")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> Update([FromBody] UpdateReportPageConfigRequest request)
{
if (request.Id <= 0)
return ValidationError("配置ID无效");
if (string.IsNullOrWhiteSpace(request.PageName))
return ValidationError("页面标识不能为空");
if (string.IsNullOrWhiteSpace(request.Title))
return ValidationError("页面标题不能为空");
try
{
var result = await _service.UpdateAsync(request);
return Ok(result);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "更新报告页面配置失败");
}
}
/// <summary>
/// 删除报告页面配置
/// </summary>
[HttpPost("delete")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> Delete([FromBody] DeleteRequest request)
{
if (request.Id <= 0)
return ValidationError("配置ID无效");
try
{
var result = await _service.DeleteAsync(request.Id);
return Ok(result);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "删除报告页面配置失败");
}
}
/// <summary>
/// 更新状态
/// </summary>
[HttpPost("updateStatus")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> UpdateStatus([FromBody] UpdateStatusRequest request)
{
if (request.Id <= 0)
return ValidationError("配置ID无效");
if (request.Status < 0 || request.Status > 1)
return ValidationError("状态值无效");
try
{
var result = await _service.UpdateStatusAsync(request.Id, request.Status);
return Ok(result);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "更新状态失败");
}
}
/// <summary>
/// 批量更新排序
/// </summary>
[HttpPost("updateSort")]
[BusinessPermission("assessment:view")]
public async Task<IActionResult> UpdateSort([FromBody] UpdateSortRequest request)
{
if (request.Items == null || request.Items.Count == 0)
return ValidationError("排序项列表不能为空");
try
{
var result = await _service.UpdateSortAsync(request.Items);
return Ok(result);
}
catch (BusinessException ex)
{
return Error(ex.Code, ex.Message);
}
catch (Exception)
{
return Error(ErrorCodes.SystemError, "更新排序失败");
}
}
}

View File

@ -1,4 +1,5 @@
using MiAssessment.Admin.Business.Models;
using MiAssessment.Admin.Business.Models.Common;
using MiAssessment.Admin.Business.Models.ReportPageConfig;
namespace MiAssessment.Admin.Business.Services.Interfaces;

View File

@ -0,0 +1,70 @@
/**
* API
* @module api/business/reportPageConfig
*/
import { request, type ApiResponse } from '@/utils/request'
import type { PagedRequest, PagedResult, UpdateStatusRequest, UpdateSortRequest } from '@/types/common'
/** 报告页面配置项 */
export interface ReportPageConfigItem {
id: number
pageType: number
pageTypeName: string
pageName: string
title: string
sortOrder: number
imageUrl: string | null
routeUrl: string | null
status: number
statusName: string
createTime: string
}
/** 查询参数 */
export interface ReportPageConfigQuery extends PagedRequest {
pageType?: number
status?: number
title?: string
}
/** 创建请求 */
export interface CreateReportPageConfigRequest {
pageType: number
pageName: string
title: string
sortOrder: number
imageUrl?: string
routeUrl?: string
status: number
}
/** 更新请求 */
export interface UpdateReportPageConfigRequest extends CreateReportPageConfigRequest {
id: number
}
const BASE = '/admin/business/reportpageconfig'
export function getReportPageConfigList(params: ReportPageConfigQuery): Promise<ApiResponse<PagedResult<ReportPageConfigItem>>> {
return request<PagedResult<ReportPageConfigItem>>({ url: `${BASE}/getList`, method: 'get', params })
}
export function createReportPageConfig(data: CreateReportPageConfigRequest): Promise<ApiResponse<number>> {
return request<number>({ url: `${BASE}/create`, method: 'post', data })
}
export function updateReportPageConfig(data: UpdateReportPageConfigRequest): Promise<ApiResponse<boolean>> {
return request<boolean>({ url: `${BASE}/update`, method: 'post', data })
}
export function deleteReportPageConfig(id: number): Promise<ApiResponse<boolean>> {
return request<boolean>({ url: `${BASE}/delete`, method: 'post', data: { id } })
}
export function updateReportPageConfigStatus(data: UpdateStatusRequest): Promise<ApiResponse<boolean>> {
return request<boolean>({ url: `${BASE}/updateStatus`, method: 'post', data })
}
export function updateReportPageConfigSort(data: UpdateSortRequest): Promise<ApiResponse<boolean>> {
return request<boolean>({ url: `${BASE}/updateSort`, method: 'post', data })
}

View File

@ -124,6 +124,12 @@ export const businessRoutes: RouteRecordRaw[] = [
name: 'AssessmentRecord',
component: () => import('@/views/business/assessment/record/index.vue'),
meta: { title: '测评记录', permission: 'assessmentRecord:view', keepAlive: true }
},
{
path: 'report-page-config',
name: 'ReportPageConfig',
component: () => import('@/views/business/assessment/report-page-config/index.vue'),
meta: { title: '报告页面配置', permission: 'assessment:view', keepAlive: true }
}
]
},

View File

@ -0,0 +1,449 @@
<template>
<div class="report-page-config-container">
<!-- 页面标题和操作栏 -->
<el-card class="page-header">
<div class="header-content">
<div class="header-left">
<h2 class="page-title">报告页面配置</h2>
<span class="page-description">管理测评报告的页面组成支持静态图片和网页截图两种类型</span>
</div>
<div class="header-right">
<el-button type="primary" @click="handleAdd">
<el-icon><Plus /></el-icon>
新增配置
</el-button>
</div>
</div>
</el-card>
<!-- 搜索表单 -->
<el-card class="search-card">
<el-form :model="queryParams" inline>
<el-form-item label="标题">
<el-input v-model="queryParams.title" placeholder="请输入标题" clearable @keyup.enter="handleSearch" />
</el-form-item>
<el-form-item label="页面类型">
<el-select v-model="queryParams.pageType" placeholder="请选择" clearable>
<el-option label="静态图片" :value="1" />
<el-option label="网页截图" :value="2" />
</el-select>
</el-form-item>
<el-form-item label="状态">
<DictSelect v-model="queryParams.status" type="common_status" placeholder="请选择状态" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch"><el-icon><Search /></el-icon></el-button>
<el-button @click="handleReset"><el-icon><Refresh /></el-icon></el-button>
</el-form-item>
</el-form>
</el-card>
<!-- 数据表格 -->
<el-card v-loading="state.loading" class="table-card">
<el-table :data="state.tableData" row-key="id" stripe>
<!-- 排序操作列 -->
<el-table-column width="80" align="center" label="排序">
<template #default="{ $index }">
<div class="sort-buttons">
<el-button type="primary" link size="small" :disabled="$index === 0" @click="handleMoveUp($index)">
<el-icon><Top /></el-icon>
</el-button>
<el-button type="primary" link size="small" :disabled="$index === state.tableData.length - 1" @click="handleMoveDown($index)">
<el-icon><Bottom /></el-icon>
</el-button>
</div>
</template>
</el-table-column>
<!-- 页面类型 -->
<el-table-column label="页面类型" width="120" align="center">
<template #default="{ row }">
<el-tag :type="row.pageType === 1 ? 'warning' : 'success'">
{{ row.pageTypeName }}
</el-tag>
</template>
</el-table-column>
<!-- 页面标识 -->
<el-table-column prop="pageName" label="页面标识" min-width="140" show-overflow-tooltip />
<!-- 标题 -->
<el-table-column prop="title" label="标题" min-width="160" show-overflow-tooltip />
<!-- 路由/图片地址 -->
<el-table-column label="地址" min-width="200" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.pageType === 2">{{ row.routeUrl || '-' }}</span>
<span v-else>{{ row.imageUrl || '-' }}</span>
</template>
</el-table-column>
<!-- 状态 -->
<el-table-column label="状态" width="100" align="center">
<template #default="{ row }">
<el-switch
v-model="row.status"
:active-value="1"
:inactive-value="0"
:loading="row._statusLoading"
@change="(val: number) => handleStatusChange(row, val)"
/>
</template>
</el-table-column>
<!-- 创建时间 -->
<el-table-column prop="createTime" label="创建时间" width="180" align="center" />
<!-- 操作 -->
<el-table-column label="操作" width="150" fixed="right" align="center">
<template #default="{ row }">
<el-button type="primary" link size="small" @click="handleEdit(row)">
<el-icon><Edit /></el-icon>
</el-button>
<el-popconfirm title="确定要删除这条配置吗?" confirm-button-text="确定" cancel-button-text="取消" @confirm="handleDelete(row)">
<template #reference>
<el-button type="danger" link size="small">
<el-icon><Delete /></el-icon>
</el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination-wrapper">
<el-pagination
v-model:current-page="queryParams.page"
v-model:page-size="queryParams.pageSize"
:page-sizes="[10, 20, 50, 100]"
:total="state.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</el-card>
<!-- 新增/编辑对话框 -->
<el-dialog v-model="state.dialogVisible" :title="state.dialogTitle" width="600px" :close-on-click-modal="false" @closed="handleDialogClosed">
<el-form ref="formRef" :model="state.formData" :rules="formRules" label-width="100px" label-position="right">
<el-form-item label="页面类型" prop="pageType" required>
<el-select v-model="state.formData.pageType" placeholder="请选择页面类型">
<el-option label="静态图片" :value="1" />
<el-option label="网页截图" :value="2" />
</el-select>
</el-form-item>
<el-form-item label="页面标识" prop="pageName" required>
<el-input v-model="state.formData.pageName" placeholder="请输入页面标识,如 cover、traits" maxlength="50" show-word-limit />
</el-form-item>
<el-form-item label="页面标题" prop="title" required>
<el-input v-model="state.formData.title" placeholder="请输入页面标题" maxlength="100" show-word-limit />
</el-form-item>
<el-form-item label="排序" prop="sortOrder">
<el-input-number v-model="state.formData.sortOrder" :min="0" :max="9999" placeholder="数值越小越靠前" />
</el-form-item>
<el-form-item v-if="state.formData.pageType === 1" label="图片地址" prop="imageUrl">
<el-input v-model="state.formData.imageUrl" placeholder="请输入静态图片路径" clearable />
</el-form-item>
<el-form-item v-if="state.formData.pageType === 2" label="路由地址" prop="routeUrl">
<el-input v-model="state.formData.routeUrl" placeholder="请输入网页路由路径,如 /Report/Cover" clearable />
</el-form-item>
<el-form-item label="状态" prop="status" required>
<DictSelect v-model="state.formData.status" type="common_status" placeholder="请选择状态" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="state.dialogVisible = false">取消</el-button>
<el-button type="primary" :loading="state.formLoading" @click="handleSubmit">确定</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts">
/**
* 报告页面配置管理页面
*/
import { reactive, ref, onMounted } from 'vue'
import { Plus, Search, Refresh, Edit, Delete, Top, Bottom } from '@element-plus/icons-vue'
import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
import {
getReportPageConfigList,
createReportPageConfig,
updateReportPageConfig,
deleteReportPageConfig,
updateReportPageConfigStatus,
updateReportPageConfigSort,
type ReportPageConfigItem,
type ReportPageConfigQuery,
type CreateReportPageConfigRequest,
type UpdateReportPageConfigRequest
} from '@/api/business/reportPageConfig'
import { DictSelect } from '@/components'
// ============ Types ============
interface FormData {
id?: number
pageType: number
pageName: string
title: string
sortOrder: number
imageUrl: string
routeUrl: string
status: number | string
}
interface PageState {
loading: boolean
tableData: (ReportPageConfigItem & { _statusLoading?: boolean })[]
total: number
dialogVisible: boolean
dialogTitle: string
formData: FormData
formLoading: boolean
isEdit: boolean
}
// ============ Refs ============
const formRef = ref<FormInstance>()
// ============ State ============
const queryParams = reactive<ReportPageConfigQuery>({
page: 1,
pageSize: 20,
title: '',
pageType: undefined,
status: undefined
})
const state = reactive<PageState>({
loading: false,
tableData: [],
total: 0,
dialogVisible: false,
dialogTitle: '新增配置',
formData: getDefaultFormData(),
formLoading: false,
isEdit: false
})
// ============ Form Rules ============
const formRules: FormRules = {
pageType: [{ required: true, message: '请选择页面类型', trigger: 'change' }],
pageName: [{ required: true, message: '请输入页面标识', trigger: 'blur' }],
title: [{ required: true, message: '请输入页面标题', trigger: 'blur' }],
status: [{ required: true, message: '请选择状态', trigger: 'change' }]
}
// ============ Helper Functions ============
function getDefaultFormData(): FormData {
return { pageType: 2, pageName: '', title: '', sortOrder: 0, imageUrl: '', routeUrl: '', status: 1 }
}
// ============ API Functions ============
async function loadList() {
state.loading = true
try {
const params: ReportPageConfigQuery = { page: queryParams.page, pageSize: queryParams.pageSize }
if (queryParams.title) params.title = queryParams.title
if (queryParams.pageType !== undefined && queryParams.pageType !== '') params.pageType = Number(queryParams.pageType)
if (queryParams.status !== undefined && queryParams.status !== '') params.status = Number(queryParams.status)
const res = await getReportPageConfigList(params)
if (res.code === 0) {
state.tableData = res.data?.list || []
state.total = res.data?.total || 0
} else {
throw new Error(res.message || '获取列表失败')
}
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : '获取列表失败')
} finally {
state.loading = false
}
}
// ============ Sort Handlers ============
async function handleMoveUp(index: number) {
if (index <= 0) return
await swapAndUpdateSort(index, index - 1)
}
async function handleMoveDown(index: number) {
if (index >= state.tableData.length - 1) return
await swapAndUpdateSort(index, index + 1)
}
async function swapAndUpdateSort(fromIndex: number, toIndex: number) {
const temp = state.tableData[fromIndex]
state.tableData[fromIndex] = state.tableData[toIndex]
state.tableData[toIndex] = temp
const sortItems = state.tableData.map((item, idx) => ({ id: item.id, sort: idx }))
state.loading = true
try {
const res = await updateReportPageConfigSort({ items: sortItems })
if (res.code === 0) {
ElMessage.success('排序更新成功')
await loadList()
} else {
throw new Error(res.message || '排序更新失败')
}
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : '排序更新失败')
await loadList()
} finally {
state.loading = false
}
}
// ============ Event Handlers ============
function handleSearch() { queryParams.page = 1; loadList() }
function handleReset() {
queryParams.title = ''
queryParams.pageType = undefined
queryParams.status = undefined
queryParams.page = 1
loadList()
}
function handleSizeChange(size: number) { queryParams.pageSize = size; queryParams.page = 1; loadList() }
function handleCurrentChange(page: number) { queryParams.page = page; loadList() }
function handleAdd() {
state.isEdit = false
state.dialogTitle = '新增配置'
state.formData = getDefaultFormData()
state.dialogVisible = true
}
function handleEdit(row: ReportPageConfigItem) {
state.isEdit = true
state.dialogTitle = '编辑配置'
state.formData = {
id: row.id,
pageType: row.pageType,
pageName: row.pageName,
title: row.title,
sortOrder: row.sortOrder,
imageUrl: row.imageUrl || '',
routeUrl: row.routeUrl || '',
status: row.status
}
state.dialogVisible = true
}
async function handleStatusChange(row: ReportPageConfigItem & { _statusLoading?: boolean }, status: number) {
row._statusLoading = true
try {
const res = await updateReportPageConfigStatus({ id: row.id, status })
if (res.code === 0) {
ElMessage.success(status === 1 ? '已启用' : '已禁用')
} else {
row.status = status === 1 ? 0 : 1
throw new Error(res.message || '状态更新失败')
}
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : '状态更新失败')
} finally {
row._statusLoading = false
}
}
async function handleDelete(row: ReportPageConfigItem) {
try {
const res = await deleteReportPageConfig(row.id)
if (res.code === 0) {
ElMessage.success('删除成功')
if (state.tableData.length === 1 && queryParams.page > 1) queryParams.page--
await loadList()
} else {
throw new Error(res.message || '删除失败')
}
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : '删除失败')
}
}
async function handleSubmit() {
if (!formRef.value) return
try { await formRef.value.validate() } catch { return }
state.formLoading = true
try {
const fd = state.formData
const data: CreateReportPageConfigRequest | UpdateReportPageConfigRequest = {
pageType: fd.pageType,
pageName: fd.pageName,
title: fd.title,
sortOrder: fd.sortOrder,
imageUrl: fd.pageType === 1 ? fd.imageUrl : undefined,
routeUrl: fd.pageType === 2 ? fd.routeUrl : undefined,
status: Number(fd.status)
}
let res
if (state.isEdit && fd.id) {
res = await updateReportPageConfig({ ...data, id: fd.id } as UpdateReportPageConfigRequest)
} else {
res = await createReportPageConfig(data)
}
if (res.code === 0) {
ElMessage.success(state.isEdit ? '更新成功' : '创建成功')
state.dialogVisible = false
await loadList()
} else {
throw new Error(res.message || (state.isEdit ? '更新失败' : '创建失败'))
}
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : (state.isEdit ? '更新失败' : '创建失败'))
} finally {
state.formLoading = false
}
}
function handleDialogClosed() {
formRef.value?.resetFields()
state.formData = getDefaultFormData()
}
// ============ Lifecycle ============
onMounted(() => { loadList() })
</script>
<style scoped>
.report-page-config-container { padding: 0; }
.page-header { margin-bottom: 16px; }
.header-content { display: flex; justify-content: space-between; align-items: center; }
.header-left { display: flex; align-items: baseline; gap: 16px; }
.page-title { margin: 0; font-size: 20px; font-weight: 600; color: var(--text-primary, #303133); }
.page-description { font-size: 14px; color: var(--text-secondary, #909399); }
.search-card { margin-bottom: 16px; }
.search-card :deep(.el-card__body) { padding-bottom: 2px; }
.table-card { min-height: 400px; }
.pagination-wrapper { display: flex; justify-content: flex-end; margin-top: 16px; }
.sort-buttons { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.sort-buttons .el-button { padding: 2px; }
:deep(.el-table th.el-table__cell) { background-color: var(--bg-light, #f5f7fa); font-weight: 500; }
:deep(.el-dialog__body) { padding-top: 20px; }
</style>

View File

@ -1 +1 @@
import{d as r,c as a,b as t,e as p,w as _,g as l,t as d,i as c,k as u,_ as i}from"./index-cO0XwfvV.js";const m={class:"error-page"},f={class:"error-content"},x=r({__name:"404",setup(k){const o=c(),s=()=>{o.push("/")};return(v,e)=>{const n=l("el-button");return u(),a("div",m,[t("div",f,[e[1]||(e[1]=t("h1",null,"404",-1)),e[2]||(e[2]=t("p",null,"抱歉,您访问的页面不存在",-1)),p(n,{type:"primary",onClick:s},{default:_(()=>[...e[0]||(e[0]=[d("返回首页",-1)])]),_:1})])])}}}),b=i(x,[["__scopeId","data-v-7e9f7d47"]]);export{b as default};
import{d as r,c as a,b as t,e as p,w as _,g as l,t as d,i as c,k as u,_ as i}from"./index-CIT-S3uf.js";const m={class:"error-page"},f={class:"error-content"},x=r({__name:"404",setup(k){const o=c(),s=()=>{o.push("/")};return(v,e)=>{const n=l("el-button");return u(),a("div",m,[t("div",f,[e[1]||(e[1]=t("h1",null,"404",-1)),e[2]||(e[2]=t("p",null,"抱歉,您访问的页面不存在",-1)),p(n,{type:"primary",onClick:s},{default:_(()=>[...e[0]||(e[0]=[d("返回首页",-1)])]),_:1})])])}}}),b=i(x,[["__scopeId","data-v-7e9f7d47"]]);export{b as default};

View File

@ -1 +1 @@
import{O as e}from"./index-cO0XwfvV.js";function n(t){return e({url:"/admin/assessment/type/getList",method:"get",params:t})}function a(t){return e({url:"/admin/assessment/type/create",method:"post",data:t})}function o(t){return e({url:"/admin/assessment/type/update",method:"post",data:t})}function r(t){return e({url:"/admin/assessment/type/delete",method:"post",data:{id:t}})}function u(t){return e({url:"/admin/assessment/type/updateStatus",method:"post",data:t})}function i(t){return e({url:"/admin/assessment/question/getList",method:"get",params:t})}function m(t){return e({url:"/admin/assessment/question/create",method:"post",data:t})}function d(t){return e({url:"/admin/assessment/question/update",method:"post",data:t})}function p(t){return e({url:"/admin/assessment/question/delete",method:"post",data:{id:t}})}function c(t){return e({url:"/admin/assessment/question/batchImport",method:"post",data:t,headers:{"Content-Type":"multipart/form-data"}})}function l(t){return e({url:"/admin/assessment/category/getTree",method:"get",params:{assessmentTypeId:t}})}function g(t){return e({url:"/admin/assessment/category/create",method:"post",data:t})}function h(t){return e({url:"/admin/assessment/category/update",method:"post",data:t})}function f(t){return e({url:"/admin/assessment/category/delete",method:"post",data:{id:t}})}function y(t){return e({url:"/admin/assessment/mapping/getByQuestion",method:"get",params:{questionId:t}})}function O(t){return e({url:"/admin/assessment/mapping/batchUpdate",method:"post",data:t})}function C(t){return e({url:"/admin/assessment/conclusion/getList",method:"get",params:{categoryId:t}})}function S(t){return e({url:"/admin/assessment/conclusion/create",method:"post",data:t})}function L(t){return e({url:"/admin/assessment/conclusion/update",method:"post",data:t})}function T(t){return e({url:"/admin/assessment/conclusion/delete",method:"post",data:{id:t}})}function q(t){return e({url:"/admin/assessment/scoreOption/getList",method:"get",params:t})}function Q(t){return e({url:"/admin/assessment/scoreOption/create",method:"post",data:t})}function b(t){return e({url:"/admin/assessment/scoreOption/update",method:"post",data:t})}function A(t){return e({url:"/admin/assessment/scoreOption/delete",method:"post",data:{id:t}})}function x(t){return e({url:"/admin/assessment/scoreOption/updateStatus",method:"post",data:t})}export{l as a,T as b,g as c,f as d,L as e,S as f,n as g,C as h,i,p as j,d as k,m as l,O as m,c as n,y as o,q as p,A as q,x as r,b as s,Q as t,h as u,u as v,r as w,o as x,a as y};
import{O as e}from"./index-CIT-S3uf.js";function n(t){return e({url:"/admin/assessment/type/getList",method:"get",params:t})}function a(t){return e({url:"/admin/assessment/type/create",method:"post",data:t})}function o(t){return e({url:"/admin/assessment/type/update",method:"post",data:t})}function r(t){return e({url:"/admin/assessment/type/delete",method:"post",data:{id:t}})}function u(t){return e({url:"/admin/assessment/type/updateStatus",method:"post",data:t})}function i(t){return e({url:"/admin/assessment/question/getList",method:"get",params:t})}function m(t){return e({url:"/admin/assessment/question/create",method:"post",data:t})}function d(t){return e({url:"/admin/assessment/question/update",method:"post",data:t})}function p(t){return e({url:"/admin/assessment/question/delete",method:"post",data:{id:t}})}function c(t){return e({url:"/admin/assessment/question/batchImport",method:"post",data:t,headers:{"Content-Type":"multipart/form-data"}})}function l(t){return e({url:"/admin/assessment/category/getTree",method:"get",params:{assessmentTypeId:t}})}function g(t){return e({url:"/admin/assessment/category/create",method:"post",data:t})}function h(t){return e({url:"/admin/assessment/category/update",method:"post",data:t})}function f(t){return e({url:"/admin/assessment/category/delete",method:"post",data:{id:t}})}function y(t){return e({url:"/admin/assessment/mapping/getByQuestion",method:"get",params:{questionId:t}})}function O(t){return e({url:"/admin/assessment/mapping/batchUpdate",method:"post",data:t})}function C(t){return e({url:"/admin/assessment/conclusion/getList",method:"get",params:{categoryId:t}})}function S(t){return e({url:"/admin/assessment/conclusion/create",method:"post",data:t})}function L(t){return e({url:"/admin/assessment/conclusion/update",method:"post",data:t})}function T(t){return e({url:"/admin/assessment/conclusion/delete",method:"post",data:{id:t}})}function q(t){return e({url:"/admin/assessment/scoreOption/getList",method:"get",params:t})}function Q(t){return e({url:"/admin/assessment/scoreOption/create",method:"post",data:t})}function b(t){return e({url:"/admin/assessment/scoreOption/update",method:"post",data:t})}function A(t){return e({url:"/admin/assessment/scoreOption/delete",method:"post",data:{id:t}})}function x(t){return e({url:"/admin/assessment/scoreOption/updateStatus",method:"post",data:t})}export{l as a,T as b,g as c,f as d,L as e,S as f,n as g,C as h,i,p as j,d as k,m as l,O as m,c as n,y as o,q as p,A as q,x as r,b as s,Q as t,h as u,u as v,r as w,o as x,a as y};

View File

@ -1 +1 @@
import{O as t}from"./index-cO0XwfvV.js";function e(){return t({url:"/admin/config/upload/get",method:"get"})}function i(n){return t({url:"/admin/config/upload/update",method:"post",data:n})}function r(n){return t({url:"/admin/config/upload/testConnection",method:"post",data:n})}function u(){return t({url:"/admin/config/miniprogram/get",method:"get"})}function a(n){return t({url:"/admin/config/miniprogram/update",method:"post",data:n})}function g(){return t({url:"/admin/config/weixinpay/get",method:"get"})}function d(n){return t({url:"/admin/config/weixinpay/update",method:"post",data:n})}function f(){return t({url:"/admin/config/user/get",method:"get"})}function m(n){return t({url:"/admin/config/user/update",method:"post",data:n})}export{g as a,d as b,e as c,i as d,f as e,m as f,u as g,r as t,a as u};
import{O as t}from"./index-CIT-S3uf.js";function e(){return t({url:"/admin/config/upload/get",method:"get"})}function i(n){return t({url:"/admin/config/upload/update",method:"post",data:n})}function r(n){return t({url:"/admin/config/upload/testConnection",method:"post",data:n})}function u(){return t({url:"/admin/config/miniprogram/get",method:"get"})}function a(n){return t({url:"/admin/config/miniprogram/update",method:"post",data:n})}function g(){return t({url:"/admin/config/weixinpay/get",method:"get"})}function d(n){return t({url:"/admin/config/weixinpay/update",method:"post",data:n})}function f(){return t({url:"/admin/config/user/get",method:"get"})}function m(n){return t({url:"/admin/config/user/update",method:"post",data:n})}export{g as a,d as b,e as c,i as d,f as e,m as f,u as g,r as t,a as u};

View File

@ -1 +1 @@
import{O as n}from"./index-cO0XwfvV.js";function o(t){return n({url:"/admin/content/banner/getList",method:"get",params:t})}function a(t){return n({url:"/admin/content/banner/create",method:"post",data:t})}function r(t){return n({url:"/admin/content/banner/update",method:"post",data:t})}function i(t){return n({url:"/admin/content/banner/delete",method:"post",data:{id:t}})}function u(t){return n({url:"/admin/content/banner/updateStatus",method:"post",data:t})}function d(t){return n({url:"/admin/content/banner/updateSort",method:"post",data:t})}function m(t){return n({url:"/admin/content/promotion/getList",method:"get",params:t})}function s(t){return n({url:"/admin/content/promotion/create",method:"post",data:t})}function c(t){return n({url:"/admin/content/promotion/update",method:"post",data:t})}function p(t){return n({url:"/admin/content/promotion/delete",method:"post",data:{id:t}})}function l(t){return n({url:"/admin/content/promotion/updateStatus",method:"post",data:t})}function g(t){return n({url:"/admin/content/navigation/getList",method:"get",params:t})}function f(t){return n({url:"/admin/content/navigation/create",method:"post",data:t})}function h(t){return n({url:"/admin/content/navigation/update",method:"post",data:t})}function v(t){return n({url:"/admin/content/navigation/delete",method:"post",data:{id:t}})}function S(t){return n({url:"/admin/content/navigation/updateStatus",method:"post",data:t})}export{u as a,r as b,a as c,i as d,g as e,S as f,o as g,v as h,h as i,f as j,m as k,l,p as m,c as n,s as o,d as u};
import{O as n}from"./index-CIT-S3uf.js";function o(t){return n({url:"/admin/content/banner/getList",method:"get",params:t})}function a(t){return n({url:"/admin/content/banner/create",method:"post",data:t})}function r(t){return n({url:"/admin/content/banner/update",method:"post",data:t})}function i(t){return n({url:"/admin/content/banner/delete",method:"post",data:{id:t}})}function u(t){return n({url:"/admin/content/banner/updateStatus",method:"post",data:t})}function d(t){return n({url:"/admin/content/banner/updateSort",method:"post",data:t})}function m(t){return n({url:"/admin/content/promotion/getList",method:"get",params:t})}function s(t){return n({url:"/admin/content/promotion/create",method:"post",data:t})}function c(t){return n({url:"/admin/content/promotion/update",method:"post",data:t})}function p(t){return n({url:"/admin/content/promotion/delete",method:"post",data:{id:t}})}function l(t){return n({url:"/admin/content/promotion/updateStatus",method:"post",data:t})}function g(t){return n({url:"/admin/content/navigation/getList",method:"get",params:t})}function f(t){return n({url:"/admin/content/navigation/create",method:"post",data:t})}function h(t){return n({url:"/admin/content/navigation/update",method:"post",data:t})}function v(t){return n({url:"/admin/content/navigation/delete",method:"post",data:{id:t}})}function S(t){return n({url:"/admin/content/navigation/updateStatus",method:"post",data:t})}export{u as a,r as b,a as c,i as d,g as e,S as f,o as g,v as h,h as i,f as j,m as k,l,p as m,c as n,s as o,d as u};

View File

@ -1 +1 @@
import{O as t}from"./index-cO0XwfvV.js";function m(){return t({url:"/admin/departments",method:"get"})}function a(e){return t({url:"/admin/departments",method:"post",data:e})}function u(e,n){return t({url:`/admin/departments/${e}`,method:"put",data:n})}function d(e){return t({url:`/admin/departments/${e}`,method:"delete"})}function s(e){return t({url:`/admin/departments/${e}/menus`,method:"get"})}function p(e){return t({url:`/admin/departments/${e.departmentId}/menus`,method:"put",data:{menuIds:e.menuIds}})}export{s as a,p as b,a as c,d,m as g,u};
import{O as t}from"./index-CIT-S3uf.js";function m(){return t({url:"/admin/departments",method:"get"})}function a(e){return t({url:"/admin/departments",method:"post",data:e})}function u(e,n){return t({url:`/admin/departments/${e}`,method:"put",data:n})}function d(e){return t({url:`/admin/departments/${e}`,method:"delete"})}function s(e){return t({url:`/admin/departments/${e}/menus`,method:"get"})}function p(e){return t({url:`/admin/departments/${e.departmentId}/menus`,method:"put",data:{menuIds:e.menuIds}})}export{s as a,p as b,a as c,d,m as g,u};

View File

@ -1 +1 @@
import{O as i}from"./index-cO0XwfvV.js";function n(t){return i({url:"/admin/distribution/inviteCode/getList",method:"get",params:t})}function o(t){return i({url:"/admin/distribution/inviteCode/generate",method:"post",data:t})}function r(t){return i({url:"/admin/distribution/inviteCode/assign",method:"post",data:t})}function s(t){return i({url:"/admin/distribution/inviteCode/export",method:"get",params:t,responseType:"blob"})}function a(t){return i({url:"/admin/distribution/commission/getList",method:"get",params:t})}function d(t){return i({url:"/admin/distribution/commission/getDetail",method:"get",params:{id:t}})}function u(t){return i({url:"/admin/distribution/commission/getStatistics",method:"get",params:t})}function m(t){return i({url:"/admin/distribution/commission/export",method:"get",params:t,responseType:"blob"})}function l(t){return i({url:"/admin/distribution/withdrawal/getList",method:"get",params:t})}function h(t){return i({url:"/admin/distribution/withdrawal/getDetail",method:"get",params:{id:t}})}function p(t){return i({url:"/admin/distribution/withdrawal/approve",method:"post",data:t})}function g(t){return i({url:"/admin/distribution/withdrawal/reject",method:"post",data:t})}function c(t){return i({url:"/admin/distribution/withdrawal/complete",method:"post",data:t})}function b(t){return i({url:"/admin/distribution/withdrawal/export",method:"get",params:t,responseType:"blob"})}export{a,d as b,n as c,o as d,m as e,r as f,u as g,s as h,l as i,h as j,p as k,c as l,b as m,g as r};
import{O as i}from"./index-CIT-S3uf.js";function n(t){return i({url:"/admin/distribution/inviteCode/getList",method:"get",params:t})}function o(t){return i({url:"/admin/distribution/inviteCode/generate",method:"post",data:t})}function r(t){return i({url:"/admin/distribution/inviteCode/assign",method:"post",data:t})}function s(t){return i({url:"/admin/distribution/inviteCode/export",method:"get",params:t,responseType:"blob"})}function a(t){return i({url:"/admin/distribution/commission/getList",method:"get",params:t})}function d(t){return i({url:"/admin/distribution/commission/getDetail",method:"get",params:{id:t}})}function u(t){return i({url:"/admin/distribution/commission/getStatistics",method:"get",params:t})}function m(t){return i({url:"/admin/distribution/commission/export",method:"get",params:t,responseType:"blob"})}function l(t){return i({url:"/admin/distribution/withdrawal/getList",method:"get",params:t})}function h(t){return i({url:"/admin/distribution/withdrawal/getDetail",method:"get",params:{id:t}})}function p(t){return i({url:"/admin/distribution/withdrawal/approve",method:"post",data:t})}function g(t){return i({url:"/admin/distribution/withdrawal/reject",method:"post",data:t})}function c(t){return i({url:"/admin/distribution/withdrawal/complete",method:"post",data:t})}function b(t){return i({url:"/admin/distribution/withdrawal/export",method:"get",params:t,responseType:"blob"})}export{a,d as b,n as c,o as d,m as e,r as f,u as g,s as h,l as i,h as j,p as k,c as l,b as m,g as r};

View File

@ -1 +1 @@
import{d as v,u as x,v as b,c as u,e as t,w as a,g as r,t as n,x as o,F as g,y as k,b as N,k as c,z as h,_ as y}from"./index-cO0XwfvV.js";const B={class:"page-container"},C=v({__name:"index",setup(I){const i=x(),s=b(()=>i.userInfo);return(S,_)=>{const l=r("el-descriptions-item"),p=r("el-tag"),m=r("el-descriptions"),f=r("el-card");return c(),u("div",B,[t(f,null,{header:a(()=>[..._[0]||(_[0]=[N("span",null,"个人中心",-1)])]),default:a(()=>[t(m,{column:2,border:""},{default:a(()=>[t(l,{label:"用户名"},{default:a(()=>{var e;return[n(o((e=s.value)==null?void 0:e.username),1)]}),_:1}),t(l,{label:"姓名"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.realName)||"-"),1)]}),_:1}),t(l,{label:"手机号"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.phone)||"-"),1)]}),_:1}),t(l,{label:"邮箱"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.email)||"-"),1)]}),_:1}),t(l,{label:"部门"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.departmentName)||"-"),1)]}),_:1}),t(l,{label:"角色"},{default:a(()=>{var e;return[(c(!0),u(g,null,k((e=s.value)==null?void 0:e.roles,d=>(c(),h(p,{key:d,size:"small",style:{"margin-right":"4px"}},{default:a(()=>[n(o(d),1)]),_:2},1024))),128))]}),_:1})]),_:1})]),_:1})])}}}),w=y(C,[["__scopeId","data-v-e4ec3187"]]);export{w as default};
import{d as v,u as x,v as b,c as u,e as t,w as a,g as r,t as n,x as o,F as g,y as k,b as N,k as c,z as h,_ as y}from"./index-CIT-S3uf.js";const B={class:"page-container"},C=v({__name:"index",setup(I){const i=x(),s=b(()=>i.userInfo);return(S,_)=>{const l=r("el-descriptions-item"),p=r("el-tag"),m=r("el-descriptions"),f=r("el-card");return c(),u("div",B,[t(f,null,{header:a(()=>[..._[0]||(_[0]=[N("span",null,"个人中心",-1)])]),default:a(()=>[t(m,{column:2,border:""},{default:a(()=>[t(l,{label:"用户名"},{default:a(()=>{var e;return[n(o((e=s.value)==null?void 0:e.username),1)]}),_:1}),t(l,{label:"姓名"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.realName)||"-"),1)]}),_:1}),t(l,{label:"手机号"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.phone)||"-"),1)]}),_:1}),t(l,{label:"邮箱"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.email)||"-"),1)]}),_:1}),t(l,{label:"部门"},{default:a(()=>{var e;return[n(o(((e=s.value)==null?void 0:e.departmentName)||"-"),1)]}),_:1}),t(l,{label:"角色"},{default:a(()=>{var e;return[(c(!0),u(g,null,k((e=s.value)==null?void 0:e.roles,d=>(c(),h(p,{key:d,size:"small",style:{"margin-right":"4px"}},{default:a(()=>[n(o(d),1)]),_:2},1024))),128))]}),_:1})]),_:1})]),_:1})])}}}),w=y(C,[["__scopeId","data-v-e4ec3187"]]);export{w as default};

View File

@ -0,0 +1 @@
.report-page-config-container[data-v-5a738e99]{padding:0}.page-header[data-v-5a738e99]{margin-bottom:16px}.header-content[data-v-5a738e99]{display:flex;justify-content:space-between;align-items:center}.header-left[data-v-5a738e99]{display:flex;align-items:baseline;gap:16px}.page-title[data-v-5a738e99]{margin:0;font-size:20px;font-weight:600;color:var(--text-primary, #303133)}.page-description[data-v-5a738e99]{font-size:14px;color:var(--text-secondary, #909399)}.search-card[data-v-5a738e99]{margin-bottom:16px}.search-card[data-v-5a738e99] .el-card__body{padding-bottom:2px}.table-card[data-v-5a738e99]{min-height:400px}.pagination-wrapper[data-v-5a738e99]{display:flex;justify-content:flex-end;margin-top:16px}.sort-buttons[data-v-5a738e99]{display:flex;flex-direction:column;align-items:center;gap:2px}.sort-buttons .el-button[data-v-5a738e99]{padding:2px}[data-v-5a738e99] .el-table th.el-table__cell{background-color:var(--bg-light, #f5f7fa);font-weight:500}[data-v-5a738e99] .el-dialog__body{padding-top:20px}

View File

@ -1 +1 @@
import{d as P,r as w,a as b,c as v,e as s,w as a,g as d,t as x,b as V,A as y,E as i,k as h,_ as k}from"./index-cO0XwfvV.js";const C={class:"page-container"},E=P({__name:"index",setup(q){const u=w(),n=w(!1),o=b({oldPassword:"",newPassword:"",confirmPassword:""}),p={oldPassword:[{required:!0,message:"请输入原密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],newPassword:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],confirmPassword:[{required:!0,message:"请再次输入新密码",trigger:"blur"},{validator:(m,e,r)=>{e!==o.newPassword?r(new Error("两次输入密码不一致")):r()},trigger:"blur"}]},f=async()=>{var e;if(await((e=u.value)==null?void 0:e.validate())){n.value=!0;try{await y({oldPassword:o.oldPassword,newPassword:o.newPassword}),i.success("密码修改成功"),o.oldPassword="",o.newPassword="",o.confirmPassword=""}catch(r){i.error(r.message||"修改失败")}finally{n.value=!1}}};return(m,e)=>{const r=d("el-input"),t=d("el-form-item"),c=d("el-button"),_=d("el-form"),g=d("el-card");return h(),v("div",C,[s(g,null,{header:a(()=>[...e[3]||(e[3]=[V("span",null,"修改密码",-1)])]),default:a(()=>[s(_,{ref_key:"formRef",ref:u,model:o,rules:p,"label-width":"100px",style:{"max-width":"400px"}},{default:a(()=>[s(t,{label:"原密码",prop:"oldPassword"},{default:a(()=>[s(r,{modelValue:o.oldPassword,"onUpdate:modelValue":e[0]||(e[0]=l=>o.oldPassword=l),type:"password",placeholder:"请输入原密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"新密码",prop:"newPassword"},{default:a(()=>[s(r,{modelValue:o.newPassword,"onUpdate:modelValue":e[1]||(e[1]=l=>o.newPassword=l),type:"password",placeholder:"请输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"确认密码",prop:"confirmPassword"},{default:a(()=>[s(r,{modelValue:o.confirmPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>o.confirmPassword=l),type:"password",placeholder:"请再次输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,null,{default:a(()=>[s(c,{type:"primary",onClick:f,loading:n.value},{default:a(()=>[...e[4]||(e[4]=[x(" 确认修改 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),N=k(E,[["__scopeId","data-v-928c0ade"]]);export{N as default};
import{d as P,r as w,a as b,c as v,e as s,w as a,g as d,t as x,b as V,A as y,E as i,k as h,_ as k}from"./index-CIT-S3uf.js";const C={class:"page-container"},E=P({__name:"index",setup(q){const u=w(),n=w(!1),o=b({oldPassword:"",newPassword:"",confirmPassword:""}),p={oldPassword:[{required:!0,message:"请输入原密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],newPassword:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,max:20,message:"密码长度在 6 到 20 个字符",trigger:"blur"}],confirmPassword:[{required:!0,message:"请再次输入新密码",trigger:"blur"},{validator:(m,e,r)=>{e!==o.newPassword?r(new Error("两次输入密码不一致")):r()},trigger:"blur"}]},f=async()=>{var e;if(await((e=u.value)==null?void 0:e.validate())){n.value=!0;try{await y({oldPassword:o.oldPassword,newPassword:o.newPassword}),i.success("密码修改成功"),o.oldPassword="",o.newPassword="",o.confirmPassword=""}catch(r){i.error(r.message||"修改失败")}finally{n.value=!1}}};return(m,e)=>{const r=d("el-input"),t=d("el-form-item"),c=d("el-button"),_=d("el-form"),g=d("el-card");return h(),v("div",C,[s(g,null,{header:a(()=>[...e[3]||(e[3]=[V("span",null,"修改密码",-1)])]),default:a(()=>[s(_,{ref_key:"formRef",ref:u,model:o,rules:p,"label-width":"100px",style:{"max-width":"400px"}},{default:a(()=>[s(t,{label:"原密码",prop:"oldPassword"},{default:a(()=>[s(r,{modelValue:o.oldPassword,"onUpdate:modelValue":e[0]||(e[0]=l=>o.oldPassword=l),type:"password",placeholder:"请输入原密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"新密码",prop:"newPassword"},{default:a(()=>[s(r,{modelValue:o.newPassword,"onUpdate:modelValue":e[1]||(e[1]=l=>o.newPassword=l),type:"password",placeholder:"请输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,{label:"确认密码",prop:"confirmPassword"},{default:a(()=>[s(r,{modelValue:o.confirmPassword,"onUpdate:modelValue":e[2]||(e[2]=l=>o.confirmPassword=l),type:"password",placeholder:"请再次输入新密码","show-password":""},null,8,["modelValue"])]),_:1}),s(t,null,{default:a(()=>[s(c,{type:"primary",onClick:f,loading:n.value},{default:a(()=>[...e[4]||(e[4]=[x(" 确认修改 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),N=k(E,[["__scopeId","data-v-928c0ade"]]);export{N as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import s from"./upload-Dd7mgrCo.js";import p from"./miniprogram-BavQVauT.js";import i from"./payment-DygCUOiy.js";import _ from"./user-Bzm47jDQ.js";import{d,r as c,g as r,c as f,k as u,e,w as a,_ as b}from"./index-cO0XwfvV.js";import"./config-72hJ2Twl.js";const g={class:"config-container"},C=d({__name:"index",setup(v){const t=c("miniprogram");return(x,n)=>{const o=r("el-tab-pane"),l=r("el-tabs");return u(),f("div",g,[e(l,{modelValue:t.value,"onUpdate:modelValue":n[0]||(n[0]=m=>t.value=m),type:"border-card"},{default:a(()=>[e(o,{label:"小程序配置",name:"miniprogram"},{default:a(()=>[e(p)]),_:1}),e(o,{label:"支付配置",name:"payment"},{default:a(()=>[e(i)]),_:1}),e(o,{label:"上传配置",name:"upload"},{default:a(()=>[e(s)]),_:1}),e(o,{label:"用户配置",name:"user"},{default:a(()=>[e(_)]),_:1})]),_:1},8,["modelValue"])])}}}),h=b(C,[["__scopeId","data-v-1c246f87"]]);export{h as default};
import s from"./upload-DZwrV5XI.js";import p from"./miniprogram-BVUgdskI.js";import i from"./payment-73HGuqwu.js";import _ from"./user-nAVm2dIq.js";import{d,r as c,g as r,c as f,k as u,e,w as a,_ as b}from"./index-CIT-S3uf.js";import"./config-CkLmixH4.js";const g={class:"config-container"},C=d({__name:"index",setup(v){const t=c("miniprogram");return(x,n)=>{const o=r("el-tab-pane"),l=r("el-tabs");return u(),f("div",g,[e(l,{modelValue:t.value,"onUpdate:modelValue":n[0]||(n[0]=m=>t.value=m),type:"border-card"},{default:a(()=>[e(o,{label:"小程序配置",name:"miniprogram"},{default:a(()=>[e(p)]),_:1}),e(o,{label:"支付配置",name:"payment"},{default:a(()=>[e(i)]),_:1}),e(o,{label:"上传配置",name:"upload"},{default:a(()=>[e(s)]),_:1}),e(o,{label:"用户配置",name:"user"},{default:a(()=>[e(_)]),_:1})]),_:1},8,["modelValue"])])}}}),h=b(C,[["__scopeId","data-v-1c246f87"]]);export{h as default};

View File

@ -1,4 +1,4 @@
var a_=Object.defineProperty;var o_=(r,t,e)=>t in r?a_(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var iv=(r,t,e)=>o_(r,typeof t!="symbol"?t+"":t,e);import{d as ig,a2 as pu,a3 as _o,a4 as s_,v as Tr,a5 as So,a6 as bo,a7 as ng,o as Ff,a8 as l_,a9 as gu,$ as u_,aa as Us,ab as f_,ac as h_,ad as v_,O as zf,u as c_,r as d_,a as p_,g as Ae,B as g_,c as Ys,k as Le,z as Gr,G as m_,e as O,w as H,t as ge,C as hr,b as Z,l as Tt,m as nv,x as Ie,ae as av,af as y_,ag as ov,ah as __,ai as S_,aj as sv,ak as lv,al as b_,T as w_,R as x_,E as Xs,_ as T_}from"./index-cO0XwfvV.js";/*! *****************************************************************************
var a_=Object.defineProperty;var o_=(r,t,e)=>t in r?a_(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var iv=(r,t,e)=>o_(r,typeof t!="symbol"?t+"":t,e);import{d as ig,a2 as pu,a3 as _o,a4 as s_,v as Tr,a5 as So,a6 as bo,a7 as ng,o as Ff,a8 as l_,a9 as gu,$ as u_,aa as Us,ab as f_,ac as h_,ad as v_,O as zf,u as c_,r as d_,a as p_,g as Ae,B as g_,c as Ys,k as Le,z as Gr,G as m_,e as O,w as H,t as ge,C as hr,b as Z,l as Tt,m as nv,x as Ie,ae as av,af as y_,ag as ov,ah as __,ai as S_,aj as sv,ak as lv,al as b_,V as w_,R as x_,E as Xs,_ as T_}from"./index-CIT-S3uf.js";/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any

View File

@ -1 +1 @@
import{d as R,u as z,r as d,a as U,o as B,c as _,b as l,e as a,w as o,f as E,g as n,h as F,E as x,i as I,j as N,k as h,l as c,m as M,n as S,p as j,q as L,s as T,t as A,_ as D}from"./index-cO0XwfvV.js";const G={class:"login-container"},H={class:"login-box"},J={class:"captcha-container"},O=["src"],P={key:1,class:"captcha-loading"},Q=R({__name:"index",setup(W){const C=I(),V=N(),b=z(),u=d(),p=d(!1),m=d(""),v=d(""),s=U({username:"",password:"",captchaCode:""}),k={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码至少6个字符",trigger:"blur"}],captchaCode:[{required:!0,message:"请输入验证码",trigger:"blur"},{min:4,max:6,message:"验证码为4-6位字符",trigger:"blur"}]},f=async()=>{try{const t=await F();v.value=t.data.captchaKey,m.value=t.data.captchaImage}catch{x.error("获取验证码失败,请重试")}},y=async()=>{u.value&&await u.value.validate(async t=>{if(t){p.value=!0;try{await b.login({username:s.username,password:s.password,captchaKey:v.value,captchaCode:s.captchaCode}),x.success("登录成功");const e=V.query.redirect;C.push(e||"/")}catch{s.captchaCode="",await f()}finally{p.value=!1}}})};return B(()=>{f()}),(t,e)=>{const g=n("el-input"),i=n("el-form-item"),w=n("el-icon"),q=n("el-button"),K=n("el-form");return h(),_("div",G,[l("div",H,[e[4]||(e[4]=l("div",{class:"login-header"},[l("h1",null,"学业邑规划 后台管理系统")],-1)),a(K,{ref_key:"loginFormRef",ref:u,model:s,rules:k,class:"login-form",onKeyup:E(y,["enter"])},{default:o(()=>[a(i,{prop:"username"},{default:o(()=>[a(g,{modelValue:s.username,"onUpdate:modelValue":e[0]||(e[0]=r=>s.username=r),placeholder:"请输入用户名","prefix-icon":c(M),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"password"},{default:o(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[1]||(e[1]=r=>s.password=r),type:"password",placeholder:"请输入密码","prefix-icon":c(S),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"captchaCode"},{default:o(()=>[l("div",J,[a(g,{modelValue:s.captchaCode,"onUpdate:modelValue":e[2]||(e[2]=r=>s.captchaCode=r),placeholder:"请输入验证码","prefix-icon":c(j),size:"large",class:"captcha-input"},null,8,["modelValue","prefix-icon"]),l("div",{class:"captcha-image-wrapper",onClick:f},[m.value?(h(),_("img",{key:0,src:m.value,alt:"验证码",class:"captcha-image",title:"点击刷新验证码"},null,8,O)):(h(),_("div",P,[a(w,{class:"is-loading"},{default:o(()=>[a(c(L))]),_:1})])),a(w,{class:"refresh-icon"},{default:o(()=>[a(c(T))]),_:1})])])]),_:1}),a(i,null,{default:o(()=>[a(q,{type:"primary",size:"large",loading:p.value,class:"login-btn",onClick:y},{default:o(()=>[...e[3]||(e[3]=[A(" 登 录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])}}}),Y=D(Q,[["__scopeId","data-v-d12e50e6"]]);export{Y as default};
import{d as R,u as z,r as d,a as U,o as B,c as _,b as l,e as a,w as o,f as E,g as n,h as F,E as x,i as I,j as N,k as h,l as c,m as M,n as S,p as j,q as L,s as T,t as A,_ as D}from"./index-CIT-S3uf.js";const G={class:"login-container"},H={class:"login-box"},J={class:"captcha-container"},O=["src"],P={key:1,class:"captcha-loading"},Q=R({__name:"index",setup(W){const C=I(),V=N(),b=z(),u=d(),p=d(!1),m=d(""),v=d(""),s=U({username:"",password:"",captchaCode:""}),k={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码至少6个字符",trigger:"blur"}],captchaCode:[{required:!0,message:"请输入验证码",trigger:"blur"},{min:4,max:6,message:"验证码为4-6位字符",trigger:"blur"}]},f=async()=>{try{const t=await F();v.value=t.data.captchaKey,m.value=t.data.captchaImage}catch{x.error("获取验证码失败,请重试")}},y=async()=>{u.value&&await u.value.validate(async t=>{if(t){p.value=!0;try{await b.login({username:s.username,password:s.password,captchaKey:v.value,captchaCode:s.captchaCode}),x.success("登录成功");const e=V.query.redirect;C.push(e||"/")}catch{s.captchaCode="",await f()}finally{p.value=!1}}})};return B(()=>{f()}),(t,e)=>{const g=n("el-input"),i=n("el-form-item"),w=n("el-icon"),q=n("el-button"),K=n("el-form");return h(),_("div",G,[l("div",H,[e[4]||(e[4]=l("div",{class:"login-header"},[l("h1",null,"学业邑规划 后台管理系统")],-1)),a(K,{ref_key:"loginFormRef",ref:u,model:s,rules:k,class:"login-form",onKeyup:E(y,["enter"])},{default:o(()=>[a(i,{prop:"username"},{default:o(()=>[a(g,{modelValue:s.username,"onUpdate:modelValue":e[0]||(e[0]=r=>s.username=r),placeholder:"请输入用户名","prefix-icon":c(M),size:"large"},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"password"},{default:o(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[1]||(e[1]=r=>s.password=r),type:"password",placeholder:"请输入密码","prefix-icon":c(S),size:"large","show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),a(i,{prop:"captchaCode"},{default:o(()=>[l("div",J,[a(g,{modelValue:s.captchaCode,"onUpdate:modelValue":e[2]||(e[2]=r=>s.captchaCode=r),placeholder:"请输入验证码","prefix-icon":c(j),size:"large",class:"captcha-input"},null,8,["modelValue","prefix-icon"]),l("div",{class:"captcha-image-wrapper",onClick:f},[m.value?(h(),_("img",{key:0,src:m.value,alt:"验证码",class:"captcha-image",title:"点击刷新验证码"},null,8,O)):(h(),_("div",P,[a(w,{class:"is-loading"},{default:o(()=>[a(c(L))]),_:1})])),a(w,{class:"refresh-icon"},{default:o(()=>[a(c(T))]),_:1})])])]),_:1}),a(i,null,{default:o(()=>[a(q,{type:"primary",size:"large",loading:p.value,class:"login-btn",onClick:y},{default:o(()=>[...e[3]||(e[3]=[A(" 登 录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])}}}),Y=D(Q,[["__scopeId","data-v-d12e50e6"]]);export{Y as default};

View File

@ -1 +1 @@
import{O as s}from"./index-cO0XwfvV.js";function r(){return s({url:"/admin/permissions",method:"get"})}function t(){return s({url:"/admin/permissions/by-module",method:"get"})}function o(e){return s({url:"/admin/permissions",method:"post",data:e})}function m(e,i){return s({url:`/admin/permissions/${e}`,method:"put",data:i})}function u(e){return s({url:`/admin/permissions/${e}`,method:"delete"})}export{r as a,o as c,u as d,t as g,m as u};
import{O as s}from"./index-CIT-S3uf.js";function r(){return s({url:"/admin/permissions",method:"get"})}function t(){return s({url:"/admin/permissions/by-module",method:"get"})}function o(e){return s({url:"/admin/permissions",method:"post",data:e})}function m(e,i){return s({url:`/admin/permissions/${e}`,method:"put",data:i})}function u(e){return s({url:`/admin/permissions/${e}`,method:"delete"})}export{r as a,o as c,u as d,t as g,m as u};

View File

@ -1 +1 @@
import{O as t}from"./index-cO0XwfvV.js";function a(n){return t({url:"/admin/planner/getList",method:"get",params:n})}function r(n){return t({url:"/admin/planner/create",method:"post",data:n})}function o(n){return t({url:"/admin/planner/update",method:"post",data:n})}function u(n){return t({url:"/admin/planner/delete",method:"post",data:{id:n}})}function i(n){return t({url:"/admin/planner/updateStatus",method:"post",data:n})}function d(n){return t({url:"/admin/planner/booking/getList",method:"get",params:n})}function l(n){return t({url:"/admin/planner/booking/getDetail",method:"get",params:{id:n}})}function s(n){return t({url:"/admin/planner/booking/updateStatus",method:"post",data:n})}function p(n){return t({url:"/admin/planner/booking/export",method:"get",params:n,responseType:"blob"})}export{d as a,l as b,o as c,r as d,p as e,i as f,a as g,u as h,s as u};
import{O as t}from"./index-CIT-S3uf.js";function a(n){return t({url:"/admin/planner/getList",method:"get",params:n})}function r(n){return t({url:"/admin/planner/create",method:"post",data:n})}function o(n){return t({url:"/admin/planner/update",method:"post",data:n})}function u(n){return t({url:"/admin/planner/delete",method:"post",data:{id:n}})}function i(n){return t({url:"/admin/planner/updateStatus",method:"post",data:n})}function d(n){return t({url:"/admin/planner/booking/getList",method:"get",params:n})}function l(n){return t({url:"/admin/planner/booking/getDetail",method:"get",params:{id:n}})}function s(n){return t({url:"/admin/planner/booking/updateStatus",method:"post",data:n})}function p(n){return t({url:"/admin/planner/booking/export",method:"get",params:n,responseType:"blob"})}export{d as a,l as b,o as c,r as d,p as e,i as f,a as g,u as h,s as u};

View File

@ -1 +1 @@
import{O as s}from"./index-cO0XwfvV.js";function r(e){return s({url:"/admin/roles",method:"get",params:e})}function t(){return s({url:"/admin/roles/all",method:"get"})}function u(e){return s({url:"/admin/roles",method:"post",data:e})}function l(e,n){return s({url:`/admin/roles/${e}`,method:"put",data:n})}function i(e){return s({url:`/admin/roles/${e}`,method:"delete"})}function m(e){return s({url:`/admin/roles/${e}/menus`,method:"get"})}function d(e){return s({url:`/admin/roles/${e.roleId}/menus`,method:"put",data:{menuIds:e.menuIds}})}function a(e){return s({url:`/admin/roles/${e}/permissions`,method:"get"})}function c(e){return s({url:`/admin/roles/${e.roleId}/permissions`,method:"put",data:{permissionCodes:e.permissionCodes}})}export{m as a,d as b,u as c,i as d,a as e,c as f,r as g,t as h,l as u};
import{O as s}from"./index-CIT-S3uf.js";function r(e){return s({url:"/admin/roles",method:"get",params:e})}function t(){return s({url:"/admin/roles/all",method:"get"})}function u(e){return s({url:"/admin/roles",method:"post",data:e})}function l(e,n){return s({url:`/admin/roles/${e}`,method:"put",data:n})}function i(e){return s({url:`/admin/roles/${e}`,method:"delete"})}function m(e){return s({url:`/admin/roles/${e}/menus`,method:"get"})}function d(e){return s({url:`/admin/roles/${e.roleId}/menus`,method:"put",data:{menuIds:e.menuIds}})}function a(e){return s({url:`/admin/roles/${e}/permissions`,method:"get"})}function c(e){return s({url:`/admin/roles/${e.roleId}/permissions`,method:"put",data:{permissionCodes:e.permissionCodes}})}export{m as a,d as b,u as c,i as d,a as e,c as f,r as g,t as h,l as u};

View File

@ -1 +1 @@
import{O as t}from"./index-cO0XwfvV.js";function u(e){return t({url:"/admin/user/getList",method:"get",params:e})}function s(e){return t({url:"/admin/user/getDetail",method:"get",params:{id:e}})}function a(e){return t({url:"/admin/user/updateStatus",method:"post",data:e})}function n(e){return t({url:"/admin/user/updateLevel",method:"post",data:e})}function o(e){return t({url:"/admin/user/export",method:"get",params:e,responseType:"blob"})}function d(e){return t({url:"/admin/user/delete",method:"post",data:{id:e}})}export{n as a,s as b,d,o as e,u as g,a as u};
import{O as t}from"./index-CIT-S3uf.js";function u(e){return t({url:"/admin/user/getList",method:"get",params:e})}function s(e){return t({url:"/admin/user/getDetail",method:"get",params:{id:e}})}function a(e){return t({url:"/admin/user/updateStatus",method:"post",data:e})}function n(e){return t({url:"/admin/user/updateLevel",method:"post",data:e})}function o(e){return t({url:"/admin/user/export",method:"get",params:e,responseType:"blob"})}function d(e){return t({url:"/admin/user/delete",method:"post",data:{id:e}})}export{n as a,s as b,d,o as e,u as g,a as u};

View File

@ -1 +1 @@
import{d as C,a as I,v as k,o as B,g as s,B as N,c as E,k as v,e as t,C as M,w as l,b as n,z as S,t as r,V as z,E as u,_ as L}from"./index-cO0XwfvV.js";import{e as R,f as T}from"./config-72hJ2Twl.js";const j={class:"user-config-container"},q={class:"avatar-config"},A={class:"form-actions"},F=C({__name:"user",setup(G){const a=I({loading:!1,saving:!1,formData:{uid_type:"2",uid_length:"6",default_nickname_prefix:"用户",default_avatar:""}}),m=k({get:()=>parseInt(a.formData.uid_length||"6")||6,set:o=>{a.formData.uid_length=String(o)}});async function p(){a.loading=!0;try{const o=await R();o.code===0&&o.data&&(a.formData=o.data)}catch(o){console.error("加载用户配置失败:",o),u.error("加载配置失败")}finally{a.loading=!1}}async function D(){a.saving=!0;try{const o=await T(a.formData);o.code===0?u.success("保存成功"):u.error(o.message||"保存失败")}catch(o){console.error("保存用户配置失败:",o),u.error("保存失败")}finally{a.saving=!1}}function V(){p()}return B(()=>{p()}),(o,e)=>{const _=s("el-card"),f=s("el-radio"),b=s("el-radio-group"),d=s("el-form-item"),U=s("el-input-number"),c=s("el-divider"),x=s("el-input"),y=s("el-form"),g=s("el-button"),w=N("loading");return v(),E("div",j,[t(_,{class:"page-header"},{default:l(()=>[...e[4]||(e[4]=[n("div",{class:"header-content"},[n("h2",{class:"page-title"},"用户配置"),n("span",{class:"page-description"},"配置新用户注册时的UID生成规则、默认昵称前缀和默认头像")],-1)])]),_:1}),M((v(),S(_,{class:"config-form-card"},{default:l(()=>[t(y,{"label-width":"140px","label-position":"right"},{default:l(()=>[e[10]||(e[10]=n("div",{class:"section-title"},"UID 配置",-1)),t(d,{label:"UID类型"},{default:l(()=>[t(b,{modelValue:a.formData.uid_type,"onUpdate:modelValue":e[0]||(e[0]=i=>a.formData.uid_type=i)},{default:l(()=>[t(f,{value:"1"},{default:l(()=>[...e[5]||(e[5]=[r("真实ID",-1)])]),_:1}),t(f,{value:"2"},{default:l(()=>[...e[6]||(e[6]=[r("数字ID",-1)])]),_:1}),t(f,{value:"3"},{default:l(()=>[...e[7]||(e[7]=[r("随机字符和数字",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"UID长度"},{default:l(()=>[t(U,{modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=i=>m.value=i),modelModifiers:{number:!0},min:4,max:12,"controls-position":"right"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-item-tip"},"新用户UID的位数建议6位",-1))]),_:1}),t(c),e[11]||(e[11]=n("div",{class:"section-title"},"默认昵称",-1)),t(d,{label:"昵称前缀"},{default:l(()=>[t(x,{modelValue:a.formData.default_nickname_prefix,"onUpdate:modelValue":e[2]||(e[2]=i=>a.formData.default_nickname_prefix=i),placeholder:"请输入默认昵称前缀",maxlength:"10","show-word-limit":"",clearable:"",style:{width:"300px"}},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-item-tip"},'新用户注册时的昵称前缀系统会自动拼接6位随机数字如"用户123456"',-1))]),_:1}),t(c),e[12]||(e[12]=n("div",{class:"section-title"},"默认头像",-1)),t(d,{label:"默认头像"},{default:l(()=>[n("div",q,[t(z,{modelValue:a.formData.default_avatar,"onUpdate:modelValue":e[3]||(e[3]=i=>a.formData.default_avatar=i),placeholder:"点击上传默认头像","show-url-input":!1,tip:"上传图片作为所有新用户的默认头像,不上传则系统自动生成唯一头像"},null,8,["modelValue"])])]),_:1})]),_:1}),n("div",A,[t(g,{type:"primary",loading:a.saving,onClick:D},{default:l(()=>[...e[13]||(e[13]=[r("保存配置",-1)])]),_:1},8,["loading"]),t(g,{onClick:V},{default:l(()=>[...e[14]||(e[14]=[r("重置",-1)])]),_:1})])]),_:1})),[[w,a.loading]])])}}}),K=L(F,[["__scopeId","data-v-5ef730fd"]]);export{K as default};
import{d as C,a as I,v as k,o as B,g as s,B as N,c as E,k as v,e as t,C as M,w as l,b as n,z as S,t as r,X as z,E as u,_ as L}from"./index-CIT-S3uf.js";import{e as R,f as T}from"./config-CkLmixH4.js";const X={class:"user-config-container"},j={class:"avatar-config"},q={class:"form-actions"},A=C({__name:"user",setup(F){const a=I({loading:!1,saving:!1,formData:{uid_type:"2",uid_length:"6",default_nickname_prefix:"用户",default_avatar:""}}),m=k({get:()=>parseInt(a.formData.uid_length||"6")||6,set:o=>{a.formData.uid_length=String(o)}});async function p(){a.loading=!0;try{const o=await R();o.code===0&&o.data&&(a.formData=o.data)}catch(o){console.error("加载用户配置失败:",o),u.error("加载配置失败")}finally{a.loading=!1}}async function D(){a.saving=!0;try{const o=await T(a.formData);o.code===0?u.success("保存成功"):u.error(o.message||"保存失败")}catch(o){console.error("保存用户配置失败:",o),u.error("保存失败")}finally{a.saving=!1}}function V(){p()}return B(()=>{p()}),(o,e)=>{const _=s("el-card"),f=s("el-radio"),b=s("el-radio-group"),d=s("el-form-item"),U=s("el-input-number"),c=s("el-divider"),x=s("el-input"),y=s("el-form"),g=s("el-button"),w=N("loading");return v(),E("div",X,[t(_,{class:"page-header"},{default:l(()=>[...e[4]||(e[4]=[n("div",{class:"header-content"},[n("h2",{class:"page-title"},"用户配置"),n("span",{class:"page-description"},"配置新用户注册时的UID生成规则、默认昵称前缀和默认头像")],-1)])]),_:1}),M((v(),S(_,{class:"config-form-card"},{default:l(()=>[t(y,{"label-width":"140px","label-position":"right"},{default:l(()=>[e[10]||(e[10]=n("div",{class:"section-title"},"UID 配置",-1)),t(d,{label:"UID类型"},{default:l(()=>[t(b,{modelValue:a.formData.uid_type,"onUpdate:modelValue":e[0]||(e[0]=i=>a.formData.uid_type=i)},{default:l(()=>[t(f,{value:"1"},{default:l(()=>[...e[5]||(e[5]=[r("真实ID",-1)])]),_:1}),t(f,{value:"2"},{default:l(()=>[...e[6]||(e[6]=[r("数字ID",-1)])]),_:1}),t(f,{value:"3"},{default:l(()=>[...e[7]||(e[7]=[r("随机字符和数字",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"UID长度"},{default:l(()=>[t(U,{modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=i=>m.value=i),modelModifiers:{number:!0},min:4,max:12,"controls-position":"right"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-item-tip"},"新用户UID的位数建议6位",-1))]),_:1}),t(c),e[11]||(e[11]=n("div",{class:"section-title"},"默认昵称",-1)),t(d,{label:"昵称前缀"},{default:l(()=>[t(x,{modelValue:a.formData.default_nickname_prefix,"onUpdate:modelValue":e[2]||(e[2]=i=>a.formData.default_nickname_prefix=i),placeholder:"请输入默认昵称前缀",maxlength:"10","show-word-limit":"",clearable:"",style:{width:"300px"}},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-item-tip"},'新用户注册时的昵称前缀系统会自动拼接6位随机数字如"用户123456"',-1))]),_:1}),t(c),e[12]||(e[12]=n("div",{class:"section-title"},"默认头像",-1)),t(d,{label:"默认头像"},{default:l(()=>[n("div",j,[t(z,{modelValue:a.formData.default_avatar,"onUpdate:modelValue":e[3]||(e[3]=i=>a.formData.default_avatar=i),placeholder:"点击上传默认头像","show-url-input":!1,tip:"上传图片作为所有新用户的默认头像,不上传则系统自动生成唯一头像"},null,8,["modelValue"])])]),_:1})]),_:1}),n("div",q,[t(g,{type:"primary",loading:a.saving,onClick:D},{default:l(()=>[...e[13]||(e[13]=[r("保存配置",-1)])]),_:1},8,["loading"]),t(g,{onClick:V},{default:l(()=>[...e[14]||(e[14]=[r("重置",-1)])]),_:1})])]),_:1})),[[w,a.loading]])])}}}),J=L(A,[["__scopeId","data-v-5ef730fd"]]);export{J as default};

View File

@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>学业邑规划 - 后台管理系统</title>
<script type="module" crossorigin src="/assets/index-cO0XwfvV.js"></script>
<script type="module" crossorigin src="/assets/index-CIT-S3uf.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DzyxRPPz.css">
</head>
<body>