| | |
| | | v-model="isShowDialog" |
| | | width="1000px" |
| | | draggable |
| | | :fullscreen="full" |
| | | > |
| | | <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> |
| | | <el-container class="layout-container-demo" style="height: 500px;overflow: auto;min-width: 960px"> |
| | | <el-aside width="200px"> |
| | | <el-input v-model="filterText" placeholder="请输入组织机构过滤" /> |
| | |
| | | :data="data" |
| | | :props="defaultProps" |
| | | default-expand-all |
| | | @node-click="handleNodeClick" |
| | | :filter-node-method="filterNode" |
| | | /> |
| | | </el-aside> |
| | | <el-container style="margin: 0 15px;min-width:560px;"> |
| | | <el-header style="font-size: 12px"> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-form :inline="true" :model="ruleForm" class="demo-form-inline"> |
| | | <el-form-item> |
| | | <el-input size="default" v-model="formInline.name" placeholder="登录名"> </el-input> |
| | | <el-input size="default" v-model="ruleForm.name" placeholder="登录名"> </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="default" type="primary" class="ml10" @click="onSubmit"> |
| | |
| | | <el-table |
| | | :data="tableData" |
| | | :header-cell-style="{background:'#f6f7fa',color:'#909399',fontWeight:400}" |
| | | @cell-click="checkbox" |
| | | > |
| | | <el-table-column type="selection" width="55"/> |
| | | <el-table-column prop="date" label="登录名" width="100" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="name" label="用户名" width="100" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="address" label="所属机构" width="115" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="department" label="所属部门" width="115" show-overflow-tooltip sortable/> |
| | | <el-table-column label="状态" |
| | | width="80" |
| | | prop="tag" |
| | | :filters="[ |
| | | { text: '正常', value: 'Home' }, |
| | | { text: '不正常', value: 'Office' }, |
| | | ]" |
| | | :filter-method="filterTag" |
| | | filter-placement="bottom-end"> |
| | | <el-table-column type="selection" width="55"> |
| | | <template #default="scope"> |
| | | <el-tag |
| | | :type="scope.row.tag === 'Home' ? '' : 'success'" |
| | | disable-transitions |
| | | >{{ scope.row.tag }}</el-tag |
| | | > |
| | | <el-checkbox-group v-model="checkbox1"> |
| | | <el-checkbox :label="scope.row.uid" size="large">{{ null }}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="realName" label="登录名" width="100" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="username" label="用户名" width="100" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="address" label="所属机构" width="115" show-overflow-tooltip sortable /> |
| | | <el-table-column prop="address" label="所属部门" width="115" show-overflow-tooltip sortable/> |
| | | <el-table-column align="center" prop="type" label="状态" /> |
| | | <!-- <el-table-column label="状态"--> |
| | | <!-- width="80"--> |
| | | <!-- prop="tag"--> |
| | | <!-- :filters="[--> |
| | | <!-- { text: '正常', value: 'Home' },--> |
| | | <!-- { text: '不正常', value: 'Office' },--> |
| | | <!-- ]"--> |
| | | <!-- :filter-method="filterTag"--> |
| | | <!-- filter-placement="bottom-end">--> |
| | | <!-- <template #default="scope">--> |
| | | <!-- <el-tag--> |
| | | <!-- :type="scope.row.tag === 'Home' ? '' : 'success'"--> |
| | | <!-- disable-transitions--> |
| | | <!-- >{{ scope.row.tag }}</el-tag--> |
| | | <!-- >--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <div class="pages"> |
| | | <el-pagination |
| | |
| | | v-model:page-size="pageSize" |
| | | :page-sizes="[10, 20, 30]" |
| | | :pager-count="5" |
| | | :small="small" |
| | | :disabled="disabled" |
| | | :background="background" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="40" |
| | | :total="total" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | |
| | | </el-main> |
| | | </el-container> |
| | | <div style="width: 200px;"> |
| | | <el-tag v-for="tag in dynamicTags" :key="tag" class="mx-1" style="margin:5px" closable :disable-transitions="false" @close="handleClose(tag)"> |
| | | {{ tag }} |
| | | </el-tag> |
| | | <div v-if="dynamicTags[0]==''?false:true"> |
| | | <el-tag |
| | | v-for="tag in dynamicTags" |
| | | :key="tag" |
| | | class="mx-1" |
| | | style="margin: 5px" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | | > |
| | | {{ tag.realName }} |
| | | </el-tag> |
| | | </div> |
| | | </div> |
| | | </el-container> |
| | | <template #footer> |
| | |
| | | defineComponent, |
| | | watch, |
| | | reactive, |
| | | onMounted, |
| | | } from 'vue'; |
| | | |
| | | import type { |
| | | ElTree, |
| | | // ElTable, |
| | | } from 'element-plus' |
| | | |
| | | import { |
| | | ElMessage, |
| | | } from 'element-plus'; |
| | | import { |
| | | FullScreen |
| | | } from '@element-plus/icons-vue' |
| | | import {goalManagementApi} from "/@/api/goalManagement"; |
| | | interface Tree { |
| | | id: number |
| | | label: string |
| | |
| | | components: { |
| | | // Search, |
| | | }, |
| | | setup() { |
| | | setup(props, { emit }) { |
| | | const isShowDialog = ref(false) |
| | | // 打开弹窗 |
| | | const openDialog = () => { |
| | | const openDialog = (type:any) => { |
| | | types.value=type |
| | | isShowDialog.value = true; |
| | | }; |
| | | // 关闭弹窗 |
| | |
| | | closeDialog(); |
| | | }; |
| | | |
| | | |
| | | //部门树 |
| | | const department = () => { |
| | | goalManagementApi() |
| | | .getTreedepartment() |
| | | .then((res) => { |
| | | if (res.data.code == 200) { |
| | | data.value = res.data.data; |
| | | } else { |
| | | ElMessage.error(res.data.msg); |
| | | } |
| | | }); |
| | | }; |
| | | const defaultProps = { |
| | | label: 'depName', |
| | | children: 'children', |
| | | value: 'depId', |
| | | } |
| | | //部门树查询 |
| | | const filterText = ref('') |
| | | const treeRef = ref<InstanceType<typeof ElTree>>() //实例化 |
| | | |
| | | const defaultProps = { |
| | | children: 'children', |
| | | label: 'label', |
| | | watch(filterText, (val) => { |
| | | treeRef.value!.filter(val); |
| | | }); |
| | | // 节点过滤模糊搜索 |
| | | const filterNode = (depName: string, data: Tree) => { |
| | | if (!depName) return true |
| | | return data.depName.includes(depName) |
| | | } |
| | | onMounted(() => { |
| | | department(); |
| | | }); |
| | | //左边树形部分点击获取回调 |
| | | const names = ref<any>(); |
| | | const handleNodeClick = (data: Tree) => { |
| | | goalManagementApi() |
| | | .getManName(data.depId) |
| | | .then((res) => { |
| | | if (res.data.code == 200) { |
| | | tableData.value=res.data.data |
| | | }else{ |
| | | ElMessage.error(res.data.msg); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | |
| | | // 监听搜索关键字改变 |
| | | watch(filterText, (val) => { |
| | | treeRef.value!.filter(val) |
| | | }) |
| | | |
| | | // 节点过滤模糊搜索 |
| | | const filterNode = (value: string, data: Tree) => { |
| | | if (!value) return true |
| | | return data.label.includes(value) |
| | | } |
| | | |
| | | // 树形结构内容 |
| | | const data: Tree[] = [ |
| | | { |
| | | id: 1, |
| | | label: '广汇能源综合物流发展有限责任公司', |
| | | children: [ |
| | | { |
| | | id: 4, |
| | | label: '经营班子', |
| | | children: [] |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 2, |
| | | label: '生产运行部', |
| | | children: [ |
| | | { |
| | | id: 5, |
| | | label: '工艺二班', |
| | | }, |
| | | { |
| | | id: 6, |
| | | label: '灌装一班', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 3, |
| | | label: '设备部', |
| | | children: [ |
| | | { |
| | | id: 7, |
| | | label: '仪表班', |
| | | }, |
| | | { |
| | | id: 8, |
| | | label: '机修班', |
| | | }, |
| | | ], |
| | | }, |
| | | ] |
| | | const data = ref() |
| | | |
| | | |
| | | |
| | | |
| | | // const item = { |
| | | // date: '孙刚', |
| | | // name: '龚赛健', |
| | |
| | | // tag: '正常', |
| | | // } |
| | | // const tableData = ref(Array.from({ length: 7 }).fill(item)) |
| | | const tableData = [ |
| | | { |
| | | date: '孙刚', |
| | | name: '孙刚', |
| | | address: '', |
| | | department: '经营班子', |
| | | tag: '正常', |
| | | }, |
| | | { |
| | | date: '谭柏', |
| | | name: '谭柏', |
| | | address: '', |
| | | department: '经营班子', |
| | | tag: '正常', |
| | | }, |
| | | { |
| | | date: '倪威', |
| | | name: '倪威', |
| | | address: '', |
| | | department: '经营班子', |
| | | tag: '正常', |
| | | }, |
| | | { |
| | | date: '倪玲婕', |
| | | name: '倪玲婕', |
| | | address: '', |
| | | department: '经营班子', |
| | | tag: '正常', |
| | | }, |
| | | ]; |
| | | // 定义表单搜索 |
| | | const formInline = reactive({ |
| | | const ruleForm = reactive({ |
| | | name: '', |
| | | }) |
| | | const types=ref() |
| | | // 搜索按钮 |
| | | const onSubmit = () => { |
| | | console.log('submit!') |
| | | let obj = JSON.parse(JSON.stringify(dynamicTags.value)); |
| | | emit('SearchUser', obj[0],types.value); |
| | | isShowDialog.value = false; |
| | | } |
| | | |
| | | // const multipleTableRef = ref<InstanceType<typeof ElTable>>() |
| | | // 右方点击添加后显示标签 |
| | | const dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']); |
| | | const handleClose = (tag: string) => { |
| | | dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); |
| | | const dynamicTags = ref(['']); |
| | | const handleClose = () => { |
| | | dynamicTags.value.push(checkbox1.value) |
| | | // dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); |
| | | checkbox1.value = ''; |
| | | }; |
| | | |
| | | const checkbox1 = ref(''); |
| | | const checkbox = (event: any) => { |
| | | dynamicTags.value[0] = event; |
| | | }; |
| | | const tableData = ref(); |
| | | // 分页 |
| | | const pageIndex = ref(4); |
| | | const pageSize = ref(10); |
| | |
| | | const handleCurrentChange = (val: number) => { |
| | | console.log(`current page: ${val}`); |
| | | }; |
| | | //全屏 |
| | | const full = ref(false); |
| | | const toggleFullscreen = () => { |
| | | if (full.value == false) { |
| | | full.value = true; |
| | | } else { |
| | | full.value = false; |
| | | } |
| | | }; |
| | | return { |
| | | openDialog, |
| | | closeDialog, |
| | |
| | | filterNode, |
| | | data, |
| | | tableData, |
| | | formInline, |
| | | ruleForm, |
| | | onSubmit, |
| | | // multipleTableRef, |
| | | handleClose, |
| | |
| | | handleCurrentChange, |
| | | pageIndex, |
| | | pageSize, |
| | | toggleFullscreen, |
| | | FullScreen, |
| | | full, |
| | | names, |
| | | handleNodeClick, |
| | | types, |
| | | checkbox1, |
| | | checkbox, |
| | | }; |
| | | }, |
| | | }); |