Browse Source

Merge branch 'qin_24'

han_v3
herenshan112 4 months ago
parent
commit
809647fa6b
  1. 145
      src/components/DesignForm/app/index.vue
  2. 6
      src/components/DesignForm/public/expand/lowcodeImage.vue
  3. 82
      src/components/DesignForm/public/expand/uploadPageList.vue
  4. 15
      src/components/DesignForm/public/form/formItem.vue
  5. 28
      src/components/DesignForm/tableListPage/formPageCont.vue
  6. 34
      src/components/DesignForm/tableListPage/index.vue
  7. 1
      src/permission.ts
  8. 3
      src/store/modules/permission.ts
  9. 47
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue
  10. 13
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/barRace.vue
  11. 80
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/line.vue
  12. 1
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie.vue
  13. 26
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/radar.vue
  14. 5
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue
  15. 2
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue
  16. 2
      src/views/sysworkflow/lowcodepage/pageList.vue
  17. 4
      src/views/sysworkflow/lowcodepage/runApp/runAppForm.vue

145
src/components/DesignForm/app/index.vue

@ -54,7 +54,7 @@ import CalendarPage from "@/components/DesignForm/app/calendar/calendar1/calenda
import SearchSelect from "@/components/DesignForm/app/calendar/selectSearch.vue";
import AKSelect from "@/components/DesignForm/public/form/select.vue";
import ContainerPath from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue";
import exportPanel from '../exportPanel.vue';
import exportPanel from "../exportPanel.vue";
import importPanel from "../importPanel.vue";
const props = withDefaults(
@ -155,7 +155,7 @@ const currentAsfTableDataList = ref([]); //当前点击的关联表单数据
const openTaskDrawer = ref(false); //
//
const dynamicVNode = ref<VNode | null>(null) //
const dynamicVNode = ref<VNode | null>(null); //
const state = reactive({
loading: false,
@ -552,9 +552,9 @@ const setUpClick = (val: string, id: string) => {
drawerWith.value = container.value?.clientWidth;
openTaskDrawer.value = true;
} else if (val.key === "export") {
doExportTableData()
doExportTableData();
} else if (val.key === "import") {
doImportTableData()
doImportTableData();
} else if (val.key == "showQrCode") {
//liwenxuan 20250114 start
//,
@ -870,18 +870,18 @@ const columnsFilter = computed(() => {
});
const subTableFieldsFilter = computed(() => {
const arr:{table:string,field:string,label:string}[]=[]
const names:string[]=[]
const arr: { table: string; field: string; label: string }[] = [];
const names: string[] = [];
props.fieldsDetailList.forEach((item: any) => {
if (item.type === "table") {
names.push(item.name)
names.push(item.name);
item.list.forEach((sub: any) => {
arr.push({table:item.name, field: sub.name, label: sub.item.label})
})
arr.push({ table: item.name, field: sub.name, label: sub.item.label });
});
}
})
return {tables:names,fields:arr}
})
});
return { tables: names, fields: arr };
});
/**
@ 作者: 秦东
@ -981,10 +981,12 @@ const getPageData = () => {
default:
state.loading = true;
//by han2015, 便
doGainFormPageListCont(sendData).then(datas=>{
tableDataList.value = datas.list
state.total=datas.total
}).finally(()=>{
doGainFormPageListCont(sendData)
.then((datas) => {
tableDataList.value = datas.list;
state.total = datas.total;
})
.finally(() => {
// finally
state.loading = false;
asfs = [];
@ -995,28 +997,30 @@ const getPageData = () => {
tables = [];
dofs = [];
getAsfs();
})
});
}
};
//
function doImportTableData() {
dynamicVNode.value = h(importPanel, {
fields:props.fieldsDetailList.filter(val=>val.type!=="table"),
fields: props.fieldsDetailList.filter((val) => val.type !== "table"),
formId: props.versionid,
commitFunc: () => {
getPageData() //table
dynamicVNode.value=null
getPageData(); //table
dynamicVNode.value = null;
},
closeFunc:()=>dynamicVNode.value=null
})
closeFunc: () => (dynamicVNode.value = null),
});
}
//
function doExportTableData() {
//fieldssubs
function exportFunc(fields:{field:string,label:string}[],subs:{table:string,field:string,label:string}[]){
function exportFunc(
fields: { field: string; label: string }[],
subs: { table: string; field: string; label: string }[]
) {
let sendData = {
formId: props.formId,
page: 1,
@ -1024,17 +1028,18 @@ function doExportTableData(){
searchData: json2string(props.searchData),
};
//
doGainFormPageListCont(sendData).then(datas=>{
doGainFormPageListCont(sendData)
.then((datas) => {
const array: string[] = [];
//
const title: string[] = [];
for (let val of fields) {
title.push(val.label)
title.push(val.label);
}
for (let val of subs) {
title.push(val.label)
title.push(val.label);
}
array.push(title.join(","))
array.push(title.join(","));
//
datas.list.forEach((item) => {
@ -1042,61 +1047,68 @@ function doExportTableData(){
let maxline = 0;
//
for (let val of fields) {
if(typeof(val)==="string") line.push((item[val.field] as string).replaceAll(",",","))
else line.push(item[val.field])
if (typeof val === "string")
line.push((item[val.field] as string).replaceAll(",", ","));
else line.push(item[val.field]);
}
//
if (subs.length > 0) {
//
for (let tab of subTableFieldsFilter.value.tables) {
if(item[tab] && item[tab].length>maxline) maxline=item[tab].length
if (item[tab] && item[tab].length > maxline) maxline = item[tab].length;
}
//
if (maxline === 0) {
array.push(line.join(",")+","+Array(subs.length).fill(""))
return
array.push(line.join(",") + "," + Array(subs.length).fill(""));
return;
}
//spaceprefix
const spacePrefix=Array(line.length).fill("")
const spacePrefix = Array(line.length).fill("");
for (let i = 0; i < maxline; i++) {
const row:any[]=[]
subTableFieldsFilter.value.tables.forEach(name => {
const row: any[] = [];
subTableFieldsFilter.value.tables.forEach((name) => {
if (item[name] && item[name].length - 1 >= i) {
//
subs.filter(v=>v.table===name).forEach(f=>{
row.push(item[name][i][f.field])
})
subs
.filter((v) => v.table === name)
.forEach((f) => {
row.push(item[name][i][f.field]);
});
} else {
//N
row.push(...(Array(subs.filter(v=>v.table===name).length).fill("")))
row.push(
...Array(subs.filter((v) => v.table === name).length).fill("")
);
}
})
});
//csv
if (i === 0) {
array.push(line.join(",")+","+row.join(","))
array.push(line.join(",") + "," + row.join(","));
} else {
array.push(spacePrefix+","+row.join(","))
array.push(spacePrefix + "," + row.join(","));
}
}
return
return;
}
//
array.push(line.join(","))
})
array.push(line.join(","));
});
//
if((array.length-1)!==datas.total) alert(`导出记录数:${datas.total}, 共计:${array.length-1}`)
if (array.length - 1 !== datas.total)
alert(`导出记录数:${datas.total}, 共计:${array.length - 1}`);
const filename= props.pickAppMenu.label+".csv"
const csvString = array.join('\n');
const filename = props.pickAppMenu.label + ".csv";
const csvString = array.join("\n");
const blob = new Blob([csvString], { type: "text/csv;charset=utf-8;" });
const link = document.createElement("a");
if (link.download !== undefined) { // feature detection
if (link.download !== undefined) {
// feature detection
// Browsers that support HTML5 download attribute
const url = URL.createObjectURL(blob);
link.setAttribute("href", url);
@ -1106,7 +1118,8 @@ function doExportTableData(){
link.click();
document.body.removeChild(link);
}
}).finally(()=>dynamicVNode.value=null)
})
.finally(() => (dynamicVNode.value = null));
}
dynamicVNode.value = h(exportPanel, {
@ -1114,12 +1127,12 @@ function doExportTableData(){
subtabs: columnsFilter.value.filter((item) => item.pattern === "table"),
subFields: subTableFieldsFilter.value.fields,
commitFunc: exportFunc,
closeFunc:()=>dynamicVNode.value=null
})
closeFunc: () => (dynamicVNode.value = null),
});
}
async function doGainFormPageListCont(sendData: any) {
const data =await gainFormPageListCont(sendData)
const data = await gainFormPageListCont(sendData);
// console.log("----------------->",data)
//console.log(dataList)
asfDetails = props.data.columns.filter((item: any) => {
@ -1185,7 +1198,7 @@ async function doGainFormPageListCont(sendData:any){
}
//console.log(data.data.list)
transferDetails.forEach(element => {
transferDetails.forEach((element) => {
//console.log(element)
data.data.list.forEach((obj: any) => {
//console.log(obj)
@ -1196,7 +1209,7 @@ async function doGainFormPageListCont(sendData:any){
// /使JSON
const formattedValue =
(Array.isArray(value) || (typeof value === 'object' && value !== null))
Array.isArray(value) || (typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
@ -1205,7 +1218,7 @@ async function doGainFormPageListCont(sendData:any){
//console.log(key)
/* console.log(element.control.fixedOptions)
console.log(obj[key]) */
obj[key] = mapIdsToLabels(element.control.fixedOptions,obj[key])
obj[key] = mapIdsToLabels(element.control.fixedOptions, obj[key]);
}
}
}
@ -1233,14 +1246,14 @@ function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id] || "已删除的节点(id):"+id);
return ids.map((id) => idToLabelMap[id] || "已删除的节点(id):" + id);
}
const asfGetPageData = (asfFormId: any, asfToSelectMastersKey: any) => {
@ -1755,7 +1768,7 @@ const transformOption = (val: string | number, type?: string) => {
};
const readerColumnSun = (column: any) => {
console.log("表头label长度-11->", column);
// console.log("label-11->", column);
let labelLong = 0; // label
if (column.children) {
labelLong = column.children.length;
@ -1764,12 +1777,12 @@ const readerColumnSun = (column: any) => {
let countLenght = 3;
column.children.forEach((item: any) => {
if (item.label.length < 3) {
countLenght = countLenght + 90;
countLenght = countLenght + 15;
} else {
countLenght = countLenght + item.label.length * 40;
countLenght = countLenght + item.label.length * 15;
}
});
console.log("表头label长度-->", countLenght);
// console.log("label-->", countLenght);
return countLenght;
} else {
return 100;
@ -2044,7 +2057,6 @@ const readerColumnSun = (column: any) => {
>
<template #default="scope">
<el-button-group>
<el-tooltip
v-if="scope.row.flowIsOpens == 1 && scope.row.taskStatus == 1"
class="box-item"
@ -2263,7 +2275,6 @@ const readerColumnSun = (column: any) => {
{{ scope.row[scope.column.property] }}==
</el-link>
</template>
</el-table-column>
</template>
</el-table>
@ -2516,7 +2527,7 @@ const readerColumnSun = (column: any) => {
width: 100%;
}
.table-list-comm {
padding: 0px 15px 5px 15px;
padding: 0px 5px 5px 5px;
}
.seacherForm {
min-height: auto;

6
src/components/DesignForm/public/expand/lowcodeImage.vue

@ -120,7 +120,11 @@ const getFormItemInputStyle = (ele: any, sty: number) => {
<style lang="scss" scoped>
.upload-demo {
img {
width: 100%;
min-width: 150px;
max-width: 300px;
}
}
.avatar {
width: 150px;
}
</style>

82
src/components/DesignForm/public/expand/uploadPageList.vue

@ -3,27 +3,30 @@
@ 时间: 2024-09-17 14:57:49
@ 备注: 解析上传文件问题
-->
<script lang='ts' setup>
import { AnalysisCss,AnalysisInputCss } from '@/components/DesignForm/public/form/calculate/cssInfo'
<script lang="ts" setup>
import {
AnalysisCss,
AnalysisInputCss,
} from "@/components/DesignForm/public/form/calculate/cssInfo";
const props = defineProps({
imgList: {
type: String,
default:""
default: "",
},
data: {
type: Object,
default() {
return {}
}
return {};
},
},
control: {
type: Object,
default() {
return {}
}
}
})
const imgStr = ref<String>(props.imgList)
return {};
},
},
});
const imgStr = ref<String>(props.imgList);
//css
/**
@ -45,60 +48,75 @@ const imgStr = ref<String>(props.imgList)
// }
const imgAry = computed({
get: () => {
if(props.imgList != "" && props.imgList != null && props.imgList != undefined && props.imgList != "undefined"){
if (
props.imgList != "" &&
props.imgList != null &&
props.imgList != undefined &&
props.imgList != "undefined"
) {
// let zj = props.imgList
// let img = zj.Split(",");
let arr = props.imgList.match(/[^,]+/g);
console.log("文件列表",arr)
return arr
console.log("文件列表", arr);
return arr;
} else {
return []
}
return [];
}
})
},
});
const listType = () => {
if (props.control.listType) {
return props.control.listType
return props.control.listType;
} else {
return "text"
}
return "text";
}
};
//
const getFormItemInputStyle = (ele: any, sty: number) => {
if (ele?.inputStyle) {
console.log("返回栅格宽度4",AnalysisInputCss(ele?.inputStyle,sty))
return AnalysisInputCss(ele?.inputStyle,sty)
}
console.log("返回栅格宽度4", AnalysisInputCss(ele?.inputStyle, sty));
return AnalysisInputCss(ele?.inputStyle, sty);
}
};
const configStyle = computed(() => {
return props.data.styles || {}
})
return props.data.styles || {};
});
</script>
<template>
<div>
{{ props.control.listType }}
<div v-if="props.control.listType == 'picture-card'">
<div v-for="item in imgAry">
<el-image class="imgCss" :style="getFormItemInputStyle(configStyle,2)" :src="item" :fit="fit" :preview-src-list="imgAry" />
<el-image
class="imgCss"
:style="getFormItemInputStyle(configStyle, 2)"
:src="item"
:fit="fit"
:preview-src-list="imgAry"
/>
</div>
</div>
<div v-else-if="props.control.listType == 'picture'">
<div v-for="item in imgAry">
<el-image class="imgCss" :style="getFormItemInputStyle(configStyle,2)" :src="item" :fit="fit" :preview-src-list="imgAry" />
<el-image
class="imgCss"
:style="getFormItemInputStyle(configStyle, 2)"
:src="item"
:fit="fit"
:preview-src-list="imgAry"
/>
</div>
</div>
<div v-else>
<div v-for="item in imgAry">
<el-link :underline="false" :href="item" target="_blank">{{ item }}</el-link><br>
<el-link :underline="false" :href="item" target="_blank">{{ item }}</el-link
><br />
</div>
</div>
</div>
</template>
<style lang='scss' scoped>
<style lang="scss" scoped>
.imgCss {
width: 100px;
height: 100px;

15
src/components/DesignForm/public/form/formItem.vue

@ -1194,6 +1194,21 @@ const diGuiJilian = (val: any, options: any[]) => {
:type="type"
v-model="value"
/>
<component
v-else-if="['lowcodeImage'].includes(data.type)"
:is="currentComponent"
v-bind="control"
:disabled="judgeIsDisabled(data.name)"
:placeholder="
data.control.placeholder
? data.control.placeholder
: '请选择' + getLabel(data.item)
"
:data="data"
:tablekey="props.tablekey"
:form-table-set-up="props.alldata"
v-model="value"
/>
<div class="form-value" v-else v-html="value"></div>
</template>
<template v-else>

28
src/components/DesignForm/tableListPage/formPageCont.vue

@ -159,8 +159,6 @@ watch(
});
})
.finally(() => {
//console.log(objMastesform.list)
transferDetails = objMastesform.list.filter((item: any) => {
return item.type == "lowcodeTransfer";
@ -184,24 +182,24 @@ watch(
const value = item[key];
//
if (Object.prototype.hasOwnProperty.call(item, key)) {
if (key == "value") {
// /使JSON
const formattedValue =
(Array.isArray(value) || (typeof value === 'object' && value !== null))
Array.isArray(value) ||
(typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if (item[key] && item[key].length > 0) {
item[key] = mapIdsToLabels(element.control.fixedOptions,item[key])
item[key] = mapIdsToLabels(
element.control.fixedOptions,
item[key]
);
}
}
}
}
}
});
});
@ -216,8 +214,6 @@ watch(
}
);
interface TreeNode {
id: string;
label: string;
@ -235,18 +231,16 @@ function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id]);
return ids.map((id) => idToLabelMap[id]);
}
/**
@ 作者: 秦东
@ 时间: 2024-04-03 14:25:15
@ -272,8 +266,6 @@ const pageLog = ref<any[]>([]);
let gainTaskFormInfoData: customerFormVersionCont;
let gainTaskFormInfoPromise: any[] = [];
/**
@ 作者: 秦东
@ 时间: 2024-04-03 14:33:15
@ -418,7 +410,7 @@ const jsuanKuandu = () => {
if (props.pageInfo.flowIsOpen == 1) {
return 900 + 350;
} else {
return 900;
return 900 + 350;
}
};

34
src/components/DesignForm/tableListPage/index.vue

@ -548,9 +548,9 @@ const setUpClick = (val: string, id: string) => {
drawerWith.value = container.value?.clientWidth;
openTaskDrawer.value = true;
} else if (val.key === "export") {
alert("请在非编辑模式操作")
alert("请在非编辑模式操作");
} else if (val.key === "import") {
alert("请在非编辑模式操作")
alert("请在非编辑模式操作");
} else if (val.key == "showQrCode") {
//liwenxuan 20250114 start
//,
@ -978,7 +978,7 @@ const getPageData = () => {
//console.log(asfDetails)
if (asfDetails.length > 0 && data.data.list != null) {
console.log(data.data.list)
console.log(data.data.list);
//,asf
asfQueryParams = [];
for (let j = 0; j < asfDetails.length; j++) {
@ -1028,7 +1028,7 @@ const getPageData = () => {
}
} else {
//console.log(data.data.list)
transferDetails.forEach(element => {
transferDetails.forEach((element) => {
//console.log(element)
data.data.list.forEach((obj: any) => {
//console.log(obj)
@ -1039,7 +1039,8 @@ const getPageData = () => {
// /使JSON
const formattedValue =
(Array.isArray(value) || (typeof value === 'object' && value !== null))
Array.isArray(value) ||
(typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
@ -1048,12 +1049,11 @@ const getPageData = () => {
//console.log(key)
/* console.log(element.control.fixedOptions)
console.log(obj[key]) */
obj[key] = mapIdsToLabels(element.control.fixedOptions,obj[key])
obj[key] = mapIdsToLabels(element.control.fixedOptions, obj[key]);
}
}
}
});
});
//console.log(transferDetails)
//convertIdsToLabels(data.data.list.)
@ -1091,14 +1091,14 @@ function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id] || "已删除的节点( id : "+id+") ");
return ids.map((id) => idToLabelMap[id] || "已删除的节点( id : " + id + ") ");
}
const asfGetPageData = (asfFormId: any, asfToSelectMastersKey: any) => {
@ -1624,7 +1624,7 @@ const readerColumn = (column: any, isSun: int) => {
if (column.label.length < 3) {
labelLong = 3;
}
let size = 30; //
let size = 15; //
return labelLong * size;
} else {
return "100%";
@ -1639,12 +1639,12 @@ const readerColumnSun = (column: any) => {
let countLenght = 3;
column.children.forEach((item: any) => {
if (item.label.length < 3) {
countLenght = countLenght + 90;
countLenght = countLenght + 15;
} else {
countLenght = countLenght + item.label.length * 40;
countLenght = countLenght + item.label.length * 15;
}
});
console.log("表头label长度-->", countLenght);
// console.log("label-->", countLenght);
return countLenght;
} else {
return 100;
@ -2047,8 +2047,7 @@ const readerColumnSun = (column: any) => {
:label="item.label"
:width="readerColumnSun(item)"
>
<template #default="scope"
>{{ data.tableProps }}
<template #default="scope">
<el-table
v-if="item.pattern == 'table'"
v-bind="data.tableProps"
@ -2159,6 +2158,9 @@ const readerColumnSun = (column: any) => {
{{ scope.row[scope.column.property] }}
</el-link>
</template>
<template v-else #default="scope">
{{ scope.row[scope.column.property] }}
</template>
</el-table-column>
</template>
</el-table>

1
src/permission.ts

@ -43,6 +43,7 @@ router.beforeEach(async (to:any, from:any, next:any) => {
try {
// const { roles } = await userStore.getInfo();
const { perms } = await userStore.getInfo();
console.log("路由权限---》",perms);
const accessRoutes = await permissionStore.generateRoutes(perms);
console.log("路由权限--perms--》",accessRoutes);
accessRoutes.forEach((route:any) => {

3
src/store/modules/permission.ts

@ -61,9 +61,10 @@ const filterAsyncRoutes = (routes: RouteRecordRaw[], roles: string[]) => {
tmpRoute.component = Layout;
// console.log();
} else {
console.log("判断用户-251->",tmpRoute.component);
const component = modules[`../../views/${tmpRoute.component}.vue`];
// const component = modules[`${tmpRoute.component}.vue`];
// console.log("判断用户-->",component);
console.log("判断用户-1111111111111111->",component);
if (component) {
tmpRoute.component = component;
} else {

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

@ -30,6 +30,17 @@ const props = withDefaults(
}
);
var myChart = ref<any>();
const seriesAnlay = (listVal: any[]) => {
if (listVal && Array.isArray(listVal)) {
listVal.forEach((item: any) => {
item.label = {
show: true,
position: "top",
};
});
}
return listVal;
};
/**
@ 作者: 秦东
@ 时间: 2025-06-26 11:34:21
@ -45,16 +56,44 @@ const drawPictures = () => {
}).then((data) => {
console.log("火1111111兔", data);
if (data.code == 0 && data.data != null) {
let optVal = data.data;
// optVal.grid = {
// let optVal = data.data;
// let optVal = {
// tooltip: {
// trigger: "axis",
// axisPointer: {
// type: "shadow",
// },
// },
// grid: {
// left: "2%",
// right: "2%",
// bottom: "15%",
// top: "15%",
// containLabel: true,
// },
// ...data.data,
// };
myChart.value.setOption(optVal);
myChart.value.resize();
let optChart = {
grid: {
left: "2%",
right: "2%",
bottom: "15%",
top: "15%",
containLabel: true,
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: data.data.legend,
yAxis: data.data.yAxis,
xAxis: data.data.xAxis,
series: seriesAnlay(data.data.series),
};
myChart.value.setOption(optChart);
// myChart.value.resize();
} else {
myChart.value.setOption({
grid: {

13
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/barRace.vue

@ -46,13 +46,13 @@ const drawBarracetures = () => {
if (data.code == 0 && data.data != null) {
let radMap = data.data;
let seriesList = new Array();
if (radMap.seriesData && Array.isArray(radMap.seriesData)) {
radMap.seriesData.forEach((item: any) => {
if (radMap.series && Array.isArray(radMap.series)) {
radMap.series.forEach((item: any) => {
seriesList.push({
realtimeSort: true,
name: item.name,
type: "bar",
data: item.value,
data: item.data,
label: {
show: true,
position: "right",
@ -61,6 +61,7 @@ const drawBarracetures = () => {
});
});
}
console.log("排行榜--->", seriesList);
let optionData = {
grid: {
left: "2%",
@ -80,14 +81,14 @@ const drawBarracetures = () => {
},
yAxis: {
type: "category",
data: radMap.yAxisData,
data: radMap.xAxis.data,
inverse: true,
max: radMap.max, // only the largest 3 bars will be displayed
},
series: seriesList,
};
myChart.value.setOption(optionData);
myChart.value.resize();
// myChart.value.resize();
} else {
myChart.value.setOption({
grid: {
@ -120,7 +121,7 @@ const drawBarracetures = () => {
},
],
});
myChart.value.resize();
// myChart.value.resize();
}
});

80
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/line.vue

@ -28,7 +28,31 @@ const props = withDefaults(
}
);
var myChartPie = ref<any>();
const pinhuaOrzejiao = ref(false);
/**
@ 作者: 秦东
@ 时间: 2025-08-04 14:31:20
@ 功能: 解析数据结果
*/
const seriesAnlay = (listVal: any[]) => {
if (listVal && Array.isArray(listVal)) {
listVal.forEach((item: any) => {
item.smooth = pinhuaOrzejiao.value;
item.label = {
show: true,
position: "top",
};
});
}
return listVal;
};
watch(
() => pinhuaOrzejiao.value,
() => {
drawLine();
}
);
/**
@ 作者: 秦东
@ 时间: 2025-06-26 11:34:21
@ -46,18 +70,50 @@ const drawLine = () => {
}).then((data) => {
console.log("火兔", data);
if (data.code == 0 && data.data != null) {
let optVal = data.data;
optVal.grid = {
let optChart = {
grid: {
left: "2%",
right: "2%",
bottom: "15%",
top: "15%",
containLabel: true,
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
legend: data.data.legend,
yAxis: data.data.yAxis,
xAxis: data.data.xAxis,
series: seriesAnlay(data.data.series),
};
myChartPie.value.setOption(optVal);
myChartPie.value.resize();
// let optVal = data.data;
// optVal.grid = {
// left: "2%",
// right: "2%",
// bottom: "15%",
// top: "15%",
// containLabel: true,
// };
// (optVal.tooltip = {
// trigger: "axis",
// axisPointer: {
// type: "shadow",
// },
// }),
myChartPie.value.setOption(optChart);
// myChartPie.value.resize();
} else {
myChartPie.value.setOption({
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
grid: {
left: "2%",
right: "2%",
@ -80,17 +136,17 @@ const drawLine = () => {
name: "销量",
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: "line",
smooth: true,
smooth: pinhuaOrzejiao.value,
},
{
name: "销量科技",
data: [822, 942, 951, 4, 1290, 1330, 1320],
type: "line",
smooth: true,
smooth: pinhuaOrzejiao.value,
},
],
});
myChartPie.value.resize();
// myChartPie.value.resize();
}
});
@ -126,9 +182,12 @@ onMounted(() => {
</script>
<template>
<div>
<el-space wrap class="spaceBox">
<el-space wrap class="spaceBox leftOrRight">
<div>
<svg-icon icon-class="zydq" :size="20" />
<el-text>{{ props.data.title }}</el-text>
</div>
<el-switch v-model="pinhuaOrzejiao" active-text="平滑" inactive-text="折角" />
</el-space>
<el-form
v-if="props.data.search"
@ -248,4 +307,9 @@ onMounted(() => {
.demo-form-inline .el-select {
--el-select-width: 200px;
}
.leftOrRight {
display: flex;
justify-content: space-between;
align-items: center;
}
</style>

1
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie.vue

@ -145,6 +145,7 @@ const searBut = (val: string) => {
}
return false;
};
watch(
() => props.data,
(val: any) => {

26
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/radar.vue

@ -65,8 +65,9 @@ const drawRadar = () => {
},
],
};
console.log("雷达数据结构---》", optionData);
myChartPie.value.setOption(optionData);
myChartPie.value.resize();
// myChartPie.value.resize();
} else {
myChartPie.value.setOption({
grid: {
@ -167,7 +168,7 @@ onMounted(() => {
<el-date-picker
v-else-if="item.type == 3 && item.timeType == 'year'"
v-model="item.value"
type="yearrange"
type="yeayearrange"
range-separator="To"
start-placeholder="起始时间"
end-placeholder="结束时间"
@ -266,4 +267,25 @@ onMounted(() => {
.demo-form-inline .el-select {
--el-select-width: 200px;
}
.demo-date-picker {
display: flex;
width: 100%;
padding: 0;
flex-wrap: wrap;
}
.demo-date-picker .block {
padding: 30px 0;
text-align: center;
border-right: solid 1px var(--el-border-color);
flex: 1;
}
.demo-date-picker .block:last-child {
border-right: none;
}
.demo-date-picker .demonstration {
display: block;
color: var(--el-text-color-secondary);
font-size: 14px;
margin-bottom: 20px;
}
</style>

5
src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue

@ -106,6 +106,7 @@ const getGroupName = (item: any) => {
}
};
const groupClick = (item: any, ele?: string) => {
// if (props.types == 5) {
store.setActiveKey(getGroupName(item));
store.setControlAttr(item);
// grid
@ -113,7 +114,9 @@ const groupClick = (item: any, ele?: string) => {
// state.clone = !notNested(item.type)
// state.clone = !notNestedTableFlex(item.type);
pickEcharts.value = item;
console.log("点击激活当前--->", item, ele);
// }
console.log("点击激活当前--->", props.types, item, ele);
};
//
const click = (action: string, index: number, item?: any) => {

2
src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue

@ -608,7 +608,7 @@ const readerColumn = (column: any, isSun: int) => {
if (column.label.length < 3) {
labelLong = 3;
}
let size = 30; //
let size = 15; //
return labelLong * size;
} else {
return "100%";

2
src/views/sysworkflow/lowcodepage/pageList.vue

@ -612,7 +612,7 @@ const readerColumn = (column: any) => {
if (column.label.length < 3) {
labelLong = 3;
}
let size = 30; //
let size = 15; //
// column.minWidth = labelLong * size
//@ts-ignore
return labelLong * size;

4
src/views/sysworkflow/lowcodepage/runApp/runAppForm.vue

@ -459,10 +459,10 @@ function optionsValue3Get3(data: any, fieldName: string) {
justify-content: space-between;
background-color: #ffffff;
padding: 15px 15px 5px 15px;
margin-bottom: 15px;
margin-bottom: 10px;
}
.scroBox {
padding: 0 15px;
padding: 0 10px;
height: calc(100vh - 110px);
.tispMsg {
margin: 0 auto 15px auto;

Loading…
Cancel
Save