49
49
v-for =" item in subsOptions.qos"
50
50
:key =" item"
51
51
:value =" item"
52
- :label =" item"
53
52
></el-option >
54
53
</el-select >
55
54
</el-form-item >
99
98
:loading =" submitLoading"
100
99
>{{ isEdit ? $t("Base.update") : $t("Base.add") }}</el-button
101
100
>
102
- <el-button size =" small" @click =" opSubs = false " >{{
101
+ <el-button size =" small" @click =" closeDialog() " >{{
103
102
$t("Base.cancel")
104
103
}}</el-button >
105
104
</template >
@@ -112,6 +111,7 @@ import { defineComponent, onMounted, reactive, ref } from "vue";
112
111
import { getSubscribe , editSubscribe } from " @/api/advanced" ;
113
112
import { ElMessageBox as MB , ElMessage } from " element-plus" ;
114
113
import { useI18n } from " vue-i18n" ;
114
+ import _ from " lodash" ;
115
115
116
116
export default defineComponent ({
117
117
name: " Subscribe" ,
@@ -125,7 +125,6 @@ export default defineComponent({
125
125
let opSubs = ref (false );
126
126
let subTbData = ref ([]);
127
127
let subsOptions = reactive ({
128
- // op: ["nl", "rap", "rh"],
129
128
qos: [0 , 1 , 2 ],
130
129
nl: [0 , 1 ],
131
130
rap: [0 , 1 ],
@@ -155,67 +154,34 @@ export default defineComponent({
155
154
let openOpDialog = (edit = false , origin ) => {
156
155
opSubs .value = true ;
157
156
isEdit .value = !! edit;
158
- subsForm .value ? .resetFields ();
159
-
160
- // subsInput.topic = edit && origin.topic ? origin.topic : subsInput.topic;
161
- // subsInput.qos = edit && origin.qos ? origin.qos : subsInput.qos;
162
- // subsInput.nl=edit&&origin.nl?origin.nl:subsInput
163
- subsInput = (edit && { ... subsInput, ... origin }) || subsInput;
164
157
165
- // subsInput.op =
166
- // (edit &&
167
- // (() => {
168
- // let opArr = [];
169
- // origin.nl === 1 && opArr.push("nl");
170
- // origin.rap === 1 && opArr.push("rap");
171
- // origin.rh === 1 && opArr.push("rh");
172
- // return opArr;
173
- // })()) ||
174
- // [];
158
+ subsInput = (edit && _ .merge (subsInput, origin)) || subsInput;
175
159
176
160
edit && (editPos .value = subTbData .value .findIndex ((e ) => e === origin));
177
161
};
178
162
179
163
const submitSubs = async function (edit = false ) {
180
164
let valid = await subsForm .value ? .validate ().catch (() => {});
181
165
if (! valid) return ;
182
-
183
- // let tempOpStore = {};
166
+ submitLoading .value = true ;
184
167
let pendingTbData = Object .assign ([], subTbData .value );
185
168
186
- // Array.prototype.forEach.call(subsOptions.op, (v) => {
187
- // tempOpStore[v] = subsInput.op.indexOf(v) >= 0 ? 1 : 0;
188
- // });
189
- // let subjectSubData = {
190
- // topic: subsInput.topic,
191
- // qos: subsInput.qos,
192
- // ...tempOpStore,
193
- // };
194
-
195
169
if (! edit) {
196
170
pendingTbData .push (subsInput);
197
171
} else {
198
- if (editPos .value === undefined ) {
199
- return ;
200
- }
201
- pendingTbData .splice (editPos .value , 1 , subsInput);
172
+ editPos .value !== undefined &&
173
+ pendingTbData .splice (editPos .value , 1 , { ... subsInput });
202
174
}
203
- submitLoading .value = true ;
204
175
205
176
let res = await editSubscribe (pendingTbData).catch (() => {});
206
177
if (res) {
207
178
ElMessage ({
208
179
type: " success" ,
209
180
message: edit ? t (" Base.editSuccess" ) : t (" Base.createSuccess" ),
210
181
});
211
- subTbData . value = pendingTbData ;
182
+ loadData () ;
212
183
opSubs .value = false ;
213
184
editPos .value = undefined ;
214
- } else {
215
- ElMessage ({
216
- type: " error" ,
217
- message: t (" Base.opErr" ),
218
- });
219
185
}
220
186
submitLoading .value = false ;
221
187
};
@@ -236,17 +202,17 @@ export default defineComponent({
236
202
type: " success" ,
237
203
message: t (" Base.deleteSuccess" ),
238
204
});
239
- subTbData .value = pendingTbData;
240
- } else {
241
- ElMessage ({
242
- type: " error" ,
243
- message: t (" Base.opErr" ),
244
- });
205
+ loadData ();
245
206
}
246
207
})
247
208
.catch (() => {});
248
209
};
249
210
211
+ const closeDialog = () => {
212
+ opSubs .value = false ;
213
+ subsForm .value ? .resetFields ();
214
+ };
215
+
250
216
let loadData = async () => {
251
217
tbLoading .value = true ;
252
218
let res = await getSubscribe ().catch (() => {});
@@ -255,6 +221,7 @@ export default defineComponent({
255
221
}
256
222
tbLoading .value = false ;
257
223
};
224
+
258
225
onMounted (loadData);
259
226
260
227
const reloading = () => {
@@ -276,6 +243,7 @@ export default defineComponent({
276
243
tbLoading,
277
244
subsForm,
278
245
subsRules,
246
+ closeDialog,
279
247
};
280
248
},
281
249
});
0 commit comments