save.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <!--
  2. * @Descripttion: 此文件由SCUI生成,典型的VUE增删改列表页面组件
  3. * @version: 1.0
  4. * @Author: SCUI AutoCode 模板版本 1.0.0-beta.1
  5. * @Date: <%= createDate %>
  6. * @LastEditors: (最后更新作者)
  7. * @LastEditTime: (最后更新时间)
  8. -->
  9. <template>
  10. <el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="left">
  11. <% column.forEach(function(item, index){ %>
  12. <el-form-item label="<%= item.label %>" prop="<%= item.prop %>">
  13. <el-input v-model="form.<%= item.prop %>" clearable></el-input>
  14. </el-form-item>
  15. <% })%>
  16. </el-form>
  17. </template>
  18. <script>
  19. export default {
  20. props: {
  21. mode: { type: String, default: "add" }
  22. },
  23. data() {
  24. return {
  25. //表单数据
  26. form: {
  27. <%= base.rowKey %>:"",
  28. <% column.forEach(function(item, index){ %>
  29. <%= item.prop %>: "",
  30. <% })%>
  31. },
  32. //验证规则
  33. rules: {
  34. <% column.forEach(function(item, index){ %>
  35. <%= item.prop %>: [
  36. {required: true, message: '请输入<%= item.label %>'}
  37. ],
  38. <% })%>
  39. },
  40. }
  41. },
  42. mounted(){
  43. },
  44. methods: {
  45. //表单提交方法
  46. submit(callback){
  47. this.$refs.dialogForm.validate((valid) => {
  48. if (valid) {
  49. callback(this.form)
  50. }else{
  51. return false;
  52. }
  53. })
  54. },
  55. //表单注入数据
  56. setData(data){
  57. this.form.<%= base.rowKey %> = data.<%= base.rowKey %>
  58. <% column.forEach(function(item, index){ %>
  59. this.form.<%= item.prop %> = data.<%= item.prop %>
  60. <% })%>
  61. //可以和上面一样单个注入,也可以像下面一样直接合并进去
  62. //Object.assign(this.form, data)
  63. }
  64. }
  65. }
  66. </script>
  67. <style>
  68. </style>