Commit 18d02d46 authored by 王康's avatar 王康

修改组件切换报错bug

parent c0a22aa4
...@@ -141,10 +141,31 @@ ...@@ -141,10 +141,31 @@
} }
}, },
created() { created() {
// this.validate()
this.init() this.init()
// console.log(this.schema) // console.log(this.schema)
}, },
methods: { methods: {
validate() {
const self = this
// this.columns数组元素本身必须是string或者object. 且必须是schema中定义的列
// 由于vue中不允许通过其他的props来验证当前props,只能在created里进行调用
_.each(self.columns, function(item) {
if (!item) {
return 0
}
if (typeof item !== 'string' && typeof item !== 'object') {
console.error(`传入的columns不符合要求,数组元素必须是字符串或对象`)
}
if (typeof item === 'string' && !_.keyBy(self.schema['columns'], 'code')[item.toUpperCase()]) {
console.error(`传入的columns不符合要求,字符串元素[${item}]必须是schema中定义的列[code]`)
}
if (typeof item === 'object' && !_.keyBy(self.schema['columns'], 'code')[item['code'].toUpperCase()]) {
console.error(`传入的columns不符合要求,元素的code属性[${item['code']}]必须是schema中定义的列[code]`)
}
})
},
onEditorBlur(editor) { onEditorBlur(editor) {
console.log('editor blur!') console.log('editor blur!')
}, },
...@@ -160,22 +181,21 @@ ...@@ -160,22 +181,21 @@
if (!self.columns || !self.columns.length) { if (!self.columns || !self.columns.length) {
_.each(self.schema['columns'], function(column) { _.each(self.schema['columns'], function(column) {
const tmp = JSON.parse(JSON.stringify(column)) const tmp = JSON.parse(JSON.stringify(column))
// self.$set(tmp, 'code', tmp.code.toLowerCase()) self.$set(tmp, 'code', tmp.code.toLowerCase())
self.showUserColumns.push(tmp) self.showUserColumns.push(tmp)
}) })
// console.log(self.showUserColumns) // console.log(self.showUserColumns)
} else { // columns,则只显示传入的字段 } else { // columns,则只显示传入的字段
self.showUserColumns = JSON.parse(JSON.stringify(self.columns)) self.showUserColumns = JSON.parse(JSON.stringify(self.columns))
// console.log('1111111') // console.log('1111111')
// console.log(self.showUserColumns) console.log(self.showUserColumns)
// 将字符串对象进行替换处理 // 将字符串对象进行替换处理
_.each(self.showUserColumns, function(column, index) { _.each(self.showUserColumns, function(column, index) {
if (typeof column === 'string') { if (typeof column === 'string') {
// 生成一个新对象 // 生成一个新对象
console.log(column) // const tmp = _.keyBy(self.schema['columns'], 'code')[column.toUpperCase()]
const tmp = _.keyBy(self.schema['columns'], 'code')[column.toUpperCase()] const tmp = _.keyBy(self.schema['columns'], 'codeCamel')[column]
// console.log(tmp) self.$set(tmp, 'code', tmp.code.toLowerCase())
// self.$set(tmp, 'code', tmp.code.toLowerCase())
self.$set(self.showUserColumns, index, tmp) self.$set(self.showUserColumns, index, tmp)
} }
}) })
......
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
}, },
data() { data() {
return { return {
// showUserColumns: ['username', 'loginid', 'password', 'mobile', 'email'] showUserColumns: ['username', 'loginid', 'password', 'mobile', 'email', 'securityLevel']
showUserColumns: [] // showUserColumns: []
} }
}, },
computed: { computed: {
......
...@@ -242,7 +242,9 @@ ...@@ -242,7 +242,9 @@
// 将字符串对象进行替换处理 // 将字符串对象进行替换处理
_.each(self.showColumns, function(column, index) { _.each(self.showColumns, function(column, index) {
if (typeof column === 'string') { if (typeof column === 'string') {
const tmp = _.keyBy(self.schema['columns'], 'code')[column.toUpperCase()] // const tmp = _.keyBy(self.schema['columns'], 'code')[column.toUpperCase()]
// 王康 修改 2018年02月25日22:58:23
const tmp = _.keyBy(self.schema['columns'], 'codeCamel')[column]
console.log(tmp) console.log(tmp)
self.$set(tmp, 'code', tmp.code.toLowerCase()) self.$set(tmp, 'code', tmp.code.toLowerCase())
self.$set(self.showColumns, index, tmp) self.$set(self.showColumns, index, tmp)
......
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