完成代码生成功能

This commit is contained in:
izory 2021-09-10 10:44:17 +08:00
parent 2172b9ddc6
commit 8903aff642
11 changed files with 105 additions and 186 deletions

View File

@ -1,20 +1,15 @@
using Infrastructure; using Infrastructure;
using Infrastructure.Attribute; using Infrastructure.Attribute;
using Infrastructure.Enums; using Infrastructure.Enums;
using Infrastructure.Model;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using SqlSugar; using SqlSugar;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using ZR.Admin.WebApi.Filters;
using System.Threading.Tasks;
using ZR.CodeGenerator; using ZR.CodeGenerator;
using ZR.CodeGenerator.Model; using ZR.CodeGenerator.Model;
using ZR.CodeGenerator.Service; using ZR.CodeGenerator.Service;
using ZR.Model; using ZR.Model;
using ZR.Model.Vo; using ZR.Model.Vo;
using ZR.Service.IService;
using ZR.Service.System;
namespace ZR.Admin.WebApi.Controllers namespace ZR.Admin.WebApi.Controllers
{ {
@ -24,11 +19,6 @@ namespace ZR.Admin.WebApi.Controllers
[Route("tool/gen")] [Route("tool/gen")]
public class CodeGeneratorController : BaseController public class CodeGeneratorController : BaseController
{ {
//public ICodeGeneratorService CodeGeneratorService;
//public CodeGeneratorController(ICodeGeneratorService codeGeneratorService)
//{
// CodeGeneratorService = codeGeneratorService;
//}
private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService(); private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService();
/// <summary> /// <summary>
@ -36,7 +26,7 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet("getDbList")] [HttpGet("getDbList")]
//[YuebonAuthorize("GetListDataBase")] [ActionPermissionFilter(Permission = "tool:gen:list")]
public IActionResult GetListDataBase() public IActionResult GetListDataBase()
{ {
var dbList = _CodeGeneraterService.GetAllDataBases(); var dbList = _CodeGeneraterService.GetAllDataBases();
@ -51,7 +41,8 @@ namespace ZR.Admin.WebApi.Controllers
/// <param name="tableName">表名</param> /// <param name="tableName">表名</param>
/// <param name="pager">分页信息</param> /// <param name="pager">分页信息</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("FindListTable")] [HttpGet("getTableList")]
[ActionPermissionFilter(Permission = "tool:gen:list")]
public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager) public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager)
{ {
List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager); List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager);
@ -66,7 +57,8 @@ namespace ZR.Admin.WebApi.Controllers
/// <param name="dbName"></param> /// <param name="dbName"></param>
/// <param name="tableName"></param> /// <param name="tableName"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("QueryColumnInfo")] [HttpGet("getColumnInfo")]
[ActionPermissionFilter(Permission = "tool:gen:list")]
public IActionResult QueryColumnInfo(string dbName, string tableName) public IActionResult QueryColumnInfo(string dbName, string tableName)
{ {
if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(tableName)) if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(tableName))
@ -80,18 +72,19 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary> /// </summary>
/// <param name="dto">数据传输对象</param> /// <param name="dto">数据传输对象</param>
/// <returns></returns> /// <returns></returns>
[HttpGet("Generate")] [HttpPost("genCode")]
[Log(Title = "代码生成", BusinessType = BusinessType.OTHER)] [Log(Title = "代码生成", BusinessType = BusinessType.GENCODE)]
public IActionResult Generate([FromQuery] GenerateDto dto) [ActionPermissionFilter(Permission = "tool:gen:code")]
public IActionResult Generate([FromBody] GenerateDto dto)
{ {
if (string.IsNullOrEmpty(dto.tables)) if (string.IsNullOrEmpty(dto.tableName))
{ {
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空"); throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
} }
DbTableInfo dbTableInfo = new() { Name = dto.tables }; DbTableInfo dbTableInfo = new() { Name = dto.tableName };
CodeGeneratorTool.Generate(dbTableInfo, dto); CodeGeneratorTool.Generate(dbTableInfo, dto);
return SUCCESS(1); return SUCCESS(dbTableInfo);
} }
} }
} }

