老商城

This commit is contained in:
bb_pan 2025-10-21 14:36:18 +08:00
parent da18804cc2
commit da8eefb2cd
1 changed files with 76 additions and 87 deletions

View File

@ -34,7 +34,7 @@ const batchAddVisible: any = ref(false) // 批量新增
const batchAddData: any = ref([]) //
const batchAddColumn: any = ref([
{ label: '装备名称', prop: 'deviceName' },
{ label: '装备型号', prop: 'typeName' },
{ label: '装备型号', prop: 'itemTypeModel' },
{ label: '上传人', prop: 'uploadUser' },
{ label: '上传时间', prop: 'uploadTime' },
])
@ -43,7 +43,8 @@ const uploadUrlTemp = window.location.origin + '/iws/mall-view/MaDevTemplate.xls
//
const AssemblyRegisterAddress: any = reactive([])
const deviceType: any = reactive([])
const manageType: any = reactive([])
const typeId: any = ref()
onMounted(() => {
//
@ -57,6 +58,7 @@ onMounted(() => {
})
//
const deviceTypeTree: any = ref([])
const oldDeviceTypeTree: any = ref([])
const partTypeTreeProps: any = ref({
children: 'children',
label: 'name',
@ -67,7 +69,21 @@ const partTypeTreeProps: any = ref({
const getTypeTreeData = async () => {
const res: any = await getEquipmentTypeApi()
console.log('treeData==========', res)
deviceTypeTree.value = res.data
oldDeviceTypeTree.value = res.data
deviceTypeTree.value = trimTreeLevels(res.data, 3)
// deviceTypeTree.value = res.data
console.log('🚀 ~ getTypeTreeData ~ 树:', deviceTypeTree.value)
}
const trimTreeLevels = (tree: any, maxDepth: any, currentDepth = 1) => {
return tree.map((node: any) => {
const newNode = { ...node }
if (node.children && currentDepth < maxDepth) {
newNode.children = trimTreeLevels(node.children, maxDepth, currentDepth + 1)
} else {
delete newNode.children
}
return newNode
});
}
//-change
const deviceTypeChange = (val: any) => {
@ -170,7 +186,7 @@ const equipmentDeployment = (row: any) => {
deviceCount: 1,
originaValue: '',
itemTypeModel: '',
deviceType: '',
manageType: '',
buyPrice: '',
unitName: '',
code: '',
@ -189,6 +205,7 @@ const equipmentDeployment = (row: any) => {
detailsFileList.value = []
insurancePdf.value = []
examinationPdf.value = []
addAndEditForm.deviceTypeList = []
//table
equipTableList.value = []
@ -210,7 +227,7 @@ const equipmentDeployment = (row: any) => {
})
}
addAndEditForm.deviceTypeList = getSelectId(deviceTypeTree.value, addAndEditForm.typeId)
addAndEditForm.deviceTypeList = getSelectId(deviceTypeTree.value, addAndEditForm.parentId)
}
//
dialogFormVisibleSettlein.value = true
@ -265,66 +282,11 @@ const deleteRowInfo = async (row: any) => {
const getDetailData = async (row: any) => {
await getTypeTreeData()
const { data: res }: any = await getDetailApi(row.maId)
const {
deviceName,
// deviceTypeList,
deviceCount,
originaValue,
itemTypeModel,
deviceType,
buyPrice,
unitName,
code,
brand,
typeId,
companyId,
productionDate,
dayLeasePrice,
person,
personPhone,
deviceWeight,
checkDate,
checkCycle,
mainFileList,
detailsFileList,
insurancePdf,
examinationPdf,
devInfoProperties,
tableList,
maintenanceAlarmDay,
isZone,
zoneId,
} = res
Object.assign(addAndEditForm, {
deviceName,
deviceCount,
originaValue,
itemTypeModel,
deviceType,
buyPrice,
unitName,
code,
brand,
typeId,
companyId,
productionDate,
dayLeasePrice,
person,
personPhone,
deviceWeight,
checkDate,
checkCycle,
mainFileList,
detailsFileList,
insurancePdf,
examinationPdf,
devInfoProperties,
tableList,
maintenanceAlarmDay,
isZone,
zoneId,
...res,
})
typeId.value = addAndEditForm.typeId
console.log('🚀 ~ getDetailData ~ typeId:', typeId.value)
if (settleinTitle.value == '装备编辑') {
Object.assign(addAndEditForm, {
@ -343,7 +305,7 @@ const getDetailData = async (row: any) => {
descriptionFormList.value[0].insurancePdfs = insurancePdf
descriptionFormList.value[0].examinationPdfs = examinationPdf
options.value = []
addAndEditForm.deviceTypeList = getSelectId(deviceTypeTree.value, addAndEditForm.typeId)
addAndEditForm.deviceTypeList = getSelectId(deviceTypeTree.value, addAndEditForm.parentId)
warningDays.value = addAndEditForm.maintenanceAlarmDay
// warningDays.value = addAndEditForm.deviceTypeList[addAndEditForm.deviceTypeList.length-1].data.maintenanceAlarmDay
// warningDays.value = addAndEditForm.deviceTypeList.maintenanceAlarmDay
@ -524,7 +486,7 @@ const equipmentDeploymentParams: any = ref({
deviceCount: 1,
originaValue: '',
itemTypeModel: '',
deviceType: '',
manageType: '',
buyPrice: '',
unitName: '',
code: '',
@ -544,18 +506,21 @@ const countDisabled = ref(false)
//-change
const dialogTypeCascader = ref()
//-change
const dialogTypeChange = async () => {
const dialogTypeChange = async (val: any) => {
const nodeId = val[val.length - 1]
const nodeList = findNextLevelIds(oldDeviceTypeTree.value, nodeId)
console.log('🚀 ~ dialogTypeChange ~ nodeList:', nodeList)
typeId.value = nodeList ? nodeList[0] : []
options.value = []
const deviceTypeList = dialogTypeCascader.value.getCheckedNodes()
console.log('deviceTypeList', deviceTypeList[0].data)
warningDays.value = deviceTypeList[0].data.maintenanceAlarmDay
if (deviceTypeList[0].data.deviceType == 0) {
addAndEditForm.deviceCount = 1
typeDisabled.value = true
} else {
addAndEditForm.deviceCount = 1
typeDisabled.value = false
}
// if (deviceTypeList[0].data.manageType == 0) {
// addAndEditForm.deviceCount = 1
// typeDisabled.value = true
// } else {
// addAndEditForm.deviceCount = 1
// typeDisabled.value = false
// }
if (deviceTypeList[0].data.maTypeProperties == null) {
propertyNames.value = []
} else {
@ -585,6 +550,25 @@ const dialogTypeChange = async () => {
examinationPdf: [],
})
}
const findNextLevelIds = (tree: any, targetId: any) => {
for (const node of tree) {
if (node.id === targetId) {
// children id
return node.children ? node.children.map((child: any) => child.id) : [];
}
if (node.children) {
const result: any = findNextLevelIds(node.children, targetId);
if (result) return result;
}
}
return null //
}
const changeDeviceType = async (val: any) => {
console.log('🚀 ~ changeDeviceType ~ val:', val)
if (val == 0) {
addAndEditForm.deviceCount = 1
}
}
//
const getCompanyList = async () => {
@ -618,7 +602,7 @@ const equipRules = ref({
trigger: 'blur',
},
],
deviceType: [
manageType: [
{
required: true,
message: '请选择管理方式',
@ -833,9 +817,9 @@ const submitFun = (type: any) => {
)
addAndEditForm.devInfoProperties = propertyNames.value
addAndEditForm.typeId =
addAndEditForm.deviceTypeList[addAndEditForm.deviceTypeList.length - 1]
// addAndEditForm.typeId =
// addAndEditForm.deviceTypeList[addAndEditForm.deviceTypeList.length - 1]
addAndEditForm.typeId = typeId.value
let SEND_FUN_API: any = null
if (type == 1) {
SEND_FUN_API = equipmentAddApi
@ -1067,7 +1051,7 @@ const addAndEditForm = reactive<any>({
deviceCount: 1,
originaValue: '',
itemTypeModel: '',
deviceType: '',
manageType: '',
buyPrice: '',
unitName: '',
code: '',
@ -1310,7 +1294,7 @@ const onDialogClose = () => {
deviceCount: 1,
originaValue: '',
itemTypeModel: '',
deviceType: '',
manageType: '',
buyPrice: '',
unitName: '',
code: '',
@ -1565,7 +1549,7 @@ const handleDel = (index: any) => {
>重置
</el-button
>
<el-button class="primary-lease" type="primary" @click="equipmentDeployment"
<el-button class="primary-lease" type="primary" @click="equipmentDeployment('')"
>装备新增
</el-button
>
@ -1633,7 +1617,11 @@ const handleDel = (index: any) => {
>
</template>
</el-table-column>
<el-table-column align="center" prop="typeName" label="装备型号" />
<el-table-column align="center" prop="itemTypeModel" label="装备型号">
<template #default="{ row }">
<span>{{ row.itemTypeModel || row.typeName || '-' }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="nextCheckDate" label="下次检验日期">
<template #default="{ row }">
<span :style="{ backgroundColor: getUpdateTimeBgColor(row) }">{{
@ -1864,7 +1852,7 @@ const handleDel = (index: any) => {
type="number"
clearable
maxlength="10"
:disabled="typeDisabled"
:disabled="addAndEditForm.manageType == 0"
/>
</el-form-item>
</el-col>
@ -1893,17 +1881,18 @@ const handleDel = (index: any) => {
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格型号:" prop="deviceType">
<el-form-item label="管理方式" prop="manageType">
<!-- 0 编码 1 数量 -->
<el-select
v-model="addAndEditForm.deviceType"
v-model="addAndEditForm.manageType"
placeholder="请选择管理方式"
clearable
style="width: 100%;"
:disabled="!isAdd"
@change="changeDeviceType"
>
<el-option label="编码" :value="0" />
<el-option label="数量" :value="1" />
<el-option label="编码" value="0" />
<el-option label="数量" value="1" />
</el-select>
<span style="color: red">说明编码管理按一台一台管理一台设备一个唯一编码数量管理支持同规格型号批量录入一般小型工器具</span>
</el-form-item>