Yes you could make the 06:57 if you really can leave early (around 6:30). The station is about 15 min by taxi from the harbor.
30 min is more than enough time to change in any station. The potential issus is if the first train is delayed. SNCF doesn't hold trains, esp. TGVs.
That's why I'd still recommend going further to Mulhouse. Yes, it's an extra change but:
- there are far more frequent trains from Mulhouse if issues arise, all reservation-free
- you save 29€ per person as well
So it would look like:
- TGV Nice-Ville - Mulhouse 06:57 - 14:54
- TER Mulhouse - Basel SBB -> 2-3 hourly trains
- IC Basel SBB - Zürich HB -> 5 hourly trains
EDIT: I'd have recommended the Mulhouse option but SNCF stupidly has an hour gap between 14:47 and 15:47... so all right I guess change in Dijon.