dyy 4 лет назад
Родитель
Сommit
5fe65f8c28
67 измененных файлов: 103200 добавлений и 617 удалений
  1. +59
    -1
      .gitignore
  2. +122
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Controllers/CodeSchemaController.cs
  3. +542
    -98
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Controllers/TemplatePCController.cs
  4. +19
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Form.cshtml
  5. +65
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Form.js
  6. +41
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Index.cshtml
  7. +169
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Index.js
  8. +15
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/Index.cshtml
  9. +14
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/Index.js
  10. +311
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.cshtml
  11. +212
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.css
  12. +1043
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.js
  13. +125
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs
  14. +35
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml
  15. +56
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.js
  16. +47
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.cshtml
  17. +136
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js
  18. +17
    -6
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
  19. +113
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_AllIndex.cshtml
  20. +48
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_ReportForm.cshtml
  21. +53
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_jqGrid.cshtml
  22. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/XmlConfig/system.config
  23. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Application.Web/packages.config
  24. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj
  25. +116
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs
  26. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/XmlConfig/system.config
  27. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/BaseModel.cs
  28. +749
    -502
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/CodeGenerator.cs
  29. +4354
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/CodeGeneratorWx.cs
  30. +162
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaBLL.cs
  31. +56
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaIBLL.cs
  32. +183
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaService.cs
  33. +89
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/LR_Base_CodeSchemaEntity.cs
  34. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/Learun.Application.Base.csproj
  35. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj
  36. +6
    -6
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/LogisticsManagement/ADR_RecordMap.cs
  37. +4
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
  38. +149
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs
  39. +85
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs
  40. +56
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs
  41. +235
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs
  42. +3
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js
  43. +4
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
  44. +344
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/ADR_Record/list.vue
  45. +267
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/ADR_Record/single.vue
  46. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/home.vue
  47. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/.signature.p7s
  48. +20
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/LICENSE.md
  49. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/Newtonsoft.Json.12.0.2.nupkg
  50. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net20/Newtonsoft.Json.dll
  51. +10208
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net20/Newtonsoft.Json.xml
  52. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net35/Newtonsoft.Json.dll
  53. +9356
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net35/Newtonsoft.Json.xml
  54. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net40/Newtonsoft.Json.dll
  55. +9556
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net40/Newtonsoft.Json.xml
  56. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net45/Newtonsoft.Json.dll
  57. +11172
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net45/Newtonsoft.Json.xml
  58. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.0/Newtonsoft.Json.dll
  59. +10860
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.0/Newtonsoft.Json.xml
  60. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.3/Newtonsoft.Json.dll
  61. +10982
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.3/Newtonsoft.Json.xml
  62. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll
  63. +11147
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard2.0/Newtonsoft.Json.xml
  64. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll
  65. +8920
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
  66. Двоичные данные
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll
  67. +10860
    -0
      Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml

+ 59
- 1
.gitignore Просмотреть файл

@@ -16,4 +16,62 @@ bin/
debug/
obj/
release/
.vs/
.vs/
.vscode/
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
# node_modules/
# jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# next.js build output
.next

# nuxt.js build output
.nuxt

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# End of https://www.gitignore.io/api/node

unpackage
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js

+ 122
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Controllers/CodeSchemaController.cs Просмотреть файл

@@ -0,0 +1,122 @@
using Learun.Util;
using System.Data;
using Learun.Application.Base.CodeSchemaModule;
using System.Web.Mvc;
using System.Collections.Generic;

namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-03-01 11:09
/// 描 述:代码模板
/// </summary>
public class CodeSchemaController : MvcControllerBase
{
private CodeSchemaIBLL codeSchemaIBLL = new CodeSchemaBLL();

#region 视图功能

/// <summary>
/// 主页面
/// <summary>
/// <returns></returns>
[HttpGet]
public ActionResult Index()
{
return View();
}
/// <summary>
/// 表单页
/// <summary>
/// <returns></returns>
[HttpGet]
public ActionResult Form()
{
return View();
}
#endregion

#region 获取数据

/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetPageList(string pagination, string queryJson)
{
Pagination paginationobj = pagination.ToObject<Pagination>();
var data = codeSchemaIBLL.GetPageList(paginationobj, queryJson);
var jsonData = new
{
rows = data,
total = paginationobj.total,
page = paginationobj.page,
records = paginationobj.records
};
return Success(jsonData);
}
/// <summary>
/// 获取表单数据
/// <summary>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetFormData(string keyValue)
{
var LR_Base_CodeSchemaData = codeSchemaIBLL.GetLR_Base_CodeSchemaEntity( keyValue );
var jsonData = new {
LR_Base_CodeSchema = LR_Base_CodeSchemaData,
};
return Success(jsonData);
}
/// <summary>
/// 获取左侧树形数据
/// <summary>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetTree()
{
var data = codeSchemaIBLL.GetTree();
return Success(data);
}
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult DeleteForm(string keyValue)
{
codeSchemaIBLL.DeleteEntity(keyValue);
return Success("删除成功!");
}
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult SaveForm(string keyValue, string strEntity)
{
LR_Base_CodeSchemaEntity entity = strEntity.ToObject<LR_Base_CodeSchemaEntity>();
codeSchemaIBLL.SaveEntity(keyValue,entity);
return Success("保存成功!");
}
#endregion

}
}

+ 542
- 98
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Controllers/TemplatePCController.cs Просмотреть файл

@@ -10,9 +10,9 @@ using System.Web.Mvc;
namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 创建人:陈彬彬
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创建人:力软-框架开发组
/// 日 期:2017.03.09
/// 描 述:PC端代码生成器
/// </summary>
@@ -20,13 +20,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
{
private CodeGenerator codeGenerator = new CodeGenerator();
private CodeGeneratorApp codeGeneratorApp = new CodeGeneratorApp();
private CodeGeneratorWx codeGeneratorWx = new CodeGeneratorWx();

private ModuleIBLL moduleIBLL = new ModuleBLL();
private DatabaseTableIBLL databaseTableIBLL = new DatabaseTableBLL();
private FunctionIBLL functionIBLL = new FunctionBLL();


#region 视图功能
#region 视图功能
/// <summary>
/// 管理页面
/// </summary>
@@ -150,9 +151,25 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
return View();
}

/// <summary>
/// 小程序开发模板
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult WxCustmerCodeIndex()
{
ViewBag.rootDirectory = GetRootDirectory();
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString();
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString();
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString();
ViewBag.apiDirectory = ConfigurationManager.AppSettings["ApiDirectory"].ToString();
ViewBag.appDirectory = ConfigurationManager.AppSettings["WxDirectory"].ToString();

return View();
}
#endregion

#region 自定义开发模板
#region 自定义开发模板
/// <summary>
/// 自定义开发模板代码生成
/// </summary>
@@ -239,7 +256,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
formJsCode = formJsCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 自定义开发模板代码生成(创建)
@@ -404,7 +421,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
}
#endregion

#region 快速开发模板
#region 快速开发模板
/// <summary>
/// 快速开发代码查看
/// </summary>
@@ -452,7 +469,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
formJsCode = formJsCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 快速开发代码创建
@@ -549,7 +566,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
}
#endregion

#region 快速生成实体类和映射类
#region 快速生成实体类和映射类
/// <summary>
/// 快速开发代码查看
/// </summary>
@@ -576,7 +593,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
mapCode = mapCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 快速开发代码创建
@@ -603,7 +620,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
}
#endregion

#region 流程系统表单模板
#region 流程系统表单模板
/// <summary>
/// 流程系统表单代码生成
/// </summary>
@@ -687,7 +704,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
formJsCode = formJsCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 流程系统表单代码创建
@@ -848,24 +865,23 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers

#endregion

#region 扩展 EXCLE风格模板 还未完成
#region 编辑列表开发模板
/// <summary>
/// Looks the grid edit code.
/// 编辑列表开发模板代码生成
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="dbTable">数据表.</param>
/// <param name="dbTable">数据表</param>
/// <param name="dbTablePk">数据表主键</param>
/// <param name="formData">表单数据</param>
/// <param name="queryData">查询数据.</param>
/// <param name="colData">列表数据.</param>
/// <param name="baseInfo">基础信息.</param>
/// <returns>ActionResult.</returns>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult LookGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List<DbTableModel> dbTableObj = new List<DbTableModel>();
dbTableObj.Add(new DbTableModel { name = dbTable, pk = dbTablePk, field = dbTablePk });
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>();
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
ColModel colDataObj = colData.ToObject<ColModel>();
@@ -886,25 +902,11 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
}
}

// 实体类 映射类
string entityCode = "";
string mapCode = "";
// 实体类
string entityCode = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true);
// 映射类
string mapCode = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj);

string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGenerator.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
// 映射类
mapCode += codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
@@ -920,7 +922,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
// 表单类
string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGenerator.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
string formJsCode = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2);

var jsonData = new
{
@@ -936,82 +938,244 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
formJsCode = formJsCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 编辑列表开发模板代码生成(创建)
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="dbTable">数据表</param>
/// <param name="formData">表单数据</param>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <param name="moduleEntityJson">系统功能配置信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult CreateGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>();
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
ColModel colDataObj = colData.ToObject<ColModel>();
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>();


var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";

// 按钮
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "save":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_save";
editButtonEntity.F_FullName = "保存";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}

// 列表
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}

// 表单字段
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>();

// 将表单数据进行一次转化
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>();
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);

if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}

var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}

// 实体类 映射类
string codeContent = "";
// 实体类
codeContent = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true);
codeGenerator.CreateEntityCodeFile(baseInfoObj, dbTable, codeContent);
// 映射类
codeContent = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, dbTable, codeContent);

// 服务类
codeContent = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.GridEditBllCreate(baseInfoObj, dbTable, dbTablePk, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGenerator.GridEditIBllCreate(baseInfoObj, dbTable, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGenerator.GridEditControllerCreate(baseInfoObj, dbTable, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGenerator.GridEditIndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.GridEditIndexJSCreate(baseInfoObj, dbTablePk, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);

return Success("创建成功");
}
#endregion


#region 扩展 报表模板
#region 报表开发模板
/// <summary>
/// 报表开发模板代码生成
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult LookReportCode(string databaseLinkId, string strSql, string colData, string queryData, string baseInfo)
public ActionResult LookReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo)
{

// 数据实体化
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>();
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>();
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>();

string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, colDataObjs, queryDataObj, baseInfoObj);

// 服务类
string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj);
// 业务类
string bllCode = codeGenerator.ReportBllCreate(baseInfoObj);
// 业务接口类
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj);
// 控制器类
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj);
// 页面类
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj);
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj);
string areaCode = codeGenerator.AreaRegistrationCreate(baseInfoObj);
return JsonResult(new
// 页面js类
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj);

var jsonData = new
{
bllCode = bllCode,
serviceCode = serviceCode,
controllerCode = controllerCode,
bllCode = bllCode,
ibllCode = ibllCode,
controllerCode = controllerCode,
indexCode = indexCode,
indexJsCode = indexJsCode,
areaCode = areaCode,
});
indexJsCode = indexJsCode
};

return Success(jsonData);
}
/// <summary>
/// 自定义开发模板代码生成(创建)
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <param name="moduleEntityJson">系统功能配置信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult CreateReportCode(string databaseLinkId ,string strSql ,string colData,string queryData,string baseInfo,string moduleEntityJson)
public ActionResult CreateReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo, string moduleEntityJson)
{
// 数据
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>();
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>();
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>();

string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, colDataObjs, queryDataObj, baseInfoObj);
string bllCode = codeGenerator.ReportBllCreate(baseInfoObj);
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj);
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj);
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj);
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj);
var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";

var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
// 按钮
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>();
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_ActionAddress = "";
addButtonEntity.F_EnCode = "k_print";
addButtonEntity.F_FullName = "打印";
moduleButtonList.Add(addButtonEntity);
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_ActionAddress = "";
editButtonEntity.F_EnCode = "lr_outport";
editButtonEntity.F_FullName = "导出";
moduleButtonList.Add(editButtonEntity);
ModuleButtonEntity outportButtonEntity = new ModuleButtonEntity();
outportButtonEntity.Create();
outportButtonEntity.F_EnCode = "lr_outport";
outportButtonEntity.F_FullName = "导出";
moduleButtonList.Add(outportButtonEntity);

ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);


// 列表
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>();
foreach (var col in colDataObjs)
foreach (var col in collist)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
@@ -1020,18 +1184,20 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
moduleColumnList.Add(moduleColumnEntity);
}

// 表单字段
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>();



var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity ("", moduleEntity, moduleButtonList, moduleColumnList, null);//模块功能cbb
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}

// 实体类 映射类
string codeContent = "";

// 服务类
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId,strSql,colDataObjs,queryDataObj,baseInfoObj);
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGenerator.ReportBllCreate(baseInfoObj);
@@ -1046,20 +1212,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
codeContent = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj);
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 按钮

return Success("创建成功");
}


#endregion

#region 移动开发模板
#region 移动开发模板
/// <summary>
/// 移动开发模板代码生成
/// </summary>
@@ -1164,7 +1324,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
appFormCode = appFormCode + appFormJsCode
};

return JsonResult(jsonData);
return Success(jsonData);
}
/// <summary>
/// 自定义开发模板代码生成(创建)
@@ -1358,7 +1518,291 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers
}
#endregion

#region 私有方法
#region 小程序开发模板
/// <summary>
/// 移动开发模板代码生成
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="dbTable">数据表</param>
/// <param name="formData">表单数据</param>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult LookWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo)
{
// 数据实体化
List<DbTableModel> dbTableObj = dbTable.ToObject<List<DbTableModel>>();

List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>();
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
ColModel colDataObj = colData.ToObject<ColModel>();
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>();

// 将表单数据进行一次转化
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>();
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}

// 实体类 映射类
string entityCode = "";
string mapCode = "";

string mainTable = "";
foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
entityCode += codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
// 映射类
mapCode += codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
}
// 服务类
string serviceCode = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
// 业务类
string bllCode = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 业务接口类
string ibllCode = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 控制器类
string controllerCode = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 页面类
string indexCode = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
// 页面js类
string indexJsCode = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
// 表单类
string formCode = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap);
// 表单js类
string formJsCode = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);

// api接口类
string apiCode = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
// 移动页面
string appIndexCode = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);

// 移动页面表单
string appFormCode = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj);

var jsonData = new
{
entityCode,
mapCode,
serviceCode,
bllCode,
ibllCode,
controllerCode,
indexCode,
indexJsCode,
formCode,
formJsCode,

apiCode,
appIndexCode = appIndexCode,
appFormCode = appFormCode
};

return Success(jsonData);
}
/// <summary>
/// 自定义开发模板代码生成(创建)
/// </summary>
/// <param name="databaseLinkId">数据库连接ID</param>
/// <param name="dbTable">数据表</param>
/// <param name="formData">表单数据</param>
/// <param name="queryData">查询数据</param>
/// <param name="colData">列表数据</param>
/// <param name="baseInfo">基础信息</param>
/// <param name="moduleEntityJson">系统功能配置信息</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult CreateWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson, string functionEntityJson)
{
// 数据
List<DbTableModel> dbTableObj = dbTable.ToObject<List<DbTableModel>>();
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>();
QueryModel queryDataObj = queryData.ToObject<QueryModel>();
ColModel colDataObj = colData.ToObject<ColModel>();
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>();

FunctionEntity functionEntity = functionEntityJson.ToObject<FunctionEntity>();
functionEntity.F_Url = baseInfoObj.outputArea + "/" + baseInfoObj.name;
functionIBLL.SaveEntity("", functionEntity, null);



var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>();
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index";

// 按钮
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>();
foreach (var btn in colDataObj.btns)
{
switch (btn)
{
case "add":
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity();
addButtonEntity.Create();
addButtonEntity.F_EnCode = "lr_add";
addButtonEntity.F_FullName = "新增";
moduleButtonList.Add(addButtonEntity);
break;
case "edit":
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity();
editButtonEntity.Create();
editButtonEntity.F_EnCode = "lr_edit";
editButtonEntity.F_FullName = "编辑";
moduleButtonList.Add(editButtonEntity);
break;
case "delete":
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity();
deleteButtonEntity.Create();
deleteButtonEntity.F_EnCode = "lr_delete";
deleteButtonEntity.F_FullName = "删除";
moduleButtonList.Add(deleteButtonEntity);
break;
case "print":
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = "lr_print";
printButtonEntity.F_FullName = "打印";
moduleButtonList.Add(printButtonEntity);
break;
}
}
foreach (var btn in colDataObj.btnexs)
{
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity();
printButtonEntity.Create();
printButtonEntity.F_EnCode = btn.id;
printButtonEntity.F_FullName = btn.name;
moduleButtonList.Add(printButtonEntity);
}

// 列表
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>();
foreach (var col in colDataObj.fields)
{
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity();
moduleColumnEntity.Create();
moduleColumnEntity.F_EnCode = col.field;
moduleColumnEntity.F_FullName = col.fieldName;
moduleColumnEntity.F_ParentId = "0";
moduleColumnList.Add(moduleColumnEntity);
}

// 表单字段
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>();

// 将表单数据进行一次转化
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>();
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>();
foreach (var tab in formDataObj)
{
foreach (var compont in tab.componts)
{
ModuleFormEntity moduleFormEntity = new ModuleFormEntity();
moduleFormEntity.Create();
moduleFormEntity.F_EnCode = compont.field;
moduleFormEntity.F_FullName = compont.title;
moduleFormEntitys.Add(moduleFormEntity);

if (!string.IsNullOrEmpty(compont.table))
{
compontMap.Add(compont.table + compont.field, compont);
compontMap2.Add(compont.id, compont);
}
}
}

var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress);
if (moduleEntityTemp == null)
{
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb
}

// 实体类 映射类
string codeContent = "";
string mainTable = "";

foreach (var tableOne in dbTableObj)
{
bool isMain = false;
if (string.IsNullOrEmpty(tableOne.relationName))
{
mainTable = tableOne.name;
isMain = true;
}
// 实体类
codeContent = codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain);
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent);
// 映射类
codeContent = codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj);
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent);
}

// 服务类
codeContent = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj);
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent);
// 业务类
codeContent = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent);
// 业务接口类
codeContent = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent);
// 控制器类
codeContent = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent);
// 页面类
codeContent = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj);
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent);
// 页面js类
codeContent = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent);
// 表单类
codeContent = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap);
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent);
// 表单js类
codeContent = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2);
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent);


// api接口类
codeContent = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj);
codeGenerator.CreateApiFile(baseInfoObj, codeContent);

// 移动页面
codeContent = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj);
codeGenerator.CreateWxIndexCodeFile(baseInfoObj, codeContent, "vue");


// 移动页面表单
codeContent = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj);
codeGenerator.CreateWxFormCodeFile(baseInfoObj, codeContent, "vue");

return Success("创建成功");
}

#endregion

#region 私有方法
/// <summary>
/// 获取项目根目录
/// </summary>


+ 19
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Form.cshtml Просмотреть файл

@@ -0,0 +1,19 @@
@{
ViewBag.Title = "代码模板";
Layout = "~/Views/Shared/_Form.cshtml";
}
<div class="lr-form-wrap" id="form">
<div class="col-xs-6 lr-form-item" data-table="LR_Base_CodeSchema" >
<div class="lr-form-item-title">模板名称<font face="宋体">*</font></div>
<input id="F_Name" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item" data-table="LR_Base_CodeSchema" >
<div class="lr-form-item-title">模板分类</div>
<div id="F_Catalog" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="LR_Base_CodeSchema" >
<div class="lr-form-item-title">模板描述</div>
<textarea id="F_Description" class="form-control" style="height:100px;" ></textarea>
</div>
</div>
@Html.AppendJsFile("/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Form.js")

+ 65
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Form.js Просмотреть файл

@@ -0,0 +1,65 @@
/* * 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2018 上海力软信息技术有限公司
* 创建人:超级管理员
* 日 期:2019-03-01 11:09
* 描 述:代码模板
*/
var acceptClick;
var keyValue = request('keyValue');
var f_type = request('F_Type');
var schemadata = top.layer_CustmerCodeIndex.postData;


var bootstrap = function ($, learun) {
"use strict";
var page = {
init: function () {
$('.lr-form-wrap').lrscroll();
page.bind();
page.initData();
},
bind: function () {
$('#F_Catalog').lrselect({
url: top.$.rootUrl + '/LR_SystemModule/DataItem/GetDetailTree',
param: { itemCode: 'CodeSchemaType' },
type: 'tree',
maxHeight: 180,
allowSearch: true,
value:'value'
});
},
initData: function () {
if (!!keyValue) {
$.lrSetForm(top.$.rootUrl + '/LR_CodeGeneratorModule/CodeSchema/GetFormData?keyValue=' + keyValue, function (data) {
for (var id in data) {
if (!!data[id].length && data[id].length > 0) {
$('#' + id).jfGridSet('refreshdata', data[id]);
}
else {
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
}
}
});
}
}
};
// 保存数据
acceptClick = function (callBack) {
if (!$('body').lrValidform()) {
return false;
}
var codeData = $('body').lrGetFormData();
codeData['F_Type'] = f_type;
codeData['F_CodeSchema'] = JSON.stringify(schemadata);
var postData = {
strEntity: JSON.stringify(codeData)
};
$.lrSaveForm(top.$.rootUrl + '/LR_CodeGeneratorModule/CodeSchema/SaveForm?keyValue=' + keyValue, postData, function (res) {
// 保存成功后才回调
if (!!callBack) {
callBack();
}
});
};
page.init();
}

+ 41
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Index.cshtml Просмотреть файл

@@ -0,0 +1,41 @@
@{
ViewBag.Title = "代码模板";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="lr-layout lr-layout-left-center" id="lr_layout" >
<div class="lr-layout-left">
<div class="lr-layout-wrap">
<div class="lr-layout-title lrlg ">模板分类</div>
<div id="dataTree" class="lr-layout-body"></div>
</div>
</div>
<div class="lr-layout-center">
<div class="lr-layout-wrap ">
<div class="lr-layout-title">
<span id="titleinfo" class="lrlg">模板列表</span>
</div>
<div class="lr-layout-tool">
<div class="lr-layout-tool-left">
<div class="lr-layout-tool-item">
<input id="F_Name" type="text" class="form-control" placeholder="请输入模板名称" />
</div>
<div class="lr-layout-tool-item">
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i>&nbsp;<span class="lrlg">查询</span></a>
</div>
</div>
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a>
</div>
<div class=" btn-group btn-group-sm" learun-authorize="yes">
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;加载模板</a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;删除</a>
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Index.js")

+ 169
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/CodeSchema/Index.js Просмотреть файл

@@ -0,0 +1,169 @@
/* * 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2018 上海力软信息技术有限公司
* 创建人:超级管理员
* 日 期:2019-03-01 11:09
* 描 述:代码模板
*/
var refreshGirdData;
var bootstrap = function ($, learun) {
"use strict";

var ftype;

var page = {
init: function () {
page.initGird();
page.bind();
},
bind: function () {
// 初始化左侧树形数据
$('#dataTree').lrtree({
url: top.$.rootUrl + '/LR_SystemModule/DataItem/GetDetailTree',
param: { itemCode: 'CodeSchemaType' },
nodeClick: function (item) {
console.log(item);

ftype = item.value;
$('#titleinfo').text(item.text);
page.search();
}
});
// 查询
$('#btn_Search').on('click', function () {
var keyword = $('#F_Name').val();
page.search({ F_Name: keyword });
});
// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
});
// 编辑
$('#lr_edit').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_Id');
var ftype = $('#gridtable').jfGridValue('F_Type');
if (learun.checkrow(keyValue)) {
switch (ftype) {
case '1'://
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(移动开发模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/AppCustmerCodeIndex?schemaId=' + keyValue,
width: 1100,
height: 700,
maxmin: true,
btn: null
});
break;
case '2'://
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(自定义开发模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/CustmerCodeIndex?schemaId=' + keyValue,
width: 1100,
height: 700,
maxmin: true,
btn: null
});
break;
case '3'://
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(流程系统表单开发模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/WorkflowCodeIndex?schemaId=' + keyValue,
width: 1100,
height: 700,
maxmin: true,
btn: null
});
break;
case '4'://
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(编辑列表页模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/GridEditCodeIndex?schemaId=' + keyValue,
width: 1100,
height: 700,
maxmin: true,
btn: null
});
break;
case '5'://
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(报表显示页模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/ReportCodeIndex?schemaId=' + keyValue,
width: 1100,
height: 700,
maxmin: true,
btn: null
});
break;
}


}
});
// 删除
$('#lr_delete').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_Id');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
learun.deleteForm(top.$.rootUrl + '/LR_CodeGeneratorModule/CodeSchema/DeleteForm', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
});
}
});
},
// 初始化列表
initGird: function () {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/LR_CodeGeneratorModule/CodeSchema/GetPageList',
headData: [
{ label: "模板名称", name: "F_Name", width: 100, align: "left" },
{
label: "模板分类", name: "F_Catalog", width: 100, align: "left",
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('dataItem', {
key: value,
code: 'CodeSchemaType',
callback: function (_data) {
callback(_data.text);
}
});
}
},
{
label: "开发模板", name: "F_Type", width: 100, align: "center",
formatter: function (cellvalue) {
if (cellvalue == 0) {
return '<span class=\"label label-success\" style=\"cursor: pointer;\">Web功能模板</span>';
} else if (cellvalue == 1) {
return '<span class=\"label label-default\" style=\"cursor: pointer;\">含APP功能模板</span>';
}
else if (cellvalue == 2) {
return '<span class=\"label label-danger\" style=\"cursor: pointer;\">含工作流模板</span>';
}
}
},
{ label: "模板描述", name: "F_Description", width: 100, align: "left" },
],
mainId: 'F_Id',
isPage: true
});
page.search();
},
search: function (param) {
param = param || {};
param.F_Catalog = ftype;
$('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
$('#gridtable').jfGridSet('reload');
};
page.init();
}

+ 15
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/Index.cshtml Просмотреть файл

@@ -110,6 +110,21 @@
<a class="btn btn-default" id="lr_appCustmerCode">配置</a>
</div>
</div>
<div class="lr-cover-box">
<div class="lr-cover-img">
<img class="lr-cover-img1" src="~/Content/images/codeGenerator/multitable0.png" />
<img class="lr-cover-img2" src="~/Content/images/codeGenerator/multitable1.png" />

<h4><span class="lrlg">小程序开发模板</span></h4>
</div>
<div class="lr-cover-info">
<small><span class="lrlg">通过设置生成单表或多表的增删改查功能(小程序端)。</span></small>
</div>
<div class="lr-cover-button">
<a class="btn btn-default" id="lr_wxCustmerCode"><span class="lrlg">配置</span></a>
</div>
</div>

</div>
</div>
</div>


+ 14
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/Index.js Просмотреть файл

@@ -96,6 +96,20 @@ var bootstrap = function ($, learun) {
btn: null
});
});

