【优化】继续优化其他页面在小屏幕下的表现(待完善表单部分)

dev
xuyuxiang 2025-09-17 17:03:05 +08:00
parent 870117f946
commit a47d5379bc
21 changed files with 342 additions and 225 deletions

View File

@ -1,7 +1,7 @@
<template>
<div class="xn-pb10">
<a-row :gutter="16">
<a-col :span="6">
<a-row :gutter="10">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card class="snowy-monitor-card" :bordered="false">
<template #cover>
<team-outlined style="color: #69c0ff" class="snowy-monitor-card-icon" />
@ -12,7 +12,7 @@
</template>
</a-card>
</a-col>
<a-col :span="6">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card class="snowy-monitor-card" :bordered="false">
<template #cover>
<verified-outlined class="snowy-monitor-card-icon xn-color-ff9c6e" />
@ -23,7 +23,7 @@
</template>
</a-card>
</a-col>
<a-col :span="6">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card class="snowy-monitor-card" :bordered="false">
<template #cover>
<rise-outlined class="snowy-monitor-card-icon xn-color-ff85c0" />
@ -34,7 +34,7 @@
</template>
</a-card>
</a-col>
<a-col :span="6">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card class="snowy-monitor-card" :bordered="false">
<template #cover>
<pie-chart-outlined class="snowy-monitor-card-icon xn-color-5cdbd3" />
@ -67,6 +67,7 @@
<style scoped>
.snowy-monitor-card {
height: 100px;
margin-bottom: 4px;
}
.snowy-monitor-card-icon {
font-size: 30px;

View File

@ -1,5 +1,5 @@
<template>
<s-table ref="tableRef" :columns="columns" :data="loadDataB" :alert="false" bordered :row-key="(record) => record.id">
<s-table ref="tableRef" :columns="columns" :data="loadDataB" :alert="false" bordered :row-key="(record) => record.id" :scroll="{ x: 'max-content' }">
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'avatar'">
<a-avatar :src="record.avatar" class="xn-wh25" />
@ -66,6 +66,7 @@
title: '操作',
dataIndex: 'action',
width: '150px',
fixed: 'right',
scopedSlots: { customRender: 'action' }
}
]

View File

@ -1,5 +1,5 @@
<template>
<s-table ref="tableRef" :columns="columns" :data="loadDataC" :alert="false" bordered :row-key="(record) => record.id">
<s-table ref="tableRef" :columns="columns" :data="loadDataC" :alert="false" bordered :row-key="(record) => record.id" :scroll="{ x: 'max-content' }">
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'avatar'">
<a-avatar :src="record.avatar" class="xn-wh25" />
@ -66,6 +66,7 @@
title: '操作',
dataIndex: 'action',
width: '150px',
fixed: 'right',
scopedSlots: { customRender: 'action' }
}
]

View File

@ -1,39 +1,53 @@
<template>
<a-card :bordered="false">
<a-form ref="searchFormRef" :model="searchFormState">
<a-row :gutter="24">
<a-col :span="6">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<a-form-item label="标题" name="title">
<a-input v-model:value="searchFormState.title" placeholder="请输入标题" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<a-form-item label="类型" name="type">
<a-select v-model:value="searchFormState.type" placeholder="请选择类型" :options="typeOptions" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="发布位置" name="place">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<a-form-item label="位置" name="place">
<a-select v-model:value="searchFormState.place" placeholder="请选择发布位置" :options="placeOptions" />
</a-form-item>
</a-col>
<a-col :span="6" v-show="advanced">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6" v-show="advanced">
<a-form-item label="状态" name="status">
<a-select v-model:value="searchFormState.status" placeholder="请选择状态" :options="statusOptions" />
</a-form-item>
</a-col>
<a-col :span="6" v-show="advanced">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6" v-show="advanced">
<a-form-item label="创建时间" name="createTime">
<a-range-picker v-model:value="searchFormState.createTime" value-format="YYYY-MM-DD HH:mm:ss" show-time />
</a-form-item>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="tableRef.refresh(true)"></a-button>
<a-button style="margin: 0 8px" @click="reset"></a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
{{ advanced ? '收起' : '展开' }}
<component :is="advanced ? 'up-outlined' : 'down-outlined'" />
</a>
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<a-form-item>
<a-space>
<a-button type="primary" @click="tableRef.refresh(true)">
<template #icon>
<SearchOutlined/>
</template>
查询
</a-button>
<a-button @click="reset">
<template #icon>
<redo-outlined/>
</template>
重置
</a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
{{ advanced ? '收起' : '展开' }}
<component :is="advanced ? 'up-outlined' : 'down-outlined'" />
</a>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
@ -46,6 +60,7 @@
:row-key="(record) => record.id"
:tool-config="toolConfig"
:row-selection="options.rowSelection"
:scroll="{ x: 'max-content' }"
>
<template #operator class="table-operator">
<a-space>
@ -171,6 +186,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '200px'
})
}

