推广小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
6.6 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. <template>
  2. <view>
  3. <view class="head-box"></view>
  4. <uv-navbar autoBack title="编辑资料" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
  5. <view class="content">
  6. <view class="title-box">基础信息</view>
  7. <view class="form-box">
  8. <view class="form-box-line">
  9. <view class="label-box">用户名称</view>
  10. <view class="value-box">
  11. <uv-input placeholder="请输入用户名称" inputAlign="right" v-model="info.nickName" border="none" color="#CCCCCC"></uv-input>
  12. </view>
  13. </view>
  14. <view class="form-box-line">
  15. <view class="label-box">邮箱</view>
  16. <view class="value-box">
  17. <uv-input placeholder="请输入邮箱" inputAlign="right" v-model="info.email" border="none" color="#CCCCCC"></uv-input>
  18. </view>
  19. </view>
  20. <view class="form-box-line">
  21. <view class="label-box">手机号</view>
  22. <view class="value-box">
  23. <uv-input placeholder="请输入手机号" inputAlign="right" v-model="info.phone" border="none" color="#CCCCCC"></uv-input>
  24. </view>
  25. </view>
  26. <view class="form-box-line">
  27. <view class="label-box">性别</view>
  28. <view class="value-box">
  29. <uv-input placeholder="请输入性别" inputAlign="right" v-model="info.sex" border="none" color="#CCCCCC"></uv-input>
  30. </view>
  31. </view>
  32. <view class="form-box-line">
  33. <view class="label-box">国籍</view>
  34. <view class="value-box">
  35. <uv-input placeholder="请输入国籍" inputAlign="right" v-model="info.idCard" border="none" color="#CCCCCC"></uv-input>
  36. </view>
  37. </view>
  38. <view class="form-box-line">
  39. <view class="label-box">生日</view>
  40. <view class="value-box">
  41. <uv-input placeholder="请输入生日" inputAlign="right" v-model="info.yearDate" border="none" color="#CCCCCC"></uv-input>
  42. </view>
  43. </view>
  44. <view class="form-box-line">
  45. <view class="label-box">现居住址</view>
  46. <view class="value-box">
  47. <uv-input placeholder="请输入现居住址" inputAlign="right" v-model="info.address" border="none" color="#CCCCCC"></uv-input>
  48. </view>
  49. </view>
  50. <view class="form-box-line">
  51. <view class="label-box">个人状态</view>
  52. <view class="value-box">
  53. <uv-input placeholder="请输入个人状态" inputAlign="right" v-model="info.idCard" border="none" color="#CCCCCC"></uv-input>
  54. </view>
  55. </view>
  56. </view>
  57. <view class="title-box">教育</view>
  58. <view class="form-box">
  59. <view class="form-title">学历</view>
  60. <view class="choose-box">
  61. <view class="choose-item" :class="xueliIndex == i ? 'choose-class' :''" v-for="(item,i) in xueliList" :key="i" @click="xueliIndex = i">{{item}}</view>
  62. </view>
  63. <view class="form-title">院校</view>
  64. <view class="choose-box">
  65. <view class="choose-item" :class="yuanxiaoIndex == i ? 'choose-class' :''" v-for="(item,i) in yuanxiaoList" :key="i" @click="yuanxiaoIndex = i">{{item}}</view>
  66. </view>
  67. </view>
  68. <view class="title-box">工作</view>
  69. <view class="form-box">
  70. <view class="form-box-line">
  71. <view class="label-box">行业</view>
  72. <view class="value-box">
  73. <uv-input placeholder="请输入行业" inputAlign="right" v-model="info.name" border="none" color="#CCCCCC"></uv-input>
  74. </view>
  75. </view>
  76. </view>
  77. <view class="title-box">关于我</view>
  78. <view class="form-box">
  79. <uv-textarea v-model="info.name" :customStyle="{background: 'transparent',border:'none'}" height="380rpx" placeholder="请输入自我介绍..."></uv-textarea>
  80. </view>
  81. </view>
  82. <view class="btn-box">
  83. <uv-button text="保存" @click="saveClick" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
  84. </view>
  85. </view>
  86. </template>
  87. <script>
  88. export default{
  89. data() {
  90. return {
  91. bgColor:'transparent',
  92. btnCustomStyle:{
  93. color:'#FF5858'
  94. },
  95. info:{
  96. nickName:'',
  97. headImage:'',
  98. phone:'',
  99. email:'',
  100. sex:'',
  101. city:'',
  102. yearDate:'',
  103. address:'',
  104. state:'',
  105. shcool:'',
  106. shcoolType:'',
  107. workValue:'',
  108. details:'',
  109. },
  110. xueliIndex:0,
  111. yuanxiaoIndex:0,
  112. xueliList:['本科','硕士','博士','其他'],
  113. yuanxiaoList:['985','211','双一流','QS100','QS200','QS600','其他']
  114. }
  115. },
  116. onPageScroll(e) {
  117. if(e.scrollTop > 50) {
  118. this.bgColor = '#49070c'
  119. }else{
  120. this.bgColor = 'transparent'
  121. }
  122. },
  123. onLoad() {
  124. this.getUserInfo()
  125. },
  126. methods:{
  127. saveClick() {
  128. this.$api('updateInfo',this.info, res => {
  129. if (res.code == 200) {
  130. uni.showToast({
  131. title:'保存成功',
  132. icon:'none'
  133. })
  134. }
  135. })
  136. },
  137. getUserInfo() {
  138. this.$api('getInfo', res => {
  139. if (res.code == 200) {
  140. this.info = res.result
  141. }
  142. })
  143. }
  144. }
  145. }
  146. </script>
  147. <style lang="scss">
  148. page {
  149. background-color: #060504;
  150. }
  151. </style>
  152. <style lang="scss" scoped>
  153. .head-box {
  154. background: url('@/static/image/nav-bg.png') no-repeat;
  155. background-size: 100% 100%;
  156. width: 100%;
  157. height: 534rpx;
  158. position: absolute;
  159. z-index: -1;
  160. }
  161. .content {
  162. padding: 0 30rpx 170rpx;
  163. padding-top: calc(var(--status-bar-height) + 110rpx);
  164. .title-box {
  165. font-weight: 500;
  166. font-size: 27rpx;
  167. color: #666666;
  168. }
  169. .form-box {
  170. background: #1B1713;
  171. border-radius: 27rpx;
  172. padding:0 40rpx;
  173. margin-top: 20rpx;
  174. margin-bottom: 44rpx;
  175. .form-box-line {
  176. height: 112rpx;
  177. border-bottom: 1px solid #403D3A;
  178. display: flex;
  179. align-items: center;
  180. &:last-child {
  181. border: none;
  182. }
  183. .label-box {
  184. font-weight: 500;
  185. font-size: 29rpx;
  186. color: #CCCCCC;
  187. margin-right: 34rpx;
  188. }
  189. .value-box {
  190. display: flex;
  191. align-items: center;
  192. justify-content: space-between;
  193. flex: 1;
  194. .uv-input {
  195. }
  196. }
  197. }
  198. .form-title {
  199. font-weight: 500;
  200. font-size: 28rpx;
  201. color: #CCCCCC;
  202. padding-top: 32rpx;
  203. }
  204. .choose-box {
  205. margin-top: 28rpx;
  206. display: flex;
  207. flex-wrap: wrap;
  208. .choose-item {
  209. width: 137rpx;
  210. height: 67rpx;
  211. border-radius: 13rpx;
  212. border: 1rpx solid #CCCCCC;
  213. text-align: center;
  214. line-height: 67rpx;
  215. font-weight: 500;
  216. font-size: 26rpx;
  217. color: #CCCCCC;
  218. margin-right: 15rpx;
  219. margin-bottom: 24rpx;
  220. &:nth-child(4n){
  221. margin-right: 0;
  222. }
  223. }
  224. .choose-class {
  225. background-color: #341616;
  226. color: #FF4747;
  227. border: 1rpx solid #FF4747;
  228. }
  229. }
  230. }
  231. }
  232. .btn-box {
  233. background-color: #060504;
  234. position: fixed;
  235. bottom: 0;
  236. left: 0;
  237. right: 0;
  238. padding: 20rpx 40rpx;
  239. height: 150rpx;
  240. z-index: 999;
  241. box-sizing: border-box;
  242. }
  243. </style>