This commit is contained in:
bb_pan 2025-09-25 19:14:29 +08:00
parent 1ba03331e4
commit abceaaf90f
9 changed files with 384 additions and 158 deletions

View File

@ -5,15 +5,15 @@ import request from '@/utils/request'
export const getTotalEquipmentApi = () => {
return request({
url: '/material-mall/provinceScreen/getTotalEquipment',
method: 'get'
method: 'get',
})
}
// 线路 变电 电缆
export const getEquipmentClassificationApi = () => {
return request({
url: '/material-mall/provinceScreen/getEquipmentClassification',
method: 'get'
url: '/material-mall/largeScreen/statByTypeAndAge',
method: 'get',
})
}
@ -21,7 +21,7 @@ export const getEquipmentClassificationApi = () => {
export const getUnitEquipmentConfigurationApi = () => {
return request({
url: '/material-mall/provinceScreen/getUnitEquipmentConfiguration',
method: 'get'
method: 'get',
})
}
@ -29,7 +29,7 @@ export const getUnitEquipmentConfigurationApi = () => {
export const getEquipmentStatusApi = () => {
return request({
url: '/material-mall/provinceScreen/getEquipmentStatus',
method: 'get'
method: 'get',
})
}
@ -37,7 +37,7 @@ export const getEquipmentStatusApi = () => {
export const getProjectEquipmentApi = () => {
return request({
url: '/material-mall/provinceScreen/getProjectEquipment',
method: 'get'
method: 'get',
})
}
@ -45,7 +45,7 @@ export const getProjectEquipmentApi = () => {
export const getDeptEquipmentApi = () => {
return request({
url: '/material-mall/provinceScreen/getDeptEquipment',
method: 'get'
method: 'get',
})
}
@ -54,7 +54,7 @@ export const getEquipmentUseApi = (data) => {
return request({
url: '/material-mall/provinceScreen/getEquipmentUse',
method: 'get',
params: data
params: data,
})
}
@ -63,7 +63,7 @@ export const getUsageStatisticsApi = (data) => {
return request({
url: '/material-mall/provinceScreen/getUsageStatistics',
method: 'get',
params: data
params: data,
})
}
@ -72,7 +72,7 @@ export const getEquipmentNumberApi = (data) => {
return request({
url: '/material-mall/provinceScreen/getEquipmentNumber',
method: 'get',
params: data
params: data,
})
}
@ -81,6 +81,49 @@ export const getMechanizationRateApi = (data) => {
return request({
url: '/material-mall/provinceScreen/getMechanizationRate',
method: 'get',
params: data
params: data,
})
}
// 装备范围-下拉
export const getAddressApi = () => {
return request({
url: '/material-mall/largeScreen/getAddress',
method: 'get',
})
}
// 地市公司-下拉
export const getDeptApi = (data) => {
return request({
url: '/material-mall/largeScreen/getDept',
method: 'get',
params: data,
})
}
// 装备类目-树
export const getMaTypeApi = (data) => {
return request({
url: '/material-mall/largeScreen/getMaType',
method: 'get',
params: data,
})
}
// 工程专业-下拉
export const getFirstLevelApi = () => {
return request({
url: '/material-mall/order/firstLevel',
method: 'get',
})
}
// 所在项目-下拉
export const getProListApi = (data = {}) => {
return request({
url: '/material-mall/decChange/getProList',
method: 'post',
data,
})
}

View File

@ -17,8 +17,8 @@
<div v-if="selectedCity && btnIndex == 1" class="city-tooltip">
<div class="city-name">{{ selectedCity.cityName }}</div>
<div
>装备价值 <span class="num">{{ selectedCity.totalValue }}</span
><span class="unit"> </span></div
>装备价值 <span class="num">{{ (selectedCity.totalValue / 100000000).toFixed(4) }}</span
><span class="unit"> 亿</span></div
>
<div
>装备数量 <span class="num">{{ selectedCity.totalEquipmentQuantity }}</span
@ -177,8 +177,8 @@ export default {
},
},
viewControl: {
distance: 136, //
alpha: 40, //
distance: 168, //
alpha: 52, //
beta: -16,
rotateSensitivity: 0, //
zoomSensitivity: 0, //
@ -194,8 +194,14 @@ export default {
data: seriesData,
symbol: 'circle',
symbolSize: 18,
itemStyle: {
color: '#f90', // 👈
opacity: 1, //
},
label: {
show: true,
position: 'top', // 'top'
offset: [0, -10], // 10pxx 0y -10
formatter: (params) => {
const val = params.data.value || []
let unit = ''
@ -203,7 +209,9 @@ export default {
else if (this.btnIndex === 2) unit = '台'
else if (this.btnIndex === 3) unit = '%'
return val.length
? `{val|${val[2]} ${unit}}\n{name|${params.data.deptName}}`
? `{val|${this.btnIndex === 1 ? (val[2] / 100000000).toFixed(4) : val[2]} ${unit}}\n{name|${
params.data.deptName
}}`
: `{name|${params.data.deptName}}`
},
rich: {
@ -228,7 +236,6 @@ export default {
},
},
],
// series: [{ type: 'map3D', z: 10, itemStyle: {color: 'transparent'}, borderColor: '#5CE0FF', borderWidth: 3 }]
}
this.myChart.setOption(option)

View File

@ -23,41 +23,83 @@
label-width="100px"
@submit.native.prevent
>
<el-form-item label="装备范围" prop="equipRange">
<el-select v-model="queryParams.equipRange" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in equipRangeList" :key="item.value" :label="item.label" :value="item.value" />
<el-form-item label="装备范围" prop="deptName">
<el-select
v-model="queryParams.deptName"
placeholder="请选择"
clearable
style="width: 240px"
@change="changeDept"
>
<el-option v-for="item in deptNameList" :key="item.code" :label="item.name" :value="item.code" />
</el-select>
</el-form-item>
<el-form-item label="地市公司" prop="dsCompName">
<el-select v-model="queryParams.dsCompName" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in dsCompNameList" :key="item.value" :label="item.label" :value="item.value" />
<el-form-item label="产权单位" prop="companyName">
<el-select v-model="queryParams.companyName" placeholder="请选择" clearable style="width: 240px">
<el-option
v-for="item in companyNameList"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId"
/>
</el-select>
</el-form-item>
<el-form-item label="装备名称" prop="equipName">
<el-input v-model="queryParams.equipName" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="装备系列" prop="equipSeries">
<el-select v-model="queryParams.equipSeries" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in equipSeriesList" :key="item.value" :label="item.label" :value="item.value" />
<el-form-item label="工程专业" prop="proType">
<el-select
v-model="queryParams.proType"
placeholder="请选择"
clearable
style="width: 240px"
@change="changeProType"
>
<el-option v-for="item in proTypeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="装备编号" prop="equipCode">
<el-input v-model="queryParams.equipCode" placeholder="请输入" clearable style="width: 240px" />
<el-form-item label="装备类目" prop="deviceSeries">
<el-cascader
v-model="deviceSeries"
:options="deviceSeriesList"
clearable
@change="changeDeviceSeries"
style="width: 240px"
/>
</el-form-item>
<el-form-item label="装备状态" prop="equipStatus">
<el-select v-model="queryParams.equipStatus" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in equipStatusList" :key="item.value" :label="item.label" :value="item.value" />
<el-form-item label="装备名称" prop="deviceName">
<el-input v-model="queryParams.deviceName" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="规格型号" prop="devModel">
<el-input v-model="queryParams.devModel" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="装备编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="装备原始编码" prop="identifyCode">
<el-input v-model="queryParams.identifyCode" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="装备状态" prop="changeStatus">
<el-select v-model="queryParams.changeStatus" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in changeStatusList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="所在项目" prop="projectName">
<el-select v-model="queryParams.projectName" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in projectNameList" :key="item.value" :label="item.label" :value="item.value" />
<el-form-item label="所在项目" prop="onProject">
<el-select v-model="queryParams.onProject" placeholder="请选择" clearable style="width: 240px">
<el-option
v-for="item in onProjectList"
:key="item.proCode"
:label="item.proName"
:value="item.proCode"
/>
</el-select>
</el-form-item>
<!-- 日期范围 -->
<el-form-item label="采购日期" prop="purchaseDate">
<el-form-item label="装备厂家" prop="brand">
<el-input v-model="queryParams.brand" placeholder="请输入" clearable style="width: 240px" />
<!-- <el-select v-model="queryParams.brand" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in brandList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> -->
</el-form-item>
<el-form-item label="出厂日期" prop="productionDate">
<el-date-picker
v-model="queryParams.purchaseDate"
v-model="queryParams.productionDate"
type="date"
placeholder="请选择"
clearable
@ -66,38 +108,17 @@
style="width: 240px"
/>
</el-form-item>
<el-form-item label="出厂日期" prop="factoryDate">
<el-form-item label="使用年限" prop="workingHours">
<el-select v-model="queryParams.workingHours" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in workingHoursList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="资产原值" prop="buyPrice">
<el-input v-model="queryParams.buyPrice" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="下次检测日期" prop="nextCheckTime">
<el-date-picker
v-model="queryParams.factoryDate"
type="date"
placeholder="请选择"
clearable
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 240px"
/>
</el-form-item>
<el-form-item label="使用年限" prop="usefulLife">
<el-select v-model="queryParams.usefulLife" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in usefulLifeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="产权单位" prop="propertyUnit">
<el-select v-model="queryParams.propertyUnit" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in propertyUnitList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="生产厂家" prop="manufacturer">
<el-select v-model="queryParams.manufacturer" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in manufacturerList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="资产原值" prop="assetValue">
<el-input v-model="queryParams.assetValue" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="下次检测日期" prop="nextCheckDate">
<el-date-picker
v-model="queryParams.nextCheckDate"
v-model="queryParams.nextCheckTime"
type="date"
placeholder="请选择"
clearable
@ -110,9 +131,10 @@
<el-input v-model="queryParams.featureItem" placeholder="请输入" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="特征值" prop="featureValue">
<el-select v-model="queryParams.featureValue" placeholder="请选择" clearable style="width: 240px">
<el-input v-model="queryParams.featureValue" placeholder="请输入" clearable style="width: 240px" />
<!-- <el-select v-model="queryParams.featureValue" placeholder="请选择" clearable style="width: 240px">
<el-option v-for="item in featureValueList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-select> -->
</el-form-item>
<!-- 表单按钮 -->
@ -153,6 +175,12 @@
:prop="column.prop"
align="center"
>
<template v-slot="{ row }" v-if="column.prop === 'featureItem'">
<span>{{ getFeatureItem(row.propertyVoList) }}</span>
</template>
<template v-slot="{ row }" v-else-if="column.prop === 'featureValue'">
<span>{{ getFeatureValue(row.propertyVoList) }}</span>
</template>
</el-table-column>
<!-- 操作 -->
<el-table-column label="操作" align="center" width="130">
@ -176,65 +204,62 @@
</template>
<script>
import { getDeviceListAPI } from '@/api/EquipmentLedger'
import { getAddressApi, getDeptApi, getMaTypeApi, getFirstLevelApi, getProListApi } from '@/api/wsScreen'
export default {
data() {
return {
isLoading: false,
dialogVisible: false,
showSearch: true,
deviceSeries: [],
queryParams: {
pageNum: 1,
pageSize: 10,
equipRange: '', //
dsCompName: '', //
equipName: '', //
equipSeries: '', //
equipCode: '', //
equipStatus: '', //
projectName: '', //
deptName: '', //
companyName: '', //
deviceName: '', //
deviceSeries: '', //
code: '', //
changeStatus: '', //
onProject: '', //
purchaseDate: '', //
factoryDate: '', //
usefulLife: '', // 使
propertyUnit: '', //
manufacturer: '', //
assetValue: '', //
nextCheckDate: '', //
productionDate: '', //
workingHours: '', // 使
companyName: '', //
brand: '', //
buyPrice: '', //
nextCheckTime: '', //
featureItem: '', //
featureValue: '', //
},
equipRangeList: [
{ label: '全网省', value: 1 },
{ label: '合肥市', value: 2 },
],
dsCompNameList: [
{ label: '全网省', value: 1 },
{ label: '合肥市', value: 2 },
],
equipSeriesList: [
{ label: '全网省', value: 1 },
{ label: '合肥市', value: 2 },
],
equipStatusList: [
deptNameList: [],
companyNameList: [],
deviceSeriesList: [],
changeStatusList: [
{ label: '在库', value: 1 },
{ label: '在用', value: 2 },
{ label: '自用', value: 2 },
{ label: '共享', value: 3 },
{ label: '退役', value: 4 },
{ label: '维修', value: 5 },
],
projectNameList: [
{ label: '全网省', value: 1 },
{ label: '合肥市', value: 2 },
],
usefulLifeList: [
proTypeList: [],
onProjectList: [],
workingHoursList: [
{ label: '5年', value: 1 },
{ label: '10年', value: 2 },
{ label: '5-10年', value: 2 },
{ label: '10年以上', value: 3 },
],
propertyUnitList: [
companyNameList: [
{ label: '单位1', value: 1 },
{ label: '单位2', value: 2 },
],
manufacturerList: [
brandList: [
{ label: '单位1', value: 1 },
{ label: '单位2', value: 2 },
],
assetValueList: [
buyPriceList: [
{ label: '原值1', value: 1 },
{ label: '原值2', value: 2 },
],
@ -244,29 +269,30 @@ export default {
],
tableColumns: [
{ label: '公司名称', prop: 'compName' },
{ label: '工程专业', prop: 'proFee' },
{ label: '施工主工序', prop: 'process' },
{ label: '装备名称', prop: 'equipName' },
{ label: '装备型号', prop: 'equipType' },
{ label: '装备编号', prop: 'equipCode' },
{ label: '公司名称', prop: 'companyName' },
{ label: '产权单位', prop: 'companyName' },
{ label: '工程专业', prop: 'proType' },
{ label: '主工序', prop: 'mainGx' },
{ label: '子工序', prop: 'childGx' },
{ label: '装备大类', prop: 'devCategory' },
{ label: '装备小类', prop: 'devSubcategory' },
{ label: '类型分支', prop: 'devName' },
{ label: '装备名称', prop: 'deviceName' },
{ label: '规格型号', prop: 'devModel' },
{ label: '装备编号', prop: 'code' },
{ label: '计量单位', prop: 'unitName' },
{ label: '产权单位', prop: 'propertyUnit' },
{ label: '资产原值(元)', prop: 'unitPrice' },
{ label: '采购日期', prop: 'purchaseDate' },
],
tableList: [
// { id: 1, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 2, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 3, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 4, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 5, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 6, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 7, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 8, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 9, equipName: '1', equipType: '1', equipCode: '1' },
// { id: 10, equipName: '1', equipType: '1', equipCode: '1' },
{ label: '所在项目', prop: 'proName' },
{ label: '使用到期时间', prop: 'buyPrice' },
{ label: '装备原始编码', prop: 'identifyCode' },
{ label: '出厂日期', prop: 'productionDate' },
{ label: '生产厂家', prop: 'brand' },
{ label: '资产原值', prop: 'buyPrice' },
{ label: '下次维保日期', prop: 'nextCheckTime' },
{ label: '使用年限', prop: 'workingHours' },
{ label: '特征项', prop: 'featureItem' },
{ label: '特征值', prop: 'featureValue' },
],
tableList: [],
total: 0,
}
},
@ -274,8 +300,21 @@ export default {
methods: {
openDialog() {
this.dialogVisible = true
this.getList()
this.getDeptNameList()
this.getProTypeList()
this.getOnProjectList()
},
async getList() {
try {
const res = await getDeviceListAPI(this.queryParams)
console.log('🚀 ~ getList ~ res:', res)
this.tableList = res.data?.rows || []
this.total = res.data?.total || 0
} catch (error) {
console.log('🚀 ~ getList ~ error:', error)
}
},
getList() {},
//
handleQuery() {
this.queryParams.pageNum = 1
@ -288,6 +327,118 @@ export default {
this.queryParams.pageSize = 10
this.getList()
},
//
getFeatureItem(item) {
return item.map((item) => item.propertyName).join(',')
},
//
getFeatureValue(item) {
return item.map((item) => item.propertyValue).join(',')
},
//
async getDeptNameList() {
try {
const res = await getAddressApi()
console.log('🚀 ~ getDeptNameList ~ res:', res)
this.deptNameList = res.data || []
} catch (error) {
console.log('🚀 ~ getDeptNameList ~ error:', error)
}
},
//
convertToSubTree(list) {
const map = {}
const tree = []
//
list.forEach((item) => {
map[item.value] = {
value: item.value.toString(),
label: item.label,
}
})
//
list.forEach((item) => {
const current = map[item.value]
const parent = map[item.parentId]
if (parent) {
if (!parent.children) {
parent.children = []
}
parent.children.push(current)
} else {
tree.push(current)
}
})
return tree
},
changeDept(val) {
if (val) {
this.getCompanyNameList(val)
} else {
this.companyNameList = []
this.queryParams.companyName = ''
}
},
//
async getCompanyNameList(code) {
console.log('🚀 ~ getCompanyNameList ~ code:', code)
try {
const res = await getDeptApi({ code })
console.log('🚀 ~ getCompanyNameList ~ res:', res)
this.companyNameList = res.data || []
} catch (error) {
console.log('🚀 ~ getCompanyNameList ~ error:', error)
}
},
//
async getDeviceSeriesList(firstLevelId) {
try {
const res = await getMaTypeApi({ firstLevelId })
console.log('🚀 ~ getMaTypeApi ~ res:', res)
this.deviceSeriesList = this.convertToSubTree(res.data) || []
} catch (error) {
console.log('🚀 ~ getMaTypeApi ~ error:', error)
}
},
changeDeviceSeries(val) {
console.log('🚀 ~ changeDeviceSeries ~ val:', val)
if (!val) {
this.queryParams.deviceSeries == ''
return
}
this.queryParams.deviceSeries = val[val.length - 1]
},
//
async getProTypeList() {
try {
const res = await getFirstLevelApi()
this.proTypeList = res.data || []
} catch (error) {
console.log('🚀 ~ getProTypeList ~ error:', error)
}
},
changeProType(val) {
console.log('🚀 ~ changeProType ~ val:', val)
if (val) {
this.getDeviceSeriesList(val)
} else {
this.deviceSeriesList = []
this.queryParams.deviceSeries = ''
}
},
//
async getOnProjectList() {
try {
const res = await getProListApi()
this.onProjectList = res.data || []
} catch (error) {
console.log('🚀 ~ getOnProjectList ~ error:', error)
}
},
//
handleExport() {
//

View File

@ -9,7 +9,7 @@
</div>
<div class="left-item">
<div class="left-tip">装备价值 <span>亿元</span></div>
<div class="number">{{ query.price || 0 }}</div>
<div class="number">{{ (query.price / 100000000).toFixed(4) || 0 }}</div>
</div>
</div>
<div>

View File

@ -37,6 +37,9 @@
:prop="column.prop"
align="center"
>
<template v-slot="{ row }" v-if="column.prop === 'equipPrice'">
<span>{{ (row.equipPrice / 100000000).toFixed(4) }}</span>
</template>
</el-table-column>
</el-table>

View File

@ -29,7 +29,7 @@
<tr v-for="(row, index) in tableData" :key="index">
<td style="width: 60px">{{ index + 1 }}</td>
<td style="width: 180px">{{ row.deptName }}</td>
<td style="width: 110px">{{ row.totalValue }}</td>
<td style="width: 110px">{{ (row.totalValue / 100000000).toFixed(4) }}</td>
<!-- 装备数量 -->
<td>{{ row.totalEquipmentQuantity }}</td>

View File

@ -10,7 +10,7 @@
<div class="equip-item-2" @click="openSystemEquip">{{ equipData.total }} <span class="unit"></span></div>
<div class="equip-item-3">总价值</div>
<div class="equip-item-4" @click="openTotalPrice"
>{{ equipData.totalPrice }} <span class="unit">亿元</span></div
>{{ (equipData.totalPrice / 100000000).toFixed(4) }} <span class="unit">亿元</span></div
>
</div>
<div class="item-box">
@ -139,27 +139,49 @@ export default {
try {
const { data } = await getEquipmentClassificationApi()
console.log('🚀 ~ getEquipList ~ data:', data)
this.state1.num = data.line.num || 0
this.state1.price = data.line.price || 0
this.state2.num = data.cable.num || 0
this.state2.price = data.cable.price || 0
this.state3.num = data.substation.num || 0
this.state3.price = data.substation.price || 0
this.list1[0] = data.line.five
this.list1[1] = data.line.fiveOrTen
this.list1[2] = data.line.ten
this.list2[0] = data.cable.five
this.list2[1] = data.cable.fiveOrTen
this.list2[2] = data.cable.ten
this.list3[0] = data.substation.five
this.list3[1] = data.substation.fiveOrTen
this.list3[2] = data.substation.ten
console.log('🚀 ~ getEquipList ~ this.list1:', this.list1)
console.log('🚀 ~ getEquipList ~ this.list2:', this.list2)
console.log('🚀 ~ getEquipList ~ this.list3:', this.list3)
console.log('🚀 ~ getEquipList ~ this.state1:', this.state1)
console.log('🚀 ~ getEquipList ~ this.state2:', this.state2)
console.log('🚀 ~ getEquipList ~ this.state3:', this.state3)
if (!data || data.length === 0) return
data.forEach(item => {
if (item.targetType == 'line') {
this.state1.num = item.num || 0
this.state1.price = item.price || 0
this.list1[0] = item.five
this.list1[1] = item.fiveOrTen
this.list1[2] = item.ten
} else if (item.targetType == 'cable') {
this.state2.num = item.num || 0
this.state2.price = item.price || 0
this.list2[0] = item.five
this.list2[1] = item.fiveOrTen
this.list2[2] = item.ten
} else if (item.targetType == 'substation') {
this.state3.num = item.num || 0
this.state3.price = item.price || 0
this.list3[0] = item.five
this.list3[1] = item.fiveOrTen
this.list3[2] = item.ten
}
})
// this.state1.num = data.line.num || 0
// this.state1.price = data.line.price || 0
// this.state2.num = data.cable.num || 0
// this.state2.price = data.cable.price || 0
// this.state3.num = data.substation.num || 0
// this.state3.price = data.substation.price || 0
// this.list1[0] = data.line.five
// this.list1[1] = data.line.fiveOrTen
// this.list1[2] = data.line.ten
// this.list2[0] = data.cable.five
// this.list2[1] = data.cable.fiveOrTen
// this.list2[2] = data.cable.ten
// this.list3[0] = data.substation.five
// this.list3[1] = data.substation.fiveOrTen
// this.list3[2] = data.substation.ten
// console.log('🚀 ~ getEquipList ~ this.list1:', this.list1)
// console.log('🚀 ~ getEquipList ~ this.list2:', this.list2)
// console.log('🚀 ~ getEquipList ~ this.list3:', this.list3)
// console.log('🚀 ~ getEquipList ~ this.state1:', this.state1)
// console.log('🚀 ~ getEquipList ~ this.state2:', this.state2)
// console.log('🚀 ~ getEquipList ~ this.state3:', this.state3)
} catch (error) {
console.log('🚀 ~ getEquipList ~ error:', error)
}

View File

@ -23,8 +23,8 @@
<tr v-for="(row, index) in tableData" :key="index">
<td style="width: 60px">{{ index + 1 }}</td>
<td style="width: 200px">{{ row.name }}</td>
<td>{{ row.proportion }}</td>
<td>{{ row.turnoverRate }}</td>
<td>{{ row.proportion }} %</td>
<td>{{ row.turnoverRate }} /</td>
</tr>
</tbody>
</table>

View File

@ -8,7 +8,7 @@
<div class="equipment-list">
<div class="equip-item1 item">
<div class="title">年度总投资额</div>
<div class="number">{{ annualTotal }} <span class="unit">亿元</span></div>
<div class="number">{{ (annualTotal / 100000000).toFixed(4) }} <span class="unit">亿元</span></div>
</div>
<div class="equip-item2 item">
<div class="title">在建工程数</div>