From 592c1750b148874737cdfba4b22b6229f9805fe6 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 02 七月 2025 14:55:27 +0800 Subject: [PATCH] 新增 --- src/views/build/conpanyFunctionConsult/qualityManage/rangeManage/catalogRange/components/editDialog.vue | 175 ++++++++++++++++------------------------------------------ 1 files changed, 49 insertions(+), 126 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/qualityManage/rangeManage/catalogRange/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/qualityManage/rangeManage/catalogRange/components/editDialog.vue index dc360f7..ab01eb2 100644 --- a/src/views/build/conpanyFunctionConsult/qualityManage/rangeManage/catalogRange/components/editDialog.vue +++ b/src/views/build/conpanyFunctionConsult/qualityManage/rangeManage/catalogRange/components/editDialog.vue @@ -9,42 +9,23 @@ :close-on-click-modal="false" > <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" > - <el-form-item v-if="state.isAdmin" label="企业:" prop="companyId"> - <el-select - v-model="state.form.companyName" - filterable - remote - @change="selectValue" - reserve-keyword - placeholder="请输入企业名称" - remote-show-suffix - :remote-method="getCompanyList" - style="width: 100%" - > - <el-option - v-for="item in state.companyList" - :key="item.id" - :label="item.name" - :value="item.name" - /> - </el-select> - </el-form-item> - <el-form-item label="序号:" prop="num"> - <el-input v-model.trim="state.form.num" :disabled="state.title =='查看'" placeholder="序号"></el-input> - </el-form-item> - <el-form-item label="上级分支:" prop="parentId"> + <el-form-item label="上级分支:" prop="parentId" > <el-tree-select v-model="state.form.parentId" :data="state.menuOptions" - :props="{ value: 'id', label: 'label', children: 'children' }" + :props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" placeholder="上级分支" check-strictly style="width: 100%" /> </el-form-item> - <el-form-item label="目录名称:" prop="name"> - <el-input v-model.trim="state.form.name" :disabled="state.title =='查看'" placeholder="目录名称"></el-input> + <el-form-item label="序号:" prop="number"> + <el-input v-model.trim="state.form.number" :disabled="state.title =='查看'" placeholder="序号"></el-input> + </el-form-item> + + <el-form-item label="目录名称:" prop="mess"> + <el-input v-model.trim="state.form.mess" :disabled="state.title =='查看'" placeholder="目录名称"></el-input> </el-form-item> </el-form> <template #footer v-if="state.title !='查看'"> @@ -59,13 +40,7 @@ <script setup> import {reactive, ref, toRefs, defineEmits, nextTick, onMounted} from 'vue' import {ElMessage} from "element-plus"; -import {addUser, editUser, getUserById, resetPwd} from "@/api/onlineEducation/user" -import {Base64} from "js-base64" -import {getCompany} from "@/api/onlineEducation/company"; -import {addIndustryTemp, updateIndustryTemp, updateInfoPlatforms} from "@/api/staffManage/staff"; -import {getToken} from "@/utils/auth"; -import {delPic} from "@/api/onlineEducation/banner"; -import {listMenu} from "@/api/system/menu"; +import {addCatalogue, editCatalogue, getCatalogue} from "@/api/qualityManage/catalog"; const emit = defineEmits(["getList"]); const dialogVisible = ref(false) @@ -74,20 +49,19 @@ title: '', form: { id: null, - name: '', - num:'', - companyId: null, + mess: '', + number:'', parentId: null }, formRules:{ - companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], - name: [{ required: true, message: '请输入目录名称', trigger: 'blur' }], - num: [{ required: true, message: '请输入序号', trigger: 'blur' }], + mess: [{ required: true, message: '请输入目录名称', trigger: 'blur' }], + number: [{ required: true, message: '请输入序号', trigger: 'blur' }], parentId:[{ required: true, message: '请选择上级分支', trigger: 'blur' }], }, isAdmin: false, companyList: [], - menuOptions: [] + menuOptions: [], + }) onMounted(() => { @@ -96,15 +70,16 @@ const openDialog = async (type, value,companyId, isAdmin,flag) => { state.isAdmin = isAdmin if(isAdmin){ - await getCompanyList() await getTreeselect() } state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' - state.form.companyId = companyId if(state.title == '新增' && flag == 2){ state.form.parentId = value.id - }else if(state.title == '新增' && flag == 1){ + + }else if(state.title == '新增' && flag == 1 ){ + state.form.parentId = 0 + } if(state.title == '编辑'||state.title == '查看'){ Object.keys(state.form).forEach(key => { @@ -123,7 +98,8 @@ if(valid){ if(state.title == '新增'){ const {id,...data} = state.form - const res = await addIndustryTemp(data) + data.type = 1 + const res = await addCatalogue(data) if(res.code == 200){ ElMessage.success(res.message) emit('getList') @@ -133,7 +109,8 @@ ElMessage.warning(res.message) } }else{ - const res = await updateIndustryTemp(state.form) + const {...data} = state.form + const res = await editCatalogue(data) if(res.code == 200){ ElMessage.success(res.message) emit('getList') @@ -146,98 +123,44 @@ } } const getTreeselect =async ()=> { - // state.menuOptions = []; - // const res = await addIndustryTemp() - // if(res.code == 200){ - // const menu = { id: 0, name: "1范围", children: [] }; - // menu.children = response.data - // state.menuOptions.push(menu); - // }else{ - // ElMessage.warning(res.message) - // } state.menuOptions = []; - const menu = { id: 0, label: "1范围", children: [] }; - menu.children = [ - { - id: 1, - label: '1.1规范范围管理', - children: [ - { - id: 2, - label: 'Level three 1-1-1', - children: [ - { - id: 3, - label: 'Level three 1-1-1', - children: [ - { - id: 4, - label: 'Level three 1-1-1', - }, - ], - }, - ], - }, - ], - }, - { - id: 5, - label: '1.2收集需求', - }, - { - id: 6, - label: '1.3定义范围', - }, - ] + const param = { + type: 1, + } + const res = await getCatalogue(param) + if(res.code == 200){ + const menu = { id: 0, name: "主目录", children: [] }; + menu.children = await handleTree(res.data.data) state.menuOptions.push(menu); - + }else{ + ElMessage.warning(res.message) + } } +const handleTree = (val) => { + const traverse = (nodes, currentPath = '') => { + nodes.forEach((node, index) => { + node.name = `${node.number} ${node.mess}`; + // 递归处理子节点(传递当前序号路径) + if (node.children && node.children.length) { + traverse(node.children, node.number); + } + }); + }; + traverse(val); // 从根节点开始遍历 + return val; +} const handleClose = () => { state.form = { id: null, - name: '', - num:'', - companyId: null, + mess: '', + number:'', parentId: null } + state.isTree = false superRef.value.clearValidate(); superRef.value.resetFields() dialogVisible.value = false; -} -const selectValue = (val) => { - state.companyList.forEach(item => { - if(item.name === val){ - state.form.companyId = item.id - } - }) -} - -const getCompanyList = async (val)=>{ - if(val){ - const queryParams = { - name: val - } - const res = await getCompany(queryParams) - if (res.code == 200) { - state.companyList = res.data.list - - } else { - ElMessage.warning(res.message) - } - }else { - const queryParams = { - pageSize: 10, - pageNum: 1, - } - const res = await getCompany(queryParams) - if (res.code == 200) { - state.companyList = res.data.list - - } else { - ElMessage.warning(res.message) - } - } } defineExpose({ openDialog -- Gitblit v1.9.2