You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
243 lines
4.4 KiB
243 lines
4.4 KiB
@@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>
|
|
|