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