ylbtech-小程序-demo:知乎日报

1.返回顶部
0、
     
 
1、app.js
  1. //app.js
  2. App({
  3. onLaunch: function () {
  4. //调用API从本地缓存中获取数据
  5. var logs = wx.getStorageSync('logs') || []
  6. logs.unshift(Date.now())
  7. wx.setStorageSync('logs', logs)
  8. },
  9. getUserInfo:function(cb){
  10. var that = this
  11. if(this.globalData.userInfo){
  12. typeof cb == "function" && cb(this.globalData.userInfo)
  13. }else{
  14. //调用登录接口
  15. wx.login({
  16. success: function () {
  17. wx.getUserInfo({
  18. success: function (res) {
  19. that.globalData.userInfo = res.userInfo
  20. typeof cb == "function" && cb(that.globalData.userInfo)
  21. }
  22. })
  23. }
  24. })
  25. }
  26. },
  27. globalData:{
  28. userInfo:null
  29. }
  30. })
2、app.json
  1. {
  2. "pages":[
  3. "pages/index/index",
  4. "pages/theme/theme",
  5. "pages/detail/detail",
  6. "pages/list/list"
  7. ],
  8. "window":{
  9. "backgroundTextStyle":"light",
  10. "navigationBarBackgroundColor": "#00a2ea",
  11. "navigationBarTitleText": "知乎日报",
  12. "navigationBarTextStyle": "white"
  13. },
  14. "tabBar": {
  15. "color": "#353535",
  16. "selectedColor": "#3cc51f",
  17. "borderStyle": "white",
  18. "backgroundColor": "#ffffff",
  19. "list": [{
  20. "pagePath": "pages/index/index",
  21. "iconPath": "images/icon_API.png",
  22. "selectedIconPath": "images/icon_API_HL.png",
  23. "text": "主页"
  24. }, {
  25. "pagePath": "pages/theme/theme",
  26. "iconPath": "images/icon_component.png",
  27. "selectedIconPath": "images/icon_component_HL.png",
  28. "text": "主题日报"
  29. }]
  30. },
  31. "networkTimeout": {
  32. "request": 120000,
  33. "downloadFile": 120000
  34. }
  35. }
3、app.wxss
  1. /**app.wxss**/
  2. .container {
  3. display: flex;
  4. flex-direction: column;
  5. align-items: center;
  6. justify-content: flex-start;
  7. box-sizing: border-box;
  8. background-color: #f2f2f2;
  9. }
4、project.config.json
  1. {
  2. "description": "项目配置文件。",
  3. "packOptions": {
  4. "ignore": []
  5. },
  6. "setting": {
  7. "urlCheck": false,
  8. "es6": true,
  9. "postcss": true,
  10. "minified": true,
  11. "newFeature": true
  12. },
  13. "compileType": "miniprogram",
  14. "libVersion": "2.2.3",
  15. "appid": "wx7d22ab7088f2db6a",
  16. "projectname": "zhihuApp",
  17. "isGameTourist": false,
  18. "condition": {
  19. "search": {
  20. "current": -1,
  21. "list": []
  22. },
  23. "conversation": {
  24. "current": -1,
  25. "list": []
  26. },
  27. "game": {
  28. "currentL": -1,
  29. "list": []
  30. },
  31. "miniprogram": {
  32. "current": -1,
  33. "list": []
  34. }
  35. }
  36. }
5、pages
6、images
7、util.js
-util.js
  1. function formatTime(date) {
  2. var year = date.getFullYear()
  3. var month = date.getMonth() + 1
  4. var day = date.getDate()
  5.  
  6. var hour = date.getHours()
  7. var minute = date.getMinutes()
  8. var second = date.getSeconds()
  9.  
  10. return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  11. }
  12.  
  13. function formatDate(date, split) {
  14. var year = date.getFullYear()
  15. var month = date.getMonth() + 1
  16. var day = date.getDate()
  17. return [year, month, day].map(formatNumber).join(split || '')
  18. }
  19.  
  20. function formatNumber(n) {
  21. n = n.toString()
  22. return n[1] ? n : '0' + n
  23. }
  24.  
  25. module.exports = {
  26. formatTime: formatTime,
  27. formatDate: formatDate
  28. }
8、
2. pages返回顶部
1、detail
a) .js
  1. Page({
  2. data: {
  3. art: {},
  4. },
  5. onReady () {
  6. wx.setNavigationBarTitle({
  7. title: '详情页面'
  8. })
  9. },
  10. onLoad (options) {
  11. var that = this
  12. wx.request({
  13. url: 'http://news-at.zhihu.com/api/4/news/' + options.id,
  14. headers: {
  15. 'Content-Type': 'application/json'
  16. },
  17. success (res) {
  18. if (res.data.body) {
  19. var body = res.data.body;
  20. body = body.match( /<p>.*?<\/p>/g );
  21. var ss = [];
  22. if (body) {
  23. for( var i = 0, len = body.length; i < len;i++ ) {
  24. ss[ i ] = /<img.*?>/.test( body[ i ] );
  25. if( ss[ i ] ) {
  26. body[ i ] = body[ i ].match( /(http:|https:).*?\.(jpg|jpeg|gif|png)/ );
  27. } else {
  28. body[ i ] = body[ i ].replace( /<p>/g, '' )
  29. .replace( /<\/p>/g, '' )
  30. .replace( /<strong>/g, '' )
  31. .replace( /<\/strong>/g, '' )
  32. .replace( /<a.*?\/a>/g, '' )
  33. .replace( /&nbsp;/g, ' ' )
  34. .replace( /&ldquo;/g, '"' )
  35. .replace( /&rdquo;/g, '"' );
  36. }
  37. }
  38. }
  39. res.data.body = body
  40. }
  41. that.setData({
  42. art: res.data
  43. })
  44. }
  45. })
  46. }
  47. })
