From 93fcba0205dad90a6313bf18293047316b378c4b Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Fri, 29 Dec 2023 00:45:10 -0800 Subject: [PATCH] feat(generate-vue): change generate vue code location (#201) * feat(generate-vue): change generate vue code location * fix(generate-vue): fix generate route did not export --- .../toolbars/generate-vue/src/generateCode.js | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/toolbars/generate-vue/src/generateCode.js b/packages/toolbars/generate-vue/src/generateCode.js index 54d3b14..ed30161 100644 --- a/packages/toolbars/generate-vue/src/generateCode.js +++ b/packages/toolbars/generate-vue/src/generateCode.js @@ -22,8 +22,8 @@ const basePaths = { blocks: 'src/components/', utils: 'src/lowcode/utils.js', dataSource: 'src/lowcode/dataSource.json', - router: 'src/lowcode/routes.js', - store: 'src/lowcode/stores.js' + router: 'src/router/index.js', + store: 'src/stores/' } const FILE_TYPES = { @@ -82,7 +82,10 @@ function generateStores({ globalState }) { } const filePath = basePaths.store - let result = "import { defineStore } from 'pinia'\n\n" + const result = "import { defineStore } from 'pinia'\n\n" + + const res = [] + const storeIds = [] const getStoreFnStrs = (getters = {}) => Object.values(getters) @@ -90,6 +93,7 @@ function generateStores({ globalState }) { .join(',\n') globalState.forEach(({ id, state, getters, actions }) => { + storeIds.push(id) const storeCode = `export const ${id} = defineStore({ id: '${id}', state: () => (${JSON.stringify(state)}), @@ -101,16 +105,20 @@ function generateStores({ globalState }) { } })\n` - result += storeCode + res.push({ + filePath: `${filePath}${id}.js`, + fileType: FILE_TYPES.Store, + fileContent: formatScript(`${result}\n${storeCode}`) + }) }) - return [ - { - filePath, - fileType: FILE_TYPES.Store, - fileContent: formatScript(result) - } - ] + res.push({ + filePath: `${filePath}index.js`, + fileType: FILE_TYPES.Store, + fileContent: formatScript(storeIds.map((id) => `export { ${id} } from './${id}'`).join('\n')) + }) + + return res } function generatePageFiles(codeList, pagePath = '') { @@ -335,9 +343,12 @@ export function generateRouter(pages) { } const routes = generateRoutes(pages) + const importRoutes = "import { createRouter, createWebHashHistory } from 'vue-router'\n" const content = ` - export const routes = [ + ${importRoutes} + + const routes = [ ${routes .map( ({ fileName, path, redirect, filePath }) => `{ @@ -347,6 +358,11 @@ export function generateRouter(pages) { ) .join(',')} ] + + export default createRouter({ + history: createWebHashHistory(), + routes + }) ` const codeStr = formatScript(content)