index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
  4. <el-form-item label="班组" prop="team">
  5. <el-select v-model="queryParams.team" placeholder="请选择班组" clearable size="small">
  6. <el-option
  7. v-for="dict in dict.type.team"
  8. :key="dict.value"
  9. :label="dict.label"
  10. :value="dict.value"
  11. />
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="队伍" prop="ranks">
  15. <el-select v-model="queryParams.ranks" clearable placeholder="请选择" @change="getUsers" :disabled="postName.indexOf('xx') > -1">
  16. <el-option
  17. v-for="item in postOptions"
  18. :key="item.postId"
  19. :label="item.postName"
  20. :value="item.postId"
  21. ></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="上传人" prop="createBy">
  25. <el-select v-model="queryParams.createBy" filterable placeholder="请选择上传人" clearable size="small">
  26. <el-option v-for="item in workerListSelect"
  27. :key="item.id"
  28. :label="item.name"
  29. :value="item.id"/>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="上传位置" prop="uploadLocation">
  33. <el-input
  34. v-model="queryParams.uploadLocation"
  35. placeholder="请输入上传位置"
  36. clearable
  37. size="small"
  38. @keyup.enter.native="handleQuery"
  39. />
  40. </el-form-item>
  41. <el-form-item label="是否周期巡检" prop="isNormalInspection">
  42. <el-select v-model="queryParams.isNormalInspection" placeholder="请选择班组" clearable size="small">
  43. <el-option
  44. v-for="dict in dict.type.yes_and_no"
  45. :key="dict.value"
  46. :label="dict.label"
  47. :value="dict.value"
  48. />
  49. </el-select>
  50. </el-form-item>
  51. <el-form-item label="是否告警" prop="isReport">
  52. <el-select v-model="queryParams.isReport" placeholder="请选择是否告警" clearable size="small">
  53. <el-option
  54. v-for="dict in dict.type.yes_and_no"
  55. :key="dict.value"
  56. :label="dict.label"
  57. :value="dict.value"
  58. />
  59. </el-select>
  60. </el-form-item>
  61. <el-form-item label="时间范围" prop="createTimes">
  62. <el-date-picker
  63. v-model="queryParams.createTimes"
  64. type="datetimerange"
  65. :picker-options="pickerOptions"
  66. range-separator="至"
  67. start-placeholder="开始日期"
  68. end-placeholder="结束日期"
  69. align="right">
  70. </el-date-picker>
  71. </el-form-item>
  72. <el-form-item label="审核状态">
  73. <el-select v-model="queryParams.processStatus" placeholder="请选择审核状态" clearable size="small">
  74. <el-option
  75. v-for="dict in dict.type.process_status"
  76. :key="dict.value"
  77. :label="dict.label"
  78. :value="dict.value"
  79. />
  80. </el-select>
  81. </el-form-item>
  82. <el-form-item>
  83. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  84. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  85. </el-form-item>
  86. </el-form>
  87. <el-row :gutter="10" class="mb8">
  88. <el-col :span="1.5">
  89. <el-button
  90. type="primary"
  91. plain
  92. icon="el-icon-plus"
  93. size="mini"
  94. @click="handleAdd"
  95. v-hasPermi="['gas:patrolTeam:add']"
  96. >新增</el-button>
  97. </el-col>
  98. <el-col :span="1.5">
  99. <el-button
  100. type="success"
  101. plain
  102. icon="el-icon-edit"
  103. size="mini"
  104. :disabled="single"
  105. @click="handleUpdate"
  106. v-hasPermi="['gas:patrolTeam:edit']"
  107. >修改</el-button>
  108. </el-col>
  109. <el-col :span="1.5">
  110. <el-button
  111. type="danger"
  112. plain
  113. icon="el-icon-delete"
  114. size="mini"
  115. :disabled="multiple"
  116. @click="handleDelete"
  117. v-hasPermi="['gas:patrolTeam:remove']"
  118. >删除</el-button>
  119. </el-col>
  120. <el-col :span="1.5">
  121. <el-button
  122. type="danger"
  123. plain
  124. icon="el-icon-search"
  125. size="mini"
  126. :disabled="multiple"
  127. @click="openshShow(null,true)"
  128. v-hasPermi="['gas:regulatingBoxMaintenance:remove']"
  129. >批量审核
  130. </el-button>
  131. </el-col>
  132. <el-col :span="1.5">
  133. <el-button
  134. type="danger"
  135. plain
  136. icon="el-icon-s-claim"
  137. size="mini"
  138. :disabled="multiple"
  139. @click="chushiBatch"
  140. v-if="['deputyDirector','director','admin'].includes(this.$store.state.user.postName)"
  141. >一键审核通过
  142. </el-button>
  143. </el-col>
  144. <el-col :span="1.5">
  145. <el-button
  146. type="warning"
  147. plain
  148. icon="el-icon-download"
  149. size="mini"
  150. :loading="exportLoading"
  151. @click="handleExport"
  152. v-hasPermi="['gas:patrolTeam:export']"
  153. >导出</el-button>
  154. </el-col>
  155. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  156. </el-row>
  157. <el-table v-loading="loading" :data="patrolTeamList" @selection-change="handleSelectionChange">
  158. <el-table-column type="selection" width="55" align="center" />
  159. <el-table-column label="" align="center" prop="id" v-if="false"/>
  160. <el-table-column label="序号" width="70">
  161. <template slot-scope="scope">
  162. {{(queryParams.pageNum-1)*queryParams.pageSize+scope.$index+1}}
  163. </template>
  164. </el-table-column>
  165. <el-table-column label="班组" align="center" prop="team">
  166. <template slot-scope="scope">
  167. <dict-tag :options="dict.type.team" :value="scope.row.team"/>
  168. </template>
  169. </el-table-column>
  170. <el-table-column label="上传位置" align="center" prop="uploadLocation" />
  171. <el-table-column label="是否周期巡检" align="center" prop="isNormalInspection" >
  172. <template slot-scope="scope">
  173. <dict-tag :options="dict.type.yes_and_no" :value="scope.row.isNormalInspection"/>
  174. </template>
  175. </el-table-column>
  176. <el-table-column label="是否告警" align="center" prop="isReport" >
  177. <template slot-scope="scope">
  178. <dict-tag :options="dict.type.yes_and_no" :value="scope.row.isReport"/>
  179. </template>
  180. </el-table-column>
  181. <el-table-column label="备注" align="center" prop="remark" />
  182. <el-table-column label="上传时间" align="center" prop="createTime" />
  183. <el-table-column label="审核状态" align="center" prop="processStatus">
  184. <template slot-scope="scope">
  185. <dict-tag :options="dict.type.process_status" :value="scope.row.processStatus"
  186. v-if="scope.row.processStatus != null"/>
  187. <span v-else>未审核</span>
  188. </template>
  189. </el-table-column>
  190. <el-table-column label="照片" align="center">
  191. <template slot-scope="scope">
  192. <el-image
  193. style="width: 50px; height: 50px;border-radius: 5px"
  194. :src="scope.row.photoList[0]"
  195. :preview-src-list="scope.row.photoList">
  196. </el-image>
  197. </template>
  198. </el-table-column>
  199. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  200. <template slot-scope="scope">
  201. <el-button
  202. size="mini"
  203. type="text"
  204. icon="el-icon-edit"
  205. @click="handleUpdate(scope.row)"
  206. v-hasPermi="['gas:patrolTeam:edit']"
  207. >修改</el-button>
  208. <el-button
  209. size="mini"
  210. type="text"
  211. icon="el-icon-edit"
  212. @click="openshShow(scope.row)"
  213. v-if="btnShow(scope.row)"
  214. v-hasPermi="['gas:courtyardNetworkManagement:edit']"
  215. >审核
  216. </el-button>
  217. <el-button
  218. size="mini"
  219. type="text"
  220. icon="el-icon-edit"
  221. @click="reviewListOpen(scope.row)"
  222. >审核记录
  223. </el-button>
  224. <el-button
  225. size="mini"
  226. type="text"
  227. icon="el-icon-delete"
  228. @click="handleDelete(scope.row)"
  229. v-hasPermi="['gas:patrolTeam:remove']"
  230. >删除</el-button>
  231. </template>
  232. </el-table-column>
  233. </el-table>
  234. <pagination
  235. v-show="total>0"
  236. :total="total"
  237. :page.sync="queryParams.pageNum"
  238. :limit.sync="queryParams.pageSize"
  239. @pagination="getList"
  240. />
  241. <el-dialog title="审核" :visible.sync="openSH" width="500px" append-to-body>
  242. <el-form ref="formSH" :model="formSH" :rules="rulesSH" label-width="100px">
  243. <el-form-item label="审核状态" prop="processStatus">
  244. <el-select v-model="formSH.processStatus" placeholder="请选择审核状态" :style="{width: '100%'}">
  245. <el-option
  246. v-for="dict in dictList"
  247. :key="dict.value"
  248. :label="dict.label"
  249. :value="dict.value"
  250. ></el-option>
  251. </el-select>
  252. </el-form-item>
  253. <el-form-item label="审核意见" prop="processComments">
  254. <el-input v-model="formSH.processComments" type="textarea" placeholder="请输入审核意见" maxlength="255"/>
  255. </el-form-item>
  256. </el-form>
  257. <div slot="footer" class="dialog-footer">
  258. <el-button :loading="buttonLoading" type="primary" @click="submitFormSH">确 定</el-button>
  259. <el-button @click="openSH = false">关 闭</el-button>
  260. </div>
  261. </el-dialog>
  262. <!-- 添加或修改巡检车队对话框 -->
  263. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  264. <el-form ref="form" :model="form" :rules="rules" label-width="110px">
  265. <el-form-item label="班组" prop="team">
  266. <el-select v-model="form.team" placeholder="请选择班组" style="width: 100%">
  267. <el-option
  268. v-for="dict in dict.type.team"
  269. :key="dict.value"
  270. :label="dict.label"
  271. :value="dict.value"
  272. ></el-option>
  273. </el-select>
  274. </el-form-item>
  275. <el-form-item label="上传位置" prop="uploadLocation">
  276. <el-input v-model="form.uploadLocation" placeholder="请输入上传位置" />
  277. </el-form-item>
  278. <el-form-item label="是否周期巡检" prop="isNormalInspection">
  279. <el-select v-model="form.isNormalInspection" placeholder="请选择是否周期巡检" clearable size="small" style="width: 100%">
  280. <el-option
  281. v-for="dict in dict.type.yes_and_no"
  282. :key="dict.value"
  283. :label="dict.label"
  284. :value="dict.value"
  285. />
  286. </el-select>
  287. </el-form-item>
  288. <el-form-item label="是否告警" prop="isReport">
  289. <el-select v-model="form.isReport" placeholder="请选择是否告警" clearable size="small" style="width: 100%">
  290. <el-option
  291. v-for="dict in dict.type.yes_and_no"
  292. :key="dict.value"
  293. :label="dict.label"
  294. :value="dict.value"
  295. />
  296. </el-select>
  297. </el-form-item>
  298. <el-form-item label="备注" prop="remark">
  299. <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
  300. </el-form-item>
  301. <el-form-item label="照片" prop="photoList">
  302. <imageUpload v-model="form.photoList" :disabled="disabled"/>
  303. </el-form-item>
  304. </el-form>
  305. <div slot="footer" class="dialog-footer">
  306. <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
  307. <el-button @click="cancel">取 消</el-button>
  308. </div>
  309. </el-dialog>
  310. <el-dialog title="审核记录" :visible.sync="reviewListShow" width="800px" append-to-body>
  311. <el-table
  312. :data="reviewList"
  313. style="width: 100%"
  314. border
  315. :header-cell-style="{'text-align':'center'}"
  316. height="500">
  317. <el-table-column label="历史审核记录">
  318. <el-table-column
  319. prop="createName"
  320. label="审核人"
  321. width="80">
  322. </el-table-column>
  323. <el-table-column
  324. prop="userPost"
  325. label="岗位"
  326. width="65">
  327. <template slot-scope="scope">
  328. <span v-if="scope.row.userPost == 'admin'">管理员</span>
  329. <span v-if="scope.row.userPost == 'deputyDirector'">副处长</span>
  330. <span v-if="scope.row.userPost == 'director'">处长</span>
  331. <span v-if="scope.row.userPost.indexOf('xx')>-1">队长</span>
  332. </template>
  333. </el-table-column>
  334. <el-table-column
  335. prop="processStatus"
  336. label="审核状态"
  337. width="75">
  338. <template slot-scope="scope">
  339. {{ scope.row.processStatus == '0' ? '通过' : '拒绝' }}
  340. </template>
  341. </el-table-column>
  342. <el-table-column
  343. prop="createTime"
  344. label="审核时间"
  345. width="155">
  346. </el-table-column>
  347. <el-table-column
  348. prop="processComments"
  349. label="审核意见"
  350. width="384">
  351. </el-table-column>
  352. </el-table-column>
  353. </el-table>
  354. <div slot="footer" class="dialog-footer">
  355. <el-button @click="reviewListShow = false">关 闭</el-button>
  356. </div>
  357. </el-dialog>
  358. </div>
  359. </template>
  360. <script>
  361. import { batchReview,listPatrolTeam, getPatrolTeam, delPatrolTeam, addPatrolTeam, updatePatrolTeam } from "@/api/gas/patrolTeam";
  362. import {listPostAll} from "@/api/system/post";
  363. import Cookies from "js-cookie";
  364. import {getWorker} from "@/api/gas/user";
  365. import {getReviewList} from "@/api/gas/patrolTeam.js";
  366. export default {
  367. name: "PatrolTeam",
  368. dicts: ['team', 'yes_and_no','process_status'],
  369. data() {
  370. return {
  371. dictList:[{label:'通过',value:'0'},{label:'不通过',value:'1'}],
  372. openSH: false,
  373. formSH: {},
  374. shFrom:{
  375. id: '',
  376. processStatus:'',
  377. postNameArias:undefined,
  378. processComments: ""
  379. },
  380. rulesSH: {
  381. processStatus: [
  382. {required: true, message: "审核状态不能为空", trigger: "blur"}
  383. ],
  384. },
  385. //审核记录
  386. reviewListShow: false,
  387. reviewList: [],
  388. // 按钮loading
  389. dialogVisible: false,
  390. // 按钮loading
  391. buttonLoading: false,
  392. disabled: false,
  393. // 遮罩层
  394. loading: true,
  395. // 导出遮罩层
  396. exportLoading: false,
  397. // 选中数组
  398. ids: [],
  399. // 非单个禁用
  400. single: true,
  401. // 非多个禁用
  402. multiple: true,
  403. // 显示搜索条件
  404. showSearch: true,
  405. // 总条数
  406. total: 0,
  407. // 巡检车队表格数据
  408. patrolTeamList: [],
  409. // 岗位选项
  410. postOptions: [],
  411. workerList: [],
  412. postName:Cookies.get("postName"),
  413. // 弹出层标题
  414. title: "",
  415. // 是否显示弹出层
  416. open: false,
  417. workerListSelect:[],
  418. pickerOptions: {
  419. shortcuts: [{
  420. text: '最近一周',
  421. onClick(picker) {
  422. const end = new Date();
  423. const start = new Date();
  424. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  425. picker.$emit('pick', [start, end]);
  426. }
  427. }, {
  428. text: '最近一个月',
  429. onClick(picker) {
  430. const end = new Date();
  431. const start = new Date();
  432. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  433. picker.$emit('pick', [start, end]);
  434. }
  435. }, {
  436. text: '最近三个月',
  437. onClick(picker) {
  438. const end = new Date();
  439. const start = new Date();
  440. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  441. picker.$emit('pick', [start, end]);
  442. }
  443. }]
  444. },
  445. // 查询参数
  446. queryParams: {
  447. pageNum: 1,
  448. pageSize: 10,
  449. team: undefined,
  450. isReport: undefined,
  451. uploadLocation: undefined,
  452. isNormalInspection: undefined,
  453. createTimes: [],
  454. processStatus:undefined,
  455. postNameArias:this.$store.state.user.postName,
  456. ranks:(Cookies.get("postName").indexOf('xx') > -1 ? parseInt(Cookies.get("postId")) : undefined),
  457. },
  458. // 表单参数
  459. form: {},
  460. // 表单校验
  461. rules: {
  462. id: [
  463. { required: true, message: "不能为空", trigger: "blur" }
  464. ],
  465. team: [
  466. { required: true, message: "班组不能为空", trigger: "change" }
  467. ],
  468. uploadLocation: [
  469. { required: true, message: "上传位置不能为空", trigger: "blur" }
  470. ],
  471. isNormalInspection: [
  472. { required: true, message: "是否正常巡检不能为空", trigger: "blur" }
  473. ],
  474. isReport: [
  475. { required: true, message: "是否告警不能为空", trigger: "blur" }
  476. ],
  477. }
  478. };
  479. },
  480. mounted() {
  481. setTimeout(
  482. this.getUsers(parseInt(Cookies.get("postId")))
  483. ,1000)
  484. },
  485. created() {
  486. this.getPostList();
  487. // this.getWorkerList();
  488. this.getList();
  489. },
  490. methods: {
  491. btnShow(row){
  492. let b = false;
  493. if (row.flag==true){
  494. b = true;
  495. }
  496. return b;
  497. },
  498. process(data) {
  499. this.shFrom.id = undefined
  500. this.shFrom.id = data.id;
  501. this.shFrom.processStatus = '';
  502. this.shFrom.processComments = '';
  503. this.dialogVisible = true;
  504. },
  505. getUsers(value){
  506. if (!value) return;
  507. getWorker({ranks:value}).then(response => {
  508. this.workerListSelect = response.data;
  509. });
  510. },
  511. getWorkerList(ranks) {
  512. let data = null
  513. if(ranks){
  514. data = {
  515. ranks:ranks
  516. }
  517. }
  518. getWorker(data).then(req => {
  519. this.workerList = req.data
  520. })
  521. },
  522. getPostList(){
  523. listPostAll({remark:'ranks'}).then(response => {
  524. this.postOptions = response.data;
  525. });
  526. },
  527. /** 查询巡检车队列表 */
  528. getList() {
  529. this.loading = true;
  530. listPatrolTeam(this.queryParams).then(response => {
  531. this.patrolTeamList = response.rows;
  532. this.total = response.total;
  533. this.loading = false;
  534. });
  535. },
  536. // 取消按钮
  537. cancel() {
  538. this.open = false;
  539. this.reset();
  540. },
  541. // 表单重置
  542. reset() {
  543. this.form = {
  544. id: undefined,
  545. team: undefined,
  546. uploadLocation: undefined,
  547. isReport: undefined,
  548. isNormalInspection: undefined,
  549. delFlag: undefined,
  550. createBy: undefined,
  551. createTime: undefined,
  552. updateBy: undefined,
  553. updateTime: undefined,
  554. remark: undefined
  555. };
  556. this.resetForm("form");
  557. },
  558. /** 搜索按钮操作 */
  559. handleQuery() {
  560. this.queryParams.pageNum = 1;
  561. this.getList();
  562. },
  563. /** 重置按钮操作 */
  564. resetQuery() {
  565. this.resetForm("queryForm");
  566. this.workerListSelect=[]
  567. this.queryParams.createTimes=[]
  568. this.handleQuery();
  569. },
  570. // 多选框选中数据
  571. handleSelectionChange(selection) {
  572. this.ids = selection.map(item => item.id)
  573. this.single = selection.length!==1
  574. this.multiple = !selection.length
  575. },
  576. /** 新增按钮操作 */
  577. handleAdd() {
  578. this.reset();
  579. this.open = true;
  580. this.title = "添加巡检车队";
  581. },
  582. /** 修改按钮操作 */
  583. handleUpdate(row) {
  584. this.loading = true;
  585. this.reset();
  586. const id = row.id || this.ids
  587. getPatrolTeam(id).then(response => {
  588. this.loading = false;
  589. this.form = response.data;
  590. this.open = true;
  591. this.title = "修改巡检车队";
  592. });
  593. },
  594. reviewListOpen(row){
  595. this.reviewList = [];
  596. this.reviewListShow=true;
  597. getReviewList({emrId: row.id}).then(res=>this.reviewList = res.rows);
  598. },
  599. openshShow(data, isBatch) {
  600. this.formSH = {
  601. id: undefined,
  602. uids: [],
  603. postNameArias: undefined,
  604. processStatus: undefined,
  605. processComments: undefined,
  606. }
  607. if (isBatch)
  608. this.formSH.uids = this.ids
  609. else
  610. this.formSH.uids = [data.id]
  611. this.openSH = true
  612. },
  613. submitFormSH() {
  614. const postNameArias = this.$store.state.user.postName;
  615. this.formSH.postNameArias = postNameArias
  616. this.$refs["formSH"].validate(valid => {
  617. if (valid) {
  618. this.buttonLoading = true;
  619. if (this.formSH.id != null) {
  620. updatePatrolTeam(this.formSH).then(response => {
  621. this.$modal.msgSuccess("审核成功");
  622. this.openSH = false;
  623. this.getList();
  624. }).finally(() => {
  625. this.buttonLoading = false;
  626. });
  627. }else if (this.formSH.uids.length > 0) {
  628. batchReview(this.formSH).then(response => {
  629. this.$modal.msgSuccess("审核成功");
  630. this.openSH = false;
  631. this.getList();
  632. }).finally(() => {
  633. this.buttonLoading = false;
  634. });
  635. }
  636. }
  637. })
  638. },
  639. chushiBatch(){
  640. if (this.ids.length > 0) {
  641. let chushiForm = {uids:[],processStatus:null,processComments:null,postNameArias:null}
  642. chushiForm.processStatus = '0';
  643. chushiForm.processComments = '一键审核通过';
  644. chushiForm.uids = this.ids;
  645. chushiForm.postNameArias = this.$store.state.user.postName;
  646. console.log(chushiForm)
  647. batchReview(chushiForm).then(response => {
  648. if (response.code===200) {
  649. this.$modal.msgSuccess("审核成功");
  650. }
  651. this.getList();
  652. })
  653. }
  654. },
  655. /** 提交按钮 */
  656. submitForm() {
  657. this.$refs["form"].validate(valid => {
  658. if (valid) {
  659. this.buttonLoading = true;
  660. if (this.form.id != null) {
  661. if (typeof this.form.photoList === 'string') {
  662. this.form.photoList = this.form.photoList.split(',')
  663. }
  664. updatePatrolTeam(this.form).then(response => {
  665. this.$modal.msgSuccess("修改成功");
  666. this.open = false;
  667. this.getList();
  668. }).finally(() => {
  669. this.buttonLoading = false;
  670. });
  671. } else {
  672. this.form.photoList = this.form.photoList.split(',')
  673. addPatrolTeam(this.form).then(response => {
  674. this.$modal.msgSuccess("新增成功");
  675. this.open = false;
  676. this.getList();
  677. }).finally(() => {
  678. this.buttonLoading = false;
  679. });
  680. }
  681. }
  682. });
  683. },
  684. /** 删除按钮操作 */
  685. handleDelete(row) {
  686. const ids = row.id || this.ids;
  687. this.$modal.confirm('是否确认删除巡检车队编号为"' + ids + '"的数据项?').then(() => {
  688. this.loading = true;
  689. return delPatrolTeam(ids);
  690. }).then(() => {
  691. this.loading = false;
  692. this.getList();
  693. this.$modal.msgSuccess("删除成功");
  694. }).finally(() => {
  695. this.loading = false;
  696. });
  697. },
  698. /** 导出按钮操作 */
  699. handleExport() {
  700. this.$download.excel('/gas/patrolTeam/export', this.queryParams);
  701. }
  702. }
  703. };
  704. </script>