identification.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <view>
  3. <uni-popup ref="popupRef" type="dialog" :animation="false" :is-mask-click="false"
  4. mask-background-color="rgba(0, 0, 0, 0.4);">
  5. <uni-popup-dialog mode="input" class="phone-ksxz-dialog" title="身份确认" :duration="2000" :before-close="true"
  6. cancelText="修改" @close="handleClose" @confirm="handleConfirm">
  7. <view class="phone-ksxz-body">
  8. <view @click="handleCloseOnly" class="ksxz-close-icon" >
  9. <icon :style="{ backgroundImage: 'url(' + data.iconsArr.closeIcon + ')' }"></icon>
  10. </view>
  11. <view class="ksxz-content-box">
  12. <!-- Fixme 图形 -->
  13. <img class="phone-default-userImg ksxz-user-img" :src="data.icon" v-if="data.icon" alt=""/>
  14. <icon class="phone-default-userImg ksxz-user-img" v-else :style="{ backgroundImage: 'url(' + data.iconsArr.defaultUserImg + ')' }"></icon>
  15. <view :class="{isEmpty: !data.realName}">姓名:{{data.realName}}</view>
  16. <view :class="{isEmpty: !data.realName}">电话:{{data.userName}}</view>
  17. <view>职业:{{data.zyName}}</view>
  18. <view>等级:{{data.zyLevelName}}</view>
  19. <view :class="{isEmpty: !data.realName}">证件号:{{data.idcard}}</view>
  20. </view>
  21. </view>
  22. </uni-popup-dialog>
  23. </uni-popup>
  24. </view>
  25. </template>
  26. <script setup>
  27. import {ref,reactive,onMounted} from "vue"
  28. import cacheManager from '@/utils/cacheManager.js';
  29. const popupRef = ref(null)
  30. const data = reactive({
  31. realName: '',
  32. userName: '',
  33. zyLevelName: '',
  34. zyName: '',
  35. idcard: '',
  36. icon: '',
  37. gender: '',
  38. userId: '',
  39. iconsArr:{
  40. closeIcon: '',
  41. defaultUserImg: '',
  42. }
  43. })
  44. const emits = defineEmits(['confirm', 'changeData'])
  45. onMounted(() => {
  46. data.iconsArr.closeIcon = cacheManager.get('projectImg').closeIcon;
  47. data.iconsArr.defaultUserImg = cacheManager.get('projectImg').user_default_img;
  48. });
  49. function handleCloseOnly() {
  50. popupRef.value.close()
  51. }
  52. function showDialog(options) {
  53. data.realName = options.realName;
  54. data.userName = options.userName;
  55. data.zyLevelName = options.zyLevelName;
  56. data.zyName = options.zyName;
  57. data.idcard = options.idcard;
  58. data.icon = options.icon;
  59. data.userId = options.userId;
  60. data.gender = options.gender; // 1男 2女 0未知
  61. popupRef.value.open()
  62. }
  63. function handleClose() {
  64. emits('changeData');
  65. popupRef.value.close()
  66. }
  67. function handleConfirm() {
  68. let arr = [];
  69. if (!data.realName) {
  70. arr.push('姓名');
  71. }
  72. if (!data.userName) {
  73. arr.push('电话');
  74. }
  75. if (!data.icon) {
  76. arr.push('头像');
  77. }
  78. if (!data.idcard) {
  79. arr.push('证件号');
  80. }
  81. if (!data.realName || !data.userName||!data.icon||!data.idcard) {
  82. uni.showToast({
  83. icon: 'none',
  84. title: `请完善${arr.join('、')}信息!`
  85. })
  86. return;
  87. }
  88. emits('confirm', data);
  89. popupRef.value.close()
  90. }
  91. defineExpose({
  92. showDialog
  93. })
  94. </script>
  95. <style scoped lang="scss">
  96. .isEmpty {
  97. color: #ff0101;
  98. }
  99. </style>