Browse Source

分组:支持配置单元格合并字段

qin_s5
han2015 4 weeks ago
parent
commit
ca779aa879
  1. 2
      src/components/DesignForm/app/cardPage.vue
  2. 2
      src/components/DesignForm/app/gannttPage.vue
  3. 25
      src/components/DesignForm/app/groupPage.vue
  4. 4
      src/components/DesignForm/app/index.vue
  5. 2
      src/components/DesignForm/app/mapPage.vue
  6. 2
      src/components/DesignForm/app/timeAxis.vue
  7. 2
      src/components/DesignForm/tableListPage/index.vue
  8. 16
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue

2
src/components/DesignForm/app/cardPage.vue

@ -290,7 +290,7 @@ const lookPageInfo = (val:any) => {
} }
</script> </script>
<template> <template>
<div> <div id="special-table-container">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col v-for="item in cardDataList" :key="item.id" :span="lineRanks" class="cardBox"> <el-col v-for="item in cardDataList" :key="item.id" :span="lineRanks" class="cardBox">

2
src/components/DesignForm/app/gannttPage.vue

@ -24,7 +24,7 @@ const props = defineProps({
}); });
</script> </script>
<template> <template>
<div> <div id="special-table-container">
{{viewSetup}} {{viewSetup}}
</div> </div>
</template> </template>

25
src/components/DesignForm/app/groupPage.vue

