Merge remote-tracking branch 'origin/master'
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 getMenusTree(params) { |
| | | return request({ |
| | | url: '/role-manager/getMenusTree', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | export function getMaterialList(params) { |
| | | export function getMaterialList() { |
| | | return request({ |
| | | url: '/material/list', |
| | | method: 'get', |
| | | params: { |
| | | specificationName: params |
| | | } |
| | | }) |
| | | } |
| | | |
| | |
| | | <template> |
| | | <div>å·¥ä½ç»è®¡å¾</div> |
| | | <div class="work-main" style="overflow: scroll;width:100%;height:100vh"> |
| | | <div class="work-head"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="24"> |
| | | <el-card> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-form-item> |
| | | <p><span>*</span>æ£æµæ¥æ:</p> |
| | | <el-date-picker |
| | | v-model="dateTime" |
| | | type="daterange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <p><span>*</span>æ£éªç±»å:</p> |
| | | <el-select v-model="formInline.region" placeholder="éè´å
¥åº"> |
| | | <el-option label="åºåä¸" value="shanghai"></el-option> |
| | | <el-option label="åºåäº" value="beijing"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="buttons"> |
| | | <el-button>æ¸
空</el-button> |
| | | <el-button type="primary" @click="onSubmit">æ¥è¯¢</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="work-center" > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-card> |
| | | <p>è´è´£äººç»è®¡</p> |
| | | <div id="leaderStati" style="width:100%;height:400px;"></div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-card> |
| | | <p>å®éªåç»è®¡</p> |
| | | <div id="testerStati" style="width:100%;height:400px;"></div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-card> |
| | | <p>è´è´£äººåæ¶ç</p> |
| | | <div id="leaderTimly" style="width:100%;height:400px;"></div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-card> |
| | | <p>å®éªååæ¶ç</p> |
| | | <div id="testerTimly" style="width:100%;height:400px;"></div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="work-foot"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | formInline: { |
| | | user: '', |
| | | region: '' |
| | | }, |
| | | dateTime: '', |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.initLeaderStatiChart('leaderStati'); |
| | | this.initLeaderTimlyChart(); |
| | | this.initLeaderStatiChart('testerStati'); |
| | | this.initTesterTimlyChart(); |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | console.log('submit!'); |
| | | }, |
| | | initLeaderStatiChart(id){ |
| | | var chartDom = document.getElementById(id); |
| | | var myChart = echarts.init(chartDom); |
| | | var option; |
| | | |
| | | let xAxisData = []; |
| | | let data1 = []; |
| | | let data2 = []; |
| | | let data3 = []; |
| | | let data4 = []; |
| | | for (let i = 0; i < 10; i++) { |
| | | xAxisData.push('Class' + i); |
| | | data1.push(+(Math.random() * 2).toFixed(2)); |
| | | data2.push(+(Math.random() * 5).toFixed(2)); |
| | | data3.push(+(Math.random() + 0.3).toFixed(2)); |
| | | data4.push(+Math.random().toFixed(2)); |
| | | } |
| | | var emphasisStyle = { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowColor: 'rgba(0,0,0,0.3)' |
| | | } |
| | | }; |
| | | option = { |
| | | legend: { |
| | | data: ['bar', 'bar2'], |
| | | left: 'center' |
| | | }, |
| | | tooltip: {}, |
| | | xAxis: { |
| | | data: xAxisData, |
| | | name: 'å§å', |
| | | axisLine: { onZero: true }, |
| | | splitLine: { show: false }, |
| | | splitArea: { show: false } |
| | | }, |
| | | yAxis: {}, |
| | | grid: { |
| | | bottom: 100 |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'bar', |
| | | type: 'bar', |
| | | stack: 'one', |
| | | emphasis: emphasisStyle, |
| | | data: data1 |
| | | }, |
| | | { |
| | | name: 'bar2', |
| | | type: 'bar', |
| | | stack: 'one', |
| | | emphasis: emphasisStyle, |
| | | data: data2 |
| | | } |
| | | ] |
| | | }; |
| | | myChart.on('brushSelected', function (params) { |
| | | var brushed = []; |
| | | var brushComponent = params.batch[0]; |
| | | for (var sIdx = 0; sIdx < brushComponent.selected.length; sIdx++) { |
| | | var rawIndices = brushComponent.selected[sIdx].dataIndex; |
| | | brushed.push('[Series ' + sIdx + '] ' + rawIndices.join(', ')); |
| | | } |
| | | myChart.setOption({ |
| | | title: { |
| | | backgroundColor: '#333', |
| | | text: 'SELECTED DATA INDICES: \n' + brushed.join('\n'), |
| | | bottom: 0, |
| | | right: '10%', |
| | | width: 100, |
| | | textStyle: { |
| | | fontSize: 12, |
| | | color: '#fff' |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | option && myChart.setOption(option); |
| | | }, |
| | | initTesterStatiChart(){ |
| | | |
| | | }, |
| | | initLeaderTimlyChart(){ |
| | | |
| | | }, |
| | | initTesterTimlyChart(){ |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .work-main{ |
| | | width:100%; |
| | | margin:0; |
| | | padding: 0; |
| | | .work-head{ |
| | | width:94%; |
| | | height:100; |
| | | margin: 5px 10px; |
| | | position: fixed; |
| | | z-index: 10; |
| | | .demo-form-inline{ |
| | | margin: 0px 10px; |
| | | p{ |
| | | margin: 0; |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | span{ |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | color: red; |
| | | } |
| | | } |
| | | .buttons{ |
| | | margin: 40px 0px 0px 900px; |
| | | } |
| | | } |
| | | } |
| | | .work-center{ |
| | | margin: 0px 0px 5px 10px; |
| | | padding: 18vh 0px 5px 0px; |
| | | .el-card{ |
| | | margin: 5px 0px; |
| | | height:500px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <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> |
| | |
| | | <template> |
| | | <div> |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="è§è²åç§°ï¼" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.roleName" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥è§è²åç§°" |
| | | style="width:250px" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æéï¼" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.permission" |
| | | class="input-form" |
| | | placeholder="请è¾å
¥æé" |
| | | style="width:250px" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="search">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain @click="reset">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="addRole" icon="el-icon-plus">æ°å¢æé</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-box"> |
| | | <el-table |
| | | :max-height="800" |
| | | :cell-style="{textAlign: 'center'}" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" |
| | | :data="roleTable" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="rolename" |
| | | label="è§è²åç§°" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="permission" |
| | | label="æé" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="create_time" |
| | | label="å建æ¶é´" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="update_time" |
| | | label="æ´æ°æ¶é´" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="12%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" >ç¼è¾</el-button> |
| | | <el-button type="text" size="small" >å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 20]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="ä¿®æ¹å¯ç " :visible.sync="dialogTableVisible" width="30%"> |
| | | <el-form :model="updateData" ref="updateData" label-position="right" label-width="100px"> |
| | | <el-form-item label="åå¯ç ï¼"> |
| | | <el-input style="width: 300px" v-model="updateData.oldPassWord" placeholder="请è¾å
¥åå¯ç " > |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="è§è²åç§°ï¼" class="sermargin"> |
| | | <el-input v-model="searchData.roleName" class="input-form" placeholder="请è¾å
¥è§è²åç§°" style="width:250px"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ°å¯ç ï¼"> |
| | | <el-input style="width: 300px" v-model="updateData.newPassWord" placeholder="请è¾å
¥æ°å¯ç "> |
| | | <el-form-item label="æéï¼" class="sermargin"> |
| | | <el-input v-model="searchData.permission" class="input-form" placeholder="请è¾å
¥æé" style="width:250px"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认å¯ç ï¼"> |
| | | <el-input style="width: 300px" v-model="updateData.confirmPassWord" placeholder="忬¡è¾å
¥å¯ç "> |
| | | </el-input> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary">æ¥è¯¢</el-button> |
| | | <el-button type="primary" plain>éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="changePassword">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-form> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="addClickRole" icon="el-icon-plus">æ°å¢è§è²</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-box"> |
| | | <el-table :max-height="800" :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" |
| | | :data="roleTable" style="width: 100%"> |
| | | <el-table-column type="selection" min-width="8%" /> |
| | | <el-table-column prop="rolename" label="è§è²åç§°" min-width="20%" /> |
| | | <el-table-column prop="permission" label="æé" min-width="20%" /> |
| | | <el-table-column prop="create_time" label="å建æ¶é´" min-width="20%" /> |
| | | <el-table-column prop="update_time" label="æ´æ°æ¶é´" min-width="20%" /> |
| | | <el-table-column label="æä½" min-width="12%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">ç¼è¾</el-button> |
| | | <el-button type="text" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- åé¡µå¨ --> |
| | | <div class="pagination"> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="æ°å¢è§è²" :visible.sync="dialogTableVisible" width="60%"> |
| | | <el-form :model="roleAdd" ref="roleAdd" label-position="right" label-width="100px"> |
| | | <el-form-item label="è§è²å:"> |
| | | <el-input style="width: 300px" v-model="roleAdd.roleName" placeholder="请è¾å
¥è§è²å"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åè½éæ©:"> |
| | | <el-cascader size="medium " v-model="roleAdd.menuData" :options="menuInfo"> |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.label }}</span> |
| | | <span v-if="!node.isLeaf"> ({{ }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="addRole">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure' |
| | | import { getMenusTree } from '@/api/laboratory/role' |
| | | export default { |
| | | data() { |
| | | return { |
| | | searchData:{ |
| | | props: { multiple: true }, |
| | | roleAdd: { |
| | | roleName: null, |
| | | menuData: null |
| | | }, |
| | | searchData: { |
| | | roleName: '', |
| | | permission: '' |
| | | }, |
| | | roleTable:[{ |
| | | menuInfo: [], |
| | | roleTable: [{ |
| | | rolename: 'é¨é¿', |
| | | permission: 'ROOT', |
| | | create_time: '2023-07-04 12:12:12', |
| | | update_time: '2023-07-04 12:12:12' |
| | | },{ |
| | | }, { |
| | | rolename: 'ç»é¿', |
| | | permission: '--', |
| | | create_time: '2023-07-04 12:12:12', |
| | | update_time: '2023-07-04 12:12:12' |
| | | }], |
| | | updateData:{ |
| | | updateData: { |
| | | oldPassWord: '', |
| | | newPassWord: '', |
| | | confirmPassWord: '' |
| | |
| | | total: 20 |
| | | } |
| | | }, |
| | | created(){ |
| | | |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | addRole(){ |
| | | async addClickRole() { |
| | | let res = await getMenusTree(); |
| | | this.menuInfo = res.data |
| | | this.menuInfo.forEach(item => { |
| | | item.select = false |
| | | item.add = false |
| | | item.update = false |
| | | item.delete = false |
| | | if (item.children.length == 0) { |
| | | delete item['children'] |
| | | } else { |
| | | item.children.forEach(c => { |
| | | c.select = false |
| | | c.add = false |
| | | c.update = false |
| | | c.delete = false |
| | | if (c.children.length == 0) { |
| | | delete c['children'] |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.dialogTableVisible = true |
| | | // console.log(this.dialogTableVisible) |
| | | }, |
| | | addRole() { |
| | | console.log(this.roleAdd); |
| | | }, |
| | | // search(){}, |
| | | // reset(){}, |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .top-bar { |
| | | margin: -25px -15px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | .sermargin { |
| | | margin-right: 60px; |
| | | } |
| | | } |
| | | |
| | | .rightBtn { |
| | | margin-right: 50px |
| | | } |
| | | |
| | | .library-table { |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .table-box { |
| | | padding: 10px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | flex-direction: column; |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | } |
| | | .rightBtn{ |
| | | margin-right: 50px |
| | | } |
| | | .library-table{ |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .table-box{ |
| | | padding: 10px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | } |
| | | .pagination{ |
| | | display:flex; |
| | | justify-content:end; |
| | | margin-top: 20px |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-top: 20px |
| | | } |
| | | } |
| | | </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) { |