patrolDuration.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div class="modelBlock">
  3. <template v-if="permissionFiltering">
  4. <div class="model-title">
  5. <div class="model-title-text">巡更人员任务执行时长</div>
  6. <div class="model-title-right">
  7. <el-date-picker
  8. value-format="yyyy-MM"
  9. v-model="date"
  10. type="month"
  11. placeholder="选择年"
  12. class="saveColumn-select"
  13. @change="changeTime"
  14. :clearable="false"
  15. >
  16. </el-date-picker>
  17. </div>
  18. </div>
  19. <div class="model-content">
  20. <zz-echart
  21. :option="clientOptions"
  22. class="chart"
  23. ></zz-echart>
  24. </div>
  25. </template>
  26. <no-permission
  27. v-else
  28. tipsText="巡更人员任务执行时长"
  29. ></no-permission>
  30. </div>
  31. </template>
  32. <script>
  33. import { columnOptionsChart } from './indexOptionChart';
  34. import permissionComponent from './permissionComponent';
  35. let dataArr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  36. export default {
  37. mixins: [permissionComponent],
  38. data () {
  39. return {
  40. defaultModel: {
  41. permissUrl: '19',
  42. titleName: '安保巡更'
  43. },
  44. mixins_query: {
  45. communityId: '',
  46. date: '',
  47. },
  48. date: '',
  49. clientOptions: columnOptionsChart('(分)', [], [{ data: dataArr, name: '任务时长' }], [], 10)
  50. };
  51. },
  52. methods: {
  53. getData () {
  54. this.$http.get('/sc-community/statisticPatrolPersonnelDuration', this.mixins_query).then(({ data, msg, status }) => {
  55. if (status == 0 && !!data) {
  56. let timeDay = [],
  57. datas = [];
  58. data.map((item) => {
  59. timeDay.push(item.date);
  60. datas.push(item.data);
  61. });
  62. this.clientOptions = columnOptionsChart('(分)', timeDay, [{ data: datas, name: '任务时长' }], [], 10);
  63. }
  64. });
  65. },
  66. changeTime (v) {
  67. this.mixins_query.date = v;
  68. this.getData();
  69. }
  70. },
  71. created () {
  72. this.date = this.$moment().format('YYYY-MM');
  73. this.mixins_query.date = this.$moment().format('YYYY-MM');
  74. this.getData();
  75. }
  76. };
  77. </script>
  78. <style scoped lang="scss">
  79. @import './style.scss';
  80. .model-title {
  81. .model-title-right {
  82. .saveColumn-select {
  83. &:not(:first-child) {
  84. margin-left: rem(20);
  85. }
  86. }
  87. }
  88. }
  89. </style>