Flow-driven regulation of CaCO3 precipitation and fracture evolution in heterogeneous fractures