riku
2025-07-29 fa9d2b5117227f263ad9aa15b71bddb3fe64ac81
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<template>
  <!-- <el-button
    type="primary"
    icon="Memo"
    class="el-button-custom p-events-auto"
    @click="dialogVisible = !dialogVisible"
  >
    设备管理
  </el-button> -->
  <CardDialog v-bind="$attrs" title="走航设备管理">
    <el-row class="device-table">
      <el-col :span="20">
        <el-table
          :data="deviceData"
          table-layout="fixed"
          size="small"
          :show-overflow-tooltip="true"
          border
          height="64vh"
          row-class-name="t-row"
          cell-class-name="t-cell"
          header-row-class-name="t-header-row"
          header-cell-class-name="t-header-cell"
        >
          <el-table-column
            type="index"
            label="序号"
            align="center"
            width="50"
          />
          <el-table-column
            prop="deviceType"
            label="设备类型"
            align="center"
            width="70"
            :formatter="deviceFormatter"
          />
          <el-table-column prop="deviceName" label="设备名称" align="center" />
          <el-table-column prop="deviceCode" label="设备编号" align="center" />
          <el-table-column
            prop="createTime"
            label="创建时间"
            align="center"
            :formatter="timeFormatter"
          />
          <el-table-column label="管理" width="70" align="center">
            <template #default="{ row }">
              <el-button
                type="primary"
                size="small"
                class="el-button-custom"
                @click="deleteDevice(row)"
                >删除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
      </el-col>
      <el-col :span="4" class="flex-col">
        <div>
          <DeviceCreate></DeviceCreate>
        </div>
      </el-col>
    </el-row>
  </CardDialog>
  <MessageBox
    v-model="msgBoxVisible"
    :on-confirm="onConfirm"
    title="删除走航设备"
    msg="确认是否删除该走航设备"
    confirmText="删除"
  ></MessageBox>
</template>
<script>
import moment from 'moment';
import { mapStores } from 'pinia';
import { useDeviceStore } from '@/stores/device';
import { useFetchData } from '@/composables/fetchData';
import { typeName } from '@/constant/device-type';
 
export default {
  setup() {
    const { loading, fetchData } = useFetchData();
    return { loading, fetchData };
  },
  props: {
    // modelValue: Boolean
  },
  // emits: ['update:modelValue'],
  data() {
    return {
      dialogVisible: false,
      msgBoxVisible: false,
      onConfirm: undefined
    };
  },
  computed: {
    ...mapStores(useDeviceStore),
    deviceData() {
      return this.deviceStore.getDevice();
    }
  },
  methods: {
    // handleChange(value) {
    //   this.$emit('update:modelValue', value);
    // },
    deleteDevice(row) {
      this.onConfirm = () => {
        this.deviceStore.deleteDevice(row.deviceCode);
      };
      this.msgBoxVisible = true;
    },
    // eslint-disable-next-line no-unused-vars
    deviceFormatter(row, col, cellValue, index) {
      return typeName(cellValue);
    },
    // eslint-disable-next-line no-unused-vars
    timeFormatter(row, col, cellValue, index) {
      return moment(cellValue).format('YYYY-MM-DD HH:mm:ss');
    }
  }
};
</script>
<style scoped>
.flex-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
}
</style>