messageDetail.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div id="messageDetail">
  3. <el-row v-if="loading">
  4. <el-col :span="24">
  5. <el-col :span="24" class="topBtn">
  6. <el-button type="primary" size="mini" @click="returnBtn()">返回</el-button>
  7. </el-col>
  8. </el-col>
  9. <el-col>
  10. <el-col :span="24" class="messgae">
  11. <el-form ref="form" :rules="rules" :model="form" label-width="80px">
  12. <el-form-item label="信息标题" prop="title">
  13. <el-input v-model="form.title" placeholder="请输入信息标题"></el-input>
  14. </el-form-item>
  15. <el-form-item label="来源">
  16. <el-input v-model="form.orgin" placeholder="请输入信息来源"></el-input>
  17. </el-form-item>
  18. <el-form-item label="所属栏目" placeholder="请选择所属栏目">
  19. <el-select v-model="form.column_id" filterable @change="selectChild">
  20. <el-option v-for="(item, index) in columnList" :key="index" :value="item.id" :label="item.name"></el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item label="标题简介">
  24. <el-input type="textarea" v-model="form.titlejj" placeholder="请输入标题简介"></el-input>
  25. </el-form-item>
  26. <el-form-item label="信息图片" prop="picture">
  27. <upload :limit="1" :data="form.picture" type="picture" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
  28. </el-form-item>
  29. <el-form-item label="视频" prop="filepath">
  30. <upload :limit="1" :data="form.filepath" type="filepath" listType="" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
  31. </el-form-item>
  32. <el-form-item label="信息内容">
  33. <wang-editor v-model="form.content" placeholder="请输入信息内容"></wang-editor>
  34. </el-form-item>
  35. <el-form-item label="发布时间">
  36. <el-col :span="11">
  37. <el-date-picker type="date" placeholder="发布时间" value-format="yyyy-MM-dd" v-model="form.publish_time" style="width: 100%;"></el-date-picker>
  38. </el-col>
  39. </el-form-item>
  40. <el-form-item>
  41. <el-button type="primary" @click="onSubmit()">提交</el-button>
  42. </el-form-item>
  43. </el-form>
  44. </el-col>
  45. </el-col>
  46. </el-row>
  47. </div>
  48. </template>
  49. <script>
  50. import WangEditor from '@/components/wang-editor.vue';
  51. import upload from '@/components/upload.vue';
  52. export default {
  53. name: 'messageDetail',
  54. props: {
  55. form: null,
  56. columnList: null,
  57. loading: null,
  58. },
  59. components: {
  60. WangEditor,
  61. upload,
  62. },
  63. data: () => ({
  64. rules: {
  65. title: [
  66. { required: true, message: '请输入信息标题', trigger: 'blur' },
  67. { min: 3, max: 5, message: '长度在 0 到 50 个字符', trigger: 'blur' },
  68. ],
  69. },
  70. }),
  71. created() {},
  72. computed: {},
  73. methods: {
  74. returnBtn() {
  75. this.$router.push({ path: '/technical/index' });
  76. },
  77. onSubmit() {
  78. this.$emit('submitDate', { data: this.form, id: this.form.id });
  79. },
  80. selectChild(column_id) {
  81. let res = this.columnList.filter(fil => fil.id === column_id);
  82. if (res.length > 0) {
  83. this.$set(this.form, `column_name`, res[0].name);
  84. }
  85. this.$forceUpdate();
  86. },
  87. uploadSuccess({ type, data }) {
  88. this.$set(this.form, `${type}`, data.uri);
  89. },
  90. },
  91. };
  92. </script>
  93. <style lang="less" scoped>
  94. .topBtn {
  95. text-align: right;
  96. padding: 15px 5px;
  97. }
  98. </style>