b) .json
c) .wxml
  1. <!--detail.wxml-->
  2. <view class="container">
  3. <view class="art-header">
  4. <image src="{{art.image}}" class="art-img"/>
  5. <view class="art-title">{{art.title}}</view>
  6. <view class="art-source">{{art.image_source}}</view>
  7. </view>
  8. <view class="art-content">
  9. {{art.body}}
  10. </view>
  11. </view>
d) .wxss
  1. .art-header{
  2. position: relative;
  3. width: 100%;
  4. height: 219px;
  5. color: #FFF;
  6. }
  7.  
  8. .art-img{
  9. width: 100%;
  10. height: 219px;
  11. }
  12.  
  13. .art-title{
  14. position: absolute;
  15. bottom: 36px;
  16. left: 8px;
  17. font-size: 16px;
  18. }
  19.  
  20. .art-source {
  21. position: absolute;
  22. bottom: 8px;
  23. font-size: 14px;
  24. right: 8px;
  25. }
  26.  
  27. .art-content{
  28. font-size: 14px;
  29. color: #616466;
  30. padding-left: 16px;
  31. padding-right: 16px;
  32. padding-top: 10px;
  33. background-color: #FFF;
  34. line-height: 1.5;
  35. }
e)
2、index
a) .js
  1. //index.js
  2. //获取应用实例
  3. var app = getApp()
  4. var utils = require('../../utils/util.js')
  5. Page({
  6. data: {
  7. list: [],
  8. duration: 2000,
  9. indicatorDots: true,
  10. autoplay: true,
  11. interval: 3000,
  12. loading: false,
  13. plain: false
  14. },
  15. //事件处理函数
  16. bindViewTap(e) {
  17. wx.navigateTo({
  18. url: '../detail/detail?id=' + e.target.dataset.id
  19. })
  20. },
  21. loadMore (e) {
  22. if (this.data.list.length === 0) return
  23. var date = this.getNextDate()
  24. var that = this
  25. that.setData({ loading: true })
  26. wx.request({
  27. url: 'http://news.at.zhihu.com/api/4/news/before/' + (Number(utils.formatDate(date)) + 1),
  28. headers: {
  29. 'Content-Type': 'application/json'
  30. },
  31. success (res) {
  32. that.setData({
  33. loading: false,
  34. list: that.data.list.concat([{ header: utils.formatDate(date, '-') }]).concat(res.data.stories)
  35. })
  36. }
  37. })
  38. },
  39. getNextDate (){
  40. const now = new Date()
  41. now.setDate(now.getDate() - this.index++)
  42. return now
  43. },
  44. onLoad () {
  45. let that = this
  46. wx.request({
  47. url: 'http://news-at.zhihu.com/api/4/news/latest',
  48. headers: {
  49. 'Content-Type': 'application/json'
  50. },
  51. success (res) {
  52. that.setData({
  53. banner: res.data.top_stories,
  54. list: [{ header: '今日热闻' }].concat(res.data.stories)
  55. })
  56. }
  57. })
  58. this.index = 1
  59. //调用应用实例的方法获取全局数据
  60. // app.getUserInfo(function(userInfo){
  61. // //更新数据
  62. // that.setData({
  63. // userInfo:userInfo
  64. // })
  65. // })
  66.  
  67. }
  68. })
b) .json
c) .wxml
  1. <!--index.wxml-->
  2. <view class="container">
  3. <swiper indicator-dots="{{indicatorDots}}"
  4. autoplay="{{autoplay}}" class="banners" interval="{{interval}}" duration="{{duration}}">
  5. <block wx:for="{{banner}}">
  6. <swiper-item class="banner" >
  7. <image src="{{item.image}}" data-id="{{item.id}}" bindtap="bindViewTap" class="banner-image" width="100%" height="100%"/>
  8. <text class="banner-title">{{item.title}}</text>
  9. </swiper-item>
  10. </block>
  11. </swiper>
  12. <view class="news-item-container">
  13. <block wx:for="{{list}}" wx:for-index="id">
  14. <text wx:if="{{item.header}}" class="sub-title">{{item.header}}</text>
  15. <navigator wx:else url="../detail/detail?id={{item.id}}">
  16. <view class="news-item" >
  17. <view class="news-item-left">
  18. <text class="news-item-title">{{item.title}}</text>
  19. </view>
  20. <view class="news-item-right">
  21. <image src="{{item.images[0]}}" class="news-image"/>
  22. </view>
  23. </view>
  24. </navigator>
  25. </block>
  26. <button type="primary" class="load-btn" loading="{{loading}}" plain="{{plain}}" bindtap="loadMore"> 更多 </button>
  27. </view>
  28.  
  29. </view>
