mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 17:43:26 +08:00
vue view code gen
This commit is contained in:
@@ -4,6 +4,22 @@
|
|||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="CrudTemplete\Vue\Api.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\DetailConfig.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\FormSchema.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\Index.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\Model.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\PageRouter.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\PageRouterIndex.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\Router.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\SearchField.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\Service.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\Store.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\StoreModulesIndex.tpl" />
|
||||||
|
<None Remove="CrudTemplete\Vue\TableConfig.tpl" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="CrudTemplete\Controllers\Controller.tpl" />
|
<EmbeddedResource Include="CrudTemplete\Controllers\Controller.tpl" />
|
||||||
<EmbeddedResource Include="CrudTemplete\DbModel\Model.tpl" />
|
<EmbeddedResource Include="CrudTemplete\DbModel\Model.tpl" />
|
||||||
@@ -15,6 +31,19 @@
|
|||||||
<EmbeddedResource Include="CrudTemplete\View\Details.tpl" />
|
<EmbeddedResource Include="CrudTemplete\View\Details.tpl" />
|
||||||
<EmbeddedResource Include="CrudTemplete\View\Edit.tpl" />
|
<EmbeddedResource Include="CrudTemplete\View\Edit.tpl" />
|
||||||
<EmbeddedResource Include="CrudTemplete\View\Index.tpl" />
|
<EmbeddedResource Include="CrudTemplete\View\Index.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Api.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\DetailConfig.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\FormSchema.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Index.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Model.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\PageRouter.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\PageRouterIndex.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Router.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\SearchField.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Service.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\Store.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\StoreModulesIndex.tpl" />
|
||||||
|
<EmbeddedResource Include="CrudTemplete\Vue\TableConfig.tpl" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
4
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Api.tpl
Normal file
4
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Api.tpl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import { API_PROXY_PREFIX } from "../api";
|
||||||
|
|
||||||
|
export const GetPageListUrl: string = `${API_PROXY_PREFIX}/{{ModelClassName}}/GetPageList`;
|
||||||
|
|
||||||
19
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/DetailConfig.tpl
Normal file
19
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/DetailConfig.tpl
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { IData } from "@/components/data-detail-display";
|
||||||
|
import { FieldTypeEnum } from "@/components/data-detail-display/enum";
|
||||||
|
|
||||||
|
const detailConfig: { title: string; dataField: string; fields: Array<IData> } = {
|
||||||
|
title: "详情",
|
||||||
|
dataField: "",
|
||||||
|
fields: [
|
||||||
|
{% for field in ModelFields %}
|
||||||
|
{% if field.DbColumnName contains 'Image' or field.DbColumnName contains 'image' or field.DbColumnName contains 'thumbnail' or field.DbColumnName contains 'Thumbnail' %}
|
||||||
|
{ label: "{{field.ColumnDescription}}", key: "{{field.DbColumnName}}",type:FieldTypeEnum.PICTURE },
|
||||||
|
{% else %}
|
||||||
|
{ label: "{{field.ColumnDescription}}", key: "{{field.DbColumnName}}" },
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
//IData
|
||||||
|
export default detailConfig;
|
||||||
112
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/FormSchema.tpl
Normal file
112
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/FormSchema.tpl
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
import { ControlTypeEnum, validateTriggerEnum, validateTypeEnum, } from "@/components/coreshop-form/enum";
|
||||||
|
import { IFormSchema } from "@/components/coreshop-form/type";
|
||||||
|
|
||||||
|
const formSchema: IFormSchema = {
|
||||||
|
saveDataSourceKey: "{{ModelClassName}}/DoCreate",
|
||||||
|
editDataSourceKey: "{{ModelClassName}}/DoEdit",
|
||||||
|
queryDataSourceKey: "{{ModelClassName}}/GetEdit",
|
||||||
|
filter: null,
|
||||||
|
labelCol: { span: 3 },
|
||||||
|
fieldValueModel: "model",
|
||||||
|
fields: [
|
||||||
|
{% for field in ModelFields %}
|
||||||
|
|
||||||
|
{% if field.DbColumnName contains 'Image' or field.DbColumnName contains 'image' or field.DbColumnName contains 'thumbnail' or field.DbColumnName contains 'Thumbnail' %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "{{field.ColumnDescription}}",
|
||||||
|
value: "",
|
||||||
|
placeholder: "请上传{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.FILE,
|
||||||
|
},
|
||||||
|
|
||||||
|
{% elsif field.DataType == 'nvarchar' %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "{{field.ColumnDescription}}",
|
||||||
|
value: "",
|
||||||
|
placeholder: "请输入{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.STRING,
|
||||||
|
config: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "{{field.ColumnDescription}}不能为空",
|
||||||
|
trigger: validateTriggerEnum.blur,
|
||||||
|
type: validateTypeEnum.string,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{% elsif field.DataType == 'int' or field.DataType == 'bigint' %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "{{field.ColumnDescription}}",
|
||||||
|
placeholder: "请输入{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.NUMBER,
|
||||||
|
value: 1000,
|
||||||
|
config: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "{{field.ColumnDescription}}不能为空",
|
||||||
|
trigger: validateTriggerEnum.blur,
|
||||||
|
type: validateTypeEnum.number,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{% elsif field.DataType == 'datetime' %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "请选择{{field.ColumnDescription}}",
|
||||||
|
placeholder: "请选择{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.DATE_PICKER,
|
||||||
|
},
|
||||||
|
|
||||||
|
{% elsif field.DataType == 'bit' %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "{{field.ColumnDescription}}",
|
||||||
|
value: false,
|
||||||
|
placeholder: "{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.SWITCH,
|
||||||
|
config: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "{{field.ColumnDescription}}",
|
||||||
|
trigger: validateTriggerEnum.blur,
|
||||||
|
type: validateTypeEnum.boolean
|
||||||
|
},
|
||||||
|
],
|
||||||
|
checkedLabel: "是",
|
||||||
|
unCheckedLabel: "否",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
{
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
name: "{{field.ColumnDescription}}",
|
||||||
|
value: "",
|
||||||
|
placeholder: "请输入{{field.ColumnDescription}}",
|
||||||
|
type: ControlTypeEnum.STRING,
|
||||||
|
config: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "{{field.ColumnDescription}}不能为空",
|
||||||
|
trigger: validateTriggerEnum.blur,
|
||||||
|
type: validateTypeEnum.string,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
]}
|
||||||
|
|
||||||
|
export default formSchema;
|
||||||
205
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Index.tpl
Normal file
205
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Index.tpl
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
<template>
|
||||||
|
<DStandardTable
|
||||||
|
:tableConfig="tableConfig"
|
||||||
|
:dispatchKey="dispatchKey"
|
||||||
|
:dataSource="dataSourceCmp"
|
||||||
|
:searchFields="searchFields"
|
||||||
|
:span="span"
|
||||||
|
:selectedRowKeys="state.selectedRows"
|
||||||
|
:rowKey="rowKey"
|
||||||
|
:total="totalCmp"
|
||||||
|
selectedRowKeyType="checkbox"
|
||||||
|
:onSelectChange="onSelectRowChange"
|
||||||
|
@onTableRefresh="onTableRefresh($event)"
|
||||||
|
>
|
||||||
|
<template #toolbar>
|
||||||
|
<a-button type="primary" shape="round" @click="onAddData()"
|
||||||
|
>新增</a-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
{% for field in ModelFields %}{% if field.DbColumnName contains 'Image' or field.DbColumnName contains 'image' or field.DbColumnName contains 'thumbnail' or field.DbColumnName contains 'Thumbnail' %}
|
||||||
|
<template #{{field.DbColumnName}}="{ record }">
|
||||||
|
<Image :src="record.{{field.DbColumnName}}" :width="40" :height="40"></Image>
|
||||||
|
</template>{% endif %}{% endfor %}
|
||||||
|
<template #action="{ record }">
|
||||||
|
<a-space>
|
||||||
|
<a-button size="small" shape="round" @click="onViewDataDetail(record)"
|
||||||
|
>查看</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
size="small"
|
||||||
|
shape="round"
|
||||||
|
type="primary"
|
||||||
|
@click="onEdit(record)"
|
||||||
|
>编辑</a-button
|
||||||
|
>
|
||||||
|
<a-button size="small" shape="round" danger @click="onDelete(record)"
|
||||||
|
>删除</a-button
|
||||||
|
>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
</DStandardTable>
|
||||||
|
|
||||||
|
<CoreShopFormModal
|
||||||
|
:visible="state.editModalVisible"
|
||||||
|
width="50%"
|
||||||
|
:schema="state.formSchema"
|
||||||
|
:modalVisible="onEditModalVisible"
|
||||||
|
:onSuccess="onEditSuccess"
|
||||||
|
:title="state.formModalTitle"
|
||||||
|
></CoreShopFormModal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
:visible="state.dataDetailVisible"
|
||||||
|
:onClose="onCloseDataDetailModal"
|
||||||
|
:onCancel="onCloseDataDetailModal"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
:title="state.dataDetailConfig?.title"
|
||||||
|
:width="45"
|
||||||
|
height="auto"
|
||||||
|
>
|
||||||
|
<DataDetailDisplay
|
||||||
|
:data="state.dataDetailConfig.fields"
|
||||||
|
:column="2"
|
||||||
|
></DataDetailDisplay>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<DeleteConfirmModal
|
||||||
|
:visible="state.deleteConfirmModalVisible"
|
||||||
|
:destroyOnClose="true"
|
||||||
|
:content="state.deleteContentTip"
|
||||||
|
:onCancel="onCancelDeleteDataModal"
|
||||||
|
:onSuccess="onSuccessDeleteData"
|
||||||
|
:DeleteUrl="state.deleteDataUrl"
|
||||||
|
:params="state.deleteDataparams"
|
||||||
|
>
|
||||||
|
</DeleteConfirmModal>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import DStandardTable from "@/components/table/dStandardTable.vue";
|
||||||
|
import { I{{ModelClassName}} } from "@/models/{{ModelClassName}}";
|
||||||
|
import { computed, ComputedRef, reactive } from "vue";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import tableConfig from "./table-config";
|
||||||
|
import formSchema from "./form-schema";
|
||||||
|
import { CoreShopFormModal } from "@/components/coreshop-form";
|
||||||
|
import searchFields from "./search-field";
|
||||||
|
import { cloneDeep } from "lodash";
|
||||||
|
import { IFormSchema } from "@/components/coreshop-form/type";
|
||||||
|
import dataDetailConfig from "./detail-config";
|
||||||
|
import { DataDetailDisplay, IData } from "@/components/data-detail-display";
|
||||||
|
import { buildDataDetail } from "@/utils/build-data-detail";
|
||||||
|
import Modal from "@/components/modal";
|
||||||
|
import DeleteConfirmModal from "@/components/coreshop-modal-delete/index";
|
||||||
|
import Image from "@/components/coreshop-image";
|
||||||
|
|
||||||
|
/** 数据查询的接口 */
|
||||||
|
const dispatchKey: string = "{{ModelClassName}}/getPageList";
|
||||||
|
const span: number = 3;
|
||||||
|
const rowKey: string = "id";
|
||||||
|
// 表格刷新
|
||||||
|
let handleTableRefreshFun: Function;
|
||||||
|
|
||||||
|
const state = reactive<{
|
||||||
|
selectedRows: Array<any>;
|
||||||
|
editModalVisible: boolean;
|
||||||
|
formModalTitle: string;
|
||||||
|
formSchema: IFormSchema;
|
||||||
|
dataDetailVisible: boolean;
|
||||||
|
dataDetailConfig: {
|
||||||
|
title?: string;
|
||||||
|
fields?: Array<IData>;
|
||||||
|
};
|
||||||
|
deleteConfirmModalVisible: boolean;
|
||||||
|
deleteContentTip: string;
|
||||||
|
deleteDataUrl: string;
|
||||||
|
deleteDataparams: { [key: string]: any };
|
||||||
|
}>({
|
||||||
|
selectedRows: [],
|
||||||
|
editModalVisible: false,
|
||||||
|
formModalTitle: "编辑",
|
||||||
|
formSchema: {},
|
||||||
|
dataDetailVisible: false,
|
||||||
|
dataDetailConfig: {
|
||||||
|
title: "详情",
|
||||||
|
fields: [],
|
||||||
|
},
|
||||||
|
deleteConfirmModalVisible: false,
|
||||||
|
deleteContentTip: "确定删除?删除后将无法恢复。",
|
||||||
|
deleteDataUrl: "",
|
||||||
|
deleteDataparams: {},
|
||||||
|
});
|
||||||
|
|
||||||
|
const store = useStore();
|
||||||
|
const dataSourceCmp: ComputedRef<Array<I{{ModelClassName}}>> = computed(
|
||||||
|
() => store.state.{{ModelClassName}}.{{ModelClassName}}.{{ModelClassName}}
|
||||||
|
);
|
||||||
|
const totalCmp: ComputedRef<number> = computed(
|
||||||
|
() => store.state.{{ModelClassName}}.{{ModelClassName}}.count
|
||||||
|
);
|
||||||
|
|
||||||
|
const onTableRefresh = (fun: Function) => {
|
||||||
|
handleTableRefreshFun = fun;
|
||||||
|
};
|
||||||
|
|
||||||
|
const onAddData = () => {
|
||||||
|
state.editModalVisible = true;
|
||||||
|
state.formModalTitle = "新增";
|
||||||
|
state.formSchema = formSchema;
|
||||||
|
};
|
||||||
|
|
||||||
|
const onEdit = (data: { [key: string]: any }) => {
|
||||||
|
let editFormSchema: IFormSchema = cloneDeep(formSchema);
|
||||||
|
state.editModalVisible = true;
|
||||||
|
state.formModalTitle = "编辑";
|
||||||
|
editFormSchema.filter = { id: data.id };
|
||||||
|
state.formSchema = editFormSchema;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 查看详情 */
|
||||||
|
const onViewDataDetail = (data: { [key: string]: any }) => {
|
||||||
|
dataDetailConfig.fields = buildDataDetail(dataDetailConfig.fields, data);
|
||||||
|
state.dataDetailVisible = true;
|
||||||
|
state.dataDetailConfig = dataDetailConfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
const onEditModalVisible = (visible: boolean) => {
|
||||||
|
state.editModalVisible = visible;
|
||||||
|
};
|
||||||
|
|
||||||
|
const onEditSuccess = () => {
|
||||||
|
state.editModalVisible = false;
|
||||||
|
handleTableRefreshFun && handleTableRefreshFun();
|
||||||
|
};
|
||||||
|
|
||||||
|
const onCloseDataDetailModal = () => {
|
||||||
|
state.dataDetailVisible = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
//#region 删除数据模态交互
|
||||||
|
|
||||||
|
const onDelete = (data: { [key: string]: any }) => {
|
||||||
|
state.deleteConfirmModalVisible = true;
|
||||||
|
state.deleteContentTip = "确定删除?删除后将无法恢复。";
|
||||||
|
state.deleteDataUrl = "api/{{ModelClassName}}/DoDelete";
|
||||||
|
state.deleteDataparams = { id: data.id };
|
||||||
|
};
|
||||||
|
|
||||||
|
const onCancelDeleteDataModal = () => {
|
||||||
|
state.deleteConfirmModalVisible = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 删除数据后回调*/
|
||||||
|
const onSuccessDeleteData = () => {
|
||||||
|
store.commit("{{ModelClassName}}/deleteDataById", state.deleteDataparams.id);
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 选中数据 */
|
||||||
|
const onSelectRowChange=(selectedRows:Array<number>)=>{
|
||||||
|
state.selectedRows =selectedRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
//#endregion
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
</style>
|
||||||
49
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Model.tpl
Normal file
49
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Model.tpl
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
/** {{ModelDescription}} */
|
||||||
|
export interface I{{ModelClassName}}
|
||||||
|
{
|
||||||
|
{% for field in ModelFields %}
|
||||||
|
/** {{field.ColumnDescription}} */
|
||||||
|
{% if field.DataType == 'nvarchar' or field.DataType == 'varchar' or field.DataType == 'text' %}
|
||||||
|
{{field.DbColumnName}}:string;
|
||||||
|
{% elsif field.DataType == 'int' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:number;
|
||||||
|
{% elsif field.DataType == 'int' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:number;
|
||||||
|
{% elsif field.DataType == 'bigint' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:number;
|
||||||
|
{% elsif field.DataType == 'bigint' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:number;
|
||||||
|
{% elsif field.DataType == 'float' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:number;
|
||||||
|
{% elsif field.DataType == 'float' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:number;
|
||||||
|
{% elsif field.DataType == 'bit' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:boolean;
|
||||||
|
{% elsif field.DataType == 'bit' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:boolean;
|
||||||
|
{% elsif field.DataType == 'datetime' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:Date;
|
||||||
|
{% elsif field.DataType == 'datetime' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:Date;
|
||||||
|
{% elsif field.DataType == 'date' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:Date;
|
||||||
|
{% elsif field.DataType == 'date' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:Date;
|
||||||
|
{% elsif field.DataType == 'uniqueidentifier' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:string;
|
||||||
|
{% elsif field.DataType == 'uniqueidentifier' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:string;
|
||||||
|
{% elsif field.DataType == 'decimal' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:number;
|
||||||
|
{% elsif field.DataType == 'decimal' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:number;
|
||||||
|
{% elsif field.DataType == 'numeric' and field.IsNullable == false %}
|
||||||
|
{{field.DbColumnName}}:number;
|
||||||
|
{% elsif field.DataType == 'numeric' and field.IsNullable == true %}
|
||||||
|
{{field.DbColumnName}}?:number;
|
||||||
|
{% else %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
|
||||||
13
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/PageRouter.tpl
Normal file
13
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/PageRouter.tpl
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
export const routers: Array<any> = [
|
||||||
|
{
|
||||||
|
path: "{{ModelClassName}}",
|
||||||
|
name: "{{ModelDescription}}",
|
||||||
|
meta: {
|
||||||
|
page: {
|
||||||
|
closable: false,
|
||||||
|
},
|
||||||
|
authority: "*",
|
||||||
|
},
|
||||||
|
component: () => import("./{{ModelClassName}}/index.vue"),
|
||||||
|
}
|
||||||
|
];
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { routers } from './router';
|
||||||
|
|
||||||
|
export {
|
||||||
|
routers ,
|
||||||
|
}
|
||||||
13
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Router.tpl
Normal file
13
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Router.tpl
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { routers as {{ModelClassName}}Router } from "@/pages/{{ModelClassName}}";
|
||||||
|
const routes = [
|
||||||
|
{
|
||||||
|
path: "{{ModelClassName}}",
|
||||||
|
name: "{{ModelDescription}}管理",
|
||||||
|
meta: {
|
||||||
|
icon: FileTextOutlined,
|
||||||
|
authority: "*",
|
||||||
|
},
|
||||||
|
component: CoreshopPageView,
|
||||||
|
children: [...{{ModelClassName}}Router],
|
||||||
|
},
|
||||||
|
]
|
||||||
32
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/SearchField.tpl
Normal file
32
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/SearchField.tpl
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import { FieldTypeEnum, ISearchField } from "@/components/searchForm";
|
||||||
|
import { markRaw } from "vue";
|
||||||
|
const searchFields: Array<ISearchField> = markRaw([
|
||||||
|
{% for field in ModelFields %}
|
||||||
|
{% if field.DataType == 'bit' %}
|
||||||
|
{
|
||||||
|
field: "{{field.DbColumnName}}",
|
||||||
|
type: FieldTypeEnum.SELECT,
|
||||||
|
placeholder: "请选择{{field.ColumnDescription}}",
|
||||||
|
options: [
|
||||||
|
{ label: "是", value: true },
|
||||||
|
{ label: "否", value: false },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
{% elsif field.DataType == 'datetime' %}
|
||||||
|
{
|
||||||
|
field: "{{field.DbColumnName}}",
|
||||||
|
type: FieldTypeEnum.DATE,
|
||||||
|
placeholder: ['开始时间', '结束时间']
|
||||||
|
},
|
||||||
|
{% else %}
|
||||||
|
{
|
||||||
|
field: "{{field.DbColumnName}}",
|
||||||
|
type: FieldTypeEnum.STRING,
|
||||||
|
placeholder: "请输入{{field.ColumnDescription}}"
|
||||||
|
},
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
])
|
||||||
|
|
||||||
|
export default searchFields;
|
||||||
8
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Service.tpl
Normal file
8
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Service.tpl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import { HttpMehtod } from "@/enum";
|
||||||
|
import { request } from "@/utils/request";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
import { GetPageListUrl } from "./api";
|
||||||
|
|
||||||
|
export function getPageList(params: any): Observable<any> {
|
||||||
|
return request(GetPageListUrl, HttpMehtod.FORM_DATA, params)
|
||||||
|
}
|
||||||
52
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Store.tpl
Normal file
52
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/Store.tpl
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import { I{{ModelClassName}} } from "@/models/{{ModelClassName}}";
|
||||||
|
import * as {{ModelClassName}}Service from "@/services/{{ModelClassName}}Service";
|
||||||
|
|
||||||
|
export const Set_{{ModelClassName}}_List :string = "Set_{{ModelClassName}}_List";
|
||||||
|
|
||||||
|
interface I{{ModelClassName}}Entity {
|
||||||
|
{{ModelClassName}}?: Array<I{{ModelClassName}}>;
|
||||||
|
count: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IState {
|
||||||
|
{{ModelClassName}}: I{{ModelClassName}}Entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
const state = (): IState => ({
|
||||||
|
{{ModelClassName}}: {
|
||||||
|
{{ModelClassName}}: [],
|
||||||
|
count: 0,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const mutations: { [key: string]: Function } = {
|
||||||
|
[Set_{{ModelClassName}}_List](state: IState, payload: { [key: string]: any }) {
|
||||||
|
state.{{ModelClassName}}.{{ModelClassName}} = payload.data;
|
||||||
|
state.{{ModelClassName}}.count = payload.count;
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 删除数据 */
|
||||||
|
deleteDataById(state: IState, id: number| string) {
|
||||||
|
state.{{ModelClassName}}.{{ModelClassName}}=state.{{ModelClassName}}.{{ModelClassName}}?.filter(x=>x.id!==id);
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
const getters: { [key: string]: Function } = {};
|
||||||
|
|
||||||
|
const actions = {
|
||||||
|
/** 列表查询 */
|
||||||
|
getPageList({ commit }: any, params: { [key: string]: any }) {
|
||||||
|
{{ModelClassName}}Service.getPageList(params).subscribe((res) => {
|
||||||
|
commit(Set_{{ModelClassName}}_List, res);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
namespaced: true,
|
||||||
|
state,
|
||||||
|
mutations,
|
||||||
|
actions,
|
||||||
|
getters,
|
||||||
|
};
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
import {{ModelClassName}} from "./{{ModelClassName}}";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
{{ModelClassName}},
|
||||||
|
};
|
||||||
42
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/TableConfig.tpl
Normal file
42
CoreCms.Net.CodeGenerator/CrudTemplete/Vue/TableConfig.tpl
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import { ButtonEnum, ITableConfig } from "@/components/table";
|
||||||
|
|
||||||
|
const tableConfig: ITableConfig = {
|
||||||
|
buildInButtons: [
|
||||||
|
{
|
||||||
|
buttonKey: ButtonEnum.selectExcelExport,
|
||||||
|
dataSource: "api/{{ModelClassName}}/SelectExportExcel",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
buttonKey: ButtonEnum.queryExcelExport,
|
||||||
|
dataSource: "api/{{ModelClassName}}/QueryExportExcel",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
columns: [
|
||||||
|
{% for field in ModelFields %}
|
||||||
|
{% if field.DbColumnName contains 'Image' or field.DbColumnName contains 'image' or field.DbColumnName contains 'thumbnail' or field.DbColumnName contains 'Thumbnail' %}
|
||||||
|
{
|
||||||
|
title: "{{field.ColumnDescription}}",
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
dataIndex: "{{field.DbColumnName}}",
|
||||||
|
slots: { customRender: "{{field.DbColumnName}}" },
|
||||||
|
width: "5%",
|
||||||
|
},{% else %}
|
||||||
|
{
|
||||||
|
title: "{{field.ColumnDescription}}",
|
||||||
|
key: "{{field.DbColumnName}}",
|
||||||
|
dataIndex: "{{field.DbColumnName}}",
|
||||||
|
},
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
dataIndex: "action",
|
||||||
|
key: "action",
|
||||||
|
align: "center",
|
||||||
|
width: "18%",
|
||||||
|
slots: { customRender: "action" },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default tableConfig;
|
||||||
@@ -23,7 +23,7 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
/// <param name="tableName">表名称</param>
|
/// <param name="tableName">表名称</param>
|
||||||
/// <param name="tableDescription">表说明</param>
|
/// <param name="tableDescription">表说明</param>
|
||||||
/// <param name="columns">表字段</param>
|
/// <param name="columns">表字段</param>
|
||||||
public static byte[] CodeGenerator(string tableName, string tableDescription, List<DbColumnInfo> columns, string fileType)
|
public static byte[] CodeGenerator(string tableName, string tableDescription, List<DbColumnInfo> columns, string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
//ModelClassName
|
//ModelClassName
|
||||||
//ModelName
|
//ModelName
|
||||||
@@ -32,7 +32,7 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
byte[] data;
|
byte[] data;
|
||||||
var obj = new
|
var obj = new
|
||||||
{
|
{
|
||||||
ModelCreateTime= dt,
|
ModelCreateTime = dt,
|
||||||
ModelName = tableName,
|
ModelName = tableName,
|
||||||
ModelDescription = tableDescription,
|
ModelDescription = tableDescription,
|
||||||
ModelClassName = tableName,
|
ModelClassName = tableName,
|
||||||
@@ -143,56 +143,17 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//CreateHtml
|
// 生成layUI 前端代码
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Create.tpl"), Encoding.UTF8))
|
if (isVue == false)
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForLayUI(obj, tableName, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/create.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
}
|
||||||
}
|
// 生成 vue 前端代码
|
||||||
//EditHtml
|
else
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Edit.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForVue(obj, tableName, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/edit.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//DetailsHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Details.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/details.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//IndexHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Index.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/index.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case "EntityFiles":
|
case "EntityFiles":
|
||||||
//Model
|
//Model
|
||||||
@@ -235,55 +196,14 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "ViewFiles":
|
case "ViewFiles":
|
||||||
//CreateHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Create.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/create.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//EditHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Edit.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/edit.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//DetailsHtml
|
if (isVue == false)
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Details.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForLayUI(obj, tableName, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/details.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
|
||||||
//IndexHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Index.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForVue(obj, tableName, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/index.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "InterFaceFiles":
|
case "InterFaceFiles":
|
||||||
@@ -325,7 +245,7 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
/// <param name="tableName">表名称</param>
|
/// <param name="tableName">表名称</param>
|
||||||
/// <param name="tableDescription">表说明</param>
|
/// <param name="tableDescription">表说明</param>
|
||||||
/// <param name="columns">表字段</param>
|
/// <param name="columns">表字段</param>
|
||||||
public static byte[] CodeGeneratorAll(List<DbTableInfoAndColumns> dbModels, string fileType)
|
public static byte[] CodeGeneratorAll(List<DbTableInfoAndColumns> dbModels, string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
//ModelClassName
|
//ModelClassName
|
||||||
//ModelName
|
//ModelName
|
||||||
@@ -446,55 +366,14 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//CreateHtml
|
// 生成
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Create.tpl"), Encoding.UTF8))
|
if (isVue == false)
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForLayUI(obj, item.Name, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/create.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
//EditHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Edit.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForVue(obj, item.Name, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/edit.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//DetailsHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Details.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/details.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//IndexHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Index.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/index.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "EntityFiles":
|
case "EntityFiles":
|
||||||
@@ -538,55 +417,14 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "ViewFiles":
|
case "ViewFiles":
|
||||||
//CreateHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Create.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/create.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//EditHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Edit.tpl"), Encoding.UTF8))
|
|
||||||
{
|
|
||||||
file = reader.ReadToEnd();
|
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/edit.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//DetailsHtml
|
if (isVue == false)
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Details.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForLayUI(obj, item.Name, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/details.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
|
||||||
//IndexHtml
|
|
||||||
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Index.tpl"), Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
file = reader.ReadToEnd();
|
CodeGeneratorForVue(obj, item.Name, zip);
|
||||||
template = Template.Parse(file);
|
|
||||||
result = template.Render(Hash.FromAnonymousObject(obj));
|
|
||||||
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + item.Name.ToLower().ToLower() + "/index.html");
|
|
||||||
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
|
||||||
{
|
|
||||||
entryStream.Write(result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "InterFaceFiles":
|
case "InterFaceFiles":
|
||||||
@@ -625,5 +463,271 @@ namespace CoreCms.Net.CodeGenerator
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void CodeGeneratorForLayUI(object obj, string tableName, ZipArchive zip)
|
||||||
|
{
|
||||||
|
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(GeneratorCodeHelper)).Assembly;
|
||||||
|
string file;
|
||||||
|
string result;
|
||||||
|
Template template;
|
||||||
|
//CreateHtml
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Create.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/create.html");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//EditHtml
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Edit.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/edit.html");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//DetailsHtml
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Details.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/details.html");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//IndexHtml
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.View.Index.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("Html/" + tableName.ToLower().ToLower() + "/index.html");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成vue 前端代码
|
||||||
|
public static void CodeGeneratorForVue(object obj, string tableName, ZipArchive zip)
|
||||||
|
{
|
||||||
|
// 前端页面
|
||||||
|
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(GeneratorCodeHelper)).Assembly;
|
||||||
|
string file;
|
||||||
|
string result;
|
||||||
|
Template template;
|
||||||
|
//CreateHtml
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Index.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/" + tableName + "/index.vue");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建页面路由
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.PageRouter.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/router.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出页面路由
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.PageRouterIndex.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/index.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建路由
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Router.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("router.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 前端接口模型
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Model.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("models/" + tableName + "/index.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 前端服务(Service)
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Service.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("services/" + tableName + "Service/index.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 前端 服务端调用的API 地址
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Api.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("services/" + tableName + "Service/api.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 前端 数据状态
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.Store.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("store/modules/" + tableName + "/index.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 前端 数据状态管理默认导出index
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.StoreModulesIndex.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("store/modules/index.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建数据表达配置
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.FormSchema.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/" + tableName + "/form-schema.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建查看详情配置
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.DetailConfig.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/" + tableName + "/detail-config.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建表格搜索字段配置
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.SearchField.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/" + tableName + "/search-field.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 创建表格字段配置
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Vue.TableConfig.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("pages/" + tableName + "/" + tableName + "/table-config.ts");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void CodeGeneratorForInterFaceFiles(object obj, string tableName, ZipArchive zip)
|
||||||
|
{
|
||||||
|
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(GeneratorCodeHelper)).Assembly;
|
||||||
|
string file;
|
||||||
|
string result;
|
||||||
|
Template template;
|
||||||
|
//IRespository
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Repositories.IRepository.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry3 = zip.CreateEntry("IRepository/I" + tableName + "Repository.cs");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry3.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Respository
|
||||||
|
using (var reader = new StreamReader(assembly.GetManifestResourceStream("CoreCms.Net.CodeGenerator.CrudTemplete.Repositories.Repository.tpl"), Encoding.UTF8))
|
||||||
|
{
|
||||||
|
file = reader.ReadToEnd();
|
||||||
|
template = Template.Parse(file);
|
||||||
|
result = template.Render(Hash.FromAnonymousObject(obj));
|
||||||
|
ZipArchiveEntry entry1 = zip.CreateEntry("Repository/" + tableName + "Repository.cs");
|
||||||
|
using (StreamWriter entryStream = new StreamWriter(entry1.Open()))
|
||||||
|
{
|
||||||
|
entryStream.Write(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace CoreCms.Net.IRepository
|
|||||||
///// </summary>
|
///// </summary>
|
||||||
///// <param name="model"></param>
|
///// <param name="model"></param>
|
||||||
///// <returns></returns>
|
///// <returns></returns>
|
||||||
byte[] CodeGen(string tableName, string fileType);
|
byte[] CodeGen(string tableName, string fileType, bool isVue = false);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -42,6 +42,6 @@ namespace CoreCms.Net.IRepository
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
byte[] CodeGenByAll(string fileType);
|
byte[] CodeGenByAll(string fileType, bool isVue = false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ namespace CoreCms.Net.IServices
|
|||||||
///// </summary>
|
///// </summary>
|
||||||
///// <param name="model"></param>
|
///// <param name="model"></param>
|
||||||
///// <returns></returns>
|
///// <returns></returns>
|
||||||
byte[] CodeGen(string tableName, string fileType);
|
byte[] CodeGen(string tableName, string fileType, bool isVue = false);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -42,6 +42,6 @@ namespace CoreCms.Net.IServices
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
byte[] CodeGenByAll(string fileType);
|
byte[] CodeGenByAll(string fileType, bool isVue = false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,7 +55,7 @@ namespace CoreCms.Net.Repository.CodeGenerator
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public byte[] CodeGen(string tableName, string fileType)
|
public byte[] CodeGen(string tableName, string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
var tables = DbClient.DbMaintenance.GetTableInfoList(false);
|
var tables = DbClient.DbMaintenance.GetTableInfoList(false);
|
||||||
var views = DbClient.DbMaintenance.GetViewInfoList(false);
|
var views = DbClient.DbMaintenance.GetViewInfoList(false);
|
||||||
@@ -66,7 +66,7 @@ namespace CoreCms.Net.Repository.CodeGenerator
|
|||||||
}
|
}
|
||||||
|
|
||||||
var columns = DbClient.DbMaintenance.GetColumnInfosByTableName(tb.Name, false);
|
var columns = DbClient.DbMaintenance.GetColumnInfosByTableName(tb.Name, false);
|
||||||
return GeneratorCodeHelper.CodeGenerator(tb.Name, tb.Description, columns, fileType);
|
return GeneratorCodeHelper.CodeGenerator(tb.Name, tb.Description, columns, fileType, isVue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ namespace CoreCms.Net.Repository.CodeGenerator
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public byte[] CodeGenByAll(string fileType)
|
public byte[] CodeGenByAll(string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
var tables = DbClient.DbMaintenance.GetTableInfoList(false);
|
var tables = DbClient.DbMaintenance.GetTableInfoList(false);
|
||||||
var views = DbClient.DbMaintenance.GetViewInfoList(false);
|
var views = DbClient.DbMaintenance.GetViewInfoList(false);
|
||||||
@@ -96,7 +96,7 @@ namespace CoreCms.Net.Repository.CodeGenerator
|
|||||||
|
|
||||||
if (!allDb.Any())
|
if (!allDb.Any())
|
||||||
return null;
|
return null;
|
||||||
return GeneratorCodeHelper.CodeGeneratorAll(allDb, fileType);
|
return GeneratorCodeHelper.CodeGeneratorAll(allDb, fileType, isVue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -52,9 +52,9 @@ namespace CoreCms.Net.Services.CodeGenerator
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public byte[] CodeGen(string tableName, string fileType)
|
public byte[] CodeGen(string tableName, string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
return _dal.CodeGen(tableName, fileType);
|
return _dal.CodeGen(tableName, fileType, isVue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -65,10 +65,9 @@ namespace CoreCms.Net.Services.CodeGenerator
|
|||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <param name="fileType"></param>
|
/// <param name="fileType"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public byte[] CodeGenByAll(string fileType)
|
public byte[] CodeGenByAll(string fileType, bool isVue = false)
|
||||||
{
|
{
|
||||||
|
return _dal.CodeGenByAll(fileType, isVue);
|
||||||
return _dal.CodeGenByAll(fileType);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,57 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生成代码
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="tableName"></param>
|
||||||
|
/// <param name="fileType"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[Description("生成代码Vue")]
|
||||||
|
public IActionResult CodeGenDownVue([FromQuery] string tableName, [FromQuery] string fileType)
|
||||||
|
{
|
||||||
|
var jm = new AdminUiCallBack();
|
||||||
|
if (string.IsNullOrEmpty(tableName))
|
||||||
|
{
|
||||||
|
jm.msg = "请选择数据库";
|
||||||
|
return new JsonResult(jm);
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(fileType))
|
||||||
|
{
|
||||||
|
jm.msg = "请选择要导出的文件类型";
|
||||||
|
return new JsonResult(jm);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tableName == "AllTable")
|
||||||
|
{
|
||||||
|
var data = _codeGeneratorServices.CodeGenByAll(fileType, true);
|
||||||
|
if (data != null)
|
||||||
|
{
|
||||||
|
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jm.msg = tableName + "获取数据库字段失败";
|
||||||
|
return new JsonResult(jm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var data = _codeGeneratorServices.CodeGen(tableName, fileType, true);
|
||||||
|
if (data != null)
|
||||||
|
{
|
||||||
|
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jm.msg = tableName + "获取数据库字段失败";
|
||||||
|
return new JsonResult(jm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 获取所有表和表名并生成excel
|
#region 获取所有表和表名并生成excel
|
||||||
|
|
||||||
|
|||||||
@@ -4299,6 +4299,14 @@
|
|||||||
<param name="fileType"></param>
|
<param name="fileType"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:CoreCms.Net.Web.Admin.Controllers.CodeGeneratorController.CodeGenDownVue(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
生成代码
|
||||||
|
</summary>
|
||||||
|
<param name="tableName"></param>
|
||||||
|
<param name="fileType"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:CoreCms.Net.Web.Admin.Controllers.CodeGeneratorController.GetDataBaseTablesToExcel">
|
<member name="M:CoreCms.Net.Web.Admin.Controllers.CodeGeneratorController.GetDataBaseTablesToExcel">
|
||||||
<summary>
|
<summary>
|
||||||
获取所有表和表名并生成excel
|
获取所有表和表名并生成excel
|
||||||
|
|||||||
Reference in New Issue
Block a user