userInfo.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. <template>
  2. <div class="user-info">
  3. <div class="section">
  4. <div class="section-hd">基本信息</div>
  5. <div class="section-bd">
  6. <div class="item">
  7. <div>用户编号:</div>
  8. <div class="value">{{ psInfo.uid }}</div>
  9. </div>
  10. <div class="item">
  11. <div>真实姓名:</div>
  12. <div class="value">{{ psInfo.real_name || '-' }}</div>
  13. </div>
  14. <div class="item">
  15. <div>手机号码:</div>
  16. <div class="value">{{ psInfo.phone || '-' }}</div>
  17. </div>
  18. <div class="item">
  19. <div>生日:</div>
  20. <div class="value">{{ psInfo.birthday || '-' }}</div>
  21. </div>
  22. <div class="item">
  23. <div>性别:</div>
  24. <div v-if="psInfo.sex" class="value">{{ psInfo.sex == 1 ? '男' : '女' }}</div>
  25. <div v-else class="value">保密</div>
  26. </div>
  27. <div class="item">
  28. <div>身份证号:</div>
  29. <div class="value">{{ psInfo.card_id || '-' }}</div>
  30. </div>
  31. <div class="item">
  32. <div>用户地址:</div>
  33. <div class="value">{{ `${psInfo.provincials}${psInfo.addres}` || '-' }}</div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="section">
  38. <div class="section-hd">密码</div>
  39. <div class="section-bd">
  40. <div class="item">
  41. <div>登录密码:</div>
  42. <div class="value">********</div>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="section">
  47. <div class="section-hd">用户概况</div>
  48. <div class="section-bd">
  49. <div class="item">
  50. <div>推广资格:</div>
  51. <div class="value">{{ psInfo.spread_open ? '启用' : '禁用' }}</div>
  52. </div>
  53. <div class="item">
  54. <div>用户状态:</div>
  55. <div class="value">{{ psInfo.status ? '开启' : '锁定' }}</div>
  56. </div>
  57. <div class="item">
  58. <div>用户等级:</div>
  59. <div class="value">{{ psInfo.vip_name }}</div>
  60. </div>
  61. <div class="item" v-if="psInfo.area_admin">
  62. <div>运营中心:</div>
  63. <div class="value" v-if="psInfo.area_admin==3">省</div>
  64. <div class="value" v-if="psInfo.area_admin==2">市</div>
  65. <div class="value" v-if="psInfo.area_admin==1">区</div>
  66. </div>
  67. <div class="item" v-if="psInfo.area_admin">
  68. <div>管理区域:</div>
  69. <div class="value">
  70. <span >{{ psInfo.area_admin_province }}</span>
  71. <span v-if="psInfo.area_admin_city">/{{ psInfo.area_admin_city }}</span>
  72. <span v-if="psInfo.area_admin_district">/{{ psInfo.area_admin_district }}</span>
  73. </div>
  74. </div>
  75. <div class="item">
  76. <div>用户标签:</div>
  77. <div class="value">{{ psInfo.label_list }}</div>
  78. </div>
  79. <div class="item">
  80. <div>用户分组:</div>
  81. <div class="value">{{ psInfo.group_name || '无' }}</div>
  82. </div>
  83. <div class="item">
  84. <div>推广人:</div>
  85. <div class="value">{{ psInfo.spread_uid_nickname || '无' }}</div>
  86. </div>
  87. <div class="item">
  88. <div>注册时间:</div>
  89. <div class="value">{{ psInfo.add_time | timeFormat }}</div>
  90. </div>
  91. <div class="item">
  92. <div>登录时间:</div>
  93. <div class="value">{{ psInfo.last_time | timeFormat }}</div>
  94. </div>
  95. <div v-if="psInfo.is_money_level" class="item">
  96. <div>付费会员:</div>
  97. <div class="value">{{ psInfo.is_ever_level == 1 ? '永久会员' : (psInfo.overdue_time ? `${psInfo.overdue_time} 到期` : '已过期') }}</div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="section">
  102. <div class="section-hd">用户备注</div>
  103. <div class="section-bd">
  104. <div class="item">
  105. <div>备注:</div>
  106. <div class="value">{{ psInfo.mark || '-' }}</div>
  107. </div>
  108. </div>
  109. </div>
  110. <div v-if="hasExtendInfo" class="section">
  111. <div class="section-hd">补充信息</div>
  112. <div class="section-bd">
  113. <template v-for="item in psInfo.extend_info">
  114. <div v-if="item.value" :key="item.sort" class="item">
  115. <div>{{ item.info }}:</div>
  116. <div class="value" v-if="item.param == 'sex'">{{item.singlearr[item.value]}}</div>
  117. <div class="value" v-else>{{ item.value }}</div>
  118. </div>
  119. </template>
  120. </div>
  121. </div>
  122. <div class="section" v-if="workMemberInfo">
  123. <div class="section-hd">企业成员信息</div>
  124. <div class="section-bd">
  125. <div class="item">
  126. <!-- <div>二维码:</div> -->
  127. <div class="avatar">
  128. <img :src="workMemberInfo.qr_code" alt="">
  129. </div>
  130. </div>
  131. </div>
  132. <div class="section-bd">
  133. <div class="item">
  134. <div>姓名:</div>
  135. <div class="value">{{ workMemberInfo.name || '-' }}</div>
  136. </div>
  137. <div class="item">
  138. <div>职务信息:</div>
  139. <div class="value">{{ workMemberInfo.position || '-' }}</div>
  140. </div>
  141. <div class="item">
  142. <div>手机号码:</div>
  143. <div class="value">{{ workMemberInfo.mobile || '-' }}</div>
  144. </div>
  145. <div class="item">
  146. <div>性别:</div>
  147. <div class="value">{{ workMemberInfo.gender | gender }}</div>
  148. </div>
  149. <div class="item">
  150. <div class="width-add ">邮箱:</div>
  151. <div class="value">{{ workMemberInfo.biz_mail || '-' }}</div>
  152. </div>
  153. <div class="item mr30" >
  154. <div>地址:</div>
  155. <div class="value">{{ workMemberInfo.address || '-' }}</div>
  156. </div>
  157. <div class="item">
  158. <div>备注:</div>
  159. <div class="value">{{ workMemberInfo.remark || '-' }}</div>
  160. </div>
  161. </div>
  162. </div>
  163. <div class="section" v-if="workClientInfo">
  164. <div class="section-hd">企业客户信息</div>
  165. <div class="section-bd">
  166. <div class="item">
  167. <div>姓名:</div>
  168. <div class="value">{{ workClientInfo.name || '-' }}</div>
  169. </div>
  170. <div class="item">
  171. <div>职务信息:</div>
  172. <div class="value">{{ workClientInfo.position || '-' }}</div>
  173. </div>
  174. <div class="item">
  175. <div>备注:</div>
  176. <div class="value">{{ workClientInfo.remark || '-' }}</div>
  177. </div>
  178. <div class="item">
  179. <div>性别:</div>
  180. <div class="value">{{ workClientInfo.gender | gender }}</div>
  181. </div>
  182. <div class="item">
  183. <div>企业主体名称:</div>
  184. <div class="value">{{ workClientInfo.corp_full_name || '-' }}</div>
  185. </div>
  186. <div class="item">
  187. <div>企业主体简称:</div>
  188. <div class="value">{{ workClientInfo.corp_name || '-' }}</div>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </template>
  194. <script>
  195. import dayjs from "dayjs";
  196. import template from '../../../setting/devise/template.vue';
  197. export default {
  198. components: { template },
  199. name: 'userInfo',
  200. props: {
  201. psInfo: Object,
  202. workMemberInfo:Object,
  203. workClientInfo:Object
  204. },
  205. filters: {
  206. timeFormat (value) {
  207. if (!value) {
  208. return '-';
  209. }
  210. return dayjs(value * 1000).format('YYYY-MM-DD HH:mm:ss');
  211. },
  212. gender (value) {
  213. if(value == 1){
  214. return '男'
  215. }else if(value == 2){
  216. return '女'
  217. }else{
  218. return '未知'
  219. }
  220. }
  221. },
  222. computed: {
  223. hasExtendInfo() {
  224. return this.psInfo.extend_info.some(item => item.value);
  225. }
  226. }
  227. }
  228. </script>
  229. <style lang="less" scoped>
  230. .width-add {
  231. width: 40px;
  232. }
  233. .mr30 {
  234. margin-right:30px
  235. }
  236. .user-info {
  237. .section {
  238. padding: 25px 0;
  239. border-bottom: 1px dashed #EEEEEE;
  240. &-hd {
  241. padding-left: 10px;
  242. border-left: 3px solid #1890FF;
  243. font-weight: 500;
  244. font-size: 14px;
  245. line-height: 16px;
  246. color: #303133;
  247. }
  248. &-bd {
  249. display: flex;
  250. flex-wrap: wrap;
  251. }
  252. .item {
  253. flex: 0 0 calc(~"(100% - 60px) / 3");
  254. display: flex;
  255. margin: 16px 30px 0 0;
  256. font-size: 13px;
  257. color: #606266;
  258. &:nth-child(3n+3) {
  259. margin: 16px 0 0;
  260. }
  261. }
  262. .value {
  263. flex: 1;
  264. }
  265. .avatar{
  266. width: 60px;
  267. height: 60px;
  268. overflow: hidden;
  269. img{
  270. width: 100%;
  271. height: 100%;
  272. }
  273. }
  274. }
  275. }
  276. </style>