| | |
| | | :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 !='查看'"> |
| | |
| | | <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) |
| | |
| | | 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(() => { |
| | | |
| | |
| | | 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 => { |
| | |
| | | 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') |
| | |
| | | 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') |
| | |
| | | } |
| | | } |
| | | 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 |