d) .wxss
  1. /**index.wxss**/
  2. .banners {
  3. width: 100%;
  4. height: 200px;
  5. }
  6.  
  7. .banner{
  8. position: relative;
  9. }
  10.  
  11. .banner-image{
  12. width: 100%;
  13. height: 100%;
  14. }
  15.  
  16. .banner-title{
  17. color: #FFF;
  18. position: absolute;
  19. width: 100%;
  20. padding-left: 16px;
  21. padding-right: 16px;
  22. bottom: 30px;
  23. font-size: 16px;
  24. left:;
  25. }
  26.  
  27. .sub-title{
  28. color: #76787e;
  29. height: 36px;
  30. line-height: 36px;
  31. padding: 0 16px;
  32. width: 100%;
  33. font-size: 14px;
  34. padding-left: 16px;
  35. padding-right: 16px;
  36. }
  37.  
  38. .news-item-container {
  39. background-color: #f2f2f2;
  40. width: 100%;
  41. padding-left: 8px;
  42. padding-right: 8px;
  43. }
  44.  
  45. .news-item {
  46. display: flex;
  47. flex-direction: row;
  48. justify-content: space-between;
  49. padding-left: 8px;
  50. padding-top: 8px;
  51. padding-right: 8px;
  52. padding-bottom: 8px;
  53. margin-left: 8px;
  54. margin-right: 8px;
  55. margin-top: 8px;
  56. background-color: #fff;
  57. border: 1px solid #eaeaea;
  58. border-bottom: 1px solid #d0d0d0;
  59. border-radius: 5px;
  60. }
  61.  
  62. .news-item-right{
  63. width: 80px;
  64. height: 80px;
  65. }
  66.  
  67. .news-image{
  68. width: 80px;
  69. height: 80px;
  70. }
  71.  
  72. .news-item-title{
  73. font-size: 16px;
  74. }
  75.  
  76. .load-btn{
  77. margin-left: 8px;
  78. margin-right: 8px;
  79. margin-top: 16px;
  80. margin-bottom: 16px;
  81. display: block;
  82. line-height: 2.3;
  83. font-size: 13px;
  84. padding: 0 1.34em;
  85. }
e)
3、list
a) .js
  1. Page({
  2. data: {
  3. list: {}
  4. },
  5. onReady: function () {
  6. wx.setNavigationBarTitle({
  7. title: this.title
  8. })
  9. },
  10. onLoad: function (options) {
  11. var that = this
  12. this.title = options.title
  13. wx.request({
  14. url: 'http://news-at.zhihu.com/api/4/theme/' + options.id,
  15. headers: {
  16. 'Content-Type': 'application/json'
  17. },
  18. success: function (res) {
  19. that.setData({
  20. list: res.data.stories
  21. })
  22. console.log(res.data)
  23. }
  24. })
  25. }
  26. })
b) .json
c) .wxml
  1. <!--list.wxml-->
  2. <view class="container">
  3. <view class="news-item-container">
  4. <navigator url="../detail/detail?id={{item.id}}" wx:for="{{list}}" wx:for-index="id">
  5. <view class="news-item" >
  6. <view class="news-item-left">
  7. <text class="news-item-title">{{item.title}}</text>
  8. </view>
  9. <view class="news-item-right">
  10. <image src="{{item.images[0]}}" class="news-image"/>
  11. </view>
  12. </view>
  13. </navigator>
  14. </view>
  15. </view>
d) .wxss
  1. .news-item-container {
  2. background-color: #f2f2f2;
  3. width: 100%;
  4. padding-left: 8px;
  5. padding-right: 8px;
  6. }
  7.  
  8. .news-item {
  9. display: flex;
  10. flex-direction: row;
  11. justify-content: space-between;
  12. padding-left: 8px;
  13. padding-top: 8px;
  14. padding-right: 8px;
  15. padding-bottom: 8px;
  16. margin-left: 8px;
  17. margin-right: 8px;
  18. margin-top: 8px;
  19. background-color: #fff;
  20. border: 1px solid #eaeaea;
  21. border-bottom: 1px solid #d0d0d0;
  22. border-radius: 5px;
  23. }
  24.  
  25. .news-item-right{
  26. width: 80px;
  27. height: 80px;
  28. }
  29.  
  30. .news-image{
  31. width: 80px;
  32. height: 80px;
  33. }
  34.  
  35. .news-item-title{
  36. font-size: 16px;
  37. }
e)
4、them
a) .js
  1. Page({
  2. data: {
  3. list: []
  4. },
  5. onLoad: function () {
  6. var that = this
  7. wx.request({
  8. url: 'http://news-at.zhihu.com/api/4/themes',
  9. headers: {
  10. 'Content-Type': 'application/json'
  11. },
  12. success: function (res) {
  13. that.setData({
  14. list: res.data.others
  15. })
  16. }
  17. })
  18. }
  19. })
b) .json
c) .wxml
  1. <!--theme.wxml-->
  2. <view class="container">
  3. <navigator class="card" url="../list/list?id={{item.id}}&title={{item.name}}" wx:for="{{list}}">
  4. <image src="{{item.thumbnail}}" class="card-image"></image>
  5. <view class="card-content">
  6. <view>
  7. <text class="card-title">{{item.name}}</text>
  8. </view>
  9. <view>
  10. <text class="card-desc">{{item.description}}</text>
  11. </view>
  12. </view>
  13. </navigator>
  14. </view>
d) .wxss
  1. .card {
  2. width: 100%;
  3. margin-top: 8px;
  4. margin-bottom: 8px;
  5. background-color: #FFF;
  6. }
  7. .card-image{
  8. width: 100%;
  9. height: 168px;
  10. }
  11.  
  12. .card-content{
  13. padding-left: 16px;
  14. padding-right: 16px;
  15. padding-bottom: 10px;
  16. }
  17.  
  18. .card-title{
  19. font-size: 16px;
  20. line-height: 1.6;
  21. }
  22.  
  23. .card-desc {
  24. font-size: 14px;
  25. }
