check bugs

This commit is contained in:
yubaolee 2018-03-28 17:35:43 +08:00
parent 0b4dfcd429
commit b01e8aadcc
7 changed files with 100 additions and 38 deletions

View File

@ -1,4 +1,5 @@
using Infrastructure; using System;
using Infrastructure;
using OpenAuth.App.Request; using OpenAuth.App.Request;
using OpenAuth.App.Response; using OpenAuth.App.Response;
using OpenAuth.Repository.Domain; using OpenAuth.Repository.Domain;
@ -15,38 +16,47 @@ namespace OpenAuth.App
/// </summary> /// </summary>
public TableData Load(QueryFormListReq request) public TableData Load(QueryFormListReq request)
{ {
return new TableData return new TableData
{ {
count = Repository.GetCount(null), count = Repository.GetCount(null),
data = Repository.Find(request.page, request.limit,"CreateDate desc") data = Repository.Find(request.page, request.limit, "CreateDate desc")
}; };
} }
public void Add(Form obj) public void Add(Form obj)
{ {
UnitWork.Add(obj); UnitWork.Add(obj);
UnitWork.ExecuteSql(FormUtil.GetSql(obj)); if (!string.IsNullOrEmpty(obj.DbName))
{
UnitWork.ExecuteSql(FormUtil.GetSql(obj));
}
UnitWork.Save(); UnitWork.Save();
} }
public void Update(Form obj) public void Update(Form obj)
{ {
Repository.Update(u => u.Id == obj.Id, u => new Form Repository.Update(u => u.Id == obj.Id, u => new Form
{ {
ContentData = obj.ContentData, ContentData = obj.ContentData,
Content = obj.Content, Content = obj.Content,
ContentParse = obj.ContentParse, ContentParse = obj.ContentParse,
Name = obj.Name, Name = obj.Name,
DbName = obj.DbName DbName = obj.DbName,
SortCode = obj.SortCode,
Description = obj.Description,
ModifyDate = DateTime.Now
}); });
Repository.ExecuteSql(FormUtil.GetSql(obj)); if (!string.IsNullOrEmpty(obj.DbName))
{
UnitWork.ExecuteSql(FormUtil.GetSql(obj));
}
} }
public FormResp FindSingle(string id) public FormResp FindSingle(string id)
{ {
var form = Get(id); var form = Get(id);
return form.MapTo<FormResp>(); return form.MapTo<FormResp>();
} }

View File

@ -498,7 +498,7 @@ namespace OpenAuth.App
var jsonArray = JArray.Parse(form.ContentData); var jsonArray = JArray.Parse(form.ContentData);
// 数据库名称 // 数据库名称
string tableName="["+ form.DbName + "]"; string tableName= form.DbName ;
// 创建数据表 // 创建数据表
StringBuilder sql =new StringBuilder("if exists ( select * from sysobjects where name = '" StringBuilder sql =new StringBuilder("if exists ( select * from sysobjects where name = '"
+tableName+"' and type = 'U') drop table " +tableName+"' and type = 'U') drop table "

View File

@ -36,6 +36,13 @@ namespace OpenAuth.App.Response
/// </summary> /// </summary>
public string Content { get; set; } public string Content { get; set; }
/// <summary>
/// 排序码
/// </summary>
public int SortCode { get; set; }
public string Description { get; set; }
/// <summary> /// <summary>
/// 数据库名称 /// 数据库名称

View File

@ -9,7 +9,7 @@
} }
<form class="layui-form" action="" id="formEdit"> <form class="layui-form layui-form-pane" action="" id="formEdit">
<input type="hidden" name="Id" v-model="Id" /> <input type="hidden" name="Id" v-model="Id" />
<input type="hidden" name="Fields" id="Fields" value="0"> <input type="hidden" name="Fields" id="Fields" value="0">
@ -21,7 +21,7 @@
</ul> </ul>
<div class="layui-tab-content" style="height: 100px;"> <div class="layui-tab-content" style="height: 100px;">
<div class="layui-tab-item layui-show"> <div class="layui-tab-item layui-show">
<div class="layui-form-item"> <div class="layui-form-item" pane>
<label class="layui-form-label">表单名称</label> <label class="layui-form-label">表单名称</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="Name" v-model="Name" required lay-verify="required" <input type="text" name="Name" v-model="Name" required lay-verify="required"
@ -29,26 +29,26 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item" pane>
<label class="layui-form-label">关联数据表名称【英文】</label> <label class="layui-form-label">关联数据表名</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="DbName" v-model="DbName" required lay-verify="required" <input type="text" name="DbName" v-model="DbName" required
placeholder="关联数据表名称" autocomplete="off" class="layui-input"> placeholder="关联数据表名称" autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item" pane>
<label class="layui-form-label">排序码</label> <label class="layui-form-label">排序码</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="SortCode" value="1" v-model="SortCode" class="layui-input"> <input type="text" name="SortCode" v-model="SortCode" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item" pane>
<label class="layui-form-label">备注</label> <label class="layui-form-label">备注</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="Description" v-model="Description" <textarea name="Description" v-model="Description"
placeholder="备注" autocomplete="off" class="layui-input"> placeholder="备注" class="layui-textarea"></textarea>
</div> </div>
</div> </div>
@ -60,16 +60,16 @@
</blockquote> </blockquote>
</div> </div>
<div class="layui-row"> <div class="layui-row">
<div class="layui-col-xs2"> <div class="layui-col-xs2 layui-btn-container">
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('text');">文本框</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('text');">文本框</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('textarea');">多行文本</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('textarea');">多行文本</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('select');">下拉菜单</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('select');">下拉菜单</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('radios');">单选框</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('radios');">单选框</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('checkboxs');">复选框</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('checkboxs');">复选框</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('macros');">宏控件</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('macros');">宏控件</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('progressbar');">进度条</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('progressbar');">进度条</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('qrcode');">二维码</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('qrcode');">二维码</button>
<button class="layui-btn layui-btn-radius layui-btn-fluid" onclick="leipiFormDesign.exec('listctrl');">列表控件</button> <button class="layui-btn layui-btn-primary layui-btn-fluid" onclick="leipiFormDesign.exec('listctrl');">列表控件</button>
</div> </div>
<div class="layui-col-xs10"> <div class="layui-col-xs10">
<script id="myFormDesign" type="text/plain" style="width: 100%;"> <script id="myFormDesign" type="text/plain" style="width: 100%;">

