article.html 17 KB

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