e)
5、
a) .js
b) .json
c) .wxml
d) .wxss
e)
6、
3.返回顶部
6、
a) .js
b) .json
c) .wxml
d) .wxss
e)
4. 资源Json返回顶部
1、index
-http://news-at.zhihu.com/api/4/news/latest
  1. {"date":"20180821","stories":[{"images":["https:\/\/pic3.zhimg.com\/v2-465f0a8298f7fce574c7368e12d31512.jpg"],"type":0,"id":9692289,"ga_prefix":"082113","title":"校园招聘、实习生招聘、秋招的区别是什么?"},{"images":["https:\/\/pic4.zhimg.com\/v2-7b140adccb8359f6b6dc53677d5b26eb.jpg"],"type":0,"id":9693626,"ga_prefix":"082112","title":"大误 · 一滴水如果从足够高的地方落下,能不能打死人?"},{"images":["https:\/\/pic2.zhimg.com\/v2-e3369ec6da7dba5ebe40e77a0da23725.jpg"],"type":0,"id":9693572,"ga_prefix":"082110","title":"看不懂血、尿、便常规的报告单?手把手教教你"},{"images":["https:\/\/pic2.zhimg.com\/v2-6abf42a09000eeec3e93fccd0d144c15.jpg"],"type":0,"id":9693669,"ga_prefix":"082109","title":"刚毕业在国外租房,前台给办理一下就入住了……"},{"images":["https:\/\/pic4.zhimg.com\/v2-4cadabda1516c9b5772695bbdb9e795b.jpg"],"type":0,"id":9692796,"ga_prefix":"082108","title":"孩子的每一次失控,都是「求助信号」"},{"images":["https:\/\/pic3.zhimg.com\/v2-c1d370cb878e1e816092d7430ae9af86.jpg"],"type":0,"id":9692910,"ga_prefix":"082107","title":"如何面对室友的孤立排挤?"},{"images":["https:\/\/pic3.zhimg.com\/v2-420f9ff43b1b02ee8f55ca0076c32bc2.jpg"],"type":0,"id":9693547,"ga_prefix":"082107","title":"好端端的装机必备软件,一顿神勇操作之后毁个稀烂"},{"images":["https:\/\/pic2.zhimg.com\/v2-502b15833122c1073882e1a22e5a2a0d.jpg"],"type":0,"id":9693582,"ga_prefix":"082107","title":"卧底工厂,这是我的蓝领调研全纪实"},{"images":["https:\/\/pic2.zhimg.com\/v2-1aa40e3f270a9fbd954b5aacc9cd98f5.jpg"],"type":0,"id":9693689,"ga_prefix":"082106","title":"瞎扯 · 如何正确地吐槽"}],"top_stories":[{"image":"https:\/\/pic4.zhimg.com\/v2-30f8a94e9f9acf0e80383e591c6e90ab.jpg","type":0,"id":9693666,"ga_prefix":"082018","title":"中介恶性竞争导致房租暴涨?这并非全部的真相"},{"image":"https:\/\/pic2.zhimg.com\/v2-63824be2bea749a8e6e8536ad05ddf05.jpg","type":0,"id":9693150,"ga_prefix":"082016","title":"那些动不动就上千还要煲的耳机,真有那么神奇吗?"},{"image":"https:\/\/pic4.zhimg.com\/v2-0754eddc64bf58fdd45a8c2be06086bb.jpg","type":0,"id":9693582,"ga_prefix":"082107","title":"卧底工厂,这是我的蓝领调研全纪实"},{"image":"https:\/\/pic4.zhimg.com\/v2-028e6da5d9285aa4d2e70d852ba21f2b.jpg","type":0,"id":9692796,"ga_prefix":"082108","title":"孩子的每一次失控,都是「求助信号」"},{"image":"https:\/\/pic3.zhimg.com\/v2-62f867675f39ae366bc9c1d27b3deeaa.jpg","type":0,"id":9691683,"ga_prefix":"081913","title":"每周一吸 · 摸完猫狗必须洗手?"}]}
-http://news.at.zhihu.com/api/4/news/before/20180821
  1. {"date":"20180820","stories":[{"images":["https:\/\/pic4.zhimg.com\/v2-6c3a3016c82c6d9017d6e6408521be8f.jpg"],"type":0,"id":9693567,"ga_prefix":"082022","title":"小事 · 冲动还在,血仍未冷"},{"images":["https:\/\/pic2.zhimg.com\/v2-8919d6146ebafb75b4e0476fc0d9da31.jpg"],"type":0,"id":9693590,"ga_prefix":"082021","title":"今晚点映 · 满州里有一只大象,它整天就坐在那"},{"images":["https:\/\/pic4.zhimg.com\/v2-5f42b189a91982464e99cec36e53becf.jpg"],"type":0,"id":9693223,"ga_prefix":"082019","title":"作为法官,有些亲身经历你们肯定很难相信"},{"images":["https:\/\/pic2.zhimg.com\/v2-d1840f47f20bf0f7ec128ab2af3b76e1.jpg"],"type":0,"id":9693666,"ga_prefix":"082018","title":"中介恶性竞争导致房租暴涨?这并非全部的真相"},{"images":["https:\/\/pic4.zhimg.com\/v2-1a7ffa35a7c385f8b54a364f8447e87b.jpg"],"type":0,"id":9692072,"ga_prefix":"082017","title":"孩子和工作,我到底选哪个?"},{"images":["https:\/\/pic2.zhimg.com\/v2-b7aa21469460cbbfa0d68e85e42c1201.jpg"],"type":0,"id":9693150,"ga_prefix":"082016","title":"那些动不动就上千还要煲的耳机,真有那么神奇吗?"},{"images":["https:\/\/pic2.zhimg.com\/v2-2c434ef50275099fc78785533a59ef85.jpg"],"type":0,"id":9692740,"ga_prefix":"082015","title":"情侣牵手可以「同步脑波」?"},{"images":["https:\/\/pic3.zhimg.com\/v2-0044148868cf76ac0d3062f9c078046a.jpg"],"type":0,"id":9691509,"ga_prefix":"082013","title":"一些关于结婚的法律小常识,还是心里有数比较好"},{"title":"大误 · 能伤人的电子","ga_prefix":"082012","images":["https:\/\/pic1.zhimg.com\/v2-9c1d906acfbc6df6efdfcff23bf1a13c.jpg"],"multipic":true,"type":0,"id":9693391},{"images":["https:\/\/pic1.zhimg.com\/v2-b69a30479f538e4c0dcbeb698983db38.jpg"],"type":0,"id":9693281,"ga_prefix":"082010","title":"诶,你这个做偶像游戏的,怎么突然开起了车?"},{"images":["https:\/\/pic2.zhimg.com\/v2-3cc349a3233b5ea4566c4cd469cb3fb5.jpg"],"type":0,"id":9693231,"ga_prefix":"082009","title":"- 游泳嘛,去深水区喝几口就会了\r\n- 开车嘛,开上街剐蹭几下就会了"},{"images":["https:\/\/pic3.zhimg.com\/v2-1098ffa8c2a15144e5158507b310851a.jpg"],"type":0,"id":9692041,"ga_prefix":"082008","title":"治理沙漠为什么不直接用管道输送海水?"},{"images":["https:\/\/pic2.zhimg.com\/v2-fc0664c1836789195ba792f20d2ec851.jpg"],"type":0,"id":9692522,"ga_prefix":"082007","title":"工作中遇到问题是该自己琢磨还是马上请教?"},{"images":["https:\/\/pic4.zhimg.com\/v2-d9a711025f4954af5845e113aa94ba5f.jpg"],"type":0,"id":9693296,"ga_prefix":"082007","title":"「星座学」不靠谱,但不信也别有什么优越感"},{"images":["https:\/\/pic2.zhimg.com\/v2-339df242fb3f59b35fff0fc309b60ee5.jpg"],"type":0,"id":9693471,"ga_prefix":"082006","title":"瞎扯 · 如何正确地吐槽"}]}
