rt-sim-training-client/src/scripts/GlobalPlugin.js

90 lines
2.3 KiB
JavaScript
Raw Normal View History

2019-07-25 10:30:30 +08:00
import Vue from 'vue';
import QueryListPage from '@/components/QueryListPage/QueryListPage';
import DataForm from '@/components/QueryListPage/DataForm';
import TurnbackBar from '@/components/TurnbackBar';
import ConstConfig from '@/scripts/ConstConfig';
import Dictionary from '@/scripts/DictionaryData';
import Theme from '@/jmap/theme/factory';
2019-07-02 16:29:52 +08:00
// 全局组件
2019-07-25 10:30:30 +08:00
Vue.component('DataForm', DataForm);
Vue.component('QueryListPage', QueryListPage);
Vue.component('TurnbackBar', TurnbackBar);
2019-07-02 16:29:52 +08:00
Vue.prototype.$ConstSelect = (function() {
ConstConfig.ConstSelect.translate = function(value, codeName) {
if (codeName) {
const obj = this[codeName].filter(function(item) {
2019-07-25 10:30:30 +08:00
return item.value === value;
})[0];
return obj && obj.label;
2019-07-02 16:29:52 +08:00
}
2019-07-25 10:30:30 +08:00
};
return ConstConfig.ConstSelect;
})();
2019-07-02 16:29:52 +08:00
2019-07-25 10:30:30 +08:00
Vue.prototype.$Dictionary = Dictionary;
Vue.prototype.__windowResizeFlag = false;
2019-07-02 16:29:52 +08:00
Vue.prototype.$addWindowResizeListener = function(cb) {
window.addEventListener('resize', function() {
if (!Vue.__windowResizeFlag) {
2019-07-25 10:30:30 +08:00
Vue.__windowResizeFlag = true;
2019-07-02 16:29:52 +08:00
setTimeout(function() {
2019-07-25 10:30:30 +08:00
Vue.__windowResizeFlag = false;
cb();
}, 100);
2019-07-02 16:29:52 +08:00
}
2019-07-25 10:30:30 +08:00
});
};
Vue.prototype.$theme = new Theme();
Vue.prototype.$messageBox = function(msge) {
if (this.$confirm) {
this.$confirm(`${msge || '处理失败'}`, '提示', {
confirmButtonText: '确定',
type: 'warning',
showCancelButton: false,
center: true
}).then(() => {
}).catch(() => {
});
}
};
Vue.prototype.$convertField = function(fieldValue, enumList, converFormat, isList = false) {
const arr = [];
if (enumList && converFormat && converFormat.length >= 2) {
const value = converFormat[0];
const label = converFormat[1];
if (isList) {
enumList.forEach((element, i) => {
fieldValue.forEach((v, j) => {
if ('' + fieldValue[j] === '' + enumList[i][value]) {
arr.push(enumList[i][label]);
}
});
});
} else {
for (let i = 0; i < enumList.length; i++) {
if ('' + fieldValue === '' + enumList[i][value]) {
return enumList[i][label];
}
}
}
}
return isList ? arr: '';
};
Vue.prototype.$convertList = function(FromList, ToList, checktypeFunction) {
if (FromList) {
ToList.length = 0;
FromList.forEach(elem => {
if (checktypeFunction(elem)) {
ToList.push({ value: elem.code, label: elem.name });
}
});
}
};