article.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  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="../../../plugins/layer/layer.min.js"></script>-->
  84. <script type="text/javascript">
  85. var httpData=GetRequest();
  86. var loginDoctor = JSON.parse(window.localStorage.getItem('severDocInfo')),
  87. // currentUserRole = window.localStorage.getItem('userRose'),
  88. currentUserRole = loginDoctor.userRole[0].code,
  89. // currentUserRoleLevel = loginDoctor.currentUserRole.level,
  90. // roleType = Number(loginDoctor.currentUserRole.isManage) ? 2 : 1
  91. currentUserRoleLevel = 4,
  92. roleType = 1
  93. new Vue({
  94. el: "#app",
  95. data:{
  96. selectArr: ['文章库', '我的文章', '已推送文章'],
  97. judgeIndex: 0,
  98. levelArr1: [],
  99. levelTit1: '请选择',
  100. isShowLevel1: false,
  101. levelArr2: [],
  102. levelTit2: '请选择',
  103. isShowLevel2: false,
  104. selectObj: {
  105. firstLevelCategoryId: null, // 文章一级分类
  106. secondLevelCategoryId: null, // 文章二级分类
  107. insertTimeStart: null, // 新增文章开始时间
  108. insertTimeEnd: null, // 新增文章结束时间
  109. articlelevel: null, // 文章级别
  110. articleTitle: null, // 文章标题关键字
  111. currentUserRole: currentUserRole, // 当前登录的角色
  112. currentUserRoleLevel: currentUserRoleLevel, // 当前登录的角色级别
  113. isAuthentication: 1, // 是否认证
  114. isMyArticle: false, // 是否过滤我的文章(默认)
  115. iDisplayStart: 0, // 当前页
  116. iDisplayLength: 10, // pagesize
  117. sEcho: 1, // 插件自带
  118. roleType: roleType, // 1、普通医生,2、管理员
  119. patient: httpData['code'] // 居民CODE
  120. },
  121. pushObj: {
  122. firstLevelCategoryId: null, // 文章一级分类
  123. secondLevelCategoryId: null, // 文章二级分类
  124. sendTimeStart: null, // 发送开始时间
  125. sendTimeEnd: null, // 发送结束时间
  126. articleTitle: null, // 文章标题关键字
  127. currentRoleCode: currentUserRole, // 当前登录的角色
  128. currentRoleLevel: currentUserRoleLevel, // 当前登录的角色级别
  129. isMyArticle: null, // 是否过滤我的文章(默认)
  130. iDisplayStart: 0, // 当前页
  131. iDisplayLength: 10, // pagesize
  132. sendType: roleType // 1、普通医生,2、管理员
  133. },
  134. firstLevelCategoryId: null, // 选择文章一级分类
  135. secondLevelCategoryId: null, // 选择文章二级分类
  136. articleTitle: null, // 输入文章标题关键字
  137. articleList: [],
  138. editPage: null,
  139. page: 1,
  140. allPage: null,
  141. allRecords: null
  142. },
  143. mounted: function(){
  144. var vm = this
  145. this.getJkEduArticleLevel(1)
  146. this.getJkEduArticleLevel(2)
  147. this.queryArticlePcList(vm.selectObj)
  148. },
  149. methods: {
  150. getJkEduArticleLevel:function(num, firstlevelId) {
  151. var vm=this;
  152. var data={
  153. categoryLevel: num,
  154. firstlevelId: firstlevelId || null,
  155. secondLevelId: null
  156. }
  157. jbscAPI.getCategoryList(num, firstlevelId).then(function(res){
  158. if (res.status == 200) {
  159. if (num == 1) {
  160. vm.levelArr1 = res.data
  161. console.log(vm.levelArr1)
  162. } else {
  163. vm.levelArr2 = res.data
  164. }
  165. }
  166. })
  167. },
  168. queryArticlePcList:function(obj) {
  169. var vm=this;
  170. jbscAPI.queryArticlePcList(obj).then(function(res){
  171. if (res.status === 200) {
  172. vm.articleList = res.data.aaData
  173. vm.allRecords = res.data.iTotalRecords
  174. vm.allPage = Math.ceil(res.data.iTotalRecords / 10)
  175. }
  176. })
  177. },
  178. pushArticleList:function(obj) {
  179. var vm=this;
  180. var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
  181. jbscAPI.pushArticleList(obj).then(function(res){
  182. top.layer.close(loadding);
  183. if (res.status === 200) {
  184. vm.articleList = res.data.aaData
  185. vm.allRecords = res.data.iTotalRecords
  186. vm.allPage = Math.ceil(res.data.iTotalRecords / 10)
  187. }
  188. })
  189. },
  190. selectTit:function(index) {
  191. this.judgeIndex = index
  192. // 数据初始化
  193. document.getElementById('setCon').scrollTop = 0
  194. this.page = 1
  195. this.selectObj.iDisplayStart = 0
  196. this.firstLevelCategoryId = null
  197. this.secondLevelCategoryId = null
  198. this.articleTitle = null
  199. this.levelTit1 = '请选择'
  200. this.levelTit2 = '请选择'
  201. if (index === 0) {
  202. this.selectObj.isAuthentication = 1
  203. this.selectObj.isMyArticle = false
  204. } else if (index === 1) {
  205. this.selectObj.isAuthentication = null
  206. this.selectObj.isMyArticle = true
  207. }
  208. this.search()
  209. },
  210. judgeLevel:function(num) {
  211. if (num === 1) {
  212. this.isShowLevel1 = !this.isShowLevel1
  213. } else {
  214. this.isShowLevel2 = !this.isShowLevel2
  215. }
  216. },
  217. selectLi:function(num, data) {
  218. if (num === 1) {
  219. this.isShowLevel1 = false
  220. this.levelTit1 = data.categoryname
  221. this.firstLevelCategoryId = data.categoryid
  222. this.levelTit2 = '请选择'
  223. this.secondLevelCategoryId = null
  224. this.getJkEduArticleLevel(2, data.categoryid)
  225. } else {
  226. this.isShowLevel2 = false
  227. this.levelTit2 = data.categoryname
  228. this.secondLevelCategoryId = data.categoryid
  229. }
  230. },
  231. search:function() {
  232. let vm = this
  233. if (this.judgeIndex === 2) {
  234. this.pushObj.firstLevelCategoryId = this.firstLevelCategoryId
  235. this.pushObj.secondLevelCategoryId = this.secondLevelCategoryId
  236. this.pushObj.articleTitle = this.articleTitle
  237. this.pushArticleList(vm.pushObj)
  238. } else {
  239. this.selectObj.firstLevelCategoryId = this.firstLevelCategoryId
  240. this.selectObj.secondLevelCategoryId = this.secondLevelCategoryId
  241. this.selectObj.articleTitle = this.articleTitle
  242. this.queryArticlePcList(vm.selectObj)
  243. }
  244. },
  245. setPage: function(key) {
  246. let vm = this
  247. if (+key && +key > 0 && +key <= this.allPage) {
  248. this.page = +key
  249. if (this.judgeIndex === 2) {
  250. this.pushObj.iDisplayStart = (this.page - 1) * 10
  251. this.pushArticleList(vm.pushObj)
  252. } else {
  253. this.selectObj.iDisplayStart = (this.page - 1) * 10
  254. this.queryArticlePcList(vm.selectObj)
  255. }
  256. } else {
  257. console.log('无效的页数跳转!')
  258. }
  259. },
  260. send:function(data) {
  261. let sendData = {
  262. articleId: data.articleid || data.articleId,
  263. patient: httpData['code'],
  264. leaveWords: '',
  265. currentUserRole: currentUserRole,
  266. currentUserRoleLevel: currentUserRoleLevel,
  267. sendType: roleType
  268. }
  269. this.doctorSendArticleToPatients(sendData)
  270. },
  271. doctorSendArticleToPatients:function(obj) {
  272. var vm=this
  273. var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
  274. jbscAPI.doctorSendArticleToPatients(obj).then(function(res){
  275. top.layer.close(loadding);
  276. top.layer.msg(res.message, {icon: 1});
  277. })
  278. }
  279. }
  280. })
  281. </script>
  282. </body>
  283. </html>