Browse Source

BI子表设置字段属性完成

qin_25
herenshan112 2 months ago
parent
commit
2b0d0f9490
  1. 23
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue
  2. 166
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/right.vue
  3. 9
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimMea.vue

23
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue

@ -143,8 +143,11 @@ const seriesAnlay = (listVal: any[]) => {
position: "top", position: "top",
}; };
}); });
}
return listVal; return listVal;
}else{
return []
}
}; };
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ -261,7 +264,7 @@ const drawPictures = () => {
// ], // ],
// }); // });
console.log("画图完毕---->", props); console.log("画图完毕---->", props);
// myChart.value.resize(); myChart.value.resize();
}else { }else {
myChart.value.setOption({ myChart.value.setOption({
grid: { grid: {
@ -306,14 +309,14 @@ const controlData = computed(() => {
// }, // },
// { deep: true } // { deep: true }
// ); // );
// watch( watch(
// () => props.data, () => props.data,
// (val: any) => { (val: any) => {
// console.log("---->", val); console.log("画图完毕--改变-->", props.data);
// drawPictures(); drawPictures();
// }, },
// { deep: true } { deep: true }
// ); );
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2025-06-26 09:47:45 @ 时间: 2025-06-26 09:47:45

166
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/right.vue

@ -85,8 +85,17 @@ watch(
list.push(valItem) list.push(valItem)
} }
}) })
let tableTitle = "";
if(Array.isArray(props.sunDimAry) && props.sunDimAry.length > 0){
props.sunDimAry.forEach((taItem:any)=>{
if(taItem.tableKey == item){
tableTitle = taItem.tableName
}
})
}
weiduSunList.value.push({ weiduSunList.value.push({
tableKey:item, tableKey:item,
tableTitle:tableTitle,
list:list list:list
}) })
}) })
@ -127,8 +136,17 @@ watch(
list.push(valItem) list.push(valItem)
} }
}) })
let tableTitle = "";
if(Array.isArray(props.sunDimAry) && props.sunDimAry.length > 0){
props.sunDimAry.forEach((taItem:any)=>{
if(taItem.tableKey == item){
tableTitle = taItem.tableName
}
})
}
duliangSunList.value.push({ duliangSunList.value.push({
tableKey:item, tableKey:item,
tableTitle:tableTitle,
list:list list:list
}) })
}) })
@ -277,10 +295,119 @@ const shuxingmh = (val: any) => {
} }
return titleVal; return titleVal;
}; };
//
const initDerStor = () => {
console.log("初始化维度-----xsun----->",controlData.value.xsun)
console.log("初始化维度-----ysun----->",controlData.value.ysun)
console.log("初始化维度-----sunDimAry----->",props.sunDimAry)
duliangSunList.value = []
weiduSunList.value = []
console.log("初始化维度-----sunDimAry--1--->",Array.isArray(props.sunDimAry) , props.sunDimAry.length > 0)
if(Array.isArray(props.sunDimAry) && props.sunDimAry.length > 0){
props.sunDimAry.forEach((taItem:any)=>{
console.log("初始化维度-----xsun--1--->",Array.isArray(controlData.value.xsun) , controlData.value.xsun.length > 0)
//x
if(Array.isArray(controlData.value.xsun) && controlData.value.xsun.length > 0){
let list = []
controlData.value.xsun.forEach((xItem:any)=>{
if(taItem.tableKey == xItem.tableKey){
list.push(xItem)
}
})
weiduSunList.value.push({
tableKey:taItem.tableKey,
tableTitle:taItem.tableName,
list:list
})
}
//y
if(Array.isArray(controlData.value.ysun) && controlData.value.ysun.length > 0){
let list = []
controlData.value.ysun.forEach((yItem:any)=>{
if(taItem.tableKey == yItem.tableKey){
list.push(yItem)
}
})
console.log("初始化维度-----ysun--1--->",list)
duliangSunList.value.push({
tableKey:taItem.tableKey,
tableTitle:taItem.tableName,
list:list
})
}
})
}
console.log("初始化维度-----weiduSunList----->",weiduSunList.value)
console.log("初始化维度-----duliangSunList----->",duliangSunList.value)
}
const activeXName = ref(0)
const activeYName = ref(0)
//
const delDimSun = (tableKey:string,fieldKey:string) => {
if(Array.isArray(controlData.value.xsun) && controlData.value.xsun.length > 0){
let list = []
controlData.value.xsun.forEach((xItem:any,index:number)=>{
if(xItem.tableKey == tableKey && xItem.field == fieldKey ){
list.push(index)
}
})
if(list.length > 0){
list.forEach((item:number) => {
controlData.value.xsun.splice(item, 1);
})
}
if(Array.isArray(controlData.value.xsun)){
if (controlData.value.xsun.length <= 0){
controlData.value.ysun = []
}
}else{
controlData.value.xsun = []
controlData.value.ysun = []
}
}else{
controlData.value.xsun = []
controlData.value.ysun = []
}
}
//
const delDimSunDuliang = (tableKey:string,fieldKey:string) => {
if(Array.isArray(controlData.value.ysun) && controlData.value.ysun.length > 0){
let list = []
controlData.value.ysun.forEach((xItem:any,index:number)=>{
if(xItem.tableKey == tableKey && xItem.field == fieldKey ){
list.push(index)
}
})
if(list.length > 0){
list.forEach((item:number) => {
controlData.value.ysun.splice(item, 1);
})
}
}else{
controlData.value.ysun = []
}
}
onMounted(()=>{
initDerStor()
})
</script> </script>
<template> <template>
<div class="echartsRight"> <div class="echartsRight">
<el-divider content-position="left">配置属性</el-divider> <el-divider content-position="left">配置属性</el-divider>
<div v-if="controlData.icon"> <div v-if="controlData.icon">
<div class="arttBoxTitle"> <div class="arttBoxTitle">
<el-text class="mx-1" size="large">图表名称</el-text> <el-text class="mx-1" size="large">图表名称</el-text>
@ -326,23 +453,28 @@ const shuxingmh = (val: any) => {
<svg-icon icon-class="sc" :size="20" class="setBut" @click="delDim(index)" /> <svg-icon icon-class="sc" :size="20" class="setBut" @click="delDim(index)" />
</el-space> </el-space>
</div> </div>
</div>
<div v-for="(item, index) in controlData.xsun" class="dimListBox"> <el-tabs v-if="weiduSunList&&weiduSunList.length>0" v-model="activeXName" type="border-card" class="demo-tabs">
<div class="dimListTitle">{{ item.title }}</div> <el-tab-pane v-for="(item,index) in weiduSunList" :label="item.tableTitle" :name="index">
<div v-for="(sitem, sindex) in item.list" class="dimListBox">
<div class="dimListTitle">{{ sitem.title }}</div>
<el-space wrap> <el-space wrap>
<svg-icon <svg-icon
icon-class="set" icon-class="set"
:size="20" :size="20"
class="setBut" class="setBut"
@click="setDimInfo(item)" @click="setDimInfo(sitem)"
/> />
<svg-icon icon-class="sc" :size="20" class="setBut" @click="delDim(index)" /> <svg-icon icon-class="sc" :size="20" class="setBut" @click="delDimSun(item.tableKey,sitem.field)" />
</el-space> </el-space>
</div> </div>
</el-tab-pane>
</el-tabs>
</div>
<div class="arttBoxTitle"> <div class="arttBoxTitle" style="margin-top:10px;">
<el-text class="mx-1" size="large">看板指标/度量</el-text> <el-text class="mx-1" size="large">看板指标/度量</el-text>
<el-text class="mx-1 shouxing" type="primary" @click="pickDim(2)">添加</el-text> <el-text class="mx-1 shouxing" type="primary" @click="pickDim(2)">添加</el-text>
</div> </div>
@ -366,6 +498,25 @@ const shuxingmh = (val: any) => {
</el-space> </el-space>
</div> </div>
</div> </div>
<el-tabs v-if="duliangSunList&&duliangSunList.length>0" v-model="activeYName" type="border-card" class="demo-tabs">
<el-tab-pane v-for="(item,index) in duliangSunList" :label="item.tableTitle" :name="index">
<div v-for="(sitem, sindex) in item.list" class="dimListBox">
<div class="dimListTitle">{{ sitem.title }}</div>
<el-space wrap>
<svg-icon
icon-class="set"
:size="20"
class="setBut"
@click="setMeaInfo(sitem)"
/>
<svg-icon icon-class="sc" :size="20" class="setBut" @click="delDimSunDuliang(item.tableKey,sitem.field)" />
</el-space>
</div>
</el-tab-pane>
</el-tabs>
<div class="arttBoxTitle"> <div class="arttBoxTitle">
<el-text class="mx-1" size="large">过滤器</el-text> <el-text class="mx-1" size="large">过滤器</el-text>
<el-text class="mx-1 shouxing" type="primary" @click="pickDim(3)">添加</el-text> <el-text class="mx-1 shouxing" type="primary" @click="pickDim(3)">添加</el-text>
@ -486,6 +637,9 @@ const shuxingmh = (val: any) => {
.echartsRight { .echartsRight {
width: 100%; width: 100%;
padding: 0px 10px; padding: 0px 10px;
:deep .el-tabs__content{
padding: 10px 2px 0 2px;
}
} }
.arttBoxTitle { .arttBoxTitle {
display: flex; display: flex;

9
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimMea.vue

@ -231,7 +231,7 @@ const meaMakecont = (val: number) => {
// ); // );
// console.log("--------->",checkMeaList.value) // console.log("--------->",checkMeaList.value)
if (Array.isArray(checkMeaList.value) && checkMeaList.value.length > 0) { if (Array.isArray(checkMeaList.value) && checkMeaList.value.length > 0) {
let fieldAry = new Array(); let fieldAry = [];
checkMeaList.value.forEach((item: any) => { checkMeaList.value.forEach((item: any) => {
let valAry = item.split("|#$#|"); let valAry = item.split("|#$#|");
if (Array.isArray(valAry) && valAry.length > 1) { if (Array.isArray(valAry) && valAry.length > 1) {
@ -308,6 +308,8 @@ const meaMakecont = (val: number) => {
} }
}); });
controlData.value.y = fieldAry; controlData.value.y = fieldAry;
}else{
controlData.value.y = [];
} }
// //
if(Array.isArray(checkListsunduLiang.value) && checkListsunduLiang.value.length > 0){ if(Array.isArray(checkListsunduLiang.value) && checkListsunduLiang.value.length > 0){
@ -333,6 +335,9 @@ const meaMakecont = (val: number) => {
checkListsunduLiang.value = [] checkListsunduLiang.value = []
console.log("子表度量",controlData.value.ysun) console.log("子表度量",controlData.value.ysun)
}else{
controlData.value.ysun = []
checkListsunduLiang.value = []
} }
}; };
/** /**
@ -590,7 +595,7 @@ const searchList = () => {
@ 功能: 确定选择 @ 功能: 确定选择
*/ */
const pickDimMeaSet = () => { const pickDimMeaSet = () => {
// console.log("", props.dimMeaType); console.log("确定选择", props.dimMeaType);
// console.log( // console.log(
// "----------checkListsunduLiang-------------->", // "----------checkListsunduLiang-------------->",
// checkListsunduLiang.value // checkListsunduLiang.value

Loading…
Cancel
Save