liuTable.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true">
  4. <el-row type="flex">
  5. <el-col :span="2">
  6. <el-form-item label="开始时间" style="float:right">
  7. </el-form-item>
  8. </el-col>
  9. <el-col :span="3">
  10. <el-date-picker
  11. v-model="queryParams.startTime"
  12. type="date"
  13. placeholder="选择日期">
  14. </el-date-picker>
  15. </el-col>
  16. <el-col :span="2">
  17. <el-form-item label="结束时间" style="float:right">
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="3">
  21. <el-date-picker
  22. v-model="queryParams.endTime"
  23. type="date"
  24. placeholder="选择日期">
  25. </el-date-picker>
  26. </el-col>
  27. <el-col :span="2">
  28. <el-form-item label="船名" prop="shipName" style="float:right">
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="3">
  32. <el-input
  33. v-model="queryParams.shipName"
  34. placeholder="请输入船名"
  35. clearable
  36. size="small"
  37. style="width: 80rem"
  38. @keyup.enter.native="handleQuery"
  39. />
  40. </el-col>
  41. <el-col :span="2">
  42. <el-form-item label="MMSI" prop="mmsi" style="float:right">
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="3">
  46. <el-input
  47. v-model="queryParams.mmsi"
  48. placeholder="请输入MMSI"
  49. clearable
  50. size="small"
  51. style="width: 100rem"
  52. @keyup.enter.native="handleQuery"
  53. />
  54. </el-col>
  55. </el-row>
  56. <el-row type="flex">
  57. <el-col :span="2">
  58. <el-form-item label="海船/内河船" prop="name" style="float:right">
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="3">
  62. <el-select v-model="queryParams.shipRegionType" clearable placeholder="请选择海船/内河船">
  63. <el-option
  64. v-for="item in shipTypeOptions"
  65. :key="item.value"
  66. :label="item.label"
  67. :value="item.value">
  68. </el-option>
  69. </el-select>
  70. </el-col>
  71. <el-col :span="2">
  72. <el-form-item label="监测点" prop="monitorPointName" style="float:right">
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="3">
  76. <el-select v-model="queryParams.monitorPointName" clearable placeholder="请选择监测点">
  77. <el-option
  78. v-for="item in jianceOptions"
  79. :key="item.dictValue"
  80. :label="item.dictLabel"
  81. :value="item.dictValue">
  82. </el-option>
  83. </el-select>
  84. </el-col>
  85. <el-col :span="2">
  86. <el-form-item label="目的港" prop="destination" style="float:right">
  87. </el-form-item>
  88. </el-col>
  89. <el-col :span="3">
  90. <el-input
  91. v-model="queryParams.destination"
  92. placeholder="请输入目的港"
  93. clearable
  94. size="small"
  95. style="width: 80rem"
  96. />
  97. </el-col>
  98. <el-col :span="2">
  99. <el-form-item label="管辖机构" prop="orgName" style="float:right">
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="3">
  103. <el-select v-model="queryParams.orgName" clearable placeholder="请选择管辖机构">
  104. <el-option
  105. v-for="item in orgOptions"
  106. :key="item.dictValue"
  107. :label="item.dictLabel"
  108. :value="item.dictValue">
  109. </el-option>
  110. </el-select>
  111. </el-col>
  112. </el-row>
  113. <el-row type="flex">
  114. <el-col :span="2">
  115. <el-form-item label="设备类型" prop="deviceType" style="float:right">
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="3">
  119. <el-select v-model="queryParams.illegalType" clearable placeholder="请选择设备类型">
  120. <el-option
  121. v-for="item in illegalTypeOptions"
  122. :key="item.value"
  123. :label="item.label"
  124. :value="item.value">
  125. </el-option>
  126. </el-select>
  127. </el-col>
  128. <el-col :span="2">
  129. <el-form-item label="处置结果" prop="name" style="float:right">
  130. </el-form-item>
  131. </el-col>
  132. <el-col :span="3">
  133. <el-select v-model="queryParams.dealResult" clearable placeholder="请选择处置结果">
  134. <el-option
  135. v-for="item in options"
  136. :key="item.value"
  137. :label="item.label"
  138. :value="item.value">
  139. </el-option>
  140. </el-select>
  141. </el-col>
  142. <el-col :span="2">
  143. <el-form-item label="快检结果" prop="fastResult" style="float:right">
  144. </el-form-item>
  145. </el-col>
  146. <el-col :span="3">
  147. <el-select v-model="queryParams.fastResult" clearable placeholder="请选择快检结果">
  148. <el-option
  149. v-for="item in options"
  150. :key="item.value"
  151. :label="item.label"
  152. :value="item.value">
  153. </el-option>
  154. </el-select>
  155. </el-col>
  156. <el-col :span="2">
  157. <el-form-item label="送检结果" prop="uploadResult" style="float:right">
  158. </el-form-item>
  159. </el-col>
  160. <el-col :span="3">
  161. <el-select v-model="queryParams.uploadResult" clearable placeholder="请选择送检结果">
  162. <el-option
  163. v-for="item in options"
  164. :key="item.value"
  165. :label="item.label"
  166. :value="item.value">
  167. </el-option>
  168. </el-select>
  169. </el-col>
  170. </el-row>
  171. <!-- <el-form-item label="受否中国国籍" prop="name">-->
  172. <!-- <el-radio v-model="queryParams.radio" label="1">是</el-radio>-->
  173. <!-- <el-radio v-model="queryParams.radio" label="2">否</el-radio>-->
  174. <!-- </el-form-item>-->
  175. <el-form-item style="margin-left:1rem">
  176. <el-button icon="el-icon-search" size="mini" @click="getLiuLists" class="search">查询</el-button>
  177. <el-button icon="el-icon-upload2" size="mini" @click="" class="export">导出</el-button>
  178. <el-button icon="el-icon-setting" size="mini" @click="dialogVisible = true" class="export">阈值</el-button>
  179. </el-form-item>
  180. </el-form>
  181. <el-radio-group v-model="tableShow" style="margin-bottom: 30px;" @change="tabChange">
  182. <el-radio-button label="1">嫌疑船舶管理</el-radio-button>
  183. <el-radio-button label="2">处置流程管理</el-radio-button>
  184. </el-radio-group>
  185. <el-table
  186. :data="tableData"
  187. :header-cell-style="{ background: 'linear-gradient(white, #ccebf9)'}"
  188. style="width: 100%"
  189. height=400>
  190. <el-table-column
  191. label='序号'
  192. type="index"
  193. width="50">
  194. </el-table-column>
  195. <el-table-column
  196. prop="shipName"
  197. label="船名"
  198. width="180">
  199. </el-table-column>
  200. <el-table-column
  201. prop="mmsi"
  202. label="MMSI"
  203. width="180">
  204. </el-table-column>
  205. <el-table-column
  206. prop="shipRegionType"
  207. label="内河船/海船">
  208. </el-table-column>
  209. <el-table-column
  210. prop="monitorPointName"
  211. label="监测点">
  212. </el-table-column>
  213. <el-table-column
  214. prop="orgName"
  215. label="管辖机构" v-if="tableShow == 1">
  216. </el-table-column>
  217. <el-table-column
  218. prop="createTime"
  219. label="监测时间">
  220. </el-table-column>
  221. <el-table-column
  222. prop="so2Percent"
  223. label="监测值" v-if="tableShow == 1">
  224. </el-table-column>
  225. <el-table-column
  226. prop="address"
  227. label="发送短信"
  228. v-if="false">
  229. <template slot-scope="scope">
  230. <el-button type="warning" icon="el-icon-chat-line-square">发送</el-button>
  231. </template>
  232. </el-table-column>
  233. <el-table-column
  234. prop="address"
  235. label="快检结果"
  236. v-if="tableShow != 1">
  237. </el-table-column>
  238. <el-table-column
  239. prop="address"
  240. label="送检结果"
  241. v-if="tableShow != 1">
  242. </el-table-column>
  243. <el-table-column
  244. prop="address"
  245. label="处置结果"
  246. v-if="tableShow != 1">
  247. </el-table-column>
  248. <el-table-column
  249. prop="destination"
  250. label="目的港"
  251. v-if="tableShow == 1">
  252. </el-table-column>
  253. <el-table-column
  254. prop="berthName"
  255. label="锚铂计划"
  256. v-if="tableShow == 1">
  257. </el-table-column>
  258. </el-table>
  259. <pagination
  260. v-show="total>0"
  261. :total="total"
  262. :page.sync="queryParams.pageNum"
  263. :limit.sync="queryParams.pageSize"
  264. @pagination="getLiuLists"
  265. />
  266. <div class="dialogContent">
  267. <el-dialog
  268. title=""
  269. :visible.sync="dialogVisible">
  270. <div class="dialogDiv" v-show="dialogShow">
  271. <span class="dialogFont" style="margin-left:10rem">燃油硫含量报警阈值(%)</span>
  272. <span class="dialogFont" style="margin-left:40rem">{{ liuCount }}</span>
  273. <button style="margin-left:40rem;" class="dialogButton" @click="dialogShow=false">修改</button>
  274. </div>
  275. <div class="dialogDiv" v-show="!dialogShow">
  276. <span class="dialogFont" style="margin-left:10rem">燃油硫含量报警阈值(%)</span>
  277. <el-input v-model="liuCount" placeholder="请输入内容" style="width:30rem;margin-left:15rem"></el-input>
  278. <button style="margin-left:13rem;" class="dialogButton" @click="getThresholdEdit">保存</button>
  279. <button style="margin-left:7rem;" class="dialogButton" @click="dialogShow=true">取消</button>
  280. </div>
  281. </el-dialog>
  282. </div>
  283. </div>
  284. </template>
  285. <script>
  286. import {getLiuList, getThresholdEdit, getThresholdList} from "@/api/data/liuData";
  287. import {getDicts} from "@/api/system/dict/data";
  288. export default {
  289. name: "xtTable",
  290. data() {
  291. return {
  292. total: 0,
  293. dialogVisible: false,
  294. showSearch: true,
  295. // tabPosition: 'left',
  296. tableShow: 1,
  297. liuCount: 0.3,
  298. dialogShow: true,
  299. liuCountId: '',
  300. queryParams: {
  301. pageNum: 1,
  302. pageSize: 10,
  303. dateRange: '',
  304. mmsi: '',
  305. shipName: '',
  306. shipRegionType: '',
  307. destination: '',
  308. orgName: '',
  309. illegalStatus: 2,
  310. dealResult: '',
  311. fastResult: '',
  312. uploadResult: '',
  313. startTime: '',
  314. endTime: '',
  315. monitorPointName: '',
  316. },
  317. jianceOptions: [],
  318. orgOptions: [],
  319. illegalTypeOptions: [{
  320. value: 'guangpu',
  321. label: '光谱'
  322. }, {
  323. value: 'xiutan',
  324. label: '嗅探'
  325. }],
  326. shipTypeOptions: [{
  327. value: '0',
  328. label: '内河船'
  329. }, {
  330. value: '1',
  331. label: '海船'
  332. }],
  333. options: [{
  334. value: '选项1',
  335. label: '未处置'
  336. }, {
  337. value: '选项2',
  338. label: '已处置'
  339. }],
  340. tableData: [{
  341. date: '2016-05-02',
  342. name: '王小虎',
  343. address: '上海市普陀区金沙江路 1518 弄'
  344. }, {
  345. date: '2016-05-04',
  346. name: '王小虎',
  347. address: '上海市普陀区金沙江路 1517 弄'
  348. }, {
  349. date: '2016-05-01',
  350. name: '王小虎',
  351. address: '上海市普陀区金沙江路 1519 弄'
  352. }, {
  353. date: '2016-05-03',
  354. name: '王小虎',
  355. address: '上海市普陀区金沙江路 1516 弄'
  356. }]
  357. }
  358. },
  359. // mounted() {
  360. // this.getLiuLists();
  361. // this.getThresholdList();
  362. // this.getDicts();
  363. // },
  364. created() {
  365. this.getLiuLists();
  366. this.getThresholdList();
  367. this.getDicts();
  368. },
  369. methods: {
  370. getDicts() {
  371. getDicts('so2_snap_pos').then(data => {
  372. this.jianceOptions = data.data
  373. });
  374. getDicts('cb_org').then(data => {
  375. this.orgOptions = data.data
  376. });
  377. },
  378. tabChange() {
  379. console.log(this.tableShow);
  380. },
  381. getThresholdList() {
  382. getThresholdList({type: 'so2'}).then(response => {
  383. this.liuCount = response.rows[0].configValue;
  384. this.liuCountId = response.rows[0].configId;
  385. });
  386. }, getThresholdEdit() {
  387. getThresholdEdit({'configId': this.liuCountId, 'configValue': this.liuCount}).then(response => {
  388. this.dialogShow = true
  389. });
  390. },
  391. getLiuLists() {
  392. this.loading = true;
  393. var dateRange = '';
  394. if (this.queryParams.startTime != undefined && this.queryParams.startTime != "" && this.queryParams.endTime != undefined && this.queryParams.endTime != "") {
  395. dateRange = [];
  396. dateRange.push(this.queryParams.startTime.toJSON().split("T")[0]);
  397. dateRange.push(this.queryParams.endTime.toJSON().split("T")[0]);
  398. }
  399. getLiuList(this.addDateRange(this.queryParams, dateRange)).then(response => {
  400. for (var i in response.rows) {
  401. response.rows[i].shipRegionType = '内河船'
  402. response.rows[i].destination = '无'
  403. response.rows[i].berthName = '无'
  404. }
  405. this.tableData = response.rows;
  406. this.total = response.total;
  407. this.loading = false;
  408. });
  409. }
  410. }
  411. }
  412. </script>
  413. <style scoped>
  414. .dialogContent >>> .el-dialog {
  415. background: url("./assets/pop_yzsz.png") no-repeat;
  416. background-size: 100% 100%;
  417. height: 150rem;
  418. width: 250rem;
  419. border: none;
  420. top: 100rem;
  421. }
  422. .dialogDiv {
  423. background-color: #1E2E51;
  424. height: 25rem;
  425. width: 220rem;
  426. margin-left: 3rem;
  427. padding-top: 6rem;
  428. }
  429. .dialogFont {
  430. color: #fff;
  431. font-size: 7rem;
  432. }
  433. .dialogButton {
  434. color: black;
  435. background-color: #00BFFF;
  436. border-radius: 2rem;
  437. }
  438. .dialogContent >>> .el-input--medium .el-input__inner {
  439. height: 10rem;
  440. text-align: center
  441. }
  442. .search {
  443. opacity: 1;
  444. background: linear-gradient(0deg, #098cf1 0%, #14eaef 100%);
  445. border-radius: 2rem;
  446. color: white
  447. }
  448. .export {
  449. opacity: 1;
  450. background: #ffffff;
  451. border: 1rem solid #e1e1e1;
  452. border-radius: 2rem;
  453. }
  454. </style>