View File

@ -130,7 +130,7 @@
</a-col>
</a-row>
<div :key="positionInfo" v-for="(positionInfo, index) in formData.positionJson">
<a-row :gutter="10">
<a-row :gutter="16">
<a-col :span="7">
<a-form-item
:name="['positionJson', index, 'orgId']"

View File

@ -1,13 +1,13 @@
<template>
<a-card :bordered="false" :body-style="{ 'padding-bottom': '0px' }" class="mb-2">
<a-form ref="searchFormRef" :model="searchFormState">
<a-row :gutter="24">
<a-col :span="6">
<a-row :gutter="10">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="关键词" name="searchKey">
<a-input v-model:value="searchFormState.searchKey" placeholder="请输入关键词" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="分类" name="category">
<a-select
v-model:value="searchFormState.category"
@ -17,7 +17,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="状态" name="jobStatus">
<a-select
v-model:value="searchFormState.jobStatus"
@ -27,9 +27,23 @@
/>
</a-form-item>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="tableRef.refresh(true)"></a-button>
<a-button class="xn-mg08" @click="reset"></a-button>
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item>
<a-space>
<a-button type="primary" @click="tableRef.refresh(true)">
<template #icon>
<SearchOutlined/>
</template>
查询
</a-button>
<a-button @click="reset">
<template #icon>
<redo-outlined/>
</template>
重置
</a-button>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
@ -44,6 +58,7 @@
:row-key="(record) => record.id"
:tool-config="toolConfig"
:row-selection="options.rowSelection"
:scroll="{ x: 'max-content' }"
>
<template #operator class="table-operator">
<a-space>
@ -138,6 +153,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '220px'
}
]

View File

@ -1,43 +1,52 @@
<template>
<a-row :gutter="10" class="mb-2">
<a-col :span="16">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<a-card :bordered="false" title="周统计">
<columnChart />
</a-card>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<a-card :bordered="false" title="总比例">
<pieChart />
</a-card>
</a-col>
</a-row>
<a-card :bordered="false">
<s-table ref="tableRef" :columns="columns" :data="loadData" bordered :row-key="(record) => record.id">
<s-table ref="tableRef" :columns="columns" :data="loadData" bordered :row-key="(record) => record.id" :scroll="{ x: 'max-content' }">
<template #operator class="table-operator">
<a-form ref="formRef" :model="searchFormState">
<a-space>
<a-radio-group v-model:value="opLogType" button-style="solid">
<a-radio-button
v-for="opLog in opLogTypeList"
:key="opLog.value"
:value="opLog.value"
@click="opLogTypeClock(opLog.value)"
>
{{ opLog.label }}
</a-radio-button>
</a-radio-group>
<a-input-search
v-model:value="searchFormState.searchKey"
placeholder="请输入名称关键词"
enter-button
allowClear
@search="onSearch"
/>
<a-popconfirm title="确定清空操作与异常日志吗?" @confirm="deleteBatchOpLog()">
<a-button danger>清空</a-button>
</a-popconfirm>
</a-space>
<a-row :gutter="10">
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-radio-group v-model:value="opLogType" button-style="solid">
<a-radio-button
v-for="opLog in opLogTypeList"
:key="opLog.value"
:value="opLog.value"
@click="opLogTypeClock(opLog.value)"
>
{{ opLog.label }}
</a-radio-button>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-space>
<a-input-search
v-model:value="searchFormState.searchKey"
placeholder="请输入名称关键词"
enter-button
allowClear
@search="onSearch"
/>
<a-popconfirm title="确定清空操作与异常日志吗?" @confirm="deleteBatchOpLog()">
<a-button danger>清空</a-button>
</a-popconfirm>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
</template>
<template #bodyCell="{ column, record }">
@ -116,6 +125,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '100px'
}
]

