代码提交
This commit is contained in:
parent
307997e527
commit
8c8d127590
|
|
@ -220,7 +220,7 @@ export default {
|
|||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
name: '',
|
||||
status: '2',
|
||||
status: '5',
|
||||
companyId: '',
|
||||
proId: ''
|
||||
},
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
filterable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option v-for="item in propertyUnitList" :key="item.id" :label="item.label" :value="item.id" />
|
||||
<el-option v-for="item in propertyUnitList" :key="item.id" :label="item.label" :value="item.id"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="使用项目:" prop="proCode">
|
||||
|
|
@ -27,26 +27,26 @@
|
|||
v-model="outForm.proCode"
|
||||
@change="onChangeProCode"
|
||||
>
|
||||
<el-option :key="item.proCode" :label="item.proName" :value="item.proCode" v-for="item in useProjectList" />
|
||||
<el-option :key="item.proCode" :label="item.proName" :value="item.proCode" v-for="item in useProjectList"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目类型:" prop="proType">
|
||||
<el-input style="width: 240px" disabled v-model="proTypeName" />
|
||||
<el-input style="width: 240px" disabled v-model="proTypeName"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级:" prop="voltageLevel">
|
||||
<el-input style="width: 240px" disabled v-model="voltageLevel" />
|
||||
<el-input style="width: 240px" disabled v-model="voltageLevel"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目所在省:" prop="proProvince">
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proProvince" />
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proProvince"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目所在市:" prop="proCity">
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proCity" />
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proCity"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目所在区/县:" prop="proCounty">
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proCounty" />
|
||||
<el-input style="width: 240px" disabled v-model="outForm.proCounty"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址:" prop="proLocation">
|
||||
<el-input v-model="outForm.proLocation" placeholder="请输入详细地址" clearable style="width: 240px" />
|
||||
<el-input v-model="outForm.proLocation" placeholder="请输入详细地址" clearable style="width: 240px"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -56,12 +56,12 @@
|
|||
<el-col :span="12"><span style="font-weight: 800">装备退库列表</span></el-col>
|
||||
<el-col :span="12" style="text-align: end">
|
||||
<el-button size="mini" type="primary" icon="el-icon-plus" @click="onHandleAddEquipment">添加装备</el-button>
|
||||
<el-button size="mini" type="primary" @click="onHandleSubmit"> 确定退库 </el-button>
|
||||
<el-button size="mini" type="primary" @click="onHandleSubmit"> 确定退库</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table :data="selectedEquipment" border stripe>
|
||||
<el-table-column label="序号" type="index" align="center" width="55" />
|
||||
<el-table-column prop="name" label="装备名称" align="center" />
|
||||
<el-table-column label="序号" type="index" align="center" width="55"/>
|
||||
<el-table-column prop="name" label="装备名称" align="center"/>
|
||||
<el-table-column prop="devCategory" label="装备类目" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<span>
|
||||
|
|
@ -70,8 +70,8 @@
|
|||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="specificationModel" label="规格型号" align="center" />
|
||||
<el-table-column prop="code" label="装备编码" align="center" />
|
||||
<el-table-column prop="specificationModel" label="规格型号" align="center"/>
|
||||
<el-table-column prop="code" label="装备编码" align="center"/>
|
||||
<el-table-column label="入库数量" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<!-- <el-input-number
|
||||
|
|
@ -111,8 +111,8 @@
|
|||
<el-table-column label="是否维修" align="center">
|
||||
<template slot-scope="{ row }">
|
||||
<el-select v-model="row.changeStatus" placeholder="请选择是否维修">
|
||||
<el-option label="是" value="5" />
|
||||
<el-option label="否" value="1" />
|
||||
<el-option label="否" value="1"/>
|
||||
<el-option label="是" value="5"/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
<el-form-item>
|
||||
<el-button size="mini" type="primary" @click="onHandleAddEquipmentQuery">查询</el-button>
|
||||
<el-button size="mini" plain @click="onHandleAddEquipmentReset">重置</el-button>
|
||||
<el-button size="mini" type="primary" @click="onHandleAddEquipmentConfirm"> 确定添加 </el-button>
|
||||
<el-button size="mini" type="primary" @click="onHandleAddEquipmentConfirm"> 确定添加</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -155,23 +155,22 @@
|
|||
ref="equipmentTable"
|
||||
:row-key="(row) => row.devId"
|
||||
>
|
||||
<el-table-column label="序号" type="index" align="center" width="55" />
|
||||
<el-table-column width="55" align="center" type="selection" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="propertyUnit" label="公司名称" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="name" label="装备名称" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="specificationModel" label="装备型号" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="code" label="装备编号" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="unit" label="计数单位" align="center" />
|
||||
<el-table-column label="序号" type="index" align="center" width="55"/>
|
||||
<el-table-column width="55" align="center" type="selection"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="propertyUnit" label="公司名称" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="name" label="装备名称" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="specificationModel" label="装备型号" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="code" label="装备编号" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="unit" label="计数单位" align="center"/>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 1" size="mini">在库</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2 || scope.row.status == 3" size="mini"> 在用 </el-tag>
|
||||
<el-tag v-if="scope.row.status == 5" size="mini"> 维修 </el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" size="mini">自用</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" size="mini"> 共享</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="propertyUnit" label="产权单位" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="originalValue" label="资产原值(元)" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="productDate" label="出厂日期" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="propertyUnit" label="产权单位" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="originalValue" label="资产原值(元)" align="center"/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="productDate" label="出厂日期" align="center"/>
|
||||
<el-table-column
|
||||
width="160"
|
||||
show-overflow-tooltip
|
||||
|
|
@ -179,7 +178,7 @@
|
|||
label="最大使用年限"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="usingProject" label="使用项目" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="usingProject" label="使用项目" align="center"/>
|
||||
<el-table-column
|
||||
width="160"
|
||||
show-overflow-tooltip
|
||||
|
|
@ -187,7 +186,7 @@
|
|||
label="下次检验日期"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column width="160" show-overflow-tooltip prop="manufacturer" label="生产厂商" align="center" />
|
||||
<el-table-column width="160" show-overflow-tooltip prop="manufacturer" label="生产厂商" align="center"/>
|
||||
<template v-for="item in tableColumns">
|
||||
<!-- 特征项列 -->
|
||||
<el-table-column :key="`item-${item}`" align="center" show-overflow-tooltip :label="`特征项${item}`">
|
||||
|
|
@ -230,7 +229,7 @@ import {
|
|||
getMaxFeatureAPI,
|
||||
getUseProjectListAPI,
|
||||
getVoltageListAPI,
|
||||
addProjectOutAPI,
|
||||
addProjectOutAPI
|
||||
} from '@/api/EquipmentLedger/equ-out'
|
||||
import { getDeviceListAPI } from '@/api/EquipmentLedger/index.js'
|
||||
import { deptTreeSelect } from '@/api/system/user'
|
||||
|
|
@ -257,7 +256,7 @@ export default {
|
|||
proCity: '', // 项目所在市
|
||||
proCounty: '', // 项目所在区/县
|
||||
proLocation: '', // 详细地址
|
||||
propertyUnitId: '', // 属性单位ID
|
||||
propertyUnitId: '' // 属性单位ID
|
||||
},
|
||||
// 入库表单规则
|
||||
outFormRules: {
|
||||
|
|
@ -269,7 +268,7 @@ export default {
|
|||
proProvince: [{ required: true, message: '请选择项目所在省', trigger: 'change' }],
|
||||
proCity: [{ required: true, message: '请选择项目所在市', trigger: 'change' }],
|
||||
proCounty: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
|
||||
proLocation: [{ required: true, message: '请选择详细地址', trigger: 'change' }],
|
||||
proLocation: [{ required: true, message: '请选择详细地址', trigger: 'change' }]
|
||||
},
|
||||
equipmentList: [],
|
||||
propertyUnitList: [], // 产权单位
|
||||
|
|
@ -286,7 +285,7 @@ export default {
|
|||
devName: '',
|
||||
status: '2',
|
||||
companyId: '',
|
||||
proId: '',
|
||||
proId: ''
|
||||
},
|
||||
// 可选择的变更设备列表
|
||||
addEquipmentList: [],
|
||||
|
|
@ -295,7 +294,7 @@ export default {
|
|||
useProjectList: [], // 使用项目下拉选
|
||||
voltageList: [], // 电压等级下拉选
|
||||
proTypeName: '', // 项目类型名称
|
||||
voltageLevel: '',
|
||||
voltageLevel: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -394,7 +393,7 @@ export default {
|
|||
devName: '',
|
||||
status: '2',
|
||||
companyId: '',
|
||||
proId: this.addEquipmentQueryParams.proId || '', // 保留项目ID
|
||||
proId: this.addEquipmentQueryParams.proId || '' // 保留项目ID
|
||||
}
|
||||
this.getSelectEquipmentList()
|
||||
},
|
||||
|
|
@ -432,7 +431,7 @@ export default {
|
|||
return
|
||||
}
|
||||
|
||||
this.$refs.outFormRef.validate(async (valid) => {
|
||||
this.$refs.outFormRef.validate(async(valid) => {
|
||||
if (valid) {
|
||||
if (this.selectedEquipment.length === 0) {
|
||||
this.$modal.msgError('请至少添加一个装备')
|
||||
|
|
@ -445,7 +444,7 @@ export default {
|
|||
return {
|
||||
devId: item.maId,
|
||||
useTime: item.useTime,
|
||||
changeStatus: item.changeStatus,
|
||||
changeStatus: item.changeStatus
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -457,7 +456,7 @@ export default {
|
|||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess('状态变更成功')
|
||||
this.$router.push({
|
||||
path: '/equipment/equipment-ledger',
|
||||
path: '/equipment/equipment-ledger'
|
||||
})
|
||||
} else {
|
||||
this.$modal.msgError(res.msg)
|
||||
|
|
@ -514,7 +513,7 @@ export default {
|
|||
this.currentDialogSelected = selection.map((item) => ({
|
||||
...item,
|
||||
useTime: '',
|
||||
validationError: {},
|
||||
validationError: {}
|
||||
}))
|
||||
|
||||
// 更新选中ID集合
|
||||
|
|
@ -533,14 +532,14 @@ export default {
|
|||
|
||||
// 过滤掉已添加的装备,避免重复
|
||||
const newItems = this.currentDialogSelected.filter(
|
||||
(newItem) => !this.selectedEquipment.some((existing) => existing.devId === newItem.devId),
|
||||
(newItem) => !this.selectedEquipment.some((existing) => existing.devId === newItem.devId)
|
||||
)
|
||||
|
||||
if (newItems.length > 0) {
|
||||
this.selectedEquipment = [...this.selectedEquipment, ...newItems]
|
||||
this.$modal.msgSuccess('成功添加 ' + newItems.length + ' 个装备')
|
||||
this.selectedEquipment.forEach((item) => {
|
||||
item.changeStatus = '1'
|
||||
this.$set(item, 'changeStatus', '1');
|
||||
})
|
||||
} else {
|
||||
this.$modal.msgError('所选装备已添加')
|
||||
|
|
@ -593,8 +592,8 @@ export default {
|
|||
// 确定变更
|
||||
onHandleSubmit() {
|
||||
this.submitForm()
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
@submit.native.prevent
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-form-item prop="name" style="margin-bottom: unset">
|
||||
<el-form-item prop="name" style="margin-bottom: unset">
|
||||
<el-input
|
||||
v-model="treeSearchKey"
|
||||
placeholder="搜索"
|
||||
|
|
@ -420,11 +420,11 @@
|
|||
<el-tag v-if="row.upDownStatus == 0" size="mini" type="danger">下架</el-tag>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="item.prop == 'status'">
|
||||
<el-tag v-if="row.status == 1" size="mini">在库</el-tag>
|
||||
<el-tag v-if="row.status == 1" type="success" size="mini">在库</el-tag>
|
||||
<el-tag v-if="row.status == 2" size="mini">自用</el-tag>
|
||||
<el-tag v-if="row.status == 3" size="mini">共享</el-tag>
|
||||
<el-tag v-if="row.status == 4" size="mini" type="info">退役</el-tag>
|
||||
<el-tag v-if="row.status == 5" size="mini" type="danger">维修</el-tag>
|
||||
<el-tag v-if="row.status == 4" size="mini" type="danger">退役</el-tag>
|
||||
<el-tag v-if="row.status == 5" size="mini" type="warning" >维修</el-tag>
|
||||
</template>
|
||||
<template v-slot="{ row }" v-else-if="item.prop == 'appearanceImages'">
|
||||
<span style="color: #00a288; cursor: pointer" @click="handleView(row, 1)">查看</span>
|
||||
|
|
@ -803,9 +803,9 @@ import {
|
|||
getDeviceDetailAPI,
|
||||
getManufacturerSelectApi
|
||||
} from '@/api/EquipmentLedger/index.js'
|
||||
import {firstLevel, secondAndThirdLevel} from '@/api/EquipmentEntryApply'
|
||||
import {getMaxFeatureAPI, getProvinceListAPI} from '@/api/EquipmentLedger/equ-out.js'
|
||||
import {deptTreeSelect} from '@/api/system/user'
|
||||
import { firstLevel, secondAndThirdLevel } from '@/api/EquipmentEntryApply'
|
||||
import { getMaxFeatureAPI, getProvinceListAPI } from '@/api/EquipmentLedger/equ-out.js'
|
||||
import { deptTreeSelect } from '@/api/system/user'
|
||||
|
||||
export default {
|
||||
name: 'EquipmentLedger',
|
||||
|
|
@ -836,14 +836,14 @@ export default {
|
|||
featureItem: undefined, // 特征项
|
||||
featureValue: undefined, // 特征值
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 10
|
||||
},
|
||||
// 查询表单验证规则
|
||||
queryRules: {},
|
||||
// 树形结构配置
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'name',
|
||||
label: 'name'
|
||||
},
|
||||
treeData: [],
|
||||
defaultExpandedKeys: [], // 存储默认展开的节点 key
|
||||
|
|
@ -854,51 +854,51 @@ export default {
|
|||
serviceLifeList: [], // 使用年限
|
||||
manufacturerList: [], // 生产厂家
|
||||
columns: [
|
||||
{key: 0, label: `所属省份`, prop: 'province', visible: true},
|
||||
{key: 1, label: `产权单位`, prop: 'propertyUnit', visible: true},
|
||||
{key: 2, label: `专业`, prop: 'major', visible: true},
|
||||
{key: 3, label: `工序`, prop: 'process', visible: true},
|
||||
{key: 4, label: `装备类目`, prop: 'devType', visible: true},
|
||||
{key: 5, label: `装备名称`, prop: 'name', visible: true},
|
||||
{key: 6, label: `规格型号`, prop: 'specificationModel', visible: true},
|
||||
{key: 7, label: `装备编码`, prop: 'code', visible: true},
|
||||
{key: 8, label: `装备状态`, prop: 'status', visible: true},
|
||||
{key: 44, label: `上下架状态`, prop: 'upDownStatus', visible: true},
|
||||
{key: 9, label: `使用年限`, prop: 'serviceLife', visible: true},
|
||||
{key: 10, label: `使用项目`, prop: 'usingProject', visible: true},
|
||||
{key: 11, label: `使用到期时间`, prop: 'expirationTime', visible: true},
|
||||
{key: 12, label: `使用次数`, prop: 'usageCount', visible: true},
|
||||
{key: 13, label: `维修次数`, prop: 'repairCount', visible: true},
|
||||
{key: 14, label: `装备原始编码`, prop: 'originalCode', visible: true},
|
||||
{key: 15, label: `计量单位`, prop: 'unit', visible: true},
|
||||
{key: 16, label: `生产厂家`, prop: 'manufacturer', visible: true},
|
||||
{key: 17, label: `出厂日期`, prop: 'productionDate', visible: true},
|
||||
{key: 18, label: `采购日期`, prop: 'purchaseDate', visible: true},
|
||||
{key: 19, label: `资产原值(元)`, prop: 'originalValue', visible: true},
|
||||
{key: 20, label: `最大使用年限(年)`, prop: 'maxServiceLifeYears', visible: true},
|
||||
{key: 21, label: `下次维保日期`, prop: 'nextMaintenanceDate', visible: true},
|
||||
{key: 22, label: `装备外观`, prop: 'appearanceImages', visible: true},
|
||||
{key: 23, label: `合格证`, prop: 'certificates', visible: true},
|
||||
{key: 24, label: `定期检验报告`, prop: 'inspectionReports', visible: true},
|
||||
{key: 25, label: `采购发票`, prop: 'purchaseInvoices', visible: true},
|
||||
{key: 26, label: `特征项1`, prop: 'featureItem1', visible: true},
|
||||
{key: 27, label: `特征值1`, prop: 'featureValue1', visible: true},
|
||||
{key: 28, label: `特征项2`, prop: 'featureItem2', visible: true},
|
||||
{key: 29, label: `特征值2`, prop: 'featureValue2', visible: true},
|
||||
{key: 30, label: `特征项3`, prop: 'featureItem3', visible: true},
|
||||
{key: 31, label: `特征值3`, prop: 'featureValue3', visible: true},
|
||||
{key: 32, label: `特征项4`, prop: 'featureItem4', visible: true},
|
||||
{key: 33, label: `特征值4`, prop: 'featureValue4', visible: true},
|
||||
{key: 34, label: `特征项5`, prop: 'featureItem5', visible: true},
|
||||
{key: 35, label: `特征值5`, prop: 'featureValue5', visible: true},
|
||||
{key: 36, label: `特征项6`, prop: 'featureItem6', visible: true},
|
||||
{key: 37, label: `特征值6`, prop: 'featureValue6', visible: true},
|
||||
{key: 38, label: `特征项7`, prop: 'featureItem7', visible: true},
|
||||
{key: 39, label: `特征值7`, prop: 'featureValue7', visible: true},
|
||||
{key: 40, label: `特征项8`, prop: 'featureItem8', visible: true},
|
||||
{key: 41, label: `特征值8`, prop: 'featureValue8', visible: true},
|
||||
{key: 42, label: `特征项9`, prop: 'featureItem9', visible: true},
|
||||
{key: 43, label: `特征值9`, prop: 'featureValue9', visible: true},
|
||||
{ key: 0, label: `所属省份`, prop: 'province', visible: true },
|
||||
{ key: 1, label: `产权单位`, prop: 'propertyUnit', visible: true },
|
||||
{ key: 2, label: `专业`, prop: 'major', visible: true },
|
||||
{ key: 3, label: `工序`, prop: 'process', visible: true },
|
||||
{ key: 4, label: `装备类目`, prop: 'devType', visible: true },
|
||||
{ key: 5, label: `装备名称`, prop: 'name', visible: true },
|
||||
{ key: 6, label: `规格型号`, prop: 'specificationModel', visible: true },
|
||||
{ key: 7, label: `装备编码`, prop: 'code', visible: true },
|
||||
{ key: 8, label: `装备状态`, prop: 'status', visible: true },
|
||||
{ key: 44, label: `上下架状态`, prop: 'upDownStatus', visible: true },
|
||||
{ key: 9, label: `使用年限`, prop: 'serviceLife', visible: true },
|
||||
{ key: 10, label: `使用项目`, prop: 'usingProject', visible: true },
|
||||
{ key: 11, label: `使用到期时间`, prop: 'expirationTime', visible: true },
|
||||
{ key: 12, label: `使用次数`, prop: 'usageCount', visible: true },
|
||||
{ key: 13, label: `维修次数`, prop: 'repairCount', visible: true },
|
||||
{ key: 14, label: `装备原始编码`, prop: 'originalCode', visible: true },
|
||||
{ key: 15, label: `计量单位`, prop: 'unit', visible: true },
|
||||
{ key: 16, label: `生产厂家`, prop: 'manufacturer', visible: true },
|
||||
{ key: 17, label: `出厂日期`, prop: 'productionDate', visible: true },
|
||||
{ key: 18, label: `采购日期`, prop: 'purchaseDate', visible: true },
|
||||
{ key: 19, label: `资产原值(元)`, prop: 'originalValue', visible: true },
|
||||
{ key: 20, label: `最大使用年限(年)`, prop: 'maxServiceLifeYears', visible: true },
|
||||
{ key: 21, label: `下次维保日期`, prop: 'nextMaintenanceDate', visible: true },
|
||||
{ key: 22, label: `装备外观`, prop: 'appearanceImages', visible: true },
|
||||
{ key: 23, label: `合格证`, prop: 'certificates', visible: true },
|
||||
{ key: 24, label: `定期检验报告`, prop: 'inspectionReports', visible: true },
|
||||
{ key: 25, label: `采购发票`, prop: 'purchaseInvoices', visible: true },
|
||||
{ key: 26, label: `特征项1`, prop: 'featureItem1', visible: true },
|
||||
{ key: 27, label: `特征值1`, prop: 'featureValue1', visible: true },
|
||||
{ key: 28, label: `特征项2`, prop: 'featureItem2', visible: true },
|
||||
{ key: 29, label: `特征值2`, prop: 'featureValue2', visible: true },
|
||||
{ key: 30, label: `特征项3`, prop: 'featureItem3', visible: true },
|
||||
{ key: 31, label: `特征值3`, prop: 'featureValue3', visible: true },
|
||||
{ key: 32, label: `特征项4`, prop: 'featureItem4', visible: true },
|
||||
{ key: 33, label: `特征值4`, prop: 'featureValue4', visible: true },
|
||||
{ key: 34, label: `特征项5`, prop: 'featureItem5', visible: true },
|
||||
{ key: 35, label: `特征值5`, prop: 'featureValue5', visible: true },
|
||||
{ key: 36, label: `特征项6`, prop: 'featureItem6', visible: true },
|
||||
{ key: 37, label: `特征值6`, prop: 'featureValue6', visible: true },
|
||||
{ key: 38, label: `特征项7`, prop: 'featureItem7', visible: true },
|
||||
{ key: 39, label: `特征值7`, prop: 'featureValue7', visible: true },
|
||||
{ key: 40, label: `特征项8`, prop: 'featureItem8', visible: true },
|
||||
{ key: 41, label: `特征值8`, prop: 'featureValue8', visible: true },
|
||||
{ key: 42, label: `特征项9`, prop: 'featureItem9', visible: true },
|
||||
{ key: 43, label: `特征值9`, prop: 'featureValue9', visible: true }
|
||||
],
|
||||
tableData: [],
|
||||
tableColumns: 0,
|
||||
|
|
@ -942,18 +942,18 @@ export default {
|
|||
personPhone: '',
|
||||
nextCheckTime: '',
|
||||
brand: '',
|
||||
propertyVoList: [],
|
||||
propertyVoList: []
|
||||
},
|
||||
// 表单验证规则
|
||||
formRules: {
|
||||
name: [{required: true, message: '请输入装备名称', trigger: 'blur'}],
|
||||
code: [{required: true, message: '请输入装备编号', trigger: 'blur'}],
|
||||
changeStatus: [{required: true, message: '请选择装备状态', trigger: 'change'}],
|
||||
name: [{ required: true, message: '请输入装备名称', trigger: 'blur' }],
|
||||
code: [{ required: true, message: '请输入装备编号', trigger: 'blur' }],
|
||||
changeStatus: [{ required: true, message: '请选择装备状态', trigger: 'change' }]
|
||||
},
|
||||
maxFeatureCount: 5, // 最大特征项数量限制
|
||||
dialogVisible: false,
|
||||
dialogTitle: '',
|
||||
dialogList: [],
|
||||
dialogList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -1017,7 +1017,7 @@ export default {
|
|||
this.processList = []
|
||||
this.queryParams.process = ''
|
||||
} else {
|
||||
secondAndThirdLevel({firstLevelId: item}).then((res) => {
|
||||
secondAndThirdLevel({ firstLevelId: item }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.processList = this.convertToSubTree(res.data)
|
||||
}
|
||||
|
|
@ -1032,7 +1032,7 @@ export default {
|
|||
list.forEach((item) => {
|
||||
map[item.value] = {
|
||||
value: item.value.toString(),
|
||||
label: item.label,
|
||||
label: item.label
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -1132,7 +1132,7 @@ export default {
|
|||
try {
|
||||
let fileName = `装备台账_${new Date().getTime()}.xLsx`
|
||||
let url = '/material-mall/device/export'
|
||||
const params = {...this.queryParams}
|
||||
const params = { ...this.queryParams }
|
||||
console.log('🚀 ~ 导出 ~ params:', params)
|
||||
this.download(url, params, fileName)
|
||||
} catch (error) {
|
||||
|
|
@ -1140,20 +1140,19 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 获取左侧树形结构数据
|
||||
*/
|
||||
async getDeviceTree() {
|
||||
try {
|
||||
this.treeLoading = true;
|
||||
const res = await getDeviceTreeAPI();
|
||||
this.treeData = res.data ? [res.data] : [];
|
||||
this.treeLoading = true
|
||||
const res = await getDeviceTreeAPI()
|
||||
this.treeData = res.data ? [res.data] : []
|
||||
} catch (error) {
|
||||
this.$message.error('获取树形结构失败:' + (error.message || '未知错误'));
|
||||
console.error(error);
|
||||
this.$message.error('获取树形结构失败:' + (error.message || '未知错误'))
|
||||
console.error(error)
|
||||
} finally {
|
||||
this.treeLoading = false;
|
||||
this.treeLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1161,13 +1160,13 @@ export default {
|
|||
* 收集第一级和第二级节点的ID,第三级默认不展开
|
||||
*/
|
||||
collectFirstAndSecondLevelKeys(nodes) {
|
||||
if (!nodes || !nodes.length) return;
|
||||
if (!nodes || !nodes.length) return
|
||||
|
||||
nodes.forEach(firstLevelNode => {
|
||||
// 展开第一级节点
|
||||
if (firstLevelNode.id) {
|
||||
this.defaultExpandedKeys.push(firstLevelNode.id);
|
||||
console.log(`展开第一级节点: ${firstLevelNode.name}, ID: ${firstLevelNode.id}`);
|
||||
this.defaultExpandedKeys.push(firstLevelNode.id)
|
||||
console.log(`展开第一级节点: ${firstLevelNode.name}, ID: ${firstLevelNode.id}`)
|
||||
}
|
||||
|
||||
// 检查是否有子节点(第二级节点)
|
||||
|
|
@ -1175,16 +1174,15 @@ export default {
|
|||
// 遍历所有第二级节点
|
||||
firstLevelNode.children.forEach(secondLevelNode => {
|
||||
if (secondLevelNode.id) {
|
||||
this.defaultExpandedKeys.push(secondLevelNode.id);
|
||||
console.log(`展开第二级节点: ${secondLevelNode.name}, ID: ${secondLevelNode.id}`);
|
||||
this.defaultExpandedKeys.push(secondLevelNode.id)
|
||||
console.log(`展开第二级节点: ${secondLevelNode.name}, ID: ${secondLevelNode.id}`)
|
||||
// 第三级及更深层级默认不展开(保持折叠状态)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 左侧树查询:匹配节点显示自身及下一级,但默认只显示到第二级
|
||||
*/
|
||||
|
|
@ -1192,41 +1190,41 @@ export default {
|
|||
if (!this.treeSearchKey.trim) return
|
||||
try {
|
||||
// 1. 获取输入的查询关键词(去空格)
|
||||
const searchKey = this.treeSearchKey ? this.treeSearchKey.trim() : '';
|
||||
const searchKey = this.treeSearchKey ? this.treeSearchKey.trim() : ''
|
||||
|
||||
// 如果没有搜索关键词,则重置为原始树(显示到第二级)
|
||||
if (!searchKey) {
|
||||
await this.resetTreeSearch();
|
||||
return;
|
||||
await this.resetTreeSearch()
|
||||
return
|
||||
}
|
||||
|
||||
// 2. 重新获取原始树形数据
|
||||
this.treeLoading = true;
|
||||
const res = await getDeviceTreeAPI();
|
||||
const originalTreeData = res.data ? [res.data] : [];
|
||||
this.treeLoading = true
|
||||
const res = await getDeviceTreeAPI()
|
||||
const originalTreeData = res.data ? [res.data] : []
|
||||
|
||||
// 3. 筛选逻辑:匹配节点显示自身及下一级
|
||||
const filteredTreeData = this.filterTreeWithNextLevel(originalTreeData, searchKey);
|
||||
const filteredTreeData = this.filterTreeWithNextLevel(originalTreeData, searchKey)
|
||||
|
||||
// 4. 收集所有匹配节点的ID,用于默认展开
|
||||
const expandedIds = [];
|
||||
this.collectMatchedNodeIds(filteredTreeData, searchKey, expandedIds);
|
||||
const expandedIds = []
|
||||
this.collectMatchedNodeIds(filteredTreeData, searchKey, expandedIds)
|
||||
|
||||
// 5. 更新树形数据和默认展开节点
|
||||
this.treeData = filteredTreeData;
|
||||
this.defaultExpandedKeys = expandedIds;
|
||||
this.treeData = filteredTreeData
|
||||
this.defaultExpandedKeys = expandedIds
|
||||
|
||||
// 6. 无匹配结果时提示
|
||||
if (filteredTreeData.length === 0 || this.isTreeEmpty(filteredTreeData)) {
|
||||
/* this.$message.info('未找到匹配的类型分支'); */
|
||||
/* this.$message.info('未找到匹配的类型分支'); */
|
||||
} else {
|
||||
// this.$message.success(`找到 ${expandedIds.length} 个匹配项`);
|
||||
}
|
||||
} catch (error) {
|
||||
// this.$message.error('树形查询失败:' + (error.message || '未知错误'));
|
||||
console.error(error);
|
||||
console.error(error)
|
||||
} finally {
|
||||
this.treeLoading = false;
|
||||
this.treeLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1234,36 +1232,36 @@ export default {
|
|||
* 辅助方法:筛选节点并包含下一级
|
||||
*/
|
||||
filterTreeWithNextLevel(treeData, key) {
|
||||
if (!treeData || !treeData.length) return [];
|
||||
if (!treeData || !treeData.length) return []
|
||||
|
||||
return treeData
|
||||
.map(node => {
|
||||
// 深拷贝节点
|
||||
const newNode = {...node};
|
||||
const newNode = { ...node }
|
||||
|
||||
const isNodeMatch = key ? node.name.includes(key) : true;
|
||||
const isNodeMatch = key ? node.name.includes(key) : true
|
||||
|
||||
if (isNodeMatch) {
|
||||
// 匹配节点:保留所有直接子节点
|
||||
if (newNode.children && newNode.children.length) {
|
||||
// 保留第二级,但第三级及更深层级保持原样(默认不展开)
|
||||
newNode.children = [...newNode.children];
|
||||
newNode.children = [...newNode.children]
|
||||
}
|
||||
return newNode;
|
||||
return newNode
|
||||
} else {
|
||||
// 不匹配节点:检查子节点是否有匹配的
|
||||
if (newNode.children && newNode.children.length) {
|
||||
const filteredChildren = this.filterTreeWithNextLevel(newNode.children, key);
|
||||
const filteredChildren = this.filterTreeWithNextLevel(newNode.children, key)
|
||||
|
||||
if (filteredChildren.length > 0) {
|
||||
newNode.children = filteredChildren;
|
||||
return newNode;
|
||||
newNode.children = filteredChildren
|
||||
return newNode
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return null
|
||||
}
|
||||
})
|
||||
.filter(node => node !== null);
|
||||
.filter(node => node !== null)
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -1273,42 +1271,41 @@ export default {
|
|||
* @param {Array} expandedIds - 存储展开节点ID的数组
|
||||
*/
|
||||
collectMatchedNodeIds(treeData, key, expandedIds) {
|
||||
if (!treeData || !treeData.length) return;
|
||||
if (!treeData || !treeData.length) return
|
||||
|
||||
treeData.forEach(node => {
|
||||
// 若当前节点匹配关键词,记录其ID(用于展开)
|
||||
if (key ? node.name.includes(key) : true) {
|
||||
if (node.id) expandedIds.push(node.id);
|
||||
if (node.id) expandedIds.push(node.id)
|
||||
}
|
||||
|
||||
// 递归处理子级,确保深层子级的匹配节点也被收集
|
||||
if (node.children && node.children.length) {
|
||||
this.collectMatchedNodeIds(node.children, key, expandedIds);
|
||||
this.collectMatchedNodeIds(node.children, key, expandedIds)
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 辅助方法:检查树是否为空(没有任何有效节点)
|
||||
*/
|
||||
isTreeEmpty(treeData) {
|
||||
if (!treeData || !treeData.length) return true;
|
||||
if (!treeData || !treeData.length) return true
|
||||
|
||||
// 递归检查所有节点
|
||||
for (const node of treeData) {
|
||||
if (node && node.id) {
|
||||
return false; // 发现有效节点
|
||||
return false // 发现有效节点
|
||||
}
|
||||
if (node.children && node.children.length) {
|
||||
if (!this.isTreeEmpty(node.children)) {
|
||||
return false; // 子节点中有有效节点
|
||||
return false // 子节点中有有效节点
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return true
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 左侧树重置:仅恢复树形原始状态(不联动右侧列表)
|
||||
*/
|
||||
|
|
@ -1319,18 +1316,18 @@ export default {
|
|||
try {
|
||||
// 1. 清空左侧表单输入和查询参数
|
||||
if (this.$refs.queryFormLeft) {
|
||||
this.$refs.queryFormLeft.resetFields();
|
||||
this.$refs.queryFormLeft.resetFields()
|
||||
}
|
||||
this.treeSearchKey = ''; // 手动清空装备名称查询值
|
||||
this.queryParams.typeId = undefined; // 清空可能存在的节点ID缓存
|
||||
this.treeSearchKey = '' // 手动清空装备名称查询值
|
||||
this.queryParams.typeId = undefined // 清空可能存在的节点ID缓存
|
||||
|
||||
// 2. 恢复原始树形数据,默认显示到第二级
|
||||
this.treeLoading = true;
|
||||
const res = await getDeviceTreeAPI();
|
||||
this.treeData = res.data ? [res.data] : [];
|
||||
this.treeLoading = true
|
||||
const res = await getDeviceTreeAPI()
|
||||
this.treeData = res.data ? [res.data] : []
|
||||
|
||||
// 重置默认展开的节点ID数组
|
||||
this.defaultExpandedKeys = [];
|
||||
this.defaultExpandedKeys = []
|
||||
|
||||
// 只展开第一级和第二级节点
|
||||
// this.collectFirstAndSecondLevelKeys(this.treeData);
|
||||
|
|
@ -1339,13 +1336,12 @@ export default {
|
|||
// this.$message.success('树形查询已重置');
|
||||
} catch (error) {
|
||||
// this.$message.error('树形重置失败:' + (error.message || '未知错误'));
|
||||
console.error(error);
|
||||
console.error(error)
|
||||
} finally {
|
||||
this.treeLoading = false;
|
||||
this.treeLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 获取右侧列表数据
|
||||
*/
|
||||
|
|
@ -1382,7 +1378,7 @@ export default {
|
|||
async onHandlePreview(row) {
|
||||
// this.formData = row
|
||||
// this.previewDialogVisible = true
|
||||
this.$router.push({path: '/equipment/details', query: {id: row.maId}})
|
||||
this.$router.push({ path: '/equipment/details', query: { id: row.maId } })
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -1435,7 +1431,7 @@ export default {
|
|||
personPhone: '',
|
||||
nextCheckTime: '',
|
||||
brand: '',
|
||||
propertyVoList: [],
|
||||
propertyVoList: []
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1455,7 +1451,7 @@ export default {
|
|||
|
||||
this.formData.propertyVoList.push({
|
||||
propertyName: '',
|
||||
propertyValue: '',
|
||||
propertyValue: ''
|
||||
})
|
||||
},
|
||||
|
||||
|
|
@ -1468,7 +1464,7 @@ export default {
|
|||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
center: true,
|
||||
showCancelButton: this.formData.propertyVoList.length > 1, // 至少保留一个特征项
|
||||
showCancelButton: this.formData.propertyVoList.length > 1 // 至少保留一个特征项
|
||||
})
|
||||
.then(() => {
|
||||
this.formData.propertyVoList.splice(index, 1)
|
||||
|
|
@ -1482,7 +1478,7 @@ export default {
|
|||
* 提交编辑表单
|
||||
*/
|
||||
async submitEditForm() {
|
||||
this.$refs.editForm.validate(async (valid) => {
|
||||
this.$refs.editForm.validate(async(valid) => {
|
||||
if (valid) {
|
||||
try {
|
||||
const res = await updateDeviceAPI(this.formData)
|
||||
|
|
@ -1508,8 +1504,8 @@ export default {
|
|||
this.$confirm('确定要删除该装备吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(async () => {
|
||||
type: 'warning'
|
||||
}).then(async() => {
|
||||
try {
|
||||
const res = await delDevice(row.maId)
|
||||
if (res.code === 200) {
|
||||
|
|
@ -1536,7 +1532,7 @@ export default {
|
|||
try {
|
||||
const res = await updateDeviceUpDownAPI({
|
||||
devIds: this.selectedRows.map((item) => item.maId).join(','),
|
||||
status: 1,
|
||||
status: 1
|
||||
})
|
||||
this.selectedRows = []
|
||||
|
||||
|
|
@ -1564,7 +1560,7 @@ export default {
|
|||
try {
|
||||
const res = await updateDeviceUpDownAPI({
|
||||
devIds: this.selectedRows.map((item) => item.maId).join(','),
|
||||
status: 0,
|
||||
status: 0
|
||||
})
|
||||
this.selectedRows = []
|
||||
|
||||
|
|
@ -1593,7 +1589,7 @@ export default {
|
|||
async getDeviceStatusCount() {
|
||||
try {
|
||||
const res = await getDeviceStatusCountAPI()
|
||||
const {inStock, ownUse, share, underRepair} = res.data || {}
|
||||
const { inStock, ownUse, share, underRepair } = res.data || {}
|
||||
this.inStock = inStock || 0
|
||||
this.ownUse = ownUse || 0
|
||||
this.share = share || 0
|
||||
|
|
@ -1635,7 +1631,7 @@ export default {
|
|||
handleFile(row) {
|
||||
// 打开文件预览
|
||||
window.open(row.fileUrl, '_blank')
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
async created() {
|
||||
|
|
@ -1648,14 +1644,12 @@ export default {
|
|||
// 最后加载列表数据
|
||||
await this.getDeviceList()
|
||||
this.initDefaultExpandedKeys()
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<style scoped lang="scss">
|
||||
.app-container {
|
||||
padding: 20px;
|
||||
|
|
@ -1964,13 +1958,13 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover>td.el-table__cell {
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-col-1 {
|
||||
width: 1.5% !important;
|
||||
width: 1.5% !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
<el-tag v-if="row.changeStatus == 5" size="mini" type="danger">维修</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="status" label="流转后状态">
|
||||
<!-- <el-table-column align="center" show-overflow-tooltip prop="status" label="流转后状态">
|
||||
<template slot-scope="{ row }">
|
||||
<el-tag v-if="row.status == 1" size="mini">在库</el-tag>
|
||||
<el-tag v-if="row.status == 2" size="mini">自用</el-tag>
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
<el-tag v-if="row.status == 4" size="mini" type="info">退役</el-tag>
|
||||
<el-tag v-if="row.status == 5" size="mini" type="danger">维修</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
<el-table-column align="center" show-overflow-tooltip prop="useUint" label="使用单位"/>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="proName" label="使用项目"/>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="proLocation" label="地址"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<!-- 装备流转记录 -->
|
||||
<div class="app-container">
|
||||
|
||||
|
||||
<el-form ref="queryForm" size="small" inline label-width="auto" :model="queryParams">
|
||||
<el-card class="search-box">
|
||||
<el-col :span="12">
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
</el-col>
|
||||
</el-card>
|
||||
</el-form>
|
||||
|
||||
|
||||
|
||||
<el-card class="content-box">
|
||||
<el-row>
|
||||
|
|
@ -63,11 +63,10 @@
|
|||
</el-table-column>-->
|
||||
<el-table-column align="center" show-overflow-tooltip prop="changeStatus" label="流转后状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 1" size="mini">在库</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2 || scope.row.status == 3" size="mini">
|
||||
在用
|
||||
<el-tag v-if="scope.row.status == 2" size="mini">自用</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" size="mini">
|
||||
共享
|
||||
</el-tag>
|
||||
<el-tag v-if="scope.row.status == 5" size="mini"> 维修</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" show-overflow-tooltip prop="useUint" label="需求单位"/>
|
||||
|
|
@ -100,7 +99,7 @@
|
|||
<el-button size="mini" type="primary" @click="onHandlePrint">打印</el-button>
|
||||
<el-button size="mini" type="primary" @click="onHandleClose">关闭</el-button>
|
||||
</el-row>
|
||||
|
||||
|
||||
<vue-easy-print ref="recordPrintRef" tableShow style="width: 100%">
|
||||
<h2 style="text-align: center;font-size: 28px;">出库记录单</h2>
|
||||
<el-row class="record-row">
|
||||
|
|
@ -369,11 +368,11 @@ export default {
|
|||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
|
||||
|
||||
::v-deep .el-table {
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
// 启用斑马纹
|
||||
&.el-table--striped .el-table__body {
|
||||
tr.el-table__row--striped td {
|
||||
|
|
@ -397,11 +396,11 @@ export default {
|
|||
.el-table__body {
|
||||
tr {
|
||||
transition: all 0.2s ease;
|
||||
|
||||
|
||||
&:hover {
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
|
||||
td {
|
||||
padding: 12px 8px;
|
||||
font-size: 13px;
|
||||
|
|
@ -413,12 +412,12 @@ export default {
|
|||
&.el-table--striped .el-table__body tr.el-table__row:hover>td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
}
|
||||
|
||||
|
||||
// 表格边框优化
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,119 +10,114 @@
|
|||
label-width="auto" size="small"
|
||||
>
|
||||
<el-card class="search-box">
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="装备编码" prop="deviceCode">
|
||||
<el-input
|
||||
v-model.trim="searchParams.deviceCode"
|
||||
placeholder="请输入装备编码"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6" >
|
||||
<el-form-item label="质检次数" prop="minNum">
|
||||
<el-input
|
||||
v-model="searchParams.minNum"
|
||||
placeholder="质检次数"
|
||||
inputmode="numeric"
|
||||
size="small"
|
||||
style="width: 100px"
|
||||
/> -
|
||||
<el-input
|
||||
v-model.trim="searchParams.maxNum"
|
||||
placeholder="质检次数"
|
||||
inputmode="numeric"
|
||||
size="small"
|
||||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-form-item label="质检日期" prop="leaseStatus">
|
||||
<el-date-picker
|
||||
v-model="qcTime"
|
||||
type="daterange"
|
||||
placeholder="最新质检日期"
|
||||
range-separator="-"
|
||||
value-format="yyyy-MM-dd"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-form-item label="更新日期" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="createTime"
|
||||
type="daterange"
|
||||
placeholder="更新日期"
|
||||
range-separator="-"
|
||||
value-format="yyyy-MM-dd"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" style="text-align: right;">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" class="primary-lease" @click="onSearch">查询</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" class="primary-lease" @click="onReset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="装备编码" prop="deviceCode">
|
||||
<el-input
|
||||
v-model.trim="searchParams.deviceCode"
|
||||
placeholder="请输入装备编码"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="质检日期" prop="leaseStatus">
|
||||
<el-date-picker
|
||||
v-model="qcTime"
|
||||
type="daterange"
|
||||
placeholder="维保日期"
|
||||
range-separator="-"
|
||||
value-format="yyyy-MM-dd"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="更新日期" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="createTime"
|
||||
type="daterange"
|
||||
placeholder="更新日期"
|
||||
range-separator="-"
|
||||
value-format="yyyy-MM-dd"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" style="text-align: right;">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" class="primary-lease" @click="onSearch">查询
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" class="primary-lease" @click="onReset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-card>
|
||||
</el-form>
|
||||
<el-card class="content-box">
|
||||
<div class="table-container">
|
||||
<!-- 维保列表表格 -->
|
||||
<el-table
|
||||
:data="qualityLis"
|
||||
border
|
||||
stripe
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column label="序号" type="index" align="center" width="80"/>
|
||||
<el-table-column prop="deviceCode" label="装备编码" align="center"/>
|
||||
<el-table-column prop="deviceName" label="装备名称" align="center"/>
|
||||
<el-table-column prop="qcTime" label="最新质检日期" align="center"/>
|
||||
<el-table-column prop="createBy" label="创建人" align="center" width="120"/>
|
||||
<el-table-column prop="createTime" label="上传时间" align="center"/>
|
||||
<el-table-column prop="updateTime" label="更新时间" align="center"/>
|
||||
<el-table-column label="操作" align="center" width="280">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
@click="handleOpenAddDialog(row)"
|
||||
>
|
||||
新建
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
@click="handleOpenDetailDialog(row)"
|
||||
>
|
||||
装备质检记录
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="pagination-wrapper">
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
:total="total"
|
||||
:page.sync="searchParams.pageNum"
|
||||
:limit.sync="searchParams.pageSize"
|
||||
@pagination="getLeaseListData"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
<!-- 维保列表表格 -->
|
||||
<el-table
|
||||
:data="qualityLis"
|
||||
border
|
||||
stripe
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<el-table-column label="序号" type="index" align="center" width="80"/>
|
||||
<el-table-column prop="deviceName" label="装备名称" align="center"/>
|
||||
<el-table-column prop="itemTypeModel" label="装备型号" align="center"/>
|
||||
<el-table-column prop="deviceCode" label="装备编码" align="center"/>
|
||||
<el-table-column prop="createBy" label="维保人" align="center" width="120"/>
|
||||
<el-table-column prop="nextCheckTime" label="下次维保日期" align="center"/>
|
||||
<el-table-column prop="phonenumber" label="维保人联系方式" align="center"/>
|
||||
<el-table-column prop="updateTime" label="更新时间" align="center"/>
|
||||
<el-table-column prop="alert" label="维保告警" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.alert == '正常'" size="mini">正常</el-tag>
|
||||
<el-tag v-if="scope.row.alert == '已超期'" type="danger" size="mini">
|
||||
已超期
|
||||
</el-tag>
|
||||
<el-tag v-if="scope.row.alert == '一月内到期'" type="warning" size="mini">
|
||||
一月内维保到期
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="280">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
@click="handleOpenAddDialog(row)"
|
||||
>
|
||||
新建
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
@click="handleOpenDetailDialog(row)"
|
||||
>
|
||||
装备质检记录
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="pagination-wrapper">
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
:total="total"
|
||||
:page.sync="searchParams.pageNum"
|
||||
:limit.sync="searchParams.pageSize"
|
||||
@pagination="getLeaseListData"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
<!-- 新增/详情对话框 -->
|
||||
<el-dialog
|
||||
:title="dialogTitle"
|
||||
|
|
@ -189,20 +184,20 @@
|
|||
<el-upload
|
||||
:action="uploadUrl"
|
||||
:headers="{ Authorization: getToken() }"
|
||||
:file-list="fileList"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleUploadError"
|
||||
:on-remove="handleRemove"
|
||||
:before-upload="beforeUpload"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
accept=".jpg,.png,.pdf,.doc,.docx"
|
||||
list-type="picture-card"
|
||||
:file-list="fileList"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleUploadError"
|
||||
:on-remove="handleRemove"
|
||||
:before-upload="beforeUpload"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
accept=".jpg,.png,.pdf,.doc,.docx"
|
||||
list-type="picture-card"
|
||||
>
|
||||
<i class="el-icon-plus" style="font-size: 48px; color: #aaa;"></i>
|
||||
<div slot="tip" class="el-upload__tip">
|
||||
支持格式:.jpg、.png、.pdf、.doc、.docx 单个文件大小不能超过10M
|
||||
</div>
|
||||
<i class="el-icon-plus" style="font-size: 48px; color: #aaa;"></i>
|
||||
<div slot="tip" class="el-upload__tip">
|
||||
支持格式:.jpg、.png、.pdf、.doc、.docx 单个文件大小不能超过10M
|
||||
</div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -272,7 +267,9 @@
|
|||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" class="primary-lease" @click="getLeaseListDataInDialog">查询</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" class="primary-lease" @click="getLeaseListDataInDialog">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh" class="primary-lease" @click="onResetInDialog">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -425,7 +422,7 @@ export default {
|
|||
qcUser: '',
|
||||
qcTime: '',
|
||||
nextCheckTime: '',
|
||||
fileInfoList: [], // 存储上传成功的文件信息
|
||||
fileInfoList: [] // 存储上传成功的文件信息
|
||||
},
|
||||
|
||||
// 文件上传相关
|
||||
|
|
@ -562,7 +559,7 @@ export default {
|
|||
qcUser: '',
|
||||
qcTime: '',
|
||||
nextCheckTime: '',
|
||||
fileInfoList: [],
|
||||
fileInfoList: []
|
||||
}
|
||||
this.fileList = []
|
||||
this.warningDays = row.maintenanceAlarmDay
|
||||
|
|
@ -921,7 +918,7 @@ export default {
|
|||
padding-top: 6px;
|
||||
margin-top: auto;
|
||||
|
||||
::v-deep .pagination-container {
|
||||
::v-deep .pagination-container {
|
||||
padding: 0px 20px !important;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
|
@ -946,20 +943,21 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover>td.el-table__cell {
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dialog-table {
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
|
||||
|
||||
::v-deep .el-table {
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
// 启用斑马纹
|
||||
&.el-table--striped .el-table__body {
|
||||
tr.el-table__row--striped td {
|
||||
|
|
@ -983,11 +981,11 @@ export default {
|
|||
.el-table__body {
|
||||
tr {
|
||||
transition: all 0.2s ease;
|
||||
|
||||
|
||||
&:hover {
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
|
||||
td {
|
||||
padding: 12px 8px;
|
||||
font-size: 13px;
|
||||
|
|
@ -996,15 +994,15 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover>td.el-table__cell {
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
}
|
||||
|
||||
|
||||
// 表格边框优化
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -1012,27 +1010,27 @@ export default {
|
|||
}
|
||||
|
||||
::v-deep .el-table {
|
||||
// 启用斑马纹
|
||||
&.el-table--striped .el-table__body {
|
||||
tr.el-table__row--striped td {
|
||||
background-color: #F6FBFA !important; // 浅紫色
|
||||
}
|
||||
}
|
||||
|
||||
.el-table__header {
|
||||
background: #E9F0EE;
|
||||
|
||||
th {
|
||||
background: #E9F0EE !important;
|
||||
color: #606266;
|
||||
font-weight: 600;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover>td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
// 启用斑马纹
|
||||
&.el-table--striped .el-table__body {
|
||||
tr.el-table__row--striped td {
|
||||
background-color: #F6FBFA !important; // 浅紫色
|
||||
}
|
||||
}
|
||||
|
||||
.el-table__header {
|
||||
background: #E9F0EE;
|
||||
|
||||
th {
|
||||
background: #E9F0EE !important;
|
||||
color: #606266;
|
||||
font-weight: 600;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
&.el-table--striped .el-table__body tr.el-table__row:hover > td.el-table__cell {
|
||||
background-color: #CCF1E9 !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -14,8 +14,8 @@ export default {
|
|||
console.log('🚀 ~ mounted:', window.location)
|
||||
this.iframeSrc =
|
||||
process.env.NODE_ENV === 'production'
|
||||
? 'http://192.168.0.14:19190/iws/mall-view/equipList'
|
||||
: 'http://localhost:8102/iws/mall-view/equipList'
|
||||
? ' http://127.0.0.1:8108/iws/mall-view/equipList'
|
||||
: 'http://127.0.0.1:8108/iws/mall-view/equipList'
|
||||
console.log('🚀 ~ this.iframeSrc:', this.iframeSrc)
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue