vue-ant-patterns
Version:
vue-ant-patterns
183 lines (159 loc) • 5.16 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _vueTypes = require('ant-design-vue/lib/_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _middleMixins = require('./middleMixins');
var _middleMixins2 = _interopRequireDefault(_middleMixins);
var _middleData = require('./middleData.js');
var _middleData2 = _interopRequireDefault(_middleData);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var BQueryCondition = {
name: 'BQueryCondition',
mixins: [_middleMixins2['default']],
props: {
prefixCls: _vueTypes2['default'].string.def('depot-dqcondition'),
dataType: _vueTypes2['default'].oneOf(['String', // 字符串类型
'Short', // 短整型
'Integer', // 整型
'Long', // 长整型
'BigDecimal', //
'Float', // 浮点型
'Double', // 双精度浮点型
'Date', // 日期类型
'DateTo', // 日期范围类型
'Code', // 代码类型
'Enum', // 枚举类型
'SetId', // 表集合
'ComboBox', 'SearchHelper'] // 搜索助手类型(实际数据类型为String)
), // 数据类型 type
code: _vueTypes2['default'].string.def(''), // key code
name: _vueTypes2['default'].string.def('标题'), // 标题 name
typeCode: _vueTypes2['default'].string.def(''), // 常数代码code
comboOptions: _vueTypes2['default'].array.def([]), // comboOptions
defaultValue: _vueTypes2['default'].any
},
data: function data() {
var dataType = this.dataType,
code = this.code,
name = this.name;
var fdata = _middleData2['default'].find(function (_mitem) {
return _mitem.dataType === dataType;
});
var defaultValue = fdata.options[0].code;
return {
isInitialize: true,
conditionData: { type: dataType, code: code, name: name, value: null, operator: defaultValue },
ovalue: this.defaultValue,
operator: defaultValue,
middleOptions: fdata.options
};
},
watch: {
defaultValue: function defaultValue(v) {
this.ovalue = v;
this.formatResValue();
}
},
mounted: function mounted() {
this.formatResValue();
},
methods: {
// 条件标题
renderLabel: function renderLabel() {
var h = this.$createElement;
return h('span', [this.name]);
},
// 构建中间条件
renderMiddel: function renderMiddel() {
var h = this.$createElement;
// defaultValue="Zhejiang"
return h(
'a-select',
{ style: 'width:100%', attrs: { value: this.operator },
on: {
'change': this.changeMiddleValue
}
},
[this.middleOptions.map(function (_oitem) {
return h(
'a-select-option',
{
attrs: { value: _oitem.code }
},
[_oitem.title]
);
})]
);
},
// 构建输入框组件
renderControl: function renderControl() {
var dataType = this.dataType;
return this['render_Col_' + dataType]();
},
// 构建返回值
formatResValue: function formatResValue() {
var dataType = this.dataType,
code = this.code,
name = this.name,
ovalue = this.ovalue,
operator = this.operator;
this.conditionData = { type: dataType, code: code, name: name, value: ovalue, operator: operator };
},
changeView: function changeView(obj) {
// code: "c3"
// dataType: "DateTo"
// name: "日期"
// operator: ""
// value: null
this.ovalue = obj.value;
this.operator = obj.operator;
this.formatResValue();
},
resetItem: function resetItem() {
this.isInitialize = true;
this.ovalue = this.defaultValue;
this.operator = this.middleOptions[0].code;
this.formatResValue();
}
},
render: function render() {
var h = arguments[0];
var prefixCls = this.prefixCls;
var conditionItemProps = {
'class': (0, _classnames2['default'])((0, _defineProperty3['default'])({}, '' + prefixCls, true))
};
var conlabelProps = {
'class': (0, _classnames2['default'])((0, _defineProperty3['default'])({}, prefixCls + '-label', true))
};
var conminProps = {
'class': (0, _classnames2['default'])((0, _defineProperty3['default'])({}, prefixCls + '-middle', true))
};
var concolProps = {
'class': (0, _classnames2['default'])((0, _defineProperty3['default'])({}, prefixCls + '-control', true))
};
return h(
'd-container-h',
conditionItemProps,
[h(
'div',
conlabelProps,
[this.renderLabel()]
), h(
'div',
conminProps,
[this.renderMiddel()]
), h(
'div',
concolProps,
[this.renderControl()]
)]
);
}
};
exports['default'] = BQueryCondition;