JayChou 4 months ago
commit 9880db62a1
  1. 8
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/homepage/service/UserHomePageServiceImpl.java
  2. 13
      jeecgboot-vue3-master/src/api/demo/depart.ts
  3. 9
      jeecgboot-vue3-master/src/layouts/default/header/index.vue
  4. 2
      jeecgboot-vue3-master/src/settings/projectSetting.ts
  5. 6
      jeecgboot-vue3-master/src/views/annualcompgroup/AnnualCompGroupList.vue
  6. 17
      jeecgboot-vue3-master/src/views/cms/admin/subweside/SubwesideList.vue
  7. 5
      jeecgboot-vue3-master/src/views/demo/main-home/components/homePage/index.vue
  8. 7
      jeecgboot-vue3-master/src/views/demo/main-home/components/matchEvaluation/components/MCh.vue
  9. 10
      jeecgboot-vue3-master/src/views/demo/main-home/index.vue
  10. 127
      jeecgboot-vue3-master/src/views/depart/workbench/components/chDepartment/index.vue
  11. 90
      jeecgboot-vue3-master/src/views/depart/workbench/components/chSchool/index.vue
  12. 259
      jeecgboot-vue3-master/src/views/depart/workbench/components/chSchool/options.js
  13. 2
      jeecgboot-vue3-master/src/views/receipt/ReceiptList.vue
  14. 2
      jeecgboot-vue3-master/src/views/scpayment/ScPaymentList.vue
  15. 68
      jeecgboot-vue3-master/src/views/system/loginmini/MiniLogin.vue

