Browse Source

近期数据修改

qin_24
herenshan112 4 months ago
parent
commit
c3f3967aeb
  1. 343
      src/components/DesignForm/app/index.vue
  2. 108
      src/components/DesignForm/tableListPage/formPageCont.vue
  3. 90
      src/components/DesignForm/tableListPage/index.vue
  4. 1
      src/permission.ts
  5. 3
      src/store/modules/permission.ts
  6. 2
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue
  7. 2
      src/views/sysworkflow/lowcodepage/pageList.vue
  8. 4
      src/views/sysworkflow/lowcodepage/runApp/runAppForm.vue

343
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,
@ -551,10 +551,10 @@ const setUpClick = (val: string, id: string) => {
if (val.key == "newAdd") {
drawerWith.value = container.value?.clientWidth;
openTaskDrawer.value = true;
}else if (val.key === "export"){
doExportTableData()
}else if (val.key === "import"){
doImportTableData()
} else if (val.key === "export") {
doExportTableData();
} else if (val.key === "import") {
doImportTableData();
} else if (val.key == "showQrCode") {
//liwenxuan 20250114 start
//,
@ -869,19 +869,19 @@ const columnsFilter = computed(() => {
console.log("获取表格头内容", props.data.columns);
});
const subTableFieldsFilter=computed(()=>{
const arr:{table:string,field:string,label:string}[]=[]
const names:string[]=[]
props.fieldsDetailList.forEach((item:any) => {
if(item.type==="table"){
names.push(item.name)
const subTableFieldsFilter = computed(() => {
const arr: { table: string; field: string; label: string }[] = [];
const names: string[] = [];
props.fieldsDetailList.forEach((item: any) => {
if (item.type === "table") {
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,42 +981,46 @@ const getPageData = () => {
default:
state.loading = true;
//by han2015, 便
doGainFormPageListCont(sendData).then(datas=>{
tableDataList.value = datas.list
state.total=datas.total
}).finally(()=>{
// finally
state.loading = false;
asfs = [];
radios = [];
checkboxs = [];
switchs = [];
selects = [];
tables = [];
dofs = [];
getAsfs();
})
doGainFormPageListCont(sendData)
.then((datas) => {
tableDataList.value = datas.list;
state.total = datas.total;
})
.finally(() => {
// finally
state.loading = false;
asfs = [];
radios = [];
checkboxs = [];
switchs = [];
selects = [];
tables = [];
dofs = [];
getAsfs();
});
}
};
//
function doImportTableData(){
dynamicVNode.value=h(importPanel,{
fields:props.fieldsDetailList.filter(val=>val.type!=="table"),
formId:props.versionid,
commitFunc:()=>{
getPageData() //table
dynamicVNode.value=null
function doImportTableData() {
dynamicVNode.value = h(importPanel, {
fields: props.fieldsDetailList.filter((val) => val.type !== "table"),
formId: props.versionid,
commitFunc: () => {
getPageData(); //table
dynamicVNode.value = null;
},
closeFunc:()=>dynamicVNode.value=null
})
closeFunc: () => (dynamicVNode.value = null),
});
}
//
function doExportTableData(){
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,79 +1028,87 @@ function doExportTableData(){
searchData: json2string(props.searchData),
};
//
doGainFormPageListCont(sendData).then(datas=>{
const array: string[] = [];
//
const title:string[] = [];
for (let val of fields){
title.push(val.label)
}
for (let val of subs){
title.push(val.label)
}
array.push(title.join(","))
//
datas.list.forEach((item)=>{
const line=[];
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])
doGainFormPageListCont(sendData)
.then((datas) => {
const array: string[] = [];
//
const title: string[] = [];
for (let val of fields) {
title.push(val.label);
}
//
if (subs.length>0){
//
for (let tab of subTableFieldsFilter.value.tables){
if(item[tab] && item[tab].length>maxline) maxline=item[tab].length
}
//
if(maxline===0){
array.push(line.join(",")+","+Array(subs.length).fill(""))
return
for (let val of subs) {
title.push(val.label);
}
array.push(title.join(","));
//
datas.list.forEach((item) => {
const line = [];
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]);
}
//spaceprefix
const spacePrefix=Array(line.length).fill("")
for(let i=0;i<maxline;i++){
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])
})
}else{
//N
row.push(...(Array(subs.filter(v=>v.table===name).length).fill("")))
}
})
//csv
if(i===0){
array.push(line.join(",")+","+row.join(","))
}else{
array.push(spacePrefix+","+row.join(","))
//
if (subs.length > 0) {
//
for (let tab of subTableFieldsFilter.value.tables) {
if (item[tab] && item[tab].length > maxline) maxline = item[tab].length;
}
//
if (maxline === 0) {
array.push(line.join(",") + "," + Array(subs.length).fill(""));
return;
}
//spaceprefix
const spacePrefix = Array(line.length).fill("");
for (let i = 0; i < maxline; i++) {
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]);
});
} else {
//N
row.push(
...Array(subs.filter((v) => v.table === name).length).fill("")
);
}
});
//csv
if (i === 0) {
array.push(line.join(",") + "," + row.join(","));
} else {
array.push(spacePrefix + "," + row.join(","));
}
}
return;
}
//
array.push(line.join(","));
});
return
}
//
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 blob = new Blob([csvString], { type: "text/csv;charset=utf-8;" });
const link = document.createElement("a");
if (link.download !== undefined) { // feature detection
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
// Browsers that support HTML5 download attribute
const url = URL.createObjectURL(blob);
link.setAttribute("href", url);
@ -1105,21 +1117,22 @@ function doExportTableData(){
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}).finally(()=>dynamicVNode.value=null)
}
})
.finally(() => (dynamicVNode.value = null));
}
dynamicVNode.value=h(exportPanel,{
fields:columnsFilter.value.filter((item)=>item.pattern!=="table"),
subtabs:columnsFilter.value.filter((item)=>item.pattern==="table"),
subFields:subTableFieldsFilter.value.fields,
commitFunc:exportFunc,
closeFunc:()=>dynamicVNode.value=null
})
dynamicVNode.value = h(exportPanel, {
fields: columnsFilter.value.filter((item) => item.pattern !== "table"),
subtabs: columnsFilter.value.filter((item) => item.pattern === "table"),
subFields: subTableFieldsFilter.value.fields,
commitFunc: exportFunc,
closeFunc: () => (dynamicVNode.value = null),
});
}
async function doGainFormPageListCont(sendData:any){
const data =await gainFormPageListCont(sendData)
async function doGainFormPageListCont(sendData: any) {
const data = await gainFormPageListCont(sendData);
// console.log("----------------->",data)
//console.log(dataList)
asfDetails = props.data.columns.filter((item: any) => {
@ -1179,68 +1192,68 @@ async function doGainFormPageListCont(sendData:any){
}
return dataList.data;
});
}
}
return data.data;
}
}
//console.log(data.data.list)
transferDetails.forEach(element => {
transferDetails.forEach((element) => {
//console.log(element)
data.data.list.forEach((obj: any) => {
//console.log(obj)
for (const key in obj) {
//
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
// /使JSON
const formattedValue =
(Array.isArray(value) || (typeof value === 'object' && value !== null))
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if(key==element.field){
//console.log(key)
/* console.log(element.control.fixedOptions)
const value = obj[key];
// /使JSON
const formattedValue =
Array.isArray(value) || (typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if (key == element.field) {
//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]);
}
}
}
}
});
});
return data.data;
//tableDataList.value = data.data.list
//liwenxuan end
}
interface TreeNode {
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
}
function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
}
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id] || "已删除的节点(id):"+id);
//
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
return ids.map((id) => idToLabelMap[id] || "已删除的节点(id):" + id);
}
const asfGetPageData = (asfFormId: any, asfToSelectMastersKey: any) => {
@ -1764,9 +1777,9 @@ 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);
@ -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"
@ -2204,7 +2216,7 @@ const readerColumnSun = (column: any) => {
</el-table>
</template>
</el-table-column>
<el-table-column
v-else
:prop="item.field"
@ -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;

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

@ -80,7 +80,7 @@ const formProps = inject(constFormProps, {}) as any;
let getFieldRecordPromises: any[] = [];
let objMastesform: any;
let transferDetails:any = [];
let transferDetails: any = [];
/**
@ 作者: 秦东
@ -159,8 +159,6 @@ watch(
});
})
.finally(() => {
//console.log(objMastesform.list)
transferDetails = objMastesform.list.filter((item: any) => {
return item.type == "lowcodeTransfer";
@ -169,44 +167,44 @@ watch(
//alert(props.pageInfo.masters_key)
gainEditDataLog({ id: props.pageInfo.masters_key }).then(({ data }) => {
//console.log(formState.formData.list)
//console.log("-1111-->",data)
transferDetails.forEach((element: any) => {
//console.log(element)
data.forEach((obj: any) => {
//console.log(obj.masterdata)
obj.masterdata.forEach((item: any) => {
if(item.field==element.name){
//console.log(element.control.fixedOptions)
//console.log(item)
//console.log(element)
data.forEach((obj: any) => {
//console.log(obj.masterdata)
obj.masterdata.forEach((item: any) => {
if (item.field == element.name) {
//console.log(element.control.fixedOptions)
//console.log(item)
for (const key in item) {
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))
? 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])
}
}
for (const key in item) {
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)
? 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]
);
}
}
}
}
});
}
});
});
});
pageLog.value = data;
});
});
@ -216,37 +214,33 @@ watch(
}
);
interface TreeNode {
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
}
function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
/* console.log(treeNodes)
/* console.log(treeNodes)
console.log(ids1) */
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
}
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id]);
//
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
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;
}
};

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

@ -547,10 +547,10 @@ const setUpClick = (val: string, id: string) => {
if (val.key == "newAdd") {
drawerWith.value = container.value?.clientWidth;
openTaskDrawer.value = true;
}else if (val.key === "export"){
alert("请在非编辑模式操作")
}else if (val.key === "import"){
alert("请在非编辑模式操作")
} else if (val.key === "export") {
alert("请在非编辑模式操作");
} else if (val.key === "import") {
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++) {
@ -1020,7 +1020,7 @@ const getPageData = () => {
}
}
}
tableDataList.value = dataList.data.list;
});
} else {
@ -1028,32 +1028,32 @@ 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)
for (const key in obj) {
//
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
// /使JSON
const formattedValue =
(Array.isArray(value) || (typeof value === 'object' && value !== null))
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if(key==element.field){
//console.log(key)
/* console.log(element.control.fixedOptions)
//
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
// /使JSON
const formattedValue =
Array.isArray(value) ||
(typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if (key == element.field) {
//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.)
@ -1077,28 +1077,28 @@ const getPageData = () => {
};
interface TreeNode {
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
id: string;
label: string;
disabled: boolean;
children: TreeNode[];
}
function mapIdsToLabels(treeNodes: TreeNode[], ids1: string): string[] {
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach(child => traverse(child)); //
}
const ids: string[] = JSON.parse(ids1);
// idlabel
const idToLabelMap: Record<string, string> = {};
//
function traverse(node: TreeNode) {
idToLabelMap[node.id] = node.label; //
node.children.forEach((child) => traverse(child)); //
}
//
treeNodes.forEach(root => traverse(root));
//console.log(ids)
// idlabel
return ids.map(id => idToLabelMap[id] || "已删除的节点( id : "+id+") ");
//
treeNodes.forEach((root) => traverse(root));
//console.log(ids)
// idlabel
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,9 +1639,9 @@ 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);

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 {

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