configDataAndDevice.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <script lang="ts" setup>
  2. import type { TabsPaneContext } from "element-plus";
  3. import SecondHeader from "@/views/modules/conmon/SecondHeader.vue";
  4. import { selectInstrumentResource } from "@/api/config";
  5. const activeName = ref("仪器配置");
  6. const handleClick = (tab: TabsPaneContext, event: Event) => {
  7. // console.log(tab, event);
  8. };
  9. const emits = defineEmits(["close"]);
  10. const devicesData = defineModel<any[]>("devicesData");
  11. const dataList = defineModel<any[]>("dataList");
  12. // =======================
  13. const resourceList = ref<any[]>([]);
  14. const openDrawer = () => {
  15. selectInstrumentResource({ instrumentProperty: "1" }).then((data) => {
  16. resourceList.value = data.data;
  17. });
  18. };
  19. defineExpose({
  20. openDrawer,
  21. });
  22. </script>
  23. <template>
  24. <div class="global-config">
  25. <div class="second-header">
  26. <div class="left-text">数据配置</div>
  27. <div>
  28. <svg-icon
  29. icon-class="close"
  30. @click="emits('close')"
  31. style="cursor: pointer"
  32. />
  33. </div>
  34. </div>
  35. <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
  36. <el-tab-pane label="仪器配置" name="仪器配置">
  37. <el-table :data="devicesData" style="width: 100%">
  38. <el-table-column label="序号" type="index" width="80" />
  39. <el-table-column label="执行仪器" prop="instrumentId">
  40. <template #default="scope">
  41. <el-select
  42. v-model="scope.row.instrumentId"
  43. placeholder="请选择执行仪器名称"
  44. size="large"
  45. >
  46. <el-option
  47. v-for="item in resourceList.filter(
  48. (item) => item.instrumentType === scope.row.instrumentType
  49. )"
  50. :key="item.id"
  51. :label="item.instrumentName"
  52. :value="item.id"
  53. />
  54. </el-select>
  55. </template>
  56. </el-table-column>
  57. <el-table-column label="配置名称" prop="configName" />
  58. <!-- <el-table-column label="仪器编码" prop="instrumentCode" />-->
  59. <el-table-column label="仪器类型" prop="typeLabel" />
  60. </el-table>
  61. </el-tab-pane>
  62. <el-tab-pane label="全局数据" name="全局数据">
  63. <el-table :data="dataList" style="width: 100%">
  64. <el-table-column label="序号" type="index" width="80" />
  65. <!-- <el-table-column label="数据项编码" prop="dataItemCode" />-->
  66. <el-table-column label="数据项名称" prop="dataItemName" />
  67. <!-- <el-table-column label="测试工程id" prop="engineeringId" />-->
  68. <el-table-column label="设定值" prop="setValue">
  69. <template #default="scope">
  70. <el-input v-model="scope.row.setValue" />
  71. </template>
  72. </el-table-column>
  73. </el-table>
  74. </el-tab-pane>
  75. </el-tabs>
  76. </div>
  77. </template>
  78. <style scoped lang="scss">
  79. .global-config {
  80. width: 100%;
  81. //height: 100vh;
  82. .demo-tabs {
  83. // background-color: red;
  84. :deep(.el-tabs__nav-scroll) {
  85. padding: 0 20px;
  86. }
  87. }
  88. .add {
  89. width: 12px;
  90. height: 12px;
  91. line-height: 12px;
  92. border-radius: 12px;
  93. text-align: center;
  94. background-color: #fff;
  95. color: #3b7cff;
  96. margin-right: 10px;
  97. vertical-align: middle;
  98. }
  99. }
  100. .second-header {
  101. width: 100%;
  102. height: $main-header-height;
  103. display: flex;
  104. align-items: center;
  105. justify-content: space-between;
  106. background-color: black;
  107. padding: 0 20px;
  108. border-bottom: 1px solid $hj-white-3;
  109. .left-text {
  110. height: 18px;
  111. font-weight: bold;
  112. font-size: 14px;
  113. color: white;
  114. line-height: 16px;
  115. text-align: left;
  116. }
  117. }
  118. </style>