Compare commits

..

10 Commits

Author SHA1 Message Date
zel
6e161e2a79 1 2025-03-30 03:05:36 +08:00
zel
7024571924 1 2025-03-30 01:49:05 +08:00
Zel
d3ffbef536 完成 2025-03-19 22:07:22 +08:00
Zel
09a9aadd3e 11111111 2025-03-16 23:05:57 +08:00
zel
ffc6426a0a 11111111 2025-03-16 03:09:58 +08:00
zel
8bce1f84c6 1 2025-03-13 16:57:13 +08:00
zel
9fbd66bf76 1111111 2025-03-12 19:50:47 +08:00
Zel
bf14c5c621 1 2025-03-10 22:12:38 +08:00
zel
7c4b851b43 1111 2025-03-09 03:46:28 +08:00
Zel
fb8c34f604 1 2025-03-05 23:26:50 +08:00
20 changed files with 1132 additions and 256 deletions

View File

@@ -1,21 +1,3 @@
<p></p>
<p></p>
<p align="center">
<img src="https://images.gitee.com/uploads/images/2021/0528/215200_accc4311_7353672.jpeg" height="80"/>
</p>
<div align="center">
[![star](https://gitee.com/qian_wei_hong/WaterCloud/badge/star.svg)](https://gitee.com/qian_wei_hong/WaterCloud/stargazers)
[![fork](https://gitee.com/qian_wei_hong/WaterCloud/badge/fork.svg)](https://gitee.com/qian_wei_hong/WaterCloud/members)
![](https://img.shields.io/badge/release-3.0.0.preview-red)
![](https://img.shields.io/badge/.net-8.0.0-blue)
![](https://img.shields.io/badge/SqlSugar-5.1.4.59-blue)
![](https://img.shields.io/badge/layui-2.9.0-blue)
</div>
----
# WaterCloud
#### 介绍
@@ -37,9 +19,6 @@
- 适用范围可以开发OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。
- 租户管理基于Database的多租户功能(SqlSugar支持)。
- 定时任务基于quartz的定时任务功能(可以集群)。
- 项目演示地址http://47.116.127.212:5000/ 账号admin 密码0000数据库2个小时还原一次
- 文档地址https://gitee.com/qian_wei_hong/WaterCloud/wikis/pages
- 在线项目地址https://replit.com/@MonsterUncle/WaterCloud
#### 前端以及后端使用技术介绍
@@ -83,19 +62,4 @@
2. Asp.net 8.0
3. Mysql或者SQLSERVER2005及以上版本database文件夹下有sql文件可执行
4. 请使用VS2022及以上版本打开解决方案。
5. Redis和RabbitMq在项目文件夹里有
#### 友情链接
1. 前端框架Layui 文档地址https://layui.gitee.io/v2/
2. Layui前端框架Layuimini 码云地址https://gitee.com/zhongshaofa/layuimini
3. SqlSugar.ORM 文档地址https://www.donet5.com/home/doc
4. WaterCloud讨论交流QQ群1065447456[![](https://pub.idqqimg.com/wpa/images/group.png)](https://jq.qq.com/?_wv=1027&k=51RHQVG)
5. .NET易用底层框架 Furion码云地址https://gitee.com/dotnetchina/Furion
#### 捐赠支持
开源项目不易,若此项目能得到你的青睐,可以捐赠支持作者持续开发与维护,感谢所有支持开源的朋友。
![输入图片说明](https://images.gitee.com/uploads/images/2020/0331/144842_7cf04ad6_7353672.jpeg "1585637076201.jpg") ![输入图片说明](https://images.gitee.com/uploads/images/2020/0331/144852_8b26c8cb_7353672.png "mm_facetoface_collect_qrcode_1585637044089.png")
5. Redis和RabbitMq在项目文件夹里有

View File

@@ -1,6 +0,0 @@
namespace WaterCloud.Domain.Entity.CustomerOrder;
public class CustomerOrderEntity
{
}

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,6 +0,0 @@
namespace WaterCloud.Service.CustomerOrder;
public class CustomerOrderService
{
}

View File

@@ -0,0 +1,162 @@
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;
using System.Collections;
using static Serenity.Web.PropertyItemsScript;
using WaterCloud.Service.SystemOrganize;
using System.Diagnostics;
namespace WaterCloud.Service.OrderManagement
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2025-03-16 01:39
/// 描 述:用户订单服务类
/// </summary>
public class OrderCustomerService : BaseService<OrderCustomerEntity>, IDenpendency
{
public UserService UserService { get; set; }
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));
}
//普通用户仅可查看自己的数据
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
data = data.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
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);
//普通用户仅可查看自己的数据
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
var pageList = await query.OrderBy(a => a.F_CreatorTime, OrderByType.Desc).ToListAsync();
var users = await UserService.GetUserList(string.Empty);
pageList.ForEach(item =>
{
var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId);
item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName;
});
return pageList;
}
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);
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
var pageList = await query.ToPageListAsync(pagination);
var users = await UserService.GetUserList(string.Empty);
pageList.ForEach(item =>
{
var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId);
item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName;
});
return pageList;
}
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
{
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(',');
foreach (var id in ids)
{
var data = await repository.FindEntity(id);
if (data == null)
return;
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior) &&
currentuser.UserId != data.F_CreatorUserId)
throw new Exception($"{data.F_Id} {data.F_Name}违规删除");
}
await repository.Delete(a => ids.Contains(a.F_Id.ToString()));
}
#endregion
}
}

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

