适用班组数

This commit is contained in:
bb_pan 2025-07-03 10:11:29 +08:00
parent 56d62bdf32
commit 050ba909bc
2 changed files with 95 additions and 61 deletions

View File

@ -83,6 +83,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="适用班组数" prop="fitNum">
<el-input
v-model="maForm.fitNum"
placeholder="请输入适用班组数"
maxlength="10"
type="number"
style="width: 240px"
@blur="fitNumChange"
/>
</el-form-item>
<el-form-item label="业务单号" prop="code" v-if="isEdit || isDetail">
<el-input
v-model="maForm.code"
@ -150,7 +160,12 @@
top: tooltipPosition.y + 'px'
}"
>
<img :src="currentTooltipItem.imageUrl || defaultImage" style="max-width: 200px; max-height: 150px;" @load="imageLoaded" @error="imageLoadError"/>
<img
:src="currentTooltipItem.imageUrl || defaultImage"
style="max-width: 200px; max-height: 150px"
@load="imageLoaded"
@error="imageLoadError"
/>
<p>库存: {{ currentTooltipItem.storageNum }}</p>
</div>
</el-col>
@ -249,7 +264,7 @@
filterable
clearable
:disabled="isDetail"
@change="(selectedIds) => getTypeList(scope.row, selectedIds, scope.$index)"
@change="selectedIds => getTypeList(scope.row, selectedIds, scope.$index)"
></el-cascader>
<span v-else>{{ scope.row.maTypeName }}</span>
@ -264,9 +279,14 @@
filterable
placeholder="请选择规格型号"
:disabled="isDetail"
@change="(val) => changeTypeName(scope.row, val, getSelectedItemName(val,scope.row))"
@change="val => changeTypeName(scope.row, val, getSelectedItemName(val, scope.row))"
>
<el-option v-for="item in scope.row.typeList" :key="item.typeId" :label="item.name" :value="item.typeId"></el-option>
<el-option
v-for="item in scope.row.typeList"
:key="item.typeId"
:label="item.name"
:value="item.typeId"
></el-option>
</el-select>
<span v-else>{{ scope.row.typeName }}</span>
</template>
@ -358,7 +378,6 @@
</span>
</el-dialog>
</div>
</template>
<script>
@ -427,8 +446,10 @@ export default {
code: '', //
supplierTime: '', //
supplierPlace: '', //
bmFileInfos: [] //
bmFileInfos: [], //
fitNum: 1
},
lastFitNum: 1,
pickerOptions: {
disabledDate(time) {
//
@ -493,9 +514,7 @@ export default {
trigger: 'change'
}
],
deviceType: [
{ required: true, message: '请选择类型规格', trigger: 'blur' }
]
deviceType: [{ required: true, message: '请选择类型规格', trigger: 'blur' }]
},
maTypeList: [], //
//
@ -610,26 +629,38 @@ export default {
console.log(this.$route.query, 'this.$route.query')
},
methods: {
fitNumChange() {
const newVal = Math.min(5, Math.max(1, parseInt(this.maForm.fitNum) || 1))
const ratio = newVal / this.lastFitNum
this.equipmentList.forEach(item => {
if (typeof item.preNum === 'number') {
item.preNum = Math.max(1, Math.floor(item.preNum * ratio)) // 1
}
})
this.lastFitNum = newVal
this.maForm.fitNum = newVal
},
showCustomTooltip(item, event) {
clearTimeout(this.tooltipTimeout);
clearTimeout(this.tooltipTimeout)
this.tooltipTimeout = setTimeout(() => {
this.currentTooltipItem = item;
this.currentTooltipItem = item
this.tooltipPosition = {
x: event.clientX + 15,
y: event.clientY + 15
};
}, 300); // 300ms
}
}, 300) // 300ms
},
imageLoaded() {
this.shouldShowTooltip = true; //
this.shouldShowTooltip = true //
},
imageLoadError() {
this.shouldShowTooltip = true; //
this.shouldShowTooltip = true //
},
hideCustomTooltip() {
clearTimeout(this.tooltipTimeout);
this.currentTooltipItem = null;
clearTimeout(this.tooltipTimeout)
this.currentTooltipItem = null
},
// -tree
async getMaTypeNameOpt() {
@ -712,10 +743,9 @@ export default {
}
},
getSelectedItemName(typeId, row) {
const selectedItem = row.typeList.find(item => item.typeId === typeId);
return selectedItem ? selectedItem.name : '';
const selectedItem = row.typeList.find(item => item.typeId === typeId)
return selectedItem ? selectedItem.name : ''
},
//
changeTypeName(row, val, name) {
@ -723,17 +753,17 @@ export default {
console.log('🚀 ~ changeTypeName ~ val:', val)
this.equipmentList.some(item => {
//
if (item === row) return false;
if (item === row) return false
if (item.typeId === val) {
this.$message({
message: `${name} 已添加到列表中`,
type: 'warning'
});
row.typeId = '';
return true;
})
row.typeId = ''
return true
}
return false;
});
return false
})
// console.log('xxxxxxxxxxxxxxxxx', this.equipmentList.some(item => item.typeId === val))
// if (this.equipmentList.some(item => item.typeId === val)) {
// // console.log("yyyyyyyyyyy",item.typeId)
@ -1201,7 +1231,11 @@ export default {
handleDownload(file) {
console.log(file)
if (file.status === 'ready') {
downloadFile({ fileName: file.name, fileData: file.raw, fileType: 'application/vnd.ms-excel;charset=utf-8' })
downloadFile({
fileName: file.name,
fileData: file.raw,
fileType: 'application/vnd.ms-excel;charset=utf-8'
})
} else if (file.status === 'success') {
downloadFileData({ fileName: file.name, fileUrl: file.url })
// downloadFileData({ fileName: file.name,fileUrl:file.url })
@ -1287,17 +1321,17 @@ export default {
//
handleExport() {
try {
const formatTime = (date) => {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}${month}${day}_${hours}${minutes}${seconds}`;
};
const formatTime = date => {
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}${month}${day}_${hours}${minutes}${seconds}`
}
const currentTime = formatTime(new Date());
const currentTime = formatTime(new Date())
let fileName = `工器具清单_${currentTime}.xLsx`
let url = '/material/leaseTask/export'

View File

@ -132,7 +132,7 @@
rows="2"
/>
</el-form-item>
<el-form-item label="适用班组数" prop="fitNum">
<!-- <el-form-item label="适用班组数" prop="fitNum">
<el-input
v-model="maForm.fitNum"
placeholder="请输入适用班组数"
@ -141,7 +141,7 @@
style="width: 240px"
@blur="fitNumChange"
/>
</el-form-item>
</el-form-item> -->
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">