@@ -16,4 +16,62 @@ bin/ | |||
debug/ | |||
obj/ | |||
release/ | |||
.vs/ | |||
.vs/ | |||
.vscode/ | |||
# Compiled binary addons (https://nodejs.org/api/addons.html) | |||
build/Release | |||
# Dependency directories | |||
# node_modules/ | |||
# jspm_packages/ | |||
# TypeScript v1 declaration files | |||
typings/ | |||
# TypeScript cache | |||
*.tsbuildinfo | |||
# Optional npm cache directory | |||
.npm | |||
# Optional eslint cache | |||
.eslintcache | |||
# Optional REPL history | |||
.node_repl_history | |||
# Output of 'npm pack' | |||
*.tgz | |||
# Yarn Integrity file | |||
.yarn-integrity | |||
# dotenv environment variables file | |||
.env | |||
.env.test | |||
# parcel-bundler cache (https://parceljs.org/) | |||
.cache | |||
# next.js build output | |||
.next | |||
# nuxt.js build output | |||
.nuxt | |||
# vuepress build output | |||
.vuepress/dist | |||
# Serverless directories | |||
.serverless/ | |||
# FuseBox cache | |||
.fusebox/ | |||
# DynamoDB Local files | |||
.dynamodb/ | |||
# End of https://www.gitignore.io/api/node | |||
unpackage | |||
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js |
@@ -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 | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 | |||
/// Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
/// 创建人:陈彬彬 | |||
/// 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2018 上海力软信息技术有限公司 | |||
/// 创建人:力软-框架开发组 | |||
/// 日 期:2017.03.09 | |||
/// 描 述:PC端代码生成器 | |||
/// </summary> | |||
@@ -20,13 +20,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
{ | |||
private CodeGenerator codeGenerator = new CodeGenerator(); | |||
private CodeGeneratorApp codeGeneratorApp = new CodeGeneratorApp(); | |||
private CodeGeneratorWx codeGeneratorWx = new CodeGeneratorWx(); | |||
private ModuleIBLL moduleIBLL = new ModuleBLL(); | |||
private DatabaseTableIBLL databaseTableIBLL = new DatabaseTableBLL(); | |||
private FunctionIBLL functionIBLL = new FunctionBLL(); | |||
#region 视图功能 | |||
#region 视图功能 | |||
/// <summary> | |||
/// 管理页面 | |||
/// </summary> | |||
@@ -150,9 +151,25 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
return View(); | |||
} | |||
/// <summary> | |||
/// 小程序开发模板 | |||
/// </summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
public ActionResult WxCustmerCodeIndex() | |||
{ | |||
ViewBag.rootDirectory = GetRootDirectory(); | |||
ViewBag.mappingDirectory = ConfigurationManager.AppSettings["MappingDirectory"].ToString(); | |||
ViewBag.serviceDirectory = ConfigurationManager.AppSettings["ServiceDirectory"].ToString(); | |||
ViewBag.webDirectory = ConfigurationManager.AppSettings["WebDirectory"].ToString(); | |||
ViewBag.apiDirectory = ConfigurationManager.AppSettings["ApiDirectory"].ToString(); | |||
ViewBag.appDirectory = ConfigurationManager.AppSettings["WxDirectory"].ToString(); | |||
return View(); | |||
} | |||
#endregion | |||
#region 自定义开发模板 | |||
#region 自定义开发模板 | |||
/// <summary> | |||
/// 自定义开发模板代码生成 | |||
/// </summary> | |||
@@ -239,7 +256,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
formJsCode = formJsCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 自定义开发模板代码生成(创建) | |||
@@ -404,7 +421,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
} | |||
#endregion | |||
#region 快速开发模板 | |||
#region 快速开发模板 | |||
/// <summary> | |||
/// 快速开发代码查看 | |||
/// </summary> | |||
@@ -452,7 +469,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
formJsCode = formJsCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 快速开发代码创建 | |||
@@ -549,7 +566,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
} | |||
#endregion | |||
#region 快速生成实体类和映射类 | |||
#region 快速生成实体类和映射类 | |||
/// <summary> | |||
/// 快速开发代码查看 | |||
/// </summary> | |||
@@ -576,7 +593,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
mapCode = mapCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 快速开发代码创建 | |||
@@ -603,7 +620,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
} | |||
#endregion | |||
#region 流程系统表单模板 | |||
#region 流程系统表单模板 | |||
/// <summary> | |||
/// 流程系统表单代码生成 | |||
/// </summary> | |||
@@ -687,7 +704,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
formJsCode = formJsCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 流程系统表单代码创建 | |||
@@ -848,24 +865,23 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
#endregion | |||
#region 扩展 EXCLE风格模板 还未完成 | |||
#region 编辑列表开发模板 | |||
/// <summary> | |||
/// Looks the grid edit code. | |||
/// 编辑列表开发模板代码生成 | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="dbTable">数据表.</param> | |||
/// <param name="dbTable">数据表</param> | |||
/// <param name="dbTablePk">数据表主键</param> | |||
/// <param name="formData">表单数据</param> | |||
/// <param name="queryData">查询数据.</param> | |||
/// <param name="colData">列表数据.</param> | |||
/// <param name="baseInfo">基础信息.</param> | |||
/// <returns>ActionResult.</returns> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult LookGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo) | |||
{ | |||
// 数据实体化 | |||
List<DbTableModel> dbTableObj = new List<DbTableModel>(); | |||
dbTableObj.Add(new DbTableModel { name = dbTable, pk = dbTablePk, field = dbTablePk }); | |||
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>(); | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
ColModel colDataObj = colData.ToObject<ColModel>(); | |||
@@ -886,25 +902,11 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
} | |||
} | |||
// 实体类 映射类 | |||
string entityCode = ""; | |||
string mapCode = ""; | |||
// 实体类 | |||
string entityCode = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true); | |||
// 映射类 | |||
string mapCode = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj); | |||
string mainTable = ""; | |||
foreach (var tableOne in dbTableObj) | |||
{ | |||
bool isMain = false; | |||
if (string.IsNullOrEmpty(tableOne.relationName)) | |||
{ | |||
mainTable = tableOne.name; | |||
isMain = true; | |||
} | |||
// 实体类 | |||
entityCode += codeGenerator.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain); | |||
// 映射类 | |||
mapCode += codeGenerator.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj); | |||
} | |||
// 服务类 | |||
string serviceCode = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj); | |||
// 业务类 | |||
@@ -920,7 +922,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
// 表单类 | |||
string formCode = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap); | |||
// 表单js类 | |||
string formJsCode = codeGenerator.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2); | |||
string formJsCode = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2); | |||
var jsonData = new | |||
{ | |||
@@ -936,82 +938,244 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
formJsCode = formJsCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 编辑列表开发模板代码生成(创建) | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="dbTable">数据表</param> | |||
/// <param name="formData">表单数据</param> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <param name="moduleEntityJson">系统功能配置信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult CreateGridEditCode(string databaseLinkId, string dbTable, string dbTablePk, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson) | |||
{ | |||
// 数据 | |||
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>(); | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
ColModel colDataObj = colData.ToObject<ColModel>(); | |||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | |||
var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>(); | |||
moduleEntity.F_Target = "iframe"; | |||
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index"; | |||
// 按钮 | |||
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>(); | |||
foreach (var btn in colDataObj.btns) | |||
{ | |||
switch (btn) | |||
{ | |||
case "add": | |||
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity(); | |||
addButtonEntity.Create(); | |||
addButtonEntity.F_EnCode = "lr_add"; | |||
addButtonEntity.F_FullName = "新增"; | |||
moduleButtonList.Add(addButtonEntity); | |||
break; | |||
case "save": | |||
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity(); | |||
editButtonEntity.Create(); | |||
editButtonEntity.F_EnCode = "lr_save"; | |||
editButtonEntity.F_FullName = "保存"; | |||
moduleButtonList.Add(editButtonEntity); | |||
break; | |||
case "delete": | |||
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity(); | |||
deleteButtonEntity.Create(); | |||
deleteButtonEntity.F_EnCode = "lr_delete"; | |||
deleteButtonEntity.F_FullName = "删除"; | |||
moduleButtonList.Add(deleteButtonEntity); | |||
break; | |||
case "print": | |||
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity(); | |||
printButtonEntity.Create(); | |||
printButtonEntity.F_EnCode = "lr_print"; | |||
printButtonEntity.F_FullName = "打印"; | |||
moduleButtonList.Add(printButtonEntity); | |||
break; | |||
} | |||
} | |||
foreach (var btn in colDataObj.btnexs) | |||
{ | |||
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity(); | |||
printButtonEntity.Create(); | |||
printButtonEntity.F_EnCode = btn.id; | |||
printButtonEntity.F_FullName = btn.name; | |||
moduleButtonList.Add(printButtonEntity); | |||
} | |||
// 列表 | |||
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>(); | |||
foreach (var col in colDataObj.fields) | |||
{ | |||
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity(); | |||
moduleColumnEntity.Create(); | |||
moduleColumnEntity.F_EnCode = col.field; | |||
moduleColumnEntity.F_FullName = col.fieldName; | |||
moduleColumnEntity.F_ParentId = "0"; | |||
moduleColumnList.Add(moduleColumnEntity); | |||
} | |||
// 表单字段 | |||
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>(); | |||
// 将表单数据进行一次转化 | |||
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>(); | |||
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>(); | |||
foreach (var tab in formDataObj) | |||
{ | |||
foreach (var compont in tab.componts) | |||
{ | |||
ModuleFormEntity moduleFormEntity = new ModuleFormEntity(); | |||
moduleFormEntity.Create(); | |||
moduleFormEntity.F_EnCode = compont.field; | |||
moduleFormEntity.F_FullName = compont.title; | |||
moduleFormEntitys.Add(moduleFormEntity); | |||
if (!string.IsNullOrEmpty(compont.table)) | |||
{ | |||
compontMap.Add(compont.table + compont.field, compont); | |||
compontMap2.Add(compont.id, compont); | |||
} | |||
} | |||
} | |||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||
if (moduleEntityTemp == null) | |||
{ | |||
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb | |||
} | |||
// 实体类 映射类 | |||
string codeContent = ""; | |||
// 实体类 | |||
codeContent = codeGenerator.EntityCreate(databaseLinkId, dbTable, dbTablePk, baseInfoObj, colDataObj, true); | |||
codeGenerator.CreateEntityCodeFile(baseInfoObj, dbTable, codeContent); | |||
// 映射类 | |||
codeContent = codeGenerator.MappingCreate(dbTable, dbTablePk, baseInfoObj); | |||
codeGenerator.CreateMapCodeFile(baseInfoObj, dbTable, codeContent); | |||
// 服务类 | |||
codeContent = codeGenerator.GridEditServiceCreate(databaseLinkId, dbTable, dbTablePk, compontMap, queryDataObj, colDataObj, baseInfoObj); | |||
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent); | |||
// 业务类 | |||
codeContent = codeGenerator.GridEditBllCreate(baseInfoObj, dbTable, dbTablePk, colDataObj); | |||
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent); | |||
// 业务接口类 | |||
codeContent = codeGenerator.GridEditIBllCreate(baseInfoObj, dbTable, colDataObj); | |||
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent); | |||
// 控制器类 | |||
codeContent = codeGenerator.GridEditControllerCreate(baseInfoObj, dbTable, compontMap, colDataObj); | |||
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent); | |||
// 页面类 | |||
codeContent = codeGenerator.GridEditIndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj); | |||
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent); | |||
// 页面js类 | |||
codeContent = codeGenerator.GridEditIndexJSCreate(baseInfoObj, dbTablePk, compontMap, colDataObj, queryDataObj); | |||
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent); | |||
// 表单类 | |||
codeContent = codeGenerator.FormCreate(baseInfoObj, formDataObj, compontMap); | |||
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent); | |||
// 表单js类 | |||
codeContent = codeGenerator.GridEditFormJsCreate(baseInfoObj, formDataObj, compontMap2); | |||
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent); | |||
return Success("创建成功"); | |||
} | |||
#endregion | |||
#region 扩展 报表模板 | |||
#region 报表开发模板 | |||
/// <summary> | |||
/// 报表开发模板代码生成 | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult LookReportCode(string databaseLinkId, string strSql, string colData, string queryData, string baseInfo) | |||
public ActionResult LookReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo) | |||
{ | |||
// 数据实体化 | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>(); | |||
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>(); | |||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | |||
string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, colDataObjs, queryDataObj, baseInfoObj); | |||
// 服务类 | |||
string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj); | |||
// 业务类 | |||
string bllCode = codeGenerator.ReportBllCreate(baseInfoObj); | |||
// 业务接口类 | |||
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj); | |||
// 控制器类 | |||
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj); | |||
// 页面类 | |||
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | |||
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj); | |||
string areaCode = codeGenerator.AreaRegistrationCreate(baseInfoObj); | |||
return JsonResult(new | |||
// 页面js类 | |||
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj); | |||
var jsonData = new | |||
{ | |||
bllCode = bllCode, | |||
serviceCode = serviceCode, | |||
controllerCode = controllerCode, | |||
bllCode = bllCode, | |||
ibllCode = ibllCode, | |||
controllerCode = controllerCode, | |||
indexCode = indexCode, | |||
indexJsCode = indexJsCode, | |||
areaCode = areaCode, | |||
}); | |||
indexJsCode = indexJsCode | |||
}; | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 自定义开发模板代码生成(创建) | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <param name="moduleEntityJson">系统功能配置信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult CreateReportCode(string databaseLinkId ,string strSql ,string colData,string queryData,string baseInfo,string moduleEntityJson) | |||
public ActionResult CreateReportCode(string databaseLinkId, string strSql, string queryData, string colData, string baseInfo, string moduleEntityJson) | |||
{ | |||
// 数据 | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
List<ReportColModel> colDataObjs = colData.ToObject<List<ReportColModel>>(); | |||
List<ReportColModel> collist = colData.ToObject<List<ReportColModel>>(); | |||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | |||
string serviceCode = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, colDataObjs, queryDataObj, baseInfoObj); | |||
string bllCode = codeGenerator.ReportBllCreate(baseInfoObj); | |||
string ibllCode = codeGenerator.ReportIBllCreate(baseInfoObj); | |||
string controllerCode = codeGenerator.ReportControllerCreate(baseInfoObj); | |||
string indexCode = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | |||
string indexJsCode = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj); | |||
var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>(); | |||
moduleEntity.F_Target = "iframe"; | |||
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index"; | |||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||
// 按钮 | |||
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>(); | |||
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity(); | |||
addButtonEntity.Create(); | |||
addButtonEntity.F_ActionAddress = ""; | |||
addButtonEntity.F_EnCode = "k_print"; | |||
addButtonEntity.F_FullName = "打印"; | |||
moduleButtonList.Add(addButtonEntity); | |||
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity(); | |||
editButtonEntity.Create(); | |||
editButtonEntity.F_ActionAddress = ""; | |||
editButtonEntity.F_EnCode = "lr_outport"; | |||
editButtonEntity.F_FullName = "导出"; | |||
moduleButtonList.Add(editButtonEntity); | |||
ModuleButtonEntity outportButtonEntity = new ModuleButtonEntity(); | |||
outportButtonEntity.Create(); | |||
outportButtonEntity.F_EnCode = "lr_outport"; | |||
outportButtonEntity.F_FullName = "导出"; | |||
moduleButtonList.Add(outportButtonEntity); | |||
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity(); | |||
printButtonEntity.Create(); | |||
printButtonEntity.F_EnCode = "lr_print"; | |||
printButtonEntity.F_FullName = "打印"; | |||
moduleButtonList.Add(printButtonEntity); | |||
// 列表 | |||
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>(); | |||
foreach (var col in colDataObjs) | |||
foreach (var col in collist) | |||
{ | |||
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity(); | |||
moduleColumnEntity.Create(); | |||
moduleColumnEntity.F_EnCode = col.field; | |||
@@ -1020,18 +1184,20 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
moduleColumnList.Add(moduleColumnEntity); | |||
} | |||
// 表单字段 | |||
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>(); | |||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||
if (moduleEntityTemp == null) | |||
{ | |||
moduleIBLL.SaveEntity ("", moduleEntity, moduleButtonList, moduleColumnList, null);//模块功能cbb | |||
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb | |||
} | |||
// 实体类 映射类 | |||
string codeContent = ""; | |||
// 服务类 | |||
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId,strSql,colDataObjs,queryDataObj,baseInfoObj); | |||
codeContent = codeGenerator.ReportServiceCreate(databaseLinkId, strSql, collist, queryDataObj, baseInfoObj); | |||
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent); | |||
// 业务类 | |||
codeContent = codeGenerator.ReportBllCreate(baseInfoObj); | |||
@@ -1046,20 +1212,14 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
codeContent = codeGenerator.ReportIndexCreate(baseInfoObj, queryDataObj); | |||
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent); | |||
// 页面js类 | |||
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, colDataObjs, queryDataObj); | |||
codeContent = codeGenerator.ReportIndexJSCreate(baseInfoObj, collist, queryDataObj); | |||
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent); | |||
// 按钮 | |||
return Success("创建成功"); | |||
} | |||
#endregion | |||
#region 移动开发模板 | |||
#region 移动开发模板 | |||
/// <summary> | |||
/// 移动开发模板代码生成 | |||
/// </summary> | |||
@@ -1164,7 +1324,7 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
appFormCode = appFormCode + appFormJsCode | |||
}; | |||
return JsonResult(jsonData); | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 自定义开发模板代码生成(创建) | |||
@@ -1358,7 +1518,291 @@ namespace Learun.Application.Web.Areas.LR_CodeGeneratorModule.Controllers | |||
} | |||
#endregion | |||
#region 私有方法 | |||
#region 小程序开发模板 | |||
/// <summary> | |||
/// 移动开发模板代码生成 | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="dbTable">数据表</param> | |||
/// <param name="formData">表单数据</param> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult LookWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo) | |||
{ | |||
// 数据实体化 | |||
List<DbTableModel> dbTableObj = dbTable.ToObject<List<DbTableModel>>(); | |||
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>(); | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
ColModel colDataObj = colData.ToObject<ColModel>(); | |||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | |||
// 将表单数据进行一次转化 | |||
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>(); | |||
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>(); | |||
foreach (var tab in formDataObj) | |||
{ | |||
foreach (var compont in tab.componts) | |||
{ | |||
if (!string.IsNullOrEmpty(compont.table)) | |||
{ | |||
compontMap.Add(compont.table + compont.field, compont); | |||
compontMap2.Add(compont.id, compont); | |||
} | |||
} | |||
} | |||
// 实体类 映射类 | |||
string entityCode = ""; | |||
string mapCode = ""; | |||
string mainTable = ""; | |||
foreach (var tableOne in dbTableObj) | |||
{ | |||
bool isMain = false; | |||
if (string.IsNullOrEmpty(tableOne.relationName)) | |||
{ | |||
mainTable = tableOne.name; | |||
isMain = true; | |||
} | |||
// 实体类 | |||
entityCode += codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain); | |||
// 映射类 | |||
mapCode += codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj); | |||
} | |||
// 服务类 | |||
string serviceCode = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj); | |||
// 业务类 | |||
string bllCode = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
// 业务接口类 | |||
string ibllCode = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
// 控制器类 | |||
string controllerCode = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
// 页面类 | |||
string indexCode = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj); | |||
// 页面js类 | |||
string indexJsCode = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj); | |||
// 表单类 | |||
string formCode = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap); | |||
// 表单js类 | |||
string formJsCode = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2); | |||
// api接口类 | |||
string apiCode = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
// 移动页面 | |||
string appIndexCode = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj); | |||
// 移动页面表单 | |||
string appFormCode = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj); | |||
var jsonData = new | |||
{ | |||
entityCode, | |||
mapCode, | |||
serviceCode, | |||
bllCode, | |||
ibllCode, | |||
controllerCode, | |||
indexCode, | |||
indexJsCode, | |||
formCode, | |||
formJsCode, | |||
apiCode, | |||
appIndexCode = appIndexCode, | |||
appFormCode = appFormCode | |||
}; | |||
return Success(jsonData); | |||
} | |||
/// <summary> | |||
/// 自定义开发模板代码生成(创建) | |||
/// </summary> | |||
/// <param name="databaseLinkId">数据库连接ID</param> | |||
/// <param name="dbTable">数据表</param> | |||
/// <param name="formData">表单数据</param> | |||
/// <param name="queryData">查询数据</param> | |||
/// <param name="colData">列表数据</param> | |||
/// <param name="baseInfo">基础信息</param> | |||
/// <param name="moduleEntityJson">系统功能配置信息</param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult CreateWxCustmerCode(string databaseLinkId, string dbTable, string formData, string queryData, string colData, string baseInfo, string moduleEntityJson, string functionEntityJson) | |||
{ | |||
// 数据 | |||
List<DbTableModel> dbTableObj = dbTable.ToObject<List<DbTableModel>>(); | |||
List<CodeFormTabModel> formDataObj = formData.ToObject<List<CodeFormTabModel>>(); | |||
QueryModel queryDataObj = queryData.ToObject<QueryModel>(); | |||
ColModel colDataObj = colData.ToObject<ColModel>(); | |||
BaseModel baseInfoObj = baseInfo.ToObject<BaseModel>(); | |||
FunctionEntity functionEntity = functionEntityJson.ToObject<FunctionEntity>(); | |||
functionEntity.F_Url = baseInfoObj.outputArea + "/" + baseInfoObj.name; | |||
functionIBLL.SaveEntity("", functionEntity, null); | |||
var moduleEntity = moduleEntityJson.ToObject<ModuleEntity>(); | |||
moduleEntity.F_Target = "iframe"; | |||
moduleEntity.F_UrlAddress = "/" + baseInfoObj.outputArea + "/" + baseInfoObj.name + "/Index"; | |||
// 按钮 | |||
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>(); | |||
foreach (var btn in colDataObj.btns) | |||
{ | |||
switch (btn) | |||
{ | |||
case "add": | |||
ModuleButtonEntity addButtonEntity = new ModuleButtonEntity(); | |||
addButtonEntity.Create(); | |||
addButtonEntity.F_EnCode = "lr_add"; | |||
addButtonEntity.F_FullName = "新增"; | |||
moduleButtonList.Add(addButtonEntity); | |||
break; | |||
case "edit": | |||
ModuleButtonEntity editButtonEntity = new ModuleButtonEntity(); | |||
editButtonEntity.Create(); | |||
editButtonEntity.F_EnCode = "lr_edit"; | |||
editButtonEntity.F_FullName = "编辑"; | |||
moduleButtonList.Add(editButtonEntity); | |||
break; | |||
case "delete": | |||
ModuleButtonEntity deleteButtonEntity = new ModuleButtonEntity(); | |||
deleteButtonEntity.Create(); | |||
deleteButtonEntity.F_EnCode = "lr_delete"; | |||
deleteButtonEntity.F_FullName = "删除"; | |||
moduleButtonList.Add(deleteButtonEntity); | |||
break; | |||
case "print": | |||
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity(); | |||
printButtonEntity.Create(); | |||
printButtonEntity.F_EnCode = "lr_print"; | |||
printButtonEntity.F_FullName = "打印"; | |||
moduleButtonList.Add(printButtonEntity); | |||
break; | |||
} | |||
} | |||
foreach (var btn in colDataObj.btnexs) | |||
{ | |||
ModuleButtonEntity printButtonEntity = new ModuleButtonEntity(); | |||
printButtonEntity.Create(); | |||
printButtonEntity.F_EnCode = btn.id; | |||
printButtonEntity.F_FullName = btn.name; | |||
moduleButtonList.Add(printButtonEntity); | |||
} | |||
// 列表 | |||
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>(); | |||
foreach (var col in colDataObj.fields) | |||
{ | |||
ModuleColumnEntity moduleColumnEntity = new ModuleColumnEntity(); | |||
moduleColumnEntity.Create(); | |||
moduleColumnEntity.F_EnCode = col.field; | |||
moduleColumnEntity.F_FullName = col.fieldName; | |||
moduleColumnEntity.F_ParentId = "0"; | |||
moduleColumnList.Add(moduleColumnEntity); | |||
} | |||
// 表单字段 | |||
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>(); | |||
// 将表单数据进行一次转化 | |||
Dictionary<string, CodeFormCompontModel> compontMap = new Dictionary<string, CodeFormCompontModel>(); | |||
Dictionary<string, CodeFormCompontModel> compontMap2 = new Dictionary<string, CodeFormCompontModel>(); | |||
foreach (var tab in formDataObj) | |||
{ | |||
foreach (var compont in tab.componts) | |||
{ | |||
ModuleFormEntity moduleFormEntity = new ModuleFormEntity(); | |||
moduleFormEntity.Create(); | |||
moduleFormEntity.F_EnCode = compont.field; | |||
moduleFormEntity.F_FullName = compont.title; | |||
moduleFormEntitys.Add(moduleFormEntity); | |||
if (!string.IsNullOrEmpty(compont.table)) | |||
{ | |||
compontMap.Add(compont.table + compont.field, compont); | |||
compontMap2.Add(compont.id, compont); | |||
} | |||
} | |||
} | |||
var moduleEntityTemp = moduleIBLL.GetModuleByUrl(moduleEntity.F_UrlAddress); | |||
if (moduleEntityTemp == null) | |||
{ | |||
moduleIBLL.SaveEntity("", moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);//模块功能cbb | |||
} | |||
// 实体类 映射类 | |||
string codeContent = ""; | |||
string mainTable = ""; | |||
foreach (var tableOne in dbTableObj) | |||
{ | |||
bool isMain = false; | |||
if (string.IsNullOrEmpty(tableOne.relationName)) | |||
{ | |||
mainTable = tableOne.name; | |||
isMain = true; | |||
} | |||
// 实体类 | |||
codeContent = codeGeneratorWx.EntityCreate(databaseLinkId, tableOne.name, tableOne.pk, baseInfoObj, colDataObj, isMain); | |||
codeGenerator.CreateEntityCodeFile(baseInfoObj, tableOne.name, codeContent); | |||
// 映射类 | |||
codeContent = codeGeneratorWx.MappingCreate(tableOne.name, tableOne.pk, baseInfoObj); | |||
codeGenerator.CreateMapCodeFile(baseInfoObj, tableOne.name, codeContent); | |||
} | |||
// 服务类 | |||
codeContent = codeGeneratorWx.ServiceCreate(databaseLinkId, dbTableObj, compontMap, queryDataObj, colDataObj, baseInfoObj); | |||
codeGenerator.CreateSerivceCodeFile(baseInfoObj, codeContent); | |||
// 业务类 | |||
codeContent = codeGeneratorWx.BllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
codeGenerator.CreateBLLCodeFile(baseInfoObj, codeContent); | |||
// 业务接口类 | |||
codeContent = codeGeneratorWx.IBllCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
codeGenerator.CreateIBLLCodeFile(baseInfoObj, codeContent); | |||
// 控制器类 | |||
codeContent = codeGeneratorWx.ControllerCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
codeGenerator.CreateControllerCodeFile(baseInfoObj, codeContent); | |||
// 页面类 | |||
codeContent = codeGeneratorWx.IndexCreate(baseInfoObj, compontMap, queryDataObj, colDataObj); | |||
codeGenerator.CreateIndexCodeFile(baseInfoObj, codeContent); | |||
// 页面js类 | |||
codeContent = codeGeneratorWx.IndexJSCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj); | |||
codeGenerator.CreateIndexJSCodeFile(baseInfoObj, codeContent); | |||
// 表单类 | |||
codeContent = codeGeneratorWx.FormCreate(baseInfoObj, formDataObj, compontMap); | |||
codeGenerator.CreateFormCodeFile(baseInfoObj, codeContent); | |||
// 表单js类 | |||
codeContent = codeGeneratorWx.FormJsCreate(baseInfoObj, dbTableObj, formDataObj, compontMap2); | |||
codeGenerator.CreateFormJSCodeFile(baseInfoObj, codeContent); | |||
// api接口类 | |||
codeContent = codeGeneratorWx.ApiCreate(baseInfoObj, dbTableObj, compontMap, colDataObj); | |||
codeGenerator.CreateApiFile(baseInfoObj, codeContent); | |||
// 移动页面 | |||
codeContent = codeGeneratorWx.AppIndexCreate(baseInfoObj, dbTableObj, compontMap, colDataObj, queryDataObj); | |||
codeGenerator.CreateWxIndexCodeFile(baseInfoObj, codeContent, "vue"); | |||
// 移动页面表单 | |||
codeContent = codeGeneratorWx.AppFormCreate(baseInfoObj, dbTableObj, formDataObj, compontMap, colDataObj); | |||
codeGenerator.CreateWxFormCodeFile(baseInfoObj, codeContent, "vue"); | |||
return Success("创建成功"); | |||
} | |||
#endregion | |||
#region 私有方法 | |||
/// <summary> | |||
/// 获取项目根目录 | |||
/// </summary> | |||
@@ -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> | |||
</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> | |||
@@ -96,6 +96,20 @@ var bootstrap = function ($, learun) { | |||
btn: null | |||
}); | |||
}); | |||
// 小程序开发模板 | |||
$('#lr_wxCustmerCode').on('click', function () { | |||
learun.layerForm({ | |||
id: 'CustmerCodeIndex', | |||
title: '在线代码生成器 并自动创建代码(小程序开发模板)', | |||
url: top.$.rootUrl + '/LR_CodeGeneratorModule/TemplatePC/WxCustmerCodeIndex', | |||
width: 1100, | |||
height: 700, | |||
maxmin: true, | |||
btn: null | |||
}); | |||
}); | |||
} | |||
}; | |||
page.init(); |
@@ -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> | |||
</Reference> | |||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> | |||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> | |||
</Reference> | |||
<Reference Include="NPOI, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> | |||
<HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.dll</HintPath> | |||
@@ -350,6 +350,7 @@ | |||
<Compile Include="Areas\LR_AuthorizeModule\LR_AuthorizeModuleAreaRegistration.cs" /> | |||
<Compile Include="Areas\LR_CodeDemo\Controllers\GridDemoController.cs" /> | |||
<Compile Include="Areas\LR_CodeDemo\LR_CodeDemoAreaRegistration.cs" /> | |||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\CodeSchemaController.cs" /> | |||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\IconController.cs" /> | |||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\PluginDemoController.cs" /> | |||
<Compile Include="Areas\LR_CodeGeneratorModule\Controllers\TemplateAPPController.cs" /> | |||
@@ -749,6 +750,7 @@ | |||
<Compile Include="Areas\EducationalAdministration\Controllers\BC_SpecialDestinationController.cs" /> | |||
<Compile Include="Areas\EducationalAdministration\Controllers\BC_EPIController.cs" /> | |||
<Compile Include="Areas\PersonnelManagement\Controllers\ADR_RecordController.cs" /> | |||
<Compile Include="Areas\LogisticsManagement\Controllers\ADR_RecordController.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\RegistrateForm.js" /> | |||
@@ -909,7 +911,6 @@ | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexOfDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\IndexInClass.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\MyClass.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.css" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\AllocationClassDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\FormDC.js" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoFresh\SchoolUniform.js" /> | |||
@@ -1099,6 +1100,8 @@ | |||
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\CommonIndex.js" /> | |||
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\EditIndex.js" /> | |||
<Content Include="Areas\LR_CodeDemo\Views\GridDemo\ReportIndex.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Form.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Index.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.css" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplateAPP\Index.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\AddBtnForm.js" /> | |||
@@ -1118,6 +1121,8 @@ | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\ReportCodeIndex.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WorkflowCodeIndex.css" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WorkflowCodeIndex.js" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.css" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.js" /> | |||
<Content Include="Areas\LR_CRMModule\Views\CashBalance\Index.js" /> | |||
<Content Include="Areas\LR_CRMModule\Views\Chance\Detail.js" /> | |||
<Content Include="Areas\LR_CRMModule\Views\Chance\Form.js" /> | |||
@@ -5836,6 +5841,10 @@ | |||
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Index.js" /> | |||
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.cshtml" /> | |||
<Content Include="Areas\PersonnelManagement\Views\ADR_Record\Form.js" /> | |||
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Index.cshtml" /> | |||
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Index.js" /> | |||
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Form.cshtml" /> | |||
<Content Include="Areas\LogisticsManagement\Views\ADR_Record\Form.js" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Areas\LR_Desktop\Models\" /> | |||
@@ -6491,8 +6500,9 @@ | |||
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\Index.cshtml" /> | |||
<Content Include="Areas\LR_NewWorkFlow\Views\StampInfo\StampDetailIndex.cshtml" /> | |||
<Content Include="Areas\LR_NewWorkFlow\Views\NWFProcess\AddTaskForm.cshtml" /> | |||
<Content Include="Areas\EducationalAdministration\Views\StuInfoBasic\Print.cshtml" /> | |||
<None Include="Properties\PublishProfiles\CustomProfile.pubxml" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\TemplatePC\WxCustmerCodeIndex.cshtml" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Form.cshtml" /> | |||
<Content Include="Areas\LR_CodeGeneratorModule\Views\CodeSchema\Index.cshtml" /> | |||
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> | |||
<Content Include="Views\Login\Default-beifen.cshtml" /> | |||
<None Include="Properties\PublishProfiles\FolderProfile1.pubxml" /> | |||
@@ -6548,8 +6558,9 @@ | |||
<Content Include="Views\Shared\_AdminForDC.cshtml" /> | |||
<Content Include="Views\Home\AdminDefaultForDC.cshtml" /> | |||
<Content Include="Views\Home\AdminTheme5.cshtml" /> | |||
<None Include="Properties\PublishProfiles\FolderProfile2.pubxml" /> | |||
<None Include="Properties\PublishProfiles\learunadms6.1.pubxml" /> | |||
<Content Include="Views\Shared\_AllIndex.cshtml" /> | |||
<Content Include="Views\Shared\_jqGrid.cshtml" /> | |||
<Content Include="Views\Shared\_ReportForm.cshtml" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<WCFMetadata Include="Connected Services\" /> | |||
@@ -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="ApiDirectory" value="\Learun.Application.WebApi" /> | |||
<add key="AppDirectory" value="\Learun.Application.Mobile" /> | |||
<add key="WxDirectory" value="\LearunApp-2.2.0" /> | |||
<!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | |||
<!--企业号CorpId --> | |||
<add key="CorpId" value="" /> | |||
@@ -21,7 +21,7 @@ | |||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> | |||
<package id="MySql.Data" version="6.9.9" targetFramework="net45" /> | |||
<package id="MySql.Data.Entity" version="6.9.9" targetFramework="net45" /> | |||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" /> | |||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net462" /> | |||
<package id="NPOI" version="2.3.0" targetFramework="net45" /> | |||
<package id="Oracle.ManagedDataAccess" version="12.1.24160719" targetFramework="net45" /> | |||
<package id="Oracle.ManagedDataAccess.EntityFramework" version="12.1.2400" targetFramework="net45" /> | |||
@@ -287,6 +287,7 @@ | |||
<Compile Include="Modules\PersonnelManagement\EpidemicSituationApi.cs" /> | |||
<Compile Include="Modules\PersonnelManagement\ContactsDetailsApi.cs" /> | |||
<Compile Include="Modules\EducationalAdministration\ThermographyApi.cs" /> | |||
<Compile Include="Modules\LogisticsManagement\ADR_RecordApi.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -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="ServiceDirectory" value="\Learun.Framework.Module\Learun.Application.Module\Learun.Application.TwoDevelopment" /> | |||
<add key="WebDirectory" value="\Learun.Application.Web" /> | |||
<add key="WxDirectory" value="\LearunApp-2.2.0" /> | |||
<!-- ================== 2:这里主要是微信配置项内容部分 ================== --> | |||
<!--企业号CorpId --> | |||
<add key="CorpId" value="wxa2c39f6194f4" /> | |||
@@ -47,5 +47,7 @@ namespace Learun.Application.BaseModule.CodeGeneratorModule | |||
/// 移动端输出目录 | |||
/// </summary> | |||
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\CodeGenerator.cs" /> | |||
<Compile Include="CodeGeneratorModule\CodeGeneratorApp.cs" /> | |||
<Compile Include="CodeGeneratorModule\CodeGeneratorWx.cs" /> | |||
<Compile Include="CodeGeneratorModule\ColModel.cs" /> | |||
<Compile Include="CodeGeneratorModule\DbTableModel.cs" /> | |||
<Compile Include="CodeGeneratorModule\QueryModel.cs" /> | |||
<Compile Include="CodeGeneratorModule\CodeFormTabModel.cs" /> | |||
<Compile Include="CodeSchemaModule\CodeSchemaBLL.cs" /> | |||
<Compile Include="CodeSchemaModule\CodeSchemaIBLL.cs" /> | |||
<Compile Include="CodeSchemaModule\CodeSchemaService.cs" /> | |||
<Compile Include="CodeSchemaModule\LR_Base_CodeSchemaEntity.cs" /> | |||
<Compile Include="SystemModule\CodeRule\CodeRuleBLL.cs" /> | |||
<Compile Include="SystemModule\CodeRule\CodeRuleEntity.cs" /> | |||
<Compile Include="SystemModule\CodeRule\CodeRuleFormatModel.cs" /> | |||
@@ -515,7 +515,7 @@ | |||
<Compile Include="EducationalAdministration\BC_SupplyAndDemandMettingMap.cs" /> | |||
<Compile Include="EducationalAdministration\BC_SpecialDestinationMap.cs" /> | |||
<Compile Include="EducationalAdministration\BC_EPIMap.cs" /> | |||
<Compile Include="PersonnelManagement\ADR_RecordMap.cs" /> | |||
<Compile Include="LogisticsManagement\ADR_RecordMap.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -1,27 +1,27 @@ | |||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||
using Learun.Application.TwoDevelopment.LogisticsManagement; | |||
using System.Data.Entity.ModelConfiguration; | |||
namespace Learun.Application.Mapping | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 | |||
/// Copyright (c) 2013-2018 北京泉江科技有限公司 | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2020-08-26 15:16 | |||
/// 日 期:2020-08-28 18:09 | |||
/// 描 述:考勤记录 | |||
/// </summary> | |||
public class ADR_RecordMap : EntityTypeConfiguration<ADR_RecordEntity> | |||
{ | |||
public ADR_RecordMap() | |||
{ | |||
#region 表、主键 | |||
#region 表、主键 | |||
//表 | |||
this.ToTable("ADR_RECORD"); | |||
//主键 | |||
this.HasKey(t => t.ID); | |||
#endregion | |||
#region 配置关系 | |||
#region 配置关系 | |||
#endregion | |||
} | |||
} |
@@ -1551,6 +1551,10 @@ | |||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordService.cs" /> | |||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordBLL.cs" /> | |||
<Compile Include="PersonnelManagement\ADR_Record\ADR_RecordIBLL.cs" /> | |||
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordEntity.cs" /> | |||
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordService.cs" /> | |||
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordBLL.cs" /> | |||
<Compile Include="LogisticsManagement\ADR_Record\ADR_RecordIBLL.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -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": [ | |||
"http://localhost:8088/learun/adms" | |||
], | |||
// "apiHost": [ | |||
// "http://192.168.2.94:31173/learun/adms" | |||
// ], | |||
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示 | |||
"devAccount": [ | |||
{ username: "System", password: "0000" } | |||
@@ -129,7 +129,10 @@ | |||
{ "path": "pages/crm/invoice/list", "style": { "navigationBarTitleText": "开票管理" } }, | |||
{ "path": "pages/crm/invoice/single", "style": { "navigationBarTitleText": "票据详情" } }, | |||
{ "path": "pages/crm/order/list", "style": { "navigationBarTitleText": "订单管理" } }, | |||
{ "path": "pages/crm/order/single", "style": { "navigationBarTitleText": "订单详情" } } | |||
{ "path": "pages/crm/order/single", "style": { "navigationBarTitleText": "订单详情" } }, | |||
// 考勤记录 | |||
{ "path": "pages/LogisticsManagement/ADR_Record/list", "style": { "navigationBarTitleText": "考勤里列表" } }, | |||
{ "path": "pages/LogisticsManagement/ADR_Record/single", "style": { "navigationBarTitleText": "考勤详情" } } | |||
], | |||
// 全局样式 | |||
@@ -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 v-for="(item, index) of chartData" :key="item.id" class="margin-bottom"> | |||
<view v-for="(item) of chartData" :key="item.id" class="margin-bottom"> | |||
<l-title>{{ item.title }}</l-title> | |||
<view :style="{ width: cWidth + 'px', height: cHeight + 'px' }" class="chart-list"> | |||
<!--#ifndef MP-ALIPAY --> | |||
@@ -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. |