Commit cd867a2b authored by JingChao's avatar JingChao

layout

parent e895f1e7
......@@ -532,6 +532,9 @@ showActionSheetButton() {
```
### Note
hls-easy-ui#0.0.5
[添加动态配置组件 h-layout](/packages/components/HLayout/README.md)
hls-easy-ui#0.0.4
[添加懒加载组建](https://github.com/hilongjw/vue-lazyload)
......
动态配置功能
目前支持配置 form、s-tab、button 以及底部固定位置的按钮
```html
/**
* @Author think
* @Date 2019-07-16 20:00
*/
<template>
<h-view class="form">
<h-header>
<div slot="left" class="h-header-btn" @click="$hlsExit()">
<i class="ion-ios-arrow-back"/>
</div>
<div slot="center">From</div>
<div slot="right" class="h-header-btn">右边</div>
</h-header>
<h-layout
v-if="layoutShow"
:layout-data="layoutData" :show-form-title="showFormTitle" :show-btn-divider="true"
:show-tab-divider="true" :formData="data" v-model="data" @tabClick="tabClick"
@showSelect="showSelect" @showTime="showTime" @switchClick="switchClick" @filedClick="filedClick"
@btnClick="btnClick"/>
</h-view>
</template>
```
```javascript
<script>
import layoutData from './layout.json'
export default {
name: 'Form',
data () {
return {
tabIndex: 1,
showFormTitle: true,
layoutData: [],
layoutShow: false,
data: {
contract: {
postion: '01',
postion_n: '技术顾问',
enable_flag: false,
},
},
postionList: [
{code: '01', code_name: '技术顾问'},
{code: '02', code_name: '技术经理'},
{code: '03', code_name: '项目经理'},
],
}
},
created () {
let vm = this
/* axios.get('http://leafservice.hand-china.com/r/api/get/layoutCode?layoutCode=CON_QURERY', {
header: {'Content-Type': 'application/json',
'Authorization': 'bearer SRHJVdrftyGUYguyhiHiuiojmgrrcgv' },
}).then(res => {
vm.layoutData = res.rows
vm.layoutShow = true
}) */
setTimeout(() => {
vm.layoutData = layoutData
vm.layoutShow = true
}, 100)
},
methods: {
/**
* tab的点击事件
* @param index
*/
tabClick (index) {
this.tabIndex = index
},
showPostion (configCode, filedCode) {
let vm = this
vm.hlsPopup.selectList({
list: vm.postionList,
code: filedCode,
object: vm.data[configCode],
returnItem (index) {
vm.data[configCode][filedCode] = vm.postionList[index].code
vm.data[configCode][filedCode + '_n'] = vm.postionList[index].code_name
},
})
},
/**
* 下拉框点击事件
* @param configCode
* @param filedCode
*/
showSelect (configCode, filedCode) {
let vm = this
switch (filedCode) {
case 'postion':
vm.showPostion(configCode, filedCode)
break
default:
}
},
showOrderDate (configCode, filedCode) {
let vm = this
vm.hlsPopup.showTime({
callback (time) {
vm.data[configCode][filedCode] = time
},
})
},
/**
* 事件选择事件
* @param configCode
* @param filedCode
*/
showTime (configCode, filedCode) {
let vm = this
switch (filedCode) {
case 'order_date':
vm.showOrderDate(configCode, filedCode)
break
default:
}
},
/**
* switch的点开事件
* @param configCode
* @param filedCode
* @param value
*/
switchClick (configCode, filedCode, value) {
debugger
},
/**
* 其他字端的点击事件
* @param configCode
* @param filedCode
*/
filedClick (configCode, filedCode) {
debugger
},
/**
* 按钮点击事件
* @param btn
*/
btnClick (btn) {
console.log(JSON.stringify(this.data, '', 2))
if (btn.btnType === 'BottomTab') {
if (btn.btnCode === 'save') {
alert('底部固定按钮的保存')
}
if (btn.btnCode === 'submit') {
alert('底部固定按钮的提交')
}
} if (btn.btnType === 'Button') {
if (btn.btnCode === 'nextBtn') {
alert('按钮继续')
}
}
},
},
}
</script>
```
```less
<style lang="less">
.form {
}
</style>
```
1. 动态布局目前仅仅支持一个 s-tab组件,一个底部按钮bottom-tab 组件
2. 组件名为h-layout,需要在布局查询出来之后再去渲染此组件否则渲染失败
3. 布局的查询在created生命周期函数内查询,查询成功再去渲染组件
4. 应无法在data里面直接set数据,故需在data里面新建data数据对象用于组件解析成功以及数据双向绑定使用
5. 支持在自定义data对象设置默认值,默认值的优先级高于组件定义的默认值
6. 组件使用v-model与formData进行传递data数据实现双向绑定,两者缺一不可
7. 组件中会解析出全部的按钮,每个按钮对应 组件code、按钮code、以及按钮描述。已btns数组反馈给父组件,用于按钮点击事件
8. 所有的下拉框、时间以及按钮的触发逻辑全部交由父组件处理,子组件通知父组件,子组件内不做任何业务处理逻辑
props
* layoutData:组件布局默认数组
* showFormTitle:是否展示form表单上的title,title也可以点击实现form的缩放 默认 true
* showTabDivider:是否显示s-tab的分割线 默认true
* showTabBorder:是否显示s-tab的下边框 默认false
* showBtnDivider:是否底部按钮的分割线 默认true
* formData:组件数据,用于双向绑定
emit
* tabClick s-tab组件切换点击事件 返回当前点击的index
* showSelect 下拉框点开事件 返回布局组件code,字端的code,用于判断是哪个下拉框
* showTime 事件点开事件 返回组件code,字端的code,用于判断是哪个时间选择
* switchClick switch切换开关点击事件,返回组件code,字端的code以及value值
* filedClick 其它字端点击事件,字端类型为其它的点击事件 返回组件code,字端的code,可用于超链接,提示等
* btnClick 按钮点击事件,返回当前btn对象,包含组件code、按钮code、以及按钮描述,可根据此判断点击的是哪个按钮
......@@ -6,7 +6,7 @@
<template>
<section class="h-form">
<s-tab
v-for="com in layoutConfig" v-if="com.configType==='TAB' && com.layoutFiledList.length"
v-for="com in layoutConfig" v-if="com.configType==='Stab' && com.layoutFiledList.length"
:key="com.configId"
:default-active="tabIndex" :class="com.cssClass" :has-border="showTabBorder"
:show-divider="showTabDivider"
......@@ -19,7 +19,7 @@
<h-content :class="{'has-footer':hasBottom}">
<template v-for="(com, index) in layoutConfig">
<list-item
v-if="com.configType==='FORM' && com.layoutFiledList.length" v-show="checkFromHide(com)"
v-if="com.configType==='Form' && com.layoutFiledList.length" v-show="checkFromHide(com)"
:class="com.cssClass" :key="com.configId">
<item v-show="showFormTitle" class="form-title" @click.native="hideFormClick(index)">
<div slot="name">{{ com.configName }}</div>
......@@ -58,17 +58,17 @@
<img v-if="filed.rightIcon" slot="right-icon" :src="filed.rightIcon" class="right-icon">
</item>
</list-item>
<template v-else-if="com.configType==='BUTTON' && com.layoutFiledList.length">
<section v-else-if="com.configType==='Button' && com.layoutFiledList.length" class="layout-button">
<h-button
v-for="btn in com.layoutFiledList" :key="btn.filedId" :class="btn.cssClass"
size="normal" @click.native="btnClick(com,btn)">
<section v-html="btn.btnContent || btn.filedName"/>
</h-button>
</template>
</section>
</template>
</h-content>
<bottom-tab
v-for="(com, index) in layoutConfig" v-if="com.configType==='bottomTab' && com.layoutFiledList.length"
v-for="(com, index) in layoutConfig" v-if="com.configType==='BottomTab' && com.layoutFiledList.length"
:key="index" :show-divider="showBtnDivider"
:class="com.cssClass">
<tab-button v-for="btn in com.layoutFiledList" :key="btn.filedId" :class="btn.cssClass" @click.native="btnClick(com,btn)">
......@@ -79,7 +79,7 @@
</template>
<script>
export default {
name: 'HForm',
name: 'HLayout',
props: {
layoutData: {
type: Array,
......@@ -91,7 +91,7 @@ export default {
},
showTabDivider: {
type: Boolean,
default: false,
default: true,
},
showTabBorder: {
type: Boolean,
......@@ -130,10 +130,10 @@ export default {
vm.layoutConfig = vm.layoutData[0].layoutConfigList
let btns = []
vm.layoutConfig.forEach((com, index) => {
if (com.configType === 'bottomTab') {
if (com.configType === 'BottomTab') {
vm.hasBottom = true
}
if (com.configType === 'FORM') {
if (com.configType === 'Form') {
let form = com
let temp = {}
if (form.layoutFiledList.length) {
......@@ -157,10 +157,10 @@ export default {
})
vm.$set(vm.data, [form.configCode], temp)
}
} else if (com.configType === 'TAB') {
} else if (com.configType === 'Stab') {
vm.activeTab = com.configCode
vm.activeTabFiled = com.layoutFiledList.length ? com.layoutFiledList[vm.tabIndex].filedCode : ''
} else if (com.configType === 'BUTTON' || com.configType === 'bottomTab') {
} else if (com.configType === 'Button' || com.configType === 'BottomTab') {
if (com.layoutFiledList.length) {
let btnFileds = com.layoutFiledList
btnFileds.forEach((btnFiled, index) => {
......@@ -267,7 +267,7 @@ export default {
* @param filed 当前字端
*/
btnClick (com, filed) {
let btnType = com.configCode
let btnType = com.configType
let btnCode = filed.filedCode
this.data.btns.forEach((btn, index) => {
if (btn.btnType === btnType && btn.btnCode === btnCode) {
......@@ -302,6 +302,19 @@ export default {
}
}
}
.layout-button{
margin-top: 30px;
display: flex;
justify-content: center;
.hls-h-button{
width: 50%;
border-radius: 20px;
background-color:@theme-color;
border: none;
color: #fff;
}
}
.hls-item {
.contents {
......
......@@ -26,7 +26,7 @@ import HFile from './HFile/index'
import BottomTab from './BottomTab/index'
import TabButton from './BottomTab/tab-button'
import Modal from './Modal/Modal'
import HForm from './HForm/index'
import HLayout from './HLayout/index'
import errLoadingPic from '../common/picture/errloading.jpg'
......@@ -58,5 +58,5 @@ export default (Vue) => {
Vue.component('radio-group', RadioGroup)
Vue.component('h-radio', Radio)
Vue.component('h-file', HFile)
Vue.component('h-form', HForm)
Vue.component('h-layout', HLayout)
}
......@@ -23,7 +23,7 @@ import Stab from './components/STab/index'
import TabItem from './components/STab/tab-item'
import TabButton from './components/BottomTab/tab-button'
import HFile from './components/HFile/index'
import HForm from './components/HForm/index'
import HLayout from './components/HLayout/index'
import componentInstall from './components/component'
// compontenPlugins
......@@ -65,7 +65,7 @@ export {
BottomTab,
TabButton,
HFile,
HForm,
HLayout,
ActionSheetPlugin,
ShowPicturePlugin,
SelectPlugin,
......
......@@ -2,6 +2,7 @@
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import FastClick from 'fastclick'
import axios from 'axios'
import App from './App'
import router from './router/index'
......@@ -48,6 +49,7 @@ Vue.use(filter)
Vue.prototype.hlsPopup = window.hlsPopup = hlsPopup
Vue.prototype.$devicePixelRatio = 2
Vue.prototype.axios = window.axios = axios
Vue.prototype.$post = post
Vue.prototype.$get = get
......
......@@ -12,7 +12,8 @@
<div slot="center">From</div>
<div slot="right" class="h-header-btn">右边</div>
</h-header>
<h-form
<h-layout
v-if="layoutShow"
:layout-data="layoutData" :show-form-title="showFormTitle" :show-btn-divider="true"
:show-tab-divider="true" :formData="data" v-model="data" @tabClick="tabClick"
@showSelect="showSelect" @showTime="showTime" @switchClick="switchClick" @filedClick="filedClick"
......@@ -30,7 +31,8 @@ export default {
return {
tabIndex: 1,
showFormTitle: true,
layoutData: [...layoutData],
layoutData: [],
layoutShow: false,
data: {
contract: {
postion: '01',
......@@ -46,7 +48,19 @@ export default {
}
},
created () {
let vm = this
/* axios.get('http://leafservice.hand-china.com/r/api/get/layoutCode?layoutCode=CON_QURERY', {
header: {'Content-Type': 'application/json',
'Authorization': 'bearer SRHJVdrftyGUYguyhiHiuiojmgrrcgv' },
}).then(res => {
vm.layoutData = res.rows
vm.layoutShow = true
}) */
setTimeout(() => {
vm.layoutData = layoutData
vm.layoutShow = true
}, 100)
},
methods: {
/**
......@@ -126,7 +140,19 @@ export default {
* @param btn
*/
btnClick (btn) {
debugger
console.log(JSON.stringify(this.data, '', 2))
if (btn.btnType === 'BottomTab') {
if (btn.btnCode === 'save') {
alert('底部固定按钮的保存')
}
if (btn.btnCode === 'submit') {
alert('底部固定按钮的提交')
}
} if (btn.btnType === 'Button') {
if (btn.btnCode === 'nextBtn') {
alert('按钮继续')
}
}
},
},
}
......
[
[
{
"_token": "5c7ed163aabdb97edbb4023503ad33f8",
"_token": "130a4b2b38e53217cd0f9b8b721b993f",
"objectVersionNumber": null,
"layoutId": "1",
"layoutCode": "CON_QURERY",
......@@ -9,13 +9,13 @@
"enableFlag": "Y",
"layoutConfigList": [
{
"_token": "3ae2e02aece2b0edeb990b0e8b4ae9ac",
"_token": "a540543e635ad256625882eb171e18c8",
"objectVersionNumber": null,
"configId": "123",
"layoutId": "1",
"configCode": "WFL_TAB",
"configCode": "wflTab",
"configName": "工作流tab",
"configType": "TAB",
"configType": "Stab",
"configOrder": "10",
"tabFlag": "N",
"tabConfigId": null,
......@@ -28,7 +28,7 @@
"tabFiledName": null,
"layoutFiledList": [
{
"_token": "edc13ba2c737506fe18aaa8722c4525f",
"_token": "b2da5ba751a117c7f273344fe6831a6e",
"objectVersionNumber": 2,
"filedId": "1234",
"layoutId": "1",
......@@ -56,7 +56,7 @@
"cssClass": null
},
{
"_token": "4b56b36ba77f9dccbfcd63682d7c9cb8",
"_token": "9b7c0408500deed8a315d16260881ccc",
"objectVersionNumber": 1,
"filedId": "1235",
"layoutId": "1",
......@@ -84,7 +84,7 @@
"cssClass": null
},
{
"_token": "e7a625a36c66a8488527baa6245fba6e",
"_token": "490fe24d223be5973ac2cf951a54dbf3",
"objectVersionNumber": 1,
"filedId": "0e1c1faa32af474ab8dc44635c0e9c20",
"layoutId": "1",
......@@ -114,13 +114,13 @@
]
},
{
"_token": "77584740da030e0bacb494c94c9a2ff6",
"_token": "29a5d0d4729fd7b32abe9f7f42d4a865",
"objectVersionNumber": null,
"configId": "124",
"layoutId": "1",
"configCode": "contract",
"configName": "合同信息",
"configType": "FORM",
"configType": "Form",
"configOrder": "20",
"tabFlag": "Y",
"tabConfigId": "123",
......@@ -128,12 +128,12 @@
"cssClass": null,
"enableFlag": "Y",
"hideForm": false,
"tabConfigCode": "WFL_TAB",
"tabConfigCode": "wflTab",
"tabFiledCode": "DONING",
"tabFiledName": "已办",
"layoutFiledList": [
{
"_token": "79cd351deb4d2afb9cc3f235a62bc217",
"_token": "57c06359869b966afe5715d5ebe60b45",
"objectVersionNumber": 1,
"filedId": "5e27dff547dd4eec9fb78b88b6af63ab",
"layoutId": "1",
......@@ -161,7 +161,7 @@
"cssClass": null
},
{
"_token": "33d0890c473d1e4df77834ed334172ee",
"_token": "e50fbd51f9a3e046769ae19b1680b1d0",
"objectVersionNumber": 1,
"filedId": "ff061ecb37664c6e976df4255c449b2c",
"layoutId": "1",
......@@ -189,7 +189,7 @@
"cssClass": null
},
{
"_token": "d2e41d2f3fff154c3d05f818e7edf90f",
"_token": "b018faca7586b0b8a26798fc9100284a",
"objectVersionNumber": 3,
"filedId": "5e6b05bf5d9c4f3a8c78e60c1ce58add",
"layoutId": "1",
......@@ -201,7 +201,7 @@
"inputType": "text",
"placeholder": "请选择岗位",
"filedOrder": "3",
"inputMode": "readOnly",
"inputMode": "other",
"leftIcon": null,
"rightIcon": null,
"format": "N",
......@@ -217,7 +217,7 @@
"cssClass": null
},
{
"_token": "6ff4c37a505994033bf5f076dadb1b05",
"_token": "23ff236267272b11ff4acc468c220a5f",
"objectVersionNumber": 1,
"filedId": "fde9d1d26d5b4823a894f20ff3ffab7d",
"layoutId": "1",
......@@ -245,7 +245,7 @@
"cssClass": null
},
{
"_token": "e75d4471480a50a2899626610f449ea2",
"_token": "0ee346cf559acb4917da57bfdbaf334c",
"objectVersionNumber": 1,
"filedId": "199658a5b961490a90238a9e9f95fe8d",
"layoutId": "1",
......@@ -273,7 +273,7 @@
"cssClass": "tip-note"
},
{
"_token": "b33a2e4a25c47f60475220ad016ed9ab",
"_token": "b993cccaf742d01d77d672f182047a36",
"objectVersionNumber": 1,
"filedId": "d4664c3a8ef34e1fb47acb325bb9bfb4",
"layoutId": "1",
......@@ -303,13 +303,13 @@
]
},
{
"_token": "8643ea256e65a92b00b4911453a4794d",
"_token": "422270f06a330254f7c3b473f1a4f07f",
"objectVersionNumber": null,
"configId": "125",
"layoutId": "1",
"configCode": "project",
"configName": "项目信息",
"configType": "FORM",
"configType": "Form",
"configOrder": "30",
"tabFlag": "Y",
"tabConfigId": "123",
......@@ -317,12 +317,12 @@
"cssClass": null,
"enableFlag": "Y",
"hideForm": false,
"tabConfigCode": "WFL_TAB",
"tabConfigCode": "wflTab",
"tabFiledCode": "TODO",
"tabFiledName": "代办",
"layoutFiledList": [
{
"_token": "3cd4d94aa1ebafc8d6e00c774c14aa21",
"_token": "5d6bd09fb12bb662a437923bd9d4b40c",
"objectVersionNumber": 1,
"filedId": "e04940d051ca4a06b20804bb3bb3b434",
"layoutId": "1",
......@@ -350,7 +350,7 @@
"cssClass": null
},
{
"_token": "ebfb340021c74d7c0a9453fc90509425",
"_token": "72100f0745ba12c51b2efab6dc651831",
"objectVersionNumber": 1,
"filedId": "ff400ff5c6294de39d5db2b59793a79f",
"layoutId": "1",
......@@ -378,7 +378,7 @@
"cssClass": null
},
{
"_token": "3527ec9b1e2bbe7f73ebda66718081bc",
"_token": "b546faa6ce70545804ba24e0266376b3",
"objectVersionNumber": 1,
"filedId": "e9467eab249e4c119771c4610dfb9e04",
"layoutId": "1",
......@@ -406,7 +406,7 @@
"cssClass": null
},
{
"_token": "1422183cb05c0da250151354164bb864",
"_token": "dff2744a00eeb86424a580019f8583e0",
"objectVersionNumber": 1,
"filedId": "91ad3a6b85a0486d8d8c25dee2076b63",
"layoutId": "1",
......@@ -434,7 +434,7 @@
"cssClass": null
},
{
"_token": "73dfcfc81146c9adb79169545734381e",
"_token": "a7c494a2d917ce2d2db6be6d10a9a136",
"objectVersionNumber": 2,
"filedId": "6f58ed5f1d7e48b6b25a788683dfde3b",
"layoutId": "1",
......@@ -462,7 +462,7 @@
"cssClass": null
},
{
"_token": "a7d14cf6a1003168b0f290c763137dab",
"_token": "8ef5e51e90109e434b06771cd6264744",
"objectVersionNumber": 2,
"filedId": "8c675685769b40b48f2a594af7cecb25",
"layoutId": "1",
......@@ -492,13 +492,13 @@
]
},
{
"_token": "8144efaaca1d9636d95a89dcb1fd4252",
"_token": "c7a4b6551eebfdf5df85a8d5f09d2760",
"objectVersionNumber": null,
"configId": "f71d2a8c68e44f15a38bc3b8f8d9a0a5",
"layoutId": "1",
"configCode": "bp",
"configName": "客户信息",
"configType": "FORM",
"configType": "Form",
"configOrder": "35",
"tabFlag": "Y",
"tabConfigId": "123",
......@@ -506,12 +506,12 @@
"cssClass": null,
"enableFlag": "Y",
"hideForm": false,
"tabConfigCode": "WFL_TAB",
"tabConfigCode": "wflTab",
"tabFiledCode": "DONING",
"tabFiledName": "已办",
"layoutFiledList": [
{
"_token": "57b5058c3e3e6c683c6587a533ff448e",
"_token": "a02b08a5b823463114111ad18fc68884",
"objectVersionNumber": 1,
"filedId": "ab5988de79ff4110bd6ffb53ad2bbbf6",
"layoutId": "1",
......@@ -541,18 +541,18 @@
]
},
{
"_token": "db3ad35d036691c5b0caa2e273d31f25",
"_token": "1cfcb4450cae4787d54f470ee230abb9",
"objectVersionNumber": null,
"configId": "5c95cde581a64f42a86900712c53502a",
"configId": "f9b7ca36be6c4ca4986f14f6d72f98cf",
"layoutId": "1",
"configCode": "SAVE_BUTTON",
"configName": "底部按钮",
"configType": "bottomTab",
"configCode": "Buttons",
"configName": "按钮",
"configType": "Button",
"configOrder": "40",
"tabFlag": "N",
"tabConfigId": null,
"tabFiledId": null,
"cssClass": "btn-button",
"cssClass": null,
"enableFlag": "Y",
"hideForm": false,
"tabConfigCode": null,
......@@ -560,46 +560,18 @@
"tabFiledName": null,
"layoutFiledList": [
{
"_token": "7e61d576cfa5d12ee68bdf7ec36d99b2",
"objectVersionNumber": 2,
"filedId": "3d7ba60e16594e1fb170790d166c8bb1",
"layoutId": "1",
"configId": "5c95cde581a64f42a86900712c53502a",
"filedCode": "save",
"filedName": "保存",
"defaultValue": null,
"filedType": "OTHES",
"inputType": "text",
"placeholder": null,
"filedOrder": "1",
"inputMode": "other",
"leftIcon": null,
"rightIcon": null,
"format": "N",
"proportion": "1,2",
"showName": true,
"showContent": true,
"showArrow": false,
"hasBorder": true,
"filedHeight": 45,
"enableFlag": "Y",
"tabContent": null,
"btnContent": null,
"cssClass": "save-btn"
},
{
"_token": "974a18dedc6a0960a4ad0f6be96dacea",
"_token": "22bc7380d03b3c21a825cf889c8ca50a",
"objectVersionNumber": 1,
"filedId": "f64a1e6b0c834f5fa0db15e999e84eb0",
"filedId": "dc5f17677d594706883c1fc351fb35ed",
"layoutId": "1",
"configId": "5c95cde581a64f42a86900712c53502a",
"filedCode": "submit",
"filedName": "提交",
"configId": "f9b7ca36be6c4ca4986f14f6d72f98cf",
"filedCode": "nextBtn",
"filedName": "继续",
"defaultValue": null,
"filedType": "OTHES",
"inputType": "text",
"placeholder": null,
"filedOrder": "2",
"filedOrder": "5",
"inputMode": "other",
"leftIcon": null,
"rightIcon": null,
......@@ -618,14 +590,14 @@
]
},
{
"_token": "db3ad35d036691c5b0caa2e273d31f25",
"_token": "c808f1b7a50693668269ffa2096d6424",
"objectVersionNumber": null,
"configId": "5c95cde581a64f42a86900712c53502a",
"layoutId": "1",
"configCode": "BUTTON",
"configCode": "BottomTab",
"configName": "底部按钮",
"configType": "BUTTON",
"configOrder": "40",
"configType": "BottomTab",
"configOrder": "45",
"tabFlag": "N",
"tabConfigId": null,
"tabFiledId": null,
......@@ -637,7 +609,7 @@
"tabFiledName": null,
"layoutFiledList": [
{
"_token": "7e61d576cfa5d12ee68bdf7ec36d99b2",
"_token": "c82b9adf192fe280a9db69ec936669f2",
"objectVersionNumber": 2,
"filedId": "3d7ba60e16594e1fb170790d166c8bb1",
"layoutId": "1",
......@@ -665,7 +637,7 @@
"cssClass": "save-btn"
},
{
"_token": "974a18dedc6a0960a4ad0f6be96dacea",
"_token": "af813e63b3f61b59b2514e86fa744458",
"objectVersionNumber": 1,
"filedId": "f64a1e6b0c834f5fa0db15e999e84eb0",
"layoutId": "1",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment