src/menu/datasource/verifycard/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/menu/datasource/verifycard/settingform/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/tabviews/custom/components/card/double-data-card/index.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/utils-custom.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/login/index.scss | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/menu/datasource/verifycard/index.jsx
@@ -723,6 +723,16 @@ return } if (type === 'submit' && config.subtype === 'dualdatacard' && setting.subdata === 'sub_data_string' && !columns.find(col => col.field === 'sub_data_string')) { notification.warning({ top: 92, message: '主表字段集中需添加 sub_data_string 字段!', duration: 5 }) reject() return } if (type === 'change' && columns.length === 0) { reject() return src/menu/datasource/verifycard/settingform/index.jsx
@@ -679,7 +679,7 @@ </Col> : null} {config.subtype === 'dualdatacard' ? <Col span={8}> <Form.Item label={ <Tooltip placement="topLeft" title="子表在主表中的数据集名称,使用 sub_data_string 时数据以 JSON 字符串形式返回(字段集中需添加 sub_data_string 字段)。"> <Tooltip placement="topLeft" title="子表在主表中的数据集名称,使用 sub_data_string 时数据以 JSON 字符串形式返回(字段集中需添加 sub_data_string 字段);当主表字段存在 sub_data_string 且值不为空时,优先使用主表的 sub_data_string。"> <QuestionCircleOutlined className="mk-form-tip" /> 子表字段 </Tooltip> src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -282,17 +282,18 @@ if (config.$cache) { let getData = (res) => { return res.map((item, index) => { let _children = item[config.setting.subdata] delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } else if (item.sub_data_string) { _children = this.parseSubData(item.sub_data_string) } let children = [] if (item[config.setting.subdata]) { let _children = item[config.setting.subdata] delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } if (_children) { _children.forEach((cell, i) => { cell.key = i cell.$$uuid = cell[config.setting.subKey] || '' @@ -679,16 +680,17 @@ if (type === 'plus') { let _data = (this.state.data || []).concat(result.data || []) data = _data.map((item, index) => { if (item[config.setting.subdata]) { let children = [] let _children = item[config.setting.subdata] let _children = item[config.setting.subdata] delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } else if (item.sub_data_string) { _children = this.parseSubData(item.sub_data_string) } delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } let children = [] if (_children) { _children.forEach((cell, i) => { cell.key = i cell.$$uuid = cell[config.setting.subKey] || '' @@ -701,10 +703,9 @@ children.push(cell) } }) item.children = children } else if (!item.children) { item.children = [] } item.children = children item.key = index item.$$uuid = item[config.setting.primaryKey] || '' @@ -722,17 +723,18 @@ }) } else { data = result.data.map((item, index) => { let _children = item[config.setting.subdata] delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } else if (item.sub_data_string) { _children = this.parseSubData(item.sub_data_string) } let children = [] if (item[config.setting.subdata]) { let _children = item[config.setting.subdata] delete item[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } if (_children) { _children.forEach((cell, i) => { cell.key = i cell.$$uuid = cell[config.setting.subKey] || '' @@ -852,17 +854,19 @@ data = data.map(item => { if (item.$$uuid === _data.$$uuid) { let _children = _data[config.setting.subdata] delete _data[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } else if (_data.sub_data_string) { _children = this.parseSubData(_data.sub_data_string) } let children = [] if (_data[config.setting.subdata]) { let _children = _data[config.setting.subdata] delete _data[config.setting.subdata] if (config.setting.subdata === 'sub_data_string') { _children = this.parseSubData(_children) } if (_children) { _children.forEach((cell, i) => { cell.key = i cell.$$uuid = cell[config.setting.subKey] || '' src/utils/utils-custom.js
@@ -2762,7 +2762,15 @@ text = text.filter(Boolean) menu = menu.filter(Boolean) sql = sql.map(n => n.replace(/(:|:)$/g, '')) sql = sql.map(n => n.replace(/^\s+|\s+$/g, '').replace(/(:|:)$/g, '')) btn = btn.map(n => n.replace(/^\s+|\s+$/g, '')) ops = ops.map(n => n.replace(/^\s+|\s+$/g, '')) menu = menu.map(n => n.replace(/^\s+|\s+$/g, '')) sql = sql.filter(Boolean) btn = btn.filter(Boolean) ops = ops.filter(Boolean) menu = menu.filter(Boolean) sql = Array.from(new Set(sql)) btn = Array.from(new Set(btn)) @@ -2810,6 +2818,21 @@ } let replaceTitle = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (/(:|:)$/g.test(val)) { let _val = val.replace(/(:|:)$/g, '') if (titDict[_val]) { @@ -2820,6 +2843,83 @@ } else if (titDict[val]) { val = titDict[val] } val = s + val + e return val } let replaceBtn = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (btnDict[val]) { val = btnDict[val] } val = s + val + e return val } let replaceList = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (lisDict[val]) { val = lisDict[val] } val = s + val + e return val } let replaceMenu = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (menuDict[val]) { val = menuDict[val] } val = s + val + e return val } @@ -2856,8 +2956,8 @@ } let filterBtn = (btn) => { if (btn.label && btnDict[btn.label]) { btn.label = btnDict[btn.label] if (btn.label) { btn.label = replaceBtn(btn.label) } if (btn.OpenType === 'tab' && btn.linkmenu) { @@ -2956,8 +3056,8 @@ n.dataSource = filterSql(n.dataSource) } else if (n.options) { n.options.forEach(o => { if (o.Text && lisDict[o.Text]) { o.Text = lisDict[o.Text] if (o.Text) { o.Text = replaceList(o.Text) } }) } @@ -3097,8 +3197,8 @@ item.wrap.linkmenu = item.wrap.linkmenu.slice(0, 24) + tail } else if (item.type === 'menubar') { item.subMenus = item.subMenus.map(cell => { if (cell.setting.name && menuDict[cell.setting.name]) { cell.setting.name = menuDict[cell.setting.name] if (cell.setting.name) { cell.setting.name = replaceMenu(cell.setting.name) } if (cell.setting.type === 'linkmenu') { cell.setting.linkMenuId = cell.setting.linkMenuId.slice(0, 24) + tail @@ -3246,6 +3346,20 @@ } let replaceTitle = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (/(:|:)$/g.test(val)) { let _val = val.replace(/(:|:)$/g, '') if (titDict[_val]) { @@ -3256,6 +3370,83 @@ } else if (titDict[val]) { val = titDict[val] } val = s + val + e return val } let replaceBtn = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (btnDict[val]) { val = btnDict[val] } val = s + val + e return val } let replaceList = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (lisDict[val]) { val = lisDict[val] } val = s + val + e return val } let replaceMenu = (val) => { let s = '' let e = '' if (/^\s+/g) { val = val.replace(/^\s+/g, (w) => { s = w return '' }) } if (/\s+$/g) { val = val.replace(/\s+$/g, (w) => { e = w return '' }) } if (menuDict[val]) { val = menuDict[val] } val = s + val + e return val } @@ -3292,8 +3483,8 @@ } let filterBtn = (btn) => { if (btn.label && btnDict[btn.label]) { btn.label = btnDict[btn.label] if (btn.label) { btn.label = replaceBtn(btn.label) } if (!btn.verify) return @@ -3341,8 +3532,8 @@ n.dataSource = filterSql(n.dataSource) } else if (n.options) { n.options.forEach(o => { if (o.Text && lisDict[o.Text]) { o.Text = lisDict[o.Text] if (o.Text) { o.Text = replaceList(o.Text) } }) } @@ -3423,8 +3614,8 @@ if (item.type === 'menubar') { item.subMenus = item.subMenus.map(cell => { if (cell.setting.name && menuDict[cell.setting.name]) { cell.setting.name = menuDict[cell.setting.name] if (cell.setting.name) { cell.setting.name = replaceMenu(cell.setting.name) } return cell }) src/views/login/index.scss
@@ -220,6 +220,12 @@ // width: 15px; // height: 15px; // } input[type="checkbox"] { width: 35px; height: 22px; top: -4px; left: -4px; } a { color: var(--mk-sys-color);