// 小程序开发模板
$('#lr_wxCustmerCode').on('click', function () {
learun.layerForm({
id: 'CustmerCodeIndex',
title: '在线代码生成器 并自动创建代码(小程序开发模板)',
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/WxCustmerCodeIndex',
width: 1100,
height: 700,
maxmin: true,
btn: null
});
});

}
};
page.init();

+ 311
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.cshtml Просмотреть файл

@@ -0,0 +1,311 @@
@{
ViewBag.Title = "自定义表单开发模板";
Layout = "~/Views/Shared/_CodeBulidForm.cshtml";
}

@Html.AppendCssFile("/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.css")

<div class="widget-body">
<input id="rootDirectory" type="hidden" value="@ViewBag.rootDirectory" />
<input id="_mappingDirectory" type="hidden" value="@ViewBag.mappingDirectory" />
<input id="_serviceDirectory" type="hidden" value="@ViewBag.serviceDirectory" />
<input id="_webDirectory" type="hidden" value="@ViewBag.webDirectory" />
<input id="_apiDirectory" type="hidden" value="@ViewBag.apiDirectory" />
<input id="_appDirectory" type="hidden" value="@ViewBag.appDirectory" />

<div id="wizard" class="wizard" data-target="#wizard-steps">
<ul class="steps">
<li data-target="#step-1" class="active"><span class="step">1</span><span class="lrlg">数据表设置</span><span class="chevron"></span></li>
<li data-target="#step-2"><span class="step">2</span><span class="lrlg">表单页面</span><span class="chevron"></span></li>
<li data-target="#step-3"><span class="step">3</span><span class="lrlg">条件配置</span><span class="chevron"></span></li>
<li data-target="#step-4"><span class="step">4</span><span class="lrlg">列表页面</span><span class="chevron"></span></li>
<li data-target="#step-5"><span class="step">5</span><span class="lrlg">信息配置</span><span class="chevron"></span></li>
<li data-target="#step-6"><span class="step">6</span><span class="lrlg">查看代码</span><span class="chevron"></span></li>
<li data-target="#step-7"><span class="step">7</span><span class="lrlg">发布功能</span><span class="chevron"></span></li>
</ul>
</div>
<div class="step-content" id="wizard-steps">
<div class="step-pane active" id="step-1" style="position:relative;height:100%;width:100%;padding:5px;">
<div style="position:relative;height:100%;width:100%;border:1px solid #ccc;padding-left:200px;">
<div style="position:absolute;width:200px;height:100%;border-right:1px solid #ccc;top:0;left:0;" id="dbTree"></div>
<div style="position:relative;height:100%;width:100%;padding-top:50px;">
<div style="position:absolute;width:100%;height:50px;border-bottom:1px solid #ccc;top:0;left:0; ">
<div class="lr-layout-tool-item">
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询的表名" />
</div>
<div class="lr-layout-tool-item">
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i>&nbsp;<span class="lrlg">查询</span></a>
</div>
</div>
<div style="position:relative;height:50%;width:100%;border-bottom:1px solid #ccc;">
<div id="dbtableGrid1"></div>
</div>
<div style="position:relative;width:100%;height:50%;">
<div id="dbtableGrid2"></div>
</div>
</div>
</div>
</div>
<div class="step-pane" id="step-2">
</div>
<div class="step-pane lr-rblock" id="step-3" style="padding:5px;">
<div class="lr-rblock" style="border:1px solid #ccc;padding-top:85px;">
<div class="lr-form-layout-header" style="position:absolute;width:100%;height:85px;border-bottom:1px solid #ccc;padding:0 10px;z-index:3;">
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">时间查询</div>
<div class="radio">
<label>
<input name="queryDatetime" type="radio" value="1" />
启用
</label>
<label>
<input name="queryDatetime" type="radio" value="0" checked="checked" />
停用
</label>
</div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">时间字段</div>
<div id="queryDatetime" class="lr-select-underline"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">搜索框宽</div>
<input id="queryWidth" type="text" class="form-control lr-input-underline" placeholder="请输入宽" isvalid="yes" checkexpession="NotNull" value="400" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">搜索框高</div>
<input id="queryHeight" type="text" class="form-control lr-input-underline" placeholder="请输入高" isvalid="yes" checkexpession="NotNull" value="220" />
</div>
</div>

<div class="lr-rblock">
<div id="query_girdtable"></div>
</div>
</div>
</div>
<div class="step-pane" id="step-4" style="padding:5px;">
<div class="lr-rblock" style="border:1px solid #ddd;padding-top:50px;">
<div style="position:absolute;top:0;left:0;height:50px;width:100%;border-bottom:1px solid #ddd;padding:10px 10px 0 0;text-align:right;">
<div class="btn-group" id="btnlist">
<div class="lbtn active" data-value="add"><i class="fa fa-plus"></i>&nbsp;<span class="lrlg">新增</span></div>
<div class="lbtn active" data-value="edit"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlg">编辑</span></div>
<div class="lbtn active" data-value="delete"><i class="fa fa-trash-o"></i>&nbsp;<span class="lrlg">删除</span></div>
<div class="lbtn active" data-value="print"><i class="fa fa-print"></i>&nbsp;<span class="lrlg">打印</span></div>
</div>

<div class="btn-group" id="btnlistex"></div>

<div class="btn-group btn-group-sm">
<a id="lr_btnlistex_add" class="btn btn-default"><i class="fa fa-plus"></i></a>
</div>
</div>
<div class="lr-rblock" style="padding-left:200px;">
<div style="position:absolute;top:0;left:0;width:200px;height:100%;border-right:1px solid #ccc;padding-top:28px;">
<div style="position:absolute;height:28px;line-height:28px;width:100%;border-bottom:1px solid #ccc;color: #666;text-overflow:ellipsis;white-space: nowrap;font-weight: bold;padding-left: 9px;font-size: 12px;top:0;">列表左侧树形数据设置</div>
<div class="lr-rblock" style="padding:5px;padding-bottom:0;" id="treesetting">
<div class="lr-component-control">
<div class="radio" style="margin:0;">
<label>
<input name="isViewTree" id="isViewTree1" type="radio" value="1" />
<span class="lrlg">显示</span>
</label>
<label>
<input name="isViewTree" id="isViewTree0" type="radio" value="0" checked="checked" />
<span class="lrlg">不显示</span>
</label>
</div>
</div>
<div class="lr-component-title treesetting "><span class="lrlg">数据来源</span></div>
<div class="lr-component-control treesetting"><div id="treeDataSource"></div></div>
<div class="lr-component-title treesetting DataSourceType1"><span class="lrlg">SQL语句</span></div>
<div class="lr-component-control treesetting DataSourceType1"><textarea type="text" id="treesql" style="height:100px;" class="form-control"></textarea></div>
<div class="lr-component-control treesetting DataSourceType1" style="text-align: center;padding-top: 10px;"><a id="lr_treesql_set" class="btn btn-primary btn-block"><span class="lrlg">验证语句</span></a></div>
<div class="lr-component-title treesetting DataSourceType2"><span class="lrlg">数据源选择</span></div>
<div class="lr-component-control treesetting DataSourceType2"><div id="treeDataSourceId"></div></div>
<div class="lr-component-title treesetting"><span class="lrlg">字段ID</span></div>
<div class="lr-component-control treesetting"><div id="treefieldId"></div></div>
<div class="lr-component-title treesetting"><span class="lrlg">父级字段</span></div>
<div class="lr-component-control treesetting"><div id="treefieldParentId"></div></div>
<div class="lr-component-title treesetting"><span class="lrlg">显示字段</span></div>
<div class="lr-component-control treesetting"><div id="treefieldShow"></div></div>
<div class="lr-component-title treesetting"><span class="lrlg">关联字段</span></div>
<div class="lr-component-control treesetting"><div id="treefieldRe"></div></div>

</div>
</div>
<div class="lr-rblock" style="padding-bottom:40px;">
<div class="lr-rblock"><div id="col_gridtable"></div></div>
<div style="position:absolute;height:40px;width:100%;left:0;bottom:0;border-top:1px solid #ccc;">
<div class="col-xs-12 lr-form-item" style="padding:0px;padding-left:10px;padding-top: 3px;">
<div class="radio">
<label>
<input name="isPage" id="isPage1" type="radio" value="1" checked="checked" />
分页
</label>
<label>
<input name="isPage" id="isPage0" type="radio" value="0" />
不分页
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

<div class="step-pane step-pane-base" id="step-5">
<div class="step-pane-base-top">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><span class="lrlg">功能信息配置</span></h3>
</div>
<div class="panel-body">
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">创建人员</div>
<input id="createUser" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">功能类名</div>
<input id="name" type="text" class="form-control" placeholder="请输入功能类名" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">功能描述</div>
<input id="describe" type="text" class="form-control" placeholder="请输入功能描述" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">输出区域</div>
<div id="outputArea" isvalid="yes" checkexpession="NotNull"></div>
</div>
</div>
</div>
</div>

<div class="panel panel-default lr-panel">
<div class="panel-heading">
<h3 class="panel-title"><span class="lrlg">输出目录</span></h3>
</div>
<div class="panel-body">
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">映射类输出目录</div>
<input id="mappingDirectory" type="text" class="form-control" readonly />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">后端类输出目录</div>
<input id="serviceDirectory" type="text" class="form-control" readonly />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">前端项输出目录</div>
<input id="webDirectory" type="text" class="form-control" readonly />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">api接口输出目录</div>
<input id="apiDirectory" type="text" class="form-control" readonly />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">移动端输出目录</div>
<input id="appDirectory" type="text" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="step-pane" id="step-6" style="padding-top:49px;">
<ul class="nav nav-tabs lr-form-tab" id="nav_tabs">
<li class="active"><a data-value="entityCodediv"><span class="lrlg">实体类</span></a></li>
<li><a data-value="mapCodediv"><span class="lrlg">实体映射类</span></a></li>
<li><a data-value="serviceCodediv"><span class="lrlg">服务类</span></a></li>
<li><a data-value="bllCodediv"><span class="lrlg">业务类</span></a></li>
<li><a data-value="ibllCodediv"><span class="lrlg">业务接口类</span></a></li>
<li><a data-value="controllerCodediv"><span class="lrlg">控制器</span></a></li>
<li><a data-value="indexCodediv"><span class="lrlg">主页面</span></a></li>
<li><a data-value="indexJsCodediv"><span class="lrlg">主页面JS</span></a></li>
<li><a data-value="formCodediv"><span class="lrlg">表单页</span></a></li>
<li><a data-value="formJsCodediv"><span class="lrlg">表单页JS</span></a></li>
<li><a data-value="apiCodediv"><span class="lrlg">接口类</span></a></li>
<li><a data-value="appIndexCodediv"><span class="lrlg">移动主页面</span></a></li>
<li><a data-value="appFormCodediv"><span class="lrlg">移动表单页</span></a></li>
</ul>
<div class="tab-content" id="tab_content">
<div id="entityCodediv" class="tab-pane active"><div id="entityCode"></div></div>
<div id="mapCodediv" class="tab-pane"><div id="mapCode"></div></div>
<div id="serviceCodediv" class="tab-pane"><div id="serviceCode"></div></div>
<div id="bllCodediv" class="tab-pane"><div id="bllCode"></div></div>
<div id="ibllCodediv" class="tab-pane"><div id="ibllCode"></div></div>
<div id="controllerCodediv" class="tab-pane"><div id="controllerCode"></div></div>
<div id="indexCodediv" class="tab-pane"><div id="indexCode"></div></div>
<div id="indexJsCodediv" class="tab-pane"><div id="indexJsCode"></div></div>
<div id="formCodediv" class="tab-pane"><div id="formCode"></div></div>
<div id="formJsCodediv" class="tab-pane"><div id="formJsCode"></div></div>

<div id="apiCodediv" class="tab-pane"><div id="apiCode"></div></div>
<div id="appIndexCodediv" class="tab-pane"><div id="appIndexCode"></div></div>
<div id="appFormCodediv" class="tab-pane"><div id="appFormCode"></div></div>
</div>
</div>
<div class="step-pane lr-form-wrap" id="step-7">
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">编号<font face="宋体">*</font></div>
<input id="F_EnCode" type="text" class="form-control" placeholder="请输入编号" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">名称<font face="宋体">*</font></div>
<input id="F_FullName" type="text" class="form-control" placeholder="请输入名称" isvalid="yes" checkexpession="NotNull" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">上级</div>
<div id="F_ParentId"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">移动分类</div>
<div id="F_Type" isvalid="yes" checkexpession="NotNull"></div>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">图标</div>
<input id="F_Icon" type="text" class="form-control" placeholder="请选择图标" isvalid="yes" checkexpession="NotNull" />
<span id="selectIcon" class="lr-input-button" title="选取图标">...</span>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">移动图标图标</div>
<input id="F_appIcon" type="text" class="form-control" placeholder="请选择图标" isvalid="yes" checkexpession="NotNull" />
<span id="appselectIcon" class="lr-input-button" title="选取图标">...</span>
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">排序<font face="宋体">*</font></div>
<input id="F_SortCode" type="text" class="form-control" placeholder="请输入排序号" isvalid="yes" checkexpession="Num" />
</div>
<div class="col-xs-6 lr-form-item">
<div class="lr-form-item-title">选项</div>
<div class="checkbox">
<label>
<input id="F_IsMenu" type="checkbox" checked="checked" />
<span class="lrlg">菜单</span>
</label>
<label>
<input id="F_IsPublic" type="checkbox" />
<span class="lrlg">公共</span>
</label>
</div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">描述</div>
<textarea id="F_Description" class="form-control" style="height: 150px;"></textarea>
</div>
</div>
</div>

<div class="lr-form-bottom-button" id="wizard-actions">
<a id="btn_prev" class="btn btn-default btn-prev" disabled><span class="lrlg">上一步</span></a>
<a id="btn_next" class="btn btn-default btn-next"><span class="lrlg">下一步</span></a>
<a id="btn_save" class="btn btn-warning" disabled><span class="lrlg">保存模板</span></a>
<a id="btn_finish" class="btn btn-success" disabled><span class="lrlg">完成</span></a>
</div>
</div>

@Html.AppendJsFile("/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.js")








+ 212
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.css Просмотреть файл

@@ -0,0 +1,212 @@
.lr-layout-tool-item {
position: relative;
float: left;
padding-top: 10px;
padding-left: 5px;
}

.lr-layout-tool-item .btn {
position: relative;
display: inline-block;
height: 28px;
margin-bottom: 1px;
line-height: 14px;
}

.lr-layout-tool-item .form-control {
border-radius: 4px;
display: inline-block;
width: 300px;
}

.step-pane-base {
padding: 10px;
padding-top: 168px;
}

.step-pane-base-top {
position: absolute;
top: 0px;
left: 0px;
padding: 10px;
width: 100%;
height: 166px;
}


.lr-panel {
position: relative;
width: 100%;
height: 100%;
margin-bottom: 0;
padding-top: 38px;
}

.lr-panel .panel-heading {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 38px;
}

.lr-panel .panel-body {
position: relative;
width: 100%;
height: 100%;
}

.btn-tool-bar {
position: absolute;
top: 0;
width: 100%;
text-align: right;
padding: 5px;
border-bottom: 1px solid #ddd;
z-index: 4;
}

.step-gird-pane {
padding-top: 41px;
}

.btn-tool-bar-left {
position: absolute;
left: 5px;
top: 6px;
width: 300px;
height: 28px;
z-index: 4;
text-align: left;
}

.lr-form-layout-body {
padding-top: 30px;
}













.lr-form-layout-header .lr-form-item-title {
width: 58px;
padding-right: 0;
text-align: left;
}

.lr-form-layout-header .lr-form-item {
padding-left: 58px;
}

.tab-btn {
position: relative;
float: left;
height: 25px;
padding: 0 8px;
line-height: 23px;
border: 1px solid #ccc;
border-radius: 2px;
background-color: #fff;
cursor: pointer;
margin-right: 5px;
}

.tab-btn:hover {
background-color: #eee;
}

.tab-block {
min-width: 80px;
text-align: center;
}

.tab-block.active {
background-color: #2F94EE;
border-color: #2F94EE;
color: #fff;
}

.lbtn {
display: inline-block;
margin-bottom: 0;
font-weight: 400;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
color: #373a3c;
background-color: #fff;
border-color: #ccc;
position: relative;
float: left;
margin-left: -1px;
}

.btn-group > .lbtn:first-child {
margin-left: 0;
}

.btn-group > .lbtn:first-child:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}

.btn-group > .lbtn:last-child:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}

.btn-group > .lbtn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}

.lbtn.active {
border: 1px solid #ff5d5b;
z-index: 1;
background: url(/Content/images/selected_red.png) right top no-repeat;
}

.treesetting {
display: none;
}


.lr-form-tab {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding: 10px 10px 0 10px;
height: 49px;
background: #fff;
}

.tab-content, .tab-content .tab-pane {
position: relative;
width: 100%;
height: 100%;
}

.tab-content .tab-pane {
overflow-y: auto;
}

+ 1043
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_CodeGeneratorModule/Views/TemplatePC/WxCustmerCodeIndex.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 125
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Controllers/ADR_RecordController.cs Просмотреть файл

@@ -0,0 +1,125 @@
using Learun.Util;
using System.Data;
using Learun.Application.TwoDevelopment.LogisticsManagement;
using System.Web.Mvc;
using Learun.Application.Base.SystemModule;
using System.Collections.Generic;

namespace Learun.Application.Web.Areas.LogisticsManagement.Controllers
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordController : MvcControllerBase
{
private ADR_RecordIBLL aDR_RecordIBLL = new ADR_RecordBLL();

#region 视图功能

/// <summary>
/// 主页面
/// <summary>
/// <returns></returns>
[HttpGet]
public ActionResult Index()
{
return View();
}
/// <summary>
/// 表单页
/// <summary>
/// <returns></returns>
[HttpGet]
public ActionResult Form()
{
return View();
}
#endregion

#region 获取数据

/// <summary>
/// 获取页面显示列表分页数据
/// <summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetPageList(string pagination, string queryJson)
{
Pagination paginationobj = pagination.ToObject<Pagination>();
var data = aDR_RecordIBLL.GetPageList(paginationobj, queryJson);
var jsonData = new
{
rows = data,
total = paginationobj.total,
page = paginationobj.page,
records = paginationobj.records
};
return Success(jsonData);
}
/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetList(string queryJson)
{
var data = aDR_RecordIBLL.GetList(queryJson);
return Success(data);
}
/// <summary>
/// 获取表单数据
/// <summary>
/// <returns></returns>
[HttpGet]
[AjaxOnly]
public ActionResult GetFormData(string keyValue)
{
var ADR_RecordData = aDR_RecordIBLL.GetADR_RecordEntity( keyValue );
var jsonData = new {
ADR_Record = ADR_RecordData,
};
return Success(jsonData);
}
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult DeleteForm(string keyValue)
{
aDR_RecordIBLL.DeleteEntity(keyValue);
return Success("删除成功!");
}
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
[HttpPost]
[ValidateAntiForgeryToken]
[AjaxOnly]
public ActionResult SaveForm(string keyValue, string strEntity)
{
UserInfo userInfo = LoginUserInfo.Get(); ADR_RecordEntity entity = strEntity.ToObject<ADR_RecordEntity>();
aDR_RecordIBLL.SaveEntity(userInfo,keyValue,entity);
return Success("保存成功!");
}
#endregion

}
}

+ 35
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.cshtml Просмотреть файл

@@ -0,0 +1,35 @@
@{
ViewBag.Title = "考勤记录";
Layout = "~/Views/Shared/_Form.cshtml";
}
<div class="lr-form-wrap">
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">员工名字</div>
<input id="UserName" type="text" class="form-control" />
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">部门</div>
<div id="Department" ></div>
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">考勤日期</div>
<input id="ADDate" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#ADDate').trigger('change'); } })" />
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">考勤时间</div>
<input id="ADTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#ADTime').trigger('change'); } })" />
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">打卡时间</div>
<input id="ClockTime" type="text" class="form-control lr-input-wdatepicker" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd',onpicked: function () { $('#ClockTime').trigger('change'); } })" />
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">打卡状态</div>
<input id="ClockStatus" type="text" class="form-control" />
</div>
<div class="col-xs-12 lr-form-item" data-table="ADR_Record" >
<div class="lr-form-item-title">打卡地点</div>
<input id="ClockPlace" type="text" class="form-control" />
</div>
</div>
@Html.AppendJsFile("/Areas/LogisticsManagement/Views/ADR_Record/Form.js")

+ 56
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Form.js Просмотреть файл

@@ -0,0 +1,56 @@
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
* 创建人:超级管理员
* 日 期:2020-08-28 18:09
* 描 述:考勤记录
*/
var acceptClick;
var keyValue = request('keyValue');
var bootstrap = function ($, learun) {
"use strict";
var page = {
init: function () {
$('.lr-form-wrap').lrscroll();
page.bind();
page.initData();
},
bind: function () {
$('#Department').lrselect({
type: 'tree',
allowSearch: true,
url: top.$.rootUrl + '/LR_OrganizationModule/Department/GetTree',
param: {}
});
},
initData: function () {
if (!!keyValue) {
$.lrSetForm(top.$.rootUrl + '/LogisticsManagement/ADR_Record/GetFormData?keyValue=' + keyValue, function (data) {
for (var id in data) {
if (!!data[id].length && data[id].length > 0) {
$('#' + id ).jfGridSet('refreshdata', data[id]);
}
else {
$('[data-table="' + id + '"]').lrSetFormData(data[id]);
}
}
});
}
}
};
// 保存数据
acceptClick = function (callBack) {
if (!$('body').lrValidform()) {
return false;
}
var postData = {
strEntity: JSON.stringify($('body').lrGetFormData())
};
$.lrSaveForm(top.$.rootUrl + '/LogisticsManagement/ADR_Record/SaveForm?keyValue=' + keyValue, postData, function (res) {
// 保存成功后才回调
if (!!callBack) {
callBack();
}
});
};
page.init();
}

+ 47
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.cshtml Просмотреть файл

@@ -0,0 +1,47 @@
@{
ViewBag.Title = "考勤记录";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="lr-layout " >
<div class="lr-layout-center">
<div class="lr-layout-wrap lr-layout-wrap-notitle ">
<div class="lr-layout-tool">
<div class="lr-layout-tool-left">
<div class="lr-layout-tool-item">
<div id="datesearch"></div>
</div>
<div class="lr-layout-tool-item">
<div id="multiple_condition_query">
<div class="lr-query-formcontent">
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">员工名字</div>
<input id="UserName" type="text" class="form-control" />
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">部门</div>
<div id="Department"></div>
</div>
<div class="col-xs-12 lr-form-item">
<div class="lr-form-item-title">考勤时间</div>
</div>
</div>
</div>
</div>
</div>
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a>
</div>
<div class=" btn-group btn-group-sm" learun-authorize="yes">
<a id="lr_add" class="btn btn-default"><i class="fa fa-plus"></i>&nbsp;新增</a>
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;编辑</a>
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;删除</a>
<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i>&nbsp;打印</a>
</div>
</div>
</div>
<div class="lr-layout-body" id="gridtable"></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/LogisticsManagement/Views/ADR_Record/Index.js")

+ 136
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LogisticsManagement/Views/ADR_Record/Index.js Просмотреть файл

@@ -0,0 +1,136 @@
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
* 创建人:超级管理员
* 日 期:2020-08-28 18:09
* 描 述:考勤记录
*/
var refreshGirdData;
var bootstrap = function ($, learun) {
"use strict";
var startTime;
var endTime;
var page = {
init: function () {
page.initGird();
page.bind();
},
bind: function () {
// 时间搜索框
$('#datesearch').lrdate({
dfdata: [
{ name: '今天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00') }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
{ name: '近7天', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'd', -6) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
{ name: '近1个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -1) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } },
{ name: '近3个月', begin: function () { return learun.getDate('yyyy-MM-dd 00:00:00', 'm', -3) }, end: function () { return learun.getDate('yyyy-MM-dd 23:59:59') } }
],
// 月
mShow: false,
premShow: false,
// 季度
jShow: false,
prejShow: false,
// 年
ysShow: false,
yxShow: false,
preyShow: false,
yShow: false,
// 默认
dfvalue: '1',
selectfn: function (begin, end) {
startTime = begin;
endTime = end;
page.search();
}
});
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
page.search(queryJson);
}, 220, 400);
$('#Department').lrDepartmentSelect();
// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
});
// 新增
$('#lr_add').on('click', function () {
learun.layerForm({
id: 'form',
title: '新增',
url: top.$.rootUrl + '/LogisticsManagement/ADR_Record/Form',
width: 600,
height: 400,
callBack: function (id) {
return top[id].acceptClick(refreshGirdData);
}
});
});
// 编辑
$('#lr_edit').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('ID');
if (learun.checkrow(keyValue)) {
learun.layerForm({
id: 'form',
title: '编辑',
url: top.$.rootUrl + '/LogisticsManagement/ADR_Record/Form?keyValue=' + keyValue,
width: 600,
height: 400,
callBack: function (id) {
return top[id].acceptClick(refreshGirdData);
}
});
}
});
// 删除
$('#lr_delete').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('ID');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/ADR_Record/DeleteForm', { keyValue: keyValue}, function () {
refreshGirdData();
});
}
});
}
});
// 打印
$('#lr_print').on('click', function () {
$('#gridtable').jqprintTable();
});
},
// 初始化列表
initGird: function () {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/LogisticsManagement/ADR_Record/GetPageList',
headData: [
{ label: "员工名字", name: "UserName", width: 100, align: "left"},
{ label: "部门", name: "Department", width: 100, align: "left",
formatterAsync: function (callback, value, row, op,$cell) {
learun.clientdata.getAsync('department', {
key: value,
callback: function (_data) {
callback(_data.name);
}
});
}},
{ label: "考勤日期", name: "ADDate", width: 100, align: "left"},
{ label: "考勤时间", name: "ADTime", width: 100, align: "left"},
{ label: "打卡时间", name: "ClockTime", width: 100, align: "left"},
{ label: "打卡状态", name: "ClockStatus", width: 100, align: "left"},
{ label: "打卡地点", name: "ClockPlace", width: 100, align: "left"},
],
mainId:'ID',
isPage: true
});
},
search: function (param) {
param = param || {};
param.StartTime = startTime;
param.EndTime = endTime;
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) });
}
};
refreshGirdData = function () {
$('#gridtable').jfGridSet('reload');
};
page.init();
}

+ 17
- 6
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj Просмотреть файл

