inl-ui 0.0.49 → 0.0.50
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 +717 -872
- package/dist/index.js.map +1 -1
- package/dist/src/api/thingModel.d.ts +1 -0
- package/dist/style.css +7 -7
- package/package.json +1 -1
- package/src/api/thingModel.ts +5 -2
- package/src/pageComponent/assets/styles/card/index.less +1 -2
- package/src/pageComponent/assets/styles/login/login.less +8 -5
- package/src/pageComponent/index.ts +1 -3
- package/src/pageComponent/views/boardScreen/index.tsx +1 -1
- package/src/pageComponent/views/card-center/cardWarehouse.tsx +95 -92
- package/src/pageComponent/views/card-center/components/selectCard.tsx +8 -8
- package/src/pageComponent/views/card-center/less/pageConfiguration.less +1 -3
- package/src/pageComponent/views/card-center/pageConfiguration.tsx +106 -100
- package/src/pageComponent/views/login/box.tsx +19 -2
- package/src/pageComponent/views/productionPlanManager/yearPCPlan.tsx +1 -1
- package/src/pageComponent/views/thingInstance/component/addThing.tsx +75 -54
- package/src/pageComponent/views/thingInstance/component/editThing.tsx +86 -86
- package/src/pageComponent/views/thingInstance/component/thingDetail.tsx +69 -39
- package/src/pageComponent/views/thingInstance/index.tsx +3 -1
- package/src/pageComponent/views/thingInstance/less/editThing.less +76 -62
- package/src/pageComponent/views/thingInstance/less/thingInstance.less +10 -0
- package/src/pageComponent/views/thingModel/component/tabAttr/update.tsx +1 -5
- package/src/pageComponent/views/thingModel/component/tabRelation/update.tsx +30 -4
- package/src/pageComponent/views/thingModel/index.tsx +28 -16
- package/src/pageComponent/views/video/assets/styles/video/group.less +21 -4
- package/src/pageComponent/views/video/assets/styles/video/preview.less +0 -1
- package/src/pageComponent/views/video/assets/styles/video/rotation.less +0 -7
- package/src/pageComponent/views/video/preview/preview.tsx +1 -1
- package/dist/src/pageComponent/views/elcRoom/index.d.ts +0 -2
- package/src/pageComponent/views/elcRoom/index.tsx +0 -106
|
@@ -768,7 +768,7 @@ const com = defineComponent({
|
|
|
768
768
|
</div>
|
|
769
769
|
</div>
|
|
770
770
|
</div>
|
|
771
|
-
<div class="table_wrap flex">
|
|
771
|
+
<div class="table_wrap flex flex1">
|
|
772
772
|
{!formQuery.thingCode ? (
|
|
773
773
|
// <a-empty
|
|
774
774
|
// image="/micro-assets/platform-web/empty.png"
|
|
@@ -826,6 +826,7 @@ const com = defineComponent({
|
|
|
826
826
|
</a-select>
|
|
827
827
|
<a-input
|
|
828
828
|
v-model={[formItem.value, "value", ["trim"]]}
|
|
829
|
+
class="searchVal"
|
|
829
830
|
allowClear={true}
|
|
830
831
|
/>
|
|
831
832
|
</div>
|
|
@@ -998,6 +999,7 @@ const com = defineComponent({
|
|
|
998
999
|
</a-select>
|
|
999
1000
|
<a-input
|
|
1000
1001
|
v-model={[item.value, "value", ["trim"]]}
|
|
1002
|
+
class="searchVal"
|
|
1001
1003
|
allowClear={true}
|
|
1002
1004
|
/>
|
|
1003
1005
|
</div>
|
|
@@ -45,77 +45,91 @@
|
|
|
45
45
|
.basic {
|
|
46
46
|
.content {
|
|
47
47
|
margin-bottom: 25px;
|
|
48
|
-
.grid {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
// .grid {
|
|
49
|
+
// display: grid;
|
|
50
|
+
// grid-template-columns: 1fr 1fr 1fr;
|
|
51
|
+
// justify-content: flex-start;
|
|
52
|
+
// align-content: flex-start;
|
|
53
53
|
|
|
54
|
+
// .element {
|
|
55
|
+
// // margin: 8px 0;
|
|
56
|
+
// justify-content: flex-end;
|
|
57
|
+
// .name {
|
|
58
|
+
// line-height: 32px;
|
|
59
|
+
// margin-right: 10px;
|
|
60
|
+
// }
|
|
61
|
+
// }
|
|
62
|
+
// &.grid4 {
|
|
63
|
+
// grid-template-columns: 1fr 1fr 1fr 1fr;
|
|
64
|
+
// }
|
|
65
|
+
// }
|
|
66
|
+
|
|
67
|
+
.contentBody {
|
|
68
|
+
flex-wrap: wrap;
|
|
54
69
|
.element {
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
width: calc(var(--colspan) * 25%);
|
|
71
|
+
height: 60px;
|
|
72
|
+
float: left;
|
|
57
73
|
.name {
|
|
58
74
|
line-height: 32px;
|
|
59
75
|
margin-right: 10px;
|
|
60
76
|
}
|
|
61
77
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
color: #fff;
|
|
75
|
-
margin-top: 10px;
|
|
76
|
-
font-size: 14px;
|
|
77
|
-
position: absolute;
|
|
78
|
-
left: 10px;
|
|
79
|
-
right: 10px;
|
|
80
|
-
bottom: 10px;
|
|
81
|
-
display: none;
|
|
82
|
-
}
|
|
83
|
-
.div_pic {
|
|
84
|
-
width: 240px;
|
|
85
|
-
word-break: break-all;
|
|
86
|
-
word-wrap: break-word;
|
|
87
|
-
position: relative;
|
|
88
|
-
&:hover .hover_action {
|
|
89
|
-
display: flex;
|
|
90
|
-
}
|
|
91
|
-
&:hover .tip_pic {
|
|
92
|
-
display: block;
|
|
93
|
-
}
|
|
94
|
-
img {
|
|
95
|
-
width: 240px;
|
|
96
|
-
height: 240px;
|
|
97
|
-
}
|
|
98
|
-
.hover_action {
|
|
78
|
+
|
|
79
|
+
.pic {
|
|
80
|
+
width: 25%;
|
|
81
|
+
height: 300px;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
float: right;
|
|
84
|
+
.tip_pic {
|
|
85
|
+
word-break: break-all;
|
|
86
|
+
word-wrap: break-word;
|
|
87
|
+
color: #fff;
|
|
88
|
+
margin-top: 10px;
|
|
89
|
+
font-size: 14px;
|
|
99
90
|
position: absolute;
|
|
100
|
-
left:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
height: 240px;
|
|
104
|
-
background: rgba(#354052, 0.5);
|
|
91
|
+
left: 10px;
|
|
92
|
+
right: 10px;
|
|
93
|
+
bottom: 10px;
|
|
105
94
|
display: none;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
95
|
+
}
|
|
96
|
+
.div_pic {
|
|
97
|
+
width: 240px;
|
|
98
|
+
word-break: break-all;
|
|
99
|
+
word-wrap: break-word;
|
|
100
|
+
position: relative;
|
|
101
|
+
&:hover .hover_action {
|
|
102
|
+
display: flex;
|
|
103
|
+
}
|
|
104
|
+
&:hover .tip_pic {
|
|
105
|
+
display: block;
|
|
106
|
+
}
|
|
107
|
+
img {
|
|
108
|
+
width: 240px;
|
|
109
|
+
height: 240px;
|
|
110
|
+
}
|
|
111
|
+
.hover_action {
|
|
112
|
+
position: absolute;
|
|
113
|
+
left: 0;
|
|
114
|
+
top: 0;
|
|
115
|
+
width: 240px;
|
|
116
|
+
height: 240px;
|
|
117
|
+
background: rgba(#354052, 0.5);
|
|
118
|
+
display: none;
|
|
119
|
+
justify-content: center;
|
|
120
|
+
align-items: center;
|
|
121
|
+
transition: all esae 0.2s;
|
|
122
|
+
.icon {
|
|
123
|
+
width: 36px;
|
|
124
|
+
height: 36px;
|
|
125
|
+
background: rgba(#fff, 0.5);
|
|
126
|
+
border-radius: 100%;
|
|
127
|
+
font-size: 20px;
|
|
128
|
+
color: #fff;
|
|
129
|
+
line-height: 38px;
|
|
130
|
+
text-align: center;
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
}
|
|
119
133
|
}
|
|
120
134
|
}
|
|
121
135
|
}
|
|
@@ -55,6 +55,16 @@
|
|
|
55
55
|
.option {
|
|
56
56
|
.searchSelect {
|
|
57
57
|
width: 100px;
|
|
58
|
+
.ant-select-selector {
|
|
59
|
+
border-top-right-radius: 0;
|
|
60
|
+
border-bottom-right-radius: 0;
|
|
61
|
+
border-right: 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.searchVal {
|
|
66
|
+
border-top-left-radius: 0;
|
|
67
|
+
border-bottom-left-radius: 0;
|
|
58
68
|
}
|
|
59
69
|
}
|
|
60
70
|
|
|
@@ -222,11 +222,7 @@ export default defineComponent({
|
|
|
222
222
|
<a-form-item label="属性编码" name="code">
|
|
223
223
|
<a-input
|
|
224
224
|
v-model={[state.formModel.code, "value"]}
|
|
225
|
-
disabled={
|
|
226
|
-
state.formModel.useStandard ||
|
|
227
|
-
(!state.isAdd &&
|
|
228
|
-
state.formModel.propertyType === "property")
|
|
229
|
-
}
|
|
225
|
+
disabled={state.formModel.useStandard || !state.isAdd}
|
|
230
226
|
/>
|
|
231
227
|
</a-form-item>
|
|
232
228
|
<a-form-item label="属性名称" name="name">
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
thingNameList,
|
|
6
6
|
relaTable,
|
|
7
7
|
thingNameListByTable,
|
|
8
|
+
relaByDic,
|
|
8
9
|
} from "@/api/thingModel";
|
|
9
10
|
import { message } from "ant-design-vue";
|
|
10
11
|
const formItemAll = [
|
|
@@ -74,6 +75,7 @@ export default defineComponent({
|
|
|
74
75
|
aNamethingList: any[];
|
|
75
76
|
zNamethingList: any[];
|
|
76
77
|
relaTable: any[];
|
|
78
|
+
relaClass: any[];
|
|
77
79
|
}>({
|
|
78
80
|
formModel: {},
|
|
79
81
|
title: "",
|
|
@@ -85,6 +87,7 @@ export default defineComponent({
|
|
|
85
87
|
aNamethingList: [],
|
|
86
88
|
zNamethingList: [],
|
|
87
89
|
relaTable: [],
|
|
90
|
+
relaClass: [],
|
|
88
91
|
});
|
|
89
92
|
const formItems = computed(() => {
|
|
90
93
|
return formItemAll.filter((col) => {
|
|
@@ -137,11 +140,17 @@ export default defineComponent({
|
|
|
137
140
|
state.relaTable = res.data;
|
|
138
141
|
});
|
|
139
142
|
};
|
|
143
|
+
const getRelaClass = () => {
|
|
144
|
+
relaByDic().then((res) => {
|
|
145
|
+
state.relaClass = res.data;
|
|
146
|
+
});
|
|
147
|
+
};
|
|
140
148
|
const open = (isAdd, athingCode, relaType, data = formDefault) => {
|
|
141
149
|
state.title = isAdd ? "新增" : "编辑";
|
|
142
150
|
state.type = relaType;
|
|
143
151
|
state.formModel = { ...state.formModel, ...data, relaType, athingCode };
|
|
144
152
|
getZThingList();
|
|
153
|
+
getRelaClass();
|
|
145
154
|
|
|
146
155
|
if (isAdd) {
|
|
147
156
|
if (relaType === "extends") {
|
|
@@ -167,10 +176,11 @@ export default defineComponent({
|
|
|
167
176
|
state.visible = false;
|
|
168
177
|
formRef.value.clearValidate();
|
|
169
178
|
state.formModel = {};
|
|
170
|
-
state.aNamethingList = []
|
|
171
|
-
state.zthingList = []
|
|
172
|
-
state.zNamethingList = []
|
|
173
|
-
state.relaTable = []
|
|
179
|
+
state.aNamethingList = [];
|
|
180
|
+
state.zthingList = [];
|
|
181
|
+
state.zNamethingList = [];
|
|
182
|
+
state.relaTable = [];
|
|
183
|
+
state.relaClass = [];
|
|
174
184
|
};
|
|
175
185
|
|
|
176
186
|
expose({ open });
|
|
@@ -256,6 +266,22 @@ export default defineComponent({
|
|
|
256
266
|
onChange={relaRelaTableChange}
|
|
257
267
|
/>
|
|
258
268
|
</a-form-item>
|
|
269
|
+
) : item.key === "relaClass" ? (
|
|
270
|
+
<a-form-item
|
|
271
|
+
label="关系业务类型"
|
|
272
|
+
name="relaClass"
|
|
273
|
+
rules={[{ required: true, message: "请选择关系表名" }]}
|
|
274
|
+
>
|
|
275
|
+
<a-select
|
|
276
|
+
allowClear
|
|
277
|
+
show-search
|
|
278
|
+
v-model={[state.formModel.relaClass, "value"]}
|
|
279
|
+
placeholder="请输入关键字进行选择"
|
|
280
|
+
optionFilterProp="name"
|
|
281
|
+
fieldNames={{ label: "name", value: "code" }}
|
|
282
|
+
options={state.relaClass}
|
|
283
|
+
/>
|
|
284
|
+
</a-form-item>
|
|
259
285
|
) : (
|
|
260
286
|
<a-form-item
|
|
261
287
|
label={item.title}
|
|
@@ -135,7 +135,7 @@ const com = defineComponent({
|
|
|
135
135
|
});
|
|
136
136
|
};
|
|
137
137
|
const exportFun = async () => {
|
|
138
|
-
message.info({
|
|
138
|
+
const hide = message.info({
|
|
139
139
|
duration: 0,
|
|
140
140
|
content: "正在导出,请稍后",
|
|
141
141
|
});
|
|
@@ -144,12 +144,13 @@ const com = defineComponent({
|
|
|
144
144
|
res,
|
|
145
145
|
"物模型数据_" + moment().format("YYYY_MM_DD_HHmm") + ".xls"
|
|
146
146
|
);
|
|
147
|
+
|
|
147
148
|
setTimeout(() => {
|
|
148
|
-
|
|
149
|
-
},
|
|
149
|
+
hide();
|
|
150
|
+
}, 200);
|
|
150
151
|
};
|
|
151
152
|
const downFun = async () => {
|
|
152
|
-
message.info({
|
|
153
|
+
const hide = message.info({
|
|
153
154
|
duration: 0,
|
|
154
155
|
content: "正在下载,请稍后",
|
|
155
156
|
});
|
|
@@ -159,20 +160,31 @@ const com = defineComponent({
|
|
|
159
160
|
"【模板】物模型数据_" + moment().format("YYYY_MM_DD_HHmm") + ".xls"
|
|
160
161
|
);
|
|
161
162
|
setTimeout(() => {
|
|
162
|
-
|
|
163
|
-
},
|
|
163
|
+
hide();
|
|
164
|
+
}, 200);
|
|
164
165
|
};
|
|
165
166
|
const downFile = (res: any, filename: string) => {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
167
|
+
let reader = new FileReader();
|
|
168
|
+
reader.readAsText(res, "utf-8");
|
|
169
|
+
reader.onload = (e) => {
|
|
170
|
+
try {
|
|
171
|
+
const result = JSON.parse(reader.result as string);
|
|
172
|
+
if (result.code && result.code === "M5001") {
|
|
173
|
+
message.error(result.message);
|
|
174
|
+
}
|
|
175
|
+
} catch (error) {
|
|
176
|
+
const blob = new Blob([res], {
|
|
177
|
+
type: "text/html;charset=UTF-8",
|
|
178
|
+
});
|
|
179
|
+
const a = document.createElement("a");
|
|
180
|
+
a.href = URL.createObjectURL(blob);
|
|
181
|
+
a.download = filename;
|
|
182
|
+
a.style.display = "none";
|
|
183
|
+
document.body.appendChild(a);
|
|
184
|
+
a.click();
|
|
185
|
+
a.remove();
|
|
186
|
+
}
|
|
187
|
+
};
|
|
176
188
|
};
|
|
177
189
|
const openModal = () => {
|
|
178
190
|
updateModalRef.value.open(true);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
.group {
|
|
2
2
|
width: 100%;
|
|
3
3
|
height: 100%;
|
|
4
|
-
padding: 20px;
|
|
5
4
|
box-sizing: border-box;
|
|
6
5
|
background-color: #fff;
|
|
7
6
|
overflow: auto;
|
|
@@ -34,11 +33,11 @@
|
|
|
34
33
|
padding-right: 53px;
|
|
35
34
|
&.border-active {
|
|
36
35
|
font-weight: 500;
|
|
37
|
-
color: #
|
|
36
|
+
color: #1d33a2;
|
|
38
37
|
.title-min {
|
|
39
|
-
border-bottom: 2px solid #
|
|
38
|
+
border-bottom: 2px solid #1d33a2;
|
|
40
39
|
.name {
|
|
41
|
-
color: #
|
|
40
|
+
color: #1d33a2;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
}
|
|
@@ -177,3 +176,21 @@
|
|
|
177
176
|
width: 80%;
|
|
178
177
|
position: relative;
|
|
179
178
|
}
|
|
179
|
+
|
|
180
|
+
body[data-theme="light"] {
|
|
181
|
+
.group {
|
|
182
|
+
.tabs-min {
|
|
183
|
+
.tab-item {
|
|
184
|
+
&.border-active {
|
|
185
|
+
color: #3e7eff;
|
|
186
|
+
.title-min {
|
|
187
|
+
border-bottom: 2px solid #3e7eff;
|
|
188
|
+
.name {
|
|
189
|
+
color: #3e7eff;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -525,7 +525,7 @@ const com = defineComponent({
|
|
|
525
525
|
return () => (
|
|
526
526
|
<div class="preview flex ">
|
|
527
527
|
<div
|
|
528
|
-
class={["stretch", hideLeft.value ? "pack" : ""]}
|
|
528
|
+
class={["stretch flex-center", hideLeft.value ? "pack" : ""]}
|
|
529
529
|
onClick={() => {
|
|
530
530
|
hideLeft.value = !hideLeft.value;
|
|
531
531
|
}}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { defineComponent, onMounted, reactive, ref } from "vue";
|
|
2
|
-
import utils from "@/utils";
|
|
3
|
-
import { getCabinetRoomList } from "@/api/tupu";
|
|
4
|
-
import elcRoomHt from "@/pageComponent/components/elcRoomHt";
|
|
5
|
-
|
|
6
|
-
const columns = [
|
|
7
|
-
{
|
|
8
|
-
title: "名称",
|
|
9
|
-
dataIndex: "name",
|
|
10
|
-
key: "name",
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
title: "总回路数",
|
|
14
|
-
dataIndex: "loopTotal",
|
|
15
|
-
key: "loopTotal",
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
title: "分闸数",
|
|
19
|
-
dataIndex: "openTotal",
|
|
20
|
-
key: "openTotal",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
title: "合闸数",
|
|
24
|
-
dataIndex: "closeTotal",
|
|
25
|
-
key: "closeTotal",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
title: "断连数",
|
|
29
|
-
dataIndex: "disconnectionTotal",
|
|
30
|
-
key: "disconnectionTotal",
|
|
31
|
-
},
|
|
32
|
-
// {
|
|
33
|
-
// title: "备用数",
|
|
34
|
-
// dataIndex: "lockTotal",
|
|
35
|
-
// key: "lockTotal",
|
|
36
|
-
// },
|
|
37
|
-
{
|
|
38
|
-
title: "操作",
|
|
39
|
-
key: "action",
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
const elcRoom = defineComponent({
|
|
43
|
-
name: "ElcRoom",
|
|
44
|
-
components: {
|
|
45
|
-
elcRoomHt,
|
|
46
|
-
},
|
|
47
|
-
setup() {
|
|
48
|
-
const elcRoomList = ref([]);
|
|
49
|
-
const visible = ref(false);
|
|
50
|
-
const data = reactive<{
|
|
51
|
-
roomId: number | null;
|
|
52
|
-
name: string | null;
|
|
53
|
-
}>({
|
|
54
|
-
roomId: null,
|
|
55
|
-
name: null,
|
|
56
|
-
});
|
|
57
|
-
const http = async () => {
|
|
58
|
-
const res = await getCabinetRoomList();
|
|
59
|
-
elcRoomList.value = res.data;
|
|
60
|
-
};
|
|
61
|
-
onMounted(() => {
|
|
62
|
-
http();
|
|
63
|
-
});
|
|
64
|
-
return () => (
|
|
65
|
-
<div class="elcRoom">
|
|
66
|
-
<a-table
|
|
67
|
-
columns={columns}
|
|
68
|
-
dataSource={elcRoomList.value}
|
|
69
|
-
v-slots={{
|
|
70
|
-
bodyCell: ({ column, record }) => {
|
|
71
|
-
if (column.key === "action") {
|
|
72
|
-
return (
|
|
73
|
-
<a-button
|
|
74
|
-
type="link"
|
|
75
|
-
onClick={() => {
|
|
76
|
-
data.name = record.name;
|
|
77
|
-
data.roomId = record.roomId;
|
|
78
|
-
visible.value = true;
|
|
79
|
-
}}
|
|
80
|
-
>
|
|
81
|
-
查看
|
|
82
|
-
</a-button>
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
}}
|
|
87
|
-
></a-table>
|
|
88
|
-
<a-modal
|
|
89
|
-
v-model={[visible.value, "visible"]}
|
|
90
|
-
onCancel={() => {
|
|
91
|
-
data.roomId = null;
|
|
92
|
-
data.name = null;
|
|
93
|
-
}}
|
|
94
|
-
width="100%"
|
|
95
|
-
footer={false}
|
|
96
|
-
wrap-class-name="elcRoom-full-modal"
|
|
97
|
-
>
|
|
98
|
-
{visible.value ? (
|
|
99
|
-
<elcRoomHt roomId={data.roomId} name={data.name}></elcRoomHt>
|
|
100
|
-
) : null}
|
|
101
|
-
</a-modal>
|
|
102
|
-
</div>
|
|
103
|
-
);
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
export default utils.installComponent(elcRoom, "elc-room");
|