{"version":3,"sources":["webpack:///./src/views/home/index.vue?188b","webpack:///./src/views/home/mock.ts","webpack:///./src/views/home/index.vue","webpack:///./src/views/home/index.vue?22c3","webpack:///./src/views/home/index.vue?0534","webpack:///./src/utils/formatTime.ts"],"names":["_hoisted_1","class","render","_ctx","_cache","$props","$setup","$data","$options","topCardItemList","title","titleNum","tip","tipNum","color","iconColor","icon","environmentList","label","value","activitiesList","time1","time2","name","setup","store","proxy","state","tableData","data","date","address","myCharts","getUserInfos","userInfos","currentTime","Date","initNumCountUp","initHomeLaboratory","initHomeOvertime","initEchartsResizeFun","i","length","initEchartsResize","window","addEventListener","tagsViewRoutes","isTagsViewCurrenFull","__exports__","formatAxis","param","hour","getHours"],"mappings":"yIAGMA,EAAa,CAAEC,MAAO,kBAEtB,SAAUC,EAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,OAAQ,yBAAc,gCAAoB,MAAOR,EAAY,iB,wCCFlDS,EAAkB,CAC7B,CACEC,MAAO,SACPC,SAAU,MACVC,IAAK,OACLC,OAAQ,MACRC,MAAO,UACPC,UAAW,UACXC,KAAM,6BAER,CACEN,MAAO,QACPC,SAAU,MACVC,IAAK,MACLC,OAAQ,MACRC,MAAO,UACPC,UAAW,UACXC,KAAM,6BAER,CACEN,MAAO,UACPC,SAAU,MACVC,IAAK,OACLC,OAAQ,MACRC,MAAO,UACPC,UAAW,UACXC,KAAM,iCAQGC,EAAkB,CAC7B,CACED,KAAM,uBACNE,MAAO,KACPC,MAAO,YACPJ,UAAW,WAEb,CACEC,KAAM,sBACNE,MAAO,KACPC,MAAO,MACPJ,UAAW,WAEb,CACEC,KAAM,sBACNE,MAAO,KACPC,MAAO,QACPJ,UAAW,WAEb,CACEC,KAAM,yBACNE,MAAO,KACPC,MAAO,OACPJ,UAAW,YAQFK,EAAiB,CAC5B,CACEC,MAAO,KACPC,MAAO,WACPZ,MAAO,KACPQ,MAAO,wBAET,CACEG,MAAO,QACPC,MAAO,WACPZ,MAAO,KACPQ,MAAO,YAET,CACEG,MAAO,QACPC,MAAO,WACPZ,MAAO,KACPQ,MAAO,WC/EI,GACbK,KAAM,OACNC,MAFa,WAGX,MAAkB,kCACZC,GADN,EAAQC,MACM,kBACRC,EAAQ,sBAAS,CACrBlB,kBACAQ,kBACAG,iBACAQ,UAAW,CACTC,KAAM,CACJ,CACEC,KAAM,aACNP,KAAM,QACNQ,QAAS,eAEX,CACED,KAAM,aACNP,KAAM,QACNQ,QAAS,SAEX,CACED,KAAM,aACNP,KAAM,QACNQ,QAAS,aAIfC,SAAU,KAGNC,EAAe,uBAAS,WAC5B,OAAOR,EAAME,MAAMO,UAAUA,aAGzBC,EAAc,uBAAS,WAC3B,OAAO,eAAW,IAAIC,SAGlBC,EAAiB,WACrB,uBAAS,gBAULC,EAAqB,aAsFrBC,EAAmB,aAoDnBC,EAAuB,WAC3B,uBAAS,WACP,IAAK,IAAIC,EAAI,EAAGA,EAAId,EAAMK,SAASU,OAAQD,UAMzCE,EAAoB,WACxBC,OAAOC,iBAAiB,SAAUL,IAoBpC,OAjBA,wBAAU,WACRH,IACAC,IACAC,IACAI,OAGF,0BAAY,WACVH,OAGF,oBACE,kBAAMf,EAAME,MAAMmB,eAAeC,wBACjC,WACEP,OAGJ,gBACEP,eACAE,eACG,oBAAOR,M,iCC5NhB,MAAMqB,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS9C,GAAQ,CAAC,YAAY,qBAE1E,gB,oCCTf,W,oJC6HM,SAAU+C,EAAYC,GAC1B,IAAMC,EAAe,IAAIf,KAAKc,GAAOE,WACrC,OAAID,EAAO,EAAU,MACZA,EAAO,EAAU,MACjBA,EAAO,GAAW,MAClBA,EAAO,GAAW,MAClBA,EAAO,GAAW,MAClBA,EAAO,GAAW,MAClBA,EAAO,GAAW,MACf,Q","file":"js/chunk-4dafee51.40474397.js","sourcesContent":["import { openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b0aa2eb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"home-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, \" 欢迎使用采购员查询系统 \"))\n}","/**\n * 最顶部 card\n * @returns 返回模拟数据\n */\nexport const topCardItemList = [\n {\n title: '今日访问人数',\n titleNum: '123',\n tip: '在场人数',\n tipNum: '911',\n color: '#F95959',\n iconColor: '#F86C6B',\n icon: 'iconfont icon-jinridaiban'\n },\n {\n title: '实验室总数',\n titleNum: '123',\n tip: '使用中',\n tipNum: '611',\n color: '#8595F4',\n iconColor: '#92A1F4',\n icon: 'iconfont icon-AIshiyanshi'\n },\n {\n title: '申请人数(月)',\n titleNum: '123',\n tip: '通过人数',\n tipNum: '911',\n color: '#FEBB50',\n iconColor: '#FDC566',\n icon: 'iconfont icon-shenqingkaiban'\n }\n]\n\n/**\n * 环境监测\n * @returns 返回模拟数据\n */\nexport const environmentList = [\n {\n icon: 'iconfont icon-yangan',\n label: '烟感',\n value: '2.1%OBS/M',\n iconColor: '#F72B3F'\n },\n {\n icon: 'iconfont icon-wendu',\n label: '温度',\n value: '30℃',\n iconColor: '#91BFF8'\n },\n {\n icon: 'iconfont icon-shidu',\n label: '湿度',\n value: '57%RH',\n iconColor: '#88D565'\n },\n {\n icon: 'iconfont icon-zaosheng',\n label: '噪声',\n value: '57DB',\n iconColor: '#FBD4A0'\n }\n]\n\n/**\n * 动态信息\n * @returns 返回模拟数据\n */\nexport const activitiesList = [\n {\n time1: '今天',\n time2: '12:20:30',\n title: '更名',\n label: '正式更名为 vue-next-admin'\n },\n {\n time1: '02-17',\n time2: '12:20:30',\n title: '页面',\n label: '完成对首页的开发'\n },\n {\n time1: '02-14',\n time2: '12:20:30',\n title: '页面',\n label: '新增个人中心'\n }\n]\n","\nimport { toRefs, reactive, onMounted, nextTick, computed, getCurrentInstance, watch, onActivated } from 'vue'\n// import * as echarts from 'echarts'\n// import { CountUp } from 'countup.js'\nimport { formatAxis } from '@/utils/formatTime'\nimport { useStore } from '@/store/index.ts'\nimport { topCardItemList, environmentList, activitiesList } from './mock'\nexport default {\n name: 'home',\n setup () {\n const { proxy } = getCurrentInstance() as any\n const store = useStore()\n const state = reactive({\n topCardItemList,\n environmentList,\n activitiesList,\n tableData: {\n data: [\n {\n date: '2016-05-02',\n name: '1号实验室',\n address: '烟感2.1%OBS/M'\n },\n {\n date: '2016-05-04',\n name: '2号实验室',\n address: '温度30℃'\n },\n {\n date: '2016-05-01',\n name: '3号实验室',\n address: '湿度57%RH'\n }\n ]\n },\n myCharts: []\n })\n // 获取用户信息 vuex\n const getUserInfos = computed(() => {\n return store.state.userInfos.userInfos\n })\n // 当前时间提示语\n const currentTime = computed(() => {\n return formatAxis(new Date())\n })\n // 初始化数字滚动\n const initNumCountUp = () => {\n nextTick(() => {\n // new CountUp('titleNum1', Math.random() * 10000).start()\n // new CountUp('titleNum2', Math.random() * 10000).start()\n // new CountUp('titleNum3', Math.random() * 10000).start()\n // new CountUp('tipNum1', Math.random() * 1000).start()\n // new CountUp('tipNum2', Math.random() * 1000).start()\n // new CountUp('tipNum3', Math.random() * 1000).start()\n })\n }\n // 商品销售情\n const initHomeLaboratory = () => {\n // const myChart = echarts.init(proxy.$refs.homeLaboratoryRef)\n const option = {\n grid: {\n top: 50,\n right: 20,\n bottom: 30,\n left: 30\n },\n tooltip: {\n trigger: 'axis'\n },\n legend: {\n data: ['预购队列', '最新成交价'],\n right: 13\n },\n color: [\n '#63caff',\n '#49beff',\n '#03387a',\n '#03387a',\n '#03387a',\n '#6c93ee',\n '#a9abff',\n '#f7a23f',\n '#27bae7',\n '#ff6d9d',\n '#cb79ff',\n '#f95b5a',\n '#ccaf27',\n '#38b99c',\n '#93d0ff',\n '#bd74e0',\n '#fd77da',\n '#dea700'\n ],\n xAxis: {\n data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']\n },\n yAxis: [\n {\n type: 'value',\n name: '价格'\n }\n ],\n series: [\n {\n name: '预购队列',\n type: 'bar',\n data: [200, 85, 112, 275, 305, 415, 441, 405, 275, 305, 415, 441],\n itemStyle: {\n barBorderRadius: [4, 4, 0, 0],\n color: {\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n type: 'linear',\n global: false,\n colorStops: [\n {\n offset: 0,\n color: '#0b9eff'\n },\n {\n offset: 1,\n color: '#63caff'\n }\n ]\n }\n }\n },\n {\n name: '最新成交价',\n type: 'line',\n data: [50, 85, 22, 155, 170, 25, 224, 245, 285, 300, 415, 641],\n itemStyle: {\n color: '#febb50'\n }\n }\n ]\n }\n // myChart.setOption(option)\n // state.myCharts.push(myChart)\n }\n // 履约超时预警\n const initHomeOvertime = () => {\n // const myChart = echarts.init(proxy.$refs.homeOvertimeRef)\n const option = {\n grid: {\n top: 50,\n right: 20,\n bottom: 30,\n left: 30\n },\n tooltip: {\n trigger: 'axis'\n },\n legend: {\n data: ['订单数量', '超时数量', '在线数量', '预警数量'],\n right: 13\n },\n xAxis: {\n data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']\n },\n yAxis: [\n {\n type: 'value',\n name: '数量'\n }\n ],\n series: [\n {\n name: '订单数量',\n type: 'bar',\n data: [5, 20, 36, 10, 10, 20, 11, 13, 10, 9, 17, 19]\n },\n {\n name: '超时数量',\n type: 'bar',\n data: [15, 12, 26, 15, 11, 16, 31, 13, 5, 16, 13, 15]\n },\n {\n name: '在线数量',\n type: 'line',\n data: [15, 20, 16, 20, 30, 8, 16, 19, 12, 18, 19, 14]\n },\n {\n name: '预警数量',\n type: 'line',\n data: [10, 10, 13, 12, 15, 18, 19, 10, 12, 15, 11, 17]\n }\n ]\n }\n // myChart.setOption(option)\n // state.myCharts.push(myChart)\n }\n // 批量设置 echarts resize\n const initEchartsResizeFun = () => {\n nextTick(() => {\n for (let i = 0; i < state.myCharts.length; i++) {\n // state.myCharts[i].resize()\n }\n })\n }\n // 批量设置 echarts resize\n const initEchartsResize = () => {\n window.addEventListener('resize', initEchartsResizeFun)\n }\n // 页面加载时\n onMounted(() => {\n initNumCountUp()\n initHomeLaboratory()\n initHomeOvertime()\n initEchartsResize()\n })\n // 由于页面缓存原因,keep-alive\n onActivated(() => {\n initEchartsResizeFun()\n })\n // 监听 vuex 中的 tagsview 开启全屏变化,重新 resize 图表,防止不出现/大小不变等\n watch(\n () => store.state.tagsViewRoutes.isTagsViewCurrenFull,\n () => {\n initEchartsResizeFun()\n }\n )\n return {\n getUserInfos,\n currentTime,\n ...toRefs(state)\n }\n }\n}\n","import { render } from \"./index.vue?vue&type=template&id=b0aa2eb8&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=b0aa2eb8&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\SourceCode\\\\czyycgcx\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b0aa2eb8\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./index.vue?vue&type=style&index=0&id=b0aa2eb8&scoped=true&lang=scss\"","/**\n * 时间日期转换\n * @param date 当前时间,new Date() 格式\n * @param format 需要转换的时间格式字符串\n * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd`\n * @description format 季度:\"YYYY-mm-dd HH:MM:SS QQQQ\"\n * @description format 星期:\"YYYY-mm-dd HH:MM:SS WWW\"\n * @description format 几周:\"YYYY-mm-dd HH:MM:SS ZZZ\"\n * @description format 季度 + 星期 + 几周:\"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ\"\n * @returns 返回拼接后的时间字符串\n */\nexport function formatDate (date: Date, format: string): string {\n const we = date.getDay() // 星期\n const z = getWeek(date) // 周\n const qut = Math.floor((date.getMonth() + 3) / 3).toString() // 季度\n const opt: { [key: string]: string } = {\n 'Y+': date.getFullYear().toString(), // 年\n 'm+': (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1)\n 'd+': date.getDate().toString(), // 日\n 'H+': date.getHours().toString(), // 时\n 'M+': date.getMinutes().toString(), // 分\n 'S+': date.getSeconds().toString(), // 秒\n 'q+': qut // 季度\n }\n // 中文数字 (星期)\n const week: { [key: string]: string } = {\n 0: '日',\n 1: '一',\n 2: '二',\n 3: '三',\n 4: '四',\n 5: '五',\n 6: '六'\n }\n // 中文数字(季度)\n const quarter: { [key: string]: string } = {\n 1: '一',\n 2: '二',\n 3: '三',\n 4: '四'\n }\n if (/(W+)/.test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length > 1 ? (RegExp.$1.length > 2 ? '星期' + week[we] : '周' + week[we]) : week[we]) }\n if (/(Q+)/.test(format)) format = format.replace(RegExp.$1, RegExp.$1.length === 4 ? '第' + quarter[qut] + '季度' : quarter[qut])\n if (/(Z+)/.test(format)) format = format.replace(RegExp.$1, RegExp.$1.length === 3 ? '第' + z + '周' : z + '')\n for (const k in opt) {\n const r = new RegExp('(' + k + ')').exec(format)\n // 若输入的长度不为1,则前面补零\n if (r) format = format.replace(r[1], RegExp.$1.length === 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, '0'))\n }\n return format\n}\n\n/**\n * 获取当前日期是第几周\n * @param dateTime 当前传入的日期值\n * @returns 返回第几周数字值\n */\nexport function getWeek (dateTime: Date): number {\n const temptTime = new Date(dateTime.getTime())\n // 周几\n const weekday = temptTime.getDay() || 7\n // 周1+5天=周六\n temptTime.setDate(temptTime.getDate() - weekday + 1 + 5)\n let firstDay = new Date(temptTime.getFullYear(), 0, 1)\n const dayOfWeek = firstDay.getDay()\n let spendDay = 1\n if (dayOfWeek !== 0) spendDay = 7 - dayOfWeek + 1\n firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)\n const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)\n const result = Math.ceil(d / 7)\n return result\n}\n\n/**\n * 将时间转换为 `几秒前`、`几分钟前`、`几小时前`、`几天前`\n * @param param 当前时间,new Date() 格式或者字符串时间格式\n * @param format 需要转换的时间格式字符串\n * @description param 10秒: 10 * 1000\n * @description param 1分: 60 * 1000\n * @description param 1小时: 60 * 60 * 1000\n * @description param 24小时:60 * 60 * 24 * 1000\n * @description param 3天: 60 * 60* 24 * 1000 * 3\n * @returns 返回拼接后的时间字符串\n */\nexport function formatPast (param: string | Date, format = 'YYYY-mm-dd'): string {\n // 传入格式处理、存储转换值\n let t: any, s: number\n // 获取js 时间戳\n let time: number = new Date().getTime()\n // 是否是对象\n typeof param === 'string' || 'object' ? (t = new Date(param).getTime()) : (t = param)\n // 当前时间戳 - 传入时间戳\n time = Number.parseInt(`${time - t}`)\n if (time < 10000) {\n // 10秒内\n return '刚刚'\n } else if (time < 60000 && time >= 10000) {\n // 超过10秒少于1分钟内\n s = Math.floor(time / 1000)\n return `${s}秒前`\n } else if (time < 3600000 && time >= 60000) {\n // 超过1分钟少于1小时\n s = Math.floor(time / 60000)\n return `${s}分钟前`\n } else if (time < 86400000 && time >= 3600000) {\n // 超过1小时少于24小时\n s = Math.floor(time / 3600000)\n return `${s}小时前`\n } else if (time < 259200000 && time >= 86400000) {\n // 超过1天少于3天内\n s = Math.floor(time / 86400000)\n return `${s}天前`\n } else {\n // 超过3天\n const date = typeof param === 'string' || 'object' ? new Date(param) : param\n return formatDate(date, format)\n }\n}\n\n/**\n * 时间问候语\n * @param param 当前时间,new Date() 格式\n * @description param 调用 `formatAxis(new Date())` 输出 `上午好`\n * @returns 返回拼接后的时间字符串\n */\nexport function formatAxis (param: Date): string {\n const hour: number = new Date(param).getHours()\n if (hour < 6) return '凌晨好'\n else if (hour < 9) return '早上好'\n else if (hour < 12) return '上午好'\n else if (hour < 14) return '中午好'\n else if (hour < 17) return '下午好'\n else if (hour < 19) return '傍晚好'\n else if (hour < 22) return '晚上好'\n else return '夜里好'\n}\n"],"sourceRoot":""}