index.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. <template>
  2. <div class="app-container">
  3. <el-row>
  4. <el-col :span="1.5" class="isSubmit">
  5. <el-radio-group v-model="queryParams.type" @change="caoZuoTypefun">
  6. <el-radio-button label="null">所有值班</el-radio-button>
  7. <el-radio-button label="1">今日值班</el-radio-button>
  8. <el-radio-button label="2">次日值班</el-radio-button>
  9. </el-radio-group>
  10. </el-col>
  11. </el-row>
  12. <hr />
  13. <el-form
  14. :model="queryParams"
  15. ref="queryForm"
  16. :inline="true"
  17. v-show="showSearch"
  18. label-width="auto"
  19. >
  20. <!-- <el-form-item label="值班时间" prop="attendedTime">
  21. <el-date-picker
  22. clearable
  23. size="small"
  24. v-model="queryParams.attendedTime"
  25. type="date"
  26. value-format="yyyy-MM-dd"
  27. placeholder="选择值班时间"
  28. >
  29. </el-date-picker>
  30. </el-form-item>-->
  31. <el-form-item prop="attendedTime">
  32. <el-date-picker
  33. clearable
  34. size="small"
  35. v-model="queryParams.attendedTime"
  36. type="date"
  37. value-format="yyyy-MM-dd"
  38. placeholder="请选择值班时间"
  39. ></el-date-picker>
  40. </el-form-item>
  41. <el-form-item prop="chiefDutyName">
  42. <el-select v-model="queryParams.chiefDutyId" filterable clearable>
  43. <el-option
  44. v-for="item in rylist"
  45. :key="item.id"
  46. :label="item.name"
  47. :value="item.id"
  48. ></el-option>
  49. </el-select>
  50. </el-form-item>
  51. <!-- <el-form-item label="单位名称" prop="unitName">
  52. <el-select
  53. v-model="queryParams.unitName"
  54. placeholder="请选择单位名称"
  55. clearable
  56. size="small"
  57. >
  58. <el-option label="请选择字典生成" value="" />
  59. </el-select>
  60. </el-form-item>-->
  61. <!-- <el-form-item label="单位ID" prop="unitId">
  62. <el-input
  63. v-model="queryParams.unitId"
  64. placeholder="请输入单位ID"
  65. clearable
  66. size="small"
  67. @keyup.enter.native="handleQuery"
  68. />
  69. </el-form-item>-->
  70. <!-- <el-form-item label="值班首长" prop="chiefDutyName">
  71. <el-input
  72. v-model="queryParams.chiefDutyName"
  73. placeholder="请输入值班首长"
  74. clearable
  75. size="small"
  76. @keyup.enter.native="handleQuery"
  77. />
  78. </el-form-item>-->
  79. <!-- <el-form-item label="值班首长ID" prop="chiefDutyId">
  80. <el-select
  81. v-model="queryParams.chiefDutyId"
  82. placeholder="请选择值班首长ID"
  83. clearable
  84. size="small"
  85. >
  86. <el-option label="请选择字典生成" value="" />
  87. </el-select>
  88. </el-form-item>
  89. <el-form-item label="值班首长职务" prop="chiefDutyZhiwu">
  90. <el-select
  91. v-model="queryParams.chiefDutyZhiwu"
  92. placeholder="请选择值班首长职务"
  93. clearable
  94. size="small"
  95. >
  96. <el-option
  97. v-for="dict in dict.type.sys_duty_hief"
  98. :key="dict.value"
  99. :label="dict.label"
  100. :value="dict.value"
  101. />
  102. </el-select>
  103. </el-form-item>
  104. <el-form-item label="办公电话" prop="telephoneBg">
  105. <el-input
  106. v-model="queryParams.telephoneBg"
  107. placeholder="请输入办公电话"
  108. clearable
  109. size="small"
  110. @keyup.enter.native="handleQuery"
  111. />
  112. </el-form-item>
  113. <el-form-item label="宿舍电话" prop="telephoneSs">
  114. <el-input
  115. v-model="queryParams.telephoneSs"
  116. placeholder="请输入宿舍电话"
  117. clearable
  118. size="small"
  119. @keyup.enter.native="handleQuery"
  120. />
  121. </el-form-item>
  122. <el-form-item label="值班首长手机" prop="chiefDutyPhone">
  123. <el-input
  124. v-model="queryParams.chiefDutyPhone"
  125. placeholder="请输入值班首长手机"
  126. clearable
  127. size="small"
  128. @keyup.enter.native="handleQuery"
  129. />
  130. </el-form-item>-->
  131. <el-form-item prop="dutyOffierName">
  132. <el-select
  133. v-model="queryParams.dutyOffierName"
  134. placeholder="请选择值班员"
  135. clearable
  136. size="small"
  137. >
  138. <el-option label="请选择字典生成" value />
  139. </el-select>
  140. </el-form-item>
  141. <!-- <el-form-item label="值班员ID" prop="dutyOffierId">
  142. <el-input
  143. v-model="queryParams.dutyOffierId"
  144. placeholder="请输入值班员ID"
  145. clearable
  146. size="small"
  147. @keyup.enter.native="handleQuery"
  148. />
  149. </el-form-item>
  150. <el-form-item label="值班员职务" prop="dutyOffierZw">
  151. <el-select
  152. v-model="queryParams.dutyOffierZw"
  153. placeholder="请选择值班员职务"
  154. clearable
  155. size="small"
  156. >
  157. <el-option
  158. v-for="dict in dict.type.sys_duty_hief"
  159. :key="dict.value"
  160. :label="dict.label"
  161. :value="dict.value"
  162. />
  163. </el-select>
  164. </el-form-item>
  165. <el-form-item label="值班员手机" prop="dutyOffierPhone">
  166. <el-input
  167. v-model="queryParams.dutyOffierPhone"
  168. placeholder="请输入值班员手机"
  169. clearable
  170. size="small"
  171. @keyup.enter.native="handleQuery"
  172. />
  173. </el-form-item>
  174. <el-form-item label="值班电话" prop="dutyPhone">
  175. <el-input
  176. v-model="queryParams.dutyPhone"
  177. placeholder="请输入值班电话"
  178. clearable
  179. size="small"
  180. @keyup.enter.native="handleQuery"
  181. />
  182. </el-form-item>
  183. <el-form-item label="值班岗位" prop="dutyGangwei">
  184. <el-select
  185. v-model="queryParams.dutyGangwei"
  186. placeholder="请选择值班岗位"
  187. clearable
  188. size="small"
  189. >
  190. <el-option label="请选择字典生成" value="" />
  191. </el-select>
  192. </el-form-item>-->
  193. <el-form-item>
  194. <el-button type="primary" size="btn" @click="handleQuery"
  195. >搜索</el-button
  196. >
  197. <el-button size="btr" @click="resetQuery">重置</el-button>
  198. </el-form-item>
  199. </el-form>
  200. <el-row :gutter="10" class="mb8">
  201. <el-col :span="1.5">
  202. <el-button
  203. type="primary"
  204. plain
  205. icon="el-icon-plus"
  206. size="mini"
  207. @click="handleAdd"
  208. v-hasPermi="['combatduty:grassdutyinfo:add']"
  209. >新增</el-button
  210. >
  211. </el-col>
  212. <!-- <el-col :span="1.5">
  213. <el-button
  214. type="success"
  215. plain
  216. icon="el-icon-edit"
  217. size="mini"
  218. :disabled="single"
  219. @click="handleUpdate"
  220. v-hasPermi="['combatduty:grassdutyinfo:edit']"
  221. >修改</el-button
  222. >
  223. </el-col>-->
  224. <el-col :span="1.5">
  225. <el-button
  226. type="danger"
  227. plain
  228. icon="el-icon-delete"
  229. size="mini"
  230. :disabled="multiple"
  231. @click="handleDelete"
  232. v-hasPermi="['combatduty:grassdutyinfo:remove']"
  233. >删除</el-button
  234. >
  235. </el-col>
  236. <!-- <el-col :span="1.5">
  237. <el-button
  238. type="warning"
  239. plain
  240. icon="el-icon-download"
  241. size="mini"
  242. :loading="exportLoading"
  243. @click="handleExport"
  244. v-hasPermi="['combatduty:grassdutyinfo:export']"
  245. >导出</el-button
  246. >
  247. </el-col>-->
  248. <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
  249. </el-row>
  250. <el-table
  251. v-loading="loading"
  252. :data="grassdutyinfoList"
  253. @selection-change="handleSelectionChange"
  254. :header-cell-style="{ background: '#003c69', color: 'white' }"
  255. >
  256. <el-table-column type="selection" width="55" align="center" />
  257. <el-table-column label="序号" align="center" type="index" />
  258. <!-- <el-table-column label="值班岗位" align="center" prop="id" /> -->
  259. <el-table-column label="单位名称" align="center" prop="unitName" />
  260. <!-- <el-table-column label="单位" align="center" prop="unitId" :formatter="unitIdFormat" /> -->
  261. <!-- <el-table-column label="值班首长" align="center" prop="chiefDutyName" /> -->
  262. <el-table-column
  263. label="值班首长"
  264. align="center"
  265. prop="chiefDutyId"
  266. :formatter="chiefDutyIdFormat"
  267. />
  268. <el-table-column
  269. label="值班首长职务"
  270. align="center"
  271. prop="chiefDutyZhiwu"
  272. >
  273. <template slot-scope="scope">
  274. <dict-tag
  275. :options="dict.type.sys_duty_hief"
  276. :value="scope.row.chiefDutyZhiwu"
  277. />
  278. </template>
  279. </el-table-column>
  280. <el-table-column label="办公电话" align="center" prop="telephoneBg" />
  281. <el-table-column label="宿舍电话" align="center" prop="telephoneSs" />
  282. <el-table-column
  283. label="值班首长手机"
  284. align="center"
  285. prop="chiefDutyPhone"
  286. />
  287. <!-- <el-table-column label="值班员" align="center" prop="dutyOffierName" /> -->
  288. <el-table-column
  289. label="值班员"
  290. align="center"
  291. prop="dutyOffierId"
  292. :formatter="dutyOffierIdFormat"
  293. />
  294. <el-table-column label="值班员职务" align="center" prop="dutyOffierZw">
  295. <template slot-scope="scope">
  296. <dict-tag
  297. :options="dict.type.sys_duty_hief"
  298. :value="scope.row.dutyOffierZw"
  299. />
  300. </template>
  301. </el-table-column>
  302. <!-- <el-table-column label="值班员手机" align="center" prop="dutyOffierPhone" />
  303. <el-table-column label="值班电话" align="center" prop="dutyPhone" />-->
  304. <el-table-column
  305. label="值班岗位"
  306. align="center"
  307. prop="dutyGangwei"
  308. :formatter="dutyGangweiFormat"
  309. />
  310. <el-table-column
  311. label="值班时间"
  312. align="center"
  313. prop="attendedTime"
  314. width="180"
  315. >
  316. <template slot-scope="scope">
  317. <span>{{ parseTime(scope.row.attendedTime, "{y}-{m}-{d}") }}</span>
  318. </template>
  319. </el-table-column>
  320. <el-table-column
  321. label="操作"
  322. align="center"
  323. width="200"
  324. class-name="small-padding fixed-width"
  325. >
  326. <template slot-scope="scope">
  327. <el-button
  328. size="btu"
  329. type="text"
  330. @click="handleUpdate(scope.row)"
  331. v-hasPermi="['combatduty:grassdutyinfo:edit']"
  332. >修改</el-button
  333. >
  334. <el-button
  335. size="btd"
  336. type="text"
  337. @click="handleDelete(scope.row)"
  338. v-hasPermi="['combatduty:grassdutyinfo:remove']"
  339. >删除</el-button
  340. >
  341. </template>
  342. </el-table-column>
  343. </el-table>
  344. <pagination
  345. v-show="total > 0"
  346. :total="total"
  347. :page.sync="queryParams.pageNum"
  348. :limit.sync="queryParams.pageSize"
  349. @pagination="getList"
  350. />
  351. <!-- 添加或修改基层值班对话框 -->
  352. <el-dialog
  353. :title="title"
  354. :visible.sync="open"
  355. width="1016px"
  356. append-to-body
  357. :close-on-click-modal="false"
  358. >
  359. <el-form
  360. ref="form"
  361. :model="form"
  362. :rules="rules"
  363. label-width="80px"
  364. :inline="true"
  365. >
  366. <div class="jiben">基本信息</div>
  367. <!-- <el-form-item label="值班时间" prop="attendedTime">
  368. <el-date-picker
  369. clearable
  370. size="small"
  371. v-model="form.attendedTime"
  372. type="date"
  373. value-format="yyyy-MM-dd"
  374. placeholder="选择值班时间"
  375. >
  376. </el-date-picker>
  377. </el-form-item>-->
  378. <el-form-item label="值班时间" prop="attendedTime">
  379. <el-date-picker
  380. clearable
  381. size="small"
  382. v-model="form.attendedTime"
  383. type="date"
  384. value-format="yyyy-MM-dd"
  385. placeholder=""
  386. v-if="qdflg == 2"
  387. ></el-date-picker>
  388. <el-date-picker
  389. v-model="form.attendedTime"
  390. type="daterange"
  391. range-separator="至"
  392. start-placeholder
  393. end-placeholder
  394. value-format="yyyy-MM-dd"
  395. v-if="qdflg == 1"
  396. ></el-date-picker>
  397. </el-form-item>
  398. <el-form-item label="单位名称" prop="unitName">
  399. <el-select
  400. v-model="form.unitName"
  401. @change="unitNamechange"
  402. clearable
  403. placeholder=""
  404. >
  405. <el-option
  406. v-for="dict in deptOptions"
  407. :key="dict.deptId"
  408. :label="dict.deptName"
  409. :value="dict"
  410. ></el-option>
  411. </el-select>
  412. </el-form-item>
  413. <!-- <el-form-item label="单位" prop="unitId">
  414. <el-select v-model="form.unitId" ref="deptId" clearable placeholder="请选择单位名称">
  415. <el-option
  416. v-for="dict in deptOptions"
  417. :key="dict.deptId"
  418. :label="dict.deptName"
  419. :value="dict.deptId"
  420. ></el-option>
  421. </el-select>
  422. </el-form-item>-->
  423. <el-form-item label="值班首长" prop="chiefDutyName">
  424. <!-- <el-input v-model="form.chiefDutyName" placeholder="请输入值班首长" /> -->
  425. <el-select
  426. v-model="form.chiefDutyName"
  427. @change="chiefDutyNamefun"
  428. filterable
  429. clearable
  430. placeholder=""
  431. >
  432. <el-option
  433. v-for="item in rylist"
  434. :key="item.id"
  435. :label="item.name"
  436. :value="item"
  437. ></el-option>
  438. </el-select>
  439. </el-form-item>
  440. <!-- <el-form-item label="值班首长" prop="chiefDutyId">
  441. <el-select v-model="form.chiefDutyId" filterable clearable placeholder="请选择值班首长">
  442. <el-option v-for="item in rylist" :key="item.id" :label="item.name" :value="item.id"></el-option>
  443. </el-select>
  444. </el-form-item>-->
  445. <el-form-item label="值班首长电话" prop="chiefDutyPhone">
  446. <el-input v-model="form.chiefDutyPhone" placeholder="" />
  447. </el-form-item>
  448. <el-form-item label="值班首长职务" prop="chiefDutyZhiwu">
  449. <el-select v-model="form.chiefDutyZhiwu" placeholder="">
  450. <el-option
  451. v-for="dict in dict.type.sys_duty_hief"
  452. :key="dict.value"
  453. :label="dict.label"
  454. :value="dict.value"
  455. ></el-option>
  456. </el-select>
  457. </el-form-item>
  458. <el-form-item label="办公电话" prop="telephoneBg">
  459. <el-input v-model="form.telephoneBg" placeholder="" />
  460. </el-form-item>
  461. <el-form-item label="宿舍电话" prop="telephoneSs">
  462. <el-input v-model="form.telephoneSs" placeholder="" />
  463. </el-form-item>
  464. <el-form-item label="值班员" prop="dutyOffierName">
  465. <el-select
  466. v-model="form.dutyOffierName"
  467. @change="dutyOffierNamefun"
  468. filterable
  469. clearable
  470. placeholder=""
  471. >
  472. <el-option
  473. v-for="item in rylist"
  474. :key="item.id"
  475. :label="item.name"
  476. :value="item"
  477. ></el-option>
  478. </el-select>
  479. </el-form-item>
  480. <!-- <el-form-item label="值班员" prop="dutyOffierId">
  481. <el-select v-model="form.dutyOffierId" filterable clearable placeholder="请选择值班员">
  482. <el-option v-for="item in rylist" :key="item.id" :label="item.name" :value="item.id"></el-option>
  483. </el-select>
  484. </el-form-item>-->
  485. <el-form-item label="值班员电话" prop="dutyOffierPhone">
  486. <el-input v-model="form.dutyOffierPhone" placeholder="" />
  487. </el-form-item>
  488. <el-form-item label="值班员职务" prop="dutyOffierZw">
  489. <el-select v-model="form.dutyOffierZw" placeholder="">
  490. <el-option
  491. v-for="dict in dict.type.sys_duty_hief"
  492. :key="dict.value"
  493. :label="dict.label"
  494. :value="dict.value"
  495. ></el-option>
  496. </el-select>
  497. </el-form-item>
  498. <el-form-item label="值班电话" prop="dutyPhone">
  499. <el-input v-model="form.dutyPhone" placeholder="" />
  500. </el-form-item>
  501. <el-form-item label="值班岗位" prop="dutyGangwei">
  502. <el-select v-model="form.dutyGangwei" clearable placeholder="">
  503. <el-option
  504. v-for="dict in deptOptions"
  505. :key="dict.deptId"
  506. :label="dict.deptName"
  507. :value="dict.deptId"
  508. ></el-option>
  509. </el-select>
  510. </el-form-item>
  511. </el-form>
  512. <div slot="footer" class="dialog-footer">
  513. <el-button type="primary" @click="submitForm">确 定</el-button>
  514. <el-button @click="cancel">取 消</el-button>
  515. </div>
  516. </el-dialog>
  517. </div>
  518. </template>
  519. <script>
  520. import {
  521. listGrassdutyinfo,
  522. getGrassdutyinfo,
  523. delGrassdutyinfo,
  524. addGrassdutyinfo,
  525. updateGrassdutyinfo,
  526. exportGrassdutyinfo,
  527. rllist,
  528. listPeople,
  529. getDept,
  530. } from "@/api/combatduty/grassdutyinfo";
  531. export default {
  532. name: "Grassdutyinfo",
  533. dicts: ["sys_duty_hief", "sys_duty_hief"],
  534. data() {
  535. return {
  536. // 遮罩层
  537. loading: true,
  538. // 导出遮罩层
  539. exportLoading: false,
  540. // 选中数组
  541. ids: [],
  542. // 非单个禁用
  543. single: true,
  544. // 非多个禁用
  545. multiple: true,
  546. // 显示搜索条件
  547. showSearch: true,
  548. // 总条数
  549. total: 0,
  550. // 基层值班表格数据
  551. grassdutyinfoList: [],
  552. // 弹出层标题
  553. title: "",
  554. // 是否显示弹出层
  555. open: false,
  556. // 查询参数
  557. queryParams: {
  558. pageNum: 1,
  559. pageSize: 10,
  560. attendedTime: null,
  561. unitName: null,
  562. unitId: null,
  563. chiefDutyName: null,
  564. chiefDutyId: null,
  565. chiefDutyZhiwu: null,
  566. telephoneBg: null,
  567. telephoneSs: null,
  568. chiefDutyPhone: null,
  569. dutyOffierName: null,
  570. dutyOffierId: null,
  571. dutyOffierZw: null,
  572. dutyOffierPhone: null,
  573. dutyPhone: null,
  574. dutyGangwei: null,
  575. type: null,
  576. },
  577. // 表单参数
  578. form: {},
  579. // 表单校验
  580. rules: {},
  581. //人员数据
  582. rylist: [],
  583. //单位数据
  584. deptOptions: [],
  585. qdflg: null,
  586. };
  587. },
  588. created() {
  589. this.getList();
  590. this.gettreeselect();
  591. this.getrylist();
  592. },
  593. methods: {
  594. //获取人员
  595. getrylist() {
  596. listPeople().then((res) => {
  597. if (res.code == 200) {
  598. this.rylist = res.rows;
  599. }
  600. });
  601. },
  602. gettreeselect() {
  603. getDept().then((res) => {
  604. if (res.code == 200) {
  605. this.deptOptions = res.data;
  606. }
  607. });
  608. },
  609. //首长
  610. chiefDutyIdFormat(row, column) {
  611. var deptName = "";
  612. this.rylist.map((item) => {
  613. if (item.id == row.chiefDutyId) {
  614. deptName = item.name;
  615. }
  616. });
  617. return deptName;
  618. },
  619. dutyOffierIdFormat(row, column) {
  620. var deptName = "";
  621. this.rylist.map((item) => {
  622. if (item.id == row.dutyOffierId) {
  623. deptName = item.name;
  624. }
  625. });
  626. return deptName;
  627. },
  628. //单位
  629. // unitIdFormat(row, column) {
  630. // var deptName = "";
  631. // this.deptOptions.map(item => {
  632. // if (item.deptId == row.unitId) {
  633. // deptName = item.deptName;
  634. // }
  635. // });
  636. // return deptName;
  637. // },
  638. //岗位
  639. dutyGangweiFormat(row, column) {
  640. var deptName = "";
  641. this.deptOptions.map((item) => {
  642. if (item.deptId == Number(row.dutyGangwei)) {
  643. deptName = item.deptName;
  644. }
  645. });
  646. return deptName;
  647. },
  648. /** 查询基层值班列表 */
  649. getList() {
  650. this.loading = true;
  651. listGrassdutyinfo(this.queryParams).then((response) => {
  652. this.grassdutyinfoList = response.rows;
  653. this.total = response.total;
  654. this.loading = false;
  655. });
  656. },
  657. // 取消按钮
  658. cancel() {
  659. this.open = false;
  660. this.reset();
  661. },
  662. // 表单重置
  663. reset() {
  664. this.form = {
  665. id: null,
  666. attendedTime: null,
  667. unitName: null,
  668. unitId: null,
  669. chiefDutyName: null,
  670. chiefDutyId: null,
  671. chiefDutyZhiwu: null,
  672. telephoneBg: null,
  673. telephoneSs: null,
  674. chiefDutyPhone: null,
  675. dutyOffierName: null,
  676. dutyOffierId: null,
  677. dutyOffierZw: null,
  678. dutyOffierPhone: null,
  679. dutyPhone: null,
  680. dutyGangwei: null,
  681. };
  682. this.resetForm("form");
  683. },
  684. /** 搜索按钮操作 */
  685. handleQuery() {
  686. this.queryParams.pageNum = 1;
  687. this.getList();
  688. },
  689. /** 重置按钮操作 */
  690. resetQuery() {
  691. this.resetForm("queryForm");
  692. this.handleQuery();
  693. },
  694. // 多选框选中数据
  695. handleSelectionChange(selection) {
  696. this.ids = selection.map((item) => item.id);
  697. this.single = selection.length !== 1;
  698. this.multiple = !selection.length;
  699. },
  700. /** 新增按钮操作 */
  701. handleAdd() {
  702. this.reset();
  703. this.open = true;
  704. this.title = "添加基层值班";
  705. this.qdflg = 1;
  706. },
  707. /** 修改按钮操作 */
  708. handleUpdate(row) {
  709. this.reset();
  710. const id = row.id || this.ids;
  711. getGrassdutyinfo(id).then((response) => {
  712. this.form = response.data;
  713. this.form.dutyGangwei = Number(this.form.dutyGangwei);
  714. this.open = true;
  715. this.title = "修改基层值班";
  716. this.qdflg = 2;
  717. });
  718. },
  719. /** 提交按钮 */
  720. submitForm() {
  721. this.$refs["form"].validate((valid) => {
  722. if (valid) {
  723. if (this.form.id != null) {
  724. updateGrassdutyinfo(this.form).then((response) => {
  725. this.$modal.msgSuccess("修改成功");
  726. this.open = false;
  727. this.getList();
  728. });
  729. } else {
  730. this.form.timequjian = this.form.attendedTime;
  731. this.form.attendedTime = this.form.attendedTime.join(",");
  732. addGrassdutyinfo(this.form).then((response) => {
  733. this.$modal.msgSuccess("新增成功");
  734. this.open = false;
  735. this.getList();
  736. });
  737. }
  738. }
  739. });
  740. },
  741. /** 删除按钮操作 */
  742. handleDelete(row) {
  743. const ids = row.id || this.ids;
  744. this.$modal
  745. .confirm("是否确认删除该数据项?")
  746. .then(function () {
  747. return delGrassdutyinfo(ids);
  748. })
  749. .then(() => {
  750. this.getList();
  751. this.$modal.msgSuccess("删除成功");
  752. })
  753. .catch(() => {});
  754. },
  755. /** 导出按钮操作 */
  756. handleExport() {
  757. const queryParams = this.queryParams;
  758. this.$modal
  759. .confirm("是否确认导出所有基层值班数据项?")
  760. .then(() => {
  761. this.exportLoading = true;
  762. return exportGrassdutyinfo(queryParams);
  763. })
  764. .then((response) => {
  765. this.$download.name(response.msg);
  766. this.exportLoading = false;
  767. })
  768. .catch(() => {});
  769. },
  770. //值班分类
  771. caoZuoTypefun() {
  772. this.getList();
  773. },
  774. //首长电话
  775. chiefDutyNamefun(val) {
  776. this.form.chiefDutyId = val.id;
  777. this.form.chiefDutyName = val.name;
  778. this.form.chiefDutyPhone = val.phone;
  779. },
  780. //总值班员
  781. dutyOffierNamefun(val) {
  782. this.form.dutyOffierId = val.id;
  783. this.form.dutyOffierName = val.name;
  784. this.form.dutyOffierPhone = val.phone;
  785. },
  786. unitNamechange(val) {
  787. this.form.unitId = val.deptId;
  788. this.form.unitName = val.deptName;
  789. },
  790. // detachmentwoNamechange(val) {
  791. // this.form.detachmentwoId = val.deptId;
  792. // this.form.detachmentwoName = val.deptName;
  793. // }
  794. },
  795. };
  796. </script>
  797. <style scoped>
  798. /* 对话框背景颜色 */
  799. ::v-deep .el-dialog {
  800. background: #004d86 !important;
  801. }
  802. ::v-deep .el-textarea__inner {
  803. width: 884px;
  804. height: 104px;
  805. margin-left: 29px;
  806. }
  807. ::v-deep .el-dialog__header {
  808. border-bottom: 1px solid #718a9d;
  809. }
  810. ::v-deep .el-dialog__title {
  811. color: #fff;
  812. font: 18px;
  813. }
  814. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  815. color: #fff;
  816. }
  817. ::v-deep .el-form-item__label {
  818. font: 16px;
  819. color: #fff;
  820. width: 100px !important;
  821. }
  822. ::v-deep .el-input__inner {
  823. /* width: 200px !important;
  824. height: 36px; */
  825. background: transparent !important;
  826. color: #fff;
  827. }
  828. ::v-deep .el-dialog__body {
  829. padding: 30px 0px 30px 46px;
  830. }
  831. ::v-deep .el-dialog__footer {
  832. margin-right: 30px !important;
  833. }
  834. /* 单位框背景颜色 */
  835. ::v-deep .vue-treeselect__control {
  836. background: #004d86 !important;
  837. }
  838. /* 基本信息背景 */
  839. .jiben {
  840. width: 952px;
  841. height: 32px;
  842. background-image: url(../../../images/小标题底.png);
  843. margin-bottom: 25px;
  844. color: #fff;
  845. padding-left: 16px;
  846. line-height: 32px;
  847. }
  848. /*调整表单间距 */
  849. ::v-deep .el-form-item__content {
  850. width: 200px;
  851. }
  852. /* 时间选择 */
  853. ::v-deep .el-input--small .el-input__inner {
  854. width: 200px;
  855. height: 36px;
  856. line-height: 36px;
  857. }
  858. .el-date-editor.el-input {
  859. width: 200px;
  860. height: 36px;
  861. line-height: 36px;
  862. }
  863. ::v-deep .el-date-editor.el-input .el-input__inner {
  864. height: 36px;
  865. line-height: 36px;
  866. }
  867. ::v-deep .el-range-input {
  868. background: #004d86;
  869. color: #fff;
  870. font-size: 12px;
  871. }
  872. ::v-deep .el-range-separator {
  873. color: #fff;
  874. font-size: 12px;
  875. }
  876. .el-form-item ::v-deep .el-input__inner {
  877. width: 200px;
  878. height: 36px;
  879. background: #004d86;
  880. color: #fff;
  881. border: 1px solid #fff !important;
  882. }
  883. ::v-deep .el-date-editor.el-input {
  884. width: 200px;
  885. height: 36px;
  886. }
  887. .el-select-dropdown__item {
  888. /* background-color: white; */
  889. color: #000 !important;
  890. }
  891. ::v-deep .el-input-number__increase {
  892. background-color: transparent !important;
  893. border: none;
  894. color: #cccccc;
  895. border-bottom: none !important;
  896. }
  897. ::v-deep .el-input-number__decrease {
  898. background-color: transparent !important;
  899. border: none !important;
  900. color: #cccccc;
  901. }
  902. .isSubmit {
  903. margin-left: 40% !important;
  904. margin-right: 30%;
  905. margin-bottom: 5px;
  906. padding-bottom: 5px;
  907. }
  908. .el-radio-button {
  909. width: 122px !important;
  910. height: 30px !important;
  911. line-height: 30px !important;
  912. border: none !important;
  913. }
  914. ::v-deep .el-radio-button__inner {
  915. width: 120px !important;
  916. height: 30px !important;
  917. line-height: 8px !important;
  918. background: #034b81;
  919. border: none;
  920. color: #fff;
  921. }
  922. ::v-deep .el-radio-button:first-child .el-radio-button__inner {
  923. border-left: none !important;
  924. }
  925. ::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
  926. color: #ffffff;
  927. background-color: rgb(10, 67, 224) !important;
  928. border-color: rgb(10, 67, 224) !important;
  929. -webkit-box-shadow: -1px 0 0 0 rgb(10, 67, 224) !important;
  930. box-shadow: -1px 0 0 0 rgb(10, 67, 224) !important;
  931. }
  932. /* 将水平线设为红色: */
  933. hr {
  934. border: none;
  935. height: 1px;
  936. background-color: rgba(204, 204, 204, 0.5);
  937. margin-bottom: 15px;
  938. }
  939. </style>