View File

@ -1,6 +1,6 @@
layui.config({ layui.config({
base: "/js/" base: "/js/"
}).use(['form','vue', 'ztree', 'layer','utils', 'jquery', 'table','droptree','openauth','element'], function () { }).use(['form', 'vue', 'ztree', 'layer', 'utils', 'jquery', 'table', 'droptree', 'openauth', 'element'], function () {
var form = layui.form, var form = layui.form,
element = layui.element, element = layui.element,
//layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer, //layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
@ -15,6 +15,13 @@
//提交的URL //提交的URL
var url = "/Forms/Add"; var url = "/Forms/Add";
$('input[name="DbName"]').focus(function () {
layer.tips('如果为空,则不创建数据库表', 'input[name="DbName"]',
{
tips: 1 //1 上方 3下方
});
});
var vm = new Vue({ var vm = new Vue({
el: "#formEdit" el: "#formEdit"
}); });
@ -40,7 +47,7 @@
wordCount: false, wordCount: false,
//关闭elementPath //关闭elementPath
elementPathEnabled: false, elementPathEnabled: false,
autoHeightEnabled:true autoHeightEnabled: true
//默认的编辑区域高度 //默认的编辑区域高度
, initialFrameHeight: 430 , initialFrameHeight: 430
, iframeCssUrl: "/js/ueditor/formdesign/bootstrap/css/bootstrap.min.css" //引入自身 css使编辑器兼容你网站css , iframeCssUrl: "/js/ueditor/formdesign/bootstrap/css/bootstrap.min.css" //引入自身 css使编辑器兼容你网站css
@ -239,7 +246,7 @@
//--------------以下仅参考------------------------------------------------------------------- //--------------以下仅参考-------------------------------------------------------------------
/*设计form的target 然后提交至一个新的窗口进行预览*/ /*设计form的target 然后提交至一个新的窗口进行预览*/
var fields = $("#Fields").val(), formeditor = ''; var fields = $("#Fields").val(), formeditor = '';
//获取表单设计器里的内容 //获取表单设计器里的内容
formeditor = ue.getContent(); formeditor = ue.getContent();
//解析表单设计器控件 //解析表单设计器控件
@ -271,7 +278,8 @@
} else { } else {
vm.$set('$data', vm.$set('$data',
{ {
Id: '' Id: '',
SortCode:1
}); });
} }
@ -308,5 +316,5 @@
//让层自适应iframe //让层自适应iframe
//parent.layer.iframeAuto(index); //parent.layer.iframeAuto(index);
}) })

View File

@ -124,6 +124,7 @@
<Compile Include="TestLogin.cs" /> <Compile Include="TestLogin.cs" />
<Compile Include="TestAuthen.cs" /> <Compile Include="TestAuthen.cs" />
<Compile Include="TestOrg.cs" /> <Compile Include="TestOrg.cs" />
<Compile Include="TestForm.cs" />
<Compile Include="TestUser.cs" /> <Compile Include="TestUser.cs" />
<Compile Include="TestWorkflow.cs" /> <Compile Include="TestWorkflow.cs" />
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,36 @@
using System;
using Infrastructure;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenAuth.App;
using OpenAuth.Repository.Domain;
namespace OpenAuth.UnitTest
{
[TestClass]
public class TestForm : TestBase
{
private FormApp _app;
public TestForm()
{
_app = AutofacExt.GetFromFac<FormApp>();
}
[TestMethod]
public void Update()
{
try
{
var form = _app.FindSingle("048b8074-1a68-4dc4-af15-dbc0914f5745");
var newform = form.MapTo<Form>();
_app.Update(newform);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}