data.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div class="pb_content">
  3. <div class="pb_head">
  4. <span>我的资料</span>
  5. </div>
  6. <div class="pb_content_body">
  7. <div style="width: 500px">
  8. <el-form
  9. :model="ruleForm"
  10. :rules="rules"
  11. ref="ruleForm"
  12. label-width="100px"
  13. class="demo-ruleForm"
  14. >
  15. <el-form-item label="姓名" prop="name">
  16. <el-input
  17. v-model="ruleForm.name"
  18. style="width: 250px"
  19. placeholder="请输入名字"
  20. ></el-input>
  21. </el-form-item>
  22. <el-form-item label="性别">
  23. <el-radio-group v-model="ruleForm.sex">
  24. <el-radio label="男"></el-radio>
  25. <el-radio label="女"></el-radio>
  26. </el-radio-group>
  27. </el-form-item>
  28. <el-form-item label="电子邮箱" prop="mail">
  29. <el-input
  30. v-model="ruleForm.mail"
  31. style="width: 300px"
  32. placeholder="请输入电子邮箱"
  33. ></el-input>
  34. </el-form-item>
  35. <el-form-item label="手机号码" prop="phone">
  36. <el-input
  37. v-model="ruleForm.phone"
  38. style="width: 300px"
  39. placeholder="请输入手机号码"
  40. disabled
  41. ></el-input>
  42. </el-form-item>
  43. <el-form-item label="学校选择" prop="school">
  44. <el-input
  45. v-model="ruleForm.school"
  46. style="width: 300px"
  47. disabled
  48. ></el-input>
  49. <!-- <el-select v-model="ruleForm.school" placeholder="请选择学校">
  50. <el-option label="深圳实验学校" value="ssti"></el-option>
  51. <el-option label="深圳第二职业学校" value="erzhi"></el-option>
  52. <el-option label="深圳职业技术学院" value="jishu"></el-option>
  53. <el-option label="深圳信息技术学院" value="xinxi"></el-option>
  54. </el-select> -->
  55. </el-form-item>
  56. <el-form-item label="个人简介" prop="desc">
  57. <el-input
  58. type="textarea"
  59. v-model="ruleForm.desc"
  60. :rows="5"
  61. resize="none"
  62. placeholder="想说点什么..."
  63. ></el-input>
  64. </el-form-item>
  65. <el-form-item>
  66. <el-button type="primary" @click="submitForm('ruleForm')"
  67. >修改</el-button
  68. >
  69. </el-form-item>
  70. </el-form>
  71. </div>
  72. </div>
  73. </div>
  74. </template>
  75. <script>
  76. export default {
  77. data() {
  78. var validatePass = (rule, value, callback) => {
  79. if (value == "") {
  80. return;
  81. }
  82. var reg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
  83. if (!reg.test(value)) {
  84. callback(new Error("请输入正确的邮箱"));
  85. } else {
  86. callback();
  87. }
  88. };
  89. var validatePass1 = (rule, value, callback) => {
  90. var reg = /^1\d{10}$/;
  91. if (!reg.test(value)) {
  92. callback(new Error("请输入正确的手机号码"));
  93. } else {
  94. callback();
  95. }
  96. };
  97. return {
  98. ruleForm: {
  99. name: "",
  100. type: [],
  101. sex: "男",
  102. desc: "",
  103. mail: "",
  104. phone: "",
  105. school: "",
  106. },
  107. rules: {
  108. pass: [{ validator: validatePass, trigger: "blur" }],
  109. name: [{ required: true, message: "请输入你的名字", trigger: "blur" }],
  110. mail: [
  111. {
  112. validator: validatePass,
  113. trigger: "blur",
  114. },
  115. ],
  116. phone: [
  117. { required: true, message: "请输入你的手机号码", trigger: "blur" },
  118. {
  119. validator: validatePass1,
  120. trigger: "blur",
  121. },
  122. ],
  123. // school: [{ required: true, message: "请选择学校", trigger: "change" }],
  124. },
  125. };
  126. },
  127. methods: {
  128. getUser() {
  129. let params = { uid:this.$store.state.userInfo.userid };
  130. this.ajax
  131. .get(this.$store.state.api + "getUser", params)
  132. .then((res) => {
  133. this.userinfo = res.data[0][0];
  134. // window.sessionStorage.setItem(
  135. // "userInfo",
  136. // JSON.stringify(this.userinfo)
  137. // );
  138. this.$cookies.set("userInfo",this.userinfo,-1)
  139. this.$store.commit("update", ["userInfo", this.userinfo]);
  140. this.getClass();
  141. console.log(res.data[0][0]);
  142. })
  143. .catch((err) => {
  144. console.error(err);
  145. });
  146. },
  147. submitForm(formName) {
  148. this.$refs[formName];
  149. let params = [
  150. {
  151. uid: this.$store.state.userInfo.userid,
  152. n: this.ruleForm.name,
  153. sex: this.ruleForm.sex == "男" ? "0" : "1",
  154. mail: this.ruleForm.mail,
  155. intro: this.ruleForm.desc,
  156. },
  157. ];
  158. this.ajax
  159. .post(this.$store.state.api + "updateTeacherDetail", params)
  160. .then((res) => {
  161. this.$message({
  162. message: "修改成功",
  163. type: "success",
  164. });
  165. this.getUser();
  166. })
  167. .catch((err) => {
  168. this.$message.error("修改失败");
  169. console.error(err);
  170. });
  171. },
  172. getDetail() {
  173. let params = { uid: this.$store.state.userInfo.userid };
  174. this.ajax
  175. .get(this.$store.state.api + "findteacherDeatail", params)
  176. .then((res) => {
  177. res.data[0][0].sex = res.data[0][0].sex ? "女" : "男";
  178. this.ruleForm = res.data[0][0];
  179. })
  180. .catch((err) => {
  181. // this.$message.error("删除失败");
  182. console.error(err);
  183. });
  184. },
  185. },
  186. created() {
  187. this.getDetail();
  188. },
  189. };
  190. </script>
  191. <style scoped>
  192. </style>