@@ -0,0 +1,124 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||
using System.Web.Mvc; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesController : MvcControllerBase | |||
{ | |||
private MeetingMinutesIBLL meetingMinutesIBLL = new MeetingMinutesBLL(); | |||
#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 = meetingMinutesIBLL.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 = meetingMinutesIBLL.GetList(queryJson); | |||
return Success(data); | |||
} | |||
/// <summary> | |||
/// 获取表单数据 | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpGet] | |||
[AjaxOnly] | |||
public ActionResult GetFormData(string keyValue) | |||
{ | |||
var MeetingMinutesData = meetingMinutesIBLL.GetMeetingMinutesEntity( keyValue ); | |||
var jsonData = new { | |||
MeetingMinutes = MeetingMinutesData, | |||
}; | |||
return Success(jsonData); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// <param name="keyValue">主键</param> | |||
/// <summary> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AjaxOnly] | |||
public ActionResult DeleteForm(string keyValue) | |||
{ | |||
meetingMinutesIBLL.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(); MeetingMinutesEntity entity = strEntity.ToObject<MeetingMinutesEntity>(); | |||
meetingMinutesIBLL.SaveEntity(userInfo,keyValue,entity); | |||
return Success("保存成功!"); | |||
} | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,23 @@ | |||
@{ | |||
ViewBag.Title = "会议纪要"; | |||
Layout = "~/Views/Shared/_Form.cshtml"; | |||
} | |||
<div class="lr-form-wrap"> | |||
<div class="col-xs-12 lr-form-item" data-table="MeetingMinutes" > | |||
<div class="lr-form-item-title">会议名称</div> | |||
<input id="MeetID" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="MeetingMinutes" > | |||
<div class="lr-form-item-title">纪要标题</div> | |||
<input id="Title" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="MeetingMinutes" > | |||
<div class="lr-form-item-title">内容</div> | |||
<div id="Content" style="height:200px;"></div> | |||
</div> | |||
<div class="col-xs-12 lr-form-item" data-table="MeetingMinutes" > | |||
<div class="lr-form-item-title">附件上传</div> | |||
<div id="Files" ></div> | |||
</div> | |||
</div> | |||
@Html.AppendJsFile("/Areas/PersonnelManagement/Views/MeetingMinutes/Form.js") |
@@ -0,0 +1,52 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2021-03-08 10:36 | |||
* 描 述:会议纪要 | |||
*/ | |||
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 () { | |||
var ContentUE = UE.getEditor('Content'); | |||
$('#Content')[0].ue = ContentUE; $('#Files').lrUploader(); | |||
}, | |||
initData: function () { | |||
if (!!keyValue) { | |||
$.lrSetForm(top.$.rootUrl + '/PersonnelManagement/MeetingMinutes/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 + '/PersonnelManagement/MeetingMinutes/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 " > | |||
<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="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="MeetID" type="text" class="form-control" /> | |||
</div> | |||
<div class="col-xs-12 lr-form-item"> | |||
<div class="lr-form-item-title">纪要标题</div> | |||
<input id="Title" type="text" class="form-control" /> | |||
</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/PersonnelManagement/Views/MeetingMinutes/Index.js") |
@@ -0,0 +1,94 @@ | |||
/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2021-03-08 10:36 | |||
* 描 述:会议纪要 | |||
*/ | |||
var refreshGirdData; | |||
var bootstrap = function ($, learun) { | |||
"use strict"; | |||
var page = { | |||
init: function () { | |||
page.initGird(); | |||
page.bind(); | |||
}, | |||
bind: function () { | |||
$('#multiple_condition_query').lrMultipleQuery(function (queryJson) { | |||
page.search(queryJson); | |||
}, 220, 400); | |||
// 刷新 | |||
$('#lr_refresh').on('click', function () { | |||
location.reload(); | |||
}); | |||
// 新增 | |||
$('#lr_add').on('click', function () { | |||
learun.layerForm({ | |||
id: 'form', | |||
title: '新增', | |||
url: top.$.rootUrl + '/PersonnelManagement/MeetingMinutes/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 + '/PersonnelManagement/MeetingMinutes/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 + '/PersonnelManagement/MeetingMinutes/DeleteForm', { keyValue: keyValue}, function () { | |||
refreshGirdData(); | |||
}); | |||
} | |||
}); | |||
} | |||
}); | |||
// 打印 | |||
$('#lr_print').on('click', function () { | |||
$('#gridtable').jqprintTable(); | |||
}); | |||
}, | |||
// 初始化列表 | |||
initGird: function () { | |||
$('#gridtable').lrAuthorizeJfGrid({ | |||
url: top.$.rootUrl + '/PersonnelManagement/MeetingMinutes/GetPageList', | |||
headData: [ | |||
{ label: "会议名称", name: "MeetID", width: 100, align: "left"}, | |||
{ label: "纪要标题", name: "Title", width: 100, align: "left"}, | |||
{ label: "内容", name: "Content", width: 100, align: "left"}, | |||
{ label: "附件上传", name: "Files", width: 100, align: "left"}, | |||
], | |||
mainId:'ID', | |||
isPage: true | |||
}); | |||
page.search(); | |||
}, | |||
search: function (param) { | |||
param = param || {}; | |||
$('#gridtable').jfGridSet('reload',{ queryJson: JSON.stringify(param) }); | |||
} | |||
}; | |||
refreshGirdData = function () { | |||
$('#gridtable').jfGridSet('reload'); | |||
}; | |||
page.init(); | |||
} |
@@ -794,6 +794,7 @@ | |||
<Compile Include="Areas\EducationalAdministration\Controllers\EATalentTrainController.cs" /> | |||
<Compile Include="Areas\EducationalAdministration\Controllers\Sys_DefaultPwdConfigController.cs" /> | |||
<Compile Include="Areas\PersonnelManagement\Controllers\MeetingSignInRecordController.cs" /> | |||
<Compile Include="Areas\PersonnelManagement\Controllers\MeetingMinutesController.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Content Include="Areas\AdmissionsPlatform\Views\AP_OnlineUserInfo\DropOutIndex.js" /> | |||
@@ -6136,6 +6137,10 @@ | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingSignInRecord\Index.js" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingSignInRecord\Form.cshtml" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingSignInRecord\Form.js" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingMinutes\Index.cshtml" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingMinutes\Index.js" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingMinutes\Form.cshtml" /> | |||
<Content Include="Areas\PersonnelManagement\Views\MeetingMinutes\Form.js" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Areas\LR_Desktop\Models\" /> | |||
@@ -274,6 +274,7 @@ | |||
<Compile Include="Modules\LogisticsManagement\ADR_RecordApi.cs" /> | |||
<Compile Include="Modules\PersonnelManagement\MeetingManagementApi.cs" /> | |||
<Compile Include="Modules\PersonnelManagement\MeetingSignInRecordApi.cs" /> | |||
<Compile Include="Modules\PersonnelManagement\MeetingMinutesApi.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.PersonnelManagement; | |||
namespace Learun.Application.WebApi | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesApi : BaseApi | |||
{ | |||
private MeetingMinutesIBLL meetingMinutesIBLL = new MeetingMinutesBLL(); | |||
/// <summary> | |||
/// 注册接口 | |||
/// <summary> | |||
public MeetingMinutesApi() | |||
: base("/Learun/adms/PersonnelManagement/MeetingMinutes") | |||
{ | |||
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 = meetingMinutesIBLL.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 = meetingMinutesIBLL.GetList(queryJson); | |||
return Success(data); | |||
} | |||
/// <summary> | |||
/// 获取表单数据 | |||
/// <summary> | |||
/// <param name="_"></param> | |||
/// <returns></returns> | |||
public Response GetForm(dynamic _) | |||
{ | |||
string keyValue = this.GetReqData(); | |||
var MeetingMinutesData = meetingMinutesIBLL.GetMeetingMinutesEntity( keyValue ); | |||
var jsonData = new { | |||
MeetingMinutes = MeetingMinutesData, | |||
}; | |||
return Success(jsonData); | |||
} | |||
#endregion | |||
#region 提交数据 | |||
/// <summary> | |||
/// 删除实体数据 | |||
/// <param name="_"></param> | |||
/// <summary> | |||
/// <returns></returns> | |||
public Response DeleteForm(dynamic _) | |||
{ | |||
string keyValue = this.GetReqData(); | |||
meetingMinutesIBLL.DeleteEntity(keyValue); | |||
return Success("删除成功!"); | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
/// <param name="_"></param> | |||
/// <summary> | |||
/// <returns></returns> | |||
public Response SaveForm(dynamic _) | |||
{ | |||
ReqFormEntity parameter = this.GetReqData<ReqFormEntity>(); | |||
MeetingMinutesEntity entity = parameter.strEntity.ToObject<MeetingMinutesEntity>(); | |||
meetingMinutesIBLL.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 | |||
} | |||
} |
@@ -26,6 +26,7 @@ namespace Learun.Application.WebApi | |||
Get["/form"] = GetForm; | |||
Post["/delete"] = DeleteForm; | |||
Post["/save"] = SaveForm; | |||
Get["/scan"] = Scan; | |||
} | |||
#region 获取数据 | |||
@@ -86,6 +87,18 @@ namespace Learun.Application.WebApi | |||
string keyValue = this.GetReqData(); | |||
meetingSignInRecordIBLL.DeleteEntity(keyValue); | |||
return Success("删除成功!"); | |||
} | |||
/// <summary> | |||
/// 会议扫码签到 | |||
/// <param name="_"></param> | |||
/// <summary> | |||
/// <returns></returns> | |||
public Response Scan(dynamic _) | |||
{ | |||
ScanParam scanParam = this.GetReqData<ScanParam>(); | |||
var result= meetingSignInRecordIBLL.Scan(scanParam.userid,scanParam.meetid)?"签到成功":"签到失败"; | |||
return Success(new {result}); | |||
} | |||
/// <summary> | |||
/// 保存实体数据(新增、修改) | |||
@@ -110,6 +123,12 @@ namespace Learun.Application.WebApi | |||
public string keyValue { get; set; } | |||
public string strEntity{ get; set; } | |||
} | |||
private class ScanParam | |||
{ | |||
public string userid { get; set; } | |||
public string meetid { get; set; } | |||
} | |||
#endregion | |||
} | |||
@@ -2969,7 +2969,7 @@ namespace Learun.Application.Base.CodeGeneratorModule | |||
sb.Append(" /// 注册接口\r\n"); | |||
sb.Append(" /// <summary>\r\n"); | |||
sb.Append(" public " + baseInfo.name + "Api()\r\n"); | |||
sb.Append(" : base(\"/learun/adms/" + baseInfo.outputArea + "/" + baseInfo.name + "\")\r\n"); | |||
sb.Append(" : base(\"/" + baseInfo.outputArea + "/" + baseInfo.name + "\")\r\n"); | |||
sb.Append(" {\r\n"); | |||
sb.Append(" Get[\"/pagelist\"] = GetPageList;\r\n"); | |||
sb.Append(" Get[\"/list\"] = GetList;\r\n"); | |||
@@ -546,6 +546,7 @@ | |||
<Compile Include="EducationalAdministration\EATalentTrainMap.cs" /> | |||
<Compile Include="EducationalAdministration\Sys_DefaultPwdConfigMap.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingSignInRecordMap.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingMinutesMap.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\..\Learun.Application.Organization\Learun.Application.Organization.csproj"> | |||
@@ -0,0 +1,29 @@ | |||
using Learun.Application.TwoDevelopment.PersonnelManagement; | |||
using System.Data.Entity.ModelConfiguration; | |||
namespace Learun.Application.Mapping | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesMap : EntityTypeConfiguration<MeetingMinutesEntity> | |||
{ | |||
public MeetingMinutesMap() | |||
{ | |||
#region 表、主键 | |||
//表 | |||
this.ToTable("MEETINGMINUTES"); | |||
//主键 | |||
this.HasKey(t => t.ID); | |||
#endregion | |||
#region 配置关系 | |||
#endregion | |||
} | |||
} | |||
} | |||
@@ -1605,6 +1605,10 @@ | |||
<Compile Include="PersonnelManagement\MeetingSignInRecord\MeetingSignInRecordService.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingSignInRecord\MeetingSignInRecordBLL.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingSignInRecord\MeetingSignInRecordIBLL.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingMinutes\MeetingMinutesEntity.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingMinutes\MeetingMinutesService.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingMinutes\MeetingMinutesBLL.cs" /> | |||
<Compile Include="PersonnelManagement\MeetingMinutes\MeetingMinutesIBLL.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.PersonnelManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesBLL : MeetingMinutesIBLL | |||
{ | |||
private MeetingMinutesService meetingMinutesService = new MeetingMinutesService(); | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表分页数据 | |||
/// <summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<MeetingMinutesEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
return meetingMinutesService.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<MeetingMinutesEntity> GetList(string queryJson) | |||
{ | |||
try | |||
{ | |||
return meetingMinutesService.GetList(queryJson); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取MeetingMinutes表实体数据 | |||
/// <param name="keyValue">主键</param> | |||
/// <summary> | |||
/// <returns></returns> | |||
public MeetingMinutesEntity GetMeetingMinutesEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return meetingMinutesService.GetMeetingMinutesEntity(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 | |||
{ | |||
meetingMinutesService.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, MeetingMinutesEntity entity) | |||
{ | |||
try | |||
{ | |||
meetingMinutesService.SaveEntity(userInfo, keyValue, entity); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,79 @@ | |||
using Learun.Util; | |||
using System; | |||
using System.ComponentModel.DataAnnotations.Schema; | |||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesEntity | |||
{ | |||
#region 实体成员 | |||
/// <summary> | |||
/// 编号 | |||
/// </summary> | |||
[Column("ID")] | |||
public string ID { get; set; } | |||
/// <summary> | |||
/// 会议id | |||
/// </summary> | |||
[Column("MEETID")] | |||
public string MeetID { get; set; } | |||
/// <summary> | |||
/// 纪要标题 | |||
/// </summary> | |||
[Column("TITLE")] | |||
public string Title { get; set; } | |||
/// <summary> | |||
/// 纪要内容 | |||
/// </summary> | |||
[Column("CONTENT")] | |||
public string Content { get; set; } | |||
/// <summary> | |||
/// 附件 | |||
/// </summary> | |||
[Column("FILES")] | |||
public string Files { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
[Column("CREATETIME")] | |||
public DateTime? CreateTime { get; set; } | |||
/// <summary> | |||
/// 创建人 | |||
/// </summary> | |||
[Column("CREATEUSER")] | |||
public string CreateUser { 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 扩展字段 | |||
[NotMapped] | |||
[Column("MEETINGTITLE")] | |||
public string MeetingTitle { get; set; } | |||
#endregion | |||
} | |||
} | |||
@@ -0,0 +1,56 @@ | |||
using Learun.Util; | |||
using System.Data; | |||
using System.Collections.Generic; | |||
namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public interface MeetingMinutesIBLL | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表分页数据 | |||
/// <summary> | |||
/// <param name="pagination">查询参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<MeetingMinutesEntity> GetPageList(Pagination pagination, string queryJson); | |||
/// <summary> | |||
/// 获取页面显示列表数据 | |||
/// <summary> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
IEnumerable<MeetingMinutesEntity> GetList(string queryJson); | |||
/// <summary> | |||
/// 获取MeetingMinutes表实体数据 | |||
/// <param name="keyValue">主键</param> | |||
/// <summary> | |||
/// <returns></returns> | |||
MeetingMinutesEntity GetMeetingMinutesEntity(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, MeetingMinutesEntity entity); | |||
#endregion | |||
} | |||
} |
@@ -0,0 +1,212 @@ | |||
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.PersonnelManagement | |||
{ | |||
/// <summary> | |||
/// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 | |||
/// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 | |||
/// 创 建:超级管理员 | |||
/// 日 期:2021-03-08 10:36 | |||
/// 描 述:会议纪要 | |||
/// </summary> | |||
public class MeetingMinutesService : RepositoryFactory | |||
{ | |||
#region 获取数据 | |||
/// <summary> | |||
/// 获取页面显示列表分页数据 | |||
/// <summary> | |||
/// <param name="pagination">分页参数</param> | |||
/// <param name="queryJson">查询参数</param> | |||
/// <returns></returns> | |||
public IEnumerable<MeetingMinutesEntity> GetPageList(Pagination pagination, string queryJson) | |||
{ | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.ID, | |||
t.MeetID, | |||
t.Title, | |||
t.Content, | |||
t.Files,m.MeetingTitle | |||
"); | |||
strSql.Append(" FROM MeetingMinutes t left join MeetingManagement m on t.MeetID=m.Id "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
var dp = new DynamicParameters(new { }); | |||
if (!queryParam["MeetID"].IsEmpty()) | |||
{ | |||
dp.Add("MeetID", queryParam["MeetID"].ToString(), DbType.String); | |||
strSql.Append(" AND t.MeetID = @MeetID "); | |||
} | |||
if (!queryParam["MeetingTitle"].IsEmpty()) | |||
{ | |||
dp.Add("MeetingTitle", "%" + queryParam["MeetingTitle"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND m.MeetingTitle Like @MeetingTitle "); | |||
} | |||
if (!queryParam["Title"].IsEmpty()) | |||
{ | |||
dp.Add("Title", "%" + queryParam["Title"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.Title Like @Title "); | |||
} | |||
return this.BaseRepository("CollegeMIS").FindList<MeetingMinutesEntity>(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<MeetingMinutesEntity> GetList(string queryJson) | |||
{ | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT "); | |||
strSql.Append(@" | |||
t.ID, | |||
t.MeetID, | |||
t.Title, | |||
t.Content, | |||
t.Files | |||
"); | |||
strSql.Append(" FROM MeetingMinutes t "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
var dp = new DynamicParameters(new { }); | |||
if (!queryParam["MeetID"].IsEmpty()) | |||
{ | |||
dp.Add("MeetID", "%" + queryParam["MeetID"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.MeetID Like @MeetID "); | |||
} | |||
if (!queryParam["Title"].IsEmpty()) | |||
{ | |||
dp.Add("Title", "%" + queryParam["Title"].ToString() + "%", DbType.String); | |||
strSql.Append(" AND t.Title Like @Title "); | |||
} | |||
return this.BaseRepository("CollegeMIS").FindList<MeetingMinutesEntity>(strSql.ToString(),dp); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 获取MeetingMinutes表实体数据 | |||
/// <param name="keyValue">主键</param> | |||
/// <summary> | |||
/// <returns></returns> | |||
public MeetingMinutesEntity GetMeetingMinutesEntity(string keyValue) | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindEntity<MeetingMinutesEntity>(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<MeetingMinutesEntity>(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, MeetingMinutesEntity 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 | |||
} | |||
} |
@@ -167,6 +167,25 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
} | |||
} | |||
public bool Scan(string scanParamUserid, string scanParamMeetid) | |||
{ | |||
try | |||
{ | |||
return meetingSignInRecordService.Scan(scanParamUserid, scanParamMeetid); | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowBusinessException(ex); | |||
} | |||
} | |||
} | |||
#endregion | |||
} | |||
@@ -59,5 +59,6 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
void DoSignIn(string keyValue, bool isSignIn); | |||
#endregion | |||
bool Scan(string scanParamUserid, string scanParamMeetid); | |||
} | |||
} |
@@ -72,8 +72,8 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT t.* "); | |||
strSql.Append(" FROM MeetingSignInRecord t "); | |||
strSql.Append("SELECT t.*,m.MeetingTitle "); | |||
strSql.Append(" FROM MeetingSignInRecord t left join MeetingManagement m on t.MeetID=m.Id "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
@@ -211,5 +211,35 @@ namespace Learun.Application.TwoDevelopment.PersonnelManagement | |||
#endregion | |||
public bool Scan(string scanParamUserid, string scanParamMeetid) | |||
{ | |||
try | |||
{ | |||
var result = false; | |||
var meetEntity = this.BaseRepository("CollegeMIS") | |||
.FindEntity<MeetingSignInRecordEntity>(a => | |||
a.MeetID == scanParamMeetid && a.ParticipantID == scanParamUserid); | |||
if (meetEntity != null) | |||
{ | |||
meetEntity.IsSignIn = true; | |||
this.BaseRepository("CollegeMIS").Update(meetEntity); | |||
result = true; | |||
} | |||
return result; | |||
} | |||
catch (Exception ex) | |||
{ | |||
if (ex is ExceptionEx) | |||
{ | |||
throw; | |||
} | |||
else | |||
{ | |||
throw ExceptionEx.ThrowServiceException(ex); | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -6,14 +6,17 @@ export default { | |||
// 是否允许用户注册 | |||
"enableSignUp": true, | |||
//请求数据的接口地址;可以配置多个,开发环境下登录页会出现选择菜单供您选择 | |||
"apiHost": [ | |||
"http://123.57.209.16:31173/" | |||
], | |||
// "apiHost": [ | |||
// "http://123.57.209.16:31173/" | |||
// ], | |||
// "apiHost": [ | |||
// "http://123.57.209.16:31174/learun/adms" | |||
// ], | |||
// "apiHost": [ | |||
// "http://localhost:8088/" | |||
// ], | |||
"apiHost": [ | |||
"http://localhost:8088/" | |||
"http://192.168.2.98:8088/" | |||
], | |||
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示 | |||
"devAccount": [ | |||
@@ -954,6 +954,38 @@ | |||
"style": { | |||
"navigationBarTitleText": "详情" | |||
} | |||
}, | |||
//会议纪要 | |||
{ | |||
"path": "pages/PersonnelManagement/MeetingMinutes/list", | |||
"style": { | |||
"navigationBarTitleText": "会议纪要" | |||
} | |||
}, | |||
{ | |||
"path": "pages/PersonnelManagement/MeetingMinutes/single", | |||
"style": { | |||
"navigationBarTitleText": "详情" | |||
} | |||
}, | |||
//会议签到记录 | |||
{ | |||
"path": "pages/PersonnelManagement/MeetingSignInRecord/list", | |||
"style": { | |||
"navigationBarTitleText": "会议签到记录" | |||
} | |||
}, | |||
{ | |||
"path": "pages/PersonnelManagement/MeetingSignInRecord/single", | |||
"style": { | |||
"navigationBarTitleText": "详情" | |||
} | |||
}, | |||
{ | |||
"path": "pages/PersonnelManagement/MeetingSignInScan/list", | |||
"style": { | |||
"navigationBarTitleText": "会议扫码签到" | |||
} | |||
} | |||
@@ -1,102 +1,124 @@ | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx;"> | |||
<view | |||
:class="sideOpen ? 'show' : ''" | |||
class="mainpage" | |||
style="padding-top: 80rpx" | |||
> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ tips }}</l-customlist-banner> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ | |||
tips | |||
}}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list"> | |||
<l-scroll-list | |||
v-if="ready" | |||
@pullDown="pullDown" | |||
@toBottom="fetchList()" | |||
ref="list" | |||
> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.Id"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">会议主题:</text> | |||
{{ displayListItem(item, 'MeetingTitle') }} | |||
{{ displayListItem(item, "MeetingTitle") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">会议地点:</text> | |||
{{ displayListItem(item, 'MeetingPlace') }} | |||
{{ displayListItem(item, "MeetingPlace") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">开始时间:</text> | |||
{{ displayListItem(item, 'BeginTime') }} | |||
{{ displayListItem(item, "BeginTime") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">结束时间:</text> | |||
{{ displayListItem(item, 'EndTime') }} | |||
{{ displayListItem(item, "EndTime") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">申请人:</text> | |||
{{ displayListItem(item, 'CreateUser') }} | |||
{{ displayListItem(item, "CreateUser") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">会议记录者:</text> | |||
{{ displayListItem(item, 'RecordPerson') }} | |||
{{ displayListItem(item, "RecordPerson") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">会议内容:</text> | |||
{{ displayListItem(item, 'Content') }} | |||
{{ displayListItem(item, "Content") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">附件上传:</text> | |||
{{ displayListItem(item, 'Files') }} | |||
{{ displayListItem(item, "Files") }} | |||
</view> | |||
<l-customlist-action showEdit @edit="action('edit', item.Id)" showDelete @delete="action('delete', item.Id)" @view="action('view', item.Id)" /> | |||
<l-customlist-action | |||
showButton | |||
buttonText="会议纪要" | |||
@join="action('join', item.Id)" | |||
showEdit | |||
@edit="action('edit', item.Id)" | |||
showDelete | |||
@delete="action('delete', item.Id)" | |||
@view="action('view', item.Id)" | |||
/> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose"> | |||
<view | |||
@click="sideOpen = false" | |||
:class="sideOpen ? 'show' : ''" | |||
class="sideclose" | |||
> | |||
<l-icon type="pullright" color="blue" /> | |||
</view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-input | |||
v-model="queryData.MeetingTitle" | |||
@change="searchChange" | |||
title ="会议主题" | |||
title="会议主题" | |||
placeholder="按会议主题查询" | |||
/> | |||
<l-select | |||
v-model="queryData.MeetingPlace" | |||
@change="searchChange" | |||
:range="dataSource.MeetingPlace" | |||
title ="会议地点" | |||
title="会议地点" | |||
placeholder="按会议地点查询" | |||
/> | |||
<l-organize-picker | |||
v-model="queryData.CreateUser" | |||
@change="searchChange" | |||
type="user" | |||
title ="申请人" | |||
title="申请人" | |||
placeholder="按申请人查询" | |||
/> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"> | |||
<l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button> | |||
<l-button @click="reset" line="orange" class="block" block | |||
>重置查询条件</l-button | |||
> | |||
</view> | |||
</view> | |||
</scroll-view> | |||
<l-customlist-add v-if="!sideOpen" @click="action('add')" /> | |||
</view> | |||
</template> | |||
@@ -114,38 +136,38 @@ | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/PersonnelManagement/MeetingManagement/list", "style": { "navigationBarTitleText": "表单列表页" } } | |||
* | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import moment from 'moment' | |||
import get from 'lodash/get' | |||
import set from 'lodash/set' | |||
import pickBy from 'lodash/pickBy' | |||
import mapValues from 'lodash/mapValues' | |||
import moment from "moment"; | |||
import get from "lodash/get"; | |||
import set from "lodash/set"; | |||
import pickBy from "lodash/pickBy"; | |||
import mapValues from "lodash/mapValues"; | |||
export default { | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
MeetingTitle: { type: 'text' }, | |||
MeetingPlace: { type: 'select', dataSource: '0' }, | |||
BeginTime: { type: 'datetime', dateformat: '0' }, | |||
EndTime: { type: 'datetime', dateformat: '0' }, | |||
RecordPerson: { type: 'organize', dataType: 'user' }, | |||
Content: { type: 'texteditor' }, | |||
Files: { type: 'upload' }, | |||
CreateUser: { type: 'organize', dataType: 'user' }, | |||
MeetingTitle: { type: "text" }, | |||
MeetingPlace: { type: "select", dataSource: "0" }, | |||
BeginTime: { type: "datetime", dateformat: "0" }, | |||
EndTime: { type: "datetime", dateformat: "0" }, | |||
RecordPerson: { type: "organize", dataType: "user" }, | |||
Content: { type: "texteditor" }, | |||
Files: { type: "upload" }, | |||
CreateUser: { type: "organize", dataType: "user" }, | |||
}, | |||
// 查询条件 | |||
searchData: {}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
MeetingTitle: '', | |||
MeetingPlace: '', | |||
CreateUser: '', | |||
MeetingTitle: "", | |||
MeetingPlace: "", | |||
CreateUser: "", | |||
}, | |||
// 数据源 | |||
@@ -155,166 +177,202 @@ export default { | |||
// 页面相关参数 | |||
ready: false, | |||
tips: '加载中...', | |||
loadState: '向下翻以加载更多', | |||
tips: "加载中...", | |||
loadState: "向下翻以加载更多", | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [] | |||
} | |||
list: [], | |||
}; | |||
}, | |||
async onLoad() { | |||
await this.init() | |||
await this.init(); | |||
}, | |||
onUnload() { | |||
this.OFF('PersonnelManagementMeetingManagement-list-change') | |||
this.OFF("PersonnelManagementMeetingManagement-list-change"); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init() { | |||
this.ON('PersonnelManagementMeetingManagement-list-change', this.refreshList) | |||
this.ON( | |||
"PersonnelManagementMeetingManagement-list-change", | |||
this.refreshList | |||
); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
() => {} | |||
]) | |||
await this.fetchList() | |||
await Promise.all([() => {}]); | |||
await this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData) | |||
this.ready = true | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { return } | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
const result = await this.HTTP_GET( | |||
'learun/adms/PersonnelManagement/MeetingManagement/pagelist', | |||
"learun/adms/PersonnelManagement/MeetingManagement/pagelist", | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: 'Id', sord: 'DESC' }, | |||
queryJson: JSON.stringify(this.searchData) | |||
pagination: { rows: 10, page: this.page, sidx: "Id", sord: "DESC" }, | |||
queryJson: JSON.stringify(this.searchData), | |||
}, | |||
'加载数据时出错' | |||
) | |||
"加载数据时出错" | |||
); | |||
if (!result) { return } | |||
if (!result) { | |||
return; | |||
} | |||
this.total = result.total | |||
this.page = result.page + 1 | |||
this.list = this.list.concat(result.rows) | |||
this.total = result.total; | |||
this.page = result.page + 1; | |||
this.list = this.list.concat(result.rows); | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${result.total} 页,共 ${result.records} 项` | |||
this.loadState = result.page >= result.total ? '已加载所有项目' : '向下翻以加载更多' | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${ | |||
result.total | |||
} 页,共 ${result.records} 项`; | |||
this.loadState = | |||
result.page >= result.total ? "已加载所有项目" : "向下翻以加载更多"; | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1 | |||
this.total = 2 | |||
this.list = [] | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList() | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown() | |||
}) | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {} | |||
const result = {}; | |||
// 将其他查询项添加到查询 JSON 中 | |||
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.refreshList() | |||
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.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.queryData = this.COPY(this.defaultQueryData) | |||
this.searchChange() | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = '') { | |||
async action(type, id = "") { | |||
switch (type) { | |||
case 'view': | |||
this.NAV_TO(`./single?type=view&id=${id}`) | |||
return | |||
case 'add': | |||
this.NAV_TO('./single?type=create') | |||
return | |||
case 'edit': | |||
this.NAV_TO(`./single?type=edit&id=${id}`) | |||
return | |||
case 'delete': | |||
if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) { | |||
return | |||
case "view": | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case "add": | |||
this.NAV_TO("./single?type=create"); | |||
return; | |||
case "edit": | |||
this.NAV_TO(`./single?type=edit&id=${id}`); | |||
return; | |||
case "join": | |||
console.log(123); | |||
this.NAV_TO(`/pages/PersonnelManagement/MeetingMinutes/list?meetId=${id}`); | |||
return; | |||
case "delete": | |||
if (!(await this.CONFIRM("删除项目", "确定要删除该项吗?", true))) { | |||
return; | |||
} | |||
this.HTTP_POST('learun/adms/PersonnelManagement/MeetingManagement/delete', id, '删除失败').then(success => { | |||
if(!success) { return } | |||
this.TOAST('删除成功', 'success') | |||
this.refreshList() | |||
}) | |||
return | |||
this.HTTP_POST( | |||
"learun/adms/PersonnelManagement/MeetingManagement/delete", | |||
id, | |||
"删除失败" | |||
).then((success) => { | |||
if (!success) { | |||
return; | |||
} | |||
this.TOAST("删除成功", "success"); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field] | |||
const value = item[field] | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case 'currentInfo': | |||
case 'organize': | |||
return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, '') | |||
case 'radio': | |||
case 'select': | |||
const selectItem = this.dataSource[field].find(t => t.value === String(value)) | |||
return get(selectItem, 'text', '') | |||
case 'checkbox': | |||
if (!value || value.split(',').length <= 0) { return '' } | |||
const checkboxItems = value.split(',') | |||
return this.dataSource[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年 M月 D日' : 'YYYY-MM-DD HH:mm') | |||
case "currentInfo": | |||
case "organize": | |||
return fieldItem.dataType === "time" | |||
? value | |||
: get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ""); | |||
case "radio": | |||
case "select": | |||
const selectItem = this.dataSource[field].find( | |||
(t) => t.value === String(value) | |||
); | |||
return get(selectItem, "text", ""); | |||
case "checkbox": | |||
if (!value || value.split(",").length <= 0) { | |||
return ""; | |||
} | |||
const checkboxItems = value.split(","); | |||
return this.dataSource[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年 M月 D日" | |||
: "YYYY-MM-DD HH:mm" | |||
); | |||
default: return value === null || value === undefined ? '' : value | |||
default: | |||
return value === null || value === undefined ? "" : value; | |||
} | |||
} | |||
} | |||
} | |||
}, | |||
}, | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import '~@/common/css/sidepage.less'; | |||
@import '~@/common/css/customlist.less'; | |||
@import "~@/common/css/sidepage.less"; | |||
@import "~@/common/css/customlist.less"; | |||
</style> |
@@ -0,0 +1,338 @@ | |||
<template> | |||
<view class="page"> | |||
<!-- 主列表页 --> | |||
<view | |||
:class="sideOpen ? 'show' : ''" | |||
class="mainpage" | |||
style="padding-top: 80rpx" | |||
> | |||
<!-- 顶部条目/分页信息栏 --> | |||
<l-customlist-banner @buttonClick="sideOpen = true">{{ | |||
tips | |||
}}</l-customlist-banner> | |||
<!-- 滚动列表,跨端支持上拉/下拉 --> | |||
<l-scroll-list | |||
v-if="ready" | |||
@pullDown="pullDown" | |||
@toBottom="fetchList()" | |||
ref="list" | |||
> | |||
<l-customlist :tips="loadState" showTips> | |||
<!-- 单条记录 --> | |||
<view class="customlist-item" v-for="item of list" :key="item.ID"> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">会议名称:</text> | |||
{{ displayListItem(item, "MeetingTitle") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">纪要标题:</text> | |||
{{ displayListItem(item, "Title") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">内容:</text> | |||
{{ displayListItem(item, "Content") }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">附件上传:</text> | |||
{{ displayListItem(item, "Files") }} | |||
</view> | |||
<l-customlist-action | |||
showEdit | |||
@edit="action('edit', item.ID)" | |||
showDelete | |||
@delete="action('delete', item.ID)" | |||
@view="action('view', item.ID)" | |||
/> | |||
</view> | |||
</l-customlist> | |||
</l-scroll-list> | |||
</view> | |||
<!-- 关闭侧边抽屉按钮 --> | |||
<view | |||
@click="sideOpen = false" | |||
:class="sideOpen ? 'show' : ''" | |||
class="sideclose" | |||
> | |||
<l-icon type="pullright" color="blue" /> | |||
</view> | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-input | |||
v-model="queryData.MeetID" | |||
@change="searchChange" | |||
title="会议名称" | |||
placeholder="按会议名称查询" | |||
/> | |||
<l-input | |||
v-model="queryData.Title" | |||
@change="searchChange" | |||
title="纪要标题" | |||
placeholder="按纪要标题查询" | |||
/> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"> | |||
<l-button @click="reset" line="orange" class="block" block | |||
>重置查询条件</l-button | |||
> | |||
</view> | |||
</view> | |||
</scroll-view> | |||
<l-customlist-add v-if="!sideOpen" @click="action('add')" /> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2021 上海力软信息技术有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2021-03-08 10:36 | |||
* 描 述:会议纪要 | |||
*/ | |||
/** | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/PersonnelManagement/MeetingMinutes/list", "style": { "navigationBarTitleText": "表单列表页" } } | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import moment from "moment"; | |||
import get from "lodash/get"; | |||
import set from "lodash/set"; | |||
import pickBy from "lodash/pickBy"; | |||
import mapValues from "lodash/mapValues"; | |||
export default { | |||
data() { | |||
return { | |||
// 数据项的数据类型、结构 | |||
scheme: { | |||
MeetingTitle: { type: "text" }, | |||
Title: { type: "text" }, | |||
Content: { type: "texteditor" }, | |||
Files: { type: "upload" }, | |||
}, | |||
// 查询条件 | |||
searchData: {}, | |||
defaultQueryData: {}, | |||
queryData: { | |||
MeetID: "", | |||
Title: "", | |||
}, | |||
// 数据源 | |||
dataSource: {}, | |||
// 页面相关参数 | |||
meetId: "", | |||
ready: false, | |||
tips: "加载中...", | |||
loadState: "向下翻以加载更多", | |||
sideOpen: false, | |||
// 列表与分页信息 | |||
page: 1, | |||
total: 2, | |||
list: [], | |||
}; | |||
}, | |||
async onLoad(meetId) { | |||
await this.init(meetId); | |||
}, | |||
onUnload() { | |||
this.OFF("PersonnelManagementMeetingMinutes-list-change"); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init(meetId) { | |||
console.log(meetId); | |||
this.meetId = meetId.meetId; | |||
this.ON( | |||
"PersonnelManagementMeetingMinutes-list-change", | |||
this.refreshList | |||
); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([() => {}]); | |||
await this.fetchList(); | |||
// 初始化查询条件 | |||
this.defaultQueryData = this.COPY(this.queryData); | |||
this.ready = true; | |||
}, | |||
// 拉取列表 | |||
async fetchList() { | |||
if (this.page > this.total) { | |||
return; | |||
} | |||
this.searchData.MeetID=this.meetId; | |||
const result = await this.HTTP_GET( | |||
"learun/adms/PersonnelManagement/MeetingMinutes/pagelist", | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
pagination: { rows: 10, page: this.page, sidx: "ID", sord: "DESC" }, | |||
queryJson: JSON.stringify(this.searchData), | |||
}, | |||
"加载数据时出错" | |||
); | |||
if (!result) { | |||
return; | |||
} | |||
this.total = result.total; | |||
this.page = result.page + 1; | |||
this.list = this.list.concat(result.rows); | |||
this.tips = `已加载 ${Math.min(result.page, result.total)} / ${ | |||
result.total | |||
} 页,共 ${result.records} 项`; | |||
this.loadState = | |||
result.page >= result.total ? "已加载所有项目" : "向下翻以加载更多"; | |||
}, | |||
// 刷新清空列表 | |||
async refreshList() { | |||
this.page = 1; | |||
this.total = 2; | |||
this.list = []; | |||
await this.fetchList(); | |||
}, | |||
// 列表下拉 | |||
pullDown() { | |||
this.refreshList().then(() => { | |||
this.$refs.list.stopPullDown(); | |||
}); | |||
}, | |||
// 设置搜索条件 | |||
async searchChange() { | |||
const result = {}; | |||
// 将其他查询项添加到查询 JSON 中 | |||
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.refreshList(); | |||
}, | |||
// 点击「清空查询条件」按钮 | |||
reset() { | |||
this.queryData = this.COPY(this.defaultQueryData); | |||
this.searchChange(); | |||
}, | |||
// 点击「编辑」、「查看」、「添加」、「删除」按钮 | |||
async action(type, id = "") { | |||
switch (type) { | |||
case "view": | |||
this.NAV_TO(`./single?type=view&id=${id}`); | |||
return; | |||
case "add": | |||
this.NAV_TO("./single?type=create&meetId="+this.meetId); | |||
return; | |||
case "edit": | |||
this.NAV_TO(`./single?type=edit&id=${id}`); | |||
return; | |||
case "delete": | |||
if (!(await this.CONFIRM("删除项目", "确定要删除该项吗?", true))) { | |||
return; | |||
} | |||
this.HTTP_POST( | |||
"learun/adms/PersonnelManagement/MeetingMinutes/delete", | |||
id, | |||
"删除失败" | |||
).then((success) => { | |||
if (!success) { | |||
return; | |||
} | |||
this.TOAST("删除成功", "success"); | |||
this.refreshList(); | |||
}); | |||
return; | |||
default: | |||
return; | |||
} | |||
}, | |||
// 显示列表中的标题项 | |||
displayListItem(item, field) { | |||
const fieldItem = this.scheme[field]; | |||
const value = item[field]; | |||
switch (fieldItem.type) { | |||
case "currentInfo": | |||
case "organize": | |||
return fieldItem.dataType === "time" | |||
? value | |||
: get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, ""); | |||
case "radio": | |||
case "select": | |||
const selectItem = this.dataSource[field].find( | |||
(t) => t.value === String(value) | |||
); | |||
return get(selectItem, "text", ""); | |||
case "checkbox": | |||
if (!value || value.split(",").length <= 0) { | |||
return ""; | |||
} | |||
const checkboxItems = value.split(","); | |||
return this.dataSource[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年 M月 D日" | |||
: "YYYY-MM-DD HH:mm" | |||
); | |||
default: | |||
return value === null || value === undefined ? "" : value; | |||
} | |||
}, | |||
}, | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import "~@/common/css/sidepage.less"; | |||
@import "~@/common/css/customlist.less"; | |||
</style> |
@@ -0,0 +1,259 @@ | |||
<template> | |||
<view class="page"> | |||
<view v-if="ready"> | |||
<l-input | |||
@input="setValue('MeetingMinutes.Title', $event)" | |||
:value="getValue('MeetingMinutes.Title')" | |||
:disabled="!edit" | |||
title="纪要标题" | |||
/> | |||
<l-textarea | |||
@input="setValue('MeetingMinutes.Content', $event)" | |||
:value="getValue('MeetingMinutes.Content')" | |||
:readonly="!edit" | |||
title="内容" | |||
/> | |||
<l-upload-file | |||
@input="setValue('MeetingMinutes.Files', $event)" | |||
:value="getValue('MeetingMinutes.Files')" | |||
:readonly="!edit" | |||
:number="9" | |||
title="附件上传" | |||
/> | |||
</view> | |||
<view | |||
v-if="ready" | |||
class="bg-white margin-tb padding" | |||
style="padding-top: 0; overflow: hidden" | |||
> | |||
<l-button | |||
v-if="edit" | |||
@click="action('save')" | |||
size="lg" | |||
color="green" | |||
class="block margin-top" | |||
block | |||
> | |||
提交保存 | |||
</l-button> | |||
<l-button | |||
v-if="!edit && mode !== 'create'" | |||
@click="action('edit')" | |||
size="lg" | |||
line="orange" | |||
class="block margin-top" | |||
block | |||
> | |||
编辑本页 | |||
</l-button> | |||
<l-button | |||
v-if="edit && mode !== 'create'" | |||
@click="action('reset')" | |||
size="lg" | |||
line="red" | |||
class="block margin-top" | |||
block | |||
> | |||
取消编辑 | |||
</l-button> | |||
<l-button | |||
v-if="!edit && mode !== 'create'" | |||
@click="action('delete')" | |||
size="lg" | |||
line="red" | |||
class="block margin-top" | |||
block | |||
> | |||
删除 | |||
</l-button> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
* 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn) | |||
* Copyright (c) 2013-2021 上海力软信息技术有限公司 | |||
* 创建人:超级管理员 | |||
* 日 期:2021-03-08 10:36 | |||
* 描 述:会议纪要 | |||
*/ | |||
/** | |||
* 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用 | |||
* 请在移动端 /pages.json 中的 pages 字段中添加一条记录: | |||
* { "path": "pages/PersonnelManagement/MeetingMinutes/single", "style": { "navigationBarTitleText": "表单详情页" } } | |||
* | |||
* (navigationBarTitleText 字段为本页面的标题文本,可以修改) | |||
* (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件) | |||
*/ | |||
import get from "lodash/get"; | |||
import set from "lodash/set"; | |||
import moment from "moment"; | |||
import customPageMixins from "@/common/custompage.js"; | |||
export default { | |||
mixins: [customPageMixins], | |||
data() { | |||
return { | |||
// 页面相关参数 | |||
meetId: null, | |||
id: null, | |||
mode: null, | |||
edit: null, | |||
ready: false, | |||
// 表单数据 | |||
current: {}, | |||
origin: {}, | |||
// 表单项数据结构 | |||
scheme: { | |||
MeetingMinutes: { | |||
MeetID: { type: "text", title: "会议名称" }, | |||
Title: { type: "text", title: "纪要标题" }, | |||
Content: { type: "texteditor", title: "内容" }, | |||
Files: { type: "upload", title: "附件上传" }, | |||
}, | |||
}, | |||
// 数据源 | |||
dataSource: { | |||
MeetingMinutes: {}, | |||
}, | |||
}; | |||
}, | |||
async onLoad({ type, id, meetId }) { | |||
await this.init(type, id, meetId); | |||
}, | |||
methods: { | |||
// 页面初始化 | |||
async init(type, id, meetId) { | |||
this.LOADING("加载数据中..."); | |||
this.meetId = meetId; | |||
this.id = id; | |||
this.mode = type; | |||
this.edit = ["create", "edit"].includes(this.mode); | |||
// 拉取表单数据,同时拉取所有来自数据源的选单数据 | |||
await Promise.all([() => {}]); | |||
await this.fetchForm(); | |||
this.ready = true; | |||
this.HIDE_LOADING(); | |||
}, | |||
// 加载表单数据 | |||
async fetchForm() { | |||
if (this.mode === "create") { | |||
this.origin = await this.getDefaultForm(); | |||
} else { | |||
const result = await this.HTTP_GET( | |||
"learun/adms/PersonnelManagement/MeetingMinutes/form", | |||
this.id | |||
); | |||
this.origin = await this.formatFormData(result); | |||
} | |||
this.current = this.COPY(this.origin); | |||
}, | |||
// 点击 「编辑」、「重置」、「保存」、「删除」 按钮 | |||
async action(type) { | |||
switch (type) { | |||
case "edit": | |||
this.edit = true; | |||
break; | |||
case "reset": | |||
this.current = this.COPY(this.origin); | |||
this.edit = false; | |||
break; | |||
case "save": | |||
const verifyResult = this.verifyForm(); | |||
if (verifyResult.length > 0) { | |||
this.CONFIRM("表单验证失败", verifyResult.join("\n")); | |||
return; | |||
} | |||
if ( | |||
!(await this.CONFIRM( | |||
"提交确认", | |||
"确定要提交本页表单内容吗?", | |||
true | |||
)) | |||
) { | |||
return; | |||
} | |||
this.LOADING("正在提交..."); | |||
this.scheme.MeetingMinutes.MeetID = this.meetId; | |||
const postData = await this.getPostData(this.id); | |||
var aa = JSON.parse(postData.strEntity); | |||
aa.MeetID = this.meetId; | |||
postData.strEntity = JSON.stringify(aa); | |||
console.log(postData); | |||
this.HTTP_POST( | |||
"learun/adms/PersonnelManagement/MeetingMinutes/save", | |||
postData, | |||
"表单提交保存失败" | |||
).then((success) => { | |||
this.HIDE_LOADING(); | |||
if (!success) { | |||
return; | |||
} | |||
this.EMIT("PersonnelManagementMeetingMinutes-list-change"); | |||
this.NAV_BACK(); | |||
this.TOAST("提交保存成功"); | |||
}); | |||
break; | |||
case "delete": | |||
if (!(await this.CONFIRM("删除项目", "确定要删除本项吗?", true))) { | |||
return; | |||
} | |||
this.LOADING("提交删除中..."); | |||
this.HTTP_POST( | |||
"learun/adms/PersonnelManagement/MeetingMinutes/delete", | |||
this.id, | |||
"删除失败" | |||
).then((success) => { | |||
this.HIDE_LOADING(); | |||
if (!success) { | |||
return; | |||
} | |||
this.EMIT("PersonnelManagementMeetingMinutes-list-change"); | |||
this.NAV_BACK(); | |||
this.this.TOAST("删除成功", "success"); | |||
}); | |||
break; | |||
default: | |||
break; | |||
} | |||
}, | |||
// 获取表单值 | |||
getValue(path) { | |||
return get(this.current, path); | |||
}, | |||
// 设置表单值 | |||
setValue(path, val) { | |||
set(this.current, path, val); | |||
}, | |||
}, | |||
}; | |||
</script> | |||
@@ -155,7 +155,7 @@ export default { | |||
if (this.page > this.total) { return } | |||
const result = await this.HTTP_GET( | |||
'/PersonnelManagement/MeetingSignInRecord/pagelist', | |||
'learun/adms/PersonnelManagement/MeetingSignInRecord/pagelist', | |||
{ | |||
// 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序) | |||
// 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序 | |||
@@ -0,0 +1,45 @@ | |||
<template> | |||
<view class="page"> | |||
<view class="btn" @click="tapScan"> 扫码 </view> | |||
</view> | |||
</template> | |||
<script> | |||
import scanCodeFun from "@/common/js/scanCodeFun.js"; | |||
export default { | |||
data() { | |||
return {}; | |||
}, | |||
methods: { | |||
init() { | |||
let _this = this; | |||
scanCodeFun.scanCodeFun().then((res) => { | |||
if (!res) return; | |||
var userInfo = this.GET_GLOBAL("loginUser"); | |||
var result = this.HTTP_GET( | |||
"learun/adms/PersonnelManagement/MeetingSignInRecord/scan", | |||
{ | |||
userid: userInfo.userId, | |||
meetid: res.result, | |||
}, | |||
"签到时出错" | |||
).then(res1=>{this.TOAST(res1.result )}) | |||
}); | |||
}, | |||
tapScan() { | |||
this.init(); | |||
}, | |||
}, | |||
mounted() { | |||
let _this = this; | |||
setTimeout(function () { | |||
_this.init(); | |||
}, 100); | |||
}, | |||
}; | |||
</script> | |||
<style lang="less" scoped> | |||
@import "~@/common/css/sidepage.less"; | |||
@import "~@/common/css/customlist.less"; | |||
</style> |
@@ -16,7 +16,6 @@ export default { | |||
init() { | |||
let _this = this; | |||
scanCodeFun.scanCodeFun().then(res => { | |||
console.log(res); | |||
if(!res) return; | |||
this.NAV_TO('./from', { StuNo: res.result }, true); | |||
}) | |||