On the one hand, |$\hat{z} \times \vec{r}| = |r(\hat{z} \times \hat{r})|=rsin\theta $. direction ???
On the other hand, $\hat{z} \times \vec{r}=r\hat{z}\times({\hat{\rho}+\hat{z})} = r\hat{\varphi}$.
Generally I want to calculate $\hat{z} \times \vec{r}$ but I seem to get different answers in different method. What have I done wrong?
*$\rho$ is the radial component in cylindrical coordinates. $\phi$ is the azimuth angle and $\theta$ the polar angle.
Your error is in the second line: because you assumed $\vec{r} = r \hat{\rho} + r\hat{z}$ (which is clearly false because the length of the LHS is $r$, while on the RHS it is $\sqrt{2}r$). The correct equation is \begin{align} \vec{r} = (r \sin \theta)\, \hat{\rho} + (r \cos \theta)\, \hat{z} \end{align} If you plug this in, there's no contradiction anymore. The direction of the cross product $\hat{z} \times \vec{r}$ is \begin{align} \hat{\phi}&= -\sin \phi \, \hat{x} + \cos \phi \, \hat{y} \end{align}