parent
e96599b411
commit
20f28f2a55
@ -0,0 +1,73 @@ |
||||
<template> |
||||
<el-dialog |
||||
class="com-dialog" |
||||
v-model="openDomainTreeFlag" |
||||
title="新增设备类型软件版本系统管理域" |
||||
> |
||||
<div style="display: flex; justify-content: center"> |
||||
<el-transfer |
||||
:titles="['可选系统管理域', '已选系统管理域']" |
||||
v-model="target" |
||||
:data="resource" |
||||
v-loading="loading" |
||||
/> |
||||
</div> |
||||
<template #footer> |
||||
<el-button type="primary" @click="submit">确定</el-button> |
||||
<el-button>取消</el-button> |
||||
</template> |
||||
</el-dialog> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { transferOption } from "@/api/domain"; |
||||
import { DomainOption } from "@/api/domain/types"; |
||||
import { editVerDomain, listVerDomain } from "@/api/device-type-ver"; |
||||
|
||||
const loading = ref<boolean>(false); |
||||
const openDomainTreeFlag = ref<boolean>(false); |
||||
const typeAndVerId = ref<number>(0); |
||||
const openDomainTree = (typeAndVerId_?: number) => { |
||||
openDomainTreeFlag.value = true; |
||||
typeAndVerId.value = typeAndVerId_; |
||||
loadResource(); |
||||
loadTarget(); |
||||
}; |
||||
defineExpose({ openDomainTree }); |
||||
const loadResource = async () => { |
||||
loading.value = true; |
||||
await transferOption() |
||||
.then(({ data }) => { |
||||
resource.value = data; |
||||
}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}; |
||||
const loadTarget = async () => { |
||||
loading.value = true; |
||||
await listVerDomain(typeAndVerId.value) |
||||
.then(({ data }) => { |
||||
target.value = data; |
||||
}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}; |
||||
const resource = ref<DomainOption[]>([]); |
||||
const target = ref<number[]>([]); |
||||
const emit = defineEmits(["success"]); |
||||
const submit = () => { |
||||
loading.value = true; |
||||
editVerDomain(typeAndVerId.value, target.value) |
||||
.then(() => { |
||||
emit("success"); |
||||
openDomainTreeFlag.value = false; |
||||
}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
}; |
||||
</script> |
||||
|
||||
<style scoped></style> |
@ -0,0 +1,113 @@ |
||||
<template> |
||||
<el-dialog |
||||
class="com-dialog" |
||||
v-model="vendorProfileFlag" |
||||
align-center |
||||
title="新增厂商配置文件信息" |
||||
> |
||||
<el-form |
||||
ref="addVendorProfileRef" |
||||
v-loading="loading" |
||||
:rules="rules" |
||||
:model="formData" |
||||
> |
||||
<el-row :gutter="20"> |
||||
<el-col :span="12"> |
||||
<el-form-item label="厂商配置文件名称" prop="fileName"> |
||||
<el-input v-model="formData.fileName" /> |
||||
</el-form-item> |
||||
</el-col> |
||||
<el-col :span="12"> |
||||
<el-form-item label="厂商配置文件描述信息"> |
||||
<el-input v-model="formData.fileDesc" type="textarea" :rows="1" /> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
<el-upload |
||||
drag |
||||
action="#" |
||||
:limit="1" |
||||
:auto-upload="false" |
||||
v-model:file-list="fileList" |
||||
> |
||||
<el-icon class="el-icon--upload"><upload-filled /></el-icon> |
||||
<div class="el-upload__text">拖拽上传 或 <em>点击上传</em></div> |
||||
</el-upload> |
||||
</el-form> |
||||
<template #footer> |
||||
<el-button type="primary" @click="handleUpload(addVendorProfileRef)" |
||||
>保存</el-button |
||||
> |
||||
<el-button>取消</el-button> |
||||
</template> |
||||
</el-dialog> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { UploadFilled } from "@element-plus/icons-vue"; |
||||
import { VendorProfile } from "@/api/file/types"; |
||||
import { FormInstance, FormRules, UploadUserFile } from "element-plus"; |
||||
import { uploadApi } from "@/api/file"; |
||||
import { addVendorProfile } from "@/api/device-type-ver"; |
||||
|
||||
const loading = ref<boolean>(false); |
||||
const vendorProfileFlag = ref<boolean>(false); |
||||
const addVendorProfileRef = ref(); |
||||
const fileList = ref<UploadUserFile[]>([]); |
||||
const formData = ref<VendorProfile>({ |
||||
fileType: "1", |
||||
}); |
||||
const open = (typeAndVerId?: number) => { |
||||
resetForm(addVendorProfileRef.value); |
||||
fileList.value = []; |
||||
formData.value = { |
||||
fileType: "1", |
||||
}; |
||||
vendorProfileFlag.value = true; |
||||
formData.value.typeAndVerId = typeAndVerId; |
||||
}; |
||||
defineExpose({ open }); |
||||
const rules = reactive<FormRules<VendorProfile>>({ |
||||
fileName: [{ required: true, message: "请填写文件名称", trigger: "blur" }], |
||||
}); |
||||
const resetForm = (formEl: FormInstance | undefined) => { |
||||
if (!formEl) return; |
||||
formEl.resetFields(); |
||||
}; |
||||
const emit = defineEmits(["success"]); |
||||
const handleUpload = async (formEl: FormInstance | undefined) => { |
||||
if (fileList.value.length === 0) { |
||||
ElMessage.error("请选择文件上传"); |
||||
return; |
||||
} |
||||
if (!formEl) return; |
||||
await formEl.validate((valid, fields) => { |
||||
if (valid) { |
||||
loading.value = true; |
||||
const file = fileList.value[0].raw; |
||||
const dotIndex: any = file?.name.lastIndexOf("."); |
||||
if (dotIndex === -1) { |
||||
ElMessage.error("文件没有后缀,无法上传"); |
||||
return; |
||||
} |
||||
const fileName = formData.value.fileName; |
||||
const fileType = formData.value.fileType; |
||||
formData.value.fileName = |
||||
fileName + "." + file?.name.substring(dotIndex + 1); |
||||
uploadApi(file, fileName, fileType) |
||||
.then(({ data }) => { |
||||
formData.value.fileUrl = data; |
||||
addVendorProfile(formData.value).then(() => { |
||||
emit("success"); |
||||
vendorProfileFlag.value = false; |
||||
}); |
||||
}) |
||||
.finally(() => { |
||||
loading.value = false; |
||||
}); |
||||
} |
||||
}); |
||||
}; |
||||
</script> |
||||
|
||||
<style scoped></style> |
Loading…
Reference in new issue