passwordDialog.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. function passClear(){
  51. data.okPassWord = '';
  52. data.oldPassWord = '';
  53. data.newPassWord = '';
  54. }
  55. // 打开弹窗
  56. function handleShow() {
  57. passwordPopup.value.open();
  58. }
  59. // 取消
  60. function handleClose() {
  61. passClear();
  62. passwordPopup.value.close();
  63. }
  64. // 确认
  65. function confirmBtn(){
  66. let arr = [];
  67. if (!data.oldPassWord) {
  68. arr.push('原密码');
  69. }
  70. if (!data.newPassWord) {
  71. arr.push('新密码');
  72. }
  73. if (!data.newPassWord) {
  74. arr.push('确认密码');
  75. }
  76. if (!data.oldPassWord || !data.newPassWord) {
  77. uni.showToast({
  78. icon: 'none',
  79. title: `请输入${arr.join('、')}信息!`
  80. })
  81. return;
  82. }
  83. if (data.newPassWord != data.okPassWord) {
  84. uni.showToast({
  85. icon: 'none',
  86. title: '新密码和确认密码不同'
  87. })
  88. return;
  89. }
  90. $emit('confirm-btn',data);
  91. passClear();
  92. passwordPopup.value.close();
  93. }
  94. defineExpose({
  95. handleShow,
  96. handleClose
  97. })
  98. </script>
  99. <style>
  100. </style>