Technically the J-10 operational model now is J-10A. The original J-10s were prototypes and rather than produce it, the development skipped to the J-10A. So the next model is J-10B. J-10S refers to the two seat version. It appears that JJ- has been dropped for trainer. The new designation for trainers is JL-, like the JL-9.
The Chinese do not use the same coding like the Americans do. Some letters are reserved like the S for twin seater.
F = Air Defense, expected this to be reserved for an interceptor, like in J-8F.
G = Gai or Improved like J-7G.
H = Hai or sea. Reserved for a naval version.
For example, after J-7E, it jumps to J-7G. as the J-7G is an improvement of the J-7E.
J-7F is reserved for a version of the J-7E/G that may probably never be released for various reasons and that is a version capable of using the PL-12, kind of like a Chinese MiG-21 Bison. Similarly, you got the J-7FS prototype and the F-7MF concept, which was a model displayed in previous Zhuhai airshows (no longer with this one apparently).
J-7H is the J-7B updated with J-7E avionics and originally intended for the PLANAF but used with the PLAAF as well.
Don't confuse the Chinese use of the "M" like with the Russians use of the same letter. For the Russians it means "modified" or something like that, but for the Chinese, M means for export. That's why you got F-7M and F-7MG. F-7M means J-7 for export and F-7MG would mean J-7 for export improved. One can guess what F-7MF means.