FileManage/web/src/views/planscreening/components/dataanalysiss.vue

828 lines
33 KiB
Vue
Raw Normal View History

2025-01-10 14:16:18 +08:00
<script lang="ts">
export default {
name: 'dataanalysiss' // 抽检-数据分析
};
</script>
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { ElMessage, ElMessageBox, FormRules,ElTable,TabsPaneContext} from "element-plus";
import { queryExamineSchoolTree,queryMyopiaStatistics,queryAbnormalStatistics,queryFarSightednessStatistics,
querySamplingComparison,queryRulesSchoolList,exportStatistics } from "@/api/planscreening";
import Page from '@/components/Pagination/page.vue';
import { publicTree } from '@/utils/validate';
import { getDict } from '@/api/dict'
import { downloadFile } from '@/utils/index'
const props:any = defineProps({
planInfo: {
required: false,
type: Object,
default: {}
}
})
const treeLoading = ref(false)
const treeData:any = ref([])
function getTree(){
if(props.planInfo.exam_type == '01'){
let params = {
planId: props.planInfo.id,
orgId: props.planInfo.org_id,
orgType: props.planInfo.org_type,
};
treeLoading.value = true
queryExamineSchoolTree(params).then((res) => {
treeData.value = publicTree(res.data,"")
treeLoading.value = false
}).catch(()=>{
treeLoading.value = false
});
}else{
//获取表格类型
let params = {
planId:props.planInfo.id
}
treeLoading.value = true
queryRulesSchoolList(params).then((res) => {
treeData.value = res.data;
treeLoading.value = false
}).catch(()=>{
treeLoading.value = false
});
}
}
const tableData = ref([])
const tableData2 = ref([])
const tableData3 = ref([])
const tableData4 = ref([])
const genderoptions:any = ref([{label:'男',value:0},{label:'女',value:1}])
const loading = ref(false)
const sortstatus = ref(0)
const queryInfo :any = ref({
current:1,
size:10,
total:0
})
// 左侧树
const treedata: any = ref([]);
const treeloading = ref(false)
const defaultProps = { label: "name" }
//树形控件类型定义
interface Tree {
[x: string]: any;
label: string;
children?: Tree[];
}
const activeName = ref('近视统计')
const vMove = {
mounted(el: any) {
el.onmousedown = function (e: any) {
var init = e.clientX;
var parent: any = document.getElementById("silderLeft");
const initWidth: any = parent.offsetWidth;
document.onmousemove = function (e) {
var end = e.clientX;
var newWidth = end - init + initWidth;
parent.style.width = newWidth + "px";
};
document.onmouseup = function () {
document.onmousemove = document.onmouseup = null;
};
};
}
}
// 初始化
function init(){
// let params:any = {
// gender: queryInfo.value.gender,
// planId:props.planInfo.id,
// range: queryInfo.value.range,
// schoolType: queryInfo.value.schoolType,
// };
// if(nodeData.value.org_type =='5'){
// params.schoolId = nodeData.value.id
// params.regionId = ""
// }else{
// params.regionId = nodeData.value.id
// params.schoolId = ""
// }
let params:any = {
gender: queryInfo.value.gender,
planId:props.planInfo.id,
range: queryInfo.value.range,
schoolType: queryInfo.value.schoolType,
examType:props.planInfo.exam_type,
orgId:nodeData.value.id,
orgType:nodeData.value.org_type,
sort: queryInfo.value.sort,
current:queryInfo.value.current,
size:queryInfo.value.size,
};
loading.value = true
if(activeName.value == '近视统计'){
queryMyopiaStatistics(params).then((res) => {
for(let i=0;i<res.data.records.length;i++){
if(res.data.records[i].inspect>0){
res.data.records[i].myopiaRate = ((res.data.records[i].myopia / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].premyopiaRate = ((res.data.records[i].premyopia / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].moderateRate = ((res.data.records[i].moderate / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].severeRate = ((res.data.records[i].severe / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].new = res.data.records[i].is_new_nearsighted
res.data.records[i].good = res.data.records[i].is_tobe_good
res.data.records[i].newRate = ((res.data.records[i].new / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].goodRate = ((res.data.records[i].good / res.data.records[i].inspect)* 100).toFixed(2)
}else{
res.data.records[i].myopiaRate = 0
res.data.records[i].premyopiaRate = 0
res.data.records[i].moderateRate = 0
res.data.records[i].severeRate =0
res.data.records[i].new = 0
res.data.records[i].good = 0
res.data.records[i].newRate = 0
res.data.records[i].goodRate = 0
}
}
tableData.value = res.data.records;
queryInfo.value.total = res.data.total
loading.value = false
}).catch(()=>{
loading.value = false
});
}else if(activeName.value == '视力不良统计'){
queryAbnormalStatistics(params).then((res) => {
for(let i=0;i<res.data.records.length;i++){
if(res.data.records[i].inspect>0){
res.data.records[i].myopiaRate = ((res.data.records[i].myopia / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].premyopiaRate = ((res.data.records[i].premyopia / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].moderateRate = ((res.data.records[i].moderate / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].severeRate = ((res.data.records[i].severe / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].newRate = ((res.data.records[i].new / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].goodRate = ((res.data.records[i].good / res.data.records[i].inspect)* 100).toFixed(2)
}else{
res.data.records[i].myopiaRate = 0
res.data.records[i].premyopiaRate = 0
res.data.records[i].moderateRate = 0
res.data.records[i].severeRate =0
res.data.records[i].newRate = 0
res.data.records[i].goodRate = 0
}
}
tableData2.value = res.data.records;
queryInfo.value.total = res.data.total
loading.value = false
}).catch(()=>{
loading.value = false
});
}else if(activeName.value == '远视储备率统计'){
queryFarSightednessStatistics(params).then((res) => {
for(let i=0;i<res.data.records.length;i++){
if(res.data.records[i].inspect>0){
res.data.records[i].sufficientRate = ((res.data.records[i].sufficient / res.data.records[i].inspect)* 100).toFixed(2)
res.data.records[i].insufficientRate = ((res.data.records[i].insufficient / res.data.records[i].inspect)* 100).toFixed(2)
}else{
res.data.records[i].sufficientRate = 0
res.data.records[i].insufficientRate = 0
}
}
tableData3.value = res.data.records;
queryInfo.value.total = res.data.total
loading.value = false
}).catch(()=>{
loading.value = false
});
}else if(activeName.value == '抽检对比分析'){
querySamplingComparison(params).then((res) => {
for(let i=0;i<res.data.records.length;i++){
if(res.data.records[i].inspect>0){
res.data.records[i].spotCheckRate = ((res.data.records[i].spotCheck / res.data.records[i].inspect)* 100).toFixed(2)
}else{
res.data.records[i].spotCheckRate = '0.00'
}
if(res.data.records[i].inspect ==0){
res.data.records[i].inspectMyopiaRate = '0.00'
}else{
res.data.records[i].inspectMyopiaRate = ((res.data.records[i].inspectMyopia / res.data.records[i].inspect)* 100).toFixed(2)
}
if(res.data.records[i].spotCheck ==0){
res.data.records[i].spotCheckMyopiaRate = '0.00'
}else{
res.data.records[i].spotCheckMyopiaRate = ((res.data.records[i].spotCheckMyopia / res.data.records[i].spotCheck)* 100).toFixed(2)
}
}
tableData4.value = res.data.records;
queryInfo.value.total = res.data.total
loading.value = false
}).catch(()=>{
loading.value = false
});
}
}
const handleClick = (tab: TabsPaneContext, event: Event) => {
sortstatus.value = 0
queryInfo.value = {
current:1,
size:10,
total:0
}
setTimeout(()=>{
init()
},200)
}
const nodeData:any = ref({})
const handleNodeClick = (data: Tree) => {
nodeData.value = data
queryInfo.value = {
current:1,
size:10,
total:0
}
init()
};
//重置
function resetdata(type:any){
queryInfo.value = {
current:1,
size:10,
total:0
}
init()
}
// 导出
function exportinfo(type:any){
let params:any = {
gender: queryInfo.value.gender,
planId:props.planInfo.id,
range: queryInfo.value.range,
schoolType: queryInfo.value.schoolType,
examType:props.planInfo.exam_type,
orgId:nodeData.value.id,
orgType:nodeData.value.org_type,
sort: queryInfo.value.sort,
current:1,
size:999,
};
loading.value = true
if(activeName.value == '近视统计'){
params.type = "1"
exportStatistics(params).then((response) => {
downloadFile(response,'近视统计', 'xlsx')
loading.value = false
}).catch(()=>{
loading.value = false
});
}else if(activeName.value == '视力不良统计'){
params.type = "2"
exportStatistics(params).then((response) => {
downloadFile(response,'视力不良统计', 'xlsx')
loading.value = false
}).catch(()=>{
loading.value = false
});
}else if(activeName.value == '远视储备率统计'){
params.type = "3"
exportStatistics(params).then((response) => {
downloadFile(response,'远视储备率统计', 'xlsx')
loading.value = false
}).catch(()=>{
loading.value = false
});
}
}
// 排序
function sortinfo(type:any){
// 排序
if(sortstatus.value === 0) {
sortstatus.value = 1
queryInfo.value.sort = 'up'
} else if(sortstatus.value === 1) {
sortstatus.value = 2
queryInfo.value.sort = 'down'
} else {
sortstatus.value = 0
queryInfo.value.sort = null
}
init()
}
onMounted(() => {
getTree()
init()
getDict({ dictcode: 'schoolType' }).then((res) => {
schoolTypeData.value = res.data
})
});
const rangeData:any = ref([{name:'按地区统计',code:'1'},{name:'按年级统计',code:'2'}])
const schoolTypeData:any = ref([])
</script>
<template>
<div class="contents-box">
<aside id="silderLeft">
<div class="lefttitle">
<div class="line"></div>
<div class="treetitle">数据列表</div>
</div>
<div>
<el-tree v-loading="treeloading" ref="treeRef" node-key="id" :data="treeData"
default-expand-all
:highlight-current="true" :props="defaultProps" :expand-on-click-node="false"
@node-click="handleNodeClick" style="height: calc(100vh - 340px); overflow: auto">
</el-tree>
</div>
<div class="moveBtn" v-move>
<div class="moveBtn-line" v-move></div>
</div>
</aside>
<div class="silderRights">
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="height:calc(100vh - 325px);">
<el-tab-pane label="近视统计" name="近视统计">
<div class="tabcontent">
<div class="searchinfo">
<div>
<!-- <el-select v-model="queryInfo.range" clearable placeholder="请选择统计范围" size="large" style="width: 200px">
<el-option v-for="item in rangeData" :key="item.code" :label="item.name" :value="item.code"/>
</el-select>
<el-select v-model="queryInfo.schoolType" clearable class="ml-4" placeholder="请选择学校类型" size="large" style="width: 200px">
<el-option v-for="item in schoolTypeData" :key="item.itemcode" :label="item.dictname" :value="item.itemcode"/>
</el-select> -->
<el-select v-model="queryInfo.gender" clearable class="ml-4" placeholder="请选择性别" size="large" style="width: 200px" @change="init">
<el-option v-for="item in genderoptions" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
<el-button type="primary" @click="init">统计</el-button>
<el-button @click="resetdata('1')">重置</el-button>
</div>
<div>
<el-button type="primary" @click="sortinfo('1')">
<img v-if="sortstatus==0" src="@/assets/visionscreening/myopiarate.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==1" src="@/assets/visionscreening/ascsort.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==2" src="@/assets/visionscreening/descsort.png" style="padding-right: 5px;" alt="">
近视率
</el-button>
<el-button type="primary" @click="exportinfo('1')">
<img src="@/assets/visionscreening/exports.png" style="padding-right: 5px;" alt="">导出
</el-button>
</div>
</div>
<div>
<el-table ref="multipleTableRef" v-loading="loading" element-loading-text="正在加载数据,请耐心等待......" :data="tableData" border style="width: 100%; height:calc(100vh - 475px)" :header-cell-style="{background:'rgb(250 250 250)',height:'50px'}">
<el-table-column prop="name" label="统计范围" />
<el-table-column prop="total" label="总人数" align="center" width="120">
<template #default="scope">
<span>{{scope.row.total}}</span>
</template>
</el-table-column>
<el-table-column prop="inspect" label="已检人数" align="center" width="100">
<template #default="scope">
<span>{{scope.row.inspect}}</span>
</template>
</el-table-column>
<el-table-column prop="myopia" label="近视人数" align="center" width="100">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.myopia}}</span>
</template>
</el-table-column>
<el-table-column prop="myopiaRate" label="近视率" align="center" width="80">
<template #default="scope">
<span class=" text-[#4099ff] font-bold">{{scope.row.myopiaRate}}%</span>
</template>
</el-table-column>
<el-table-column label="近视前期" align="center">
<el-table-column prop="premyopia" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.premyopia}}</span>
</template>
</el-table-column>
<el-table-column prop="premyopiaRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.premyopiaRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="低度近视" align="center">
<el-table-column prop="moderate" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.moderate}}</span>
</template>
</el-table-column>
<el-table-column prop="moderateRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.moderateRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="高度近视" align="center">
<el-table-column prop="severe" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.severe}}</span>
</template>
</el-table-column>
<el-table-column prop="severeRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.severeRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="新发现" align="center">
<el-table-column prop="new" align="center" label="人数" width="80" >
<template #default="scope">
<span>{{scope.row.new}}</span>
</template>
</el-table-column>
<el-table-column prop="newRate" align="center" label="比例" width="80" >
<template #default="scope">
<span>{{scope.row.newRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="好转" align="center">
<el-table-column prop="good" align="center" label="人数" width="80" >
<template #default="scope">
<span>{{scope.row.good}}</span>
</template>
</el-table-column>
<el-table-column prop="goodRate" align="center" label="比例" width="80" >
<template #default="scope">
<span>{{scope.row.goodRate}}%</span>
</template>
</el-table-column>
</el-table-column>
</el-table>
<Page class="mt-[20px]" :total="queryInfo.total" v-model:size="queryInfo.size" v-model:current="queryInfo.current"
@pagination="init" />
</div>
</div>
</el-tab-pane>
<el-tab-pane label="视力不良统计" name="视力不良统计">
<div class="tabcontent">
<div class="searchinfo">
<div>
<!-- <el-select v-model="queryInfo.range" clearable placeholder="请选择统计范围" size="large" style="width: 200px">
<el-option v-for="item in rangeData" :key="item.code" :label="item.name" :value="item.code"/>
</el-select>
<el-select v-model="queryInfo.schoolType" clearable class="ml-4" placeholder="请选择学校类型" size="large" style="width: 200px">
<el-option v-for="item in schoolTypeData" :key="item.itemcode" :label="item.dictname" :value="item.itemcode"/>
</el-select> -->
<el-select v-model="queryInfo.gender" clearable class="ml-4" placeholder="请选择性别" size="large" style="width: 200px" @change="init">
<el-option v-for="item in genderoptions" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
<el-button type="primary" @click="init">统计</el-button>
<el-button @click="resetdata('2')">重置</el-button>
</div>
<div>
<el-button type="primary" @click="sortinfo('2')">
<img v-if="sortstatus==0" src="@/assets/visionscreening/myopiarate.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==1" src="@/assets/visionscreening/ascsort.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==2" src="@/assets/visionscreening/descsort.png" style="padding-right: 5px;" alt="">
视力不良占比
</el-button>
<el-button type="primary" @click="exportinfo('2')">
<img src="@/assets/visionscreening/exports.png" style="padding-right: 5px;" alt="">导出
</el-button>
</div>
</div>
<div>
<el-table ref="multipleTableRef" v-loading="loading" element-loading-text="正在加载数据,请耐心等待......" :data="tableData2" border style="width: 100%; height:calc(100vh - 475px)" :header-cell-style="{background:'rgb(250 250 250)',height:'50px'}">
<el-table-column prop="name" label="统计范围" />
<el-table-column prop="total" label="总人数" align="center" width="120">
<template #default="scope">
<span>{{scope.row.total}}</span>
</template>
</el-table-column>
<el-table-column prop="inspect" label="已检人数" align="center" width="100">
<template #default="scope">
<span>{{scope.row.inspect}}</span>
</template>
</el-table-column>
<el-table-column prop="myopia" label="视力不良人数" align="center" width="100">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.myopia}}</span>
</template>
</el-table-column>
<el-table-column prop="myopiaRate" label="视力不良占比" align="center" width="80" >
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.myopiaRate}}</span>%
</template>
</el-table-column>
<el-table-column label="轻度视力不良" align="center">
<el-table-column prop="premyopia" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.premyopia}}</span>
</template>
</el-table-column>
<el-table-column prop="premyopiaRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.premyopiaRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="中度视力不良" align="center">
<el-table-column prop="moderate" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.moderate}}</span>
</template>
</el-table-column>
<el-table-column prop="moderateRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.moderateRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="重度视力不良" align="center">
<el-table-column prop="severe" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.severe}}</span>
</template>
</el-table-column>
<el-table-column prop="severeRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.severeRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="新发现" align="center">
<el-table-column prop="new" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.new}}</span>
</template>
</el-table-column>
<el-table-column prop="newRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.newRate}}%</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="好转" align="center">
<el-table-column prop="good" align="center" label="人数" width="80">
<template #default="scope">
<span>{{scope.row.good}}</span>
</template>
</el-table-column>
<el-table-column prop="goodRate" align="center" label="比例" width="80">
<template #default="scope">
<span>{{scope.row.goodRate}}%</span>
</template>
</el-table-column>
</el-table-column>
</el-table>
<Page class="mt-[20px]" :total="queryInfo.total" v-model:size="queryInfo.size" v-model:current="queryInfo.current"
@pagination="init" />
</div>
</div>
</el-tab-pane>
<el-tab-pane label="远视储备率统计" name="远视储备率统计">
<div class="tabcontent">
<div class="searchinfo">
<div>
<!-- <el-select v-model="queryInfo.range" clearable placeholder="请选择统计范围" size="large" style="width: 200px">
<el-option v-for="item in rangeData" :key="item.code" :label="item.name" :value="item.code"/>
</el-select>
<el-select v-model="queryInfo.schoolType" clearable class="ml-4" placeholder="请选择学校类型" size="large" style="width: 200px">
<el-option v-for="item in schoolTypeData" :key="item.itemcode" :label="item.dictname" :value="item.itemcode"/>
</el-select> -->
<el-select v-model="queryInfo.gender" clearable class="ml-4" placeholder="请选择性别" size="large" style="width: 200px" @change="init">
<el-option v-for="item in genderoptions" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
<el-button type="primary" @click="init">统计</el-button>
<el-button @click="resetdata('3')">重置</el-button>
</div>
<div>
<el-button type="primary" @click="sortinfo('3')">
<img v-if="sortstatus==0" src="@/assets/visionscreening/myopiarate.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==1" src="@/assets/visionscreening/ascsort.png" style="padding-right: 5px;" alt="">
<img v-if="sortstatus==2" src="@/assets/visionscreening/descsort.png" style="padding-right: 5px;" alt="">
远视储备不足比例
</el-button>
<el-button type="primary" @click="exportinfo('3')">
<img src="@/assets/visionscreening/exports.png" style="padding-right: 5px;" alt="">导出
</el-button>
</div>
</div>
<div>
<el-table ref="multipleTableRef" v-loading="loading" element-loading-text="正在加载数据,请耐心等待......" :data="tableData3" border style="width: 100%; height:calc(100vh - 475px)" :header-cell-style="{background:'rgb(250 250 250)',height:'50px'}">
<el-table-column prop="name" label="统计范围" />
<el-table-column prop="total" label="总人数" align="center">
<template #default="scope">
<span>{{scope.row.total}}</span>
</template>
</el-table-column>
<el-table-column prop="inspect" label="已检人数" align="center">
<template #default="scope">
<span>{{scope.row.inspect}}</span>
</template>
</el-table-column>
<el-table-column prop="sufficient" label="远视储备充足人数" align="center">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.sufficient}}</span>
</template>
</el-table-column>
<el-table-column prop="sufficientRate" label="远视储备充足比例" align="center">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.sufficientRate}}</span>%
</template>
</el-table-column>
<el-table-column prop="insufficient" label="远视储备不足人数" align="center">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.insufficient}}</span>%
</template>
</el-table-column>
<el-table-column prop="insufficientRate" label="远视储备不足比例" align="center">
<template #default="scope">
<span class="text-[#4099ff] font-bold">{{scope.row.insufficientRate}}</span>%
</template>
</el-table-column>
</el-table>
<Page class="mt-[20px]" :total="queryInfo.total" v-model:size="queryInfo.size" v-model:current="queryInfo.current"
@pagination="init" />
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<style scoped lang="scss">
.contents-box{
:deep(.el-tree-node.is-current > .el-tree-node__content) {
background-color: #409eff !important;
color: #fff !important;
}
margin-top: 15px;
height: 100%;
display: -webkit-flex;
display: flex;
.box-search{
display: flex;
display: -webkit-flex;
justify-content: space-between;
margin-bottom: 20px;
:deep(){
.el-input{
width: 240px;
}
}
}
}
#silderLeft {
width: 242px;
box-sizing: border-box;
background: #fff;
border-radius: 3px;
position: relative;
&:hover {
.moveBtn {
opacity: 1;
}
}
}
/* 拖动条 */
.moveBtn {
height: 100%;
width: 15px;
padding: 0 6px;
opacity: 0;
position: absolute;
right: -15px;
top: 0;
}
.moveBtn-line {
width: 100%;
height: 100%;
cursor: col-resize;
user-select: none;
background-color: #60bfff;
}
.silderRights {
flex: 1;
position: relative;
width: 100%;
// overflow: auto;
border-radius: 3px;
padding-bottom: 0px;
margin-left: 15px;
box-sizing: border-box;
background: transparent;
}
.lefttitle {
min-width: 130px;
display: flex;
align-items: center;
padding: 10px 20px;
font-family: 'Arial Negreta', 'Arial Normal', 'Arial';
font-weight: 700;
font-style: normal;
font-size: 16px;
color: #1B1B1B;
border-bottom: 1px var(--el-border-color) var(--el-border-style);
margin-bottom: 10px;
.line{
border-width: 0px;
width: 5px;
height: 14px;
margin-right: 7px;
background: inherit;
background-color: rgba(64, 158, 255, 1);
border: none;
border-radius: 0px;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
}
:deep(){
.el-button{
margin-left: 10px;
}
// .el-tree-node__content{
// height: 40px;
// padding-left: 12px !important;
// color: #505050;
// }
// .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
// color: #409eff;
// }
// .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content:hover{
// color: #409eff;
// background-color: #ecf5ff;
// }
// .el-tree-node__content:hover{
// color: #409eff;
// background-color: transparent;
// // #ecf5ff
// }
// .el-tree-node__expand-icon{
// color: #333333;
// }
.el-tabs__item{
margin-right: 10px;
border: 1px solid #dfe4ee;
padding: 0px 20px !important;
width: 130px;
height: 44px;
border-radius: 10px;
border-bottom-right-radius: 0px;
border-bottom-left-radius: 0px;
background-color: #e9ecf3;
font-size: 14px;
color: #606060;
}
.el-tabs__nav{
padding-left: 20px;
}
.el-tabs__active-bar{
display: none;
}
.el-tabs__item:hover{
color: #409eff;
}
.el-tabs__item.is-active{
color: #fff;
border: 1px solid #409eff;
background-color: #409eff;
}
.el-tabs__nav-wrap::after{
display: none;
}
.el-tabs__header{
margin: 0px;
}
}
.searchinfo{
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: space-between;
}
.my-header{
display: flex;
justify-content: space-between;
align-items: center;
.icontext{
font-size: 12px;
color: #787878;
width: 25px;
text-align: center;
cursor: pointer;
img{
padding-left: 4px;
}
}
}
.tabcontent{
background-color: #fff;
height: calc(100vh - 329px);
border-radius: 5px;
padding: 20px;
}
</style>