| | |
| | | } |
| | | |
| | | if (['exec', 'prompt', 'pop', 'form', 'formSubmit'].includes(cell.OpenType)) { |
| | | if (cell.Ot !== 'requiredOnce' && ['pop', 'form'].includes(cell.OpenType) && cell.verify && cell.verify.uniques && cell.verify.uniques.length > 0) { |
| | | let forms = ['BID'] |
| | | |
| | | if (cell.OpenType === 'form') { |
| | | forms.push(cell.field) |
| | | } else if (cell.modal && cell.modal.fields.length > 0) { |
| | | cell.modal.fields.forEach(n => { |
| | | if (!n.field) return |
| | | forms.push(n.field) |
| | | }) |
| | | } |
| | | let emptys = [] |
| | | cell.verify.uniques.forEach(m => { |
| | | if (m.status === 'false') return |
| | | |
| | | m.field.split(',').forEach(n => { |
| | | if (!forms.includes(n)) { |
| | | emptys.push(n) |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | if (emptys.length) { |
| | | errors.push({ level: 0, detail: `按钮“${cell.label}”唯一性验证字段${emptys.join('、')},在表单中不存在!`}) |
| | | } |
| | | } |
| | | |
| | | if (cell.OpenType === 'form' && cell.formType === 'count_line') return |
| | | |
| | | if (cell.intertype === 'system') { |
| | |
| | | // 数据源sql语句,预处理,权限黑名单字段设置为隐藏表单 |
| | | if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') { |
| | | let msg = getFormSql(form, '表单') |
| | | |
| | | sqls.push({uuid: form.uuid, type: 'form', ...msg}) |
| | | |
| | | sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg}) |
| | | } else if (form.type === 'popSelect') { |
| | | let msg = getPopSelectSql(form) |
| | | |
| | |
| | | if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') { |
| | | let msg = getFormSql(form, '表单') |
| | | |
| | | sqls.push({uuid: form.uuid, type: 'form', ...msg}) |
| | | sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg}) |
| | | } else if (form.type === 'popSelect') { |
| | | let msg = getPopSelectSql(form) |
| | | |
| | |
| | | type: item.type, |
| | | isconst: item.constant === 'true' |
| | | } |
| | | |
| | | |
| | | if (_item.type === 'datemonth') { |
| | | _item.type = 'text' |
| | | } else if (_item.type === 'number' || _item.type === 'rate') { |
| | |
| | | item.field.split(',').forEach((_field, index) => { |
| | | let _key = _field.toLowerCase() |
| | | let _val = '' |
| | | let _val2 = '' |
| | | |
| | | arr.push(_key) |
| | | if (_key === 'bid') { // 表单中没有bid则使用系统bid变量 |
| | |
| | | } |
| | | |
| | | _fieldValue.push(`${_key}=${_val}`) |
| | | _value.push(`${_labels[index] || ''}:${_val || ''}`) |
| | | |
| | | if (_key === 'bid') { // 表单中没有bid则使用系统bid变量 |
| | | _val2 = `' + ${BID} + '` |
| | | } else { |
| | | _val2 = `@mk_${_key}_mk@` |
| | | } |
| | | |
| | | _value.push(`${_labels[index] || ''}:${_val2}`) |
| | | }) |
| | | |
| | | if (!arr.includes(primaryKey.toLowerCase())) { |
| | |
| | | let _key = item.key.toLowerCase() |
| | | |
| | | keys.push(_key) |
| | | values.push('@mk_' + _key + '_mk@') |
| | | values.push('@' + _key) |
| | | }) |
| | | |
| | | if (!keys.includes(primaryKey.toLowerCase())) { |
| | |
| | | let _key = item.key.toLowerCase() |
| | | |
| | | _arr.push(_key) |
| | | _form.push(_key + '=@mk_' + _key + '_mk@') |
| | | _form.push(_key + '=@' + _key) |
| | | }) |
| | | |
| | | if (_actionType === 'audit') { |
| | |
| | | columns.forEach(col => { |
| | | let _key = col.field.toLowerCase() |
| | | |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return |
| | | if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return |
| | | // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return |
| | | |
| | | colreps.push(col.field) |
| | | |
| | |
| | | return true |
| | | }) |
| | | |
| | | colreps = Array.from(new Set(colreps)) |
| | | reps = [...reps, ...colreps] |
| | | |
| | | return { LText: _sql, md5: md5(_sql), reps } |
| | |
| | | ` |
| | | } |
| | | |
| | | let testSql = _prev + _back |
| | | let testSql = _prev + _back + (btn.output || '') |
| | | |
| | | // 添加数据中字段,表单值优先(按钮不选行或多行拼接时跳过) |
| | | if (btn.Ot !== 'notRequired' && columns.length > 0) { |
| | |
| | | columns.forEach(col => { |
| | | let _key = col.field.toLowerCase() |
| | | |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(testSql)) return |
| | | if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(testSql)) return |
| | | // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return |
| | | |
| | | colreps.push(col.field) |
| | | |
| | |
| | | arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}' |
| | | ` |
| | | |
| | | _tailScript += `${_tailScript} |
| | | _tailScript = `${_tailScript} |
| | | select @ErrorCode as ErrorCode,@retmsg as retmsg |
| | | ${callback} |
| | | ` |
| | |
| | | arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}' |
| | | ` |
| | | |
| | | _tailScript += `${_tailScript} |
| | | _tailScript = `${_tailScript} |
| | | select @ErrorCode as ErrorCode,@retmsg as retmsg |
| | | ` |
| | | } |
| | |
| | | component.columns.forEach(col => { |
| | | let _key = col.field.toLowerCase() |
| | | |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(msg.LText)) return |
| | | if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return |
| | | if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(msg.LText)) return |
| | | // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return |
| | | |
| | | colreps.push(col.field) |
| | | |
| | |
| | | component.columns.forEach(col => { |
| | | let _key = col.field.toLowerCase() |
| | | |
| | | if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return |
| | | if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return |
| | | if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return |
| | | // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return |
| | | |
| | | colreps.push(col.field) |
| | | |