index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <view class="page">
  3. <view class="content">
  4. <view class="group">
  5. <button class="button" v-if="true" @click="onHandleClick(0)">
  6. <uni-icons type="list" size="35" />
  7. <view>项目列表</view>
  8. </button>
  9. <button class="button" v-if="true" @click="onHandleClick(1)">
  10. <uni-icons type="checkmarkempty" size="35" />
  11. <view>项目审核</view>
  12. </button>
  13. <button class="button" v-if="true" @click="onHandleClick(2)">
  14. <uni-icons type="calendar" size="35" />
  15. <view>工时上报</view>
  16. </button>
  17. <button class="button" v-if="true" @click="onHandleClick(3)">
  18. <uni-icons type="auth" size="35" />
  19. <view>工时审批</view>
  20. </button>
  21. <button class="button" v-if="true" @click="onHandleClick(4)">
  22. <uni-icons type="calendar" size="35" />
  23. <view>项目日志</view>
  24. </button>
  25. <view class="button empty"></view>
  26. </view> </view
  27. ></view>
  28. </template>
  29. <script>
  30. import { queryUser } from "@/services/index";
  31. export default {
  32. data() {
  33. return { user: {} };
  34. },
  35. onShow() {
  36. this.getCurrentUser();
  37. },
  38. computed: {
  39. permission() {
  40. let permission = {};
  41. this.user?.Permissions.forEach((item) => {
  42. permission = {
  43. ...permission,
  44. ...item.Menus,
  45. };
  46. });
  47. return permission;
  48. },
  49. },
  50. methods: {
  51. onHandleClick(index) {
  52. switch (index) {
  53. case 0:
  54. uni.navigateTo({
  55. url: "../Project/list",
  56. });
  57. break;
  58. case 1:
  59. uni.navigateTo({
  60. url: "../Project/list?auth=true",
  61. });
  62. break;
  63. case 2:
  64. uni.navigateTo({
  65. url: "../WorkingHours/index",
  66. });
  67. break;
  68. case 3:
  69. uni.navigateTo({
  70. url: "../WorkingHours/audit",
  71. });
  72. break;
  73. case 4:
  74. uni.navigateTo({
  75. url: "../daily/daily",
  76. });
  77. break;
  78. }
  79. },
  80. async getCurrentUser() {
  81. let res = {};
  82. res = await queryUser();
  83. this.user = res.data;
  84. },
  85. },
  86. };
  87. </script>
  88. <style lang="less" scoped>
  89. .content {
  90. display: flex;
  91. justify-content: center;
  92. }
  93. .group {
  94. width: 90%;
  95. padding: 5%;
  96. display: flex;
  97. justify-content: center;
  98. flex-wrap: wrap;
  99. background-color: #ffffff;
  100. height: 800rpx;
  101. }
  102. .button {
  103. width: 40%;
  104. margin: 5%;
  105. height: 280rpx;
  106. font-size: 32rpx;
  107. &.empty {
  108. visibility: hidden;
  109. height: 0px;
  110. }
  111. }
  112. </style>