This commit is contained in:
parent
1ba03331e4
commit
abceaaf90f
|
|
@ -5,15 +5,15 @@ import request from '@/utils/request'
|
||||||
export const getTotalEquipmentApi = () => {
|
export const getTotalEquipmentApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getTotalEquipment',
|
url: '/material-mall/provinceScreen/getTotalEquipment',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 线路 变电 电缆
|
// 线路 变电 电缆
|
||||||
export const getEquipmentClassificationApi = () => {
|
export const getEquipmentClassificationApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getEquipmentClassification',
|
url: '/material-mall/largeScreen/statByTypeAndAge',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -21,7 +21,7 @@ export const getEquipmentClassificationApi = () => {
|
||||||
export const getUnitEquipmentConfigurationApi = () => {
|
export const getUnitEquipmentConfigurationApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getUnitEquipmentConfiguration',
|
url: '/material-mall/provinceScreen/getUnitEquipmentConfiguration',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ export const getUnitEquipmentConfigurationApi = () => {
|
||||||
export const getEquipmentStatusApi = () => {
|
export const getEquipmentStatusApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getEquipmentStatus',
|
url: '/material-mall/provinceScreen/getEquipmentStatus',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,7 +37,7 @@ export const getEquipmentStatusApi = () => {
|
||||||
export const getProjectEquipmentApi = () => {
|
export const getProjectEquipmentApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getProjectEquipment',
|
url: '/material-mall/provinceScreen/getProjectEquipment',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ export const getProjectEquipmentApi = () => {
|
||||||
export const getDeptEquipmentApi = () => {
|
export const getDeptEquipmentApi = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getDeptEquipment',
|
url: '/material-mall/provinceScreen/getDeptEquipment',
|
||||||
method: 'get'
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,7 +54,7 @@ export const getEquipmentUseApi = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getEquipmentUse',
|
url: '/material-mall/provinceScreen/getEquipmentUse',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: data
|
params: data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -63,7 +63,7 @@ export const getUsageStatisticsApi = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getUsageStatistics',
|
url: '/material-mall/provinceScreen/getUsageStatistics',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: data
|
params: data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,7 +72,7 @@ export const getEquipmentNumberApi = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getEquipmentNumber',
|
url: '/material-mall/provinceScreen/getEquipmentNumber',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: data
|
params: data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -81,6 +81,49 @@ export const getMechanizationRateApi = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/provinceScreen/getMechanizationRate',
|
url: '/material-mall/provinceScreen/getMechanizationRate',
|
||||||
method: 'get',
|
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,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@
|
||||||
<div v-if="selectedCity && btnIndex == 1" class="city-tooltip">
|
<div v-if="selectedCity && btnIndex == 1" class="city-tooltip">
|
||||||
<div class="city-name">{{ selectedCity.cityName }}</div>
|
<div class="city-name">{{ selectedCity.cityName }}</div>
|
||||||
<div
|
<div
|
||||||
>装备价值: <span class="num">{{ selectedCity.totalValue }}</span
|
>装备价值: <span class="num">{{ (selectedCity.totalValue / 100000000).toFixed(4) }}</span
|
||||||
><span class="unit"> 元</span></div
|
><span class="unit"> 亿元</span></div
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
>装备数量: <span class="num">{{ selectedCity.totalEquipmentQuantity }}</span
|
>装备数量: <span class="num">{{ selectedCity.totalEquipmentQuantity }}</span
|
||||||
|
|
@ -177,8 +177,8 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
viewControl: {
|
viewControl: {
|
||||||
distance: 136, // 视角远近
|
distance: 168, // 视角远近
|
||||||
alpha: 40, // 旋转角度
|
alpha: 52, // 旋转角度
|
||||||
beta: -16,
|
beta: -16,
|
||||||
rotateSensitivity: 0, // 禁止旋转
|
rotateSensitivity: 0, // 禁止旋转
|
||||||
zoomSensitivity: 0, // 禁止缩放
|
zoomSensitivity: 0, // 禁止缩放
|
||||||
|
|
@ -194,8 +194,14 @@ export default {
|
||||||
data: seriesData,
|
data: seriesData,
|
||||||
symbol: 'circle',
|
symbol: 'circle',
|
||||||
symbolSize: 18,
|
symbolSize: 18,
|
||||||
|
itemStyle: {
|
||||||
|
color: '#f90', // 👈 散点颜色在这里改
|
||||||
|
opacity: 1, // 可调透明度
|
||||||
|
},
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: true,
|
||||||
|
position: 'top', // 先指定一个基准位置(如 'top')
|
||||||
|
offset: [0, -10], // 向上偏移 10px(x 方向 0,y 方向 -10)
|
||||||
formatter: (params) => {
|
formatter: (params) => {
|
||||||
const val = params.data.value || []
|
const val = params.data.value || []
|
||||||
let unit = ''
|
let unit = ''
|
||||||
|
|
@ -203,7 +209,9 @@ export default {
|
||||||
else if (this.btnIndex === 2) unit = '台'
|
else if (this.btnIndex === 2) unit = '台'
|
||||||
else if (this.btnIndex === 3) unit = '%'
|
else if (this.btnIndex === 3) unit = '%'
|
||||||
return val.length
|
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}}`
|
: `{name|${params.data.deptName}}`
|
||||||
},
|
},
|
||||||
rich: {
|
rich: {
|
||||||
|
|
@ -228,7 +236,6 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// series: [{ type: 'map3D', z: 10, itemStyle: {color: 'transparent'}, borderColor: '#5CE0FF', borderWidth: 3 }]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.myChart.setOption(option)
|
this.myChart.setOption(option)
|
||||||
|
|
|
||||||
|
|
@ -23,41 +23,83 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
@submit.native.prevent
|
@submit.native.prevent
|
||||||
>
|
>
|
||||||
<el-form-item label="装备范围" prop="equipRange">
|
<el-form-item label="装备范围" prop="deptName">
|
||||||
<el-select v-model="queryParams.equipRange" placeholder="请选择" clearable style="width: 240px">
|
<el-select
|
||||||
<el-option v-for="item in equipRangeList" :key="item.value" :label="item.label" :value="item.value" />
|
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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="地市公司" prop="dsCompName">
|
<el-form-item label="产权单位" prop="companyName">
|
||||||
<el-select v-model="queryParams.dsCompName" placeholder="请选择" clearable style="width: 240px">
|
<el-select v-model="queryParams.companyName" placeholder="请选择" clearable style="width: 240px">
|
||||||
<el-option v-for="item in dsCompNameList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option
|
||||||
|
v-for="item in companyNameList"
|
||||||
|
:key="item.deptId"
|
||||||
|
:label="item.deptName"
|
||||||
|
:value="item.deptId"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="装备名称" prop="equipName">
|
<el-form-item label="工程专业" prop="proType">
|
||||||
<el-input v-model="queryParams.equipName" placeholder="请输入" clearable style="width: 240px" />
|
<el-select
|
||||||
</el-form-item>
|
v-model="queryParams.proType"
|
||||||
<el-form-item label="装备系列" prop="equipSeries">
|
placeholder="请选择"
|
||||||
<el-select v-model="queryParams.equipSeries" placeholder="请选择" clearable style="width: 240px">
|
clearable
|
||||||
<el-option v-for="item in equipSeriesList" :key="item.value" :label="item.label" :value="item.value" />
|
style="width: 240px"
|
||||||
|
@change="changeProType"
|
||||||
|
>
|
||||||
|
<el-option v-for="item in proTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="装备编号" prop="equipCode">
|
<el-form-item label="装备类目" prop="deviceSeries">
|
||||||
<el-input v-model="queryParams.equipCode" placeholder="请输入" clearable style="width: 240px" />
|
<el-cascader
|
||||||
|
v-model="deviceSeries"
|
||||||
|
:options="deviceSeriesList"
|
||||||
|
clearable
|
||||||
|
@change="changeDeviceSeries"
|
||||||
|
style="width: 240px"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="装备状态" prop="equipStatus">
|
<el-form-item label="装备名称" prop="deviceName">
|
||||||
<el-select v-model="queryParams.equipStatus" placeholder="请选择" clearable style="width: 240px">
|
<el-input v-model="queryParams.deviceName" placeholder="请输入" clearable style="width: 240px" />
|
||||||
<el-option v-for="item in equipStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
</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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所在项目" prop="projectName">
|
<el-form-item label="所在项目" prop="onProject">
|
||||||
<el-select v-model="queryParams.projectName" placeholder="请选择" clearable style="width: 240px">
|
<el-select v-model="queryParams.onProject" placeholder="请选择" clearable style="width: 240px">
|
||||||
<el-option v-for="item in projectNameList" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option
|
||||||
|
v-for="item in onProjectList"
|
||||||
|
:key="item.proCode"
|
||||||
|
:label="item.proName"
|
||||||
|
:value="item.proCode"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 日期范围 -->
|
<el-form-item label="装备厂家" prop="brand">
|
||||||
<el-form-item label="采购日期" prop="purchaseDate">
|
<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
|
<el-date-picker
|
||||||
v-model="queryParams.purchaseDate"
|
v-model="queryParams.productionDate"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
|
|
@ -66,38 +108,17 @@
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</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
|
<el-date-picker
|
||||||
v-model="queryParams.factoryDate"
|
v-model="queryParams.nextCheckTime"
|
||||||
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"
|
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
|
|
@ -110,9 +131,10 @@
|
||||||
<el-input v-model="queryParams.featureItem" placeholder="请输入" clearable style="width: 240px" />
|
<el-input v-model="queryParams.featureItem" placeholder="请输入" clearable style="width: 240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="特征值" prop="featureValue">
|
<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-option v-for="item in featureValueList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 表单按钮 -->
|
<!-- 表单按钮 -->
|
||||||
|
|
@ -153,6 +175,12 @@
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
align="center"
|
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>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<el-table-column label="操作" align="center" width="130">
|
<el-table-column label="操作" align="center" width="130">
|
||||||
|
|
@ -176,65 +204,62 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getDeviceListAPI } from '@/api/EquipmentLedger'
|
||||||
|
import { getAddressApi, getDeptApi, getMaTypeApi, getFirstLevelApi, getProListApi } from '@/api/wsScreen'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
|
deviceSeries: [],
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
equipRange: '', // 装备范围
|
deptName: '', // 装备范围
|
||||||
dsCompName: '', // 地市公司
|
companyName: '', // 地市公司
|
||||||
equipName: '', // 装备名称
|
deviceName: '', // 装备名称
|
||||||
equipSeries: '', // 装备系列
|
deviceSeries: '', // 装备系列
|
||||||
equipCode: '', // 装备编号
|
code: '', // 装备编号
|
||||||
equipStatus: '', // 装备状态
|
changeStatus: '', // 装备状态
|
||||||
projectName: '', // 所在项目
|
onProject: '', // 所在项目
|
||||||
purchaseDate: '', // 采购日期
|
purchaseDate: '', // 采购日期
|
||||||
factoryDate: '', // 出厂日期
|
productionDate: '', // 出厂日期
|
||||||
usefulLife: '', // 使用年限
|
workingHours: '', // 使用年限
|
||||||
propertyUnit: '', // 产权单位
|
companyName: '', // 产权单位
|
||||||
manufacturer: '', // 生产厂家
|
brand: '', // 生产厂家
|
||||||
assetValue: '', // 资产原值
|
buyPrice: '', // 资产原值
|
||||||
nextCheckDate: '', // 下次检测日期
|
nextCheckTime: '', // 下次检测日期
|
||||||
featureItem: '', // 特征项
|
featureItem: '', // 特征项
|
||||||
featureValue: '', // 特征值
|
featureValue: '', // 特征值
|
||||||
},
|
},
|
||||||
equipRangeList: [
|
deptNameList: [],
|
||||||
{ label: '全网省', value: 1 },
|
companyNameList: [],
|
||||||
{ label: '合肥市', value: 2 },
|
deviceSeriesList: [],
|
||||||
],
|
changeStatusList: [
|
||||||
dsCompNameList: [
|
|
||||||
{ label: '全网省', value: 1 },
|
|
||||||
{ label: '合肥市', value: 2 },
|
|
||||||
],
|
|
||||||
equipSeriesList: [
|
|
||||||
{ label: '全网省', value: 1 },
|
|
||||||
{ label: '合肥市', value: 2 },
|
|
||||||
],
|
|
||||||
equipStatusList: [
|
|
||||||
{ label: '在库', value: 1 },
|
{ label: '在库', value: 1 },
|
||||||
{ label: '在用', value: 2 },
|
{ label: '自用', value: 2 },
|
||||||
|
{ label: '共享', value: 3 },
|
||||||
|
{ label: '退役', value: 4 },
|
||||||
|
{ label: '维修', value: 5 },
|
||||||
],
|
],
|
||||||
projectNameList: [
|
proTypeList: [],
|
||||||
{ label: '全网省', value: 1 },
|
onProjectList: [],
|
||||||
{ label: '合肥市', value: 2 },
|
workingHoursList: [
|
||||||
],
|
|
||||||
usefulLifeList: [
|
|
||||||
{ label: '5年', value: 1 },
|
{ label: '5年', value: 1 },
|
||||||
{ label: '10年', value: 2 },
|
{ label: '5-10年', value: 2 },
|
||||||
|
{ label: '10年以上', value: 3 },
|
||||||
],
|
],
|
||||||
propertyUnitList: [
|
companyNameList: [
|
||||||
{ label: '单位1', value: 1 },
|
{ label: '单位1', value: 1 },
|
||||||
{ label: '单位2', value: 2 },
|
{ label: '单位2', value: 2 },
|
||||||
],
|
],
|
||||||
manufacturerList: [
|
brandList: [
|
||||||
{ label: '单位1', value: 1 },
|
{ label: '单位1', value: 1 },
|
||||||
{ label: '单位2', value: 2 },
|
{ label: '单位2', value: 2 },
|
||||||
],
|
],
|
||||||
assetValueList: [
|
buyPriceList: [
|
||||||
{ label: '原值1', value: 1 },
|
{ label: '原值1', value: 1 },
|
||||||
{ label: '原值2', value: 2 },
|
{ label: '原值2', value: 2 },
|
||||||
],
|
],
|
||||||
|
|
@ -244,29 +269,30 @@ export default {
|
||||||
],
|
],
|
||||||
|
|
||||||
tableColumns: [
|
tableColumns: [
|
||||||
{ label: '公司名称', prop: 'compName' },
|
{ label: '公司名称', prop: 'companyName' },
|
||||||
{ label: '工程专业', prop: 'proFee' },
|
{ label: '产权单位', prop: 'companyName' },
|
||||||
{ label: '施工主工序', prop: 'process' },
|
{ label: '工程专业', prop: 'proType' },
|
||||||
{ label: '装备名称', prop: 'equipName' },
|
{ label: '主工序', prop: 'mainGx' },
|
||||||
{ label: '装备型号', prop: 'equipType' },
|
{ label: '子工序', prop: 'childGx' },
|
||||||
{ label: '装备编号', prop: 'equipCode' },
|
{ label: '装备大类', prop: 'devCategory' },
|
||||||
|
{ label: '装备小类', prop: 'devSubcategory' },
|
||||||
|
{ label: '类型分支', prop: 'devName' },
|
||||||
|
{ label: '装备名称', prop: 'deviceName' },
|
||||||
|
{ label: '规格型号', prop: 'devModel' },
|
||||||
|
{ label: '装备编号', prop: 'code' },
|
||||||
{ label: '计量单位', prop: 'unitName' },
|
{ label: '计量单位', prop: 'unitName' },
|
||||||
{ label: '产权单位', prop: 'propertyUnit' },
|
{ label: '所在项目', prop: 'proName' },
|
||||||
{ label: '资产原值(元)', prop: 'unitPrice' },
|
{ label: '使用到期时间', prop: 'buyPrice' },
|
||||||
{ label: '采购日期', prop: 'purchaseDate' },
|
{ label: '装备原始编码', prop: 'identifyCode' },
|
||||||
],
|
{ label: '出厂日期', prop: 'productionDate' },
|
||||||
tableList: [
|
{ label: '生产厂家', prop: 'brand' },
|
||||||
// { id: 1, equipName: '测试1', equipType: '测试1', equipCode: '测试1' },
|
{ label: '资产原值', prop: 'buyPrice' },
|
||||||
// { id: 2, equipName: '测试1', equipType: '测试1', equipCode: '测试1' },
|
{ label: '下次维保日期', prop: 'nextCheckTime' },
|
||||||
// { id: 3, equipName: '测试1', equipType: '测试1', equipCode: '测试1' },
|
{ label: '使用年限', prop: 'workingHours' },
|
||||||
// { id: 4, equipName: '测试1', equipType: '测试1', equipCode: '测试1' },
|
{ label: '特征项', prop: 'featureItem' },
|
||||||
// { id: 5, equipName: '测试1', equipType: '测试1', equipCode: '测试1' },
|
{ label: '特征值', prop: 'featureValue' },
|
||||||
// { 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' },
|
|
||||||
],
|
],
|
||||||
|
tableList: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -274,8 +300,21 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
openDialog() {
|
openDialog() {
|
||||||
this.dialogVisible = true
|
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() {
|
handleQuery() {
|
||||||
this.queryParams.pageNum = 1
|
this.queryParams.pageNum = 1
|
||||||
|
|
@ -288,6 +327,118 @@ export default {
|
||||||
this.queryParams.pageSize = 10
|
this.queryParams.pageSize = 10
|
||||||
this.getList()
|
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() {
|
handleExport() {
|
||||||
// 提示
|
// 提示
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="left-item">
|
<div class="left-item">
|
||||||
<div class="left-tip">装备价值 <span>(亿元)</span></div>
|
<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>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
align="center"
|
align="center"
|
||||||
>
|
>
|
||||||
|
<template v-slot="{ row }" v-if="column.prop === 'equipPrice'">
|
||||||
|
<span>{{ (row.equipPrice / 100000000).toFixed(4) }}</span>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<tr v-for="(row, index) in tableData" :key="index">
|
<tr v-for="(row, index) in tableData" :key="index">
|
||||||
<td style="width: 60px">{{ index + 1 }}</td>
|
<td style="width: 60px">{{ index + 1 }}</td>
|
||||||
<td style="width: 180px">{{ row.deptName }}</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>
|
<td>{{ row.totalEquipmentQuantity }}</td>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<div class="equip-item-2" @click="openSystemEquip">{{ equipData.total }} <span class="unit">台</span></div>
|
<div class="equip-item-2" @click="openSystemEquip">{{ equipData.total }} <span class="unit">台</span></div>
|
||||||
<div class="equip-item-3">总价值</div>
|
<div class="equip-item-3">总价值</div>
|
||||||
<div class="equip-item-4" @click="openTotalPrice"
|
<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>
|
||||||
<div class="item-box">
|
<div class="item-box">
|
||||||
|
|
@ -139,27 +139,49 @@ export default {
|
||||||
try {
|
try {
|
||||||
const { data } = await getEquipmentClassificationApi()
|
const { data } = await getEquipmentClassificationApi()
|
||||||
console.log('🚀 ~ getEquipList ~ data:', data)
|
console.log('🚀 ~ getEquipList ~ data:', data)
|
||||||
this.state1.num = data.line.num || 0
|
if (!data || data.length === 0) return
|
||||||
this.state1.price = data.line.price || 0
|
data.forEach(item => {
|
||||||
this.state2.num = data.cable.num || 0
|
if (item.targetType == 'line') {
|
||||||
this.state2.price = data.cable.price || 0
|
this.state1.num = item.num || 0
|
||||||
this.state3.num = data.substation.num || 0
|
this.state1.price = item.price || 0
|
||||||
this.state3.price = data.substation.price || 0
|
this.list1[0] = item.five
|
||||||
this.list1[0] = data.line.five
|
this.list1[1] = item.fiveOrTen
|
||||||
this.list1[1] = data.line.fiveOrTen
|
this.list1[2] = item.ten
|
||||||
this.list1[2] = data.line.ten
|
} else if (item.targetType == 'cable') {
|
||||||
this.list2[0] = data.cable.five
|
this.state2.num = item.num || 0
|
||||||
this.list2[1] = data.cable.fiveOrTen
|
this.state2.price = item.price || 0
|
||||||
this.list2[2] = data.cable.ten
|
this.list2[0] = item.five
|
||||||
this.list3[0] = data.substation.five
|
this.list2[1] = item.fiveOrTen
|
||||||
this.list3[1] = data.substation.fiveOrTen
|
this.list2[2] = item.ten
|
||||||
this.list3[2] = data.substation.ten
|
} else if (item.targetType == 'substation') {
|
||||||
console.log('🚀 ~ getEquipList ~ this.list1:', this.list1)
|
this.state3.num = item.num || 0
|
||||||
console.log('🚀 ~ getEquipList ~ this.list2:', this.list2)
|
this.state3.price = item.price || 0
|
||||||
console.log('🚀 ~ getEquipList ~ this.list3:', this.list3)
|
this.list3[0] = item.five
|
||||||
console.log('🚀 ~ getEquipList ~ this.state1:', this.state1)
|
this.list3[1] = item.fiveOrTen
|
||||||
console.log('🚀 ~ getEquipList ~ this.state2:', this.state2)
|
this.list3[2] = item.ten
|
||||||
console.log('🚀 ~ getEquipList ~ this.state3:', this.state3)
|
}
|
||||||
|
})
|
||||||
|
// 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) {
|
} catch (error) {
|
||||||
console.log('🚀 ~ getEquipList ~ error:', error)
|
console.log('🚀 ~ getEquipList ~ error:', error)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@
|
||||||
<tr v-for="(row, index) in tableData" :key="index">
|
<tr v-for="(row, index) in tableData" :key="index">
|
||||||
<td style="width: 60px">{{ index + 1 }}</td>
|
<td style="width: 60px">{{ index + 1 }}</td>
|
||||||
<td style="width: 200px">{{ row.name }}</td>
|
<td style="width: 200px">{{ row.name }}</td>
|
||||||
<td>{{ row.proportion }}</td>
|
<td>{{ row.proportion }} %</td>
|
||||||
<td>{{ row.turnoverRate }}</td>
|
<td>{{ row.turnoverRate }} 次/年</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<div class="equipment-list">
|
<div class="equipment-list">
|
||||||
<div class="equip-item1 item">
|
<div class="equip-item1 item">
|
||||||
<div class="title">年度总投资额</div>
|
<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>
|
||||||
<div class="equip-item2 item">
|
<div class="equip-item2 item">
|
||||||
<div class="title">在建工程数</div>
|
<div class="title">在建工程数</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue