CreateArticleForm.vue 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <div id="create-article-form-box">
  3. <el-dialog
  4. title="添加分类"
  5. :visible.sync="centerDialogVisible"
  6. width="1000px"
  7. center>
  8. <el-form label-width="90px" class="clearfix" :model="form" ref="acticleform" :rules="rules">
  9. <el-row :span=20>
  10. <el-form-item label="分类名称:" required prop="name">
  11. <el-input v-model="form.name">
  12. </el-input>
  13. </el-form-item>
  14. </el-row>
  15. <el-row :span=20>
  16. <el-form-item label="分类描述:" required prop="summary">
  17. <div style="margin: 10px 0;"></div>
  18. <el-input
  19. type="textarea"
  20. :autosize="{ minRows: 2, maxRows: 4}"
  21. v-model="form.summary">
  22. </el-input>
  23. </el-form-item>
  24. </el-row>
  25. <el-row :span=20>
  26. <el-form-item label="排序:" required prop="order">
  27. <el-input v-model="form.order">
  28. </el-input>
  29. </el-form-item>
  30. <div class="tips"><p>请输入1-99的整数,数值越小,模块排序越靠前</p></div>
  31. </el-row>
  32. </el-form>
  33. <span slot="footer" class="dialog-footer">
  34. <el-button type="primary" @click="addCategory('acticleform');">添加</el-button>
  35. <el-button @click="centerDialogVisible = false">返回列表</el-button>
  36. </span>
  37. </el-dialog>
  38. </div>
  39. </template>
  40. <script>
  41. import { addCategory,getAritcleCount } from '@/api/act/submitinfo'
  42. import {checkNumber} from "@/utils/tools";
  43. export default {
  44. name: "CreateArticleForm",
  45. props:{
  46. articsData:{
  47. type: Array,
  48. default: function () {
  49. return [];
  50. }
  51. }
  52. },
  53. data(){
  54. var checkNumberRule = (rule, value, callback) => {
  55. if (!checkNumber(value)) {
  56. callback(new Error('请输入1-99的整数'));
  57. }else {
  58. callback();
  59. }
  60. };
  61. return {
  62. centerDialogVisible:false,
  63. rules: {
  64. name: [{required: true, message: "请填写分类名称",},],
  65. summary: [{required: true,message:"请填写分类描述"}],
  66. order: [{required: true,message:"请填写排序"},{validator:checkNumberRule}],
  67. },
  68. acticleform:[],
  69. form:{
  70. name:"",
  71. summary:"",
  72. order:"",
  73. },
  74. }
  75. },
  76. methods:{
  77. open:function(){
  78. this.centerDialogVisible = true;
  79. },
  80. resetForm(formName) {
  81. if (typeof(this.$refs[formName]) !='undefined') {
  82. this.$refs[formName].resetFields();
  83. }
  84. },
  85. addCategory(formName){
  86. this.$refs[formName].validate((valid)=>{
  87. if(valid){
  88. var params = new Object();
  89. params.name = this.form.name;
  90. params.summary = this.form.summary;
  91. params.order = this.form.order;
  92. console.log("对象params是什么?",params);
  93. addCategory(params).then(response =>{
  94. console.log("添加分类响应",response.data.state)
  95. if(response.data.state==1){
  96. var category = response.data.data.category;
  97. console.log("category是什么",category)
  98. this.centerDialogVisible=false;
  99. this.articsData.unshift(category);
  100. this.resetForm("acticleform");
  101. this.$message.success("添加分类成功");
  102. }else{
  103. this.$message.error("该分类名称已存在");
  104. }
  105. }).catch(e=>{})
  106. }
  107. });
  108. },
  109. },
  110. }
  111. </script>
  112. <style scoped>
  113. .tips {
  114. font-size: 12px;
  115. line-height: 18px;
  116. width:100%;
  117. height: 100px;
  118. /* border:solid 1px red; */
  119. margin-left: 86px;
  120. }
  121. </style>