article.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <!--<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />-->
  7. <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
  8. <link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
  9. <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
  10. <link rel="stylesheet" type="text/css" href="../css/article.css"/>
  11. </head>
  12. <body>
  13. <div id="app">
  14. <div class="sel-tap sel-article">
  15. <div class="p10 pt60 c-h80">
  16. <ul class="select-tit c-border-b clearfix h34 lh34">
  17. <li v-for="(tit, index) in selectArr" :key="index" class="fl mr10 c-border-r c-border-l c-border-t b-r-5500 bgc-f5f5fa c-666 cur-pit" :class="{'active': index == judgeIndex}" @click="selectTit(index)">{{tit}}</li>
  18. </ul>
  19. <div class="set-article-content plr10" id="setCon">
  20. <div class="set-search ptb20 lh30 clearfix">
  21. <div class="c-position-r fl mb0">
  22. 一级分类:<span class="list-tit set-bg cur-pit c-999" @click="judgeLevel(1)">{{levelTit1}}</span>
  23. <ul class="pull-list c-border-l c-border-r c-border-b" v-if="isShowLevel1">
  24. <li class="cur-pit c-999" v-for="(level1, index) in levelArr1" :key="index" @click="selectLi(1, level1)">{{level1.categoryname}}</li>
  25. </ul>
  26. </div>
  27. <div class="c-position-r fl mb0">
  28. 二级分类:<span class="list-tit set-bg cur-pit c-999" @click="judgeLevel(2)">{{levelTit2}}</span>
  29. <ul class="pull-list c-border-l c-border-r c-border-b" v-if="isShowLevel2">
  30. <li class="cur-pit c-999" v-for="(level2, index) in levelArr2" :key="index" @click="selectLi(2, level2)">{{level2.categoryname}}</li>
  31. </ul>
  32. </div>
  33. <div class="fl mb0">
  34. <input class="list-tit w150" type="text" placeholder="输入文字标题" v-model="articleTitle">
  35. </div>
  36. <div class="fl mb0">
  37. <span class="list-tit w80 b-r-3 c-t-center c-fff bgc-12b7f5 cur-pit btn" @click="search()">搜索</span>
  38. </div>
  39. </div>
  40. <ul class="article-list c-border">
  41. <li class="bgc-f5f5fa c-f999 clearfix">
  42. <span class="fl c-w35 c-border-r c-t-center">文章标题</span>
  43. <span class="fl c-w22 c-border-r c-t-center">分类</span>
  44. <span class="fl c-w30 c-border-r c-t-center">来源</span>
  45. <span class="fl c-w13 c-t-center">操作</span>
  46. </li>
  47. <li class="c-border-t c-f666 clearfix" v-for="(list, index) in articleList" :key="index">
  48. <p class="fl c-w35-10 plr5 c-border-r text-ellipsis">{{list.articletitle || list.attachedTitle}}</p>
  49. <p class="fl c-w22-10 c-border-r text-ellipsis">{{list.firstlevelcategoryname || list.level1TypeName ? list.firstlevelcategoryname || list.level1TypeName : ''}}<span v-if="(list.firstlevelcategoryname || list.level1TypeName) && (list.secondlevelcategoryname || list.level1TypeName)">、</span>{{list.secondlevelcategoryname || list.level2TypeName ? list.secondlevelcategoryname || list.level2TypeName : ''}}</p>
  50. <span class="fl c-w30-10 c-border-r text-ellipsis">{{list.articlesource || list.articleSource}}</span>
  51. <p class="fl c-w13 c-t-center c-12b7f5">
  52. <span class="cur-pit operate" v-if="judgeIndex == 2 || list.isauthentication == 1" @click="send(list)">发送</span>
  53. <span class="c-999" v-if="judgeIndex != 2 && list.isauthentication == 0">未认证</span>
  54. <span class="c-999" v-if="judgeIndex != 2 && list.isauthentication == 2">认证未通过</span>
  55. </p>
  56. </li>
  57. </ul>
  58. <div class="mt20 lh24 pr30 txt-center clearfix" v-show="articleList.length">
  59. <div class="fr ml10 clearfix">
  60. <span class="fl c-border w40 m0">
  61. <input class="fl w40 c-f999" v-model="editPage" />
  62. </span>
  63. <span class="fr bgc-12b7f5 c-fff c-f12 btn sure-btn" @click="setPage(editPage)">跳转</span>
  64. </div>
  65. <span class="fr btn page-btn ml10" @click="setPage(page + 2)" v-if="page == 1 && (page + 2) <= allPage">{{page + 2}}</span>
  66. <span class="fr btn page-btn ml10" @click="setPage(page + 1)" v-if="(page + 1) <= allPage">{{page + 1}}</span>
  67. <span class="fr btn page-btn ml10 btn-active">{{page}}</span>
  68. <span class="fr btn page-btn ml10" @click="setPage(page - 1)" v-if="page != 1">{{page - 1}}</span>
  69. <span class="fr btn page-btn ml10" @click="setPage(page - 2)" v-if="page > 2 && page == allPage">{{page - 2}}</span>
  70. <span class="fr">当前第{{page}}页,共{{allPage}}页,{{allRecords}}条数据</span>
  71. </div>
  72. <p class="pt60 c-t-center c-999 c-f24" v-show="!articleList.length">无数据</p>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  78. <script src="../../../js/jquery-2.2.4.js"></script>
  79. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  80. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  81. <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
  82. <script type="text/javascript" src="../../../api/jbsc-api.js" ></script>
  83. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  84. <!--<script src="../../../plugins/layer/layer.min.js"></script>-->
  85. <script type="text/javascript">
  86. var httpData=GetRequest();
  87. var loginDoctor = JSON.parse(window.localStorage.getItem('severDocInfo') || window.localStorage.getItem('docInfo')),
  88. // currentUserRole = window.localStorage.getItem('userRose'),
  89. userRole = loginDoctor && loginDoctor.userRole && loginDoctor.userRole,
  90. // currentUserRoleLevel = loginDoctor.currentUserRole.level,
  91. // roleType = Number(loginDoctor.currentUserRole.isManage) ? 2 : 1
  92. currentUserRoleLevel = 4,
  93. roleType = 1;
  94. var currentDoc = _.find((userRole||[]),function(o) {
  95. return o.level =="4";
  96. }) || {};
  97. var currentUserRole=currentDoc.code || currentDoc[0] && currentDoc[0].code
  98. new Vue({
  99. el: "#app",
  100. data:{
  101. selectArr: ['文章库', '我的文章', '已推送文章'],
  102. judgeIndex: 0,
  103. levelArr1: [],
  104. levelTit1: '请选择',
  105. isShowLevel1: false,
  106. levelArr2: [],
  107. levelTit2: '请选择',
  108. isShowLevel2: false,
  109. selectObj: {
  110. firstLevelCategoryId: null, // 文章一级分类
  111. secondLevelCategoryId: null, // 文章二级分类
  112. insertTimeStart: null, // 新增文章开始时间
  113. insertTimeEnd: null, // 新增文章结束时间
  114. articlelevel: null, // 文章级别
  115. articleTitle: null, // 文章标题关键字
  116. currentUserRole: currentUserRole, // 当前登录的角色
  117. currentUserRoleLevel: currentUserRoleLevel, // 当前登录的角色级别
  118. isAuthentication: 1, // 是否认证
  119. isMyArticle: false, // 是否过滤我的文章(默认)
  120. iDisplayStart: 0, // 当前页
  121. iDisplayLength: 10, // pagesize
  122. sEcho: 1, // 插件自带
  123. roleType: roleType, // 1、普通医生,2、管理员
  124. patient: httpData['code'] // 居民CODE
  125. },
  126. pushObj: {
  127. firstLevelCategoryId: null, // 文章一级分类
  128. secondLevelCategoryId: null, // 文章二级分类
  129. sendTimeStart: null, // 发送开始时间
  130. sendTimeEnd: null, // 发送结束时间
  131. articleTitle: null, // 文章标题关键字
  132. currentRoleCode: currentUserRole, // 当前登录的角色
  133. currentRoleLevel: currentUserRoleLevel, // 当前登录的角色级别
  134. isMyArticle: null, // 是否过滤我的文章(默认)
  135. iDisplayStart: 0, // 当前页
  136. iDisplayLength: 10, // pagesize
  137. sendType: roleType // 1、普通医生,2、管理员
  138. },
  139. firstLevelCategoryId: null, // 选择文章一级分类
  140. secondLevelCategoryId: null, // 选择文章二级分类
  141. articleTitle: null, // 输入文章标题关键字
  142. articleList: [],
  143. editPage: null,
  144. page: 1,
  145. allPage: null,
  146. allRecords: null
  147. },
  148. mounted: function(){
  149. var vm = this
  150. this.getJkEduArticleLevel(1)
  151. this.getJkEduArticleLevel(2)
  152. this.queryArticlePcList(vm.selectObj)
  153. },
  154. methods: {
  155. getJkEduArticleLevel:function(num, firstlevelId) {
  156. var vm=this;
  157. var data={
  158. categoryLevel: num,
  159. firstlevelId: firstlevelId || null,
  160. secondLevelId: null
  161. }
  162. jbscAPI.getCategoryList(num, firstlevelId).then(function(res){
  163. if (res.status == 200) {
  164. if (num == 1) {
  165. vm.levelArr1 = res.data
  166. console.log(vm.levelArr1)
  167. } else {
  168. vm.levelArr2 = res.data
  169. }
  170. }
  171. })
  172. },
  173. queryArticlePcList:function(obj) {
  174. var vm=this;
  175. jbscAPI.queryArticlePcList(obj).then(function(res){
  176. if (res.status === 200) {
  177. vm.articleList = res.data.aaData
  178. vm.allRecords = res.data.iTotalRecords
  179. vm.allPage = Math.ceil(res.data.iTotalRecords / 10)
  180. }
  181. })
  182. },
  183. pushArticleList:function(obj) {
  184. var vm=this;
  185. var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
  186. jbscAPI.pushArticleList(obj).then(function(res){
  187. top.layer.close(loadding);
  188. if (res.status === 200) {
  189. vm.articleList = res.data.aaData
  190. vm.allRecords = res.data.iTotalRecords
  191. vm.allPage = Math.ceil(res.data.iTotalRecords / 10)
  192. }
  193. })
  194. },
  195. selectTit:function(index) {
  196. this.judgeIndex = index
  197. // 数据初始化
  198. document.getElementById('setCon').scrollTop = 0
  199. this.page = 1
  200. this.selectObj.iDisplayStart = 0
  201. this.firstLevelCategoryId = null
  202. this.secondLevelCategoryId = null
  203. this.articleTitle = null
  204. this.levelTit1 = '请选择'
  205. this.levelTit2 = '请选择'
  206. if (index === 0) {
  207. this.selectObj.isAuthentication = 1
  208. this.selectObj.isMyArticle = false
  209. } else if (index === 1) {
  210. this.selectObj.isAuthentication = null
  211. this.selectObj.isMyArticle = true
  212. }
  213. this.search()
  214. },
  215. judgeLevel:function(num) {
  216. if (num === 1) {
  217. this.isShowLevel1 = !this.isShowLevel1
  218. } else {
  219. this.isShowLevel2 = !this.isShowLevel2
  220. }
  221. },
  222. selectLi:function(num, data) {
  223. if (num === 1) {
  224. this.isShowLevel1 = false
  225. this.levelTit1 = data.categoryname
  226. this.firstLevelCategoryId = data.categoryid
  227. this.levelTit2 = '请选择'
  228. this.secondLevelCategoryId = null
  229. this.getJkEduArticleLevel(2, data.categoryid)
  230. } else {
  231. this.isShowLevel2 = false
  232. this.levelTit2 = data.categoryname
  233. this.secondLevelCategoryId = data.categoryid
  234. }
  235. },
  236. search:function() {
  237. let vm = this
  238. if (this.judgeIndex === 2) {
  239. this.pushObj.firstLevelCategoryId = this.firstLevelCategoryId
  240. this.pushObj.secondLevelCategoryId = this.secondLevelCategoryId
  241. this.pushObj.articleTitle = this.articleTitle
  242. this.pushArticleList(vm.pushObj)
  243. } else {
  244. this.selectObj.firstLevelCategoryId = this.firstLevelCategoryId
  245. this.selectObj.secondLevelCategoryId = this.secondLevelCategoryId
  246. this.selectObj.articleTitle = this.articleTitle
  247. this.queryArticlePcList(vm.selectObj)
  248. }
  249. },
  250. setPage: function(key) {
  251. let vm = this
  252. if (+key && +key > 0 && +key <= this.allPage) {
  253. this.page = +key
  254. if (this.judgeIndex === 2) {
  255. this.pushObj.iDisplayStart = (this.page - 1) * 10
  256. this.pushArticleList(vm.pushObj)
  257. } else {
  258. this.selectObj.iDisplayStart = (this.page - 1) * 10
  259. this.queryArticlePcList(vm.selectObj)
  260. }
  261. } else {
  262. console.log('无效的页数跳转!')
  263. }
  264. },
  265. send:function(data) {
  266. let sendData = {
  267. articleId: data.articleid || data.articleId,
  268. patient: httpData['code'],
  269. leaveWords: '',
  270. currentUserRole: currentUserRole,
  271. currentUserRoleLevel: currentUserRoleLevel,
  272. sendType: roleType
  273. }
  274. this.doctorSendArticleToPatients(sendData)
  275. },
  276. doctorSendArticleToPatients:function(obj) {
  277. var vm=this
  278. var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
  279. jbscAPI.doctorSendArticleToPatients(obj).then(function(res){
  280. top.layer.close(loadding);
  281. top.layer.msg(res.message, {icon: 1});
  282. })
  283. }
  284. }
  285. })
  286. </script>
  287. </body>
  288. </html>