代码提交
This commit is contained in:
parent
b7ea784983
commit
c1a9c1ba7d
|
|
@ -82,11 +82,11 @@
|
|||
/>
|
||||
</el-form-item>-->
|
||||
|
||||
<el-form-item prop="minBuyPrice" label="资产原值(万元)">
|
||||
<el-input clearable style="width: 95px" placeholder="请输入" v-model.trim="queryParams.minBuyPrice" />
|
||||
<el-form-item prop="minOriginalValue" label="资产原值(万元)">
|
||||
<el-input clearable style="width: 95px" placeholder="请输入" @input="handleNumberInput('minOriginalValue')" v-model.trim="queryParams.minOriginalValue" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="maxBuyPrice" label="-" style="margin-left: -6%">
|
||||
<el-input clearable style="width: 95px" placeholder="请输入" v-model.trim="queryParams.maxBuyPrice" />
|
||||
<el-form-item prop="maxOriginalValue" label="-" style="margin-left: -6%">
|
||||
<el-input clearable style="width: 95px" placeholder="请输入" @input="handleNumberInput('maxOriginalValue')" v-model.trim="queryParams.maxOriginalValue" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="float: right">
|
||||
|
|
@ -726,12 +726,17 @@ export default {
|
|||
originalCode: '',
|
||||
manufacturerId: '',
|
||||
productionDate: '',
|
||||
minBuyPrice: '',
|
||||
maxBuyPrice: '',
|
||||
minOriginalValue: '',
|
||||
maxOriginalValue: '',
|
||||
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
// 用于存储上一次的有效值,避免循环验证
|
||||
lastValidValues: {
|
||||
minOriginalValue: '',
|
||||
maxOriginalValue: ''
|
||||
},
|
||||
currentRow: null,
|
||||
uploadType: 1, // 1:装备外观,2:合格证,3:定期检验报告,4:采购发票
|
||||
uploadVisible: false,
|
||||
|
|
@ -788,6 +793,117 @@ export default {
|
|||
this.getManufacturerSelectList()
|
||||
},
|
||||
methods: {
|
||||
handleNumberInput(key) {
|
||||
let value = this.queryParams[key] || ''
|
||||
// 1. 清理输入
|
||||
const cleanedValue = this.cleanNumberInput(value)
|
||||
|
||||
// 2. 存储为上次有效值(清理后)
|
||||
this.lastValidValues[key] = cleanedValue
|
||||
|
||||
// 3. 根据输入类型进行验证
|
||||
if (key === 'minOriginalValue') {
|
||||
this.queryParams[key] = this.validateMinValue(cleanedValue)
|
||||
} else if (key === 'maxOriginalValue') {
|
||||
this.queryParams[key] = this.validateMaxValue(cleanedValue)
|
||||
} else {
|
||||
this.queryParams[key] = cleanedValue
|
||||
}
|
||||
|
||||
// 4. 确保响应式更新
|
||||
this.$forceUpdate()
|
||||
},
|
||||
|
||||
// 清理数字输入
|
||||
cleanNumberInput(input) {
|
||||
if (!input) return ''
|
||||
|
||||
// 过滤非数字和小数点
|
||||
let cleaned = input.replace(/[^\d.]/g, '')
|
||||
|
||||
// 处理多个小数点
|
||||
const dotIndex = cleaned.indexOf('.')
|
||||
if (dotIndex !== -1) {
|
||||
const before = cleaned.substring(0, dotIndex + 1)
|
||||
const after = cleaned.substring(dotIndex + 1).replace(/\./g, '')
|
||||
cleaned = before + after
|
||||
}
|
||||
|
||||
// 限制小数位数
|
||||
const parts = cleaned.split('.')
|
||||
if (parts.length > 1) {
|
||||
cleaned = parts[0] + '.' + parts[1].slice(0, 2)
|
||||
}
|
||||
|
||||
return cleaned
|
||||
},
|
||||
|
||||
// 验证最小值(不能大于最大值)
|
||||
validateMinValue(value) {
|
||||
// 如果是空值或纯小数点,直接返回
|
||||
if (!value || value === '.') return value
|
||||
|
||||
const maxValue = this.queryParams.maxOriginalValue
|
||||
const minNum = this.safeParseNumber(value)
|
||||
const maxNum = this.safeParseNumber(maxValue)
|
||||
|
||||
// 如果最大值无效,直接返回清理后的值
|
||||
if (maxNum === null) return value
|
||||
|
||||
// 如果最小值大于最大值,则使用最大值
|
||||
if (minNum !== null && minNum > maxNum) {
|
||||
return maxValue
|
||||
}
|
||||
|
||||
return value
|
||||
},
|
||||
|
||||
// 验证最大值(不能小于最小值)
|
||||
validateMaxValue(value) {
|
||||
// 如果是空值或纯小数点,直接返回
|
||||
if (!value || value === '.') return value
|
||||
|
||||
const minValue = this.queryParams.minOriginalValue
|
||||
const maxNum = this.safeParseNumber(value)
|
||||
const minNum = this.safeParseNumber(minValue)
|
||||
|
||||
// 如果最小值无效,直接返回清理后的值
|
||||
if (minNum === null) return value
|
||||
|
||||
// 如果最大值小于最小值,则使用最小值
|
||||
if (maxNum !== null && maxNum < minNum) {
|
||||
return minValue
|
||||
}
|
||||
|
||||
return value
|
||||
},
|
||||
|
||||
// 安全解析数字
|
||||
safeParseNumber(str) {
|
||||
if (!str || str === '.' || isNaN(Number(str))) {
|
||||
return null
|
||||
}
|
||||
return Number(str)
|
||||
},
|
||||
|
||||
// 同时验证两个值(在表单提交前调用)
|
||||
validateNumberRange() {
|
||||
const minNum = this.safeParseNumber(this.queryParams.minOriginalValue)
|
||||
const maxNum = this.safeParseNumber(this.queryParams.maxOriginalValue)
|
||||
|
||||
if (minNum !== null && maxNum !== null && minNum > maxNum) {
|
||||
// 交换值,使最小值 <= 最大值
|
||||
const temp = this.queryParams.minOriginalValue
|
||||
this.queryParams.minOriginalValue = this.queryParams.maxOriginalValue
|
||||
this.queryParams.maxOriginalValue = temp
|
||||
|
||||
// 提示用户
|
||||
this.$message.warning('已自动调整数值范围,确保最小值 ≤ 最大值')
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
this.upload.isUploading = true
|
||||
|
|
@ -895,6 +1011,7 @@ export default {
|
|||
|
||||
// 查询表格数据
|
||||
queryTableList() {
|
||||
this.validateNumberRange()
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,144 +9,148 @@
|
|||
>
|
||||
<!-- 表单搜索 -->
|
||||
<el-card class="search-box">
|
||||
<el-row>
|
||||
<el-form-item prop="orderCreateUser" label="申请人">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.orderCreateUser"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请时间" prop="orderCreateTime">
|
||||
<el-date-picker
|
||||
type="daterange"
|
||||
style="width: 240px"
|
||||
unlink-panels
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
v-model="queryParams.orderCreateTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审批状态" prop="entryStatus">
|
||||
<el-select
|
||||
style="width: 240px"
|
||||
placeholder="请选择审批状态"
|
||||
v-model="queryParams.entryStatus"
|
||||
>
|
||||
<el-option label="待审批" value="0"/>
|
||||
<el-option label="已通过" value="1"/>
|
||||
<el-option label="已驳回" value="2"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="name" label="装备名称">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.name"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="specificationModel" label="规格型号">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.specificationModel"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="originalCode" label="装备原始编码">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.originalCode"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="manufacturerId" label="生产厂家">
|
||||
<el-select
|
||||
v-model="queryParams.manufacturerId"
|
||||
placeholder="请选择生产厂家"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in manufacturerList"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="productionDate" label="出厂日期">
|
||||
<el-date-picker
|
||||
type="daterange"
|
||||
style="width: 240px"
|
||||
unlink-panels
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
v-model="queryParams.productionDate"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item prop="keyword" label="采购日期">
|
||||
<el-date-picker
|
||||
type="date"
|
||||
style="width: 240px"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择采购日期"
|
||||
v-model="queryParams.applyTime"
|
||||
/>
|
||||
</el-form-item>-->
|
||||
|
||||
<!-- <el-col :span="6"> -->
|
||||
<el-form-item prop="originalValue" label="资产原值(万元)">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 103px"
|
||||
placeholder="请输入"
|
||||
v-model.trim="queryParams.minOriginalValue"
|
||||
/>
|
||||
</el-form-item>
|
||||
<span style="line-height: 30px;margin: 0 10px 0 0px;"> - </span>
|
||||
<el-form-item prop="maxOriginalValue">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 103px"
|
||||
placeholder="请输入"
|
||||
v-model.trim="queryParams.maxOriginalValue"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
|
||||
|
||||
<!-- <el-col :span="18" style="text-align: right;"> -->
|
||||
<el-form-item style="display: flex; justify-content: flex-end">
|
||||
<el-button class="primary-lease" size="mini" type="primary" icon="el-icon-search" @click="getEquipmentApplyList">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button class="primary-lease" size="mini" icon="el-icon-refresh" @click="resetForm">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-form>
|
||||
<el-card class="content-box">
|
||||
<el-row>
|
||||
<el-col :span="24" style="text-align: right;">
|
||||
<el-button
|
||||
<el-form-item prop="orderCreateUser" label="申请人">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.orderCreateUser"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请时间" prop="orderCreateTime">
|
||||
<el-date-picker
|
||||
type="daterange"
|
||||
style="width: 240px"
|
||||
unlink-panels
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
v-model="queryParams.orderCreateTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审批状态" prop="entryStatus">
|
||||
<el-select
|
||||
style="width: 240px"
|
||||
placeholder="请选择审批状态"
|
||||
v-model="queryParams.entryStatus"
|
||||
>
|
||||
<el-option label="待审批" value="0"/>
|
||||
<el-option label="已通过" value="1"/>
|
||||
<el-option label="已驳回" value="2"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="name" label="装备名称">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.name"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="specificationModel" label="规格型号">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.specificationModel"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="originalCode" label="装备原始编码">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 240px"
|
||||
placeholder="请输入内容"
|
||||
v-model.trim="queryParams.originalCode"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="manufacturerId" label="生产厂家">
|
||||
<el-select
|
||||
v-model="queryParams.manufacturerId"
|
||||
placeholder="请选择生产厂家"
|
||||
clearable
|
||||
style="width: 240px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in manufacturerList"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="productionDate" label="出厂日期">
|
||||
<el-date-picker
|
||||
type="daterange"
|
||||
style="width: 240px"
|
||||
unlink-panels
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
v-model="queryParams.productionDate"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item prop="keyword" label="采购日期">
|
||||
<el-date-picker
|
||||
type="date"
|
||||
style="width: 240px"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择采购日期"
|
||||
v-model="queryParams.applyTime"
|
||||
/>
|
||||
</el-form-item>-->
|
||||
|
||||
<!-- <el-col :span="6"> -->
|
||||
<el-form-item prop="minOriginalValue" label="资产原值(万元)">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 103px"
|
||||
placeholder="请输入"
|
||||
v-model.trim="queryParams.minOriginalValue"
|
||||
@input="handleNumberInput('minOriginalValue')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<span style="line-height: 30px;margin: 0 10px 0 0px;"> - </span>
|
||||
<el-form-item prop="maxOriginalValue">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 103px"
|
||||
placeholder="请输入"
|
||||
v-model.trim="queryParams.maxOriginalValue"
|
||||
@input="handleNumberInput('maxOriginalValue')"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
|
||||
|
||||
<!-- <el-col :span="18" style="text-align: right;"> -->
|
||||
<el-form-item style="display: flex; justify-content: flex-end">
|
||||
<el-button class="primary-lease" size="mini" type="primary" icon="el-icon-search"
|
||||
@click="getEquipmentApplyList"
|
||||
>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button class="primary-lease" size="mini" icon="el-icon-refresh" @click="resetForm">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<!-- </el-col> -->
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-form>
|
||||
<el-card class="content-box">
|
||||
<el-row>
|
||||
<el-col :span="24" style="text-align: right;">
|
||||
<el-button
|
||||
size="mini"
|
||||
class="primary-lease"
|
||||
type="primary"
|
||||
|
|
@ -154,8 +158,8 @@
|
|||
>
|
||||
收起明细
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 表格 -->
|
||||
<el-table ref="tableRef" :data="tableData" :span-method="handleSpanMethod" border stripe height="546">
|
||||
<!-- <el-table :data="tableData" >-->
|
||||
|
|
@ -178,13 +182,17 @@
|
|||
</el-table-column>
|
||||
|
||||
<el-table-column prop="name" label="装备名称" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="specificationModel" label="规格型号" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="specificationModel" label="规格型号" show-overflow-tooltip align="center"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column prop="originalCode" label="装备原始编码" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="unit" label="计量单位" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="manufacturer" label="生产厂家" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="productionDate" label="出厂日期" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<!-- <el-table-column prop="orderNumber" label="采购日期" align="center"/>-->
|
||||
<el-table-column prop="originalValue" label="资产原值(万元)" show-overflow-tooltip align="center" min-width="100"/>
|
||||
<el-table-column prop="originalValue" label="资产原值(万元)" show-overflow-tooltip align="center"
|
||||
min-width="100"
|
||||
/>
|
||||
<!-- <el-table-column prop="orderNumber" label="最大使用年限(年)" align="center"/>-->
|
||||
<!-- <el-table-column prop="orderNumber" label="下次维保日期" align="center"/>-->
|
||||
<el-table-column prop="province" label="所属省份" show-overflow-tooltip align="center" min-width="100"/>
|
||||
|
|
@ -198,7 +206,9 @@
|
|||
<span style="color: #00a288; cursor: pointer" @click="handleView(row, 2)">查看</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="inspectionReports" label="定期检验报告" show-overflow-tooltip align="center" min-width="100">
|
||||
<el-table-column prop="inspectionReports" label="定期检验报告" show-overflow-tooltip align="center"
|
||||
min-width="100"
|
||||
>
|
||||
<template v-slot="{ row }">
|
||||
<span style="color: #00a288; cursor: pointer" @click="handleView(row, 3)">查看</span>
|
||||
</template>
|
||||
|
|
@ -265,19 +275,19 @@
|
|||
</el-table>
|
||||
|
||||
<div class="pagination-wrapper">
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
:total="total"
|
||||
@pagination="handlePageChange"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
/>
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
:total="total"
|
||||
@pagination="handlePageChange"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- 弹框 -->
|
||||
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="40%">
|
||||
<el-table :data="dialogList" fit highlight-current-row style="width: 100%" height="546">
|
||||
<el-table-column type="index" width="55" label="序号" align="center" />
|
||||
<el-table-column type="index" width="55" label="序号" align="center"/>
|
||||
<el-table-column label="附件名称" prop="fileName" align="center">
|
||||
<!-- 插槽 -->
|
||||
<template v-slot="{ row }">
|
||||
|
|
@ -319,11 +329,17 @@ export default {
|
|||
manufacturerId: '',
|
||||
productionDate: '',
|
||||
originalValue: '',
|
||||
maxBuyPrice: '',
|
||||
minOriginalValue: '',
|
||||
maxOriginalValue: '',
|
||||
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
// 用于存储上一次的有效值,避免循环验证
|
||||
lastValidValues: {
|
||||
minOriginalValue: '',
|
||||
maxOriginalValue: ''
|
||||
},
|
||||
manufacturerList: [],
|
||||
tableData: [],
|
||||
columns2: [],
|
||||
|
|
@ -345,11 +361,11 @@ export default {
|
|||
{ 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: 43, label: `特征值9`, prop: 'featureValue9', visible: true }
|
||||
],
|
||||
dialogVisible: false,
|
||||
dialogTitle: '',
|
||||
dialogList: [],
|
||||
dialogList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -357,6 +373,117 @@ export default {
|
|||
this.getManufacturerSelectList()
|
||||
},
|
||||
methods: {
|
||||
handleNumberInput(key) {
|
||||
let value = this.queryParams[key] || ''
|
||||
// 1. 清理输入
|
||||
const cleanedValue = this.cleanNumberInput(value)
|
||||
|
||||
// 2. 存储为上次有效值(清理后)
|
||||
this.lastValidValues[key] = cleanedValue
|
||||
|
||||
// 3. 根据输入类型进行验证
|
||||
if (key === 'minOriginalValue') {
|
||||
this.queryParams[key] = this.validateMinValue(cleanedValue)
|
||||
} else if (key === 'maxOriginalValue') {
|
||||
this.queryParams[key] = this.validateMaxValue(cleanedValue)
|
||||
} else {
|
||||
this.queryParams[key] = cleanedValue
|
||||
}
|
||||
|
||||
// 4. 确保响应式更新
|
||||
this.$forceUpdate()
|
||||
},
|
||||
|
||||
// 清理数字输入
|
||||
cleanNumberInput(input) {
|
||||
if (!input) return ''
|
||||
|
||||
// 过滤非数字和小数点
|
||||
let cleaned = input.replace(/[^\d.]/g, '')
|
||||
|
||||
// 处理多个小数点
|
||||
const dotIndex = cleaned.indexOf('.')
|
||||
if (dotIndex !== -1) {
|
||||
const before = cleaned.substring(0, dotIndex + 1)
|
||||
const after = cleaned.substring(dotIndex + 1).replace(/\./g, '')
|
||||
cleaned = before + after
|
||||
}
|
||||
|
||||
// 限制小数位数
|
||||
const parts = cleaned.split('.')
|
||||
if (parts.length > 1) {
|
||||
cleaned = parts[0] + '.' + parts[1].slice(0, 2)
|
||||
}
|
||||
|
||||
return cleaned
|
||||
},
|
||||
|
||||
// 验证最小值(不能大于最大值)
|
||||
validateMinValue(value) {
|
||||
// 如果是空值或纯小数点,直接返回
|
||||
if (!value || value === '.') return value
|
||||
|
||||
const maxValue = this.queryParams.maxOriginalValue
|
||||
const minNum = this.safeParseNumber(value)
|
||||
const maxNum = this.safeParseNumber(maxValue)
|
||||
|
||||
// 如果最大值无效,直接返回清理后的值
|
||||
if (maxNum === null) return value
|
||||
|
||||
// 如果最小值大于最大值,则使用最大值
|
||||
if (minNum !== null && minNum > maxNum) {
|
||||
return maxValue
|
||||
}
|
||||
|
||||
return value
|
||||
},
|
||||
|
||||
// 验证最大值(不能小于最小值)
|
||||
validateMaxValue(value) {
|
||||
// 如果是空值或纯小数点,直接返回
|
||||
if (!value || value === '.') return value
|
||||
|
||||
const minValue = this.queryParams.minOriginalValue
|
||||
const maxNum = this.safeParseNumber(value)
|
||||
const minNum = this.safeParseNumber(minValue)
|
||||
|
||||
// 如果最小值无效,直接返回清理后的值
|
||||
if (minNum === null) return value
|
||||
|
||||
// 如果最大值小于最小值,则使用最小值
|
||||
if (maxNum !== null && maxNum < minNum) {
|
||||
return minValue
|
||||
}
|
||||
|
||||
return value
|
||||
},
|
||||
|
||||
// 安全解析数字
|
||||
safeParseNumber(str) {
|
||||
if (!str || str === '.' || isNaN(Number(str))) {
|
||||
return null
|
||||
}
|
||||
return Number(str)
|
||||
},
|
||||
|
||||
// 同时验证两个值(在表单提交前调用)
|
||||
validateNumberRange() {
|
||||
const minNum = this.safeParseNumber(this.queryParams.minOriginalValue)
|
||||
const maxNum = this.safeParseNumber(this.queryParams.maxOriginalValue)
|
||||
|
||||
if (minNum !== null && maxNum !== null && minNum > maxNum) {
|
||||
// 交换值,使最小值 <= 最大值
|
||||
const temp = this.queryParams.minOriginalValue
|
||||
this.queryParams.minOriginalValue = this.queryParams.maxOriginalValue
|
||||
this.queryParams.maxOriginalValue = temp
|
||||
|
||||
// 提示用户
|
||||
this.$message.warning('已自动调整数值范围,确保最小值 ≤ 最大值')
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
// 获取厂家
|
||||
getManufacturerSelectList() {
|
||||
getManufacturerSelectApi().then((res) => {
|
||||
|
|
@ -370,6 +497,7 @@ export default {
|
|||
* 获取装备申请列表
|
||||
*/
|
||||
getEquipmentApplyList() {
|
||||
this.validateNumberRange()
|
||||
this.queryParams.startOrderCreateTime = this.queryParams.orderCreateTime ? this.queryParams.orderCreateTime[0] : ''
|
||||
this.queryParams.endOrderCreateTime = this.queryParams.orderCreateTime ? this.queryParams.orderCreateTime[1] : ''
|
||||
this.queryParams.startProductionDate = this.queryParams.productionDate ? this.queryParams.productionDate[0] : ''
|
||||
|
|
@ -477,11 +605,11 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
approved(maId,csId) {
|
||||
approved(maId, csId) {
|
||||
const data = {
|
||||
devIds:maId,
|
||||
id:csId,
|
||||
status:1
|
||||
devIds: maId,
|
||||
id: csId,
|
||||
status: 1
|
||||
}
|
||||
|
||||
this.$confirm('是否确定通过?', '提示', {
|
||||
|
|
@ -498,11 +626,11 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
reject(maId,csId) {
|
||||
reject(maId, csId) {
|
||||
const data = {
|
||||
devIds:maId,
|
||||
id:csId,
|
||||
status:1
|
||||
devIds: maId,
|
||||
id: csId,
|
||||
status: 1
|
||||
}
|
||||
this.$confirm('是否确定驳回?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
|
@ -551,7 +679,7 @@ export default {
|
|||
this.dialogList = row.purchaseInvoices || []
|
||||
}
|
||||
this.dialogVisible = true
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -653,11 +781,12 @@ 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-table__body tr.hover-row > td.el-table__cell {
|
||||
background-color: #ccf1e9 !important;
|
||||
background-color: #ccf1e9 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -440,33 +440,30 @@ export default {
|
|||
{ label: '规格型号', prop: 'typeName' },
|
||||
{ label: '计量单位', prop: 'unitName' },
|
||||
{ label: '工具编码', prop: 'toolCode' },
|
||||
// {
|
||||
// label: "工具状态",
|
||||
// prop: "status",
|
||||
// width: 120,
|
||||
// render: (h, { row }) => {
|
||||
// const statusOptions = {
|
||||
// 0: { text: "在库", type: "success" },
|
||||
// 1: { text: "在用", type: "info" },
|
||||
// 2: { text: "在修", type: "warning" },
|
||||
// 3: { text: "已报废", type: "danger" },
|
||||
// };
|
||||
// const option = statusOptions[row.status] || {
|
||||
// text: "未知状态",
|
||||
// type: "",
|
||||
// };
|
||||
// return h(
|
||||
// "el-tag",
|
||||
// {
|
||||
// props: {
|
||||
// type: option.type,
|
||||
// size: "mini",
|
||||
// },
|
||||
// },
|
||||
// option.text
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
{
|
||||
label: "工具状态",
|
||||
prop: "status",
|
||||
width: 120,
|
||||
render: (h, { row }) => {
|
||||
const statusOptions = {
|
||||
0: { text: "在库", type: "success" },
|
||||
1: { text: "在用", type: "info" },
|
||||
2: { text: "在修", type: "warning" },
|
||||
3: { text: "已报废", type: "danger" },
|
||||
};
|
||||
const option = statusOptions[row.status]
|
||||
return h(
|
||||
"el-tag",
|
||||
{
|
||||
props: {
|
||||
type: option.type,
|
||||
size: "mini",
|
||||
},
|
||||
},
|
||||
option.text
|
||||
);
|
||||
},
|
||||
},
|
||||
{ label: '下次检验时间', prop: 'nextCheckDate' },
|
||||
{ label: '生产厂家', prop: 'supplierName', width: 200 },
|
||||
{ label: '出厂日期', prop: 'productionDate' },
|
||||
|
|
|
|||
Loading…
Reference in New Issue