detail.vue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <div class='app-container'>
  3. <el-form :model="form" ref="form" :rules="rules" label-width="auto" :disabled="disabled">
  4. <el-form-item label="视频宣传名称:" prop="name">
  5. <el-input v-model="form.name" placeholder="请输入视频宣传名称" />
  6. </el-form-item>
  7. <el-form-item label="设备型号:">
  8. <el-input v-model="form.clientType" placeholder="请输入设备型号" disabled />
  9. </el-form-item>
  10. <el-form-item label="视频宣传内容:" prop="content">
  11. <Editor v-model="form.content" :min-height="250" :readOnly="disabled" />
  12. </el-form-item>
  13. </el-form>
  14. <div style="margin-left: 120px;">
  15. <el-button @click="close">取消</el-button>
  16. <el-button v-if="!disabled" type="primary" @click="getSubmit">确定</el-button>
  17. </div>
  18. </div>
  19. </template>
  20. <script>
  21. import { submit, detail } from '@/api/content/video'
  22. export default {
  23. data() {
  24. return {
  25. form: {
  26. id: this.$route.query.id
  27. },
  28. // 只读
  29. disabled: Boolean(this.$route.query.boolean),
  30. // 校验
  31. rules: {
  32. name: [{
  33. required: true, message: '请输入视频宣传名称', trigger: 'blur'
  34. }],
  35. content: [{
  36. required: true, message: '请输入视频宣传内容', trigger: 'blur'
  37. }]
  38. }
  39. }
  40. },
  41. mounted() {
  42. if (this.form.id) {
  43. this.getDetail()
  44. }
  45. },
  46. methods: {
  47. // 详情
  48. getDetail() {
  49. detail(this.form.id).then(res => {
  50. if (res.code === 0) {
  51. this.form = res.data
  52. }
  53. })
  54. },
  55. // 确定
  56. getSubmit() {
  57. this.$refs.form.validate((valid) => {
  58. if (valid) {
  59. submit(this.form).then(res => {
  60. if (res.code === 0) {
  61. this.$message.success('提交成功!')
  62. this.close()
  63. }
  64. })
  65. } else {
  66. return false
  67. }
  68. })
  69. },
  70. // 取消
  71. close() {
  72. this.$tab.closeOpenPage("/content/video");
  73. }
  74. }
  75. }
  76. </script>
  77. <style lang="scss" scoped>
  78. .el-form-item {
  79. width: 500px;
  80. }
  81. </style>