2、home
-http://news-at.zhihu.com/api/4/themes
  1. {"limit":1000,"subscribed":[],"others":[{"color":15007,"thumbnail":"http:\/\/pic3.zhimg.com\/0e71e90fd6be47630399d63c58beebfc.jpg","description":"了解自己和别人,了解彼此的欲望和局限。","id":13,"name":"日常心理学"},{"color":8307764,"thumbnail":"http:\/\/pic4.zhimg.com\/2c38a96e84b5cc8331a901920a87ea71.jpg","description":"内容由知乎用户推荐,海纳主题百万,趣味上天入地","id":12,"name":"用户推荐日报"},{"color":14483535,"thumbnail":"http:\/\/pic3.zhimg.com\/00eba01080138a5ac861d581a64ff9bd.jpg","description":"除了经典和新片,我们还关注技术和产业","id":3,"name":"电影日报"},{"color":8307764,"thumbnail":"http:\/\/pic4.zhimg.com\/4aa8400ba46d3d46e34a9836744ea232.jpg","description":"为你发现最有趣的新鲜事,建议在 WiFi 下查看","id":11,"name":"不许无聊"},{"color":62140,"thumbnail":"http:\/\/p1.zhimg.com\/d3\/7b\/d37b38d5c82b4345ccd7e50c4ae997da.jpg","description":"好设计需要打磨和研习,我们分享灵感和路径","id":4,"name":"设计日报"},{"color":1615359,"thumbnail":"http:\/\/pic4.zhimg.com\/aa94e197491fb9c44d384c4747773810.jpg","description":"商业世界变化越来越快,就是这些家伙干的","id":5,"name":"大公司日报"},{"color":16031744,"thumbnail":"http:\/\/pic2.zhimg.com\/f2e97ff073e5cf9e79c7ed498727ebd6.jpg","description":"从业者推荐的财经金融资讯","id":6,"name":"财经日报"},{"color":9699556,"thumbnail":"http:\/\/pic2.zhimg.com\/98d7b4f8169c596efb6ee8487a30c8ee.jpg","description":"把黑客知识科普到你的面前","id":10,"name":"互联网安全"},{"color":59647,"thumbnail":"http:\/\/pic3.zhimg.com\/2f214a4ca51855670668530f7d333fd8.jpg","description":"如果你喜欢游戏,就从这里开始","id":2,"name":"开始游戏"},{"color":1564695,"thumbnail":"http:\/\/pic4.zhimg.com\/eac535117ed895983bd2721f35d6e8dc.jpg","description":"有音乐就很好","id":7,"name":"音乐日报"},{"color":6123007,"thumbnail":"http:\/\/pic1.zhimg.com\/a0f97c523c64e749c700b2ddc96cfd7c.jpg","description":"用技术的眼睛仔细看懂每一部动画和漫画","id":9,"name":"动漫日报"},{"color":16046124,"thumbnail":"http:\/\/pic1.zhimg.com\/bcf7d594f126e5ceb22691be32b2650a.jpg","description":"关注体育,不吵架。","id":8,"name":"体育日报"}]}