@@ -120,7 +120,7 @@
<HintPath>..\packages\MySql.Data.Entity.6.9.9\lib\net45\MySql.Data.Entity.EF6.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NPOI, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.dll</HintPath>
@@ -350,6 +350,7 @@
<Compile Include="Areas\LR_AuthorizeModule\LR_AuthorizeModuleAreaRegistration.cs" />
<Compile Include="Areas\LR_CodeDemo\Controllers\GridDemoController.cs" />
<Compile Include="Areas\LR_CodeDemo\LR_CodeDemoAreaRegistration.cs" />
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\CodeSchemaController.cs" />
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\IconController.cs" />
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\PluginDemoController.cs" />
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\TemplateAPPController.cs" />
@@ -749,6 +750,7 @@
<Compile Include="Areas\EducationalAdministration\Controllers\BC_SpecialDestinationController.cs" />
<Compile Include="Areas\EducationalAdministration\Controllers\BC_EPIController.cs" />
<Compile Include="Areas\PersonnelManagement\Controllers\ADR_RecordController.cs" />
<Compile Include="Areas\LogisticsManagement\Controllers\ADR_RecordController.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\RegistrateForm.js" />
@@ -909,7 +911,6 @@
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexOfDC.js" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexInClass.js" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\MyClass.js" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.css" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\AllocationClassDC.js" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\FormDC.js" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\SchoolUniform.js" />
@@ -1099,6 +1100,8 @@
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\CommonIndex.js" />
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\EditIndex.js" />
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\ReportIndex.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Form.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Index.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.css" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\AddBtnForm.js" />
@@ -1118,6 +1121,8 @@
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\ReportCodeIndex.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WorkflowCodeIndex.css" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WorkflowCodeIndex.js" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.css" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.js" />
<Content Include="Areas\LR_CRMModule\Views\CashBalance\Index.js" />
<Content Include="Areas\LR_CRMModule\Views\Chance\Detail.js" />
<Content Include="Areas\LR_CRMModule\Views\Chance\Form.js" />
@@ -5836,6 +5841,10 @@
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Index.js" />
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.cshtml" />
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.js" />
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Index.cshtml" />
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Index.js" />
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Form.cshtml" />
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Form.js" />
</ItemGroup>
<ItemGroup>
<Folder Include="Areas\LR_Desktop\Models\" />
@@ -6491,8 +6500,9 @@
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\Index.cshtml" />
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\StampDetailIndex.cshtml" />
<Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\AddTaskForm.cshtml" />
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.cshtml" />
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.cshtml" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Form.cshtml" />
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Index.cshtml" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="Views\Login\Default-beifen.cshtml" />
<None Include="Properties\PublishProfiles\FolderProfile1.pubxml" />
@@ -6548,8 +6558,9 @@
<Content Include="Views\Shared\_AdminForDC.cshtml" />
<Content Include="Views\Home\AdminDefaultForDC.cshtml" />
<Content Include="Views\Home\AdminTheme5.cshtml" />
<None Include="Properties\PublishProfiles\FolderProfile2.pubxml" />
<None Include="Properties\PublishProfiles\learunadms6.1.pubxml" />
<Content Include="Views\Shared\_AllIndex.cshtml" />
<Content Include="Views\Shared\_jqGrid.cshtml" />
<Content Include="Views\Shared\_ReportForm.cshtml" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />


+ 113
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_AllIndex.cshtml Просмотреть файл

@@ -0,0 +1,113 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta name=”renderer” content=”webkit|ie-comp|ie-stand” />
<meta name="viewport" content="width=device-width" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="keywords" content="快速开发平台,Web快速开发平台,ASP.NET快速开发平台,工作流,快速开发框架,软件可视化开发平台,快速开发 开源,快速开发平台 开源,APP快速开发,敏捷开发框架,快速开发" />
<meta name="description" content="力软敏捷开发框架,是一个Web可视化开发平台,是一个集PC快速开发、组织架构、工作流、表单设计、自定义报表、APP快速开发等全方位功能于一体的高效、稳定的快速开发平台。" />
<link rel="icon" href="~/favicon.ico">

<title>@ViewBag.Title</title>
<link href="~/Content/pace/pace-theme-loading-bar.css" rel="stylesheet" />
<link href="~/Content/font/css/font-awesome.min.css" rel="stylesheet" />
<link href="~/Content/font/learunfont/iconfont.css" rel="stylesheet" />
<link href="~/Content/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/jquery/plugin/toastr/toastr.css" rel="stylesheet" />
@Html.AppendCssFile(
"/Views/LR_Content/style/lr-common.css",
"/Views/LR_Content/plugin/scroll/scroll.css",
"/Views/LR_Content/style/lr-iframe-form.css",
"/Views/LR_Content/style/lr-layer.css",

"/Views/LR_Content/plugin/wizard/wizard.css",
"/Views/LR_Content/plugin/tree/lr-tree.css",
"/Views/LR_Content/plugin/select/lr-select.css",
"/Views/LR_Content/plugin/layerselect/lr-layerselect.css",
"/Views/LR_Content/plugin/timeline/lr-timeline.css",
"/Views/LR_Content/plugin/formselect/lr-formselect.css",
"/Views/LR_Content/plugin/inputsearch/lr-isearch.css",
"/Views/LR_Content/plugin/grid/jfgrid.css",
"/Views/LR_Content/plugin/uploader/lr-uploader.css",
"/Views/LR_Content/plugin/date/lr-datepicker.css"
)

<script src="~/Content/pace/pace.min.js"></script>
<script src="~/Content/jquery/jquery-1.10.2.min.js"></script>
<script src="~/Content/signalr/jquery.signalR-2.2.2.min.js"></script>
<script src="~/Content/ueditor/ueditor.config.js"></script>
<script src="~/Content/ueditor/ueditor.all.min.js"></script>
<script src="~/Content/ueditor/lang/zh-cn/zh-cn.js"></script>
<script src="~/Content/laydate/laydate.js"></script>
<!--[if lt IE 9]>
<script src="~/Content/bootstrap/html5shiv.min.js"></script>
<script src="~/Content/bootstrap/respond.min.js"></script>
<![endif]-->
<script>
function request(d) { for (var c = location.search.slice(1).split("&"), a = 0; a < c.length; a++) { var b = c[a].split("="); if (b[0] == d) if ("undefined" == unescape(b[1])) break; else return unescape(b[1]) } return "" };
</script>
</head>
<body class="@Learun.Util.Net.Browser @Learun.Util.WebHelper.GetUITheme()">
<div id="lr_form_bg" class="lr-form-bg">
</div>
@RenderBody()



<script src="~/Content/bootstrap/bootstrap.min.js"></script>
<script src="~/Content/jquery/plugin/layer/layer.js"></script>
<script src="~/Content/jquery/plugin/jquery.cookie.min.js"></script>
<script src="~/Content/jquery/jquery.md5.min.js"></script>
<script src="~/Content/jquery/plugin/toastr/toastr.min.js"></script>

<script>
$.rootUrl = '@Url.Content("~")'.substr(0, '@Url.Content("~")'.length - 1);
</script>
@Html.AppendJsFile(
)


@Html.AppendJsFile(
"/Views/LR_Content/plugin/resize/resize.js",
"/Views/LR_Content/plugin/mousewheel/mousewheel.js",

"/Views/LR_Content/script/lr-base.js",
"/Views/LR_Content/plugin/scroll/scroll.js",

"/Views/LR_Content/script/lr-tabs.js",
"/Views/LR_Content/script/lr-date.js",
"/Views/LR_Content/script/lr-validator-helper.js",
"/Views/LR_Content/script/lr-layer.js",
"/Views/LR_Content/script/lr-ajax.js",

"/Views/LR_Content/plugin/tree/lr-tree.js",
"/Views/LR_Content/plugin/select/lr-select.js",
"/Views/LR_Content/script/lr-validator.js",
"/Views/LR_Content/script/lr-form.js",
"/Views/LR_Content/plugin/wizard/wizard.js",
"/Views/LR_Content/plugin/layerselect/lr-layerselect.js",
"/Views/LR_Content/plugin/timeline/lr-timeline.js",
"/Views/LR_Content/plugin/formselect/lr-formselect.js",
"/Views/LR_Content/plugin/uploader/lr-uploader.js",
"/Views/LR_Content/plugin/date/lr-datepicker.js",
"/Views/LR_Content/plugin/grid/jfgrid.js"
)

<script>
$(function () {
$('#lr_form_bg').fadeOut();
$('#form').lrscroll();
if (!!window.bootstrap) {
bootstrap(jQuery, learun);
}
});
</script>
</body>
</html>





+ 48
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_ReportForm.cshtml Просмотреть файл

@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta name=”renderer” content=”webkit|ie-comp|ie-stand” />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<link rel="icon" href="~/favicon.ico">

<title>@ViewBag.Title|力软信息|快速开发平台|Learun敏捷开发框架</title>
<link href="~/Content/font/css/font-awesome.min.css" rel="stylesheet" />
<link href="~/Content/bootstrap/bootstrap.min.css" rel="stylesheet" />
<script src="~/Content/jquery/jquery-1.10.2.min.js"></script>
<script src="~/Content/fonts/bootstrap-3.0.0.js"></script>
@*<link href="~/Content/fontGity/css/materialdesignicons.min.css" rel="stylesheet" />*@
<link href="~/Content/GrapeCity/jsViewer.min.css" rel="stylesheet" />
<script src="~/Content/GrapeCity/jsViewer.min.js"></script>
<script>
function request(d) { for (var c = location.search.slice(1).split("&"), a = 0; a < c.length; a++) { var b = c[a].split("="); if (b[0] == d) if ("undefined" == unescape(b[1])) break; else return unescape(b[1]) } return "" };
</script>

<style>

div.page {
margin: auto;
}

#singleView {
position: relative !important;
}
/*.btn-toolbar .btn-group {
clear:left;
display:inline-block;
}
.ar-viewer .toolbar {
display: flex;
justify-content: flex-end;
flex-direction: row;
text-align:right;
}*/
</style>

</head>
<body class="@Learun.Util.Net.Browser @Learun.Util.WebHelper.GetUITheme()">
@RenderBody()
</body>
</html>

+ 53
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Shared/_jqGrid.cshtml Просмотреть файл

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta name=”renderer” content=”webkit|ie-comp|ie-stand” />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<link rel="icon" href="~/favicon.ico">

<title>@ViewBag.Title|力软信息|快速开发平台|Learun敏捷开发框架</title>

<link href="~/Content/jqGrid/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="~/Content/jqGrid/css/font-awesome.css?v=4.4.0" rel="stylesheet">

<!-- jqgrid-->
<link href="~/Content/jqGrid/css/ui.jqgrid.css?0820" rel="stylesheet">

<link href="~/Content/jqGrid/css/animate.css" rel="stylesheet">
<link href="~/Content/jqGrid/css/style.css?v=4.1.0" rel="stylesheet">
<!-- 全局js -->
<script src="~/Content/jqGrid/js/jquery.min.js?v=2.1.4"></script>
<script src="~/Content/jqGrid/js/bootstrap.min.js?v=3.3.6"></script>

<!-- Peity -->
<script src="~/Content/jqGrid/js/jquery.peity.min.js"></script>

<!-- jqGrid -->
<script src="~/Content/jqGrid/js/grid.locale-cn.js?0820"></script>
<script src="~/Content/jqGrid/js/jquery.jqGrid.min.js?0820"></script>

<!-- 自定义js -->
<script src="~/Content/jqGrid/js/content.js?v=1.0.0"></script>

@*<link rel="stylesheet" href="~/Content/jqGrid/css/ui.jqgrid.css" />
<link rel="stylesheet" href="~/Content/jqGrid/css/css/flick/jquery-ui-1.8.16.custom.css" />
<script type="text/javascript" src="~/Content/jqGrid/js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="~/Content/jqGrid/js/jquery.jqGrid.src.js"></script>
<script type="text/javascript" src="~/Content/jqGrid/js/i18n/grid.locale-cn.js"></script>*@

@*<link rel="stylesheet" href="~/Views/LR_Content/plugin/date/lr-datepicker.css" />
<script type="text/javascript" src="~/Views/LR_Content/plugin/date/lr-datepicker.js"></script>*@

@*<script type="text/javascript" src="/Areas/LR_CodeDemo/Views/GridDemo/jqGridIndex.js"></script>*@
<script>
function request(d) { for (var c = location.search.slice(1).split("&"), a = 0; a < c.length; a++) { var b = c[a].split("="); if (b[0] == d) if ("undefined" == unescape(b[1])) break; else return unescape(b[1]) } return "" };
</script>

</head>
<body class="@Learun.Util.Net.Browser @Learun.Util.WebHelper.GetUITheme()">
@RenderBody()
</body>
</html>

+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/XmlConfig/system.config Просмотреть файл

@@ -14,6 +14,8 @@
<add key="WebDirectory" value="\Learun.Application.Web" />
<add key="ApiDirectory" value="\Learun.Application.WebApi" />
<add key="AppDirectory" value="\Learun.Application.Mobile" />
<add key="WxDirectory" value="\LearunApp-2.2.0" />

<!-- ================== 2:这里主要是微信配置项内容部分 ================== -->
<!--企业号CorpId -->
<add key="CorpId" value="" />


+ 1
- 1
Learun.Framework.Ultimate V7/Learun.Application.Web/packages.config Просмотреть файл

@@ -21,7 +21,7 @@
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="MySql.Data" version="6.9.9" targetFramework="net45" />
<package id="MySql.Data.Entity" version="6.9.9" targetFramework="net45" />
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net462" />
<package id="NPOI" version="2.3.0" targetFramework="net45" />
<package id="Oracle.ManagedDataAccess" version="12.1.24160719" targetFramework="net45" />
<package id="Oracle.ManagedDataAccess.EntityFramework" version="12.1.2400" targetFramework="net45" />


+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj Просмотреть файл

@@ -287,6 +287,7 @@
<Compile Include="Modules\PersonnelManagement\EpidemicSituationApi.cs" />
<Compile Include="Modules\PersonnelManagement\ContactsDetailsApi.cs" />
<Compile Include="Modules\EducationalAdministration\ThermographyApi.cs" />
<Compile Include="Modules\LogisticsManagement\ADR_RecordApi.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Learun.Application.Organization\Learun.Application.Organization.csproj">


