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

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