148 lines
2.7 KiB
JavaScript
148 lines
2.7 KiB
JavaScript
export const GetdeepObj = (obj, length = true ,first=false,my = false) => {
|
|
if (typeof obj == 'object' && !Array.isArray(obj)) {
|
|
let arr = []
|
|
for (let key in obj) {
|
|
if (obj.hasOwnProperty(key)) {
|
|
if (Array.isArray(obj[key])) {
|
|
let obj2 = {
|
|
value: key,
|
|
label: key,
|
|
}
|
|
obj2.children = []
|
|
if (length) {
|
|
obj2.children.push({
|
|
value: 'length()',
|
|
label: '长度',
|
|
valueType: 1,
|
|
})
|
|
}
|
|
if (first&&obj[key][0]) {
|
|
obj2.children.push({
|
|
value: '[]',
|
|
label: '第一项',
|
|
children: GetdeepObj(obj[key][0], length,first,my)
|
|
})
|
|
}
|
|
if (my) {
|
|
obj2.children.push({
|
|
value: 'array()',
|
|
label: '本身',
|
|
valueType: 7,
|
|
})
|
|
}
|
|
arr.push(obj2)
|
|
} else if (typeof obj[key] == 'object' && obj[key] != null) {
|
|
arr.push({
|
|
value: key,
|
|
label: key,
|
|
children: GetdeepObj(obj[key], length,first,my)
|
|
})
|
|
} else {
|
|
arr.push({
|
|
value: key,
|
|
label: key,
|
|
valueType: typeof obj[key] == 'string' ? 2 : 1,
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
return arr
|
|
} else if (Array.isArray(obj)) {
|
|
let obj = []
|
|
if (length) {
|
|
obj.push({
|
|
value: 'length()',
|
|
label: '长度',
|
|
valueType: 1,
|
|
})
|
|
}
|
|
if (first&&obj[0]) {
|
|
obj.push({
|
|
value: '[0]',
|
|
label: '第一项',
|
|
children: GetdeepObj(obj[0], length,first,my)
|
|
})
|
|
}
|
|
if (my) {
|
|
obj.push({
|
|
value: 'array',
|
|
label: '本身',
|
|
valueType: 7,
|
|
})
|
|
}
|
|
|
|
return obj
|
|
}
|
|
}
|
|
|
|
|
|
export const deepexamine = (is, arr, index = 1) => {
|
|
arr.forEach(value => {
|
|
if (value.children && value.children.length > 0) {
|
|
deepexamine(is, value.children, index + 1)
|
|
}
|
|
if (value.conditionType == 2) {
|
|
|
|
|
|
if (!value.fieldId) {
|
|
is.is = true
|
|
is.msg = '请选择 条件 的 入Key'
|
|
}
|
|
if (!value.operator) {
|
|
is.is = true
|
|
is.msg = '请选择 条件 的 运算符'
|
|
}
|
|
if (!value.variableValue || !value.variableValue.trim()) {
|
|
is.is = true
|
|
is.msg = '请选择 条件 的 值'
|
|
}
|
|
|
|
|
|
}
|
|
if (value.conditionType == 1 && value.children.length == 0 && index != 1) {
|
|
is.is = true
|
|
is.msg = '关系符下不允许为空'
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
export const ruleEnformat = (arr, str) => {
|
|
|
|
deepformat(arr)
|
|
|
|
function deepformat(arr) {
|
|
arr.forEach(value => {
|
|
if (value.children && value.children.length > 0) {
|
|
deepformat(value.children)
|
|
}
|
|
|
|
if (value.conditionType == 2) {
|
|
value.fieldId = getformat(value.fieldId)
|
|
|
|
if (value.variableType == 2) {
|
|
value.variableValue = getformat(value.variableValue)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
})
|
|
}
|
|
|
|
|
|
function getformat(arr) {
|
|
if (str == "String") {
|
|
// debugger
|
|
return arr.join('.')
|
|
} else {
|
|
return arr.split('.')
|
|
}
|
|
}
|
|
|
|
}
|