d809c894e375acaea3366ff8625444b2d8ef4cf1.svn-base 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473
  1. <template>
  2. <el-main>
  3. <div class="search">
  4. <el-row type="flex" justify="space-between" align="middle">
  5. <el-col :span="8">
  6. <el-form :inline="true" size="mini" class="demo-form-inline">
  7. <el-form-item label="年度">
  8. <el-select v-model="form.year" clearable placeholder="请选择" multiple>
  9. <el-option
  10. v-for="item in yearList"
  11. :label="item.year"
  12. :value="item.year"
  13. :key="item.id"
  14. ></el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-button type="primary" @click="getListData">查询</el-button>
  18. </el-form>
  19. </el-col>
  20. <el-col :span="2">
  21. <el-button
  22. type="primary"
  23. :disabled="canCreateNewRecom"
  24. @click="createNewRecom"
  25. >新建人员推荐</el-button>
  26. </el-col>
  27. </el-row>
  28. </div>
  29. <div class="table">
  30. <div class="table">
  31. <el-table
  32. v-loading="loading"
  33. border
  34. ref="multipleTable"
  35. :height="tableHeight"
  36. :data="recomListData"
  37. tooltip-effect="dark"
  38. style="width: 100%"
  39. :default-sort = "{prop: 'exprTm', order: 'descending'}"
  40. >
  41. <el-table-column align="center" type="index" label="序号" min-width="25">
  42. <template
  43. slot-scope="scope"
  44. >{{ (form.pageNum - 1) * form.pageSize + (scope.$index + 1) }}</template>
  45. </el-table-column>
  46. <el-table-column
  47. header-align="center"
  48. align="center"
  49. min-width="100"
  50. prop="year"
  51. label="年度"
  52. show-overflow-tooltip
  53. ></el-table-column>
  54. <el-table-column
  55. header-align="center"
  56. align="center"
  57. min-width="120"
  58. prop="exprTm"
  59. label="推荐时间"
  60. :sortable="true"
  61. :sort-method="sortByDate"
  62. show-overflow-tooltip
  63. ></el-table-column>
  64. <el-table-column align="center" min-width="220" label="操作" fixed="right">
  65. <template slot-scope="scope">
  66. <span v-if="scope.row.isNewRecom">
  67. <el-button
  68. type="primary"
  69. size="mini"
  70. @click.stop="editRecomList(scope.row)"
  71. >编辑</el-button>
  72. <el-button
  73. type="danger"
  74. size="mini"
  75. @click.stop="deleteRecomList(scope.row)"
  76. >删除</el-button>
  77. <el-button
  78. type="warning"
  79. size="mini"
  80. @click.stop="recomList(scope.row)"
  81. >推荐</el-button>
  82. </span>
  83. <el-button
  84. v-else
  85. type="primary"
  86. size="mini"
  87. @click.stop="checkRecomList(scope.row)"
  88. >查看</el-button>
  89. </template>
  90. </el-table-column>
  91. </el-table>
  92. <el-pagination
  93. style="margin: 10px auto"
  94. v-if="!changeViewInfo"
  95. background
  96. :pager-count="5"
  97. :current-page="form.pageIndex"
  98. :page-size="form.pageSize"
  99. :page-sizes="[10, 20, 30, 40, 50, 100]"
  100. layout="sizes, total, prev, pager, next"
  101. :total="total"
  102. @current-change="pageIndexChange"
  103. @size-change="handleSizeChange"
  104. ></el-pagination>
  105. </div>
  106. </div>
  107. <!-- 编辑推荐人员 -->
  108. <el-dialog
  109. :title="'推荐人员表'"
  110. width="80%"
  111. :visible.sync="editRecomDialogVisible"
  112. :close-on-click-modal="false"
  113. :before-close="handleEditRecomDialogClose"
  114. >
  115. <el-row>
  116. <el-col :span="8">
  117. <el-form :inline="true" size="mini" class="demo-form-inline">
  118. <el-form-item label="拟推荐岗位">
  119. <el-select v-model="editRcmmForm.roleType" clearable placeholder="请选择">
  120. <el-option
  121. :label="item.label"
  122. :value="item.value"
  123. v-for="(item,index) in roleTypeData"
  124. :key="index"
  125. ></el-option>
  126. </el-select>
  127. </el-form-item>
  128. </el-form>
  129. </el-col>
  130. <el-col :span="8">
  131. <el-form :inline="true" size="mini" class="demo-form-inline">
  132. <el-form-item label="姓名">
  133. <el-input
  134. v-model="editRcmmForm.name"
  135. placeholder="请输入姓名"
  136. style="width: 130px"
  137. clearable
  138. ></el-input>
  139. </el-form-item>
  140. <el-form-item>
  141. <el-button
  142. type="primary"
  143. icon="el-icon-search"
  144. @click="getEditRyXxData"
  145. >查询</el-button>
  146. </el-form-item>
  147. </el-form>
  148. </el-col>
  149. <el-col :span="8">
  150. <el-button type="danger" @click="clearAll">清空</el-button>
  151. <el-button type="primary" @click="saveRcrdDto">保存</el-button>
  152. <el-button type="success" @click="exportEditExcel">导出</el-button>
  153. </el-col>
  154. </el-row>
  155. <el-table
  156. v-loading="loading"
  157. border
  158. ref="multipleTable"
  159. :height="tableHeight"
  160. :data="getEditRyXxData()"
  161. tooltip-effect="dark"
  162. style="width: 100%"
  163. @selection-change="handleEditSelectionChange"
  164. >
  165. <el-table-column type="selection" width="55"></el-table-column>
  166. <el-table-column align="center" type="index" label="序号" min-width="25">
  167. <template
  168. slot-scope="scope"
  169. >{{ (editRcmmForm.pageNum - 1) * editRcmmForm.pageSize + (scope.$index + 1) }}</template>
  170. </el-table-column>
  171. <el-table-column
  172. header-align="center"
  173. align="center"
  174. min-width="100"
  175. prop="name"
  176. label="姓名"
  177. show-overflow-tooltip
  178. ></el-table-column>
  179. <el-table-column
  180. header-align="center"
  181. align="center"
  182. min-width="120"
  183. prop="sex"
  184. label="性别"
  185. show-overflow-tooltip
  186. ></el-table-column>
  187. <el-table-column
  188. header-align="center"
  189. align="center"
  190. min-width="80"
  191. show-overflow-tooltip
  192. prop="age"
  193. label="年龄"
  194. ></el-table-column>
  195. <el-table-column
  196. header-align="center"
  197. align="center"
  198. min-width="200"
  199. show-overflow-tooltip
  200. prop="idNo"
  201. label="身份证号码"
  202. ></el-table-column>
  203. <el-table-column
  204. header-align="center"
  205. align="center"
  206. min-width="200"
  207. label="工作单位"
  208. show-overflow-tooltip
  209. prop="workDpNm"
  210. ></el-table-column>
  211. <el-table-column
  212. header-align="center"
  213. align="center"
  214. min-width="100"
  215. label="职务"
  216. show-overflow-tooltip
  217. prop="duty"
  218. ></el-table-column>
  219. <el-table-column
  220. header-align="center"
  221. align="center"
  222. min-width="100"
  223. prop="titles"
  224. label="职称"
  225. show-overflow-tooltip
  226. >
  227. <template slot-scope="scope">
  228. <span v-if="scope.row.titles == '1'">正高</span>
  229. <span v-if="scope.row.titles == '2'">副高</span>
  230. <span v-if="scope.row.titles == '3'">中级</span>
  231. <span v-if="scope.row.titles == '4'">初级</span>
  232. </template>
  233. </el-table-column>
  234. <el-table-column
  235. header-align="center"
  236. align="center"
  237. min-width="100"
  238. prop="isOffice"
  239. label="在职情况"
  240. >
  241. <template slot-scope="scope">
  242. <span v-if="scope.row.isOffice == '1'">是</span>
  243. <span v-if="scope.row.isOffice == '2'">否</span>
  244. </template>
  245. </el-table-column>
  246. <el-table-column
  247. header-align="center"
  248. align="center"
  249. min-width="100"
  250. prop="isOffice"
  251. label="是否为公务员(含参公)"
  252. >
  253. <template slot-scope="scope">
  254. <span v-if="scope.row.isCvl== '1'">是</span>
  255. <span v-if="scope.row.isCvl == '0'">否</span>
  256. </template>
  257. </el-table-column>
  258. <el-table-column
  259. header-align="center"
  260. align="center"
  261. min-width="120"
  262. prop="education"
  263. label="学历"
  264. show-overflow-tooltip
  265. >
  266. <template slot-scope="scope">
  267. <span v-if="scope.row.education == '1'">专科及以下</span>
  268. <span v-if="scope.row.education == '2'">本科</span>
  269. <span v-if="scope.row.education == '3'">研究生</span>
  270. <span v-if="scope.row.education == '4'">博士</span>
  271. </template>
  272. </el-table-column>
  273. <el-table-column
  274. header-align="center"
  275. align="center"
  276. min-width="80"
  277. prop="workAdNm"
  278. label="原工作地"
  279. show-overflow-tooltip
  280. ></el-table-column>
  281. <el-table-column
  282. header-align="center"
  283. align="center"
  284. min-width="150"
  285. prop="professional"
  286. label="从事专业"
  287. show-overflow-tooltip
  288. ></el-table-column>
  289. <el-table-column
  290. header-align="center"
  291. align="center"
  292. min-width="120"
  293. prop="mobilenumb"
  294. label="手机"
  295. show-overflow-tooltip
  296. ></el-table-column>
  297. <el-table-column
  298. header-align="center"
  299. align="center"
  300. min-width="80"
  301. prop="unitRanks"
  302. label="单位职级"
  303. show-overflow-tooltip
  304. >
  305. <template slot-scope="scope">
  306. <span v-if="scope.row.unitRanks == '1'">省部级</span>
  307. <span v-if="scope.row.unitRanks == '2'">地市级</span>
  308. <span v-if="scope.row.unitRanks == '3'">县市级</span>
  309. </template>
  310. </el-table-column>
  311. <el-table-column
  312. header-align="center"
  313. align="center"
  314. min-width="120"
  315. label="电子邮箱"
  316. prop="email"
  317. show-overflow-tooltip
  318. >
  319. <!-- <template slot-scope="scope">
  320. {{groupType(scope.row.groupType)}}
  321. </template>-->
  322. </el-table-column>
  323. <el-table-column
  324. header-align="center"
  325. align="center"
  326. min-width="80"
  327. prop="roleType"
  328. label="拟推荐稽查岗位"
  329. show-overflow-tooltip
  330. >
  331. <template slot-scope="scope">{{roleType(scope.row.roleType)}}</template>
  332. </el-table-column>
  333. <el-table-column
  334. header-align="center"
  335. align="center"
  336. min-width="120"
  337. prop="inTm"
  338. label="简历"
  339. show-overflow-tooltip
  340. >
  341. <template slot-scope="scope">
  342. <span style="color: #409EFF" @click="checkResume(scope.row)">查看</span>
  343. </template>
  344. </el-table-column>
  345. </el-table>
  346. <el-pagination
  347. style="margin: 10px auto"
  348. v-if="!changeViewInfo"
  349. background
  350. :pager-count="5"
  351. :current-page="editRcmmForm.pageIndex"
  352. :page-size="editRcmmForm.pageSize"
  353. :page-sizes="[10, 20, 30, 40, 50, 100]"
  354. layout="sizes, total, prev, pager, next"
  355. :total="editRcmmTotal"
  356. @current-change="pageIndexChange"
  357. @size-change="handleSizeChange"
  358. ></el-pagination>
  359. <div slot="footer" class="dialog-footer">
  360. <el-button type="primary" @click="addPerson">添加人员</el-button>
  361. <el-button type="danger" @click="deletePerson">删除所选人</el-button>
  362. </div>
  363. </el-dialog>
  364. <!-- 添加推荐人员 -->
  365. <el-dialog
  366. :title="'添加人员'"
  367. width="80%"
  368. :visible.sync="addPersonDialogVisible"
  369. :close-on-click-modal="false"
  370. >
  371. <el-row>
  372. <el-col :span="6">
  373. <el-form :inline="true" size="mini" class="demo-form-inline">
  374. <el-form-item label="拟推荐岗位">
  375. <el-select
  376. v-model="addRcmmForm.roleType"
  377. clearable
  378. placeholder="请选择"
  379. multiple
  380. >
  381. <el-option
  382. :label="item.label"
  383. :value="item.value"
  384. v-for="(item,index) in roleTypeData"
  385. :key="index"
  386. ></el-option>
  387. </el-select>
  388. </el-form-item>
  389. </el-form>
  390. </el-col>
  391. <el-col :span="6">
  392. <el-form :inline="true" size="mini" class="demo-form-inline">
  393. <el-form-item label="是否推荐过">
  394. <el-select v-model="addRcmmForm.state" clearable placeholder="请选择">
  395. <el-option label="未推荐" value="0"></el-option>
  396. <el-option label="推荐过" value="1,2,3"></el-option>
  397. </el-select>
  398. </el-form-item>
  399. </el-form>
  400. </el-col>
  401. <el-col :span="6">
  402. <el-form :inline="true" size="mini" class="demo-form-inline">
  403. <el-form-item label="姓名">
  404. <el-input
  405. v-model="addRcmmForm.name"
  406. placeholder="请输入姓名"
  407. style="width: 130px"
  408. clearable
  409. ></el-input>
  410. </el-form-item>
  411. <el-form-item>
  412. <el-button type="primary" icon="el-icon-search" @click="getAddRyXxData">查询</el-button>
  413. </el-form-item>
  414. </el-form>
  415. </el-col>
  416. <el-col :span="6">
  417. <el-button type="primary" @click="add">添加</el-button>
  418. </el-col>
  419. </el-row>
  420. <el-table
  421. v-loading="loading"
  422. border
  423. ref="addPersonTable"
  424. :height="tableHeight"
  425. :data="getAddRyXxData()"
  426. tooltip-effect="dark"
  427. style="width: 100%"
  428. @selection-change="handleAddSelectionChange"
  429. >
  430. <el-table-column type="selection" width="55"></el-table-column>
  431. <el-table-column align="center" type="index" label="序号" min-width="25">
  432. <template
  433. slot-scope="scope"
  434. >{{ (addRcmmForm.pageNum - 1) * addRcmmForm.pageSize + (scope.$index + 1) }}</template>
  435. </el-table-column>
  436. <el-table-column
  437. header-align="center"
  438. align="center"
  439. min-width="100"
  440. prop="name"
  441. label="姓名"
  442. show-overflow-tooltip
  443. ></el-table-column>
  444. <el-table-column
  445. header-align="center"
  446. align="center"
  447. min-width="120"
  448. prop="sex"
  449. label="性别"
  450. show-overflow-tooltip
  451. ></el-table-column>
  452. <el-table-column
  453. header-align="center"
  454. align="center"
  455. min-width="80"
  456. show-overflow-tooltip
  457. prop="age"
  458. label="年龄"
  459. ></el-table-column>
  460. <el-table-column
  461. header-align="center"
  462. align="center"
  463. min-width="200"
  464. show-overflow-tooltip
  465. prop="idNo"
  466. label="身份证号码"
  467. ></el-table-column>
  468. <el-table-column
  469. header-align="center"
  470. align="center"
  471. min-width="200"
  472. label="工作单位"
  473. show-overflow-tooltip
  474. prop="workDpNm"
  475. ></el-table-column>
  476. <el-table-column
  477. header-align="center"
  478. align="center"
  479. min-width="100"
  480. label="职务"
  481. show-overflow-tooltip
  482. prop="duty"
  483. ></el-table-column>
  484. <el-table-column
  485. header-align="center"
  486. align="center"
  487. min-width="100"
  488. prop="titles"
  489. label="职称"
  490. show-overflow-tooltip
  491. >
  492. <template slot-scope="scope">
  493. <span v-if="scope.row.titles == '1'">正高</span>
  494. <span v-if="scope.row.titles == '2'">副高</span>
  495. <span v-if="scope.row.titles == '3'">中级</span>
  496. <span v-if="scope.row.titles == '4'">初级</span>
  497. </template>
  498. </el-table-column>
  499. <el-table-column
  500. header-align="center"
  501. align="center"
  502. min-width="100"
  503. prop="isOffice"
  504. label="在职情况"
  505. >
  506. <template slot-scope="scope">
  507. <span v-if="scope.row.isOffice == '1'">是</span>
  508. <span v-if="scope.row.isOffice == '2'">否</span>
  509. </template>
  510. </el-table-column>
  511. <el-table-column
  512. header-align="center"
  513. align="center"
  514. min-width="100"
  515. prop="isOffice"
  516. label="是否为公务员(含参公)"
  517. >
  518. <template slot-scope="scope">
  519. <span v-if="scope.row.isCvl== '1'">是</span>
  520. <span v-if="scope.row.isCvl == '0'">否</span>
  521. </template>
  522. </el-table-column>
  523. <el-table-column
  524. header-align="center"
  525. align="center"
  526. min-width="120"
  527. prop="education"
  528. label="学历"
  529. show-overflow-tooltip
  530. >
  531. <template slot-scope="scope">
  532. <span v-if="scope.row.education == '1'">专科及以下</span>
  533. <span v-if="scope.row.education == '2'">本科</span>
  534. <span v-if="scope.row.education == '3'">研究生</span>
  535. <span v-if="scope.row.education == '4'">博士</span>
  536. </template>
  537. </el-table-column>
  538. <el-table-column
  539. header-align="center"
  540. align="center"
  541. min-width="80"
  542. prop="workAdNm"
  543. label="原工作地"
  544. show-overflow-tooltip
  545. ></el-table-column>
  546. <el-table-column
  547. header-align="center"
  548. align="center"
  549. min-width="150"
  550. prop="professional"
  551. label="从事专业"
  552. show-overflow-tooltip
  553. ></el-table-column>
  554. <el-table-column
  555. header-align="center"
  556. align="center"
  557. min-width="120"
  558. prop="mobilenumb"
  559. label="手机"
  560. show-overflow-tooltip
  561. ></el-table-column>
  562. <el-table-column
  563. header-align="center"
  564. align="center"
  565. min-width="80"
  566. prop="unitRanks"
  567. label="单位职级"
  568. show-overflow-tooltip
  569. >
  570. <template slot-scope="scope">
  571. <span v-if="scope.row.unitRanks == '1'">省部级</span>
  572. <span v-if="scope.row.unitRanks == '2'">地市级</span>
  573. <span v-if="scope.row.unitRanks == '3'">县市级</span>
  574. </template>
  575. </el-table-column>
  576. <el-table-column
  577. header-align="center"
  578. align="center"
  579. min-width="120"
  580. label="电子邮箱"
  581. prop="email"
  582. show-overflow-tooltip
  583. >
  584. <!-- <template slot-scope="scope">
  585. {{groupType(scope.row.groupType)}}
  586. </template>-->
  587. </el-table-column>
  588. <el-table-column
  589. header-align="center"
  590. align="center"
  591. min-width="80"
  592. prop="roleType"
  593. label="拟推荐稽查岗位"
  594. show-overflow-tooltip
  595. >
  596. <template slot-scope="scope">{{roleType(scope.row.roleType)}}</template>
  597. </el-table-column>
  598. <el-table-column
  599. header-align="center"
  600. align="center"
  601. min-width="120"
  602. prop="inTm"
  603. label="简历"
  604. show-overflow-tooltip
  605. >
  606. <template slot-scope="scope">
  607. <span style="color: #409EFF" @click="checkResume(scope.row)">查看</span>
  608. </template>
  609. </el-table-column>
  610. </el-table>
  611. <el-pagination
  612. style="margin: 10px auto"
  613. background
  614. :pager-count="5"
  615. :current-page="addRcmmForm.pageIndex"
  616. :page-size="addRcmmForm.pageSize"
  617. :page-sizes="[10, 20, 30, 40, 50, 100]"
  618. layout="sizes, total, prev, pager, next"
  619. :total="addRcmmTotal"
  620. @current-change="pageIndexChange"
  621. @size-change="handleSizeChange"
  622. ></el-pagination>
  623. </el-dialog>
  624. <!-- 查看推荐人员 -->
  625. <el-dialog
  626. :title="'推荐人员表'"
  627. width="80%"
  628. :visible.sync="checkRecomDialogVisible"
  629. :close-on-click-modal="false"
  630. >
  631. <el-row>
  632. <el-col :span="8">
  633. <el-form :inline="true" size="mini" class="demo-form-inline">
  634. <el-form-item label="拟推荐岗位">
  635. <el-select v-model="checkRcmmForm.roleType" clearable placeholder="请选择">
  636. <el-option
  637. :label="item.label"
  638. :value="item.value"
  639. v-for="(item,index) in roleTypeData"
  640. :key="index"
  641. ></el-option>
  642. </el-select>
  643. </el-form-item>
  644. </el-form>
  645. </el-col>
  646. <el-col :span="8">
  647. <el-form :inline="true" size="mini" class="demo-form-inline">
  648. <el-form-item label="姓名">
  649. <el-input
  650. v-model="checkRcmmForm.name"
  651. placeholder="请输入姓名"
  652. style="width: 130px"
  653. clearable
  654. ></el-input>
  655. </el-form-item>
  656. <el-form-item>
  657. <el-button
  658. type="primary"
  659. icon="el-icon-search"
  660. @click="getCheckRyXxData"
  661. >查询</el-button>
  662. </el-form-item>
  663. </el-form>
  664. </el-col>
  665. <el-col :span="8">
  666. <el-button type="success" @click="exportExcel">导出</el-button>
  667. </el-col>
  668. </el-row>
  669. <el-table
  670. v-loading="loading"
  671. border
  672. ref="multipleTable"
  673. :height="tableHeight"
  674. :data="getCheckRyXxData()"
  675. tooltip-effect="dark"
  676. style="width: 100%"
  677. >
  678. <el-table-column type="selection" width="55"></el-table-column>
  679. <el-table-column align="center" type="index" label="序号" min-width="25">
  680. <template
  681. slot-scope="scope"
  682. >{{ (checkRcmmForm.pageNum - 1) * checkRcmmForm.pageSize + (scope.$index + 1) }}</template>
  683. </el-table-column>
  684. <el-table-column
  685. header-align="center"
  686. align="center"
  687. min-width="100"
  688. prop="name"
  689. label="姓名"
  690. show-overflow-tooltip
  691. ></el-table-column>
  692. <el-table-column
  693. header-align="center"
  694. align="center"
  695. min-width="120"
  696. prop="sex"
  697. label="性别"
  698. show-overflow-tooltip
  699. ></el-table-column>
  700. <el-table-column
  701. header-align="center"
  702. align="center"
  703. min-width="80"
  704. show-overflow-tooltip
  705. prop="age"
  706. label="年龄"
  707. ></el-table-column>
  708. <el-table-column
  709. header-align="center"
  710. align="center"
  711. min-width="200"
  712. show-overflow-tooltip
  713. prop="idNo"
  714. label="身份证号码"
  715. ></el-table-column>
  716. <el-table-column
  717. header-align="center"
  718. align="center"
  719. min-width="200"
  720. label="工作单位"
  721. show-overflow-tooltip
  722. prop="workDpNm"
  723. ></el-table-column>
  724. <el-table-column
  725. header-align="center"
  726. align="center"
  727. min-width="100"
  728. label="职务"
  729. show-overflow-tooltip
  730. prop="duty"
  731. ></el-table-column>
  732. <el-table-column
  733. header-align="center"
  734. align="center"
  735. min-width="100"
  736. prop="titles"
  737. label="职称"
  738. show-overflow-tooltip
  739. >
  740. <template slot-scope="scope">
  741. <span v-if="scope.row.titles == '1'">正高</span>
  742. <span v-if="scope.row.titles == '2'">副高</span>
  743. <span v-if="scope.row.titles == '3'">中级</span>
  744. <span v-if="scope.row.titles == '4'">初级</span>
  745. </template>
  746. </el-table-column>
  747. <el-table-column
  748. header-align="center"
  749. align="center"
  750. min-width="100"
  751. prop="isOffice"
  752. label="在职情况"
  753. >
  754. <template slot-scope="scope">
  755. <span v-if="scope.row.isOffice == '1'">是</span>
  756. <span v-if="scope.row.isOffice == '2'">否</span>
  757. </template>
  758. </el-table-column>
  759. <el-table-column
  760. header-align="center"
  761. align="center"
  762. min-width="100"
  763. prop="isOffice"
  764. label="是否为公务员(含参公)"
  765. >
  766. <template slot-scope="scope">
  767. <span v-if="scope.row.isCvl== '1'">是</span>
  768. <span v-if="scope.row.isCvl == '0'">否</span>
  769. </template>
  770. </el-table-column>
  771. <el-table-column
  772. header-align="center"
  773. align="center"
  774. min-width="120"
  775. prop="education"
  776. label="学历"
  777. show-overflow-tooltip
  778. >
  779. <template slot-scope="scope">
  780. <span v-if="scope.row.education == '1'">专科及以下</span>
  781. <span v-if="scope.row.education == '2'">本科</span>
  782. <span v-if="scope.row.education == '3'">研究生</span>
  783. <span v-if="scope.row.education == '4'">博士</span>
  784. </template>
  785. </el-table-column>
  786. <el-table-column
  787. header-align="center"
  788. align="center"
  789. min-width="80"
  790. prop="workAdNm"
  791. label="原工作地"
  792. show-overflow-tooltip
  793. ></el-table-column>
  794. <el-table-column
  795. header-align="center"
  796. align="center"
  797. min-width="150"
  798. prop="professional"
  799. label="从事专业"
  800. show-overflow-tooltip
  801. ></el-table-column>
  802. <el-table-column
  803. header-align="center"
  804. align="center"
  805. min-width="120"
  806. prop="mobilenumb"
  807. label="手机"
  808. show-overflow-tooltip
  809. ></el-table-column>
  810. <el-table-column
  811. header-align="center"
  812. align="center"
  813. min-width="80"
  814. prop="unitRanks"
  815. label="单位职级"
  816. show-overflow-tooltip
  817. >
  818. <template slot-scope="scope">
  819. <span v-if="scope.row.unitRanks == '1'">省部级</span>
  820. <span v-if="scope.row.unitRanks == '2'">地市级</span>
  821. <span v-if="scope.row.unitRanks == '3'">县市级</span>
  822. </template>
  823. </el-table-column>
  824. <el-table-column
  825. header-align="center"
  826. align="center"
  827. min-width="120"
  828. label="电子邮箱"
  829. prop="email"
  830. show-overflow-tooltip
  831. >
  832. <!-- <template slot-scope="scope">
  833. {{groupType(scope.row.groupType)}}
  834. </template>-->
  835. </el-table-column>
  836. <el-table-column
  837. header-align="center"
  838. align="center"
  839. min-width="80"
  840. prop="roleType"
  841. label="拟推荐稽查岗位"
  842. show-overflow-tooltip
  843. >
  844. <template slot-scope="scope">{{roleType(scope.row.roleType)}}</template>
  845. </el-table-column>
  846. <el-table-column
  847. header-align="center"
  848. align="center"
  849. min-width="120"
  850. prop="inTm"
  851. label="简历"
  852. show-overflow-tooltip
  853. >
  854. <template slot-scope="scope">
  855. <span style="color: #409EFF" @click="checkResume(scope.row)">查看</span>
  856. </template>
  857. </el-table-column>
  858. </el-table>
  859. <el-pagination
  860. style="margin: 10px auto"
  861. v-if="!changeViewInfo"
  862. background
  863. :pager-count="5"
  864. :current-page="checkRcmmForm.pageIndex"
  865. :page-size="checkRcmmForm.pageSize"
  866. :page-sizes="[10, 20, 30, 40, 50, 100]"
  867. layout="sizes, total, prev, pager, next"
  868. :total="checkRcmmTotal"
  869. @current-change="pageIndexChange"
  870. @size-change="handleSizeChange"
  871. ></el-pagination>
  872. </el-dialog>
  873. </el-main>
  874. </template>
  875. <script>
  876. import request from "../../../utils/gw_ajax_request";
  877. import { dateFormat, formatDateTime } from "../../../utils/gw_date";
  878. import { exportModel } from "@util/gw_exportModel";
  879. import { hostUrl } from "@util/global_variable.js";
  880. export default {
  881. name: "Sttj", // 省厅推荐
  882. data() {
  883. return {
  884. canCreateNewRecom: localStorage.hasOwnProperty("addRecom"), // 是否可以创建新推荐
  885. editRecomDialogVisible: false, // 编辑
  886. checkRecomDialogVisible: false, // 查看
  887. addPersonDialogVisible: false, // 添加
  888. tableHeight: window.innerHeight - 240,
  889. changeViewInfo: false,
  890. loading: false,
  891. addRenYuanData: [], // 添加人员表
  892. editRenYuanData: [], // 编辑人员表
  893. checkRenYuanData: [], // 查看人员表
  894. yearList: [],
  895. total: 0,
  896. addRcmmTotal: 0,
  897. editRcmmTotal: 0,
  898. checkRcmmTotal: 0,
  899. addMultipleSelection: [],
  900. editMultipleSelection: [],
  901. recomTime: "", // 推荐时间
  902. checkRecomTime: "", // 查看推荐时间
  903. form: {
  904. // 查询表单
  905. year: "",
  906. pageNum: 1,
  907. pageSize: 20
  908. },
  909. newRecomForm: [],
  910. editRcmmForm: {
  911. name: "",
  912. roleType: "",
  913. pageNum: 1,
  914. pageSize: 20
  915. },
  916. addRcmmForm: {
  917. name: "",
  918. roleType: [],
  919. state: "", // 默认筛选已推荐过
  920. pageNum: 1,
  921. pageSize: 20
  922. },
  923. checkRcmmForm: {
  924. name: "",
  925. roleType: "",
  926. state: "",
  927. pageNum: 1,
  928. pageSize: 20
  929. },
  930. recomListData: [] // 推荐记录表
  931. };
  932. },
  933. mounted() {
  934. this.getYearList(); // 获取稽查年度列表
  935. this.getListData(); // 获取推荐列表数据
  936. this.getRyXxData(); // 添加人员信息
  937. this.getNewRecomRecord(); // 获取新增人员本地保存记录
  938. },
  939. methods: {
  940. // 获取新增人员本地保存记录
  941. getNewRecomRecord() {
  942. if (localStorage.hasOwnProperty("saveRcrdDto")) {
  943. let saveRcrdDto = JSON.parse(
  944. localStorage.getItem("saveRcrdDto")
  945. );
  946. this.editRenYuanData = saveRcrdDto.rcmmList;
  947. this.editRenYuanData.forEach(i => {
  948. this.addRenYuanData.forEach((_i, index) => {
  949. if (i.id === _i.id)
  950. this.addRenYuanData.splice(index, 1);
  951. });
  952. });
  953. }
  954. },
  955. // 获取稽查年度列表
  956. getYearList() {
  957. request.post(`/tac/insp/year/list`,{}).then(res => {
  958. this.yearList = res.data;
  959. });
  960. },
  961. // 获取列表数据
  962. getListData() {
  963. let params = {
  964. year: this.form.year.toString()
  965. };
  966. request
  967. .post("/tac/expr/rcmm/rcrd/getRcrdDtoList", params)
  968. .then(res => {
  969. this.recomListData = res.data;
  970. if (localStorage.getItem("addRecom")) {
  971. let addRecom = JSON.parse(
  972. localStorage.getItem("addRecom")
  973. );
  974. this.recomListData.unshift(addRecom);
  975. }
  976. });
  977. },
  978. // 新建人员推荐列表
  979. createNewRecom() {
  980. if (this.canCreateNewRecom) {
  981. this.$message({
  982. type: "danger",
  983. message: "请先推荐现有名单!",
  984. duration: 1000
  985. });
  986. return;
  987. }
  988. let obj = {
  989. exprTm: formatDateTime(),
  990. year: dateFormat(new Date(), "yyyy"),
  991. isNewRecom: true
  992. };
  993. this.recomListData.unshift(obj);
  994. localStorage.setItem("addRecom", JSON.stringify(obj));
  995. this.canCreateNewRecom = true;
  996. },
  997. // 编辑人员分页
  998. pageIndexChange(val) {
  999. this.$nextTick(() => {
  1000. this.editRcmmForm.pageNum = val;
  1001. });
  1002. },
  1003. handleSizeChange(val) {
  1004. this.$nextTick(() => {
  1005. this.editRcmmForm.pageSize = val;
  1006. });
  1007. },
  1008. // 添加人员分页
  1009. pageIndexChange(val) {
  1010. this.$nextTick(() => {
  1011. this.addRcmmForm.pageNum = val;
  1012. this.getRyXxData();
  1013. });
  1014. },
  1015. handleSizeChange(val) {
  1016. this.$nextTick(() => {
  1017. this.addRcmmForm.pageSize = val;
  1018. this.getRyXxData();
  1019. });
  1020. },
  1021. // 编辑推荐人员表
  1022. editRecomList(row) {
  1023. this.getNewRecomRecord();
  1024. this.recomTime = row.exprTm;
  1025. this.editRecomDialogVisible = true;
  1026. },
  1027. // 拟推荐岗位
  1028. roleType(row) {
  1029. if (row) {
  1030. this.roleTypeData.forEach(ele => {
  1031. if (ele.value == row) {
  1032. row = ele.label;
  1033. }
  1034. });
  1035. return row;
  1036. } else {
  1037. return "";
  1038. }
  1039. },
  1040. getTj() {
  1041. let obj = {};
  1042. obj.name = this.addRcmmForm.name;
  1043. obj.roleType = this.addRcmmForm.roleType.toString();
  1044. obj.state = this.addRcmmForm.state.toString();
  1045. obj.pageSize = this.addRcmmForm.pageSize;
  1046. obj.pageNum = this.addRcmmForm.pageSize;
  1047. return obj;
  1048. },
  1049. // 添加人员信息
  1050. getRyXxData() {
  1051. let obj = this.getTj();
  1052. request
  1053. .post(`/tac/expr/rcmm/getRcmmPage`, obj)
  1054. .then(res => {
  1055. if (res.success) {
  1056. this.addRenYuanData = res.data.list; // 添加人员
  1057. this.addRcmmTotal = res.data.total; // 添加人员
  1058. } else {
  1059. console.log(res);
  1060. }
  1061. })
  1062. .catch(err => {
  1063. console.log(err);
  1064. });
  1065. },
  1066. // 格式化查询参数
  1067. getStrParams(obj) {
  1068. let str = "?";
  1069. for (let key of Object.keys(obj)) {
  1070. str += `${key}=${obj[key]}&`;
  1071. }
  1072. str = str.slice(0, str.length - 1);
  1073. return str;
  1074. },
  1075. // 查看人员表Excel导出
  1076. async exportExcel() {
  1077. let type = "post";
  1078. let url = '/pdcApi/tac/expr/rcmm/exportRcmmExcel';
  1079. let downloadName = "人员信息.xls";
  1080. let data = {
  1081. rcmms: this.getCheckRyXxData()
  1082. }
  1083. let result = await exportModel(type, url, downloadName, JSON.stringify(data));
  1084. },
  1085. // 编辑人员表Excel导出
  1086. async exportEditExcel() {
  1087. let type = "post";
  1088. let url = '/pdcApi/tac/expr/rcmm/exportRcmmExcel';
  1089. let downloadName = "人员信息.xls";
  1090. let data = {
  1091. rcmms: this.getEditRyXxData()
  1092. }
  1093. let result = await exportModel(type, url, downloadName, JSON.stringify(data));
  1094. },
  1095. // 删除推荐记录列表
  1096. deleteRecomList() {
  1097. this.$confirm("提示:请问是否确定删除该条推荐?", "提示", {
  1098. confirmButtonText: "删除",
  1099. cancelButtonText: "取消",
  1100. type: "warning"
  1101. })
  1102. .then(() => {
  1103. this.$message({
  1104. type: "success",
  1105. message: "删除成功",
  1106. duration: 1000
  1107. });
  1108. this.recomListData.shift();
  1109. localStorage.removeItem("addRecom");
  1110. localStorage.removeItem("saveRcrdDto");
  1111. this.canCreateNewRecom = false; // 可以创建新名单
  1112. })
  1113. .catch(() => {
  1114. this.$message({
  1115. type: "info",
  1116. message: "已取消删除",
  1117. duration: 1000
  1118. });
  1119. });
  1120. },
  1121. // 推荐人员
  1122. recomList(row) {
  1123. if (this.editRenYuanData.length === 0 && !localStorage.getItem('saveRcrdDto')) {
  1124. this.$message({
  1125. type: "danger",
  1126. message: "未添加人员!",
  1127. duration: 1000
  1128. });
  1129. return;
  1130. }
  1131. let params = { exprTm: row.exprTm };
  1132. this.$confirm("提示:确定推荐后您将无法继续修改。", "提示", {
  1133. confirmButtonText: "推荐",
  1134. cancelButtonText: "取消",
  1135. type: "warning"
  1136. })
  1137. .then(() => {
  1138. request
  1139. .post(
  1140. "/tac/expr/rcmm/rcrd/updateRcmmListByExprTime",
  1141. params
  1142. )
  1143. .then(res => {
  1144. if (res.success) {
  1145. this.$message({
  1146. type: "success",
  1147. message: "推荐成功",
  1148. duration: 1000
  1149. });
  1150. this.canCreateNewRecom = false;
  1151. localStorage.removeItem("addRecom");
  1152. localStorage.removeItem("saveRcrdDto");
  1153. this.getListData();
  1154. }
  1155. })
  1156. .catch(err => {
  1157. this.$message({
  1158. type: "danger",
  1159. message: "推荐失败!",
  1160. duration: 1000
  1161. });
  1162. });
  1163. })
  1164. .catch(() => {
  1165. this.$message({
  1166. type: "info",
  1167. message: "已取消推荐",
  1168. duration: 1000
  1169. });
  1170. });
  1171. },
  1172. // 保存编辑人员
  1173. saveRcrdDto() {
  1174. if (this.editRenYuanData.length === 0) {
  1175. this.$message({
  1176. type: "danger",
  1177. message: "未添加人员!",
  1178. duration: 1000
  1179. });
  1180. return;
  1181. }
  1182. let params = {
  1183. exprTm: this.recomTime, // 推荐时间
  1184. persId: localStorage.getItem("userid"),
  1185. rcmmList: this.editRenYuanData
  1186. };
  1187. request
  1188. .post("/tac/expr/rcmm/rcrd/saveRcrdDto", params)
  1189. .then(res => {
  1190. if (res.success) {
  1191. this.$message({
  1192. type: "success",
  1193. message: "保存成功",
  1194. duration: 1000
  1195. });
  1196. localStorage.setItem(
  1197. "saveRcrdDto",
  1198. JSON.stringify(params)
  1199. );
  1200. this.clearAll();
  1201. this.editRecomDialogVisible = false;
  1202. } else {
  1203. console.log(res.err);
  1204. }
  1205. })
  1206. .catch(err => {
  1207. console.log(err);
  1208. });
  1209. },
  1210. // 关闭推荐人员弹窗
  1211. handleEditRecomDialogClose(done) {
  1212. if (this.editRenYuanData.length !== 0) {
  1213. this.$confirm("人员未保存,确认关闭?")
  1214. .then(_ => {
  1215. this.clearAll();
  1216. done();
  1217. })
  1218. .catch(_ => {});
  1219. return;
  1220. }
  1221. done();
  1222. },
  1223. // 查看推荐表
  1224. checkRecomList(row) {
  1225. this.checkRecomTime = row.exprTm;
  1226. this.searchRecomList();
  1227. this.checkRecomDialogVisible = true;
  1228. },
  1229. // 查询推荐人员
  1230. searchRecomList() {
  1231. let obj = {
  1232. exprTm: this.checkRecomTime,
  1233. pageNum: this.checkRcmmForm.pageNum,
  1234. pageSize: this.checkRcmmForm.pageSize
  1235. };
  1236. request.post(`/tac/expr/rcmm/getRcmmListByTime`, obj).then(res => {
  1237. if (res.success) {
  1238. this.checkRenYuanData = res.data;
  1239. this.checkRcmmTotal = res.data.length;
  1240. }
  1241. });
  1242. },
  1243. // 添加人员
  1244. addPerson() {
  1245. this.addPersonDialogVisible = true;
  1246. },
  1247. // 添加
  1248. add() {
  1249. if (this.addMultipleSelection.length === 0) {
  1250. this.$message({
  1251. type: "danger",
  1252. message: "未选择人员",
  1253. duration: 1000
  1254. });
  1255. return;
  1256. }
  1257. this.editRenYuanData.push(...this.addMultipleSelection);
  1258. this.addMultipleSelection.forEach(i => {
  1259. this.addRenYuanData.forEach((_i, index) => {
  1260. if (i.id === _i.id) this.addRenYuanData.splice(index, 1);
  1261. });
  1262. });
  1263. this.$refs.addPersonTable.clearSelection();
  1264. this.addPersonDialogVisible = false;
  1265. },
  1266. handleAddSelectionChange(val) {
  1267. this.addMultipleSelection = val;
  1268. },
  1269. // 清空
  1270. clearAll() {
  1271. this.addRenYuanData.push(...this.editRenYuanData);
  1272. this.editRenYuanData = [];
  1273. },
  1274. // 删除所选人
  1275. deletePerson() {
  1276. if (this.editMultipleSelection.length === 0) {
  1277. this.$message({
  1278. type: "danger",
  1279. message: "未选择人员",
  1280. duration: 1000
  1281. });
  1282. return;
  1283. }
  1284. this.editMultipleSelection.forEach(_item => {
  1285. this.editRenYuanData.forEach((item, index) => {
  1286. if (_item.id === item.id) {
  1287. this.editRenYuanData.splice(index, 1);
  1288. }
  1289. });
  1290. });
  1291. this.addRenYuanData.push(...this.editMultipleSelection);
  1292. },
  1293. handleEditSelectionChange(val) {
  1294. this.editMultipleSelection = val;
  1295. },
  1296. // 查看简历
  1297. checkResume(row) {
  1298. request
  1299. .post(`/file/findFileByBiz?bizId=${row.id}`)
  1300. .then(res => {
  1301. if (res.success) {
  1302. if (res.data.length !== 0) {
  1303. window.open(
  1304. hostUrl + res.data[res.data.length - 1].filePath
  1305. ); // 预览最后上传的简历
  1306. } else {
  1307. this.$alert("未上传简历!");
  1308. }
  1309. } else {
  1310. this.$message.error(res.message);
  1311. }
  1312. })
  1313. .catch(err => {
  1314. console.log(err);
  1315. });
  1316. },
  1317. // 深拷贝
  1318. deepClone(obj) {
  1319. if (!obj && typeof obj !== "object") {
  1320. return;
  1321. }
  1322. let newObj = obj.constructor === Array ? [] : {};
  1323. for (let key in obj) {
  1324. if (obj[key]) {
  1325. if (obj[key] && typeof obj[key] === "object") {
  1326. newObj[key] = obj[key].constructor === Array ? [] : {};
  1327. newObj[key] = this.deepClone(obj[key]);
  1328. } else {
  1329. newObj[key] = obj[key];
  1330. }
  1331. }
  1332. }
  1333. return newObj;
  1334. },
  1335. // 编辑人员筛选
  1336. getEditRyXxData() {
  1337. return this.editRenYuanData.filter(item => {
  1338. if (
  1339. item.roleType.includes(this.editRcmmForm.roleType) &&
  1340. item.name.includes(this.editRcmmForm.name)
  1341. ) {
  1342. return item;
  1343. }
  1344. });
  1345. },
  1346. // 添加人员筛选
  1347. getAddRyXxData() {
  1348. let condition = {
  1349. roleType: this.addRcmmForm.roleType.toString(),
  1350. state: this.addRcmmForm.state,
  1351. name: this.addRcmmForm.name
  1352. }
  1353. //return this.personFilter(condition, this.addRenYuanData);
  1354. return this.anotherPersonFilter(condition, this.addRenYuanData);
  1355. },
  1356. /**
  1357. * 返回匹配筛选条件的表格行,方法目前有问题
  1358. * @param {Object} condition 过滤条件。
  1359. * @param {Array} data 需要过滤的数据。
  1360. * @return {Object} 匹配过滤条件值。
  1361. */
  1362. personFilter(condition, data) {
  1363. return data.filter(item => {
  1364. return Object.keys(condition).every(key => {
  1365. return condition[key].includes(item[key])
  1366. })
  1367. })
  1368. },
  1369. /**
  1370. * 返回匹配筛选条件的表格行。
  1371. * @param {Object} condition 过滤条件。
  1372. * @param {Array} data 需要过滤的数据。
  1373. * @return {Object} 匹配过滤条件值。
  1374. */
  1375. anotherPersonFilter(condition, data) {
  1376. return data.filter(item => {
  1377. let matchRoleType = true;
  1378. let matchState = true;
  1379. let matchName = true;
  1380. if(condition.roleType.length) {
  1381. matchRoleType = condition["roleType"].includes(item["roleType"]);
  1382. }
  1383. if(condition.state.length) {
  1384. matchState = condition["state"].includes(item["state"]);
  1385. }
  1386. if(condition.name.length) {
  1387. const keys = condition.name
  1388. .toUpperCase()
  1389. .replace(' ', '')
  1390. .split('');
  1391. matchName = keys.every(key => {
  1392. return item.name.toUpperCase().includes(key);
  1393. })
  1394. }
  1395. return matchRoleType && matchState && matchName;
  1396. })
  1397. },
  1398. // 查看人员筛选
  1399. getCheckRyXxData() {
  1400. return this.checkRenYuanData.filter(item => {
  1401. if (
  1402. item.roleType.includes(this.checkRcmmForm.roleType) &&
  1403. item.name.includes(this.checkRcmmForm.name)
  1404. ) {
  1405. return item;
  1406. }
  1407. });
  1408. },
  1409. // 表格按日期排序
  1410. sortByDate(date1, date2) {
  1411. let val1 = new Date(date1.exprTm).getTime();
  1412. let val2 = new Date(date2.exprTm).getTime();
  1413. return val1 - val2;
  1414. }
  1415. },
  1416. computed: {
  1417. // 拟推荐岗位
  1418. roleTypeData() {
  1419. return this.$store.state.jcState.roleTypeData;
  1420. }
  1421. }
  1422. };
  1423. </script>
  1424. <style lang="scss" scoped>
  1425. .search {
  1426. border-bottom: 1px solid #e3e3e3;
  1427. padding-bottom: 15px;
  1428. }
  1429. </style>