lj-win-editable-mx.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <!--为单据明细浏览、修改共用页面,切换编辑/非编辑状态的机制-->
  2. <template>
  3. <lj-win-common :title="title" ref="baseWin">
  4. <template v-if="showDefaultSaveEditButton">
  5. <template v-if="editing">
  6. <!--<mu-button icon slot="header_right" @click="$emit('add')"><i class="iconfont icon-add"></i></mu-button>-->
  7. <template v-if="diaplaySaveButton">
  8. <mu-button icon slot="header_right" @click="handleSaveButton"><i class="iconfont icon-check"></i>
  9. </mu-button>
  10. </template>
  11. </template>
  12. <template v-else>
  13. <mu-button icon slot="header_right" @click="$emit('update:editing', true)"><i
  14. class="iconfont icon-edit"></i>
  15. </mu-button>
  16. </template>
  17. </template>
  18. <slot name="header_right" slot="header_right"></slot>
  19. <slot name="header_sub" slot="header_sub"></slot>
  20. <div slot="body" ref="bodyref">
  21. <slot name="body_top"></slot>
  22. <mu-row v-if="addable && editing" class="lj-group" @click="$emit('add')" style="text-align: center;">
  23. <mu-col>{{mxAddButtonText}}<i class="iconfont icon-add"></i></mu-col>
  24. </mu-row>
  25. <slot name="body_bottom"></slot>
  26. </div>
  27. <!--<slot name="body" slot="body" ref="bodyref">-->
  28. <!--</slot>-->
  29. <slot slot="footer" name="footer"></slot>
  30. </lj-win-common>
  31. </template>
  32. <script>
  33. import LjWinCommon from "components/lj-win-common";
  34. export default {
  35. name: "lj-win-editable-mx",
  36. components: {LjWinCommon},
  37. props: {
  38. showDefaultSaveEditButton:{
  39. type: Boolean,
  40. default: true
  41. },
  42. editing: {
  43. type: Boolean,
  44. default: false
  45. },
  46. title: {
  47. type: String,
  48. default: ""
  49. },
  50. saveHandler: {
  51. type: Function
  52. },
  53. addable: {
  54. type: Boolean,
  55. default: true
  56. },
  57. diaplaySaveButton: {
  58. type: Boolean,
  59. default: true
  60. },
  61. mxAddButtonText:{
  62. type: String,
  63. default : "增加明细"
  64. }
  65. },
  66. created() {
  67. if (this.getInitEditing) {
  68. this.editing = this.getInitEditing();
  69. }
  70. },
  71. data() {
  72. return {
  73. }
  74. },
  75. methods: {
  76. handleSaveButton() {
  77. if (!this.saveHandler) {
  78. console.error("lj-win-editable-mx:未指定saveHandler");
  79. return;
  80. }
  81. this.saveHandler(this.saveHandlerCallBack);
  82. },
  83. saveHandlerCallBack(saveResult){
  84. if (typeof(saveResult) !== "boolean") {
  85. console.error("lj-win-editable-mx:saveHandler返回值错误(true:成功;false:失败)");
  86. return;
  87. }
  88. if (saveResult) {
  89. this.$emit('update:editing', false);
  90. }
  91. }
  92. }
  93. }
  94. </script>
  95. <style scoped>
  96. </style>