ShowPagesDialog.vue 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <el-dialog
  3. title="设置显示页面"
  4. v-model="dialogVisible"
  5. width="560px"
  6. @open="onOpen"
  7. >
  8. <el-form :model="form" label-width="140px" label-position="left">
  9. <el-form-item label="权益首页/列表页">
  10. <el-radio-group v-model="form.showOnHome">
  11. <el-radio label="显示">显示</el-radio>
  12. <el-radio label="不显示">不显示</el-radio>
  13. </el-radio-group>
  14. </el-form-item>
  15. <el-form-item label="组装页">
  16. <el-radio-group v-model="form.showOnAssembly">
  17. <el-radio label="显示">显示</el-radio>
  18. <el-radio label="不显示">不显示</el-radio>
  19. </el-radio-group>
  20. <div
  21. v-if="form.showOnAssembly === '显示'"
  22. style="background: #f1f2f5;padding: 16px;margin-top: 10px;"
  23. >
  24. <el-select
  25. v-model="form.assemblyPages"
  26. multiple
  27. filterable
  28. placeholder="请选择组装页"
  29. style="width: 100%"
  30. >
  31. <el-option label="组装页A" value="组装页A"></el-option>
  32. <el-option label="组装页B" value="组装页B"></el-option>
  33. <el-option label="组装页C" value="组装页C"></el-option>
  34. <el-option label="组装页D" value="组装页D"></el-option>
  35. </el-select>
  36. </div>
  37. </el-form-item>
  38. </el-form>
  39. <template #footer>
  40. <span>
  41. <el-button @click="dialogVisible = false">取消</el-button>
  42. <el-button type="primary" @click="handleConfirm">确定</el-button>
  43. </span>
  44. </template>
  45. </el-dialog>
  46. </template>
  47. <script>
  48. export default {
  49. name: 'ShowPagesDialog',
  50. props: {
  51. modelValue: { type: Boolean, default: false },
  52. row: { type: Object, default: null }
  53. },
  54. emits: ['update:modelValue', 'confirm'],
  55. data() {
  56. return {
  57. form: {
  58. showOnHome: '显示',
  59. showOnAssembly: '不显示',
  60. assemblyPages: []
  61. }
  62. }
  63. },
  64. computed: {
  65. dialogVisible: {
  66. get() { return this.modelValue },
  67. set(val) { this.$emit('update:modelValue', val) }
  68. }
  69. },
  70. methods: {
  71. onOpen() {
  72. if (this.row) {
  73. this.form.showOnHome = this.row.showOnHome || '显示'
  74. this.form.showOnAssembly = this.row.showOnAssembly || '不显示'
  75. this.form.assemblyPages = Array.isArray(this.row.assemblyPages)
  76. ? [...this.row.assemblyPages]
  77. : []
  78. } else {
  79. this.form.showOnHome = '显示'
  80. this.form.showOnAssembly = '不显示'
  81. this.form.assemblyPages = []
  82. }
  83. },
  84. handleConfirm() {
  85. this.$emit('confirm', { ...this.form, assemblyPages: [...this.form.assemblyPages] })
  86. this.dialogVisible = false
  87. }
  88. }
  89. }
  90. </script>