studentBaseManage.vue 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. <template>
  2. <div id="studentBaseManage">
  3. <div class="YZsty">
  4. <el-form
  5. label-position="right"
  6. label-width="120px"
  7. :model="listData"
  8. ref="listData"
  9. :rules="rules"
  10. >
  11. <el-row :gutter="20">
  12. <el-col :span="6">
  13. <div class="dis_fs">
  14. <div class="photoSty1">
  15. <img
  16. style="width: 100%; height: 100%"
  17. v-if="!listData.oneInchPhotos"
  18. src="@/assets/404_images/wuyuxaog.png"
  19. alt=""
  20. />
  21. <el-image
  22. v-else
  23. style="width: 100%; height: 100%"
  24. :src="$methodsTools.splitImgHost(listData.oneInchPhotos)"
  25. :preview-src-list="[
  26. $methodsTools.splitImgHost(listData.oneInchPhotos),
  27. ]"
  28. >
  29. </el-image>
  30. <div class="pos_bottom">一寸头像图</div>
  31. </div>
  32. <div class="photoSty2">
  33. <img
  34. style="width: 100%; height: 100%"
  35. v-if="!listData.idCardImg1"
  36. src="@/assets/404_images/wuyuxaog.png"
  37. alt=""
  38. />
  39. <el-image
  40. v-else
  41. style="width: 100%; height: 100%"
  42. :src="$methodsTools.splitImgHost(listData.idCardImg1)"
  43. :preview-src-list="[
  44. $methodsTools.splitImgHost(listData.idCardImg1),
  45. ]"
  46. >
  47. </el-image>
  48. <div class="pos_bottom">身份证正面照片</div>
  49. </div>
  50. <div class="photoSty2" style="margin-right: 0px">
  51. <img
  52. style="width: 100%; height: 100%"
  53. v-if="!listData.idCardImg2"
  54. src="@/assets/404_images/wuyuxaog.png"
  55. alt=""
  56. />
  57. <el-image
  58. v-else
  59. style="width: 100%; height: 100%"
  60. :src="$methodsTools.splitImgHost(listData.idCardImg2)"
  61. :preview-src-list="[
  62. $methodsTools.splitImgHost(listData.idCardImg2),
  63. ]"
  64. >
  65. </el-image>
  66. <div class="pos_bottom">身份证背面照片</div>
  67. </div>
  68. </div>
  69. </el-col>
  70. <el-col :span="9">
  71. <el-form-item label="学员编码" prop="studentCode">
  72. <el-input disabled v-model="listData.studentCode"></el-input>
  73. </el-form-item>
  74. <el-form-item label="绑定手机号" prop="telphone">
  75. <el-input disabled v-model="listData.telphone"></el-input>
  76. </el-form-item>
  77. <el-form-item label="姓名" prop="realname">
  78. <el-input disabled v-model="listData.realname"></el-input>
  79. </el-form-item>
  80. <el-form-item label="身份证号码" prop="idCard">
  81. <el-input disabled v-model="listData.idCard"></el-input>
  82. </el-form-item>
  83. <el-form-item label="性别" prop="sex">
  84. <el-radio-group v-model="listData.sex">
  85. <el-radio :label="1">男</el-radio>
  86. <el-radio :label="2">女</el-radio>
  87. </el-radio-group>
  88. </el-form-item>
  89. <el-form-item label="出生日期" prop="userBirth">
  90. <el-date-picker
  91. v-model="listData.userBirth"
  92. type="date"
  93. placeholder="选择出生日期"
  94. format="yyyy 年 MM 月 dd 日"
  95. value-format="yyyy-MM-dd"
  96. >
  97. </el-date-picker>
  98. </el-form-item>
  99. <el-form-item label="微信" prop="nickname">
  100. <el-input disabled v-model="listData.nickname"></el-input>
  101. </el-form-item>
  102. <el-form-item label="邮箱" prop="email">
  103. <el-input v-model="listData.email"></el-input>
  104. </el-form-item>
  105. <el-form-item label="学历" prop="eduLevel">
  106. <el-select v-model="listData.eduLevel" placeholder="请选择学历">
  107. <el-option
  108. v-for="(item, index) in dictManages['edu_level']"
  109. :key="index"
  110. :label="item"
  111. :value="item"
  112. >
  113. </el-option>
  114. </el-select>
  115. </el-form-item>
  116. <el-form-item label="工作年限">
  117. <el-select
  118. v-model="listData.workYear"
  119. placeholder="请选择工作年限"
  120. >
  121. <el-option
  122. v-for="(item, index) in dictManages['working_years']"
  123. :key="index"
  124. :label="item"
  125. :value="item"
  126. >
  127. </el-option>
  128. </el-select>
  129. </el-form-item>
  130. <el-form-item label="在职状况" prop="jobStatus">
  131. <el-radio-group v-model="listData.jobStatus">
  132. <el-radio :label="1">在职</el-radio>
  133. <el-radio :label="2">离职</el-radio>
  134. </el-radio-group>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="9">
  138. <el-form-item label="民族" prop="nation">
  139. <el-input v-model="listData.nation"></el-input>
  140. </el-form-item>
  141. <el-form-item label="籍贯" prop="nativePlace">
  142. <el-input v-model="listData.nativePlace"></el-input>
  143. </el-form-item>
  144. <el-form-item label="政治面貌" prop="politic">
  145. <el-select
  146. v-model="listData.politic"
  147. placeholder="请选择政治面貌"
  148. >
  149. <el-option
  150. v-for="(item, index) in dictManages['politic_status']"
  151. :key="index"
  152. :label="item"
  153. :value="item"
  154. >
  155. </el-option>
  156. </el-select>
  157. </el-form-item>
  158. <el-form-item label="婚姻状况" prop="marry">
  159. <el-select v-model="listData.marry" placeholder="请选择婚姻状况">
  160. <el-option
  161. v-for="(item, index) in dictManages['marry_status']"
  162. :key="index"
  163. :label="item"
  164. :value="item"
  165. >
  166. </el-option>
  167. </el-select>
  168. </el-form-item>
  169. <el-form-item label="户口性质" prop="census">
  170. <el-select v-model="listData.census" placeholder="请选择户口性质">
  171. <el-option
  172. v-for="item in options"
  173. :key="item.value"
  174. :label="item.label"
  175. :value="item.value"
  176. >
  177. </el-option>
  178. </el-select>
  179. </el-form-item>
  180. <el-form-item label="户口所在地" prop="houseAddress">
  181. <el-input v-model="listData.houseAddress"></el-input>
  182. </el-form-item>
  183. <el-form-item label="联系地址" prop="contactAddress">
  184. <el-input v-model="listData.contactAddress"></el-input>
  185. </el-form-item>
  186. <el-form-item label="收件地址" prop="consigneeAddress">
  187. <el-input v-model="listData.consigneeAddress"></el-input>
  188. </el-form-item>
  189. <el-form-item label="备注" prop="remark">
  190. <el-input
  191. type="textarea"
  192. :rows="4"
  193. v-model="listData.remark"
  194. ></el-input>
  195. </el-form-item>
  196. <el-form-item label="所在公司" prop="companyName">
  197. <el-input v-model="listData.companyName"></el-input>
  198. </el-form-item>
  199. </el-col>
  200. </el-row>
  201. </el-form>
  202. <div style="text-align: center">
  203. <el-button @click="backPage">返回</el-button>
  204. <el-button type="primary" @click="submit('listData')">保存</el-button>
  205. </div>
  206. </div>
  207. </div>
  208. </template>
  209. <script>
  210. import { mapGetters } from "vuex";
  211. export default {
  212. data() {
  213. return {
  214. options: [
  215. {
  216. label: "农村户口",
  217. value: 1,
  218. },
  219. {
  220. label: "城镇户口",
  221. value: 2,
  222. },
  223. ],
  224. listData: {},
  225. rules: {},
  226. };
  227. },
  228. computed: {
  229. ...mapGetters(["dictManages"]),
  230. },
  231. mounted() {
  232. this.getUserInfos();
  233. },
  234. methods: {
  235. getUserInfos() {
  236. this.$api
  237. .inquiregradestudentlistStudent({ userId: this.$route.query.id })
  238. .then((res) => {
  239. this.listData = res.rows[0];
  240. console.log(res);
  241. });
  242. },
  243. backPage() {
  244. this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
  245. this.$router.push({
  246. path: "StudentList",
  247. });
  248. });
  249. },
  250. submit() {
  251. this.$api.editgradestudent(this.listData).then((res) => {
  252. this.$message.success("保存成功");
  253. });
  254. },
  255. },
  256. };
  257. </script>
  258. <style lang="less" scoped>
  259. .YZsty {
  260. background-color: #eee;
  261. padding: 30px;
  262. }
  263. .fgx {
  264. border-bottom: 1px dotted #9a9a9a;
  265. margin-bottom: 12px;
  266. }
  267. .dis_fs {
  268. display: flex;
  269. flex-direction: column;
  270. align-items: center;
  271. justify-content: space-between;
  272. background-color: #eee;
  273. }
  274. .photoSty1 {
  275. flex-shrink: 0;
  276. width: 150px;
  277. height: 160px;
  278. background-color: #fff;
  279. position: relative;
  280. margin-bottom: 30px;
  281. }
  282. .photoSty2 {
  283. position: relative;
  284. flex-shrink: 0;
  285. width: 230px;
  286. height: 160px;
  287. background-color: #fff;
  288. margin-bottom: 30px;
  289. }
  290. .pos_bottom {
  291. position: absolute;
  292. height: 20px;
  293. bottom: 0px;
  294. left: 0px;
  295. right: 0px;
  296. background-color: rgba(0, 0, 0, 0.8);
  297. text-align: center;
  298. line-height: 20px;
  299. font-size: 14px;
  300. color: #fff;
  301. }
  302. </style>