edit.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <div>
  3. <el-form ref="form" :rules="rules" :model="form" label-width="120px">
  4. <el-form-item
  5. label="分类名称:"
  6. prop="name"
  7. >
  8. <el-input v-model="form.name" maxlength="50" placeholder="请输入分类名称"></el-input>
  9. </el-form-item>
  10. <el-form-item
  11. label="父级名称:"
  12. prop="pid"
  13. >
  14. <el-cascader
  15. v-model="form.pid"
  16. :options="Categorylist"
  17. :props="{
  18. checkStrictly: true,
  19. value:'id',
  20. label:'name',
  21. children:'children',
  22. }"
  23. clearable></el-cascader>
  24. </el-form-item>
  25. <el-form-item label="排序:" prop="sort">
  26. <el-input v-model.number="form.sort" placeholder="输入排序" ></el-input>
  27. </el-form-item>
  28. <el-form-item label="seo-标题:" prop="seo_title">
  29. <el-input v-model="form.seo_title" maxlength="50" placeholder="输入标题" ></el-input>
  30. </el-form-item>
  31. <el-form-item label="seo-关键字:" prop="seo_keywords">
  32. <el-input type="textarea" v-model="form.seo_keywords" maxlength="30"
  33. show-word-limit placeholder="输入关键字" ></el-input>
  34. </el-form-item>
  35. <el-form-item label="seo-描述:" prop="seo_description">
  36. <el-input type="textarea" v-model="form.seo_description" maxlength="80"
  37. show-word-limit placeholder="输入描述" ></el-input>
  38. </el-form-item>
  39. <el-form-item>
  40. <div style="text-align: center">
  41. <el-button type="primary" @click="onSubmit" :disabled="Isdisabled" :loading="isloading">保存</el-button>
  42. <el-button style="color: #5075FC " @click="closeDlg">取消</el-button>
  43. </div>
  44. </el-form-item>
  45. </el-form>
  46. </div>
  47. </template>
  48. <script>
  49. export default {
  50. props: {
  51. CategoryDataForm: {
  52. type: Object,
  53. default: () => {}
  54. },
  55. isloading:{
  56. type:Boolean,
  57. default: true
  58. },
  59. closeDlg:{
  60. type:Function
  61. }
  62. },
  63. data() {
  64. return {
  65. form: {
  66. name: '',
  67. pid:"",
  68. icon:"",
  69. sort:"",
  70. is_links:"",
  71. hidden:"",
  72. pid:[0]
  73. },
  74. Categorylist: [],
  75. Isdisabled: false,
  76. rules: {
  77. label: [
  78. { required: true, message: '分类名称必填' },
  79. ],
  80. sort: [
  81. { pattern: /^[0-9]\d*$/, message: '排序值格式错误' },
  82. ]
  83. }
  84. }
  85. },
  86. mounted() {
  87. if(this.CategoryDataForm) {
  88. this.form = Object.assign({} , this.CategoryDataForm)
  89. }
  90. this.getRecursionCategory()
  91. },
  92. methods: {
  93. closeDlg() {
  94. console.log("edit提交")
  95. this.$emit('closeDlg',1)
  96. },
  97. onSubmit() {
  98. let that = this
  99. that.$refs['form'].validate((valid) => {
  100. if (valid) {
  101. this.$emit('CategorySubmitClick', this.form)
  102. }
  103. })
  104. },
  105. getRecursionCategory(){
  106. let _t= this
  107. let parames = {}
  108. this.$api.news.categoryList(parames).then(res=>{
  109. if(res.code==200){
  110. _t.Categorylist = res.data
  111. }else{
  112. this.$message.error("查询失败")
  113. }
  114. })
  115. },
  116. }
  117. }
  118. </script>
  119. <style>
  120. .el-cascader-node>.el-radio{
  121. margin-top:25px;
  122. }
  123. </style>