Merge branch 'master' into net6.0
This commit is contained in:
commit
8fd6bba2d1
167
ZR.Admin.WebApi/Controllers/Business/GendemoController.cs
Normal file
167
ZR.Admin.WebApi/Controllers/Business/GendemoController.cs
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Infrastructure;
|
||||||
|
using Infrastructure.Attribute;
|
||||||
|
using Infrastructure.Enums;
|
||||||
|
using Infrastructure.Model;
|
||||||
|
using Mapster;
|
||||||
|
using ZR.Model.Dto;
|
||||||
|
using ZR.Model.Models;
|
||||||
|
using ZR.Service.Business.IBusinessService;
|
||||||
|
using ZR.Admin.WebApi.Extensions;
|
||||||
|
using ZR.Admin.WebApi.Filters;
|
||||||
|
using ZR.Common;
|
||||||
|
using Infrastructure.Extensions;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace ZR.Admin.WebApi.Controllers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示Controller
|
||||||
|
///
|
||||||
|
/// @author zz
|
||||||
|
/// @date 2022-03-31
|
||||||
|
/// </summary>
|
||||||
|
[Verify]
|
||||||
|
[Route("business/GenDemo")]
|
||||||
|
public class GenDemoController : BaseController
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示接口
|
||||||
|
/// </summary>
|
||||||
|
private readonly IGenDemoService _GenDemoService;
|
||||||
|
|
||||||
|
public GenDemoController(IGenDemoService GenDemoService)
|
||||||
|
{
|
||||||
|
_GenDemoService = GenDemoService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询演示列表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("list")]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:list")]
|
||||||
|
public IActionResult QueryGenDemo([FromQuery] GenDemoQueryDto parm)
|
||||||
|
{
|
||||||
|
var response = _GenDemoService.GetList(parm);
|
||||||
|
return SUCCESS(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询演示详情
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="Id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("{Id}")]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:query")]
|
||||||
|
public IActionResult GetGenDemo(int Id)
|
||||||
|
{
|
||||||
|
var response = _GenDemoService.GetFirst(x => x.Id == Id);
|
||||||
|
|
||||||
|
return SUCCESS(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加演示
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:add")]
|
||||||
|
[Log(Title = "演示", BusinessType = BusinessType.INSERT)]
|
||||||
|
public IActionResult AddGenDemo([FromBody] GenDemoDto parm)
|
||||||
|
{
|
||||||
|
if (parm == null)
|
||||||
|
{
|
||||||
|
throw new CustomException("请求参数错误");
|
||||||
|
}
|
||||||
|
//从 Dto 映射到 实体
|
||||||
|
var modal = parm.Adapt<GenDemo>().ToCreate(HttpContext);
|
||||||
|
|
||||||
|
var response = _GenDemoService.Insert(modal, it => new
|
||||||
|
{
|
||||||
|
it.Name,
|
||||||
|
it.Icon,
|
||||||
|
it.ShowStatus,
|
||||||
|
it.Sex,
|
||||||
|
it.Sort,
|
||||||
|
it.Remark,
|
||||||
|
it.BeginTime,
|
||||||
|
it.EndTime,
|
||||||
|
it.Feature,
|
||||||
|
});
|
||||||
|
return ToResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新演示
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPut]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:edit")]
|
||||||
|
[Log(Title = "演示", BusinessType = BusinessType.UPDATE)]
|
||||||
|
public IActionResult UpdateGenDemo([FromBody] GenDemoDto parm)
|
||||||
|
{
|
||||||
|
if (parm == null)
|
||||||
|
{
|
||||||
|
throw new CustomException("请求实体不能为空");
|
||||||
|
}
|
||||||
|
//从 Dto 映射到 实体
|
||||||
|
var modal = parm.Adapt<GenDemo>().ToUpdate(HttpContext);
|
||||||
|
|
||||||
|
var response = _GenDemoService.Update(w => w.Id == modal.Id, it => new GenDemo()
|
||||||
|
{
|
||||||
|
//Update 字段映射
|
||||||
|
Name = modal.Name,
|
||||||
|
Icon = modal.Icon,
|
||||||
|
ShowStatus = modal.ShowStatus,
|
||||||
|
Sex = modal.Sex,
|
||||||
|
Sort = modal.Sort,
|
||||||
|
Remark = modal.Remark,
|
||||||
|
BeginTime = modal.BeginTime,
|
||||||
|
EndTime = modal.EndTime,
|
||||||
|
Feature = modal.Feature,
|
||||||
|
});
|
||||||
|
|
||||||
|
return ToResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除演示
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpDelete("{ids}")]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:delete")]
|
||||||
|
[Log(Title = "演示", BusinessType = BusinessType.DELETE)]
|
||||||
|
public IActionResult DeleteGenDemo(string ids)
|
||||||
|
{
|
||||||
|
int[] idsArr = Tools.SpitIntArrary(ids);
|
||||||
|
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
|
||||||
|
|
||||||
|
var response = _GenDemoService.Delete(idsArr);
|
||||||
|
|
||||||
|
return ToResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 导出演示
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Log(Title = "演示", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||||
|
[HttpGet("export")]
|
||||||
|
[ActionPermissionFilter(Permission = "business:gendemo:export")]
|
||||||
|
public IActionResult Export([FromQuery] GenDemoQueryDto parm)
|
||||||
|
{
|
||||||
|
parm.PageSize = 10000;
|
||||||
|
var list = _GenDemoService.GetList(parm).Result;
|
||||||
|
|
||||||
|
string sFileName = ExportExcel(list, "GenDemo", "演示");
|
||||||
|
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -139,7 +139,7 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
return SUCCESS(new
|
return SUCCESS(new
|
||||||
{
|
{
|
||||||
url = file.AccessUrl,
|
url = file.AccessUrl,
|
||||||
fileName,
|
fileName = file.FileName,
|
||||||
fileId = file.Id.ToString()
|
fileId = file.Id.ToString()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ using Infrastructure.Attribute;
|
|||||||
using Infrastructure.Enums;
|
using Infrastructure.Enums;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using ZR.Service.System.IService;
|
using ZR.Service.System.IService;
|
||||||
|
using ZR.Common;
|
||||||
|
|
||||||
namespace ZR.Admin.WebApi.Controllers.System
|
namespace ZR.Admin.WebApi.Controllers.System
|
||||||
{
|
{
|
||||||
@ -106,9 +107,10 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
[HttpDelete("{id}")]
|
[HttpDelete("{id}")]
|
||||||
[ActionPermissionFilter(Permission = "system:post:remove")]
|
[ActionPermissionFilter(Permission = "system:post:remove")]
|
||||||
[Log(Title = "岗位删除", BusinessType = BusinessType.DELETE)]
|
[Log(Title = "岗位删除", BusinessType = BusinessType.DELETE)]
|
||||||
public IActionResult Delete(int id = 0)
|
public IActionResult Delete(string id)
|
||||||
{
|
{
|
||||||
return ToResponse(ToJson(PostService.Delete(id)));
|
int[] ids = Tools.SpitIntArrary(id);
|
||||||
|
return ToResponse(ToJson(PostService.Delete(ids)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -15,6 +15,8 @@ using ZR.Common;
|
|||||||
using ZR.Model.System.Dto;
|
using ZR.Model.System.Dto;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
using ZR.Service.System.IService;
|
using ZR.Service.System.IService;
|
||||||
|
using Infrastructure.Extensions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace ZR.Admin.WebApi.Controllers.System
|
namespace ZR.Admin.WebApi.Controllers.System
|
||||||
{
|
{
|
||||||
@ -27,6 +29,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
private readonly ISysRoleService RoleService;
|
private readonly ISysRoleService RoleService;
|
||||||
private readonly ISysUserPostService UserPostService;
|
private readonly ISysUserPostService UserPostService;
|
||||||
private readonly ISysDeptService DeptService;
|
private readonly ISysDeptService DeptService;
|
||||||
|
private readonly ISysFileService FileService;
|
||||||
private OptionsSetting OptionsSetting;
|
private OptionsSetting OptionsSetting;
|
||||||
private IWebHostEnvironment hostEnvironment;
|
private IWebHostEnvironment hostEnvironment;
|
||||||
|
|
||||||
@ -35,6 +38,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
ISysRoleService roleService,
|
ISysRoleService roleService,
|
||||||
ISysUserPostService postService,
|
ISysUserPostService postService,
|
||||||
ISysDeptService deptService,
|
ISysDeptService deptService,
|
||||||
|
ISysFileService sysFileService,
|
||||||
IOptions<OptionsSetting> options,
|
IOptions<OptionsSetting> options,
|
||||||
IWebHostEnvironment hostEnvironment)
|
IWebHostEnvironment hostEnvironment)
|
||||||
{
|
{
|
||||||
@ -42,6 +46,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
RoleService = roleService;
|
RoleService = roleService;
|
||||||
UserPostService = postService;
|
UserPostService = postService;
|
||||||
DeptService = deptService;
|
DeptService = deptService;
|
||||||
|
FileService = sysFileService;
|
||||||
OptionsSetting = options.Value;
|
OptionsSetting = options.Value;
|
||||||
this.hostEnvironment = hostEnvironment;
|
this.hostEnvironment = hostEnvironment;
|
||||||
}
|
}
|
||||||
@ -124,28 +129,17 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
[HttpPost("Avatar")]
|
[HttpPost("Avatar")]
|
||||||
[ActionPermissionFilter(Permission = "common")]
|
[ActionPermissionFilter(Permission = "common")]
|
||||||
[Log(Title = "修改头像", BusinessType = BusinessType.UPDATE, IsSaveRequestData = false)]
|
[Log(Title = "修改头像", BusinessType = BusinessType.UPDATE, IsSaveRequestData = false)]
|
||||||
public IActionResult Avatar([FromForm(Name = "picture")] IFormFile formFile)
|
public async Task<IActionResult> Avatar([FromForm(Name = "picture")] IFormFile formFile)
|
||||||
{
|
{
|
||||||
LoginUser loginUser = Framework.JwtUtil.GetLoginUser(HttpContext);
|
LoginUser loginUser = Framework.JwtUtil.GetLoginUser(HttpContext);
|
||||||
|
|
||||||
if (formFile == null) throw new CustomException("请选择文件");
|
if (formFile == null) throw new CustomException("请选择文件");
|
||||||
|
|
||||||
string fileExt = Path.GetExtension(formFile.FileName);
|
string fileExt = Path.GetExtension(formFile.FileName);
|
||||||
string savePath = Path.Combine(hostEnvironment.WebRootPath, FileUtil.GetdirPath("uploads"));
|
string fileName = FileUtil.HashFileName() + (fileExt.IsEmpty() ? ".png" : fileExt);
|
||||||
|
SysFile file = await FileService.SaveFileToLocal(hostEnvironment.WebRootPath, fileName, "", HttpContext.GetName(), formFile);
|
||||||
|
|
||||||
if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); }
|
UserService.UpdatePhoto(new SysUser() { Avatar = file.AccessUrl, UserId = loginUser.UserId });
|
||||||
|
return SUCCESS(new { imgUrl = file.AccessUrl });
|
||||||
string fileName = FileUtil.HashFileName() + fileExt;
|
|
||||||
string finalFilePath = savePath + fileName;
|
|
||||||
|
|
||||||
using (var stream = new FileStream(finalFilePath, FileMode.Create))
|
|
||||||
{
|
|
||||||
formFile.CopyTo(stream);
|
|
||||||
}
|
|
||||||
string accessUrl = $"{OptionsSetting.Upload.UploadUrl}/{FileUtil.GetdirPath("uploads")}{fileName}";
|
|
||||||
|
|
||||||
UserService.UpdatePhoto(new SysUser() { Avatar = accessUrl, UserId = loginUser.UserId });
|
|
||||||
return SUCCESS(new { imgUrl = accessUrl });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ using ZR.Model.System;
|
|||||||
using ZR.Service.System.IService;
|
using ZR.Service.System.IService;
|
||||||
using ZR.Tasks;
|
using ZR.Tasks;
|
||||||
using Snowflake.Core;
|
using Snowflake.Core;
|
||||||
|
using Infrastructure.Extensions;
|
||||||
|
|
||||||
namespace ZR.Admin.WebApi.Controllers
|
namespace ZR.Admin.WebApi.Controllers
|
||||||
{
|
{
|
||||||
@ -62,14 +63,14 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">编码</param>
|
/// <param name="id">编码</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("{id}")]
|
[HttpGet("get")]
|
||||||
public IActionResult Get(string id)
|
public IActionResult Get(string id)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(id))
|
if (!string.IsNullOrEmpty(id))
|
||||||
{
|
{
|
||||||
return SUCCESS(_tasksQzService.GetId(id));
|
return SUCCESS(_tasksQzService.GetId(id));
|
||||||
}
|
}
|
||||||
return SUCCESS(_tasksQzService.GetAll());
|
return SUCCESS(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -90,7 +91,10 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
{
|
{
|
||||||
throw new CustomException($"cron表达式不正确");
|
throw new CustomException($"cron表达式不正确");
|
||||||
}
|
}
|
||||||
|
if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2)
|
||||||
|
{
|
||||||
|
throw new CustomException($"地址不能为空");
|
||||||
|
}
|
||||||
//从 Dto 映射到 实体
|
//从 Dto 映射到 实体
|
||||||
var tasksQz = parm.Adapt<SysTasksQz>().ToCreate();
|
var tasksQz = parm.Adapt<SysTasksQz>().ToCreate();
|
||||||
var worker = new IdWorker(1, 1);
|
var worker = new IdWorker(1, 1);
|
||||||
@ -98,7 +102,13 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
tasksQz.ID = worker.NextId().ToString();
|
tasksQz.ID = worker.NextId().ToString();
|
||||||
tasksQz.IsStart = false;
|
tasksQz.IsStart = false;
|
||||||
tasksQz.Create_by = HttpContext.GetName();
|
tasksQz.Create_by = HttpContext.GetName();
|
||||||
|
tasksQz.TaskType = parm.TaskType;
|
||||||
|
tasksQz.ApiUrl = parm.ApiUrl;
|
||||||
|
if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
|
||||||
|
{
|
||||||
|
tasksQz.AssemblyName = "ZR.Tasks";
|
||||||
|
tasksQz.ClassName = "TaskScheduler.HttpResultfulJob";
|
||||||
|
}
|
||||||
return SUCCESS(_tasksQzService.Add(tasksQz));
|
return SUCCESS(_tasksQzService.Add(tasksQz));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +135,15 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
throw new CustomException($"cron表达式不正确");
|
throw new CustomException($"cron表达式不正确");
|
||||||
}
|
}
|
||||||
var tasksQz = _tasksQzService.GetFirst(m => m.ID == parm.ID);
|
var tasksQz = _tasksQzService.GetFirst(m => m.ID == parm.ID);
|
||||||
|
if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2)
|
||||||
|
{
|
||||||
|
throw new CustomException($"api地址不能为空");
|
||||||
|
}
|
||||||
|
if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2)
|
||||||
|
{
|
||||||
|
parm.AssemblyName = "ZR.Tasks";
|
||||||
|
parm.ClassName = "TaskScheduler.HttpResultfulJob";
|
||||||
|
}
|
||||||
if (tasksQz.IsStart)
|
if (tasksQz.IsStart)
|
||||||
{
|
{
|
||||||
throw new CustomException($"该任务正在运行中,请先停止在更新");
|
throw new CustomException($"该任务正在运行中,请先停止在更新");
|
||||||
@ -142,10 +160,12 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
TriggerType = parm.TriggerType,
|
TriggerType = parm.TriggerType,
|
||||||
IntervalSecond = parm.IntervalSecond,
|
IntervalSecond = parm.IntervalSecond,
|
||||||
JobParams = parm.JobParams,
|
JobParams = parm.JobParams,
|
||||||
Update_by = User.Identity.Name,
|
Update_by = HttpContextExtension.GetName(HttpContext),
|
||||||
Update_time = DateTime.Now,
|
Update_time = DateTime.Now,
|
||||||
BeginTime = parm.BeginTime,
|
BeginTime = parm.BeginTime,
|
||||||
EndTime = parm.EndTime
|
EndTime = parm.EndTime,
|
||||||
|
TaskType = parm.TaskType,
|
||||||
|
ApiUrl = parm.ApiUrl,
|
||||||
});
|
});
|
||||||
if (response > 0)
|
if (response > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
21
ZR.Admin.WebApi/Dockerfile
Normal file
21
ZR.Admin.WebApi/Dockerfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
|
||||||
|
#创建 /app文件夹
|
||||||
|
WORKDIR /app
|
||||||
|
#创建挂载目录,用于将程序部署在服务器本地
|
||||||
|
#VOLUME /app
|
||||||
|
#设置docker容器对外暴露端口
|
||||||
|
EXPOSE 8888
|
||||||
|
VOLUME /app/logs
|
||||||
|
#COPY bin/Release/net5.0/publish/ app/
|
||||||
|
COPY . app/
|
||||||
|
|
||||||
|
#设置容器内的时区,如果不设置,默认时区是标准时间比北京时间晚8个小时
|
||||||
|
RUN echo "Asia/shanghai" > /etc/timezone
|
||||||
|
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||||
|
|
||||||
|
# 复制发布文件到工作目录
|
||||||
|
#COPY . app/
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
#等价于 dotnet ZR.Admin.WebApi.dll,如果不指定启动端口默认在docker里面启动端口是80端口
|
||||||
|
ENTRYPOINT ["dotnet", "ZR.Admin.WebApi.dll", "--server.urls","http://*:8888"]
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||||
|
-->
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<DeleteExistingFiles>False</DeleteExistingFiles>
|
||||||
|
<ExcludeApp_Data>False</ExcludeApp_Data>
|
||||||
|
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
|
||||||
|
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||||
|
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||||
|
<PublishProvider>FileSystem</PublishProvider>
|
||||||
|
<PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
|
||||||
|
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
552
ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt
Normal file
552
ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt
Normal file
@ -0,0 +1,552 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- :model属性用于表单验证使用 比如下面的el-form-item 的 prop属性用于对表单值进行验证操作 -->
|
||||||
|
<el-form :model="queryParams" label-position="right" inline ref="queryRef" v-show="showSearch"
|
||||||
|
@submit.prevent>
|
||||||
|
|
||||||
|
$foreach(column in genTable.Columns)
|
||||||
|
$set(labelName = "")
|
||||||
|
$set(columnName = "")
|
||||||
|
$set(numLabel = "")
|
||||||
|
$if(column.IsQuery == true)
|
||||||
|
$set(columnName = column.CsharpFieldFl)
|
||||||
|
$if(column.ColumnComment != "")
|
||||||
|
$set(labelName = column.ColumnComment)
|
||||||
|
$else
|
||||||
|
$set(labelName = column.CsharpFieldFl)
|
||||||
|
$end
|
||||||
|
$if(column.CsharpType == "int" || column.CsharpType == "long")
|
||||||
|
$set(numLabel = ".number")
|
||||||
|
$end
|
||||||
|
|
||||||
|
$if(column.HtmlType == "datetime")
|
||||||
|
<el-form-item label="$labelName">
|
||||||
|
<el-date-picker v-model="dateRange${column.CsharpField}" style="width: 240px" type="daterange" range-separator="-"
|
||||||
|
start-placeholder="开始日期" end-placeholder="结束日期" placeholder="请选择$labelName" :picker-options="{ firstDayOfWeek: 1}"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
$elseif(column.HtmlType == "select" || column.HtmlType == "radio")
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-select v-model="queryParams.${columnName}" placeholder="请选择${labelName}">
|
||||||
|
<el-option v-for="item in ${columnName}Options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
$else
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-input v-model${numLabel}="queryParams.${columnName}" placeholder="请输入${labelName}" />
|
||||||
|
</el-form-item>
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button icon="search" size="small" type="primary" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="refresh" size="small" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!-- 工具区域 -->
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
$if(replaceDto.ShowBtnAdd)
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" size="small" v-hasPermi="['${replaceDto.PermissionPrefix}:add']" plain icon="plus" @click="handleAdd">新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
$end
|
||||||
|
$if(replaceDto.ShowBtnEdit)
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" size="small" :disabled="single" v-hasPermi="['${replaceDto.PermissionPrefix}:edit']" plain icon="edit" @click="handleUpdate">修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
$end
|
||||||
|
$if(replaceDto.ShowBtnDelete)
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" size="small" :disabled="multiple" v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" plain icon="delete" @click="handleDelete">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
$end
|
||||||
|
$if(replaceDto.ShowBtnExport)
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="warning" size="small" plain icon="download" @click="handleExport" v-hasPermi="['${replaceDto.PermissionPrefix}:export']">导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
$end
|
||||||
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 数据区域 -->
|
||||||
|
<el-table :data="dataList" v-loading="loading" ref="table" border highlight-current-row @sort-change="sortChange" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="50" align="center"/>
|
||||||
|
|
||||||
|
$foreach(column in genTable.Columns)
|
||||||
|
$set(labelName = "")
|
||||||
|
$set(checkboxHtml = "")
|
||||||
|
$set(showToolTipHtml = "")
|
||||||
|
$set(columnName = column.CsharpFieldFl)
|
||||||
|
$if(column.CsharpType == "string" || column.HtmlType == "datetime")
|
||||||
|
$set(showToolTipHtml = " :show-overflow-tooltip=\"true\"")
|
||||||
|
$end
|
||||||
|
$if(column.ColumnComment != "")
|
||||||
|
$set(labelName = column.ColumnComment)
|
||||||
|
$else
|
||||||
|
$set(labelName = column.CsharpFieldFl)
|
||||||
|
$end
|
||||||
|
$if(column.IsList == true)
|
||||||
|
$if(column.HtmlType == "customInput" && column.IsPk == false)
|
||||||
|
<el-table-column prop="${columnName}" label="${labelName}" width="90" sortable align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-show="editIndex != scope.${index}index" @click="editCurrRow(scope.${index}index,'rowkeY')">{{scope.row.${columnName}}}</span>
|
||||||
|
<el-input :id="scope.${index}index+'rowkeY'" size="mini" v-show="(editIndex == scope.${index}index)"
|
||||||
|
v-model="scope.row.${columnName}" @blur="handleChangeSort(scope.row)"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
$elseif(column.HtmlType == "imageUpload")
|
||||||
|
<el-table-column prop="${columnName}" label="${labelName}" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-image class="table-td-thumb" fit="contain" :src="scope.row.${columnName}" :preview-src-list="[scope.row.${columnName}]">
|
||||||
|
<div><i class="el-icon-document" /></div>
|
||||||
|
</el-image>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
$elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.HtmlType == "radio")
|
||||||
|
<el-table-column prop="${columnName}" label="${labelName}" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
$if(column.HtmlType == "checkbox")
|
||||||
|
<dict-tag :options="${columnName}Options" :value="scope.row.${columnName} ? scope.row.${columnName}.split(',') : []" />
|
||||||
|
$else
|
||||||
|
<dict-tag :options="${columnName}Options" :value="scope.row.${columnName}" />
|
||||||
|
$end
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
$else
|
||||||
|
<el-table-column prop="${columnName}" label="${labelName}" align="center"${showToolTipHtml} />
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
|
||||||
|
<el-table-column label="操作" align="center" width="140">
|
||||||
|
<template #default="scope">
|
||||||
|
$if(replaceDto.ShowBtnEdit)
|
||||||
|
<el-button v-hasPermi="['${replaceDto.PermissionPrefix}:edit']" type="success" icon="edit" title="编辑"
|
||||||
|
@click="handleUpdate(scope.row)"></el-button>
|
||||||
|
$end
|
||||||
|
$if(replaceDto.ShowBtnDelete)
|
||||||
|
<el-button v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" type="danger" icon="delete" title="删除"
|
||||||
|
@click="handleDelete(scope.row)"></el-button>
|
||||||
|
$end
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination class="mt10" background :total="total" :page="queryParams.pageNum" :limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
|
<!-- 添加或修改${genTable.functionName}对话框 -->
|
||||||
|
<el-dialog :title="title" :lock-scroll="false" v-model="open" >
|
||||||
|
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
|
||||||
|
$foreach(column in genTable.Columns)
|
||||||
|
$set(labelName = "")
|
||||||
|
$set(labelDisabled = "")
|
||||||
|
$set(columnName = column.CsharpFieldFl)
|
||||||
|
$set(value = "item.dictValue")
|
||||||
|
|
||||||
|
$if(column.ColumnComment != "")
|
||||||
|
$set(labelName = column.ColumnComment)
|
||||||
|
$else
|
||||||
|
$set(labelName = column.CsharpFieldFl)
|
||||||
|
$end
|
||||||
|
$if(column.IsPk == true)
|
||||||
|
$set(labelDisabled = ":disabled=true")
|
||||||
|
$end
|
||||||
|
$if(column.CsharpType == "int" || column.CsharpType == "long")
|
||||||
|
$set(value = "parseInt(item.dictValue)")
|
||||||
|
$end
|
||||||
|
|
||||||
|
$if(column.IsInsert == false && column.IsEdit == false)
|
||||||
|
<el-col :lg="12" v-if="opertype == 2">
|
||||||
|
<el-form-item label="${labelName}">{{form.${columnName}}}</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.IsPK || column.IsIncrement)
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
$if(column.IsIncrement == false)
|
||||||
|
<el-input-number v-model.number="form.${columnName}" controls-position="right" placeholder="请输入${labelName}" :disabled="title=='修改数据'"/>
|
||||||
|
$else
|
||||||
|
<span v-html="form.${columnName}"/>
|
||||||
|
$end
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$else
|
||||||
|
$if(column.HtmlType == "inputNumber")
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-input-number v-model.number="form.${columnName}" controls-position="right" placeholder="请输入${labelName}" ${labelDisabled}/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "datetime")
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-date-picker v-model="form.${columnName}" type="datetime" placeholder="选择日期时间"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "imageUpload")
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<UploadImage v-model="form.${columnName}" column="${columnName}" @success="handleUploadSuccess" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "fileUpload")
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<UploadFile v-model="form.${columnName}" column="${columnName}" @success="handleUploadSuccess" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "radio")
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-radio-group v-model="form.${columnName}">
|
||||||
|
<el-radio v-for="item in ${columnName}Options" :key="item.dictValue" :label="${value}">{{item.dictLabel}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "textarea")
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-input type="textarea" v-model="form.${columnName}" placeholder="请输入${labelName}"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "editor")
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<editor v-model="form.${columnName}" :min-height="200" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "select")
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-select v-model="form.${columnName}" placeholder="请选择${labelName}">
|
||||||
|
<el-option v-for="item in ${columnName}Options" :key="item.dictValue" :label="item.dictLabel" :value="${value}"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$elseif(column.HtmlType == "checkbox")
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-checkbox-group v-model="form.${columnName}Checked">
|
||||||
|
<el-checkbox v-for="item in ${columnName}Options" :key="item.dictValue" :label="item.dictValue">{{item.dictLabel}}</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$else
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="${labelName}" prop="${columnName}">
|
||||||
|
<el-input v-model="form.${columnName}" placeholder="请输入${labelName}" ${labelDisabled}/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="text" @click="cancel">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
list${genTable.BusinessName},
|
||||||
|
add${genTable.BusinessName},
|
||||||
|
del${genTable.BusinessName},
|
||||||
|
update${genTable.BusinessName},
|
||||||
|
get${genTable.BusinessName},
|
||||||
|
$if(replaceDto.ShowBtnExport)
|
||||||
|
export${genTable.BusinessName},
|
||||||
|
$end
|
||||||
|
$if(showCustomInput)
|
||||||
|
changeSort
|
||||||
|
$end
|
||||||
|
} from '@/api/${tool.FirstLowerCase(genTable.ModuleName)}/${tool.FirstLowerCase(genTable.BusinessName)}.js';
|
||||||
|
|
||||||
|
import { reactive, ref, toRefs, getCurrentInstance } from "vue";
|
||||||
|
export default {
|
||||||
|
name: "${genTable.BusinessName.ToLower()}",
|
||||||
|
setup() {
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
// 选中${replaceDto.FistLowerPk}数组数组
|
||||||
|
const ids = ref([]);
|
||||||
|
// 非单选禁用
|
||||||
|
const single = ref(true);
|
||||||
|
// 非多个禁用
|
||||||
|
const multiple = ref(true);
|
||||||
|
// 遮罩层
|
||||||
|
const loading = ref(false);
|
||||||
|
// 显示搜索条件
|
||||||
|
const showSearch = ref(true);
|
||||||
|
// 查询参数
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
sort: undefined,
|
||||||
|
sortType: undefined,
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if(item.IsQuery == true)
|
||||||
|
${item.CsharpFieldFl}: undefined,
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
});
|
||||||
|
// 弹出层标题
|
||||||
|
const title = ref("");
|
||||||
|
// 操作类型 1、add 2、edit
|
||||||
|
const opertype = ref(0);
|
||||||
|
// 是否显示弹出层
|
||||||
|
const open = ref(false);
|
||||||
|
// 表单参数
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
});
|
||||||
|
const { form } = toRefs(data);
|
||||||
|
// 总记录数
|
||||||
|
const total = ref(0);
|
||||||
|
const dataList = ref([]);
|
||||||
|
const queryRef = ref(null);
|
||||||
|
const formRef = ref(null);
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox"))
|
||||||
|
// ${item.ColumnComment}选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'}
|
||||||
|
const ${item.CsharpFieldFl}Options = ref([]);
|
||||||
|
$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
|
||||||
|
//${item.ColumnComment}时间范围
|
||||||
|
const dateRange${item.CsharpField} = ref([]);
|
||||||
|
$elseif(item.HtmlType == "customInput")
|
||||||
|
const editIndex = ref(-1);
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
|
||||||
|
$set(index = 0)
|
||||||
|
var dictParams = [
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox") && item.DictType != "")
|
||||||
|
{ dictType: "${item.DictType}", columnName: "${item.CsharpFieldFl}Options" },
|
||||||
|
$set(index = index + 1)
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
];
|
||||||
|
$if(index > 0)
|
||||||
|
proxy.getDicts(dictParams).then((response) => {
|
||||||
|
response.data.forEach((element) => {
|
||||||
|
proxy[element.columnName] = element.list;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$end
|
||||||
|
|
||||||
|
// 表单规则校验
|
||||||
|
const rules = reactive({
|
||||||
|
$foreach(column in genTable.Columns)
|
||||||
|
$if(column.IsRequired && column.IsIncrement == false)
|
||||||
|
${column.CsharpFieldFl}: [
|
||||||
|
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end
|
||||||
|
$if(column.CsharpType == "int" || column.CsharpType == "long"), type: "number"$end }
|
||||||
|
],
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
});
|
||||||
|
function getList(){
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if(item.HtmlType == "datetime" && item.IsQuery == true)
|
||||||
|
proxy.addDateRange(queryParams, proxy.dateRange${item.CsharpField}, '${item.CsharpField}');
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
loading.value = true;
|
||||||
|
list${genTable.BusinessName}(queryParams).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
dataList.value = res.data.result;
|
||||||
|
total.value = res.data.totalNum;
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function cancel(){
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
// 重置表单
|
||||||
|
function reset() {
|
||||||
|
proxy.resetForm("formRef");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
// 添加
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = '添加';
|
||||||
|
opertype.value = 1;
|
||||||
|
}
|
||||||
|
// 删除按钮操作
|
||||||
|
function handleDelete(row) {
|
||||||
|
const Ids = row.${replaceDto.FistLowerPk} || ids.value;
|
||||||
|
|
||||||
|
proxy.${confirm}confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
//return del${genTable.BusinessName}(Ids);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
handleQuery();
|
||||||
|
proxy.${modal}modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
// 修改按钮操作
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
const id = row.${replaceDto.FistLowerPk} || ids.value;
|
||||||
|
get${genTable.BusinessName}(id).then((res) => {
|
||||||
|
const { code, data } = res;
|
||||||
|
if (code == 200) {
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改数据";
|
||||||
|
opertype.value = 2;
|
||||||
|
|
||||||
|
form.value = {
|
||||||
|
...data,
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if(item.HtmlType == "checkbox")
|
||||||
|
${item.CsharpFieldFl}Checked: data.${item.CsharpFieldFl} ? data.${item.CsharpFieldFl}.split(',') : [],
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表单提交
|
||||||
|
function submitForm() {
|
||||||
|
proxy.${refs}refs["formRef"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (form.value.${replaceDto.FistLowerPk} != undefined && opertype.value === 2) {
|
||||||
|
update${genTable.BusinessName}(form.value)
|
||||||
|
.then((res) => {
|
||||||
|
proxy.${modal}modal.msgSuccess("修改成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
//TODO 错误逻辑
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
add${genTable.BusinessName}(form.value)
|
||||||
|
.then((res) => {
|
||||||
|
proxy.${modal}modal.msgSuccess("新增成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
//TODO 错误逻辑
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 重置查询操作
|
||||||
|
function resetQuery(){
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if(item.HtmlType == "datetime" && item.IsQuery == true)
|
||||||
|
//${item.ColumnComment}时间范围
|
||||||
|
dateRange${item.CsharpField}.value = [];
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
$if(replaceDto.ShowBtnExport)
|
||||||
|
// 导出按钮操作
|
||||||
|
function handleExport() {
|
||||||
|
proxy.${confirm}confirm("是否确认导出所有${genTable.functionName}数据项?", "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
})
|
||||||
|
.then(function () {
|
||||||
|
return export${genTable.BusinessName}(queryParams);
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
proxy.download(response.data.path);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
$end
|
||||||
|
// 多选框选中数据
|
||||||
|
function handleSelectionChange(selection) {
|
||||||
|
ids.value = selection.map((item) => item.${replaceDto.FistLowerPk});
|
||||||
|
single.value = selection.length != 1
|
||||||
|
multiple.value = !selection.length;
|
||||||
|
}
|
||||||
|
// 自定义排序
|
||||||
|
function sortChange(column) {
|
||||||
|
if (column.prop == null || column.order == null) {
|
||||||
|
queryParams.sort = undefined;
|
||||||
|
queryParams.sortType = undefined;
|
||||||
|
} else {
|
||||||
|
queryParams.sort = column.prop;
|
||||||
|
queryParams.sortType = column.order;
|
||||||
|
}
|
||||||
|
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
$if(replaceDto.UploadFile == 1)
|
||||||
|
//图片上传成功方法
|
||||||
|
function handleUploadSuccess(column, filelist) {
|
||||||
|
form[column] = filelist;
|
||||||
|
}
|
||||||
|
$end
|
||||||
|
|
||||||
|
return {
|
||||||
|
single,
|
||||||
|
multiple,
|
||||||
|
loading,
|
||||||
|
showSearch,
|
||||||
|
queryParams,
|
||||||
|
total,
|
||||||
|
rules,
|
||||||
|
title,
|
||||||
|
opertype,
|
||||||
|
open,
|
||||||
|
form,
|
||||||
|
dataList,
|
||||||
|
$foreach(item in genTable.Columns)
|
||||||
|
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox"))
|
||||||
|
${item.CsharpFieldFl}Options,
|
||||||
|
$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
|
||||||
|
dateRange${item.CsharpField},
|
||||||
|
$elseif(item.HtmlType == "customInput")
|
||||||
|
editIndex,
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
handleQuery,
|
||||||
|
handleAdd,
|
||||||
|
submitForm,
|
||||||
|
$if(replaceDto.ShowBtnExport)
|
||||||
|
handleExport,
|
||||||
|
$end
|
||||||
|
resetQuery,
|
||||||
|
handleDelete,
|
||||||
|
handleUpdate,
|
||||||
|
reset,
|
||||||
|
cancel,
|
||||||
|
queryRef,
|
||||||
|
formRef,
|
||||||
|
sortChange,
|
||||||
|
getList,
|
||||||
|
handleSelectionChange,
|
||||||
|
$if(replaceDto.UploadFile == 1)
|
||||||
|
handleUploadSuccess,
|
||||||
|
$end
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@ -34,26 +34,23 @@ namespace ZR.CodeGenerator
|
|||||||
sb.AppendLine(" <el-col :lg=\"12\" v-if=\"opertype == 2\">");
|
sb.AppendLine(" <el-col :lg=\"12\" v-if=\"opertype == 2\">");
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\">{{{{form.{columnName}}}}}</el-form-item>");
|
sb.AppendLine($" <el-form-item label=\"{labelName}\">{{{{form.{columnName}}}}}</el-form-item>");
|
||||||
sb.AppendLine(" </el-col>");
|
sb.AppendLine(" </el-col>");
|
||||||
return sb.ToString();
|
|
||||||
}
|
}
|
||||||
|
else if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode))
|
||||||
//树
|
|
||||||
if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode))
|
|
||||||
{
|
{
|
||||||
|
//树
|
||||||
sb.AppendLine(@" <el-col :lg=""24"">");
|
sb.AppendLine(@" <el-col :lg=""24"">");
|
||||||
sb.AppendLine($@" <el-form-item label=""父级id"" prop=""{columnName}"">");
|
sb.AppendLine($@" <el-form-item label=""父级id"" prop=""{columnName}"">");
|
||||||
sb.AppendLine($@" <treeselect v-model=""form.{columnName}"" :options=""dataList"" :normalizer=""normalizer"" :show-count=""true"" placeholder=""选择上级菜单"" />");
|
sb.AppendLine($@" <treeselect v-model=""form.{columnName}"" :options=""dataList"" :normalizer=""normalizer"" :show-count=""true"" placeholder=""选择上级菜单"" />");
|
||||||
sb.AppendLine(@" </el-form-item>");
|
sb.AppendLine(@" </el-form-item>");
|
||||||
sb.AppendLine(@" </el-col>");
|
sb.AppendLine(@" </el-col>");
|
||||||
return sb.ToString();
|
|
||||||
}
|
}
|
||||||
//主键、非自增要插入,不能编辑
|
//主键、非自增要插入,不能编辑
|
||||||
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
|
else if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
|
||||||
{
|
{
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
//主键非自增 显示input
|
//主键非自增 显示input
|
||||||
if (dbFieldInfo.IsPk && !dbFieldInfo.IsIncrement)
|
if (!dbFieldInfo.IsIncrement)
|
||||||
{
|
{
|
||||||
sb.AppendLine($" <el-input-number v-model.number=\"form.{columnName}\" controls-position=\"right\" placeholder=\"请输入{labelName}\" :disabled=\"title=='修改数据'\"/>");
|
sb.AppendLine($" <el-input-number v-model.number=\"form.{columnName}\" controls-position=\"right\" placeholder=\"请输入{labelName}\" :disabled=\"title=='修改数据'\"/>");
|
||||||
}
|
}
|
||||||
@ -64,105 +61,106 @@ namespace ZR.CodeGenerator
|
|||||||
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
sb.AppendLine(" </el-form-item>");
|
||||||
sb.AppendLine(" </el-col>");
|
sb.AppendLine(" </el-col>");
|
||||||
return sb.ToString();
|
|
||||||
}
|
|
||||||
if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
|
|
||||||
{
|
|
||||||
//数字框
|
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-input-number v-model.number=\"form.{columnName}\" controls-position=\"right\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
|
|
||||||
{
|
|
||||||
//时间
|
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-date-picker v-model=\"form.{columnName}\" format=\"yyyy-MM-dd HH:mm:ss\" value-format=\"yyyy-MM-dd HH:mm:ss\" type=\"datetime\" placeholder=\"选择日期时间\"> </el-date-picker>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD)
|
|
||||||
{
|
|
||||||
//图片
|
|
||||||
sb.AppendLine(" <el-col :lg=\"24\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($@" <UploadImage v-model=""form.{columnName}"" :data=""{{ 'storeType' : 1}}"" column=""{columnName}"" @input=""handleUploadSuccess"" />");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD)
|
|
||||||
{
|
|
||||||
//文件
|
|
||||||
sb.AppendLine(" <el-col :lg=\"24\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($@" <UploadFile v-model=""form.{columnName}"" column=""{columnName}"" @input=""handleUploadSuccess"" />");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO)
|
|
||||||
{
|
|
||||||
//单选按钮
|
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-radio v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"{value}\">{{{{item.dictLabel}}}}</el-radio>");
|
|
||||||
sb.AppendLine(" </el-radio-group>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA)
|
|
||||||
{
|
|
||||||
//文本域
|
|
||||||
sb.AppendLine(" <el-col :lg=\"24\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{ labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-input type=\"textarea\" v-model=\"form.{columnName}\" placeholder=\"请输入{labelName}\"/>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
|
|
||||||
{
|
|
||||||
//编辑器
|
|
||||||
sb.AppendLine(" <el-col :lg=\"24\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <editor v-model=\"form.{columnName}\" :min-height=\"200\" />");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
|
|
||||||
{
|
|
||||||
//下拉框
|
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-select v-model=\"form.{columnName}\" placeholder=\"请选择{labelName}\"> ");
|
|
||||||
sb.AppendLine($" <el-option v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"{value}\"></el-option>");
|
|
||||||
sb.AppendLine(" </el-select>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
|
||||||
else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX)
|
|
||||||
{
|
|
||||||
//多选框
|
|
||||||
sb.AppendLine(" <el-col :lg=\"24\">");
|
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
|
||||||
sb.AppendLine($" <el-checkbox-group v-model=\"form.{columnName}Checked\"> ");
|
|
||||||
sb.AppendLine($" <el-checkbox v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictValue\">{{{{item.dictLabel}}}}</el-checkbox>");
|
|
||||||
sb.AppendLine(" </el-checkbox-group>");
|
|
||||||
sb.AppendLine(" </el-form-item>");
|
|
||||||
sb.AppendLine(" </el-col>");
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
|
if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
|
||||||
sb.AppendLine(" <el-col :lg=\"12\">");
|
{
|
||||||
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
//数字框
|
||||||
sb.AppendLine($" <el-input v-model{inputNumTxt}=\"form.{columnName}\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
sb.AppendLine(" </el-form-item>");
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
sb.AppendLine(" </el-col>");
|
sb.AppendLine($" <el-input-number v-model.number=\"form.{columnName}\" controls-position=\"right\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
|
||||||
|
{
|
||||||
|
//时间
|
||||||
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-date-picker v-model=\"form.{columnName}\" format=\"yyyy-MM-dd HH:mm:ss\" value-format=\"yyyy-MM-dd HH:mm:ss\" type=\"datetime\" placeholder=\"选择日期时间\"> </el-date-picker>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD)
|
||||||
|
{
|
||||||
|
//图片
|
||||||
|
sb.AppendLine(" <el-col :lg=\"24\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($@" <UploadImage v-model=""form.{columnName}"" column=""{columnName}"" @input=""handleUploadSuccess"" />");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD)
|
||||||
|
{
|
||||||
|
//文件
|
||||||
|
sb.AppendLine(" <el-col :lg=\"24\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($@" <UploadFile v-model=""form.{columnName}"" column=""{columnName}"" @input=""handleUploadSuccess"" />");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO)
|
||||||
|
{
|
||||||
|
//单选按钮
|
||||||
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-radio v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"{value}\">{{{{item.dictLabel}}}}</el-radio>");
|
||||||
|
sb.AppendLine(" </el-radio-group>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA)
|
||||||
|
{
|
||||||
|
//文本域
|
||||||
|
sb.AppendLine(" <el-col :lg=\"24\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{ labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-input type=\"textarea\" v-model=\"form.{columnName}\" placeholder=\"请输入{labelName}\"/>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
|
||||||
|
{
|
||||||
|
//编辑器
|
||||||
|
sb.AppendLine(" <el-col :lg=\"24\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <editor v-model=\"form.{columnName}\" :min-height=\"200\" />");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
|
||||||
|
{
|
||||||
|
//下拉框
|
||||||
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-select v-model=\"form.{columnName}\" placeholder=\"请选择{labelName}\"> ");
|
||||||
|
sb.AppendLine($" <el-option v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"{value}\"></el-option>");
|
||||||
|
sb.AppendLine(" </el-select>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX)
|
||||||
|
{
|
||||||
|
//多选框
|
||||||
|
sb.AppendLine(" <el-col :lg=\"24\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-checkbox-group v-model=\"form.{columnName}Checked\"> ");
|
||||||
|
sb.AppendLine($" <el-checkbox v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictValue\">{{{{item.dictLabel}}}}</el-checkbox>");
|
||||||
|
sb.AppendLine(" </el-checkbox-group>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
|
||||||
|
sb.AppendLine(" <el-col :lg=\"12\">");
|
||||||
|
sb.AppendLine($" <el-form-item label=\"{labelName}\" prop=\"{columnName}\">");
|
||||||
|
sb.AppendLine($" <el-input v-model{inputNumTxt}=\"form.{columnName}\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
|
||||||
|
sb.AppendLine(" </el-form-item>");
|
||||||
|
sb.AppendLine(" </el-col>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,6 +85,7 @@ namespace ZR.CodeGenerator
|
|||||||
GenerateService(replaceDto, dto);
|
GenerateService(replaceDto, dto);
|
||||||
GenerateControllers(replaceDto, dto);
|
GenerateControllers(replaceDto, dto);
|
||||||
GenerateVueViews(replaceDto, dto);
|
GenerateVueViews(replaceDto, dto);
|
||||||
|
GenerateVue3Views(replaceDto, dto);
|
||||||
GenerateVueJs(replaceDto, dto);
|
GenerateVueJs(replaceDto, dto);
|
||||||
GenerateSql(replaceDto, dto);
|
GenerateSql(replaceDto, dto);
|
||||||
|
|
||||||
@ -201,7 +202,41 @@ namespace ZR.CodeGenerator
|
|||||||
|
|
||||||
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// vue3
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="replaceDto"></param>
|
||||||
|
/// <param name="generateDto"></param>
|
||||||
|
private static void GenerateVue3Views(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
|
{
|
||||||
|
string fileName = string.Empty;
|
||||||
|
switch (generateDto.GenTable.TplCategory)
|
||||||
|
{
|
||||||
|
//case "tree":
|
||||||
|
// fileName = "TplTreeVue.txt";
|
||||||
|
// break;
|
||||||
|
case "crud":
|
||||||
|
fileName = "Vue.txt";
|
||||||
|
break;
|
||||||
|
//case "select":
|
||||||
|
// fileName = "TplVueSelect.txt";
|
||||||
|
// break;
|
||||||
|
default:
|
||||||
|
fileName = "Vue.txt";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fileName = Path.Combine("v3", fileName);
|
||||||
|
var tpl = FileHelper.ReadJtTemplate(fileName);
|
||||||
|
//tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml);
|
||||||
|
//tpl.Set("VueViewEditFormRuleContent", replaceDto.VueViewEditFormRuleContent);//添加、修改表单验证规则
|
||||||
|
//tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//添加、修改表单
|
||||||
|
//tpl.Set("VueViewListContent", replaceDto.VueViewListHtml);//查询 table列
|
||||||
|
|
||||||
|
var result = tpl.Render();
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue3", "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue");
|
||||||
|
//Console.WriteLine(result);
|
||||||
|
generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result));
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成vue页面api
|
/// 生成vue页面api
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -478,6 +513,7 @@ namespace ZR.CodeGenerator
|
|||||||
options.OutMode = OutMode.Auto;
|
options.OutMode = OutMode.Auto;
|
||||||
//options.DisableeLogogram = true;//禁用简写
|
//options.DisableeLogogram = true;//禁用简写
|
||||||
options.Data.Set("refs", "$");//特殊标签替换
|
options.Data.Set("refs", "$");//特殊标签替换
|
||||||
|
options.Data.Set("modal", "$");//特殊标签替换
|
||||||
options.Data.Set("index", "$");//特殊标签替换
|
options.Data.Set("index", "$");//特殊标签替换
|
||||||
options.Data.Set("confirm", "$");//特殊标签替换
|
options.Data.Set("confirm", "$");//特殊标签替换
|
||||||
options.Data.Set("nextTick", "$");
|
options.Data.Set("nextTick", "$");
|
||||||
|
|||||||
40
ZR.Model/Dto/Business/GendemoDto.cs
Normal file
40
ZR.Model/Dto/Business/GendemoDto.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using ZR.Model.Dto;
|
||||||
|
using ZR.Model.Models;
|
||||||
|
|
||||||
|
namespace ZR.Model.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示输入对象
|
||||||
|
/// </summary>
|
||||||
|
public class GenDemoDto
|
||||||
|
{
|
||||||
|
[Required(ErrorMessage = "id不能为空")]
|
||||||
|
public int Id { get; set; }
|
||||||
|
[Required(ErrorMessage = "名称不能为空")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Icon { get; set; }
|
||||||
|
[Required(ErrorMessage = "显示状态不能为空")]
|
||||||
|
public int ShowStatus { get; set; }
|
||||||
|
public int? Sex { get; set; }
|
||||||
|
public int? Sort { get; set; }
|
||||||
|
public string Remark { get; set; }
|
||||||
|
public DateTime? BeginTime { get; set; }
|
||||||
|
public DateTime? EndTime { get; set; }
|
||||||
|
public string Feature { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 演示查询对象
|
||||||
|
/// </summary>
|
||||||
|
public class GenDemoQueryDto : PagerInfo
|
||||||
|
{
|
||||||
|
public int? Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public int? ShowStatus { get; set; }
|
||||||
|
public DateTime? BeginAddTime { get; set; }
|
||||||
|
public DateTime? EndAddTime { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
103
ZR.Model/Models/Business/Gendemo.cs
Normal file
103
ZR.Model/Models/Business/Gendemo.cs
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using SqlSugar;
|
||||||
|
using OfficeOpenXml.Attributes;
|
||||||
|
|
||||||
|
namespace ZR.Model.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示,数据实体对象
|
||||||
|
///
|
||||||
|
/// @author zz
|
||||||
|
/// @date 2022-03-31
|
||||||
|
/// </summary>
|
||||||
|
[SugarTable("gen_demo")]
|
||||||
|
public class GenDemo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : id
|
||||||
|
/// 空值 : false
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "id")]
|
||||||
|
[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 名称
|
||||||
|
/// 空值 : false
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "名称")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 图片
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "图片")]
|
||||||
|
public string Icon { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 显示状态
|
||||||
|
/// 空值 : false
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "显示状态")]
|
||||||
|
public int ShowStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 添加时间
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "添加时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
|
||||||
|
public DateTime? AddTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 用户性别
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "用户性别")]
|
||||||
|
public int? Sex { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 排序
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "排序")]
|
||||||
|
public int? Sort { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 备注
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "备注")]
|
||||||
|
public string Remark { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 开始时间
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "开始时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
|
||||||
|
public DateTime? BeginTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 结束时间
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "结束时间", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
|
||||||
|
public DateTime? EndTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 特征
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "特征")]
|
||||||
|
public string Feature { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 描述 : 父级id
|
||||||
|
/// 空值 : true
|
||||||
|
/// </summary>
|
||||||
|
[EpplusTableColumn(Header = "父级id")]
|
||||||
|
public int? ParentId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -112,6 +112,11 @@ namespace ZR.Model.System.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Display(Name = "传入参数")]
|
[Display(Name = "传入参数")]
|
||||||
public string JobParams { get; set; }
|
public string JobParams { get; set; }
|
||||||
|
public string ApiUrl { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 1、程序集任务 2、apiUrl任务
|
||||||
|
/// </summary>
|
||||||
|
public int TaskType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -219,6 +224,10 @@ namespace ZR.Model.System.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Display(Name = "传入参数")]
|
[Display(Name = "传入参数")]
|
||||||
public string JobParams { get; set; }
|
public string JobParams { get; set; }
|
||||||
|
public string ApiUrl { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 1、程序集任务 2、apiUrl任务
|
||||||
|
/// </summary>
|
||||||
|
public int TaskType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -157,5 +157,13 @@ namespace ZR.Model.System
|
|||||||
/// 最后运行时间
|
/// 最后运行时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? LastRunTime { get; set; }
|
public DateTime? LastRunTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// api执行地址
|
||||||
|
/// </summary>
|
||||||
|
public string ApiUrl { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 任务类型 1程序集2网络请求
|
||||||
|
/// </summary>
|
||||||
|
public int TaskType { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
20
ZR.Repository/Business/GendemoRepository.cs
Normal file
20
ZR.Repository/Business/GendemoRepository.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using Infrastructure.Attribute;
|
||||||
|
using ZR.Repository.System;
|
||||||
|
using ZR.Model.Models;
|
||||||
|
|
||||||
|
namespace ZR.Repository
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示仓储
|
||||||
|
///
|
||||||
|
/// @author zz
|
||||||
|
/// @date 2022-03-31
|
||||||
|
/// </summary>
|
||||||
|
[AppService(ServiceLifetime = LifeTime.Transient)]
|
||||||
|
public class GenDemoRepository : BaseRepository<GenDemo>
|
||||||
|
{
|
||||||
|
#region 业务逻辑代码
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
56
ZR.Service/Business/GendemoService.cs
Normal file
56
ZR.Service/Business/GendemoService.cs
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
using Infrastructure;
|
||||||
|
using Infrastructure.Attribute;
|
||||||
|
using ZR.Model;
|
||||||
|
using ZR.Model.Dto;
|
||||||
|
using ZR.Model.Models;
|
||||||
|
using ZR.Repository;
|
||||||
|
using ZR.Service.Business.IBusinessService;
|
||||||
|
using System;
|
||||||
|
using SqlSugar;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace ZR.Service.Business
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示Service业务层处理
|
||||||
|
///
|
||||||
|
/// @author zz
|
||||||
|
/// @date 2022-03-31
|
||||||
|
/// </summary>
|
||||||
|
[AppService(ServiceType = typeof(IGenDemoService), ServiceLifetime = LifeTime.Transient)]
|
||||||
|
public class GenDemoService : BaseService<GenDemo>, IGenDemoService
|
||||||
|
{
|
||||||
|
private readonly GenDemoRepository _GenDemorepository;
|
||||||
|
public GenDemoService(GenDemoRepository repository)
|
||||||
|
{
|
||||||
|
_GenDemorepository = repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 业务逻辑代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询演示列表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public PagedInfo<GenDemo> GetList(GenDemoQueryDto parm)
|
||||||
|
{
|
||||||
|
//开始拼装查询条件
|
||||||
|
var predicate = Expressionable.Create<GenDemo>();
|
||||||
|
|
||||||
|
//搜索条件查询语法参考Sqlsugar
|
||||||
|
predicate = predicate.AndIF(parm.Id != null, it => it.Id == parm.Id);
|
||||||
|
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Name), it => it.Name == parm.Name);
|
||||||
|
predicate = predicate.AndIF(parm.ShowStatus != null, it => it.ShowStatus == parm.ShowStatus);
|
||||||
|
predicate = predicate.AndIF(parm.BeginAddTime == null, it => it.AddTime >= DateTime.Now.AddDays(-1));
|
||||||
|
predicate = predicate.AndIF(parm.BeginAddTime != null, it => it.AddTime >= parm.BeginAddTime && it.AddTime <= parm.EndAddTime);
|
||||||
|
var response = _GenDemorepository
|
||||||
|
.Queryable()
|
||||||
|
.Where(predicate.ToExpression())
|
||||||
|
.ToPage(parm);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
20
ZR.Service/Business/IBusinessService/IGendemoService.cs
Normal file
20
ZR.Service/Business/IBusinessService/IGendemoService.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using ZR.Model;
|
||||||
|
using ZR.Model.Dto;
|
||||||
|
using ZR.Model.Models;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace ZR.Service.Business.IBusinessService
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 演示service接口
|
||||||
|
///
|
||||||
|
/// @author zz
|
||||||
|
/// @date 2022-03-31
|
||||||
|
/// </summary>
|
||||||
|
public interface IGenDemoService : IBaseService<GenDemo>
|
||||||
|
{
|
||||||
|
PagedInfo<GenDemo> GetList(GenDemoQueryDto parm);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -7,7 +7,7 @@ namespace ZR.Tasks
|
|||||||
{
|
{
|
||||||
public class JobFactory : IJobFactory
|
public class JobFactory : IJobFactory
|
||||||
{
|
{
|
||||||
private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
private readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 注入反射获取依赖对象
|
/// 注入反射获取依赖对象
|
||||||
@ -42,12 +42,10 @@ namespace ZR.Tasks
|
|||||||
|
|
||||||
public void ReturnJob(IJob job)
|
public void ReturnJob(IJob job)
|
||||||
{
|
{
|
||||||
var disposable = job as IDisposable;
|
if (job is IDisposable disposable)
|
||||||
if (disposable != null)
|
|
||||||
{
|
{
|
||||||
disposable.Dispose();
|
disposable.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
33
ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
Normal file
33
ZR.Tasks/TaskScheduler/Job_HttpRequest.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using Infrastructure;
|
||||||
|
using Infrastructure.Attribute;
|
||||||
|
using Quartz;
|
||||||
|
using Quartz.Impl;
|
||||||
|
using Quartz.Impl.Triggers;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ZR.Service.System.IService;
|
||||||
|
|
||||||
|
namespace ZR.Tasks.TaskScheduler
|
||||||
|
{
|
||||||
|
[AppService(ServiceType = typeof(Job_HttpRequest), ServiceLifetime = LifeTime.Scoped)]
|
||||||
|
internal class Job_HttpRequest : JobBase, IJob
|
||||||
|
{
|
||||||
|
private readonly ISysTasksQzService tasksQzService;
|
||||||
|
|
||||||
|
public Job_HttpRequest(ISysTasksQzService tasksQzService)
|
||||||
|
{
|
||||||
|
this.tasksQzService = tasksQzService;
|
||||||
|
}
|
||||||
|
public async Task Execute(IJobExecutionContext context)
|
||||||
|
{
|
||||||
|
await ExecuteJob(context, async () => await Run(context));
|
||||||
|
}
|
||||||
|
public async Task Run(IJobExecutionContext context)
|
||||||
|
{
|
||||||
|
AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger;
|
||||||
|
var info = await tasksQzService.GetByIdAsync(trigger.Name);
|
||||||
|
|
||||||
|
var result = await HttpHelper.HttpPostAsync("http://" + info.ApiUrl, info.JobParams);
|
||||||
|
//Console.WriteLine(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
78
ZR.Vue/src/api/business/demo.js
Normal file
78
ZR.Vue/src/api/business/demo.js
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 演示分页查询
|
||||||
|
* @param {查询条件} data
|
||||||
|
*/
|
||||||
|
export function listDemo(query) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增演示
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function addDemo(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改演示
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function updateDemo(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo',
|
||||||
|
method: 'PUT',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取演示详情
|
||||||
|
* @param {Id}
|
||||||
|
*/
|
||||||
|
export function getDemo(id) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除演示
|
||||||
|
* @param {主键} pid
|
||||||
|
*/
|
||||||
|
export function delDemo(pid) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo/' + pid,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出演示
|
||||||
|
export function exportDemo(query) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//排序
|
||||||
|
export function changeSort(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/Demo/ChangeSort',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
70
ZR.Vue/src/api/business/genDemo.js
Normal file
70
ZR.Vue/src/api/business/genDemo.js
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 演示分页查询
|
||||||
|
* @param {查询条件} data
|
||||||
|
*/
|
||||||
|
export function listGenDemo(query) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增演示
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function addGenDemo(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改演示
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export function updateGenDemo(data) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo',
|
||||||
|
method: 'PUT',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取演示详情
|
||||||
|
* @param {Id}
|
||||||
|
*/
|
||||||
|
export function getGenDemo(id) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除演示
|
||||||
|
* @param {主键} pid
|
||||||
|
*/
|
||||||
|
export function delGenDemo(pid) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo/' + pid,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出演示
|
||||||
|
export function exportGenDemo(query) {
|
||||||
|
return request({
|
||||||
|
url: 'business/GenDemo/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ export default {
|
|||||||
if (routes.length === 0) {
|
if (routes.length === 0) {
|
||||||
activePath = this.currentIndex || this.defaultRouter();
|
activePath = this.currentIndex || this.defaultRouter();
|
||||||
|
|
||||||
console.log("activePath", activePath);
|
console.log("activePath", activePath);
|
||||||
this.activeRoutes(activePath);
|
this.activeRoutes(activePath);
|
||||||
}
|
}
|
||||||
return activePath;
|
return activePath;
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :class="{'has-logo':showLogo}" :style="{ backgroundColor: settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
|
<div :class="{'has-logo':showLogo}"
|
||||||
|
:style="{ backgroundColor: settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
|
||||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||||
<el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper">
|
<el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper">
|
||||||
|
<el-menu :default-active="activeMenu" :collapse="isCollapse"
|
||||||
<el-menu :default-active="activeMenu" :collapse="isCollapse" :background-color="settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground" :text-color="settings.sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor" :unique-opened="true"
|
:background-color="settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground"
|
||||||
|
:text-color="settings.sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor" :unique-opened="true"
|
||||||
:active-text-color="settings.theme" :collapse-transition="false" mode="vertical">
|
:active-text-color="settings.theme" :collapse-transition="false" mode="vertical">
|
||||||
|
|
||||||
<sidebar-item v-for="(route, index) in sidebarRouters" :key="route.path + index" :item="route" :base-path="route.path" />
|
<sidebar-item v-for="(route, index) in sidebarRouters" :key="route.path + index" :item="route" :base-path="route.path" />
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@ -13,34 +14,34 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters, mapState } from "vuex";
|
import { mapGetters, mapState } from 'vuex'
|
||||||
import Logo from "./Logo";
|
import Logo from './Logo'
|
||||||
import SidebarItem from "./SidebarItem";
|
import SidebarItem from './SidebarItem'
|
||||||
import variables from "@/assets/styles/variables.scss";
|
import variables from '@/assets/styles/variables.scss'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { SidebarItem, Logo },
|
components: { SidebarItem, Logo },
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["settings"]),
|
...mapState(['settings']),
|
||||||
...mapGetters(["sidebarRouters", "sidebar"]),
|
...mapGetters(['sidebarRouters', 'sidebar']),
|
||||||
activeMenu() {
|
activeMenu() {
|
||||||
const route = this.$route;
|
const route = this.$route
|
||||||
const { meta, path } = route;
|
const { meta, path } = route
|
||||||
// if set path, the sidebar will highlight the path you set
|
// if set path, the sidebar will highlight the path you set
|
||||||
if (meta.activeMenu) {
|
if (meta.activeMenu) {
|
||||||
return meta.activeMenu;
|
return meta.activeMenu
|
||||||
}
|
}
|
||||||
return path;
|
return path
|
||||||
},
|
},
|
||||||
showLogo() {
|
showLogo() {
|
||||||
return this.$store.state.settings.sidebarLogo;
|
return this.$store.state.settings.sidebarLogo
|
||||||
},
|
},
|
||||||
variables() {
|
variables() {
|
||||||
return variables;
|
return variables
|
||||||
},
|
},
|
||||||
isCollapse() {
|
isCollapse() {
|
||||||
return !this.sidebar.opened;
|
return !this.sidebar.opened
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -126,8 +126,7 @@ export default {
|
|||||||
this.$store
|
this.$store
|
||||||
.dispatch("Login", this.loginForm)
|
.dispatch("Login", this.loginForm)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.msgSuccess("登陆成功");
|
this.msgSuccess("登录成功");
|
||||||
this.loading = true;
|
|
||||||
this.$router.push({ path: this.redirect || "/" });
|
this.$router.push({ path: this.redirect || "/" });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
@ -77,46 +77,71 @@
|
|||||||
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24" v-if="this.form.id">
|
<el-col :lg="24" v-if="this.form.id">
|
||||||
<el-form-item label="任务ID">
|
<el-form-item label="任务ID">
|
||||||
<div>{{form.id}}</div>
|
<div>{{form.id}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="任务名称" maxlength="200" prop="name">
|
<el-form-item label="任务名称" maxlength="200" prop="name">
|
||||||
<el-input v-model="form.name" placeholder="请输入任务名称" />
|
<el-input v-model="form.name" placeholder="请输入任务名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="触发器类型" prop="triggerType">
|
<el-form-item label="触发器类型" prop="triggerType">
|
||||||
<el-select v-model="form.triggerType" placeholder="请选择触发器类型" style="width:100%">
|
<el-select v-model="form.triggerType" placeholder="请选择触发器类型" style="width:100%">
|
||||||
<el-option v-for="item in triggerTypeOptions" :key="item.value" :label="item.label" :value="parseInt(item.value)" />
|
<el-option v-for="item in triggerTypeOptions" :key="item.value" :label="item.label" :value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="任务分组" maxlength="200" prop="jobGroup">
|
<el-form-item label="任务分组" maxlength="200" prop="jobGroup">
|
||||||
<el-select v-model="form.jobGroup" placeholder="请选择">
|
<el-select v-model="form.jobGroup" placeholder="请选择">
|
||||||
<el-option v-for="dict in jobGroupOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
|
<el-option v-for="dict in jobGroupOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :lg="24">
|
||||||
<el-form-item label="程序集名称" maxlength="200" prop="assemblyName">
|
<el-form-item label="任务类型" prop="taskType">
|
||||||
<el-input v-model="form.assemblyName" placeholder="请输入程序集名称" />
|
<el-radio-group v-model="form.taskType">
|
||||||
|
<el-radio :label="1">执行程序集</el-radio>
|
||||||
|
<el-radio :label="2">执行url</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="任务类名" maxlength="200" prop="className">
|
<el-col :lg="24" v-if="form.taskType == 2">
|
||||||
<el-input v-model="form.className" placeholder="请输入任务类名" />
|
<el-form-item label="apiUrl" prop="apiUrl">
|
||||||
|
<el-input v-model="form.apiUrl" placeholder="远程调用接口url">
|
||||||
|
<template slot="prepend">Http://</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<template v-else>
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="程序集名称" maxlength="200" prop="assemblyName">
|
||||||
|
<el-input v-model="form.assemblyName" placeholder="请输入程序集名称" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="任务类名" maxlength="200" prop="className">
|
||||||
|
<el-input v-model="form.className" placeholder="请输入任务类名" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<el-col :lg="24">
|
||||||
<el-form-item label="传入参数" prop="jobParams">
|
<el-form-item label="传入参数" prop="jobParams">
|
||||||
|
<span slot="label">
|
||||||
|
<el-tooltip content="eg:{ token: abc123}" placement="top">
|
||||||
|
<i class="el-icon-question"></i>
|
||||||
|
</el-tooltip>
|
||||||
|
传入参数
|
||||||
|
</span>
|
||||||
<el-input v-model="form.jobParams" placeholder="传入参数" />
|
<el-input v-model="form.jobParams" placeholder="传入参数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-show="form.triggerType == 1">
|
<el-col :lg="24" v-show="form.triggerType == 1">
|
||||||
<el-form-item label="间隔(Cron)" prop="cron">
|
<el-form-item label="间隔(Cron)" prop="cron">
|
||||||
<!-- <el-input placeholder="如10分钟执行一次:0/0 0/10 * * * ?" v-model="form.cron">
|
<!-- <el-input placeholder="如10分钟执行一次:0/0 0/10 * * * ?" v-model="form.cron">
|
||||||
<el-link slot="append" href="https://qqe2.com/cron" type="primary" target="_blank" class="mr10">cron在线生成</el-link>
|
<el-link slot="append" href="https://qqe2.com/cron" type="primary" target="_blank" class="mr10">cron在线生成</el-link>
|
||||||
@ -131,22 +156,28 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="开始日期" prop="beginTime">
|
<el-form-item label="开始日期" prop="beginTime">
|
||||||
|
<span slot="label">
|
||||||
|
<el-tooltip content="如果不写开始时间和结束时间,任务将以当前时间开始执行,到9999年结束" placement="top">
|
||||||
|
<i class="el-icon-question"></i>
|
||||||
|
</el-tooltip>
|
||||||
|
开始日期
|
||||||
|
</span>
|
||||||
<el-date-picker v-model="form.beginTime" style="width:100%" type="date" :picker-options="pickerOptions" placeholder="选择开始日期" />
|
<el-date-picker v-model="form.beginTime" style="width:100%" type="date" :picker-options="pickerOptions" placeholder="选择开始日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="结束日期" prop="endTime">
|
<el-form-item label="结束日期" prop="endTime">
|
||||||
<el-date-picker v-model="form.endTime" style="width:100%" type="date" placeholder="选择结束日期" />
|
<el-date-picker v-model="form.endTime" style="width:100%" type="date" placeholder="选择结束日期" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :lg="24">
|
||||||
<el-form-item v-show="form.triggerType == 0" label="执行间隔(秒)" prop="intervalSecond">
|
<el-form-item v-show="form.triggerType == 0" label="执行间隔(秒)" prop="intervalSecond">
|
||||||
<el-input-number v-model="form.intervalSecond" :max="9999999999" step-strictly controls-position="right" :min="1" />
|
<el-input-number v-model="form.intervalSecond" :max="9999999999" step-strictly controls-position="right" :min="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :lg="24">
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input type="textarea" v-model="form.remark" />
|
<el-input type="textarea" v-model="form.remark" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -178,6 +209,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
queryTasks,
|
queryTasks,
|
||||||
|
getTasks,
|
||||||
createTasks,
|
createTasks,
|
||||||
updateTasks,
|
updateTasks,
|
||||||
deleteTasks,
|
deleteTasks,
|
||||||
@ -311,6 +343,9 @@ export default {
|
|||||||
triggerType: [
|
triggerType: [
|
||||||
{ required: true, message: '请选择触发器类型', trigger: 'blur' }
|
{ required: true, message: '请选择触发器类型', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
|
apiUrl: [
|
||||||
|
{ required: true, message: '请输入apiUrl地址', trigger: 'blur' }
|
||||||
|
],
|
||||||
cron: [{ validator: cronValidate, trigger: 'blur' }],
|
cron: [{ validator: cronValidate, trigger: 'blur' }],
|
||||||
beginTime: [{ validator: beginTimeValidate, trigger: 'blur' }],
|
beginTime: [{ validator: beginTimeValidate, trigger: 'blur' }],
|
||||||
endTime: [{ validator: endTimeValidate, trigger: 'blur' }],
|
endTime: [{ validator: endTimeValidate, trigger: 'blur' }],
|
||||||
@ -376,9 +411,11 @@ export default {
|
|||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset()
|
this.reset()
|
||||||
|
|
||||||
this.form = row
|
getTasks(row.id).then((res) => {
|
||||||
this.open = true
|
this.form = res.data
|
||||||
this.title = '修改计划任务'
|
this.open = true
|
||||||
|
this.title = '修改计划任务'
|
||||||
|
})
|
||||||
},
|
},
|
||||||
/** 任务日志列表查询 */
|
/** 任务日志列表查询 */
|
||||||
handleJobLog(id, title) {
|
handleJobLog(id, title) {
|
||||||
@ -400,17 +437,14 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 确定后回传值 */
|
/** 确定后回传值 */
|
||||||
crontabFill(value) {
|
crontabFill(value) {
|
||||||
console.log(value)
|
console.log(value)
|
||||||
this.form.cron = value
|
this.form.cron = value
|
||||||
},
|
},
|
||||||
// 启动按钮
|
// 启动按钮
|
||||||
handleStart(row) {
|
handleStart(row) {
|
||||||
startTasks(row.id).then((response) => {
|
startTasks(row.id).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.$message({
|
this.msgSuccess(response.msg)
|
||||||
message: response.msg,
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
this.open = false
|
this.open = false
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
@ -420,10 +454,7 @@ export default {
|
|||||||
handleStop(row) {
|
handleStop(row) {
|
||||||
stopTasks(row.id).then((response) => {
|
stopTasks(row.id).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.$message({
|
this.msgSuccess(response.msg)
|
||||||
message: response.msg,
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
this.open = false
|
this.open = false
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
@ -446,10 +477,7 @@ export default {
|
|||||||
deleteTasks(jobInfo.id).then((response) => {
|
deleteTasks(jobInfo.id).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.getList()
|
this.getList()
|
||||||
this.$message({
|
this.msgSuccess('删除成功')
|
||||||
message: '删除成功',
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -466,10 +494,7 @@ export default {
|
|||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
runTasks(jobInfo.id).then((res) => {
|
runTasks(jobInfo.id).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$message({
|
this.msgSuccess('执行成功')
|
||||||
message: '执行成功',
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -482,10 +507,7 @@ export default {
|
|||||||
if (this.form.id !== undefined) {
|
if (this.form.id !== undefined) {
|
||||||
updateTasks(this.form).then((response) => {
|
updateTasks(this.form).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.$message({
|
this.msgSuccess('修改成功')
|
||||||
message: '修改成功',
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
this.open = false
|
this.open = false
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
@ -493,10 +515,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
createTasks(this.form).then((response) => {
|
createTasks(this.form).then((response) => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.$message({
|
this.msgSuccess('新增成功')
|
||||||
message: '新增成功',
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
this.open = false
|
this.open = false
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
@ -524,7 +543,8 @@ export default {
|
|||||||
beginTime: undefined,
|
beginTime: undefined,
|
||||||
endTime: undefined,
|
endTime: undefined,
|
||||||
intervalSecond: 1,
|
intervalSecond: 1,
|
||||||
cron: undefined
|
cron: undefined,
|
||||||
|
taskType: 1
|
||||||
}
|
}
|
||||||
this.resetForm('form')
|
this.resetForm('form')
|
||||||
},
|
},
|
||||||
|
|||||||
@ -41,14 +41,10 @@
|
|||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button>
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
v-hasPermi="['system:user:edit']">修改</el-button>
|
v-hasPermi="['system:user:edit']">修改</el-button>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
|
||||||
v-hasPermi="['system:user:remove']">删除</el-button>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
|
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -59,7 +55,6 @@
|
|||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="50" align="center" />
|
|
||||||
<el-table-column label="编号" align="center" prop="userId" width="60" />
|
<el-table-column label="编号" align="center" prop="userId" width="60" />
|
||||||
<el-table-column label="登录名" align="center" prop="userName" :show-overflow-tooltip="true" />
|
<el-table-column label="登录名" align="center" prop="userName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="昵称" align="center" prop="nickName" :show-overflow-tooltip="true" />
|
<el-table-column label="昵称" align="center" prop="nickName" :show-overflow-tooltip="true" />
|
||||||
|
|||||||
@ -26,6 +26,8 @@ CREATE TABLE `Sys_TasksQz` (
|
|||||||
`create_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人编码',
|
`create_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人编码',
|
||||||
`update_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人编码',
|
`update_by` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人编码',
|
||||||
`lastRunTime` datetime(0) NULL DEFAULT NULL COMMENT '最后执行时间',
|
`lastRunTime` datetime(0) NULL DEFAULT NULL COMMENT '最后执行时间',
|
||||||
|
`apiUrl` varchar(200) NULL DEFAULT NULL COMMENT '网络请求地址',
|
||||||
|
`taskType` int(11) NULL DEFAULT NULL COMMENT '任务类型1程序集 2网络请求'
|
||||||
PRIMARY KEY (`ID`) USING BTREE
|
PRIMARY KEY (`ID`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '计划任务' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '计划任务' ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,8 @@ CREATE TABLE sys_tasksQz
|
|||||||
create_by varchar(50) NULL DEFAULT NULL , --'创建人编码',
|
create_by varchar(50) NULL DEFAULT NULL , --'创建人编码',
|
||||||
update_by varchar(50) NULL DEFAULT NULL , --'更新人编码',
|
update_by varchar(50) NULL DEFAULT NULL , --'更新人编码',
|
||||||
lastRunTime datetime , --最后执行时间
|
lastRunTime datetime , --最后执行时间
|
||||||
|
taskType int null , --任务类型 1程序集 2网络请求
|
||||||
|
apiUrl varchar(200) --网络请求地址
|
||||||
)
|
)
|
||||||
GO
|
GO
|
||||||
INSERT INTO sys_tasksQz VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZR.Tasks', 'TaskScheduler.Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL, NULL);
|
INSERT INTO sys_tasksQz VALUES ('1410905433996136448', '测试任务', 'SYSTEM', '0 0/10 * * * ? ', 'ZR.Tasks', 'TaskScheduler.Job_SyncTest', NULL, 0, '2021-07-02 18:17:31', '9999-12-31 00:00:00', 1, 1, 1, NULL, '2021-07-02 18:17:23', '2021-07-02 18:17:31', 'admin', NULL, NULL);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user