main
wwl 2024-03-29 09:43:38 +08:00
parent 181bc06d63
commit 4a98654782
5 changed files with 1911 additions and 2136 deletions

View File

@ -98,22 +98,22 @@ getFile()
</div> --> </div> -->
<div class="mt30px mr20px flex w100% relative"> <div class="mt30px mr20px flex w100% relative">
<!-- <img src="../../assets/images/fangz.png" class="w100%"/> --> <!-- <img src="../../assets/images/fangz.png" class="w100%"/> -->
<img src="../../assets/images/fzqiet.png" class="w100%" /> <!-- <img src="../../assets/images/fzqiet.png" class="w100%" />
<div <div
class="absolute py10px left-1160px top-270px pb-0px z-100 text-20px text-#285FE9 flex justify-center items-center hover:border-b-1px hover:border-b-solid hover:border-b-#285FE9 hover:cursor-pointer" class="absolute py10px left-1160px top-270px pb-0px z-100 text-20px text-#285FE9 flex justify-center items-center hover:border-b-1px hover:border-b-solid hover:border-b-#285FE9 hover:cursor-pointer"
@click="goFile" @click="goFile"
> >
<img src="../../assets/images/wjqq@2x.png" class="w18px h20px mr8px" /> <img src="../../assets/images/wjqq@2x.png" class="w18px h20px mr8px" />
2024年グループ年頭方针 2024年グループ年頭方针
</div> </div> -->
<!-- <img src="../../assets/images/2024fz.jpg" class="w100%" /> <img src="../../assets/images/2024fz.jpg" class="w100%" />
<div <div
class="absolute py10px left-880px top-250px pb-0px z-100 text-20px text-#285FE9 flex justify-center items-center hover:border-b-1px hover:border-b-solid hover:border-b-#285FE9 hover:cursor-pointer" class="absolute py10px left-880px top-250px pb-0px z-100 text-20px text-#285FE9 flex justify-center items-center hover:border-b-1px hover:border-b-solid hover:border-b-#285FE9 hover:cursor-pointer"
@click="goFile" @click="goFile"
> >
<img src="../../assets/images/wjqq@2x.png" class="w18px h20px mr8px" /> <img src="../../assets/images/wjqq@2x.png" class="w18px h20px mr8px" />
2024年グループ年頭方针 2024年グループ年頭方针
</div> --> </div>
</div> </div>
</template> </template>

View File

