index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4. <el-form-item label="值班时间" prop="attendedTime">
  5. <el-input
  6. v-model="queryParams.attendedTime"
  7. placeholder="请输入值班时间"
  8. clearable
  9. size="small"
  10. @keyup.enter.native="handleQuery"
  11. />
  12. </el-form-item>
  13. <el-form-item label="值班首长" prop="chiefDutyName">
  14. <el-input
  15. v-model="queryParams.chiefDutyName"
  16. placeholder="请输入值班首长"
  17. clearable
  18. size="small"
  19. @keyup.enter.native="handleQuery"
  20. />
  21. </el-form-item>
  22. <el-form-item label="值班首长ID" prop="chiefDutyId">
  23. <el-input
  24. v-model="queryParams.chiefDutyId"
  25. placeholder="请输入值班首长ID"
  26. clearable
  27. size="small"
  28. @keyup.enter.native="handleQuery"
  29. />
  30. </el-form-item>
  31. <el-form-item label="值班首长电话" prop="chiefDutyPhone">
  32. <el-input
  33. v-model="queryParams.chiefDutyPhone"
  34. placeholder="请输入值班首长电话"
  35. clearable
  36. size="small"
  37. @keyup.enter.native="handleQuery"
  38. />
  39. </el-form-item>
  40. <el-form-item label="作战值班员" prop="combatDutyName">
  41. <el-input
  42. v-model="queryParams.combatDutyName"
  43. placeholder="请输入作战值班员"
  44. clearable
  45. size="small"
  46. @keyup.enter.native="handleQuery"
  47. />
  48. </el-form-item>
  49. <el-form-item label="作战值班员Id" prop="combatDutyId">
  50. <el-input
  51. v-model="queryParams.combatDutyId"
  52. placeholder="请输入作战值班员Id"
  53. clearable
  54. size="small"
  55. @keyup.enter.native="handleQuery"
  56. />
  57. </el-form-item>
  58. <el-form-item label="作战值班员手机号" prop="combatDutyPhone">
  59. <el-input
  60. v-model="queryParams.combatDutyPhone"
  61. placeholder="请输入作战值班员手机号"
  62. clearable
  63. size="small"
  64. @keyup.enter.native="handleQuery"
  65. />
  66. </el-form-item>
  67. <el-form-item label="总值班员" prop="dutyOffierName">
  68. <el-input
  69. v-model="queryParams.dutyOffierName"
  70. placeholder="请输入总值班员"
  71. clearable
  72. size="small"
  73. @keyup.enter.native="handleQuery"
  74. />
  75. </el-form-item>
  76. <el-form-item label="总值班员ID" prop="dutyOffierId">
  77. <el-input
  78. v-model="queryParams.dutyOffierId"
  79. placeholder="请输入总值班员ID"
  80. clearable
  81. size="small"
  82. @keyup.enter.native="handleQuery"
  83. />
  84. </el-form-item>
  85. <el-form-item label="总值班员电话" prop="dutyOffierPhone">
  86. <el-input
  87. v-model="queryParams.dutyOffierPhone"
  88. placeholder="请输入总值班员电话"
  89. clearable
  90. size="small"
  91. @keyup.enter.native="handleQuery"
  92. />
  93. </el-form-item>
  94. <el-form-item label="值班分队1" prop="detachmentoneName">
  95. <el-input
  96. v-model="queryParams.detachmentoneName"
  97. placeholder="请输入值班分队1"
  98. clearable
  99. size="small"
  100. @keyup.enter.native="handleQuery"
  101. />
  102. </el-form-item>
  103. <el-form-item label="值班分队1ID" prop="detachmentoneId">
  104. <el-input
  105. v-model="queryParams.detachmentoneId"
  106. placeholder="请输入值班分队1ID"
  107. clearable
  108. size="small"
  109. @keyup.enter.native="handleQuery"
  110. />
  111. </el-form-item>
  112. <el-form-item label="值班分队1人数" prop="detachmentoneNumber">
  113. <el-input
  114. v-model="queryParams.detachmentoneNumber"
  115. placeholder="请输入值班分队1人数"
  116. clearable
  117. size="small"
  118. @keyup.enter.native="handleQuery"
  119. />
  120. </el-form-item>
  121. <el-form-item label="值班分队1指挥员" prop="detachmentonePeopleName">
  122. <el-input
  123. v-model="queryParams.detachmentonePeopleName"
  124. placeholder="请输入值班分队1指挥员"
  125. clearable
  126. size="small"
  127. @keyup.enter.native="handleQuery"
  128. />
  129. </el-form-item>
  130. <el-form-item label="值班分队1指挥员ID" prop="detachmentonePeopleId">
  131. <el-input
  132. v-model="queryParams.detachmentonePeopleId"
  133. placeholder="请输入值班分队1指挥员ID"
  134. clearable
  135. size="small"
  136. @keyup.enter.native="handleQuery"
  137. />
  138. </el-form-item>
  139. <el-form-item label="值班分队1指挥员电话" prop="detachmentonePeoplePhone">
  140. <el-input
  141. v-model="queryParams.detachmentonePeoplePhone"
  142. placeholder="请输入值班分队1指挥员电话"
  143. clearable
  144. size="small"
  145. @keyup.enter.native="handleQuery"
  146. />
  147. </el-form-item>
  148. <el-form-item label="值班分队2" prop="detachmentwoName">
  149. <el-input
  150. v-model="queryParams.detachmentwoName"
  151. placeholder="请输入值班分队2"
  152. clearable
  153. size="small"
  154. @keyup.enter.native="handleQuery"
  155. />
  156. </el-form-item>
  157. <el-form-item label="值班分队2ID" prop="detachmentwoId">
  158. <el-input
  159. v-model="queryParams.detachmentwoId"
  160. placeholder="请输入值班分队2ID"
  161. clearable
  162. size="small"
  163. @keyup.enter.native="handleQuery"
  164. />
  165. </el-form-item>
  166. <el-form-item label="值班分队2人数" prop="detachmentwoNumber">
  167. <el-input
  168. v-model="queryParams.detachmentwoNumber"
  169. placeholder="请输入值班分队2人数"
  170. clearable
  171. size="small"
  172. @keyup.enter.native="handleQuery"
  173. />
  174. </el-form-item>
  175. <el-form-item label="值班分队2指挥员" prop="detachmentwoPeopleName">
  176. <el-input
  177. v-model="queryParams.detachmentwoPeopleName"
  178. placeholder="请输入值班分队2指挥员"
  179. clearable
  180. size="small"
  181. @keyup.enter.native="handleQuery"
  182. />
  183. </el-form-item>
  184. <el-form-item label="值班分队2指挥员ID" prop="detachmentwoPeopleId">
  185. <el-input
  186. v-model="queryParams.detachmentwoPeopleId"
  187. placeholder="请输入值班分队2指挥员ID"
  188. clearable
  189. size="small"
  190. @keyup.enter.native="handleQuery"
  191. />
  192. </el-form-item>
  193. <el-form-item label="值班分队2指挥员电话" prop="detachmentwoPeoplePhone">
  194. <el-input
  195. v-model="queryParams.detachmentwoPeoplePhone"
  196. placeholder="请输入值班分队2指挥员电话"
  197. clearable
  198. size="small"
  199. @keyup.enter.native="handleQuery"
  200. />
  201. </el-form-item>
  202. <el-form-item label="备注" prop="remarks">
  203. <el-input
  204. v-model="queryParams.remarks"
  205. placeholder="请输入备注"
  206. clearable
  207. size="small"
  208. @keyup.enter.native="handleQuery"
  209. />
  210. </el-form-item>
  211. <el-form-item>
  212. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  213. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  214. </el-form-item>
  215. </el-form>
  216. <el-row :gutter="10" class="mb8">
  217. <el-col :span="1.5">
  218. <el-button
  219. type="primary"
  220. plain
  221. icon="el-icon-plus"
  222. size="mini"
  223. @click="handleAdd"
  224. v-hasPermi="['combatduty:basedutyinfo:add']"
  225. >新增</el-button>
  226. </el-col>
  227. <el-col :span="1.5">
  228. <el-button
  229. type="success"
  230. plain
  231. icon="el-icon-edit"
  232. size="mini"
  233. :disabled="single"
  234. @click="handleUpdate"
  235. v-hasPermi="['combatduty:basedutyinfo:edit']"
  236. >修改</el-button>
  237. </el-col>
  238. <el-col :span="1.5">
  239. <el-button
  240. type="danger"
  241. plain
  242. icon="el-icon-delete"
  243. size="mini"
  244. :disabled="multiple"
  245. @click="handleDelete"
  246. v-hasPermi="['combatduty:basedutyinfo:remove']"
  247. >删除</el-button>
  248. </el-col>
  249. <el-col :span="1.5">
  250. <el-button
  251. type="warning"
  252. plain
  253. icon="el-icon-download"
  254. size="mini"
  255. :loading="exportLoading"
  256. @click="handleExport"
  257. v-hasPermi="['combatduty:basedutyinfo:export']"
  258. >导出</el-button>
  259. </el-col>
  260. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  261. </el-row>
  262. <el-table v-loading="loading" :data="basedutyinfoList" @selection-change="handleSelectionChange">
  263. <el-table-column type="selection" width="55" align="center" />
  264. <el-table-column label="主键ID" align="center" prop="id" />
  265. <el-table-column label="值班时间" align="center" prop="attendedTime" />
  266. <el-table-column label="值班首长" align="center" prop="chiefDutyName" />
  267. <el-table-column label="值班首长ID" align="center" prop="chiefDutyId" />
  268. <el-table-column label="值班首长电话" align="center" prop="chiefDutyPhone" />
  269. <el-table-column label="作战值班员" align="center" prop="combatDutyName" />
  270. <el-table-column label="作战值班员Id" align="center" prop="combatDutyId" />
  271. <el-table-column label="作战值班员手机号" align="center" prop="combatDutyPhone" />
  272. <el-table-column label="总值班员" align="center" prop="dutyOffierName" />
  273. <el-table-column label="总值班员ID" align="center" prop="dutyOffierId" />
  274. <el-table-column label="总值班员电话" align="center" prop="dutyOffierPhone" />
  275. <el-table-column label="值班分队1" align="center" prop="detachmentoneName" />
  276. <el-table-column label="值班分队1ID" align="center" prop="detachmentoneId" />
  277. <el-table-column label="值班分队1人数" align="center" prop="detachmentoneNumber" />
  278. <el-table-column label="值班分队1指挥员" align="center" prop="detachmentonePeopleName" />
  279. <el-table-column label="值班分队1指挥员ID" align="center" prop="detachmentonePeopleId" />
  280. <el-table-column label="值班分队1指挥员电话" align="center" prop="detachmentonePeoplePhone" />
  281. <el-table-column label="值班分队2" align="center" prop="detachmentwoName" />
  282. <el-table-column label="值班分队2ID" align="center" prop="detachmentwoId" />
  283. <el-table-column label="值班分队2人数" align="center" prop="detachmentwoNumber" />
  284. <el-table-column label="值班分队2指挥员" align="center" prop="detachmentwoPeopleName" />
  285. <el-table-column label="值班分队2指挥员ID" align="center" prop="detachmentwoPeopleId" />
  286. <el-table-column label="值班分队2指挥员电话" align="center" prop="detachmentwoPeoplePhone" />
  287. <el-table-column label="备注" align="center" prop="remarks" />
  288. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  289. <template slot-scope="scope">
  290. <el-button
  291. size="mini"
  292. type="text"
  293. icon="el-icon-edit"
  294. @click="handleUpdate(scope.row)"
  295. v-hasPermi="['combatduty:basedutyinfo:edit']"
  296. >修改</el-button>
  297. <el-button
  298. size="mini"
  299. type="text"
  300. icon="el-icon-delete"
  301. @click="handleDelete(scope.row)"
  302. v-hasPermi="['combatduty:basedutyinfo:remove']"
  303. >删除</el-button>
  304. </template>
  305. </el-table-column>
  306. </el-table>
  307. <pagination
  308. v-show="total>0"
  309. :total="total"
  310. :page.sync="queryParams.pageNum"
  311. :limit.sync="queryParams.pageSize"
  312. @pagination="getList"
  313. />
  314. <!-- 添加或修改基地值班对话框 -->
  315. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  316. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  317. <el-form-item label="值班时间" prop="attendedTime">
  318. <el-input v-model="form.attendedTime" placeholder="请输入值班时间" />
  319. </el-form-item>
  320. <el-form-item label="值班首长" prop="chiefDutyName">
  321. <el-input v-model="form.chiefDutyName" placeholder="请输入值班首长" />
  322. </el-form-item>
  323. <el-form-item label="值班首长ID" prop="chiefDutyId">
  324. <el-input v-model="form.chiefDutyId" placeholder="请输入值班首长ID" />
  325. </el-form-item>
  326. <el-form-item label="值班首长电话" prop="chiefDutyPhone">
  327. <el-input v-model="form.chiefDutyPhone" placeholder="请输入值班首长电话" />
  328. </el-form-item>
  329. <el-form-item label="作战值班员" prop="combatDutyName">
  330. <el-input v-model="form.combatDutyName" placeholder="请输入作战值班员" />
  331. </el-form-item>
  332. <el-form-item label="作战值班员Id" prop="combatDutyId">
  333. <el-input v-model="form.combatDutyId" placeholder="请输入作战值班员Id" />
  334. </el-form-item>
  335. <el-form-item label="作战值班员手机号" prop="combatDutyPhone">
  336. <el-input v-model="form.combatDutyPhone" placeholder="请输入作战值班员手机号" />
  337. </el-form-item>
  338. <el-form-item label="总值班员" prop="dutyOffierName">
  339. <el-input v-model="form.dutyOffierName" placeholder="请输入总值班员" />
  340. </el-form-item>
  341. <el-form-item label="总值班员ID" prop="dutyOffierId">
  342. <el-input v-model="form.dutyOffierId" placeholder="请输入总值班员ID" />
  343. </el-form-item>
  344. <el-form-item label="总值班员电话" prop="dutyOffierPhone">
  345. <el-input v-model="form.dutyOffierPhone" placeholder="请输入总值班员电话" />
  346. </el-form-item>
  347. <el-form-item label="值班分队1" prop="detachmentoneName">
  348. <el-input v-model="form.detachmentoneName" placeholder="请输入值班分队1" />
  349. </el-form-item>
  350. <el-form-item label="值班分队1ID" prop="detachmentoneId">
  351. <el-input v-model="form.detachmentoneId" placeholder="请输入值班分队1ID" />
  352. </el-form-item>
  353. <el-form-item label="值班分队1人数" prop="detachmentoneNumber">
  354. <el-input v-model="form.detachmentoneNumber" placeholder="请输入值班分队1人数" />
  355. </el-form-item>
  356. <el-form-item label="值班分队1指挥员" prop="detachmentonePeopleName">
  357. <el-input v-model="form.detachmentonePeopleName" placeholder="请输入值班分队1指挥员" />
  358. </el-form-item>
  359. <el-form-item label="值班分队1指挥员ID" prop="detachmentonePeopleId">
  360. <el-input v-model="form.detachmentonePeopleId" placeholder="请输入值班分队1指挥员ID" />
  361. </el-form-item>
  362. <el-form-item label="值班分队1指挥员电话" prop="detachmentonePeoplePhone">
  363. <el-input v-model="form.detachmentonePeoplePhone" placeholder="请输入值班分队1指挥员电话" />
  364. </el-form-item>
  365. <el-form-item label="值班分队2" prop="detachmentwoName">
  366. <el-input v-model="form.detachmentwoName" placeholder="请输入值班分队2" />
  367. </el-form-item>
  368. <el-form-item label="值班分队2ID" prop="detachmentwoId">
  369. <el-input v-model="form.detachmentwoId" placeholder="请输入值班分队2ID" />
  370. </el-form-item>
  371. <el-form-item label="值班分队2人数" prop="detachmentwoNumber">
  372. <el-input v-model="form.detachmentwoNumber" placeholder="请输入值班分队2人数" />
  373. </el-form-item>
  374. <el-form-item label="值班分队2指挥员" prop="detachmentwoPeopleName">
  375. <el-input v-model="form.detachmentwoPeopleName" placeholder="请输入值班分队2指挥员" />
  376. </el-form-item>
  377. <el-form-item label="值班分队2指挥员ID" prop="detachmentwoPeopleId">
  378. <el-input v-model="form.detachmentwoPeopleId" placeholder="请输入值班分队2指挥员ID" />
  379. </el-form-item>
  380. <el-form-item label="值班分队2指挥员电话" prop="detachmentwoPeoplePhone">
  381. <el-input v-model="form.detachmentwoPeoplePhone" placeholder="请输入值班分队2指挥员电话" />
  382. </el-form-item>
  383. <el-form-item label="备注" prop="remarks">
  384. <el-input v-model="form.remarks" placeholder="请输入备注" />
  385. </el-form-item>
  386. </el-form>
  387. <div slot="footer" class="dialog-footer">
  388. <el-button type="primary" @click="submitForm">确 定</el-button>
  389. <el-button @click="cancel">取 消</el-button>
  390. </div>
  391. </el-dialog>
  392. </div>
  393. </template>
  394. <script>
  395. import { listBasedutyinfo, getBasedutyinfo, delBasedutyinfo, addBasedutyinfo, updateBasedutyinfo, exportBasedutyinfo } from "@/api/combatduty/basedutyinfo";
  396. export default {
  397. name: "Basedutyinfo",
  398. data() {
  399. return {
  400. // 遮罩层
  401. loading: true,
  402. // 导出遮罩层
  403. exportLoading: false,
  404. // 选中数组
  405. ids: [],
  406. // 非单个禁用
  407. single: true,
  408. // 非多个禁用
  409. multiple: true,
  410. // 显示搜索条件
  411. showSearch: true,
  412. // 总条数
  413. total: 0,
  414. // 基地值班表格数据
  415. basedutyinfoList: [],
  416. // 弹出层标题
  417. title: "",
  418. // 是否显示弹出层
  419. open: false,
  420. // 查询参数
  421. queryParams: {
  422. pageNum: 1,
  423. pageSize: 10,
  424. attendedTime: null,
  425. chiefDutyName: null,
  426. chiefDutyId: null,
  427. chiefDutyPhone: null,
  428. combatDutyName: null,
  429. combatDutyId: null,
  430. combatDutyPhone: null,
  431. dutyOffierName: null,
  432. dutyOffierId: null,
  433. dutyOffierPhone: null,
  434. detachmentoneName: null,
  435. detachmentoneId: null,
  436. detachmentoneNumber: null,
  437. detachmentonePeopleName: null,
  438. detachmentonePeopleId: null,
  439. detachmentonePeoplePhone: null,
  440. detachmentwoName: null,
  441. detachmentwoId: null,
  442. detachmentwoNumber: null,
  443. detachmentwoPeopleName: null,
  444. detachmentwoPeopleId: null,
  445. detachmentwoPeoplePhone: null,
  446. remarks: null
  447. },
  448. // 表单参数
  449. form: {},
  450. // 表单校验
  451. rules: {
  452. }
  453. };
  454. },
  455. created() {
  456. this.getList();
  457. },
  458. methods: {
  459. /** 查询基地值班列表 */
  460. getList() {
  461. this.loading = true;
  462. listBasedutyinfo(this.queryParams).then(response => {
  463. this.basedutyinfoList = response.rows;
  464. this.total = response.total;
  465. this.loading = false;
  466. });
  467. },
  468. // 取消按钮
  469. cancel() {
  470. this.open = false;
  471. this.reset();
  472. },
  473. // 表单重置
  474. reset() {
  475. this.form = {
  476. id: null,
  477. attendedTime: null,
  478. chiefDutyName: null,
  479. chiefDutyId: null,
  480. chiefDutyPhone: null,
  481. combatDutyName: null,
  482. combatDutyId: null,
  483. combatDutyPhone: null,
  484. dutyOffierName: null,
  485. dutyOffierId: null,
  486. dutyOffierPhone: null,
  487. detachmentoneName: null,
  488. detachmentoneId: null,
  489. detachmentoneNumber: null,
  490. detachmentonePeopleName: null,
  491. detachmentonePeopleId: null,
  492. detachmentonePeoplePhone: null,
  493. detachmentwoName: null,
  494. detachmentwoId: null,
  495. detachmentwoNumber: null,
  496. detachmentwoPeopleName: null,
  497. detachmentwoPeopleId: null,
  498. detachmentwoPeoplePhone: null,
  499. remarks: null
  500. };
  501. this.resetForm("form");
  502. },
  503. /** 搜索按钮操作 */
  504. handleQuery() {
  505. this.queryParams.pageNum = 1;
  506. this.getList();
  507. },
  508. /** 重置按钮操作 */
  509. resetQuery() {
  510. this.resetForm("queryForm");
  511. this.handleQuery();
  512. },
  513. // 多选框选中数据
  514. handleSelectionChange(selection) {
  515. this.ids = selection.map(item => item.id)
  516. this.single = selection.length!==1
  517. this.multiple = !selection.length
  518. },
  519. /** 新增按钮操作 */
  520. handleAdd() {
  521. this.reset();
  522. this.open = true;
  523. this.title = "添加基地值班";
  524. },
  525. /** 修改按钮操作 */
  526. handleUpdate(row) {
  527. this.reset();
  528. const id = row.id || this.ids
  529. getBasedutyinfo(id).then(response => {
  530. this.form = response.data;
  531. this.open = true;
  532. this.title = "修改基地值班";
  533. });
  534. },
  535. /** 提交按钮 */
  536. submitForm() {
  537. this.$refs["form"].validate(valid => {
  538. if (valid) {
  539. if (this.form.id != null) {
  540. updateBasedutyinfo(this.form).then(response => {
  541. this.$modal.msgSuccess("修改成功");
  542. this.open = false;
  543. this.getList();
  544. });
  545. } else {
  546. addBasedutyinfo(this.form).then(response => {
  547. this.$modal.msgSuccess("新增成功");
  548. this.open = false;
  549. this.getList();
  550. });
  551. }
  552. }
  553. });
  554. },
  555. /** 删除按钮操作 */
  556. handleDelete(row) {
  557. const ids = row.id || this.ids;
  558. this.$modal.confirm('是否确认删除基地值班编号为"' + ids + '"的数据项?').then(function() {
  559. return delBasedutyinfo(ids);
  560. }).then(() => {
  561. this.getList();
  562. this.$modal.msgSuccess("删除成功");
  563. }).catch(() => {});
  564. },
  565. /** 导出按钮操作 */
  566. handleExport() {
  567. const queryParams = this.queryParams;
  568. this.$modal.confirm('是否确认导出所有基地值班数据项?').then(() => {
  569. this.exportLoading = true;
  570. return exportBasedutyinfo(queryParams);
  571. }).then(response => {
  572. this.$download.name(response.msg);
  573. this.exportLoading = false;
  574. }).catch(() => {});
  575. }
  576. }
  577. };
  578. </script>