修改报表生成

修改依赖问题
master
夜笙歌 4 months ago
parent 3a5a840953
commit aae5364742

@ -107,7 +107,7 @@
"typescript": "5.4.5", "typescript": "5.4.5",
"unocss": "0.58.6", "unocss": "0.58.6",
"unplugin-auto-import": "0.17.5", "unplugin-auto-import": "0.17.5",
"unplugin-icons": "0.18.5", "unplugin-icons": "^22.2.0",
"unplugin-vue-components": "0.26.0", "unplugin-vue-components": "0.26.0",
"unplugin-vue-setup-extend-plus": "1.0.1", "unplugin-vue-setup-extend-plus": "1.0.1",
"vite": "5.2.12", "vite": "5.2.12",
@ -115,7 +115,7 @@
"vite-plugin-svg-icons": "2.0.1", "vite-plugin-svg-icons": "2.0.1",
"vitest": "1.5.0", "vitest": "1.5.0",
"vue-eslint-parser": "9.4.2", "vue-eslint-parser": "9.4.2",
"vue-tsc": "2.0.13" "vue-tsc": "^3.0.6"
}, },
"overrides": { "overrides": {
"vue": "3.4.34", "vue": "3.4.34",

@ -174,10 +174,10 @@ service.interceptors.response.use(
} }
return Promise.reject('无效的会话,或者会话已过期,请重新登录。'); return Promise.reject('无效的会话,或者会话已过期,请重新登录。');
} else if (code === HttpStatus.SERVER_ERROR) { } else if (code === HttpStatus.SERVER_ERROR) {
// ElMessage({ message: msg, type: 'error' }); ElMessage({ message: msg, type: 'error' });
return Promise.reject(new Error(msg)); return Promise.reject(new Error(msg));
} else if (code === HttpStatus.WARN) { } else if (code === HttpStatus.WARN) {
// ElMessage({ message: msg, type: 'warning' }); ElMessage({ message: msg, type: 'warning' });
return Promise.reject(new Error(msg)); return Promise.reject(new Error(msg));
} else if (code !== HttpStatus.SUCCESS) { } else if (code !== HttpStatus.SUCCESS) {
ElNotification.error({ title: msg }); ElNotification.error({ title: msg });

@ -173,6 +173,23 @@
<el-form-item label="是否分页" prop="dataSourceName"> <el-form-item label="是否分页" prop="dataSourceName">
<el-switch v-model="addSQLForm.isPage" /> <el-switch v-model="addSQLForm.isPage" />
</el-form-item> </el-form-item>
<el-form-item label="输入数据">
<el-table :data="addSQLForm.testList" style="width: 100%">
<el-table-column label="字段名称" min-width="120">
<template #default="scope">
<el-input v-model="scope.row.fieldOne" style="width: 100%" />
</template>
</el-table-column>
<el-table-column label="测试数据" min-width="120">
<template #default="scope">
<el-input v-model="scope.row.fieldTwo" style="width: 100%" />
</template>
</el-table-column>
</el-table>
<el-button style="width: 100%" @click="addSQLForm.testList.push({})">
添加字段
</el-button>
</el-form-item>
<el-form-item label="SQL" prop="SQL"> <el-form-item label="SQL" prop="SQL">
<el-input <el-input
v-model="addSQLForm.SQL" v-model="addSQLForm.SQL"
@ -298,8 +315,7 @@ const keyword = ref(['SELECT', 'FROM', 'WHERE', 'GROUP BY', 'HAVING', 'ORDER BY'
'BEGIN', 'START TRANSACTION', 'COMMIT', 'ROLLBACK', 'SAVEPOINT', 'BEGIN', 'START TRANSACTION', 'COMMIT', 'ROLLBACK', 'SAVEPOINT',
'JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'FULL JOIN', 'ON', 'IN', 'EXISTS', 'ANY', 'ALL', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'FULL JOIN', 'ON', 'IN', 'EXISTS', 'ANY', 'ALL',
'CASE', 'WHEN', 'THEN', 'ELSE', 'IS NULL', 'IS NOT NULL', 'LIKE', 'BETWEEN', 'CASE', 'WHEN', 'THEN', 'ELSE', 'IS NULL', 'IS NOT NULL', 'LIKE', 'BETWEEN',
'UNION', 'UNION ALL', 'WITH'] 'UNION', 'UNION ALL', 'WITH']);
);
const getList = async () => { const getList = async () => {
loading.value = true; loading.value = true;
getDataSourceList(selectForm.value) getDataSourceList(selectForm.value)
@ -327,7 +343,8 @@ const constructionData = () => {
const addSQL = () => { const addSQL = () => {
addSQLFormVisible.value = true; addSQLFormVisible.value = true;
addSQLForm.value = { addSQLForm.value = {
designDataFieldList: [] designDataFieldList: [],
testList: []
}; };
getDbList(); getDbList();
}; };

@ -95,11 +95,12 @@ const parseData = (data, rule) => {
}; };
const formulaFun = (formula) => { const formulaFun = (formula) => {
let data = formula.replace(/\$\{\s*([^}]+?)\s*\}/g, (_, key) => { let data = formula.replace(/\$\{\s*([^}]+?)\s*\}/g, (_, key) => {
console.log(props.inputData); let infos = key.split(',');
if (`${props.inputData[key]}`?.trim() !== '' && !isNaN(props.inputData[key])) { if (infos.length === 1) {
return props.inputData[key] || ''; return props.inputData[infos[0]] || '';
} else { }
return `${props.inputData[key]}`; if (infos.length === 2) {
return `AND ${infos[0]} = ${props.inputData[infos[1]]}`;
} }
}); });
return data; return data;
@ -140,8 +141,6 @@ const getOutputData = () => {
isErr.value = false; isErr.value = false;
let data = res; let data = res;
let output = {}; let output = {};
console.log(output);
console.log(props.data.customData.outputData);
props.data.customData.outputData.forEach(item => { props.data.customData.outputData.forEach(item => {
output[item.fieldOne] = parseData(data, item.fieldTwo); output[item.fieldOne] = parseData(data, item.fieldTwo);
}); });

Loading…
Cancel
Save