answer_base.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. <el-form :model="answer" label-width="auto">
  2. <el-row :gutter="100">
  3. <el-col :span="12">
  4. <el-form-item label="姓名" required>
  5. <el-input v-model="answer.name" placeholder="请输入姓名"></el-input>
  6. </el-form-item>
  7. </el-col>
  8. <el-col :span="12">
  9. <el-form-item label="性别" required>
  10. <el-radio-group v-model="answer.sex">
  11. <el-radio value="男">男</el-radio>
  12. <el-radio value="女">女</el-radio>
  13. </el-radio-group>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="12">
  17. <el-form-item label="年龄" required>
  18. <el-input v-model="answer.age" placeholder="请输入年龄" type="number"></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="12">
  22. <el-form-item label="当前岗位" required>
  23. <el-input v-model="answer.current_position" placeholder="请输入当前岗位"></el-input>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="12">
  27. <el-form-item label="学历" required>
  28. <el-select v-model="answer.education" placeholder="请选择学历">
  29. <el-option
  30. v-for="item in education_list"
  31. :key="item.value"
  32. :label="item.text"
  33. :value="item.value"
  34. ></el-option>
  35. </el-select>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="12">
  39. <el-form-item label="所修专业" required>
  40. <el-input v-model="answer.major" placeholder="若有多个学历,以最高学历专业为准"></el-input>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="12">
  44. <el-form-item label="工龄" required>
  45. <el-input v-model="answer.seniority" type="number" placeholder="累计工作年限">
  46. <template #append>年</template>
  47. </el-input>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="12">
  51. <el-form-item label="担任领导" required>
  52. <el-input v-model="answer.leader" placeholder="含各类、各级领导职务的累计年限" type="number">
  53. <template #append>年</template>
  54. </el-input>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="12">
  58. <el-form-item label="所在行业" required>
  59. <el-input v-model="answer.industry" placeholder="请输入所在行业"></el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="12">
  63. <el-form-item label="单位性质" required>
  64. <el-select v-model="answer.company" placeholder="请选择单位性质" @change="companyChange">
  65. <el-option
  66. v-for="item in company_list"
  67. :key="item.value"
  68. :label="item.text"
  69. :value="item.value"
  70. ></el-option>
  71. </el-select>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="12" v-show="showCompanyText">
  75. <el-form-item :label="company_title" required>
  76. <el-input v-model="answer.company_text" :placeholder="company_placeholder"></el-input>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="12" v-show="showJobField">
  80. <el-form-item label="职位" required>
  81. <el-select v-model="answer.job" placeholder="请选择职位" @change="jobChange">
  82. <el-option
  83. v-for="item in job_list"
  84. :key="item.value"
  85. :label="item.text"
  86. :value="item.value"
  87. ></el-option>
  88. </el-select>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :span="12" v-show="showJobText">
  92. <el-form-item label="具体职位" required>
  93. <el-input v-model="answer.job_text" placeholder="请注明具体职位"></el-input>
  94. </el-form-item>
  95. </el-col>
  96. </el-row>
  97. <div class="info-btn">
  98. <el-button type="primary" size="large" @click="baseSubmit" v-loading="baseLoading">下一步</el-button>
  99. </div>
  100. </el-form>
  101. <script>
  102. function answer_base() {
  103. let base = {};
  104. base.answer = Vue.ref({});
  105. //婚姻状况
  106. base.marry_list = [
  107. {text: '单身/未婚', value: '单身/未婚'},
  108. {text: '已婚', value: '已婚'},
  109. {text: '离婚', value: '离婚'},
  110. ];
  111. //学历
  112. base.education_list = [
  113. {text: '初中及以下', value: '初中及以下'},
  114. {text: '高中/职校/中专', value: '高中/职校/中专'},
  115. {text: '大专', value: '大专'},
  116. {text: '本科', value: '本科'},
  117. {text: '硕士', value: '硕士'},
  118. {text: '博士', value: '博士'},
  119. ];
  120. //单位
  121. base.company_list = [
  122. {text: '党政机关', value: '党政机关'},
  123. {text: '事业单位', value: '事业单位'},
  124. {text: '国有企业', value: '国有企业'},
  125. {text: '民营企业', value: '民营企业'},
  126. {text: '外商独资企业', value: '外商独资企业'},
  127. {text: '合资/合作企业', value: '合资/合作企业'},
  128. {text: '股份制(所有权混合)企业', value: '股份制(所有权混合)企业'},
  129. {text: '个体工商户', value: '个体工商户'},
  130. {text: '社会团体/行业组织', value: '社会团体/行业组织'},
  131. {text: '其他', value: '其他'},
  132. ];
  133. base.showCompany = Vue.ref(false);
  134. base.showCompanyText = Vue.ref(false);
  135. base.companyChange = (value) => {
  136. if (value == '党政机关') {
  137. base.company_title.value = '具体部门'
  138. base.company_placeholder.value = '党政机关的具体部门'
  139. base.showCompanyText.value = true;
  140. base.showJobField.value = true;
  141. base.job_list.value = base.job_list_1;
  142. } else if (value == '事业单位') {
  143. base.company_title.value = '具体领域'
  144. base.company_placeholder.value = '事业单位的具体领域'
  145. base.showCompanyText.value = true;
  146. base.showJobField.value = true;
  147. base.job_list.value = base.job_list_1;
  148. } else if (value == '其他') {
  149. base.company_title.value = '单位补充'
  150. base.company_placeholder.value = '请填写单位的性质'
  151. base.showCompanyText.value = true;
  152. base.showJobField.value = false;
  153. } else {
  154. base.job_list.value = base.job_list_2;
  155. base.showCompanyText.value = false;
  156. base.showJobField.value = true;
  157. }
  158. base.answer.value.job = '';
  159. base.answer.value.job_text = '';
  160. base.showJobText.value = false;
  161. base.answer.value.company = value;
  162. base.answer.value.company_text = '';
  163. base.showCompany.value = false;
  164. }
  165. base.company_title = Vue.ref('');
  166. base.company_placeholder = Vue.ref('');
  167. //职位
  168. base.job_list_1 = [
  169. {text: '省/部级(含副省/部级)', value: '省/部级(含副省/部级)'},
  170. {text: '厅/局/司级(含副厅/局/司级)', value: '厅/局/司级(含副厅/局/司级)'},
  171. {text: '处级(含副处级)', value: '处级(含副处级)'},
  172. {text: '科级(含副科级)', value: '科级(含副科级)'},
  173. {text: '一般工作人员', value: '一般工作人员'},
  174. {text: '其他', value: '其他'},
  175. ];
  176. base.job_list_2 = [
  177. {text: '老总(含董事级成员)', value: '老总(含董事级成员)'},
  178. {text: '高层管理者', value: '高层管理者'},
  179. {text: '中层管理者', value: '中层管理者'},
  180. {text: '一线(基层)管理者', value: '一线(基层)管理者'},
  181. {text: '一般职员', value: '一般职员'},
  182. {text: '其他', value: '其他'},
  183. ];
  184. base.job_list = Vue.ref([]);
  185. base.showJob = Vue.ref(false);
  186. base.showJobField = Vue.ref(false);
  187. base.showJobText = Vue.ref(false);
  188. base.jobChange = (value) => {
  189. base.answer.value.job = value;
  190. base.answer.value.job_text = '';
  191. base.showJob.value = false;
  192. if (value == '其他') {
  193. base.showJobText.value = true;
  194. } else {
  195. base.showJobText.value = false;
  196. }
  197. }
  198. base.baseLoading = Vue.ref(false);
  199. base.aid = Vue.ref(0);
  200. base.baseSubmit = () => {
  201. if (base.baseLoading.value) {
  202. return false;
  203. }
  204. const required_field = [
  205. {field:'name',tip:'请输入姓名'},
  206. {field:'sex',tip:'请选择性别'},
  207. {field:'age',tip:'请输入年龄'},
  208. {field:'current_position',tip:'请选择当前岗位'},
  209. {field:'education',tip:'请选择学历'},
  210. {field:'major',tip:'请输入所修专业'},
  211. {field:'seniority',tip:'请输入工龄'},
  212. {field:'leader',tip:'请输入担任领导的累计年限'},
  213. {field:'industry',tip:'请输入所在行业'},
  214. {field:'company',tip:'请选择单位性质'},
  215. ];
  216. for (let item of required_field) {
  217. if (base.answer.value[item.field] === undefined || base.answer.value[item.field] === '') {
  218. ElementPlus.ElMessage.error(item.tip);
  219. base.baseLoading.value = false;
  220. return false;
  221. }
  222. }
  223. if (base.answer.value.company == '党政机关') {
  224. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  225. ElementPlus.ElMessage.error('请输入具体部门');
  226. base.baseLoading.value = false;
  227. return false;
  228. }
  229. if (base.answer.value.job === undefined || base.answer.value.job === '') {
  230. ElementPlus.ElMessage.error('请选择职位');
  231. base.baseLoading.value = false;
  232. return false;
  233. } else {
  234. if (base.answer.value.job == '其他') {
  235. if (base.answer.value.job_text === undefined || base.answer.value.job_text === '') {
  236. ElementPlus.ElMessage.error('请输入具体职位');
  237. base.baseLoading.value = false;
  238. return false;
  239. }
  240. }
  241. }
  242. }
  243. if (base.answer.value.company == '事业单位') {
  244. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  245. ElementPlus.ElMessage.error('请输入具体领域');
  246. base.baseLoading.value = false;
  247. return false;
  248. }
  249. if (base.answer.value.job === undefined || base.answer.value.job === '') {
  250. ElementPlus.ElMessage.error('请选择职位');
  251. base.baseLoading.value = false;
  252. return false;
  253. } else {
  254. if (base.answer.value.job == '其他') {
  255. if (base.answer.value.job_text === undefined || base.answer.value.job_text === '') {
  256. ElementPlus.ElMessage.error('请输入具体职位');
  257. base.baseLoading.value = false;
  258. return false;
  259. }
  260. }
  261. }
  262. }
  263. if (base.answer.value.company == '其他') {
  264. if (base.answer.value.company_text === undefined || base.answer.value.company_text === '') {
  265. ElementPlus.ElMessage.error('请输入单位补充');
  266. base.baseLoading.value = false;
  267. return false;
  268. }
  269. }
  270. postJson("{:url('officer/answerPost')}", {
  271. rid: {$id},
  272. answer: base.answer.value,
  273. }).then((data) => {
  274. base.baseLoading.value = false;
  275. base.aid.value = data.data;
  276. base.active.value = 1;
  277. })
  278. }
  279. return base;
  280. }
  281. </script>