Compare commits

...

2 Commits

Author SHA1 Message Date
徐景良 9c38b18775 Merge branch 'main' of http://123.132.248.154:10000/gitY/LinYeFangHuo 2025-04-03 09:21:41 +08:00
徐景良 1a467c30d0 merge 2025-04-03 09:21:38 +08:00
2 changed files with 43 additions and 34 deletions

View File

@ -26,6 +26,9 @@ import { useChartDataFetch } from '@/hooks';
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
import { EventBus } from '@/utils/eventBus';
import { replaceSqlParams } from '@/utils/sqlHandler';
const props = defineProps({
chartConfig: {
type: Object as PropType<CreateComponentType>,
@ -33,6 +36,9 @@ const props = defineProps({
}
})
const { w, h } = toRefs(props.chartConfig.attr)
const {
colors,
@ -45,37 +51,31 @@ const {
console.log("props.chartConfig",props.chartConfig.option.showColumns);
onMounted(()=>{
const sql = JSON.parse(JSON.stringify(props.chartConfig.request.requestSQLContent)).sql;
const sql = props.chartConfig.request?.requestSQLContent?.sql;
//
EventBus.on(props.chartConfig.id+'dataupdate', (data) => {
props.chartConfig.request.requestSQLContent.sql = replaceSqlParams(sql,{Id:data.id})
// callback
useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any) => {
props.chartConfig.request.requestSQLContent.sql = replaceSqlParams(sql,{Id:data.id})
// props.chartConfig.option.dataset = resData;
let data = [];
// callback
useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any) => {
// props.chartConfig.option.dataset = resData;
let data = [];
props.chartConfig.option.showColumns?.forEach((item,index)=>{
let info = {
title:item.zh_name,
desc:resData[0][firstLetterToLowerCase(item.en_name)]
}
data.push(info);
})
props.chartConfig.option.dataset.data = data;
});
props.chartConfig.option.showColumns?.forEach((item,index)=>{
let info = {
title:item.zh_name,
desc:resData[0][firstLetterToLowerCase(item.en_name)]
}
data.push(info);
})
props.chartConfig.option.dataset.data = data;
});
});
})
function firstLetterToLowerCase(str) {
@ -87,17 +87,6 @@ const handlerShowColumns = ()=> {
}
function replaceSqlParams(sql, params) {
return sql.replace(/#\{([^}]+)\}/g, (match, p1) => {
if (params.hasOwnProperty(p1)) {
//
return typeof params[p1] === 'string' ? `'${params[p1]}'` : params[p1];
}
throw new Error(`缺少参数: ${p1}`);
});
}
</script>
<style lang="scss" scoped>

20
src/utils/sqlHandler.ts Normal file
View File

@ -0,0 +1,20 @@
/**
sql : select * from tableName where 'Id' = #{id} and 'state' = #{state}
params : {id:12343,state:1}
select * from tableName where 'Id' = 12343 and 'state' = 1
*/
export function replaceSqlParams(sql, params) {
return sql.replace(/#\{([^}]+)\}/g, (match, p1) => {
if (params.hasOwnProperty(p1)) {
return typeof params[p1] === 'string' ? `'${params[p1]}'` : params[p1];
}
throw new Error(`缺少参数: ${p1}`);
});
}