I’ve built a few larger apps in Vue (both Vue 1 and 2). One app in particular had screens not too dissimilar to the ones you attached. I can say definitively that Vue is MORE than capable to build an app like this, and would be my preferred choice over any other framework.
I am personally not a fan of relying on UI frameworks (Vuetify, Bootstrap, or even CSS libraries like Bulma). Especially with Vue, you really don’t need them, unless you’re going for a specific look (like Vuetify’s Material influence). In most cases, a simple combo of a CSS reset, and a handful of SCSS vars/mixins, a company brand guideline (primary, secondary colors, fonts, etc), and you should be good. I also can’t live without “vertical rhythm” (modular scale) and “base line height”.
Vue’s ability to use slots and custom
v-model components should get you 95% the way there. For instance, I’ve created
<CurrencyInput /> and
<DateInput /> fields that probably address half of what I’m seeing in your screenshots.
Also, this looks like a pretty obvious case for Vuex, so you might as well get your store set up with that from the get-go.
Personally, I have abandoned REST for anything other than file uploads, and the majority of my API calls are through GraphQL. Not sure who would be on the back-end of your project, but you’ve got a lot of fields here, and the explicit nature of GraphQL would help in making sure the front-end and back-end were working off a shared schema (you can use the graphql eslint plugin to compare your front-end queries/mutations against the API’s introspection results too).
Lastly, not sure how much experience you have with Vue, but it might be worth looking into Nuxt. Even if you disable the SSR functionality, Nuxt takes a lot of the boilerplate out of getting a larger Vue app up and running, and uses very sensible defaults/conventions (implicit routing based on folder structure, code splitting based on routes, etc.).
Hope that helps.