householdGender.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div class="modelBlock">
  3. <div class="model-title">
  4. <div class="model-title-text">住户性别占比</div>
  5. </div>
  6. <div class="model-content">
  7. <zz-echart
  8. :option="clientOptions"
  9. class="chart"
  10. ></zz-echart>
  11. <div class="totals">
  12. <span style="color:#FFFFFF">{{ total }}</span>
  13. <span
  14. class="numbers"
  15. style="color:#FFFFFF"
  16. >总人数</span>
  17. </div>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import { ringType } from './indexOptionChart';
  23. export default {
  24. data () {
  25. return {
  26. mixins_query: {
  27. communityId: ''
  28. },
  29. total: 0,
  30. clientOptions: ringType(
  31. [],
  32. [
  33. { value: 0, name: '男' },
  34. { value: 0, name: '女' }
  35. ],
  36. {},
  37. { type: '%', total: 0 }
  38. )
  39. };
  40. },
  41. methods: {
  42. getData () {
  43. this.$http.get('/sc-community/statisticUserGender', this.mixins_query).then(({ data, msg, status }) => {
  44. if (status == 0 && !!data.datas) {
  45. this.clientOptions = ringType([], this.eachartObj(data), {}, { type: '%', total: data.total });
  46. } else {
  47. this.clientOptions = ringType(
  48. [],
  49. [
  50. { value: 0, name: '男' },
  51. { value: 0, name: '女' }
  52. ],
  53. {},
  54. { type: '%', total: 0 }
  55. );
  56. }
  57. });
  58. },
  59. eachartObj (data) {
  60. this.total = data.total;
  61. let typeName = {
  62. 1: '男',
  63. 2: '女'
  64. };
  65. let newData = [];
  66. for (let a in data.datas) {
  67. newData.push({
  68. value: data.datas[a],
  69. name: typeName[a]
  70. });
  71. }
  72. return newData;
  73. }
  74. },
  75. created () {
  76. this.getData();
  77. }
  78. };
  79. </script>
  80. <style lang="scss" scoped>
  81. @import '../style.scss';
  82. </style>