person.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div id="person">
  3. <el-col :span="24" class="info">
  4. <van-form @submit="onSubmit">
  5. <van-field v-model="form.name" name="用户名称" label="用户名称" placeholder="请输入用户名称" :rules="[{ required: true, message: '请输入用户名称' }]" />
  6. <van-field v-model="form.phone" name="手机号" label="手机号" placeholder="请输入手机号" disabled />
  7. <van-field
  8. v-model="form.cardnumber"
  9. name="身份证号"
  10. label="身份证号"
  11. placeholder="请输入身份证号"
  12. :rules="[{ required: true, message: '请输入身份证号' }]"
  13. />
  14. <van-field v-model="form.email" name="邮箱" label="邮箱" placeholder="请输入邮箱" :rules="[{ required: true, message: '请输入邮箱' }]" />
  15. <van-field v-model="form.addr" name="地址" label="地址" placeholder="请输入地址" :rules="[{ required: true, message: '请输入地址' }]" />
  16. <van-field name="uploader" label="头像">
  17. <!-- <template #input><upload :limit="1" :data="form.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload> </template> -->
  18. <template #input><upload :limit="1" :data="form.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload> </template>
  19. </van-field>
  20. <van-field name="radio" label="用户类型">
  21. <template #input>
  22. <van-radio-group v-model="form.role" direction="horizontal">
  23. <van-radio name="4">个人</van-radio>
  24. <van-radio name="5">企业</van-radio>
  25. <van-radio name="6">专家</van-radio>
  26. </van-radio-group>
  27. </template>
  28. </van-field>
  29. <van-field name="uploader" label="身份证正面" v-if="form.role == '4' || form.role == '5'">
  30. <template #input
  31. ><upload
  32. :limit="1"
  33. v-if="form.role == '4' || form.role == '5'"
  34. :data="form.cardfile_a"
  35. type="cardfile_a"
  36. :url="'/files/cardfilea/upload'"
  37. @upload="uploadSuccess"
  38. ></upload>
  39. </template>
  40. </van-field>
  41. <van-field name="uploader" label="身份证背面" v-if="form.role == '4' || form.role == '5'">
  42. <template #input
  43. ><upload
  44. :limit="1"
  45. v-if="form.role == '4' || form.role == '5'"
  46. :data="form.cardfile_b"
  47. type="cardfile_b"
  48. :url="'/files/cardfileb/upload'"
  49. @upload="uploadSuccess"
  50. ></upload>
  51. </template>
  52. </van-field>
  53. <van-field name="uploader" label="组织机构图片" v-if="form.role == '5'">
  54. <template #input
  55. ><upload
  56. :limit="1"
  57. v-if="form.role == '4' || form.role == '5'"
  58. :data="form.img_qy"
  59. type="img_qy"
  60. :url="'/files/img_qy/upload'"
  61. @upload="uploadSuccess"
  62. ></upload>
  63. </template>
  64. </van-field>
  65. <template v-if="form.role == '4'">
  66. <van-field v-model="form.institution_type" name="机构类型" label="机构类型" placeholder="请输入机构类型" />
  67. <van-field v-model="form.institution_name" name="机构名称" label="机构类型" placeholder="请输入机构名称" />
  68. <van-field v-model="form.institution_code" name="机构代码" label="机构代码" placeholder="请输入机构代码" />
  69. <van-field v-model="form.institution_nature" name="机构性质" label="机构性质" placeholder="请输入机构性质" />
  70. </template>
  71. <van-field v-model="form.office_phone" v-if="form.role == '4' || form.role == '5'" name="办公电话" label="办公电话" placeholder="请输入办公电话" />
  72. <van-field v-model="form.profession" v-if="form.role == '4' || form.role == '5'" name="所属行业" label="所属行业" placeholder="请输入所属行业" />
  73. <van-field name="radio" label="性别" v-if="form.role == '6'">
  74. <template #input>
  75. <van-radio-group v-model="form.gender" direction="horizontal">
  76. <van-radio name="男">男</van-radio>
  77. <van-radio name="女">女</van-radio>
  78. </van-radio-group>
  79. </template>
  80. </van-field>
  81. <van-cell title="日期" is-link :value="form.birthday" @click="birthdayPopup" v-if="form.role == '6'" />
  82. <van-popup v-model="birthdayShow" position="bottom">
  83. <van-datetime-picker type="date" @cancel="birthdayShow = false" @confirm="birthdayPicker" />
  84. </van-popup>
  85. <van-field v-model="form.level" v-if="form.role == '6'" name="职称级别" label="职称级别" placeholder="请输入职称级别" />
  86. <van-field v-model="form.levelname" v-if="form.role == '6'" name="职称" label="职称" placeholder="请输入职称" />
  87. <van-field v-model="form.position" v-if="form.role == '6'" name="职务" label="职务" placeholder="请输入职务" />
  88. <van-field v-model="form.school" v-if="form.role == '6'" name="院校" label="院校" placeholder="院校" />
  89. <van-field readonly clickable name="picker" :value="form.xl" label="学历" v-if="form.role == '6'" placeholder="请选择学历" @click="xlPicker = true" />
  90. <van-popup v-model="xlPicker" position="bottom">
  91. <van-picker show-toolbar :columns="xlList" @confirm="onConfirm" @cancel="xlPicker = false" />
  92. </van-popup>
  93. <van-field readonly clickable name="picker" :value="form.xw" label="学位" v-if="form.role == '6'" placeholder="请选择学位" @click="xwPicker = true" />
  94. <van-popup v-model="xwPicker" position="bottom">
  95. <van-picker show-toolbar :columns="xwList" @confirm="onConfirms" @cancel="xwPicker = false" />
  96. </van-popup>
  97. <van-field v-model="form.major" v-if="form.role == '6'" name="专业" label="专业" placeholder="请输入专业" />
  98. <van-field v-model="form.professional" v-if="form.role == '6'" name="从事专业" label="从事专业 " placeholder="请输入从事专业" />
  99. <van-field
  100. v-model="form.resume"
  101. autosize
  102. label="个人简历"
  103. v-if="form.role == '2' || form.role == '6'"
  104. type="textarea"
  105. placeholder="请输入个人简历"
  106. show-word-limit
  107. />
  108. <van-field v-model="form.project" v-if="form.role == '6'" name="项目" label="项目 " placeholder="请输入项目" />
  109. <van-field v-model="form.academic" v-if="form.role == '6'" name="学术成就" label="学术成就 " placeholder="请输入学术成就" />
  110. <van-field v-model="form.paper" v-if="form.role == '6'" name="论文" label="论文 " placeholder="请输入论文" />
  111. <van-field v-model="form.remark" autosize label="备注" v-if="form.role == '6'" type="textarea" placeholder="请输入备注" show-word-limit />
  112. <div style="margin: 16px;">
  113. <van-button round block type="info" native-type="submit">
  114. 保存
  115. </van-button>
  116. </div>
  117. </van-form>
  118. </el-col>
  119. </div>
  120. </template>
  121. <script>
  122. import upload from '@/components/upload.vue';
  123. export default {
  124. name: 'person',
  125. props: {
  126. form: null,
  127. },
  128. components: {
  129. upload,
  130. },
  131. data: () => ({
  132. // 出生日期
  133. birthday: '',
  134. birthdayShow: false,
  135. // 学历
  136. xlPicker: false,
  137. xlList: ['中专及以上', '大专及以上', '本科及以上', '研究生及以上'],
  138. // 学位
  139. xwPicker: false,
  140. xwList: ['学士', '硕士', '博士', '其他'],
  141. }),
  142. created() {},
  143. computed: {},
  144. methods: {
  145. // 出生日期
  146. birthdayPopup() {
  147. this.birthdayShow = true;
  148. },
  149. // 确认选择之后的时间
  150. birthdayPicker(val) {
  151. let year = val.getFullYear();
  152. let month = val.getMonth() + 1;
  153. let day = val.getDate();
  154. let birthday = `${year}-${month}-${day}`;
  155. this.$set(this.form, `birthday`, birthday);
  156. this.birthdayShow = false;
  157. },
  158. // 学历
  159. onConfirm(xl) {
  160. this.$set(this.form, `xl`, xl);
  161. this.xlPicker = false;
  162. },
  163. // 学位
  164. onConfirms(xw) {
  165. this.$set(this.form, `xw`, xw);
  166. this.xwPicker = false;
  167. },
  168. onSubmit() {
  169. this.$emit('onSubmit', { data: this.form });
  170. },
  171. // 图片上传
  172. uploadSuccess({ type, data }) {
  173. console.log(type, data);
  174. this.$set(this.form, `${type}`, data.uri);
  175. },
  176. },
  177. };
  178. </script>
  179. <style lang="less" scoped>
  180. .info {
  181. margin: 0 0 50px 0;
  182. }
  183. </style>