| | |
| | | > .card-item-box { |
| | | border-color: $color6!important; |
| | | background-color: $color1!important; |
| | | .ant-mk-text, .ant-mk-date { |
| | | .ant-mk-text:not(.sign-font) { |
| | | color: $color6; |
| | | } |
| | | } |
| | |
| | | .mk-card:hover, .mk-card.active, .mk-card.selected { |
| | | > .card-item-box { |
| | | border-color: $color6!important; |
| | | .ant-mk-text, .ant-mk-date { |
| | | .ant-mk-text:not(.sign-font) { |
| | | color: $color6; |
| | | } |
| | | } |
| | |
| | | } |
| | | .mk-card:hover { |
| | | > .card-item-box { |
| | | .ant-mk-text, .ant-mk-date { |
| | | .ant-mk-text:not(.sign-font) { |
| | | color: $color6; |
| | | } |
| | | } |
| | |
| | | .mk-card.active, .mk-card.selected { |
| | | > .card-item-box { |
| | | border-bottom-color: $color6!important; |
| | | .ant-mk-text, .ant-mk-date { |
| | | .ant-mk-text:not(.sign-font) { |
| | | color: $color6; |
| | | } |
| | | } |
| | |
| | | |
| | | if (level === 'letter_num' && value && /^[0-9a-zA-Z!@#$%^&*()_]*$/.test(value) && /^([^0-9]*|[^a-zA-Z]*)$/.test(value)) { |
| | | callback('密码中必须含有数字和字母。') |
| | | } else if ((level === 'char_num' || level === 'char_num_90') && value && /^[0-9a-zA-Z!@#$%^&*()_]*$/.test(value) && /^([^0-9]*|[^a-zA-Z]*|[^!@#$%^&*()_]*)$/.test(value)) { |
| | | } else if ((level === 'char_num' || level === 'char_num_90' || level === 'char_num_90_sms') && value && /^[0-9a-zA-Z!@#$%^&*()_]*$/.test(value) && /^([^0-9]*|[^a-zA-Z]*|[^!@#$%^&*()_]*)$/.test(value)) { |
| | | callback('密码中必须含有数字、字母和特殊字符。') |
| | | } else { |
| | | callback() |
| | |
| | | |
| | | let supItem = fieldMap.get(key) |
| | | let fields = [] |
| | | |
| | | controlFields[key].forEach(item => { |
| | | if (!fieldMap.has(item.field)) return |
| | | |
| | |
| | | const { value, options, unit } = this.state |
| | | |
| | | return ( |
| | | <div className="style-input-wrap"> |
| | | <div className="mk-style-input-wrap"> |
| | | <Input value={value} addonAfter={ |
| | | options.length > 1 ? |
| | | <Select value={unit} onChange={this.changeUnit}> |
| | |
| | | .style-input-wrap { |
| | | .mk-style-input-wrap { |
| | | line-height: 32px; |
| | | .ant-select { |
| | | width: 60px!important; |
| | |
| | | .single-unit { |
| | | width: 38px; |
| | | text-align: left; |
| | | color: rgba(255, 255, 255, 0.65); |
| | | } |
| | | div[title="vh"], div[title="vw"] { |
| | | color: #1890ff; |
| | |
| | | _style.height = card.wrap.height |
| | | |
| | | return ( |
| | | <div className="normal-navbar-edit-box" style={_style} id={card.uuid}> |
| | | <div className={'normal-navbar-edit-box ' + (card.wrap.menuStyle || '')} style={_style} id={card.uuid}> |
| | | <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ |
| | | <div className="mk-popover-control"> |
| | | <PlusOutlined className="plus" title="添加菜单" onClick={() => MKEmitter.emit('addmobmenu')}/> |
| | |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | .am-tab-bar-tab.tab-zoomIn { |
| | | .am-tab-bar-tab-icon { |
| | | padding: 10px; |
| | | display: inline-block; |
| | | background: #1890ff; |
| | | color: #ffffff; |
| | | border-radius: 40px; |
| | | width: 42px; |
| | | height: 42px; |
| | | font-size: 15px; |
| | | transform: translate(0px, -25px); |
| | | } |
| | | .am-tab-bar-tab-title { |
| | | font-size: 1.2em; |
| | | color: #1890ff; |
| | | transform: translate(0px, -22px); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .anticon-tool { |
| | |
| | | background: rgba(255, 255, 255, 0.55); |
| | | } |
| | | } |
| | | |
| | | .normal-navbar-edit-box:not(.class1) { |
| | | .menu .am-tab-bar-tab.tab-zoomIn { |
| | | .am-tab-bar-tab-icon { |
| | | padding: 10px; |
| | | display: inline-block; |
| | | background: #1890ff; |
| | | color: #ffffff; |
| | | border-radius: 40px; |
| | | width: 42px; |
| | | height: 42px; |
| | | font-size: 15px; |
| | | transform: translate(0px, -25px); |
| | | } |
| | | .am-tab-bar-tab-title { |
| | | font-size: 1.2em; |
| | | color: #1890ff; |
| | | transform: translate(0px, -22px); |
| | | } |
| | | } |
| | | } |
| | | .normal-navbar-edit-box.class1 { |
| | | background-color: #1890ff!important; |
| | | border-top-left-radius: 40px; |
| | | border-top-right-radius: 40px; |
| | | .am-tab-bar-tab-icon { |
| | | color: #ffffff; |
| | | position: relative; |
| | | top: 5px; |
| | | } |
| | | .menu .am-tab-bar-tab .anticon { |
| | | font-size: 20px; |
| | | } |
| | | .am-tab-bar-tab-title { |
| | | display: none; |
| | | } |
| | | } |
| | | .normal-navbar-edit-box::after { |
| | | display: block; |
| | | content: ' '; |
| | |
| | | ] |
| | | }, |
| | | { |
| | | type: 'number', |
| | | type: 'styleInput', |
| | | field: 'height', |
| | | label: '高度', |
| | | initval: wrap.height || 50, |
| | | min: 30, |
| | | max: 200, |
| | | precision: 0, |
| | | required: true |
| | | required: true, |
| | | options: ['px'] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | |
| | | ], |
| | | controlFields: [ |
| | | {field: 'position', values: ['tab']}, |
| | | {field: 'selectStyle', values: ['tab']}, |
| | | ] |
| | | }, |
| | | { |
| | |
| | | {value: 'bottom', label: '底部'}, |
| | | {value: 'left', label: '左侧'}, |
| | | {value: 'right', label: '右侧'}, |
| | | ], |
| | | controlFields: [ |
| | | {field: 'marginTop', values: ['left', 'right']}, |
| | | ] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'selectStyle', |
| | | field: 'menuStyle', |
| | | label: '菜单样式', |
| | | initval: wrap.selectStyle || 'default', |
| | | tooltip: '具体样式请在系统运行环境查看。', |
| | | initval: wrap.menuStyle || 'default', |
| | | tooltip: '使用APP中原生菜单栏时无效。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'default', label: '默认'}, |
| | |
| | | ] |
| | | }, |
| | | { |
| | | type: 'styleInput', |
| | | field: 'marginTop', |
| | | label: '顶部缩进', |
| | | initval: wrap.marginTop || '', |
| | | required: false, |
| | | options: ['px', 'vh'] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'permission', |
| | | label: '权限验证', |
| | |
| | | |
| | | if (card.eleType === 'sequence') { |
| | | let _style = {} |
| | | let className = '' |
| | | if (card.marks) { |
| | | _style.width = card.innerHeight |
| | | _style.height = card.innerHeight |
| | |
| | | let mark = getMark(card.marks, data, _style) |
| | | |
| | | _style = mark.style |
| | | className = mark.signType |
| | | } |
| | | contents.push( |
| | | <Col key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={card.style}> |
| | | <div className="ant-mk-text line1" style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{data.$Index || ''}</span></div> |
| | | <div className={'ant-mk-text line1' + className} style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{data.$Index || ''}</span></div> |
| | | </div> |
| | | </Col> |
| | | ) |
| | |
| | | } |
| | | } |
| | | |
| | | let className = '' |
| | | if (card.marks) { |
| | | let mark = getMark(card.marks, data, _style) |
| | | |
| | |
| | | val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span> |
| | | } |
| | | } |
| | | className = mark.signType |
| | | } |
| | | |
| | | if (card.link || (card.anchors && card.anchors.length > 0)) { |
| | |
| | | contents.push( |
| | | <Col key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style} onClick={(e) => {this.openNewView(e, card)}}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | </div> |
| | | </Col> |
| | | ) |
| | |
| | | } |
| | | } |
| | | |
| | | let className = '' |
| | | if (card.marks) { |
| | | let mark = getMark(card.marks, data, _style) |
| | | |
| | |
| | | val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span> |
| | | } |
| | | } |
| | | className = mark.signType |
| | | } |
| | | |
| | | contents.push( |
| | | <Col key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | </div> |
| | | </Col> |
| | | ) |
| | |
| | | } |
| | | } |
| | | |
| | | let className = '' |
| | | if (card.marks) { |
| | | let mark = getMark(card.marks, data, _style) |
| | | |
| | |
| | | val = <span>{val} <MkIcon style={mark.innerStyle} type={mark.icon} /></span> |
| | | } |
| | | } |
| | | className = mark.signType |
| | | } |
| | | |
| | | contents.push( |
| | | <Col key={card.uuid} style={_style_} span={card.width}> |
| | | <div style={_style}> |
| | | <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | <div className={'ant-mk-text line' + (card.height || '') + className} style={{height: card.innerHeight || 'auto'}}>{val}</div> |
| | | </div> |
| | | </Col> |
| | | ) |
| | |
| | | >.card-item-box { |
| | | cursor: not-allowed; |
| | | color: #bcbcbc; |
| | | .ant-mk-text, .ant-mk-date, .anticon { |
| | | .ant-mk-text, .anticon { |
| | | color: #bcbcbc!important; |
| | | span { |
| | | color: #bcbcbc!important; |
| | |
| | | } else if (_actionType === 'LogicDelete') { // 逻辑删除 |
| | | _sql += ` |
| | | /* 默认sql */ |
| | | update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifyuserid=@userid@ where ${primaryKey}=@${primaryKey}@;` |
| | | update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}=@${primaryKey}@;` |
| | | |
| | | } else if (_actionType === 'delete') { // 物理删除 |
| | | let _msg = '' |
| | |
| | | if (_verify.voucher && _verify.voucher.enabled) { |
| | | _voucher = ',BVoucher=@BVoucher,FIBVoucherDate=@FIBVoucherDate,FiYear=@FiYear' |
| | | } |
| | | _defaultsql = `update ${card.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifyuserid=@userid@${_voucher} where ${_primaryKey}${card.Ot !== 'requiredOnce' ? '=@ID@' : ' in (select ID from dbo.SplitComma(@ID@))'};` |
| | | _defaultsql = `update ${card.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@${_voucher} where ${_primaryKey}${card.Ot !== 'requiredOnce' ? '=@ID@' : ' in (select ID from dbo.SplitComma(@ID@))'};` |
| | | } else if (card.sqlType === 'delete') { |
| | | let _msg = '' |
| | | if (columns && columns.length > 0 && card.Ot !== 'notRequired' && card.Ot !== 'requiredOnce') { |
| | |
| | | |
| | | _sql += ` |
| | | /* 默认sql */ |
| | | update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifyuserid=@userid@ where ${primaryKey}${_ID};` |
| | | update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}${_ID};` |
| | | |
| | | } else if (_actionType === 'delete') { // 物理删除 |
| | | let _msg = '' |
| | |
| | | let icon = null |
| | | let innerStyle = null |
| | | let position = null |
| | | let signType = '' |
| | | style = JSON.parse(JSON.stringify(style)) |
| | | |
| | | marks.some(mark => { |
| | |
| | | if (type === 'font') { |
| | | style.color = mark.color |
| | | innerStyle = {color: mark.color} |
| | | signType = ' sign-font' |
| | | } else if (type === 'background') { |
| | | style.backgroundColor = mark.color |
| | | if (mark.fontColor) { |
| | |
| | | style, |
| | | icon, |
| | | innerStyle, |
| | | position |
| | | position, |
| | | signType |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | let level = localStorage.getItem(_href + 'pwdlevel') |
| | | |
| | | if (level) { |
| | | if (level && process.env.NODE_ENV === 'production') { |
| | | let visible = false |
| | | let tip = '密码强度不够,请修改密码!' |
| | | if (param.password.length < 8) { |
| | |
| | | |
| | | let level = res.pwd_level || '' |
| | | |
| | | if (level && !['letter_num', 'char_num', 'char_num_90'].includes(level)) { |
| | | if (level && !['letter_num', 'char_num', 'char_num_90', 'char_num_90_sms'].includes(level)) { |
| | | level = '' |
| | | } |
| | | |