3、list
-http://news-at.zhihu.com/api/4/theme/13
  1. {"stories":[{"type":0,"id":7097426,"title":"人们在虚拟生活中投入的精力是否对现实生活的人际关系有积极意义?"},{"images":["http:\/\/pic1.zhimg.com\/56d1d1202077c7b5b0e48e3b7d3ebb60_t.jpg"],"type":0,"id":7101963,"title":"写给想成为心理咨询师的学生同仁"},{"type":0,"id":7086807,"title":"职人介绍所 · 自闭儿童的解锁人"},{"images":["http:\/\/pic2.zhimg.com\/afecdc04983a8e261326386995150599_t.jpg"],"type":0,"id":7066097,"title":"家庭的生命周期:关于「离家」"},{"images":["http:\/\/pic4.zhimg.com\/1c4d1cd8edb7ed1e2045109c79870127_t.jpg"],"type":0,"id":7032789,"title":"艰难的孩子和孩子的艰难"},{"type":0,"id":7015707,"title":"家长该如何处理儿童的自慰行为?"},{"type":0,"id":7014561,"title":"从心理层面看,「婚外情」究竟是什么?"},{"type":0,"id":7014068,"title":"人类为什么需要仪式?"},{"type":0,"id":4856502,"title":"心理学从业者怎么看待近年来在国内心理咨询和治疗中十分流行的沙盘(箱庭)疗法?"},{"type":0,"id":4854969,"title":"为什么她总爱上同一类型的「渣」男?"},{"type":0,"id":4851024,"title":"国外幼教现状如何?"},{"images":["http:\/\/pic1.zhimg.com\/c7cd4c64f429b79e6d269723bd7b10f0_t.jpg"],"type":0,"id":4827436,"title":"从日俄战争到神经科学的二次革命(多图)"},{"images":["http:\/\/pic1.zhimg.com\/673f13f858f5fe6970104ba3319c33b8_t.jpg"],"type":0,"id":4820022,"title":"就这样面对爱人的糟糕情绪"},{"type":0,"id":4814564,"title":"意识、感知和注意力之间有怎样的关系?"},{"type":0,"id":4806764,"title":"小时候缺爱,成年后如何解决?"},{"type":0,"id":4802579,"title":"为什么得到了想要的,却不像想象中那样开心?"},{"type":0,"id":4738657,"title":"为什么很多老人都不喜欢使用家用电器?"},{"type":0,"id":4739134,"title":"心理咨询的时间为什么要控制在一小时左右?"}],"description":"了解自己和别人,了解彼此的欲望和局限。","background":"http:\/\/pic2.zhimg.com\/71c8bcd3d99958de45ed87b8fc213224.jpg","color":15007,"name":"日常心理学","image":"http:\/\/pic4.zhimg.com\/60b69ef145a472f2c6b5302453f95eaa.jpg","editors":[{"url":"http:\/\/www.zhihu.com\/people\/moheng-esther","bio":"树上的女爵","id":79,"avatar":"http:\/\/pic1.zhimg.com\/0a6456810_m.jpg","name":"刘柯"}],"image_source":""}
