|
@@ -111,12 +111,43 @@ export function calcObjectFlat(data, paramObject) {
|
|
* 合併 data 到當前的 ViewModel 對象
|
|
* 合併 data 到當前的 ViewModel 對象
|
|
*/
|
|
*/
|
|
export function mergeViewModel(viewModel, propertyName, data) {
|
|
export function mergeViewModel(viewModel, propertyName, data) {
|
|
- _.forOwn(data, (value, key) => {
|
|
|
|
|
|
+ _.forOwn(flatRow(data), (value, key) => {
|
|
viewModel.set(propertyName + "." + key, value)
|
|
viewModel.set(propertyName + "." + key, value)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 转换内联结构的行,到平面结构
|
|
|
|
+ * company: { name:'公司1', id:'编号1' } => { company_id:'编号1', company_name:'公司1' }
|
|
|
|
+ *
|
|
|
|
+ * @param array
|
|
|
|
+ * @param flatOption
|
|
|
|
+ * @return {[]}
|
|
|
|
+ */
|
|
|
|
+export function flatRow(array) {
|
|
|
|
+ const ret = []
|
|
|
|
+
|
|
|
|
+ _.forEach(array, row => {
|
|
|
|
+ const newRow = {}
|
|
|
|
+ flatObject(newRow, '', row)
|
|
|
|
+ ret.push(newRow)
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ return ret
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function flatObject(parentObj, parentProp, obj) {
|
|
|
|
+ _.forOwn(obj, (value, key) => {
|
|
|
|
+ const fullKey = parentProp ? parentProp + '_' + key : key
|
|
|
|
+ if (typeof value === 'object') {
|
|
|
|
+ flatObject(parentObj, fullKey, value)
|
|
|
|
+ } else {
|
|
|
|
+ parentObj[fullKey] = value
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
* 根据表达式进入写值
|
|
* 根据表达式进入写值
|
|
* express="{query.a}" 写值就是 viewModel.set('query.a', value)
|
|
* express="{query.a}" 写值就是 viewModel.set('query.a', value)
|
|
* express="test-{query.a}" 写值就会失败
|
|
* express="test-{query.a}" 写值就会失败
|