mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
[bugfix] should not access window when ssr (#344)
* fix: Tabbar icon line-height * [new feature] progress add showPivot prop * [new feature] TabItem support vue-router * [new feature] update document header style * [Doc] add toast english ducoment * [bugfix] Search box-sizing wrong * [Doc] update vant-demo respo * [Doc] translate theme & demo pages * [Doc] add Internationalization document * [bugfix] remove unnecessary props * [fix] optimize clickoutside * [new feature] optimize find-parent * [new feature]: change document title accordinng to language * [new feature] Pagination code review * [improvement] adjust icon-font unicode * [improvement] Icon spinner color inherit * [improvement] icon default width * [bugfix] DateTimePicker validate date props * [bugfix] Tab item text ellipsis * [improvement] optimize single line ellipsis * [Improvement] optimzie staticClass * [Improvement] Button: use sfc instread of jsx * [Improvement] update actionsheet close icon style * fix: yarn.lock * fix: icon test cases * [bugfix] errors during ssr
This commit is contained in:
parent
99f739bfee
commit
0d686313e0
@ -5,7 +5,7 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import { Locale, Toast, Dialog } from 'packages';
|
import { Locale, Toast, Dialog } from 'packages';
|
||||||
import { DemoBlock, DemoSection } from 'vant-doc';
|
import { DemoBlock, DemoSection } from 'vant-doc';
|
||||||
import camelize from 'packages/utils/camelize';
|
import { camelize } from 'packages/utils';
|
||||||
|
|
||||||
const demoBaseMixin = {
|
const demoBaseMixin = {
|
||||||
beforeCreate() {
|
beforeCreate() {
|
||||||
|
@ -41,7 +41,7 @@ import Icon from '../icon';
|
|||||||
import Field from '../field';
|
import Field from '../field';
|
||||||
import Cell from '../cell';
|
import Cell from '../cell';
|
||||||
import CellGroup from '../cell-group';
|
import CellGroup from '../cell-group';
|
||||||
import isAndroid from '../utils/env/is-android';
|
import { isAndroid } from '../utils';
|
||||||
import { i18n } from '../locale';
|
import { i18n } from '../locale';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import get from '../utils/get';
|
import { get, camelize } from '../utils';
|
||||||
import camelize from '../utils/camelize';
|
|
||||||
import deepAssign from '../utils/deep-assign';
|
import deepAssign from '../utils/deep-assign';
|
||||||
import defaultMessages from './lang/zh-CN';
|
import defaultMessages from './lang/zh-CN';
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
import { isServer } from '../../utils';
|
||||||
import Popup from '../../popup';
|
import Popup from '../../popup';
|
||||||
import Toast from '../../toast';
|
import Toast from '../../toast';
|
||||||
import SkuHeader from '../components/SkuHeader';
|
import SkuHeader from '../components/SkuHeader';
|
||||||
@ -176,6 +177,10 @@ export default {
|
|||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
bodyStyle() {
|
bodyStyle() {
|
||||||
|
if (isServer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const windowHeight = window.innerHeight;
|
const windowHeight = window.innerHeight;
|
||||||
// header高度82px, sku actions高度50px,如果改动了样式自己传下bodyOffsetTop调整下
|
// header高度82px, sku actions高度50px,如果改动了样式自己传下bodyOffsetTop调整下
|
||||||
const maxHeight = windowHeight - this.bodyOffsetTop;
|
const maxHeight = windowHeight - this.bodyOffsetTop;
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
const camelizeRE = /-(\w)/g;
|
|
||||||
export default function(str) {
|
|
||||||
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '');
|
|
||||||
}
|
|
@ -6,9 +6,8 @@
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import Vue from 'vue';
|
import { isServer } from './index';
|
||||||
|
|
||||||
const isServer = Vue.prototype.$isServer;
|
|
||||||
const context = '@@clickoutsideContext';
|
const context = '@@clickoutsideContext';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
3
packages/utils/env/is-android.js
vendored
3
packages/utils/env/is-android.js
vendored
@ -1,3 +0,0 @@
|
|||||||
export default function() {
|
|
||||||
return /android/.test(navigator.userAgent.toLowerCase());
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
export default function(object, path) {
|
|
||||||
const keys = path.split('.');
|
|
||||||
let result = object;
|
|
||||||
|
|
||||||
keys.forEach(key => {
|
|
||||||
result = result[key] || '';
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
}
|
|
27
packages/utils/index.js
Normal file
27
packages/utils/index.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import Vue from 'vue';
|
||||||
|
|
||||||
|
export const isServer = Vue.prototype.$isServer;
|
||||||
|
|
||||||
|
export function isDef(value) {
|
||||||
|
return value !== undefined && value !== null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function get(object, path) {
|
||||||
|
const keys = path.split('.');
|
||||||
|
let result = object;
|
||||||
|
|
||||||
|
keys.forEach(key => {
|
||||||
|
result = isDef(result[key]) ? result[key] : '';
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
const camelizeRE = /-(\w)/g;
|
||||||
|
export function camelize(str) {
|
||||||
|
return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isAndroid() {
|
||||||
|
return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
import Vue from 'vue';
|
import { isServer } from './index';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
debounce(func, wait, immediate) {
|
debounce(func, wait, immediate) {
|
||||||
@ -71,5 +71,5 @@ export default {
|
|||||||
return element === window ? element.innerHeight : element.getBoundingClientRect().height;
|
return element === window ? element.innerHeight : element.getBoundingClientRect().height;
|
||||||
},
|
},
|
||||||
|
|
||||||
getComputedStyle: !Vue.prototype.$isServer && document.defaultView.getComputedStyle.bind(document.defaultView)
|
getComputedStyle: !isServer && document.defaultView.getComputedStyle.bind(document.defaultView)
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user