View File

@ -1,11 +1,11 @@
<template>
<a-row :gutter="10" class="mb-2">
<a-col :span="16">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<a-card :bordered="false" title="周统计">
<lineChart ref="lineChartRef" />
</a-card>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
<a-card :bordered="false" title="总比例">
<pieChart ref="pieChartRef" />
</a-card>
@ -13,31 +13,40 @@
</a-row>
<a-card :bordered="false">
<s-table ref="tableRef" :columns="columns" :data="loadData" bordered :row-key="(record) => record.id">
<s-table ref="tableRef" :columns="columns" :data="loadData" bordered :row-key="(record) => record.id" :scroll="{ x: 'max-content' }">
<template #operator class="table-operator">
<a-form ref="formRef" :model="searchFormState">
<a-space>
<a-radio-group v-model:value="visLogType" button-style="solid">
<a-radio-button
v-for="visLog in visLogTypeList"
:key="visLog.value"
:value="visLog.value"
@click="visLogTypeClock(visLog.value)"
>
{{ visLog.label }}
</a-radio-button>
</a-radio-group>
<a-input-search
v-model:value="searchFormState.searchKey"
placeholder="请输入名称关键词"
enter-button
allowClear
@search="onSearch"
/>
<a-popconfirm title="确定清空登录登出日志吗?" @confirm="deleteBatchVisLog()">
<a-button danger>清空</a-button>
</a-popconfirm>
</a-space>
<a-row :gutter="10">
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-radio-group v-model:value="visLogType" button-style="solid">
<a-radio-button
v-for="visLog in visLogTypeList"
:key="visLog.value"
:value="visLog.value"
@click="visLogTypeClock(visLog.value)"
>
{{ visLog.label }}
</a-radio-button>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-space>
<a-input-search
v-model:value="searchFormState.searchKey"
placeholder="请输入名称关键词"
enter-button
allowClear
@search="onSearch"/>
<a-popconfirm title="确定清空登录登出日志吗?" @confirm="deleteBatchVisLog()">
<a-button danger>清空</a-button>
</a-popconfirm>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
</template>
<template #bodyCell="{ column, record }">
@ -109,6 +118,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '100px'
}
]

View File

@ -1,8 +1,8 @@
<template>
<a-spin :spinning="spinning">
<a-row :gutter="[10, 10]" class="mb-2">
<a-col :span="6">
<a-card title="CPU监控" :bordered="false" class="monitor-center-row-col-card">
<a-row :gutter="10">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card title="CPU监控" :bordered="false" class="monitor-center-row-col-card mb-2">
<a-tooltip>
<template #title>
<div>CPU系统使用率{{ devMonitorCpuInfo.cpuSysUseRate }}</div>
@ -20,8 +20,8 @@
<div>CPU当前总使用率</div>
</a-card>
</a-col>
<a-col :span="6">
<a-card title="内存信息" :bordered="false" class="monitor-center-row-col-card">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card title="内存信息" :bordered="false" class="monitor-center-row-col-card mb-2">
<a-tooltip>
<template #title>
<div>内存总量{{ devMonitorMemoryInfo.memoryTotal }}</div>
@ -38,8 +38,8 @@
<div>内存使用率</div>
</a-card>
</a-col>
<a-col :span="6">
<a-card title="存储信息" :bordered="false" class="monitor-center-row-col-card">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card title="存储信息" :bordered="false" class="monitor-center-row-col-card mb-2">
<a-tooltip>
<template #title>
<div>存储总量{{ devMonitorStorageInfo.storageTotal }}</div>
@ -56,8 +56,8 @@
<div>存储使用率</div>
</a-card>
</a-col>
<a-col :span="6">
<a-card title="网络信息" :bordered="false" class="monitor-center-row-col-card">
<a-col :xs="12" :sm="12" :md="6" :lg="6" :xl="6">
<a-card title="网络信息" :bordered="false" class="monitor-center-row-col-card mb-2">
<template #extra>
<a-button title="测速" :loading="networkSpinning" @click="getMonitorNetworkInfo">
<template #icon><UiwDashboard /></template>
@ -97,9 +97,8 @@
<a-descriptions-item label="CPU逻辑核心数">{{ devMonitorCpuInfo.cpuLogicalCoreNum }}</a-descriptions-item>
</a-descriptions>
</a-card>
<a-row :gutter="10" class="mb-2">
<a-col :span="18">
<a-col :xs="24" :sm="24" :md="18" :lg="18" :xl="18">
<a-card title="JVM信息" :bordered="false">
<a-descriptions size="middle" :column="2" bordered>
<a-descriptions-item label="JVM名称">{{ devMonitorJvmInfo.jvmName }}</a-descriptions-item>
@ -111,7 +110,7 @@
</a-descriptions>
</a-card>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
<a-card title="JVM监控" :bordered="false" class="monitor-center-row-col-card">
<a-tooltip>
<template #title>
@ -130,7 +129,6 @@
</a-card>
</a-col>
</a-row>
<a-card title="服务器信息" :bordered="false" class="mb-2">
<a-descriptions size="middle" :column="2" bordered>
<a-descriptions-item label="服务器名称">{{ devMonitorServerInfo.serverName }}</a-descriptions-item>

View File

@ -8,7 +8,7 @@
>
<a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
<a-row :gutter="16">
<a-col :span="18">
<a-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
<a-form-item label="标题:" name="title">
<a-input v-model:value="formData.title" placeholder="请输入标题" allow-clear />
</a-form-item>
@ -16,17 +16,17 @@
<a-input v-model:value="formData.sortCode" placeholder="请输入排序" allow-clear />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6">
<a-form-item label="图片:" name="image">
<xn-upload v-model:value="formData.image" uploadMode="image" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<a-form-item label="展示位置:" name="place">
<a-checkbox-group v-model:value="formData.place" placeholder="请选择展示位置" :options="placeOptions" />
</a-form-item>
</a-col>
<a-col :span="24">
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<sub-form ref="sumFormRef" :data-array="formData.pathDetails" :place="formData.place" />
</a-col>
</a-row>

View File

@ -1,25 +1,39 @@
<template>
<a-card :bordered="false">
<a-form ref="searchFormRef" :model="searchFormState">
<a-row :gutter="24">
<a-col :span="6">
<a-row :gutter="10">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="标题" name="title">
<a-input v-model:value="searchFormState.title" placeholder="请输入标题" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="展示位置" name="place">
<a-select v-model:value="searchFormState.place" placeholder="请选择展示位置" :options="placeOptions" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item label="状态" name="status">
<a-select v-model:value="searchFormState.status" placeholder="请选择状态" :options="statusOptions" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="tableRef.refresh(true)"></a-button>
<a-button style="margin: 0 8px" @click="reset"></a-button>
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
<a-form-item>
<a-space>
<a-button type="primary" @click="tableRef.refresh(true)">
<template #icon>
<SearchOutlined/>
</template>
查询
</a-button>
<a-button @click="reset">
<template #icon>
<redo-outlined/>
</template>
重置
</a-button>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
@ -32,6 +46,7 @@
:row-key="(record) => record.id"
:tool-config="toolConfig"
:row-selection="options.rowSelection"
:scroll="{ x: 'max-content' }"
>
<template #expandColumnTitle>
<span>更多</span>
@ -42,6 +57,7 @@
:dataSource="JSON.parse(record.pathDetails)"
:columns="detailsColumns"
:pagination="false"
:scroll="{ x: 'max-content' }"
bordered
>
<template #bodyCell="{ column, record }">
@ -143,6 +159,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '150px'
}
]

View File

@ -2,6 +2,11 @@
<a-form :model="formData" ref="formRef" name="basic" autocomplete="off">
<a-table :columns="columns" :dataSource="formData" size="middle">
<template #bodyCell="{ text, record, index, column }">
<template v-if="column.dataIndex === 'label'">
<a-form-item :validate-status="validateStatus(record, 'whetherToClick')">
{{record.label}}
</a-form-item>
</template>
<template v-if="column.dataIndex === 'whetherToClick'">
<a-form-item :validate-status="validateStatus(record, 'whetherToClick')">
<a-radio-group
@ -164,7 +169,5 @@
})
</script>
<style lang="less" scoped>
.ant-form-item {
margin-bottom: 0 !important;
}
</style>

