operates.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="containerBox">
  3. <div
  4. v-for="(item, index) in stepComponents"
  5. :key="index"
  6. :class="selectIndex == index ? 'operator active' : 'operator'"
  7. @click="setIndex(index)"
  8. >
  9. <div class="operatorText">{{ item.compentName }}</div>
  10. <div class="operatorIcon">
  11. <svg-icon :icon-class="item.compentType" size="45" />
  12. </div>
  13. </div>
  14. <ReportBreak ref="reportBreakRef" />
  15. <ReportWork ref="reportWorkRef" />
  16. <ReportProblem ref="reportProblemRef" />
  17. </div>
  18. </template>
  19. <script lang="ts" setup>
  20. import ReportBreak from "@/views/pro-operation/report-break/index.vue"; // ================ 报故
  21. import ReportWork from "@/views/pro-operation/report-work/index.vue";
  22. import ReportProblem from "@/views/pro-operation/report-problem/index.vue";
  23. // ================ 报故
  24. const reportBreakRef = ref<InstanceType<typeof ReportBreak>>();
  25. // ================ 报工
  26. const reportWorkRef = ref<InstanceType<typeof ReportWork>>();
  27. const reportProblemRef = ref<InstanceType<typeof ReportProblem>>();
  28. const router = useRouter();
  29. const selectIndex = ref(-1);
  30. onActivated(() => {
  31. selectIndex.value = -1
  32. })
  33. const setIndex = (index: number) => {
  34. selectIndex.value = index;
  35. switch (stepComponents.value[index].compentType) {
  36. case "baogu":
  37. reportBreakRef.value?.openReportBreakDrawer();
  38. break;
  39. case "jiaoliao":
  40. reportProblemRef.value?.openReportProblemDrawer();
  41. break;
  42. case "gongweishangliao":
  43. router.push({ name: "station-up-material" });
  44. break;
  45. case "liuzhuan":
  46. router.push({ name: "material-flow" });
  47. break;
  48. case "tuzhi":
  49. router.push({ name: "drawing-list" });
  50. break;
  51. case "weiwai":
  52. router.push({ name: "appoint-out" });
  53. break;
  54. case "baogong":
  55. reportWorkRef.value?.openReportWorkDrawer();
  56. break;
  57. case "check":
  58. router.push({ name: "inspectCommon" });
  59. break;
  60. case "jianyan":
  61. router.push({ name: "inspect" });
  62. break;
  63. case "bianhao":
  64. router.push({ name: "write-number" });
  65. break;
  66. default:
  67. break;
  68. }
  69. };
  70. const stepComponents = ref([
  71. // {
  72. // compentName: "叫料",
  73. // compentType: "jiaoliao",
  74. // },
  75. // {
  76. // compentName: "物料流转",
  77. // compentType: "liuzhuan",
  78. // },
  79. {
  80. compentName: "检验",
  81. compentType: "jianyan",
  82. },
  83. {
  84. compentName: "自检/互检",
  85. compentType: "check",
  86. },
  87. {
  88. compentName: "报工",
  89. compentType: "baogong",
  90. },
  91. {
  92. compentName: "图纸",
  93. compentType: "tuzhi",
  94. },
  95. // {
  96. // compentName: "委外",
  97. // compentType: "weiwai",
  98. // },
  99. {
  100. compentName: "报故",
  101. compentType: "baogu",
  102. },
  103. {
  104. compentName: "问题反馈",
  105. compentType: "jiaoliao",
  106. },
  107. ]);
  108. </script>
  109. <style lang="scss" scoped>
  110. .containerBox {
  111. width: 100%;
  112. font-weight: $Medium;
  113. .operator {
  114. width: 100%;
  115. height: 88px;
  116. border-radius: 16px;
  117. background-color: white;
  118. margin-bottom: 20px;
  119. display: flex;
  120. padding: 20px;
  121. justify-content: space-between;
  122. align-items: center;
  123. .operatorText {
  124. font-size: $f24;
  125. }
  126. .operatorIcon {
  127. font-weight: 800;
  128. }
  129. }
  130. }
  131. .active {
  132. background-color: #64bb5c !important;
  133. color: white;
  134. }
  135. </style>