update
parent
f846dde569
commit
37675c31ad
File diff suppressed because it is too large
Load Diff
|
|
@ -22,6 +22,7 @@ const store = noticeld()
|
||||||
const store2 = useUserStore()
|
const store2 = useUserStore()
|
||||||
const user: any = store2.user
|
const user: any = store2.user
|
||||||
const header = { token: user.token }
|
const header = { token: user.token }
|
||||||
|
console.log('🚀 ~ file: Process.vue:25 ~ user:', user)
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
const database = databaseld()
|
const database = databaseld()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import HomeHead from '@/views/home/components/HomeHead.vue'
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
|
import UserList from '@/views/home/intelligence/process/UserPages.vue'
|
||||||
import {
|
import {
|
||||||
timeStat,
|
timeStat,
|
||||||
externalTimeStat,
|
externalTimeStat,
|
||||||
|
|
@ -11,6 +12,7 @@ import { formatDate } from '@/utils/format'
|
||||||
import { Chart1 } from './indexData'
|
import { Chart1 } from './indexData'
|
||||||
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
|
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
|
||||||
import { Search } from '@element-plus/icons-vue'
|
import { Search } from '@element-plus/icons-vue'
|
||||||
|
import { NModal } from 'naive-ui'
|
||||||
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]>([
|
||||||
|
|
@ -128,6 +130,10 @@ const getExternalTimeStat = async () => {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
chartOption2.value = Chart1(xAxisData, siomesData)
|
chartOption2.value = Chart1(xAxisData, siomesData)
|
||||||
|
console.log(
|
||||||
|
'🚀 ~ file: index.vue:131 ~ Chart1(xAxisData, siomesData):',
|
||||||
|
Chart1(xAxisData, siomesData)
|
||||||
|
)
|
||||||
// chartOption2.value.height=3000
|
// chartOption2.value.height=3000
|
||||||
// chartOption2.value.width=1000
|
// chartOption2.value.width=1000
|
||||||
}
|
}
|
||||||
|
|
@ -230,6 +236,105 @@ const handleClick = ({ paneName }: any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const selValue = ref('')
|
const selValue = ref('')
|
||||||
|
|
||||||
|
const echartsItemColor = [
|
||||||
|
'#2ec7c9',
|
||||||
|
'#b6a2de',
|
||||||
|
'#5ab1ef',
|
||||||
|
'#ffb980',
|
||||||
|
'#d87a80',
|
||||||
|
'#8d98b3',
|
||||||
|
'#e5cf0d',
|
||||||
|
'#97b552',
|
||||||
|
'#95706d',
|
||||||
|
'#dc69aa',
|
||||||
|
'#07a2a4',
|
||||||
|
'#9a7fd1',
|
||||||
|
'#588dd5',
|
||||||
|
'#f5994e',
|
||||||
|
'#c05050',
|
||||||
|
'#59678c',
|
||||||
|
'#c9ab00',
|
||||||
|
'#7eb00a',
|
||||||
|
'#6f5553',
|
||||||
|
'#c14089'
|
||||||
|
]
|
||||||
|
const barOption = {
|
||||||
|
width: '100%',
|
||||||
|
height: '100%',
|
||||||
|
grid: {
|
||||||
|
top: 0,
|
||||||
|
left: 10,
|
||||||
|
right: 5,
|
||||||
|
bottom: 10,
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','hour','month','year'],
|
||||||
|
axisLabel: {
|
||||||
|
show: false, // 隐藏原始的 x 轴标签
|
||||||
|
interval: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'value'
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'inside',
|
||||||
|
align: 'center',
|
||||||
|
color: '#333', // 标签文本颜色
|
||||||
|
fontSize: 14, // 标签文本字号
|
||||||
|
formatter: function (value: any) {
|
||||||
|
// console.log(value);
|
||||||
|
return value.name + ' ' + value.value
|
||||||
|
},
|
||||||
|
rotate: 0
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'shadow'
|
||||||
|
},
|
||||||
|
formatter: function ([params]: any) {
|
||||||
|
const title = `<p>${params.name}</p>`
|
||||||
|
const colorDot =
|
||||||
|
'<span style="display:inline-block;margin-right:5px;border-radius:50%;width:10px;height:10px;background-color:' +
|
||||||
|
params.color +
|
||||||
|
'"></span>'
|
||||||
|
return title + colorDot + params.value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
data: [120, 200, 150, 80, 70, 110, 130,123,50,80],
|
||||||
|
type: 'bar',
|
||||||
|
itemStyle: {
|
||||||
|
color: function (params: any) {
|
||||||
|
return echartsItemColor[params.dataIndex]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
const showModal = ref(false)
|
||||||
|
const setUserList = ref<any>([])
|
||||||
|
|
||||||
|
const handleChild = async (data: any) => {
|
||||||
|
const { showModal: show, multipleSelection } = data
|
||||||
|
showModal.value = unref(show) || false
|
||||||
|
let userIdList: any[] = []
|
||||||
|
multipleSelection.value.forEach((i: { userId: any }) => {
|
||||||
|
userIdList.push(i.userId)
|
||||||
|
})
|
||||||
|
console.log("🚀 ~ file: index.vue:328 ~ userIdList:", userIdList)
|
||||||
|
}
|
||||||
|
const CloseThiss = (data?: boolean) => {
|
||||||
|
showModal.value = data || false
|
||||||
|
// setUserList.value = []
|
||||||
|
}
|
||||||
|
|
||||||
|
const isDev = false
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -341,39 +446,102 @@ const selValue = ref('')
|
||||||
</div>
|
</div>
|
||||||
<el-tabs class="mt-20px" v-model="activeName" @tab-click="handleClick">
|
<el-tabs class="mt-20px" v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane label="本部足迹" name="inside">
|
<el-tab-pane label="本部足迹" name="inside">
|
||||||
<div class="mt20px w-full">
|
<div class="overflow-auto h-720px">
|
||||||
<span
|
<div class="mt20px w-full">
|
||||||
class="cardfoot text-#000 p30px mx10px my10px text-center text-18px font-bold"
|
<span
|
||||||
v-if="dataList"
|
class="cardfoot text-#000 p30px mx10px my10px text-center text-18px font-bold"
|
||||||
v-for="i in dataList"
|
v-if="dataList"
|
||||||
>
|
v-for="i in dataList"
|
||||||
<span>{{ i.moduleName }}</span
|
>
|
||||||
><br />
|
<span>{{ i.moduleName }}</span
|
||||||
<br />
|
><br />
|
||||||
<span class="mt10px">{{ i.visitCount }}</span>
|
<br />
|
||||||
</span>
|
<span class="mt10px">{{ i.visitCount }}</span>
|
||||||
</div>
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="mt10px w-full">
|
<!-- <div class="mt10px w-full"> -->
|
||||||
<!-- <div class="relative w-full h-50px flex">
|
<!-- <div class="relative w-full h-50px flex">
|
||||||
<el-button :type="primarys == 2 ? 'primary' : ''" :icon="Search" class="!ml30px mt--5px"
|
<el-button :type="primarys == 2 ? 'primary' : ''" :icon="Search" class="!ml30px mt--5px"
|
||||||
@click="clickButtons(2)">本周</el-button>
|
@click="clickButtons(2)">本周</el-button>
|
||||||
<el-button :type="primarys == 3 ? 'primary' : ''" :icon="Search" class="!ml30px mt--5px"
|
<el-button :type="primarys == 3 ? 'primary' : ''" :icon="Search" class="!ml30px mt--5px"
|
||||||
@click="clickButtons(3)">本月</el-button>
|
@click="clickButtons(3)">本月</el-button>
|
||||||
<div class="absolute right-60px w300px ">
|
<div class="absolute right-60px w300px ">
|
||||||
<el-config-provider :locale="zhCn">
|
<el-config-provider :locale="zhCn">
|
||||||
<el-date-picker v-model="value2" type="daterange" range-separator="-" start-placeholder="开始时间"
|
<el-date-picker v-model="value2" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
end-placeholder="结束时间" size="small" @change="timenFirsts" />
|
end-placeholder="结束时间" size="small" @change="timenFirsts" />
|
||||||
</el-config-provider>
|
</el-config-provider>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="w-full h-400px">
|
<div class="w-full h-400px mt-10px">
|
||||||
<VChart key="yyy" ref="chartRef1" :option="chartOption1" />
|
<VChart key="yyy" ref="chartRef1" :option="chartOption1" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mt-30px">
|
||||||
|
<div class="flex items-center" v-if="isDev">
|
||||||
|
<span class="text-#000 mr-10px">模块: </span>
|
||||||
|
<el-select
|
||||||
|
v-model="moduleCode"
|
||||||
|
placeholder="选择模块"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in externalList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.moduleName"
|
||||||
|
:value="item.moduleCode"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:icon="Search"
|
||||||
|
size="small"
|
||||||
|
class="ml20px"
|
||||||
|
@click="handleClick({ paneName: activeName })"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:icon="Search"
|
||||||
|
size="small"
|
||||||
|
class="ml20px"
|
||||||
|
@click="showModal = true"
|
||||||
|
>部长以上人员足迹</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="pb-14px" v-if="isDev">
|
||||||
|
<div class=" flex flex-wrap mb-30px" >
|
||||||
|
<div
|
||||||
|
class=" m-4 flex items-center justify-between w-45% h-full"
|
||||||
|
v-for="i in 10"
|
||||||
|
:key="i"
|
||||||
|
>
|
||||||
|
<div class="flex items-center text-#000 text-22px">
|
||||||
|
<p class="text-bold text-40px">{{ i }}TH</p>
|
||||||
|
<div class="mx-10px flex-col items-center">
|
||||||
|
<img src="@/views/extermal/images/zanwly2.png" alt="" />
|
||||||
|
<p class="text-center mt-10">测试 {{ i }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<VChart class="h-300px w-65% pb-10px ml-auto" key="yyy1" :option="barOption" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="absolute bottom-2px right-30px z-20 bg-#fff">
|
||||||
|
<el-pagination
|
||||||
|
v-model:current-page="pageInfo.currentPage"
|
||||||
|
v-model:page-size="pageInfo.pageSize"
|
||||||
|
layout="prev, pager, next, jumper"
|
||||||
|
:total="pageInfo.total"
|
||||||
|
@size-change="getInsideListPage"
|
||||||
|
@current-change="getInsideListPage"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- </div> -->
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="本部足迹-明细" name="inside-detail">
|
<el-tab-pane label="本部足迹-明细" name="inside-detail">
|
||||||
<div v-if="activeName === 'inside-detail'" class="h-720px">
|
<div v-show="activeName === 'inside-detail'" class="h-720px">
|
||||||
<div class="w100% h-full overflow-auto">
|
<div class="w100% h-full overflow-auto">
|
||||||
<el-table
|
<el-table
|
||||||
:data="inseideDetail"
|
:data="inseideDetail"
|
||||||
|
|
@ -509,6 +677,13 @@ const selValue = ref('')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<n-modal v-model:show="showModal">
|
||||||
|
<UserList
|
||||||
|
:userDataList="setUserList"
|
||||||
|
@clickChild="handleChild"
|
||||||
|
@CloseThis="CloseThiss"
|
||||||
|
/>
|
||||||
|
</n-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue