调解系统PC端服务

caselogDialog.vue 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <div>
  3. <el-dialog
  4. title="案件日志"
  5. :visible="showcaseLog"
  6. @close="cancel"
  7. center
  8. :distroy-on-close="true"
  9. >
  10. <div class="loading" v-if="flagLoading">
  11. <i class="el-icon-loading"></i>
  12. </div>
  13. <div v-else>
  14. <div class="noData" v-if="noData">暂无数据!</div>
  15. <el-timeline v-else>
  16. <el-timeline-item
  17. v-for="(activity, index) in activities"
  18. :key="index"
  19. :timestamp="(index + 1).toString()"
  20. placement="top"
  21. >
  22. <p>{{ activity.content }}</p>
  23. </el-timeline-item>
  24. </el-timeline>
  25. </div>
  26. <div slot="footer" class="dialog-footer">
  27. <el-button @click="cancel" class="endbutton1"
  28. ><span>取 消</span></el-button
  29. >
  30. </div>
  31. </el-dialog>
  32. </div>
  33. </template>
  34. <script>
  35. export default {
  36. props: ["showcaseLog", "flagLoading", "caselogDataArr"],
  37. data() {
  38. return {
  39. reverse: true,
  40. activities: [],
  41. noData: false,
  42. };
  43. },
  44. watch: {
  45. caselogDataArr: {
  46. handler(val) {
  47. if (val && val.length > 0) {
  48. this.noData = false;
  49. this.activities = val;
  50. this.activities.forEach((item) => {
  51. item.content = item.content;
  52. });
  53. } else {
  54. this.noData = true;
  55. }
  56. },
  57. },
  58. },
  59. methods: {
  60. cancel() {
  61. this.$emit("cancelcaseLog");
  62. },
  63. },
  64. };
  65. </script>
  66. <style lang="scss" scoped>
  67. ::v-deep .el-dialog__body {
  68. height: 500px !important;
  69. overflow: auto !important;
  70. }
  71. ::v-deep .el-dialog {
  72. width: 800px;
  73. background: #ffffff;
  74. border-radius: 20px;
  75. }
  76. .endbutton1 {
  77. width: 154px;
  78. height: 37px;
  79. background: #ffffff;
  80. border: 1px solid #d0d0d0;
  81. border-radius: 19px;
  82. span {
  83. width: 31px;
  84. height: 13px;
  85. font-size: 16px;
  86. font-family: Microsoft YaHei;
  87. font-weight: 400;
  88. color: #959595;
  89. }
  90. }
  91. .loading {
  92. width: 100%;
  93. height: 100%;
  94. display: flex;
  95. justify-content: center;
  96. align-items: center;
  97. .el-icon-loading {
  98. font-size: 50px;
  99. }
  100. }
  101. .noData {
  102. width: 100%;
  103. height: 400px;
  104. font-size: 30px;
  105. font-weight: 700;
  106. color: #959595;
  107. display: flex;
  108. justify-content: center;
  109. align-items: center;
  110. }
  111. </style>