¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="capacity-scope"> |
| | | <div v-if="!isDetail"> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <el-form :model="entity" ref="entity" size="small" :inline="true"> |
| | | <el-form-item label="ä»åºåç§°" prop="warehouseId"> |
| | | <el-select v-model="entity.warehouseId" placeholder="éæ©ä»åº" size="small" @change="warehouseChange"> |
| | | <el-option v-for="item in warehouse" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è´§æ¶" prop="shelfId"> |
| | | <el-select v-model="entity.shelfId" placeholder="éæ©è´§æ¶" size="small" @change="handleShelf"> |
| | | <el-option v-for="item in shelf" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ ·åç¼å·" prop="searchSampleCode"> |
| | | <el-input placeholder="请è¾å
¥æ ·åç¼å·" v-model="searchSampleCode" size="small"> |
| | | <el-button slot="append" icon="el-icon-search" @click="handleSearch"></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="small" style="color:#3A7BFA" @click="keepVisible=true">ç»´æ¤</el-button> |
| | | <el-button size="small" style="color:#3A7BFA" @click="warehouseVisible=true,isEdit=false">æ·»å ä»åº</el-button> |
| | | <el-button size="small" style="color:#3A7BFA" @click="shelvesVisible=true,isEdit=false" |
| | | :disabled="entity.warehouseId==null">æ·»å è´§æ¶</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="storageVisible=true">å
¥åº</el-button> |
| | | <el-button size="small" type="primary" @click="exportVisible=true">åºåº</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table" v-loading="tableLoading"> |
| | | <table border="1" class="tables" cellpadding="10" style="table-layout:fixed;" v-if="tableList.length>0"> |
| | | <tbody> |
| | | <tr v-for="(item,index) in tableList" :key="index"> |
| | | <td v-for="(m,i) in item" :key="i" class="content"> |
| | | <h4 v-if="m.row!=undefined">{{ m.row }} - {{ m.col }}</h4> |
| | | <ul> |
| | | <el-tooltip |
| | | effect="dark" |
| | | placement="top" |
| | | v-for="(n,j) in m.samples" |
| | | :key="j" :disabled="`${n.sample}${n.model}`.length<10"> |
| | | <div slot="content"><span>{{ n.sample }}</span> |
| | | <span> ({{ n.model }}) [{{ n.sampleCode }}]</span></div> |
| | | <li class="green" |
| | | @click="handelDetail(n)"> |
| | | <i></i> |
| | | <span>{{ n.sample }}</span> |
| | | <span> ({{ n.model }}) [{{ n.sampleCode }}]</span> |
| | | <!-- <span class="num"> x{{ n.num }}</span> --> |
| | | </li> |
| | | </el-tooltip> |
| | | </ul> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td v-for="(item,index) in rowList" :key="index" style="background: ghostwhite;height: 20px;">{{ item }} |
| | | </td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <span v-else style="color: rgb(144, 147, 153);display: inline-block;position: absolute;top: 60%;left: 50%;transform: translate(-50%,-50%);">ææ æ°æ®</span> |
| | | </div> |
| | | </div> |
| | | <Detail v-else @hanldeBack="isDetail=false" :id="currentId" /> |
| | | <el-dialog title="æ ·åå
¥åº" :visible.sync="storageVisible" width="350px"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>æ ·åç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="sampleCode" size="small"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-tree :data="storageList" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id" |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="storageVisible" |
| | | empty-text="ææ æ°æ®"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <span><i |
| | | :class="`node_i ${data.warehouseShelfList != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> |
| | | {{ data.name }}</span> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tree> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="storageVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmStorage" :loading="upLoadStorage">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ ·ååºåº" :visible.sync="exportVisible" width="350px"> |
| | | <!-- <div class="shaoma"> |
| | | <img src="../../../static/img/æ«ç .svg" alt="" style="margin-right: 5px;"> |
| | | <span>æ«ç åºåº</span> |
| | | </div> --> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>æ ·åç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="sampleCode" size="small"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="exportVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmExport" :loading="upLoadExport">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="åºä½ç»´æ¤" :visible.sync="keepVisible" width="350px" :append-to-body="true"> |
| | | <el-tree :data="warehouse" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id" |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="keepVisible" |
| | | empty-text="ææ æ°æ®"> |
| | | <div class="custom-tree-node" style="width: 100%;" slot-scope="{ node, data }"> |
| | | <el-row style="width: 100%;display: flex;align-items: center;"> |
| | | <el-col :span="20"> |
| | | <span><i |
| | | :class="`node_i ${node.level<2 ? 'el-icon-folder-opened': 'el-icon-tickets'}`"></i> |
| | | {{ data.name }}</span> |
| | | </el-col> |
| | | <el-col :span="4" v-if="node.level<3"> |
| | | <el-button type="text" size="mini" icon="el-icon-edit" @click.stop="handleEdit(data,node.level)"> |
| | | </el-button> |
| | | <el-button type="text" size="mini" icon="el-icon-delete" @click.stop="handleDelete(data,node.level)"> |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-tree> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="keepVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="keepVisible = false" >ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :title="isEdit?'ä»åºä¿®æ¹':'ä»åºæ°å¢'" :visible.sync="warehouseVisible" width="350px"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>ä»åºåç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="name" size="small" @keyup.enter.native="confirmWarehouse"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="warehouseVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmWarehouse" :loading="upLoadWarehouse">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :title="isEdit?'è´§æ¶ä¿®æ¹':'è´§æ¶æ°å¢'" :visible.sync="shelvesVisible" width="350px"> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>è´§æ¶åç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="shelves.name" size="small"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>è´§æ¶å±æ°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="shelves.row" size="small"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col class="search_thing" :span="24"> |
| | | <div class="search_label"><span class="required-span">* </span>è´§æ¶åæ°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="shelves.col" size="small"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="shelvesVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmShelves" :loading="upLoadShelves">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Detail from './components/detail.vue' |
| | | import { |
| | | addShelf, |
| | | addWarehouse, delShelf, delWarehouse, getWarehouse, |
| | | inWarehouse, |
| | | outWarehouse, searchSampleId, |
| | | selectWarehouse, |
| | | upShelf, |
| | | upWarehouse |
| | | } from "@/api/business/sample"; |
| | | export default { |
| | | components: { |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
| | | entity: { |
| | | warehouseId: null, |
| | | shelfId: null |
| | | }, |
| | | warehouse: [], |
| | | shelf: [], |
| | | storageList:[], |
| | | storageVisible: false, |
| | | exportVisible: false, |
| | | keepVisible: false, |
| | | warehouseVisible: false, |
| | | shelvesVisible: false, |
| | | upLoadStorage: false, |
| | | upLoadExport: false, |
| | | upLoadWarehouse: false, |
| | | upLoadShelves: false, |
| | | tableList: [], |
| | | rowList: [], |
| | | value: '', |
| | | name:'', |
| | | shelves:{}, |
| | | selectTree: [], |
| | | expandedKeys: [], |
| | | isEdit: false, //å¼¹æ¡--æ¯å¦æ¯ä¿®æ¹,é»è®¤ä¸ºfalse |
| | | isDetail: false, //详æ
--æ¯å¦å±ç¤ºä¸ºè¯¦æ
页é¢ï¼é»è®¤ä¸ºfalse |
| | | currentEdit:null,//å½åè¦ç»´æ¤çä¿¡æ¯ |
| | | tableLoading:false, |
| | | sampleCode:'', |
| | | currentId:null, |
| | | searchSampleCode:'' |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.selectList() |
| | | }, |
| | | methods: { |
| | | selectList() { |
| | | selectWarehouse().then(res => { |
| | | this.warehouse = res.data |
| | | if(res.data.length==0){ |
| | | this.entity.warehouseId = ''; |
| | | this.entity.shelfId = ''; |
| | | this.tableList = [] |
| | | } |
| | | this.storageList = this.HaveJson(res.data).map(item=>{ |
| | | item.warehouseShelfList&&item.warehouseShelfList.length>0&&item.warehouseShelfList.map(m=>{ |
| | | let warehouseShelfList = []; |
| | | for (let i=1;i<m.row+1;i++){ |
| | | let warehouseShelfList0 = [] |
| | | for (let j=1;j<m.col+1;j++){ |
| | | warehouseShelfList0.push({ |
| | | name:j+' å', |
| | | id:j, |
| | | }) |
| | | } |
| | | warehouseShelfList.push({ |
| | | name:i+' å±', |
| | | id:i, |
| | | warehouseShelfList:warehouseShelfList0 |
| | | }) |
| | | } |
| | | m.warehouseShelfList = warehouseShelfList; |
| | | return m; |
| | | }) |
| | | return item; |
| | | }) |
| | | if(!this.entity.warehouseId&&this.warehouse.length>0){ |
| | | this.entity.warehouseId = this.warehouse[0].id |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | if(this.shelf.length>0){ |
| | | this.entity.shelfId = this.shelf[0].id |
| | | this.handleShelf(this.entity.shelfId) |
| | | }else{ |
| | | this.tableList = [] |
| | | } |
| | | }else if(this.warehouse.length>0){ |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | if(this.shelf.length>0){ |
| | | this.entity.shelfId = this.shelf[0].id |
| | | this.handleShelf(this.entity.shelfId) |
| | | }else{ |
| | | this.tableList = [] |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // å
¥åº |
| | | confirmStorage() { |
| | | if (!this.sampleCode) { |
| | | this.$message.error('è¯·å¡«åæ ·åç¼å·') |
| | | return |
| | | } |
| | | if (this.selectTree.length < 4) { |
| | | this.$message.error('è¯·éæ©æ ·åå
¥åºä½ç½®') |
| | | return |
| | | } |
| | | this.upLoadStorage = true; |
| | | inWarehouse({ |
| | | trees: this.selectTree.join('-'), |
| | | sampleCode:this.sampleCode |
| | | }).then(res => { |
| | | this.upLoadStorage = false; |
| | | this.storageVisible = false |
| | | this.sampleCode = ''; |
| | | this.selectTree = [] |
| | | this.$message.success('å
¥åºæå') |
| | | this.handleShelf(this.entity.shelfId) |
| | | }).catch(err => { |
| | | this.upLoadStorage = false; |
| | | }) |
| | | }, |
| | | // åºåº |
| | | confirmExport() { |
| | | if (!this.sampleCode) { |
| | | this.$message.error('è¯·å¡«åæ ·åç¼å·') |
| | | return |
| | | } |
| | | this.upLoadExport = true; |
| | | outWarehouse({ |
| | | sampleCode:this.sampleCode |
| | | }).then(res => { |
| | | this.upLoadExport = false; |
| | | this.exportVisible = false |
| | | this.sampleCode = ''; |
| | | this.$message.success('åºåºæå') |
| | | this.handleShelf(this.entity.shelfId) |
| | | }).catch(err => { |
| | | this.upLoadExport = false; |
| | | }) |
| | | }, |
| | | // æ·»å /ä¿®æ¹ä»åº |
| | | confirmWarehouse() { |
| | | if (!this.name) { |
| | | this.$message.error('请填åä»åºåç§°') |
| | | return |
| | | } |
| | | this.upLoadWarehouse = true; |
| | | if(this.currentEdit&&this.currentEdit.id){ |
| | | // ä¿®æ¹ä»åº |
| | | upWarehouse({ |
| | | name: this.name, |
| | | id:this.currentEdit.id |
| | | }).then(res => { |
| | | this.upLoadWarehouse = false; |
| | | this.warehouseVisible = false |
| | | // this.keepVisible = false |
| | | this.currentEdit = null; |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.selectList() |
| | | this.name = '' |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | }).catch(err => { |
| | | this.upLoadWarehouse = false; |
| | | }) |
| | | }else{ |
| | | // æ°å¢ä»åº |
| | | addWarehouse({ |
| | | name: this.name |
| | | }).then(res => { |
| | | this.upLoadWarehouse = false; |
| | | this.warehouseVisible = false |
| | | this.$message.success('æ·»å æå') |
| | | this.selectList() |
| | | this.name = '' |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | }).catch(err => { |
| | | this.upLoadWarehouse = false; |
| | | }) |
| | | } |
| | | }, |
| | | // æ·»å /ä¿®æ¹è´§æ¶ |
| | | confirmShelves() { |
| | | if (!this.shelves.name) { |
| | | this.$message.error('请填åè´§æ¶åç§°') |
| | | return |
| | | } |
| | | if (!this.shelves.row) { |
| | | this.$message.error('请填åè´§æ¶å±æ°') |
| | | return |
| | | } |
| | | if (!this.shelves.col) { |
| | | this.$message.error('请填åè´§æ¶åæ°') |
| | | return |
| | | } |
| | | this.upLoadShelves = true; |
| | | if(this.currentEdit&&this.currentEdit.id){ |
| | | // ä¿®æ¹ |
| | | upShelf({ |
| | | id:this.currentEdit.id,...this.shelves |
| | | }).then(res => { |
| | | this.upLoadShelves = false; |
| | | this.shelvesVisible = false |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.selectList() |
| | | this.currentEdit ={}; |
| | | }).catch(err => { |
| | | this.upLoadShelves = false; |
| | | }) |
| | | }else{ |
| | | // æ°å¢ |
| | | addShelf({ |
| | | warehouseId: this.entity.warehouseId,...this.shelves |
| | | }).then(res => { |
| | | this.upLoadShelves = false; |
| | | this.shelvesVisible = false |
| | | this.$message.success('æ·»å æå') |
| | | this.selectList() |
| | | this.shelves = {} |
| | | }).catch(err => { |
| | | this.upLoadShelves = false; |
| | | }) |
| | | } |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | }, |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | handleNodeClick(val, node, el) { //æ çå¼ |
| | | this.selectTree[node.level-1] = val.id; |
| | | }, |
| | | nodeOpen(data, node, el) { |
| | | $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') |
| | | this.selectTree[node.level-1] = data.id; |
| | | }, |
| | | nodeClose(data, node, el) { |
| | | $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') |
| | | }, |
| | | handleDelete(row, level) { |
| | | this.$confirm('æ¯å¦å½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | if (level == 1) { |
| | | // å é¤ä»åº |
| | | delWarehouse({ |
| | | id: row.id |
| | | }).then(res => { |
| | | this.$message.success('æå') |
| | | this.selectList() |
| | | }).catch(e => { |
| | | this.$message.error('失败') |
| | | }) |
| | | }else{ |
| | | // å é¤è´§æ¶ |
| | | delShelf({ |
| | | id: row.id |
| | | }).then(res => { |
| | | this.$message.success('æå') |
| | | this.selectList() |
| | | }).catch(e => { |
| | | this.$message.error('失败') |
| | | }) |
| | | } |
| | | this.warehouseChange(this.entity.warehouseId) |
| | | }).catch(() => {}) |
| | | }, |
| | | handleEdit(data, level) { |
| | | this.isEdit = true; |
| | | // 夿æ¯ç¬¬å å±çº§ï¼ç¬¬ä¸å±çº§ï¼ä¿®æ¹ä»åºï¼ç¬¬äºå±çº§ä¿®æ¹è´§æ¶ |
| | | if (level == 1) { |
| | | this.warehouseVisible = true; |
| | | this.currentEdit = data; |
| | | this.name = data.name |
| | | } else { |
| | | this.shelvesVisible = true; |
| | | this.currentEdit = data; |
| | | this.shelves = { |
| | | name:data.name, |
| | | row:data.row, |
| | | col:data.col, |
| | | warehouseId:data.warehouseId |
| | | } |
| | | } |
| | | }, |
| | | // æ¥ç详æ
|
| | | handelDetail(row) { |
| | | this.currentId = row.id; |
| | | this.isDetail = true; |
| | | }, |
| | | warehouseChange(val) { |
| | | this.tableList = [] |
| | | let map = this.warehouse.find(a => { |
| | | return a.id === val ? a : null |
| | | }) |
| | | this.shelf = map.warehouseShelfList; |
| | | this.entity.shelfId = ''; |
| | | }, |
| | | handleShelf(e){ |
| | | if(e){ |
| | | this.tableLoading = true; |
| | | getWarehouse({shelfId: e}).then(res => { |
| | | this.tableLoading = false; |
| | | let data = res.data; |
| | | let set =new Set() |
| | | this.tableList = []; |
| | | let arr = [] |
| | | data.forEach(m=>{ |
| | | set.add(m.col) |
| | | if(arr.length>0){ |
| | | if(arr.find(n=>n.row==m.row)){ |
| | | arr.push(m) |
| | | }else{ |
| | | this.tableList.push(arr) |
| | | arr = [] |
| | | arr.push(m) |
| | | } |
| | | }else{ |
| | | arr.push(m) |
| | | } |
| | | }) |
| | | this.tableList.push(arr) |
| | | this.rowList = []; |
| | | for(let i=0;i<set.size;i++){ |
| | | this.rowList.push(`${i+1} å`) |
| | | } |
| | | }).catch(e=>{ |
| | | this.tableLoading = false; |
| | | }) |
| | | } |
| | | }, |
| | | handleSearch(){ |
| | | if(!this.searchSampleCode){ |
| | | this.$message.error('请è¾å
¥æ ·åç¼å·') |
| | | return; |
| | | } |
| | | searchSampleId({sampleCode: this.searchSampleCode}).then(res => { |
| | | if(res.code==200){ |
| | | this.currentId = res.data; |
| | | this.isDetail = true; |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 90px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 10px; |
| | | top: 25px; |
| | | display: flex; |
| | | align-items: center; |
| | | z-index: 9; |
| | | } |
| | | |
| | | .tables { |
| | | width: 100%; |
| | | height: 100%; |
| | | border-bottom: none; |
| | | } |
| | | |
| | | .tables th { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .tables td { |
| | | font-size: 12px; |
| | | text-align: center; |
| | | vertical-align: top; |
| | | border-color: rgb(192, 191, 191) !important; |
| | | padding: 5px; |
| | | box-sizing: border-box; |
| | | height: 120px; |
| | | } |
| | | |
| | | .tables ul { |
| | | list-style-type: none; |
| | | } |
| | | |
| | | .tables ul li { |
| | | border-radius: 3px; |
| | | padding: 4px 10px; |
| | | box-sizing: border-box; |
| | | margin-bottom: 5px; |
| | | font-size: 12px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: start; |
| | | color: #333333; |
| | | cursor: pointer; |
| | | overflow: hidden; /*è¶
åºé¨åéè*/ |
| | | white-space: nowrap; /*ç¦æ¢æ¢è¡*/ |
| | | text-overflow: ellipsis; /*çç¥å·*/ |
| | | } |
| | | |
| | | .tables h4 { |
| | | color: #999999; |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | padding: 6px 0; |
| | | } |
| | | |
| | | .tables i { |
| | | display: inline-block; |
| | | width: 6px; |
| | | height: 6px; |
| | | border-radius: 50%; |
| | | margin-right: 6px; |
| | | } |
| | | |
| | | li:hover { |
| | | background: rgba(58, 123, 250, 0.18); |
| | | } |
| | | |
| | | li:hover i { |
| | | background: #3A7BFA; |
| | | } |
| | | |
| | | li:hover .num { |
| | | color: #3A7BFA; |
| | | } |
| | | |
| | | .green { |
| | | background: #E0F6EA; |
| | | } |
| | | |
| | | .green i { |
| | | background: #34BD66; |
| | | } |
| | | |
| | | .green .num { |
| | | color: #34BD66; |
| | | } |
| | | |
| | | .el-dialog { |
| | | position: relative; |
| | | } |
| | | |
| | | .shaoma { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #3A7BFA; |
| | | position: absolute; |
| | | top: 23px; |
| | | right: 54px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .node_i { |
| | | color: orange; |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .custom-tree-node .el-button { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .custom-tree-node:hover .el-button { |
| | | opacity: 1; |
| | | } |
| | | >>>.el-loading-mask { |
| | | z-index: 10; |
| | | } |
| | | </style> |