|
@@ -40,6 +40,13 @@ const query = ref<Query>({
|
|
|
const totalWorkKeys: [string, string, string, string, number][] = [
|
|
const totalWorkKeys: [string, string, string, string, number][] = [
|
|
|
['constructionWells', '个', '累计施工井数', 'i-mdi:progress-wrench text-sky', 0],
|
|
['constructionWells', '个', '累计施工井数', 'i-mdi:progress-wrench text-sky', 0],
|
|
|
['completedWells', '个', '累计完工井数', 'i-mdi:wrench-check-outline text-emerald', 0],
|
|
['completedWells', '个', '累计完工井数', 'i-mdi:wrench-check-outline text-emerald', 0],
|
|
|
|
|
+ [
|
|
|
|
|
+ 'utilizationRate',
|
|
|
|
|
+ '%',
|
|
|
|
|
+ '设备利用率',
|
|
|
|
|
+ 'i-material-symbols:check-circle-outline-rounded text-emerald',
|
|
|
|
|
+ 0
|
|
|
|
|
+ ],
|
|
|
[
|
|
[
|
|
|
'totalPowerConsumption',
|
|
'totalPowerConsumption',
|
|
|
'MWh',
|
|
'MWh',
|
|
@@ -80,7 +87,8 @@ const totalWork = ref({
|
|
|
totalPowerConsumption: 0,
|
|
totalPowerConsumption: 0,
|
|
|
constructionWells: 0,
|
|
constructionWells: 0,
|
|
|
completedWells: 0,
|
|
completedWells: 0,
|
|
|
- averageFuelConsumption: 0
|
|
|
|
|
|
|
+ averageFuelConsumption: 0,
|
|
|
|
|
+ utilizationRate: 0
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
const totalLoading = ref(false)
|
|
const totalLoading = ref(false)
|
|
@@ -112,7 +120,8 @@ const getTotal = useDebounceFn(async () => {
|
|
|
...res2,
|
|
...res2,
|
|
|
totalPowerConsumption: (res2.totalPowerConsumption || 0) / 1000,
|
|
totalPowerConsumption: (res2.totalPowerConsumption || 0) / 1000,
|
|
|
totalFuelConsumption: res2.totalFuelConsumption || 0,
|
|
totalFuelConsumption: res2.totalFuelConsumption || 0,
|
|
|
- averageFuelConsumption: res2.averageFuelConsumption || 0
|
|
|
|
|
|
|
+ averageFuelConsumption: res2.averageFuelConsumption || 0,
|
|
|
|
|
+ utilizationRate: Number(((res2.utilizationRate || 0) * 100).toFixed(2))
|
|
|
}
|
|
}
|
|
|
} finally {
|
|
} finally {
|
|
|
totalLoading.value = false
|
|
totalLoading.value = false
|
|
@@ -130,6 +139,7 @@ interface List {
|
|
|
transitTime: number | null
|
|
transitTime: number | null
|
|
|
nonProductiveTime: number | null
|
|
nonProductiveTime: number | null
|
|
|
averageFuelConsumption: number | null
|
|
averageFuelConsumption: number | null
|
|
|
|
|
+ utilizationRate: number | null
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const list = ref<List[]>([])
|
|
const list = ref<List[]>([])
|
|
@@ -169,6 +179,10 @@ const columns = (type: string) => {
|
|
|
{
|
|
{
|
|
|
label: '非生产时效(%)',
|
|
label: '非生产时效(%)',
|
|
|
prop: 'nonProductiveTime'
|
|
prop: 'nonProductiveTime'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '设备利用率(%)',
|
|
|
|
|
+ prop: 'utilizationRate'
|
|
|
}
|
|
}
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|
|
@@ -180,6 +194,8 @@ const formatter = (row: List, column: any) => {
|
|
|
return (Number(row.transitTime ?? 0) * 100).toFixed(2) + '%'
|
|
return (Number(row.transitTime ?? 0) * 100).toFixed(2) + '%'
|
|
|
} else if (column.property === 'nonProductiveTime') {
|
|
} else if (column.property === 'nonProductiveTime') {
|
|
|
return (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%'
|
|
return (Number(row.nonProductiveTime ?? 0) * 100).toFixed(2) + '%'
|
|
|
|
|
+ } else if (column.property === 'utilizationRate') {
|
|
|
|
|
+ return (Number(row.utilizationRate ?? 0) * 100).toFixed(2) + '%'
|
|
|
} else return row[column.property] ?? 0
|
|
} else return row[column.property] ?? 0
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -199,7 +215,8 @@ const getList = useDebounceFn(async () => {
|
|
|
...other,
|
|
...other,
|
|
|
cumulativePowerConsumption: ((other.cumulativePowerConsumption || 0) / 1000).toFixed(2),
|
|
cumulativePowerConsumption: ((other.cumulativePowerConsumption || 0) / 1000).toFixed(2),
|
|
|
cumulativeFuelConsumption: (other.cumulativeFuelConsumption || 0).toFixed(2),
|
|
cumulativeFuelConsumption: (other.cumulativeFuelConsumption || 0).toFixed(2),
|
|
|
- averageFuelConsumption: (other.averageFuelConsumption || 0).toFixed(2)
|
|
|
|
|
|
|
+ averageFuelConsumption: (other.averageFuelConsumption || 0).toFixed(2),
|
|
|
|
|
+ utilizationRate: other.utilizationRate || 0
|
|
|
})
|
|
})
|
|
|
)
|
|
)
|
|
|
} finally {
|
|
} finally {
|
|
@@ -238,7 +255,8 @@ const legend = ref<string[][]>([
|
|
|
['油耗 (升)', 'cumulativeFuelConsumption'],
|
|
['油耗 (升)', 'cumulativeFuelConsumption'],
|
|
|
// ['累计用电量 (MWh)', 'cumulativePowerConsumption'],
|
|
// ['累计用电量 (MWh)', 'cumulativePowerConsumption'],
|
|
|
['用电量 (KWh)', 'cumulativePowerConsumption'],
|
|
['用电量 (KWh)', 'cumulativePowerConsumption'],
|
|
|
- ['平均时效 (%)', 'transitTime']
|
|
|
|
|
|
|
+ ['平均时效 (%)', 'transitTime'],
|
|
|
|
|
+ ['设备利用率 (%)', 'utilizationRate']
|
|
|
])
|
|
])
|
|
|
|
|
|
|
|
const chartData = ref<Record<string, number[]>>({
|
|
const chartData = ref<Record<string, number[]>>({
|
|
@@ -246,7 +264,8 @@ const chartData = ref<Record<string, number[]>>({
|
|
|
cumulativeConstructWells: [],
|
|
cumulativeConstructWells: [],
|
|
|
cumulativeCompletedWells: [],
|
|
cumulativeCompletedWells: [],
|
|
|
cumulativePowerConsumption: [],
|
|
cumulativePowerConsumption: [],
|
|
|
- transitTime: []
|
|
|
|
|
|
|
+ transitTime: [],
|
|
|
|
|
+ utilizationRate: []
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
let chartLoading = ref(false)
|
|
let chartLoading = ref(false)
|
|
@@ -264,7 +283,8 @@ const getChart = useDebounceFn(async () => {
|
|
|
cumulativeCompletedWells: res.map((item) => item.cumulativeCompletedWells || 0),
|
|
cumulativeCompletedWells: res.map((item) => item.cumulativeCompletedWells || 0),
|
|
|
cumulativePowerConsumption: res.map((item) => item.cumulativePowerConsumption || 0),
|
|
cumulativePowerConsumption: res.map((item) => item.cumulativePowerConsumption || 0),
|
|
|
// cumulativePowerConsumption: res.map((item) => (item.cumulativePowerConsumption || 0) / 1000),
|
|
// cumulativePowerConsumption: res.map((item) => (item.cumulativePowerConsumption || 0) / 1000),
|
|
|
- transitTime: res.map((item) => (item.transitTime || 0) * 100)
|
|
|
|
|
|
|
+ transitTime: res.map((item) => (item.transitTime || 0) * 100),
|
|
|
|
|
+ utilizationRate: res.map((item) => Number(((item.utilizationRate || 0) * 100).toFixed(2)))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
xAxisData.value = res.map((item) => item.reportDate || '')
|
|
xAxisData.value = res.map((item) => item.reportDate || '')
|
|
@@ -542,7 +562,7 @@ const tolist = (id: number, non: boolean = false) => {
|
|
|
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
|
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
- <div class="grid grid-cols-8 gap-8">
|
|
|
|
|
|
|
+ <div class="grid grid-cols-9 gap-8">
|
|
|
<div
|
|
<div
|
|
|
v-for="info in totalWorkKeys"
|
|
v-for="info in totalWorkKeys"
|
|
|
:key="info[0]"
|
|
:key="info[0]"
|