装备配置率配置问题修改
This commit is contained in:
parent
3b981e1308
commit
4f931ac21f
|
|
@ -10,6 +10,20 @@ export function listUser(query) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function moveUp(id) {
|
||||||
|
return request({
|
||||||
|
url: '/material-mall/deptConfig/moveUp/' + id,
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function moveDown(id) {
|
||||||
|
return request({
|
||||||
|
url: '/material-mall/deptConfig/moveDown/' + id,
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function getOwnEquipmentList(query) {
|
export function getOwnEquipmentList(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/deptConfig/getOwnEquipmentList',
|
url: '/material-mall/deptConfig/getOwnEquipmentList',
|
||||||
|
|
@ -73,17 +87,21 @@ export function getConfigurationDetails(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function exportStatsData() {
|
export function exportStatsData() {
|
||||||
return request({
|
return request({
|
||||||
url: '/material-mall/deptConfig/exportStatsData',
|
url: '/material-mall/deptConfig/exportStatsData',
|
||||||
method: 'get',
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取使用项目的下拉选
|
||||||
|
export const getUseProjectListAPI = () => {
|
||||||
|
return request({
|
||||||
|
url: '/material-mall/decChange/getProList',
|
||||||
|
method: 'POST',
|
||||||
|
data: {}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function insertResource(data) {
|
export function insertResource(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
@ -280,5 +298,15 @@ export function confirmPassword(password) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function updateConfiguration(data) {
|
||||||
|
return request({
|
||||||
|
url: '/material-mall/deptConfig/updateConfiguration',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,19 @@
|
||||||
|
|
||||||
<div class="table-card">
|
<div class="table-card">
|
||||||
<div class="table-header">
|
<div class="table-header">
|
||||||
<el-button type="primary" style="float: right" icon="el-icon-download" @click="exportTableData">
|
<el-button type="primary" style="float: right" size="small" icon="el-icon-download" @click="exportTableData">
|
||||||
导出数据
|
导出数据
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button type="primary" style="float: right;margin-right: 20px;color: #FFFFFF" size="small" icon="el-icon-refresh"
|
||||||
|
@click="updateConfiguration"
|
||||||
|
>
|
||||||
|
更新数据
|
||||||
|
</el-button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="tableData" border stripe :fit="true" class="stats-table">
|
<el-table :data="tableData" border stripe :fit="true" class="stats-table">
|
||||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
<el-table-column label="序号" type="index" width="60" align="center"/>
|
||||||
<el-table-column label="公司名称" prop="deptName" min-width="150" align="center" />
|
<el-table-column label="公司名称" prop="deptName" min-width="150" align="center"/>
|
||||||
<el-table-column label="线路设备配置率" prop="lineNum" min-width="120" align="center">
|
<el-table-column label="线路设备配置率" prop="lineNum" min-width="120" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span class="link" @click="handleCellClick(scope.row.deptId, 0)">{{ scope.row.lineNum }}</span>
|
<span class="link" @click="handleCellClick(scope.row.deptId, 0)">{{ scope.row.lineNum }}</span>
|
||||||
|
|
@ -43,7 +49,7 @@
|
||||||
<template #header>
|
<template #header>
|
||||||
<span class="custom-sort-header">
|
<span class="custom-sort-header">
|
||||||
总配置率
|
总配置率
|
||||||
<i class="el-icon-sort" style="color: #2cbab2" />
|
<i class="el-icon-sort" style="color: #2cbab2"/>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -60,19 +66,19 @@
|
||||||
>
|
>
|
||||||
<el-table :data="detailTableData" border stripe v-loading="detailTableLoading" max-height="600px">
|
<el-table :data="detailTableData" border stripe v-loading="detailTableLoading" max-height="600px">
|
||||||
<!-- 明细表格列(匹配用户提供的表格结构) -->
|
<!-- 明细表格列(匹配用户提供的表格结构) -->
|
||||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
<el-table-column label="序号" type="index" width="60" align="center"/>
|
||||||
<el-table-column label="装备名称" prop="typeName" min-width="120" align="center" />
|
<el-table-column label="装备名称" prop="typeName" min-width="120" align="center"/>
|
||||||
<el-table-column label="电压等级" prop="vol" min-width="100" align="center" />
|
<el-table-column label="电压等级" prop="vol" min-width="100" align="center"/>
|
||||||
<el-table-column label="地理特征" prop="type" min-width="100" align="center" />
|
<el-table-column label="地理特征" prop="type" min-width="100" align="center"/>
|
||||||
<el-table-column label="配置标准(台)" prop="configValue" min-width="100" align="center" />
|
<el-table-column label="配置标准(台)" prop="configValue" min-width="100" align="center"/>
|
||||||
<el-table-column label="装备种类" prop="jijuType" min-width="100" align="center" />
|
<el-table-column label="装备种类" prop="jijuType" min-width="100" align="center"/>
|
||||||
<el-table-column label="配置说明" prop="configDescription" min-width="120" align="center" />
|
<el-table-column label="配置说明" prop="configDescription" min-width="120" align="center"/>
|
||||||
<el-table-column label="装备配置率赋值" prop="configRate" min-width="120" align="center" />
|
<el-table-column label="装备配置率赋值" prop="configRate" min-width="120" align="center"/>
|
||||||
<el-table-column label="自有装配数量" prop="ownNum" min-width="120" align="center" />
|
<el-table-column label="自有装配数量" prop="ownNum" min-width="120" align="center"/>
|
||||||
<el-table-column label="共享装备数量" prop="shareNum" min-width="120" align="center" />
|
<el-table-column label="共享装备数量" prop="shareNum" min-width="120" align="center"/>
|
||||||
<el-table-column label="外租装备数量" prop="rentOutNum" min-width="120" align="center" />
|
<el-table-column label="外租装备数量" prop="rentOutNum" min-width="120" align="center"/>
|
||||||
<el-table-column label="装备实际配置率" prop="baseAddNum" min-width="120" align="center" />
|
<el-table-column label="装备实际配置率" prop="baseAddNum" min-width="120" align="center"/>
|
||||||
<el-table-column label="特殊装备配备原因" prop="remark" min-width="150" align="center" />
|
<el-table-column label="特殊装备配备原因" prop="remark" min-width="150" align="center"/>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button @click="detailDialogVisible = false">关闭</el-button>
|
<el-button @click="detailDialogVisible = false">关闭</el-button>
|
||||||
|
|
@ -83,7 +89,12 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
import { getConfigurationTotal, exportStatsData, getConfigurationDetails } from '@/api/system/equipmentNew'
|
import {
|
||||||
|
getConfigurationTotal,
|
||||||
|
exportStatsData,
|
||||||
|
getConfigurationDetails,
|
||||||
|
updateConfiguration
|
||||||
|
} from '@/api/system/equipmentNew'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ConfigStatsPage',
|
name: 'ConfigStatsPage',
|
||||||
|
|
@ -93,7 +104,7 @@ export default {
|
||||||
searchForm: {
|
searchForm: {
|
||||||
companyName: '',
|
companyName: '',
|
||||||
voltageLevel: '',
|
voltageLevel: '',
|
||||||
terrainType: '',
|
terrainType: ''
|
||||||
},
|
},
|
||||||
tableData: [],
|
tableData: [],
|
||||||
tableLoading: false,
|
tableLoading: false,
|
||||||
|
|
@ -108,11 +119,11 @@ export default {
|
||||||
detailTableLoading: false,
|
detailTableLoading: false,
|
||||||
// 记录当前点击的行数据和列类型
|
// 记录当前点击的行数据和列类型
|
||||||
currentClickRow: null,
|
currentClickRow: null,
|
||||||
currentClickType: '', // line(线路)/cable(电缆)/substation(变电)
|
currentClickType: '' // line(线路)/cable(电缆)/substation(变电)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$nextTick(async () => {
|
this.$nextTick(async() => {
|
||||||
await this.initPage()
|
await this.initPage()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
@ -186,12 +197,12 @@ export default {
|
||||||
if (this.activeTab === 1) {
|
if (this.activeTab === 1) {
|
||||||
this.chartInstance.setOption({
|
this.chartInstance.setOption({
|
||||||
xAxis: { data: xAxis },
|
xAxis: { data: xAxis },
|
||||||
series: [{ name: '总配置率', data: total }],
|
series: [{ name: '总配置率', data: total }]
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.chartInstance.setOption({
|
this.chartInstance.setOption({
|
||||||
xAxis: { data: xAxis },
|
xAxis: { data: xAxis },
|
||||||
series: [{ data: xianlu }, { data: dianlan }, { data: biandian }],
|
series: [{ data: xianlu }, { data: dianlan }, { data: biandian }]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -209,15 +220,15 @@ export default {
|
||||||
style: {
|
style: {
|
||||||
text: '单位:分',
|
text: '单位:分',
|
||||||
fill: '#666',
|
fill: '#666',
|
||||||
fontSize: 14,
|
fontSize: 14
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
top: 60,
|
top: 60,
|
||||||
left: '3%',
|
left: '3%',
|
||||||
right: '4%',
|
right: '4%',
|
||||||
bottom: '15%',
|
bottom: '15%',
|
||||||
containLabel: true,
|
containLabel: true
|
||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
|
|
@ -234,8 +245,8 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
yAxis: { type: 'value' },
|
yAxis: { type: 'value' },
|
||||||
series: [
|
series: [
|
||||||
|
|
@ -252,13 +263,13 @@ export default {
|
||||||
y2: 1,
|
y2: 1,
|
||||||
colorStops: [
|
colorStops: [
|
||||||
{ offset: 0, color: '#5EDDCA' },
|
{ offset: 0, color: '#5EDDCA' },
|
||||||
{ offset: 1, color: '#32E1C6' },
|
{ offset: 1, color: '#32E1C6' }
|
||||||
],
|
]
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
data: [],
|
data: []
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -267,7 +278,7 @@ export default {
|
||||||
return {
|
return {
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
axisPointer: { type: 'shadow' },
|
axisPointer: { type: 'shadow' }
|
||||||
},
|
},
|
||||||
|
|
||||||
// 👉 单位说明(左上角)
|
// 👉 单位说明(左上角)
|
||||||
|
|
@ -278,8 +289,8 @@ export default {
|
||||||
style: {
|
style: {
|
||||||
text: '单位:分',
|
text: '单位:分',
|
||||||
fill: '#666',
|
fill: '#666',
|
||||||
fontSize: 14,
|
fontSize: 14
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 👉 右上角图例
|
// 👉 右上角图例
|
||||||
|
|
@ -291,9 +302,9 @@ export default {
|
||||||
icon: 'roundRect',
|
icon: 'roundRect',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: '#666',
|
color: '#666',
|
||||||
fontSize: 14,
|
fontSize: 14
|
||||||
},
|
},
|
||||||
data: ['线路装备配置率', '电缆设备配置率', '变电设备配置率'],
|
data: ['线路装备配置率', '电缆设备配置率', '变电设备配置率']
|
||||||
},
|
},
|
||||||
|
|
||||||
grid: {
|
grid: {
|
||||||
|
|
@ -301,7 +312,7 @@ export default {
|
||||||
right: '4%',
|
right: '4%',
|
||||||
bottom: '15%',
|
bottom: '15%',
|
||||||
top: 60,
|
top: 60,
|
||||||
containLabel: true,
|
containLabel: true
|
||||||
},
|
},
|
||||||
|
|
||||||
xAxis: {
|
xAxis: {
|
||||||
|
|
@ -319,19 +330,19 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value'
|
||||||
},
|
},
|
||||||
|
|
||||||
series: [
|
series: [
|
||||||
this.barSeries('线路装备配置率', ['#46A8FF', '#7BC2FF']),
|
this.barSeries('线路装备配置率', ['#46A8FF', '#7BC2FF']),
|
||||||
this.barSeries('电缆设备配置率', ['#5EDDCA', '#32E1C6']),
|
this.barSeries('电缆设备配置率', ['#5EDDCA', '#32E1C6']),
|
||||||
this.barSeries('变电设备配置率', ['#FDBE56', '#FFC468']),
|
this.barSeries('变电设备配置率', ['#FDBE56', '#FFC468'])
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -350,14 +361,27 @@ export default {
|
||||||
y2: 1,
|
y2: 1,
|
||||||
colorStops: [
|
colorStops: [
|
||||||
{ offset: 0, color: colors[0] },
|
{ offset: 0, color: colors[0] },
|
||||||
{ offset: 1, color: colors[1] },
|
{ offset: 1, color: colors[1] }
|
||||||
],
|
]
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
data: [],
|
data: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async updateConfiguration() {
|
||||||
|
this.$loading({ text: '正在更新,请稍候...' })
|
||||||
|
try {
|
||||||
|
const res = await updateConfiguration({})
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('导出失败:', err)
|
||||||
|
this.$message.error('导出失败,请稍后重试')
|
||||||
|
} finally {
|
||||||
|
this.$loading().close()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 导出数据:保持原有逻辑,增加loading
|
// 导出数据:保持原有逻辑,增加loading
|
||||||
async exportTableData() {
|
async exportTableData() {
|
||||||
this.$loading({ text: '正在导出,请稍候...' })
|
this.$loading({ text: '正在导出,请稍候...' })
|
||||||
|
|
@ -388,7 +412,7 @@ export default {
|
||||||
// 构造请求参数(公司名称+配置类型+搜索条件)
|
// 构造请求参数(公司名称+配置类型+搜索条件)
|
||||||
const params = {
|
const params = {
|
||||||
deptId: deptId,
|
deptId: deptId,
|
||||||
configType: configType,
|
configType: configType
|
||||||
}
|
}
|
||||||
const res = await getConfigurationDetails(params)
|
const res = await getConfigurationDetails(params)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
|
@ -401,8 +425,8 @@ export default {
|
||||||
} finally {
|
} finally {
|
||||||
this.detailTableLoading = false
|
this.detailTableLoading = false
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -446,6 +470,7 @@ export default {
|
||||||
::v-deep.el-loading-mask {
|
::v-deep.el-loading-mask {
|
||||||
background-color: #e5eef5;
|
background-color: #e5eef5;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep.el-loading-spinner {
|
::v-deep.el-loading-spinner {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 40%;
|
top: 40%;
|
||||||
|
|
@ -458,6 +483,7 @@ export default {
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep.el-loading-spinner > svg {
|
::v-deep.el-loading-spinner > svg {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@ -505,6 +531,7 @@ export default {
|
||||||
.tabs {
|
.tabs {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.tab-item {
|
.tab-item {
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
|
|
@ -512,6 +539,7 @@ export default {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
color: #2cbab2;
|
color: #2cbab2;
|
||||||
border-bottom: 2px solid #2cbab2;
|
border-bottom: 2px solid #2cbab2;
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,8 @@
|
||||||
:empty-text="`暂无${tab.label}装备配置数据`"
|
:empty-text="`暂无${tab.label}装备配置数据`"
|
||||||
@add="handleTableAdd"
|
@add="handleTableAdd"
|
||||||
@relate="handleTableRelate"
|
@relate="handleTableRelate"
|
||||||
|
@moveUp="handleMoveUpClick"
|
||||||
|
@moveDown="handleMoveDownClick"
|
||||||
@edit="handleTableEdit"
|
@edit="handleTableEdit"
|
||||||
@delete="handleTableDelete"
|
@delete="handleTableDelete"
|
||||||
@pagination="(page) => handleTablePagination(tab.key, page)"
|
@pagination="(page) => handleTablePagination(tab.key, page)"
|
||||||
|
|
@ -394,7 +396,7 @@
|
||||||
v-for="item in categoryList"
|
v-for="item in categoryList"
|
||||||
:key="item.uniqueKey"
|
:key="item.uniqueKey"
|
||||||
:label="`${item.equipmentName}(${item.devType})`"
|
:label="`${item.equipmentName}(${item.devType})`"
|
||||||
:value="item.equipmentName"
|
:value="item.typeId"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -478,9 +480,17 @@
|
||||||
<!-- 筛选条件 -->
|
<!-- 筛选条件 -->
|
||||||
<div class="search-form">
|
<div class="search-form">
|
||||||
<el-form :inline="true" :model="searchForm.sharing" class="demo-form-inline">
|
<el-form :inline="true" :model="searchForm.sharing" class="demo-form-inline">
|
||||||
|
<el-form-item label="订单编号">
|
||||||
|
<el-input
|
||||||
|
v-model="searchForm.sharing.orderNumber"
|
||||||
|
placeholder="请输入订单编号"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="装备名称">
|
<el-form-item label="装备名称">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchForm.sharing.equipmentName"
|
v-model="searchForm.sharing.name"
|
||||||
placeholder="请输入装备名称"
|
placeholder="请输入装备名称"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
|
|
@ -488,23 +498,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="装备类型">
|
<el-form-item label="装备类型">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchForm.sharing.equipmentType"
|
v-model="searchForm.sharing.category"
|
||||||
placeholder="请选择装备类型"
|
placeholder="请选择装备类型"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option label="装备" :value="0"/>
|
||||||
v-for="item in equipmentTypeOptions"
|
<el-option label="工具" :value="1"/>
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属单位">
|
<el-form-item label="规格型号">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchForm.sharing.deptName"
|
v-model="searchForm.sharing.specificationModel"
|
||||||
placeholder="请输入所属单位"
|
placeholder="请输入规格型号"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
|
|
@ -531,6 +537,7 @@
|
||||||
:key="column.prop"
|
:key="column.prop"
|
||||||
:label="column.label"
|
:label="column.label"
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
|
align="center"
|
||||||
:min-width="column.minWidth || 100"
|
:min-width="column.minWidth || 100"
|
||||||
>
|
>
|
||||||
<template v-slot="scope" v-if="column.prop === 'category'">
|
<template v-slot="scope" v-if="column.prop === 'category'">
|
||||||
|
|
@ -583,7 +590,7 @@
|
||||||
<el-form :inline="true" :model="searchForm.rental" class="demo-form-inline">
|
<el-form :inline="true" :model="searchForm.rental" class="demo-form-inline">
|
||||||
<el-form-item label="装备名称">
|
<el-form-item label="装备名称">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchForm.rental.equipmentName"
|
v-model="searchForm.rental.name"
|
||||||
placeholder="请输入装备名称"
|
placeholder="请输入装备名称"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
|
|
@ -591,27 +598,44 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="装备类型">
|
<el-form-item label="装备类型">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchForm.rental.equipmentType"
|
v-model="searchForm.rental.type"
|
||||||
placeholder="请选择装备类型"
|
placeholder="请选择装备类型"
|
||||||
clearable
|
clearable
|
||||||
|
filterable
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in equipmentTypeOptions"
|
v-for="item in categoryList"
|
||||||
:key="item.value"
|
:key="item.uniqueKey"
|
||||||
:label="item.label"
|
:label="`${item.equipmentName}(${item.devType})`"
|
||||||
:value="item.value"
|
:value="item.typeId"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="租赁公司">
|
<el-form-item label="租赁公司">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="searchForm.rental.companyName"
|
v-model="searchForm.rental.rentalCompany"
|
||||||
placeholder="请输入租赁公司"
|
placeholder="请输入租赁公司"
|
||||||
clearable
|
clearable
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="所属项目">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.rental.proCode"
|
||||||
|
placeholder="请选择所属项目"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in proList"
|
||||||
|
:key="item.proCode"
|
||||||
|
:label="item.proName"
|
||||||
|
:value="item.proCode"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" size="small" @click="handleRentalSearch">查询</el-button>
|
<el-button type="primary" size="small" @click="handleRentalSearch">查询</el-button>
|
||||||
<el-button size="small" @click="resetRentalSearch">重置</el-button>
|
<el-button size="small" @click="resetRentalSearch">重置</el-button>
|
||||||
|
|
@ -634,6 +658,7 @@
|
||||||
:key="column.prop"
|
:key="column.prop"
|
||||||
:label="column.label"
|
:label="column.label"
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
|
align="center"
|
||||||
:min-width="column.minWidth || 100"
|
:min-width="column.minWidth || 100"
|
||||||
>
|
>
|
||||||
<template v-slot="scope" v-if="column.prop === 'category'">
|
<template v-slot="scope" v-if="column.prop === 'category'">
|
||||||
|
|
@ -692,7 +717,10 @@ import {
|
||||||
getOwnEquipmentList,
|
getOwnEquipmentList,
|
||||||
getSharingEquipmentList,
|
getSharingEquipmentList,
|
||||||
getRentalEquipmentList,
|
getRentalEquipmentList,
|
||||||
saveInstanceSelection
|
saveInstanceSelection,
|
||||||
|
getUseProjectListAPI,
|
||||||
|
moveUp,
|
||||||
|
moveDown
|
||||||
} from '@/api/system/equipmentNew'
|
} from '@/api/system/equipmentNew'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -821,6 +849,7 @@ export default {
|
||||||
treeLoading: false,
|
treeLoading: false,
|
||||||
deptOptions: [],
|
deptOptions: [],
|
||||||
categoryList: [],
|
categoryList: [],
|
||||||
|
proList: [],
|
||||||
deptName: '',
|
deptName: '',
|
||||||
treeProps: { children: 'children', label: 'deptName' },
|
treeProps: { children: 'children', label: 'deptName' },
|
||||||
currentDeptId: null,
|
currentDeptId: null,
|
||||||
|
|
@ -905,14 +934,16 @@ export default {
|
||||||
specificationModel: ''
|
specificationModel: ''
|
||||||
},
|
},
|
||||||
sharing: {
|
sharing: {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
category: '',
|
||||||
deptName: ''
|
specificationModel: '',
|
||||||
|
orderNumber: ''
|
||||||
},
|
},
|
||||||
rental: {
|
rental: {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
type: '',
|
||||||
companyName: ''
|
proCode: '',
|
||||||
|
rentalCompany: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -1016,6 +1047,12 @@ export default {
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async getProList() {
|
||||||
|
const res = await getUseProjectListAPI()
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.proList = res.data
|
||||||
|
}
|
||||||
|
},
|
||||||
async getDeptTree() {
|
async getDeptTree() {
|
||||||
try {
|
try {
|
||||||
this.treeLoading = true
|
this.treeLoading = true
|
||||||
|
|
@ -1153,6 +1190,39 @@ export default {
|
||||||
this.initForm('main')
|
this.initForm('main')
|
||||||
this.dialogOpen = true
|
this.dialogOpen = true
|
||||||
},
|
},
|
||||||
|
async handleMoveUpClick(row) {
|
||||||
|
this.$loading({ text: '正在上移,请稍候...' })
|
||||||
|
try {
|
||||||
|
const res = await moveUp(row.id)
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success('上移成功')
|
||||||
|
await this.loadMainTabData(row.configType)
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message || '上移失败')
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('上移失败:', err)
|
||||||
|
} finally {
|
||||||
|
this.$loading().close()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async handleMoveDownClick(row) {
|
||||||
|
this.$loading({ text: '正在下移,请稍候...' })
|
||||||
|
try {
|
||||||
|
const res = await moveDown(row.id)
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.$message.success('下移成功')
|
||||||
|
await this.loadMainTabData(row.configType)
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message || '下移失败')
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('下移失败:', err)
|
||||||
|
} finally {
|
||||||
|
this.$loading().close()
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
async handleTableEdit(row) {
|
async handleTableEdit(row) {
|
||||||
if (!row?.id) return
|
if (!row?.id) return
|
||||||
const tab = this.mainTabList.find(item => item.name === row.configType)
|
const tab = this.mainTabList.find(item => item.name === row.configType)
|
||||||
|
|
@ -1486,9 +1556,10 @@ export default {
|
||||||
async handleInstanceSharingAdd() {
|
async handleInstanceSharingAdd() {
|
||||||
// 重置筛选条件和选中状态
|
// 重置筛选条件和选中状态
|
||||||
this.searchForm.sharing = {
|
this.searchForm.sharing = {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
category: '',
|
||||||
deptName: ''
|
specificationModel: '',
|
||||||
|
orderNumber: ''
|
||||||
}
|
}
|
||||||
this.selectedSharingRows = []
|
this.selectedSharingRows = []
|
||||||
// 初始化分页
|
// 初始化分页
|
||||||
|
|
@ -1526,9 +1597,10 @@ export default {
|
||||||
},
|
},
|
||||||
resetSharingSearch() {
|
resetSharingSearch() {
|
||||||
this.searchForm.sharing = {
|
this.searchForm.sharing = {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
category: '',
|
||||||
deptName: ''
|
specificationModel: '',
|
||||||
|
orderNumber: ''
|
||||||
}
|
}
|
||||||
this.tableData.sharing.pageNum = 1
|
this.tableData.sharing.pageNum = 1
|
||||||
this.loadSharingEquipmentData()
|
this.loadSharingEquipmentData()
|
||||||
|
|
@ -1581,15 +1653,19 @@ export default {
|
||||||
async handleInstanceRentalAdd() {
|
async handleInstanceRentalAdd() {
|
||||||
// 重置筛选条件和选中状态
|
// 重置筛选条件和选中状态
|
||||||
this.searchForm.rental = {
|
this.searchForm.rental = {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
type: '',
|
||||||
companyName: ''
|
proCode: '',
|
||||||
|
rentalCompany: ''
|
||||||
}
|
}
|
||||||
this.selectedRentalRows = []
|
this.selectedRentalRows = []
|
||||||
// 初始化分页
|
// 初始化分页
|
||||||
this.tableData.rental.pageNum = 1
|
this.tableData.rental.pageNum = 1
|
||||||
// 加载数据并打开弹窗
|
// 加载数据并打开弹窗
|
||||||
await this.loadRentalEquipmentData()
|
await this.loadRentalEquipmentData()
|
||||||
|
await this.getCategoryList()
|
||||||
|
await this.getProList()
|
||||||
|
this.categoryList = this.categoryList.filter(item => item.type != 1)
|
||||||
this.rentalOpen = true
|
this.rentalOpen = true
|
||||||
},
|
},
|
||||||
async loadRentalEquipmentData() {
|
async loadRentalEquipmentData() {
|
||||||
|
|
@ -1621,9 +1697,10 @@ export default {
|
||||||
},
|
},
|
||||||
resetRentalSearch() {
|
resetRentalSearch() {
|
||||||
this.searchForm.rental = {
|
this.searchForm.rental = {
|
||||||
equipmentName: '',
|
name: '',
|
||||||
equipmentType: '',
|
type: '',
|
||||||
companyName: ''
|
proCode: '',
|
||||||
|
rentalCompany: ''
|
||||||
}
|
}
|
||||||
this.tableData.rental.pageNum = 1
|
this.tableData.rental.pageNum = 1
|
||||||
this.loadRentalEquipmentData()
|
this.loadRentalEquipmentData()
|
||||||
|
|
|
||||||
|
|
@ -34,10 +34,12 @@
|
||||||
align="center"
|
align="center"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column label="操作" align="center" width="200">
|
<el-table-column label="操作" align="center" width="250">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="handleRelateClick(scope.row)">关联</el-button>
|
<el-button type="text" @click="handleRelateClick(scope.row)">关联</el-button>
|
||||||
<el-button type="text" @click="handleEditClick(scope.row)">编辑</el-button>
|
<el-button type="text" @click="handleEditClick(scope.row)">编辑</el-button>
|
||||||
|
<el-button type="text" @click="handleMoveUpClick(scope.row)">上移</el-button>
|
||||||
|
<el-button type="text" @click="handleMoveDownClick(scope.row)">下移</el-button>
|
||||||
<el-button type="text" text-color="danger" @click="handleDeleteClick(scope.row)">删除</el-button>
|
<el-button type="text" text-color="danger" @click="handleDeleteClick(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -105,6 +107,12 @@ export default {
|
||||||
handleEditClick(row) {
|
handleEditClick(row) {
|
||||||
this.$emit('edit', row)
|
this.$emit('edit', row)
|
||||||
},
|
},
|
||||||
|
handleMoveUpClick(row) {
|
||||||
|
this.$emit('moveUp', row)
|
||||||
|
},
|
||||||
|
handleMoveDownClick(row) {
|
||||||
|
this.$emit('moveDown', row)
|
||||||
|
},
|
||||||
// 触发删除事件(无修改)
|
// 触发删除事件(无修改)
|
||||||
handleDeleteClick(row) {
|
handleDeleteClick(row) {
|
||||||
this.$emit('delete', row)
|
this.$emit('delete', row)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue