This commit is contained in:
zel
2025-03-16 03:09:58 +08:00
parent 8bce1f84c6
commit ffc6426a0a
14 changed files with 666 additions and 598 deletions

View File

@@ -1,132 +0,0 @@
using SqlSugar;
using System;
using System.ComponentModel.DataAnnotations;
namespace WaterCloud.Domain.Entity.CustomerOrder;
[SugarTable("cms_customerorder")]
public class CustomerOrderEntity : IEntity<CustomerOrderEntity>, ICreationAudited, IModificationAudited, IDeleteAudited
{
#region
/// <summary>
/// Key
/// </summary>
[SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true, ColumnDescription = "主键Id")]
public string F_Id { get; set; }
/// <summary>
/// 逻辑删除标志
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnDescription = "逻辑删除标志")]
public bool? F_DeleteMark { get; set; }
/// <summary>
/// 创建时间
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnDescription = "创建时间")]
public DateTime? F_CreatorTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnName = "F_CreatorUserId", ColumnDataType = "nvarchar(50)",
ColumnDescription = "创建人")]
public string F_CreatorUserId { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnDescription = "最后修改时间")]
public DateTime? F_LastModifyTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnName = "F_LastModifyUserId", ColumnDataType = "nvarchar(50)",
ColumnDescription = "最后修改人")]
public string F_LastModifyUserId { get; set; }
/// <summary>
/// 删除时间
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnDescription = "删除时间")]
public DateTime? F_DeleteTime { get; set; }
/// <summary>
/// 删除人
/// </summary>
/// <returns></returns>
[SugarColumn(IsNullable = true, ColumnName = "F_DeleteUserId", ColumnDataType = "nvarchar(50)",
ColumnDescription = "删除人")]
public string F_DeleteUserId { get; set; }
#endregion
/// <summary>
/// 客户名称
/// </summary>
[Required(ErrorMessage = "客户名称不能为空")]
[SugarColumn(IsNullable = true, ColumnName = "F_Name", ColumnDataType = "nvarchar(200)",
ColumnDescription = "客户名称")]
public string F_Name { get; set; }
/// <summary>
/// 对接人
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_ContactPerson", ColumnDataType = "nvarchar(200)",
ColumnDescription = "对接人")]
public string F_ContactPerson { get; set; }
/// <summary>
/// 开始合作时间
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_CooperationTime", ColumnDescription = "开始合作时间")]
public DateTime? F_CooperationTime { get; set; }
/// <summary>
/// 贴文时间
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_PostTime", ColumnDescription = "发帖时间")]
public DateTime? F_PostTime { get; set; }
/// <summary>
/// 合作进展 1:持续合作 0断续
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_OrderState", ColumnDescription = "合作进展")]
public int? F_OrderState { get; set; }
/// <summary>
/// 附件
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_Attachment", ColumnDescription = "附件",
ColumnDataType = "nvarchar(200)")]
public string F_Attachment { get; set; }
/// <summary>
/// 联系方式
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_Contact", ColumnDescription = "联系方式",
ColumnDataType = "nvarchar(500)")]
public string F_Contact { get; set; }
/// <summary>
/// 对接情况
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_Docking", ColumnDescription = "对接情况",
ColumnDataType = "nvarchar(100)")]
public string F_Docking { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(IsNullable = true, ColumnName = "F_Remark", ColumnDescription = "备注",
ColumnDataType = "nvarchar(500)")]
public string F_Remark { get; set; }
}

View File

