DX 6 days ago
parent
commit
b7971c588b
  1. 9
      SuperAPI/wwwroot/rezero/default_ui/css/page_table_list.css
  2. 534
      SuperAPI/wwwroot/rezero/default_ui/std_entity_config.html
  3. 445
      SuperAPI/wwwroot/rezero/default_ui/std_filed_map.html
  4. 243
      SuperAPI/wwwroot/rezero/default_ui/std_filed_map_old.html
  5. 407
      SuperAPI/wwwroot/rezero/default_ui/std_method_config.html
  6. 333
      SuperAPI/wwwroot/rezero/default_ui/sys_dict.html
  7. 341
      SuperAPI/wwwroot/rezero/default_ui/sys_dict_data.html
  8. 297
      SuperAPI/wwwroot/rezero/default_ui/template/master_page.html

9
SuperAPI/wwwroot/rezero/default_ui/css/page_table_list.css

@ -3,13 +3,14 @@
}
.table_opt {
text-align: center;
width: 250px;
display: flex;
flex-flow: row nowrap;
justify-content: center;
align-items: center;
}
.table_opt button {
max-width: 80px;
margin: 0 10px;
flex: 1;
}
.table_opt2 {

534
SuperAPI/wwwroot/rezero/default_ui/std_entity_config.html

@ -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>

445
SuperAPI/wwwroot/rezero/default_ui/std_filed_map.html

@ -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>

243
SuperAPI/wwwroot/rezero/default_ui/std_filed_map_old.html

@ -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>

407
SuperAPI/wwwroot/rezero/default_ui/std_method_config.html

@ -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>

333
SuperAPI/wwwroot/rezero/default_ui/sys_dict.html

@ -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>

341
SuperAPI/wwwroot/rezero/default_ui/sys_dict_data.html

@ -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>

297
SuperAPI/wwwroot/rezero/default_ui/template/master_page.html

@ -1,42 +1,80 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<title>从零开始后台管理系统 @@version</title>
<link rel="icon" href="favicon.ico" type="image/ico">
<meta name="keywords" content="从零开始后台管理系统 @@version">
<meta name="description" content="从零开始后台管理系统 @@version">
<meta name="author" content="yinqi">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/materialdesignicons.min.css" rel="stylesheet">
<link href="css/style.min.css" rel="stylesheet">
<link href="css/master.css?v=@@version" rel="stylesheet" />
<link href="css/master-dark.css?v=@@version" rel="stylesheet" />
<link
rel="icon"
href="favicon.ico"
type="image/ico"
/>
<meta
name="keywords"
content="从零开始后台管理系统 @@version"
/>
<meta
name="description"
content="从零开始后台管理系统 @@version"
/>
<meta
name="author"
content="yinqi"
/>
<link
href="css/bootstrap.min.css"
rel="stylesheet"
/>
<link
href="css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="css/style.min.css"
rel="stylesheet"
/>
<link
href="css/master.css?v=@@version"
rel="stylesheet"
/>
<link
href="css/master-dark.css?v=@@version"
rel="stylesheet"
/>
<script src="js/vue.js"></script>
<script src="js/axios.min.js"></script>
<script src="js/tools.js?v=@@version"></script>
<script>
var jwHeader =
{
var jwHeader = {
headers: {
"Authorization": 'Bearer ' + localStorage.getItem('@@authorizationLocalStorageName')
Authorization:
'Bearer ' + localStorage.getItem('@@authorizationLocalStorageName'),
},
}
}
tools.checkAuthorization();
tools.checkAuthorization()
</script>
</head>
<body data-theme="default">
</head>
<body data-theme="default">
<div class="lyear-layout-web">
<div class="lyear-layout-container">
<!--左侧导航-->
<aside class="lyear-layout-sidebar">
<!-- logo -->
<div id="logo" class="sidebar-header">
<a href="index.html"><img src="images/logo-sidebar.png" title="LightYear" alt="LightYear" /></a>
<div
id="logo"
class="sidebar-header"
>
<a href="index.html"
><img
src="images/logo-sidebar.png"
title="LightYear"
alt="LightYear"
/></a>
</div>
<div class="lyear-layout-sidebar-scroll">
<nav class="sidebar-main">
<ul class="nav nav-drawer">
@@left-menu
@ -47,10 +85,8 @@
<!--End 左侧导航-->
<!--头部信息-->
<header class="lyear-layout-header">
<nav class="navbar navbar-default">
<div class="topbar">
<div class="topbar-left">
<div class="lyear-aside-toggler">
<span class="lyear-toggler-bar"></span>
@ -61,29 +97,76 @@
</div>
<ul class="topbar-right">
<li id="liUser" class="dropdown dropdown-profile">
<a href="javascript:void(0)" data-toggle="dropdown">
<img class="img-avatar img-avatar-48 m-r-10" :src="userInfo.Avatar" onerror="this.src='images/users/avatar.jpg';" :alt="userInfo.UserName" />
<li
id="liUser"
class="dropdown dropdown-profile"
>
<a
href="javascript:void(0)"
data-toggle="dropdown"
>
<img
class="img-avatar img-avatar-48 m-r-10"
:src="userInfo.Avatar"
onerror="this.src='images/users/avatar.jpg';"
:alt="userInfo.UserName"
/>
<span> {{userInfo.UserName}} </span>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li> <a href="/rezero/my_user.html"><i class="mdi mdi-lock-outline"></i> 修改密码</a> </li>
<li>
<a href="/rezero/my_user.html"
><i class="mdi mdi-lock-outline"></i> 修改密码</a
>
</li>
<li class="divider"></li>
<li> <a onclick="localStorage['@@authorizationLocalStorageName'] = null; window.location.href = '/rezero/login.html';"><i class="mdi mdi-logout-variant"></i> 退出登录</a> </li>
<li>
<a
onclick="localStorage['@@authorizationLocalStorageName'] = null; window.location.href = '/rezero/login.html';"
><i class="mdi mdi-logout-variant"></i> 退出登录</a
>
</li>
</ul>
</li>
<li class="dropdown dropdown-skin open">
<span data-toggle="dropdown" class="icon-palette" aria-expanded="true"><i class="mdi mdi-palette"></i></span>
<ul class="dropdown-menu dropdown-menu-right" data-stoppropagation="true">
<span
data-toggle="dropdown"
class="icon-palette"
aria-expanded="true"
><i class="mdi mdi-palette"></i
></span>
<ul
class="dropdown-menu dropdown-menu-right"
data-stoppropagation="true"
>
<li class="drop-title"><p>主题</p></li>
<li class="drop-skin-li clearfix">
<span class="inverse">
<input onclick="localStorage.BgColorType = 0;" type="radio" name="site_theme" value="default" id="site_theme_1" checked="">
<label onclick="localStorage.BgColorType = 0;" for="site_theme_1"></label>
<input
onclick="localStorage.BgColorType = 0;"
type="radio"
name="site_theme"
value="default"
id="site_theme_1"
checked=""
/>
<label
onclick="localStorage.BgColorType = 0;"
for="site_theme_1"
></label>
</span>
<span>
<input onclick="localStorage.BgColorType = 1;" type="radio" name="site_theme" value="dark" id="site_theme_2">
<label onclick="localStorage.BgColorType = 1;" for="site_theme_2"></label>
<input
onclick="localStorage.BgColorType = 1;"
type="radio"
name="site_theme"
value="dark"
id="site_theme_2"
/>
<label
onclick="localStorage.BgColorType = 1;"
for="site_theme_2"
></label>
</span>
<!--<span>
<input type="radio" name="site_theme" value="translucent" id="site_theme_3">
@ -93,63 +176,144 @@
</ul>
</li>
</ul>
</div>
</nav>
</header>
<!--End 头部信息-->
<!--页面主要内容-->
<main class="lyear-layout-content">
<div class="container-fluid">
@@lyear-layout-content
</div>
<div class="container-fluid">@@lyear-layout-content</div>
</main>
<!--End 页面主要内容-->
</div>
</div>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/perfect-scrollbar.min.js"></script>
<script type="text/javascript" src="js/main.min.js"></script>
<script
type="text/javascript"
src="js/jquery.min.js"
></script>
<script
type="text/javascript"
src="js/bootstrap.min.js"
></script>
<script
type="text/javascript"
src="js/perfect-scrollbar.min.js"
></script>
<script
type="text/javascript"
src="js/main.min.js"
></script>
<!--删除提醒-->
<div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" id="divDelBox" style="display: none;">
<div class="modal-dialog modal-sm" role="document">
<div
class="modal fade bs-example-modal-sm"
tabindex="-1"
role="dialog"
aria-labelledby="mySmallModalLabel"
id="divDelBox"
style="display: none"
>
<div
class="modal-dialog modal-sm"
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">
是否删除该记录?
<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>
<div class="modal-footer">
<button type="button" id="btnDelClose" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" onclick="vueObj.deleteAndConfirm(null)" class="btn btn-primary">确定</button>
<button
type="button"
id="btnDelClose"
class="btn btn-default"
data-dismiss="modal"
>
关闭
</button>
<button
type="button"
onclick="vueObj.deleteAndConfirm(null)"
class="btn btn-primary"
>
确定
</button>
</div>
</div>
</div>
</div>
<!--alert弹出框-->
<div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" id="divAlertRoot" style="display: none;">
<button id="btnAlert" type="button" style="display:none" class="btn btn-primary" data-toggle="modal" data-target="#divAlertRoot"></button>
<div class="modal-dialog modal-sm" role="document">
<div
class="modal fade bs-example-modal-sm"
tabindex="-1"
role="dialog"
aria-labelledby="mySmallModalLabel"
id="divAlertRoot"
style="display: none"
>
<button
id="btnAlert"
type="button"
style="display: none"
class="btn btn-primary"
data-toggle="modal"
data-target="#divAlertRoot"
></button>
<div
class="modal-dialog modal-sm"
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 id="divAlertBody" class="modal-body">
<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
id="divAlertBody"
class="modal-body"
></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">确定</button>
<button
type="button"
class="btn btn-default"
data-dismiss="modal"
>
关闭
</button>
<button
type="button"
class="btn btn-primary"
data-dismiss="modal"
>
确定
</button>
</div>
</div>
</div>
@ -162,6 +326,5 @@
</div>
</div>
<script src="js/init.js?v=@@version"></script>
</body>
</body>
</html>

Loading…
Cancel
Save