@@ -95,205 +95,161 @@ def reset_dept_query_params(reset_click):
9595
9696
9797@app .callback (
98- [Output ('dept-add-modal' , 'visible' , allow_duplicate = True ),
99- Output ('dept-add-parent_id' , 'treeData' ),
100- Output ('dept-add-parent_id' , 'value' ),
98+ [Output ('dept-modal' , 'visible' , allow_duplicate = True ),
99+ Output ('dept-modal' , 'title' ),
100+ Output ('dept-parent_id' , 'treeData' ),
101+ Output ('dept-parent_id' , 'value' ),
102+ Output ('dept-dept_name' , 'value' ),
103+ Output ('dept-order_num' , 'value' ),
104+ Output ('dept-leader' , 'value' ),
105+ Output ('dept-phone' , 'value' ),
106+ Output ('dept-email' , 'value' ),
107+ Output ('dept-status' , 'value' ),
101108 Output ('api-check-token' , 'data' , allow_duplicate = True ),
102- Output ('dept-add' , 'nClicks' )],
109+ Output ('dept-add' , 'nClicks' ),
110+ Output ('dept-edit-id-store' , 'data' ),
111+ Output ('dept-operations-store-bk' , 'data' )],
103112 [Input ('dept-add' , 'nClicks' ),
104113 Input ('dept-list-table' , 'nClicksButton' )],
105114 [State ('dept-list-table' , 'clickedContent' ),
106115 State ('dept-list-table' , 'recentlyButtonClickedRow' )],
107116 prevent_initial_call = True
108117)
109- def add_user_modal (add_click , button_click , clicked_content , recently_button_clicked_row ):
110- if add_click or (button_click and clicked_content == '新增 ' ):
118+ def add_edit_dept_modal (add_click , button_click , clicked_content , recently_button_clicked_row ):
119+ if add_click or (button_click and clicked_content != '删除 ' ):
111120 dept_params = dict (dept_name = '' )
112- tree_info = get_dept_tree_api (dept_params )
121+ if clicked_content == '修改' :
122+ tree_info = get_dept_tree_for_edit_option_api (dept_params )
123+ else :
124+ tree_info = get_dept_tree_api (dept_params )
113125 if tree_info ['code' ] == 200 :
114126 tree_data = tree_info ['data' ]
115127
116- return [
117- True ,
118- tree_data ,
119- int (recently_button_clicked_row ['key' ]) if recently_button_clicked_row else dash .no_update ,
120- {'timestamp' : time .time ()},
121- None
122- ]
123-
124- return [dash .no_update ] * 3 + [{'timestamp' : time .time ()}, None ]
125-
126- return [dash .no_update ] * 4 + [None ]
127-
128-
129- @app .callback (
130- [Output ('dept-add-parent_id-form-item' , 'validateStatus' ),
131- Output ('dept-add-dept_name-form-item' , 'validateStatus' ),
132- Output ('dept-add-order_num-form-item' , 'validateStatus' ),
133- Output ('dept-add-parent_id-form-item' , 'help' ),
134- Output ('dept-add-dept_name-form-item' , 'help' ),
135- Output ('dept-add-order_num-form-item' , 'help' ),
136- Output ('dept-add-modal' , 'visible' , allow_duplicate = True ),
137- Output ('dept-operations-store' , 'data' , allow_duplicate = True ),
138- Output ('api-check-token' , 'data' , allow_duplicate = True ),
139- Output ('global-message-container' , 'children' , allow_duplicate = True )],
140- Input ('dept-add-modal' , 'okCounts' ),
141- [State ('dept-add-parent_id' , 'value' ),
142- State ('dept-add-dept_name' , 'value' ),
143- State ('dept-add-order_num' , 'value' ),
144- State ('dept-add-leader' , 'value' ),
145- State ('dept-add-phone' , 'value' ),
146- State ('dept-add-email' , 'value' ),
147- State ('dept-add-status' , 'value' )],
148- prevent_initial_call = True
149- )
150- def dept_add_confirm (add_confirm , parent_id , dept_name , order_num , leader , phone , email , status ):
151- if add_confirm :
152-
153- if all ([parent_id , dept_name , order_num ]):
154- params = dict (parent_id = parent_id , dept_name = dept_name , order_num = order_num ,
155- leader = leader , phone = phone , email = email , status = status )
156- add_button_result = add_dept_api (params )
157-
158- if add_button_result ['code' ] == 200 :
128+ if add_click :
159129 return [
130+ True ,
131+ '新增部门' ,
132+ tree_data ,
160133 None ,
161134 None ,
162135 None ,
163136 None ,
164137 None ,
165138 None ,
166- False ,
167- {'type' : 'add' },
139+ '0' ,
168140 {'timestamp' : time .time ()},
169- fuc .FefferyFancyMessage ('新增成功' , type = 'success' )
141+ None ,
142+ None ,
143+ {'type' : 'add' }
170144 ]
145+ elif button_click and clicked_content == '新增' :
146+ return [
147+ True ,
148+ '新增部门' ,
149+ tree_data ,
150+ str (recently_button_clicked_row ['key' ]),
151+ None ,
152+ None ,
153+ None ,
154+ None ,
155+ None ,
156+ '0' ,
157+ {'timestamp' : time .time ()},
158+ None ,
159+ None ,
160+ {'type' : 'add' }
161+ ]
162+ elif button_click and clicked_content == '修改' :
163+ dept_id = int (recently_button_clicked_row ['key' ])
164+ dept_info_res = get_dept_detail_api (dept_id = dept_id )
165+ if dept_info_res ['code' ] == 200 :
166+ dept_info = dept_info_res ['data' ]
167+ return [
168+ True ,
169+ '编辑部门' ,
170+ tree_data ,
171+ str (dept_info .get ('parent_id' )),
172+ dept_info .get ('dept_name' ),
173+ dept_info .get ('order_num' ),
174+ dept_info .get ('leader' ),
175+ dept_info .get ('phone' ),
176+ dept_info .get ('email' ),
177+ dept_info .get ('status' ),
178+ {'timestamp' : time .time ()},
179+ None ,
180+ dept_info ,
181+ {'type' : 'edit' }
182+ ]
171183
172- return [
173- None ,
174- None ,
175- None ,
176- None ,
177- None ,
178- None ,
179- dash .no_update ,
180- dash .no_update ,
181- {'timestamp' : time .time ()},
182- fuc .FefferyFancyMessage ('新增失败' , type = 'error' )
183- ]
184-
185- return [
186- None if parent_id else 'error' ,
187- None if dept_name else 'error' ,
188- None if order_num else 'error' ,
189- None if parent_id else '请选择上级部门!' ,
190- None if dept_name else '请输入部门名称!' ,
191- None if order_num else '请输入显示排序!' ,
192- dash .no_update ,
193- dash .no_update ,
194- {'timestamp' : time .time ()},
195- fuc .FefferyFancyMessage ('新增失败' , type = 'error' )
196- ]
197-
198- return [dash .no_update ] * 10
199-
200-
201- @app .callback (
202- [Output ('dept-edit-modal' , 'visible' , allow_duplicate = True ),
203- Output ('dept-edit-parent_id' , 'treeData' ),
204- Output ('dept-edit-parent_id' , 'value' ),
205- Output ('dept-edit-dept_name' , 'value' ),
206- Output ('dept-edit-order_num' , 'value' ),
207- Output ('dept-edit-leader' , 'value' ),
208- Output ('dept-edit-phone' , 'value' ),
209- Output ('dept-edit-email' , 'value' ),
210- Output ('dept-edit-status' , 'value' ),
211- Output ('dept-edit-id-store' , 'data' ),
212- Output ('api-check-token' , 'data' , allow_duplicate = True )],
213- [Input ('dept-list-table' , 'nClicksButton' )],
214- [State ('dept-list-table' , 'clickedContent' ),
215- State ('dept-list-table' , 'recentlyButtonClickedRow' )],
216- prevent_initial_call = True
217- )
218- def dept_edit_modal (button_click , clicked_content , recently_button_clicked_row ):
219- if button_click :
220-
221- if clicked_content == '修改' :
222- dept_id = int (recently_button_clicked_row ['key' ])
223- else :
224- return dash .no_update
225-
226- dept_params = dict (dept_id = dept_id )
227- tree_info = get_dept_tree_for_edit_option_api (dept_params )
228- edit_button_info = get_dept_detail_api (dept_id )
229- if edit_button_info ['code' ] == 200 and tree_info ['code' ] == 200 :
230- edit_button_result = edit_button_info ['data' ]
231- tree_data = tree_info ['data' ]
232-
233- return [
234- True ,
235- tree_data ,
236- edit_button_result ['parent_id' ],
237- edit_button_result ['dept_name' ],
238- edit_button_result ['order_num' ],
239- edit_button_result ['leader' ],
240- edit_button_result ['phone' ],
241- edit_button_result ['email' ],
242- edit_button_result ['status' ],
243- {'dept_id' : dept_id },
244- {'timestamp' : time .time ()}
245- ]
246-
247- return [dash .no_update ] * 10 + [{'timestamp' : time .time ()}]
184+ return [dash .no_update ] * 10 + [{'timestamp' : time .time ()}, None , None , None ]
248185
249- return [dash .no_update ] * 11
186+ return [dash .no_update ] * 11 + [ None , None , None ]
250187
251188
252189@app .callback (
253- [Output ('dept-edit- parent_id-form-item' , 'validateStatus' ),
254- Output ('dept-edit- dept_name-form-item' , 'validateStatus' ),
255- Output ('dept-edit- order_num-form-item' , 'validateStatus' ),
256- Output ('dept-edit- parent_id-form-item' , 'help' ),
257- Output ('dept-edit- dept_name-form-item' , 'help' ),
258- Output ('dept-edit- order_num-form-item' , 'help' ),
259- Output ('dept-edit- modal' , 'visible' , allow_duplicate = True ),
190+ [Output ('dept-parent_id-form-item' , 'validateStatus' ),
191+ Output ('dept-dept_name-form-item' , 'validateStatus' ),
192+ Output ('dept-order_num-form-item' , 'validateStatus' ),
193+ Output ('dept-parent_id-form-item' , 'help' ),
194+ Output ('dept-dept_name-form-item' , 'help' ),
195+ Output ('dept-order_num-form-item' , 'help' ),
196+ Output ('dept-modal' , 'visible' ),
260197 Output ('dept-operations-store' , 'data' , allow_duplicate = True ),
261198 Output ('api-check-token' , 'data' , allow_duplicate = True ),
262199 Output ('global-message-container' , 'children' , allow_duplicate = True )],
263- Input ('dept-edit-modal' , 'okCounts' ),
264- [State ('dept-edit-parent_id' , 'value' ),
265- State ('dept-edit-dept_name' , 'value' ),
266- State ('dept-edit-order_num' , 'value' ),
267- State ('dept-edit-leader' , 'value' ),
268- State ('dept-edit-phone' , 'value' ),
269- State ('dept-edit-email' , 'value' ),
270- State ('dept-edit-status' , 'value' ),
271- State ('dept-edit-id-store' , 'data' )],
200+ Input ('dept-modal' , 'okCounts' ),
201+ [State ('dept-operations-store-bk' , 'data' ),
202+ State ('dept-edit-id-store' , 'data' ),
203+ State ('dept-parent_id' , 'value' ),
204+ State ('dept-dept_name' , 'value' ),
205+ State ('dept-order_num' , 'value' ),
206+ State ('dept-leader' , 'value' ),
207+ State ('dept-phone' , 'value' ),
208+ State ('dept-email' , 'value' ),
209+ State ('dept-status' , 'value' )],
272210 prevent_initial_call = True
273211)
274- def dept_edit_confirm (edit_confirm , parent_id , dept_name , order_num , leader , phone , email , status , dept_id ):
275- if edit_confirm :
276-
212+ def dept_confirm (confirm_trigger , operation_type , cur_dept_info , parent_id , dept_name , order_num , leader , phone , email , status ):
213+ if confirm_trigger :
277214 if all ([parent_id , dept_name , order_num ]):
278- params = dict (dept_id = dept_id ['dept_id' ], parent_id = parent_id , dept_name = dept_name ,
279- order_num = order_num , leader = leader , phone = phone , email = email ,
280- status = status )
281- edit_button_result = edit_dept_api (params )
282-
283- if edit_button_result ['code' ] == 200 :
284- return [
285- None ,
286- None ,
287- None ,
288- None ,
289- None ,
290- None ,
291- False ,
292- {'type' : 'edit' },
293- {'timestamp' : time .time ()},
294- fuc .FefferyFancyMessage ('编辑成功' , type = 'success' )
295- ]
296-
215+ params_add = dict (parent_id = parent_id , dept_name = dept_name , order_num = order_num , leader = leader , phone = phone ,
216+ email = email , status = status )
217+ params_edit = dict (dept_id = cur_dept_info .get ('dept_id' ) if cur_dept_info else None , parent_id = parent_id , dept_name = dept_name ,
218+ order_num = order_num , leader = leader , phone = phone , email = email , status = status )
219+ api_res = {}
220+ operation_type = operation_type .get ('type' )
221+ if operation_type == 'add' :
222+ api_res = add_dept_api (params_add )
223+ if operation_type == 'edit' :
224+ api_res = edit_dept_api (params_edit )
225+ if api_res .get ('code' ) == 200 :
226+ if operation_type == 'add' :
227+ return [
228+ None ,
229+ None ,
230+ None ,
231+ None ,
232+ None ,
233+ None ,
234+ False ,
235+ {'type' : 'add' },
236+ {'timestamp' : time .time ()},
237+ fuc .FefferyFancyMessage ('新增成功' , type = 'success' )
238+ ]
239+ if operation_type == 'edit' :
240+ return [
241+ None ,
242+ None ,
243+ None ,
244+ None ,
245+ None ,
246+ None ,
247+ False ,
248+ {'type' : 'edit' },
249+ {'timestamp' : time .time ()},
250+ fuc .FefferyFancyMessage ('编辑成功' , type = 'success' )
251+ ]
252+
297253 return [
298254 None ,
299255 None ,
@@ -304,9 +260,9 @@ def dept_edit_confirm(edit_confirm, parent_id, dept_name, order_num, leader, pho
304260 dash .no_update ,
305261 dash .no_update ,
306262 {'timestamp' : time .time ()},
307- fuc .FefferyFancyMessage ('编辑失败 ' , type = 'error' )
263+ fuc .FefferyFancyMessage ('处理失败 ' , type = 'error' )
308264 ]
309-
265+
310266 return [
311267 None if parent_id else 'error' ,
312268 None if dept_name else 'error' ,
@@ -317,8 +273,8 @@ def dept_edit_confirm(edit_confirm, parent_id, dept_name, order_num, leader, pho
317273 dash .no_update ,
318274 dash .no_update ,
319275 {'timestamp' : time .time ()},
320- fuc .FefferyFancyMessage ('编辑失败 ' , type = 'error' )
321- ]
276+ fuc .FefferyFancyMessage ('处理失败 ' , type = 'error' )
277+ ]
322278
323279 return [dash .no_update ] * 10
324280
0 commit comments