@ -1,31 +1,17 @@
<script setup lang="ts"> <script setup lang="ts">
import VChart from 'vue-echarts' import VChart from 'vue-echarts'
import { import { useChart1, useChart22, useChart21, useChart3, useChart23 } from './HomeData'
useChart1,
useChart22,
useChart21,
useChart3,
useChart23
} from './HomeData'
import AppHeadUserInfo from '@/components/AppHeadUserInfo.vue' import AppHeadUserInfo from '@/components/AppHeadUserInfo.vue'
import { NSelect } from 'naive-ui' import { NSelect } from 'naive-ui'
import News from './components/New.vue' import News from './components/New.vue'
import { import { homePageMarket, homePageRate, report, getHomeList, amountList } from '@/api/daikin/base'
homePageMarket,
homePageRate,
report,
getHomeList,
amountList
} from '@/api/daikin/base'
import { useUserStore } from '@/stores/modules/user' import { useUserStore } from '@/stores/modules/user'
const store = useUserStore() const store = useUserStore()
const isUpPwds = ref(false) const isUpPwds = ref(false)
const userCode = ref(false) const userCode = ref(false)
watchEffect(() => { watchEffect(() => {
userCode.value = ['admin', 'cd_dandang', 'tech_service'].includes( userCode.value = ['admin', 'cd_dandang', 'tech_service'].includes(store.user.roleCode)
store.user.roleCode
)
isUpPwds.value = store.user.isUpPwd === 2 ? true : false isUpPwds.value = store.user.isUpPwd === 2 ? true : false
}) })
const activeCard5NavKey = ref('DIS') const activeCard5NavKey = ref('DIS')
@ -100,121 +86,84 @@ onMounted(async () => {
month_2.value = _dszList[0].monthDate?.split('-')[1] month_2.value = _dszList[0].monthDate?.split('-')[1]
month_3.value = _dishList[0].monthDate?.split('-')[1] month_3.value = _dishList[0].monthDate?.split('-')[1]
addDIS1.value = _disList.reduce( addDIS1.value = _disList.reduce((previousValue: any, currentValue: { budget: any }) => {
(previousValue: any, currentValue: { budget: any }) => {
const sum = parseFloat(currentValue.budget) + parseFloat(previousValue) const sum = parseFloat(currentValue.budget) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_disList[0].budget == _disList[1].budget && addDIS1.value > 0) { if (_disList[0].budget == _disList[1].budget && addDIS1.value > 0) {
addDIS1.value -= _disList[0].budget addDIS1.value -= _disList[0].budget
addDIS1.value > 0 ? (addDIS1.value = addDIS1.value.toFixed(2)) : 0 addDIS1.value > 0 ? (addDIS1.value = addDIS1.value.toFixed(2)) : 0
} }
addDSZ1.value = _dszList.reduce( addDSZ1.value = _dszList.reduce((previousValue: any, currentValue: { budget: any }) => {
(previousValue: any, currentValue: { budget: any }) => {
const sum = parseFloat(currentValue.budget) + parseFloat(previousValue) const sum = parseFloat(currentValue.budget) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dszList[0].budget == _dszList[1].budget && addDSZ1.value > 0) { if (_dszList[0].budget == _dszList[1].budget && addDSZ1.value > 0) {
addDSZ1.value -= _dszList[0].budget addDSZ1.value -= _dszList[0].budget
addDSZ1.value > 0 ? (addDSZ1.value = addDSZ1.value.toFixed(2)) : 0 addDSZ1.value > 0 ? (addDSZ1.value = addDSZ1.value.toFixed(2)) : 0
} }
addDISH1.value = _dishList.reduce( addDISH1.value = _dishList.reduce((previousValue: any, currentValue: { budget: any }) => {
(previousValue: any, currentValue: { budget: any }) => {
const sum = parseFloat(currentValue.budget) + parseFloat(previousValue) const sum = parseFloat(currentValue.budget) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dishList[0].budget == _dishList[1].budget && addDISH1.value > 0) { if (_dishList[0].budget == _dishList[1].budget && addDISH1.value > 0) {
addDISH1.value -= _dishList[0].budget addDISH1.value -= _dishList[0].budget
addDISH1.value > 0 ? (addDISH1.value = addDISH1.value.toFixed(2)) : 0 addDISH1.value > 0 ? (addDISH1.value = addDISH1.value.toFixed(2)) : 0
} }
addDIS2.value = _disList.reduce( addDIS2.value = _disList.reduce((previousValue: any, currentValue: { monthOne: any }) => {
(previousValue: any, currentValue: { monthOne: any }) => { const sum = parseFloat(currentValue.monthOne) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthOne) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_disList[0].monthOne == _disList[1].monthOne && addDIS2.value > 0) { if (_disList[0].monthOne == _disList[1].monthOne && addDIS2.value > 0) {
addDIS2.value -= _disList[0].monthOne addDIS2.value -= _disList[0].monthOne
addDIS2.value > 0 ? (addDIS2.value = addDIS2.value.toFixed(2)) : 0 addDIS2.value > 0 ? (addDIS2.value = addDIS2.value.toFixed(2)) : 0
} }
addDSZ2.value = _dszList.reduce( addDSZ2.value = _dszList.reduce((previousValue: any, currentValue: { monthOne: any }) => {
(previousValue: any, currentValue: { monthOne: any }) => { const sum = parseFloat(currentValue.monthOne) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthOne) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dszList[0].monthOne == _dszList[1].monthOne && addDSZ2.value > 0) { if (_dszList[0].monthOne == _dszList[1].monthOne && addDSZ2.value > 0) {
addDSZ2.value -= _dszList[0].monthOne addDSZ2.value -= _dszList[0].monthOne
addDSZ2.value > 0 ? (addDSZ2.value = addDSZ2.value.toFixed(2)) : 0 addDSZ2.value > 0 ? (addDSZ2.value = addDSZ2.value.toFixed(2)) : 0
} }
addDISH2.value = _dishList.reduce( addDISH2.value = _dishList.reduce((previousValue: any, currentValue: { monthOne: any }) => {
(previousValue: any, currentValue: { monthOne: any }) => { const sum = parseFloat(currentValue.monthOne) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthOne) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dishList[0].monthOne == _dishList[1].monthOne && addDISH2.value > 0) { if (_dishList[0].monthOne == _dishList[1].monthOne && addDISH2.value > 0) {
addDISH2.value -= _dishList[0].monthOne addDISH2.value -= _dishList[0].monthOne
addDISH2.value > 0 ? (addDISH2.value = addDISH2.value.toFixed(2)) : 0 addDISH2.value > 0 ? (addDISH2.value = addDISH2.value.toFixed(2)) : 0
} }
addDIS3.value = _disList.reduce( addDIS3.value = _disList.reduce((previousValue: any, currentValue: { monthTwo: any }) => {
(previousValue: any, currentValue: { monthTwo: any }) => { const sum = parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_disList[0].monthTwo == _disList[1].monthTwo && addDIS3.value > 0) { if (_disList[0].monthTwo == _disList[1].monthTwo && addDIS3.value > 0) {
addDIS3.value -= _disList[0].monthTwo addDIS3.value -= _disList[0].monthTwo
addDIS3.value > 0 ? (addDIS3.value = addDIS3.value.toFixed(2)) : 0 addDIS3.value > 0 ? (addDIS3.value = addDIS3.value.toFixed(2)) : 0
} }
addDSZ3.value = _dszList.reduce( addDSZ3.value = _dszList.reduce((previousValue: any, currentValue: { monthTwo: any }) => {
(previousValue: any, currentValue: { monthTwo: any }) => { const sum = parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dszList[0].monthTwo == _dszList[1].monthTwo && addDSZ3.value > 0) { if (_dszList[0].monthTwo == _dszList[1].monthTwo && addDSZ3.value > 0) {
addDSZ3.value -= _dszList[0].monthTwo addDSZ3.value -= _dszList[0].monthTwo
addDSZ3.value > 0 ? (addDSZ3.value = addDSZ3.value.toFixed(2)) : 0 addDSZ3.value > 0 ? (addDSZ3.value = addDSZ3.value.toFixed(2)) : 0
} }
addDISH3.value = _dishList.reduce( addDISH3.value = _dishList.reduce((previousValue: any, currentValue: { monthTwo: any }) => {
(previousValue: any, currentValue: { monthTwo: any }) => { const sum = parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
const sum =
parseFloat(currentValue.monthTwo) + parseFloat(previousValue)
return sum > 0 ? sum.toFixed(2) : 0 return sum > 0 ? sum.toFixed(2) : 0
}, }, 0)
0
)
if (_dishList[0].monthTwo == _dishList[1].monthTwo && addDISH3.value > 0) { if (_dishList[0].monthTwo == _dishList[1].monthTwo && addDISH3.value > 0) {
addDISH3.value -= _dishList[0].monthTwo addDISH3.value -= _dishList[0].monthTwo
addDISH3.value > 0 ? (addDISH3.value = addDISH3.value.toFixed(2)) : 0 addDISH3.value > 0 ? (addDISH3.value = addDISH3.value.toFixed(2)) : 0
} }
if (isUpPwds.value) { if (isUpPwds.value) {
ElMessageBox.alert( ElMessageBox.alert('为了您的帐号安全,首次登录必须更改初始密码', '重要提醒', {
'为了您的帐号安全,首次登录必须更改初始密码',
'重要提醒',
{
confirmButtonText: 'OK', confirmButtonText: 'OK',
showClose: false, showClose: false,
showCancelButton: false showCancelButton: false
} }).then(() => {
).then(() => {
push({ name: 'modifys' }) push({ name: 'modifys' })
}) })
} }
@ -315,9 +264,7 @@ function formatNumber(num = 0) {
<span class="ml10px text-14px">更新时间{{ timeA }}</span> <span class="ml10px text-14px">更新时间{{ timeA }}</span>
<div class="h150px overflow-auto"> <div class="h150px overflow-auto">
<table <table class="history w-full text-center mt18px text-16px border-spacing-0 w219px">
class="history w-full text-center mt18px text-16px border-spacing-0 w219px"
>
<thead <thead
style=" style="
background-color: #417bef; background-color: #417bef;
@ -342,10 +289,7 @@ function formatNumber(num = 0) {
> >
<td class="text-14px">{{ it.channel }}</td> <td class="text-14px">{{ it.channel }}</td>
<td class="text-14px">{{ it.negAmount }}</td> <td class="text-14px">{{ it.negAmount }}</td>
<td <td class="text-14px" :class="it.diffValue < 0 ? 'text-#63BF8D' : 'text-red'">
class="text-14px"
:class="it.diffValue < 0 ? 'text-#63BF8D' : 'text-red'"
>
{{ displayDiffValue(it.diffValue) }} {{ displayDiffValue(it.diffValue) }}
</td> </td>
</tr> </tr>
@ -380,10 +324,7 @@ function formatNumber(num = 0) {
> >
<td class="text-14px">{{ it.channel }}</td> <td class="text-14px">{{ it.channel }}</td>
<td class="text-14px">{{ it.negAmount }}</td> <td class="text-14px">{{ it.negAmount }}</td>
<td <td class="text-14px" :class="it.diffValue < 0 ? 'text-#63BF8D' : 'text-red'">
class="text-14px"
:class="it.diffValue < 0 ? 'text-#63BF8D' : 'text-red'"
>
{{ displayDiffValue(it.diffValue) }} {{ displayDiffValue(it.diffValue) }}
</td> </td>
</tr> </tr>
@ -395,9 +336,7 @@ function formatNumber(num = 0) {
<span class="icoT">汇率</span> <span class="icoT">汇率</span>
<span class="ml10px text-14px">更新时间{{ timeB }}</span> <span class="ml10px text-14px">更新时间{{ timeB }}</span>
<div class="h282px pt18px"> <div class="h282px pt18px">
<table <table class="history w-full text-center text-16px border-spacing-0 w219px">
class="history w-full text-center text-16px border-spacing-0 w219px"
>
<thead <thead
style=" style="
background-color: #417bef; background-color: #417bef;
@ -506,14 +445,10 @@ function formatNumber(num = 0) {
<td :rowspan="disList[0].budget == disList[1].budget ? '2' : ''"> <td :rowspan="disList[0].budget == disList[1].budget ? '2' : ''">
{{ formatNumber(disList[0].budget) }}% {{ formatNumber(disList[0].budget) }}%
</td> </td>
<td <td :rowspan="disList[0].monthOne == disList[1].monthOne ? '2' : ''">
:rowspan="disList[0].monthOne == disList[1].monthOne ? '2' : ''"
>
{{ formatNumber(disList[0].monthOne) }}% {{ formatNumber(disList[0].monthOne) }}%
</td> </td>
<td <td :rowspan="disList[0].monthTwo == disList[1].monthTwo ? '2' : ''">
:rowspan="disList[0].monthTwo == disList[1].monthTwo ? '2' : ''"
>
{{ formatNumber(disList[0].monthTwo) }}% {{ formatNumber(disList[0].monthTwo) }}%
</td> </td>
</tr> </tr>
@ -577,14 +512,10 @@ function formatNumber(num = 0) {
<td :rowspan="dszList[0].budget == dszList[1].budget ? '2' : ''"> <td :rowspan="dszList[0].budget == dszList[1].budget ? '2' : ''">
{{ formatNumber(dszList[0].budget) }}% {{ formatNumber(dszList[0].budget) }}%
</td> </td>
<td <td :rowspan="dszList[0].monthOne == dszList[1].monthOne ? '2' : ''">
:rowspan="dszList[0].monthOne == dszList[1].monthOne ? '2' : ''"
>
{{ formatNumber(dszList[0].monthOne) }}% {{ formatNumber(dszList[0].monthOne) }}%
</td> </td>
<td <td :rowspan="dszList[0].monthTwo == dszList[1].monthTwo ? '2' : ''">
:rowspan="dszList[0].monthTwo == dszList[1].monthTwo ? '2' : ''"
>
{{ formatNumber(dszList[0].monthTwo) }}% {{ formatNumber(dszList[0].monthTwo) }}%
</td> </td>
</tr> </tr>
@ -645,23 +576,13 @@ function formatNumber(num = 0) {
<tr> <tr>
<th rowspan="2">C/D</th> <th rowspan="2">C/D</th>
<th>交涉</th> <th>交涉</th>
<td <td :rowspan="dishList[0].budget == dishList[1].budget ? '2' : ''">
:rowspan="dishList[0].budget == dishList[1].budget ? '2' : ''"
>
{{ formatNumber(dishList[0].budget) }}% {{ formatNumber(dishList[0].budget) }}%
</td> </td>
<td <td :rowspan="dishList[0].monthOne == dishList[1].monthOne ? '2' : ''">
:rowspan="
dishList[0].monthOne == dishList[1].monthOne ? '2' : ''
"
>
{{ formatNumber(dishList[0].monthOne) }}% {{ formatNumber(dishList[0].monthOne) }}%
</td> </td>
<td <td :rowspan="dishList[0].monthTwo == dishList[1].monthTwo ? '2' : ''">
:rowspan="
dishList[0].monthTwo == dishList[1].monthTwo ? '2' : ''
"
>
{{ formatNumber(dishList[0].monthTwo) }}% {{ formatNumber(dishList[0].monthTwo) }}%
</td> </td>
</tr> </tr>
@ -700,30 +621,21 @@ function formatNumber(num = 0) {
</div> </div>
<div class="card" @click="setModule('App_BCP', 'BCP')"> <div class="card" @click="setModule('App_BCP', 'BCP')">
<div class="card_title cursor-pointer hover:underline">调达BCP管理</div> <div class="card_title cursor-pointer hover:underline">调达BCP管理</div>
<div class="card_sub-title">责任者调达中心 加工品变革T</div> <div class="card_sub-title">责任者调达 加工品变革T</div>
<div class="card_content"> <div class="card_content">
<img <img src="@/assets/images/img-11.png" class="w-full h-full object-cover" />
src="@/assets/images/img-11.png"
class="w-full h-full object-cover"
/>
</div> </div>
</div> </div>
<div class="card relative"> <div class="card relative">
<!-- <img src="@/assets/images/img-42.png" class="absolute top-10px right-0" /> --> <!-- <img src="@/assets/images/img-42.png" class="absolute top-10px right-0" /> -->
<div <div class="card_title cursor-pointer hover:underline" @click="setModule('App_CSR', 'CSR')">
class="card_title cursor-pointer hover:underline"
@click="setModule('App_CSR', 'CSR')"
>
SCM碳中和活动 SCM碳中和活动
</div> </div>
<div class="card_sub-title" @click="setModule('App_CSR', 'CSR')"> <div class="card_sub-title" @click="setModule('App_CSR', 'CSR')">
责任者调达研究院 调达机能研究T 责任者开发调达部 调达机能研究T
</div> </div>
<div class="card_content px20px" @click="setModule('App_CSR', 'CSR')"> <div class="card_content px20px" @click="setModule('App_CSR', 'CSR')">
<img <img src="../../assets/images/scmtzh@2x.png" class="w-full h-96% cover" />
src="../../assets/images/scmtzh@2x.png"
class="w-full h-96% cover"
/>
<!-- <div class="flex text-center"> <!-- <div class="flex text-center">
<div class="bg-#F4F8FF text-#000 h30px w-full pt5px font-bold">F25碳减排目标 <el-icon class="!text-#004DE1"> <div class="bg-#F4F8FF text-#000 h30px w-full pt5px font-bold">F25碳减排目标 <el-icon class="!text-#004DE1">
<CaretTop /> <CaretTop />
@ -767,31 +679,20 @@ function formatNumber(num = 0) {
</div> </div>
<div class="card topics"> <div class="card topics">
<div class="card_title cursor-pointer hover:underline"> <div class="card_title cursor-pointer hover:underline">重点Theme取组</div>
重点Theme取组
</div>
<div class="card_content p20px pt10px"> <div class="card_content p20px pt10px">
<div <div
class="w-full h-full flex flex-wrap content-between justify-between text-18px font-bold" class="w-full h-full flex flex-wrap content-between justify-between text-18px font-bold"
> >
<div <div class="item !h-188px cursor-pointer" @click="setModule('App_Quality', 'Quality')">
class="item !h-188px cursor-pointer"
@click="setModule('App_Quality', 'Quality')"
>
<div class="item_title hover:underline">品质</div> <div class="item_title hover:underline">品质</div>
<div class="item_sub-title">责任者调达中心 加工品变革T</div> <div class="item_sub-title">责任者调达部 加工品变革T</div>
<!-- <img src="@/assets/images/img-45.svg" class="item_img pb13px pr20px" /> --> <!-- <img src="@/assets/images/img-45.svg" class="item_img pb13px pr20px" /> -->
<img <img src="@/assets/images/img-41.png" class="item_img b !bottom--20px" />
src="@/assets/images/img-41.png"
class="item_img b !bottom--20px"
/>
</div> </div>
<div <div class="item !h-188px cursor-pointer" @click="setModule('App_Lab', 'Diffspace')">
class="item !h-188px cursor-pointer"
@click="setModule('App_Lab', 'Diffspace')"
>
<div class="item_title hover:underline">AI差别化LAB</div> <div class="item_title hover:underline">AI差别化LAB</div>
<div class="item_sub-title">责任者调达研究院</div> <div class="item_sub-title">责任者开发调达部</div>
<div class="item_sub-title">差别化研究T</div> <div class="item_sub-title">差别化研究T</div>
<img src="@/assets/images/img-43.png" class="item_img" /> <img src="@/assets/images/img-43.png" class="item_img" />
</div> </div>
@ -804,20 +705,13 @@ function formatNumber(num = 0) {
<!-- <img src="./images/home-1.svg" /> --> <!-- <img src="./images/home-1.svg" /> -->
<div class="flex mt20px items-center justify-center"> <div class="flex mt20px items-center justify-center">
<div class="bg-#0038BE w210px px15px py7px rounded-30px"> <div class="bg-#0038BE w210px px15px py7px rounded-30px">
<img <img src="@/assets/images/biaoq2@2x.png" class="w25px h21px" />
src="@/assets/images/biaoq2@2x.png"
class="w25px h21px"
/>
重点Theme管理 重点Theme管理
</div> </div>
<span <span class="text-#000 font-thin underline-text mx23px hover:underline-solid"
class="text-#000 font-thin underline-text mx23px hover:underline-solid" >开发调达部</span
>调达研究院</span
>
<span
class="text-#000 font-thin underline-text hover:underline-solid"
>调达中心</span
> >
<span class="text-#000 font-thin underline-text hover:underline-solid">调达部</span>
<!-- <VChart :option="chartOption2" autoresize /> --> <!-- <VChart :option="chartOption2" autoresize /> -->
</div> </div>
</div> </div>

View File

@ -76,7 +76,8 @@ getFile()
> >
外部情报 外部情报
</div> </div>
<div class="card_sub-title">责任者调达研究院 研究企画T</div> <!-- <div class="card_sub-title">责任者调达研究院 研究企画T</div> -->
<div class="card_sub-title">责任者开发调达部 研究企画T</div>
</div> </div>
<div <div
class="flex text-#fff tetx-16px items-end txt-bg px-10px py-8px rounded-10px text-#fff mt-[10px] mr-16px" class="flex text-#fff tetx-16px items-end txt-bg px-10px py-8px rounded-10px text-#fff mt-[10px] mr-16px"
@ -85,18 +86,11 @@ getFile()
class="text-16px text-#fff flex flex-col flex-start" class="text-16px text-#fff flex flex-col flex-start"
@click="push({ name: 'DataBase', query: { id: cateId } })" @click="push({ name: 'DataBase', query: { id: cateId } })"
> >
<span <span class="flex align-middle items-center cursor-pointer hover:underline mb-4px"
class="flex align-middle items-center cursor-pointer hover:underline mb-4px"
>调达本部月报 >调达本部月报
<img <img class="h-14px pl-4px" src="@/assets/images/yjtt@2x.png" alt="" />
class="h-14px pl-4px"
src="@/assets/images/yjtt@2x.png"
alt=""
/>
</span>
<span class="text-14px mt2px">
作成日{{ files.time || `2024年1月` }}
</span> </span>
<span class="text-14px mt2px"> 作成日{{ files.time || `2024年1月` }} </span>
</p> </p>
</div> </div>
</div> </div>
@ -109,43 +103,28 @@ getFile()
src="@/assets/images/bg-card6-text.svg" src="@/assets/images/bg-card6-text.svg"
class="h26px absolute left-16px top-16px animate__animated animate__zoomIn animate__delay-2s animate__slower animate__repeat-2" class="h26px absolute left-16px top-16px animate__animated animate__zoomIn animate__delay-2s animate__slower animate__repeat-2"
/> />
<div <div class="news_card_item i1 flex-1 w0 h100px p10px pt56px flex flex-col justify-around">
class="news_card_item i1 flex-1 w0 h100px p10px pt56px flex flex-col justify-around"
>
<img <img
src="@/assets/images/WATCHING@2x.png" src="@/assets/images/WATCHING@2x.png"
class="w41px h47px absolute left-40px top-25px animate__animated animate__infinite animate__heartBeat" class="w41px h47px absolute left-40px top-25px animate__animated animate__infinite animate__heartBeat"
/> />
<img <img src="@/assets/images/WATCHING2@2x.png" class="w80px left-10px top-10px" />
src="@/assets/images/WATCHING2@2x.png"
class="w80px left-10px top-10px"
/>
<!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 0" v-for="i in listData.slice(0,2)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> --> <!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 0" v-for="i in listData.slice(0,2)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> -->
</div> </div>
<div <div class="news_card_item i2 flex-1 w0 h120px p10px pt56px flex flex-col justify-around">
class="news_card_item i2 flex-1 w0 h120px p10px pt56px flex flex-col justify-around"
>
<img <img
src="@/assets/images/ALARM@2x.png" src="@/assets/images/ALARM@2x.png"
class="w61px h63px absolute left-28px top-30px animate__animated animate__infinite animate__fadeIn" class="w61px h63px absolute left-28px top-30px animate__animated animate__infinite animate__fadeIn"
/> />
<img <img src="@/assets/images/ALARM2@2x.png" class="w70px left-15px top-14px" />
src="@/assets/images/ALARM2@2x.png"
class="w70px left-15px top-14px"
/>
<!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 2" v-for="i in listData.slice(2,4)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> --> <!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 2" v-for="i in listData.slice(2,4)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> -->
</div> </div>
<div <div class="news_card_item i3 w140px h160px p10px pt70px flex flex-col justify-around">
class="news_card_item i3 w140px h160px p10px pt70px flex flex-col justify-around"
>
<img <img
src="@/assets/images/WARNING@2x.png" src="@/assets/images/WARNING@2x.png"
class="w82px h66px absolute left-30px top-45px animate__animated animate__infinite animate__flipOutY" class="w82px h66px absolute left-30px top-45px animate__animated animate__infinite animate__flipOutY"
/> />
<img <img src="@/assets/images//WARNING2@2x.png" class="w100px left-8px top-20px" />
src="@/assets/images//WARNING2@2x.png"
class="w100px left-8px top-20px"
/>
<!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 4" v-for="i in listData.slice(4,7)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> --> <!-- <p class="truncate" v-if="listData && Array.isArray(listData) && listData.length > 4" v-for="i in listData.slice(4,7)" :key="i" @click="toDetail2(i)">{{ i.title }}</p> -->
</div> </div>
</div> </div>

View File

@ -21,10 +21,7 @@ import { NModal, useMessage } from 'naive-ui'
const message = useMessage() const message = useMessage()
const currentDate = new Date() const currentDate = new Date()
const currentDates = new Date() const currentDates = new Date()
const value1 = ref<[Date, Date]>([ const value1 = ref<[Date, Date]>([currentDate.setMonth(currentDate.getMonth()), new Date()])
currentDate.setMonth(currentDate.getMonth()),
new Date()
])
const states = reactive<any>({ const states = reactive<any>({
startTime: formatDate(value1.value[0]).substring(0, 10), startTime: formatDate(value1.value[0]).substring(0, 10),
endTime: formatDate(value1.value[1]).substring(0, 10) endTime: formatDate(value1.value[1]).substring(0, 10)
@ -173,7 +170,8 @@ const getListPage = async () => {
visitDay: visitDay.value, visitDay: visitDay.value,
moduleCode: moduleCode.value, moduleCode: moduleCode.value,
pageNum: pageInfo.currentPage, pageNum: pageInfo.currentPage,
pageSize: pageInfo.pageSize pageSize: pageInfo.pageSize,
...states
}) })
outDetail.value = res?.rows || [] outDetail.value = res?.rows || []
pageInfo.total = res?.total || 0 pageInfo.total = res?.total || 0
@ -238,16 +236,11 @@ const getDat = async () => {
dataList.value = data dataList.value = data
let xAxisData: any[] = [] let xAxisData: any[] = []
let siomesData: any[] = [] let siomesData: any[] = []
data.forEach( data.forEach((item: { moduleName: any; visitCount: any; moduleCode: any }, i: number) => {
(
item: { moduleName: any; visitCount: any; moduleCode: any },
i: number
) => {
xAxisData.push(item.moduleName) xAxisData.push(item.moduleName)
siomesData.push(item.visitCount) siomesData.push(item.visitCount)
colorListObj.value[item.moduleCode] = colorList[i] colorListObj.value[item.moduleCode] = colorList[i]
} })
)
chartOption1.value = Chart1(xAxisData) chartOption1.value = Chart1(xAxisData)
chartOption1.value.series[0] = { chartOption1.value.series[0] = {
data: siomesData, data: siomesData,
@ -264,10 +257,7 @@ const getDat = async () => {
const deptId = ref('') const deptId = ref('')
let isLeaderFlag = 0 let isLeaderFlag = 0
async function getInternalUserStat( async function getInternalUserStat(isLeader: number = 0, flag: boolean = false) {
isLeader: number = 0,
flag: boolean = false
) {
if (!flag) { if (!flag) {
pageInfo.currentPage = 1 pageInfo.currentPage = 1
pageInfo.pageSize = 10 pageInfo.pageSize = 10
@ -305,9 +295,7 @@ async function getInternalUserStat(
...{ ...{
series: [ series: [
{ {
data: item.moduleStatList data: item.moduleStatList.map((item: any) => item.visitCount).reverse(),
.map((item: any) => item.visitCount)
.reverse(),
// data: new Array(item.moduleStatList.length) // data: new Array(item.moduleStatList.length)
// .fill(0) // .fill(0)
// .map(() => roundMath(10, 100)), // .map(() => roundMath(10, 100)),
@ -335,17 +323,12 @@ const getExternalTimeStat = async () => {
externalList.value = data externalList.value = data
let xAxisData: any[] = [] let xAxisData: any[] = []
let siomesData: any[] = [] let siomesData: any[] = []
data.forEach( data.forEach((item: { moduleName: any; visitCount: any; moduleCode: any }, i: number) => {
(
item: { moduleName: any; visitCount: any; moduleCode: any },
i: number
) => {
externalObj.value[item.moduleCode] = item.moduleName externalObj.value[item.moduleCode] = item.moduleName
externalObj.value[item.moduleCode + 'color'] = colorList[9 + i] externalObj.value[item.moduleCode + 'color'] = colorList[9 + i]
xAxisData.push(item.moduleName) xAxisData.push(item.moduleName)
siomesData.push(item.visitCount) siomesData.push(item.visitCount)
} })
)
chartOption2.value = Chart1(xAxisData) chartOption2.value = Chart1(xAxisData)
chartOption2.value.series[0] = { chartOption2.value.series[0] = {
data: siomesData, data: siomesData,
@ -543,18 +526,7 @@ const CloseThiss = (data?: boolean) => {
// setUserList.value = [] // setUserList.value = []
} }
const sortArr = [ const sortArr = ['1ST', '2ND', '3RD', '4TH', '5TH', '6TH', '7TH', '8TH', '9TH', '10TH']
'1ST',
'2ND',
'3RD',
'4TH',
'5TH',
'6TH',
'7TH',
'8TH',
'9TH',
'10TH'
]
const treeData = ref([]) const treeData = ref([])
const getdeptTree = async () => { const getdeptTree = async () => {
@ -575,11 +547,7 @@ getdeptTree()
<span class="text-#000 mr-10px">日期: </span> <span class="text-#000 mr-10px">日期: </span>
<div class="max-w-350px flex items-center"> <div class="max-w-350px flex items-center">
<el-date-picker <el-date-picker
v-if=" v-if="['inside', 'out', 'inside-detail', 'echart', 'out-detail'].includes(activeName)"
['inside', 'out', 'inside-detail', 'echart', 'out-detail'].includes(
activeName
)
"
v-model="value1" v-model="value1"
type="daterange" type="daterange"
range-separator="到" range-separator="到"
@ -598,18 +566,19 @@ getdeptTree()
clearable clearable
/> />
</div> </div>
<div class="mx-4 flex items-center" v-if="'echart' === activeName"> <div class="mx-4 flex items-center w200px" v-if="'echart' === activeName">
<el-select v-model="visitType" placeholder="本部/外部"> <el-select v-model="visitType" placeholder="本部/外部" class="w-300px">
<el-option label="本部足迹" value="1" /> <el-option label="本部足迹" value="1" />
<el-option label="外部部足迹" value="2" /> <el-option label="外部部足迹" value="2" />
</el-select> </el-select>
</div> </div>
<div <div
class="mx-4 flex items-center" class="mx-4 flex items-center w-auto"
v-if="['inside-detail', 'out-detail'].includes(activeName)" v-if="['inside-detail', 'out-detail'].includes(activeName)"
> >
<span class="text-#000 mr-10px">模块: </span> <span class="text-#000 mr-10px whitespace-nowrap">模块: </span>
<el-select <el-select
class="!w300px"
v-if="'out-detail' === activeName" v-if="'out-detail' === activeName"
v-model="moduleCode" v-model="moduleCode"
placeholder="选择模块" placeholder="选择模块"
@ -623,7 +592,7 @@ getdeptTree()
/> />
</el-select> </el-select>
<template v-if="'inside-detail' === activeName"> <template v-if="'inside-detail' === activeName">
<el-select v-model="imoduleCode" placeholder="选择模块" clearable> <el-select class="!w300px" v-model="imoduleCode" placeholder="选择模块" clearable>
<el-option <el-option
v-for="item in dataList" v-for="item in dataList"
:key="item.id" :key="item.id"
@ -631,8 +600,8 @@ getdeptTree()
:value="item.moduleCode" :value="item.moduleCode"
/> />
</el-select> </el-select>
<span class="text-#000 mr-10px ml-4">职位: </span> <span class="text-#000 mr-10px ml-4 whitespace-nowrap">职位: </span>
<el-select v-model="postId" placeholder="选择职位" clearable> <el-select class="w300px" v-model="postId" placeholder="选择职位" clearable>
<el-option <el-option
v-for="item in postList" v-for="item in postList"
:key="item.id" :key="item.id"
@ -645,10 +614,7 @@ getdeptTree()
<div class="flex items-center" v-if="activeName === 'out-detail'"> <div class="flex items-center" v-if="activeName === 'out-detail'">
> >
<span class="text-#000 mr-10px w-50px">供方: </span> <span class="text-#000 mr-10px w-50px">供方: </span>
<el-input <el-input v-model="waibuKd" placeholder="请输入供方昵称或代码"></el-input>
v-model="waibuKd"
placeholder="请输入供方昵称或代码"
></el-input>
</div> </div>
<div class="flex items-center" v-if="activeName === 'inside-detail'"> <div class="flex items-center" v-if="activeName === 'inside-detail'">
> >
@ -673,12 +639,7 @@ getdeptTree()
>导出 Excel</el-button >导出 Excel</el-button
> >
<template v-if="activeName !== 'inside' && false"> <template v-if="activeName !== 'inside' && false">
<el-select <el-select v-model="selValue" class="ml-20px mt-[-4px]" placeholder="Select" size="small">
v-model="selValue"
class="ml-20px mt-[-4px]"
placeholder="Select"
size="small"
>
<el-option <el-option
v-for="item in externalList" v-for="item in externalList"
:key="item.moduleCode" :key="item.moduleCode"
@ -731,17 +692,9 @@ getdeptTree()
}" }"
> >
<el-table-column prop="moduleName" label="模块名称" /> <el-table-column prop="moduleName" label="模块名称" />
<el-table-column <el-table-column prop="deptName" label="职位名称" show-overflow-tooltip>
prop="deptName"
label="职位名称"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="访问次数" prop="visitCount" show-overflow-tooltip />
label="访问次数"
prop="visitCount"
show-overflow-tooltip
/>
</el-table> </el-table>
</div> </div>
<!-- <div class="absolute bottom-2px right-30px z-20 bg-#fff"> <!-- <div class="absolute bottom-2px right-30px z-20 bg-#fff">
@ -758,12 +711,7 @@ getdeptTree()
</div> </div>
<div class="w-full h-720px mt-30px"> <div class="w-full h-720px mt-30px">
<VChart <VChart key="yyyxx" ref="pieChartRef" :option="barChartOption" autoresize />
key="yyyxx"
ref="pieChartRef"
:option="barChartOption"
autoresize
/>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
@ -797,13 +745,7 @@ getdeptTree()
</div> </div>
</div> --> </div> -->
<div class="w-full h-400px mt-10px"> <div class="w-full h-400px mt-10px">
<VChart <VChart key="yyy" ref="chartRef1" :option="chartOption1" v-if="showEchart" autoresize />
key="yyy"
ref="chartRef1"
:option="chartOption1"
v-if="showEchart"
autoresize
/>
</div> </div>
<div class="mt-30px"> <div class="mt-30px">
<div class="flex items-center"> <div class="flex items-center">
@ -920,27 +862,11 @@ getdeptTree()
}" }"
> >
<el-table-column prop="moduleName" label="模块名称" /> <el-table-column prop="moduleName" label="模块名称" />
<el-table-column <el-table-column prop="postName" label="职位名称" show-overflow-tooltip>
prop="postName"
label="职位名称"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="nickName" label="用户昵称" show-overflow-tooltip />
prop="nickName" <el-table-column label="访问次数" prop="visitCount" show-overflow-tooltip />
label="用户昵称" <el-table-column label="访问日期" prop="visitTime" show-overflow-tooltip />
show-overflow-tooltip
/>
<el-table-column
label="访问次数"
prop="visitCount"
show-overflow-tooltip
/>
<el-table-column
label="访问日期"
prop="visitTime"
show-overflow-tooltip
/>
</el-table> </el-table>
</div> </div>
<div class="absolute bottom-2px right-30px z-20 bg-#fff"> <div class="absolute bottom-2px right-30px z-20 bg-#fff">
@ -979,32 +905,16 @@ getdeptTree()
height: '60px' height: '60px'
}" }"
> >
<el-table-column <el-table-column prop="title" label="访问模块" show-overflow-tooltip>
prop="title"
label="访问模块"
show-overflow-tooltip
>
<template #default="{ row }"> <template #default="{ row }">
<span>{{ externalObj[row.moduleCode] || '' }}</span> <span>{{ externalObj[row.moduleCode] || '' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userId" label="供方ID" /> <el-table-column prop="userId" label="供方ID" />
<el-table-column <el-table-column prop="nickName" label="供方昵称" show-overflow-tooltip>
prop="nickName"
label="供方昵称"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="访问计数" prop="visitCount" show-overflow-tooltip />
label="访问计数" <el-table-column label="访问日期" prop="visitDay" show-overflow-tooltip />
prop="visitCount"
show-overflow-tooltip
/>
<el-table-column
label="访问日期"
prop="visitDay"
show-overflow-tooltip
/>
</el-table> </el-table>
</div> </div>
<div class="absolute bottom-2px right-30px z-20 bg-#fff"> <div class="absolute bottom-2px right-30px z-20 bg-#fff">
@ -1037,22 +947,13 @@ getdeptTree()
<div class="mt10px w-full"> <div class="mt10px w-full">
<div class="w-full h-400px"> <div class="w-full h-400px">
<VChart <VChart key="xxxx" ref="chartRef2" :option="chartOption2" autoresize />
key="xxxx"
ref="chartRef2"
:option="chartOption2"
autoresize
/>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<n-modal v-model:show="showModal"> <n-modal v-model:show="showModal">
<UserList <UserList :userDataList="setUserList" @clickChild="handleChild" @CloseThis="CloseThiss" />
:userDataList="setUserList"
@clickChild="handleChild"
@CloseThis="CloseThiss"
/>
</n-modal> </n-modal>
</template> </template>

View File

@ -71,7 +71,8 @@ const array = ref<any[]>([
</div> </div>
</div> --> </div> -->
<div class="mt30px mr20px flex w100%"> <div class="mt30px mr20px flex w100%">
<img src="../../../assets/images/fzqiet3.png" class="w100%" /> <!-- <img src="../../../assets/images/fzqiet3.png" class="w100%" /> -->
<img src="../../../assets/images/jjllt.jpg" class="w100%" />
</div> </div>
</template> </template>