MysqlCreateVue.go 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package util
  2. import "strings"
  3. // 修改mysql数据库对应的go类型
  4. func formatSqlToVueType(str string) string {
  5. str = strings.ToLower(str)
  6. switch str {
  7. case "varchar":
  8. return "string"
  9. case "char":
  10. return "string"
  11. case "int":
  12. return "number"
  13. case "decimal":
  14. return "number"
  15. case "datetime":
  16. return "string"
  17. case "longblob":
  18. return "string"
  19. default:
  20. panic("未定义的类型:" + str)
  21. }
  22. }
  23. func MysqlToVueApi() {
  24. vueFileContent := "import api, {ResponseData} from \"../api.ts\";\n\n"
  25. var objectList = ""
  26. var apiList = ""
  27. //生成结构体
  28. for i := range MTables {
  29. table := MTables[i]
  30. //添加名字
  31. objectList += "export class " + table.GreatHump + "{"
  32. ct := "\n\tstatic Create(){\n return new " + table.GreatHump + "("
  33. for j := range table.MColumns {
  34. column := table.MColumns[j]
  35. objectList += "\n\t" + column.LittleHump + ": " + column.VueTypeName
  36. ct += "null,"
  37. //switch column.VueTypeName {
  38. //case "number":
  39. // ct += "0,"
  40. // break
  41. //case "string":
  42. // ct += "\"\","
  43. //}
  44. }
  45. objectList += ct + ");\n }"
  46. objectList += "\n\n\tconstructor("
  47. for j := range table.MColumns {
  48. column := table.MColumns[j]
  49. objectList += column.LittleHump + ": " + column.VueTypeName + ", "
  50. }
  51. objectList += ") {"
  52. for j := range table.MColumns {
  53. column := table.MColumns[j]
  54. objectList += "\n\t\tthis." + column.LittleHump + " = " + column.LittleHump + ";"
  55. }
  56. objectList += "\n\t}\n}\n\n"
  57. //生成api
  58. apiList += "export function GetBase" + table.GreatHump + "ById(id: number | string) {" +
  59. "\n return api.GetDataByPath(\"/back/base/" + table.LittleHump + "?id=\" + id, {}, true) as Promise<ResponseData<" + table.GreatHump + ">>;" +
  60. "\n}" +
  61. "\n" +
  62. //"\nexport function GetBase" + table.GreatHump + "ListBy" + table.GreatHump + "(" + table.GreatHump + ": " + table.GreatHump + ", pageNum = 1, pageSize = 10) {" +
  63. "\nexport function GetBase" + table.GreatHump + "ListBy" + table.GreatHump + "(param: " + table.GreatHump + ", pageNum = 1, pageSize = 10) {" +
  64. "\n return api.PostDataByPath(\"/back/base/" + table.LittleHump + "/list\", {param: param,pageNum: pageNum,pageSize: pageSize}, true) as Promise<ResponseData<BaseListVo<" + table.GreatHump + ">[]>>;" +
  65. "\n}" +
  66. "\n" +
  67. "\nexport function GetBase" + table.GreatHump + "ListByIds(ids: number[] | string[]) {" +
  68. "\n return api.PostDataByPath(\"/back/base/" + table.LittleHump + "/in\", {" +
  69. "\n ids: ids" +
  70. "\n }, true) as Promise<ResponseData<" + table.GreatHump + "[]>>;" +
  71. "\n}" +
  72. "\n" +
  73. "\nexport function SaveBase" + table.GreatHump + "(" + table.GreatHump + ": " + table.GreatHump + ") {" +
  74. "\n return api.PostDataByPath(\"/back/base/" + table.LittleHump + "\", {article: " + table.GreatHump + "}, true) as Promise<ResponseData<" + table.GreatHump + ">>;" +
  75. "\n}" +
  76. "\n" +
  77. "\nexport function UpdateBase" + table.GreatHump + "(" + table.GreatHump + ": " + table.GreatHump + ", id: number | string) {" +
  78. "\n return api.GetDataByPath(\"/back/base/" + table.LittleHump + "\", {" + table.LittleHump + ": " + table.GreatHump + ", id: id}, true) as Promise<ResponseData<" + table.GreatHump + ">>;" +
  79. "\n}" +
  80. "\n" +
  81. "\nexport function DeleteBase" + table.GreatHump + "ById(id: number | string) {" +
  82. "\n return api.GetDataByPath(\"/back/base/" + table.LittleHump + "?id=\" + id, {}, true) as Promise<ResponseData<any>>;" +
  83. "\n}\n\n"
  84. }
  85. url := "D:\\project\\study\\kkc\\kkc-shop\\src\\api\\back\\BaseBackApi.ts"
  86. WriteFile(url, vueFileContent+apiList+objectList)
  87. }