index.vue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div class="home-page">
  3. <div class="top-nav-box">
  4. <div class="name">{{boardInfo&&boardInfo.BiDashboardName}}</div>
  5. <div class="btns">
  6. <el-button type="text" v-if="boardInfo&&permissionBtn.isShowBtn('homePagePermission','home_boarddetail')" @click="handleGoDetail">看板详情</el-button>
  7. <el-button type="text" @click="showSet=true" v-permission="permissionBtn.homePagePermission.home_setbiboard">设置看板</el-button>
  8. </div>
  9. </div>
  10. <!-- 看板内容模块 -->
  11. <BIBoardContent v-model="boardDataList"/>
  12. <!-- 设置看板 -->
  13. <SelectBoard v-model="showSet" :boardId="boardId" @change="getBoardData"/>
  14. </div>
  15. </template>
  16. <script>
  17. import BIBoardContent from '@/views/BI_manage/components/BoardContent.vue'
  18. import SelectBoard from './components/SelectBoard.vue'
  19. import apiBiBoard from '@/api/modules/BIBoard.js'
  20. export default {
  21. components:{BIBoardContent,SelectBoard},
  22. data() {
  23. return {
  24. homeBoardInfo:null,
  25. boardId:'',
  26. boardInfo:null,
  27. boardDataList:[],
  28. showSet:false
  29. }
  30. },
  31. created() {
  32. this.getBoardData()
  33. },
  34. methods: {
  35. handleGoDetail(){
  36. this.$router.push({
  37. path:'/BIBoard',
  38. query:{
  39. id:this.boardId,
  40. type:this.homeBoardInfo.FromType
  41. }
  42. })
  43. },
  44. async getBoardInfo(){
  45. const res=await apiBiBoard.boardDetail({ DashboardId: this.boardId })
  46. if(res.Ret===200){
  47. this.boardInfo = res.Data
  48. this.boardDataList = res.Data.List || []
  49. }
  50. },
  51. async getBoardData(){
  52. const res=await apiBiBoard.getHomePageBoard()
  53. if(res.Ret===200){
  54. this.homeBoardInfo=res.Data
  55. this.boardId=res.Data.BiDashboardId
  56. this.getBoardInfo()
  57. }
  58. }
  59. },
  60. }
  61. </script>
  62. <style lang="scss" scoped>
  63. .home-page{
  64. $border-color: #c8cdd9;
  65. background-color: #fff;
  66. border: 1px solid $border-color;
  67. .top-nav-box {
  68. padding: 14px 20px;
  69. border-bottom: 1px solid $border-color;
  70. display: flex;
  71. justify-content: space-between;
  72. .name{
  73. flex: 1;
  74. }
  75. }
  76. }
  77. </style>