index.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. </view>
  22. </view></view>
  23. </template>
  24. <script>
  25. import { queryUser } from "@/services/index";
  26. export default {
  27. data() {
  28. return { user: {} };
  29. },
  30. onShow() {
  31. this.getCurrentUser();
  32. },
  33. computed: {
  34. permission() {
  35. let permission = {};
  36. this.user?.Permissions.forEach((item) => {
  37. permission = {
  38. ...permission,
  39. ...item.Menus,
  40. };
  41. });
  42. return permission;
  43. },
  44. },
  45. methods: {
  46. onHandleClick(index) {
  47. switch (index) {
  48. case 0:
  49. uni.navigateTo({
  50. url: "../Project/list",
  51. });
  52. break;
  53. case 1:
  54. uni.navigateTo({
  55. url: "../Project/auth",
  56. });
  57. break;
  58. case 2:
  59. uni.navigateTo({
  60. url: "../WorkingHours/index",
  61. });
  62. break;
  63. case 3:
  64. uni.navigateTo({
  65. url: "../WorkingHours/audit",
  66. });
  67. break;
  68. }
  69. },
  70. async getCurrentUser() {
  71. let res = {};
  72. res = await queryUser();
  73. this.user = res.data;
  74. },
  75. },
  76. };
  77. </script>
  78. <style lang="less" scoped>
  79. .content {
  80. display: flex;
  81. justify-content: center;
  82. }
  83. .group {
  84. width: 90%;
  85. padding: 5%;
  86. display: flex;
  87. justify-content: center;
  88. flex-wrap: wrap;
  89. background-color: #ffffff;
  90. height: 800rpx;
  91. }
  92. .button {
  93. width: 40%;
  94. margin: 5%;
  95. height: 280rpx;
  96. font-size: 32rpx;
  97. }
  98. </style>