@ -105,7 +105,7 @@ const spanMap = computed(() => {
return map return map
}) })
//
const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => { const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
const key = column.property const key = column.property
@ -153,6 +153,19 @@ const getPageData=async ()=>{
} }
onMounted(()=>{ onMounted(()=>{
if(props.viewSetup.form.title&&props.viewSetup.form.title.length){
props.viewSetup.form.title.forEach(ele => {
if(props.viewSetup.form.sort==2){
columnSortData.set(ele, "");
}else{
columnSortData.set(ele,'DESC'); //asc
}
});
selectedMergeKeys.value=Array.from(columnSortData.keys())
}
nextTick(()=>{ nextTick(()=>{
getPageData() getPageData()
}) })
@ -165,13 +178,11 @@ defineExpose({
</script> </script>
<template> <template>
<div> <div id="special-table-container">
<el-row :gutter="20"> <el-row :gutter="20" >
<el-table <el-table
:data="tableDataList" :data="tableDataList"
:span-method="objectSpanMethod" :span-method="objectSpanMethod"
@sort-change="onUpdateSort"
:header-cell-class-name="setHeaderClass"
border border
> >
<template v-for="item in columnsFilter" :key="item.id || item.label"> <template v-for="item in columnsFilter" :key="item.id || item.label">
@ -210,7 +221,6 @@ defineExpose({
:label="item.label" :label="item.label"
:min-width="(item.label?.length || 2) * 15 + 30" :min-width="(item.label?.length || 2) * 15 + 30"
header-align="center" header-align="center"
sortable="custom"
align="center" align="center"
> >
<template #default="scope"> <template #default="scope">
@ -246,7 +256,6 @@ defineExpose({
config="" config=""
:min-width="(item.label?.length || 2) * 15 + 30" :min-width="(item.label?.length || 2) * 15 + 30"
header-align="center" header-align="center"
sortable="custom"
align="center" align="center"
> >
<template v-if="item.fieldClass == 'associatedForms'" #default="scope"> <template v-if="item.fieldClass == 'associatedForms'" #default="scope">
@ -270,7 +279,7 @@ defineExpose({
<el-pagination <el-pagination
v-model:current-page="props.searchSend.page" v-model:current-page="props.searchSend.page"
v-model:page-size="pageSize" v-model:page-size="pageSize"
:page-sizes="[3, 9, 12, 30, 50, 100]" :page-sizes="[30, 50, 100]"
:background="true" :background="true"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="totalNum" :total="totalNum"

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

@ -1734,7 +1734,9 @@ const recallSendMsg = (val: any) => {
//html //html
const enterFullScreen=()=>{ const enterFullScreen=()=>{
const docEl= document.getElementById("special-table-container"); const docEl= document.getElementById("special-table-container");
if(docEl){ if(docEl){
docEl.style.backgroundColor = '#ffffff';
// //
if (docEl.requestFullscreen) { if (docEl.requestFullscreen) {
docEl.requestFullscreen(); docEl.requestFullscreen();
@ -2558,7 +2560,7 @@ const isObject = (obj: any) => {
:columns-filter="columnsFilter" :columns-filter="columnsFilter"
:body-hight="265" :body-hight="265"
:drawer-with="drawerWith" :drawer-with="drawerWith"
:view-setup="viewPage.date" :view-setup="viewPage.group"
/> />
</el-col> </el-col>
<el-col v-if="viewType == 2" :span="24"> <el-col v-if="viewType == 2" :span="24">

2
src/components/DesignForm/app/mapPage.vue

@ -173,7 +173,7 @@ const currentChange = (current: number) => {
} }
</script> </script>
<template> <template>
<div> <div id="special-table-container">
<div id="pickMapView" :ref="mapId" class="openMapView"></div> <div id="pickMapView" :ref="mapId" class="openMapView"></div>
<div class="mapPage"> <div class="mapPage">
<el-pagination layout="prev, pager, next" :total="totalNum" @current-change="currentChange" /> <el-pagination layout="prev, pager, next" :total="totalNum" @current-change="currentChange" />

2
src/components/DesignForm/app/timeAxis.vue

@ -217,7 +217,7 @@ const writeListTitle = (val:any) => {
} }
</script> </script>
<template> <template>
<ul v-infinite-scroll="loadTimeLog" class="infinite-list" :infinite-scroll-disabled="timeDisabled"> <ul v-infinite-scroll="loadTimeLog" class="infinite-list" :infinite-scroll-disabled="timeDisabled" id="special-table-container">
<el-timeline :reverse="true" class="timeLineStyle" > <el-timeline :reverse="true" class="timeLineStyle" >

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

@ -1878,7 +1878,7 @@ const isObject = (obj: any) => {
> >
<el-button <el-button
size="small" size="small"
class="fa fa-table" class="fa fa-list"
:color=" :color="
props.viewPage.group && props.viewPage.group.isClick ? '#a0cfff' : '' props.viewPage.group && props.viewPage.group.isClick ? '#a0cfff' : ''
" "

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

@ -41,6 +41,7 @@ import {
} from "@/api/displayboardapi/indexapi"; } from "@/api/displayboardapi/indexapi";
import Sortable from "sortablejs"; import Sortable from "sortablejs";
// //
import PageListHeadTools from "@/views/sysworkflow/lowcodepage/pageListHeadToolsApp.vue"; import PageListHeadTools from "@/views/sysworkflow/lowcodepage/pageListHeadToolsApp.vue";
import ControlSetup from "@/views/sysworkflow/lowcodepage/pageSetUpDialog/controlSetup.vue"; import ControlSetup from "@/views/sysworkflow/lowcodepage/pageSetUpDialog/controlSetup.vue";
@ -172,6 +173,7 @@ const state = reactive({
isClick: false, isClick: false,
form: { form: {
title: [], title: [],
sort: 1,
}, },
}, },
date: { date: {
@ -321,6 +323,7 @@ const jieForm = () => {
*/ */
onMounted(() => { onMounted(() => {
jieForm(); jieForm();
nextTick(() => { nextTick(() => {
gainFormTableKeyWord(props.appPageKey.toString()); gainFormTableKeyWord(props.appPageKey.toString());
}); });
@ -2353,20 +2356,27 @@ const delAllPick = () => {
:model="state.view.group.form" :model="state.view.group.form"
style="max-width: 600px" style="max-width: 600px"
> >
<el-form-item label="标题字段"> <el-form-item label="排序分组字段">
<el-select <el-select
ref="groupsorter"
v-model="state.view.group.form.title" v-model="state.view.group.form.title"
multiple multiple
placeholder="请选择标题字段" placeholder="请选择分组字段"
> >
<el-option <el-option
v-for="item in allKeyWords" v-for="item in allKeyWords"
:key="item.value" :key="item"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="排序方式">
<el-radio-group v-model="state.view.group.form.sort">
<el-radio :label="1">降序</el-radio>
<el-radio :label="2">升序</el-radio>
</el-radio-group>
</el-form-item>
</el-form> </el-form>
</div> </div>
</el-collapse-item> </el-collapse-item>

Loading…
Cancel
Save