diff --git a/sgzb-screen/src/api/dialog.js b/sgzb-screen/src/api/dialog.js new file mode 100644 index 00000000..05de6c69 --- /dev/null +++ b/sgzb-screen/src/api/dialog.js @@ -0,0 +1,34 @@ +import { POST, GET } from './index.js' + +const URL_TYPE_LIST = '/screen/material/returnOfMaterialsInfo/getTypeList' +const URL_DETAILS = '/screen/base/largeScreen/home/getMaterialReqData/details' +const URL_RETURN_DETAILS = '/screen/base/largeScreen/home/getMaterialReturnData/details' +const URL_UNIT_LIST = '/screen/material/agreementInfo/getUnitList' +const URL_PROJECT_LIST = '/screen/material/agreementInfo/getProjectList' +const URL_SCRAP_ANALYSIS = '/screen/base/largeScreen/home/getScrapAnalysisByMonth/details' +const URL_TOTAL_OWNERSHIP = '/screen/base/largeScreen/home/getTotalOwnership/details' +const URL_ACCEPTANCE_STORAGE = '/screen/base/largeScreen/home/getAcceptanceStorage/details' + +// 设备类型 +export const getTypeList = params => GET(URL_TYPE_LIST, params) + +// 领料数据 +export const getDetails = data => POST(URL_DETAILS, data) + +// 退料数据 +export const getReturnDetails = data => POST(URL_RETURN_DETAILS, data) + +// 往来单位-下拉 +export const getUnitList = params => GET(URL_UNIT_LIST, params) + +// 工程名称-下拉 +export const getProjectList = params => GET(URL_PROJECT_LIST, params) + +// 废料分析 +export const getScrapAnalysis = data => POST(URL_SCRAP_ANALYSIS, data) + +// 总保有量 +export const getTotalOwnership = data => POST(URL_TOTAL_OWNERSHIP, data) + +// 入库分析 +export const getAcceptanceStorage = data => POST(URL_ACCEPTANCE_STORAGE, data) diff --git a/sgzb-screen/src/components/Pagination/index.vue b/sgzb-screen/src/components/Pagination/index.vue new file mode 100644 index 00000000..1f991f9d --- /dev/null +++ b/sgzb-screen/src/components/Pagination/index.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/sgzb-screen/src/components/home/centerBottom.vue b/sgzb-screen/src/components/home/centerBottom.vue index 0f678a22..014d3586 100644 --- a/sgzb-screen/src/components/home/centerBottom.vue +++ b/sgzb-screen/src/components/home/centerBottom.vue @@ -6,15 +6,21 @@
+ + diff --git a/sgzb-screen/src/components/home/centerFold.vue b/sgzb-screen/src/components/home/centerFold.vue index 3e56275d..f4f444c0 100644 --- a/sgzb-screen/src/components/home/centerFold.vue +++ b/sgzb-screen/src/components/home/centerFold.vue @@ -17,7 +17,7 @@
-
+
{{ item.value }}
@@ -28,14 +28,20 @@
+ +
\ No newline at end of file diff --git a/sgzb-screen/src/components/home/inputStoreAnalysisDialog.vue b/sgzb-screen/src/components/home/inputStoreAnalysisDialog.vue new file mode 100644 index 00000000..19e5b80d --- /dev/null +++ b/sgzb-screen/src/components/home/inputStoreAnalysisDialog.vue @@ -0,0 +1,173 @@ + + + + + \ No newline at end of file diff --git a/sgzb-screen/src/components/home/inventoryDialog.vue b/sgzb-screen/src/components/home/inventoryDialog.vue new file mode 100644 index 00000000..2aa675ab --- /dev/null +++ b/sgzb-screen/src/components/home/inventoryDialog.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/sgzb-screen/src/components/home/leftOne.vue b/sgzb-screen/src/components/home/leftOne.vue index c019dff1..0c6a8a20 100644 --- a/sgzb-screen/src/components/home/leftOne.vue +++ b/sgzb-screen/src/components/home/leftOne.vue @@ -4,9 +4,11 @@
领料数据
- -
- +
+ +
+
+
@@ -52,6 +54,9 @@ export default { } else { return str.replace(/(\d{3})(?=\d)/g, '$1,'); // 直接在中间用逗号分割 } + }, + handleClick(maType) { + this.$refs.countFlopOne.handleClick(maType) } } } diff --git a/sgzb-screen/src/components/home/leftThree.vue b/sgzb-screen/src/components/home/leftThree.vue index 00c4812c..c93bfd32 100644 --- a/sgzb-screen/src/components/home/leftThree.vue +++ b/sgzb-screen/src/components/home/leftThree.vue @@ -4,7 +4,9 @@
当月报废分析
-
+
+ +
@@ -13,11 +15,13 @@ import * as echarts from 'echarts'; import CountFlopOne from './countFlopOne.vue' import { getScrapAnalysisByMonthApi } from "../../api/screen"; +import scrapAnalysisDialog from './scrapAnalysisDialog.vue' export default { name: 'accessRatePage', components: { - CountFlopOne + CountFlopOne, + scrapAnalysisDialog }, data() { return { @@ -230,6 +234,10 @@ export default { } let myCharts = echarts.init(document.querySelector('#accessRateEcharts')); myCharts.setOption(echartOption) + }, + handleClick() { + console.log('handleClick--报废分析') + this.$refs.scrapAnalysisDialog.setOpen({ open: true, maType: this.maType}) } } } diff --git a/sgzb-screen/src/components/home/leftTwo.vue b/sgzb-screen/src/components/home/leftTwo.vue index 0be59a0d..b77e6e1e 100644 --- a/sgzb-screen/src/components/home/leftTwo.vue +++ b/sgzb-screen/src/components/home/leftTwo.vue @@ -4,8 +4,10 @@
退料数据
- -
+
+ +
+
@@ -51,6 +53,9 @@ export default { this.num2 = this.formatNumber(res.data.num2) } }) + }, + handleClick(maType) { + this.$refs.countFlopOne.handleClick(maType) } } diff --git a/sgzb-screen/src/components/home/returnMaterialsDialog.vue b/sgzb-screen/src/components/home/returnMaterialsDialog.vue new file mode 100644 index 00000000..bdb2fb2d --- /dev/null +++ b/sgzb-screen/src/components/home/returnMaterialsDialog.vue @@ -0,0 +1,232 @@ + + + + + \ No newline at end of file diff --git a/sgzb-screen/src/components/home/scrapAnalysisDialog.vue b/sgzb-screen/src/components/home/scrapAnalysisDialog.vue new file mode 100644 index 00000000..61d695e9 --- /dev/null +++ b/sgzb-screen/src/components/home/scrapAnalysisDialog.vue @@ -0,0 +1,249 @@ + + + + + \ No newline at end of file diff --git a/sgzb-screen/src/untils/scroll-to.js b/sgzb-screen/src/untils/scroll-to.js new file mode 100644 index 00000000..c5d8e04e --- /dev/null +++ b/sgzb-screen/src/untils/scroll-to.js @@ -0,0 +1,58 @@ +Math.easeInOutQuad = function(t, b, c, d) { + t /= d / 2 + if (t < 1) { + return c / 2 * t * t + b + } + t-- + return -c / 2 * (t * (t - 2) - 1) + b +} + +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts +var requestAnimFrame = (function() { + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } +})() + +/** + * Because it's so fucking difficult to detect the scrolling element, just move them all + * @param {number} amount + */ +function move(amount) { + document.documentElement.scrollTop = amount + document.body.parentNode.scrollTop = amount + document.body.scrollTop = amount +} + +function position() { + return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop +} + +/** + * @param {number} to + * @param {number} duration + * @param {Function} callback + */ +export function scrollTo(to, duration, callback) { + const start = position() + const change = to - start + const increment = 20 + let currentTime = 0 + duration = (typeof (duration) === 'undefined') ? 500 : duration + var animateScroll = function() { + // increment the time + currentTime += increment + // find the value with the quadratic in-out easing function + var val = Math.easeInOutQuad(currentTime, start, change, duration) + // move the document.body + move(val) + // do the animation unless its over + if (currentTime < duration) { + requestAnimFrame(animateScroll) + } else { + if (callback && typeof (callback) === 'function') { + // the animation is done so lets callback + callback() + } + } + } + animateScroll() +} diff --git a/sgzb-screen/src/views/Home/index.vue b/sgzb-screen/src/views/Home/index.vue index 9ddd2789..9e4e8eac 100644 --- a/sgzb-screen/src/views/Home/index.vue +++ b/sgzb-screen/src/views/Home/index.vue @@ -187,8 +187,7 @@ export default { const seconds = date.getSeconds().toString().padStart(2, '0') const dateTimeString = `${year}/${month}/${day} ${weekday} ${hours}:${minutes}:${seconds}` this.dateTimeString = dateTimeString - } - + }, } }