Commit b41df8b58916316badffd51b6f2a318ff7d9f7c2
1 parent
520ec72f
电子站牌项目
1、修改bsth-line-chart-scrollList组件,添加如下新的属性(bsth-line-chart-scrollList-page类似) 2、新属性1:线路路由数据url 3、新属性2:线路gps数据url 4、新属性3:站牌设备Id 5、新属性4:滚动速度(像素/秒) 6、修改滚动时间间隔,gps数据刷新间隔为秒
Showing
3 changed files
with
43 additions
and
16 deletions
front-end/h5/src/components/core/plugins/bsth/bsth-line-chart-scrollList-page.js
| @@ -19,10 +19,26 @@ export default { | @@ -19,10 +19,26 @@ export default { | ||
| 19 | list_width: { type: Number, required: true }, | 19 | list_width: { type: Number, required: true }, |
| 20 | // 列表高度 | 20 | // 列表高度 |
| 21 | list_height: { type: Number, required: true }, | 21 | list_height: { type: Number, required: true }, |
| 22 | - // 滚动时间间隔(毫秒) | ||
| 23 | - scroll_milliseconds: { type: Number, required: true }, | ||
| 24 | - // gps数据刷新间隔(分钟) | ||
| 25 | - gps_data_refresh_minute: { type: Number, required: true } | 22 | + // 滚动时间间隔(秒) |
| 23 | + scroll_seconds: { type: Number, required: true }, | ||
| 24 | + // 滚动速度(像素/秒) | ||
| 25 | + scroll_speed: { type: Number, required: true }, | ||
| 26 | + // gps数据刷新间隔(秒) | ||
| 27 | + gps_data_refresh_seconds: { type: Number, required: true }, | ||
| 28 | + // 线路路由数据url | ||
| 29 | + route_data_of_api_url: { type: String, required: true }, | ||
| 30 | + // 线路gps数据url | ||
| 31 | + gps_data_of_api_url: { type: String, required: true }, | ||
| 32 | + // 站牌设备Id | ||
| 33 | + device_id: { type: String, required: true } | ||
| 34 | + }, | ||
| 35 | + computed: { | ||
| 36 | + routeDataOfApiUrl () { | ||
| 37 | + return this.route_data_of_api_url + '?deviceId=' + this.device_id | ||
| 38 | + }, | ||
| 39 | + gpsDataOfApiUrl () { | ||
| 40 | + return this.gps_data_of_api_url + '?deviceId=' + this.device_id | ||
| 41 | + } | ||
| 26 | }, | 42 | }, |
| 27 | data () { | 43 | data () { |
| 28 | return { | 44 | return { |
| @@ -41,9 +57,7 @@ export default { | @@ -41,9 +57,7 @@ export default { | ||
| 41 | gpsTimer: { // gps刷新间隔timer | 57 | gpsTimer: { // gps刷新间隔timer |
| 42 | timer: null, | 58 | timer: null, |
| 43 | count: 0 | 59 | count: 0 |
| 44 | - }, | ||
| 45 | - routeDataOfApiUrl: 'http://192.168.168.228:8910/General_Interface/getLineRouteVO?deviceId=66MH0001', | ||
| 46 | - gpsDataOfApiUrl: 'http://192.168.168.228:8910/General_Interface/getLineGpsVO?deviceId=66MH0001' | 60 | + } |
| 47 | } | 61 | } |
| 48 | }, | 62 | }, |
| 49 | mounted () { | 63 | mounted () { |
| @@ -109,7 +123,7 @@ export default { | @@ -109,7 +123,7 @@ export default { | ||
| 109 | this.scrollTimer.timer = setTimeout(function () { | 123 | this.scrollTimer.timer = setTimeout(function () { |
| 110 | self.startScroll() | 124 | self.startScroll() |
| 111 | // self.scrollTimer.count++ // 滚动完成再触发,this.scrollListInnerData.scrollUp触发 | 125 | // self.scrollTimer.count++ // 滚动完成再触发,this.scrollListInnerData.scrollUp触发 |
| 112 | - }, this.scroll_milliseconds) | 126 | + }, this.scroll_seconds * 1000) |
| 113 | }, | 127 | }, |
| 114 | 'gpsTimer.count' () { | 128 | 'gpsTimer.count' () { |
| 115 | let timer = this.gpsTimer.timer | 129 | let timer = this.gpsTimer.timer |
| @@ -122,7 +136,7 @@ export default { | @@ -122,7 +136,7 @@ export default { | ||
| 122 | this.gpsTimer.timer = setTimeout(function () { | 136 | this.gpsTimer.timer = setTimeout(function () { |
| 123 | self.refreshGpsDataOfApi() | 137 | self.refreshGpsDataOfApi() |
| 124 | // self.gpsTimer.count++ // refreshGpsDataOfApi触发 | 138 | // self.gpsTimer.count++ // refreshGpsDataOfApi触发 |
| 125 | - }, this.gps_data_refresh_minute * 60 * 1000) | 139 | + }, this.gps_data_refresh_seconds * 1000) |
| 126 | }, | 140 | }, |
| 127 | // -------------------- 监控父组件传递的属性 --------------- // | 141 | // -------------------- 监控父组件传递的属性 --------------- // |
| 128 | page_size (val) { | 142 | page_size (val) { |
| @@ -172,6 +186,7 @@ export default { | @@ -172,6 +186,7 @@ export default { | ||
| 172 | this.scrollListInnerData.refreshGps(lineGpsDataOfApiArray) | 186 | this.scrollListInnerData.refreshGps(lineGpsDataOfApiArray) |
| 173 | }).catch((err2) => { | 187 | }).catch((err2) => { |
| 174 | console.log(err2) | 188 | console.log(err2) |
| 189 | + this.$message.error(` 获取gps数据失败,状态:${err2.status},错误:${err2.statusText}`, 1) | ||
| 175 | }) | 190 | }) |
| 176 | // 发送bindData事件,父组件绑定该事件 | 191 | // 发送bindData事件,父组件绑定该事件 |
| 177 | this.$emit('bindData', this.innerDataSet) | 192 | this.$emit('bindData', this.innerDataSet) |
| @@ -181,7 +196,8 @@ export default { | @@ -181,7 +196,8 @@ export default { | ||
| 181 | this.gpsTimer.count++ | 196 | this.gpsTimer.count++ |
| 182 | }).catch((err) => { | 197 | }).catch((err) => { |
| 183 | console.log(err) | 198 | console.log(err) |
| 184 | - this.initLoadingText = `初始化线路路由失败,等待${this.gps_data_refresh_minute}分钟后重新获取,请稍后...` | 199 | + this.$message.error(` 获取路由数据失败,状态:${err.status},错误:${err.statusText}`, 1) |
| 200 | + this.initLoadingText = `初始化线路路由失败,等待${this.gps_data_refresh_seconds}秒后重新获取,请稍后...` | ||
| 185 | this.gpsTimer.count++ | 201 | this.gpsTimer.count++ |
| 186 | }) | 202 | }) |
| 187 | }, | 203 | }, |
| @@ -197,6 +213,7 @@ export default { | @@ -197,6 +213,7 @@ export default { | ||
| 197 | this.scrollListInnerData.refreshGps(lineGpsDataOfApiArray) | 213 | this.scrollListInnerData.refreshGps(lineGpsDataOfApiArray) |
| 198 | }).catch((err2) => { | 214 | }).catch((err2) => { |
| 199 | console.log(err2) | 215 | console.log(err2) |
| 216 | + this.$message.error(` 获取gps数据失败,状态:${err2.status},错误:${err2.statusText}`, 1) | ||
| 200 | }) | 217 | }) |
| 201 | this.gpsTimer.count++ | 218 | this.gpsTimer.count++ |
| 202 | } | 219 | } |
front-end/h5/src/components/core/plugins/bsth/bsth-line-chart-scrollList.js
| @@ -49,8 +49,12 @@ export default { | @@ -49,8 +49,12 @@ export default { | ||
| 49 | _flag_1_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='数据属性' class='bsth-line-item-divider'/>) } }), | 49 | _flag_1_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='数据属性' class='bsth-line-item-divider'/>) } }), |
| 50 | page_size: PropTypes.number({ label: '每页显示线路图数量', defaultValue: 5, layout: { prefixCls: 'bsth-line' } }), | 50 | page_size: PropTypes.number({ label: '每页显示线路图数量', defaultValue: 5, layout: { prefixCls: 'bsth-line' } }), |
| 51 | scroll_mode: PropTypes.select({ label: '滚动模式', defaultValue: 'up', options: [{ label: '向上滚动', value: 'up' }, { label: '向下滚动', value: 'down' }], layout: { prefixCls: 'bsth-line' } }), | 51 | scroll_mode: PropTypes.select({ label: '滚动模式', defaultValue: 'up', options: [{ label: '向上滚动', value: 'up' }, { label: '向下滚动', value: 'down' }], layout: { prefixCls: 'bsth-line' } }), |
| 52 | - scroll_milliseconds: PropTypes.number({ label: '滚动时间间隔(毫秒)', defaultValue: 2000, layout: { prefixCls: 'bsth-line' } }), | ||
| 53 | - gps_data_refresh_minute: PropTypes.number({ label: 'gps数据刷新间隔(分钟)', defaultValue: 1, layout: { prefixCls: 'bsth-line' } }), | 52 | + scroll_seconds: PropTypes.number({ label: '滚动时间间隔(秒)', defaultValue: 2000, layout: { prefixCls: 'bsth-line' } }), |
| 53 | + scroll_speed: PropTypes.number({ label: '滚动速度(像素/秒)', defaultValue: 10, layout: { prefixCls: 'bsth-line' } }), | ||
| 54 | + gps_data_refresh_seconds: PropTypes.number({ label: 'gps数据刷新间隔(秒)', defaultValue: 1, layout: { prefixCls: 'bsth-line' } }), | ||
| 55 | + route_data_of_api_url: PropTypes.string({ label: '线路路由数据url', component: 'a-textarea', defaultValue: 'http://192.168.168.228:8910/General_Interface/getLineRouteVO', layout: { prefixCls: 'bsth-line' } }), | ||
| 56 | + gps_data_of_api_url: PropTypes.string({ label: '线路gps数据url', component: 'a-textarea', defaultValue: 'http://192.168.168.228:8910/General_Interface/getLineGpsVO', layout: { prefixCls: 'bsth-line' } }), | ||
| 57 | + device_id: PropTypes.string({ label: '站牌设备Id', defaultValue: '66MH0001', layout: { prefixCls: 'bsth-line' } }), | ||
| 54 | // --------------- 外层css属性 --------------- // | 58 | // --------------- 外层css属性 --------------- // |
| 55 | _flag_2_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='外层css属性' class='bsth-line-item-divider'/>) } }), | 59 | _flag_2_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='外层css属性' class='bsth-line-item-divider'/>) } }), |
| 56 | margin_left: PropTypes.number({ label: '图左边margin', defaultValue: 0, layout: { prefixCls: 'bsth-line' } }), | 60 | margin_left: PropTypes.number({ label: '图左边margin', defaultValue: 0, layout: { prefixCls: 'bsth-line' } }), |
| @@ -72,7 +76,7 @@ export default { | @@ -72,7 +76,7 @@ export default { | ||
| 72 | // --------------- 内部线路模拟图内层css属性 --------------- // | 76 | // --------------- 内部线路模拟图内层css属性 --------------- // |
| 73 | _flag_4_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='内部线路模拟图内层css属性' class='bsth-line-item-divider'></hr>) } }), | 77 | _flag_4_: PropTypes.string({ label: '', component: null, extra (h) { return (<hr data-label='内部线路模拟图内层css属性' class='bsth-line-item-divider'></hr>) } }), |
| 74 | chart_left_padding: PropTypes.number({ label: '内部线路图距离左边padding', defaultValue: 30, layout: { prefixCls: 'bsth-line' } }), | 78 | chart_left_padding: PropTypes.number({ label: '内部线路图距离左边padding', defaultValue: 30, layout: { prefixCls: 'bsth-line' } }), |
| 75 | - chart_right_padding: PropTypes.number({ label: '内部线路图居中修正padding', defaultValue: 30, layout: { prefixCls: 'bsth-line' } }), | 79 | + chart_right_padding: PropTypes.number({ label: '内部线路图距离右边padding', defaultValue: 30, layout: { prefixCls: 'bsth-line' } }), |
| 76 | chart_center_top_padding: PropTypes.number({ label: '内部线路图居中修正padding', defaultValue: 4, layout: { prefixCls: 'bsth-line' } }), | 80 | chart_center_top_padding: PropTypes.number({ label: '内部线路图居中修正padding', defaultValue: 4, layout: { prefixCls: 'bsth-line' } }), |
| 77 | chart_station_name_max_size: PropTypes.number({ label: '站定名显示最大文字个数', defaultValue: 7, layout: { prefixCls: 'bsth-line' } }), | 81 | chart_station_name_max_size: PropTypes.number({ label: '站定名显示最大文字个数', defaultValue: 7, layout: { prefixCls: 'bsth-line' } }), |
| 78 | chart_up_line_path_s_color: PropTypes.color({ label: '上行线颜色', defaultValue: '#5E96D2', layout: { prefixCls: 'bsth-line' } }), | 82 | chart_up_line_path_s_color: PropTypes.color({ label: '上行线颜色', defaultValue: '#5E96D2', layout: { prefixCls: 'bsth-line' } }), |
| @@ -230,8 +234,12 @@ export default { | @@ -230,8 +234,12 @@ export default { | ||
| 230 | page_size={this.page_size} | 234 | page_size={this.page_size} |
| 231 | list_width={this.list_width} | 235 | list_width={this.list_width} |
| 232 | list_height={this.list_height} | 236 | list_height={this.list_height} |
| 233 | - scroll_milliseconds={this.scroll_milliseconds} | ||
| 234 | - gps_data_refresh_minute={this.gps_data_refresh_minute} | 237 | + scroll_seconds={this.scroll_seconds} |
| 238 | + scroll_speed={this.scroll_speed} | ||
| 239 | + gps_data_refresh_seconds={this.gps_data_refresh_seconds} | ||
| 240 | + route_data_of_api_url={this.route_data_of_api_url} | ||
| 241 | + gps_data_of_api_url={this.gps_data_of_api_url} | ||
| 242 | + device_id={this.device_id} | ||
| 235 | onBindData={this.onBindData} | 243 | onBindData={this.onBindData} |
| 236 | onScrollTop={this.onScrollTop}> | 244 | onScrollTop={this.onScrollTop}> |
| 237 | <div style={innerDivStyle}> | 245 | <div style={innerDivStyle}> |
front-end/h5/src/components/core/plugins/bsth/models/scrollListInnerData.js
| @@ -63,7 +63,9 @@ class ScrollListInnerData { | @@ -63,7 +63,9 @@ class ScrollListInnerData { | ||
| 63 | 63 | ||
| 64 | let topFrom = this._scrollDataItemList[this._currentScrollIndex].top | 64 | let topFrom = this._scrollDataItemList[this._currentScrollIndex].top |
| 65 | let topTo = this._scrollDataItemList[this._nextScrollIndex].top | 65 | let topTo = this._scrollDataItemList[this._nextScrollIndex].top |
| 66 | - let step = (topTo - topFrom) / 200 | 66 | + let speed = scrollListComponent.scroll_speed // 每秒移动像素数 |
| 67 | + let step = -(speed / 1000) // 每毫秒移动像素数 | ||
| 68 | + // let step = (topTo - topFrom) / 20 // 每毫秒移动距离差的5分之一 | ||
| 67 | let self = this | 69 | let self = this |
| 68 | self._scrollAnimateTimer.timer = setInterval(function () { | 70 | self._scrollAnimateTimer.timer = setInterval(function () { |
| 69 | self._scrollAnimateTimer.count++ | 71 | self._scrollAnimateTimer.count++ |