|
|
|
@ -57,12 +57,6 @@
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
</el-col>
|
|
|
|
</el-col>
|
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
|
|
|
<el-form-item label="数量" prop="quantity">
|
|
|
|
|
|
|
|
<el-input-number v-model="formData.quantity" :min="1" controls-position="right" class="!w-full" />
|
|
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
<el-col :span="12">
|
|
|
|
<el-form-item label="供应商" prop="supplier">
|
|
|
|
<el-form-item label="供应商" prop="supplier">
|
|
|
|
<el-select v-model="formData.supplier" placeholder="请选择供应商" clearable filterable class="!w-full">
|
|
|
|
<el-select v-model="formData.supplier" placeholder="请选择供应商" clearable filterable class="!w-full">
|
|
|
|
@ -104,9 +98,9 @@
|
|
|
|
</el-col>
|
|
|
|
</el-col>
|
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="24">
|
|
|
|
<el-col :span="24">
|
|
|
|
<el-form-item label="部门" prop="useDept">
|
|
|
|
<el-form-item label="部门" prop="systemOrg">
|
|
|
|
<el-tree-select
|
|
|
|
<el-tree-select
|
|
|
|
v-model="formData.useDept"
|
|
|
|
v-model="formData.systemOrg"
|
|
|
|
:data="deptTree"
|
|
|
|
:data="deptTree"
|
|
|
|
:props="treeSelectProps"
|
|
|
|
:props="treeSelectProps"
|
|
|
|
check-strictly
|
|
|
|
check-strictly
|
|
|
|
@ -185,9 +179,8 @@ const formData = ref({
|
|
|
|
supplier: undefined,
|
|
|
|
supplier: undefined,
|
|
|
|
workshop: undefined,
|
|
|
|
workshop: undefined,
|
|
|
|
deviceLocation: undefined,
|
|
|
|
deviceLocation: undefined,
|
|
|
|
useDept: undefined,
|
|
|
|
systemOrg: undefined,
|
|
|
|
deviceManager: undefined,
|
|
|
|
deviceManager: undefined,
|
|
|
|
quantity: 1,
|
|
|
|
|
|
|
|
productionDate: undefined,
|
|
|
|
productionDate: undefined,
|
|
|
|
factoryEntryDate: undefined,
|
|
|
|
factoryEntryDate: undefined,
|
|
|
|
remark: undefined,
|
|
|
|
remark: undefined,
|
|
|
|
@ -207,6 +200,7 @@ const deviceTypeTree = ref<DeviceTypeTreeVO[]>([])
|
|
|
|
const deptTree = ref<any[]>([])
|
|
|
|
const deptTree = ref<any[]>([])
|
|
|
|
const supplierOptions = ref<string[]>([])
|
|
|
|
const supplierOptions = ref<string[]>([])
|
|
|
|
const deptNameMap = ref<Record<number, string>>({})
|
|
|
|
const deptNameMap = ref<Record<number, string>>({})
|
|
|
|
|
|
|
|
const deptIdMap = ref<Record<string, number>>({})
|
|
|
|
|
|
|
|
|
|
|
|
const userPickerVisible = ref(false)
|
|
|
|
const userPickerVisible = ref(false)
|
|
|
|
const userKeyword = ref('')
|
|
|
|
const userKeyword = ref('')
|
|
|
|
@ -230,13 +224,25 @@ const selectUser = (user: UserVO) => {
|
|
|
|
|
|
|
|
|
|
|
|
const buildDeptNameMap = (nodes: any[]) => {
|
|
|
|
const buildDeptNameMap = (nodes: any[]) => {
|
|
|
|
const map: Record<number, string> = {}
|
|
|
|
const map: Record<number, string> = {}
|
|
|
|
|
|
|
|
const reverseMap: Record<string, number> = {}
|
|
|
|
const stack = [...nodes]
|
|
|
|
const stack = [...nodes]
|
|
|
|
while (stack.length) {
|
|
|
|
while (stack.length) {
|
|
|
|
const node = stack.pop()!
|
|
|
|
const node = stack.pop()!
|
|
|
|
if (typeof node.id === 'number') map[node.id] = node.name
|
|
|
|
if (typeof node.id === 'number') {
|
|
|
|
|
|
|
|
map[node.id] = node.name
|
|
|
|
|
|
|
|
if (node.name) reverseMap[String(node.name)] = node.id
|
|
|
|
|
|
|
|
}
|
|
|
|
if (Array.isArray(node.children) && node.children.length) stack.push(...node.children)
|
|
|
|
if (Array.isArray(node.children) && node.children.length) stack.push(...node.children)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
deptNameMap.value = map
|
|
|
|
deptNameMap.value = map
|
|
|
|
|
|
|
|
deptIdMap.value = reverseMap
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const normalizeDeptValue = (value: any) => {
|
|
|
|
|
|
|
|
if (value === undefined || value === null || value === '') return undefined
|
|
|
|
|
|
|
|
if (typeof value === 'number') return value
|
|
|
|
|
|
|
|
const byName = deptIdMap.value[String(value)]
|
|
|
|
|
|
|
|
return byName === undefined ? undefined : byName
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const ensureOptionsLoaded = async () => {
|
|
|
|
const ensureOptionsLoaded = async () => {
|
|
|
|
@ -270,6 +276,8 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) =>
|
|
|
|
formLoading.value = true
|
|
|
|
formLoading.value = true
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
formData.value = await DeviceLedgerApi.getDeviceLedger(id)
|
|
|
|
formData.value = await DeviceLedgerApi.getDeviceLedger(id)
|
|
|
|
|
|
|
|
formData.value.workshop = normalizeDeptValue((formData.value as any).workshop)
|
|
|
|
|
|
|
|
formData.value.systemOrg = normalizeDeptValue((formData.value as any).systemOrg)
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
formLoading.value = false
|
|
|
|
formLoading.value = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -286,11 +294,11 @@ const submitForm = async () => {
|
|
|
|
formLoading.value = true
|
|
|
|
formLoading.value = true
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const workshopId = formData.value.workshop
|
|
|
|
const workshopId = formData.value.workshop
|
|
|
|
const useDeptId = formData.value.useDept
|
|
|
|
const systemOrgId = formData.value.systemOrg
|
|
|
|
const data = {
|
|
|
|
const data = {
|
|
|
|
...(formData.value as any),
|
|
|
|
...(formData.value as any),
|
|
|
|
workshop: typeof workshopId === 'number' ? deptNameMap.value[workshopId] : undefined,
|
|
|
|
workshop: typeof workshopId === 'number' ? deptNameMap.value[workshopId] : undefined,
|
|
|
|
useDept: typeof useDeptId === 'number' ? deptNameMap.value[useDeptId] : undefined
|
|
|
|
systemOrg: typeof systemOrgId === 'number' ? deptNameMap.value[systemOrgId] : undefined
|
|
|
|
} as unknown as DeviceLedgerVO
|
|
|
|
} as unknown as DeviceLedgerVO
|
|
|
|
if (formType.value === 'create') {
|
|
|
|
if (formType.value === 'create') {
|
|
|
|
await DeviceLedgerApi.createDeviceLedger(data)
|
|
|
|
await DeviceLedgerApi.createDeviceLedger(data)
|
|
|
|
@ -321,9 +329,8 @@ const resetForm = () => {
|
|
|
|
supplier: undefined,
|
|
|
|
supplier: undefined,
|
|
|
|
workshop: undefined,
|
|
|
|
workshop: undefined,
|
|
|
|
deviceLocation: undefined,
|
|
|
|
deviceLocation: undefined,
|
|
|
|
useDept: undefined,
|
|
|
|
systemOrg: undefined,
|
|
|
|
deviceManager: undefined,
|
|
|
|
deviceManager: undefined,
|
|
|
|
quantity: 1,
|
|
|
|
|
|
|
|
productionDate: undefined,
|
|
|
|
productionDate: undefined,
|
|
|
|
factoryEntryDate: undefined,
|
|
|
|
factoryEntryDate: undefined,
|
|
|
|
remark: undefined,
|
|
|
|
remark: undefined,
|
|
|
|
|