优化代码生成模板

This commit is contained in:
izory
2021-09-13 18:38:54 +08:00
parent baec8f0a91
commit e3d9b8103b
11 changed files with 355 additions and 247 deletions

View File

@@ -480,3 +480,17 @@ aside {
position: relative;
float: right;
}
.icon {
width: 100px;
}
// 上传文件按钮样式
.uploader-icon {
width: 50px;
height: 50px;
line-height: 50px;
border: 1px dashed #ccc;
margin-bottom: 10px;
}
.table-td-thumb {
width: 80px;
}

View File

@@ -44,7 +44,7 @@ export const constantRoutes = [
},
{
path: '/demo',
component: (resolve) => require(['@/views/gendemo/index'], resolve),
component: (resolve) => require(['@/views/userInfo/index'], resolve),
hidden: true
},
{

View File

@@ -87,35 +87,41 @@
<!-- 添加或修改菜单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户Id" prop="userId">
<el-input v-model.number="form.userId" placeholder="" :disabled="form.userId > 0" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户昵称" prop="name">
<el-input v-model="form.name" placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="顺序" prop="sortId">
<el-input-number v-model="form.sortId" controls-position="right" :min="0" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{dict.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="content">
<el-input v-model="form.content" :rows="2" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="主键" prop="userId">
<el-input v-model.number="form.userId" placeholder="" :disabled="form.userId > 0" />
</el-form-item>
<el-form-item label="单行文本" prop="name">
<el-input v-model="form.name" placeholder="" />
</el-form-item>
<el-form-item label="number" prop="sortId">
<el-input-number v-model="form.sortId" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="单选按钮" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{dict.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="photo" :label-width="labelWidth" prop="photo">
<el-upload class="avatar-uploader" action="/api/upload/saveFile/" :show-file-list="false" :on-success="handleFileSuccess" :before-upload="beforeFileUpload">
<img v-if="form.photo" :src="form.photo" class="icon">
<i v-else class="el-icon-plus uploader-icon"></i>
</el-upload>
<el-input v-model="form.photo"></el-input>
</el-form-item>
<el-form-item label="时间控件" :label-width="labelWidth" prop="lastLoginTime">
<el-date-picker v-model="form.lastLoginTime" type="datetime" placeholder="选择日期时间" default-time="12:00:00"> </el-date-picker>
</el-form-item>
<el-form-item label="多行文本" prop="content">
<el-input v-model="form.content" :rows="2" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" v-if="btnSubmitVisible">
<el-button type="primary" @click="submitForm"> </el-button>
@@ -132,7 +138,7 @@ export default {
name: "demo",
data() {
return {
labelWidth: "70px",
labelWidth: "100px",
// 遮罩层
loading: true,
// 显示搜索条件

View File

@@ -1,44 +1,42 @@
<template>
<div class="app-container">
<el-card>
<div>
<el-form ref="codeform" :inline="true" :rules="rules" :model="codeform" size="small">
<el-form-item label="数据库" prop="dbName">
<el-select v-model="codeform.dbName" clearable placeholder="请选择" @change="handleShowTable">
<el-option v-for="item in selectedDataBase" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="表名">
<el-input v-model="codeform.tableName" clearable placeholder="输入要查询的表名" />
</el-form-item>
<!-- <el-form-item label="项目命名空间:" prop="baseSpace">
<el-form ref="codeform" :inline="true" :rules="rules" :model="codeform" size="small">
<el-form-item label="数据库" prop="dbName">
<el-select v-model="codeform.dbName" clearable placeholder="请选择" @change="handleShowTable">
<el-option v-for="item in selectedDataBase" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="表名">
<el-input v-model="codeform.tableName" clearable placeholder="输入要查询的表名" />
</el-form-item>
<!-- <el-form-item label="项目命名空间:" prop="baseSpace">
<el-tooltip class="item" effect="dark" content="系统会根据项目命名空间自动生成IService、Service、Models等子命名空间" placement="bottom">
<el-input v-model="codeform.baseSpace" clearable placeholder="如Zr" />
</el-tooltip>
</el-form-item> -->
<el-form-item label="去掉表名前缀:">
<el-tooltip class="item" effect="dark" content="表名直接变为类名,去掉表名前缀。" placement="bottom">
<el-input v-model="codeform.replaceTableNameStr" clearable width="300" placeholder="例如sys_" />
</el-tooltip>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch()">查询</el-button>
<el-button type="default" icon="el-icon-refresh" size="small" @click="loadTableData()">刷新</el-button>
</el-form-item>
</el-form>
</div>
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row height="500px" style="width: 100%;">
<el-table-column prop="name" label="表名" sortable="custom" width="380" />
<el-table-column prop="description" label="表描述" />
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-view" @click="handlePreview()">预览</el-button>
<el-button type="text" icon="el-icon-download" @click="handleShowDialog(scope.row)" v-hasPermi="['tool:gen:code']">生成代码</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination background :current-page="pagination.pageNum" :page-sizes="[5,10,20,50,100, 200, 300, 400]" :page-size="pagination.pagesize" layout="total, sizes, prev, pager, next, jumper" :total="pagination.pageTotal" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
</el-card>
<el-form-item label="去掉表名前缀:">
<el-tooltip class="item" effect="dark" content="表名直接变为类名,去掉表名前缀。" placement="bottom">
<el-input v-model="codeform.replaceTableNameStr" clearable width="300" placeholder="例如sys_" />
</el-tooltip>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch()">查询</el-button>
<el-button type="default" icon="el-icon-refresh" size="small" @click="loadTableData()">刷新</el-button>
</el-form-item>
</el-form>
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row height="500px" style="width: 100%;">
<el-table-column prop="name" label="表名" sortable="custom" width="380" />
<el-table-column prop="description" label="表描述" />
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-view" @click="handlePreview()">预览</el-button>
<el-button type="text" icon="el-icon-download" @click="handleShowDialog(scope.row)" v-hasPermi="['tool:gen:code']">生成代码</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination background :current-page="pagination.pageNum" :page-sizes="[5,10,20,50,100, 200, 300, 400]" :page-size="pagination.pagesize" layout="total, sizes, prev, pager, next, jumper" :total="pagination.pageTotal" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
<el-dialog :visible.sync="showGenerate" title="代码生成" width="800px">
<el-form ref="codeGenerateForm" label-width="140px">