4、detail
-http://news-at.zhihu.com/api/4/news/4739134
  1. {"body":"<div class=\"main-wrap content-wrap\">\n<div class=\"headline\">\n\n\n<h1 class=\"headline-title onlyheading\">心理咨询的时间为什么要控制在一小时左右?<\/h1>\n\n\n\n\n<\/div>\n\n<div class=\"content-inner\">\n\n\n\n\n<div class=\"question\">\n<h2 class=\"question-title\"><\/h2>\n\n<div class=\"answer\">\n\n<div class=\"meta\">\n<img class=\"avatar\" src=\"http:\/\/pic4.zhimg.com\/c4601862edf6b197c501c798455568df_is.jpg\">\n<span class=\"author\">钱庄,<\/span><span class=\"bio\">(微信公号know yourself)临床心理,女性主义,话语及诗歌。<\/span>\n<\/div>\n\n<div class=\"content\">\n谢邀。早就想回答关于“咨询一小时”的问题了……这其实是一个历史问题和经济问题。<br><br><b>一、心理咨询小节并不是一开始就是“一小时\"的。<\/b><br><br>先给大家讲个段子:<br>祖师爷弗洛伊德是以不守规矩而“臭名昭著”的。<br>Once upon a time, 奥地利著名作曲家、指挥家古斯塔夫·马勒曾经因为重度抑郁和妻子出轨求助弗洛伊德,我们的弗洛伊德大爷(昨天是他的生日)给他做了一个长达4小时的精神分析取向咨询,并且他们俩不是在咨询室里做的,而是在城市里游走,边走边做的。<br>那次的咨询是卓有成效的,因为第二天,马勒给妻子发电报说,感觉棒极了!讨论的太好了!经过这次咨询,马勒修复了自己的“性能量”,和妻子和解了。(虽然他一年后就死了,噗)<br><br>如今我们有了很多的规则,这样的咨询小节在现在看来是不可想象的(甚至是有罪的)。是什么规则在规定小节的时间呢?<br><br><b>二、规定心理咨询小节时间的Current Procedural Terminology (CPT) Code<\/b><br><br>现行心理咨询行业的规则,基本都来源于西方,尤其是美国。而国内的我们很少能够理解,在美国心理咨询属于医疗行业的一部分,它的设置受到医疗保险的直接影响(有机会请邀请我回答关于美国医保的问题)。心理医生能不能接收第三方保险,病人能不能享用第三方保险,至关重要。几乎没有人是自己掏钱看心理咨询的(很贵),保险让心理医生有饭吃,让病人看得起心理咨询,所以保险是影响心理咨询行业设置的重要因素(if not the most important one).<br><br><b>Current Procedural Terminology (CPT) Code set 是一套医疗Code体系,由美国医疗协会<\/b>American Medical Association (AMA)开发,用来规定医药的、手术的、诊断的服务,同时它是普适的关于医疗服务(包括外科医生、精神科医生、保险人员、病人、认证机构、支付方等等)流程的沟通机制。每年十月会发布新版本,先行的CPT Code是2014年10月发布的。<br><br>一个心理医生,能不能收到保险公司的费用,除了执照问题之外,他如何收到钱,是由这个CPT码决定的。<br><br>现行CPT规定,心理咨询(psychotherapy)是根据时间来收费的,但收费的方式有三种,30分钟,45分钟和60分钟。很神奇的是,17-37分钟的小节,都按照30分钟来收费,38-52分钟的小节都按照45分钟来收费,52分钟以上的小节按照60分钟来收费。<br><br><b>也就是说,假如一个咨询师,今天给来访者做了超过60分钟的咨询,比如90分钟,120分钟甚至(我看到国内有些心理咨询师说自己的设置是一次两小时),在美国就不会有这种情况(除非是精神科医生或小节中有其他内容,后续会说到),因为多做的60分钟无法收费的啊!按规定不给钱的!咨询师又不傻…………<\/b><br><br>三、<b>心理咨询既是一门专业,也是一门生意<\/b><br><br><br>其实很少有数据能够显示,多长时间的咨询小节是效果最理想的。这跟更根本的原因有关,一直以来,心理领域的研究获得的资金会少于其他科学领域(这是因为整个西方,尤其美国,现在推崇“实证”——即有明显的证据,可以通过实验检验,在条件相同的前提下结果可以重复发生),心理领域的实证性显然是存疑的。<b>所以,一切都是因为穷,我们并不真正知道多长的时间作为一小节最合适。<\/b><br><br><br><br><b>那为什么现行的最常见的心理咨询是一小时左右?因为心理咨询是服务,对心理咨询师来说,这是他的专业(profession),也是他的生意(business)<\/b><br><br><br>在保证效果的前提下,一个咨询师一天能接的客户越多,他的财务越能得到保证。因为还会有一些突然取消的情况,美国的心理医生都会预先多安排一些小节。<b>他们在长期尝试之后发现50分钟是比较可行的,能够在保证效果的前提下,让他一周安排进最多的小节的时间长度。<\/b><br><br><br><b>我们很多人,包括心理咨询师自己,都回避心理咨询business的一面,在回答“为什么心理咨询要付费\"、“为什么一小时只有50分钟”一类的问题是,过多强调利他性,回避提供心理咨询服务对咨询师本身“利己”的一面,这其实也是伦理有害的。<\/b><br><br>心理咨询师不是圣人,不是拯救者。客观性是我们的专业要求。这个客观性也包括客观的看待自己的需求和利益。这有利于来访者和我们建立专业的、边界清晰的咨询关系。<br><br>最后给一些大家常用的解释,仅供参考,<br><br><p>1 心理咨询是精神紧张的,一个人一次能够吸取的有限,所以不能太长。<\/p><br><p>2. 心理咨询师需要有一个间歇的时间来做笔记,思考,计划。<\/p><br><p>3. 这个时间能够让来访者形成一个习惯,有足够的时间释放激烈的情绪,然后维持他们,并在出门继续上班前收拾好自己。<\/p><br><p>4.标准化的设置(包括停止时间和场地)是一种评估来访者行为习惯的方式,比如来访者是不是总在超过时间的时候表达自己,来访者会不会尝试拖延时间。这种观察通常很重要也有效。<\/p><br><p>5.心理咨询师都知道,来访者通常会在咨询快结束的时候说一些重要的事情。这就是传说中的“门把效应”,设置一个结束时间可以看到这个门把效应。<\/p><br><p>不过我自己最喜欢这个通用的答案:<\/p><br><p><b>心理咨询小节为什么只有50分钟?因为祖师爷爷弗洛伊德不到50分钟就忍不住要上厕所了 ……<\/b><\/p><br><br><p>以上。<\/p><br><br><p>补充,前面有人提到第一次见面做2小时的问题,说法不太精确。<\/p><br><p><b>现在心理咨询还有超过1小时的时候么?有,叫Double Session。确实是发生在第一次咨询的时候。但是Double Session虽然在实际的感受中是一个连续的超过1小时的咨询,在账单Billing和保险公司使用的code中,其实是两个内容。<\/b><\/p><br><p>其实美国的心理咨询服务billing是很复杂的。<\/p><p>单纯的心理咨询对应一种billing code,包括了开药(由精神科医生提供的心理咨询)的对应另外一种billing code。包括了education教育内容的(比如性教育)对应的也是另外一种billing code。<\/p><br><p>最常见的bouble session是由两个CPT规定的45分钟的session组成的,(复习一下,实际操作在38-52分钟的小节都按照45分钟计算),所以double sesssion的时间在80-100分钟,最常见的还是90分钟,一个半小时,并且是由精神科医生提供的。内容除了包括心理咨询,还有药物评估的服务(或者有开药的服务)。<\/p><br><p>收到账单的时候,你会看到两行,一行是心理咨询,一行是药物服务,分别计费。<\/p><br><p>国内因为太混乱,也实在没啥可说的……欢迎下次邀请我回答中美心理咨询制度差异问题。<\/p><br><p>以上。<\/p><p>----------------------------------------------------------------------------------------------------------------------------------------<\/p><br><p>2015年5月8日更新<\/p><br><p>补充一下,关于心理咨询室内的时间控制,并不是像微波炉一样,45分钟到了“ding”的一声,咨询师立刻站起来说对不起时间到了。<\/p><br><p>时间控制的技巧,从咨询的第一分钟就已经开始了,通过提问的节奏,和对话题的把握,在时间快到的时候,让整个咨询有一种自然的接近尾声的感觉,让双方都觉得这次停在这里很合适——这是需要能耐的,我把它看成“活儿好”的其中一个标准。<\/p><br><p>大多数时候,就像有些其他答主说的,稳定的设置非常重要,但是总有那么一两个剑走偏锋的奇葩,有一个叫做Jacques Lacan拉冈的法国精神分析师,精神科医生(虽然我说的很随意,但这个人很有名的,超级有名的),他提出了<b>variable-length session <\/b>可变长度的小节。<\/p><br><p>有一位女士在接受拉冈的治疗时,刚聊了7分钟,拉冈忽然站起来说,我们今天的咨询到此为止。(奏是这么任性啊!)<\/p><br><p>他把精神分析小节的时间缩短到几分钟,并且完全由咨询师掌握。他认为这样做能够让来访者在咨询中更专注于一些特别关键的时刻crucial moments。<\/p><br><p>不过显然他的同事不买账……他被同事们开除出了IPA精神分析协会,不过他后来还是愈挫愈勇建立了自己的精神分析协会,成为现在国际上最大的精神分析协会之一……这是后话了。<\/p><br><p>以上。<\/p>\n<\/div>\n<\/div>\n\n\n<div class=\"view-more\"><a href=\"http:\/\/www.zhihu.com\/question\/30160875\">查看知乎讨论<span class=\"js-question-holder\"><\/span><\/a><\/div>\n\n<\/div>\n\n\n<\/div>\n<\/div><script type=“text\/javascript”>window.daily=true<\/script>","title":"心理咨询的时间为什么要控制在一小时左右?","recommenders":[{"avatar":"http:\/\/pic3.zhimg.com\/78b7e4e32_m.jpg"},{"avatar":"http:\/\/pic3.zhimg.com\/a532ee0ee_m.jpg"},{"avatar":"http:\/\/pic4.zhimg.com\/083b51287_m.jpg"}],"share_url":"http:\/\/daily.zhihu.com\/story\/4739134","js":[],"theme":{"thumbnail":"http:\/\/pic3.zhimg.com\/0e71e90fd6be47630399d63c58beebfc.jpg","id":13,"name":"日常心理学"},"ga_prefix":"051908","type":0,"id":4739134,"css":["http:\/\/news-at.zhihu.com\/css\/news_qa.auto.css?v=4b3e3"]}
