SetPoint.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <template>
  2. <div>
  3. <ContentWrap>
  4. <div class="custom-tabs-container">
  5. <div class="tab-header">
  6. <span class="tab-title">点位设置</span>
  7. <div class="set-btn" @click="goBack">
  8. <img src="../../../assets/images/返回.png" alt="" />
  9. 返回
  10. </div>
  11. </div>
  12. <div class="tab-content">
  13. <el-radio-group v-model="tabPosition" class="mb-15px">
  14. <el-radio-button label="first">卡片视图</el-radio-button>
  15. <el-radio-button label="second">表格视图</el-radio-button>
  16. </el-radio-group>
  17. <div class="add-group-btn" @click="addPointGroup">添加分组</div>
  18. <CardView
  19. v-if="tabPosition == 'first'"
  20. :sopId="route.query.sopId"
  21. :group-added="groupAdded"
  22. />
  23. <TableView v-else :sopId="route.query.sopId" />
  24. </div>
  25. </div>
  26. </ContentWrap>
  27. </div>
  28. </template>
  29. <script setup lang="ts">
  30. import TableView from './PointView/TableView.vue'
  31. import CardView from './PointView/CardView.vue'
  32. const router = useRouter()
  33. const route = useRoute()
  34. const tabPosition = ref('first')
  35. // 定义信号
  36. const groupAdded = ref(false)
  37. const goBack=()=>{
  38. if(route.query.type=='update'){
  39. router.push({
  40. path:'/sopm/sopm/sop/UpdateSop',
  41. query:{
  42. id:route.query.sopId,
  43. type:route.query.type,
  44. }
  45. })
  46. }else {
  47. router.push({
  48. path:'/sopm/sopm/sop/UpdateSop',
  49. query:{
  50. id:route.query.sopId,
  51. type:route.query.type,
  52. }
  53. })
  54. }
  55. }
  56. const addPointGroup = () => {
  57. groupAdded.value = true // 触发信号
  58. setTimeout(() => {
  59. groupAdded.value = false // 重置信号(确保下次点击能再次触发)
  60. }, 100)
  61. }
  62. </script>
  63. <style scoped lang="scss">
  64. .custom-tabs-container {
  65. border: 1px solid #dcdfe6;
  66. border-radius: 4px;
  67. margin-top: 20px;
  68. }
  69. .tab-header {
  70. background-color: #f5f7fa;
  71. border-bottom: 1px solid #dcdfe6;
  72. padding: 12px 20px;
  73. border-radius: 4px 4px 0 0;
  74. }
  75. .tab-title {
  76. font-size: 14px;
  77. font-weight: 500;
  78. color: #303133;
  79. }
  80. .set-btn {
  81. width: 60px;
  82. height: 30px;
  83. border: 1px solid black;
  84. border-radius: 6px;
  85. text-align: center;
  86. line-height: 30px;
  87. float: right;
  88. cursor: pointer;
  89. img {
  90. width: 14px;
  91. height: 14px;
  92. }
  93. }
  94. .tab-content {
  95. padding: 20px;
  96. background-color: #fff;
  97. border-radius: 0 0 4px 4px;
  98. }
  99. .add-group-btn {
  100. width: 70px;
  101. height: 30px;
  102. border: 1px solid black;
  103. border-radius: 6px;
  104. text-align: center;
  105. line-height: 30px;
  106. float: right;
  107. cursor: pointer;
  108. }
  109. </style>