index.vue 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322
  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="unitId">
  11. <treeselect
  12. v-model="queryParams.unitId"
  13. :options="deptOptions"
  14. placeholder="请选择单位"
  15. @select="selectPeos"
  16. />
  17. </el-form-item>
  18. <el-form-item>
  19. <!-- <el-button type="primary" size="btn" @click="handleQuery"
  20. >搜索</el-button
  21. > -->
  22. <el-button size="btr" @click="resetQuery">重置</el-button>
  23. </el-form-item>
  24. </el-form>
  25. <el-row :gutter="10" class="mb8">
  26. <el-col :span="1.5">
  27. <el-button
  28. type="primary"
  29. plain
  30. icon="el-icon-plus"
  31. size="mini"
  32. @click="handleAdd"
  33. v-hasPermi="['peopleChuRu:bdglLeave:add']"
  34. >新增</el-button
  35. >
  36. </el-col>
  37. <el-col :span="1.5">
  38. <el-button
  39. type="success"
  40. plain
  41. icon="el-icon-edit"
  42. size="mini"
  43. :disabled="single"
  44. @click="handleUpdate"
  45. v-hasPermi="['peopleChuRu:bdglLeave:edit']"
  46. >修改</el-button
  47. >
  48. </el-col>
  49. <el-col :span="1.5">
  50. <el-button
  51. type="danger"
  52. plain
  53. icon="el-icon-delete"
  54. size="mini"
  55. :disabled="multiple"
  56. @click="handleDelete"
  57. v-hasPermi="['peopleChuRu:bdglLeave:remove']"
  58. >删除</el-button
  59. >
  60. </el-col>
  61. <!-- <el-col :span="1.5">
  62. <el-button
  63. class="box"
  64. type="warning"
  65. plain
  66. icon="el-icon-download"
  67. size="mini"
  68. :loading="exportLoading"
  69. @click="handleExport"
  70. v-hasPermi="['peopleChuRu:bdglLeave:export']"
  71. >导出</el-button
  72. >
  73. </el-col> -->
  74. <!-- <right-toolbar
  75. :showSearch.sync="showSearch"
  76. @queryTable="getList"
  77. ></right-toolbar> -->
  78. </el-row>
  79. <el-table
  80. v-loading="loading"
  81. :data="bdglLeaveList"
  82. @selection-change="handleSelectionChange"
  83. :header-cell-style="{ background: '#003C69', color: 'white' }"
  84. >
  85. <el-table-column type="selection" width="55" align="center" />
  86. <el-table-column label="序号" align="center" prop="id">
  87. <template scope="scope">
  88. <span>{{
  89. (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
  90. }}</span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column
  94. label="单位"
  95. align="center"
  96. prop="unitName"
  97. width="150px"
  98. />
  99. <el-table-column label="请假人员" align="center" prop="peopleName" />
  100. <el-table-column
  101. label="请假开始时间"
  102. align="center"
  103. prop="startTime"
  104. width="200"
  105. />
  106. <el-table-column
  107. label="请假结束时间"
  108. align="center"
  109. prop="endTime"
  110. width="200"
  111. />
  112. <el-table-column label="请假类型" align="center" prop="leaveType">
  113. <template slot-scope="scope">
  114. <dict-tag
  115. :options="dict.type.people_state"
  116. :value="scope.row.leaveType"
  117. />
  118. </template>
  119. </el-table-column>
  120. <el-table-column
  121. label="请假原因"
  122. align="center"
  123. prop="leaveReason"
  124. width="130"
  125. :show-overflow-tooltip="true"
  126. />
  127. <el-table-column
  128. label="离队时间"
  129. align="center"
  130. prop="departureTime"
  131. width="200"
  132. />
  133. <el-table-column
  134. label="归队时间"
  135. align="center"
  136. prop="returnTime"
  137. width="200"
  138. />
  139. <el-table-column label="是否归队" align="center" prop="isReturn">
  140. <template slot-scope="scope">
  141. <dict-tag :options="dict.type.sys_is" :value="scope.row.isReturn" />
  142. </template>
  143. </el-table-column>
  144. <el-table-column
  145. label="一级审批人"
  146. align="center"
  147. prop="peopleName1"
  148. width="100"
  149. />
  150. <el-table-column
  151. label="一级审批状态"
  152. align="center"
  153. prop="peopleId2"
  154. width="100"
  155. >
  156. <template slot-scope="scope">
  157. <el-col v-if="scope.row.peopleId1 == (null || '' || undefined)">
  158. </el-col>
  159. <el-col
  160. v-if="
  161. scope.row.status1 == 0 &&
  162. scope.row.peopleId1 != (null || '' || undefined)
  163. "
  164. style="color: #ffba00"
  165. >未审批</el-col
  166. >
  167. <el-col v-if="scope.row.status1 == 1" style="color: #13ce66"
  168. >已通过</el-col
  169. >
  170. <el-col
  171. v-if="scope.row.status1 == 2"
  172. :title="scope.row.reasons"
  173. style="color: #ff4949"
  174. >已驳回</el-col
  175. >
  176. <el-col
  177. v-if="scope.row.status1 == 3"
  178. :title="
  179. scope.row.bdglLeaveFus.length > 0
  180. ? scope.row.bdglLeaveFus[0].specialApproval
  181. : ''
  182. "
  183. style="color: #1f73d7"
  184. >特殊审批</el-col
  185. >
  186. </template></el-table-column
  187. >
  188. <el-table-column
  189. label="二级审批人"
  190. align="center"
  191. prop="peopleName2"
  192. width="100"
  193. />
  194. <el-table-column
  195. label="二级审批状态"
  196. align="center"
  197. prop="peopleId4"
  198. width="100"
  199. >
  200. <template slot-scope="scope">
  201. <el-col v-if="scope.row.peopleId2 == (null || '' || undefined)">
  202. </el-col>
  203. <el-col
  204. v-if="
  205. scope.row.status2 == 0 &&
  206. scope.row.peopleId2 != (null || '' || undefined)
  207. "
  208. style="color: #ffba00"
  209. >未审批</el-col
  210. >
  211. <el-col v-if="scope.row.status2 == 1" style="color: #13ce66"
  212. >已通过</el-col
  213. >
  214. <el-col
  215. v-if="scope.row.status2 == 2"
  216. :title="scope.row.reasons"
  217. style="color: #ff4949"
  218. >已驳回</el-col
  219. >
  220. <el-col
  221. v-if="scope.row.status2 == 3"
  222. :title="
  223. scope.row.bdglLeaveFus.length > 1
  224. ? scope.row.bdglLeaveFus[1].specialApproval
  225. : ''
  226. "
  227. style="color: #1f73d7"
  228. >特殊审批</el-col
  229. >
  230. </template>
  231. </el-table-column>
  232. <el-table-column
  233. label="三级审批人"
  234. align="center"
  235. prop="peopleName3"
  236. width="100"
  237. />
  238. <el-table-column
  239. label="三级审批状态"
  240. align="center"
  241. prop="status2"
  242. width="100"
  243. >
  244. <template slot-scope="scope">
  245. <el-col v-if="scope.row.peopleId3 == (null || '' || undefined)">
  246. </el-col>
  247. <el-col
  248. v-if="
  249. scope.row.status3 == 0 &&
  250. scope.row.peopleId3 != (null || '' || undefined)
  251. "
  252. style="color: #ffba00"
  253. >未审批</el-col
  254. >
  255. <el-col v-if="scope.row.status3 == 1" style="color: #13ce66"
  256. >已通过</el-col
  257. >
  258. <el-col
  259. v-if="scope.row.status3 == 2"
  260. :title="scope.row.reasons"
  261. style="color: #ff4949"
  262. >已驳回</el-col
  263. >
  264. <el-col
  265. v-if="scope.row.status3 == 3"
  266. style="color: #1f73d7"
  267. :title="
  268. scope.row.bdglLeaveFus.length > 2
  269. ? scope.row.bdglLeaveFus[2].specialApproval
  270. : ''
  271. "
  272. >特殊审批</el-col
  273. >
  274. </template>
  275. <!-- :title="scope.row.bdglLeaveFus[2].specialApproval" -->
  276. </el-table-column>
  277. <!-- <el-table-column
  278. label="四级审批人"
  279. align="center"
  280. prop="peopleName4"
  281. width="100"
  282. /> -->
  283. <!-- <el-table-column
  284. label="四级审批状态"
  285. align="center"
  286. prop="status4"
  287. width="100"
  288. >
  289. <template slot-scope="scope">
  290. <el-col v-if="scope.row.peopleId4 == (null || '' || undefined)">
  291. </el-col>
  292. <el-col
  293. v-if="
  294. scope.row.status4 == 0 &&
  295. scope.row.peopleId4 != (null || '' || undefined)
  296. "
  297. style="color: #ffba00"
  298. >未审批</el-col
  299. >
  300. <el-col v-if="scope.row.status4 == 1" style="color: #13ce66"
  301. >已通过</el-col
  302. >
  303. <el-col
  304. v-if="scope.row.status4 == 2"
  305. :title="scope.row.reasons"
  306. style="color: #ff4949"
  307. >已驳回</el-col
  308. >
  309. <el-col
  310. v-if="scope.row.status4 == 3"
  311. style="color: #1f73d7"
  312. :title="
  313. scope.row.bdglLeaveFus.length > 3
  314. ? scope.row.bdglLeaveFus[3].specialApproval
  315. : ''
  316. "
  317. >特殊审批</el-col
  318. >
  319. </template>
  320. </el-table-column> -->
  321. <el-table-column
  322. label="总审批状态"
  323. align="center"
  324. prop="contents"
  325. width="120"
  326. />
  327. <el-table-column
  328. fixed="right"
  329. label="操作"
  330. align="center"
  331. class-name="small-padding fixed-width"
  332. width="300"
  333. >
  334. <template slot-scope="scope">
  335. <el-button size="btc" type="text" @click="handleSee(scope.row)"
  336. >查看</el-button
  337. >
  338. <el-button
  339. v-if="scope.row.common == '1'"
  340. size="btc"
  341. type="text"
  342. @click="handleUpdates(scope.row)"
  343. v-hasPermi="['peopleChuRu:bdglLeave:edit']"
  344. >审批</el-button
  345. >
  346. <el-button
  347. v-else-if="scope.row.common == '2'"
  348. size="mini"
  349. type="text"
  350. @click="handleUpdatess(scope.row)"
  351. v-hasPermi="['peopleChuRu:bdglLeave:edit']"
  352. >特殊审批</el-button
  353. >
  354. <el-button
  355. size="btu"
  356. type="text"
  357. @click="handleUpdate(scope.row)"
  358. v-hasPermi="['peopleChuRu:bdglLeave:edit']"
  359. >修改</el-button
  360. >
  361. <el-button
  362. size="btd"
  363. type="text"
  364. @click="handleDelete(scope.row)"
  365. v-hasPermi="['peopleChuRu:bdglLeave:remove']"
  366. >删除</el-button
  367. >
  368. <el-button
  369. v-if="scope.row.common == '3'"
  370. size="btc"
  371. type="text"
  372. @click="handleGuiDui(scope.row)"
  373. v-hasPermi="['peopleChuRu:bdglLeave:edit']"
  374. >归队</el-button
  375. >
  376. </template>
  377. </el-table-column>
  378. </el-table>
  379. <pagination
  380. v-show="total > 0"
  381. :total="total"
  382. :page.sync="queryParams.pageNum"
  383. :limit.sync="queryParams.pageSize"
  384. @pagination="getList"
  385. />
  386. <!-- 添加人员请假对话框 -->
  387. <el-dialog
  388. :title="title"
  389. :visible.sync="open"
  390. width="500px"
  391. append-to-body
  392. :close-on-click-modal="false"
  393. >
  394. <el-form
  395. ref="form"
  396. :model="form"
  397. :rules="rules"
  398. label-width="80px"
  399. inline
  400. >
  401. <div class="jiben">基本信息</div>
  402. <el-form-item label="单位" prop="unitId">
  403. <treeselect
  404. v-model="form.unitId"
  405. :options="deptOptions"
  406. placeholder="请选择单位"
  407. @select="selectPeo"
  408. @open="blurSelect"
  409. />
  410. </el-form-item>
  411. <el-form-item label="请假开始时间" prop="startTime">
  412. <el-date-picker
  413. clearable
  414. size="small"
  415. v-model="form.startTime"
  416. type="datetime"
  417. default-time="00:00:00"
  418. placeholder="选择请假开始时间"
  419. value-format="yyyy-MM-dd HH:mm:ss"
  420. >
  421. </el-date-picker>
  422. </el-form-item>
  423. <el-form-item label="请假结束时间" prop="endTime">
  424. <el-date-picker
  425. clearable
  426. size="small"
  427. v-model="form.endTime"
  428. type="datetime"
  429. default-time="00:00:00"
  430. placeholder="选择请假结束时间"
  431. value-format="yyyy-MM-dd HH:mm:ss"
  432. >
  433. </el-date-picker>
  434. </el-form-item>
  435. <el-form-item label="请假类型" prop="leaveType">
  436. <el-select v-model="form.leaveType" placeholder="请选择请假类型">
  437. <!-- <el-option label="请选择字典生成" value="" /> -->
  438. <el-option
  439. v-for="item in ziDian"
  440. :key="item.dictCode"
  441. :label="item.dictLabel"
  442. :value="item.dictValue"
  443. class="input_xiala"
  444. ></el-option>
  445. </el-select>
  446. </el-form-item>
  447. <el-form-item label="离队时间" prop="departureTime">
  448. <!-- <el-input v-model="form.departureTime" placeholder="请输入离队时间" /> -->
  449. <el-date-picker
  450. clearable
  451. size="small"
  452. v-model="form.departureTime"
  453. type="datetime"
  454. default-time="00:00:00"
  455. placeholder="选择离队时间"
  456. value-format="yyyy-MM-dd HH:mm:ss"
  457. >
  458. </el-date-picker>
  459. </el-form-item>
  460. <el-form-item label="归队时间" prop="returnTime">
  461. <!-- <el-input v-model="form.returnTime" placeholder="请输入归队时间" /> -->
  462. <el-date-picker
  463. clearable
  464. size="small"
  465. v-model="form.returnTime"
  466. type="datetime"
  467. default-time="00:00:00"
  468. placeholder="选择归队时间"
  469. value-format="yyyy-MM-dd HH:mm:ss"
  470. >
  471. </el-date-picker>
  472. </el-form-item>
  473. <el-form-item label="一级审批人" prop="peopleId2">
  474. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  475. <el-select
  476. v-model="form.peopleId1"
  477. filterable
  478. placeholder="请选择一级审批人"
  479. ref="abcdef"
  480. clearable
  481. @clear="peopleIdOne"
  482. >
  483. <el-option
  484. v-for="(item, i) in lianJiRen"
  485. :key="i"
  486. :label="item.nickName"
  487. :value="item.userId"
  488. @click.native="oneRen(item.nickName)"
  489. class="input_xiala"
  490. >
  491. </el-option>
  492. </el-select>
  493. </el-form-item>
  494. <el-form-item label="二级审批人" prop="peopleId2">
  495. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  496. <el-select
  497. v-model="form.peopleId2"
  498. filterable
  499. placeholder="请选择二级审批人"
  500. ref="abcde"
  501. clearable
  502. @clear="peopleIdTwo"
  503. >
  504. <el-option
  505. v-for="(item, i) in yingJiRen"
  506. :key="i"
  507. :label="item.nickName"
  508. :value="item.userId"
  509. @click.native="twoRen(item.nickName)"
  510. class="input_xiala"
  511. >
  512. </el-option>
  513. </el-select>
  514. </el-form-item>
  515. <el-form-item label="三级审批人" prop="peopleId3">
  516. <!-- <el-input v-model="form.peopleId3" placeholder="请输入三级审批人" /> -->
  517. <el-select
  518. v-model="form.peopleId3"
  519. filterable
  520. placeholder="请选择三级审批人"
  521. ref="abcd"
  522. clearable
  523. @clear="peopleIdThere"
  524. >
  525. <el-option
  526. v-for="(item, i) in zhengZhiRen"
  527. :key="i"
  528. :label="item.nickName"
  529. :value="item.userId"
  530. @click.native="thereRen(item.nickName)"
  531. class="input_xiala"
  532. >
  533. </el-option>
  534. </el-select>
  535. </el-form-item>
  536. <el-form-item label="四级审批人" prop="peopleId4">
  537. <!-- <el-input v-model="form.peopleId4" placeholder="请输入四级审批人" /> -->
  538. <el-select
  539. v-model="form.peopleId4"
  540. filterable
  541. placeholder="请选择四级审批人"
  542. ref="abc"
  543. disabled
  544. >
  545. <el-option
  546. v-for="(item, i) in yongHu"
  547. :key="i"
  548. :label="item.nickName"
  549. :value="item.userId"
  550. @click.native="fourRen(item.nickName)"
  551. class="input_xiala"
  552. >
  553. </el-option>
  554. </el-select>
  555. </el-form-item>
  556. <el-form-item label="请假人员" prop="peopleId">
  557. <el-select
  558. v-model="form.peopleId"
  559. placeholder="请输入请假人员"
  560. ref="headerSearchSelect"
  561. multiple
  562. class="ren_yuan"
  563. >
  564. <el-option
  565. v-for="(item, i) in renYuan"
  566. :key="i"
  567. :label="item.name"
  568. :value="item.id"
  569. @click.native="qingRen(item.name)"
  570. class="input_xiala"
  571. >
  572. </el-option>
  573. </el-select>
  574. </el-form-item>
  575. <div class="jiben">请假原因</div>
  576. <el-form-item prop="leaveReason">
  577. <el-input
  578. v-model="form.leaveReason"
  579. type="textarea"
  580. placeholder="请输入内容"
  581. />
  582. </el-form-item>
  583. </el-form>
  584. <div slot="footer" class="dialog-footer">
  585. <el-button type="primary" @click="submitForm">确 定</el-button>
  586. <el-button @click="cancel" size="btn">取 消</el-button>
  587. </div>
  588. </el-dialog>
  589. <!-- 修改人员请假对话框 -->
  590. <el-dialog
  591. :title="title"
  592. :visible.sync="open1"
  593. width="500px"
  594. append-to-body
  595. :close-on-click-modal="false"
  596. >
  597. <el-form
  598. ref="form"
  599. :model="form"
  600. :rules="rules"
  601. label-width="80px"
  602. inline
  603. >
  604. <div class="jiben">基本信息</div>
  605. <el-form-item label="单位" prop="unitId">
  606. <treeselect
  607. v-model="form.unitId"
  608. :options="deptOptions"
  609. placeholder="请选择单位"
  610. @select="selectPeo"
  611. @open="blurSelect"
  612. :disabled="xiugai"
  613. />
  614. </el-form-item>
  615. <el-form-item label="请假开始时间" prop="startTime">
  616. <el-date-picker
  617. clearable
  618. size="small"
  619. v-model="form.startTime"
  620. type="datetime"
  621. default-time="00:00:00"
  622. placeholder="选择请假开始时间"
  623. value-format="yyyy-MM-dd HH:mm:ss"
  624. >
  625. </el-date-picker>
  626. </el-form-item>
  627. <el-form-item label="请假结束时间" prop="endTime">
  628. <el-date-picker
  629. clearable
  630. size="small"
  631. v-model="form.endTime"
  632. placeholder="选择请假结束时间"
  633. type="datetime"
  634. default-time="00:00:00"
  635. value-format="yyyy-MM-dd HH:mm:ss"
  636. >
  637. </el-date-picker>
  638. </el-form-item>
  639. <el-form-item label="请假类型" prop="leaveType">
  640. <el-select v-model="form.leaveType" placeholder="请选择请假类型">
  641. <!-- <el-option label="请选择字典生成" value="" /> -->
  642. <el-option
  643. v-for="item in ziDian"
  644. :key="item.dictCode"
  645. :label="item.dictLabel"
  646. :value="item.dictValue"
  647. class="input_xiala"
  648. ></el-option>
  649. </el-select>
  650. </el-form-item>
  651. <el-form-item label="离队时间" prop="departureTime">
  652. <!-- <el-input v-model="form.departureTime" placeholder="请输入离队时间" /> -->
  653. <el-date-picker
  654. clearable
  655. size="small"
  656. v-model="form.departureTime"
  657. placeholder="请输入离队时间"
  658. type="datetime"
  659. default-time="00:00:00"
  660. value-format="yyyy-MM-dd HH:mm:ss"
  661. >
  662. </el-date-picker>
  663. </el-form-item>
  664. <el-form-item label="归队时间" prop="returnTime">
  665. <!-- <el-input v-model="form.returnTime" placeholder="请输入归队时间" /> -->
  666. <el-date-picker
  667. clearable
  668. size="small"
  669. v-model="form.returnTime"
  670. type="datetime"
  671. default-time="00:00:00"
  672. placeholder="选择归队时间"
  673. value-format="yyyy-MM-dd HH:mm:ss"
  674. >
  675. </el-date-picker>
  676. </el-form-item>
  677. <el-form-item label="一级审批人" prop="peopleId2">
  678. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  679. <el-select
  680. v-model="form.peopleId1"
  681. filterable
  682. placeholder="请输入一级审批人"
  683. ref="abcdef"
  684. :disabled="xiugai"
  685. clearable
  686. >
  687. <el-option
  688. v-for="(item, i) in lianJiRen"
  689. :key="i"
  690. :label="item.nickName"
  691. :value="item.userId"
  692. @click.native="oneRen(item.nickName)"
  693. class="input_xiala"
  694. >
  695. </el-option>
  696. </el-select>
  697. </el-form-item>
  698. <el-form-item label="二级审批人" prop="peopleId2">
  699. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  700. <el-select
  701. v-model="form.peopleId2"
  702. filterable
  703. placeholder="请输入二级审批人"
  704. ref="abcde"
  705. :disabled="xiugai"
  706. clearable
  707. >
  708. <el-option
  709. v-for="(item, i) in yingJiRen"
  710. :key="i"
  711. :label="item.nickName"
  712. :value="item.userId"
  713. @click.native="twoRen(item.nickName)"
  714. class="input_xiala"
  715. >
  716. </el-option>
  717. </el-select>
  718. </el-form-item>
  719. <el-form-item label="三级审批人" prop="peopleId3">
  720. <!-- <el-input v-model="form.peopleId3" placeholder="请输入三级审批人" /> -->
  721. <el-select
  722. v-model="form.peopleId3"
  723. filterable
  724. placeholder="请输入三级审批人"
  725. ref="abcd"
  726. :disabled="xiugai"
  727. clearable
  728. >
  729. <el-option
  730. v-for="(item, i) in zhengZhiRen"
  731. :key="i"
  732. :label="item.nickName"
  733. :value="item.userId"
  734. @click.native="thereRen(item.nickName)"
  735. class="input_xiala"
  736. >
  737. </el-option>
  738. </el-select>
  739. </el-form-item>
  740. <el-form-item label="四级审批人" prop="peopleId4">
  741. <!-- <el-input v-model="form.peopleId4" placeholder="请输入四级审批人" /> -->
  742. <el-select
  743. v-model="form.peopleId4"
  744. filterable
  745. placeholder="请输入四级审批人"
  746. ref="abc"
  747. :disabled="xiugai"
  748. >
  749. <el-option
  750. v-for="(item, i) in yongHu"
  751. :key="i"
  752. :label="item.nickName"
  753. :value="item.userId"
  754. @click.native="fourRen(item.nickName)"
  755. class="input_xiala"
  756. >
  757. </el-option>
  758. </el-select>
  759. </el-form-item>
  760. <el-form-item label="请假人员" prop="peopleId">
  761. <!-- <el-input v-model="form.peopleId" placeholder="请输入请假人员" /> -->
  762. <el-select
  763. v-model="form.peopleId"
  764. placeholder="请输入请假人员"
  765. ref="headerSearchSelect"
  766. :disabled="xiugai"
  767. multiple
  768. class="ren_yuan"
  769. >
  770. <el-option
  771. v-for="(item, i) in renYuan"
  772. :key="i"
  773. :label="item.name"
  774. :value="item.id"
  775. @click.native="qingRen(item.name)"
  776. class="input_xiala"
  777. >
  778. </el-option>
  779. </el-select>
  780. </el-form-item>
  781. <div class="jiben">请假原因</div>
  782. <el-form-item prop="leaveReason">
  783. <el-input
  784. v-model="form.leaveReason"
  785. type="textarea"
  786. placeholder="请输入内容"
  787. />
  788. </el-form-item>
  789. </el-form>
  790. <div slot="footer" class="dialog-footer">
  791. <el-button type="primary" @click="submitForm">确 定</el-button>
  792. <el-button @click="cancel" size="btn">取 消</el-button>
  793. </div>
  794. </el-dialog>
  795. <!-- 审批人员请假对话框 -->
  796. <el-dialog
  797. :title="title"
  798. :visible.sync="open2"
  799. width="500px"
  800. append-to-body
  801. :close-on-click-modal="false"
  802. >
  803. <el-form
  804. ref="form"
  805. :model="form"
  806. :rules="rules"
  807. label-width="80px"
  808. inline
  809. >
  810. <div class="jiben">基本信息</div>
  811. <el-form-item label="单位" prop="unitId">
  812. <treeselect
  813. v-model="form.unitId"
  814. :options="deptOptions"
  815. placeholder="请选择单位"
  816. @select="selectPeo"
  817. @open="blurSelect"
  818. disabled
  819. />
  820. </el-form-item>
  821. <el-form-item label="请假开始时间" prop="startTime">
  822. <el-date-picker
  823. clearable
  824. size="small"
  825. v-model="form.startTime"
  826. type="datetime"
  827. default-time="00:00:00"
  828. placeholder="选择请假开始时间"
  829. value-format="yyyy-MM-dd HH:mm:ss"
  830. disabled
  831. >
  832. </el-date-picker>
  833. </el-form-item>
  834. <el-form-item label="请假结束时间" prop="endTime">
  835. <el-date-picker
  836. clearable
  837. size="small"
  838. v-model="form.endTime"
  839. type="datetime"
  840. default-time="00:00:00"
  841. placeholder="选择请假结束时间"
  842. value-format="yyyy-MM-dd HH:mm:ss"
  843. disabled
  844. >
  845. </el-date-picker>
  846. </el-form-item>
  847. <el-form-item label="请假类型" prop="leaveType">
  848. <el-select
  849. v-model="form.leaveType"
  850. placeholder="请选择请假类型"
  851. disabled
  852. >
  853. <!-- <el-option label="请选择字典生成" value="" /> -->
  854. <el-option
  855. v-for="item in ziDian"
  856. :key="item.dictCode"
  857. :label="item.dictLabel"
  858. :value="item.dictValue"
  859. class="input_xiala"
  860. ></el-option>
  861. </el-select>
  862. </el-form-item>
  863. <el-form-item label="离队时间" prop="departureTime">
  864. <!-- <el-input v-model="form.departureTime" placeholder="请输入离队时间" /> -->
  865. <el-date-picker
  866. clearable
  867. size="small"
  868. v-model="form.departureTime"
  869. type="datetime"
  870. default-time="00:00:00"
  871. placeholder="选择离队时间"
  872. value-format="yyyy-MM-dd HH:mm:ss"
  873. disabled
  874. >
  875. </el-date-picker>
  876. </el-form-item>
  877. <el-form-item label="归队时间" prop="returnTime">
  878. <!-- <el-input v-model="form.returnTime" placeholder="请输入归队时间" /> -->
  879. <el-date-picker
  880. clearable
  881. size="small"
  882. v-model="form.returnTime"
  883. type="datetime"
  884. default-time="00:00:00"
  885. placeholder="选择归队时间"
  886. value-format="yyyy-MM-dd HH:mm:ss"
  887. disabled
  888. >
  889. </el-date-picker>
  890. </el-form-item>
  891. <el-form-item label="一级审批人" prop="peopleId2">
  892. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  893. <el-select
  894. v-model="form.peopleId1"
  895. filterable
  896. placeholder="请输入一级审批人"
  897. ref="abcdef"
  898. disabled
  899. clearable
  900. >
  901. <el-option
  902. v-for="(item, i) in lianJiRen"
  903. :key="i"
  904. :label="item.nickName"
  905. :value="item.userId"
  906. @click.native="oneRen(item.nickName)"
  907. class="input_xiala"
  908. >
  909. </el-option>
  910. </el-select>
  911. </el-form-item>
  912. <el-form-item label="二级审批人" prop="peopleId2">
  913. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  914. <el-select
  915. v-model="form.peopleId2"
  916. filterable
  917. placeholder="请输入二级审批人"
  918. ref="abcde"
  919. disabled
  920. clearable
  921. >
  922. <el-option
  923. v-for="(item, i) in yingJiRen"
  924. :key="i"
  925. :label="item.nickName"
  926. :value="item.userId"
  927. @click.native="twoRen(item.nickName)"
  928. class="input_xiala"
  929. >
  930. </el-option>
  931. </el-select>
  932. </el-form-item>
  933. <el-form-item label="三级审批人" prop="peopleId3">
  934. <!-- <el-input v-model="form.peopleId3" placeholder="请输入三级审批人" /> -->
  935. <el-select
  936. v-model="form.peopleId3"
  937. filterable
  938. placeholder="请输入三级审批人"
  939. ref="abcd"
  940. disabled
  941. >
  942. <el-option
  943. v-for="(item, i) in zhengZhiRen"
  944. :key="i"
  945. :label="item.nickName"
  946. :value="item.userId"
  947. @click.native="thereRen(item.nickName)"
  948. class="input_xiala"
  949. >
  950. </el-option>
  951. </el-select>
  952. </el-form-item>
  953. <el-form-item label="四级审批人" prop="peopleId4">
  954. <!-- <el-input v-model="form.peopleId4" placeholder="请输入四级审批人" /> -->
  955. <el-select
  956. v-model="form.peopleId4"
  957. filterable
  958. placeholder="请输入四级审批人"
  959. ref="abc"
  960. disabled
  961. >
  962. <el-option
  963. v-for="(item, i) in yongHu"
  964. :key="i"
  965. :label="item.nickName"
  966. :value="item.userId"
  967. @click.native="fourRen(item.nickName)"
  968. class="input_xiala"
  969. >
  970. </el-option>
  971. </el-select>
  972. </el-form-item>
  973. <el-form-item label="请假人员" prop="peopleId">
  974. <!-- <el-input v-model="form.peopleId" placeholder="请输入请假人员" /> -->
  975. <el-select
  976. v-model="form.peopleId"
  977. placeholder="请输入请假人员"
  978. ref="headerSearchSelect"
  979. disabled
  980. multiple
  981. class="ren_yuan"
  982. >
  983. <el-option
  984. v-for="(item, i) in renYuan"
  985. :key="i"
  986. :label="item.name"
  987. :value="item.id"
  988. @click.native="qingRen(item.name)"
  989. class="input_xiala"
  990. >
  991. </el-option>
  992. </el-select>
  993. </el-form-item>
  994. <div class="jiben">请假原因</div>
  995. <el-form-item prop="leaveReason">
  996. <el-input
  997. v-model="form.leaveReason"
  998. type="textarea"
  999. placeholder="请输入内容"
  1000. disabled
  1001. />
  1002. </el-form-item>
  1003. <div class="jiben">驳回原因</div>
  1004. <el-form-item prop="reasons">
  1005. <el-input
  1006. v-model="form.reasons"
  1007. type="textarea"
  1008. placeholder="请输入内容"
  1009. />
  1010. </el-form-item>
  1011. </el-form>
  1012. <div class="dialog-footer" slot="footer">
  1013. <el-button type="primary" @click="submitForms">通过</el-button>
  1014. <el-button @click="boHui" size="btn">驳回</el-button>
  1015. </div>
  1016. </el-dialog>
  1017. <!--特殊审批对话框 -->
  1018. <el-dialog
  1019. :title="title"
  1020. :visible.sync="opens"
  1021. width="500px"
  1022. append-to-body
  1023. :close-on-click-modal="false"
  1024. >
  1025. <el-form
  1026. ref="forms"
  1027. :model="form"
  1028. :rules="rulesform"
  1029. label-width="80px"
  1030. inline
  1031. >
  1032. <el-form-item label="单位" prop="unitId">
  1033. <treeselect
  1034. v-model="form.unitId"
  1035. :options="deptOptions"
  1036. placeholder="选择单位"
  1037. @select="selectPeo"
  1038. @open="blurSelect"
  1039. disabled
  1040. />
  1041. </el-form-item>
  1042. <el-form-item label="请假开始时间" prop="startTime">
  1043. <el-date-picker
  1044. clearable
  1045. size="small"
  1046. v-model="form.startTime"
  1047. type="datetime"
  1048. default-time="00:00:00"
  1049. placeholder="选择请假开始时间"
  1050. value-format="yyyy-MM-dd HH:mm:ss"
  1051. disabled
  1052. >
  1053. </el-date-picker>
  1054. </el-form-item>
  1055. <el-form-item label="请假结束时间" prop="endTime">
  1056. <el-date-picker
  1057. clearable
  1058. size="small"
  1059. v-model="form.endTime"
  1060. type="datetime"
  1061. default-time="00:00:00"
  1062. placeholder="选择请假结束时间"
  1063. value-format="yyyy-MM-dd HH:mm:ss"
  1064. disabled
  1065. >
  1066. </el-date-picker>
  1067. </el-form-item>
  1068. <el-form-item label="请假类型" prop="leaveType">
  1069. <el-select
  1070. v-model="form.leaveType"
  1071. placeholder="请选择请假类型"
  1072. disabled
  1073. >
  1074. <el-option
  1075. v-for="item in ziDian"
  1076. :key="item.dictCode"
  1077. :label="item.dictLabel"
  1078. :value="item.dictValue"
  1079. ></el-option>
  1080. </el-select>
  1081. </el-form-item>
  1082. <el-form-item label="离队时间" prop="departureTime">
  1083. <el-date-picker
  1084. clearable
  1085. size="small"
  1086. v-model="form.departureTime"
  1087. type="datetime"
  1088. default-time="00:00:00"
  1089. placeholder="选择离队时间"
  1090. value-format="yyyy-MM-dd HH:mm:ss"
  1091. disabled
  1092. >
  1093. </el-date-picker>
  1094. </el-form-item>
  1095. <el-form-item label="归队时间" prop="returnTime">
  1096. <el-date-picker
  1097. clearable
  1098. size="small"
  1099. v-model="form.returnTime"
  1100. type="datetime"
  1101. default-time="00:00:00"
  1102. placeholder="选择归队时间"
  1103. value-format="yyyy-MM-dd HH:mm:ss"
  1104. disabled
  1105. >
  1106. </el-date-picker>
  1107. </el-form-item>
  1108. <el-form-item label="一级审批人" prop="peopleId1">
  1109. <el-select
  1110. v-model="form.peopleId1"
  1111. filterable
  1112. placeholder="请输入一级审批人"
  1113. ref="abcdef"
  1114. disabled
  1115. >
  1116. <el-option
  1117. v-for="(item, i) in lianJiRen"
  1118. :key="i"
  1119. :label="item.nickName"
  1120. :value="item.userId"
  1121. @click.native="oneRen(item.nickName)"
  1122. >
  1123. </el-option>
  1124. </el-select>
  1125. </el-form-item>
  1126. <el-form-item label="二级审批人" prop="peopleId2">
  1127. <el-select
  1128. v-model="form.peopleId2"
  1129. filterable
  1130. placeholder="请输入二级审批人"
  1131. ref="abcde"
  1132. disabled
  1133. >
  1134. <el-option
  1135. v-for="(item, i) in yingJiRen"
  1136. :key="i"
  1137. :label="item.nickName"
  1138. :value="item.userId"
  1139. @click.native="twoRen(item.nickName)"
  1140. >
  1141. </el-option>
  1142. </el-select>
  1143. </el-form-item>
  1144. <el-form-item label="三级审批人" prop="peopleId3">
  1145. <el-select
  1146. v-model="form.peopleId3"
  1147. filterable
  1148. placeholder="请输入三级审批人"
  1149. ref="abcd"
  1150. disabled
  1151. >
  1152. <el-option
  1153. v-for="(item, i) in zhengZhiRen"
  1154. :key="i"
  1155. :label="item.nickName"
  1156. :value="item.userId"
  1157. @click.native="thereRen(item.nickName)"
  1158. >
  1159. </el-option>
  1160. </el-select>
  1161. </el-form-item>
  1162. <el-form-item label="四级审批人" prop="peopleId4">
  1163. <el-select
  1164. v-model="form.peopleId4"
  1165. filterable
  1166. placeholder="请输入四级审批人"
  1167. ref="abc"
  1168. disabled
  1169. >
  1170. <el-option
  1171. v-for="(item, i) in yongHu"
  1172. :key="i"
  1173. :label="item.nickName"
  1174. :value="item.userId"
  1175. @click.native="fourRen(item.nickName)"
  1176. >
  1177. </el-option>
  1178. </el-select>
  1179. </el-form-item>
  1180. <el-form-item label="请假人员" prop="peopleId">
  1181. <el-select
  1182. v-model="form.peopleId"
  1183. placeholder="请选择请假人员"
  1184. ref="headerSearchSelect"
  1185. disabled
  1186. multiple
  1187. class="ren_yuan"
  1188. >
  1189. <el-option
  1190. v-for="(item, i) in renYuan"
  1191. :key="i"
  1192. :label="item.name"
  1193. :value="item.id"
  1194. @click.native="qingRen(item.name)"
  1195. >
  1196. </el-option>
  1197. </el-select>
  1198. </el-form-item>
  1199. <div class="jiben">请假原因</div>
  1200. <el-form-item prop="leaveReason">
  1201. <el-input
  1202. v-model="form.leaveReason"
  1203. type="textarea"
  1204. placeholder="请输入内容"
  1205. disabled
  1206. />
  1207. </el-form-item>
  1208. <div class="jiben">驳回原因</div>
  1209. <el-form-item prop="">
  1210. <el-input
  1211. v-model="form.reasons"
  1212. type="textarea"
  1213. placeholder="请输入内容"
  1214. />
  1215. </el-form-item>
  1216. <div class="jiben">特殊审批原因</div>
  1217. <el-form-item prop="specialApproval">
  1218. <el-input
  1219. v-model="form.specialApproval"
  1220. type="textarea"
  1221. placeholder="请输入内容"
  1222. />
  1223. </el-form-item>
  1224. </el-form>
  1225. <div class="dialog-footer" slot="footer">
  1226. <el-button type="primary" @click="TSsubmitForms">通过</el-button>
  1227. <el-button @click="TSboHui" size="btn">驳回</el-button>
  1228. </div>
  1229. </el-dialog>
  1230. <!-- 查看对话框 -->
  1231. <el-dialog
  1232. :title="title"
  1233. :visible.sync="opensee"
  1234. width="500px"
  1235. append-to-body
  1236. :close-on-click-modal="false"
  1237. >
  1238. <el-form
  1239. ref="form"
  1240. :model="form"
  1241. :rules="rules"
  1242. label-width="80px"
  1243. inline
  1244. >
  1245. <div class="jiben">基本信息</div>
  1246. <el-form-item label="单位" prop="unitId">
  1247. <treeselect
  1248. v-model="form.unitId"
  1249. :options="deptOptions"
  1250. placeholder="请选择单位"
  1251. @select="selectPeo"
  1252. @open="blurSelect"
  1253. disabled
  1254. />
  1255. </el-form-item>
  1256. <el-form-item label="请假开始时间" prop="startTime">
  1257. <el-date-picker
  1258. clearable
  1259. size="small"
  1260. v-model="form.startTime"
  1261. type="datetime"
  1262. default-time="00:00:00"
  1263. placeholder="选择请假开始时间"
  1264. value-format="yyyy-MM-dd HH:mm:ss"
  1265. disabled
  1266. >
  1267. </el-date-picker>
  1268. </el-form-item>
  1269. <el-form-item label="请假结束时间" prop="endTime">
  1270. <el-date-picker
  1271. clearable
  1272. size="small"
  1273. v-model="form.endTime"
  1274. type="datetime"
  1275. default-time="00:00:00"
  1276. placeholder="选择请假结束时间"
  1277. value-format="yyyy-MM-dd HH:mm:ss"
  1278. disabled
  1279. >
  1280. </el-date-picker>
  1281. </el-form-item>
  1282. <el-form-item label="请假类型" prop="leaveType">
  1283. <el-select
  1284. v-model="form.leaveType"
  1285. placeholder="请选择请假类型"
  1286. disabled
  1287. >
  1288. <!-- <el-option label="请选择字典生成" value="" /> -->
  1289. <el-option
  1290. v-for="item in ziDian"
  1291. :key="item.dictCode"
  1292. :label="item.dictLabel"
  1293. :value="item.dictValue"
  1294. class="input_xiala"
  1295. ></el-option>
  1296. </el-select>
  1297. </el-form-item>
  1298. <el-form-item label="离队时间" prop="departureTime">
  1299. <!-- <el-input v-model="form.departureTime" placeholder="请输入离队时间" /> -->
  1300. <el-date-picker
  1301. clearable
  1302. size="small"
  1303. v-model="form.departureTime"
  1304. type="datetime"
  1305. default-time="00:00:00"
  1306. placeholder="选择离队时间"
  1307. value-format="yyyy-MM-dd HH:mm:ss"
  1308. disabled
  1309. >
  1310. </el-date-picker>
  1311. </el-form-item>
  1312. <el-form-item label="归队时间" prop="returnTime">
  1313. <!-- <el-input v-model="form.returnTime" placeholder="请输入归队时间" /> -->
  1314. <el-date-picker
  1315. clearable
  1316. size="small"
  1317. v-model="form.returnTime"
  1318. type="datetime"
  1319. default-time="00:00:00"
  1320. placeholder="选择归队时间"
  1321. value-format="yyyy-MM-dd HH:mm:ss"
  1322. disabled
  1323. >
  1324. </el-date-picker>
  1325. </el-form-item>
  1326. <el-form-item label="一级审批人" prop="peopleId2">
  1327. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  1328. <el-select
  1329. v-model="form.peopleId1"
  1330. filterable
  1331. placeholder="请输入一级审批人"
  1332. ref="abcdef"
  1333. disabled
  1334. clearable
  1335. >
  1336. <el-option
  1337. v-for="(item, i) in yingJiRen1"
  1338. :key="i"
  1339. :label="item.nickName"
  1340. :value="item.userId"
  1341. @click.native="oneRen(item.nickName)"
  1342. class="input_xiala"
  1343. >
  1344. </el-option>
  1345. </el-select>
  1346. </el-form-item>
  1347. <el-form-item label="二级审批人" prop="peopleId2">
  1348. <!-- <el-input v-model="form.peopleId2" placeholder="请输入二级审批人" /> -->
  1349. <el-select
  1350. v-model="form.peopleId2"
  1351. filterable
  1352. placeholder="请输入二级审批人"
  1353. ref="abcde"
  1354. disabled
  1355. clearable
  1356. >
  1357. <el-option
  1358. v-for="(item, i) in yingJiRen1"
  1359. :key="i"
  1360. :label="item.nickName"
  1361. :value="item.userId"
  1362. @click.native="twoRen(item.nickName)"
  1363. class="input_xiala"
  1364. >
  1365. </el-option>
  1366. </el-select>
  1367. </el-form-item>
  1368. <el-form-item label="三级审批人" prop="peopleId3">
  1369. <!-- <el-input v-model="form.peopleId3" placeholder="请输入三级审批人" /> -->
  1370. <el-select
  1371. v-model="form.peopleId3"
  1372. filterable
  1373. placeholder="请输入三级审批人"
  1374. ref="abcd"
  1375. disabled
  1376. >
  1377. <el-option
  1378. v-for="(item, i) in yingJiRen1"
  1379. :key="i"
  1380. :label="item.nickName"
  1381. :value="item.userId"
  1382. @click.native="thereRen(item.nickName)"
  1383. class="input_xiala"
  1384. >
  1385. </el-option>
  1386. </el-select>
  1387. </el-form-item>
  1388. <el-form-item label="请假人员" prop="peopleId">
  1389. <!-- <el-input v-model="form.peopleId" placeholder="请输入请假人员" /> -->
  1390. <el-select
  1391. v-model="form.peopleId"
  1392. placeholder="请输入请假人员"
  1393. ref="headerSearchSelect"
  1394. disabled
  1395. multiple
  1396. class="ren_yuan"
  1397. >
  1398. <el-option
  1399. v-for="(item, i) in renYuan"
  1400. :key="i"
  1401. :label="item.name"
  1402. :value="item.id"
  1403. @click.native="qingRen(item.name)"
  1404. class="input_xiala"
  1405. >
  1406. </el-option>
  1407. </el-select>
  1408. </el-form-item>
  1409. <div class="jiben">请假原因</div>
  1410. <el-form-item prop="leaveReason">
  1411. <el-input
  1412. v-model="form.leaveReason"
  1413. type="textarea"
  1414. placeholder="请输入内容"
  1415. disabled
  1416. />
  1417. </el-form-item>
  1418. <div class="jiben">驳回原因</div>
  1419. <el-form-item prop="reasons">
  1420. <el-input
  1421. v-model="form.reasons"
  1422. type="textarea"
  1423. placeholder="请输入内容"
  1424. disabled
  1425. />
  1426. </el-form-item>
  1427. <div class="jiben" v-if="oneShenPi">一级特殊审批原因</div>
  1428. <el-form-item prop="reasons" v-if="oneShenPi">
  1429. <el-input
  1430. type="textarea"
  1431. placeholder="请输入内容"
  1432. disabled
  1433. v-model="shenPiQuan.one"
  1434. />
  1435. </el-form-item>
  1436. <div class="jiben" v-if="twoShenPi">二级特殊审批原因</div>
  1437. <el-form-item prop="reasons" v-if="twoShenPi">
  1438. <el-input
  1439. type="textarea"
  1440. placeholder="请输入内容"
  1441. disabled
  1442. v-model="shenPiQuan.two"
  1443. />
  1444. </el-form-item>
  1445. <div class="jiben" v-if="thereShenPi">三级特殊审批原因</div>
  1446. <el-form-item prop="reasons" v-if="thereShenPi">
  1447. <el-input
  1448. type="textarea"
  1449. placeholder="请输入内容"
  1450. disabled
  1451. v-model="shenPiQuan.there"
  1452. />
  1453. </el-form-item>
  1454. </el-form>
  1455. <div class="dialog-footer" slot="footer">
  1456. <el-button type="primary" @click="cancel">取消</el-button>
  1457. </div>
  1458. </el-dialog>
  1459. </div>
  1460. </template>
  1461. <script>
  1462. import {
  1463. listBdglLeave,
  1464. getBdglLeave,
  1465. delBdglLeave,
  1466. addBdglLeave,
  1467. updateBdglLeave,
  1468. exportBdglLeave,
  1469. YingJIUSer,
  1470. LIanJIUSer,
  1471. ZhengZhiUSer,
  1472. getBdglList,
  1473. } from "@/api/peopleChuRu/bdglLeave";
  1474. import {
  1475. getUserzs,
  1476. getDept,
  1477. getQuanBu,
  1478. } from "@/api/grassrootsregistration/bdglmeeting";
  1479. // 导入树形结构
  1480. import Treeselect from "@riophae/vue-treeselect";
  1481. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  1482. // 查询字典
  1483. import { getDicts } from "@/api/system/dict/data";
  1484. export default {
  1485. name: "BdglLeave",
  1486. components: {
  1487. Treeselect,
  1488. },
  1489. dicts: ["Leave_type", "sys_is", "people_state"],
  1490. data() {
  1491. return {
  1492. // 审批按钮状态 审批按钮状态1 修改为0,超级审批状态2
  1493. statussp: "1",
  1494. // 遮罩层
  1495. loading: true,
  1496. // 导出遮罩层
  1497. exportLoading: false,
  1498. // 选中数组
  1499. ids: [],
  1500. // 非单个禁用
  1501. single: true,
  1502. // 非多个禁用
  1503. multiple: true,
  1504. // 显示搜索条件
  1505. showSearch: true,
  1506. // 总条数
  1507. total: 0,
  1508. // 人员请假表格数据
  1509. bdglLeaveList: [],
  1510. // 弹出层标题
  1511. title: "",
  1512. // 是否显示弹出层
  1513. open: false,
  1514. // 是否显示特殊权限弹出层
  1515. opens: false,
  1516. // 查询参数
  1517. queryParams: {
  1518. pageNum: 1,
  1519. pageSize: 10,
  1520. peopleId: null,
  1521. unitId: null,
  1522. startTime: null,
  1523. endTime: null,
  1524. leaveType: null,
  1525. leaveReason: null,
  1526. departureTime: null,
  1527. returnTime: null,
  1528. returnStatus: null,
  1529. isReturn: null,
  1530. updatetime: null,
  1531. adminId: null,
  1532. createtime: null,
  1533. peopleId1: null,
  1534. postId: null,
  1535. peopleId2: null,
  1536. peopleId3: null,
  1537. peopleId4: null,
  1538. status1: null,
  1539. status2: null,
  1540. status3: null,
  1541. status4: null,
  1542. contents: null,
  1543. statusd: null,
  1544. rejoin: null,
  1545. peopleName1: null,
  1546. peopleName2: null,
  1547. peopleName3: null,
  1548. },
  1549. // 表单参数
  1550. form: {},
  1551. // 表单校验
  1552. rules: {
  1553. unitId: [{ required: true, message: "单位不能为空", trigger: "blur" }],
  1554. peopleId: [
  1555. { required: true, message: "人员不能为空", trigger: "blur" },
  1556. ],
  1557. reasons: [
  1558. { required: true, message: "请填写驳回原因", trigger: "blur" },
  1559. ],
  1560. leaveType: [
  1561. { required: true, message: "请假类型不能为空", trigger: "blur" },
  1562. ],
  1563. },
  1564. // 特殊审批表单验证
  1565. rulesform: {
  1566. reasons: [
  1567. { required: true, message: "请填写驳回原因", trigger: "blur" },
  1568. ],
  1569. specialApproval: [
  1570. {
  1571. required: true,
  1572. message: "审批原因不能为空",
  1573. trigger: "blur",
  1574. },
  1575. ],
  1576. },
  1577. // 树形结构列表
  1578. deptOptions: [],
  1579. // 用户列表
  1580. yongHu: [],
  1581. // 人员列表
  1582. renYuan: [],
  1583. // 查询字典请假列表
  1584. dictType: {
  1585. dictType: "people_state",
  1586. },
  1587. // 字典的列表
  1588. ziDian: [],
  1589. // 审批状态
  1590. ziDians: [],
  1591. // 特殊审批通过验证
  1592. trueng: true,
  1593. // 归队数据
  1594. guidui: {},
  1595. // 审批对象
  1596. shenPis: {},
  1597. // 特殊审批对象
  1598. teShu: {},
  1599. // 修改弹出层
  1600. open1: false,
  1601. // 修改审批人禁止修改
  1602. xiugai: false,
  1603. // 修改拿到的数据
  1604. result: {},
  1605. // 审批弹出层显示与隐藏
  1606. open2: false,
  1607. // 营级人员
  1608. yingJiRen: [],
  1609. // 连级人员
  1610. lianJiRen: [],
  1611. // 政治人员
  1612. zhengZhiRen: [],
  1613. // 查看弹出层的显示与隐藏
  1614. opensee: false,
  1615. // 所有审批人
  1616. yingJiRen1: [],
  1617. // 一级特殊审批原因
  1618. oneShenPi: false,
  1619. // 二级特殊审批原因
  1620. twoShenPi: false,
  1621. // 三级特殊审批原因
  1622. thereShenPi: false,
  1623. shenPiQuan: {
  1624. one: null,
  1625. two: null,
  1626. there: null,
  1627. },
  1628. };
  1629. },
  1630. created() {
  1631. this.getList();
  1632. // 字典查询数据
  1633. this.getDicts("approve").then((response) => {
  1634. this.ziDians = response.data;
  1635. });
  1636. this.getYing();
  1637. this.getLiai();
  1638. this.getZheng();
  1639. this.getSuoYou();
  1640. this.getBuMeng();
  1641. },
  1642. methods: {
  1643. // 一级审批人清除按钮触发
  1644. peopleIdOne() {
  1645. this.form.peopleName1 = null;
  1646. },
  1647. // 二级审批人清除按钮触发
  1648. peopleIdTwo() {
  1649. this.form.peopleName2 = null;
  1650. },
  1651. // 三级审批人清除按钮触发
  1652. peopleIdThere() {
  1653. this.form.peopleName3 = null;
  1654. },
  1655. // 营级人员
  1656. getYing() {
  1657. YingJIUSer().then((res) => {
  1658. this.yingJiRen = res.data;
  1659. });
  1660. },
  1661. // 连级人员
  1662. getLiai() {
  1663. LIanJIUSer().then((res) => {
  1664. this.lianJiRen = res.data;
  1665. });
  1666. },
  1667. // 政治人员
  1668. getZheng() {
  1669. ZhengZhiUSer().then((res) => {
  1670. this.zhengZhiRen = res.data;
  1671. });
  1672. },
  1673. // 审批人所有
  1674. getSuoYou() {
  1675. getBdglList().then((res) => {
  1676. this.yingJiRen1 = res.rows;
  1677. });
  1678. },
  1679. // 归队按钮
  1680. handleGuiDui(row) {
  1681. const id = row.id || this.ids;
  1682. getBdglLeave(id).then((response) => {
  1683. this.form = response.data;
  1684. });
  1685. this.$modal
  1686. .confirm("是否确认归队人员的数据项?")
  1687. .then(() => {
  1688. if (this.form.id != null) {
  1689. this.form.rejoin = "1";
  1690. updateBdglLeave(this.form).then((response) => {
  1691. this.$modal.msgSuccess("归队成功");
  1692. this.getList();
  1693. });
  1694. }
  1695. })
  1696. .catch(() => {});
  1697. },
  1698. // // 特殊审批按钮触发
  1699. handleUpdatess(row) {
  1700. this.teShu = row;
  1701. this.getBuMeng();
  1702. // 获取字典类型
  1703. this.getdict();
  1704. this.reset();
  1705. const id = row.id || this.ids;
  1706. getBdglLeave(id).then((response) => {
  1707. this.result = response.data;
  1708. this.result.peopleId = this.result.peopleId.split(",");
  1709. this.result.peopleId = this.result.peopleId.map(Number);
  1710. this.form = response.data;
  1711. this.form.specialApproval = null;
  1712. this.getYong(this.form.unitId);
  1713. this.getRen(this.form.unitId);
  1714. this.opens = true;
  1715. this.title = "审批人员请假";
  1716. });
  1717. },
  1718. // 审批按钮操作
  1719. handleUpdates(row) {
  1720. this.shenPis = row;
  1721. this.getBuMeng();
  1722. // 获取字典类型
  1723. this.getdict();
  1724. this.reset();
  1725. const id = row.id || this.ids;
  1726. getBdglLeave(id).then((response) => {
  1727. this.result = response.data;
  1728. this.result.peopleId = this.result.peopleId.split(",");
  1729. this.result.peopleId = this.result.peopleId.map(Number);
  1730. this.form = response.data;
  1731. this.getYong(this.form.unitId);
  1732. this.getRen(this.form.unitId);
  1733. this.open2 = true;
  1734. this.title = "审批人员请假";
  1735. });
  1736. },
  1737. // 让单位失去焦点
  1738. blurSelect() {
  1739. this.$refs.headerSearchSelect.blur();
  1740. this.$refs.abc.blur();
  1741. this.$refs.abcd.blur();
  1742. this.$refs.abcde.blur();
  1743. this.$refs.abcdef.blur();
  1744. },
  1745. // 重置表单人员
  1746. ChongZhiRen() {
  1747. (this.form.peopleId = null), (this.form.peopleId1 = null);
  1748. this.form.peopleId2 = null;
  1749. this.form.peopleId3 = null;
  1750. this.form.peopleId4 = null;
  1751. },
  1752. // 查询请假类型
  1753. getdict() {
  1754. getDicts(this.dictType.dictType).then((res) => {
  1755. res.data.splice(0, 1);
  1756. this.ziDian = res.data;
  1757. });
  1758. },
  1759. // 请假人选中
  1760. qingRen(name) {
  1761. // this.form.peopleName = name;
  1762. },
  1763. // 一级审批人选中
  1764. oneRen(name) {
  1765. this.form.peopleName1 = name;
  1766. },
  1767. //二级审批人选中
  1768. twoRen(name) {
  1769. this.form.peopleName2 = name;
  1770. },
  1771. // 三级审批人选中
  1772. thereRen(name) {
  1773. this.form.peopleName3 = name;
  1774. },
  1775. // 四级审批人选中
  1776. fourRen(name) {
  1777. this.form.peopleName4 = name;
  1778. },
  1779. // 获取部门列表
  1780. getBuMeng() {
  1781. getDept().then((res) => {
  1782. this.deptOptions = res.data;
  1783. });
  1784. },
  1785. selectPeos(data) {
  1786. this.queryParams.unitId = data.id;
  1787. this.ChongZhiRen();
  1788. this.form.unitId = data.id;
  1789. this.getYong(this.form.unitId);
  1790. this.getRen(this.form.unitId, 0);
  1791. this.getList();
  1792. },
  1793. // 选择部门单位触发
  1794. selectPeo(data) {
  1795. this.ChongZhiRen();
  1796. this.form.unitId = data.id;
  1797. this.getYong(this.form.unitId);
  1798. this.getRen(this.form.unitId, 0);
  1799. },
  1800. // 获取用户列表
  1801. getYong(id) {
  1802. getUserzs(id).then((res) => {
  1803. this.yongHu = res.rows;
  1804. });
  1805. },
  1806. // 获取人员
  1807. getRen(id, num) {
  1808. getQuanBu(id, num).then((response) => {
  1809. this.renYuan = response.data;
  1810. });
  1811. },
  1812. /** 查询人员请假列表 */
  1813. getList() {
  1814. this.loading = true;
  1815. listBdglLeave(this.queryParams).then((response) => {
  1816. this.bdglLeaveList = response.rows;
  1817. this.total = response.total;
  1818. this.loading = false;
  1819. });
  1820. },
  1821. // 取消按钮
  1822. cancel() {
  1823. this.open = false;
  1824. this.open1 = false;
  1825. this.open2 = false;
  1826. this.opens = false;
  1827. this.opensee = false;
  1828. this.reset();
  1829. },
  1830. //审批通过按钮
  1831. submitForms() {
  1832. if (this.shenPis.shenPiJiBie == "一级") {
  1833. this.form.status1 = 1;
  1834. this.form.contents = "一级审批通过";
  1835. } else if (this.shenPis.shenPiJiBie == "二级") {
  1836. this.form.status2 = 1;
  1837. this.form.contents = "二级审批通过";
  1838. } else if (this.shenPis.shenPiJiBie == "三级") {
  1839. this.form.status3 = 1;
  1840. this.form.contents = "三级审批通过";
  1841. } else if (this.shenPis.shenPiJiBie == "四级") {
  1842. this.form.status4 = 1;
  1843. this.form.contents = "四级审批通过";
  1844. }
  1845. this.form.peopleId = this.form.peopleId.join(",");
  1846. updateBdglLeave(this.form).then((response) => {
  1847. this.$modal.msgSuccess("审批成功");
  1848. this.open2 = false;
  1849. this.getList();
  1850. });
  1851. },
  1852. // 审批驳回按钮
  1853. boHui() {
  1854. this.$refs["form"].validate((valid) => {
  1855. if (valid) {
  1856. if (this.shenPis.shenPiJiBie == "一级") {
  1857. this.form.status1 = 2;
  1858. this.form.contents = "一级审批驳回";
  1859. } else if (this.shenPis.shenPiJiBie == "二级") {
  1860. this.form.status2 = 2;
  1861. this.form.contents = "二级审批驳回";
  1862. } else if (this.shenPis.shenPiJiBie == "三级") {
  1863. this.form.status3 = 2;
  1864. this.form.contents = "三级审批驳回";
  1865. } else if (this.shenPis.shenPiJiBie == "四级") {
  1866. this.form.status4 = 2;
  1867. this.form.contents = "四级审批驳回";
  1868. }
  1869. this.form.peopleId = this.form.peopleId.join(",");
  1870. updateBdglLeave(this.form).then((response) => {
  1871. this.$modal.msgSuccess("审批成功");
  1872. this.open2 = false;
  1873. this.getList();
  1874. });
  1875. }
  1876. });
  1877. },
  1878. //超级审批通过按钮
  1879. TSsubmitForms() {
  1880. this.$refs["forms"].validateField("specialApproval", (valid) => {
  1881. if (!valid) {
  1882. if (this.teShu.shenPiJiBie == "一级") {
  1883. this.form.status1 = 3;
  1884. this.form.common = "1";
  1885. this.form.contents = "一级审批通过";
  1886. } else if (this.teShu.shenPiJiBie == "二级") {
  1887. this.form.status2 = 3;
  1888. this.form.common = "2";
  1889. this.form.contents = "二级审批通过";
  1890. } else if (this.teShu.shenPiJiBie == "三级") {
  1891. this.form.status3 = 3;
  1892. this.form.common = "3";
  1893. this.form.contents = "三级审批通过";
  1894. } else if (this.teShu.shenPiJiBie == "四级") {
  1895. this.form.status4 = 3;
  1896. this.form.common = "4";
  1897. this.form.contents = "四级审批通过";
  1898. }
  1899. if (this.form.id != null) {
  1900. this.form.peopleId = this.form.peopleId.join(",");
  1901. updateBdglLeave(this.form).then((response) => {
  1902. this.$modal.msgSuccess("审批成功");
  1903. this.opens = false;
  1904. this.getList();
  1905. });
  1906. }
  1907. }
  1908. });
  1909. },
  1910. // 超级审批驳回按钮
  1911. TSboHui() {
  1912. this.$refs["forms"].validate((valid) => {
  1913. if (valid) {
  1914. if (this.teShu.shenPiJiBie == "一级") {
  1915. this.form.status1 = 2;
  1916. this.form.common = "1";
  1917. this.form.contents = "一级审批驳回";
  1918. } else if (this.teShu.shenPiJiBie == "二级") {
  1919. this.form.status2 = 2;
  1920. this.form.common = "2";
  1921. this.form.contents = "二级审批驳回";
  1922. } else if (this.teShu.shenPiJiBie == "三级") {
  1923. this.form.status3 = 2;
  1924. this.form.common = "3";
  1925. this.form.contents = "三级审批驳回";
  1926. } else if (this.teShu.shenPiJiBie == "四级") {
  1927. this.form.status4 = 2;
  1928. this.form.common = "4";
  1929. this.form.contents = "四级审批驳回";
  1930. }
  1931. if (this.form.id != null) {
  1932. this.form.peopleId = this.form.peopleId.join(",");
  1933. updateBdglLeave(this.form).then((response) => {
  1934. this.$modal.msgSuccess("审批成功");
  1935. this.opens = false;
  1936. this.getList();
  1937. });
  1938. }
  1939. }
  1940. });
  1941. },
  1942. // 表单重置
  1943. reset() {
  1944. this.form = {
  1945. id: null,
  1946. peopleId: null,
  1947. unitId: null,
  1948. startTime: null,
  1949. endTime: null,
  1950. leaveType: null,
  1951. leaveReason: null,
  1952. departureTime: null,
  1953. returnTime: null,
  1954. returnStatus: "0",
  1955. isReturn: null,
  1956. updatetime: null,
  1957. adminId: null,
  1958. createtime: null,
  1959. peopleId1: null,
  1960. postId: null,
  1961. peopleId2: null,
  1962. peopleId3: null,
  1963. peopleId4: null,
  1964. status1: null,
  1965. status2: null,
  1966. status3: null,
  1967. status4: null,
  1968. contents: null,
  1969. statusd: null,
  1970. rejoin: null,
  1971. };
  1972. this.resetForm("form");
  1973. },
  1974. /** 搜索按钮操作 */
  1975. handleQuery() {
  1976. this.queryParams.pageNum = 1;
  1977. this.getList();
  1978. },
  1979. /** 重置按钮操作 */
  1980. resetQuery() {
  1981. this.resetForm("queryForm");
  1982. this.handleQuery();
  1983. },
  1984. // 多选框选中数据
  1985. handleSelectionChange(selection) {
  1986. this.ids = selection.map((item) => item.id);
  1987. this.single = selection.length !== 1;
  1988. this.multiple = !selection.length;
  1989. },
  1990. /** 新增按钮操作 */
  1991. handleAdd() {
  1992. (this.renYuan = []),
  1993. // 获取单位树形
  1994. this.getBuMeng();
  1995. // 获取字典类型
  1996. this.getdict();
  1997. this.reset();
  1998. this.open = true;
  1999. this.title = "添加人员请假";
  2000. },
  2001. /** 修改按钮操作 */
  2002. handleUpdate(row) {
  2003. if (
  2004. row.status1 != 0 ||
  2005. row.status2 != 0 ||
  2006. row.status3 != 0 ||
  2007. row.status4 != 0
  2008. ) {
  2009. this.xiugai = true;
  2010. } else if (
  2011. row.status1 == 0 ||
  2012. row.status2 == 0 ||
  2013. row.status3 == 0 ||
  2014. row.status4 == 0
  2015. ) {
  2016. this.xiugai = false;
  2017. }
  2018. this.getBuMeng();
  2019. // 获取字典类型
  2020. this.getdict();
  2021. this.reset();
  2022. const id = row.id || this.ids;
  2023. getBdglLeave(id).then((response) => {
  2024. this.result = response.data;
  2025. this.result.peopleId = this.result.peopleId.split(",");
  2026. this.result.peopleId = this.result.peopleId.map(Number);
  2027. this.form = this.result;
  2028. this.getYong(this.form.unitId);
  2029. this.getRen(this.form.unitId);
  2030. this.open1 = true;
  2031. this.title = "修改人员请假";
  2032. });
  2033. },
  2034. /** 提交按钮 */
  2035. submitForm() {
  2036. this.$refs["form"].validate((valid) => {
  2037. if (valid) {
  2038. if (this.form.id != null) {
  2039. this.form.peopleId = this.form.peopleId.join(",");
  2040. updateBdglLeave(this.form).then((response) => {
  2041. this.$modal.msgSuccess("修改成功");
  2042. this.open = false;
  2043. this.open1 = false;
  2044. this.getList();
  2045. });
  2046. } else if (this.form.common != null) {
  2047. } else {
  2048. if (
  2049. this.form.peopleId2 ||
  2050. this.form.peopleId1 ||
  2051. this.form.peopleId3 ||
  2052. this.form.peopleId4
  2053. ) {
  2054. if (this.form.peopleId.length > 0) {
  2055. this.form.peopleId = this.form.peopleId.join(",");
  2056. }
  2057. addBdglLeave(this.form).then((response) => {
  2058. this.$modal.msgSuccess("新增成功");
  2059. this.open = false;
  2060. this.getList();
  2061. });
  2062. } else {
  2063. this.$modal.msgWarning("审批人必须有一个");
  2064. }
  2065. }
  2066. }
  2067. });
  2068. },
  2069. // 点击查看按钮触发
  2070. handleSee(row) {
  2071. if (row.status1 == 3) {
  2072. this.shenPiQuan.one = row.bdglLeaveFus[0].specialApproval;
  2073. this.oneShenPi = true;
  2074. } else if (row.status2 == 3) {
  2075. this.shenPiQuan.two = row.bdglLeaveFus[1].specialApproval;
  2076. this.twoShenPi = true;
  2077. } else if (row.status3 == 3) {
  2078. this.shenPiQuan.there = row.bdglLeaveFus[3].specialApproval;
  2079. this.thereShenPi = true;
  2080. }
  2081. this.getBuMeng();
  2082. // 获取字典类型
  2083. this.getdict();
  2084. this.reset();
  2085. const id = row.id || this.ids;
  2086. getBdglLeave(id).then((response) => {
  2087. this.result = response.data;
  2088. this.result.peopleId = this.result.peopleId.split(",");
  2089. this.result.peopleId = this.result.peopleId.map(Number);
  2090. this.form = this.result;
  2091. this.getYong(this.form.unitId);
  2092. this.getRen(this.form.unitId);
  2093. this.opensee = true;
  2094. this.title = "查看人员请假";
  2095. });
  2096. },
  2097. /** 删除按钮操作 */
  2098. handleDelete(row) {
  2099. const ids = row.id || this.ids;
  2100. if (row.rejoin != 0) {
  2101. this.$modal
  2102. .confirm("是否确认删除人员请假的数据项?")
  2103. .then(function () {
  2104. return delBdglLeave(ids);
  2105. })
  2106. .then(() => {
  2107. this.getList();
  2108. this.$modal.msgSuccess("删除成功");
  2109. })
  2110. .catch(() => {});
  2111. } else {
  2112. this.$modal.msgWarning("请将请假人员归队");
  2113. }
  2114. },
  2115. /** 导出按钮操作 */
  2116. handleExport() {
  2117. const queryParams = this.queryParams;
  2118. this.$modal
  2119. .confirm("是否确认导出所有人员请假数据项?")
  2120. .then(() => {
  2121. this.exportLoading = true;
  2122. return exportBdglLeave(queryParams);
  2123. })
  2124. .then((response) => {
  2125. this.$download.name(response.msg);
  2126. this.exportLoading = false;
  2127. })
  2128. .catch(() => {});
  2129. },
  2130. },
  2131. };
  2132. </script>
  2133. <style scoped>
  2134. /* 对话框背景颜色 */
  2135. ::v-deep .el-dialog {
  2136. background: #004d86 !important;
  2137. width: 800px !important;
  2138. }
  2139. ::v-deep .el-textarea__inner {
  2140. width: 920px;
  2141. height: 104px;
  2142. margin: auto;
  2143. }
  2144. ::v-deep .el-dialog__header {
  2145. border-bottom: 1px solid #718a9d;
  2146. }
  2147. ::v-deep .el-dialog__title {
  2148. color: #fff;
  2149. font: 18px;
  2150. }
  2151. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  2152. color: #fff;
  2153. }
  2154. ::v-deep .el-form-item__label {
  2155. font: 16px;
  2156. color: #fff;
  2157. width: 100px !important;
  2158. }
  2159. ::v-deep .el-input__inner {
  2160. /* width: 200px !important;
  2161. height: 36px; */
  2162. background: transparent;
  2163. color: #fff;
  2164. border: 1px solid white !important;
  2165. }
  2166. /* 基本信息背景 */
  2167. .jiben {
  2168. width: 920px;
  2169. height: 32px;
  2170. background-image: url(../../../images/小标题底.png);
  2171. background-size: 100%;
  2172. margin-bottom: 25px;
  2173. color: #fff;
  2174. padding-left: 16px;
  2175. line-height: 32px;
  2176. }
  2177. /*调整表单间距 */
  2178. ::v-deep .el-form-item__content {
  2179. width: 200px;
  2180. }
  2181. ::v-deep .el-input__inner {
  2182. cursor: pointer !important;
  2183. }
  2184. /* 底部确定取消按钮 */
  2185. ::v-deep .el-dialog__footer {
  2186. padding: 18px 50px !important;
  2187. margin-right: 19px !important;
  2188. }
  2189. ::v-deep .el-dialog__body {
  2190. margin: 10px 0px 20px 51px;
  2191. padding-top: 20px !important;
  2192. box-sizing: border-box;
  2193. /* padding: 30px 12px 30px 28px; */
  2194. }
  2195. .contents {
  2196. padding: 0px 40px !important;
  2197. }
  2198. /* 下拉菜单 */
  2199. .el-dropdown-link {
  2200. cursor: pointer;
  2201. color: #409eff;
  2202. }
  2203. .el-icon-arrow-down {
  2204. font-size: 12px;
  2205. }
  2206. /* 下拉菜单字体/背景颜色 */
  2207. .el-select-dropdown__item.hover,
  2208. .el-select-dropdown__item:hover {
  2209. background-color: #004d86;
  2210. color: #fff;
  2211. }
  2212. .el-select-dropdown__item {
  2213. color: #fff;
  2214. }
  2215. /* 时间选择 */
  2216. ::v-deep .el-input--small .el-input__inner {
  2217. width: 200px;
  2218. height: 36px;
  2219. line-height: 36px;
  2220. }
  2221. .el-date-editor.el-input {
  2222. width: 200px;
  2223. height: 36px;
  2224. line-height: 36px;
  2225. }
  2226. ::v-deep .el-date-editor.el-input .el-input__inner {
  2227. height: 36px;
  2228. line-height: 36px;
  2229. }
  2230. /* 单位框背景颜色 */
  2231. ::v-deep .vue-treeselect__control {
  2232. background: transparent !important;
  2233. color: #fff;
  2234. }
  2235. /* 单位下拉菜单选中字体颜色 */
  2236. ::v-deep .vue-treeselect__single-value {
  2237. color: #fff !important;
  2238. }
  2239. /* 分页按钮 */
  2240. ::v-deep .el-pagination.is-background .el-pager li {
  2241. background-color: #004d86;
  2242. color: #fff;
  2243. }
  2244. ::v-deep .el-pagination.is-background .btn-next {
  2245. background-color: #004d86;
  2246. color: #fff;
  2247. }
  2248. /* 底部确定取消按钮 */
  2249. ::v-deep .el-dialog__footer {
  2250. padding: 18px 50px;
  2251. margin-right: 42px;
  2252. }
  2253. /* 增加按钮弹框 */
  2254. ::v-deep .el-dialog {
  2255. width: 1060px !important;
  2256. }
  2257. ::v-deep .el-dialog__body {
  2258. padding: none !important;
  2259. }
  2260. /* 小手样式 */
  2261. ::v-deep .el-table__cell {
  2262. cursor: pointer;
  2263. }
  2264. .el-button--mini {
  2265. width: 80px !important;
  2266. border: 1px solid transparent;
  2267. padding: 3px 8px;
  2268. font-size: 14px;
  2269. line-height: 1.5;
  2270. border-radius: 3px;
  2271. color: #fff;
  2272. background-color: #1890ff;
  2273. }
  2274. /* ::v-deep .el-table__body tr.hover-row > td.el-table__cell {
  2275. background-color: none;
  2276. } */
  2277. ::v-deep .el-table .el-table__body .el-table__row.hover-row td {
  2278. background-color: #004d86;
  2279. }
  2280. ::v-deep .el-table__fixed-right {
  2281. height: 100% !important;
  2282. }
  2283. ::v-deep .box {
  2284. background-color: #ffba00 !important;
  2285. }
  2286. ::v-deep .el-input.is-disabled .el-input__inner {
  2287. background-color: transparent;
  2288. color: #fff;
  2289. }
  2290. </style>