@ -113,12 +113,12 @@ public class UserHomePageServiceImpl implements UserHomePageService {
Annual annual = iAnnualService.getOne(new LambdaQueryWrapper<Annual>().eq(Annual::getAnnualName, currentYear + ""));
List<Comp> compList = iCompService.list(new LambdaQueryWrapper<Comp>().eq(Comp::getCompOrgan, departId));
Set<String> compIds = Optional.ofNullable(compList).orElse(new LinkedList<>()).stream().map(obj -> obj.getId()).collect(Collectors.toSet());
List<AnnualComp> annualCompList = new ArrayList<>();
if (ObjectUtil.isNotNull(compIds)) {
annualCompList = iAnnualCompService.list(new LambdaQueryWrapper<AnnualComp>()
if (ObjectUtils.isEmpty(compIds)) {
return resultMap;
}
List<AnnualComp> annualCompList = iAnnualCompService.list(new LambdaQueryWrapper<AnnualComp>()
.eq(AnnualComp::getAnnualid, annual.getId())
.in(AnnualComp::getCompid, compIds));
}
Set<String> annualCompIds = Optional.ofNullable(annualCompList).orElse(new LinkedList<>()).stream().map(obj -> obj.getId()).collect(Collectors.toSet());
List<AnnualCompPoint> annualCompPointList = iAnnualCompPointService.list(new LambdaQueryWrapper<AnnualCompPoint>().in(AnnualCompPoint::getAnnualCompId, annualCompIds));

@ -0,0 +1,13 @@
import { defHttp } from '/@/utils/http/axios';
import { GetAccountInfoModel } from './model/accountModel';
enum Api {
PAGE_SCHOOL = '/user/login/homepage/school',
PAGE_DEPARTMENT ='/user/login/homepage/depart'
}
// Get personal center-basic settings
export const pageSchoolApi = () => defHttp.get<GetAccountInfoModel>({ url: Api.PAGE_SCHOOL });
export const pageDepartmentApi = (orgCode:string) => defHttp.get<GetAccountInfoModel>({ url: Api.PAGE_DEPARTMENT ,params:{orgCode}});

@ -24,19 +24,12 @@
<!-- action -->
<div :class="`${prefixCls}-action`">
<AppSearch :class="`${prefixCls}-action__item `" v-if="getShowSearch" />
<ErrorAction v-if="getUseErrorHandle" :class="`${prefixCls}-action__item error-action`" />
<Notify v-if="getShowNotice" :class="`${prefixCls}-action__item notify-item`" />
<FullScreen v-if="getShowFullScreen" :class="`${prefixCls}-action__item fullscreen-item`" />
<LockScreen v-if="getUseLockPage" />
<AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" />
<!-- <AppLocalePicker v-if="getShowLocalePicker" :reload="true" :showText="false" :class="`${prefixCls}-action__item`" />-->
<UserDropDown :theme="getHeaderTheme" />
<SettingDrawer v-if="getShowSetting" :class="`${prefixCls}-action__item`" />
</div>
</Header>

@ -73,7 +73,7 @@ const setting: ProjectConfig = {
// 主题
theme: ThemeEnum.LIGHT,
// 开启锁屏功能
useLockPage: true,
useLockPage: false,
// 显示全屏按钮
showFullScreen: true,
// 显示文档按钮

@ -34,8 +34,8 @@
<!--插槽:table标题-->
<template #tableTitle>
<a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
<j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
<j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>-->
<a-dropdown v-if="selectedRowKeys.length > 0">
<template #overlay>
<a-menu>
@ -97,7 +97,7 @@
canResize:false,
useSearchForm: false,
actionColumn: {
width: 120,
width: 160,
fixed: 'right',
},
beforeFetch: (params) => {

@ -30,7 +30,7 @@
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
<TableAction :actions="getTableAction(record)" />
</template>
<!--字段回显插槽-->
<template #htmlSlot="{text}">
@ -155,13 +155,24 @@
label: '编辑',
onClick: handleEdit.bind(null, record),
},
{
label: '删除',
popConfirm: {
title: '是否确认删除',
confirm: handleDelete.bind(null, record),
}
},
{
label: '详情',
onClick: handleDetail.bind(null, record),
}
];
}
/**
* 下拉操作栏
*/
function getDropDownAction(record) {
/* function getDropDownAction(record) {
return [
{
label: '详情',
@ -174,7 +185,7 @@
}
}
]
}
}*/
/**
* 查询

@ -24,7 +24,7 @@
<ul class="right_">
<li class="" v-for="o in data" :key="o.columnId"
@click="$router.push(`/main-home/MatchEvaluation/LesserCh/${o.id}`)">
<span class="le_">{{ o.title}}</span>
<span style="cursor: pointer" class="le_">{{ o.title}}</span>
<span class="re_">{{o.publishTime}}</span>
</li>
</ul>
@ -60,7 +60,7 @@
<div class="re_card">
<div class="re_card_img_box" v-for="o in data3" :key="o.columnId"
@click="$router.push(`/main-home/MatchEvaluation/LesserCh/${o.id}`)">
<img :src="setImageUrl(o.comimg)" alt="">
<img style="cursor: pointer" :src="setImageUrl(o.comimg)" alt="">
<div class="text">
{{ o.title}}
</div>
@ -294,6 +294,7 @@ function lookMore(i){
height: 189px;
.img-box {
cursor: pointer;
width: 100%;
height: 158px;
margin-bottom: 10px;

@ -18,9 +18,10 @@
<div class="card_left">
<div class="big">{{ parseTime(o.createTime,'b') }}</div>
<div class="small">{{parseTime(o.createTime,'a')}}</div>
<!-- <img :src="o.comimg" /> -->
</div>
<div class="card_right">
<div style="cursor: pointer" class="card_right">
<!-- <img :src="setImageUrl(o.comimg)" />-->
<p class="tit">{{ o.title }}</p>
<p class="text" v-if="o.info">
<span>{{ o.info }}</span>
@ -49,7 +50,7 @@
</div>
</div>
<div class="message-box">
<div class="msg-item" v-for="o in data" :key="o.columnId"
<div style="cursor: pointer" class="msg-item" v-for="o in data" :key="o.columnId"
@click="$router.push(`/main-home/MatchEvaluation/LesserCh/${o.id}`)">
<div class="msg-date">{{ o.publishTime }}</div>
<div class="msg-date_"></div>

@ -21,13 +21,13 @@
</div>
<div class="fixed">
<div style="width: 100px;height: 100px;cursor: pointer;">
<!-- <div style="width: 100px;height: 100px;cursor: pointer;">
<img style="width: 100%;height: 100%;" src="../../../assets/images/mainHome/div(1).png" alt="">
</div>
<div class="bas"></div>
</div>-->
<!-- <div class="bas"></div>-->
<div class="card bot">
<div class="img-box"><img src="../../../assets/images/mainHome/Frame.png" alt=""></div>
<div class="text">选手查询</div>
<div class="img-box" onclick="window.location.href='http://10.20.15.171:3200/'"><img src="../../../assets/images/mainHome/Frame.png" alt=""></div>
<div class="text">后台管理</div>
</div>
</div>

@ -2,67 +2,31 @@
<div class="department">
<div class="header">
<a-row :gutter="[16, 16]" type="flex" justify="space-between" style="width: 100%;">
<a-col :xs="12" :xl="6">
<a-col :lg="12" :xl="6" v-for="i in [
{ svg: 'mainHome-time|svg', title: '本年度已开展比赛项目数' },
{ svg: 'mainHome-time|svg', title: '本年度参加比赛队伍数' },
{ svg: 'mainHome-time|svg', title: '正在进行的比赛数' },
]" :key="i">
<div class="card">
<div class="top">
<div class="text">
本年度已开展比赛数
{{ i.title }}
</div>
<Icon icon="mainHome-time|svg" :size="20" />
<Icon :icon="i.svg" :size="20" />
</div>
<div class="center">
<div class="text">
67
{{ match[i.title] || 0 }}
</div>
</div>
<div class="bottom">
<div class="bot_card">国赛12</div>
<div class="bot_card">省赛12</div>
<div class="bot_card">校赛24</div>
<div class="bot_card">国赛{{ match['国赛'] || 0 }}</div>
<div class="bot_card">省赛{{ match['省赛'] || 0 }}</div>
<div class="bot_card">校赛{{ match['校赛'] || 0 }}</div>
</div>
</div>
</a-col>
<a-col :xs="12" :xl="6">
<div class="card">
<div class="top">
<div class="text">
本年度参加比赛队伍数
</div>
<Icon icon="mainHome-mp|svg" :size="20" />
</div>
<div class="center">
<div class="text">
1262
</div>
</div>
<div class="bottom">
<div class="bot_card">国赛120</div>
<div class="bot_card">省赛1230</div>
<div class="bot_card">校赛24</div>
</div>
</div>
</a-col>
<a-col :xs="12" :xl="6">
<div class="card">
<div class="top">
<div class="text">
正在进行的比赛数
</div>
<Icon icon="mainHome-down|svg" :size="20" />
</div>
<div class="center">
<div class="text" style="color: #74D472;">
45
</div>
</div>
<div class="bottom">
<div class="bot_card">国赛9</div>
<div class="bot_card">省赛13</div>
<div class="bot_card">校赛26</div>
</div>
</div>
</a-col>
<a-col :xs="12" :xl="6">
<div class="card2">
<div class="top">
@ -73,18 +37,19 @@
</div>
<div class="center">
<div class="percent">
78%
{{ (match['已完成比赛比率'] || 0) * 100 + '%' }}
</div>
<div>
<a-progress stroke-linecap="square" :percent="78" :show-info="false" />
<a-progress stroke-linecap="square" :percent="(match['已完成比赛比率'] || 0) * 100"
:show-info="false" />
</div>
</div>
<div class="bottom">
<div class="text">
已完成的比赛11
已完成的比赛{{ match['已完成的比赛'] || 0 }}
</div>
<div class="text">
未完成的比赛11
未完成的比赛{{ match['未完成的比赛'] || 0 }}
</div>
</div>
</div>
@ -115,9 +80,9 @@
<div id="ec_bar" ref="ec_bar"></div>
<div class="infor">
<ul class="card-box">
<li v-for="i in 12" :key="i">
<div class="ol">{{ i }}</div>
<div class="text">奠定基础</div>
<li v-for="item, i in names" :key="item">
<div class="ol">{{ i + 1 }}</div>
<div class="text" :title="item">{{ item }}</div>
</li>
</ul>
</div>
@ -184,18 +149,63 @@
</div>
</template>
<script lang="ts" setup>
function traYears(arr: any[], attr = 'value', option: any = { attrs: [], values: [] }): any[] {
if (!Array.isArray(arr)) return []
if (option.attrs.length && option.values.length) {
return arr.map(item => {
let o = {}
option.attrs.map((at, i) => {
if (typeof option.values[i] === 'object') o[at] = option.values[i].value
else o[at] = item[option.values[i]]
})
return o
})
}
return arr.map(item => item[attr])
}
import { Progress as AProgress } from 'ant-design-vue';
import { onMounted, ref } from 'vue';
import { onMounted, ref, reactive } from 'vue';
import * as echarts from 'echarts';
import { optionRing, optionBar } from './options'
import { pageDepartmentApi } from '/@/api/demo/depart';
import { useUserStore } from '/@/store/modules/user';
const userStore = useUserStore()
const match = reactive<any>({})
const names = reactive<any[]>([])
if (userStore.userInfo) {
pageDepartmentApi(userStore.userInfo.orgCode as string).then(res => {
// pageDepartmentApi('A03').then(res => {
Object.assign(match, res)
optionBar.series[0].data = traYears(res['部门近2年能力分析']?.[0][2023])
optionBar.series[1].data = traYears(res['部门近2年能力分析']?.[1][2024])
setBar.value()
names.push(...traYears(res['部门近2年能力分析']?.[0][2023], 'capacityName'))
optionRing.series[0].data = [
{ name: '已完成',value: res['已完成的比赛'] || 0, },
{ name: '比赛中',value: res['正在进行的比赛数']|| 0 },
{ name: '未开始',value: res['未完成的比赛'] || 0 },
]
setRing.value()
})
}
const ec = ref()
const ec_bar = ref()
const setBar = ref(() => { })
const setRing = ref(() => { })
onMounted(() => {
const myChart = echarts.init(ec.value);
myChart.setOption(optionRing);
setRing.value = ()=> myChart.setOption(optionRing);
const bar = echarts.init(ec_bar.value);
bar.setOption(optionBar);
setBar.value = () => bar.setOption(optionBar);
window.addEventListener('resize', function () {
myChart.resize()
bar.resize()
@ -515,6 +525,9 @@ onMounted(() => {
}
.text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 67px;
font-size: 14px;
color: rgba(51, 51, 51, 0.88);

@ -1,27 +1,29 @@
<template>
<div class="school">
<a-row :gutter="[16, 16]" type="flex" justify="space-between">
<a-col :lg="12" :xl="6" v-for="i in 4" :key="i">
<a-row :gutter="[16, 16]" type="flex" justify="space-between">
<a-col :lg="12" :xl="6" v-for="i in ['本年度已开展比赛项目数', '本年度参加比赛队伍数', '正在进行的比赛数', '已完成的比赛']" :key="i">
<div class="card">
<div class="top">
<div class="text">
本年度已开展比赛数
{{ i }}
</div>
<Icon icon="mainHome-time|svg" :size="20" />
</div>
<div class="center">
<div class="text">
67
{{ match[i] }}
</div>
</div>
<div class="bottom">
<div class="bot_card">国赛12</div>
<div class="bot_card">省赛12</div>
<div class="bot_card">校赛24</div>
<div class="bot_card">国赛{{ match['国赛'] || 0 }}</div>
<div class="bot_card">省赛{{ match['省赛'] || 0 }}</div>
<div class="bot_card">校赛{{ match['校赛'] || 0 }}</div>
</div>
</div>
</a-col>
</a-row>
</a-row>
<a-row :gutter="[16, 16]" type="flex" justify="space-between">
<a-col :xs="24" :xl="8">
<div class="ec_radar-box">
@ -36,7 +38,7 @@
<a-col :xs="24" :xl="16">
<div class="con_right">
<div class="title-box">
<div class="tit">部门近两年维度积分</div>
<div class="tit">学校近两年能力分析</div>
<div class="bas"></div>
</div>
<div class="ec-box">
@ -44,9 +46,9 @@
<div id="ec_bar" ref="ec_bar"></div>
<div class="infor">
<ul class="card-box">
<li v-for="i in 12" :key="i">
<div class="ol">{{ i }}</div>
<div class="text">奠定基础</div>
<li v-for="item, i in names" :key="item">
<div class="ol">{{ i + 1 }}</div>
<div class="text" :title="item">{{ item }}</div>
</li>
</ul>
</div>
@ -59,13 +61,14 @@
<a-col :xs="24" :xl="12">
<div class="foo_card">
<div class="title">
部门比赛积分排名
本年度全校部门积分排名
</div>
<div class="table">
<div class="t_item t_head">
<div class="ranking">排名</div>
<div class="name">比赛名称</div>
<div class="name2">比赛名称</div>
<div class="name2">项目名称</div>
<div class="total">比赛积分</div>
<div class="operate">操作</div>
</div>
@ -73,7 +76,8 @@
<div class="ranking">
<div class="ol" :class="{ ac: i <= 3 }">{{ i }}</div>
</div>
<div class="name">国家电网竞赛</div>
<div class="name2">国家电网竞赛</div>
<div class="name2">国家电网竞赛</div>
<div class="total">7059</div>
<div class="operate">详情</div>
</div>
@ -83,13 +87,13 @@
<a-col :xs="24" :xl="12">
<div class="foo_card">
<div class="title">
部门学生积分排名
本年度项目积分排名
</div>
<div class="table">
<div class="t_item t_head">
<div class="ranking">排名</div>
<div class="name">参赛选手名</div>
<div class="name">院系名称</div>
<div class="total">比赛积分</div>
<div class="operate">操作</div>
</div>
@ -110,17 +114,58 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue';
import { onMounted, reactive, ref } from 'vue';
import * as echarts from 'echarts';
import { optionRadar, optionBar } from '../chDepartment/options'
import { optionRadar, optionBar } from './options'
import { pageSchoolApi } from '/@/api/demo/depart';
function traYears(arr: any[], attr = 'value',option:any={attrs:[],values: []}): any[] {
if (!Array.isArray(arr)) return []
if(option.attrs.length&&option.values.length){
return arr.map(item => {
let o = {}
option.attrs.map((at,i)=>{
if(typeof option.values[i] === 'object')o[at] = option.values[i].value
else o[at]=item[option.values[i]]
})
return o
})
}
return arr.map(item => item[attr])
}
const match = reactive({})
const names = reactive<any[]>([])
pageSchoolApi().then(res => {
Object.assign(match, res)
optionBar.series[0].data = traYears(res['近2年能力分析']?.[0][2023])
optionBar.series[1].data = traYears(res['近2年能力分析']?.[1][2024])
setBar.value()
names.push(...traYears(res['近2年能力分析']?.[0][2023], 'capacityName'))
optionRadar.radar.indicator = traYears(res['近2年能力分析']?.[0][2023],undefined,{attrs:['text','max'],values:['capacityName',{value:100}]})
optionRadar.series[0].data[0].value = traYears(res['近2年能力分析']?.[0][2023])
setRadar.value()
})
const ec_radar = ref()
const ec_bar = ref()
const setRadar = ref(() => { })
const setBar = ref(() => { })
onMounted(() => {
const myChart = echarts.init(ec_radar.value);
myChart.setOption(optionRadar);
setRadar.value = () => myChart.setOption(optionRadar)
const bar = echarts.init(ec_bar.value);
bar.setOption(optionBar);
setBar.value = () => bar.setOption(optionBar)
window.addEventListener('resize', function () {
myChart.resize()
bar.resize()
@ -339,6 +384,9 @@ onMounted(() => {
}
.text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 67px;
font-size: 14px;
color: rgba(51, 51, 51, 0.88);
@ -398,6 +446,10 @@ onMounted(() => {
width: calc((542 / 756) * 100%);
}
.name2 {
width: calc((271 / 756) * 100%);
}
.total {
width: calc((74 / 756) * 100%);
}

@ -0,0 +1,259 @@
// 部门比赛情况分布 圆环
export const optionRing = {
color: [
'#0052D9',
'#699EF5',
'#B5C7FF',
],
legend: {
x: 'center',
orient: 'horizontal',
bottom: '48px',
data: ['已完成', '比赛中', '未开始']
},
series: [
{
type: 'pie',
center: ['50%', '41%'],
radius: ['35%', '45%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
labelLine: {
show: false
},
emphasis: {
label: {
show: true,
fontSize: '25',
fontWeight: 'bold'
}
},
data: [
{ value: 335, name: '已完成' },
{ value: 50, name: '比赛中' },
{ value: 23, name: '未开始' },
]
}
]
};
export const optionBar = {
tooltip: {
trigger: 'axis', // 触发类型为坐标轴触发
axisPointer: {
type: 'line',
label: {
backgroundColor: '#6a7985' // 自定义交叉线标签的背景色
}
},
formatter: function (params) {
let result = '<div class="bar_card">';
result += `<div class="title">维度名称</div>`
params.forEach(param => {
result += `<div class="item" style="color: ${param.color};">
${param.seriesName} ${param.value}
</div>`;
});
result += '</div>';
return result;
}
},
grid: {
left: '0%',
right: '0%',
top: '5%',
bottom: '86px',
// 如果需要,还可以设置containLabel来控制坐标轴标签是否完全包含在grid区域内
containLabel: true
},
legend: {
data: ['2023', '2024'],
bottom: '39px',
},
xAxis: {
data: ['维度一', '维度一', '维度一', '维度一', '维度一', '维度一', '维度一']
},
yAxis: {
type: 'value',
min: 0,
max: 100,
},
series: [
{
name: '2023',
type: 'bar',
data: [33, 44, 58, 85, 47, 38, 45],
barWidth: '20px',
itemStyle: {
color: '#0052D9',
}
},
{
name: '2024',
type: 'bar',
data: [36, 34, 48, 62, 43, 30, 37],
barWidth: '20px',
itemStyle: {
color: '#699EF5',
}
},
]
};
var colorArr = ['#fff', '#fff']; //颜色
var dataArr = [
{
value: [4000, 700, 3600, 3900, 1800, 4200, 700, 3600, 4200, 700, 3600, 4200, 700, 3600],
name: '1',
itemStyle: {
normal: {
lineStyle: {
color: '#55d7f2',
},
shadowColor: '#4A99FF',
shadowBlur: 10,
},
},
areaStyle: {
normal: {
// 单项区域填充样式
color: {
type: 'linear',
x: 1, //右
y: 0, //下
x2: 1, //左
y2: 1, //上
colorStops: [
{
offset: 0,
color: '#f0a223',
},
{
offset: 1,
color: '#093138',
},
],
globalCoord: false,
},
opacity: 1, // 区域透明度
},
},
},
];
var indicator = [
{
text: '前言探索',
max: 6000,
},
{
text: '奠定基础',
max: 5000,
},
{
text: '知识分析',
max: 5000,
},
{
text: '社会责任',
max: 5000,
},
{
text: '独立思考',
max: 5500,
},
{
text: '拓宽视野',
max: 5000,
},
{
text: '激发兴趣',
max: 5000,
},
{
text: '沟通协调',
max: 5000,
},
{
text: '设计开发',
max: 5000,
},
{
text: '研判分析',
max: 5000,
},
{
text: '创新能力',
max: 5000,
},
{
text: '团队协作',
max: 5000,
},
];
export const optionRadar = {
backgroundColor: "transparent",
color: colorArr,
// legend: {
// orient: "vertical",
// // icon: 'circle', //图例形状
// // data: legendData,
// top: 0,
// left: 20,
// itemWidth: 8, // 图例标记的图形宽度。[ default: 25 ]
// itemHeight: 8, // 图例标记的图形高度。[ default: 14 ]
// itemGap: 22, // 图例每项之间的间隔。[ default: 10 ]横向布局时为水平间隔,纵向布局时为纵向间隔。
// textStyle: {
// fontSize: 12,
// fontWeight: "bold",
// color: "#00E4FF",
// },
// },
tooltip: {
trigger: 'item'
},
radar: {
// shape: 'circle',
name: {
textStyle: {
color: "#9ca4a6",
fontSize: 12,
},
},
indicator: indicator,
splitArea: {
// 坐标轴在 grid 区域中的分隔区域,默认不显示。
show: true,
areaStyle: {
// 分隔区域的样式设置。
color: ["rgba(255,255,255,0)", "rgba(255,255,255,0)"], // 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
},
},
axisLine: {
//指向外圈文本的分隔线样式
lineStyle: {
color: "#2a5f61",
},
},
splitLine: {
lineStyle: {
color: "#2a5f61", // 分隔线颜色
width: 1, // 分隔线线宽
},
},
},
series: [
{
type: "radar",
symbolSize: 6,
symbol: "circle",
data: dataArr,
},
],
};

@ -72,7 +72,7 @@
canResize:false,
useSearchForm: false,
actionColumn: {
width: 120,
width: 160,
fixed: 'right',
},
beforeFetch: (params) => {

@ -72,7 +72,7 @@
canResize:false,
useSearchForm: false,
actionColumn: {
width: 120,
width: 160,
fixed: 'right',
},
beforeFetch: (params) => {

@ -1,5 +1,17 @@
<template>
<div :class="prefixCls" class="login-background-img">
<div class="fixed">
<!-- <div style="width: 100px;height: 100px;cursor: pointer;">
<img style="width: 100%;height: 100%;" src="../../../assets/images/mainHome/div(1).png" alt="">
</div>-->
<!-- <div class="bas"></div>-->
<div class="card bot">
<div class="img-box" onclick="window.location.href='http://10.20.15.171:3200/main-home'"><img src="../../../assets/images/mainHome/Frame.png" alt=""></div>
<div class="text">新闻首页</div>
</div>
</div>
<AppLocalePicker class="absolute top-4 right-4 enter-x xl:text-gray-600" :showText="false"/>
<AppDarkModeToggle class="absolute top-3 right-7 enter-x" />
<div class="aui-logo" v-if="!getIsMobile">
@ -425,6 +437,62 @@
@import '/@/assets/loginmini/style/home.less';
@import '/@/assets/loginmini/style/base.less';
.fixed {
position: fixed;
width: 100px;
height: 202px;
top: calc(80px + 20px);
right: 0px;
z-index: 9;
.card {
width: 100px;
height: 100px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
cursor: pointer;
.img-box {
width: 40px;
height: 40px;
margin-bottom: 4px;
img {
width: 100%;
height: 100%;
}
}
.text {
height: 18px;
font-family: Microsoft YaHei, Microsoft YaHei;
font-weight: 400;
font-size: 13px;
color: #FFFFFF;
line-height: 17px;
text-align: center;
font-style: normal;
text-transform: none;
}
}
.bas {
height: 2px;
width: 100%;
background-color: #fff;
}
.bot {
background: #A7B2C6;
border-bottom-left-radius: 20px;
}
}
:deep(.ant-input:focus) {
box-shadow: none;
}

Loading…
Cancel
Save