inl-ui 0.0.74 → 0.0.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +884 -345
- package/dist/index.js.map +1 -1
- package/dist/src/pageComponent/views/pss/components/NewOrder/SelectDevice.d.ts +53 -0
- package/dist/src/pageComponent/views/pss/components/NewOrder/SelectRelevance.d.ts +35 -0
- package/dist/src/pageComponent/views/pss/utils/index.d.ts +1 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/api/pss.ts +7 -0
- package/src/pageComponent/views/pss/assets/less/NewOrder.less +18 -3
- package/src/pageComponent/views/pss/assets/less/index.less +9 -0
- package/src/pageComponent/views/pss/components/Info.tsx +171 -37
- package/src/pageComponent/views/pss/components/NewOrder/SelectDevice.tsx +408 -0
- package/src/pageComponent/views/pss/components/NewOrder/SelectRelevance.tsx +161 -0
- package/src/pageComponent/views/pss/components/{NewOrder.tsx → NewOrder/index.tsx} +148 -240
- package/src/pageComponent/views/pss/components/table.tsx +12 -0
- package/src/pageComponent/views/pss/utils/index.ts +13 -0
- /package/dist/src/pageComponent/views/pss/components/{NewOrder.d.ts → NewOrder/index.d.ts} +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { defineComponent, ref, watch, reactive } from "vue";
|
|
2
|
+
|
|
3
|
+
import { cloneDeep } from "lodash";
|
|
4
|
+
|
|
5
|
+
const columns = [
|
|
6
|
+
{
|
|
7
|
+
dataIndex: "name",
|
|
8
|
+
title: "名称",
|
|
9
|
+
ellipsis: true,
|
|
10
|
+
},
|
|
11
|
+
// {
|
|
12
|
+
// dataIndex: "location",
|
|
13
|
+
// title: "设备位置",
|
|
14
|
+
// ellipsis: true,
|
|
15
|
+
// },
|
|
16
|
+
{
|
|
17
|
+
key: "loops",
|
|
18
|
+
title: "控制回路",
|
|
19
|
+
ellipsis: true,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
dataIndex: "relevanceType",
|
|
23
|
+
title: "关联关系",
|
|
24
|
+
width: 100,
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
export default defineComponent({
|
|
29
|
+
props: {
|
|
30
|
+
showRelevance: {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: false,
|
|
33
|
+
},
|
|
34
|
+
selectedRelevanceList: {
|
|
35
|
+
type: Array,
|
|
36
|
+
default: () => [],
|
|
37
|
+
},
|
|
38
|
+
currentRow: {
|
|
39
|
+
type: Object,
|
|
40
|
+
default: () => ({}),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
emits: ["update:showRelevance", "toUpdate"],
|
|
45
|
+
|
|
46
|
+
setup(props, context) {
|
|
47
|
+
const relevanceList = ref<any>([]);
|
|
48
|
+
|
|
49
|
+
watch(
|
|
50
|
+
() => props.showRelevance,
|
|
51
|
+
(nval) => {
|
|
52
|
+
if (nval) {
|
|
53
|
+
getRelevanceList();
|
|
54
|
+
|
|
55
|
+
selectedRow.selectedRows = props.selectedRelevanceList;
|
|
56
|
+
selectedRow.selectedRowKeys = props.selectedRelevanceList.map(
|
|
57
|
+
(device: any) => device.id
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const getRelevanceList = () => {
|
|
64
|
+
const { upstreamDevices, downstreamDevices } = props.currentRow;
|
|
65
|
+
const upList = upstreamDevices.map((up) => {
|
|
66
|
+
up.relevanceType = "上游";
|
|
67
|
+
return up;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const downList = downstreamDevices.map((down) => {
|
|
71
|
+
down.relevanceType = "下游";
|
|
72
|
+
return down;
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
relevanceList.value = [...upList, ...downList];
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const ok = async () => {
|
|
79
|
+
context.emit("toUpdate", selectedRow.selectedRows);
|
|
80
|
+
cancelModal();
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const cancelModal = () => {
|
|
84
|
+
context.emit("update:showRelevance", false);
|
|
85
|
+
|
|
86
|
+
relevanceList.value = [];
|
|
87
|
+
|
|
88
|
+
selectedRow.selectedRowKeys = [];
|
|
89
|
+
selectedRow.selectedRows = [];
|
|
90
|
+
|
|
91
|
+
relevanceList.value = [];
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const selectedRow: any = reactive({
|
|
95
|
+
selectedRowKeys: [],
|
|
96
|
+
selectedRows: [],
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const onSelect = (selectedRowKeys: any[], selectedRows: any) => {
|
|
100
|
+
// console.log(selectedRowKeys, selectedRows);
|
|
101
|
+
selectedRow.selectedRowKeys = selectedRowKeys;
|
|
102
|
+
selectedRow.selectedRows = selectedRows;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
return () => (
|
|
106
|
+
<div class="SelectRelevance">
|
|
107
|
+
<a-modal
|
|
108
|
+
v-model={[props.showRelevance, "visible"]}
|
|
109
|
+
title="添加关联设备"
|
|
110
|
+
width="1000px"
|
|
111
|
+
centered
|
|
112
|
+
wrapClassName="SelectRelevanceModal"
|
|
113
|
+
onCancel={cancelModal}
|
|
114
|
+
v-slots={{
|
|
115
|
+
footer: () => (
|
|
116
|
+
<div class="modal_footer">
|
|
117
|
+
<a-button onClick={cancelModal}>取消</a-button>
|
|
118
|
+
<a-button type="primary" onClick={ok}>
|
|
119
|
+
确定
|
|
120
|
+
</a-button>
|
|
121
|
+
</div>
|
|
122
|
+
),
|
|
123
|
+
}}
|
|
124
|
+
>
|
|
125
|
+
<a-table
|
|
126
|
+
pagination={false}
|
|
127
|
+
columns={columns}
|
|
128
|
+
dataSource={relevanceList.value}
|
|
129
|
+
// class="cus-table"
|
|
130
|
+
rowKey="id"
|
|
131
|
+
rowSelection={{
|
|
132
|
+
onChange: onSelect,
|
|
133
|
+
selectedRowKeys: selectedRow.selectedRowKeys,
|
|
134
|
+
type: "checkbox",
|
|
135
|
+
// getCheckboxProps: (record: any) => {
|
|
136
|
+
// return {
|
|
137
|
+
// disabled: props.selectedRelevanceList
|
|
138
|
+
// .map((relevance: any) => {
|
|
139
|
+
// return relevance.id;
|
|
140
|
+
// })
|
|
141
|
+
// .includes(record.id),
|
|
142
|
+
// name: record.name,
|
|
143
|
+
// };
|
|
144
|
+
// },
|
|
145
|
+
}}
|
|
146
|
+
v-slots={{
|
|
147
|
+
bodyCell: ({ column, record, index }: any) => {
|
|
148
|
+
// console.log(text, column, record, index);
|
|
149
|
+
|
|
150
|
+
// 控制回路
|
|
151
|
+
if (column.key === "loops") {
|
|
152
|
+
return record.loops.join(";");
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
}}
|
|
156
|
+
></a-table>
|
|
157
|
+
</a-modal>
|
|
158
|
+
</div>
|
|
159
|
+
);
|
|
160
|
+
},
|
|
161
|
+
});
|
|
@@ -11,16 +11,16 @@ import {
|
|
|
11
11
|
Col,
|
|
12
12
|
message,
|
|
13
13
|
} from "ant-design-vue";
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
MinusSquareOutlined,
|
|
17
|
-
SearchOutlined,
|
|
18
|
-
} from "@ant-design/icons-vue";
|
|
19
|
-
import useTableList from "@/pageComponent/hooks/useTableList";
|
|
14
|
+
import { PlusOutlined, MinusSquareOutlined } from "@ant-design/icons-vue";
|
|
15
|
+
|
|
20
16
|
import { cloneDeep } from "lodash";
|
|
21
17
|
|
|
22
18
|
import dayjs, { Dayjs } from "dayjs";
|
|
23
19
|
|
|
20
|
+
import SelectDevice from "./SelectDevice";
|
|
21
|
+
|
|
22
|
+
import { getStatus } from "../../utils";
|
|
23
|
+
|
|
24
24
|
import pssApi from "@/api/pss";
|
|
25
25
|
|
|
26
26
|
const Format = "YYYY-MM-DD HH:mm";
|
|
@@ -101,11 +101,22 @@ export default defineComponent({
|
|
|
101
101
|
],
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
+
watch(
|
|
105
|
+
() => props.showCreate,
|
|
106
|
+
(val) => {
|
|
107
|
+
if (val) {
|
|
108
|
+
formState.value.stopTime = dayjs().format(Format);
|
|
109
|
+
formState.value.supplyTime = dayjs().format(Format);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
|
|
104
114
|
const formRef = ref();
|
|
105
115
|
const formState = ref({
|
|
106
116
|
bus: 0,
|
|
107
117
|
attempt: "1", // 1需要 0不需要
|
|
108
118
|
deviceList: [] as any, // 设备列表
|
|
119
|
+
relevanceList: [] as any, // 关联设备列表
|
|
109
120
|
stopTime: dayjs().format(Format),
|
|
110
121
|
supplyTime: dayjs().format(Format),
|
|
111
122
|
// stopTime: null,
|
|
@@ -115,90 +126,27 @@ export default defineComponent({
|
|
|
115
126
|
causetext: "",
|
|
116
127
|
});
|
|
117
128
|
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
const eqModal: any = reactive({
|
|
122
|
-
visible: false,
|
|
123
|
-
dataSource: [],
|
|
124
|
-
columns: [
|
|
125
|
-
{
|
|
126
|
-
dataIndex: "name",
|
|
127
|
-
title: "名称",
|
|
128
|
-
ellipsis: true,
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
dataIndex: "location",
|
|
132
|
-
title: "设备位置",
|
|
133
|
-
ellipsis: true,
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
dataIndex: "loop",
|
|
137
|
-
title: "控制回路",
|
|
138
|
-
ellipsis: true,
|
|
139
|
-
},
|
|
140
|
-
],
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
const searchFormRef = ref();
|
|
144
|
-
const searchForm = reactive({
|
|
145
|
-
deviceName: "", // 设备名称
|
|
146
|
-
deviceCode: "", // 设备编码
|
|
147
|
-
});
|
|
148
|
-
const devicesLoading = ref(false);
|
|
149
|
-
|
|
150
|
-
// 查询设备
|
|
151
|
-
const searchDeviceList = async () => {
|
|
152
|
-
devicesLoading.value = true;
|
|
153
|
-
const res: any = await pssApi.getDeviceList(searchForm);
|
|
154
|
-
eqModal.dataSource = res.data.map((item: any) => {
|
|
155
|
-
item.loop = item.loops.join(",");
|
|
156
|
-
return item;
|
|
157
|
-
});
|
|
158
|
-
devicesLoading.value = false;
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
// 添加设备
|
|
162
|
-
const addEq = async () => {
|
|
163
|
-
try {
|
|
164
|
-
searchDeviceList();
|
|
129
|
+
const showDevice = ref(false);
|
|
130
|
+
const currentRow = ref<any>();
|
|
165
131
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
};
|
|
132
|
+
const toUpdateDevice = async (deviceList, relevanceList) => {
|
|
133
|
+
formState.value.deviceList = [];
|
|
134
|
+
deviceList.forEach(async (device: any) => {
|
|
135
|
+
const { data } = await pssApi.applyLoop(device.id);
|
|
136
|
+
device.equmentId = device.id;
|
|
137
|
+
device.list = data;
|
|
173
138
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
selectRows.value = selectedRowKeys;
|
|
177
|
-
selectedList.value = selectedRows;
|
|
178
|
-
};
|
|
139
|
+
formState.value.deviceList.push(device);
|
|
140
|
+
});
|
|
179
141
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
const
|
|
183
|
-
|
|
142
|
+
formState.value.relevanceList = [];
|
|
143
|
+
relevanceList.forEach(async (relevance: any) => {
|
|
144
|
+
const { data } = await pssApi.applyLoop(relevance.id);
|
|
145
|
+
relevance.equmentId = relevance.id;
|
|
146
|
+
relevance.list = data;
|
|
184
147
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
formState.value.deviceList.forEach(async (device: any) => {
|
|
188
|
-
const { data } = await pssApi.applyLoop(device.id);
|
|
189
|
-
device.equmentId = device.id;
|
|
190
|
-
device.list = data;
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
cancelAddEq();
|
|
195
|
-
} else {
|
|
196
|
-
message.info("请选择设备");
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
const cancelAddEq = () => {
|
|
201
|
-
eqModal.visible = false;
|
|
148
|
+
formState.value.relevanceList.push(relevance);
|
|
149
|
+
});
|
|
202
150
|
};
|
|
203
151
|
|
|
204
152
|
const ok = async () => {
|
|
@@ -209,8 +157,24 @@ export default defineComponent({
|
|
|
209
157
|
.add(formState.value.duration, "h")
|
|
210
158
|
.format(Format);
|
|
211
159
|
|
|
160
|
+
const upstreamEqumentLoopDtos: any = [];
|
|
161
|
+
const downstreamEqumentLoopDtos: any = [];
|
|
162
|
+
formState.value.relevanceList.forEach((relevance: any, index: number) => {
|
|
163
|
+
if (relevance.relevanceType === "上游") {
|
|
164
|
+
upstreamEqumentLoopDtos.push(relevance);
|
|
165
|
+
} else {
|
|
166
|
+
downstreamEqumentLoopDtos.push(relevance);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
const equments = {
|
|
171
|
+
...formState.value.deviceList[0],
|
|
172
|
+
upstreamEqumentLoopDtos,
|
|
173
|
+
downstreamEqumentLoopDtos,
|
|
174
|
+
};
|
|
175
|
+
|
|
212
176
|
const param = {
|
|
213
|
-
equments
|
|
177
|
+
equments, // 所有设备信息
|
|
214
178
|
busId: typeColumns[formState.value.bus].value, // stopSupplyPower(低压停送电) stopPower(低压停电) supplyPower(低压送电)
|
|
215
179
|
busName: typeColumns[formState.value.bus].label, // 业务名称
|
|
216
180
|
attempt: formState.value.attempt, // 试车流程
|
|
@@ -229,21 +193,12 @@ export default defineComponent({
|
|
|
229
193
|
context.emit("refresh");
|
|
230
194
|
};
|
|
231
195
|
|
|
232
|
-
watch(
|
|
233
|
-
() => props.showCreate,
|
|
234
|
-
(val) => {
|
|
235
|
-
if (val) {
|
|
236
|
-
formState.value.stopTime = dayjs().format(Format);
|
|
237
|
-
formState.value.supplyTime = dayjs().format(Format);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
);
|
|
241
|
-
|
|
242
196
|
const cancelModal = () => {
|
|
243
197
|
context.emit("update:showCreate", false);
|
|
244
198
|
nextTick(() => {
|
|
245
199
|
formRef.value.resetFields();
|
|
246
200
|
formState.value.deviceList = [];
|
|
201
|
+
formState.value.relevanceList = [];
|
|
247
202
|
});
|
|
248
203
|
};
|
|
249
204
|
|
|
@@ -254,14 +209,15 @@ export default defineComponent({
|
|
|
254
209
|
title="新建工单"
|
|
255
210
|
width="850px"
|
|
256
211
|
wrapClassName="newOrder_modal"
|
|
212
|
+
centered
|
|
257
213
|
onCancel={cancelModal}
|
|
258
214
|
v-slots={{
|
|
259
215
|
footer: () => (
|
|
260
216
|
<div class="modal_footer">
|
|
217
|
+
<Button onClick={cancelModal}>取消</Button>
|
|
261
218
|
<Button type="primary" onClick={ok}>
|
|
262
219
|
保存
|
|
263
220
|
</Button>
|
|
264
|
-
<Button onClick={cancelModal}>取消</Button>
|
|
265
221
|
</div>
|
|
266
222
|
),
|
|
267
223
|
}}
|
|
@@ -311,7 +267,11 @@ export default defineComponent({
|
|
|
311
267
|
>
|
|
312
268
|
<div class="content flex">
|
|
313
269
|
<div class="line flex-center">
|
|
314
|
-
<Button
|
|
270
|
+
<Button
|
|
271
|
+
onClick={() => {
|
|
272
|
+
showDevice.value = true;
|
|
273
|
+
}}
|
|
274
|
+
>
|
|
315
275
|
<PlusOutlined />
|
|
316
276
|
添加设备
|
|
317
277
|
</Button>
|
|
@@ -319,7 +279,8 @@ export default defineComponent({
|
|
|
319
279
|
<div class="all">
|
|
320
280
|
已选:
|
|
321
281
|
<span class="num">
|
|
322
|
-
{formState.value.deviceList.length
|
|
282
|
+
{formState.value.deviceList.length +
|
|
283
|
+
formState.value.relevanceList.length}
|
|
323
284
|
</span>
|
|
324
285
|
台设备
|
|
325
286
|
</div>
|
|
@@ -331,15 +292,21 @@ export default defineComponent({
|
|
|
331
292
|
(device: any, index: number) => (
|
|
332
293
|
<div class="device" key={device.id}>
|
|
333
294
|
<div class="titleLine flex-center">
|
|
334
|
-
<
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
295
|
+
<div class="left flex">
|
|
296
|
+
<div class="title" title={device.name}>
|
|
297
|
+
主设备:{device.name}
|
|
298
|
+
</div>
|
|
299
|
+
<div class="state">
|
|
300
|
+
运行信号:
|
|
301
|
+
{getStatus(device.runStatus)}
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
338
304
|
|
|
339
305
|
<Button
|
|
340
306
|
type="link"
|
|
341
307
|
onClick={() => {
|
|
342
308
|
formState.value.deviceList.splice(index, 1);
|
|
309
|
+
formState.value.relevanceList = [];
|
|
343
310
|
}}
|
|
344
311
|
>
|
|
345
312
|
<MinusSquareOutlined />
|
|
@@ -384,6 +351,75 @@ export default defineComponent({
|
|
|
384
351
|
)}
|
|
385
352
|
</div>
|
|
386
353
|
)}
|
|
354
|
+
|
|
355
|
+
{formState.value.relevanceList.length > 0 && (
|
|
356
|
+
<div class="relevanceBox">
|
|
357
|
+
{formState.value.relevanceList.map(
|
|
358
|
+
(relevance: any, index: number) => (
|
|
359
|
+
<div class="relevance" key={relevance.id}>
|
|
360
|
+
<div class="titleLine flex-center">
|
|
361
|
+
<div class="left flex">
|
|
362
|
+
<div class="title" title={relevance.name}>
|
|
363
|
+
{relevance.relevanceType}设备:
|
|
364
|
+
{relevance.name}
|
|
365
|
+
</div>
|
|
366
|
+
<div class="state">
|
|
367
|
+
运行信号:
|
|
368
|
+
{getStatus(relevance.runStatus)}
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
|
|
372
|
+
<Button
|
|
373
|
+
type="link"
|
|
374
|
+
onClick={() => {
|
|
375
|
+
formState.value.relevanceList.splice(
|
|
376
|
+
index,
|
|
377
|
+
1
|
|
378
|
+
);
|
|
379
|
+
}}
|
|
380
|
+
>
|
|
381
|
+
<MinusSquareOutlined />
|
|
382
|
+
</Button>
|
|
383
|
+
</div>
|
|
384
|
+
|
|
385
|
+
<div class="loop">
|
|
386
|
+
<FormItem
|
|
387
|
+
name={["relevanceList", index, "loopIds"]}
|
|
388
|
+
rules={{
|
|
389
|
+
required: true,
|
|
390
|
+
message: "请选择",
|
|
391
|
+
}}
|
|
392
|
+
>
|
|
393
|
+
<a-checkbox-group
|
|
394
|
+
v-model={[relevance.loopIds, "value"]}
|
|
395
|
+
style="width: 100%; max-height: 110px; overflow-y: auto;"
|
|
396
|
+
>
|
|
397
|
+
<a-row>
|
|
398
|
+
<a-col span="3">
|
|
399
|
+
<div class="title">控制回路</div>
|
|
400
|
+
</a-col>
|
|
401
|
+
{relevance?.list?.map(
|
|
402
|
+
(loop: any, idx: number) => (
|
|
403
|
+
<a-col span="7">
|
|
404
|
+
<a-checkbox
|
|
405
|
+
key={loop.key}
|
|
406
|
+
value={loop.key}
|
|
407
|
+
>
|
|
408
|
+
{/* {loop.key}-{loop.value} */}
|
|
409
|
+
{loop.value}
|
|
410
|
+
</a-checkbox>
|
|
411
|
+
</a-col>
|
|
412
|
+
)
|
|
413
|
+
)}
|
|
414
|
+
</a-row>
|
|
415
|
+
</a-checkbox-group>
|
|
416
|
+
</FormItem>
|
|
417
|
+
</div>
|
|
418
|
+
</div>
|
|
419
|
+
)
|
|
420
|
+
)}
|
|
421
|
+
</div>
|
|
422
|
+
)}
|
|
387
423
|
</div>
|
|
388
424
|
</FormItem>
|
|
389
425
|
|
|
@@ -472,143 +508,15 @@ export default defineComponent({
|
|
|
472
508
|
</div>
|
|
473
509
|
</Modal>
|
|
474
510
|
|
|
475
|
-
<
|
|
476
|
-
v-model={[
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
footer: () => (
|
|
483
|
-
<div class="modal_footer">
|
|
484
|
-
<Button type="primary" onClick={sureAddEq}>
|
|
485
|
-
确定
|
|
486
|
-
</Button>
|
|
487
|
-
<Button onClick={cancelAddEq}>取消</Button>
|
|
488
|
-
</div>
|
|
489
|
-
),
|
|
511
|
+
<SelectDevice
|
|
512
|
+
v-model={[showDevice.value, "showDevice"]}
|
|
513
|
+
currentRow={currentRow.value}
|
|
514
|
+
oldDeviceList={formState.value.deviceList}
|
|
515
|
+
oldRelevanceList={formState.value.relevanceList}
|
|
516
|
+
onToUpdate={(deviceList, relevanceList) => {
|
|
517
|
+
toUpdateDevice(deviceList, relevanceList);
|
|
490
518
|
}}
|
|
491
|
-
|
|
492
|
-
<div class="deviceModal_content flex" style="">
|
|
493
|
-
<div class="left flex flex1">
|
|
494
|
-
<Form
|
|
495
|
-
ref={searchFormRef}
|
|
496
|
-
model={searchForm}
|
|
497
|
-
labelCol={{ span: 8 }}
|
|
498
|
-
wrapperCol={{ span: 16 }}
|
|
499
|
-
labelAlign="right"
|
|
500
|
-
onSubmit={searchDeviceList}
|
|
501
|
-
>
|
|
502
|
-
<Row gutter={24}>
|
|
503
|
-
<Col span={8}>
|
|
504
|
-
<FormItem label="设备名称" name="deviceName">
|
|
505
|
-
<a-input
|
|
506
|
-
v-model={[searchForm.deviceName, "value"]}
|
|
507
|
-
placeholder="请输入"
|
|
508
|
-
allow-clear
|
|
509
|
-
></a-input>
|
|
510
|
-
</FormItem>
|
|
511
|
-
</Col>
|
|
512
|
-
<Col span={8}>
|
|
513
|
-
<FormItem label="设备编码" name="deviceCode">
|
|
514
|
-
<a-input
|
|
515
|
-
v-model={[searchForm.deviceCode, "value"]}
|
|
516
|
-
placeholder="请输入"
|
|
517
|
-
allow-clear
|
|
518
|
-
></a-input>
|
|
519
|
-
</FormItem>
|
|
520
|
-
</Col>
|
|
521
|
-
<Col span={8} class="align-r">
|
|
522
|
-
<a-space>
|
|
523
|
-
<a-button type="primary" html-type="submit">
|
|
524
|
-
查询
|
|
525
|
-
</a-button>
|
|
526
|
-
|
|
527
|
-
<a-button
|
|
528
|
-
onClick={() => {
|
|
529
|
-
searchFormRef.value.resetFields();
|
|
530
|
-
searchDeviceList();
|
|
531
|
-
}}
|
|
532
|
-
>
|
|
533
|
-
重置
|
|
534
|
-
</a-button>
|
|
535
|
-
</a-space>
|
|
536
|
-
</Col>
|
|
537
|
-
</Row>
|
|
538
|
-
</Form>
|
|
539
|
-
|
|
540
|
-
<div class="tableBox">
|
|
541
|
-
<Table
|
|
542
|
-
pagination={false}
|
|
543
|
-
columns={eqModal.columns}
|
|
544
|
-
dataSource={eqModal.dataSource}
|
|
545
|
-
// class="cus-table"
|
|
546
|
-
rowKey="id"
|
|
547
|
-
loading={devicesLoading.value}
|
|
548
|
-
rowSelection={{
|
|
549
|
-
onChange: onSelectEq,
|
|
550
|
-
selectedRowKeys: selectRows.value,
|
|
551
|
-
type: "checkbox",
|
|
552
|
-
getCheckboxProps: (record: any) => {
|
|
553
|
-
const oldDeviceIdList = formState.value.deviceList.map(
|
|
554
|
-
(device: any) => device.id
|
|
555
|
-
);
|
|
556
|
-
|
|
557
|
-
return {
|
|
558
|
-
disabled: oldDeviceIdList.includes(record.id),
|
|
559
|
-
name: record.name,
|
|
560
|
-
};
|
|
561
|
-
},
|
|
562
|
-
}}
|
|
563
|
-
></Table>
|
|
564
|
-
</div>
|
|
565
|
-
</div>
|
|
566
|
-
|
|
567
|
-
<div class="right flex">
|
|
568
|
-
<div class="top flex-center">
|
|
569
|
-
<div>已选{selectedList.value.length}台设备</div>
|
|
570
|
-
<a-button
|
|
571
|
-
type="link"
|
|
572
|
-
onClick={() => {
|
|
573
|
-
selectRows.value = [];
|
|
574
|
-
selectedList.value = [];
|
|
575
|
-
}}
|
|
576
|
-
>
|
|
577
|
-
清空
|
|
578
|
-
</a-button>
|
|
579
|
-
</div>
|
|
580
|
-
|
|
581
|
-
<div class="activedBox">
|
|
582
|
-
{selectedList.value.map((selected: any, idx: number) => {
|
|
583
|
-
// const name = `${selected.code}${selected.name}`;
|
|
584
|
-
const name = selected.name;
|
|
585
|
-
const textLength = 10;
|
|
586
|
-
const title = name.length > textLength ? name : "";
|
|
587
|
-
return (
|
|
588
|
-
<a-tag
|
|
589
|
-
class="tag"
|
|
590
|
-
title={title}
|
|
591
|
-
key={selected.id}
|
|
592
|
-
closable
|
|
593
|
-
onClose={() => {
|
|
594
|
-
const index = selectedList.value.findIndex(
|
|
595
|
-
(item: any) => item.id === selected.id
|
|
596
|
-
);
|
|
597
|
-
selectRows.value.splice(index, 1);
|
|
598
|
-
|
|
599
|
-
selectedList.value.splice(idx, 1);
|
|
600
|
-
}}
|
|
601
|
-
>
|
|
602
|
-
{name.length > textLength
|
|
603
|
-
? `${name.slice(0, textLength)}...`
|
|
604
|
-
: name}
|
|
605
|
-
</a-tag>
|
|
606
|
-
);
|
|
607
|
-
})}
|
|
608
|
-
</div>
|
|
609
|
-
</div>
|
|
610
|
-
</div>
|
|
611
|
-
</Modal>
|
|
519
|
+
/>
|
|
612
520
|
</div>
|
|
613
521
|
);
|
|
614
522
|
},
|
|
@@ -10,6 +10,8 @@ import Info from "@/pageComponent/views/pss/components/Info";
|
|
|
10
10
|
|
|
11
11
|
import dayjs, { Dayjs } from "dayjs";
|
|
12
12
|
|
|
13
|
+
import { getStatus } from "../utils";
|
|
14
|
+
|
|
13
15
|
import pssApi from "@/api/pss";
|
|
14
16
|
|
|
15
17
|
const Format = "YYYY-MM-DD HH:mm";
|
|
@@ -220,6 +222,11 @@ export default defineComponent({
|
|
|
220
222
|
// key: "numAndName",
|
|
221
223
|
width: 200,
|
|
222
224
|
},
|
|
225
|
+
{
|
|
226
|
+
key: "runStatus",
|
|
227
|
+
title: "运行信号",
|
|
228
|
+
width: 100,
|
|
229
|
+
},
|
|
223
230
|
{
|
|
224
231
|
title: "回路数量",
|
|
225
232
|
key: "loopsNum",
|
|
@@ -747,6 +754,11 @@ export default defineComponent({
|
|
|
747
754
|
// );
|
|
748
755
|
// }
|
|
749
756
|
|
|
757
|
+
// 运行信号
|
|
758
|
+
if (column.key === "runStatus") {
|
|
759
|
+
return getStatus(record.runStatus);
|
|
760
|
+
}
|
|
761
|
+
|
|
750
762
|
// 回路数量
|
|
751
763
|
if (column.key === "loopsNum") {
|
|
752
764
|
return <span>{record.loops.length}个</span>;
|