detail.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <div class='app-container'>
  3. <el-form :model="form" ref="form" :rules="rules" label-width="100px" :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="协议类型:" prop="type">
  8. <el-select v-model="form.type" placeholder="请选择协议类型">
  9. <el-option v-for="item in typeOptions" :key="item.value" :value="item.value" :label="item.label" />
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item label="协议内容:" prop="content">
  13. <Editor v-model="form.content" :height="500" :readOnly="disabled" />
  14. </el-form-item>
  15. </el-form>
  16. <div class="form-btn">
  17. <el-button @click="cancel">取消</el-button>
  18. <el-button v-if="!disabled" type="primary" @click="getSubmit">确定</el-button>
  19. </div>
  20. </div>
  21. </template>
  22. <script>
  23. import Editor from "@/components/Editor/index";
  24. import { submit, detail } from '@/api/operation/agreement'
  25. export default {
  26. components: {
  27. Editor
  28. },
  29. data() {
  30. return {
  31. // 表单
  32. form: {},
  33. // 协议类型
  34. typeOptions: [{
  35. value: 0,
  36. label: '用户协议'
  37. }, {
  38. value: 1,
  39. label: '隐私协议'
  40. }, {
  41. value: 2,
  42. label: '音乐服务许可协议'
  43. }, {
  44. value: 3,
  45. label: '儿童隐私保护指南'
  46. }, {
  47. value: 4,
  48. label: 'VIP音乐服务协议'
  49. }, {
  50. value: 5,
  51. label: '爱听付费协议'
  52. }],
  53. // 校验
  54. rules: {
  55. name: [{
  56. required: true, message: '请输入协议名称', trigger: 'blur'
  57. }],
  58. type: [{
  59. required: true, message: '请选择协议类型', trigger: 'change'
  60. }],
  61. content: [{
  62. required: true, message: '请输入协议内容', trigger: 'blur'
  63. }]
  64. },
  65. // 只读
  66. disabled: this.$route.query.boolean ? true : false
  67. }
  68. },
  69. mounted() {
  70. if (this.$route.query.id) {
  71. this.getDetail()
  72. }
  73. },
  74. methods: {
  75. // 详情
  76. getDetail() {
  77. detail(this.$route.query.id).then(res => {
  78. if (res.code === 0) {
  79. this.form = res.data
  80. }
  81. })
  82. },
  83. // 取消
  84. cancel() {
  85. this.$tab.closeOpenPage('/operation/agreement')
  86. },
  87. // 提交
  88. getSubmit() {
  89. this.$refs.form.validate((valid) => {
  90. if (valid) {
  91. submit(this.form).then(res => {
  92. if (res.code === 0) {
  93. this.$message.success('提交成功!')
  94. this.cancel()
  95. }
  96. })
  97. } else {
  98. return false
  99. }
  100. })
  101. }
  102. }
  103. }
  104. </script>
  105. <style lang="scss" scoped>
  106. .el-form-item {
  107. width: 500px;
  108. }
  109. </style>