single-controller.js.ftl 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. refresh() {
  13. this.refs.grid1.reload()
  14. }
  15. grid1Select(sender, selected) {
  16. this.viewModel.set('${primaryKey}', selected[0]?.data?.${primaryKey})
  17. }
  18. <#switch editType>
  19. <#case 1>
  20. <#break>
  21. <#case 2>
  22. add() {
  23. this.refs.grid1.appendEditRow({}, 1)
  24. }
  25. <#break>
  26. <#case 3>
  27. <#break>
  28. <#default>
  29. </#switch>
  30. <#if delete>
  31. remove() {
  32. this.refs.grid1.removeEditRow()
  33. }
  34. </#if>
  35. <#if editType != 1 || delete>
  36. save() {
  37. let {newRows, modifyRows, removeRecords, rows, err} = system.getGridEditRows(this.refs.grid1)
  38. if (err) {
  39. return
  40. }
  41. const primaryKey = this.viewModel.get('primaryKey')
  42. this.setLoading(true)
  43. invokeServer('${invokeUrl!''}@saveItems', {
  44. primaryKey,
  45. newRows,
  46. modifyRows,
  47. removeRecords,
  48. }).then(res => {
  49. system.msg(res.msg)
  50. this.refs.grid1.reload()
  51. }).finally(() => {
  52. this.setLoading(false)
  53. })
  54. }
  55. </#if>
  56. }