提交 5a761996 编写于 作者: fxy060608's avatar fxy060608

feat: add page-meta.vue,navigation-bar.vue

上级 341bb350
......@@ -39,6 +39,7 @@ service.run('build', {
target: 'lib',
formats: process.env.UNI_WATCH === 'true' ? 'umd' : 'umd-min',
entry,
'inline-vue': !!process.env.UNI_VIEW,
clean: !process.env.UNI_VIEW,
mode: process.env.NODE_ENV
}).then(function () {
......
......@@ -50,7 +50,6 @@ if (process.env.UNI_VIEW) { // 方便调试
}
module.exports = function configureWebpack (config) {
if (process.env.UNI_VIEW === 'true') {
config.externals && (delete config.externals['vue'])
alias['vue$'] = resolve('packages/vue-cli-plugin-uni/packages/h5-vue/dist/vue.runtime.esm.js')
}
......
......@@ -197,7 +197,8 @@ const third = [
'upx2px',
'restoreGlobal',
'getSubNVueById',
'getCurrentSubNVue'
'getCurrentSubNVue',
'setPageMeta'
]
const apis = [
......
......@@ -4,7 +4,7 @@
"scripts": {
"build:service:legacy": "npm run lint && rollup -c build/rollup.config.service.js",
"lint": "eslint --fix --config package.json --ext .js --ext .vue --ignore-path .eslintignore build src",
"lint:cli": "eslint --fix --config package.json --ignore-path .eslintignore packages/uni-cli-shared packages/uni-template-compiler \"packages/vue-cli-*/**/*.js\" \"packages/webpack-uni-*/**/*.js\"",
"lint:cli": "eslint --fix --config package.json --ext .js --ext .vue --ignore-path .eslintignore packages/uni-cli-shared packages/uni-template-compiler \"packages/vue-cli-*/**/*.js\" \"packages/webpack-uni-*/**/*.js\"",
"dev:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=true UNI_PLATFORM=h5 node build/build.js",
"build:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=false UNI_PLATFORM=h5 node build/build.js",
"build:h5:ui": "cross-env NODE_ENV=production UNI_WATCH=false UNI_PLATFORM=h5 UNI_UI=true node build/build.js",
......
......@@ -209,7 +209,8 @@ var serviceContext = (function () {
'upx2px',
'restoreGlobal',
'getSubNVueById',
'getCurrentSubNVue'
'getCurrentSubNVue',
'setPageMeta'
];
const apis = [
......@@ -670,6 +671,7 @@ var serviceContext = (function () {
}];
var require_context_module_0_0 = /*#__PURE__*/Object.freeze({
__proto__: null,
base64ToArrayBuffer: base64ToArrayBuffer,
arrayBufferToBase64: arrayBufferToBase64
});
......@@ -681,6 +683,7 @@ var serviceContext = (function () {
}];
var require_context_module_0_1 = /*#__PURE__*/Object.freeze({
__proto__: null,
canIUse: canIUse
});
......@@ -711,6 +714,7 @@ var serviceContext = (function () {
}];
var require_context_module_0_2 = /*#__PURE__*/Object.freeze({
__proto__: null,
$on: $on,
$once: $once,
$off: $off,
......@@ -725,6 +729,7 @@ var serviceContext = (function () {
const removeInterceptor$1 = addInterceptor$1;
var require_context_module_0_3 = /*#__PURE__*/Object.freeze({
__proto__: null,
addInterceptor: addInterceptor$1,
removeInterceptor: removeInterceptor$1
});
......@@ -736,6 +741,7 @@ var serviceContext = (function () {
}];
var require_context_module_0_4 = /*#__PURE__*/Object.freeze({
__proto__: null,
upx2px: upx2px
});
......@@ -872,6 +878,7 @@ var serviceContext = (function () {
};
var require_context_module_0_5 = /*#__PURE__*/Object.freeze({
__proto__: null,
canvasGetImageData: canvasGetImageData,
canvasPutImageData: canvasPutImageData,
canvasToTempFilePath: canvasToTempFilePath,
......@@ -897,6 +904,7 @@ var serviceContext = (function () {
}];
var require_context_module_0_6 = /*#__PURE__*/Object.freeze({
__proto__: null,
createAudioContext: createAudioContext,
createVideoContext: createVideoContext,
createMapContext: createMapContext,
......@@ -916,6 +924,7 @@ var serviceContext = (function () {
};
var require_context_module_0_7 = /*#__PURE__*/Object.freeze({
__proto__: null,
makePhoneCall: makePhoneCall
});
......@@ -930,6 +939,7 @@ var serviceContext = (function () {
};
var require_context_module_0_8 = /*#__PURE__*/Object.freeze({
__proto__: null,
setClipboardData: setClipboardData
});
......@@ -944,6 +954,7 @@ var serviceContext = (function () {
};
var require_context_module_0_9 = /*#__PURE__*/Object.freeze({
__proto__: null,
openDocument: openDocument
});
......@@ -954,6 +965,7 @@ var serviceContext = (function () {
};
var require_context_module_0_10 = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseLocation: chooseLocation
});
......@@ -977,6 +989,7 @@ var serviceContext = (function () {
};
var require_context_module_0_11 = /*#__PURE__*/Object.freeze({
__proto__: null,
getLocation: getLocation
});
......@@ -1006,6 +1019,7 @@ var serviceContext = (function () {
};
var require_context_module_0_12 = /*#__PURE__*/Object.freeze({
__proto__: null,
openLocation: openLocation
});
......@@ -1067,6 +1081,7 @@ var serviceContext = (function () {
};
var require_context_module_0_13 = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseImage: chooseImage
});
......@@ -1094,6 +1109,7 @@ var serviceContext = (function () {
};
var require_context_module_0_14 = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseVideo: chooseVideo
});
......@@ -1186,6 +1202,7 @@ var serviceContext = (function () {
};
var require_context_module_0_15 = /*#__PURE__*/Object.freeze({
__proto__: null,
getImageInfo: getImageInfo
});
......@@ -1221,6 +1238,7 @@ var serviceContext = (function () {
};
var require_context_module_0_16 = /*#__PURE__*/Object.freeze({
__proto__: null,
previewImage: previewImage
});
......@@ -1238,6 +1256,7 @@ var serviceContext = (function () {
};
var require_context_module_0_17 = /*#__PURE__*/Object.freeze({
__proto__: null,
downloadFile: downloadFile
});
......@@ -1340,6 +1359,7 @@ var serviceContext = (function () {
};
var require_context_module_0_18 = /*#__PURE__*/Object.freeze({
__proto__: null,
request: request
});
......@@ -1393,6 +1413,7 @@ var serviceContext = (function () {
};
var require_context_module_0_19 = /*#__PURE__*/Object.freeze({
__proto__: null,
connectSocket: connectSocket,
sendSocketMessage: sendSocketMessage,
closeSocket: closeSocket
......@@ -1429,6 +1450,7 @@ var serviceContext = (function () {
};
var require_context_module_0_20 = /*#__PURE__*/Object.freeze({
__proto__: null,
uploadFile: uploadFile
});
......@@ -1453,6 +1475,7 @@ var serviceContext = (function () {
};
var require_context_module_0_21 = /*#__PURE__*/Object.freeze({
__proto__: null,
getProvider: getProvider
});
......@@ -1601,6 +1624,7 @@ var serviceContext = (function () {
));
var require_context_module_0_22 = /*#__PURE__*/Object.freeze({
__proto__: null,
redirectTo: redirectTo,
reLaunch: reLaunch,
navigateTo: navigateTo,
......@@ -1644,6 +1668,7 @@ var serviceContext = (function () {
const removeStorageSync = getStorageSync;
var require_context_module_0_23 = /*#__PURE__*/Object.freeze({
__proto__: null,
getStorage: getStorage,
getStorageSync: getStorageSync,
setStorage: setStorage,
......@@ -1680,6 +1705,7 @@ var serviceContext = (function () {
};
var require_context_module_0_24 = /*#__PURE__*/Object.freeze({
__proto__: null,
loadFontFace: loadFontFace
});
......@@ -1722,6 +1748,7 @@ var serviceContext = (function () {
};
var require_context_module_0_25 = /*#__PURE__*/Object.freeze({
__proto__: null,
setNavigationBarColor: setNavigationBarColor,
setNavigationBarTitle: setNavigationBarTitle
});
......@@ -1741,6 +1768,7 @@ var serviceContext = (function () {
};
var require_context_module_0_26 = /*#__PURE__*/Object.freeze({
__proto__: null,
pageScrollTo: pageScrollTo
});
......@@ -1858,6 +1886,7 @@ var serviceContext = (function () {
};
var require_context_module_0_27 = /*#__PURE__*/Object.freeze({
__proto__: null,
showModal: showModal,
showToast: showToast,
showLoading: showLoading,
......@@ -1942,6 +1971,7 @@ var serviceContext = (function () {
};
var require_context_module_0_28 = /*#__PURE__*/Object.freeze({
__proto__: null,
setTabBarItem: setTabBarItem,
setTabBarStyle: setTabBarStyle,
hideTabBar: hideTabBar,
......@@ -2510,6 +2540,7 @@ var serviceContext = (function () {
}
var require_context_module_1_0 = /*#__PURE__*/Object.freeze({
__proto__: null,
base64ToArrayBuffer: base64ToArrayBuffer$1,
arrayBufferToBase64: arrayBufferToBase64$1
});
......@@ -2526,6 +2557,7 @@ var serviceContext = (function () {
}
var require_context_module_1_1 = /*#__PURE__*/Object.freeze({
__proto__: null,
canIUse: canIUse$1
});
......@@ -2534,6 +2566,7 @@ var serviceContext = (function () {
};
var require_context_module_1_2 = /*#__PURE__*/Object.freeze({
__proto__: null,
interceptors: interceptors,
addInterceptor: addInterceptor,
removeInterceptor: removeInterceptor
......@@ -2582,6 +2615,7 @@ var serviceContext = (function () {
}
var require_context_module_1_3 = /*#__PURE__*/Object.freeze({
__proto__: null,
upx2px: upx2px$1
});
......@@ -2608,6 +2642,7 @@ var serviceContext = (function () {
}
var eventApis = /*#__PURE__*/Object.freeze({
__proto__: null,
$on: $on$1,
$off: $off$1,
$once: $once$1,
......@@ -4276,6 +4311,7 @@ var serviceContext = (function () {
}
var webview = /*#__PURE__*/Object.freeze({
__proto__: null,
SCAN_ID: SCAN_ID,
SCAN_PATH: SCAN_PATH,
scanCode: scanCode
......@@ -4487,6 +4523,7 @@ var serviceContext = (function () {
}
var weex$1 = /*#__PURE__*/Object.freeze({
__proto__: null,
scanCode: scanCode$1
});
......@@ -5252,6 +5289,7 @@ var serviceContext = (function () {
}
var webview$1 = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseLocation: chooseLocation$1
});
......@@ -5315,6 +5353,7 @@ var serviceContext = (function () {
}
var weex$2 = /*#__PURE__*/Object.freeze({
__proto__: null,
chooseLocation: chooseLocation$2
});
......@@ -5435,6 +5474,7 @@ var serviceContext = (function () {
}
var webview$2 = /*#__PURE__*/Object.freeze({
__proto__: null,
openLocation: openLocation$1
});
......@@ -5454,6 +5494,7 @@ var serviceContext = (function () {
}
var weex$3 = /*#__PURE__*/Object.freeze({
__proto__: null,
openLocation: openLocation$2
});
......@@ -8678,6 +8719,7 @@ var serviceContext = (function () {
var api = /*#__PURE__*/Object.freeze({
__proto__: null,
startPullDownRefresh: startPullDownRefresh,
stopPullDownRefresh: stopPullDownRefresh,
$on: $on$1,
......@@ -9000,6 +9042,7 @@ var serviceContext = (function () {
}
var require_context_module_1_4 = /*#__PURE__*/Object.freeze({
__proto__: null,
createInnerAudioContext: createInnerAudioContext
});
......@@ -9144,6 +9187,7 @@ var serviceContext = (function () {
}
var require_context_module_1_5 = /*#__PURE__*/Object.freeze({
__proto__: null,
getBackgroundAudioManager: getBackgroundAudioManager
});
......@@ -10002,6 +10046,7 @@ var serviceContext = (function () {
}
var require_context_module_1_6 = /*#__PURE__*/Object.freeze({
__proto__: null,
CanvasContext: CanvasContext,
createCanvasContext: createCanvasContext$1,
canvasGetImageData: canvasGetImageData$1,
......@@ -10052,6 +10097,7 @@ var serviceContext = (function () {
}
var require_context_module_1_7 = /*#__PURE__*/Object.freeze({
__proto__: null,
MapContext: MapContext,
createMapContext: createMapContext$1
});
......@@ -10115,6 +10161,7 @@ var serviceContext = (function () {
}
var require_context_module_1_8 = /*#__PURE__*/Object.freeze({
__proto__: null,
VideoContext: VideoContext,
createVideoContext: createVideoContext$1
});
......@@ -10161,6 +10208,7 @@ var serviceContext = (function () {
});
var require_context_module_1_9 = /*#__PURE__*/Object.freeze({
__proto__: null,
EditorContext: EditorContext
});
......@@ -10205,6 +10253,7 @@ var serviceContext = (function () {
}
var require_context_module_1_10 = /*#__PURE__*/Object.freeze({
__proto__: null,
onAccelerometerChange: onAccelerometerChange,
startAccelerometer: startAccelerometer,
stopAccelerometer: stopAccelerometer
......@@ -10228,6 +10277,7 @@ var serviceContext = (function () {
const onBLECharacteristicValueChange$1 = on('onBLECharacteristicValueChange');
var require_context_module_1_11 = /*#__PURE__*/Object.freeze({
__proto__: null,
onBluetoothDeviceFound: onBluetoothDeviceFound$1,
onBluetoothAdapterStateChange: onBluetoothAdapterStateChange$1,
onBLEConnectionStateChange: onBLEConnectionStateChange$1,
......@@ -10275,6 +10325,7 @@ var serviceContext = (function () {
}
var require_context_module_1_12 = /*#__PURE__*/Object.freeze({
__proto__: null,
onCompassChange: onCompassChange,
startCompass: startCompass,
stopCompass: stopCompass
......@@ -10293,6 +10344,7 @@ var serviceContext = (function () {
}
var require_context_module_1_13 = /*#__PURE__*/Object.freeze({
__proto__: null,
onNetworkStatusChange: onNetworkStatusChange
});
......@@ -10370,6 +10422,7 @@ var serviceContext = (function () {
}
var require_context_module_1_14 = /*#__PURE__*/Object.freeze({
__proto__: null,
getRecorderManager: getRecorderManager
});
......@@ -10458,6 +10511,7 @@ var serviceContext = (function () {
}
var require_context_module_1_15 = /*#__PURE__*/Object.freeze({
__proto__: null,
downloadFile: downloadFile$1
});
......@@ -10563,6 +10617,7 @@ var serviceContext = (function () {
}
var require_context_module_1_16 = /*#__PURE__*/Object.freeze({
__proto__: null,
request: request$1
});
......@@ -10737,6 +10792,7 @@ var serviceContext = (function () {
}
var require_context_module_1_17 = /*#__PURE__*/Object.freeze({
__proto__: null,
connectSocket: connectSocket$1,
sendSocketMessage: sendSocketMessage$1,
closeSocket: closeSocket$1,
......@@ -10831,6 +10887,7 @@ var serviceContext = (function () {
}
var require_context_module_1_18 = /*#__PURE__*/Object.freeze({
__proto__: null,
uploadFile: uploadFile$1
});
......@@ -10940,6 +10997,7 @@ var serviceContext = (function () {
}
var require_context_module_1_19 = /*#__PURE__*/Object.freeze({
__proto__: null,
setStorage: setStorage$1,
setStorageSync: setStorageSync$1,
getStorage: getStorage$1,
......@@ -11031,6 +11089,7 @@ var serviceContext = (function () {
}
var require_context_module_1_20 = /*#__PURE__*/Object.freeze({
__proto__: null,
createAnimation: createAnimation
});
......@@ -11095,6 +11154,7 @@ var serviceContext = (function () {
}
var require_context_module_1_21 = /*#__PURE__*/Object.freeze({
__proto__: null,
createIntersectionObserver: createIntersectionObserver
});
......@@ -11235,6 +11295,7 @@ var serviceContext = (function () {
}
var require_context_module_1_22 = /*#__PURE__*/Object.freeze({
__proto__: null,
createSelectorQuery: createSelectorQuery
});
......@@ -11251,6 +11312,7 @@ var serviceContext = (function () {
}
var require_context_module_1_23 = /*#__PURE__*/Object.freeze({
__proto__: null,
onKeyboardHeightChange: onKeyboardHeightChange
});
......@@ -11275,6 +11337,7 @@ var serviceContext = (function () {
}
var require_context_module_1_24 = /*#__PURE__*/Object.freeze({
__proto__: null,
loadFontFace: loadFontFace$1
});
......@@ -11287,9 +11350,23 @@ var serviceContext = (function () {
}
var require_context_module_1_25 = /*#__PURE__*/Object.freeze({
__proto__: null,
pageScrollTo: pageScrollTo$1
});
function setPageMeta (args) {
const pages = getCurrentPages();
if (pages.length) {
UniServiceJSBridge.publishHandler('setPageMeta', args, pages[pages.length - 1].$page.id);
}
return {}
}
var require_context_module_1_26 = /*#__PURE__*/Object.freeze({
__proto__: null,
setPageMeta: setPageMeta
});
function removeTabBarBadge$1 ({
index
}) {
......@@ -11322,7 +11399,8 @@ var serviceContext = (function () {
callbacks$b.push(callbackId);
}
var require_context_module_1_26 = /*#__PURE__*/Object.freeze({
var require_context_module_1_27 = /*#__PURE__*/Object.freeze({
__proto__: null,
removeTabBarBadge: removeTabBarBadge$1,
showTabBarRedDot: showTabBarRedDot$1,
hideTabBarRedDot: hideTabBarRedDot$1,
......@@ -11347,7 +11425,8 @@ var serviceContext = (function () {
callbacks$c.splice(callbacks$c.indexOf(callbackId), 1);
}
var require_context_module_1_27 = /*#__PURE__*/Object.freeze({
var require_context_module_1_28 = /*#__PURE__*/Object.freeze({
__proto__: null,
onWindowResize: onWindowResize,
offWindowResize: offWindowResize
});
......@@ -11383,8 +11462,9 @@ var serviceContext = (function () {
'./ui/keyboard.js': require_context_module_1_23,
'./ui/load-font-face.js': require_context_module_1_24,
'./ui/page-scroll-to.js': require_context_module_1_25,
'./ui/tab-bar.js': require_context_module_1_26,
'./ui/window.js': require_context_module_1_27,
'./ui/set-page-meta.js': require_context_module_1_26,
'./ui/tab-bar.js': require_context_module_1_27,
'./ui/window.js': require_context_module_1_28,
};
var req = function req(key) {
......
此差异已折叠。
<template>
<view style="display: none;" />
</template>
<script>
export default {
props: {
title: {
type: String,
default: ''
},
loading: {
type: Boolean,
default: false
},
frontColor: {
type: String,
default: '#ffffff'
},
backgroundColor: {
type: String,
default: '#000000'
},
colorAnimationDuration: {
type: Number,
default: 0
},
colorAnimationTimingFunc: {
type: String,
default: 'linear'
}
},
created () {
this.$watch('title', () => {
this.setNavigationBarTitle()
})
this.$watch('loading', () => {
this.setNavigationBarLoading()
})
this.$watch(() => [
this.frontColor,
this.backgroundColor,
this.colorAnimationDuration,
this.colorAnimationTimingFunc
],
() => {
this.setNavigationBarColor()
})
},
beforeMount () {
this.title && this.setNavigationBarTitle()
this.setNavigationBarLoading()
this.setNavigationBarColor()
},
methods: {
setNavigationBarTitle () {
uni.setNavigationBarTitle({
title: this.title
})
},
setNavigationBarLoading () {
uni[(this.loading ? 'show' : 'hide') + 'NavigationBarLoading']()
},
setNavigationBarColor () {
uni.setNavigationBarColor({
frontColor: this.frontColor,
backgroundColor: this.backgroundColor,
animation: {
duration: this.colorAnimationDuration,
timingFunc: this.colorAnimationTimingFunc
}
})
}
}
}
</script>
<template>
<view style="display: none;">
<slot />
</view>
</template>
<script>
const scrolldoneEvent = {
type: 'scrolldone',
target: {
id: '',
offsetLeft: 0,
offsetTop: 0,
dataset: {}
},
currentTarget: {
id: '',
offsetLeft: 0,
offsetTop: 0,
dataset: {}
},
detail: {}
}
export default {
props: {
backgroundTextStyle: {
type: String,
default: 'dark',
validator (value) {
return ['dark', 'light'].indexOf(value) !== -1
}
},
backgroundColor: {
type: String,
default: '#ffffff'
},
backgroundColorTop: {
type: String,
default: '#ffffff'
},
backgroundColorBottom: {
type: String,
default: '#ffffff'
},
scrollTop: {
type: String,
default: ''
},
scrollDuration: {
type: Number,
default: 300
},
pageStyle: {
type: String,
default: ''
},
rootFontSize: {
type: String,
default: ''
}
},
created () {
const page = getCurrentPages()[0]
this.$pageVm = page.$vm || page
// event
// h5 暂不支持生命周期 onResize,补充后,可以移除该条件编译
// #ifdef H5
uni.onWindowResize(evt => {
this.$emit('resize', evt)
})
// #endif
// #ifndef H5
this.$pageVm.$on('hook:onResize', evt => {
this.$emit('resize', evt)
})
// #endif
// 父节点一定是 page
this.$pageVm.$on('hook:onPageScroll', evt => {
this.$emit('scroll', evt)
})
// props
this.$watch('backgroundTextStyle', () => {
this.setBackgroundTextStyle()
})
this.$watch(() => [
this.rootFontSize,
this.pageStyle
], () => {
this.setPageMeta()
})
this.$watch(() => [
this.backgroundColor,
this.backgroundColorTop,
this.backgroundColorBottom
], () => {
this.setBackgroundColor()
})
this.$watch(() => [
this.scrollTop,
this.scrollDuration
], () => {
this.pageScrollTo()
})
},
beforeMount () {
this.setBackgroundColor()
if (this.rootFontSize || this.pageStyle) {
this.setPageMeta()
}
this.backgroundTextStyle && this.setBackgroundTextStyle()
this.scrollTop && this.pageScrollTo()
},
methods: {
setPageMeta () {
// h5 和 app-plus 设置 rootFontSize
// #ifdef H5 || APP-PLUS
uni.setPageMeta({
pageStyle: this.pageStyle,
rootFontSize: this.rootFontSize
})
// #endif
},
setBackgroundTextStyle () {
// TODO h5 app-plus 暂不支持
// #ifdef MP
uni.setBackgroundTextStyle({
textStyle: this.backgroundTextStyle
})
// #endif
},
setBackgroundColor () {
// TODO h5 app-plus 暂不支持
// #ifdef MP
uni.setBackgroundColor({
backgroundColor: this.backgroundColor,
backgroundColorTop: this.backgroundColorTop,
backgroundColorBottom: this.backgroundColorBottom
})
// #endif
},
pageScrollTo () {
let scrollTop = String(this.scrollTop)
if (scrollTop.indexOf('rpx') !== -1) {
scrollTop = uni.upx2px(scrollTop.replace('rpx', ''))
}
scrollTop = parseFloat(scrollTop)
if (isNaN(scrollTop)) {
return
}
const pageScrollDone = (evt) => {
if (evt.scrollTop === scrollTop) {
this.$pageVm.$off('hook:onPageScroll', pageScrollDone)
this.$emit('scrolldone', scrolldoneEvent)
}
}
uni.pageScrollTo({
scrollTop,
duration: this.scrollDuration,
success: () => {
this.$pageVm.$on('hook:onPageScroll', pageScrollDone)
}
})
}
}
}
</script>
......@@ -333,6 +333,18 @@ let lastUsingAutoImportComponentsJson = ''
process.UNI_AUTO_COMPONENTS = []
function initAutoImportComponents (usingAutoImportComponents = {}) {
// 目前仅 mp-weixin 内置支持 page-meta 等组件
if (process.env.UNI_PLATFORM !== 'mp-weixin') {
if (!usingAutoImportComponents['page-meta']) {
usingAutoImportComponents['page-meta'] =
'@dcloudio/uni-cli-shared/components/page-meta.vue'
}
if (!usingAutoImportComponents['navigation-bar']) {
usingAutoImportComponents['navigation-bar'] =
'@dcloudio/uni-cli-shared/components/navigation-bar.vue'
}
}
const newUsingAutoImportComponentsJson = JSON.stringify(usingAutoImportComponents)
if (newUsingAutoImportComponentsJson !== lastUsingAutoImportComponentsJson) {
lastUsingAutoImportComponentsJson = newUsingAutoImportComponentsJson
......
此差异已折叠。
......@@ -818,5 +818,9 @@
]
],
true
],
"setPageMeta": [
"/core/service/api/ui/set-page-meta.js",
[]
]
}
\ No newline at end of file
......@@ -86,5 +86,11 @@ describe('mp:compiler-mp-weixin', () => {
expect(res.componentGenerics['scoped-slots-header']).toBe(true)
}
)
})
it('generate page-meta', () => {
assertCodegen(// TODO vue-id
'<view><page-meta/><view><button></button></view></view>',
`<page-meta vue-id="1" bind:__l="__l"></page-meta><view><button></button></view>`
)
})
})
const compiler = require('../lib')
const res = compiler.compile(
`
<view>
<view v-for="item in list[idx]" :key="item.id" class="mid-item-title" @click="mabc1(item)">
<view class="mid-item-icon" @click.stop="mabc2(item)"></view>
</view>
</view>
<view><page-meta/><view><button></button></view></view>
`, {
miniprogram: true,
resourcePath: '/User/fxy/Documents/test.wxml',
......@@ -16,7 +12,7 @@ const res = compiler.compile(
return false
},
mp: {
platform: 'app-plus'
platform: 'mp-weixin'
},
filterModules: ['swipe']
// service: true,
......
......@@ -35,6 +35,9 @@ function getWebpackChunkName (source) {
}
function updateMPUsingAutoImportComponents (autoComponents, options) {
if (!options.resourcePath) {
return
}
const resourcePath = options.resourcePath.replace(path.extname(options.resourcePath), '')
const usingAutoImportComponents = Object.create(null)
autoComponents.forEach(({
......
......@@ -113,7 +113,20 @@ function genText (ast, state) {
return ast
}
module.exports = function generate (ast, state) {
function parsePageMeta (ast, state) {
// 目前仅 mp-weixin 支持 page-meta
if (state.options.platform.name === 'mp-weixin') {
const children = ast.children
if (Array.isArray(children) && children.find(child => child.type === 'page-meta')) {
return children
}
}
return ast
}
module.exports = function generate (ast, state) {
ast = parsePageMeta(ast, state)
if (!Array.isArray(ast)) {
ast = [ast]
}
......
......@@ -191,6 +191,12 @@ function isComponent (tagName) {
) {
return false
}
// mp-weixin 底层支持 page-meta,navigation-bar
if (process.env.UNI_PLATFORM === 'mp-weixin') {
if (tagName === 'page-meta' || tagName === 'navigation-bar') {
return false
}
}
return !hasOwn(tags, getTagName(tagName.replace('v-uni-', '')))
}
......
......@@ -148,6 +148,8 @@ if (process.env.UNI_USING_NVUE_COMPILER) {
},
use: [{
loader: '@dcloudio/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/template'
}, {
loader: '@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta'
}]
})
}
......
......@@ -74,7 +74,7 @@ const v3 = {
webpackConfig.optimization.splitChunks = false
let devtool = false
let devtool = false
if (isAppService && process.env.NODE_ENV !== 'production') {
devtool = 'eval-source-map'
......@@ -156,6 +156,9 @@ const v3 = {
use: [{
loader: path.resolve(__dirname,
'../../packages/webpack-uni-app-loader/filter-modules-template.js')
}, {
loader: path.resolve(__dirname,
'../../packages/webpack-uni-app-loader/page-meta')
}]
},
...rules
......
......@@ -259,6 +259,8 @@ const moduleAlias = require('module-alias')
moduleAlias.addAlias('vue-template-compiler', '@dcloudio/vue-cli-plugin-uni/packages/vue-template-compiler')
moduleAlias.addAlias('@megalo/template-compiler', '@dcloudio/vue-cli-plugin-uni/packages/@megalo/template-compiler')
moduleAlias.addAlias('mpvue-template-compiler', '@dcloudio/vue-cli-plugin-uni/packages/mpvue-template-compiler')
// vue-loader
moduleAlias.addAlias('vue-loader', '@dcloudio/vue-cli-plugin-uni/packages/vue-loader')
if (process.env.UNI_USING_V3 && process.env.UNI_PLATFORM === 'app-plus') {
moduleAlias.addAlias('vue-style-loader', '@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader')
......@@ -268,20 +270,6 @@ if (process.env.UNI_PLATFORM === 'h5') {
moduleAlias.addAlias('vue-style-loader', '@dcloudio/vue-cli-plugin-uni/packages/h5-vue-style-loader')
}
// vue cache
if ( // 非 h5 ,非 v3,非 native
process.env.UNI_PLATFORM !== 'h5' &&
!process.env.UNI_USING_V3 &&
!process.env.UNI_USING_NATIVE
) {
moduleAlias.addAlias('./loaders/pitcher', (fromPath, request, alias) => {
if (fromPath.indexOf('vue-loader') !== -1) {
return require.resolve('@dcloudio/vue-cli-plugin-hbuilderx/packages/vue-loader/lib/loaders/pitcher')
}
return request
})
}
if (process.env.UNI_PLATFORM === 'mp-toutiao') {
// !important 始终带有一个空格
moduleAlias.addAlias(
......@@ -323,8 +311,14 @@ if (
}
}
const {
initAutoImportComponents
} = require('@dcloudio/uni-cli-shared/lib/pages')
initAutoImportComponents(pagesJsonObj.easycom)
runByHBuilderX && console.log(`正在编译中...`)
module.exports = {
manifestPlatformOptions: platformOptions
}
}
......@@ -30,7 +30,7 @@ const runtimePath = '@dcloudio/uni-mp-weixin/dist/mp.js'
const wxsPath = '@dcloudio/uni-mp-weixin/dist/wxs.js'
function getProvides () {
return {
return {
'wx.nextTick': [runtimePath, 'nextTick'],
'Page': [runtimePath, 'Page'],
'Component': [runtimePath, 'Component'],
......@@ -56,10 +56,10 @@ if (process.env.NODE_ENV !== 'production') {
const vueConfig = {
parallel: false, // 因为传入了自定义 compiler,避免参数丢失,禁用parallel
publicPath,
transpileDependencies: [
wxsPath,
runtimePath
publicPath,
transpileDependencies: [
wxsPath,
runtimePath
],
pages: {
index: {
......@@ -137,6 +137,8 @@ module.exports = {
resourceQuery: /vue&type=template/,
use: [{
loader: resolve('packages/webpack-uni-app-loader/filter-modules-template.js')
}, {
loader: '@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta'
}]
}, {
resourceQuery: [/lang=wxs/, /blockType=wxs/],
......@@ -144,11 +146,11 @@ module.exports = {
loader: resolve('packages/webpack-uni-filter-loader')
}]
}]
},
resolveLoader: {
alias: {
'vue-style-loader': resolve('packages/h5-vue-style-loader')
}
},
resolveLoader: {
alias: {
'vue-style-loader': resolve('packages/h5-vue-style-loader')
}
},
plugins
}
......
......@@ -142,6 +142,8 @@ module.exports = {
resourceQuery: /vue&type=template/,
use: [{
loader: '@dcloudio/webpack-uni-mp-loader/lib/template'
}, {
loader: '@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta'
}]
}, createTemplateCacheLoader(api), {
resourceQuery: [
......
......@@ -19,7 +19,7 @@
"dependencies": {
"@dcloudio/uni-stat": "^2.0.0-alpha-24720191216006",
"buffer-json": "^2.0.0",
"copy-webpack-plugin": "^4.6.0",
"copy-webpack-plugin": "^5.1.1",
"cross-env": "^5.2.0",
"envinfo": "^6.0.1",
"hash-sum": "^1.0.2",
......
module.exports = function(content) {
this.cacheable && this.cacheable()
// TODO 简单判断,只要包含 page-meta,就在外层包裹一层 view (vue2 不支持多 root)
if (content.indexOf('<page-meta') !== -1) {
return `<view>${content}</view>`
}
return content
}
export function setPageMeta (args) {
const pages = getCurrentPages()
if (pages.length) {
UniServiceJSBridge.publishHandler('setPageMeta', args, pages[pages.length - 1].$page.id)
}
return {}
}
import {
setPageMeta
} from './set-page-meta'
import {
requestComponentInfo
} from './request-component-info'
......@@ -8,6 +12,7 @@ import {
} from './request-component-observer'
export default {
setPageMeta,
requestComponentInfo,
requestComponentObserver,
destroyComponentObserver
......
export function setPageMeta ({
pageStyle,
rootFontSize
}) {
const pageElm = document.querySelector('uni-page-body') || document.body
pageElm.setAttribute('style', pageStyle)
if (rootFontSize && document.documentElement.style.fontSize !== rootFontSize) {
document.documentElement.style.fontSize = rootFontSize
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册