Commit d64e62e0 by tangqy

rxjs

parent 208f1301
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
"lint": "eslint --fix --ext .js,.vue src", "lint": "eslint --fix --ext .js,.vue src",
"build:dev": "node build/build.js --env=dev", "build:dev": "node build/build.js --env=dev",
"build:uat": "node build/build.js --env=uat", "build:uat": "node build/build.js --env=uat",
"build": "node build/build.js --env=prod" "build": "node build/build.js --env=prod",
"flow": "flow"
}, },
"dependencies": { "dependencies": {
"animate.css": "^3.7.0", "animate.css": "^3.7.0",
...@@ -60,6 +61,7 @@ ...@@ -60,6 +61,7 @@
"extract-text-webpack-plugin": "^3.0.0", "extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4", "file-loader": "^1.1.4",
"flow-bin": "^0.86.0", "flow-bin": "^0.86.0",
"flow-webpack-plugin": "^1.2.0",
"friendly-errors-webpack-plugin": "^1.6.1", "friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1", "html-webpack-plugin": "^2.30.1",
"less": "^3.8.1", "less": "^3.8.1",
......
...@@ -4,12 +4,9 @@ ...@@ -4,12 +4,9 @@
<div id="pullDown"> <div id="pullDown">
<span class="pullDownIcon" style="display: none"></span><span class="pullDownLabel">释放刷新</span> <span class="pullDownIcon" style="display: none"></span><span class="pullDownLabel">释放刷新</span>
</div> </div>
<ul id="thelist" <ul id="thelist">
@keydown="handlerKeydown($event)" <li v-for="(item, index) in items" :data-index="index" class="message-item"
@keypress="handlerKeypress($event)" :key="index">
>
<li v-for="(item, index) in items" class="message-item"
:key="index" @click="openMessageContent(item,$event)">
<div class="message-item-title">{{item.title}}</div> <div class="message-item-title">{{item.title}}</div>
<div class="message-desc">{{item.content_text}}</div> <div class="message-desc">{{item.content_text}}</div>
<div class="message-desc">{{item.push_time | fomatDate}}</div> <div class="message-desc">{{item.push_time | fomatDate}}</div>
...@@ -23,11 +20,15 @@ ...@@ -23,11 +20,15 @@
</template> </template>
<script> <script>
import {Observable} from 'rxjs'
import {throttleTime, switchMap, filter} from 'rxjs/operators'
require('@/lib/iscroll/iscroll') require('@/lib/iscroll/iscroll')
const IScroll = window.iScroll const IScroll = window.iScroll
let pullDownEl, pullDownOffset, pullUpEl, pullUpOffset let pullDownEl, pullDownOffset, pullUpEl, pullUpOffset
export default { export default {
name: 'message', name: 'message',
subscriptions () {},
data () { data () {
return { return {
items: [], items: [],
...@@ -47,9 +48,7 @@ export default { ...@@ -47,9 +48,7 @@ export default {
watch: {}, watch: {},
computed: {}, computed: {},
mounted () { mounted () {
this.$nextTick(() => { this.bindMessageTapEvent()
this.loaded()
})
}, },
methods: { methods: {
async getListDataFromNet () { async getListDataFromNet () {
...@@ -78,7 +77,7 @@ export default { ...@@ -78,7 +77,7 @@ export default {
this.isLastPage = true this.isLastPage = true
} }
} }
this.myScroll.refresh() this.loaded()
}, },
loaded () { loaded () {
pullDownEl = document.getElementById('pullDown') pullDownEl = document.getElementById('pullDown')
...@@ -111,6 +110,7 @@ export default { ...@@ -111,6 +110,7 @@ export default {
? '没有更多数据' ? '没有更多数据'
: '释放加载' : '释放加载'
} }
}) })
}, },
onScrollMove: function () { onScrollMove: function () {
...@@ -165,6 +165,40 @@ export default { ...@@ -165,6 +165,40 @@ export default {
this.eventMouseStarEl = event.target this.eventMouseStarEl = event.target
this.eventType = '' this.eventType = ''
}, },
bindMessageTapEvent () {
const clickEl$ = Observable.create(observer => {
$('body').on('click','.message-item',(event) => {
// const item = $(event.currentTarget)
observer.next(event)
})
})
const mousemoveEl$ = Observable.create(observer => {
$('body').on('mousemove','.message-item',(event) => {
// const item = $(event.currentTarget)
observer.next(event)
})
})
const mouseupEl$ = Observable.create(observer => {
$('body').on('mouseup','.message-item',(event) => {
// const item = $(event.currentTarget)
observer.next(event)
})
})
mouseupEl$.pipe(
switchMap(ev => mousemoveEl$),
switchMap(ev => clickEl$),
throttleTime(300),
filter(ev => ev.type === 'click')
)
.subscribe(event => {
const index = $(event.currentTarget).data('index')
const item = this.items[index]
this.openMessageContent(item)
},(ev) => {
console.log(ev)
})
},
handlerKeypress(event) { handlerKeypress(event) {
this.eventMouseEndEl = event.target this.eventMouseEndEl = event.target
console.log(event) console.log(event)
...@@ -187,17 +221,20 @@ export default { ...@@ -187,17 +221,20 @@ export default {
}, },
openMessageContent (item) { openMessageContent (item) {
if (this.eventType === 'click') {
this.$alert(`${item.content}`, '', { this.$alert(`${item.content}`, '', {
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
customClass: 'message-panel' customClass: 'message-panel',
callback:(action) => {
if (action === 'cancel') {
this.axios.post('http://testcenter.bigaka.net/b/store/notice!addNoticeUserRelationAction.do', {
params:{
"userId":"3956",
"noticeId":"68"
}
}) })
} }
}
// this.$alert(`${item.content}`, '', { })
// dangerouslyUseHTMLString: true,
// customClass: 'message-panel'
// })
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment