8 changed files with 2628 additions and 161 deletions
@ -0,0 +1,534 @@ |
|||||||
|
@@master_page.html |
||||||
|
<link |
||||||
|
href="css/page_table_list.css" |
||||||
|
rel="stylesheet" |
||||||
|
/> |
||||||
|
<div |
||||||
|
id="apibox" |
||||||
|
class="card" |
||||||
|
> |
||||||
|
<div class="search-bar"> |
||||||
|
<form |
||||||
|
id="frmSearach" |
||||||
|
action="lyear_forms_elements.html" |
||||||
|
method="post" |
||||||
|
onsubmit="return false;" |
||||||
|
> |
||||||
|
<div class="form-group"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-md-2"> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
type="text" |
||||||
|
id="txtSearch" |
||||||
|
name="example-text-input" |
||||||
|
placeholder="方法名称" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<button |
||||||
|
@click="onSearch()" |
||||||
|
id="btnSearch" |
||||||
|
class="btn btn-secondary" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
onclick="frmSearach.reset()" |
||||||
|
class="btn btn-close m-l-15" |
||||||
|
type="submit" |
||||||
|
> |
||||||
|
清空 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-md-4"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<div class="toolbar-btn-action"> |
||||||
|
<button |
||||||
|
@click="openAddDiv()" |
||||||
|
class="btn btn-primary m-l-15" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
> |
||||||
|
<i class="mdi mdi-plus"></i> 新增 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="card-body"> |
||||||
|
<h5></h5> |
||||||
|
<div class="table-responsive"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr v-if="data && data.Columns && data.Columns.length > 0"> |
||||||
|
<th |
||||||
|
class="mi-w-100" |
||||||
|
v-for="column in data.Columns" |
||||||
|
> |
||||||
|
{{column.ColumnDescription}} |
||||||
|
</th> |
||||||
|
<th>操作</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="data &&data.Data"> |
||||||
|
<tr |
||||||
|
v-if="data.Columns && data.Columns.length > 0" |
||||||
|
v-for="item in data.Data" |
||||||
|
> |
||||||
|
<td v-for="column in data.Columns"> |
||||||
|
{{ item[column.PropertyName] }} |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="table_opt"> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="openEditDiv(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 修改 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="deleteAndConfirm(item)" |
||||||
|
data-target="#divDelBox" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-do-not-disturb"></i> 删除 |
||||||
|
</button> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@@page_control.html |
||||||
|
<div |
||||||
|
class="modal fade" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="gridSystemModalLabel" |
||||||
|
id="gridSystemModal" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<div |
||||||
|
class="modal-dialog" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="exampleModalLabel" |
||||||
|
> |
||||||
|
{{title}} |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<form id="frmEdit"> |
||||||
|
<input |
||||||
|
type="hidden" |
||||||
|
v-model="formData.ID" |
||||||
|
name="ID" |
||||||
|
/> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="recipient-name" |
||||||
|
class="control-label" |
||||||
|
>属性路径:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
v-model="formData.OBJECT_PATH" |
||||||
|
name="OBJECT_PATH" |
||||||
|
class="form-control" |
||||||
|
id="recipient-name" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>实体表名: |
||||||
|
</label> |
||||||
|
<div class="input-group"> |
||||||
|
<input |
||||||
|
v-model="formData.MAPPING_TABLE" |
||||||
|
type="text" |
||||||
|
name="MAPPING_TABLE" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<span class="input-group-btn"> |
||||||
|
<button |
||||||
|
@click="openImportEntity(item)" |
||||||
|
class="btn btn-default" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
选择表 |
||||||
|
</button> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>实体归属:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice2" |
||||||
|
name="ASSEMBLY_TYPE" |
||||||
|
value="0" |
||||||
|
v-model="formData.ASSEMBLY_TYPE" |
||||||
|
checked |
||||||
|
/> |
||||||
|
<label for="contactChoice2">系统</label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice1" |
||||||
|
name="ASSEMBLY_TYPE" |
||||||
|
value="1" |
||||||
|
v-model="formData.ASSEMBLY_TYPE" |
||||||
|
/> |
||||||
|
<label for="contactChoice1">三方</label> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>实体类型:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice2" |
||||||
|
name="OBJECT_TYPE" |
||||||
|
value="0" |
||||||
|
v-model="formData.OBJECT_TYPE" |
||||||
|
checked |
||||||
|
/> |
||||||
|
<label for="contactChoice2">对象</label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice1" |
||||||
|
name="OBJECT_TYPE" |
||||||
|
value="1" |
||||||
|
v-model="formData.OBJECT_TYPE" |
||||||
|
/> |
||||||
|
<label for="contactChoice1">列表</label> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>参数类型:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice2" |
||||||
|
name="PARAMETR_TYPE" |
||||||
|
value="0" |
||||||
|
v-model="formData.PARAMETR_TYPE" |
||||||
|
checked |
||||||
|
/> |
||||||
|
<label for="contactChoice2">入参</label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice1" |
||||||
|
name="PARAMETR_TYPE" |
||||||
|
value="1" |
||||||
|
v-model="formData.PARAMETR_TYPE" |
||||||
|
/> |
||||||
|
<label for="contactChoice1">出参</label> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnCloseEdit" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="addOrUpdate()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div |
||||||
|
id="divImportEntity" |
||||||
|
class="modal fade bs-example-modal-lg" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="myLargeModalLabel" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<button |
||||||
|
id="btnImportEntity" |
||||||
|
type="button" |
||||||
|
class="btn btn-primary hidden" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#divImportEntity" |
||||||
|
></button> |
||||||
|
<div |
||||||
|
class="modal-dialog modal-lg border3CCC" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="myLargeModalLabel" |
||||||
|
> |
||||||
|
选择表 |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<div class="input-group width250 m-b-10"> |
||||||
|
<input |
||||||
|
id="txtTableName" |
||||||
|
type="text" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<span class="input-group-btn"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="bindImportTables()" |
||||||
|
class="btn btn-default" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
onclick="txtTableName.value=''" |
||||||
|
class="btn btn-default" |
||||||
|
> |
||||||
|
<i class="mdi mdi-refresh"></i>清空 |
||||||
|
</button> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
<div class="master-table-container"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr> |
||||||
|
<th>表名</th> |
||||||
|
<th>描述</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="tables.length>0"> |
||||||
|
<tr |
||||||
|
v-for="item in tables" |
||||||
|
@click="selectTable(item)" |
||||||
|
:style="{ |
||||||
|
'background-color':item.Id ==isSelectTable.Id? '#f5f5f5': '' |
||||||
|
}" |
||||||
|
> |
||||||
|
<td>{{ item.Name }}</td> |
||||||
|
<td>{{ item.Description }}</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnImportEntityClose" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="importEntitySubmit()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
确定 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script> |
||||||
|
var vueObj = new Vue({ |
||||||
|
el: '#apibox', |
||||||
|
data: { |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
addTitle: '添加动态接口分类', |
||||||
|
editTitle: '修改态接口分类', |
||||||
|
title: '', |
||||||
|
formData: {}, |
||||||
|
methodId: '', |
||||||
|
databaseId: 1, |
||||||
|
database: [], |
||||||
|
tables: [], |
||||||
|
isSelectTable: {}, |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
var url = window.location.href |
||||||
|
var methodId = url.substring(url.lastIndexOf('?') + 1) |
||||||
|
this.methodId = methodId |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
fetchData(append) { |
||||||
|
var url = `/std_entity/list?methodID=${this.methodId}` + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
onSearch: function (page) { |
||||||
|
var urlParameters = |
||||||
|
'&' + |
||||||
|
tools.objectToQueryString({ |
||||||
|
title: txtSearch.value, |
||||||
|
__pageNumber: page, |
||||||
|
__pageSize: tools.getValue('selPageSize'), |
||||||
|
}) |
||||||
|
this.fetchData(urlParameters) |
||||||
|
}, |
||||||
|
deleteAndConfirm: function (item) { |
||||||
|
if (item == null) { |
||||||
|
if (localStorage.delId == 200100) { |
||||||
|
tools.alert('初始化分类不能删除') |
||||||
|
btnDelClose.click() |
||||||
|
return |
||||||
|
} |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100003/DeleteDynamicInterfaceCategory?IsDeleted=true&Id=' + |
||||||
|
localStorage.delId |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
btnDelClose.click() |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} else { |
||||||
|
localStorage.delId = item.Id |
||||||
|
} |
||||||
|
}, |
||||||
|
openEditDiv: function (item) { |
||||||
|
console.log(item) |
||||||
|
var urlById = '/std_entity/get?id=' + item.ID |
||||||
|
if (item.ID) { |
||||||
|
this.title = this.editTitle |
||||||
|
axios |
||||||
|
.get(urlById, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.formData = response.data |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
openAddDiv: function (item) { |
||||||
|
this.title = this.addTitle |
||||||
|
this.formData = { |
||||||
|
OBJECT_TYPE: 0, |
||||||
|
PARAMETR_TYPE: 0, |
||||||
|
ASSEMBLY_TYPE: 0, |
||||||
|
METHOD_REF: this.methodId, |
||||||
|
MAPPING_TABLE: '', |
||||||
|
} |
||||||
|
}, |
||||||
|
addOrUpdate: function () { |
||||||
|
var th = this |
||||||
|
var frmId = 'frmEdit' |
||||||
|
var json = this.formData |
||||||
|
var url = json.METHOD_ID ? '/std_entity/update' : '/std_entity/create' |
||||||
|
this.addOrUpdateSubmit(url, json) |
||||||
|
}, |
||||||
|
addOrUpdateSubmit: function (url, json) { |
||||||
|
var th = this |
||||||
|
axios |
||||||
|
.post(url, json, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
if (response.data == true) { |
||||||
|
frmEdit.reset() |
||||||
|
btnCloseEdit.click() |
||||||
|
} else { |
||||||
|
tools.highlightErrorFields(response.data) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
openImportEntity: function () { |
||||||
|
btnImportEntity.click() |
||||||
|
this.bindImportTables() |
||||||
|
}, |
||||||
|
bindImportTables: function () { |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100004/GetAllTables?databaseId=' + |
||||||
|
this.databaseId + |
||||||
|
'&tableName=' + |
||||||
|
txtTableName.value |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.tables = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
}) |
||||||
|
}, |
||||||
|
selectTable(item) { |
||||||
|
this.isSelectTable = item |
||||||
|
}, |
||||||
|
importEntitySubmit: function () { |
||||||
|
this.formData.MAPPING_TABLE = this.isSelectTable.Name |
||||||
|
btnImportEntityClose.click() |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
@ -0,0 +1,445 @@ |
|||||||
|
@@master_page.html |
||||||
|
<link |
||||||
|
href="css/page_table_list.css" |
||||||
|
rel="stylesheet" |
||||||
|
/> |
||||||
|
<div |
||||||
|
id="apibox" |
||||||
|
class="card" |
||||||
|
> |
||||||
|
<div class="search-bar"> |
||||||
|
<form |
||||||
|
id="frmSearach" |
||||||
|
action="lyear_forms_elements.html" |
||||||
|
method="post" |
||||||
|
onsubmit="return false;" |
||||||
|
> |
||||||
|
<div class="form-group"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-md-2"> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
type="text" |
||||||
|
id="systemTable" |
||||||
|
name="example-text-input" |
||||||
|
placeholder="本地表名" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<button |
||||||
|
@click="onSearch()" |
||||||
|
id="btnSearch" |
||||||
|
class="btn btn-secondary" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
onclick="frmSearach.reset()" |
||||||
|
class="btn btn-close m-l-15" |
||||||
|
type="submit" |
||||||
|
> |
||||||
|
清空 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-md-4"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<div class="toolbar-btn-action"> |
||||||
|
<button |
||||||
|
@click="openAddDiv()" |
||||||
|
class="btn btn-primary m-l-15" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
> |
||||||
|
<i class="mdi mdi-plus"></i> 新增 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="card-body"> |
||||||
|
<h5></h5> |
||||||
|
<div class="table-responsive"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr v-if="data && data.Columns && data.Columns.length > 0"> |
||||||
|
<th |
||||||
|
class="mi-w-100" |
||||||
|
v-for="column in data.Columns" |
||||||
|
> |
||||||
|
{{column.ColumnDescription}} |
||||||
|
</th> |
||||||
|
<th>操作</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="data &&data.Data"> |
||||||
|
<tr |
||||||
|
v-if="data.Columns && data.Columns.length > 0" |
||||||
|
v-for="item in data.Data" |
||||||
|
> |
||||||
|
<td v-for="column in data.Columns"> |
||||||
|
{{ item[column.PropertyName] }} |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="table_opt"> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="openEditDiv(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 修改 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="deleteAndConfirm(item)" |
||||||
|
data-target="#divDelBox" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-do-not-disturb"></i> 删除 |
||||||
|
</button> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@@page_control.html |
||||||
|
<div |
||||||
|
class="modal fade" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="gridSystemModalLabel" |
||||||
|
id="gridSystemModal" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<div |
||||||
|
class="modal-dialog" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="exampleModalLabel" |
||||||
|
> |
||||||
|
{{title}} |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<form id="frmEdit"> |
||||||
|
<input |
||||||
|
type="hidden" |
||||||
|
v-model="formData.ID" |
||||||
|
name="ID" |
||||||
|
/> |
||||||
|
<div |
||||||
|
class="form-group" |
||||||
|
style="display: flex; flex-flow: column nowrap; gap: 5px" |
||||||
|
> |
||||||
|
<label |
||||||
|
for="" |
||||||
|
style="text-align: left" |
||||||
|
> |
||||||
|
本地</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表名" |
||||||
|
name="SYSTEM_TABLE_NAME" |
||||||
|
class="form-control" |
||||||
|
v-model="formData.SYSTEM_TABLE_NAME" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表注释" |
||||||
|
v-model="formData.SYSTEM_TABLE_CNNAME" |
||||||
|
name="SYSTEM_TABLE_CNNAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段名" |
||||||
|
v-model="formData.SYSTEM_FIELD" |
||||||
|
name="SYSTEM_FIELD" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段注释" |
||||||
|
required |
||||||
|
v-model="formData.SYSTEM_NAME" |
||||||
|
name="SYSTEM_TABLE_NAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<select |
||||||
|
style="width: 100%" |
||||||
|
v-model="formData.SYSTEM_FIELD_TYPE" |
||||||
|
name="SYSTEM_FIELD_TYPE" |
||||||
|
class="form-control" |
||||||
|
> |
||||||
|
<option |
||||||
|
v-for="(item,index) in dict.filedType" |
||||||
|
:key="index" |
||||||
|
:value="item.VALUE" |
||||||
|
> |
||||||
|
{{item.LABEL}} |
||||||
|
</option> |
||||||
|
</select> |
||||||
|
<input |
||||||
|
v-if="formData.SYSTEM_FIELD_TYPE == 'dict'" |
||||||
|
type="text" |
||||||
|
placeholder="字典名称" |
||||||
|
v-model="formData.SYSTEM_DICT_NAME" |
||||||
|
name="SYSTEM_DICT_NAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div |
||||||
|
class="form-group" |
||||||
|
style="display: flex; flex-flow: column nowrap; gap: 5px" |
||||||
|
> |
||||||
|
<label |
||||||
|
for="" |
||||||
|
style="text-align: left" |
||||||
|
> |
||||||
|
三方 |
||||||
|
</label> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表名" |
||||||
|
v-model="formData.OBJECT_TABLE_NAME" |
||||||
|
name="OBJECT_TABLE_NAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表注释" |
||||||
|
v-model="formData.OBJECT_TABLE_CNNAME" |
||||||
|
name="OBJECT_TABLE_CNNAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段名" |
||||||
|
v-model="formData.INTERFACE_FIELD" |
||||||
|
name="INTERFACE_FIELD" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段注释" |
||||||
|
required |
||||||
|
v-model="formData.INTERFACE_NAME" |
||||||
|
name="INTERFACE_NAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
<select |
||||||
|
style="width: 100%" |
||||||
|
title="字段类型" |
||||||
|
v-model="formData.OBJECT_FIELD_TYPE" |
||||||
|
name="OBJECT_FIELD_TYPE" |
||||||
|
class="form-control" |
||||||
|
> |
||||||
|
<option |
||||||
|
v-for="(item,index) in dict.filedType" |
||||||
|
:key="index" |
||||||
|
:value="item.VALUE" |
||||||
|
> |
||||||
|
{{item.LABEL}} |
||||||
|
</option> |
||||||
|
</select> |
||||||
|
<input |
||||||
|
v-if="formData.OBJECT_FIELD_TYPE == 'dict'" |
||||||
|
type="text" |
||||||
|
placeholder="字典名称" |
||||||
|
v-model="formData.OBJECT_DICT_NAME" |
||||||
|
name="OBJECT_DICT_NAME" |
||||||
|
class="form-control" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnCloseEdit" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="addOrUpdate()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script> |
||||||
|
var vueObj = new Vue({ |
||||||
|
el: '#apibox', |
||||||
|
data: { |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
addTitle: '添加动态接口分类', |
||||||
|
editTitle: '修改态接口分类', |
||||||
|
title: '', |
||||||
|
formData: { |
||||||
|
ID: '', |
||||||
|
SYSTEM_NAME: '', |
||||||
|
SYSTEM_FIELD: '', |
||||||
|
INTERFACE_NAME: '', |
||||||
|
INTERFACE_FIELD: '', |
||||||
|
OBJECT_TABLE_NAME: '', |
||||||
|
OBJECT_TABLE_CNNAME: '', |
||||||
|
SYSTEM_TABLE_CNNAME: '', |
||||||
|
SYSTEM_TABLE_NAME: '', |
||||||
|
SYSTEM_FIELD_TYPE: 'value', |
||||||
|
SYSTEM_DICT_NAME: '', |
||||||
|
OBJECT_FIELD_TYPE: 'value', |
||||||
|
OBJECT_DICT_NAME: '', |
||||||
|
}, |
||||||
|
methodId: '', |
||||||
|
databaseId: 1, |
||||||
|
database: [], |
||||||
|
tables: [], |
||||||
|
isSelectTable: {}, |
||||||
|
dict: { |
||||||
|
filedType: [], |
||||||
|
}, |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.getDictOption() |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
var url = window.location.href |
||||||
|
var methodId = url.substring(url.lastIndexOf('?') + 1) |
||||||
|
this.methodId = methodId |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
fetchData(append) { |
||||||
|
var url = `/std_filed/list` + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDictOption() { |
||||||
|
axios |
||||||
|
.get('/dict_data/simpleList?type=std_filed_type', jwHeader) |
||||||
|
.then(res => { |
||||||
|
this.dict.filedType = res.data |
||||||
|
}) |
||||||
|
}, |
||||||
|
onSearch: function (page) { |
||||||
|
var urlParameters = |
||||||
|
'&' + |
||||||
|
tools.objectToQueryString({ |
||||||
|
systemTable: systemTable.value, |
||||||
|
__pageNumber: page, |
||||||
|
__pageSize: tools.getValue('selPageSize'), |
||||||
|
}) |
||||||
|
this.fetchData(urlParameters) |
||||||
|
}, |
||||||
|
deleteAndConfirm: function (item) { |
||||||
|
if (item == null) { |
||||||
|
if (localStorage.delId == 200100) { |
||||||
|
tools.alert('初始化分类不能删除') |
||||||
|
btnDelClose.click() |
||||||
|
return |
||||||
|
} |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100003/DeleteDynamicInterfaceCategory?IsDeleted=true&Id=' + |
||||||
|
localStorage.delId |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
btnDelClose.click() |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} else { |
||||||
|
localStorage.delId = item.Id |
||||||
|
} |
||||||
|
}, |
||||||
|
openEditDiv: function (item) { |
||||||
|
var urlById = '/std_filed/get?id=' + item.ID |
||||||
|
if (item.ID) { |
||||||
|
this.title = this.editTitle |
||||||
|
axios |
||||||
|
.get(urlById, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.formData = response.data |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
openAddDiv: function (item) { |
||||||
|
this.title = this.addTitle |
||||||
|
this.formData = { |
||||||
|
OBJECT_TYPE: 0, |
||||||
|
PARAMETR_TYPE: 0, |
||||||
|
ASSEMBLY_TYPE: 0, |
||||||
|
METHOD_REF: this.methodId, |
||||||
|
MAPPING_TABLE: '', |
||||||
|
} |
||||||
|
}, |
||||||
|
addOrUpdate: function () { |
||||||
|
var th = this |
||||||
|
var frmId = 'frmEdit' |
||||||
|
var json = this.formData |
||||||
|
var url = json.ID ? '/std_filed/update' : '/std_filed/create' |
||||||
|
this.addOrUpdateSubmit(url, json) |
||||||
|
}, |
||||||
|
addOrUpdateSubmit: function (url, json) { |
||||||
|
var th = this |
||||||
|
axios |
||||||
|
.post(url, json, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
if (response.data == true) { |
||||||
|
frmEdit.reset() |
||||||
|
btnCloseEdit.click() |
||||||
|
} else { |
||||||
|
tools.highlightErrorFields(response.data) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
@ -0,0 +1,243 @@ |
|||||||
|
@@master_page.html |
||||||
|
<div id="app"> |
||||||
|
<section class="app-container"> |
||||||
|
<form |
||||||
|
id="frmSubmit" |
||||||
|
class="form" |
||||||
|
> |
||||||
|
<section |
||||||
|
class="row" |
||||||
|
style="grid-area: a" |
||||||
|
> |
||||||
|
<label for="">本地</label> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表名" |
||||||
|
v-model="formData.SYSTEM_TABLE_NAME" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表注释" |
||||||
|
v-model="formData.SYSTEM_TABLE_CNNAME" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段名" |
||||||
|
v-model="formData.SYSTEM_FIELD" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段注释" |
||||||
|
required |
||||||
|
v-model="formData.SYSTEM_NAME" |
||||||
|
/> |
||||||
|
<select |
||||||
|
style="width: 100px" |
||||||
|
v-model="formData.SYSTEM_FIELD_TYPE" |
||||||
|
> |
||||||
|
<option |
||||||
|
v-for="(item,index) in dict.filedType" |
||||||
|
:key="index" |
||||||
|
:value="item.VALUE" |
||||||
|
> |
||||||
|
{{item.LABEL}} |
||||||
|
</option> |
||||||
|
</select> |
||||||
|
<input |
||||||
|
v-if="formData.SYSTEM_FIELD_TYPE == 'dict'" |
||||||
|
type="text" |
||||||
|
placeholder="字典名称" |
||||||
|
v-model="formData.SYSTEM_DICT_NAME" |
||||||
|
/> |
||||||
|
</section> |
||||||
|
<section |
||||||
|
class="row" |
||||||
|
style="grid-area: b" |
||||||
|
> |
||||||
|
<label for="">三方</label> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表名" |
||||||
|
v-model="formData.OBJECT_TABLE_NAME" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="表注释" |
||||||
|
v-model="formData.OBJECT_TABLE_CNNAME" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段名" |
||||||
|
v-model="formData.INTERFACE_FIELD" |
||||||
|
/> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
placeholder="字段注释" |
||||||
|
required |
||||||
|
v-model="formData.INTERFACE_NAME" |
||||||
|
/> |
||||||
|
<select |
||||||
|
style="width: 100px" |
||||||
|
title="字段类型" |
||||||
|
v-model="formData.OBJECT_FIELD_TYPE" |
||||||
|
> |
||||||
|
<option |
||||||
|
v-for="(item,index) in dict.filedType" |
||||||
|
:key="index" |
||||||
|
:value="item.VALUE" |
||||||
|
> |
||||||
|
{{item.LABEL}} |
||||||
|
</option> |
||||||
|
</select> |
||||||
|
<input |
||||||
|
v-if="formData.OBJECT_FIELD_TYPE == 'dict'" |
||||||
|
type="text" |
||||||
|
placeholder="字典名称" |
||||||
|
v-model="formData.OBJECT_DICT_NAME" |
||||||
|
/> |
||||||
|
</section> |
||||||
|
<section |
||||||
|
class="domain" |
||||||
|
style="grid-area: c" |
||||||
|
> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="save" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
<button>清空</button> |
||||||
|
</section> |
||||||
|
</form> |
||||||
|
|
||||||
|
<section class="list"> |
||||||
|
<section |
||||||
|
v-for="item in data.Data" |
||||||
|
:key="item.id" |
||||||
|
> |
||||||
|
{{item.ID}} |
||||||
|
</section> |
||||||
|
</section> |
||||||
|
|
||||||
|
@@page_control.html |
||||||
|
</section> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script> |
||||||
|
new Vue({ |
||||||
|
el: '#app', |
||||||
|
data() { |
||||||
|
return { |
||||||
|
count: 1, |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
dict: { |
||||||
|
filedType: [], |
||||||
|
}, |
||||||
|
formData: { |
||||||
|
ID: '', |
||||||
|
SYSTEM_NAME: '', |
||||||
|
SYSTEM_FIELD: '', |
||||||
|
INTERFACE_NAME: '', |
||||||
|
INTERFACE_FIELD: '', |
||||||
|
OBJECT_TABLE_NAME: '', |
||||||
|
OBJECT_TABLE_CNNAME: '', |
||||||
|
SYSTEM_TABLE_CNNAME: '', |
||||||
|
SYSTEM_TABLE_NAME: '', |
||||||
|
SYSTEM_FIELD_TYPE: 'value', |
||||||
|
SYSTEM_DICT_NAME: '', |
||||||
|
OBJECT_FIELD_TYPE: 'value', |
||||||
|
OBJECT_DICT_NAME: '', |
||||||
|
}, |
||||||
|
} |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.getDictOption() |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
mounted() {}, |
||||||
|
methods: { |
||||||
|
getDictOption() { |
||||||
|
axios |
||||||
|
.get('/dict_data/simpleList?type=std_filed_type', jwHeader) |
||||||
|
.then(res => { |
||||||
|
this.dict.filedType = res.data |
||||||
|
}) |
||||||
|
}, |
||||||
|
fetchData(append) { |
||||||
|
var url = '/std_filed/list?' + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
save() { |
||||||
|
const data = this.formData |
||||||
|
const url = data.ID ? '/std_filed/update' : '/std_filed/create' |
||||||
|
axios |
||||||
|
.post(url, data, jwHeader) |
||||||
|
.then(response => { |
||||||
|
console.log(response.data) |
||||||
|
this.fetchData('') |
||||||
|
}) |
||||||
|
.catch(error => {}) |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
.app-container { |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 10px; |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
.form { |
||||||
|
padding: 10px; |
||||||
|
display: grid; |
||||||
|
grid-template-rows: repeat(2, 1fr); |
||||||
|
grid-template-columns: auto auto; |
||||||
|
grid-template-areas: 'a c' 'b c'; |
||||||
|
gap: 5px; |
||||||
|
} |
||||||
|
|
||||||
|
.form .row { |
||||||
|
display: flex; |
||||||
|
flex-flow: row nowrap; |
||||||
|
gap: 5px; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
|
||||||
|
.form .domain { |
||||||
|
display: flex; |
||||||
|
flex-flow: row nowrap; |
||||||
|
align-items: end; |
||||||
|
gap: 10px; |
||||||
|
} |
||||||
|
.domain button { |
||||||
|
border: 0; |
||||||
|
padding: 5px 10px; |
||||||
|
background-color: #0029be; |
||||||
|
border-radius: 4px; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.row label { |
||||||
|
margin-bottom: 0; |
||||||
|
font-weight: normal; |
||||||
|
} |
||||||
|
.row input, |
||||||
|
.row select { |
||||||
|
outline: none; |
||||||
|
border: 0; |
||||||
|
padding: 5px 10px; |
||||||
|
background-color: #cccccc88; |
||||||
|
border-radius: 4px; |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,407 @@ |
|||||||
|
@@master_page.html |
||||||
|
<link |
||||||
|
href="css/page_table_list.css" |
||||||
|
rel="stylesheet" |
||||||
|
/> |
||||||
|
<div |
||||||
|
id="apibox" |
||||||
|
class="card" |
||||||
|
> |
||||||
|
<div class="search-bar"> |
||||||
|
<form |
||||||
|
id="frmSearach" |
||||||
|
action="lyear_forms_elements.html" |
||||||
|
method="post" |
||||||
|
onsubmit="return false;" |
||||||
|
> |
||||||
|
<div class="form-group"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-md-2"> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
type="text" |
||||||
|
id="txtSearch" |
||||||
|
name="example-text-input" |
||||||
|
placeholder="方法名称" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<button |
||||||
|
@click="onSearch()" |
||||||
|
id="btnSearch" |
||||||
|
class="btn btn-secondary" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
onclick="frmSearach.reset()" |
||||||
|
class="btn btn-close m-l-15" |
||||||
|
type="submit" |
||||||
|
> |
||||||
|
清空 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-md-4"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<div class="toolbar-btn-action"> |
||||||
|
<button |
||||||
|
@click="openAddDiv()" |
||||||
|
class="btn btn-primary m-l-15" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
> |
||||||
|
<i class="mdi mdi-plus"></i> 新增 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="card-body"> |
||||||
|
<h5></h5> |
||||||
|
<div class="table-responsive"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr v-if="data && data.Columns && data.Columns.length > 0"> |
||||||
|
<th |
||||||
|
class="mi-w-100" |
||||||
|
v-for="column in data.Columns" |
||||||
|
> |
||||||
|
{{column.ColumnDescription}} |
||||||
|
</th> |
||||||
|
<th>操作</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="data &&data.Data"> |
||||||
|
<tr |
||||||
|
v-if="data.Columns && data.Columns.length > 0" |
||||||
|
v-for="item in data.Data" |
||||||
|
> |
||||||
|
<td |
||||||
|
v-for="column in data.Columns" |
||||||
|
style="text-align: center" |
||||||
|
> |
||||||
|
<span |
||||||
|
v-if="['SAVE_INPUT','SAVE_OUTPUT'].includes(column.PropertyName)" |
||||||
|
> |
||||||
|
{{formatter(item[column.PropertyName])}} |
||||||
|
</span> |
||||||
|
<span v-else> {{ item[column.PropertyName] }} </span> |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="table_opt"> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="openEditDiv(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 修改 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="deleteAndConfirm(item)" |
||||||
|
data-target="#divDelBox" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-do-not-disturb"></i> 删除 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
@click="append(item)" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 配置对象 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
@click="appendFiled(item)" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-folder-google-drive"></i> 配置字段 |
||||||
|
</button> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@@page_control.html |
||||||
|
<div |
||||||
|
class="modal fade" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="gridSystemModalLabel" |
||||||
|
id="gridSystemModal" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<div |
||||||
|
class="modal-dialog" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="exampleModalLabel" |
||||||
|
> |
||||||
|
{{title}} |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<form id="frmEdit"> |
||||||
|
<input |
||||||
|
type="hidden" |
||||||
|
v-model="formData.METHOD_ID" |
||||||
|
name="METHOD_ID" |
||||||
|
/> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="recipient-name" |
||||||
|
class="control-label" |
||||||
|
>方法名称:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
v-model="formData.METHOD_NAME" |
||||||
|
name="METHOD_NAME" |
||||||
|
class="form-control" |
||||||
|
id="recipient-name" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>访问路径:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.METHOD_VALUE" |
||||||
|
name="METHOD_VALUE" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>保存入参:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice2" |
||||||
|
name="SAVE_INPUT" |
||||||
|
value="0" |
||||||
|
v-model="formData.SAVE_INPUT" |
||||||
|
checked |
||||||
|
/> |
||||||
|
<label for="contactChoice2">否</label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice1" |
||||||
|
name="SAVE_INPUT" |
||||||
|
value="1" |
||||||
|
v-model="formData.SAVE_INPUT" |
||||||
|
/> |
||||||
|
<label for="contactChoice1">是</label> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>保存出参:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice2" |
||||||
|
name="SAVE_OUTPUT" |
||||||
|
value="0" |
||||||
|
v-model="formData.SAVE_OUTPUT" |
||||||
|
checked |
||||||
|
/> |
||||||
|
<label for="contactChoice2">否</label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
id="contactChoice1" |
||||||
|
name="SAVE_OUTPUT" |
||||||
|
value="1" |
||||||
|
v-model="formData.SAVE_OUTPUT" |
||||||
|
/> |
||||||
|
<label for="contactChoice1">是</label> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>所属对接对象:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.BIND_OBJECT" |
||||||
|
name="BIND_OBJECT" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnCloseEdit" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="addOrUpdate()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script> |
||||||
|
var vueObj = new Vue({ |
||||||
|
el: '#apibox', |
||||||
|
data: { |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
addTitle: '添加动态接口分类', |
||||||
|
editTitle: '修改态接口分类', |
||||||
|
title: '', |
||||||
|
formData: {}, |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
fetchData(append) { |
||||||
|
var url = '/std_method/list?' + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
onSearch: function (page) { |
||||||
|
var urlParameters = |
||||||
|
'&' + |
||||||
|
tools.objectToQueryString({ |
||||||
|
title: txtSearch.value, |
||||||
|
__pageNumber: page, |
||||||
|
__pageSize: tools.getValue('selPageSize'), |
||||||
|
}) |
||||||
|
this.fetchData(urlParameters) |
||||||
|
}, |
||||||
|
deleteAndConfirm: function (item) { |
||||||
|
if (item == null) { |
||||||
|
if (localStorage.delId == 200100) { |
||||||
|
tools.alert('初始化分类不能删除') |
||||||
|
btnDelClose.click() |
||||||
|
return |
||||||
|
} |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100003/DeleteDynamicInterfaceCategory?IsDeleted=true&Id=' + |
||||||
|
localStorage.delId |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
btnDelClose.click() |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} else { |
||||||
|
localStorage.delId = item.Id |
||||||
|
} |
||||||
|
}, |
||||||
|
openEditDiv: function (item) { |
||||||
|
console.log(item) |
||||||
|
var urlById = '/std_method/get?METHOD_ID=' + item.METHOD_ID |
||||||
|
if (item.METHOD_ID) { |
||||||
|
this.title = this.editTitle |
||||||
|
axios |
||||||
|
.get(urlById, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.formData = response.data |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
openAddDiv: function (item) { |
||||||
|
this.title = this.addTitle |
||||||
|
this.formData = { |
||||||
|
SAVE_INPUT: 0, |
||||||
|
SAVE_OUTPUT: 0, |
||||||
|
} |
||||||
|
}, |
||||||
|
addOrUpdate: function () { |
||||||
|
var th = this |
||||||
|
var frmId = 'frmEdit' |
||||||
|
var json = this.formData |
||||||
|
var url = json.METHOD_ID ? '/std_method/update' : '/std_method/create' |
||||||
|
this.addOrUpdateSubmit(url, json) |
||||||
|
}, |
||||||
|
addOrUpdateSubmit: function (url, json) { |
||||||
|
if (url == '/std_method/create') { |
||||||
|
// 生成uuid |
||||||
|
const uuid = crypto.randomUUID().replace(/-/g, '') |
||||||
|
json.METHOD_ID = uuid |
||||||
|
} |
||||||
|
var th = this |
||||||
|
axios |
||||||
|
.post(url, json, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
if (response.data == true) { |
||||||
|
frmEdit.reset() |
||||||
|
btnCloseEdit.click() |
||||||
|
} else { |
||||||
|
tools.highlightErrorFields(response.data) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
formatter(v) { |
||||||
|
return !v ? '否' : '是' |
||||||
|
}, |
||||||
|
append(item) { |
||||||
|
window.location.href = `./std_entity_config.html?${item.METHOD_ID}` |
||||||
|
}, |
||||||
|
appendFiled(item) { |
||||||
|
window.location.href = `./std_filed_map.html?type=${item.PARAMETR_TYPE}&table=${item.MAPPING_TABLE}` |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
@ -0,0 +1,333 @@ |
|||||||
|
@@master_page.html |
||||||
|
<link |
||||||
|
href="css/page_table_list.css" |
||||||
|
rel="stylesheet" |
||||||
|
/> |
||||||
|
<div |
||||||
|
id="apibox" |
||||||
|
class="card" |
||||||
|
> |
||||||
|
<div class="search-bar"> |
||||||
|
<form |
||||||
|
id="frmSearach" |
||||||
|
action="lyear_forms_elements.html" |
||||||
|
method="post" |
||||||
|
onsubmit="return false;" |
||||||
|
> |
||||||
|
<div class="form-group"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-md-1"> |
||||||
|
<label class="form-control">字典名称:</label> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
type="text" |
||||||
|
id="txtSearch" |
||||||
|
name="example-text-input" |
||||||
|
placeholder="字典名称" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<button |
||||||
|
@click="onSearch()" |
||||||
|
id="btnSearch" |
||||||
|
class="btn btn-secondary" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
onclick="frmSearach.reset()" |
||||||
|
class="btn btn-close m-l-15" |
||||||
|
type="submit" |
||||||
|
> |
||||||
|
清空 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-md-4"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<div class="toolbar-btn-action"> |
||||||
|
<button |
||||||
|
@click="openAddDiv()" |
||||||
|
class="btn btn-primary m-l-15" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
> |
||||||
|
<i class="mdi mdi-plus"></i> 新增 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="card-body"> |
||||||
|
<h5></h5> |
||||||
|
<div class="table-responsive"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr v-if="data && data.Columns && data.Columns.length > 0"> |
||||||
|
<th |
||||||
|
class="mi-w-100" |
||||||
|
v-for="column in data.Columns" |
||||||
|
> |
||||||
|
{{column.ColumnDescription}} |
||||||
|
</th> |
||||||
|
<th>操作</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="data &&data.Data"> |
||||||
|
<tr |
||||||
|
v-if="data.Columns && data.Columns.length > 0" |
||||||
|
v-for="item in data.Data" |
||||||
|
> |
||||||
|
<td v-for="column in data.Columns"> |
||||||
|
{{ item[column.PropertyName] }} |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="table_opt"> |
||||||
|
<button |
||||||
|
@click="appendData(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
> |
||||||
|
<i class="mdi mdi-database"></i> 数据 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="openEditDiv(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 修改 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="deleteAndConfirm(item)" |
||||||
|
data-target="#divDelBox" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-do-not-disturb"></i> 删除 |
||||||
|
</button> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@@page_control.html |
||||||
|
<div |
||||||
|
class="modal fade" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="gridSystemModalLabel" |
||||||
|
id="gridSystemModal" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<div |
||||||
|
class="modal-dialog" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="exampleModalLabel" |
||||||
|
> |
||||||
|
{{title}} |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<form id="frmEdit"> |
||||||
|
<input |
||||||
|
type="hidden" |
||||||
|
v-model="formData.ID" |
||||||
|
name="Id" |
||||||
|
/> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="recipient-name" |
||||||
|
class="control-label" |
||||||
|
>名称:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
v-model="formData.NAME" |
||||||
|
name="Name" |
||||||
|
class="form-control" |
||||||
|
id="recipient-name" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>类型:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.TYPE" |
||||||
|
name="Description" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>备注:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.REMARK" |
||||||
|
name="Description" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnCloseEdit" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="addOrUpdate()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script> |
||||||
|
var vueObj = new Vue({ |
||||||
|
el: '#apibox', |
||||||
|
data: { |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
addTitle: '添加动态接口分类', |
||||||
|
editTitle: '修改态接口分类', |
||||||
|
title: '', |
||||||
|
formData: {}, |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
fetchData(append) { |
||||||
|
var url = '/dict/list?' + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
onSearch: function (page) { |
||||||
|
var urlParameters = |
||||||
|
'&' + |
||||||
|
tools.objectToQueryString({ |
||||||
|
title: txtSearch.value, |
||||||
|
__pageNumber: page, |
||||||
|
__pageSize: tools.getValue('selPageSize'), |
||||||
|
}) |
||||||
|
this.fetchData(urlParameters) |
||||||
|
}, |
||||||
|
deleteAndConfirm: function (item) { |
||||||
|
if (item == null) { |
||||||
|
if (localStorage.delId == 200100) { |
||||||
|
tools.alert('初始化分类不能删除') |
||||||
|
btnDelClose.click() |
||||||
|
return |
||||||
|
} |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100003/DeleteDynamicInterfaceCategory?IsDeleted=true&Id=' + |
||||||
|
localStorage.delId |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
btnDelClose.click() |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} else { |
||||||
|
localStorage.delId = item.Id |
||||||
|
} |
||||||
|
}, |
||||||
|
openEditDiv: function (item) { |
||||||
|
var urlById = '/dict/get?id=' + item.ID |
||||||
|
if (item.ID) { |
||||||
|
this.title = this.editTitle |
||||||
|
axios |
||||||
|
.get(urlById, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.formData = response.data |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
openAddDiv: function (item) { |
||||||
|
this.title = this.addTitle |
||||||
|
this.formData = {} |
||||||
|
}, |
||||||
|
addOrUpdate: function () { |
||||||
|
var th = this |
||||||
|
var frmId = 'frmEdit' |
||||||
|
var json = this.formData |
||||||
|
var url = json.ID ? '/dict/update' : '/dict/create' |
||||||
|
this.addOrUpdateSubmit(url, json) |
||||||
|
}, |
||||||
|
addOrUpdateSubmit: function (url, json) { |
||||||
|
var th = this |
||||||
|
axios |
||||||
|
.post(url, json, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
if (response.data) { |
||||||
|
frmEdit.reset() |
||||||
|
btnCloseEdit.click() |
||||||
|
} else { |
||||||
|
tools.highlightErrorFields(response.data) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
appendData(item) { |
||||||
|
// 跳转到其他html页面 |
||||||
|
window.location.href = `./sys_dict_data.html?type=${item.TYPE}` |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
@ -0,0 +1,341 @@ |
|||||||
|
@@master_page.html |
||||||
|
<link |
||||||
|
href="css/page_table_list.css" |
||||||
|
rel="stylesheet" |
||||||
|
/> |
||||||
|
<div |
||||||
|
id="apibox" |
||||||
|
class="card" |
||||||
|
> |
||||||
|
<div class="search-bar"> |
||||||
|
<form |
||||||
|
id="frmSearach" |
||||||
|
action="lyear_forms_elements.html" |
||||||
|
method="post" |
||||||
|
onsubmit="return false;" |
||||||
|
> |
||||||
|
<div class="form-group"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-md-1"> |
||||||
|
<label class="form-control">字典标签:</label> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
type="text" |
||||||
|
id="txtSearch" |
||||||
|
name="example-text-input" |
||||||
|
placeholder="字典标签" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="col-md-3"> |
||||||
|
<button |
||||||
|
@click="onSearch()" |
||||||
|
id="btnSearch" |
||||||
|
class="btn btn-secondary" |
||||||
|
> |
||||||
|
<i class="mdi mdi-magnify"></i>搜索 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
onclick="frmSearach.reset()" |
||||||
|
class="btn btn-close m-l-15" |
||||||
|
type="submit" |
||||||
|
> |
||||||
|
清空 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
<div class="col-md-4"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<div class="toolbar-btn-action"> |
||||||
|
<button |
||||||
|
@click="openAddDiv()" |
||||||
|
class="btn btn-primary m-l-15" |
||||||
|
data-toggle="modal" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
> |
||||||
|
<i class="mdi mdi-plus"></i> 新增 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="card-body"> |
||||||
|
<h5></h5> |
||||||
|
<div class="table-responsive"> |
||||||
|
<table class="table table-bordered"> |
||||||
|
<thead> |
||||||
|
<tr v-if="data && data.Columns && data.Columns.length > 0"> |
||||||
|
<th |
||||||
|
class="mi-w-100" |
||||||
|
v-for="column in data.Columns" |
||||||
|
> |
||||||
|
{{column.ColumnDescription}} |
||||||
|
</th> |
||||||
|
<th>操作</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody v-if="data &&data.Data"> |
||||||
|
<tr |
||||||
|
v-if="data.Columns && data.Columns.length > 0" |
||||||
|
v-for="item in data.Data" |
||||||
|
> |
||||||
|
<td v-for="column in data.Columns"> |
||||||
|
{{ item[column.PropertyName] }} |
||||||
|
</td> |
||||||
|
|
||||||
|
<td class="table_opt"> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="openEditDiv(item)" |
||||||
|
data-target="#gridSystemModal" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-lead-pencil"></i> 修改 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
data-toggle="modal" |
||||||
|
@click="deleteAndConfirm(item)" |
||||||
|
data-target="#divDelBox" |
||||||
|
class="btn btn-link" |
||||||
|
type="button" |
||||||
|
> |
||||||
|
<i class="mdi mdi-do-not-disturb"></i> 删除 |
||||||
|
</button> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
@@page_control.html |
||||||
|
<div |
||||||
|
class="modal fade" |
||||||
|
tabindex="-1" |
||||||
|
role="dialog" |
||||||
|
aria-labelledby="gridSystemModalLabel" |
||||||
|
id="gridSystemModal" |
||||||
|
style="display: none" |
||||||
|
> |
||||||
|
<div |
||||||
|
class="modal-dialog" |
||||||
|
role="document" |
||||||
|
> |
||||||
|
<div class="modal-content"> |
||||||
|
<div class="modal-header"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
class="close" |
||||||
|
data-dismiss="modal" |
||||||
|
aria-label="Close" |
||||||
|
> |
||||||
|
<span aria-hidden="true">×</span> |
||||||
|
</button> |
||||||
|
<h4 |
||||||
|
class="modal-title" |
||||||
|
id="exampleModalLabel" |
||||||
|
> |
||||||
|
{{title}} |
||||||
|
</h4> |
||||||
|
</div> |
||||||
|
<div class="modal-body"> |
||||||
|
<form id="frmEdit"> |
||||||
|
<input |
||||||
|
type="hidden" |
||||||
|
v-model="formData.ID" |
||||||
|
name="Id" |
||||||
|
/> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="recipient-name" |
||||||
|
class="control-label" |
||||||
|
>字典标签:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
type="text" |
||||||
|
v-model="formData.LABEL" |
||||||
|
name="LABEL" |
||||||
|
class="form-control" |
||||||
|
id="recipient-name" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>字典值:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.VALUE" |
||||||
|
name="VALUE" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>排序:</label |
||||||
|
> |
||||||
|
<input |
||||||
|
class="form-control" |
||||||
|
v-model="formData.SORT" |
||||||
|
name="SORT" |
||||||
|
type="number" |
||||||
|
id="message-text" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<label |
||||||
|
for="message-text" |
||||||
|
class="control-label" |
||||||
|
>备注:</label |
||||||
|
> |
||||||
|
<textarea |
||||||
|
class="form-control" |
||||||
|
v-model="formData.REMARK" |
||||||
|
name="Description" |
||||||
|
id="message-text" |
||||||
|
></textarea> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="modal-footer"> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
id="btnCloseEdit" |
||||||
|
class="btn btn-default" |
||||||
|
data-dismiss="modal" |
||||||
|
> |
||||||
|
关闭 |
||||||
|
</button> |
||||||
|
<button |
||||||
|
type="button" |
||||||
|
@click="addOrUpdate()" |
||||||
|
class="btn btn-primary" |
||||||
|
> |
||||||
|
保存 |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<script> |
||||||
|
var vueObj = new Vue({ |
||||||
|
el: '#apibox', |
||||||
|
data: { |
||||||
|
data: null, |
||||||
|
error: null, |
||||||
|
addTitle: '添加动态接口分类', |
||||||
|
editTitle: '修改态接口分类', |
||||||
|
title: '', |
||||||
|
formData: {}, |
||||||
|
dictType: '', |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
var url = window.location.href |
||||||
|
var dictType = url.substring(url.lastIndexOf('=') + 1) |
||||||
|
this.dictType = dictType |
||||||
|
this.fetchData('') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
fetchData(append) { |
||||||
|
var url = `/dict_data/list?type=${this.dictType}` + append |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
onSearch: function (page) { |
||||||
|
var urlParameters = |
||||||
|
'&' + |
||||||
|
tools.objectToQueryString({ |
||||||
|
title: txtSearch.value, |
||||||
|
__pageNumber: page, |
||||||
|
__pageSize: tools.getValue('selPageSize'), |
||||||
|
}) |
||||||
|
this.fetchData(urlParameters) |
||||||
|
}, |
||||||
|
deleteAndConfirm: function (item) { |
||||||
|
if (item == null) { |
||||||
|
if (localStorage.delId == 200100) { |
||||||
|
tools.alert('初始化分类不能删除') |
||||||
|
btnDelClose.click() |
||||||
|
return |
||||||
|
} |
||||||
|
var url = |
||||||
|
'/PrivateReZeroRoute/100003/DeleteDynamicInterfaceCategory?IsDeleted=true&Id=' + |
||||||
|
localStorage.delId |
||||||
|
axios |
||||||
|
.get(url, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.data = response.data |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
btnDelClose.click() |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} else { |
||||||
|
localStorage.delId = item.Id |
||||||
|
} |
||||||
|
}, |
||||||
|
openEditDiv: function (item) { |
||||||
|
var urlById = '/dict_data/get?id=' + item.ID |
||||||
|
if (item.ID) { |
||||||
|
this.title = this.editTitle |
||||||
|
axios |
||||||
|
.get(urlById, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.formData = response.data |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
openAddDiv: function (item) { |
||||||
|
this.title = this.addTitle |
||||||
|
this.formData = {} |
||||||
|
}, |
||||||
|
addOrUpdate: function () { |
||||||
|
var th = this |
||||||
|
var frmId = 'frmEdit' |
||||||
|
var json = this.formData |
||||||
|
var url = json.ID ? '/dict_data/update' : '/dict_data/create' |
||||||
|
json.DICT_TYPE = this.dictType |
||||||
|
this.addOrUpdateSubmit(url, json) |
||||||
|
}, |
||||||
|
addOrUpdateSubmit: function (url, json) { |
||||||
|
var th = this |
||||||
|
axios |
||||||
|
.post(url, json, jwHeader) |
||||||
|
.then(response => { |
||||||
|
this.error = null |
||||||
|
this.onSearch() |
||||||
|
if (response.data) { |
||||||
|
frmEdit.reset() |
||||||
|
btnCloseEdit.click() |
||||||
|
} else { |
||||||
|
tools.highlightErrorFields(response.data) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(error => { |
||||||
|
this.error = error.message |
||||||
|
this.data = null |
||||||
|
}) |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
Loading…
Reference in new issue