Диалог пользовательского интерфейса элемента Vue js

Как я могу создать левую верхнюю кнопку закрытия диалогового окна? Я хочу изменить его с помощью собственной кнопки закрытия.

Есть ли способ его изменить?

Например.

<el-dialog
  title="Tips"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  <span>My custom close button</span> # my close button left top corner.

</el-dialog>

person NAO    schedule 19.09.2020    source источник
comment
хотите что-то вроде этого?   -  person Boussadjra Brahim    schedule 19.09.2020
comment
@BoussadjraBrahim Нет, мне нужен текст Закрыть, содержащий значок x.   -  person NAO    schedule 19.09.2020
comment
@BoussadjraBrahim спасибо, что это хорошая идея. Но мне нужен текст Close. Нет способа сделать это, какие-то трюки с машинописным текстом или javascript?   -  person NAO    schedule 19.09.2020
comment
обычно некоторые компоненты предоставляют слоты для настройки рендеринга некоторых частей, но в этом случае нет слота, предназначенного для закрытия, element.eleme.io / # / en-US / component / dialog # slot   -  person Boussadjra Brahim    schedule 19.09.2020
comment
@BoussadjraBrahim большое спасибо   -  person NAO    schedule 19.09.2020
comment
я мог бы предложить манипуляции с DOM с использованием чистого js, но это не очень хорошая практика   -  person Boussadjra Brahim    schedule 19.09.2020
comment
@BoussadjraBrahim Если не так уж сложно, не могли бы вы показать один пример!   -  person NAO    schedule 19.09.2020
comment
@BoussadjraBrahim Я могу сделать это, выбрав исходный DOM и манипулируя им, но мне нужен другой опыт.   -  person NAO    schedule 19.09.2020
comment
Да, вам следует использовать другое решение, потому что манипулирование dom с помощью js - очень плохая практика   -  person Boussadjra Brahim    schedule 19.09.2020
comment
@BoussadjraBrahim codepen.io/SomeOneOrAnyOne/pen/ExKdLzJ Я нашел это. Этого достаточно.   -  person NAO    schedule 19.09.2020
comment
Хорошо, опубликуйте это как ответ   -  person Boussadjra Brahim    schedule 19.09.2020
comment
@BoussadjraBrahim Спасибо!   -  person NAO    schedule 19.09.2020


Ответы (2)


Да, есть одно свойство, вы можете скрыть кнопку закрытия по умолчанию, и после этого вы можете добавить свою собственную кнопку закрытия или любой стиль

const app = new Vue({
  el: '#app',
  data() {
    return {
      dialogVisible: false,
    }
  },
  methods: {
        beforeClose(done) {
        this.dialogVisible = false;
      done();
    }
  }
})
.my-class {
    position: absolute;
    top: 15px;
    left: 10px;

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.12/vue.common.dev.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.13.2/index.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.13.2/theme-chalk/index.css" rel="stylesheet">

<body>
  <div id="app">
    <el-button @click="dialogVisible = true">Click</el-button>
    <!-- <el-dialog :visible.sync="dialogVisible"> -->
    <el-dialog :visible="dialogVisible" :before-close="beforeClose" :show-close="false">
    <span class="my-class"><el-button type="danger" round  @click="dialogVisible = false">Close</el-button></span>
    
     
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">Cancel</el-button>
        <el-button type="primary" @click="dialogVisible = false">Save</el-button>
      </div>
    </el-dialog>
  </div>
</body>

Ваш CSS

person Arslan Butt    schedule 21.09.2020

Я нашел это. Я просто немного обманул его.

А вот и хитрый способ.

el-icon-close:before{
  content: "Close";
}

пример codePen

person NAO    schedule 07.10.2020