@@ -0,0 +1,101 @@
using System;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace WaterCloud.Domain.OrderManagement
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2025-03-16 01:39
/// 描 述:用户订单实体类
/// </summary>
[SugarTable("cms_ordercustomer")]
public class OrderCustomerEntity : IEntity<OrderCustomerEntity>,ICreationAudited,IModificationAudited,IDeleteAudited
{
/// <summary>
/// 主键Id
/// </summary>
[SugarColumn(ColumnName="F_Id", ColumnDescription = "主键Id",ColumnDataType = "varchar(50)",IsPrimaryKey = true)]
public string F_Id { get; set; }
/// <summary>
/// 逻辑删除标志
/// </summary>
[SugarColumn(ColumnName="F_DeleteMark", ColumnDescription = "逻辑删除标志",ColumnDataType = "tinyint(1)", IsNullable = true)]
public bool? F_DeleteMark { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnName="F_CreatorTime", ColumnDescription = "创建时间",ColumnDataType = "datetime", IsNullable = true)]
public DateTime? F_CreatorTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
[SugarColumn(ColumnName="F_CreatorUserId", ColumnDescription = "创建人",ColumnDataType = "varchar(50)", IsNullable = true)]
public string F_CreatorUserId { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
[SugarColumn(ColumnName="F_LastModifyTime", ColumnDescription = "最后修改时间",ColumnDataType = "datetime", IsNullable = true)]
public DateTime? F_LastModifyTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
[SugarColumn(ColumnName="F_LastModifyUserId", ColumnDescription = "最后修改人",ColumnDataType = "varchar(50)", IsNullable = true)]
public string F_LastModifyUserId { get; set; }
/// <summary>
/// 删除时间
/// </summary>
[SugarColumn(ColumnName="F_DeleteTime", ColumnDescription = "删除时间",ColumnDataType = "datetime", IsNullable = true)]
public DateTime? F_DeleteTime { get; set; }
/// <summary>
/// 删除人
/// </summary>
[SugarColumn(ColumnName="F_DeleteUserId", ColumnDescription = "删除人",ColumnDataType = "varchar(50)", IsNullable = true)]
public string F_DeleteUserId { get; set; }
/// <summary>
/// 客户名称
/// </summary>
[SugarColumn(ColumnName="F_Name", ColumnDescription = "客户名称",ColumnDataType = "varchar(200)", IsNullable = true)]
public string F_Name { get; set; }
/// <summary>
/// 开始合作时间
/// </summary>
[SugarColumn(ColumnName="F_CooperationTime", ColumnDescription = "开始合作时间",ColumnDataType = "datetime", IsNullable = true)]
public DateTime? F_CooperationTime { get; set; }
/// <summary>
/// 发帖时间
/// </summary>
[SugarColumn(ColumnName="F_PostTime", ColumnDescription = "发帖时间",ColumnDataType = "datetime", IsNullable = true)]
public DateTime? F_PostTime { get; set; }
/// <summary>
/// 合作进展
/// </summary>
[SugarColumn(ColumnName="F_OrderState", ColumnDescription = "合作进展",ColumnDataType = "int(11)", IsNullable = true)]
public int? F_OrderState { get; set; }
/// <summary>
/// 对接人
/// </summary>
[SugarColumn(ColumnName="F_ContactPerson", ColumnDescription = "对接人",ColumnDataType = "varchar(200)", IsNullable = true)]
public string F_ContactPerson { get; set; }
/// <summary>
/// 附件
/// </summary>
[SugarColumn(ColumnName="F_Attachment", ColumnDescription = "附件",ColumnDataType = "varchar(200)", IsNullable = true)]
public string F_Attachment { get; set; }
/// <summary>
/// 联系方式
/// </summary>
[SugarColumn(ColumnName="F_Contact", ColumnDescription = "联系方式",ColumnDataType = "varchar(500)", IsNullable = true)]
public string F_Contact { get; set; }
/// <summary>
/// 对接情况
/// </summary>
[SugarColumn(ColumnName="F_Docking", ColumnDescription = "对接情况",ColumnDataType = "varchar(100)", IsNullable = true)]
public string F_Docking { get; set; }
/// <summary>
/// 备注
/// </summary>
[SugarColumn(ColumnName="F_Remark", ColumnDescription = "备注",ColumnDataType = "varchar(500)", IsNullable = true)]
public string F_Remark { get; set; }
}
}

View File

@@ -1,89 +0,0 @@
using System;
using SqlSugar;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WaterCloud.Code;
using WaterCloud.DataBase;
using WaterCloud.Domain.Entity.CustomerOrder;
namespace WaterCloud.Service.CustomerOrder;
public class CustomerOrderService : BaseService<CustomerOrderEntity>, IDenpendency
{
public CustomerOrderService(ISqlSugarClient context) : base(context)
{
}
public async Task<List<CustomerOrderEntity>> GetList(string keyword = "")
{
var query = repository.IQueryable();
if (!string.IsNullOrWhiteSpace(keyword))
query = query.Where(oo => oo.F_Name.Contains(keyword));
//普通用户仅可查看自己的数据
if (!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior)
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
return await query.OrderBy(oo => oo.F_CreatorTime).ToListAsync();
}
public async Task<List<CustomerOrderEntity>> GetPageList(Pagination pagination, string keyword = "")
{
var query = repository.IQueryable().Where(a => a.F_DeleteMark == false);
if (!string.IsNullOrWhiteSpace(keyword))
query = query.Where(oo => oo.F_Name.Contains(keyword));
//普通用户仅可查看自己的数据
if (!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior)
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
return await query.ToPageListAsync(pagination);
}
public async Task<CustomerOrderEntity> GetForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return data;
}
#region
public async Task SubmitForm(CustomerOrderEntity entity, string keyValue)
{
if (string.IsNullOrWhiteSpace(keyValue))
{
entity.F_DeleteMark = false;
entity.Create();
await repository.Insert(entity);
}
else
{
if ((!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) &&
currentuser.UserId != entity.F_CreatorUserId)
{
return;
}
entity.Modify(keyValue);
await repository.Update(entity);
}
}
public async Task DeleteForm(string keyValue)
{
var ids = keyValue.Split(',');
var data = await repository.FindEntity(keyValue);
if (data == null)
return;
if ((!currentuser.IsAdmin || !currentuser.IsBoss || !currentuser.IsSuperAdmin || !currentuser.IsSenior) &&
currentuser.UserId != data.F_CreatorUserId)
throw new Exception("违规删除");
await repository.Delete(oo=>ids.Contains(oo.F_Id));
}
#endregion
}

View File

@@ -0,0 +1,104 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using WaterCloud.Code;
using SqlSugar;
using WaterCloud.DataBase;
using WaterCloud.Domain.OrderManagement;
namespace WaterCloud.Service.OrderManagement
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2025-03-16 01:39
/// 描 述:用户订单服务类
/// </summary>
public class OrderCustomerService : BaseService<OrderCustomerEntity>, IDenpendency
{
public OrderCustomerService(ISqlSugarClient context) : base(context)
{
}
#region
public async Task<List<OrderCustomerEntity>> GetList(string keyword = "")
{
var data = repository.IQueryable();
if (!string.IsNullOrEmpty(keyword))
{
data = data.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
return await data.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_CreatorTime , OrderByType.Desc).ToListAsync();
}
public async Task<List<OrderCustomerEntity>> GetLookList(string keyword = "")
{
var query = repository.IQueryable().Where(a => a.F_DeleteMark == false);
if (!string.IsNullOrEmpty(keyword))
{
//此处需修改
query = query.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
//权限过滤
query = GetDataPrivilege("a", "", query);
return await query.OrderBy(a => a.F_CreatorTime , OrderByType.Desc).ToListAsync();
}
public async Task<List<OrderCustomerEntity>> GetLookList(SoulPage<OrderCustomerEntity> pagination,string keyword = "",string id="")
{
var query = repository.IQueryable().Where(a => a.F_DeleteMark == false);
if (!string.IsNullOrEmpty(keyword))
{
query = query.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
if(!string.IsNullOrEmpty(id))
{
query= query.Where(a=>a.F_Id==id);
}
//权限过滤
query = GetDataPrivilege("a","",query);
return await query.ToPageListAsync(pagination);
}
public async Task<OrderCustomerEntity> GetForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return data;
}
#endregion
public async Task<OrderCustomerEntity> GetLookForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return GetFieldsFilterData(data);
}
#region
public async Task SubmitForm(OrderCustomerEntity entity, string keyValue)
{
if(string.IsNullOrEmpty(keyValue))
{
//初始值添加
entity.F_DeleteMark = false;
entity.Create();
await repository.Insert(entity);
}
else
{
//此处需修改
entity.Modify(keyValue);
await repository.Update(entity);
}
}
public async Task DeleteForm(string keyValue)
{
var ids = keyValue.Split(',');
await repository.Delete(a => ids.Contains(a.F_Id.ToString()));
}
#endregion
}
}

