diff --git a/src/views/company/index.vue b/src/views/company/index.vue index 42df633..02a0154 100755 --- a/src/views/company/index.vue +++ b/src/views/company/index.vue @@ -98,22 +98,22 @@ getFile() -->
- + +
2024年グループ年頭方针 -
--> +
diff --git a/src/views/home/Home.vue b/src/views/home/Home.vue index 87c4a8d..d5a9edc 100755 --- a/src/views/home/Home.vue +++ b/src/views/home/Home.vue @@ -1,38 +1,24 @@ diff --git a/src/views/home/components/New.vue b/src/views/home/components/New.vue index 0c147af..f66e771 100755 --- a/src/views/home/components/New.vue +++ b/src/views/home/components/New.vue @@ -9,18 +9,18 @@ const route = useRoute() const { push } = useRouter() const listData = ref([]) async function getPageList() { - const { code } = report({ moduleCode: 'App_Article' }) - const { rows } = await getArticlePage({ - pageNum: 1, - pageSize: 10, - position: 'relate' - } as any) - // console.log(rows) - // for (let index = 0; index < 50; index++) { - listData.value = rows + const { code } = report({ moduleCode: 'App_Article' }) + const { rows } = await getArticlePage({ + pageNum: 1, + pageSize: 10, + position: 'relate' + } as any) + // console.log(rows) + // for (let index = 0; index < 50; index++) { + listData.value = rows - // } - console.log(listData.value.length) + // } + console.log(listData.value.length) } onMounted(getPageList) @@ -37,126 +37,105 @@ onMounted(getPageList) // } // } const toDetail2 = (n: any) => { - // console.log(n) - if (n.id === 0) return - if (n.isSelect === 1) { - push(`/intelligence/${n.type == 2 ? 'within' : 'outside'}/` + n.id) - } else { - message.error('没有访问权限') - } + // console.log(n) + if (n.id === 0) return + if (n.isSelect === 1) { + push(`/intelligence/${n.type == 2 ? 'within' : 'outside'}/` + n.id) + } else { + message.error('没有访问权限') + } } const modules = [Autoplay, Pagination, Navigation, A11y] const files = ref({}) const cateId = 201 const getFile = async () => { - const { rows }: any = await cateFileList({ - // cateId: 201, - cateId, - pageNum: 1, - pageSize: 1 - }) - files.value = rows?.[0] || {} - const t = files.value.createTime - if (t) { - const arr = t.split('-') - files.value.time = arr[0] + '年' + (+arr[1] - 1) + '月' - } + const { rows }: any = await cateFileList({ + // cateId: 201, + cateId, + pageNum: 1, + pageSize: 1 + }) + files.value = rows?.[0] || {} + const t = files.value.createTime + if (t) { + const arr = t.split('-') + files.value.time = arr[0] + '年' + (+arr[1] - 1) + '月' + } } getFile() diff --git a/src/views/home/footprint/index.vue b/src/views/home/footprint/index.vue index ca899f6..8a6e48d 100755 --- a/src/views/home/footprint/index.vue +++ b/src/views/home/footprint/index.vue @@ -2,17 +2,17 @@ import HomeHead from '@/views/home/components/HomeHead.vue' import UserList from '@/views/home/intelligence/process/UserPages.vue' import { - timeStat, - externalTimeStat, - fetchmoduleStatExternalPage, - fetchPostList, - fetchmoduleStatInternalPage, - fetchInternalUserStat, - deptTree as fetchDeptTree, - userDetailExport, - getDepartData, - getPieChartData, - getDepartChart + timeStat, + externalTimeStat, + fetchmoduleStatExternalPage, + fetchPostList, + fetchmoduleStatInternalPage, + fetchInternalUserStat, + deptTree as fetchDeptTree, + userDetailExport, + getDepartData, + getPieChartData, + getDepartChart } from '@/api/daikin/base' import { formatDate } from '@/utils/format' import { Chart1, barEchart, pieEchart } from './indexData' @@ -21,14 +21,11 @@ import { NModal, useMessage } from 'naive-ui' const message = useMessage() const currentDate = new Date() const currentDates = new Date() -const value1 = ref<[Date, Date]>([ - currentDate.setMonth(currentDate.getMonth()), - new Date() -]) +const value1 = ref<[Date, Date]>([currentDate.setMonth(currentDate.getMonth()), new Date()]) const states = reactive({ - startTime: formatDate(value1.value[0]).substring(0, 10), - endTime: formatDate(value1.value[1]).substring(0, 10) - // timeType:2, + startTime: formatDate(value1.value[0]).substring(0, 10), + endTime: formatDate(value1.value[1]).substring(0, 10) + // timeType:2, }) const chartRef1 = ref() const chartRef2 = ref() @@ -38,29 +35,29 @@ const primary = ref(1) const primarys = ref(2) const activeName = ref('echart') const pageInfo = reactive({ - currentPage: 1, - pageSize: 10, - total: 10 + currentPage: 1, + pageSize: 10, + total: 10 }) const colorList: any = [ - '#2592F3', - '#EF8C43', - '#5FCBC5', - '#E5B625', - '#E74848', - '#8E97F8', - '#73ECA5', - '#E7CD3B', - '#E04E89', - '#4EA4E0', - '#C34EE0', - '#8BCF54', - '#56B1FD', - '#24BFBA', - '#44CF8C', - '#6266F8', - '#FA6B39', - '#F05F96' + '#2592F3', + '#EF8C43', + '#5FCBC5', + '#E5B625', + '#E74848', + '#8E97F8', + '#73ECA5', + '#E7CD3B', + '#E04E89', + '#4EA4E0', + '#C34EE0', + '#8BCF54', + '#56B1FD', + '#24BFBA', + '#44CF8C', + '#6266F8', + '#FA6B39', + '#F05F96' ] const moduleCode = ref() const imoduleCode = ref() @@ -73,65 +70,65 @@ const nickName = ref() const postList = ref([]) const showEchart = ref(true) const barOption = { - width: '100%', - height: '100%', - grid: { - top: 0, - left: 10, - right: 10, - bottom: 10, - containLabel: true - }, - yAxis: { - data: [], - type: 'category', - axisLabel: { - show: false, // 隐藏原始的 x 轴标签 - interval: 0 - } - }, - xAxis: { - type: 'value' - }, - label: { - show: true, - position: 'right', - // align: 'center', - color: '#333', // 标签文本颜色 - fontSize: 12, // 标签文本字号 - 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 = `

${params.name}

` - const colorDot = - '' - return title + colorDot + params.value - } - }, - series: [ - { - data: [], - type: 'bar', - sort: 'ascending', - itemStyle: { - color: function (params: any) { - // console.log("🚀 ~ file: index.vue:365 ~ params.dataIndex:", params.dataIndex,params.data) - return colorList[9 - params.dataIndex] - } - } - } - ] + width: '100%', + height: '100%', + grid: { + top: 0, + left: 10, + right: 10, + bottom: 10, + containLabel: true + }, + yAxis: { + data: [], + type: 'category', + axisLabel: { + show: false, // 隐藏原始的 x 轴标签 + interval: 0 + } + }, + xAxis: { + type: 'value' + }, + label: { + show: true, + position: 'right', + // align: 'center', + color: '#333', // 标签文本颜色 + fontSize: 12, // 标签文本字号 + 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 = `

${params.name}

` + const colorDot = + '' + return title + colorDot + params.value + } + }, + series: [ + { + data: [], + type: 'bar', + sort: 'ascending', + itemStyle: { + color: function (params: any) { + // console.log("🚀 ~ file: index.vue:365 ~ params.dataIndex:", params.dataIndex,params.data) + return colorList[9 - params.dataIndex] + } + } + } + ] } const itemDataList = ref([]) const barChartRef = ref(null) @@ -145,69 +142,70 @@ const externalObj = ref({}) const colorListObj = ref({}) const dataList = ref([]) const getPostList = async () => { - const res: any = await fetchPostList() - postList.value = res.data || [] + const res: any = await fetchPostList() + postList.value = res.data || [] } const state = reactive({ - startTime: formatDate(value1.value[0]).substring(0, 10), - endTime: formatDate(value1.value[1]).substring(0, 10) - // timeType:1 + startTime: formatDate(value1.value[0]).substring(0, 10), + endTime: formatDate(value1.value[1]).substring(0, 10) + // timeType:1 }) const getInsideListPage = async () => { - const res: any = await fetchmoduleStatInternalPage({ - postId: postId.value, - nickName: nickName.value, - moduleCode: imoduleCode.value, - pageNum: pageInfo.currentPage, - pageSize: pageInfo.pageSize, - ...states - }) - inseideDetail.value = res?.rows || [] - pageInfo.total = res?.total || 0 + const res: any = await fetchmoduleStatInternalPage({ + postId: postId.value, + nickName: nickName.value, + moduleCode: imoduleCode.value, + pageNum: pageInfo.currentPage, + pageSize: pageInfo.pageSize, + ...states + }) + inseideDetail.value = res?.rows || [] + pageInfo.total = res?.total || 0 } const getListPage = async () => { - const res: any = await fetchmoduleStatExternalPage({ - waibuKd: waibuKd.value, - visitDay: visitDay.value, - moduleCode: moduleCode.value, - pageNum: pageInfo.currentPage, - pageSize: pageInfo.pageSize - }) - outDetail.value = res?.rows || [] - pageInfo.total = res?.total || 0 + const res: any = await fetchmoduleStatExternalPage({ + waibuKd: waibuKd.value, + visitDay: visitDay.value, + moduleCode: moduleCode.value, + pageNum: pageInfo.currentPage, + pageSize: pageInfo.pageSize, + ...states + }) + outDetail.value = res?.rows || [] + pageInfo.total = res?.total || 0 } const getBarEchart = async () => { - const res = await getDepartChart({ ...state, visitType: visitType.value }) - barChartOption.value = barEchart(res.data || {}) + const res = await getDepartChart({ ...state, visitType: visitType.value }) + barChartOption.value = barEchart(res.data || {}) } const getPieEchart = async () => { - const res = await getPieChartData({ ...state, visitType: visitType.value }) - pieChartOption.value = pieEchart(res.data || [], unref(colorListObj)) + const res = await getPieChartData({ ...state, visitType: visitType.value }) + pieChartOption.value = pieEchart(res.data || [], unref(colorListObj)) } const getEchartTable = async (moduleCode = '') => { - const { currentPage, pageSize } = pageInfo - const res = await getDepartData({ - ...state, - visitType: visitType.value, - pageNum: currentPage, - pageSize: pageSize, - moduleCode - }) - departData.value = res.data || [] - // res.data && res.data.length && getEchartTable(res.data[0].moduleCode) + const { currentPage, pageSize } = pageInfo + const res = await getDepartData({ + ...state, + visitType: visitType.value, + pageNum: currentPage, + pageSize: pageSize, + moduleCode + }) + departData.value = res.data || [] + // res.data && res.data.length && getEchartTable(res.data[0].moduleCode) } const chartClick = (it: any) => { - const { _code } = it.data - getEchartTable(_code) + const { _code } = it.data + getEchartTable(_code) } const getEchartData = async () => { - getBarEchart() - getPieEchart() - getEchartTable() + getBarEchart() + getPieEchart() + getEchartTable() } getPostList() @@ -215,314 +213,299 @@ getPostList() // getInsideListPage() const clickButton = (id) => { - primary.value = id - state.timeType = id + primary.value = id + state.timeType = id } const clickButtons = (id) => { - primarys.value = id - states.timeType = id + primarys.value = id + states.timeType = id } const timenFirst = (value) => { - console.log(value) - state.startTime = formatDate(value[0]).substring(0, 10) - state.endTime = formatDate(value[1]).substring(0, 10) - states.startTime = formatDate(value[0]).substring(0, 10) - states.endTime = formatDate(value[1]).substring(0, 10) + console.log(value) + state.startTime = formatDate(value[0]).substring(0, 10) + state.endTime = formatDate(value[1]).substring(0, 10) + states.startTime = formatDate(value[0]).substring(0, 10) + states.endTime = formatDate(value[1]).substring(0, 10) } const timenFirsts = (value) => { - console.log(value) + console.log(value) } const getDat = async () => { - const { data } = await timeStat(state) - dataList.value = data - let xAxisData: any[] = [] - let siomesData: any[] = [] - data.forEach( - ( - item: { moduleName: any; visitCount: any; moduleCode: any }, - i: number - ) => { - xAxisData.push(item.moduleName) - siomesData.push(item.visitCount) - colorListObj.value[item.moduleCode] = colorList[i] - } - ) - chartOption1.value = Chart1(xAxisData) - chartOption1.value.series[0] = { - data: siomesData, - itemStyle: { - color: function (params: any) { - return colorList[params.dataIndex] || '#8F97F8' - } - }, - type: 'bar' - } - barChartOption.value = barEchart(xAxisData, colorList) - getInternalUserStat(isLeaderFlag) + const { data } = await timeStat(state) + dataList.value = data + let xAxisData: any[] = [] + let siomesData: any[] = [] + data.forEach((item: { moduleName: any; visitCount: any; moduleCode: any }, i: number) => { + xAxisData.push(item.moduleName) + siomesData.push(item.visitCount) + colorListObj.value[item.moduleCode] = colorList[i] + }) + chartOption1.value = Chart1(xAxisData) + chartOption1.value.series[0] = { + data: siomesData, + itemStyle: { + color: function (params: any) { + return colorList[params.dataIndex] || '#8F97F8' + } + }, + type: 'bar' + } + barChartOption.value = barEchart(xAxisData, colorList) + getInternalUserStat(isLeaderFlag) } const deptId = ref('') let isLeaderFlag = 0 -async function getInternalUserStat( - isLeader: number = 0, - flag: boolean = false -) { - if (!flag) { - pageInfo.currentPage = 1 - pageInfo.pageSize = 10 - } - const { currentPage, pageSize } = pageInfo - const { rows = [], total }: any = await fetchInternalUserStat({ - ...state, - pageNum: currentPage, - pageSize: pageSize, - isLeader, - deptId: deptId.value || '' - }) - isLeaderFlag = isLeader - // console.log('🚀 ~ file: index.vue:211 ~ rows:', rows) - pageInfo.total = total - // 10-100 之间的随机数生产 - const roundMath = (min: number, max: number) => { - return Math.round(Math.random() * (max - min) + min) - } - // barOption.yAxis.data = data.map((item: any) => item.moduleName) - itemDataList.value = rows.map((item: any, index: number) => { - let itemData: any = { - nickName: item.nickName, - userId: item.userId, - sex: item.sex, - ...barOption, - yAxis: { - data: item.moduleStatList.map((item: any) => item.moduleName).reverse(), - type: 'category', - axisLabel: { - show: false, // 隐藏原始的 x 轴标签 - interval: 0 - } - }, - ...{ - series: [ - { - data: item.moduleStatList - .map((item: any) => item.visitCount) - .reverse(), - // data: new Array(item.moduleStatList.length) - // .fill(0) - // .map(() => roundMath(10, 100)), - type: 'bar', - sort: 'descending', //ascending - itemStyle: { - color: function (params: any) { - // console.log('🚀 ~ file: index.vue:255 ~ params:', params) - return colorList[8 - params.dataIndex] - // return colorListObj.value[item.moduleCode] || '#8F97F8' - } - } - } - ] - } - } - itemData.index = index + 1 - itemData.sortNum = (currentPage - 1) * pageSize + index + 1 - return itemData - }) +async function getInternalUserStat(isLeader: number = 0, flag: boolean = false) { + if (!flag) { + pageInfo.currentPage = 1 + pageInfo.pageSize = 10 + } + const { currentPage, pageSize } = pageInfo + const { rows = [], total }: any = await fetchInternalUserStat({ + ...state, + pageNum: currentPage, + pageSize: pageSize, + isLeader, + deptId: deptId.value || '' + }) + isLeaderFlag = isLeader + // console.log('🚀 ~ file: index.vue:211 ~ rows:', rows) + pageInfo.total = total + // 10-100 之间的随机数生产 + const roundMath = (min: number, max: number) => { + return Math.round(Math.random() * (max - min) + min) + } + // barOption.yAxis.data = data.map((item: any) => item.moduleName) + itemDataList.value = rows.map((item: any, index: number) => { + let itemData: any = { + nickName: item.nickName, + userId: item.userId, + sex: item.sex, + ...barOption, + yAxis: { + data: item.moduleStatList.map((item: any) => item.moduleName).reverse(), + type: 'category', + axisLabel: { + show: false, // 隐藏原始的 x 轴标签 + interval: 0 + } + }, + ...{ + series: [ + { + data: item.moduleStatList.map((item: any) => item.visitCount).reverse(), + // data: new Array(item.moduleStatList.length) + // .fill(0) + // .map(() => roundMath(10, 100)), + type: 'bar', + sort: 'descending', //ascending + itemStyle: { + color: function (params: any) { + // console.log('🚀 ~ file: index.vue:255 ~ params:', params) + return colorList[8 - params.dataIndex] + // return colorListObj.value[item.moduleCode] || '#8F97F8' + } + } + } + ] + } + } + itemData.index = index + 1 + itemData.sortNum = (currentPage - 1) * pageSize + index + 1 + return itemData + }) } const getExternalTimeStat = async () => { - const { data } = await externalTimeStat(state) - externalList.value = data - let xAxisData: any[] = [] - let siomesData: any[] = [] - data.forEach( - ( - item: { moduleName: any; visitCount: any; moduleCode: any }, - i: number - ) => { - externalObj.value[item.moduleCode] = item.moduleName - externalObj.value[item.moduleCode + 'color'] = colorList[9 + i] - xAxisData.push(item.moduleName) - siomesData.push(item.visitCount) - } - ) - chartOption2.value = Chart1(xAxisData) - chartOption2.value.series[0] = { - data: siomesData, - itemStyle: { - color: function (params: any) { - return colorList[9 + params.dataIndex] || '#8F97F8' - } - }, - type: 'bar' - } - // chartOption2.value.height=3000 - // chartOption2.value.width=1000 + const { data } = await externalTimeStat(state) + externalList.value = data + let xAxisData: any[] = [] + let siomesData: any[] = [] + data.forEach((item: { moduleName: any; visitCount: any; moduleCode: any }, i: number) => { + externalObj.value[item.moduleCode] = item.moduleName + externalObj.value[item.moduleCode + 'color'] = colorList[9 + i] + xAxisData.push(item.moduleName) + siomesData.push(item.visitCount) + }) + chartOption2.value = Chart1(xAxisData) + chartOption2.value.series[0] = { + data: siomesData, + itemStyle: { + color: function (params: any) { + return colorList[9 + params.dataIndex] || '#8F97F8' + } + }, + type: 'bar' + } + // chartOption2.value.height=3000 + // chartOption2.value.width=1000 } const handleClick = ({ paneName }: any, down: Boolean = false) => { - pageInfo.currentPage = 1 - pageInfo.pageSize = 10 - pageInfo.total = 0 - paneName === 'echart' && getEchartData() - paneName === 'out' && getExternalTimeStat() - paneName === 'inside' && getDat() - paneName === 'out-detail' && getListPage() - paneName === 'inside-detail' && getInsideListPage() - paneName === 'inside' && - setTimeout(() => { - showEchart.value = true - }, 300) + pageInfo.currentPage = 1 + pageInfo.pageSize = 10 + pageInfo.total = 0 + paneName === 'echart' && getEchartData() + paneName === 'out' && getExternalTimeStat() + paneName === 'inside' && getDat() + paneName === 'out-detail' && getListPage() + paneName === 'inside-detail' && getInsideListPage() + paneName === 'inside' && + setTimeout(() => { + showEchart.value = true + }, 300) } const ss = computed(() => [state.startTime, state.endTime, state.timeType]) watch( - () => unref(ss), - async (v) => { - // getDat() - // getExternalTimeStat() - handleClick({ paneName: activeName.value }) - }, - { immediate: true, deep: true } + () => unref(ss), + async (v) => { + // getDat() + // getExternalTimeStat() + handleClick({ paneName: activeName.value }) + }, + { immediate: true, deep: true } ) onMounted(() => { - // getDat() - // console.log(formatDate(value1.value[0]).substring(0, 10)) + // getDat() + // console.log(formatDate(value1.value[0]).substring(0, 10)) }) // onBeforeMount(async () => { // await getDat() // await getExternalTimeStat() // }) const shortcuts = [ - { - text: '今天', - value: () => { - let start = new Date() - let end = new Date() - start.setHours(0, 0, 0) - end.setHours(23, 59, 59) - return [start, end] - } - }, - // { - // text: '昨天', - // value: () => { - // let start = new Date() - // let end = new Date() - // start.setTime(start.getTime() - 3600 * 1000 * 24) - // end.setTime(end.getTime() - 3600 * 1000 * 24) - // start.setHours(0, 0, 0) - // end.setHours(23, 59, 59) - // return [start, end] - // } - // }, - { - text: '近7天', - value: () => { - let start = new Date() - let end = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) - end.setTime(end.getTime() - 3600 * 1000 * 24) - start.setHours(0, 0, 0) - end.setHours(23, 59, 59) - return [start, end] - } - }, - { - text: '近15天', - value: () => { - let start = new Date() - let end = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 15) - end.setTime(end.getTime() - 3600 * 1000 * 24) - start.setHours(0, 0, 0) - end.setHours(23, 59, 59) - return [start, end] - } - }, - { - text: '近30天', - value: () => { - let start = new Date() - let end = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) - end.setTime(end.getTime() - 3600 * 1000 * 24) - start.setHours(0, 0, 0) - end.setHours(23, 59, 59) - return [start, end] - } - }, - { - text: '近3月', - value: () => { - let start = new Date() - let end = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) - end.setTime(end.getTime() - 3600 * 1000 * 24) - start.setHours(0, 0, 0) - end.setHours(23, 59, 59) - return [start, end] - } - } + { + text: '今天', + value: () => { + let start = new Date() + let end = new Date() + start.setHours(0, 0, 0) + end.setHours(23, 59, 59) + return [start, end] + } + }, + // { + // text: '昨天', + // value: () => { + // let start = new Date() + // let end = new Date() + // start.setTime(start.getTime() - 3600 * 1000 * 24) + // end.setTime(end.getTime() - 3600 * 1000 * 24) + // start.setHours(0, 0, 0) + // end.setHours(23, 59, 59) + // return [start, end] + // } + // }, + { + text: '近7天', + value: () => { + let start = new Date() + let end = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) + end.setTime(end.getTime() - 3600 * 1000 * 24) + start.setHours(0, 0, 0) + end.setHours(23, 59, 59) + return [start, end] + } + }, + { + text: '近15天', + value: () => { + let start = new Date() + let end = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 15) + end.setTime(end.getTime() - 3600 * 1000 * 24) + start.setHours(0, 0, 0) + end.setHours(23, 59, 59) + return [start, end] + } + }, + { + text: '近30天', + value: () => { + let start = new Date() + let end = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) + end.setTime(end.getTime() - 3600 * 1000 * 24) + start.setHours(0, 0, 0) + end.setHours(23, 59, 59) + return [start, end] + } + }, + { + text: '近3月', + value: () => { + let start = new Date() + let end = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) + end.setTime(end.getTime() - 3600 * 1000 * 24) + start.setHours(0, 0, 0) + end.setHours(23, 59, 59) + return [start, end] + } + } ] const downloadExcel = (data: any, name: string) => { - const blob = new Blob([data], { - // type: 'application/vnd.ms-excel' - }) - const downloadElement = document.createElement('a') - downloadElement.style.display = 'none' - const downloadUrl = URL.createObjectURL(blob) - downloadElement.href = downloadUrl - downloadElement.download = `${name}.xlsx` - document.body.appendChild(downloadElement) - downloadElement.click() - document.body.removeChild(downloadElement) - URL.revokeObjectURL(downloadUrl) - // if (navigator.userAgent.indexOf('Chrome') > -1) { - // window.open(downloadUrl) - // } - // if (navigator.userAgent.indexOf('Firefox') > -1) { - // window.open(URL.createObjectURL(blob)) - // } + const blob = new Blob([data], { + // type: 'application/vnd.ms-excel' + }) + const downloadElement = document.createElement('a') + downloadElement.style.display = 'none' + const downloadUrl = URL.createObjectURL(blob) + downloadElement.href = downloadUrl + downloadElement.download = `${name}.xlsx` + document.body.appendChild(downloadElement) + downloadElement.click() + document.body.removeChild(downloadElement) + URL.revokeObjectURL(downloadUrl) + // if (navigator.userAgent.indexOf('Chrome') > -1) { + // window.open(downloadUrl) + // } + // if (navigator.userAgent.indexOf('Firefox') > -1) { + // window.open(URL.createObjectURL(blob)) + // } } const downExcel = async () => { - const res = await userDetailExport({ - ...state, - visitType: activeName.value === 'inside-detail' ? 1 : 2 - }) - let name = activeName.value === 'inside-detail' ? '本部足迹' : '外部足迹' - name = name + state.startTime + '-' + state.endTime - if (res.code === 200) { - downloadExcel(res.data, name) - return message.success('导出成功!') - } + const res = await userDetailExport({ + ...state, + visitType: activeName.value === 'inside-detail' ? 1 : 2 + }) + let name = activeName.value === 'inside-detail' ? '本部足迹' : '外部足迹' + name = name + state.startTime + '-' + state.endTime + if (res.code === 200) { + downloadExcel(res.data, name) + return message.success('导出成功!') + } } 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' + '#2ec7c9', + '#b6a2de', + '#5ab1ef', + '#ffb980', + '#d87a80', + '#8d98b3', + '#e5cf0d', + '#97b552', + '#95706d', + '#dc69aa', + '#07a2a4', + '#9a7fd1', + '#588dd5', + '#f5994e', + '#c05050', + '#59678c', + '#c9ab00', + '#7eb00a', + '#6f5553', + '#c14089' ] // console.log(Object.assign(barOption.series[0], { data: [120, 200, 150, 80, 70, 110, 130, 123, 50] })); @@ -531,220 +514,190 @@ const showModal = ref(false) const setUserList = ref([]) 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) - }) + const { showModal: show, multipleSelection } = data + showModal.value = unref(show) || false + let userIdList: any[] = [] + multipleSelection.value.forEach((i: { userId: any }) => { + userIdList.push(i.userId) + }) } const CloseThiss = (data?: boolean) => { - showModal.value = data || false - // setUserList.value = [] + showModal.value = data || false + // setUserList.value = [] } -const sortArr = [ - '1ST', - '2ND', - '3RD', - '4TH', - '5TH', - '6TH', - '7TH', - '8TH', - '9TH', - '10TH' -] +const sortArr = ['1ST', '2ND', '3RD', '4TH', '5TH', '6TH', '7TH', '8TH', '9TH', '10TH'] const treeData = ref([]) const getdeptTree = async () => { - const { data = [] }: any = await fetchDeptTree({}) - treeData.value = data + const { data = [] }: any = await fetchDeptTree({}) + treeData.value = data } const handleChildChange = (data: any) => { - console.log('🚀 ~ file: index.vue:470 ~ data:', data) + console.log('🚀 ~ file: index.vue:470 ~ data:', data) } getdeptTree() diff --git a/src/views/home/phone/index.vue b/src/views/home/phone/index.vue index 18994ea..ca7575e 100755 --- a/src/views/home/phone/index.vue +++ b/src/views/home/phone/index.vue @@ -8,49 +8,49 @@ import { useDate } from '@/views/home/hooks/useDate' const { day, week } = useDate() const { push } = useRouter() const array = ref([ - { - content1: '将扩大的机遇转为成果 更强更大地展翅飞翔', - content2: 'ひろがるチャンスを 成果につなげ 強く大きく 羽ばたこう', - year: '2023年' - }, - { content1: '领先时代的变化 开创崭新的未来', content2: '', year: '2022年' }, - { - content1: '以“重大变化”为契机 向新课题发起挑战', - content2: '', - year: '2021年' - }, - { - content1: '加速推进三个协创 决胜于变化的时代', - content2: '', - year: '2020年' - }, - { - content1: '以三个协创为轴心 人人迅速果断行动', - content2: '', - year: '2016年' - }, - { - content1: '突破壁垒 集中优势 不断挑战新课题', - content2: '', - year: '2018年' - }, - { - content1: '坚持以人为轴心,融合新的力量', - content2: '集团上下齐心协力提升企业价值', - year: '2017年' - }, - { content1: '站稳脚跟 强化优势 大步迈进', content2: '', year: '2016年' }, - { content1: '创造未来,决胜于变化的时代', content2: '', year: '2015年' } + { + content1: '将扩大的机遇转为成果 更强更大地展翅飞翔', + content2: 'ひろがるチャンスを 成果につなげ 強く大きく 羽ばたこう', + year: '2023年' + }, + { content1: '领先时代的变化 开创崭新的未来', content2: '', year: '2022年' }, + { + content1: '以“重大变化”为契机 向新课题发起挑战', + content2: '', + year: '2021年' + }, + { + content1: '加速推进三个协创 决胜于变化的时代', + content2: '', + year: '2020年' + }, + { + content1: '以三个协创为轴心 人人迅速果断行动', + content2: '', + year: '2016年' + }, + { + content1: '突破壁垒 集中优势 不断挑战新课题', + content2: '', + year: '2018年' + }, + { + content1: '坚持以人为轴心,融合新的力量', + content2: '集团上下齐心协力提升企业价值', + year: '2017年' + }, + { content1: '站稳脚跟 强化优势 大步迈进', content2: '', year: '2016年' }, + { content1: '创造未来,决胜于变化的时代', content2: '', year: '2015年' } ]) + + -
- -
+
+ + +