article.html 16 KB

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