single-controller.js.ftl 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import {invokeServer, msg, Scope} from 'yvan-ext'
  2. import _ from 'lodash'
  3. import vjson from "./${moduleName}.view"
  4. import model from "./${moduleName}.model"
  5. export default class ${moduleName} extends Scope {
  6. path = '${invokeUrl!""}'
  7. constructor() {
  8. super({model, vjson});
  9. }
  10. onLoad() {
  11. }
  12. grid1Select(sender, selected) {
  13. this.viewModel.set('${primaryKey}', selected[0]?.data?.${primaryKey})
  14. }
  15. <#switch editType>
  16. <#case 1>
  17. <#break>
  18. <#case 2>
  19. add() {
  20. this.refs.grid1.appendEditRow({}, 1)
  21. }
  22. <#break>
  23. <#case 3>
  24. <#break>
  25. <#default>
  26. </#switch>
  27. <#if delete>
  28. remove() {
  29. this.refs.grid1.removeEditRow()
  30. }
  31. </#if>
  32. <#if editType != 1 || delete>
  33. save() {
  34. let {newRows, modifyRows, removeRecords, rows, err} = system.getGridEditRows(this.refs.grid1)
  35. if (err) {
  36. return
  37. }
  38. const primaryKey = this.viewModel.get('primaryKey')
  39. this.setLoading(true)
  40. invokeServer('${invokeUrl!''}@saveItems', {
  41. primaryKey,
  42. newRows,
  43. modifyRows,
  44. removeRecords,
  45. }).then(res => {
  46. system.msg(res.msg)
  47. this.refs.grid1.reload()
  48. }).finally(() => {
  49. this.setLoading(false)
  50. })
  51. }
  52. </#if>
  53. }