View File

@ -54,7 +54,7 @@ namespace ZR.Admin.WebApi.Filters
bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false); bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false);
//演示公开环境屏蔽权限 //演示公开环境屏蔽权限
string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear" }; string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear", "gen" };
if (isDemoMode && (denyPerms.Any(f => Permission.ToLower().Contains(f.ToLower())) || Permission.Equals("system"))) if (isDemoMode && (denyPerms.Any(f => Permission.ToLower().Contains(f.ToLower())) || Permission.Equals("system")))
{ {
context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" }); context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" });

View File

@ -64,7 +64,7 @@ namespace ZR.CodeGenerator
public static void GenerateSingle(List<DbColumnInfo> listField, DbTableInfo tableInfo, GenerateDto dto) public static void GenerateSingle(List<DbColumnInfo> listField, DbTableInfo tableInfo, GenerateDto dto)
{ {
bool ifExsitedCovered = dto.coverd; bool ifExsitedCovered = dto.coverd;
var modelTypeName = GetModelName(tableInfo.Name).Replace(_option.ReplaceTableNameStr, "");//表名 var modelTypeName = GetModelName(tableInfo.Name);
var modelTypeDesc = tableInfo.Description;//表描述 var modelTypeDesc = tableInfo.Description;//表描述
var primaryKey = "id";//主键 var primaryKey = "id";//主键
@ -107,7 +107,7 @@ namespace ZR.CodeGenerator
} }
if (dto.genFiles.Contains(1)) if (dto.genFiles.Contains(1))
{ {
GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered); //GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered);
} }
if (dto.genFiles.Contains(2)) if (dto.genFiles.Contains(2))
{ {
@ -478,16 +478,14 @@ namespace ZR.CodeGenerator
/// <param name="ifExsitedCovered">如果目标文件存在是否覆盖。默认为false</param> /// <param name="ifExsitedCovered">如果目标文件存在是否覆盖。默认为false</param>
private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false) private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false)
{ {
var servicesNamespace = _option.DtosNamespace; var parentPath = "..\\CodeGenerate";//若要生成到项目中将路径改成 “..\\ZR.Vue\\src”
var path = "..\\CodeGenerate\\"; var servicesPath = parentPath + "\\views\\" + FirstLowerCase(modelTypeName);
var parentPath = path.Substring(0, path.LastIndexOf("\\"));
var servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\" + servicesNamespace;
if (!Directory.Exists(servicesPath)) if (!Directory.Exists(servicesPath))
{ {
servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\views\\" + FirstLowerCase(modelTypeName);
Directory.CreateDirectory(servicesPath); Directory.CreateDirectory(servicesPath);
} }
var fullPath = servicesPath + "\\" + "index.vue"; var fullPath = servicesPath + "\\" + "index.vue";
Console.WriteLine(fullPath);
if (File.Exists(fullPath) && !ifExsitedCovered) if (File.Exists(fullPath) && !ifExsitedCovered)
return; return;
var content = ReadTemplate("VueTemplate.txt"); var content = ReadTemplate("VueTemplate.txt");
@ -505,7 +503,11 @@ namespace ZR.CodeGenerator
.Replace("{VueViewEditFromRuleContent}", vueViewEditFromRuleContent); .Replace("{VueViewEditFromRuleContent}", vueViewEditFromRuleContent);
WriteAndSave(fullPath, content); WriteAndSave(fullPath, content);
//api js
servicesPath = parentPath + "\\api\\";
Directory.CreateDirectory(servicesPath);
fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js"; fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js";
Console.WriteLine(fullPath);
if (File.Exists(fullPath) && !ifExsitedCovered) if (File.Exists(fullPath) && !ifExsitedCovered)
return; return;
content = ReadTemplate("VueJsTemplate.txt"); content = ReadTemplate("VueJsTemplate.txt");

View File

@ -8,7 +8,7 @@ namespace ZR.CodeGenerator.Model
{ {
public class GenerateDto public class GenerateDto
{ {
public string queryColumn { get; set; } public string[] queryColumn { get; set; }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@ -20,7 +20,7 @@ namespace ZR.CodeGenerator.Model
/// <summary> /// <summary>
/// 要生成代码的表 /// 要生成代码的表
/// </summary> /// </summary>
public string tables { get; set; } public string tableName { get; set; }
/// <summary> /// <summary>
/// 要删除表名的字符串用 /// 要删除表名的字符串用
/// </summary> /// </summary>

View File

@ -1,12 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit"> <meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title> <title>
<%= webpackConfig.name %>
</title>
<style> <style>
html, html,
body, body,
@ -15,6 +18,7 @@
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
} }
.chromeframe { .chromeframe {
margin: 0.2em 0; margin: 0.2em 0;
background: #ccc; background: #ccc;
@ -91,6 +95,7 @@
-ms-transform: rotate(0deg); -ms-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
-webkit-transform: rotate(360deg); -webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg); -ms-transform: rotate(360deg);
@ -104,6 +109,7 @@
-ms-transform: rotate(0deg); -ms-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
-webkit-transform: rotate(360deg); -webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg); -ms-transform: rotate(360deg);
@ -193,15 +199,17 @@
opacity: 0.5; opacity: 0.5;
} }
</style> </style>
</head> </head>
<body>
<body>
<div id="app"> <div id="app">
<div id="loader-wrapper"> <div id="loader-wrapper">
<div id="loader"></div> <div id="loader"></div>
<div class="loader-section section-left"></div> <div class="loader-section section-left"></div>
<div class="loader-section section-right"></div> <div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div> <div class="load_title">Loading...</div>
</div> </div>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,92 +1,23 @@
import request from '@/utils/request' import request from '@/utils/request'
// 查询生成表数据
export function listTable(query) {
return request({
url: '/tool/gen/list',
method: 'get',
params: query
})
}
// 查询db数据库列表
export function listDbTable(query) {
return request({
url: '/tool/gen/db/list',
method: 'get',
params: query
})
}
// 查询表详细信息
export function getGenTable(tableId) {
return request({
url: '/tool/gen/' + tableId,
method: 'get'
})
}
// 修改代码生成信息
export function updateGenTable(data) {
return request({
url: '/tool/gen',
method: 'put',
data: data
})
}
// 导入表
export function importTable(data) {
return request({
url: '/tool/gen/importTable',
method: 'post',
params: data
})
}
// 预览生成代码 // 预览生成代码
export function previewTable(tableId) { // export function previewTable(tableId) {
return request({ // return request({
url: '/tool/gen/preview/' + tableId, // url: '/tool/gen/preview/' + tableId,
method: 'get' // method: 'get'
}) // })
} // }
// 删除表数据
export function delTable(tableId) {
return request({
url: '/tool/gen/' + tableId,
method: 'delete'
})
}
// 生成代码(自定义路径)
export function genCode(tableName) {
return request({
url: '/tool/gen/genCode/' + tableName,
method: 'get'
})
}
// 同步数据库
export function synchDb(tableName) {
return request({
url: 'tool/gen/synchDb/' + tableName,
method: 'get'
})
}
/**新的代码生成 */
/** /**
* 创建数据库连接 * 创建数据库连接
*/ */
export function createGetDBConn(data) { // export function createGetDBConn(data) {
return request({ // return request({
url: 'tool/gen/CreateDBConn', // url: 'tool/gen/CreateDBConn',
method: 'post', // method: 'post',
data: data, // data: data,
}) // })
} // }
/** /**
* 获取数据库 * 获取数据库
*/ */
@ -101,7 +32,7 @@ export function codeGetDBList() {
*/ */
export function codeGetTableList(data) { export function codeGetTableList(data) {
return request({ return request({
url: 'tool/gen/FindListTable', url: 'tool/gen/getTableList',
method: 'get', method: 'get',
params: data, params: data,
}) })
@ -111,10 +42,9 @@ export function codeGetTableList(data) {
*/ */
export async function codeGenerator(data) { export async function codeGenerator(data) {
return await request({ return await request({
url: '/tool/gen/Generate', url: 'tool/gen/genCode',
method: 'post', method: 'post',
data: data, data: data,
timeout: 0,
}) })
} }
@ -125,30 +55,30 @@ export async function codeGenerator(data) {
*/ */
export function queryColumnInfo(data) { export function queryColumnInfo(data) {
return request({ return request({
url: 'tool/gen/queryColumnInfo', url: 'tool/gen/getColumnInfo',
method: 'GET', method: 'GET',
params: data, params: data,
}) })
} }
/** // /**
* // *
* 数据库解密 // * 数据库解密
*/ // */
export function dbtoolsConnStrDecrypt(data) { // export function dbtoolsConnStrDecrypt(data) {
return request({ // return request({
url: 'DbTools/ConnStrDecrypt', // url: 'DbTools/ConnStrDecrypt',
method: 'post', // method: 'post',
params: data, // params: data,
}) // })
} // }
/** // /**
* 数据库加密 // * 数据库加密
*/ // */
export function dbtoolsConnStrEncrypt(data) { // export function dbtoolsConnStrEncrypt(data) {
return request({ // return request({
url: 'DbTools/ConnStrEncrypt', // url: 'DbTools/ConnStrEncrypt',
method: 'post', // method: 'post',
params: data, // params: data,
}) // })
} // }

View File

@ -1,4 +1,4 @@
import { login, logOut, getInfo } from '@/api/login' import { login, logOut, getInfo } from '@/api/system/login'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
const user = { const user = {

View File

@ -23,7 +23,7 @@
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>技术选型</span> <span>技术选型</span>
</div> </div>
<el-col :span="6"> <el-col :span="10">
<h4>后端技术</h4> <h4>后端技术</h4>
<ul> <ul>
<li>NET5</li> <li>NET5</li>
@ -35,7 +35,7 @@
<li>...</li> <li>...</li>
</ul> </ul>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="10">
<h4>前端技术</h4> <h4>前端技术</h4>
<ul> <ul>
<li>Vue</li> <li>Vue</li>

View File

@ -36,7 +36,7 @@
</template> </template>
<script> <script>
import { getCodeImg } from "@/api/login"; import { getCodeImg } from "@/api/system/login";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt"; import { encrypt, decrypt } from "@/utils/jsencrypt";

View File

@ -27,7 +27,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row style="width: 100%"> <el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row height="500px" style="width: 100%;">
<!-- <el-table-column type="selection" width="50" /> --> <!-- <el-table-column type="selection" width="50" /> -->
<el-table-column prop="name" label="表名" sortable="custom" width="380" /> <el-table-column prop="name" label="表名" sortable="custom" width="380" />
<el-table-column prop="description" label="表描述" /> <el-table-column prop="description" label="表描述" />
@ -50,7 +50,7 @@
<el-checkbox :label="3">生成Repository</el-checkbox> <el-checkbox :label="3">生成Repository</el-checkbox>
<el-checkbox :label="4">生成Service</el-checkbox> <el-checkbox :label="4">生成Service</el-checkbox>
<el-checkbox :label="5">生成Controller</el-checkbox> <el-checkbox :label="5">生成Controller</el-checkbox>
<el-checkbox :label="6">生成Views和js</el-checkbox> <el-checkbox :label="6">生成Views和api</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
@ -58,11 +58,7 @@
<el-radio v-model="coverd" :label="true"></el-radio> <el-radio v-model="coverd" :label="true"></el-radio>
<el-radio v-model="coverd" :label="false"></el-radio> <el-radio v-model="coverd" :label="false"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="生成查询的列"> <!-- <el-form-item label="生成查询的列">
<!-- <el-checkbox-group v-model="checkedQueryColumn">
<el-checkbox :label="item.dbColumnName" v-for="item in columnData" :key="item.dbColumnName">{{item.dbColumnName}}</el-checkbox>
</el-checkbox-group> -->
<el-table :data="columnData" height="300px"> <el-table :data="columnData" height="300px">
<el-table-column type="selection" width="60" /> <el-table-column type="selection" width="60" />
<el-table-column label="字段列名" prop="dbColumnName" /> <el-table-column label="字段列名" prop="dbColumnName" />
@ -81,7 +77,7 @@
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="显示类型"> <el-table-column label="显示类型">
<el-select v-model="selectType"> <el-select v-model="selectType">
<el-option value="input">文本框</el-option> <el-option value="input">文本框</el-option>
<el-option value="textArea">文本域</el-option> <el-option value="textArea">文本域</el-option>
@ -91,9 +87,9 @@
<el-option value="upload">图片上传</el-option> <el-option value="upload">图片上传</el-option>
<el-option value="fileUpload">文件上传</el-option> <el-option value="fileUpload">文件上传</el-option>
</el-select> </el-select>
</el-table-column> --> </el-table-column>
</el-table> </el-table>
</el-form-item> </el-form-item> -->
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleGenerate"> </el-button> <el-button type="primary" @click="handleGenerate"> </el-button>
@ -105,7 +101,7 @@
<script> <script>
import { import {
createGetDBConn, // createGetDBConn,
codeGetDBList, codeGetDBList,
codeGetTableList, codeGetTableList,
codeGenerator, codeGenerator,
@ -113,12 +109,8 @@ import {
} from "@/api/tool/gen"; } from "@/api/tool/gen";
// import { downloadFile } from "@/utils/index"; // import { downloadFile } from "@/utils/index";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
import template from "../../../document/template.vue";
// import defaultSettings from "@/settings";
export default { export default {
components: { template },
name: "CodeGenerator", name: "CodeGenerator",
data() { data() {
return { return {
@ -207,12 +199,11 @@ export default {
this.loadTableData(); this.loadTableData();
}, },
handlePreview() { handlePreview() {
this.msgSuccess("敬请期待"); this.msgError("敬请期待");
}, },
handleShowDialog(row) { handleShowDialog(row) {
console.log(row);
this.showGenerate = true; this.showGenerate = true;
this.currentSelected = row.name; this.currentSelected = row;
queryColumnInfo({ queryColumnInfo({
dbName: this.codeform.dbName, dbName: this.codeform.dbName,
@ -220,12 +211,7 @@ export default {
}).then((res) => { }).then((res) => {
if (res.code === 200) { if (res.code === 200) {
const columnData = res.data; const columnData = res.data;
// for (let i = 0; i < columnData.length; i++) {
// this.$set(columnData[i], "selectType", 1);
// }
this.columnData = columnData; this.columnData = columnData;
// this.checkedQueryColumn = res.data.map((r) => r.dbColumnName);
} }
}); });
}, },
@ -233,7 +219,7 @@ export default {
* 点击生成服务端代码 * 点击生成服务端代码
*/ */
handleGenerate: async function () { handleGenerate: async function () {
console.log(JSON.stringify(this.checkedCodeGenerateForm)); console.log(JSON.stringify(this.currentSelected));
if (!this.currentSelected) { if (!this.currentSelected) {
this.msgError("请先选择要生成代码的数据表"); this.msgError("请先选择要生成代码的数据表");
return false; return false;
@ -250,7 +236,7 @@ export default {
var seachdata = { var seachdata = {
dbName: this.codeform.dbName, dbName: this.codeform.dbName,
tables: this.currentSelected.name, tableName: this.currentSelected.name,
baseSpace: this.codeform.baseSpace, baseSpace: this.codeform.baseSpace,
replaceTableNameStr: this.codeform.replaceTableNameStr, replaceTableNameStr: this.codeform.replaceTableNameStr,
genFiles: this.checkedCodeGenerateForm, genFiles: this.checkedCodeGenerateForm,
@ -258,7 +244,7 @@ export default {
queryColumn: this.checkedQueryColumn, queryColumn: this.checkedQueryColumn,
}; };
console.log(JSON.stringify(seachdata)); console.log(JSON.stringify(seachdata));
//return;
codeGenerator(seachdata) codeGenerator(seachdata)
.then((res) => { .then((res) => {
if (res.code == 200) { if (res.code == 200) {