@@ -1,209 +1,209 @@
@{
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>
}
<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 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','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/Order/GetGridJson',
cols: [[
//此处需修改
{ type: "checkbox", width: 50, fixed: 'left' },
{ field: 'F_OrderCode', title: '订单编号', width: 180,sort: true,filter: true },
{
field: 'F_OrderState', title: '订单状态', width: 120, 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 {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>未完成</span>";
}
}
},
{
field: 'F_NeedTime', title: '需求时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{
field: 'F_ActualTime', title: '实际时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ field: 'F_NeedNum', title: '需求数量', width: 120, sort: true, filter: true },
{ field: 'F_ActualNum', title: '实际数量', width: 120, sort: true, filter: true },
{
field: 'F_EnabledMark', title: '状态', width: 80, sort: true, filter: true,
templet: function (d) {
if (d.F_EnabledMark == true) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>有效</span>";
} else {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>无效</span>";
}
}
},
{
field: 'F_CreatorUserName', title: '创建人', Width: 100, sort: true, filter: true,
},
{
field: 'F_CreatorTime', title: '创建时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ 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/Order/Form",
width: "850px",
height: "700px",
});
}
else if (obj.event === 'delete') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
</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/Order/GetGridJson',
cols: [[
//此处需修改
{ type: "checkbox", width: 50, fixed: 'left' },
{ field: 'F_OrderCode', title: '订单编号', width: 180,sort: true,filter: true },
{
field: 'F_OrderState', title: '订单状态', width: 120, 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 {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>未完成</span>";
}
}
},
{
field: 'F_NeedTime', title: '需求时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{
field: 'F_ActualTime', title: '实际时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ field: 'F_NeedNum', title: '需求数量', width: 120, sort: true, filter: true },
{ field: 'F_ActualNum', title: '实际数量', width: 120, sort: true, filter: true },
{
field: 'F_EnabledMark', title: '状态', width: 80, sort: true, filter: true,
templet: function (d) {
if (d.F_EnabledMark == true) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>有效</span>";
} else {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>无效</span>";
}
}
},
{
field: 'F_CreatorUserName', title: '创建人', Width: 100, sort: true, filter: true,
},
{
field: 'F_CreatorTime', title: '创建时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ 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/Order/Form",
width: "850px",
height: "700px",
});
}
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);
}
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].F_Id);
}
common.deleteForm({
url: "/OrderManagement/Order/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/Order/Form?keyValue=" + id,
width: "850px",
height: "700px",
});
}
else if (obj.event === 'details') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalOpen({
title: "查看订单",
url: "/OrderManagement/Order/Details?keyValue=" + id,
width: "850px",
height: "700px",
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/Order/DeleteForm",
param: { keyValue: obj.data.F_Id },
success: function () {
obj.del();
}
});
common.deleteForm({
url: "/OrderManagement/Order/DeleteForm",
param: { keyValue: ids.join(',') },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
common.modalOpen({
title: "编辑订单",
url: "/OrderManagement/Order/Form?keyValue=" + id,
width: "850px",
height: "700px",
});
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalOpen({
title: "编辑订单",
url: "/OrderManagement/Order/Form?keyValue=" + id,
width: "850px",
height: "700px",
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "查看订单",
url: "/OrderManagement/Order/Details?keyValue=" +id,
width: "850px",
height: "700px",
btn: []
});
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalOpen({
title: "查看订单",
url: "/OrderManagement/Order/Details?keyValue=" + id,
width: "850px",
height: "700px",
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/Order/DeleteForm",
param: { keyValue: obj.data.F_Id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.modalOpen({
title: "编辑订单",
url: "/OrderManagement/Order/Form?keyValue=" + id,
width: "850px",
height: "700px",
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "查看订单",
url: "/OrderManagement/Order/Details?keyValue=" +id,
width: "850px",
height: "700px",
btn: []
});
}
return false;
});
});
</script>

