@@ -16,4 +16,62 @@ bin/ | |||||
debug/ | debug/ | ||||
obj/ | obj/ | ||||
release/ | 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 |
@@ -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 | |||||
} | |||||
} |
@@ -10,9 +10,9 @@ using System.Web.Mvc; | |||||
namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 | |||||
/// Copyright (c) 2013-2018 北京泉江科技有限公司 | |||||
/// 创建人:陈彬彬 | |||||
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架 | |||||
/// Copyright (c) 2013-2018 上海力软信息技术有限公司 | |||||
/// 创建人:力软-框架开发组 | |||||
/// 日 期:2017.03.09 | /// 日 期:2017.03.09 | ||||
/// 描 述:PC端代码生成器 | /// 描 述:PC端代码生成器 | ||||
/// </summary> | /// </summary> | ||||
@@ -20,13 +20,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
{ | { | ||||
private CodeGenerator codeGenerator = new CodeGenerator(); | private CodeGenerator codeGenerator = new CodeGenerator(); | ||||
private CodeGeneratorApp codeGeneratorApp = new CodeGeneratorApp(); | private CodeGeneratorApp codeGeneratorApp = new CodeGeneratorApp(); | ||||
private CodeGeneratorWx codeGeneratorWx = new CodeGeneratorWx(); | |||||
private ModuleIBLL moduleIBLL = new ModuleBLL(); | private ModuleIBLL moduleIBLL = new ModuleBLL(); | ||||
private DatabaseTableIBLL databaseTableIBLL = new DatabaseTableBLL(); | private DatabaseTableIBLL databaseTableIBLL = new DatabaseTableBLL(); | ||||
private FunctionIBLL functionIBLL = new FunctionBLL(); | private FunctionIBLL functionIBLL = new FunctionBLL(); | ||||
#region 视图功能 | |||||
#region 视图功能 | |||||
/// <summary> | /// <summary> | ||||
/// 管理页面 | /// 管理页面 | ||||
/// </summary> | /// </summary> | ||||
@@ -150,9 +151,25 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
return View(); | 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 | #endregion | ||||
#region 自定义开发模板 | |||||
#region 自定义开发模板 | |||||
/// <summary> | /// <summary> | ||||
/// 自定义开发模板代码生成 | /// 自定义开发模板代码生成 | ||||
/// </summary> | /// </summary> | ||||
@@ -239,7 +256,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
formJsCode = formJsCode | formJsCode = formJsCode | ||||
}; | }; | ||||
return JsonResult(jsonData); | |||||
return Success(jsonData); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 自定义开发模板代码生成(创建) | /// 自定义开发模板代码生成(创建) | ||||
@@ -404,7 +421,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
} | } | ||||
#endregion | #endregion | ||||
#region 快速开发模板 | |||||
#region 快速开发模板 | |||||
/// <summary> | /// <summary> | ||||
/// 快速开发代码查看 | /// 快速开发代码查看 | ||||
/// </summary> | /// </summary> | ||||
@@ -452,7 +469,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
formJsCode = formJsCode | formJsCode = formJsCode | ||||
}; | }; | ||||
return JsonResult(jsonData); | |||||
return Success(jsonData); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 快速开发代码创建 | /// 快速开发代码创建 | ||||
@@ -549,7 +566,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
} | } | ||||
#endregion | #endregion | ||||
#region 快速生成实体类和映射类 | |||||
#region 快速生成实体类和映射类 | |||||
/// <summary> | /// <summary> | ||||
/// 快速开发代码查看 | /// 快速开发代码查看 | ||||
/// </summary> | /// </summary> | ||||
@@ -576,7 +593,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
mapCode = mapCode | mapCode = mapCode | ||||
}; | }; | ||||
return JsonResult(jsonData); | |||||
return Success(jsonData); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 快速开发代码创建 | /// 快速开发代码创建 | ||||
@@ -603,7 +620,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
} | } | ||||
#endregion | #endregion | ||||
#region 流程系统表单模板 | |||||
#region 流程系统表单模板 | |||||
/// <summary> | /// <summary> | ||||
/// 流程系统表单代码生成 | /// 流程系统表单代码生成 | ||||
/// </summary> | /// </summary> | ||||
@@ -687,7 +704,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
formJsCode = formJsCode | formJsCode = formJsCode | ||||
}; | }; | ||||
return JsonResult(jsonData); | |||||
return Success(jsonData); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 流程系统表单代码创建 | /// 流程系统表单代码创建 | ||||
@@ -848,24 +865,23 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
#endregion | #endregion | ||||
#region 扩展 EXCLE风格模板 还未完成 | |||||
#region 编辑列表开发模板 | |||||
/// <summary> | /// <summary> | ||||
/// Looks the grid edit code. | |||||
/// 编辑列表开发模板代码生成 | |||||
/// </summary> | /// </summary> | ||||
/// <param name="databaseLinkId">数据库连接ID</param> | /// <param name="databaseLinkId">数据库连接ID</param> | ||||
/// <param name="dbTable">数据表.</param> | |||||
/// <param name="dbTable">数据表</param> | |||||
/// <param name="dbTablePk">数据表主键</param> | |||||
/// <param name="formData">表单数据</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] | [HttpPost] | ||||
[AjaxOnly] | [AjaxOnly] | ||||
public ActionResult LookGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo) | 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>>(); | List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>(); | ||||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | ||||
ColModel colDataObj = colData.ToObject<ColModel>(); | 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); | 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); | string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap); | ||||
// 表单js类 | // 表单js类 | ||||
string formJsCode = codeGenerator.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2); | |||||
string formJsCode = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2); | |||||
var jsonData = new | var jsonData = new | ||||
{ | { | ||||
@@ -936,82 +938,244 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
formJsCode = formJsCode | 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 | #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] | [HttpPost] | ||||
[AjaxOnly] | [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>(); | QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | ||||
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>(); | |||||
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>(); | |||||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | 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 bllCode = codeGenerator.ReportBllCreate(baseInfoObj); | ||||
// 业务接口类 | |||||
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj); | string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj); | ||||
// 控制器类 | |||||
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj); | string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj); | ||||
// 页面类 | |||||
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | 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, | serviceCode = serviceCode, | ||||
controllerCode = controllerCode, | |||||
bllCode = bllCode, | |||||
ibllCode = ibllCode, | ibllCode = ibllCode, | ||||
controllerCode = controllerCode, | |||||
indexCode = indexCode, | 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] | [HttpPost] | ||||
[AjaxOnly] | [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>(); | QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | ||||
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>(); | |||||
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>(); | |||||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | 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>(); | var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>(); | ||||
moduleEntity.F_Target = "iframe"; | moduleEntity.F_Target = "iframe"; | ||||
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index"; | moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index"; | ||||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||||
// 按钮 | |||||
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>(); | 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>(); | List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>(); | ||||
foreach (var col in colDataObjs) | |||||
foreach (var col in collist) | |||||
{ | { | ||||
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity(); | ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity(); | ||||
moduleColumnEntity.Create(); | moduleColumnEntity.Create(); | ||||
moduleColumnEntity.F_EnCode = col.field; | moduleColumnEntity.F_EnCode = col.field; | ||||
@@ -1020,18 +1184,20 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
moduleColumnList.Add(moduleColumnEntity); | moduleColumnList.Add(moduleColumnEntity); | ||||
} | } | ||||
// 表单字段 | |||||
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>(); | |||||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||||
if (moduleEntityTemp == null) | if (moduleEntityTemp == null) | ||||
{ | { | ||||
moduleIBLL.SaveEntity ("", moduleEntity, moduleButtonList, moduleColumnList, null);//模块功能cbb | |||||
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb | |||||
} | } | ||||
// 实体类 映射类 | |||||
string codeContent = ""; | string codeContent = ""; | ||||
// 服务类 | // 服务类 | ||||
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId,strSql,colDataObjs,queryDataObj,baseInfoObj); | |||||
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj); | |||||
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent); | codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent); | ||||
// 业务类 | // 业务类 | ||||
codeContent = codeGenerator.ReportBllCreate(baseInfoObj); | codeContent = codeGenerator.ReportBllCreate(baseInfoObj); | ||||
@@ -1046,20 +1212,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
codeContent = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | codeContent = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | ||||
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent); | codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent); | ||||
// 页面js类 | // 页面js类 | ||||
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj); | |||||
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj); | |||||
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent); | codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent); | ||||
// 按钮 | |||||
return Success("创建成功"); | return Success("创建成功"); | ||||
} | } | ||||
#endregion | #endregion | ||||
#region 移动开发模板 | |||||
#region 移动开发模板 | |||||
/// <summary> | /// <summary> | ||||
/// 移动开发模板代码生成 | /// 移动开发模板代码生成 | ||||
/// </summary> | /// </summary> | ||||
@@ -1164,7 +1324,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
appFormCode = appFormCode + appFormJsCode | appFormCode = appFormCode + appFormJsCode | ||||
}; | }; | ||||
return JsonResult(jsonData); | |||||
return Success(jsonData); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 自定义开发模板代码生成(创建) | /// 自定义开发模板代码生成(创建) | ||||
@@ -1358,7 +1518,291 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||||
} | } | ||||
#endregion | #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> | ||||
/// 获取项目根目录 | /// 获取项目根目录 | ||||
/// </summary> | /// </summary> | ||||
@@ -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") |
@@ -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(); | |||||
} |
@@ -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> <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> 加载模板</a> | |||||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/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(); | |||||
} |
@@ -110,6 +110,21 @@ | |||||
<a class="btn btn-default" id="lr_appCustmerCode">配置</a> | <a class="btn btn-default" id="lr_appCustmerCode">配置</a> | ||||
</div> | </div> | ||||
</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> | </div> | ||||
</div> | </div> | ||||
@@ -96,6 +96,20 @@ var bootstrap = function ($, learun) { | |||||
btn: null | 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(); | page.init(); |
@@ -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> <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> <span class="lrlg">新增</span></div> | |||||
<div class="lbtn active" data-value="edit"><i class="fa fa-pencil-square-o"></i> <span class="lrlg">编辑</span></div> | |||||
<div class="lbtn active" data-value="delete"><i class="fa fa-trash-o"></i> <span class="lrlg">删除</span></div> | |||||
<div class="lbtn active" data-value="print"><i class="fa fa-print"></i> <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") | |||||
@@ -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; | |||||
} |
@@ -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 | |||||
} | |||||
} |
@@ -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") |
@@ -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(); | |||||
} |
@@ -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> 新增</a> | |||||
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i> 编辑</a> | |||||
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i> 删除</a> | |||||
<a id="lr_print" class="btn btn-default"><i class="fa fa-print"></i> 打印</a> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="lr-layout-body" id="gridtable"></div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@Html.AppendJsFile("/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(); | |||||
} |
@@ -120,7 +120,7 @@ | |||||
<HintPath>..\packages\MySql.Data.Entity.6.9.9\lib\net45\MySql.Data.Entity.EF6.dll</HintPath> | <HintPath>..\packages\MySql.Data.Entity.6.9.9\lib\net45\MySql.Data.Entity.EF6.dll</HintPath> | ||||
</Reference> | </Reference> | ||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | <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> | ||||
<Reference Include="NPOI, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> | <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> | <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_AuthorizeModule\LR_AuthorizeModuleAreaRegistration.cs" /> | ||||
<Compile Include="Areas\LR_CodeDemo\Controllers\GridDemoController.cs" /> | <Compile Include="Areas\LR_CodeDemo\Controllers\GridDemoController.cs" /> | ||||
<Compile Include="Areas\LR_CodeDemo\LR_CodeDemoAreaRegistration.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\IconController.cs" /> | ||||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\PluginDemoController.cs" /> | <Compile Include="Areas\LR_CodeGeneratorModule\Controllers\PluginDemoController.cs" /> | ||||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\TemplateAPPController.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_SpecialDestinationController.cs" /> | ||||
<Compile Include="Areas\EducationalAdministration\Controllers\BC_EPIController.cs" /> | <Compile Include="Areas\EducationalAdministration\Controllers\BC_EPIController.cs" /> | ||||
<Compile Include="Areas\PersonnelManagement\Controllers\ADR_RecordController.cs" /> | <Compile Include="Areas\PersonnelManagement\Controllers\ADR_RecordController.cs" /> | ||||
<Compile Include="Areas\LogisticsManagement\Controllers\ADR_RecordController.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\RegistrateForm.js" /> | <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\IndexOfDC.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexInClass.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexInClass.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\MyClass.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\AllocationClassDC.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\FormDC.js" /> | <Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\FormDC.js" /> | ||||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\SchoolUniform.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\CommonIndex.js" /> | ||||
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\EditIndex.js" /> | <Content Include="Areas\LR_CodeDemo\Views\GridDemo\EditIndex.js" /> | ||||
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\ReportIndex.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.css" /> | ||||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.js" /> | <Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.js" /> | ||||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\AddBtnForm.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\ReportCodeIndex.js" /> | ||||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WorkflowCodeIndex.css" /> | <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\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\CashBalance\Index.js" /> | ||||
<Content Include="Areas\LR_CRMModule\Views\Chance\Detail.js" /> | <Content Include="Areas\LR_CRMModule\Views\Chance\Detail.js" /> | ||||
<Content Include="Areas\LR_CRMModule\Views\Chance\Form.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\Index.js" /> | ||||
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.cshtml" /> | <Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.cshtml" /> | ||||
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.js" /> | <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> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Folder Include="Areas\LR_Desktop\Models\" /> | <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\Index.cshtml" /> | ||||
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\StampDetailIndex.cshtml" /> | <Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\StampDetailIndex.cshtml" /> | ||||
<Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\AddTaskForm.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" /> | <None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | ||||
<Content Include="Views\Login\Default-beifen.cshtml" /> | <Content Include="Views\Login\Default-beifen.cshtml" /> | ||||
<None Include="Properties\PublishProfiles\FolderProfile1.pubxml" /> | <None Include="Properties\PublishProfiles\FolderProfile1.pubxml" /> | ||||
@@ -6548,8 +6558,9 @@ | |||||
<Content Include="Views\Shared\_AdminForDC.cshtml" /> | <Content Include="Views\Shared\_AdminForDC.cshtml" /> | ||||
<Content Include="Views\Home\AdminDefaultForDC.cshtml" /> | <Content Include="Views\Home\AdminDefaultForDC.cshtml" /> | ||||
<Content Include="Views\Home\AdminTheme5.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> | ||||
<ItemGroup> | <ItemGroup> | ||||
<WCFMetadata Include="Connected Services\" /> | <WCFMetadata Include="Connected Services\" /> | ||||
@@ -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> | |||||
@@ -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> |
@@ -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> |
@@ -14,6 +14,8 @@ | |||||
<add key="WebDirectory" value="\Learun.Application.Web" /> | <add key="WebDirectory" value="\Learun.Application.Web" /> | ||||
<add key="ApiDirectory" value="\Learun.Application.WebApi" /> | <add key="ApiDirectory" value="\Learun.Application.WebApi" /> | ||||
<add key="AppDirectory" value="\Learun.Application.Mobile" /> | <add key="AppDirectory" value="\Learun.Application.Mobile" /> | ||||
<add key="WxDirectory" value="\LearunApp-2.2.0" /> | |||||
<!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | <!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | ||||
<!--企业号CorpId --> | <!--企业号CorpId --> | ||||
<add key="CorpId" value="" /> | <add key="CorpId" value="" /> | ||||
@@ -21,7 +21,7 @@ | |||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> | <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" version="6.9.9" targetFramework="net45" /> | ||||
<package id="MySql.Data.Entity" 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="NPOI" version="2.3.0" targetFramework="net45" /> | ||||
<package id="Oracle.ManagedDataAccess" version="12.1.24160719" targetFramework="net45" /> | <package id="Oracle.ManagedDataAccess" version="12.1.24160719" targetFramework="net45" /> | ||||
<package id="Oracle.ManagedDataAccess.EntityFramework" version="12.1.2400" targetFramework="net45" /> | <package id="Oracle.ManagedDataAccess.EntityFramework" version="12.1.2400" targetFramework="net45" /> | ||||
@@ -287,6 +287,7 @@ | |||||
<Compile Include="Modules\PersonnelManagement\EpidemicSituationApi.cs" /> | <Compile Include="Modules\PersonnelManagement\EpidemicSituationApi.cs" /> | ||||
<Compile Include="Modules\PersonnelManagement\ContactsDetailsApi.cs" /> | <Compile Include="Modules\PersonnelManagement\ContactsDetailsApi.cs" /> | ||||
<Compile Include="Modules\EducationalAdministration\ThermographyApi.cs" /> | <Compile Include="Modules\EducationalAdministration\ThermographyApi.cs" /> | ||||
<Compile Include="Modules\LogisticsManagement\ADR_RecordApi.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | <ProjectReference Include="..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | ||||
@@ -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 | |||||
} | |||||
} |
@@ -10,6 +10,8 @@ | |||||
<add key="MappingDirectory" value="\Learun.Framework.Module\Learun.Application.Module\Learun.Application.Mapping" /> | <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="ServiceDirectory" value="\Learun.Framework.Module\Learun.Application.Module\Learun.Application.TwoDevelopment" /> | ||||
<add key="WebDirectory" value="\Learun.Application.Web" /> | <add key="WebDirectory" value="\Learun.Application.Web" /> | ||||
<add key="WxDirectory" value="\LearunApp-2.2.0" /> | |||||
<!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | <!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | ||||
<!--企业号CorpId --> | <!--企业号CorpId --> | ||||
<add key="CorpId" value="wxa2c39f6194f4" /> | <add key="CorpId" value="wxa2c39f6194f4" /> | ||||
@@ -47,5 +47,7 @@ namespace Learun.Application.BaseModule.CodeGeneratorModule | |||||
/// 移动端输出目录 | /// 移动端输出目录 | ||||
/// </summary> | /// </summary> | ||||
public string appDirectory { get; set; } | public string appDirectory { get; set; } | ||||
public string pkType { get; set; } | |||||
} | } | ||||
} | } |
@@ -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 | |||||
} | |||||
} |
@@ -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 | |||||
} | |||||
} |
@@ -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 | |||||
} | |||||
} |
@@ -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 | |||||
} | |||||
} | |||||
@@ -86,10 +86,15 @@ | |||||
<Compile Include="CodeGeneratorModule\CodeConfigModel.cs" /> | <Compile Include="CodeGeneratorModule\CodeConfigModel.cs" /> | ||||
<Compile Include="CodeGeneratorModule\CodeGenerator.cs" /> | <Compile Include="CodeGeneratorModule\CodeGenerator.cs" /> | ||||
<Compile Include="CodeGeneratorModule\CodeGeneratorApp.cs" /> | <Compile Include="CodeGeneratorModule\CodeGeneratorApp.cs" /> | ||||
<Compile Include="CodeGeneratorModule\CodeGeneratorWx.cs" /> | |||||
<Compile Include="CodeGeneratorModule\ColModel.cs" /> | <Compile Include="CodeGeneratorModule\ColModel.cs" /> | ||||
<Compile Include="CodeGeneratorModule\DbTableModel.cs" /> | <Compile Include="CodeGeneratorModule\DbTableModel.cs" /> | ||||
<Compile Include="CodeGeneratorModule\QueryModel.cs" /> | <Compile Include="CodeGeneratorModule\QueryModel.cs" /> | ||||
<Compile Include="CodeGeneratorModule\CodeFormTabModel.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\CodeRuleBLL.cs" /> | ||||
<Compile Include="SystemModule\CodeRule\CodeRuleEntity.cs" /> | <Compile Include="SystemModule\CodeRule\CodeRuleEntity.cs" /> | ||||
<Compile Include="SystemModule\CodeRule\CodeRuleFormatModel.cs" /> | <Compile Include="SystemModule\CodeRule\CodeRuleFormatModel.cs" /> | ||||
@@ -515,7 +515,7 @@ | |||||
<Compile Include="EducationalAdministration\BC_SupplyAndDemandMettingMap.cs" /> | <Compile Include="EducationalAdministration\BC_SupplyAndDemandMettingMap.cs" /> | ||||
<Compile Include="EducationalAdministration\BC_SpecialDestinationMap.cs" /> | <Compile Include="EducationalAdministration\BC_SpecialDestinationMap.cs" /> | ||||
<Compile Include="EducationalAdministration\BC_EPIMap.cs" /> | <Compile Include="EducationalAdministration\BC_EPIMap.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_RecordMap.cs" /> | |||||
<Compile Include="LogisticsManagement\ADR_RecordMap.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | <ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | ||||
@@ -1,27 +1,27 @@ | |||||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||||
using Learun.Application.TwoDevelopment.LogisticsManagement; | |||||
using System.Data.Entity.ModelConfiguration; | using System.Data.Entity.ModelConfiguration; | ||||
namespace Learun.Application.Mapping | namespace Learun.Application.Mapping | ||||
{ | { | ||||
/// <summary> | /// <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> | /// </summary> | ||||
public class ADR_RecordMap : EntityTypeConfiguration<ADR_RecordEntity> | public class ADR_RecordMap : EntityTypeConfiguration<ADR_RecordEntity> | ||||
{ | { | ||||
public ADR_RecordMap() | public ADR_RecordMap() | ||||
{ | { | ||||
#region 表、主键 | |||||
#region 表、主键 | |||||
//表 | //表 | ||||
this.ToTable("ADR_RECORD"); | this.ToTable("ADR_RECORD"); | ||||
//主键 | //主键 | ||||
this.HasKey(t => t.ID); | this.HasKey(t => t.ID); | ||||
#endregion | #endregion | ||||
#region 配置关系 | |||||
#region 配置关系 | |||||
#endregion | #endregion | ||||
} | } | ||||
} | } |
@@ -1551,6 +1551,10 @@ | |||||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordService.cs" /> | <Compile Include="PersonnelManagement\ADR_Record\ADR_RecordService.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordBLL.cs" /> | <Compile Include="PersonnelManagement\ADR_Record\ADR_RecordBLL.cs" /> | ||||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordIBLL.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> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | <ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | ||||
@@ -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 | |||||
} | |||||
} |
@@ -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 | |||||
} | |||||
} | |||||
@@ -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 | |||||
} | |||||
} |
@@ -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 | |||||
} | |||||
} |
@@ -9,6 +9,9 @@ export default { | |||||
"apiHost": [ | "apiHost": [ | ||||
"http://localhost:8088/learun/adms" | "http://localhost:8088/learun/adms" | ||||
], | ], | ||||
// "apiHost": [ | |||||
// "http://192.168.2.94:31173/learun/adms" | |||||
// ], | |||||
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示 | // 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示 | ||||
"devAccount": [ | "devAccount": [ | ||||
{ username: "System", password: "0000" } | { username: "System", password: "0000" } | ||||
@@ -129,7 +129,10 @@ | |||||
{ "path": "pages/crm/invoice/list", "style": { "navigationBarTitleText": "开票管理" } }, | { "path": "pages/crm/invoice/list", "style": { "navigationBarTitleText": "开票管理" } }, | ||||
{ "path": "pages/crm/invoice/single", "style": { "navigationBarTitleText": "票据详情" } }, | { "path": "pages/crm/invoice/single", "style": { "navigationBarTitleText": "票据详情" } }, | ||||
{ "path": "pages/crm/order/list", "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": "考勤详情" } } | |||||
], | ], | ||||
// 全局样式 | // 全局样式 | ||||
@@ -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> |
@@ -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> |
@@ -59,7 +59,7 @@ | |||||
</view> | </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> | <l-title>{{ item.title }}</l-title> | ||||
<view :style="{ width: cWidth + 'px', height: cHeight + 'px' }" class="chart-list"> | <view :style="{ width: cWidth + 'px', height: cHeight + 'px' }" class="chart-list"> | ||||
<!--#ifndef MP-ALIPAY --> | <!--#ifndef MP-ALIPAY --> | ||||
@@ -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. |