You can modify it here. https://github.com/aspnetzero/aspnet-zero-core/blob/dev/aspnet-core/src/MyCompanyName.AbpZeroTemplate.Web.Host/Controllers/HomeController.cs#L11
Maybe you can use Zero similar to Xamarin.
https://docs.aspnetzero.com/documents/zero/latest/Development-Guide-Xamarin
https://docs.aspnetzero.com/documents/zero/latest/Developing-Step-By-Step-Xamarin
https://github.com/aspnetzero/aspnet-zero-core/blob/dev/aspnet-core/src/MyCompanyName.AbpZeroTemplate.Application.Client/ApiClient/AbpApiClient.cs
The js file looks fine. Is it convenient to share your project or docker image?
What is the content of this common-scripts.min.js file in docker?
https://github.com/aspnetboilerplate/aspnetboilerplate/blob/dev/src/Abp.Zero.Common/Authorization/Users/UserRole.cs#L11
Just like UserRole, you can get the city assigned to it based on the current user and its role.
https://github.com/aspnetboilerplate/aspnetboilerplate/blob/e0ded5d8702f389aa1f5947d3446f16aec845287/src/Abp/BackgroundJobs/BackgroundJobManager.cs#L97
If no execution is completed, it will wait for it to complete before performing new work.
Can you share a screenshot of chrome network and console?
Will the same happen with local debugging? Are you using iis? Is it possible to reproduce in the demo project?
The current permission system is what you see now. https://aspnetboilerplate.com/Pages/Documents/Authorization
Simple implementation: The user or role is associated with the city. You can get the city information of the current user and role after the authorization check is passed, and then filter the city data.
I think the code should not be too complicated after optimization.
You can refer to this document to add JavaScript proxies. https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API