View File

@ -1,13 +1,21 @@
<template>
<a-card :bordered="false" title="图标选择">
<a-input-group compact style="width: 30%">
<a-input v-model:value="iconValue" style="width: calc(100% - 100px)" placeholder="请选择图标" />
<a-button type="primary" @click="openIcon(iconValue)"></a-button>
</a-input-group>
<icon-selector ref="iconselectorRef" @iconCallBack="iconCallBack" />
<a-form
layout="vertical"
:label-col="{ ...layout.labelCol, offset: 0 }"
:wrapper-col="{ ...layout.wrapperCol, offset: 0 }"
>
<a-row :gutter="8">
<a-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
<a-input-group compact>
<a-input v-model:value="iconValue" style="width: calc(100% - 100px)" placeholder="请选择图标" />
<a-button type="primary" @click="openIcon(iconValue)"></a-button>
</a-input-group>
<icon-selector ref="iconselectorRef" @iconCallBack="iconCallBack" />
</a-col>
</a-row>
</a-form>
</a-card>
<a-card :bordered="false" title="图标展示" class="mt-3">
<a-tabs v-model:activeKey="activeKey" tab-position="left" size="small" @change="paneChange">
<a-tab-pane v-for="item in iconData" :key="item.key" :tab="item.name">
@ -70,6 +78,14 @@
const selectIcon = (value) => {
message.success('<' + value + ' />')
}
const layout = {
labelCol: {
span: 24
},
wrapperCol: {
span: 24
}
}
</script>
<style lang="less" scoped>

View File

@ -2,7 +2,7 @@
<a-card :bordered="false">
<a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
<a-row :gutter="16">
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="选择主表或表名称搜索:" name="dbTable">
<a-select
v-model:value="formData.dbTable"
@ -14,7 +14,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="选择主键:" name="dbTableKey">
<a-select
v-model:value="formData.dbTableKey"
@ -24,7 +24,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="表前缀移除:" name="tablePrefix">
<a-radio-group
v-model:value="formData.tablePrefix"
@ -33,7 +33,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="generateType">
<template #label>
<a-tooltip>
@ -45,7 +45,7 @@
<a-radio-group v-model:value="formData.generateType" :options="generateTypeOptions" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="所属模块:" name="module">
<a-select
v-model:value="formData.module"
@ -56,7 +56,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="上级目录:" name="menuPid">
<a-tree-select
v-model:value="formData.menuPid"
@ -76,7 +76,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="移动端所属模块:" name="mobileModule">
<a-select
v-model:value="formData.mobileModule"
@ -87,7 +87,7 @@
/>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="pluginName">
<template #label>
<a-tooltip>
@ -101,12 +101,12 @@
<a-input v-model:value="formData.pluginName" placeholder="请输入插件名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="包名:" name="packageName">
<a-input v-model:value="formData.packageName" placeholder="请输入包名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="moduleName">
<template #label>
<a-tooltip>
@ -118,12 +118,12 @@
<a-input v-model:value="formData.moduleName" placeholder="请输入模块名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="功能名:" name="functionName">
<a-input v-model:value="formData.functionName" placeholder="请输入功能名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="busName">
<template #label>
<a-tooltip>
@ -135,17 +135,17 @@
<a-input v-model:value="formData.busName" placeholder="请输入业务名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="类名:" name="className">
<a-input v-model:value="formData.className" placeholder="请输入类名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="作者:" name="authorName">
<a-input v-model:value="formData.authorName" placeholder="请输入作者名" allow-clear />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="formLayout">
<template #label>
<a-tooltip>
@ -157,7 +157,7 @@
<a-radio-group v-model:value="formData.formLayout" :options="formLayoutOptions" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item name="gridWhether">
<template #label>
<a-tooltip>
@ -169,7 +169,7 @@
<a-radio-group v-model:value="formData.gridWhether" :options="gridWhetherOptions" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item label="排序:" name="sortCode">
<a-input-number class="xn-wd" v-model:value="formData.sortCode" :max="100" />
</a-form-item>

View File

@ -6,6 +6,7 @@
:data="loadDate"
:expand-row-by-click="true"
:showPagination="false"
:scroll="{ x: 'max-content' }"
bordered
>
<template #headerCell="{ title, column }">

