| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | const Api = { |
| | | getOrganizational: "/organizational/list", // å级æ |
| | | } |
| | | export function getOrganizationalApi() { |
| | | return request({ |
| | | url: Api.getOrganizational, |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | export function getMaterialList(params) { |
| | | export function getMaterialList() { |
| | | return request({ |
| | | url: '/material/list', |
| | | method: 'get', |
| | | params: { |
| | | specificationName: params |
| | | } |
| | | }) |
| | | } |
| | | |
| | |
| | | <template> |
| | | <div>131</div> |
| | | <div class="main-div"> |
| | | <div class="side_div"> |
| | | <el-input placeholder="è¾å
¥å
³é®åè¿è¡è¿æ»¤" v-model="filterText"> |
| | | </el-input> |
| | | <el-tree |
| | | class="filter-tree" |
| | | :data="data" |
| | | node-key="id" |
| | | :props="defaultProps" |
| | | default-expand-all |
| | | :filter-node-method="filterNode" |
| | | ref="tree" |
| | | @node-click="handleNodeClick" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | <div class="table_div"> |
| | | <div class="table_top_div"> |
| | | <span class="top_span" v-if="msg !== ''">{{ msg }}</span> |
| | | <div style="text-align: right; float: right"> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-circle-plus-outline" |
| | | >æ°å¢</el-button |
| | | > |
| | | <el-button size="small" icon="el-icon-delete-solid">å é¤</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table-main-div"> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="tableData" |
| | | border |
| | | height="100%" |
| | | tooltip-effect="dark" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column label="æ¥æ" width="120"> |
| | | <template slot-scope="scope">{{ scope.row.date }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="å§å" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="address" label="å°å" show-overflow-tooltip> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getOrganizationalApi } from "@/api/laboratory/organizational"; |
| | | export default { |
| | | name: "Organizational", |
| | | data() { |
| | | return { |
| | | filterText: "", |
| | | msg: "", |
| | | data: [], |
| | | // treeæ é»è®¤å¼é
ç½® |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "department", |
| | | id: "id", |
| | | }, |
| | | tableData: [ |
| | | { |
| | | date: "2016-05-02", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-04", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1517 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-01", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-03", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1516 å¼", |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | | // æ 䏿¹æç´¢æ¡è¿æ»¤å¨ |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.department.indexOf(value) !== -1; |
| | | }, |
| | | // åå§åè·åæ æ°æ® |
| | | treeInitialization() { |
| | | getOrganizationalApi().then((res) => { |
| | | this.data = res.data; |
| | | }); |
| | | }, |
| | | // è·åæ è·¯å¾ |
| | | getParentData(node, department) { |
| | | if (node !== null) { |
| | | if (node.data.department !== undefined) { |
| | | this.msg = node.data.department + " > " + department; |
| | | } |
| | | this.getParentData(node.parent, this.msg); |
| | | } |
| | | }, |
| | | // ç¹å»æ èç¹ |
| | | handleNodeClick(data, node, element) { |
| | | this.getParentData(node.parent, node.data.department); |
| | | console.log(`output->this.msg`, this.msg); |
| | | console.log(`output->data`, data); |
| | | console.log(`output->node`, node); |
| | | console.log(`output->element`, element); |
| | | }, |
| | | // æ¹åå¤éæ¡ç¶æ |
| | | toggleSelection(rows) { |
| | | if (rows) { |
| | | rows.forEach((row) => { |
| | | this.$refs.multipleTable.toggleRowSelection(row); |
| | | }); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }, |
| | | // ç¹å»å¤éæ¡ä»¥åçæä½ |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.treeInitialization(); |
| | | }, |
| | | watch: { |
| | | filterText(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style></style> |
| | | <style lang="scss"> |
| | | .main-div { |
| | | width: 99.2% !important; |
| | | height: 94vh !important; |
| | | margin: 5px 5px 5px 5px; |
| | | } |
| | | .side_div { |
| | | float: left; |
| | | width: 300px; |
| | | height: 95%; |
| | | margin-bottom: 5px; |
| | | background-color: #ffffff; |
| | | padding: 15px; |
| | | } |
| | | .table_div { |
| | | margin-left: 6px; |
| | | float: left; |
| | | width: calc(100% - 306px); |
| | | height: 95%; |
| | | background-color: #ffffff; |
| | | } |
| | | .filter-tree { |
| | | margin-top: 6px; |
| | | } |
| | | .table_top_div { |
| | | height: 80px; |
| | | width: 100%; |
| | | padding-top: 23px; |
| | | padding-right: 50px; |
| | | } |
| | | .table-main-div { |
| | | width: 100%; |
| | | height: 90.3%; |
| | | padding: 10px; |
| | | } |
| | | .top_span { |
| | | margin-left: 12px; |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | color: #999999; |
| | | } |
| | | </style> |
| | |
| | | methods: { |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | return data.name.indexOf(value) !== -1; |
| | | }, |
| | | // è·åbomæ çæ åæ°æ® |
| | | async getStandardTree() { |
| | | console.log(`output->æ§è¡å`, "æ§è¡å"); |
| | | const { data } = await getMaterialList(); |
| | | this.standardTree = data.map((item) => { |
| | | let name = null; |
| | |
| | | const treeOptions = JSON.parse(JSON.stringify(this.standardTree)); |
| | | this.getDefault(treeOptions, 0); |
| | | this.formTypeOptions = treeOptions; |
| | | console.log(`output->===========`, "==========="); |
| | | this.$nextTick().then(() => { |
| | | const firstNode = document.querySelector( |
| | | ".el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node .el-tree-node__children .el-tree-node" |
| | | ); |
| | | console.log(`output->firstNode`, firstNode); |
| | | firstNode.click(); |
| | | // console.log(firstNode); |
| | | }); |
| | | }, |
| | | getDefault(arr, index) { |
| | |
| | | // æ¯åèç¹ |
| | | if (node.level === 4) { |
| | | this.getParentData(node.parent, node.data.name); |
| | | console.log(`output->this.msg`, this.msg); |
| | | // åä¸éä¸èç¹ |
| | | this.selectData = data; |
| | | // eslint-disable-next-line prefer-const |
| | | this.getTableByClick(data); |
| | | } |
| | | if (!("children" in data)) { |
| | |
| | | } |
| | | }); |
| | | this.tableData = res.data; |
| | | console.log(`output->this.tableData`, this.tableData); |
| | | this.selectDataList(); |
| | | }); |
| | | }, |
| | |
| | | this.getTableByClick(this.selectData); |
| | | }, |
| | | changeCascader(data) { |
| | | console.log(`output->----------`, data); |
| | | this.addTreeForm.addTypeArr = data; |
| | | }, |
| | | closeAddTreeForm() { |
| | |
| | | } else { |
| | | this.deleteList.splice(0, this.deleteList.length); |
| | | } |
| | | console.log(`output->this.`, this.deleteList); |
| | | }, |
| | | //éæ©æè¡ |
| | | selectTr(selection, row) { |
| | |
| | | } |
| | | }); |
| | | } |
| | | console.log(`output->this.deleteList`, this.deleteList); |
| | | }, |
| | | //éå½å级 |
| | | toggleSelect(data, flag, type) { |