View File

@@ -0,0 +1,134 @@
@{
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 () {
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();
}
});
var _fileVal = $('#F_Attachment').val();
if(_fileVal.length<5){
//没有上传文件
$('.myDownloader').hide();
}else{
$('.myDownloader').show();
$('#downloader').attr('href',_fileVal);
}
});
wcLoading.close();
});
</script>
<body>
<style>
#downloader {
color: dodgerblue;
cursor: pointer;
}
</style>
<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_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_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_OrderState" name="F_OrderState" lay-verify="required" class="layui-input"> *@
<select id="F_OrderState" name="F_OrderState" lay-verify="required">
<option value="">===请选择===</option>
<option value="1">持续合作</option>
<option value="0">断续</option>
</select>
</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_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_Docking" name="F_Docking" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">附件</label>
<div class="layui-input-block">
<input type="text" id="F_Attachment" name="F_Attachment" class="layui-input">
</div>
</div>
<div class="layui-form-item myDownloader" style="display:none">
<label class="layui-form-label"></label>
<a target="_blank" id="downloader">下载附件</a>
</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"> *@
<textarea id="F_Remark" name="F_Remark" value="" autocomplete="off" class="layui-textarea"></textarea>
</div>
</div>
</div>
</div>
</div>
</body>

View File

@@ -0,0 +1,224 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery','upload', 'form', 'laydate', 'common','optimizeSelectOption'], function () {
var form = layui.form,
$ = layui.$,
upload = layui.upload,
common = layui.common,
laydate = layui.laydate;
var keyValue = $.request("keyValue");
//权限字段
common.authorizeFields('adminform');
var uploadInst = upload.render({
elem: '#uploader'
, url: '/FileManage/Uploadfile/Upload' //改成您自己的上传接口
, size: 1024
, accept: 'file'
, data: { filetype: 3, fileby: '客户订单' }
, auto: true//不自动提交
, done: function (res) {
//如果上传失败
if (res.code > 0) {
//失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
common.modalMsg(res.msg, "warning");
return false;
}
$('#F_Attachment').val(res.data[0].src);
$('.myDownloader').show();
$('#downloader').attr('href',res.data[0].src);
// $('#F_Attachment').text(res.data[0].src);
// $('#F_Attachment').attr('src',res.data[0].src);
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
//此处需修改
//类型为时间时
//laydate.render({
//elem: '#F_Birthday'
//, 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'
},
];
$(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);
}
});
}
form.render();
var _fileVal = $('#F_Attachment').val();
if(_fileVal.length<5){
//没有上传文件
$('.myDownloader').hide();
}else{
$('.myDownloader').show();
$('#downloader').attr('href',_fileVal);
}
});
wcLoading.close();
//监听提交
form.on('submit(saveBtn)', function (data) {
var postData = data.field;
common.submitForm({
url: '/OrderManagement/OrderCustomer/SubmitForm?keyValue=' + keyValue,
param: postData,
success: function () {
common.parentreload('data-search-btn');
}
})
return false;
});
});
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<style>
.layui-form-select > .layui-select-title > input {
margin-left: 10px;
}
#downloader {
color: dodgerblue;
cursor: pointer;
}
</style>
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item">
<label style="margin-left:-10px" 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">
</div>
</div>
<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 style="margin-left:10px" 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">
<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">
</div>
</div>
</div>
<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">
<option value="">===请选择===</option>
<option value="1">持续合作</option>
<option value="0">断续</option>
</select>
</div>
</div>
<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">
</div>
</div>
</div>
<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 style="margin-left:10px" 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">
<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">
</div>
</div>
</div>
<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">
@* <a class="layui-input" id="F_Attachment" name="F_Attachment"></a> *@
<button class="layui-btn" style="position: absolute;top: 0;right: 6px;cursor: pointer;" id="uploader">上传</button>
</div>
</div>
<div class="layui-form-item myDownloader" style="display:none">
<label class="layui-form-label"></label>
<a target="_blank" id="downloader">下载附件</a>
</div>
<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>

View File

@@ -0,0 +1,216 @@
@{
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: {type: 'date[yyyy/MM/dd]'},
filter:true,
templet:function(d){
return layui.util.toDateString(d.F_CooperationTime, "yyyy/MM/dd")
}
},
{ field: 'F_PostTime',
title: '发帖时间',
width: 140,
sort: true,
filter:true,
//filter: {type: 'date[yyyy/MM/dd]'},
templet:function(d){
return layui.util.toDateString(d.F_PostTime, "yyyy/MM/dd")
}
},
{ field: 'F_OrderState', title: '合作进展', width: 140,sort: true,filter: true,
templet:function(d){
switch(d.F_OrderState){
case 1:
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>持续合作</span>";
break;
case 0:
return "<span class='layui-btn layui-btn-danger layui-btn-xs'>断续</span>";
break;
default:
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>未知进展</span>";
break;
}
}},
{ field: 'F_Contact', title: '联系方式', width: 180,filter: true },
{ field: 'F_ContactPerson', title: '对接人', width: 160,filter: true },
{ field: 'F_Docking',
title: '对接情况',
width: 350,
filter: true},
{ field: 'F_CreatorTime', title: '创建时间', width: 200,sort: true,filter: true },
{ field: 'F_CreatorUserId', title: '创建人', width: 150,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: "600px",
});
}
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: "600px",
});
}
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: "600px",
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: "600px",
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "查看界面",
url: "/OrderManagement/OrderCustomer/Details?keyValue=" +id,
width: "900px",
height: "600px",
btn: []
});
}
return false;
});
});
</script>

View File

@@ -20,9 +20,9 @@
<select id="ComparesOperation" name="ComparesOperation" lay-verify="required" lay-search>
<option value="" selected>请选择</option>
<option value=">">></option>
<option value=">=">>=</option>
<option value=">="></option>
<option value="<"><</option>
<option value="<="><=</option>
<option value="<="></option>
<option value="=">=</option>
<option value="!=">!=</option>
<option value="in">in</option>

View File

@@ -8,15 +8,6 @@
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sqlDebugging": false,
"nativeDebugging": true
},
"WaterCloud.Web": {
"commandName": "Project",
"launchBrowser": true,

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>
创 建:超级管理员

View File

@@ -12,12 +12,13 @@
"LoginMultiple": false, // 是否允许一个账户在多处登录
"AllowCorsSite": "http://localhost:5000", // 允许的其他站点访问Api
"DBProvider": "MySql", //SqlServer //Oracle
"DBConnectionString": "server=192.168.31.37;user id=root;password=zhuyunyu;database=water",
//"DBConnectionString": "server=192.168.31.37;user id=root;password=zhuyunyu;database=water",
"DBConnectionString": "server=10.147.17.21;user id=root;password=zhuyunyu;database=water",
"DBCommandTimeout": 180, // 数据库超时时间,单位秒
"IsInitDb": true, //是否初始化数据库
"IsSeedData": true, //是否初始化数据库数据
"IsInitDb": false, //是否初始化数据库
"IsSeedData": false, //是否初始化数据库数据
"CacheProvider": "Redis", // 缓存使用方式 Redis/Memory
"RedisConnectionString": "192.168.31.37:6379,password=zhuyunyu", //docker部署 172.17.0.1
"RedisConnectionString": "10.147.17.21:6379,password=zhuyunyu", //docker部署 172.17.0.1
"TokenName": "WC-Token", //api Token名称
"LoginExpire": 1, //登录缓存过期时间(小时)
"HomePage": "../Home/Default", //登录主页地址

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB