|
@@ -15,179 +15,186 @@
|
|
|
</fileSystem>
|
|
|
</div>
|
|
|
<div class="right-box">
|
|
|
- <NormalTable :key="dataNow" :searchParam="searchParam" :columns="columns" :deleteById="deleteById"
|
|
|
- :downLoad="downLoad" :list="reportList" designScope="device-tabel" title="报表管理" :showTab="false"
|
|
|
- @saveAdd="saveAdd" />
|
|
|
+ <NormalTable
|
|
|
+ :key="dataNow"
|
|
|
+ :searchParam="searchParam"
|
|
|
+ :columns="columns"
|
|
|
+ :deleteById="deleteById"
|
|
|
+ :downLoad="downLoad"
|
|
|
+ :list="reportList"
|
|
|
+ designScope="device-tabel"
|
|
|
+ title="报表管理"
|
|
|
+ :showTab="false"
|
|
|
+ @saveAdd="saveAdd"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref, nextTick, reactive, onMounted } from 'vue';
|
|
|
-import customHeader from '/@/components/vent/customHeader.vue';
|
|
|
-import fileSystem from './comment/common/cameraTree.vue';
|
|
|
-import { SvgIcon } from '/@/components/Icon';
|
|
|
-import treeIcon from './comment/common/Icon/treeIcon.vue';
|
|
|
-import NormalTable from './comment/NormalTable.vue';
|
|
|
-import { message } from 'ant-design-vue';
|
|
|
-import { columns, } from './reportManager.data';
|
|
|
-import { reportList, save, deleteById, downLoad, getQuery } from './reportManager.api';
|
|
|
+ import { ref, nextTick, reactive, onMounted } from 'vue';
|
|
|
+ import customHeader from '/@/components/vent/customHeader.vue';
|
|
|
+ import fileSystem from './comment/common/cameraTree.vue';
|
|
|
+ import { SvgIcon } from '/@/components/Icon';
|
|
|
+ import treeIcon from './comment/common/Icon/treeIcon.vue';
|
|
|
+ import NormalTable from './comment/NormalTable.vue';
|
|
|
+ import { message } from 'ant-design-vue';
|
|
|
+ import { columns } from './reportManager.data';
|
|
|
+ import { reportList, save, deleteById, downLoad, getQuery } from './reportManager.api';
|
|
|
|
|
|
-let dataNow = ref(0)
|
|
|
-let searchParam = reactive({
|
|
|
- busKind: '',
|
|
|
- modelType: '',
|
|
|
- reportType: '',
|
|
|
-})
|
|
|
+ let dataNow = ref(0);
|
|
|
+ let searchParam = reactive({
|
|
|
+ busKind: '',
|
|
|
+ modelType: '',
|
|
|
+ reportType: '',
|
|
|
+ });
|
|
|
|
|
|
-//左侧菜单列表
|
|
|
-let listArr = reactive<any[]>([
|
|
|
- {
|
|
|
- pid: 'auto',
|
|
|
- isFolder: true,
|
|
|
- isexpanded:true,
|
|
|
- title: '系统数据报表',
|
|
|
- id: '0',
|
|
|
- children: []
|
|
|
- },
|
|
|
- {
|
|
|
- pid: 'hand',
|
|
|
- isFolder: true,
|
|
|
- isexpanded:true,
|
|
|
- title: '手动报表',
|
|
|
- id: '1',
|
|
|
- children: []
|
|
|
- },
|
|
|
- {
|
|
|
- pid: 'temp',
|
|
|
- isFolder: true,
|
|
|
- isexpanded:true,
|
|
|
- title: '报表模板',
|
|
|
- id: '2',
|
|
|
- children: []
|
|
|
- },
|
|
|
-]);
|
|
|
-//lxh 当前选中树节点
|
|
|
-let selected = reactive<any>({
|
|
|
- id: null,
|
|
|
- pid: null,
|
|
|
- title: '',
|
|
|
- isFolder: false,
|
|
|
-});
|
|
|
+ //左侧菜单列表
|
|
|
+ let listArr = reactive<any[]>([
|
|
|
+ {
|
|
|
+ pid: 'auto',
|
|
|
+ isFolder: true,
|
|
|
+ isexpanded: true,
|
|
|
+ title: '系统数据报表',
|
|
|
+ id: '0',
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ pid: 'hand',
|
|
|
+ isFolder: true,
|
|
|
+ isexpanded: true,
|
|
|
+ title: '手动报表',
|
|
|
+ id: '1',
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ pid: 'temp',
|
|
|
+ isFolder: true,
|
|
|
+ isexpanded: true,
|
|
|
+ title: '报表模板',
|
|
|
+ id: '2',
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ ]);
|
|
|
+ //lxh 当前选中树节点
|
|
|
+ let selected = reactive<any>({
|
|
|
+ id: null,
|
|
|
+ pid: null,
|
|
|
+ title: '',
|
|
|
+ isFolder: false,
|
|
|
+ });
|
|
|
|
|
|
-//获取左侧菜单树
|
|
|
-async function getTreeList() {
|
|
|
- const res = await getQuery()
|
|
|
- if (res.length != 0) {
|
|
|
- listArr.forEach(el => {
|
|
|
- el.children.length = 0
|
|
|
- res.forEach(v => {
|
|
|
- // v.id=v.itemValue
|
|
|
- let childre: any[] = []
|
|
|
- if (v.children.length != 0) {
|
|
|
- v.children.forEach(m => {
|
|
|
- childre.push({ pid: v.itemValue, ppid: el.id, isFolder: false,isexpanded:false, title: m.itemText, id: m.itemValue })
|
|
|
- })
|
|
|
- }
|
|
|
- el.children.push({ pid: el.id, isFolder: true,isexpanded:false, title: v.itemText, id: v.itemValue, children: childre })
|
|
|
- })
|
|
|
- })
|
|
|
- console.log(listArr, 'listArr-----------')
|
|
|
+ //获取左侧菜单树
|
|
|
+ async function getTreeList() {
|
|
|
+ const res = await getQuery();
|
|
|
+ if (res.length != 0) {
|
|
|
+ listArr.forEach((el) => {
|
|
|
+ el.children.length = 0;
|
|
|
+ res.forEach((v) => {
|
|
|
+ // v.id=v.itemValue
|
|
|
+ let childre: any[] = [];
|
|
|
+ if (v.children.length != 0) {
|
|
|
+ v.children.forEach((m) => {
|
|
|
+ childre.push({ pid: v.itemValue, ppid: el.id, isFolder: false, isexpanded: false, title: m.itemText, id: m.itemValue });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ el.children.push({ pid: el.id, isFolder: true, isexpanded: false, title: v.itemText, id: v.itemValue, children: childre });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ console.log(listArr, 'listArr-----------');
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
-//点击目录
|
|
|
-async function onClick(node) {
|
|
|
- console.log(node, 'node--------------')
|
|
|
- if (node.pid == 'auto') {
|
|
|
- treeClick(node)
|
|
|
- } else if (node.pid == 'hand') {
|
|
|
- treeClick(node)
|
|
|
- } else {
|
|
|
- treeClick(node)
|
|
|
+ //点击目录
|
|
|
+ async function onClick(node) {
|
|
|
+ console.log(node, 'node--------------');
|
|
|
+ if (node.pid == 'auto') {
|
|
|
+ treeClick(node);
|
|
|
+ } else if (node.pid == 'hand') {
|
|
|
+ treeClick(node);
|
|
|
+ } else {
|
|
|
+ treeClick(node);
|
|
|
+ }
|
|
|
}
|
|
|
-};
|
|
|
-function treeClick(node) {
|
|
|
- dataNow.value = new Date().getTime()
|
|
|
- selected.id = node.id;
|
|
|
- selected.pid = node.pid;
|
|
|
- selected.title = node.title;
|
|
|
- selected.isFolder = node.isFolder;
|
|
|
- selected.ppid=node.ppid
|
|
|
- if (node.id == '0' || node.id == '1' || node.id == '2') {
|
|
|
- searchParam.busKind = ''
|
|
|
- searchParam.modelType = node.id
|
|
|
- searchParam.reportType = ''
|
|
|
- } else if (node.pid == '0' || node.pid == '1' || node.pid == '2') {
|
|
|
- searchParam.busKind = node.id
|
|
|
- searchParam.modelType = node.pid
|
|
|
- searchParam.reportType = ''
|
|
|
- } else {
|
|
|
- searchParam.busKind = node.pid
|
|
|
- searchParam.modelType = node.ppid
|
|
|
- searchParam.reportType = node.id
|
|
|
+ function treeClick(node) {
|
|
|
+ dataNow.value = new Date().getTime();
|
|
|
+ selected.id = node.id;
|
|
|
+ selected.pid = node.pid;
|
|
|
+ selected.title = node.title;
|
|
|
+ selected.isFolder = node.isFolder;
|
|
|
+ selected.ppid = node.ppid;
|
|
|
+ if (node.id == '0' || node.id == '1' || node.id == '2') {
|
|
|
+ searchParam.busKind = '';
|
|
|
+ searchParam.modelType = node.id;
|
|
|
+ searchParam.reportType = '';
|
|
|
+ } else if (node.pid == '0' || node.pid == '1' || node.pid == '2') {
|
|
|
+ searchParam.busKind = node.id;
|
|
|
+ searchParam.modelType = node.pid;
|
|
|
+ searchParam.reportType = '';
|
|
|
+ } else {
|
|
|
+ searchParam.busKind = node.pid;
|
|
|
+ searchParam.modelType = node.ppid;
|
|
|
+ searchParam.reportType = node.id;
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-async function saveAdd(params) {
|
|
|
- let res = await save({ ...params });
|
|
|
- if (res.id) {
|
|
|
- message.warning('新增成功!');
|
|
|
- } else {
|
|
|
- message.error('新增失败!')
|
|
|
+ async function saveAdd(params) {
|
|
|
+ let res = await save({ ...params });
|
|
|
+ if (res.id) {
|
|
|
+ message.warning('新增成功!');
|
|
|
+ } else {
|
|
|
+ message.error('新增失败!');
|
|
|
+ }
|
|
|
+ dataNow.value = new Date().getTime();
|
|
|
}
|
|
|
- dataNow.value = new Date().getTime()
|
|
|
-}
|
|
|
|
|
|
-onMounted(() => {
|
|
|
- getTreeList()
|
|
|
-})
|
|
|
+ onMounted(() => {
|
|
|
+ getTreeList();
|
|
|
+ });
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-.reportManager {
|
|
|
- width: calc(100% - 20px);
|
|
|
- height: calc(100% - 90px);
|
|
|
- position: relative;
|
|
|
- margin: 80px 10px 10px 10px;
|
|
|
-
|
|
|
- .content {
|
|
|
- width: 100%;
|
|
|
- height: calc(100% - 30px);
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: flex-start;
|
|
|
+ .reportManager {
|
|
|
+ width: calc(100% - 20px);
|
|
|
+ height: calc(100% - 90px);
|
|
|
position: relative;
|
|
|
+ margin: 80px 10px 10px 10px;
|
|
|
+
|
|
|
+ .content {
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100% - 30px);
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: flex-start;
|
|
|
+ position: relative;
|
|
|
|
|
|
- // z-index: 999;
|
|
|
- .left-box {
|
|
|
- width: 15%;
|
|
|
- height: 100%;
|
|
|
- padding: 20px;
|
|
|
- border: 1px solid #99e8ff66;
|
|
|
- background: #27546e1a;
|
|
|
- box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
|
|
|
- -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
|
|
|
- -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
|
|
|
- overflow-y: auto;
|
|
|
+ // z-index: 999;
|
|
|
+ .left-box {
|
|
|
+ width: 15%;
|
|
|
+ height: 100%;
|
|
|
+ padding: 20px;
|
|
|
+ border: 1px solid #99e8ff66;
|
|
|
+ background: #27546e1a;
|
|
|
+ box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
|
|
|
+ -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
|
|
|
+ -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
|
|
|
+ overflow-y: auto;
|
|
|
|
|
|
- // lxh
|
|
|
- .iconfont {
|
|
|
- color: #fff;
|
|
|
- font-size: 12px;
|
|
|
- margin-left: 5px;
|
|
|
+ // lxh
|
|
|
+ .iconfont {
|
|
|
+ color: #fff;
|
|
|
+ font-size: 12px;
|
|
|
+ margin-left: 5px;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .right-box {
|
|
|
- width: 85%;
|
|
|
- height: 100%;
|
|
|
- padding: 0px 0px 0px 15px;
|
|
|
- box-sizing: border-box;
|
|
|
+ .right-box {
|
|
|
+ width: 85%;
|
|
|
+ height: 100%;
|
|
|
+ padding: 0px 0px 0px 15px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
</style>
|