kero
Version:
131 lines (119 loc) • 3.99 kB
JavaScript
/**
* Module : kero dataTable row ref
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-08-08 13:54:01
*/
import {getJSObject} from 'neoui-sparrow/js/util';
import {date} from 'neoui-sparrow/js/util/dateUtils';
import {_getField} from './row-util';
const ref = function (fieldName) {
this.parent.createField(fieldName);
if (!this.valueChange[fieldName])
this.valueChange[fieldName] = ko.observable(1);
return ko.pureComputed({
read: function () {
this.valueChange[fieldName]();
this.currentRowChange();
return this.getChildValue(fieldName)
//var value = this._getField(fieldName)['value'];
//return value;
},
write: function (value) {
this.setChildValue(fieldName, value);
//this.setValue(fieldName, value)
},
owner: this
})
}
const refMeta = function (fieldName, key) {
if (!this.metaChange[fieldName + '.' + key])
this.metaChange[fieldName + '.' + key] = ko.observable(1);
return ko.pureComputed({
read: function () {
this.metaChange[fieldName + '.' + key]()
return this.getMeta(fieldName, key)
},
write: function (value) {
this.setMeta(fieldName, key, value)
},
owner: this
})
}
const refCombo = function (fieldName, datasource) {
if (!this.valueChange[fieldName])
this.valueChange[fieldName] = ko.observable(1);
return ko.pureComputed({
read: function () {
this.valueChange[fieldName]();
this.currentRowChange();
var ds = getJSObject(this.parent.parent, datasource)
if (_getField(this, fieldName)['value'] === undefined || _getField(this, fieldName)['value'] === "") return "";
var v = _getField(this, fieldName)['value'];
var valArr = typeof v === 'string' ? v.split(',') : [v];
var nameArr = []
for (var i = 0, length = ds.length; i < length; i++) {
for (var j = 0; j < valArr.length; j++) {
var value = ds[i]['pk'] || ds[i]['value'] || '';
if (value == valArr[j]) {
nameArr.push(ds[i].name)
}
}
}
return nameArr.toString();
},
write: function (value) {
this.setValue(fieldName, value)
},
owner: this
})
}
const refDate = function (fieldName, format) {
if (!this.valueChange[fieldName])
this.valueChange[fieldName] = ko.observable(1);
return ko.pureComputed({
read: function () {
this.valueChange[fieldName]();
this.currentRowChange();
if (!_getField(this, fieldName)['value']) return "";
var valArr = _getField(this, fieldName)['value']
if (!valArr) return "";
valArr = date.format(valArr, format); //moment(valArr).format(format)
return valArr;
},
write: function (value) {
this.setValue(fieldName, value)
},
owner: this
})
}
// 刘云燕提交
const refEnum = function (fieldName) {
this.parent.createField(fieldName);
if (!this.valueChange[fieldName])
this.valueChange[fieldName] = ko.observable(1);
return ko.pureComputed({
read: function () {
this.valueChange[fieldName]();
this.currentRowChange();
if (!_getField(this, fieldName)['value']) return "";
var valArr = _getField(this, fieldName)['value']
if (!valArr) return "";
if(valArr == "N")
valArr = "否";
else if(valArr == "Y")
valArr = "是";
return valArr;
},
write: function (value) {
this.setValue(fieldName, value)
},
owner: this
})
}
export {
ref,
refMeta,
refCombo,
refDate,
refEnum
}