View File

@@ -1,78 +0,0 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using WaterCloud.Code;
using WaterCloud.Domain.Entity.CustomerOrder;
using WaterCloud.Service.CustomerOrder;
namespace WaterCloud.Web.Areas.CustomerOrder.Controllers;
[Area("CustomerOrder")]
public class CustomerOrderController : BaseController
{
public CustomerOrderService CustomerOrderService { get; set; }
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetPageList(Pagination pagination, string keyword)
{
if (string.IsNullOrEmpty(pagination.field))
{
pagination.order = "desc";
pagination.field = "F_CreatorTime";
}
var data = await CustomerOrderService.GetPageList(pagination, keyword);
return Success(pagination.records, data);
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetListJson(string keyword)
{
var data = await CustomerOrderService.GetList(keyword);
return Content(data.ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetFormJson(string keyValue)
{
var data = await CustomerOrderService.GetForm(keyValue);
return Content(data.ToJson());
}
#region
[HttpPost]
[HandlerAjaxOnly]
public async Task<ActionResult> SubmitForm(CustomerOrderEntity entity, string keyValue)
{
try
{
await CustomerOrderService.SubmitForm(entity, keyValue);
return await Success("操作成功。", "", keyValue);
}
catch (Exception ex)
{
return await Error(ex.Message, "", keyValue);
}
}
[HttpPost]
[HandlerAjaxOnly]
[HandlerAuthorize]
public async Task<ActionResult> DeleteForm(string keyValue)
{
try
{
await CustomerOrderService.DeleteForm(keyValue);
return await Success("操作成功。", "", keyValue, DbLogType.Delete);
}
catch (Exception ex)
{
return await Error(ex.Message, "", keyValue, DbLogType.Delete);
}
}
#endregion
}

View File

@@ -1,237 +0,0 @@
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset layui-hide" id="searchField">
<div>
<form class="layui-form layui-form-pane">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">关键字:</label>
<div class="layui-input-inline">
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon">&#xe615;</i> 搜 索
</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide"
lay-event="edit"><i class="layui-icon">&#xe642;</i>修改
</button>
<button id="NF-delete" name="NF-delete" authorize
class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"><i
class="layui-icon">&#xe640;</i>删除
</button>
<button id="NF-details" name="NF-details" authorize
class="layui-btn layui-btn-sm layui-btn-normal layui-hide" lay-event="details"><i
class="layui-icon">&#xe60b;</i>查看
</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a id="NF-edit" authorize class="layui-btn layui-btn-xs layui-btn-warm" lay-event="edit">修改</a>
<a id="NF-delete" authorize class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
<a id="NF-details" authorize class="layui-btn layui-btn-xs layui-btn-normal" lay-event="details">查看</a>
</script>
</div>
</div>
<script>
layui.use(['jquery', 'form', 'common', 'table', 'commonTable', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer,
table = layui.table,
commonTable = layui.commonTable,
common = layui.common;
//行操作权限控制(js是值传递)
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
wcLoading.close();
var options = {
elem: '#currentTableId',
url: '/CustomerOrder/CustomerOrder/GetPageList',
treeIdName: 'F_Id', // id字段名称
cols: [[
{type: "radio", width: 50, fixed: 'left'},
{field: 'F_Name', title: '客户名称', width: 200, filter: true},
{
field: 'F_CooperationTime',
title: '开始合作时间',
minWidth: 160,
sort: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'}
},
{
field: 'F_PostTime',
title: '发帖时间',
minWidth: 160,
sort: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'}
},
{field: 'F_OrderState', title: '合作进展', width: 120,filter:true,
templet:function (d){
if (d.F_OrderState == 1) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>持续合作</span>";
} else if (d.F_FileType == 0) {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>断续</span>";
}
else
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>未知进展</span>";
}
},
{field: 'F_ContactPerson', title: '对接人', width: 120},
{field: 'F_Contact', title: '联系方式', width: 120},
{field: 'F_Docking', title: '对接情况', width: 120},
{
field: 'F_CreatorTime',
title: '创建时间',
minWidth: 160,
sort: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'}
},
{field: 'F_CreatorUserId', title: '创建人', width: 120},
{field: 'F_Remark', title: '备注', width: 120},
{title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right'}//插件没有fixed参数
]],
};
commonTable.rendertreetable(options);
form.on('submit(data-search-btn)', function (data) {
queryJson = data.field.txt_keyword;
options.where = { keyword: queryJson };
commonTable.rendertreetable(options);
return false;
});
var oneList = ["NF-edit", "NF-details", "NF-delete"];//选择1条显示
commonTable.tableRowClick("radio", "currentTableFilter", "currentTableId", oneList);
table.on('toolbar(currentTableFilter)', function (obj) {
var data = table.checkStatus('currentTableId').data;
var id = data.length > 0 ? data[0].F_Id : null;
if (obj.event === 'add') { // 监听添加操作
common.modalOpen({
title: "新增",
url: "/CustomerOrder/CustomerOrder/Form",
width: "500px",
height: "500px",
});
}
else if (obj.event === 'delete') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].F_Id);
}
common.deleteForm({
url: "/CustomerOrder/CustomerOrder/DeleteForm",
param: { keyValue: ids.join(',') },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
var data = table.checkStatus('currentTableId').data;
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条编辑", "warning");
return false;
}
common.modalOpen({
title: "编辑",
url: "/CustomerOrder/CustomerOrder/Form?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: data[0],
});
}
else if (obj.event === 'details') {
var data = table.checkStatus('currentTableId').data;
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条查看", "warning");
return false;
}
common.modalOpen({
title: "详情",
url: "/CustomerOrder/CustomerOrder/Details?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: data[0],
btn: []
});
}
else if (obj.event === 'TABLE_SEARCH') {
var _that = $("#searchField");
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
_that.addClass('layui-hide');
}
table.resize();
}
return false;
});
//toolbar监听事件
table.on('tool(currentTableFilter)', function (obj) {
var id = obj.data.F_Id;
if (obj.event === 'delete') {
common.deleteForm({
url: "/CustomerOrder/CustomerOrder/DeleteForm",
param: { keyValue: obj.data.F_Id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.modalOpen({
title: "编辑",
url: "/CustomerOrder/CustomerOrder/Form?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: obj.data,
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "详情",
url: "/CustomerOrder/CustomerOrder/Details?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: obj.data,
btn: []
});
}
return false;
});
});
</script>

View File

@@ -1,11 +0,0 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace WaterCloud.Web.Areas.CustomerOrder.Views.CustomerOrder;
public class Index : PageModel
{
public void OnGet()
{
}
}

View File

@@ -0,0 +1,88 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using WaterCloud.Code;
using WaterCloud.Domain.OrderManagement;
using WaterCloud.Service;
using Microsoft.AspNetCore.Authorization;
using WaterCloud.Service.OrderManagement;
namespace WaterCloud.Web.Areas.OrderManagement.Controllers
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2025-03-16 01:39
/// 描 述:用户订单控制器类
/// </summary>
[Area("OrderManagement")]
public class OrderCustomerController : BaseController
{
public OrderCustomerService _service {get;set;}
#region
[HandlerAjaxOnly]
[IgnoreAntiforgeryToken]
public async Task<ActionResult> GetGridJson(SoulPage<OrderCustomerEntity> pagination, string keyword)
{
if (string.IsNullOrEmpty(pagination.field))
{
pagination.field = "F_CreatorTime";
pagination.order = "desc";
}
var data = await _service.GetLookList(pagination,keyword);
return Content(pagination.setData(data).ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetListJson(string keyword)
{
var data = await _service.GetList(keyword);
return Content(data.ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetFormJson(string keyValue)
{
var data = await _service.GetLookForm(keyValue);
return Content(data.ToJson());
}
#endregion
#region
[HttpPost]
[HandlerAjaxOnly]
public async Task<ActionResult> SubmitForm(OrderCustomerEntity entity, string keyValue)
{
try
{
await _service.SubmitForm(entity, keyValue);
return await Success("操作成功。", "", keyValue);
}
catch (Exception ex)
{
return await Error(ex.Message, "", keyValue);
}
}
[HttpPost]
[HandlerAjaxOnly]
[HandlerAuthorize]
public async Task<ActionResult> DeleteForm(string keyValue)
{
try
{
await _service.DeleteForm(keyValue);
return await Success("操作成功。", "", keyValue, DbLogType.Delete);
}
catch (Exception ex)
{
return await Error(ex.Message, "", keyValue, DbLogType.Delete);
}
}
#endregion
}
}

View File

@@ -0,0 +1,109 @@
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'form', 'laydate', 'common'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
laydate = layui.laydate;
var keyValue = $.request("keyValue");
//权限字段
common.authorizeFields('adminform');
//此处需修改
//类型为时间时
//laydate.render({
//elem: '#F_Birthday'
//, btns: ['clear', 'now']
//, trigger: 'click',
//format: 'yyyy-MM-dd',
//});
$(function () {
initControl();
common.ajax({
url: '/OrderManagement/OrderCustomer/GetFormJson',
dataType: 'json',
data: { keyValue: keyValue },
async: false,
success: function (data) {
common.val('adminform', data);
common.setReadOnly('adminform');
form.render();
}
});
});
wcLoading.close();
function initControl() {
//此处需修改
//绑定数据源
//类型为下拉框时
}
});
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">客户名称</label>
<div class="layui-input-block">
<input type="text" id="F_Name" name="F_Name" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">发帖时间</label>
<div class="layui-input-block">
<input type="text" id="F_PostTime" name="F_PostTime" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">联系方式</label>
<div class="layui-input-block">
<input type="text" id="F_Contact" name="F_Contact" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">对接情况</label>
<div class="layui-input-block">
<input type="text" id="F_Docking" name="F_Docking" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">备注</label>
<div class="layui-input-block">
<input type="text" id="F_Remark" name="F_Remark" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">开始合作时间</label>
<div class="layui-input-block">
<input type="text" id="F_CooperationTime" name="F_CooperationTime" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">合作进展</label>
<div class="layui-input-block">
<input type="text" id="F_OrderState" name="F_OrderState" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">对接人</label>
<div class="layui-input-block">
<input type="text" id="F_ContactPerson" name="F_ContactPerson" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">附件</label>
<div class="layui-input-block">
<input type="text" id="F_Attachment" name="F_Attachment" lay-verify="required" class="layui-input">
</div>
</div>
</div>
</div>
</div>
</body>

View File

@@ -3,8 +3,10 @@
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'form', 'laydate', 'optimizeSelectOption', 'common'], function () {
layui.use(['jquery', 'form', 'laydate', 'common','optimizeSelectOption'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
@@ -21,50 +23,42 @@
//format: 'yyyy-MM-dd',
//});
var dataCfg =[
{
elem'#F_CooperationTime'
, btns: ['clear', 'now']
,trigger: 'click'
,format: 'yyyy-MM-dd'
},
{
var dataCfg=[{
elem:'#F_CooperationTime',
btns: ['clear', 'now'],
trigger: 'click',
format: 'yyyy-MM-dd'
},{
elem:'#F_PostTime',
btns: ['clear', 'now'],
trigger: 'click',
format: 'yyyy-MM-dd'
},
];
elem'#F_PostTime'
, btns: ['clear', 'now']
,trigger: 'click'
,format: 'yyyy-MM-dd'}
];
$(function () {
dataCfg.forEach(function(config) {
laydate.render(config); // 为每个配置渲染日期选择器
});
if (!!keyValue) {
common.ajax({
url: '/CustomerOrder/CustomerOrder/GetFormJson',
$(function () {
dataCfg.forEach(function(config) { laydate.render(config);});
if (!!keyValue) {
common.ajax({
url: '/OrderManagement/OrderCustomer/GetFormJson',
dataType: 'json',
data: { keyValue: keyValue },
async: false,
success: function (data) {
common.val('adminform', data);
if (!!data.list && data.list.length > 0) {
listData = data.list;
}
}
}
});
}
common.val('adminform',common.parentWindow().dataJson);
form.render();
form.render();
});
wcLoading.close();
wcLoading.close();
//监听提交
form.on('submit(saveBtn)', function (data) {
form.on('submit(saveBtn)', function (data) {
var postData = data.field;
common.submitForm({
url: '/CustomerOrder/CustomerOrder/SubmitForm?keyValue=' + keyValue,
url: '/OrderManagement/OrderCustomer/SubmitForm?keyValue=' + keyValue,
param: postData,
success: function () {
common.parentreload('data-search-btn');
@@ -78,24 +72,36 @@
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<style>
.layuimini-form > .layui-form-item > .layui-form-label {
width: 80px !important;
}
.layuimini-form > .layui-form-item > .layui-input-block {
margin-left110px !important;
}
</style>
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item layui-hide">
<div class="layui-form-item">
<label class="layui-form-label required">客户名称</label>
<div class="layui-input-block">
<input type="text" id="F_Name" name="F_Name" autocomplete="off" lay-verify="required" placeholder="请输入客户名称" class="layui-input">
<input type="text" id="F_Name" name="F_Name" autocomplete="off" lay-verify="required" placeholder="请输入" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-form-item">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label required">开始合作时间</label>
<div class="layui-input-block">
<input type="text" id="F_CooperationTime" name="F_CooperationTime" autocomplete="off" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label required">发帖时间</label>
<div class="layui-input-block">
<input type="text" id="F_PostTime" name="F_PostTime" autocomplete="off" lay-verify="required" class="layui-input">
@@ -103,8 +109,8 @@
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-form-item">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label required">合作进展</label>
<div class="layui-input-block">
<select id="F_OrderState" name="F_OrderState" lay-verify="required">
@@ -115,7 +121,7 @@
</div>
</div>
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label">联系方式</label>
<div class="layui-input-block">
<input type="text" id="F_Contact" name="F_Contact" autocomplete="off" class="layui-input">
@@ -123,16 +129,15 @@
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-form-item">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label required">对接人</label>
<div class="layui-input-block">
<input type="text" id="F_ContactPerson" name="F_ContactPerson" autocomplete="off" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-col-md6 layui-col-sm6 layui-hide">
<div class="layui-col-md6 layui-col-sm6">
<label class="layui-form-label required">对接情况</label>
<div class="layui-input-block">
<input type="text" id="F_Docking" name="F_Docking" autocomplete="off" lay-verify="required" class="layui-input">
@@ -140,7 +145,7 @@
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-form-item">
<label class="layui-form-label">附件</label>
<div class="layui-input-block" style="padding-right: 70px;">
<input type="text" id="F_Attachment" name="F_Attachment" readonly disabled class="layui-input">
@@ -148,18 +153,18 @@
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-form-item">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea id="F_Remark" name="F_Remark" value="" autocomplete="off" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<button class="layui-btn site-demo-active" lay-submit id="submit" lay-filter="saveBtn">确认保存</button>
</div>
</div>
</div>
</div>
</body>
</body>

View File

@@ -0,0 +1,204 @@
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset layui-hide" id="searchField">
<div>
<form class="layui-form layui-form-pane">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">关键字:</label>
<div class="layui-input-inline">
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container" id="toolbar">
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide" lay-event="edit"><i class="layui-icon">&#xe642;</i>修改</button>
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon">&#xe640;</i>删除</button>
<button id="NF-details" name="NF-details" authorize class="layui-btn layui-btn-sm layui-btn-normal layui-hide" lay-event="details"> <i class="layui-icon">&#xe60b;</i>查看</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a id="NF-edit" authorize class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
<a id="NF-delete" authorize class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
<a id="NF-details" authorize class="layui-btn layui-btn-xs layui-btn-normal" lay-event="details">查看</a>
</script>
</div>
</div>
<script>
layui.use(['jquery', 'form','table','commonTable', 'common','optimizeSelectOption'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,commonTable = layui.commonTable
common = layui.common;
//权限控制(js是值传递)
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
commonTable.rendertable({
elem: '#currentTableId',
id: 'currentTableId',
url: '/OrderManagement/OrderCustomer/GetGridJson',
cols: [[
{ type: "checkbox", width: 50, fixed: 'left' },
{ field: 'F_Name', title: '客户名称', width: 120,sort: true,filter: true },
{ field: 'F_CooperationTime',
title: '开始合作时间',
width: 140,sort: true,
filter: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'}},
{ field: 'F_PostTime',
title: '发帖时间',
width: 140,
sort: true,
filter: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'} },
{ field: 'F_OrderState', title: '合作进展', width: 140,sort: true,filter: true,
templet:function(d){
if (d.F_OrderState == 1) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>持续合作</span>";
} else if (d.F_FileType == 0) {
return "<span class='layui-btn layui-btn-danger layui-btn-xs'>断续</span>";
}
else
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>未知进展</span>";
}},
{ field: 'F_ContactPerson', title: '对接人', width: 140,filter: true },
{ field: 'F_Contact', title: '联系方式', width: 140,filter: true },
{ field: 'F_Docking',
title: '对接情况',
width: 140,
filter: true,
filter: {type: 'date[yyyy/MM/dd HH:mm:ss]'} },
{ field: 'F_CreatorTime', title: '创建时间', width: 120,sort: true,filter: true },
{ field: 'F_CreatorUserId', title: '创建人', width: 120,sort: true,filter: true },
{ title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right' }
]]
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
//执行搜索重载
commonTable.reloadtable({
elem: 'currentTableId',
curr: 1,
where: { keyword: data.field.txt_keyword}
});
return false;
});
wcLoading.close();
//行点击事件监听,控制按钮显示
var oneList = ["NF-edit", "NF-details"];//选择1条显示
var morerList = ["NF-delete"];//选中1条以上显示
commonTable.tableRowClick("checkbox", "currentTableFilter", "currentTableId", oneList, morerList);
//toolbar监听事件
table.on('toolbar(currentTableFilter)', function (obj) {
var data = table.checkStatus('currentTableId').data;
var id = data.length > 0 ? data[0].F_Id : null;
if (obj.event === 'add') { // 监听添加操作
common.modalOpen({
title: "添加界面",
url: "/OrderManagement/OrderCustomer/Form",
width: "900px",
height: "900px",
});
}
else if (obj.event === 'delete') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].F_Id);
}
common.deleteForm({
url: "/OrderManagement/OrderCustomer/DeleteForm",
param: { keyValue: ids.join(',') },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalOpen({
title: "编辑界面",
url: "/OrderManagement/OrderCustomer/Form?keyValue=" + id,
width: "900px",
height: "900px",
});
}
else if (obj.event === 'details') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalOpen({
title: "查看界面",
url: "/OrderManagement/OrderCustomer/Details?keyValue=" + id,
width: "900px",
height: "900px",
btn: []
});
}
else if (obj.event === 'TABLE_SEARCH') {
var _that = $("#searchField");
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
_that.addClass('layui-hide');
}
table.resize();
}
return false;
});
//toolrow监听事件
table.on('tool(currentTableFilter)', function (obj) {
var id = obj.data.F_Id;
if (obj.event === 'delete') {
common.deleteForm({
url: "/OrderManagement/OrderCustomer/DeleteForm",
param: { keyValue: id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.modalOpen({
title: "编辑界面",
url: "/OrderManagement/OrderCustomer/Form?keyValue=" + id,
width: "900px",
height: "900px",
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "查看界面",
url: "/OrderManagement/OrderCustomer/Details?keyValue=" +id,
width: "900px",
height: "900px",
btn: []
});
}
return false;
});
});
</script>

View File

@@ -81,9 +81,6 @@
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Drawing.EnableUnixSupport" Value="true" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Areas\CustomerOrder\Views\CustomerOrder\Index.cshtml.cs" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties /></VisualStudio></ProjectExtensions>

View File

@@ -67,6 +67,13 @@
描 述:订单管理控制器类
</summary>
</member>
<member name="T:WaterCloud.Web.Areas.OrderManagement.Controllers.OrderCustomerController">
<summary>
创 建:超级管理员
日 期2025-03-16 01:39
描 述:用户订单控制器类
</summary>
</member>
<member name="T:WaterCloud.Web.Areas.SystemManage.Controllers.CodegeneratelogController">
<summary>
创 建:超级管理员

Binary file not shown.