index.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { NButton, NScrollbar, NModal } from 'naive-ui';
  2. import { defineComponent } from 'vue';
  3. import styles from './index.module.less';
  4. export default defineComponent({
  5. name: 'the-tip-dialog',
  6. props: {
  7. show: Boolean,
  8. title: {
  9. type: String,
  10. default: '提示'
  11. },
  12. cancelButtonText: {
  13. type: String,
  14. default: '取消'
  15. },
  16. confirmButtonText: {
  17. type: String,
  18. default: '确定'
  19. },
  20. cancelBtn: {
  21. type: Boolean,
  22. default: true
  23. },
  24. confirmBtn: {
  25. type: Boolean,
  26. default: true
  27. },
  28. content: {
  29. type: String,
  30. default: ''
  31. }
  32. },
  33. emits: ['close', 'confirm'],
  34. setup(props, { emit }) {
  35. return () => (
  36. <NModal
  37. class={['modalTitle', styles.theTipDialog]}
  38. on-close={() => {
  39. emit('close');
  40. }}
  41. show={props.show}
  42. preset="card"
  43. title={props.title}>
  44. <div class={styles.tipCon}>
  45. <div class={styles.tipBox}>
  46. <NScrollbar>
  47. <div class={styles.tip} v-html={props.content}></div>
  48. </NScrollbar>
  49. </div>
  50. <div class={styles.tipBtnBox}>
  51. {props.cancelBtn && (
  52. <NButton round onClick={() => emit('close')}>
  53. {props.cancelButtonText}
  54. </NButton>
  55. )}
  56. {props.confirmBtn && (
  57. <NButton type="primary" round onClick={() => emit('confirm')}>
  58. {props.confirmButtonText}
  59. </NButton>
  60. )}
  61. </div>
  62. </div>
  63. </NModal>
  64. );
  65. }
  66. });