完成承载能力评估联调
This commit is contained in:
@@ -147,3 +147,43 @@ export function carryCapacityEvaluate(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
// 承载能力评估用户批量删除
|
||||
export function remove(data) {
|
||||
return createAxios({
|
||||
url: '/advance-boot/result/remove',
|
||||
method: 'POST',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
// 承载能力评估用户设备查询
|
||||
export function queyDeviceList(data) {
|
||||
return createAxios({
|
||||
url: '/advance-boot/carrycapacitydev/queyDeviceList',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 新增设备
|
||||
export function addDev(data) {
|
||||
return createAxios({
|
||||
url: '/advance-boot/carrycapacitydev/add',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 修改设备
|
||||
export function updateDev(data) {
|
||||
return createAxios({
|
||||
url: '/advance-boot/carrycapacitydev/update',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 删除设备
|
||||
export function removeDev(data) {
|
||||
return createAxios({
|
||||
url: '/advance-boot/carrycapacitydev/remove',
|
||||
method: 'POST',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ const treeRef = ref()
|
||||
const loadData = () => {
|
||||
let nodeKey = ''
|
||||
carryCapacityTree().then(res => {
|
||||
console.log(res)
|
||||
nodeKey = res.data[0].children[0].children[0].children[0].children[0].children[0].id
|
||||
emit('init', res.data[0].children[0].children[0].children[0].children[0].children[0])
|
||||
tree.value = res.data[0].children[0].children
|
||||
@@ -41,6 +40,10 @@ const loadData = () => {
|
||||
})
|
||||
}
|
||||
loadData()
|
||||
const setKey = (key: string) => {
|
||||
treeRef.value.treeRef.setCurrentKey(key)
|
||||
}
|
||||
defineExpose({ setKey })
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.point-tree {
|
||||
@@ -1,30 +1,30 @@
|
||||
<template>
|
||||
<div class="point-tree">
|
||||
<div style="flex: 1; overflow: hidden">
|
||||
<vxe-table
|
||||
ref="tableRef"
|
||||
<el-input
|
||||
v-model="input"
|
||||
style="width: 240px"
|
||||
placeholder="请输入电站数"
|
||||
class="mr10"
|
||||
@input="handleEdit"
|
||||
></el-input>
|
||||
<el-button type="primary" :disabled="!input.length > 0" icon="el-icon-Operation" @click="Tick">
|
||||
按配置勾选
|
||||
</el-button>
|
||||
<el-tree
|
||||
style="height: 550px; overflow-y: auto; overflow-x: hidden"
|
||||
:data="tree"
|
||||
height="auto"
|
||||
v-bind="defaultAttribute"
|
||||
:tree-config="{ children: 'children', expandAll: true }"
|
||||
>
|
||||
<vxe-column field="name" align="left" title="部门" tree-node></vxe-column>
|
||||
<vxe-column width="200" title="操作">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" link @click="tactics(row.id, 0)">自动</el-button>
|
||||
<el-button type="primary" size="small" link @click="tactics(row.id, 1)">手动</el-button>
|
||||
<el-button type="primary" size="small" link @click="tactics(row.id, 2)">排除</el-button>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
show-checkbox
|
||||
default-expand-all
|
||||
node-key="id"
|
||||
:default-expanded-keys="[2, 3]"
|
||||
:default-checked-keys="[5]"
|
||||
:props="defaultProps"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { nextTick, onMounted, ref, useAttrs } from 'vue'
|
||||
import { defaultAttribute } from '@/components/table/defaultAttribute'
|
||||
import { ElTree } from 'element-plus'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { initDetpStataionTree } from '@/api/process-boot/generalTest'
|
||||
|
||||
@@ -40,6 +40,7 @@ const dictData = useDictData()
|
||||
const config = useConfig()
|
||||
const tree = ref()
|
||||
const treeRef = ref()
|
||||
const input: any = ref('')
|
||||
|
||||
const loadData = () => {
|
||||
let nodeKey = ''
|
||||
@@ -48,6 +49,9 @@ const loadData = () => {
|
||||
tree.value = res.data
|
||||
})
|
||||
}
|
||||
const handleEdit = () => {}
|
||||
// 配置
|
||||
const Tick = () => {}
|
||||
const tactics = (deptId, grade) => {
|
||||
emit('tactics', deptId, grade)
|
||||
}
|
||||
@@ -55,21 +59,9 @@ loadData()
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.point-tree {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px;
|
||||
background: #fff;
|
||||
border: 1px solid var(--el-border-color);
|
||||
}
|
||||
.custom {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
padding-right: 20px;
|
||||
// font-size: 14px;
|
||||
// padding-right: 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -96,6 +96,7 @@ function createAxios<Data = any, T = ApiPromise<Data>>(
|
||||
response.data.code === 'A0000' ||
|
||||
response.data.type === 'application/json' ||
|
||||
response.data.type === 'application/octet-stream' ||
|
||||
response.data.type === 'text/xml' ||
|
||||
response.data.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
||||
) {
|
||||
return options.reductDataFormat ? response.data : response
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
:model="form"
|
||||
label-width="150px"
|
||||
:rules="rules"
|
||||
:disabled="props.rowList.id != undefined"
|
||||
style="max-width: 500px; margin: auto"
|
||||
>
|
||||
<el-form-item label="用户模式" prop="ptType">
|
||||
<el-form-item label="用户模式" prop="userMode">
|
||||
<el-select v-model="form.userMode" placeholder="请选择用户模式">
|
||||
<el-option
|
||||
v-for="item in ModeList"
|
||||
@@ -94,21 +95,34 @@
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>干扰源用户</span>
|
||||
<el-button type="primary" size="default" icon="el-icon-Plus" @click="add">新增</el-button>
|
||||
<span>干扰源用户:</span>
|
||||
<el-select
|
||||
v-model="userId"
|
||||
placeholder="请选择用户"
|
||||
style="width: 240px; font-weight: normal"
|
||||
:disabled="props.rowList.id != undefined"
|
||||
@change="selChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userData"
|
||||
:key="item.userId"
|
||||
:label="item.userName"
|
||||
:value="item.userId"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
<div :style="`height: calc(${height} / 2 - 128px);overflow-y: auto`">
|
||||
<vxe-table v-bind="defaultAttribute" height="auto" :data="tableData">
|
||||
<vxe-column field="userName" title="用户名称"></vxe-column>
|
||||
<vxe-column field="userType" title="用户类型" :formatter="formatter"></vxe-column>
|
||||
<vxe-column field="voltage" title="电压等级(V)" :formatter="formatter"></vxe-column>
|
||||
<vxe-column field="protocolCapacity" title="用户协议容量(MVA)"></vxe-column>
|
||||
<vxe-column field="num6" title="操作" width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button type="danger" link @click="deleteData(row)">删除</el-button>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-table
|
||||
v-bind="defaultAttribute"
|
||||
ref="vxeRef"
|
||||
height="auto"
|
||||
v-loading="loading"
|
||||
:data="equipmentList"
|
||||
>
|
||||
<vxe-column field="devName" title="设备名称"></vxe-column>
|
||||
<vxe-column field="devScale" title="电压等级" :formatter="formatter"></vxe-column>
|
||||
<vxe-column field="protocolCapacity" title="设备容量(MVA)"></vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -137,11 +151,11 @@
|
||||
<vxe-column field="name" title="谐波次数" width="180"></vxe-column>
|
||||
<vxe-column v-for="item in column" :field="item.field" :title="item.title">
|
||||
<template #default="row">
|
||||
<span @click="log(row)" v-if="row.row.name == '是否允许值'">
|
||||
<span v-if="row.row.name == '是否允许值'">
|
||||
<Select v-if="row.row[row.column.field]" class="SelectIcon" />
|
||||
<InfoFilled v-else class="SelectIcon" style="color: #f38d07;"/>
|
||||
<InfoFilled v-else class="SelectIcon" style="color: #f38d07" />
|
||||
</span>
|
||||
<span @click="log(row)" v-else>{{ row.row[row.column.field] }}</span>
|
||||
<span v-else>{{ row.row[row.column.field] }}</span>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
@@ -152,26 +166,12 @@
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<el-button type="primary" icon="el-icon-Document" @click="assess">承载能力评估</el-button>
|
||||
<el-button type="primary" icon="el-icon-Document" @click="assess" v-if="props.rowList.id == undefined">
|
||||
承载能力评估
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="dialogVisible" title="新增干扰源类型" width="70%">
|
||||
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
||||
<el-form-item label="用户类型">
|
||||
<el-select v-model="formInline.userType" placeholder="请选择用户类型">
|
||||
<el-option v-for="item in uesrList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级">
|
||||
<el-select v-model="formInline.voltage" placeholder="请选择电压等级">
|
||||
<el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-Search" @click="getUser">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<vxe-table v-bind="defaultAttribute" height="400px" ref="xTable" :data="userData">
|
||||
<vxe-column type="checkbox" width="60"></vxe-column>
|
||||
<vxe-column field="userName" title="用户名称"></vxe-column>
|
||||
@@ -194,9 +194,10 @@ import { defaultAttribute } from '@/components/table/defaultAttribute'
|
||||
import MyEChart from '@/components/echarts/MyEchart.vue'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { Select ,InfoFilled} from '@element-plus/icons-vue'
|
||||
import { Select, InfoFilled } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { queyDetailUser, carryCapacityEvaluate } from '@/api/advance-boot/bearingCapacity'
|
||||
import { queyDetailUser, carryCapacityEvaluate, queyDeviceList } from '@/api/advance-boot/bearingCapacity'
|
||||
const props = defineProps(['rowList'])
|
||||
const dictData = useDictData()
|
||||
const height = mainHeight(80).height
|
||||
const levelList = dictData.getBasicData('Dev_Voltage_Stand')
|
||||
@@ -206,8 +207,9 @@ const ModeList = dictData.getBasicData('carry_capcity_user_mode')
|
||||
const uesrList = dictData.getBasicData('CARRY_CAPCITY_USER_TYPE', ['Power_Station_Users'])
|
||||
const xTable = ref()
|
||||
const formRef = ref()
|
||||
const vxeRef = ref()
|
||||
const loading = ref(false)
|
||||
const outcome: any = ref([])
|
||||
|
||||
const factor = [
|
||||
{
|
||||
name: 0.95,
|
||||
@@ -234,10 +236,11 @@ const factor = [
|
||||
id: 1.0
|
||||
}
|
||||
]
|
||||
|
||||
const dialogVisible = ref(false)
|
||||
const showFlag = ref(false)
|
||||
const tableData = ref([])
|
||||
const equipmentList: any = ref([])
|
||||
const userId = ref('')
|
||||
const level2Data = ref([
|
||||
{
|
||||
name: '谐波电流幅值(A)'
|
||||
@@ -251,13 +254,7 @@ const level2Data = ref([
|
||||
])
|
||||
|
||||
const column: any = ref([])
|
||||
const userData = ref([])
|
||||
const formInline = ref({
|
||||
userType: uesrList[0].id,
|
||||
voltage: levelList[0].id,
|
||||
pageNum: 1,
|
||||
pageSize: 10000
|
||||
})
|
||||
const userData: any = ref([])
|
||||
const form: any = ref({
|
||||
ptType: '0',
|
||||
connectionMode: '',
|
||||
@@ -278,15 +275,10 @@ const rules = {
|
||||
deviceCapacity: [{ required: true, message: '请填入最小短路容量', trigger: 'blur' }]
|
||||
}
|
||||
const pieCharts = ref({})
|
||||
// 新增
|
||||
const add = () => {
|
||||
dialogVisible.value = true
|
||||
xTable.value?.clearCheckboxRow()
|
||||
xTable.value?.setCheckboxRow(tableData.value, true)
|
||||
}
|
||||
|
||||
// 查询用户
|
||||
const getUser = () => {
|
||||
queyDetailUser(formInline.value).then(res => {
|
||||
queyDetailUser({ pageNum: 1, pageSize: 10000, userTypeList: uesrList.map(item => item.id) }).then(res => {
|
||||
userData.value = res.data.records
|
||||
})
|
||||
}
|
||||
@@ -298,19 +290,26 @@ const addUse = () => {
|
||||
// tableData.value = tableData.value.filter((arr: any) => !res.has(arr.userId) && res.set(arr.userId, 1))
|
||||
dialogVisible.value = false
|
||||
}
|
||||
// 删除
|
||||
const deleteData = (row: any) => {
|
||||
tableData.value = tableData.value.filter((item: any) => {
|
||||
return !row.userId.includes(item.userId)
|
||||
})
|
||||
}
|
||||
// 查看设备
|
||||
const equipment = (row: any) => {}
|
||||
// 承载能力评估
|
||||
const assess = () => {
|
||||
if (tableData.value.length == 0) {
|
||||
// vxeRef.value.getRadioRecord()
|
||||
|
||||
if (equipmentList.value.length == null) {
|
||||
return ElMessage.warning('请选择用户')
|
||||
}
|
||||
formRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
form.value.devList = equipmentList.value
|
||||
carryCapacityEvaluate(form.value).then(res => {
|
||||
rendering(res.data)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
// 设置图
|
||||
const rendering = (row: any) => {
|
||||
column.value = []
|
||||
let ChartsList = [
|
||||
{
|
||||
@@ -334,10 +333,8 @@ const assess = () => {
|
||||
value: 0
|
||||
}
|
||||
]
|
||||
form.value.userList = tableData.value
|
||||
carryCapacityEvaluate(form.value).then(res => {
|
||||
outcome.value = res.data
|
||||
res.data.iresultList.forEach((item: any) => {
|
||||
outcome.value = row
|
||||
row.iresultList.forEach((item: any) => {
|
||||
column.value.push({
|
||||
title: item.time + '次',
|
||||
field: 'num' + item.time
|
||||
@@ -348,9 +345,7 @@ const assess = () => {
|
||||
level2Data.value[2]['num' + item.time] = item.i < item.i_limit ? true : false
|
||||
})
|
||||
showFlag.value = true
|
||||
res.data.reslutLevel == null ? '' : (ChartsList[res.data.reslutLevel - 1].value = 1)
|
||||
})
|
||||
|
||||
row.reslutLevel == null ? '' : (ChartsList[row.reslutLevel - 1].value = 1)
|
||||
pieCharts.value = {
|
||||
title: {
|
||||
text: '承载能力评估结果',
|
||||
@@ -389,25 +384,46 @@ const assess = () => {
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 过滤数据
|
||||
const formatter = (row: any) => {
|
||||
if (row.column.field == 'userType') {
|
||||
return uesrList.filter(item => item.id == row.cellValue)[0].name
|
||||
} else if (row.column.field == 'devScale') {
|
||||
return levelList.filter(item => item.id == row.cellValue)[0].name
|
||||
} else if (row.column.field == 'voltage') {
|
||||
return levelList.filter(item => item.id == row.cellValue)[0].name
|
||||
} else {
|
||||
return row.cellValue
|
||||
}
|
||||
}
|
||||
const log = row => {
|
||||
console.log('🚀 ~ log ~ row:', row)
|
||||
// 查询设备
|
||||
const selChange = (e: any) => {
|
||||
loading.value = true
|
||||
queyDeviceList({
|
||||
userId: e
|
||||
}).then(res => {
|
||||
loading.value = false
|
||||
equipmentList.value = res.data
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getUser()
|
||||
formRef.value?.resetFields()
|
||||
// 查看
|
||||
console.log('🚀 ~ onMounted ~ props.rowList:', props.rowList)
|
||||
|
||||
if (props.rowList.userId != undefined) {
|
||||
form.value = props.rowList
|
||||
userId.value = props.rowList.userId
|
||||
selChange(props.rowList.userId)
|
||||
rendering({
|
||||
firstResult: props.rowList.firstResult,
|
||||
iresultList: props.rowList.iresultList
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@@ -421,8 +437,6 @@ onMounted(() => {
|
||||
}
|
||||
.card-header {
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.SelectIcon {
|
||||
height: 30px;
|
||||
|
||||
@@ -2,16 +2,17 @@
|
||||
<div>
|
||||
<splitpanes :style="{ height: height }" class="default-theme" id="navigation-splitpanes">
|
||||
<pane :size="size">
|
||||
<PointTree
|
||||
<bearingTree
|
||||
ref="TreeRef"
|
||||
:default-expand-all="false"
|
||||
:default-expanded-keys="monitoringPoint.state.lineId ? [monitoringPoint.state.lineId] : []"
|
||||
:current-node-key="monitoringPoint.state.lineId"
|
||||
@node-click="handleNodeClick"
|
||||
@init="handleNodeClick"
|
||||
></PointTree>
|
||||
></bearingTree>
|
||||
</pane>
|
||||
<pane style="background: #fff">
|
||||
<el-form :inline="true">
|
||||
<el-form :inline="true" v-show="props.rowList.id == undefined">
|
||||
<el-form-item label="日期">
|
||||
<DatePicker ref="datePickerRef"></DatePicker>
|
||||
</el-form-item>
|
||||
@@ -33,6 +34,7 @@
|
||||
placeholder="请选择待评估用户"
|
||||
size="small"
|
||||
filterable
|
||||
:disabled="props.rowList.id != undefined"
|
||||
style="width: 240px"
|
||||
value-key="id"
|
||||
@change="userChange"
|
||||
@@ -118,7 +120,12 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-button type="primary" icon="el-icon-Document" @click="assess" v-show="showBtn">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-Document"
|
||||
@click="assess"
|
||||
v-show="showBtn && props.rowList.id == undefined"
|
||||
>
|
||||
承载能力评估
|
||||
</el-button>
|
||||
</div>
|
||||
@@ -127,11 +134,12 @@
|
||||
</splitpanes>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref, provide } from 'vue'
|
||||
import 'splitpanes/dist/splitpanes.css'
|
||||
import { Splitpanes, Pane } from 'splitpanes'
|
||||
import PointTree from '@/components/tree/pqs/loadBearingTree.vue'
|
||||
import bearingTree from '@/components/tree/pqs/bearingTree.vue'
|
||||
import DatePicker from '@/components/form/datePicker/index.vue'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import MyEChart from '@/components/echarts/MyEchart.vue'
|
||||
@@ -151,8 +159,9 @@ import {
|
||||
getLineDetailData
|
||||
} from '@/api/advance-boot/bearingCapacity'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
const monitoringPoint = useMonitoringPoint()
|
||||
const props = defineProps(['rowList'])
|
||||
|
||||
const monitoringPoint = useMonitoringPoint()
|
||||
const size = ref(0)
|
||||
const dictData = useDictData()
|
||||
const datePickerRef = ref()
|
||||
@@ -189,11 +198,12 @@ const tableData = ref([
|
||||
level4: '/'
|
||||
}
|
||||
])
|
||||
const TreeRef = ref()
|
||||
const voltageList: any = ref([])
|
||||
const showAssess = ref(false)
|
||||
const showBtn = ref(false)
|
||||
const flag = ref(true)
|
||||
const loading = ref(true)
|
||||
const loading = ref(false)
|
||||
const user = ref('')
|
||||
const userList: any = ref([])
|
||||
const lineList: any = ref([])
|
||||
@@ -245,9 +255,9 @@ const onSubmit = async () => {
|
||||
loading.value = true
|
||||
|
||||
let form = {
|
||||
endTime: datePickerRef.value.timeValue[1],
|
||||
lineId: dotList.value.id,
|
||||
startTime: datePickerRef.value.timeValue[0],
|
||||
endTime: props.rowList.endTime || datePickerRef.value.timeValue[1],
|
||||
lineId: props.rowList.lineId || dotList.value.id,
|
||||
startTime: props.rowList.startTime || datePickerRef.value.timeValue[0],
|
||||
userId: dictData.state.area[0].id
|
||||
}
|
||||
options1.value = {}
|
||||
@@ -276,13 +286,17 @@ const onSubmit = async () => {
|
||||
setEChart(3, res[2].data.data)
|
||||
showBtn.value = true
|
||||
loading.value = false
|
||||
// props.rowList.id != undefined
|
||||
if (props.rowList.id != undefined) {
|
||||
rendering(props.rowList)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
// 用户变化
|
||||
const userChange = e => {
|
||||
const userChange = (e: any) => {
|
||||
userData.value = e
|
||||
}
|
||||
|
||||
@@ -351,6 +365,24 @@ const assess = () => {
|
||||
if (dotList.value.level != 6) {
|
||||
return ElMessage.warning('请选择线路')
|
||||
}
|
||||
|
||||
carryCapacityCal({
|
||||
endTime: datePickerRef.value.timeValue[1],
|
||||
lineId: dotList.value.id,
|
||||
startTime: datePickerRef.value.timeValue[0],
|
||||
userId: userData.value.userId, //dictData.state.area[0].id,
|
||||
i_βmax: i_βmax.value,
|
||||
p_βminMap: p_βminMap.value,
|
||||
q_βminMap: q_βminMap.value,
|
||||
s_T: lineList.value.standardCapacity,
|
||||
s_pv: userData.value.protocolCapacity,
|
||||
scale: userData.value.voltage,
|
||||
stringMap: stringMap.value
|
||||
}).then((res: any) => {
|
||||
rendering(res.data)
|
||||
})
|
||||
}
|
||||
const rendering = (data: any) => {
|
||||
let ChartsList = [
|
||||
{
|
||||
name: '安全',
|
||||
@@ -373,27 +405,12 @@ const assess = () => {
|
||||
value: 0
|
||||
}
|
||||
]
|
||||
carryCapacityCal({
|
||||
endTime: datePickerRef.value.timeValue[1],
|
||||
lineId: dotList.value.id,
|
||||
startTime: datePickerRef.value.timeValue[0],
|
||||
userId: userData.value.userId, //dictData.state.area[0].id,
|
||||
i_βmax: i_βmax.value,
|
||||
p_βminMap: p_βminMap.value,
|
||||
q_βminMap: q_βminMap.value,
|
||||
s_T: lineList.value.standardCapacity,
|
||||
s_pv: userData.value.protocolCapacity,
|
||||
scale: userData.value.voltage,
|
||||
stringMap: stringMap.value
|
||||
}).then(res => {
|
||||
tableData.value[0][`level` + res.data.utlevel] = 1
|
||||
tableData.value[1][`level` + res.data.pfTLevel] = 1
|
||||
tableData.value[2][`level` + res.data.btlevel] = 1
|
||||
tableData.value[3][`level` + res.data.ilevel] = 1
|
||||
ChartsList[res.data.reslutLevel - 1].value = 1
|
||||
tableData.value[0][`level` + data.utlevel] = 1
|
||||
tableData.value[1][`level` + data.pfTLevel] = 1
|
||||
tableData.value[2][`level` + data.btlevel] = 1
|
||||
tableData.value[3][`level` + data.ilevel] = 1
|
||||
ChartsList[data.reslutLevel - 1].value = 1
|
||||
showAssess.value = true
|
||||
})
|
||||
|
||||
pieCharts.value = {
|
||||
title: {
|
||||
text: '承载能力评估结果',
|
||||
@@ -435,7 +452,7 @@ const assess = () => {
|
||||
}
|
||||
// 下载模版
|
||||
const exportTemplate = () => {
|
||||
getExcelTemplate().then(res => {
|
||||
getExcelTemplate().then((res: any) => {
|
||||
let blob = new Blob([res], {
|
||||
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
||||
})
|
||||
@@ -474,9 +491,14 @@ const handleNodeClick = (data: any, node: any) => {
|
||||
lineList.value = res.data
|
||||
})
|
||||
}
|
||||
if (flag.value) {
|
||||
// if (flag.value) {
|
||||
// onSubmit()
|
||||
// flag.value = false
|
||||
// }
|
||||
|
||||
if (props.rowList.userId != undefined) {
|
||||
TreeRef.value.setKey(props.rowList.lineId)
|
||||
onSubmit()
|
||||
flag.value = false
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -15,58 +15,30 @@
|
||||
</template>
|
||||
<template #operation>
|
||||
<el-button icon="el-icon-Setting" type="primary" @click="configuration">承载能力评估策略</el-button>
|
||||
<el-button icon="el-icon-Plus" type="primary" @click="addedShow = false">
|
||||
<el-button icon="el-icon-Plus" type="primary" @click=";(addedShow = false), (code = null)">
|
||||
新增承载能力评估
|
||||
</el-button>
|
||||
</template>
|
||||
</TableHeader>
|
||||
<Table ref="tableRef" />
|
||||
<el-dialog v-model="view" :title="title" width="600" :before-close="handleClose">
|
||||
<el-form ref="ruleFormRef" :model="form" label-width="auto" :disabled="disabled" :rules="rules">
|
||||
<el-form-item label="用户名称:" prop="name">
|
||||
<el-input v-model="form.name" clearable placeholder="请输入用户名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户类型:" prop="userType">
|
||||
<el-select v-model="form.userType" clearable collapse-tagsplaceholder="请选择用户类型">
|
||||
<el-option v-for="item in uesrList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级:" prop="level">
|
||||
<el-select v-model="form.level" clearable collapse-tags placeholder="请选择电压等级">
|
||||
<el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户协议容量(MVA):" prop="mav1">
|
||||
<el-input v-model="form.mav1" clearable placeholder="请输入用户协议容量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="拟接入容量(MVA):" prop="mav2">
|
||||
<el-input v-model="form.mav2" clearable placeholder="请输入拟接入容量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="区域">
|
||||
<Area v-model="form.deptIndex" style="width: 100%" />
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址:" prop="detailed">
|
||||
<el-input
|
||||
clearable
|
||||
v-model="form.detailed"
|
||||
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||
type="textarea"
|
||||
placeholder="请输入详细地址"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
|
||||
<policy v-if="policyView" @View="policyView = false" />
|
||||
</div>
|
||||
<!-- <Added v-if="!addedShow" @quit="addedShow = true" /> -->
|
||||
<div v-if="!addedShow" style="position: relative">
|
||||
<el-tabs v-model="activeName" type="border-card" :style="{ height: height }">
|
||||
<el-tab-pane label="光伏电站承载能力评估" name="1"><photovoltaic /></el-tab-pane>
|
||||
<el-tab-pane label="充电站、电加热负荷、电气化铁路承载能力评估" name="2">
|
||||
<charge />
|
||||
<el-tab-pane label="光伏电站承载能力评估" name="1" v-if="code == null || code == 1">
|
||||
<photovoltaic :rowList="rowList" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane
|
||||
label="充电站、电加热负荷、电气化铁路承载能力评估"
|
||||
name="2"
|
||||
v-if="code == null || code == 2"
|
||||
>
|
||||
<charge :rowList="rowList" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-button class="quit" icon="el-icon-Close" type="primary" @click="addedShow = true">返回</el-button>
|
||||
<el-button class="quit" icon="el-icon-Close" type="primary" @click="quit">返回</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -80,7 +52,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import policy from './components/policy.vue'
|
||||
import photovoltaic from './components/photovoltaic.vue'
|
||||
import charge from './components/charge.vue'
|
||||
|
||||
import { remove } from '@/api/advance-boot/bearingCapacity'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
defineOptions({
|
||||
@@ -90,42 +62,18 @@ const height = mainHeight(20).height
|
||||
const dictData = useDictData()
|
||||
const levelList = dictData.getBasicData('Dev_Voltage_Stand')
|
||||
const uesrList = dictData.getBasicData('CARRY_CAPCITY_USER_TYPE')
|
||||
const view = ref(false)
|
||||
const activeName = ref('1')
|
||||
const disabled = ref(false)
|
||||
|
||||
const policyView = ref(false)
|
||||
const addedShow = ref(true)
|
||||
const code = ref(null)
|
||||
const rowList = ref({})
|
||||
const TableHeaderRef = ref()
|
||||
const title = ref('')
|
||||
|
||||
const form = ref({
|
||||
name: '',
|
||||
level: '',
|
||||
deptIndex: dictData.state.area[0].id,
|
||||
userType: '光伏电站',
|
||||
type: '光伏电站',
|
||||
mav1: '100',
|
||||
mav2: '100',
|
||||
user: 'Admin',
|
||||
time: '2024-01-03',
|
||||
detailed: '详细地址'
|
||||
})
|
||||
const rules = {
|
||||
name: [{ required: true, message: '请输入用户名称', trigger: 'blur' }],
|
||||
userType: [{ required: true, message: '请选择用户类型', trigger: 'change' }],
|
||||
level: [{ required: true, message: '请选择电压等级', trigger: 'change' }],
|
||||
mav1: [{ required: true, message: '请输入用户协议容量', trigger: 'blur' }],
|
||||
mav2: [{ required: true, message: '请输入拟接入容量', trigger: 'blur' }],
|
||||
detailed: [{ required: true, message: '请输入详细地址', trigger: 'blur' }]
|
||||
}
|
||||
|
||||
const ruleFormRef = ref()
|
||||
const tableStore = new TableStore({
|
||||
const tableStore: any = new TableStore({
|
||||
url: '/advance-boot/result/queryResultList',
|
||||
method: 'POST',
|
||||
column: [
|
||||
// { width: '60', type: 'checkbox' },
|
||||
|
||||
{
|
||||
field: 'index',
|
||||
title: '序号',
|
||||
@@ -134,7 +82,7 @@ const tableStore = new TableStore({
|
||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||
}
|
||||
},
|
||||
{ field: 'lineName', title: '配变台区' },
|
||||
{ field: 'lineName', title: '配变台区', width: '500' },
|
||||
{
|
||||
field: 'evaluateType',
|
||||
title: '评估类型',
|
||||
@@ -177,12 +125,12 @@ const tableStore = new TableStore({
|
||||
icon: 'el-icon-Plus',
|
||||
render: 'basicButton',
|
||||
click: row => {
|
||||
if (ruleFormRef.value) ruleFormRef.value.resetFields()
|
||||
|
||||
disabled.value = true
|
||||
title.value = '查看承载能力预评估用户'
|
||||
form.value = JSON.parse(JSON.stringify(row))
|
||||
view.value = true
|
||||
rowList.value = row
|
||||
let data = uesrList.filter(item => item.id == row.evaluateType)[0].code
|
||||
data == 'Power_Station_Users'
|
||||
? ((code.value = 1), (activeName.value = '1'))
|
||||
: ((code.value = 2), (activeName.value = '2'))
|
||||
addedShow.value = false
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -197,7 +145,12 @@ const tableStore = new TableStore({
|
||||
confirmButtonType: 'danger',
|
||||
title: '确定删除?'
|
||||
},
|
||||
click: row => {}
|
||||
click: row => {
|
||||
remove({ ids: row.id }).then(() => {
|
||||
ElMessage.success('删除成功')
|
||||
tableStore.index()
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -209,25 +162,17 @@ tableStore.table.params.evaluateType = ''
|
||||
tableStore.table.params.id = dictData.state.area[0].id
|
||||
|
||||
provide('tableStore', tableStore)
|
||||
const quit = () => {
|
||||
addedShow.value = true
|
||||
rowList.value = {}
|
||||
}
|
||||
onMounted(() => {
|
||||
TableHeaderRef.value.setDatePicker([{ label: '周', value: 4 }])
|
||||
TableHeaderRef.value.setInterval(4)
|
||||
setTimeout(() => {
|
||||
tableStore.table.params.startTime = TableHeaderRef.value.datePickerRef.timeValue[0]
|
||||
tableStore.table.params.endTime = TableHeaderRef.value.datePickerRef.timeValue[1]
|
||||
tableStore.index()
|
||||
}, 100)
|
||||
})
|
||||
// 配置
|
||||
const configuration = () => {
|
||||
policyView.value = true
|
||||
}
|
||||
|
||||
// 取消
|
||||
const handleClose = () => {
|
||||
ruleFormRef.value.resetFields()
|
||||
view.value = false
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.quit {
|
||||
|
||||
150
src/views/pqs/bearingCapacity/userManagement/equipment.vue
Normal file
150
src/views/pqs/bearingCapacity/userManagement/equipment.vue
Normal file
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
|
||||
<el-dialog class="cn-operate-dialog" v-model="dialogVisible" title="设备">
|
||||
<el-button icon="el-icon-Plus" type="primary" @click="add" class="mb10">新增</el-button>
|
||||
<vxe-table v-bind="defaultAttribute" v-loading="loading" height="auto" ref="xTable" :data="userData">
|
||||
<vxe-column field="devName" title="设备名称"></vxe-column>
|
||||
<vxe-column field="devScale" title="电压等级" :formatter="formatter"></vxe-column>
|
||||
<vxe-column field="protocolCapacity" title="设备容量(MVA)"></vxe-column>
|
||||
<vxe-column title="操作" width="120px">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" link @click="revise(row)">修改</el-button>
|
||||
|
||||
<el-popconfirm @confirm="deleteD(row)" title="确认删除设备?">
|
||||
<template #reference>
|
||||
<el-button type="danger" size="small" link>删除</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="addShow" width="400px" :title="title" :before-close="handleClose">
|
||||
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto">
|
||||
<el-form-item label="设备名称" prop="devName">
|
||||
<el-input v-model="form.devName" placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级" prop="devScale">
|
||||
<el-select v-model="form.devScale" clearable placeholder="请选择电压等级">
|
||||
<el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备容量" prop="protocolCapacity">
|
||||
<el-input-number
|
||||
v-model="form.protocolCapacity"
|
||||
style="width: 100%"
|
||||
:min="0"
|
||||
placeholder="请选择设备容量"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="handleClose">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { queyDeviceList, addDev, updateDev, removeDev } from '@/api/advance-boot/bearingCapacity'
|
||||
import { defaultAttribute } from '@/components/table/defaultAttribute'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const dictData = useDictData()
|
||||
const levelList = dictData.getBasicData('Dev_Voltage_Stand')
|
||||
const dialogVisible = ref(false)
|
||||
const addShow = ref(false)
|
||||
const loading = ref(false)
|
||||
const userData = ref([])
|
||||
const rowList = ref([])
|
||||
const title = ref('')
|
||||
const formRef = ref()
|
||||
|
||||
const form: any = ref({
|
||||
devName: '',
|
||||
devScale: '',
|
||||
protocolCapacity: 0,
|
||||
userId: ''
|
||||
})
|
||||
const rules = {
|
||||
devName: [{ required: true, message: '请输入设备名称', trigger: 'blur' }],
|
||||
devScale: [{ required: true, message: '请输入设备名称', trigger: 'change' }],
|
||||
protocolCapacity: [{ required: true, message: '请输入设备名称', trigger: 'blur' }]
|
||||
}
|
||||
const open = (row: any) => {
|
||||
dialogVisible.value = true
|
||||
loading.value = true
|
||||
rowList.value = row
|
||||
queyDeviceList({
|
||||
userId: row.userId
|
||||
}).then(res => {
|
||||
loading.value = false
|
||||
userData.value = res.data
|
||||
})
|
||||
}
|
||||
// 新增
|
||||
const add = () => {
|
||||
addShow.value = true
|
||||
title.value = '新增设备'
|
||||
}
|
||||
|
||||
// 过滤数据
|
||||
const formatter = (row: any) => {
|
||||
if (row.column.field == 'devScale') {
|
||||
return levelList.filter(item => item.id == row.cellValue)[0].name
|
||||
} else {
|
||||
return row.cellValue
|
||||
}
|
||||
}
|
||||
// 修改
|
||||
const revise = (row: any) => {
|
||||
form.value = JSON.parse(JSON.stringify(row))
|
||||
title.value = '修改设备'
|
||||
addShow.value = true
|
||||
}
|
||||
// 关闭弹框
|
||||
const handleClose = () => {
|
||||
addShow.value = false
|
||||
form.value = {
|
||||
devName: '',
|
||||
devScale: '',
|
||||
protocolCapacity: 0,
|
||||
userId: ''
|
||||
}
|
||||
formRef.value.resetFields()
|
||||
}
|
||||
// 新增设备
|
||||
const submitForm = async () => {
|
||||
await formRef.value.validate(valid => {
|
||||
if (valid) {
|
||||
if (title.value == '新增设备') {
|
||||
form.value.userId = rowList.value.userId
|
||||
addDev(form.value).then(res => {
|
||||
ElMessage.success('新增成功!')
|
||||
open(rowList.value)
|
||||
handleClose()
|
||||
})
|
||||
} else {
|
||||
updateDev(form.value).then(res => {
|
||||
ElMessage.success('修改成功!')
|
||||
open(rowList.value)
|
||||
handleClose()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// 删除设备
|
||||
const deleteD = row => {
|
||||
removeDev({ devIds: row.devId }).then(res => {
|
||||
ElMessage.success('删除设备成功!')
|
||||
open(rowList.value)
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
@@ -4,11 +4,7 @@
|
||||
<TableHeader datePicker ref="TableHeaderRef">
|
||||
<template #select>
|
||||
<el-form-item label="用户类型">
|
||||
<el-select
|
||||
v-model="tableStore.table.params.userType"
|
||||
clearable
|
||||
placeholder="请选择用户类型"
|
||||
>
|
||||
<el-select v-model="tableStore.table.params.userType" clearable placeholder="请选择用户类型">
|
||||
<el-option v-for="item in uesrList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -24,12 +20,7 @@
|
||||
<el-input v-model="form.userName" clearable placeholder="请输入用户名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户类型:" prop="userType">
|
||||
<el-select
|
||||
v-model="form.userType"
|
||||
clearable
|
||||
placeholder="请选择用户类型"
|
||||
@change="useChange"
|
||||
>
|
||||
<el-select v-model="form.userType" clearable placeholder="请选择用户类型" @change="useChange">
|
||||
<el-option v-for="item in uesrList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -73,6 +64,8 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<!-- 设备 -->
|
||||
<equipment ref="equipmentRef" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@@ -83,6 +76,7 @@ import TableHeader from '@/components/table/header/index.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import equipment from './equipment.vue'
|
||||
import { addUse, updateUse, removeUse } from '@/api/advance-boot/bearingCapacity'
|
||||
defineOptions({
|
||||
name: 'estimate/photovoltaic'
|
||||
@@ -93,6 +87,7 @@ const uesrList = dictData.getBasicData('CARRY_CAPCITY_USER_TYPE')
|
||||
const dialogVisible = ref(false)
|
||||
const disabled = ref(false)
|
||||
const TableHeaderRef = ref()
|
||||
const equipmentRef = ref()
|
||||
const title = ref('')
|
||||
const areaList: any = dictData.areaSelect()
|
||||
const userShow: any = ref('Power_Station_Users')
|
||||
@@ -129,7 +124,7 @@ const rules = {
|
||||
}
|
||||
const props = { label: 'name', value: 'id' }
|
||||
const ruleFormRef = ref()
|
||||
const tableStore = new TableStore({
|
||||
const tableStore: any = new TableStore({
|
||||
url: '/advance-boot/carrycapacityuser/queyDetailUser',
|
||||
// url: '/hzj/carrycapacityuser/queyDetailUser',
|
||||
method: 'POST',
|
||||
@@ -187,6 +182,16 @@ const tableStore = new TableStore({
|
||||
width: '180',
|
||||
render: 'buttons',
|
||||
buttons: [
|
||||
{
|
||||
name: 'edit',
|
||||
title: '设备 ',
|
||||
type: 'primary',
|
||||
icon: 'el-icon-Plus',
|
||||
render: 'basicButton',
|
||||
click: row => {
|
||||
equipmentRef.value.open(row)
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'edit',
|
||||
title: '查看',
|
||||
@@ -206,7 +211,7 @@ const tableStore = new TableStore({
|
||||
{
|
||||
name: 'edit',
|
||||
title: '编辑',
|
||||
type: '',
|
||||
type: 'primary',
|
||||
icon: 'el-icon-Plus',
|
||||
render: 'basicButton',
|
||||
click: async row => {
|
||||
@@ -242,8 +247,7 @@ const tableStore = new TableStore({
|
||||
],
|
||||
|
||||
loadCallback: () => {
|
||||
console.log(tableStore.table.data);
|
||||
|
||||
console.log(tableStore.table.data)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -251,14 +255,7 @@ tableStore.table.params.userType = ''
|
||||
|
||||
provide('tableStore', tableStore)
|
||||
onMounted(() => {
|
||||
TableHeaderRef.value.setDatePicker([{ label: '周', value: 4 }])
|
||||
TableHeaderRef.value.setInterval(4)
|
||||
|
||||
setTimeout(() => {
|
||||
tableStore.table.params.startTime = TableHeaderRef.value.datePickerRef.timeValue[0]
|
||||
tableStore.table.params.endTime = TableHeaderRef.value.datePickerRef.timeValue[1]
|
||||
tableStore.index()
|
||||
}, 100)
|
||||
})
|
||||
const useChange = (e: string) => {
|
||||
userShow.value = uesrList.filter(item => item.id == e)[0].code
|
||||
|
||||
@@ -89,10 +89,13 @@
|
||||
:rows="2"
|
||||
v-model="textarea"
|
||||
></el-input> -->
|
||||
<div slot="footer" style="display: flex; justify-content: center">
|
||||
<el-button type="primary" size="small" class="ml20" @click="submitFn">提交</el-button>
|
||||
<el-button type="primary" size="small" class="ml20" @click="cancelFn">取消</el-button>
|
||||
|
||||
<template #footer>
|
||||
<div>
|
||||
<el-button type="primary" @click="submitFn">提交</el-button>
|
||||
<el-button type="primary" @click="cancelFn">取消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
|
||||
@@ -207,6 +207,7 @@ const Export = () => {
|
||||
link.download = '终端入网检测录入模板' // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
})
|
||||
}
|
||||
// 下载报告
|
||||
@@ -225,6 +226,7 @@ const download = (row: any, type: number) => {
|
||||
link.download = type == 1 ? row.inspectionName : row.originalName // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
})
|
||||
}
|
||||
// excel导入
|
||||
@@ -244,6 +246,7 @@ const choose = (e: any) => {
|
||||
link.download = '模板错误信息' // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -262,6 +262,7 @@ const Export = () => {
|
||||
link.download = '终端入网检测录入模板' // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
})
|
||||
}
|
||||
// 下载报告
|
||||
@@ -280,6 +281,7 @@ const download = (row: any, type: number) => {
|
||||
link.download = type == 1 ? row.inspectionName : row.originalName // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
})
|
||||
}
|
||||
// excel导入
|
||||
@@ -299,6 +301,7 @@ const choose = (e: any) => {
|
||||
link.download = '模板错误信息' // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user