+ 116
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/LogisticsManagement/ADR_RecordApi.cs Просмотреть файл

@@ -0,0 +1,116 @@
using Nancy;
using Learun.Util;
using System.Collections.Generic;
using Learun.Application.TwoDevelopment.LogisticsManagement;
namespace Learun.Application.WebApi
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordApi : BaseApi
{
private ADR_RecordIBLL aDR_RecordIBLL = new ADR_RecordBLL();

/// <summary>
/// 注册接口
/// <summary>
public ADR_RecordApi()
: base("/learun/adms/LogisticsManagement/ADR_Record")
{
Get["/pagelist"] = GetPageList;
Get["/list"] = GetList;
Get["/form"] = GetForm;
Post["/delete"] = DeleteForm;
Post["/save"] = SaveForm;
}
#region 获取数据

/// <summary>
/// 获取页面显示列表分页数据
/// <summary>
/// <param name="_"></param>
/// <returns></returns>
public Response GetPageList(dynamic _)
{
ReqPageParam parameter = this.GetReqData<ReqPageParam>();
var data = aDR_RecordIBLL.GetPageList(parameter.pagination, parameter.queryJson);
var jsonData = new
{
rows = data,
total = parameter.pagination.total,
page = parameter.pagination.page,
records = parameter.pagination.records
};
return Success(jsonData);
}
/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="_"></param>
/// <returns></returns>
public Response GetList(dynamic _)
{
string queryJson = this.GetReqData();
var data = aDR_RecordIBLL.GetList(queryJson);
return Success(data);
}
/// <summary>
/// 获取表单数据
/// <summary>
/// <param name="_"></param>
/// <returns></returns>
public Response GetForm(dynamic _)
{
string keyValue = this.GetReqData();
var ADR_RecordData = aDR_RecordIBLL.GetADR_RecordEntity( keyValue );
var jsonData = new {
ADR_Record = ADR_RecordData,
};
return Success(jsonData);
}
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="_"></param>
/// <summary>
/// <returns></returns>
public Response DeleteForm(dynamic _)
{
string keyValue = this.GetReqData();
aDR_RecordIBLL.DeleteEntity(keyValue);
return Success("删除成功!");
}
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="_"></param>
/// <summary>
/// <returns></returns>
public Response SaveForm(dynamic _)
{
ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
ADR_RecordEntity entity = parameter.strEntity.ToObject<ADR_RecordEntity>();
aDR_RecordIBLL.SaveEntity(this.userInfo,parameter.keyValue,entity);
return Success("保存成功!");
}
#endregion

#region 私有类

/// <summary>
/// 表单实体类
/// <summary>
private class ReqFormEntity {
public string keyValue { get; set; }
public string strEntity{ get; set; }
}
#endregion

}
}

+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/XmlConfig/system.config Просмотреть файл

@@ -10,6 +10,8 @@
<add key="MappingDirectory" value="\Learun.Framework.Module\Learun.Application.Module\Learun.Application.Mapping" />
<add key="ServiceDirectory" value="\Learun.Framework.Module\Learun.Application.Module\Learun.Application.TwoDevelopment" />
<add key="WebDirectory" value="\Learun.Application.Web" />
<add key="WxDirectory" value="\LearunApp-2.2.0" />

<!-- ================== 2:这里主要是微信配置项内容部分 ================== -->
<!--企业号CorpId -->
<add key="CorpId" value="wxa2c39f6194f4" />


+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/BaseModel.cs Просмотреть файл

@@ -47,5 +47,7 @@ namespace Learun.Application.BaseModule.CodeGeneratorModule
/// 移动端输出目录
/// </summary>
public string appDirectory { get; set; }

public string pkType { get; set; }
}
}

+ 749
- 502
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/CodeGenerator.cs
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 4354
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeGeneratorModule/CodeGeneratorWx.cs
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 162
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaBLL.cs Просмотреть файл

@@ -0,0 +1,162 @@
using Learun.Util;
using System;
using System.Data;
using System.Collections.Generic;

