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 '@/jmapNew/theme/factory'; // 全局组件 Vue.component('DataForm', DataForm); Vue.component('QueryListPage', QueryListPage); Vue.component('TurnbackBar', TurnbackBar); Vue.prototype.$ConstSelect = (function() { ConstConfig.ConstSelect.translate = function(value, codeName) { if (codeName) { const obj = this[codeName].filter(function(item) { return item.value === value; })[0]; return obj && obj.label; } }; return ConstConfig.ConstSelect; })(); Vue.prototype.$Dictionary = Dictionary; Vue.prototype.__windowResizeFlag = false; Vue.prototype.$addWindowResizeListener = function(cb) { window.addEventListener('resize', function() { if (!Vue.__windowResizeFlag) { Vue.__windowResizeFlag = true; setTimeout(function() { Vue.__windowResizeFlag = false; cb(); }, 100); } }); }; Vue.prototype.$theme = new Theme(); Vue.prototype.$messageBox = function(msge, title, type) { if (this.$confirm) { this.$confirm(`${msge || this.$t('global.processFailure')}`, title || this.$t('global.tips'), { confirmButtonText: this.$t('global.confirm'), type: 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) => { if (v == element[value]) { arr.push(element[label]); } }); }); } else { for (let i = 0; i < enumList.length; i++) { if ('' + fieldValue == '' + enumList[i][value]) { return enumList[i][label]; } } } } return isList ? arr : ''; }; Vue.prototype.$convertSpecifiedField = function(dataDict, enumList, key, value, fieldList) { if (dataDict && enumList && fieldList && enumList.length && fieldList.length) { fieldList.forEach(field => { for (let i = 0; i < enumList.length; i++) { if (enumList[i][key] === dataDict[field]) { dataDict[field] = enumList[i][value]; return; } } }); } }; 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 }); } }); } }; // 对象2 复制到 对象1上 并保留对象1原有字段 Vue.prototype.$copyClone = function(obj1, obj2 = {}) { for (const keys in obj1) { if (obj1.hasOwnProperty(keys)) { if (obj1[keys] && typeof obj1[keys] === 'object') { // 如果值是对象,就递归一下 obj1[keys] = Vue.prototype.$copyClone(obj1[keys], obj2[keys]); } else { obj1[keys] = obj2[keys]; } } } return obj1; };