index.vue 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. :inline="true"
  7. v-show="showSearch"
  8. label-width="68px"
  9. >
  10. <!-- <el-form-item label="请假人员" prop="peopleId">
  11. <el-input
  12. v-model="queryParams.peopleId"
  13. placeholder="请输入请假人员"
  14. clearable
  15. size="small"
  16. @keyup.enter.native="handleQuery"
  17. />
  18. </el-form-item> -->
  19. <el-form-item label="" prop="unitId">
  20. <treeselect
  21. v-model="queryParams.unitId"
  22. :options="deptOptions"
  23. placeholder="请选择单位"
  24. @select="selectPeo"
  25. @open="blurSelect"
  26. />
  27. </el-form-item>
  28. <el-form-item label="" prop="peopleId">
  29. <el-select
  30. v-model="queryParams.peopleId"
  31. placeholder="请选择请假人员"
  32. ref="headerSearchSelect"
  33. @keyup.enter.native="handleQuery"
  34. >
  35. <el-option
  36. v-for="(item, i) in renYuan"
  37. :key="i"
  38. :label="item.name"
  39. :value="item.id"
  40. @click.native="qingRen(item.name)"
  41. >
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. <!-- <el-form-item label="单位" prop="unitId">
  46. <el-input
  47. v-model="queryParams.unitId"
  48. placeholder="请输入单位"
  49. clearable
  50. size="small"
  51. @keyup.enter.native="handleQuery"
  52. />
  53. </el-form-item>
  54. <el-form-item label="请假开始时间" prop="startTime">
  55. <el-date-picker clearable size="small"
  56. v-model="queryParams.startTime"
  57. type="date"
  58. value-format="yyyy-MM-dd"
  59. placeholder="选择请假开始时间">
  60. </el-date-picker>
  61. </el-form-item>
  62. <el-form-item label="请假结束时间" prop="endTime">
  63. <el-date-picker clearable size="small"
  64. v-model="queryParams.endTime"
  65. type="date"
  66. value-format="yyyy-MM-dd"
  67. placeholder="选择请假结束时间">
  68. </el-date-picker>
  69. </el-form-item>
  70. <el-form-item label="请假类型" prop="leaveType">
  71. <el-select v-model="queryParams.leaveType" placeholder="请选择请假类型" clearable size="small">
  72. <el-option
  73. v-for="dict in dict.type.people_state"
  74. :key="dict.value"
  75. :label="dict.label"
  76. :value="dict.value"
  77. />
  78. </el-select>
  79. </el-form-item>
  80. <el-form-item label="离队时间" prop="departureTime">
  81. <el-input
  82. v-model="queryParams.departureTime"
  83. placeholder="请输入离队时间"
  84. clearable
  85. size="small"
  86. @keyup.enter.native="handleQuery"
  87. />
  88. </el-form-item>
  89. <el-form-item label="归队时间" prop="returnTime">
  90. <el-input
  91. v-model="queryParams.returnTime"
  92. placeholder="请输入归队时间"
  93. clearable
  94. size="small"
  95. @keyup.enter.native="handleQuery"
  96. />
  97. </el-form-item>
  98. <el-form-item label="归队状态" prop="returnStatus">
  99. <el-select v-model="queryParams.returnStatus" placeholder="请选择归队状态" clearable size="small">
  100. <el-option label="请选择字典生成" value="" />
  101. </el-select>
  102. </el-form-item>
  103. <el-form-item label="修改时间" prop="updatetime">
  104. <el-input
  105. v-model="queryParams.updatetime"
  106. placeholder="请输入修改时间"
  107. clearable
  108. size="small"
  109. @keyup.enter.native="handleQuery"
  110. />
  111. </el-form-item>
  112. <el-form-item label="创建人ID" prop="adminId">
  113. <el-input
  114. v-model="queryParams.adminId"
  115. placeholder="请输入创建人ID"
  116. clearable
  117. size="small"
  118. @keyup.enter.native="handleQuery"
  119. />
  120. </el-form-item>
  121. <el-form-item label="创建时间" prop="createtime">
  122. <el-input
  123. v-model="queryParams.createtime"
  124. placeholder="请输入创建时间"
  125. clearable
  126. size="small"
  127. @keyup.enter.native="handleQuery"
  128. />
  129. </el-form-item>
  130. <el-form-item label="批准人id" prop="peopleId1">
  131. <el-input
  132. v-model="queryParams.peopleId1"
  133. placeholder="请输入批准人id"
  134. clearable
  135. size="small"
  136. @keyup.enter.native="handleQuery"
  137. />
  138. </el-form-item>
  139. <el-form-item label="职务" prop="postId">
  140. <el-input
  141. v-model="queryParams.postId"
  142. placeholder="请输入职务"
  143. clearable
  144. size="small"
  145. @keyup.enter.native="handleQuery"
  146. />
  147. </el-form-item>
  148. <el-form-item label="二级审批人id" prop="peopleId2">
  149. <el-input
  150. v-model="queryParams.peopleId2"
  151. placeholder="请输入二级审批人id"
  152. clearable
  153. size="small"
  154. @keyup.enter.native="handleQuery"
  155. />
  156. </el-form-item>
  157. <el-form-item label="三级审批人id" prop="peopleId3">
  158. <el-input
  159. v-model="queryParams.peopleId3"
  160. placeholder="请输入三级审批人id"
  161. clearable
  162. size="small"
  163. @keyup.enter.native="handleQuery"
  164. />
  165. </el-form-item>
  166. <el-form-item label="四级审批人id" prop="peopleId4">
  167. <el-input
  168. v-model="queryParams.peopleId4"
  169. placeholder="请输入四级审批人id"
  170. clearable
  171. size="small"
  172. @keyup.enter.native="handleQuery"
  173. />
  174. </el-form-item>
  175. <el-form-item label="四级审批人id" prop="status1">
  176. <el-input
  177. v-model="queryParams.status1"
  178. placeholder="请输入四级审批人id"
  179. clearable
  180. size="small"
  181. @keyup.enter.native="handleQuery"
  182. />
  183. </el-form-item>
  184. <el-form-item label="四级审批人id" prop="status2">
  185. <el-input
  186. v-model="queryParams.status2"
  187. placeholder="请输入四级审批人id"
  188. clearable
  189. size="small"
  190. @keyup.enter.native="handleQuery"
  191. />
  192. </el-form-item>
  193. <el-form-item label="四级审批人id" prop="status3">
  194. <el-input
  195. v-model="queryParams.status3"
  196. placeholder="请输入四级审批人id"
  197. clearable
  198. size="small"
  199. @keyup.enter.native="handleQuery"
  200. />
  201. </el-form-item>
  202. <el-form-item label="四级审批人id" prop="status4">
  203. <el-input
  204. v-model="queryParams.status4"
  205. placeholder="请输入四级审批人id"
  206. clearable
  207. size="small"
  208. @keyup.enter.native="handleQuery"
  209. />
  210. </el-form-item>
  211. <el-form-item label="总审批状态" prop="contents">
  212. <el-input
  213. v-model="queryParams.contents"
  214. placeholder="请输入总审批状态"
  215. clearable
  216. size="small"
  217. @keyup.enter.native="handleQuery"
  218. />
  219. </el-form-item>
  220. <el-form-item label="总审批状态" prop="statusd">
  221. <el-input
  222. v-model="queryParams.statusd"
  223. placeholder="请输入总审批状态"
  224. clearable
  225. size="small"
  226. @keyup.enter.native="handleQuery"
  227. />
  228. </el-form-item>
  229. <el-form-item label="归队状态" prop="rejoin">
  230. <el-input
  231. v-model="queryParams.rejoin"
  232. placeholder="请输入归队状态"
  233. clearable
  234. size="small"
  235. @keyup.enter.native="handleQuery"
  236. />
  237. </el-form-item>
  238. <el-form-item label="单位名称" prop="unitName">
  239. <el-input
  240. v-model="queryParams.unitName"
  241. placeholder="请输入单位名称"
  242. clearable
  243. size="small"
  244. @keyup.enter.native="handleQuery"
  245. />
  246. </el-form-item>
  247. <el-form-item label="请假人姓名" prop="peopleName">
  248. <el-input
  249. v-model="queryParams.peopleName"
  250. placeholder="请输入请假人姓名"
  251. clearable
  252. size="small"
  253. @keyup.enter.native="handleQuery"
  254. />
  255. </el-form-item>
  256. <el-form-item label="一级审批人姓名" prop="peopleName1">
  257. <el-input
  258. v-model="queryParams.peopleName1"
  259. placeholder="请输入一级审批人姓名"
  260. clearable
  261. size="small"
  262. @keyup.enter.native="handleQuery"
  263. />
  264. </el-form-item>
  265. <el-form-item label="二级审批人姓名" prop="peopleName2">
  266. <el-input
  267. v-model="queryParams.peopleName2"
  268. placeholder="请输入二级审批人姓名"
  269. clearable
  270. size="small"
  271. @keyup.enter.native="handleQuery"
  272. />
  273. </el-form-item>
  274. <el-form-item label="三级审批人姓名" prop="peopleName3">
  275. <el-input
  276. v-model="queryParams.peopleName3"
  277. placeholder="请输入三级审批人姓名"
  278. clearable
  279. size="small"
  280. @keyup.enter.native="handleQuery"
  281. />
  282. </el-form-item>
  283. <el-form-item label="四级审批人姓名" prop="peopleName4">
  284. <el-input
  285. v-model="queryParams.peopleName4"
  286. placeholder="请输入四级审批人姓名"
  287. clearable
  288. size="small"
  289. @keyup.enter.native="handleQuery"
  290. />
  291. </el-form-item>
  292. <el-form-item label="驳回原因" prop="reasons">
  293. <el-input
  294. v-model="queryParams.reasons"
  295. placeholder="请输入驳回原因"
  296. clearable
  297. size="small"
  298. @keyup.enter.native="handleQuery"
  299. />
  300. </el-form-item>
  301. <el-form-item label="特殊审批原因" prop="specialApproval">
  302. <el-input
  303. v-model="queryParams.specialApproval"
  304. placeholder="请输入特殊审批原因"
  305. clearable
  306. size="small"
  307. @keyup.enter.native="handleQuery"
  308. />
  309. </el-form-item>
  310. <el-form-item label="实际归队时间" prop="actualreturntime">
  311. <el-date-picker clearable size="small"
  312. v-model="queryParams.actualreturntime"
  313. type="date"
  314. value-format="yyyy-MM-dd"
  315. placeholder="选择实际归队时间">
  316. </el-date-picker>
  317. </el-form-item> -->
  318. <el-form-item>
  319. <!-- <el-button type="primary" size="btn" @click="handleQuery"
  320. >搜索</el-button
  321. > -->
  322. <el-button size="btr" @click="resetQuery"
  323. >重置</el-button
  324. >
  325. </el-form-item>
  326. </el-form>
  327. <el-row :gutter="10" class="mb8">
  328. <el-col :span="1.5">
  329. <el-button
  330. type="primary"
  331. plain
  332. icon="el-icon-plus"
  333. size="mini"
  334. @click="handleAdd"
  335. v-hasPermi="['peopleChuRu:leaveOne:add']"
  336. >新增</el-button
  337. >
  338. </el-col>
  339. <!-- <el-col :span="1.5">
  340. <el-button
  341. type="success"
  342. plain
  343. icon="el-icon-edit"
  344. size="mini"
  345. :disabled="single"
  346. @click="handleUpdate"
  347. v-hasPermi="['peopleChuRu:leaveOne:edit']"
  348. >修改</el-button
  349. >
  350. </el-col> -->
  351. <el-col :span="1.5">
  352. <el-button
  353. type="danger"
  354. plain
  355. icon="el-icon-delete"
  356. size="mini"
  357. :disabled="multiple"
  358. @click="handleDelete"
  359. v-hasPermi="['peopleChuRu:leaveOne:remove']"
  360. >删除</el-button
  361. >
  362. </el-col>
  363. <!-- <el-col :span="1.5">
  364. <el-button
  365. type="warning"
  366. plain
  367. icon="el-icon-download"
  368. size="mini"
  369. :loading="exportLoading"
  370. @click="handleExport"
  371. v-hasPermi="['peopleChuRu:leaveOne:export']"
  372. >导出</el-button>
  373. </el-col> -->
  374. <!-- <right-toolbar
  375. :showSearch.sync="showSearch"
  376. @queryTable="getList"
  377. ></right-toolbar> -->
  378. </el-row>
  379. <el-table
  380. v-loading="loading"
  381. :data="leaveOneList"
  382. :header-cell-style="{ background: '#003C69', color: 'white' }"
  383. @selection-change="handleSelectionChange"
  384. >
  385. <el-table-column type="selection" width="55" align="center" />
  386. <!-- <el-table-column label="主键ID" align="center" prop="id" /> -->
  387. <el-table-column label="序号" align="center" type="index" />
  388. <el-table-column label="请假人员" align="center" prop="peopleId" />
  389. <el-table-column
  390. label="单位"
  391. align="center"
  392. prop="unitId"
  393. :formatter="unit3Format"
  394. />
  395. <!-- <el-table-column label="单位" align="center" prop="unitName" /> -->
  396. <el-table-column
  397. label="请假开始时间"
  398. align="center"
  399. prop="startTime"
  400. width="180"
  401. >
  402. <template slot-scope="scope">
  403. <span>{{
  404. parseTime(scope.row.startTime, "{y}-{m}-{d} {h}-{m}-{s}")
  405. }}</span>
  406. </template>
  407. </el-table-column>
  408. <el-table-column
  409. label="请假结束时间"
  410. align="center"
  411. prop="endTime"
  412. width="180"
  413. >
  414. <template slot-scope="scope">
  415. <span>{{
  416. parseTime(scope.row.endTime, "{y}-{m}-{d} {h}-{m}-{s}")
  417. }}</span>
  418. </template>
  419. </el-table-column>
  420. <el-table-column label="请假类型" align="center" prop="leaveType">
  421. <template slot-scope="scope">
  422. <dict-tag
  423. :options="dict.type.people_state"
  424. :value="scope.row.leaveType"
  425. />
  426. </template>
  427. </el-table-column>
  428. <el-table-column label="请假原因" align="center" prop="leaveReason" />
  429. <el-table-column
  430. label="离队时间"
  431. align="center"
  432. prop="departureTime"
  433. width="180"
  434. >
  435. <template slot-scope="scope">
  436. <span>{{
  437. parseTime(scope.row.departureTime, "{y}-{m}-{d} {h}-{m}-{s}")
  438. }}</span>
  439. </template>
  440. </el-table-column>
  441. <el-table-column
  442. label="归队时间"
  443. align="center"
  444. prop="returnTime"
  445. width="180"
  446. >
  447. <template slot-scope="scope">
  448. <span>{{
  449. parseTime(scope.row.returnTime, "{y}-{m}-{d} {h}-{m}-{s}")
  450. }}</span>
  451. </template>
  452. </el-table-column>
  453. <!-- <el-table-column label="归队状态" align="center" prop="rejoin" /> -->
  454. <!-- <el-table-column label="是否归队" align="center" prop="isReturn" /> -->
  455. <!-- <el-table-column label="修改时间" align="center" prop="updatetime" />
  456. <el-table-column label="创建人ID" align="center" prop="adminId" /> -->
  457. <!-- <el-table-column label="创建时间" align="center" prop="createtime" /> -->
  458. <!-- <el-table-column label="批准人id" align="center" prop="peopleId1" />
  459. <el-table-column label="职务" align="center" prop="postId" />
  460. <el-table-column label="二级审批人id" align="center" prop="peopleId2" />
  461. <el-table-column label="三级审批人id" align="center" prop="peopleId3" />
  462. <el-table-column label="四级审批人id" align="center" prop="peopleId4" />
  463. <el-table-column label="四级审批人id" align="center" prop="status1" />
  464. <el-table-column label="四级审批人id" align="center" prop="status2" />
  465. <el-table-column label="四级审批人id" align="center" prop="status3" />
  466. <el-table-column label="四级审批人id" align="center" prop="status4" />
  467. <el-table-column label="总审批状态" align="center" prop="contents" />
  468. <el-table-column label="总审批状态" align="center" prop="statusd" />
  469. <el-table-column label="归队状态" align="center" prop="rejoin" /> -->
  470. <!-- <el-table-column label="单位名称" align="center" prop="unitName" />
  471. <el-table-column label="请假人姓名" align="center" prop="peopleName" />
  472. <el-table-column label="一级审批人姓名" align="center" prop="peopleName1" />
  473. <el-table-column label="二级审批人姓名" align="center" prop="peopleName2" />
  474. <el-table-column label="三级审批人姓名" align="center" prop="peopleName3" />
  475. <el-table-column label="四级审批人姓名" align="center" prop="peopleName4" />
  476. <el-table-column label="驳回原因" align="center" prop="reasons" /> -->
  477. <!-- <el-table-column label="特殊审批原因" align="center" prop="specialApproval" />
  478. <el-table-column label="实际归队时间" align="center" prop="actualreturntime" width="180">
  479. <template slot-scope="scope">
  480. <span>{{ parseTime(scope.row.actualreturntime, '{y}-{m}-{d}') }}</span>
  481. </template>
  482. </el-table-column> -->
  483. <el-table-column
  484. label="操作"
  485. align="center"
  486. class-name="small-padding fixed-width"
  487. >
  488. <template slot-scope="scope">
  489. <!-- <el-button
  490. size="mini"
  491. type="text"
  492. icon="el-icon-edit"
  493. @click="handleUpdate(scope.row)"
  494. v-hasPermi="['peopleChuRu:leaveOne:edit']"
  495. >修改</el-button
  496. > -->
  497. <el-button
  498. size="btd"
  499. type="text"
  500. @click="handleDelete(scope.row)"
  501. v-hasPermi="['peopleChuRu:leaveOne:remove']"
  502. >删除</el-button
  503. >
  504. </template>
  505. </el-table-column>
  506. </el-table>
  507. <pagination
  508. v-show="total > 0"
  509. :total="total"
  510. :page.sync="queryParams.pageNum"
  511. :limit.sync="queryParams.pageSize"
  512. @pagination="getList"
  513. />
  514. <!-- 添加或修改人员请假对话框 -->
  515. <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
  516. <el-form
  517. ref="form"
  518. :model="form"
  519. :rules="rules"
  520. label-width="80px"
  521. inline
  522. >
  523. <el-form-item label="单位" prop="unitId">
  524. <treeselect
  525. v-model="form.unitId"
  526. :options="deptOptions"
  527. placeholder="请选择单位"
  528. @select="selectPeo"
  529. @open="blurSelect"
  530. />
  531. </el-form-item>
  532. <el-form-item label="请假人员" prop="peopleId">
  533. <el-select
  534. v-model="form.peopleId"
  535. placeholder="请选择请假人员"
  536. ref="headerSearchSelect"
  537. >
  538. <el-option
  539. v-for="(item, i) in renYuan"
  540. :key="i"
  541. :label="item.name"
  542. :value="item.id"
  543. @click.native="qingRen(item.name)"
  544. >
  545. </el-option>
  546. </el-select>
  547. </el-form-item>
  548. <el-form-item label="请假类型" prop="leaveType">
  549. <el-select v-model="form.leaveType" placeholder="请选择请假类型">
  550. <el-option
  551. v-for="dict in dict.type.people_state"
  552. :key="dict.value"
  553. :label="dict.label"
  554. :value="dict.value"
  555. ></el-option>
  556. </el-select>
  557. </el-form-item>
  558. <!-- <el-form-item label="请假人员" prop="peopleId">
  559. <el-input v-model="form.peopleId" placeholder="请输入请假人员" />
  560. </el-form-item> -->
  561. <!-- <el-form-item label="单位" prop="unitId">
  562. <el-input v-model="form.unitId" placeholder="请输入单位" />
  563. </el-form-item> -->
  564. <el-form-item label="请假开始时间" prop="startTime">
  565. <el-date-picker
  566. clearable
  567. size="small"
  568. v-model="form.startTime"
  569. type="datetime"
  570. default-time="00:00:00"
  571. placeholder="选择请假开始时间"
  572. value-format="yyyy-MM-dd HH:mm:ss"
  573. >
  574. </el-date-picker>
  575. </el-form-item>
  576. <el-form-item label="请假结束时间" prop="endTime">
  577. <el-date-picker
  578. clearable
  579. size="small"
  580. v-model="form.endTime"
  581. type="datetime"
  582. default-time="00:00:00"
  583. placeholder="选择请假结束时间"
  584. value-format="yyyy-MM-dd HH:mm:ss"
  585. >
  586. </el-date-picker>
  587. </el-form-item>
  588. <el-form-item label="离队时间" prop="departureTime">
  589. <el-date-picker
  590. clearable
  591. size="small"
  592. v-model="form.departureTime"
  593. type="datetime"
  594. default-time="00:00:00"
  595. placeholder="请输入离队时间"
  596. value-format="yyyy-MM-dd HH:mm:ss"
  597. >
  598. </el-date-picker>
  599. </el-form-item>
  600. <el-form-item label="归队时间" prop="returnTime">
  601. <el-date-picker
  602. clearable
  603. size="small"
  604. v-model="form.returnTime"
  605. type="datetime"
  606. default-time="00:00:00"
  607. placeholder="请输入归队时间"
  608. value-format="yyyy-MM-dd HH:mm:ss"
  609. >
  610. </el-date-picker>
  611. </el-form-item>
  612. <!-- <el-form-item label="离队时间" prop="departureTime">
  613. <el-input v-model="form.departureTime" placeholder="请输入离队时间" />
  614. </el-form-item>
  615. <el-form-item label="归队时间" prop="returnTime">
  616. <el-input v-model="form.returnTime" placeholder="请输入归队时间" />
  617. </el-form-item> -->
  618. <div class="jiben">请假原因</div>
  619. <el-form-item label="" prop="leaveReason">
  620. <el-input
  621. v-model="form.leaveReason"
  622. type="textarea"
  623. placeholder="请输入内容"
  624. />
  625. </el-form-item>
  626. <!--
  627. <el-form-item label="归队状态">
  628. <el-radio-group v-model="form.returnStatus">
  629. <el-radio label="1">请选择字典生成</el-radio>
  630. </el-radio-group>
  631. </el-form-item>
  632. <el-form-item label="创建人ID" prop="adminId">
  633. <el-input v-model="form.adminId" placeholder="请输入创建人ID" />
  634. </el-form-item>
  635. <el-form-item label="批准人id" prop="peopleId1">
  636. <el-input v-model="form.peopleId1" placeholder="请输入批准人id" />
  637. </el-form-item>
  638. <el-form-item label="职务" prop="postId">
  639. <el-input v-model="form.postId" placeholder="请输入职务" />
  640. </el-form-item>
  641. <el-form-item label="二级审批人id" prop="peopleId2">
  642. <el-input v-model="form.peopleId2" placeholder="请输入二级审批人id" />
  643. </el-form-item>
  644. <el-form-item label="三级审批人id" prop="peopleId3">
  645. <el-input v-model="form.peopleId3" placeholder="请输入三级审批人id" />
  646. </el-form-item>
  647. <el-form-item label="四级审批人id" prop="peopleId4">
  648. <el-input v-model="form.peopleId4" placeholder="请输入四级审批人id" />
  649. </el-form-item>
  650. <el-form-item label="四级审批人id" prop="status1">
  651. <el-input v-model="form.status1" placeholder="请输入四级审批人id" />
  652. </el-form-item>
  653. <el-form-item label="四级审批人id" prop="status2">
  654. <el-input v-model="form.status2" placeholder="请输入四级审批人id" />
  655. </el-form-item>
  656. <el-form-item label="四级审批人id" prop="status3">
  657. <el-input v-model="form.status3" placeholder="请输入四级审批人id" />
  658. </el-form-item>
  659. <el-form-item label="四级审批人id" prop="status4">
  660. <el-input v-model="form.status4" placeholder="请输入四级审批人id" />
  661. </el-form-item>
  662. <el-form-item label="总审批状态" prop="contents">
  663. <el-input v-model="form.contents" placeholder="请输入总审批状态" />
  664. </el-form-item>
  665. <el-form-item label="总审批状态" prop="statusd">
  666. <el-input v-model="form.statusd" placeholder="请输入总审批状态" />
  667. </el-form-item>
  668. <el-form-item label="归队状态" prop="rejoin">
  669. <el-input v-model="form.rejoin" placeholder="请输入归队状态" />
  670. </el-form-item>
  671. <el-form-item label="单位名称" prop="unitName">
  672. <el-input v-model="form.unitName" placeholder="请输入单位名称" />
  673. </el-form-item>
  674. <el-form-item label="请假人姓名" prop="peopleName">
  675. <el-input v-model="form.peopleName" placeholder="请输入请假人姓名" />
  676. </el-form-item>
  677. <el-form-item label="一级审批人姓名" prop="peopleName1">
  678. <el-input v-model="form.peopleName1" placeholder="请输入一级审批人姓名" />
  679. </el-form-item>
  680. <el-form-item label="二级审批人姓名" prop="peopleName2">
  681. <el-input v-model="form.peopleName2" placeholder="请输入二级审批人姓名" />
  682. </el-form-item>
  683. <el-form-item label="三级审批人姓名" prop="peopleName3">
  684. <el-input v-model="form.peopleName3" placeholder="请输入三级审批人姓名" />
  685. </el-form-item>
  686. <el-form-item label="四级审批人姓名" prop="peopleName4">
  687. <el-input v-model="form.peopleName4" placeholder="请输入四级审批人姓名" />
  688. </el-form-item>
  689. <el-form-item label="驳回原因" prop="reasons">
  690. <el-input v-model="form.reasons" placeholder="请输入驳回原因" />
  691. </el-form-item>
  692. <el-form-item label="特殊审批原因" prop="specialApproval">
  693. <el-input v-model="form.specialApproval" placeholder="请输入特殊审批原因" />
  694. </el-form-item>
  695. <el-form-item label="实际归队时间" prop="actualreturntime">
  696. <el-date-picker clearable size="small"
  697. v-model="form.actualreturntime"
  698. type="date"
  699. value-format="yyyy-MM-dd"
  700. placeholder="选择实际归队时间">
  701. </el-date-picker>
  702. </el-form-item> -->
  703. </el-form>
  704. <div slot="footer" class="dialog-footer">
  705. <el-button type="primary" @click="submitForm">确 定</el-button>
  706. <el-button @click="cancel" size="btn">取 消</el-button>
  707. </div>
  708. </el-dialog>
  709. </div>
  710. </template>
  711. <script>
  712. import {
  713. listLeaveOne,
  714. getLeaveOne,
  715. delLeaveOne,
  716. addLeaveOne,
  717. updateLeaveOne,
  718. exportLeaveOne,
  719. getDept2
  720. } from "@/api/peopleChuRu/leaveOne";
  721. import {
  722. getUser,
  723. getDept,
  724. getQuanBu,
  725. } from "@/api/grassrootsregistration/bdglmeeting";
  726. // 导入树形结构
  727. import Treeselect from "@riophae/vue-treeselect";
  728. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  729. export default {
  730. name: "LeaveOne",
  731. components: {
  732. Treeselect,
  733. },
  734. dicts: ["people_state"],
  735. data() {
  736. return {
  737. // 遮罩层
  738. loading: true,
  739. // 导出遮罩层
  740. exportLoading: false,
  741. // 选中数组
  742. ids: [],
  743. // 非单个禁用
  744. single: true,
  745. // 非多个禁用
  746. multiple: true,
  747. // 显示搜索条件
  748. showSearch: true,
  749. // 总条数
  750. total: 0,
  751. // 人员请假表格数据
  752. leaveOneList: [],
  753. // 弹出层标题
  754. title: "",
  755. // 是否显示弹出层
  756. open: false,
  757. // 查询参数
  758. queryParams: {
  759. pageNum: 1,
  760. pageSize: 10,
  761. peopleId: null,
  762. unitId: null,
  763. startTime: null,
  764. endTime: null,
  765. leaveType: null,
  766. leaveReason: null,
  767. departureTime: null,
  768. returnTime: null,
  769. returnStatus: null,
  770. isReturn: null,
  771. updatetime: null,
  772. adminId: null,
  773. createtime: null,
  774. peopleId1: null,
  775. postId: null,
  776. peopleId2: null,
  777. peopleId3: null,
  778. peopleId4: null,
  779. status1: null,
  780. status2: null,
  781. status3: null,
  782. status4: null,
  783. contents: null,
  784. statusd: null,
  785. rejoin: null,
  786. unitName: null,
  787. peopleName: null,
  788. peopleName1: null,
  789. peopleName2: null,
  790. peopleName3: null,
  791. peopleName4: null,
  792. reasons: null,
  793. specialApproval: null,
  794. actualreturntime: null,
  795. },
  796. // 表单参数
  797. form: {},
  798. // 表单校验
  799. rules: {},
  800. // 树形结构列表
  801. deptOptions: [],
  802. renYuan: [],
  803. unitlist:[]
  804. };
  805. },
  806. created() {
  807. this.getList();
  808. // 获取单位树形
  809. this.getBuMeng();
  810. },
  811. mounted(){
  812. getDept2().then(res=>{
  813. this.unitlist=res.data;
  814. })
  815. },
  816. methods: {
  817. unit3Format(row, column) {
  818. var deptName = "";
  819. this.unitlist.map((item) => {
  820. if (item.deptId == row.unitId) {
  821. deptName = item.deptName;
  822. }
  823. });
  824. return deptName;
  825. },
  826. // 获取部门列表
  827. getBuMeng() {
  828. getDept().then((res) => {
  829. this.deptOptions = res.data;
  830. });
  831. },
  832. // 选择部门单位触发
  833. selectPeo(data) {
  834. this.ChongZhiRen();
  835. this.form.unitId = data.id;
  836. this.getYong(this.form.unitId);
  837. this.getRen(this.form.unitId, 0);
  838. console.log(1);
  839. },
  840. // 重置表单人员
  841. ChongZhiRen() {
  842. (this.form.peopleId = null), (this.form.peopleId1 = null);
  843. this.form.peopleId2 = null;
  844. this.form.peopleId3 = null;
  845. this.form.peopleId4 = null;
  846. },
  847. // 获取用户列表
  848. getYong(id) {
  849. getUser(id).then((res) => {
  850. this.yongHu = res.data;
  851. });
  852. },
  853. // 获取人员
  854. getRen(id, num) {
  855. getQuanBu(id, num).then((response) => {
  856. this.renYuan = response.data;
  857. });
  858. },
  859. // 让单位失去焦点
  860. blurSelect() {
  861. this.$refs.headerSearchSelect.blur();
  862. // this.$refs.abc.blur();
  863. // this.$refs.abcd.blur();
  864. // this.$refs.abcde.blur();
  865. // this.$refs.abcdef.blur();
  866. },
  867. // 请假人选中
  868. qingRen(name) {
  869. this.form.peopleName = name;
  870. },
  871. /** 查询人员请假列表 */
  872. getList() {
  873. this.loading = true;
  874. listLeaveOne(this.queryParams).then((response) => {
  875. // 获取单位树形
  876. this.getBuMeng();
  877. this.leaveOneList = response.rows;
  878. this.total = response.total;
  879. this.loading = false;
  880. });
  881. },
  882. // 取消按钮
  883. cancel() {
  884. this.open = false;
  885. this.reset();
  886. },
  887. // 表单重置
  888. reset() {
  889. this.form = {
  890. id: null,
  891. peopleId: null,
  892. unitId: null,
  893. startTime: null,
  894. endTime: null,
  895. leaveType: null,
  896. leaveReason: null,
  897. departureTime: null,
  898. returnTime: null,
  899. returnStatus: "0",
  900. isReturn: null,
  901. updatetime: null,
  902. adminId: null,
  903. createtime: null,
  904. peopleId1: null,
  905. postId: null,
  906. peopleId2: null,
  907. peopleId3: null,
  908. peopleId4: null,
  909. status1: null,
  910. status2: null,
  911. status3: null,
  912. status4: null,
  913. contents: null,
  914. statusd: null,
  915. rejoin: null,
  916. unitName: null,
  917. peopleName: null,
  918. peopleName1: null,
  919. peopleName2: null,
  920. peopleName3: null,
  921. peopleName4: null,
  922. reasons: null,
  923. specialApproval: null,
  924. actualreturntime: null,
  925. };
  926. this.resetForm("form");
  927. },
  928. /** 搜索按钮操作 */
  929. handleQuery() {
  930. this.queryParams.pageNum = 1;
  931. this.getList();
  932. },
  933. /** 重置按钮操作 */
  934. resetQuery() {
  935. this.resetForm("queryForm");
  936. this.handleQuery();
  937. },
  938. // 多选框选中数据
  939. handleSelectionChange(selection) {
  940. this.ids = selection.map((item) => item.id);
  941. this.single = selection.length !== 1;
  942. this.multiple = !selection.length;
  943. },
  944. /** 新增按钮操作 */
  945. handleAdd() {
  946. this.reset();
  947. this.open = true;
  948. this.title = "添加人员请假";
  949. // 获取单位树形
  950. this.getBuMeng();
  951. },
  952. /** 修改按钮操作 */
  953. handleUpdate(row) {
  954. this.reset();
  955. const id = row.id || this.ids;
  956. getLeaveOne(id).then((response) => {
  957. this.form = response.data;
  958. // 获取单位树形
  959. this.getBuMeng();
  960. this.getRen(this.form.unitId);
  961. this.open = true;
  962. this.title = "修改人员请假";
  963. });
  964. },
  965. /** 提交按钮 */
  966. submitForm() {
  967. this.$refs["form"].validate((valid) => {
  968. if (valid) {
  969. if (this.form.id != null) {
  970. updateLeaveOne(this.form).then((response) => {
  971. this.$modal.msgSuccess("修改成功");
  972. this.open = false;
  973. this.getList();
  974. });
  975. } else {
  976. addLeaveOne(this.form).then((response) => {
  977. this.$modal.msgSuccess("新增成功");
  978. this.open = false;
  979. this.getList();
  980. });
  981. }
  982. }
  983. });
  984. },
  985. /** 删除按钮操作 */
  986. handleDelete(row) {
  987. const ids = row.id || this.ids;
  988. this.$modal
  989. .confirm('是否确认删除人员请假编号为"' + ids + '"的数据项?')
  990. .then(function () {
  991. return delLeaveOne(ids);
  992. })
  993. .then(() => {
  994. this.getList();
  995. this.$modal.msgSuccess("删除成功");
  996. })
  997. .catch(() => {});
  998. },
  999. /** 导出按钮操作 */
  1000. handleExport() {
  1001. const queryParams = this.queryParams;
  1002. this.$modal
  1003. .confirm("是否确认导出所有人员请假数据项?")
  1004. .then(() => {
  1005. this.exportLoading = true;
  1006. return exportLeaveOne(queryParams);
  1007. })
  1008. .then((response) => {
  1009. this.$download.name(response.msg);
  1010. this.exportLoading = false;
  1011. })
  1012. .catch(() => {});
  1013. },
  1014. },
  1015. };
  1016. </script>
  1017. <style scoped>
  1018. /* 对话框背景颜色 */
  1019. ::v-deep .el-dialog {
  1020. background: #004d86 !important;
  1021. width: 800px !important;
  1022. }
  1023. ::v-deep .el-textarea__inner {
  1024. width: 920px;
  1025. height: 104px;
  1026. margin: auto;
  1027. }
  1028. ::v-deep .el-dialog__header {
  1029. border-bottom: 1px solid #718a9d;
  1030. }
  1031. ::v-deep .el-dialog__title {
  1032. color: #fff;
  1033. font: 18px;
  1034. }
  1035. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  1036. color: #fff;
  1037. }
  1038. ::v-deep .el-form-item__label {
  1039. font: 16px;
  1040. color: #fff;
  1041. width: 100px !important;
  1042. }
  1043. ::v-deep .el-input__inner {
  1044. /* width: 200px !important;
  1045. height: 36px; */
  1046. background: transparent;
  1047. color: #fff;
  1048. border: 1px solid white !important;
  1049. }
  1050. /* 单位框背景颜色 */
  1051. ::v-deep .vue-treeselect__control {
  1052. background: #004d86 !important;
  1053. }
  1054. /* 基本信息背景 */
  1055. .jiben {
  1056. width: 920px;
  1057. height: 32px;
  1058. background-image: url(../../../images/小标题底.png);
  1059. background-size: 100%;
  1060. margin-bottom: 25px;
  1061. color: #fff;
  1062. padding-left: 16px;
  1063. line-height: 32px;
  1064. }
  1065. /*调整表单间距 */
  1066. ::v-deep .el-form-item__content {
  1067. width: 200px;
  1068. }
  1069. ::v-deep .el-input__inner {
  1070. cursor: pointer !important;
  1071. }
  1072. /* 底部确定取消按钮 */
  1073. ::v-deep .el-dialog__footer {
  1074. padding: 18px 50px !important;
  1075. margin-right: 19px !important;
  1076. }
  1077. ::v-deep .el-dialog__body {
  1078. margin: 10px 0px 20px 51px;
  1079. padding-top: 20px !important;
  1080. box-sizing: border-box;
  1081. /* padding: 30px 12px 30px 28px; */
  1082. }
  1083. .contents {
  1084. padding: 0px 40px !important;
  1085. }
  1086. /* 下拉菜单 */
  1087. .el-dropdown-link {
  1088. cursor: pointer;
  1089. color: #409eff;
  1090. }
  1091. .el-icon-arrow-down {
  1092. font-size: 12px;
  1093. }
  1094. .el-select-dropdown__item:hover {
  1095. color: #000 !important;
  1096. }
  1097. .el-select-dropdown__item {
  1098. color: #000 !important;
  1099. }
  1100. /* 下拉菜单字体/背景颜色 */
  1101. .el-select-dropdown__item.hover,
  1102. .el-select-dropdown__item:hover {
  1103. background-color: #004d86;
  1104. color: #fff;
  1105. }
  1106. .el-select-dropdown__item {
  1107. color: #fff;
  1108. }
  1109. /* 时间选择 */
  1110. ::v-deep .el-input--small .el-input__inner {
  1111. width: 200px;
  1112. height: 36px;
  1113. line-height: 36px;
  1114. }
  1115. .el-date-editor.el-input {
  1116. width: 200px;
  1117. height: 36px;
  1118. line-height: 36px;
  1119. }
  1120. ::v-deep .el-date-editor.el-input .el-input__inner {
  1121. height: 36px;
  1122. line-height: 36px;
  1123. }
  1124. /* 单位框背景颜色 */
  1125. ::v-deep .vue-treeselect__control {
  1126. background: #004d86 !important;
  1127. color: #fff;
  1128. }
  1129. /* 单位下拉菜单选中字体颜色 */
  1130. ::v-deep .vue-treeselect__single-value {
  1131. color: #fff !important;
  1132. }
  1133. /* 分页按钮 */
  1134. ::v-deep .el-pagination.is-background .el-pager li {
  1135. background-color: #004d86;
  1136. color: #fff;
  1137. }
  1138. ::v-deep .el-pagination.is-background .btn-next {
  1139. background-color: #004d86;
  1140. color: #fff;
  1141. }
  1142. /* 底部确定取消按钮 */
  1143. ::v-deep .el-dialog__footer {
  1144. padding: 18px 50px;
  1145. margin-right: 42px;
  1146. }
  1147. /* 增加按钮弹框 */
  1148. ::v-deep .el-dialog {
  1149. width: 1060px !important;
  1150. }
  1151. ::v-deep .el-dialog__body {
  1152. padding: none !important;
  1153. }
  1154. /* 小手样式 */
  1155. ::v-deep .el-table__cell {
  1156. cursor: pointer;
  1157. }
  1158. .el-button--mini {
  1159. width: 80px !important;
  1160. border: 1px solid transparent;
  1161. padding: 3px 8px;
  1162. font-size: 14px;
  1163. line-height: 1.5;
  1164. border-radius: 3px;
  1165. color: #fff;
  1166. background-color: #1890ff;
  1167. }
  1168. /* ::v-deep .el-table__body tr.hover-row > td.el-table__cell {
  1169. background-color: none;
  1170. } */
  1171. ::v-deep .el-table .el-table__body .el-table__row.hover-row td {
  1172. background-color: #004d86;
  1173. }
  1174. ::v-deep .el-table__fixed-right {
  1175. height: 100% !important;
  1176. }
  1177. ::v-deep .vue-treeselect__control{
  1178. background-color: transparent !important;
  1179. }
  1180. </style>