How about Port Aventura.
This is a hotel & theme park complex near Salou which is about an hour from Barcelona.
Reus airport is about 5 miles from Port Aventura and flying time is just a few hours from UK.
The complex has 3 hotels, a great theme park, and a great water park.
If you stay in one of the 3 hotels you get to go in the theme park every day for free, and also the water park for free (or reduced price) depending when you go.
Find out more here
http://www.portaventura.co.uk/