修改冀北现场问题

This commit is contained in:
GGJ
2025-12-12 09:26:56 +08:00
parent b36f765d07
commit 46c55d48ec
38 changed files with 1489 additions and 1370 deletions

View File

@@ -194,7 +194,7 @@ const dotList: any = ref({})
const height = mainHeight(20)
const heightB = mainHeight(70)
const harmonic = harmonicOptions.slice(1)
const size = ref(0)
const size = ref(23)
const showTabs = ref(false)
const loadDataOptions: any = ref([])
const form: any = reactive({

View File

@@ -45,7 +45,7 @@
<Shishishuju v-if="activeName == '7'" />
</el-tab-pane>
<el-tab-pane label="统计报表" name="8" lazy v-if="!isReload && VITE_FLAG">
<StatisticalReport v-if="activeName == '8'" />
<StatisticalReport v-if="activeName == '8'" />
</el-tab-pane>
</el-tabs>
<!-- <div
@@ -83,7 +83,7 @@ defineOptions({
const monitoringPoint = useMonitoringPoint()
const pointTree = ref()
const size = ref(0)
const size = ref(23)
const isReload = ref(false)
const height = mainHeight(40)
const activeName = ref('2')

View File

@@ -1,46 +1,44 @@
<template>
<div class="" :style="height">
<TableHeader ref="TableHeaderRef" datePicker @selectChange="selectChange">
<template v-slot:select>
<el-form-item label="模板策略">
<el-select v-model="Template" @change="changetype" placeholder="请选择模版" value-key="id">
<el-option
v-for="item in templatePolicy"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="报表类型">
<el-input readonly type="text" value="分析报表"></el-input>
<!-- <el-select-->
<!-- :disabled="true"-->
<!-- v-model="reportForm"-->
<!-- :popper-append-to-body="false"-->
<!-- placeholder="请选择报表类型"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in reportFormList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">导出excel</el-button>
<el-button icon="el-icon-Download" :loading="loading" @click="exportReport" type="primary">
下载报告
</el-button>
</template>
</TableHeader>
<div class="box">
<div id="luckysheet" :style="`height: calc(${tableStore.table.height} )`"></div>
</div>
<TableHeader ref="TableHeaderRef" datePicker @selectChange="selectChange">
<template v-slot:select>
<el-form-item label="模板策略">
<el-select v-model="Template" @change="changetype" placeholder="请选择模版" value-key="id">
<el-option
v-for="item in templatePolicy"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="报表类型">
<el-input readonly type="text" value="分析报表"></el-input>
<!-- <el-select-->
<!-- :disabled="true"-->
<!-- v-model="reportForm"-->
<!-- :popper-append-to-body="false"-->
<!-- placeholder="请选择报表类型"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in reportFormList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">导出excel</el-button>
<el-button icon="el-icon-Download" :loading="loading" @click="exportReport" type="primary">
下载报告
</el-button>
</template>
</TableHeader>
<div class="box">
<div id="luckysheet" :style="`height: calc(${tableStore.table.height} )`"></div>
</div>
</div>
</template>
<script setup lang="ts">
@@ -63,7 +61,7 @@ defineOptions({
const monitoringPoint = useMonitoringPoint()
const showTree = ref(false)
const height = mainHeight(20)
const size = ref(0)
const size = ref(23)
const dictData = useDictData()
const TableHeaderRef = ref()
const dotList: any = ref({})
@@ -79,7 +77,7 @@ const tableStore = new TableStore({
publicHeight: 30,
beforeSearchFun: () => {
tableStore.table.params.tempId = Template.value.id
tableStore.table.params.lineId =monitoringPoint.state.lineId
tableStore.table.params.lineId = monitoringPoint.state.lineId
},
loadCallback: () => {
tableStore.table.data.forEach((item: any) => {
@@ -135,13 +133,10 @@ const selectChange = () => {
}
}
const exportEvent = () => {
exportExcel(luckysheet.getAllSheets(), '统计报表下载')
}
const exportReport = () => {
loading.value = true
let form = new FormData()
form.append('isUrl', false)

View File

@@ -71,7 +71,7 @@ defineOptions({
})
const showTree = ref(false)
const height = mainHeight(20)
const size = ref(0)
const size = ref(23)
const dictData = useDictData()
const TableHeaderRef = ref()
const dotList: any = ref({})
@@ -165,7 +165,6 @@ const exportEvent = () => {
exportExcel(luckysheet.getAllSheets(), '统计报表下载')
}
const exportReport = () => {
loading.value = true
let form = new FormData()
form.append('isUrl', false)

View File

@@ -1,36 +1,58 @@
<template>
<div class='default-main' :style='height'>
<splitpanes style='height: 100%' class='default-theme' id='navigation-splitpanes'>
<pane :size='size'>
<PointTree :default-expand-all='false' @node-click='handleNodeClick' @init='handleNodeClick'>
</PointTree>
<div class="default-main" :style="height">
<splitpanes style="height: 100%" class="default-theme" id="navigation-splitpanes">
<pane :size="size">
<PointTree
:default-expand-all="false"
@node-click="handleNodeClick"
@init="handleNodeClick"
></PointTree>
</pane>
<pane style='background: #fff' :style='height'>
<TableHeader ref='TableHeaderRef' datePicker :show-search='false'>
<pane style="background: #fff" :style="height">
<TableHeader ref="TableHeaderRef" datePicker :show-search="false">
<template v-slot:select>
<el-form-item label='客户名称'>
<el-input v-model='tableStore.table.params.crmName' maxlength='32' show-word-limit clearable
placeholder='请输入客户名称' />
<el-form-item label="客户名称">
<el-input
v-model="tableStore.table.params.crmName"
maxlength="32"
show-word-limit
clearable
placeholder="请输入客户名称"
/>
</el-form-item>
<el-form-item label='报表编号'>
<el-input v-model='tableStore.table.params.reportNumber' clearable
placeholder='请输入报表编号' maxlength='12' show-word-limit />
<el-form-item label="报表编号">
<el-input
v-model="tableStore.table.params.reportNumber"
clearable
placeholder="请输入报表编号"
maxlength="12"
show-word-limit
/>
</el-form-item>
</template>
<template #operation>
<el-upload :show-file-list='false' ref='uploadRef' action='' accept='.png,.jpg'
:on-change='choose' :auto-upload='false'>
<el-upload
:show-file-list="false"
ref="uploadRef"
action=""
accept=".png,.jpg"
:on-change="choose"
:auto-upload="false"
>
<template #trigger>
<el-button icon='el-icon-Upload' type='primary' class='mr10 ml10'>上传接线图</el-button>
<el-button icon="el-icon-Upload" type="primary" class="mr10 ml10">上传接线图</el-button>
</template>
</el-upload>
<el-button icon='el-icon-Download' type='primary' @click='exportEvent'>生成</el-button>
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">生成</el-button>
</template>
</TableHeader>
<div class='box'>
<div id='luckysheet'>
<img width='100%' :style='`height: calc(${tableStore.table.height} + 40px)`'
src='@/assets/img/jss.png' />
<div class="box">
<div id="luckysheet">
<img
width="100%"
:style="`height: calc(${tableStore.table.height} + 40px)`"
src="@/assets/img/jss.png"
/>
</div>
</div>
</pane>
@@ -38,7 +60,7 @@
</div>
</template>
<script setup lang='ts'>
<script setup lang="ts">
import { onMounted, ref, provide } from 'vue'
import 'splitpanes/dist/splitpanes.css'
import { Splitpanes, Pane } from 'splitpanes'
@@ -55,7 +77,7 @@ defineOptions({
// name: 'harmonic-boot/report/word'
})
const height = mainHeight(20)
const size = ref(0)
const size = ref(23)
const dictData = useDictData()
const TableHeaderRef = ref()
const dotList: any = ref({})
@@ -66,24 +88,19 @@ const tableStore = new TableStore({
url: '',
method: 'POST',
column: [],
beforeSearchFun: () => {
},
loadCallback: () => {
}
beforeSearchFun: () => {},
loadCallback: () => {}
})
provide('tableStore', tableStore)
onMounted(() => {
const dom = document.getElementById('navigation-splitpanes')
if (dom) {
size.value = Math.round((180 / dom.offsetHeight) * 120)
}
})
const handleNodeClick = (data: any, node: any) => {
dotList.value = data
}
@@ -117,12 +134,15 @@ const exportEvent = () => {
form.append('file', uploadList.value?.raw || '')
// 特殊字符正则表达式
const specialCharRegex = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/
if (specialCharRegex.test(tableStore.table.params.crmName) || specialCharRegex.test(tableStore.table.params.reportNumber)) {
if (
specialCharRegex.test(tableStore.table.params.crmName) ||
specialCharRegex.test(tableStore.table.params.reportNumber)
) {
ElNotification({
type: 'error',
message: '包含特殊字符,请注意修改!'
})
}else{
} else {
ElMessage('生成报告中...')
exportModel(form).then((res: any) => {
let blob = new Blob([res], {
@@ -138,10 +158,9 @@ const exportEvent = () => {
document.body.removeChild(link)
})
}
}
</script>
<style lang='scss'>
<style lang="scss">
.splitpanes.default-theme .splitpanes__pane {
background: #eaeef1;
}