passwordDialog.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <uni-popup ref="passwordPopup" :animation="false" :is-mask-click="false"
  3. mask-background-color="rgba(0, 0, 0, 0.4)">
  4. <view class="phone-common-dialog">
  5. <view class="common-body-box">
  6. <view class="common-title">修改密码</view>
  7. <view class="common-input-box">
  8. <view class="common-input-row">
  9. <text class="common-input-label"><text class="common-label-require">*</text>原密码:</text>
  10. <input class="common-input" v-model="data.oldPassWord" placeholder="请输入原密码" />
  11. </view>
  12. <view class="common-input-row">
  13. <text class="common-input-label"><text class="common-label-require">*</text>新密码:</text>
  14. <input class="common-input" v-model="data.newPassWord" placeholder="请输入新密码" />
  15. </view>
  16. <view class="common-input-row">
  17. <text class="common-input-label"><text class="common-label-require">*</text>确认密码:</text>
  18. <input class="common-input" v-model="data.okPassWord" placeholder="请确认密码" />
  19. </view>
  20. </view>
  21. <view class="common-btn-box">
  22. <view class="not-confirm-btn" @click="handleClose">{{notBtn}}</view>
  23. <view class="confirm-btn" @click="confirmBtn">{{okBtn}}</view>
  24. </view>
  25. </view>
  26. </view>
  27. </uni-popup>
  28. </template>
  29. <script setup>
  30. import {ref,reactive} from "vue"
  31. const props = defineProps({
  32. notBtn: {
  33. type: String,
  34. require: true,
  35. default: '取消'
  36. },
  37. okBtn: {
  38. type: String,
  39. require: true,
  40. default: '确认'
  41. },
  42. });
  43. const data = reactive({
  44. okPassWord: '',
  45. oldPassWord: '',
  46. newPassWord: '',
  47. })
  48. const passwordPopup = ref(null); // 索引
  49. const $emit = defineEmits(['confirm-btn'])
  50. // 打开弹窗
  51. function handleShow() {
  52. passwordPopup.value.open();
  53. }
  54. // 取消
  55. function handleClose() {
  56. passwordPopup.value.close();
  57. }
  58. // 确认
  59. function confirmBtn(){
  60. let arr = [];
  61. if (!data.oldPassWord) {
  62. arr.push('原密码');
  63. }
  64. if (!data.newPassWord) {
  65. arr.push('新密码');
  66. }
  67. if (!data.newPassWord) {
  68. arr.push('确认密码');
  69. }
  70. if (!data.oldPassWord || !data.newPassWord) {
  71. uni.showToast({
  72. icon: 'none',
  73. title: `请输入${arr.join('、')}信息!`
  74. })
  75. return;
  76. }
  77. if (data.newPassWord != data.okPassWord) {
  78. uni.showToast({
  79. icon: 'none',
  80. title: '新密码和确认密码不同'
  81. })
  82. return;
  83. }
  84. $emit('confirm-btn',data);
  85. passwordPopup.value.close();
  86. }
  87. defineExpose({
  88. handleShow,
  89. handleClose
  90. })
  91. </script>
  92. <style>
  93. </style>