冀北需求变更整改

This commit is contained in:
GGJ
2025-01-07 16:32:42 +08:00
parent 7d90b6bfcc
commit 72f2c5d0f3
52 changed files with 536 additions and 254 deletions

View File

@@ -1,26 +1,28 @@
<template>
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title" width="700px">
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title" width="500px">
<el-scrollbar>
<el-form :inline="false" :model="form" label-width="auto" :rules="rules" ref="formRef">
<el-form-item label="上级名称">
<!-- <el-input v-model="form.pid" placeholder="上级名称" /> -->
<!-- <el-tree-select
v-model="form.pid"
:data="dataTree"
check-strictly
clearable
:render-after-expand="false"
:props="defaultProps"
/> -->
<el-form :inline="false" :model="form" label-width="auto" class="form-one" :rules="rules" ref="formRef">
<el-form-item label="上级名称" v-if="title == '新增'">
<el-select v-model="form.pid" placeholder="请选择上级名称" clearable>
<el-option v-for="item in dataTree" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="选择修改" v-if="title == '修改'">
<el-cascader v-model="cascaderId" :options="dataTree" placeholder="请选择需要修改的内容" filterable
checkStrictly :props="cascaderProps" @change="change" />
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="名称" />
</el-form-item>
<el-form-item label="标准" v-if="form.pid?.length > 0">
<el-form-item label="标准" v-if="title == '新增' && form.pid?.length > 0">
<el-upload v-model:file-list="urlList" ref="upload" action="" :limit="1" :auto-upload="false"
:on-exceed="handleExceed">
<el-button type="primary">上传</el-button>
</el-upload>
</el-form-item>
<el-form-item label="标准" v-if="title == '修改' && cascaderId.length > 1">
<el-upload v-model:file-list="urlList" ref="upload" action="" :limit="1" :auto-upload="false"
:on-exceed="handleExceed">
<el-button type="primary">上传</el-button>
@@ -51,17 +53,21 @@ const title = ref('')
const emit = defineEmits(['getTree', 'onSubmit'])
const formRef = ref()
// 注意不要和表单ref的命名冲突
const form = reactive<anyObj>({
const form: any = reactive<anyObj>({
name: '',
pid: '',
url: ''
})
const cascaderId = ref([])
const urlList: any = ref([])
const loading=ref(false)
const defaultProps = {
const loading = ref(false)
const cascaderProps = {
children: 'children',
label: 'name',
value: 'id'
value: 'id',
checkStrictly: true,
}
const rules = {
name: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }]
@@ -69,32 +75,33 @@ const rules = {
const dataTree: any = ref([])
const open = (text: string, data?: anyObj) => {
getTheTree()
cascaderId.value = []
title.value = text
urlList.value = []
dialogVisible.value = true
if (data) {
// 表单赋值
for (let key in form) {
form[key] = data[key]
}
form.id = data.id
if (form.pid == 0) {
form.pid = ''
}
if (data.url?.length > 0) {
getFileNameAndFilePath({ filePath: data.url }).then(res => {
urlList.value.push({
name: res.data.fileName,
url: res.data.name
})
})
}
} else {
// 在此处恢复默认表单
for (let key in form) {
form[key] = ''
}
// if (data) {
// // 表单赋值
// for (let key in form) {
// form[key] = data[key]
// }
// form.id = data.id
// if (form.pid == 0) {
// form.pid = ''
// }
// if (data.url?.length > 0) {
// getFileNameAndFilePath({ filePath: data.url }).then(res => {
// urlList.value.push({
// name: res.data.fileName,
// url: res.data.name
// })
// })
// }
// } else {
// 在此处恢复默认表单
for (let key in form) {
form[key] = ''
}
// }
}
const handleExceed: UploadProps['onExceed'] = (files) => {
upload.value!.clearFiles()
@@ -108,8 +115,45 @@ const getTheTree = () => {
dataTree.value = res.data
})
}
const submit = async() => {
loading.value=true
const change = (val: any) => {
const selectedNode = findNodeById(dataTree.value, val[val.length - 1]);
urlList.value = []
if (val.length > 0) {
form.name = selectedNode.name
form.id = selectedNode.id
form.pid = selectedNode.pid
if (selectedNode.url?.length > 0) {
getFileNameAndFilePath({ filePath: selectedNode.url }).then(res => {
urlList.value.push({
name: res.data.fileName,
url: res.data.name
})
})
}
} else {
form.name = ''
form.id = ''
form.pid = ''
form.url = ''
}
}
const findNodeById = (tree: any[], id: any) => {
for (const node of tree) {
if (node.id === id) {
return node;
}
if (node.children) {
const found: any = findNodeById(node.children, id);
if (found) {
return found;
}
}
}
return null;
};
const submit = async () => {
loading.value = true
formRef.value.validate(async (valid: boolean) => {
if (valid) {
if (urlList.value.length > 0 && form.pid != '') {
@@ -141,7 +185,7 @@ const submit = async() => {
setTimeout(() => {
if (title.value == '新增') {
libstandardAdd({
pid: form.pid == '' ? '' : form.pid,
pid: form.pid == '' ? null : form.pid,
name: form.name,
url: form.url
}).then(res => {
@@ -151,7 +195,7 @@ const submit = async() => {
})
} else {
updateStandardLibrary({
pid: form.pid == '' ? '' : form.pid,
pid: form.pid == '' ? null : form.pid,
name: form.name,
url: form.url,
id: form.id
@@ -165,7 +209,7 @@ const submit = async() => {
}
})
setTimeout(() => {
loading.value=false
loading.value = false
}, 1000);
}
const handleClose = () => {