5、
5.返回顶部
0、
1、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

小程序-demo:知乎日报的更多相关文章

  1. 微信小程序之知乎日报

    上一次的<微信小程序之小豆瓣图书>制作了一个图书的查询功能,只是简单地应用到了网络请求,其他大多数小程序应有的知识.而本次的示例是知乎日报,功能点比较多,页面也比上次复杂了许多.在我编写这 ...

  2. 近期热门微信小程序demo源码下载汇总

    近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...

  3. 微信小程序DEMO初体验

    小程序虽然被炒的很热,但是绝大部分人却从未亲自体验过,在2017年的上班第一天,献上一个小程序DEMO,您可以体验! 注意:由于微信限制,只能使用扫一扫来体验下方小程序DEMO. DEMO首页截图如下 ...

  4. 微信小程序demo

    微信小程序demo github地址 去年小程序刚发布时特别火,赶潮流做了个demo.感觉小程序开发还是比较简单的,主要是官方文档写得比较好,遗憾的是很多API需要微信认证才能使用. 由于小程序包大小 ...

  5. 微信小程序demo-环球小镇

    微信小程序-环球小镇说明:实现了环球小镇(huanqiuxiaozhen.com)移动端商城客户端部分功能,包括首页,分类,购物车,帐户,品牌列表,商品详情等功能.    项目下载:http://bb ...

  6. 微信小程序必知相关知识

    微信小程序必知相关知识 1 请谈谈微信小程序主要目录和文件的作用? project.config.json 项目配置文件,用得最多的就是配置是否开启https校验: App.js 设置一些全局的基础数 ...

  7. 番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!

    大家好,我是博卡君.经过国庆节的七天假期,相信很多朋友都已经研究出自己的小程序 demo 了吧?我最近也利用休息时间关注了一下网上关于小程序开发的讨论,今天就利用这个番外篇谈谈自己对小程序的一些想法吧 ...

  8. 基于olami开放语义平台的微信小程序遥知之源码实现

    概述 实现一个智能生活信息查询的小秘书功能,支持查天气.新闻.日历.汇率.笑话.故事.百科.诗词.邮编.区号.菜谱.股票.节目预告,还支持闲聊.算24点.数学计算.单位换算.购物.搜索等功能. 使用方 ...

  9. 微信小程序-阅读小程序demo

    今天和朋友聊天说到小程序,然后看在看书,然后我们就弄了个小读书的demo,然后现在分享一下. 一.先来上图: 二.然后下面是详细的说明  首先先说下边的tabBar,项目采用json格式的数据配置,不 ...

随机推荐

  1. 洛谷P2814 家谱(gen)

    题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先. 输入输出格式 输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组 ...

  2. 【POJ3264】Balanced Lineup(RMQ)

    题意:每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛 ...

  3. UVAlive 3026 KMP 最小循环节

    KMP算法: 一:next数组:next[i]就是前面长度为i的字符串前缀和后缀相等的最大长度,也即索引为i的字符失配时的前缀函数. 二:KMP模板 /* pku3461(Oulipo), hdu17 ...

  4. OSGI是什么

    OSGI(Open Services Gateway Initiative),或者通俗点说JAVA动态模块系统,定义了一套模块应用开发的框架.OSGI容器实现方案如Knopflerfish, Equi ...

  5. weblogic线程阻塞性能调优(图解)

    转自:http://blog.csdn.net/z69183787/article/details/12647539 声明:出现这个问题有程序方面.网络方面.weblogic设置方面等等原因,此文章主 ...

  6. Bag-of-words模型、TF-IDF模型

    Bag-of-words model (BoW model) 最早出现在NLP和IR(information retrieval)领域. 该模型忽略掉文本的语法和语序, 用一组无序的单词(words) ...

  7. 【stl学习笔记】set、multiset

    set和multiset会根据特定的排序准则,自动将元素排序.两者不同处在于multiset允许元素重复而set不允许 在使用set或multiset之前,必须先加入头文件<set> se ...

  8. [经典面试题]在O(1)时间删除链表结点

    [题目] 给定链表的头指针和一个结点指针.在O(1)时间删除该结点.链表结点的定义例如以下: struct ListNode { int        value; struct ListNode*  ...

  9. asp.net mvc3的静态化实现

    静态化处理,可以大大提高客户的访问浏览速度,提高用户体验,同时也降低了服务器本身的压力.在asp.net mvc3中,可以相对容易地处理静态化问题,不用过多考虑静态网页的同步,生成等等问题.我提供这个 ...

  10. 《The Swift Programming Language》的笔记-第28页

    页 本页里的主要内容是: 1 介绍swift语言里的各类数制,或者说某一整数的不同表示形式. 1)十进制,无前缀 的序列 3)八进制,以0o开头.后边是若干0~7的序列 进制,以0x开头.后是0~9. ...