namespace Learun.Application.Base.CodeSchemaModule
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-03-01 11:09
/// 描 述:代码模板
/// </summary>
public class CodeSchemaBLL : CodeSchemaIBLL
{
private CodeSchemaService codeSchemaService = new CodeSchemaService();

#region 获取数据

/// <summary>
/// 获取页面显示列表数据
/// </summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<LR_Base_CodeSchemaEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
return codeSchemaService.GetPageList(pagination, queryJson);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 获取LR_Base_CodeSchema表实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
public LR_Base_CodeSchemaEntity GetLR_Base_CodeSchemaEntity(string keyValue)
{
try
{
return codeSchemaService.GetLR_Base_CodeSchemaEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 获取左侧树形数据
/// </summary>
/// <returns></returns>
public List<TreeModel> GetTree()
{
try
{
DataTable list = codeSchemaService.GetSqlTree();
List<TreeModel> treeList = new List<TreeModel>();
foreach (DataRow item in list.Rows)
{
TreeModel node = new TreeModel
{
id = item["f_itemdetailid"].ToString(),
text = item["f_itemname"].ToString(),
value = item["f_itemdetailid"].ToString(),
showcheck = false,
checkstate = 0,
isexpand = true,
parentId = item["f_parentid"].ToString()
};
treeList.Add(node); }
return treeList.ToTree();
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// </summary>
/// <param name="keyValue">主键</param>
public void DeleteEntity(string keyValue)
{
try
{
codeSchemaService.DeleteEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>
/// <param name="keyValue">主键</param>
/// <param name="entity">实体</param>
public void SaveEntity(string keyValue, LR_Base_CodeSchemaEntity entity)
{
try
{
codeSchemaService.SaveEntity(keyValue, entity);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

}
}

+ 56
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaIBLL.cs Просмотреть файл

@@ -0,0 +1,56 @@
using Learun.Util;
using System.Data;
using System.Collections.Generic;

namespace Learun.Application.Base.CodeSchemaModule
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-03-01 11:09
/// 描 述:代码模板
/// </summary>
public interface CodeSchemaIBLL
{
#region 获取数据

/// <summary>
/// 获取页面显示列表数据
/// </summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
IEnumerable<LR_Base_CodeSchemaEntity> GetPageList(Pagination pagination, string queryJson);
/// <summary>
/// 获取LR_Base_CodeSchema表实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
LR_Base_CodeSchemaEntity GetLR_Base_CodeSchemaEntity(string keyValue);
/// <summary>
/// 获取左侧树形数据
/// </summary>
/// <returns></returns>
List<TreeModel> GetTree();
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
void DeleteEntity(string keyValue);
/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>
/// <param name="keyValue">主键</param>
/// <param name="entity">实体</param>
/// <returns></returns>
void SaveEntity(string keyValue, LR_Base_CodeSchemaEntity entity);
#endregion

}
}

+ 183
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/CodeSchemaService.cs Просмотреть файл

@@ -0,0 +1,183 @@
using Dapper;
using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;

namespace Learun.Application.Base.CodeSchemaModule
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-03-01 11:09
/// 描 述:代码模板
/// </summary>
public class CodeSchemaService : RepositoryFactory
{
#region 获取数据

/// <summary>
/// 获取页面显示列表数据
/// </summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<LR_Base_CodeSchemaEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.F_Id,
t.F_Name,
t.F_Catalog,
t.F_Type,
t.F_Description
");
strSql.Append(" FROM LR_Base_CodeSchema t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["F_Name"].IsEmpty())
{
dp.Add("F_Name", "%" + queryParam["F_Name"].ToString() + "%", DbType.String);
strSql.Append(" AND t.F_Name Like @F_Name ");
}
if (!queryParam["F_Catalog"].IsEmpty())
{
dp.Add("F_Catalog",queryParam["F_Catalog"].ToString(), DbType.String);
strSql.Append(" AND t.F_Catalog = @F_Catalog ");
}
return this.BaseRepository().FindList<LR_Base_CodeSchemaEntity>(strSql.ToString(),dp, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 获取LR_Base_CodeSchema表实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
public LR_Base_CodeSchemaEntity GetLR_Base_CodeSchemaEntity(string keyValue)
{
try
{
return this.BaseRepository().FindEntity<LR_Base_CodeSchemaEntity>(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 获取树形数据
/// </summary>
/// <returns></returns>
public DataTable GetSqlTree()
{
try
{
return this.BaseRepository().FindTable(" select * from lr_base_dataitemdetail ");
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// </summary>
/// <param name="keyValue">主键</param>
/// <returns></returns>
public void DeleteEntity(string keyValue)
{
try
{
this.BaseRepository().Delete<LR_Base_CodeSchemaEntity>(t=>t.F_Id == keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 保存实体数据(新增、修改)
/// </summary>
/// <param name="keyValue">主键</param>
/// <param name="entity">实体</param>
/// <returns></returns>
public void SaveEntity(string keyValue, LR_Base_CodeSchemaEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
this.BaseRepository().Update(entity);
}
else
{
entity.Create();
this.BaseRepository().Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

#endregion

}
}

+ 89
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/CodeSchemaModule/LR_Base_CodeSchemaEntity.cs Просмотреть файл

@@ -0,0 +1,89 @@
using Learun.Util;
using System;
using System.ComponentModel.DataAnnotations.Schema;

namespace Learun.Application.Base.CodeSchemaModule
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架
/// Copyright (c) 2013-2018 上海力软信息技术有限公司
/// 创 建:超级管理员
/// 日 期:2019-03-01 11:09
/// 描 述:代码模板
/// </summary>
public class LR_Base_CodeSchemaEntity
{
#region 实体成员
/// <summary>
/// 主键
/// </summary>
[Column("F_ID")]
public string F_Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
[Column("F_NAME")]
public string F_Name { get; set; }
/// <summary>
/// 模板类型
/// </summary>
[Column("F_TYPE")]
public string F_Type { get; set; }
/// <summary>
/// 行业类型
/// </summary>
[Column("F_CATALOG")]
public string F_Catalog { get; set; }
/// <summary>
/// 代码Schema
/// </summary>
[Column("F_CODESCHEMA")]
public string F_CodeSchema { get; set; }
/// <summary>
/// 备注
/// </summary>
[Column("F_DESCRIPTION")]
public string F_Description { get; set; }
/// <summary>
/// 创建日期
/// </summary>
[Column("F_CREATEDATE")]
public DateTime? F_CreateDate { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
[Column("F_CREATEUSERID")]
public string F_CreateUserId { get; set; }
/// <summary>
/// 创建人姓名
/// </summary>
[Column("F_CREATEUSERNAME")]
public string F_CreateUserName { get; set; }
#endregion

#region 扩展操作
/// <summary>
/// 新增调用
/// </summary>
public void Create()
{
this.F_Id = Guid.NewGuid().ToString();
this.F_CreateDate = DateTime.Now;
UserInfo userInfo = LoginUserInfo.Get();
this.F_CreateUserId = userInfo.userId;
this.F_CreateUserName = userInfo.realName;
}
/// <summary>
/// 编辑调用
/// </summary>
/// <param name="keyValue"></param>
public void Modify(string keyValue)
{
this.F_Id = keyValue;
}
#endregion
#region 扩展字段
#endregion
}
}


+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Base/Learun.Application.Base.csproj Просмотреть файл

@@ -86,10 +86,15 @@
<Compile Include="CodeGeneratorModule\CodeConfigModel.cs" />
<Compile Include="CodeGeneratorModule\CodeGenerator.cs" />
<Compile Include="CodeGeneratorModule\CodeGeneratorApp.cs" />
<Compile Include="CodeGeneratorModule\CodeGeneratorWx.cs" />
<Compile Include="CodeGeneratorModule\ColModel.cs" />
<Compile Include="CodeGeneratorModule\DbTableModel.cs" />
<Compile Include="CodeGeneratorModule\QueryModel.cs" />
<Compile Include="CodeGeneratorModule\CodeFormTabModel.cs" />
<Compile Include="CodeSchemaModule\CodeSchemaBLL.cs" />
<Compile Include="CodeSchemaModule\CodeSchemaIBLL.cs" />
<Compile Include="CodeSchemaModule\CodeSchemaService.cs" />
<Compile Include="CodeSchemaModule\LR_Base_CodeSchemaEntity.cs" />
<Compile Include="SystemModule\CodeRule\CodeRuleBLL.cs" />
<Compile Include="SystemModule\CodeRule\CodeRuleEntity.cs" />
<Compile Include="SystemModule\CodeRule\CodeRuleFormatModel.cs" />


+ 1
- 1
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/Learun.Application.Mapping.csproj Просмотреть файл

@@ -515,7 +515,7 @@
<Compile Include="EducationalAdministration\BC_SupplyAndDemandMettingMap.cs" />
<Compile Include="EducationalAdministration\BC_SpecialDestinationMap.cs" />
<Compile Include="EducationalAdministration\BC_EPIMap.cs" />
<Compile Include="PersonnelManagement\ADR_RecordMap.cs" />
<Compile Include="LogisticsManagement\ADR_RecordMap.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj">


Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/PersonnelManagement/ADR_RecordMap.cs → Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.Mapping/LogisticsManagement/ADR_RecordMap.cs Просмотреть файл

@@ -1,27 +1,27 @@
using Learun.Application.TwoDevelopment.PersonnelManagement;
using Learun.Application.TwoDevelopment.LogisticsManagement;
using System.Data.Entity.ModelConfiguration;

namespace Learun.Application.Mapping
{
/// <summary>
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
/// Copyright (c) 2013-2018 北京泉江科技有限公司
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-26 15:16
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordMap : EntityTypeConfiguration<ADR_RecordEntity>
{
public ADR_RecordMap()
{
#region 表、主键
#region 表、主键
//表
this.ToTable("ADR_RECORD");
//主键
this.HasKey(t => t.ID);
#endregion

#region 配置关系
#region 配置关系
#endregion
}
}

+ 4
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj Просмотреть файл

@@ -1551,6 +1551,10 @@
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordService.cs" />
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordBLL.cs" />
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordIBLL.cs" />
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordEntity.cs" />
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordService.cs" />
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordBLL.cs" />
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordIBLL.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj">


+ 149
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordBLL.cs Просмотреть файл

@@ -0,0 +1,149 @@
using Learun.Util;
using System;
using System.Data;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordBLL : ADR_RecordIBLL
{
private ADR_RecordService aDR_RecordService = new ADR_RecordService();

#region 获取数据

/// <summary>
/// 获取页面显示列表分页数据
/// <summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<ADR_RecordEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
return aDR_RecordService.GetPageList(pagination, queryJson);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<ADR_RecordEntity> GetList(string queryJson)
{
try
{
return aDR_RecordService.GetList(queryJson);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 获取ADR_Record表实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public ADR_RecordEntity GetADR_RecordEntity(string keyValue)
{
try
{
return aDR_RecordService.GetADR_RecordEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void DeleteEntity(string keyValue)
{
try
{
aDR_RecordService.DeleteEntity(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void SaveEntity(UserInfo userInfo, string keyValue, ADR_RecordEntity entity)
{
try
{
aDR_RecordService.SaveEntity(userInfo, keyValue, entity);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

#endregion

}
}

+ 85
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordEntity.cs Просмотреть файл

@@ -0,0 +1,85 @@
using Learun.Util;
using System;
using System.ComponentModel.DataAnnotations.Schema;

namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordEntity
{
#region 实体成员
/// <summary>
/// 编号
/// </summary>
[Column("ID")]
public string ID { get; set; }
/// <summary>
/// 员工名字
/// </summary>
[Column("USERNAME")]
public string UserName { get; set; }
/// <summary>
/// 员工编号
/// </summary>
[Column("USERNO")]
public string UserNo { get; set; }
/// <summary>
/// 部门
/// </summary>
[Column("DEPARTMENT")]
public string Department { get; set; }
/// <summary>
/// 考勤日期
/// </summary>
[Column("ADDATE")]
public string ADDate { get; set; }
/// <summary>
/// 考勤时间
/// </summary>
[Column("ADTIME")]
public DateTime? ADTime { get; set; }
/// <summary>
/// 打卡时间
/// </summary>
[Column("CLOCKTIME")]
public DateTime? ClockTime { get; set; }
/// <summary>
/// 打卡
/// </summary>
[Column("CLOCKSTATUS")]
public string ClockStatus { get; set; }
/// <summary>
/// 打卡地点
/// </summary>
[Column("CLOCKPLACE")]
public string ClockPlace { get; set; }
#endregion

#region 扩展操作
/// <summary>
/// 新增调用
/// </summary>
public void Create(UserInfo userInfo)
{
this.ID = Guid.NewGuid().ToString();
}
/// <summary>
/// 编辑调用
/// </summary>
/// <param name="keyValue"></param>
public void Modify(string keyValue, UserInfo userInfo)
{
this.ID = keyValue;
}
#endregion
#region 扩展字段
#endregion
}
}


+ 56
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordIBLL.cs Просмотреть файл

@@ -0,0 +1,56 @@
using Learun.Util;
using System.Data;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public interface ADR_RecordIBLL
{
#region 获取数据

/// <summary>
/// 获取页面显示列表分页数据
/// <summary>
/// <param name="pagination">查询参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
IEnumerable<ADR_RecordEntity> GetPageList(Pagination pagination, string queryJson);
/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
IEnumerable<ADR_RecordEntity> GetList(string queryJson);
/// <summary>
/// 获取ADR_Record表实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
ADR_RecordEntity GetADR_RecordEntity(string keyValue);
#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void DeleteEntity(string keyValue);
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
void SaveEntity(UserInfo userInfo, string keyValue, ADR_RecordEntity entity);
#endregion

}
}

+ 235
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/LogisticsManagement/ADR_Record/ADR_RecordService.cs Просмотреть файл

@@ -0,0 +1,235 @@
using Dapper;
using Learun.DataBase.Repository;
using Learun.Util;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;

namespace Learun.Application.TwoDevelopment.LogisticsManagement
{
/// <summary>
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
/// 创 建:超级管理员
/// 日 期:2020-08-28 18:09
/// 描 述:考勤记录
/// </summary>
public class ADR_RecordService : RepositoryFactory
{
#region 获取数据

/// <summary>
/// 获取页面显示列表分页数据
/// <summary>
/// <param name="pagination">分页参数</param>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<ADR_RecordEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.ID,
t.UserName,
t.Department,
t.ADDate,
t.ADTime,
t.ClockTime,
t.ClockStatus,
t.ClockPlace
");
strSql.Append(" FROM ADR_Record t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
{
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
strSql.Append(" AND ( t.ADDate >= @startTime AND t.ADDate <= @endTime ) ");
}
if (!queryParam["UserName"].IsEmpty())
{
dp.Add("UserName", "%" + queryParam["UserName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.UserName Like @UserName ");
}
if (!queryParam["Department"].IsEmpty())
{
dp.Add("Department",queryParam["Department"].ToString(), DbType.String);
strSql.Append(" AND t.Department = @Department ");
}
if (!queryParam["ADTime"].IsEmpty())
{
dp.Add("ADTime",queryParam["ADTime"].ToString(), DbType.String);
strSql.Append(" AND t.ADTime = @ADTime ");
}
return this.BaseRepository("CollegeMIS").FindList<ADR_RecordEntity>(strSql.ToString(),dp, pagination);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<ADR_RecordEntity> GetList(string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.ID,
t.UserName,
t.Department,
t.ADDate,
t.ADTime,
t.ClockTime,
t.ClockStatus,
t.ClockPlace
");
strSql.Append(" FROM ADR_Record t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
var dp = new DynamicParameters(new { });
if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
{
dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
strSql.Append(" AND ( t.ADDate >= @startTime AND t.ADDate <= @endTime ) ");
}
if (!queryParam["UserName"].IsEmpty())
{
dp.Add("UserName", "%" + queryParam["UserName"].ToString() + "%", DbType.String);
strSql.Append(" AND t.UserName Like @UserName ");
}
if (!queryParam["Department"].IsEmpty())
{
dp.Add("Department",queryParam["Department"].ToString(), DbType.String);
strSql.Append(" AND t.Department = @Department ");
}
if (!queryParam["ADTime"].IsEmpty())
{
dp.Add("ADTime",queryParam["ADTime"].ToString(), DbType.String);
strSql.Append(" AND t.ADTime = @ADTime ");
}
return this.BaseRepository("CollegeMIS").FindList<ADR_RecordEntity>(strSql.ToString(),dp);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 获取ADR_Record表实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public ADR_RecordEntity GetADR_RecordEntity(string keyValue)
{
try
{
return this.BaseRepository("CollegeMIS").FindEntity<ADR_RecordEntity>(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

#endregion

#region 提交数据

/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void DeleteEntity(string keyValue)
{
try
{
this.BaseRepository("CollegeMIS").Delete<ADR_RecordEntity>(t=>t.ID == keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void SaveEntity( UserInfo userInfo, string keyValue, ADR_RecordEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue,userInfo);
this.BaseRepository("CollegeMIS").Update(entity);
}
else
{
entity.Create(userInfo);
this.BaseRepository("CollegeMIS").Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}

#endregion

}
}

+ 3
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js Просмотреть файл

@@ -9,6 +9,9 @@ export default {
"apiHost": [
"http://localhost:8088/learun/adms"
],
// "apiHost": [
// "http://192.168.2.94:31173/learun/adms"
// ],
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示
"devAccount": [
{ username: "System", password: "0000" }


+ 4
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json Просмотреть файл

@@ -129,7 +129,10 @@
{ "path": "pages/crm/invoice/list", "style": { "navigationBarTitleText": "开票管理" } },
{ "path": "pages/crm/invoice/single", "style": { "navigationBarTitleText": "票据详情" } },
{ "path": "pages/crm/order/list", "style": { "navigationBarTitleText": "订单管理" } },
{ "path": "pages/crm/order/single", "style": { "navigationBarTitleText": "订单详情" } }
{ "path": "pages/crm/order/single", "style": { "navigationBarTitleText": "订单详情" } },
// 考勤记录
{ "path": "pages/LogisticsManagement/ADR_Record/list", "style": { "navigationBarTitleText": "考勤里列表" } },
{ "path": "pages/LogisticsManagement/ADR_Record/single", "style": { "navigationBarTitleText": "考勤详情" } }
],

// 全局样式


+ 344
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/ADR_Record/list.vue Просмотреть файл

@@ -0,0 +1,344 @@
<template>
<view class="page">
<scroll-view @scrolltolower="fetchList" :class="sideOpen ? 'show' : ''" style="padding-top: 100rpx" class="mainpage solid-top" scroll-y>
<view class="custom-list-header">
<view class="custom-list-banner">
{{ pageInfo }}
<view class="custom-list-action">
<l-icon @click="sideOpen = true" class="text-xxl" type="searchlist" color="blue" />
</view>
</view>
</view>

<view class="list">
<view class="custom-item" v-for="(item, index) of list" :key="item.ID">
<view class="custom-item-main">
<text class="custom-item-title">员工名字:</text>
{{ displayListItem(item, 'UserName') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">部门:</text>
{{ displayListItem(item, 'Department') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">考勤日期:</text>
{{ displayListItem(item, 'ADDate') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">考勤时间:</text>
{{ displayListItem(item, 'ADTime') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">打卡时间:</text>
{{ displayListItem(item, 'ClockTime') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">打卡状态:</text>
{{ displayListItem(item, 'ClockStatus') }}
</view>
<view class="custom-item-main">
<text class="custom-item-title">打卡地点:</text>
{{ displayListItem(item, 'ClockPlace') }}
</view>

<view class="custom-action">
<view @click="deleteItem(item.ID, index)" class="custom-action-btn line-red text-sm" style="border: currentColor 1px solid">
<l-icon type="delete" />
删除
</view>
<view @click="action('edit', item.ID)" class="custom-action-btn line-blue text-sm" style="border: currentColor 1px solid">
<l-icon type="edit" />
编辑
</view>
<view @click="action('view', item.ID)" class="custom-action-btn line-blue text-sm" style="border: currentColor 1px solid;min-width: 160rpx;">
查看
<l-icon type="right" />
</view>
</view>
</view>
</view>

<view class="custom-item">
{{ page >= total ? `已加载全部条目` : `加载中...` }}
</view>
</scroll-view>

<view class="sideclose" :class="sideOpen ? 'show' : ''" @click="sideOpen = false">
<l-icon type="pullright" color="blue" />
</view>

<scroll-view scroll-y class="sidepage" :class="sideOpen ? 'show' : ''">
<view v-if="ready" class="padding">
<view class="side-title">按时间筛选:</view>
<l-button @click="changeDateRange('all')" :line="dateRange !== 'all' ? 'green' : ''" :color="dateRange === 'all' ? 'green' : ''" class="block margin-top-sm" block>全部</l-button>
<l-button @click="changeDateRange('today')" :line="dateRange !== 'today' ? 'blue' : ''" :color="dateRange === 'today' ? 'blue' : ''" class="block margin-top-sm" block>今天</l-button>
<l-button @click="changeDateRange('7d')" :line="dateRange !== '7d' ? 'blue' : ''" :color="dateRange === '7d' ? 'blue' : ''" class="block margin-top-sm" block>最近7天内</l-button>
<l-button @click="changeDateRange('1m')" :line="dateRange !== '1m' ? 'blue' : ''" :color="dateRange === '1m' ? 'blue' : ''" class="block margin-top-sm" block>最近1个月内</l-button>
<l-button @click="changeDateRange('3m')" :line="dateRange !== '3m' ? 'blue' : ''" :color="dateRange === '3m' ? 'blue' : ''" class="block margin-top-sm" block>最近3个月内</l-button>
<view v-if="dateRange === 'custom'" class="side-title">自定义时间区间:</view>
<l-date-picker v-if="dateRange === 'custom'" v-model="startDate" @change="searchChange" title="起始时间" placeholder="点击来选取" />
<l-date-picker v-if="dateRange === 'custom'" v-model="endDate" @change="searchChange" title="结束时间" placeholder="点击来选取" />

<l-input
v-model="queryData.UserName"
@change="searchChange"
title ="员工名字"
placeholder="按员工名字筛选"
arrow
/>
<l-organize-picker
v-model="queryData.Department"
@change="searchChange"
type="department"
title ="部门"
placeholder="按部门筛选"
arrow
/>
<l-date-picker
v-model="queryData.ADTime"
@change="searchChange"
title ="考勤时间"
placeholder="按考勤时间筛选"
arrow
/>

<view class="padding-tb">
<l-button class="block" block line="orange" @click="reset">重置筛选条件</l-button>
</view>
</view>
</scroll-view>
<l-custom-add @click="action('create')" v-if="!sideOpen" />
</view>
</template>


<script>
/*
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2020 上海力软信息技术有限公司
* 创建人:超级管理员
* 日 期:2020-08-28 18:09
* 描 述:考勤记录
*/

import moment from 'moment'
import _ from 'lodash'

export default {
name: 'l-LogisticsManagementADR_Record',

data() {
return {
// 数据项的数据类型、结构
scheme: {
UserName: { type: 'text' },
Department: { type: 'organize', dataType: 'department' },
ADDate: { type: 'datetime', dateformat: '0' },
ADTime: { type: 'datetime', dateformat: '0' },
ClockTime: { type: 'datetime', dateformat: '0' },
ClockStatus: { type: 'text' },
ClockPlace: { type: 'text' },
},

// 筛选菜单值
defaultQueryData: {},
queryData: {
UserName: '',
Department: '',
ADTime: '',
},

// 数据源
dataSource: {
},

dateRange: 'all',
startDate: null,
endDate: null,

page: 1,
total: 2,
list: [],
searchData: {},
pageInfo: '(请等待页面加载完成...)',
sideOpen: false,
ready: false
}
},

async onLoad() {
await this.init()
},
onUnload() {
uni.$off('LogisticsManagementADR_Record-list-change')
},

methods: {
// 初始化
async init() {
uni.$on('LogisticsManagementADR_Record-list-change', this.refresh)
// 加载列表和数据源



await Promise.all([

this.fetchList()
])
this.defaultQueryData = JSON.parse(JSON.stringify(this.queryData))
this.ready = true
},

// 请求api,以获取列表数据
async fetchList(e) {
if (e && e.preventDefault) { e.preventDefault() }
if (this.page > this.total) { return }

uni.showLoading({ title: '加载订单信息...', mask: true })
const [err, { data: { data: result } } = {}] = await uni.request({
url: this.apiRoot + '/LogisticsManagement/ADR_Record/pagelist',
data: {
...this.auth,
data: JSON.stringify({
pagination: { rows: 10, page: this.page, sidx: 'ID', sord: 'DESC' },
queryJson: JSON.stringify(this.searchData)
})
}
})

if (err || !result) {
uni.hideLoading()
uni.showToast({ title: '加载数据时出错', icon: 'none' })
}
this.total = result.total
this.page = this.page + 1
this.list = this.list.concat(result.rows)
const currentPageNum = Math.min(result.page, result.total)
this.pageInfo = `已加载 ${currentPageNum} / ${result.total} 页,合计共 ${result.records} 条记录`
uni.hideLoading()
},

// 显示列表中的标题项
displayListItem(item, field) {
const fieldItem = this.scheme[field]
const value = item[field]

switch (fieldItem.type) {
case 'currentInfo':
case 'organize':
switch (fieldItem.dataType) {
case 'user': return _.get(this.$store.state.staff, `${value}.name`, '')
case 'department': return _.get(this.$store.state.dep, `${value}.name`, '')
case 'company': return _.get(this.$store.state.company, `${value}.name`, '')
default: return value || ''
}

case 'radio':
case 'select':
const selectItem = this.sourceData[field].find(t => t.value === value)
return _.get(selectItem, 'text', '')

case 'checkbox':
if (!value || value.split(',').length <= 0) { return '' }
const checkboxItems = value.split(',')
return this.sourceData[field].filter(t => checkboxItems.includes(t.value)).map(t => t.text).join(',')

case 'datetime':
if (!value) { return '' }
return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss')

default: return value || ''
}
},

// 列表内容发生变化,刷新列表
async refresh(e) {
this.page = 1
this.total = 2
this.list = []
await this.fetchList()
},

// 设置搜索条件
async searchChange() {
const result = {}

const todayEnd = moment().format('YYYY-MM-DD 23:59:59')
if (dateRange === 'today') {
result.StartTime = moment().subtract(1, 'day').format('YYYY-MM-DD 00:00:00')
result.EndTime = todayEnd
} else if (dateRange === '7d') {
result.StartTime = moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00')
result.EndTime = todayEnd
} else if (dateRange === '1m') {
result.StartTime = moment().subtract(1, 'month').format('YYYY-MM-DD 00:00:00')
result.EndTime = todayEnd
} else if (dateRange === '3m') {
result.StartTime = moment().subtract(3, 'months').format('YYYY-MM-DD 00:00:00')
result.EndTime = todayEnd
} else if (dateRange === 'custom' && (startDate || startDate)) {
if (!(startDate && startDate && moment(startDate).isAfter(endDate))) {
result.StartTime = startDate ? moment(startDate).format('YYYY-MM-DD 00:00:00') : '1900-01-01 00:00:00'
result.EndTime = endDate ? moment(endDate).format('YYYY-MM-DD 23:59:59') : todayEnd
}
}

const queryObj = _.pickBy(this.queryData, t => (Array.isArray(t) ? t.length > 0 : t))
Object.assign(result, _.mapValues(queryObj, t => (Array.isArray(t) ? t.join(',') : t)))

this.searchData = result
await this.refresh()
},

// 点击「清空搜索条件」按钮
reset() {
this.dateRange = 'all'
this.startDate = null
this.endDate = null

this.queryData = JSON.parse(JSON.stringify(this.defaultQueryData))

this.searchChange()
},

// 点击「编辑」、「查看」、「添加」按钮
action(type, id = 'no') {
uni.navigateTo({ url: `./single?type=${type}&id=${id}` })
},

// 点击「删除」按钮
async deleteItem(id, index) {
uni.showModal({
title: '删除项目',
content: '确定要删除该项吗?',
success: ({ confirm }) => {
if (!confirm) { return }
uni
.request({
url: this.apiRoot + '/LogisticsManagement/ADR_Record/delete',
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: { ...this.auth, data: id }
})
.then(([err, { data }]) => {
if (err || !data || data.code !== 200) {
uni.showToast({ title: '删除失败', icon: 'none' })
return
}
uni.showToast({ title: '删除成功', icon: 'success' })
this.refresh()
})
}
})
},

}

}
</script>


<style lang="less" scoped>
@import '~@/common/css/sidepage.less';
@import '~@/common/css/custom-item.less';
</style>

+ 267
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/ADR_Record/single.vue Просмотреть файл

@@ -0,0 +1,267 @@
<template>
<view class="page">
<view v-if="ready">
<l-input
@input="setValue('ADR_Record.UserName', $event)"
:value="getValue('ADR_Record.UserName')"
:disabled="!edit"
title="员工名字"
placeholder="请输入员工名字"
right
/>
<l-organize-picker
@input="setValue('ADR_Record.Department', $event)"
:value="getValue('ADR_Record.Department')"
:readonly="!edit"
:arrow="edit"
type="department"
title="部门"
placeholder="请选择部门"
/>
<l-date-picker
@input="setValue('ADR_Record.ADDate', $event)"
:value="getValue('ADR_Record.ADDate')"
:disabled="!edit"
:arrow="edit"
title="考勤日期"
placeholder="请选择考勤日期"
/>
<l-date-picker
@input="setValue('ADR_Record.ADTime', $event)"
:value="getValue('ADR_Record.ADTime')"
:disabled="!edit"
:arrow="edit"
title="考勤时间"
placeholder="请选择考勤时间"
/>
<l-date-picker
@input="setValue('ADR_Record.ClockTime', $event)"
:value="getValue('ADR_Record.ClockTime')"
:disabled="!edit"
:arrow="edit"
title="打卡时间"
placeholder="请选择打卡时间"
/>
<l-input
@input="setValue('ADR_Record.ClockStatus', $event)"
:value="getValue('ADR_Record.ClockStatus')"
:disabled="!edit"
title="打卡状态"
placeholder="请输入打卡状态"
right
/>
<l-input
@input="setValue('ADR_Record.ClockPlace', $event)"
:value="getValue('ADR_Record.ClockPlace')"
:disabled="!edit"
title="打卡地点"
placeholder="请输入打卡地点"
right
/>
</view>

<view v-if="ready" class="padding-lr bg-white margin-tb padding-tb">
<l-button v-if="edit" @click="action('save')" class="block" size="lg" color="green" block>
提交保存
</l-button>
<l-button v-if="!edit && mode !== 'create'" @click="action('edit')" class="block" size="lg" line="orange" block>
编辑本页
</l-button>
<l-button v-if="edit && mode !== 'create'" @click="action('reset')" class="block margin-top" size="lg" line="red" block>
取消编辑
</l-button>
<l-button v-if="!edit && mode !== 'create'" @click="action('delete')" class="block margin-top" size="lg" line="red" block>
删除
</l-button>
</view>
</view>
</template>


<script>
/*
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
* Copyright (c) 2013-2020 上海力软信息技术有限公司
* 创建人:超级管理员
* 日 期:2020-08-28 18:09
* 描 述:考勤记录
*/

import _ from 'lodash'
import moment from 'moment'
import { guid, copy } from '@/common/utils.js'
import customPageMixins from '@/common/custom-page.js'

export default {
mixins: [customPageMixins],

data() {
return {
id: null,
mode: null,
edit: null,
modal: null,
ready: false,

current: null,
origin: null,

// 表单项数据结构
scheme: {
ADR_Record: {
UserName: { type: 'text', title: '员工名字' },
Department: { type: 'organize', title: '部门', dataType: 'department' },
ADDate: { type: 'datetime', title: '考勤日期', dateformat: '0' },
ADTime: { type: 'datetime', title: '考勤时间', dateformat: '0' },
ClockTime: { type: 'datetime', title: '打卡时间', dateformat: '0' },
ClockStatus: { type: 'text', title: '打卡状态' },
ClockPlace: { type: 'text', title: '打卡地点' },
},

},

// 数据源
dataSource: {
ADR_Record: {
},

}
}
},

async onLoad({ type, id }) {
await this.init(type, id)
},

methods: {
async init(type, id) {
uni.showLoading({ title: `加载数据中...`, mask: true })

this.id = id
this.mode = type
this.edit = ['create', 'edit'].includes(this.mode)



// 加载所有数据源
await Promise.all([

this.fetchForm()
])

this.ready = true
uni.hideLoading()
},

// 获取表单值
getValue(path) {
return _.get(this.current, path)
},

// 设置表单值
setValue(path, val) {
_.set(this.current, path, val)
},

// 加载表单数据
async fetchForm() {
if (this.mode === 'create') {
this.origin = await this.getDefaultForm()
} else {
const [err, { data: { data: result } } = {}] = await uni.request({
url: this.apiRoot + '/LogisticsManagement/ADR_Record/form',
data: { ...this.auth, data: this.id }
})
this.origin = await this.formatFormData(result)
}
this.current = copy(this.origin)
},

// 点击「编辑、重置、保存、删除」按钮
async action(type) {
switch (type) {
case 'edit':
this.edit = true
break

case 'reset':
this.current = copy(this.origin)
this.edit = false
break

case 'save':
const verifyResult = this.verifyForm()
if (verifyResult.length > 0) {
uni.showModal({ title: '表单验证失败', content: verifyResult.join('\n'), showCancel: false })
return
}

uni.showModal({
title: '提交确认',
content: `确定要提交本页表单内容吗?`,
success: async ({ confirm }) => {
if (!confirm) { return }
uni.showLoading({ title: '正在提交...', mask: true })
const postData = await this.getPostData()

uni
.request({
url: this.apiRoot + `/LogisticsManagement/ADR_Record/save`,
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: { ...this.auth, data: postData }
})
.then(([err, result]) => {
uni.hideLoading()
if (err || result.data.code !== 200) {
uni.showToast({ title: `表单提交保存失败`, icon: 'none' })
return
}

uni.$emit('LogisticsManagementADR_Record-list-change')
uni.navigateBack()
uni.showToast({ title: `提交保存成功`, icon: 'success' })
})
}
})
break

case 'delete':
uni.showModal({
title: '删除项目',
content: `确定要删除本项吗?`,
success: ({ confirm }) => {
if (!confirm) { return }

uni
.request({
url: this.apiRoot + `/LogisticsManagement/ADR_Record/delete`,
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: { ...this.auth, data: this.id }
})
.then(([err, { data }]) => {
if (err || !data || data.code !== 200) {
uni.showToast({ title: '删除失败', icon: 'none' })
return
}

uni.$emit('LogisticsManagementADR_Record-list-change')
uni.navigateBack()
uni.showToast({ title: '删除成功', icon: 'success' })
})
}
})
break

default: break
}
}
}
}
</script>


<style lang="less" scoped>
@import '~@/common/css/custom-form.less';
</style>

+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/home.vue Просмотреть файл

@@ -59,7 +59,7 @@
</view>

<!-- 图表区块 -->
<view v-for="(item, index) of chartData" :key="item.id" class="margin-bottom">
<view v-for="(item) of chartData" :key="item.id" class="margin-bottom">
<l-title>{{ item.title }}</l-title>
<view :style="{ width: cWidth + 'px', height: cHeight + 'px' }" class="chart-list">
<!--#ifndef MP-ALIPAY -->


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/.signature.p7s Просмотреть файл


+ 20
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/LICENSE.md Просмотреть файл

@@ -0,0 +1,20 @@
The MIT License (MIT)

Copyright (c) 2007 James Newton-King

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/Newtonsoft.Json.12.0.2.nupkg Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net20/Newtonsoft.Json.dll Просмотреть файл


+ 10208
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net20/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net35/Newtonsoft.Json.dll Просмотреть файл


+ 9356
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net35/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net40/Newtonsoft.Json.dll Просмотреть файл


+ 9556
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net40/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net45/Newtonsoft.Json.dll Просмотреть файл


+ 11172
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/net45/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.0/Newtonsoft.Json.dll Просмотреть файл


+ 10860
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.0/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.3/Newtonsoft.Json.dll Просмотреть файл


+ 10982
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard1.3/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard2.0/Newtonsoft.Json.dll Просмотреть файл


+ 11147
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/netstandard2.0/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll Просмотреть файл


+ 8920
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll Просмотреть файл


+ 10860
- 0
Learun.Framework.Ultimate V7/packages/Newtonsoft.Json.12.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Загрузка…
Отмена
Сохранить