View File

@ -10,6 +10,7 @@
:row-key="(record) => record.id"
:row-selection="options.rowSelection"
:toolConfig="{ refresh: true, height: true, columnSetting: true, striped: false }"
:scroll="{ x: 'max-content' }"
>
<template #operator class="table-operator">
<a-space>
@ -105,6 +106,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '220px'
}
]

View File

@ -1,48 +1,62 @@
<template>
<div>
<a-card class="steps-card" :bordered="false">
<a-row class="xn-row">
<a-col :span="6"></a-col>
<a-col :span="12">
<a-steps :current="current">
<a-step v-for="item in steps" :key="item.title" :title="item.title" />
</a-steps>
</a-col>
<a-col :span="6">
<div class="xn-fdr">
<a-button :disabled="current === 0" class="xn-ml8" @click="prev"> </a-button>
<a-button :disabled="current === 2" type="primary" class="xn-ml8" @click="next"> </a-button>
<a-button type="primary" danger ghost class="xn-ml8" @click="emit('closed')"> </a-button>
</div>
</a-col>
</a-row>
</a-card>
<a-card :bordered="false" class="mb-2">
<a-row :gutter="10">
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<a-steps :current="current">
<a-step v-for="item in steps" :key="item.title" :title="item.title" />
</a-steps>
</a-col>
<a-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8" :offset="4">
<a-space>
<a-form>
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item>
<a-button :disabled="current === 0" @click="prev"> </a-button>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item>
<a-button :disabled="current === 2" type="primary" @click="next"> &nbsp;&nbsp;&nbsp;&nbsp; </a-button>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="24" :md="8" :lg="8" :xl="8">
<a-form-item>
<a-button type="primary" danger ghost @click="emit('closed')"> &nbsp;&nbsp;&nbsp;&nbsp; </a-button>
</a-form-item>
</a-col>
</a-row>
</a-form>
<div v-if="current === 0">
<basic ref="basicRef" />
</div>
<div v-if="current === 1">
<config ref="configRef" />
</div>
<div v-if="current === 2">
<a-card>
<a-result status="success" title="操作成功" sub-title="">
<template #extra>
<a-space size="middle">
<a-button v-if="current > 0" class="xn-ml8" @click="genPreviewRef.onOpen(recordData)"></a-button>
<a-button
v-if="current === steps.length - 1"
type="primary"
:loading="submitLoading"
@click="seveGenerate"
>生成并关闭</a-button
>
</a-space>
</template>
</a-result>
</a-card>
<genPreview ref="genPreviewRef" />
</div>
</a-space>
</a-col>
</a-row>
</a-card>
<div v-if="current === 0">
<basic ref="basicRef" />
</div>
<div v-if="current === 1">
<config ref="configRef" />
</div>
<div v-if="current === 2">
<a-card>
<a-result status="success" title="操作成功" sub-title="">
<template #extra>
<a-space size="middle">
<a-button v-if="current > 0" @click="genPreviewRef.onOpen(recordData)"></a-button>
<a-button
v-if="current === steps.length - 1"
type="primary"
:loading="submitLoading"
@click="seveGenerate"
>生成并关闭</a-button
>
</a-space>
</template>
</a-result>
</a-card>
<genPreview ref="genPreviewRef" />
</div>
</template>
<script setup name="genSteps">
@ -146,18 +160,5 @@
})
</script>
<style scoped>
.steps-card {
margin-top: -12px;
margin-left: -12px;
margin-right: -12px;
margin-bottom: 10px;
padding-top: -10px;
}
.xn-row {
margin-bottom: -10px;
margin-top: -10px;
}
.xn-ml8 {
margin-left: 8px;
}
</style>

View File

@ -1,29 +1,35 @@
<template>
<a-card :bordered="false" :body-style="{ 'padding-bottom': '0px' }" class="mb-2">
<a-card :bordered="false">
<a-form ref="searchFormRef" :model="searchFormState">
<a-space style="align-items: normal">
<a-radio-group v-model:value="module" button-style="solid">
<a-radio-button
v-for="module in moduleList"
:key="module.id"
:value="module.id"
@click="moduleClock(module.id)"
>
<component :is="module.icon" />
{{ module.title }}</a-radio-button
>
</a-radio-group>
<a-form-item name="searchKey">
<a-space>
<a-input v-model:value="searchFormState.searchKey" placeholder="请输入模块名称关键词"></a-input>
<a-button type="primary" @click="tableRef.refresh(true)"></a-button>
<a-button class="xn-mg08" @click="reset"></a-button>
</a-space>
</a-form-item>
</a-space>
<a-row :gutter="10">
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-radio-group v-model:value="module" button-style="solid">
<a-radio-button v-for="module in moduleList"
:key="module.id"
:value="module.id"
@click="moduleClick(module.id)">
<component :is="module.icon" />
{{ module.title }}
</a-radio-button>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">
<a-form-item>
<a-input-search
v-model:value="searchFormState.searchKey"
placeholder="请输入菜单名称关键词"
enter-button
allowClear
@search="tableRef.refresh(true)"
/>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-card>
<a-card :bordered="false">
<a-card :bordered="false" class="mt-2">
<s-table
ref="tableRef"
:columns="columns"
@ -34,6 +40,7 @@
:tool-config="toolConfig"
:show-pagination="false"
:row-selection="options.rowSelection"
:scroll="{ x: 'max-content' }"
>
<template #operator class="table-operator">
<a-space>
@ -148,6 +155,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: 200
}
]
@ -194,7 +202,7 @@
tableRef.value.refresh(true)
}
//
const moduleClock = (value) => {
const moduleClick = (value) => {
searchFormState.value.module = value
tableRef.value.refresh(true)
}

View File

@ -1,15 +1,29 @@
<template>
<a-card :bordered="false" :body-style="{ 'padding-bottom': '0px' }" class="mb-2">
<a-form ref="searchFormRef" :model="searchFormState">
<a-row :gutter="24">
<a-col :span="8">
<a-form-item label="名称关键词" name="searchKey">
<a-input v-model:value="searchFormState.searchKey" placeholder="请输入模块名称关键词"></a-input>
<a-row :gutter="10">
<a-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">
<a-form-item label="关键词" name="searchKey">
<a-input v-model:value="searchFormState.searchKey" placeholder="请输入模块名称关键词" />
</a-form-item>
</a-col>
<a-col :span="8">
<a-button type="primary" @click="tableRef.refresh(true)"></a-button>
<a-button class="xn-mg08" @click="reset"></a-button>
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
<a-space>
<a-button type="primary" @click="tableRef.refresh(true)">
<template #icon>
<SearchOutlined/>
</template>
查询
</a-button>
<a-button @click="reset">
<template #icon>
<redo-outlined/>
</template>
重置
</a-button>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
@ -24,6 +38,7 @@
:row-key="(record) => record.id"
:tool-config="toolConfig"
:row-selection="options.rowSelection"
:scroll="{ x: 'max-content' }"
>
<template #operator class="table-operator">
<a-space>
@ -71,7 +86,7 @@
const searchFormRef = ref()
const formRef = ref()
const tableRef = ref()
const toolConfig = { refresh: true, height: true, columnSetting: false, striped: true }
const toolConfig = { refresh: true, height: true, columnSetting: false, striped: false }
const columns = [
{
title: '显示名称',
@ -95,6 +110,7 @@
title: '操作',
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '200px'
}
]

View File

@ -1,6 +1,6 @@
<template>
<a-card :bordered="false">
<a-form>
<a-form ref="searchFormRef" :model="searchFormState">
<a-row :gutter="10">
<a-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<a-form-item>
@ -8,7 +8,7 @@
<a-radio-button v-for="module in moduleTypeList"
:key="module.id"
:value="module.id"
@click="moduleClock(module.id)">
@click="moduleClick(module.id)">
<component :is="module.icon" />
{{ module.title }}
</a-radio-button>
@ -232,7 +232,7 @@
}
}
//
const moduleClock = (value) => {
const moduleClick = (value) => {
searchFormState.value.module = value
tableRef.value.refresh(true)
}

View File

@ -130,7 +130,7 @@
</a-col>
</a-row>
<div :key="positionInfo" v-for="(positionInfo, index) in formData.positionJson">
<a-row :gutter="10">
<a-row :gutter="16">
<a-col :span="7">
<a-form-item
:name="['positionJson', index, 'orgId']"