setTask.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758
  1. <template>
  2. <div>
  3. <el-breadcrumb separator-class="el-icon-arrow-right">
  4. <el-breadcrumb-item>首页</el-breadcrumb-item>
  5. <el-breadcrumb-item>牵头单位</el-breadcrumb-item>
  6. <el-breadcrumb-item :to="{ path: '/jc/routineMonitorqt' }">任务列表</el-breadcrumb-item>
  7. <el-breadcrumb-item>基本信息</el-breadcrumb-item>
  8. </el-breadcrumb>
  9. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  10. <el-tab-pane label="基本信息" name="first">
  11. <el-form :model="readForm" label-position="right" label-width="auto" style="margin-left: 35%;">
  12. <el-form-item label="发布单位:" prop="releaser" class="labelItem" required>
  13. <div>{{readForm.releaser}}</div>
  14. </el-form-item>
  15. <el-form-item label="任务名称:" prop="task_name" class="labelItem" required>
  16. <div>{{readForm.task_name}}</div>
  17. </el-form-item>
  18. <el-form-item label="任务优先级:" prop="level" class="labelItem" required>
  19. <div v-if="readForm.level=='0'">一般</div>
  20. <div v-else-if="readForm.level=='1'">紧急</div>
  21. <div v-else>特急</div>
  22. </el-form-item>
  23. <el-form-item label="监测类型:" prop="task_class" width="70px" class="labelItem" required>
  24. <div>{{readForm.task_class}}</div>
  25. </el-form-item>
  26. <el-form-item label="检测模型:" prop="bindForm.test_model_id" width="70px" class="labelItem" required>
  27. <el-select v-model="bindForm.test_model_id" size="mini" placeholder="请选择">
  28. <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
  29. </el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="抽检分离:" prop="bindForm.is_divide" width="70px" class="labelItem">
  33. <el-select v-model="bindForm.is_divide" size="mini">
  34. <el-option v-for="item in divideOptions" :key="item.id" :label="item.name" :value="item.id">
  35. </el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item label="年度:" prop="year" class="labelItem" required>
  39. <div>{{readForm.year}}</div>
  40. </el-form-item>
  41. <!-- <el-form-item label="发布机构所属区域:" prop="year" class="labelItem" required>
  42. <div>{{readForm.year}}</div>
  43. </el-form-item> -->
  44. <el-form-item label="机构级别:" prop="releaserInfo.groupname" class="labelItem" required>
  45. <div>{{readForm.releaserInfo.groupname}}</div>
  46. </el-form-item>
  47. <!-- <el-form-item label="批次:" prop="batch" width="200px" class="labelItem">
  48. <div>{{readForm.batch}}</div>
  49. </el-form-item> -->
  50. <el-form-item label="任务时间:" prop="starttime" width="200px" class="labelItem" required>
  51. <div>{{readForm.starttime}} 至 {{readForm.endtime}}</div>
  52. </el-form-item>
  53. <el-form-item label="抽样信息上报截止时间:" size="mini" class="labelItem" required>
  54. <el-date-picker v-model="bindForm.endtime_cydsb" type="date" value-format="yyyy-MM-dd">
  55. </el-date-picker>
  56. </el-form-item>
  57. <el-form-item label="附件:" prop="file_url" class="labelItem">
  58. <div v-if="readForm.file_url==null">无</div>
  59. <el-link v-else type="primary" :href="readForm.file_url">{{readForm.file_name}}</el-link>
  60. </el-form-item>
  61. <el-form-item label="文件号:" prop="filenum" width="200px" class="labelItem">
  62. <div v-if="readForm.filenum==null">无</div>
  63. <div v-else>{{readForm.filenum}}</div>
  64. </el-form-item>
  65. <el-form-item label="备注:" prop="log" class="labelItem">
  66. <div v-if="readForm.log==null">无</div>
  67. <div v-else>{{readForm.log}}</div>
  68. </el-form-item>
  69. </el-form>
  70. <div class="footer">
  71. <el-button type="success" size="mini" @click="bindModel">保存</el-button>
  72. <el-button type="success" size="mini" @click="next">下一步</el-button>
  73. </div>
  74. </el-tab-pane>
  75. <el-tab-pane label="机构与地域" name="second">
  76. <!-- 头部搜索栏 -->
  77. <el-form ref="form" :model="form" style="display: flex; flex-direction: column; margin-left: 5px; width: 100%; label-width: auto;">
  78. <el-row style="width: 75%;">
  79. <el-col :span="6">
  80. <el-form-item prop="bear_unit" label="抽样机构" class="select" size="mini">
  81. <el-input v-model="form.bear_unit" @focus="getTestListShow = true"></el-input>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="6">
  85. <el-form-item prop="check_unit" label="检测机构" class="select" size="mini">
  86. <el-input v-model="form.check_unit" @focus="getTestListShow2 = true"></el-input>
  87. </el-form-item>
  88. </el-col>
  89. <el-col :span="5">
  90. <el-form-item prop="sample_number" label="抽样数量" class="select" size="mini">
  91. <el-input v-model="form.sample_number" style="width: 110px;"></el-input>
  92. </el-form-item>
  93. </el-col>
  94. <el-col :span="7">
  95. <el-form-item prop="report_unit" label="报告上传单位" class="select" size="mini">
  96. <el-input v-model="form.report_unit" @focus="getTestListShow1 = true"></el-input>
  97. </el-form-item>
  98. </el-col>
  99. </el-row>
  100. <el-row style="width: 100%; margin-top: 10px;">
  101. <el-col :span="5">
  102. <el-form-item prop="address" label="抽样地区" class="select" size="mini">
  103. <el-cascader :options="region" v-model="selectedOptions"
  104. @change="handleChange">
  105. </el-cascader>
  106. </el-form-item>
  107. </el-col>
  108. <el-col :span="6">
  109. <el-form-item prop="uploadtime" label="报告上传时间:" class="select" size="mini">
  110. <el-date-picker v-model="form.uploadtime" type="date" value-format="yyyy-MM-dd">
  111. </el-date-picker>
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="12" >
  115. <el-button type="primary" size="mini" plain @click="save('form')">保存
  116. </el-button>
  117. <el-button type="primary" size="small" plain icon="el-icon-edit-outline" @click="resetForm('form')">
  118. 重置
  119. </el-button>
  120. <el-button type="primary" size="mini" plain @click="back()">上一步</el-button>
  121. <el-button type="primary" size="mini" plain @click="nexto()">下一步</el-button>
  122. </el-col>
  123. </el-row>
  124. </el-form>
  125. <!-- 表格数据区域-->
  126. <el-row :gutter="90" style="margin-right: 0px;">
  127. <div style="display: flex;flex-direction: row;float: right;">
  128. <el-button type="primary" size="small" plain @click="sampleDetail()">删除</el-button>
  129. </div>
  130. </el-row>
  131. <el-table ref="multipleTable" :data="underTask" border stripe highlight-current-row
  132. @selection-change="handleSelectionChange" style="width: 100%" :row-style="rowStyle"
  133. :cell-style="cellStyle">
  134. <el-table-column type="selection" width="50" align="center"></el-table-column>
  135. <el-table-column label="序号" width="50px" align="center">
  136. <template slot-scope="scope">
  137. {{ scope.$index+1 }}
  138. </template>
  139. </el-table-column>
  140. <el-table-column :key="table.label" v-for="table in tableHeader" :label="table.label"
  141. :prop="table.prop" align="center" :width="table.width" :fixed="table.fixed" />
  142. </el-table>
  143. <!-- 分页器区域-->
  144. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
  145. :current-page="queryInfo.pageNum" :page-sizes="[1,10, 15, 20]" :page-size="queryInfo.pageSize"
  146. layout="total, sizes, prev, pager, next, jumper" :total="underTasktotal" background />
  147. </el-tab-pane>
  148. <el-tab-pane label="总览" name="third">
  149. <taskdetail :task_id="task_id"></taskdetail>
  150. <div class="footer">
  151. <el-button type="success" size="mini" @click="release()">发布</el-button>
  152. <el-button type="success" size="mini" @click="exportOverview()">导出总览</el-button>
  153. <el-button type="success" size="mini" @click="next">返回</el-button>
  154. </div>
  155. </el-tab-pane>
  156. <el-dialog title="生成监测报告" :visible.sync="dialogVisible2" width="50%">
  157. <taskdetail :task_id="task_id"></taskdetail>
  158. <div class="footer">
  159. <el-button @click="dialogVisible2 = false">取 消</el-button>
  160. <el-button type="success" size="mini" @click="exportOverviewpdf">导出总览pdf</el-button>
  161. </div>
  162. </el-dialog>
  163. </el-tabs>
  164. <!-- 选择抽样机构对话框 -->
  165. <el-dialog title="抽样机构选择" :visible.sync="getTestListShow" width="50%" :close-on-click-modal="false"
  166. @open="getTestList()" class="dialogItem">
  167. <el-form v-if="getTestListShow">
  168. <!-- 表格数据区域-->
  169. <el-table ref="singleTable" :data="testList" row-key="id" @current-change="choseChange" border stripe
  170. highlight-current-row style="width: 100%">
  171. <el-table-column label="序号" width="50px" align="center">
  172. <template slot-scope="scope">
  173. {{ scope.$index+1 }}
  174. </template>
  175. </el-table-column>
  176. <el-table-column :key="table.prop" v-for="table in tableHeaders" :label="table.label"
  177. :prop="table.prop" align="center" :width="table.width" :fixed="table.fixed" />
  178. </el-table>
  179. <div>
  180. <!-- 分页器区域-->
  181. <el-pagination @size-change="handleSizeChanges" @current-change="handleCurrentChanges"
  182. :current-page="queryInfos.pageNum" :page-sizes="[1,10, 15, 20]" :page-size="queryInfos.pageSize"
  183. layout="total, sizes, prev, pager, next, jumper" :total="totals" background />
  184. <el-button type="success" style="display: block; margin: 10px auto;" size="mini" @click="choseTest()">提交</el-button>
  185. </div>
  186. </el-form>
  187. </el-dialog>
  188. <!-- 选择报告上传单位对话框 -->
  189. <el-dialog title="机构选择" :visible.sync="getTestListShow1" width="50%" :close-on-click-modal="false"
  190. @open="getTestList()" class="dialogItem">
  191. <el-form v-if="getTestListShow1">
  192. <!-- 表格数据区域-->
  193. <el-table ref="singleTable" :data="testList" row-key="id" @current-change="choseChange1" border stripe
  194. highlight-current-row style="width: 100%">
  195. <el-table-column label="序号" width="50px" align="center">
  196. <template slot-scope="scope">
  197. {{ scope.$index+1 }}
  198. </template>
  199. </el-table-column>
  200. <el-table-column :key="table.prop" v-for="table in tableHeaders" :label="table.label"
  201. :prop="table.prop" align="center" :width="table.width" :fixed="table.fixed" />
  202. </el-table>
  203. <div>
  204. <!-- 分页器区域-->
  205. <el-pagination @size-change="handleSizeChanges" @current-change="handleCurrentChanges"
  206. :current-page="queryInfos.pageNum" :page-sizes="[1,10, 15, 20]" :page-size="queryInfos.pageSize"
  207. layout="total, sizes, prev, pager, next, jumper" :total="totals" background />
  208. <el-button style="display: block; margin: 10px auto;" type="success" size="mini" @click="choseReportUnit()">提交</el-button>
  209. </div>
  210. </el-form>
  211. </el-dialog>
  212. <!-- 选择检测单位对话框 -->
  213. <el-dialog title="机构选择" :visible.sync="getTestListShow2" width="50%" :close-on-click-modal="false"
  214. @open="getTestList()" class="dialogItem">
  215. <el-form v-if="getTestListShow2">
  216. <!-- 表格数据区域-->
  217. <el-table ref="singleTable" :data="testList" row-key="id" @current-change="choseChange2" border stripe
  218. highlight-current-row style="width: 100%">
  219. <el-table-column label="序号" width="50px" align="center">
  220. <template slot-scope="scope">
  221. {{ scope.$index+1 }}
  222. </template>
  223. </el-table-column>
  224. <el-table-column :key="table.prop" v-for="table in tableHeaders" :label="table.label"
  225. :prop="table.prop" align="center" :width="table.width" :fixed="table.fixed" />
  226. </el-table>
  227. <div>
  228. <!-- 分页器区域-->
  229. <el-pagination @size-change="handleSizeChanges" @current-change="handleCurrentChanges"
  230. :current-page="queryInfos.pageNum" :page-sizes="[1,10, 15, 20]" :page-size="queryInfos.pageSize"
  231. layout="total, sizes, prev, pager, next, jumper" :total="totals" background />
  232. <el-button style="display: block; margin: 10px auto;" type="success" size="mini" @click="choseCheckUnit()">提交</el-button>
  233. </div>
  234. </el-form>
  235. </el-dialog>
  236. </div>
  237. </template>
  238. <script>
  239. import htmlToPdf from '../../assets/js/htmlToPdf.js'
  240. const token = window.sessionStorage.getItem('token')
  241. const rybh = window.sessionStorage.getItem('rybh')
  242. import {
  243. provinceAndCityData,
  244. regionData,
  245. provinceAndCityDataPlus,
  246. regionDataPlus,
  247. CodeToText,
  248. TextToCode
  249. } from 'element-china-area-data'
  250. import taskdetail from './taskdetail'
  251. export default {
  252. name: 'setTask',
  253. data() {
  254. return {
  255. size: 'medium',
  256. dialogVisible2: false,
  257. activeName: 'first',
  258. id: 0,
  259. readForm: {
  260. releaser: '',
  261. task_name: '',
  262. level: '',
  263. task_class: '',
  264. year: '',
  265. releaserInfo:{
  266. groupname: ''
  267. },
  268. endtime: '',
  269. file_url: '',
  270. filenum: '',
  271. log: ''
  272. },
  273. queryInfo: {
  274. pageNum: 1,
  275. pageSize: 10,
  276. },
  277. queryInfos: {
  278. pageNum: 1,
  279. pageSize: 10
  280. },
  281. cellStyle: {
  282. padding: 2 + 'px'
  283. },
  284. rowStyle: {
  285. height: 35 + 'px'
  286. },
  287. tableHeader: [{
  288. label: '抽样机构',
  289. prop: 'bear_name',
  290. width: 180,
  291. }, {
  292. label: '检测机构',
  293. prop: 'check_name'
  294. },
  295. {
  296. label: '抽样地区',
  297. prop: 'address'
  298. }, {
  299. label: '抽样数量',
  300. prop: 'sample_number'
  301. },
  302. {
  303. label: '报告上传单位',
  304. prop: 'report_name'
  305. }, {
  306. label: '报告上传截止时间',
  307. prop: 'uploadtime'
  308. }
  309. ],
  310. checkHeader2: [{
  311. label: '检测项目',
  312. prop: 'test_name',
  313. // fixed: 'left'
  314. }],
  315. // 数据表格数据
  316. tableData: [],
  317. total: 0,
  318. task_id: '',
  319. multipleSelection: null,
  320. delarr: [],
  321. // 模型列表
  322. options: [{
  323. id: '',
  324. name: ''
  325. }],
  326. bindForm: {
  327. test_model_id: '',
  328. endtime_cydsb: '',
  329. is_divide: ''
  330. },
  331. // 弹出检测机构弹窗
  332. getTestListShow: false,
  333. getTestListShow1: false,
  334. getTestListShow2: false,
  335. tableHeaders: [{
  336. label: '单位名称',
  337. prop: 'name',
  338. width: 300
  339. // fixed: 'left'
  340. },
  341. {
  342. label: '机构类型',
  343. prop: 'groupname',
  344. // width: 40
  345. // fixed: 'left'
  346. }, {
  347. label: '所属区域',
  348. prop: 'dtRelyOnUnit',
  349. width: 300
  350. // fixed: 'left'
  351. }
  352. ],
  353. testList: [],
  354. totals: 0,
  355. form: {
  356. bear_unit: '',
  357. report_unit: '',
  358. check_unit: '',
  359. sample_number: '',
  360. address: '',
  361. uploadtime: ''
  362. },
  363. currentRow: null,
  364. currentRow1: null,
  365. currentRow2: null,
  366. // 抽样地区
  367. region: regionData,
  368. selectedOptions: [],
  369. // 机构地域表格数据
  370. underTask: [],
  371. underTasktotal: 0,
  372. // 抽检分离选项
  373. divideOptions: [{
  374. id: 0,
  375. name: '否'
  376. },
  377. {
  378. id: 1,
  379. name: '是'
  380. }
  381. ]
  382. };
  383. },
  384. components: {
  385. taskdetail
  386. },
  387. mounted() {
  388. this.task_id = this.$route.params.id
  389. console.log(this.$route.params.id)
  390. this.getTaskDetail()
  391. this.getmodelList()
  392. this.getUnderTask()
  393. },
  394. created() {
  395. this.task_id = this.$route.params.id
  396. console.log(this.$route.params.id)
  397. this.getTaskDetail()
  398. this.getmodelList()
  399. this.getUnderTask()
  400. },
  401. methods: {
  402. // 跳转到检测
  403. nexto() {
  404. this.activeName = 'third'
  405. },
  406. // 跳转到基本信息
  407. back() {
  408. this.activeName = 'first'
  409. },
  410. // 机构与地域---保存
  411. async save(formName) {
  412. this.form['task_id'] = this.task_id
  413. console.log(this.form)
  414. const {
  415. data: res
  416. } = await this.$http.post("AddUnderTask", this.form);
  417. if (res.code == 0) {
  418. this.$message({
  419. type: 'success',
  420. message: '保存成功!'
  421. });
  422. this.resetForm(formName)
  423. this.getUnderTask()
  424. }
  425. },
  426. //重置
  427. async resetForm(formName) {
  428. this.$refs[formName].resetFields();
  429. this.selectedOptions = '';
  430. },
  431. // 机构与地域---删除
  432. async sampleDetail(id) {
  433. console.log(id)
  434. // 判断任务是否为该创建者创建
  435. // for (let i = 0; i < this.multipleSelection.length; i++) {
  436. // if (rybh != this.multipleSelection[i].releaser) {
  437. // this.$alert('仅创建者可以删除!', {
  438. // confirmButtonText: '确定',
  439. // callback: action => {
  440. // }
  441. // });
  442. // }
  443. // }
  444. var that = this;
  445. const length = this.multipleSelection.length;
  446. // var val = this.selectedData;
  447. for (let i = 0; i < length; i++) {
  448. console.log(this.multipleSelection[i])
  449. this.delarr.push(this.multipleSelection[i].id);
  450. }
  451. const result = await this.$http.post('delUnderTask', {
  452. delarr: that.delarr,
  453. token: token
  454. })
  455. if (result.data.code == 0) {
  456. this.$message({
  457. type: 'success',
  458. message: '删除成功!'
  459. });
  460. that.getUnderTask()
  461. } else {
  462. this.$message({
  463. type: 'error',
  464. message: '删除失败!'
  465. });
  466. }
  467. this.$refs.multipleTable.clearSelection();
  468. },
  469. // 获取机构地域表格
  470. async getUnderTask() {
  471. this.queryInfo['task_id'] = this.task_id
  472. const result = await this.$http.post('getUnderTask', this.queryInfo)
  473. // 判断业务逻辑
  474. if (result.data.code == 0) {
  475. this.underTask = result.data.data.rows
  476. this.underTasktotal = result.data.data.total
  477. }
  478. },
  479. // 提交选中报告上传单位
  480. choseReportUnit() {
  481. let that = this
  482. that.form.report_unit = that.currentRow1.name
  483. that.form.report_id = that.currentRow1.id
  484. that.getTestListShow1 = false
  485. },
  486. // 提交选中检测单位
  487. choseCheckUnit() {
  488. let that = this
  489. that.form.check_unit = that.currentRow2.name
  490. that.form.check_id = that.currentRow2.id
  491. that.getTestListShow2 = false
  492. },
  493. // 提交选中抽样机构
  494. choseTest() {
  495. let that = this
  496. that.form.bear_unit = that.currentRow.name
  497. that.form.bear_id = that.currentRow.id
  498. that.getTestListShow = false
  499. },
  500. // 获取选择抽样地区
  501. handleChange() {
  502. var that = this
  503. var loc = "";
  504. // console.log(this.form.place)
  505. for (let i = 0; i < this.selectedOptions.length; i++) {
  506. loc += CodeToText[this.selectedOptions[i]];
  507. }
  508. // console.log(loc)
  509. that.form.address = loc
  510. },
  511. /** 监听每页显示多少数据的改变 */
  512. handleSizeChanges(newSize) {
  513. this.queryInfos.pageSize = newSize
  514. this.getTestList()
  515. },
  516. /** 监听页码的改变 */
  517. handleCurrentChanges(newPage) {
  518. this.queryInfos.pageNum = newPage
  519. this.getTestList()
  520. },
  521. // 获取检测机构列表
  522. async getTestList() {
  523. const result = await this.$http.post('getTestList', this.queryInfos)
  524. // 判断业务逻辑
  525. if (result.data.code == 0) {
  526. this.testList = result.data.data.rows
  527. this.totals = result.data.data.total
  528. }
  529. },
  530. choseChange(val) {
  531. this.currentRow = val;
  532. },
  533. choseChange1(val) {
  534. this.currentRow1 = val;
  535. },
  536. choseChange2(val) {
  537. this.currentRow2 = val;
  538. },
  539. // 跳转到机构与地域
  540. next() {
  541. this.activeName = 'second'
  542. },
  543. // 获取模型列表
  544. async getmodelList() {
  545. const {
  546. data: res
  547. } = await this.$http.post(
  548. "getModelList", {
  549. 'pageNum': 1,
  550. 'pageSize': 100,
  551. type_id: ""
  552. }
  553. );
  554. this.options = res.data.rows
  555. console.log(this.options)
  556. },
  557. // 绑定模型
  558. async bindModel() {
  559. var that = this
  560. that.bindForm['id'] = that.task_id
  561. console.log(that.bindForm)
  562. const {
  563. data: res
  564. } = await this.$http.post(
  565. "bindModel", this.bindForm
  566. );
  567. if (res.code == 0) {
  568. this.$message({
  569. type: 'success',
  570. message: '绑定模型成功!'
  571. });
  572. console.log(this.res)
  573. that.getTaskDetail()
  574. }
  575. },
  576. //发布
  577. async release() {
  578. var that = this
  579. const {
  580. data: res
  581. } = await this.$http.post("qtRelease", {
  582. task_id: that.task_id
  583. });
  584. this.$router.push({
  585. path: '/jc/routineMonitorqt',
  586. })
  587. },
  588. // 导出总览
  589. exportOverview() {
  590. var that = this
  591. that.dialogVisible2 = true
  592. },
  593. // 导出总览pdf
  594. exportOverviewpdf() {
  595. htmlToPdf.downloadPDF(document.querySelector('#pdf1'), '监测任务总览')
  596. },
  597. handleClick(tab, event) {
  598. console.log(tab, event);
  599. },
  600. // 获取任务详情
  601. async getTaskDetail() {
  602. var that = this
  603. const {
  604. data: res
  605. } = await this.$http.post("getTaskDetail", {
  606. task_id: that.task_id
  607. });
  608. console.log(res.data.product)
  609. if (res.data.product.length > 0) {
  610. if (res.data.product[0].type_id == '1') {
  611. res.data.model_type = '种植业'
  612. } else if (res.data.product[0].type_id == '2') {
  613. res.data.model_type = '畜牧业'
  614. } else if (res.data.product[0].type_id == '3') {
  615. res.data.model_type = '渔业'
  616. } else {
  617. res.data.model_type = '其他'
  618. }
  619. }
  620. this.readForm = res.data
  621. console.log(this.readForm)
  622. this.bindForm.is_divide = res.data.is_divide
  623. this.bindForm.test_model_id = Number(res.data.test_model_id)
  624. if(res.data.test_model_id === null) {
  625. this.bindForm.test_model_id = undefined
  626. }else
  627. {
  628. this.bindForm.test_model_id = Number(res.data.test_model_id)
  629. }
  630. this.bindForm.endtime_cydsb = res.data.endtime_cydsb
  631. console.log(this.divideOptions.id)
  632. },
  633. /** 修复当用户在大于1的分页进行数据搜索没有返回值的问题 */
  634. setPageNum() {
  635. this.queryInfo.pageNum = 1
  636. this.getSampleList()()
  637. },
  638. setSelectedRow() {
  639. // 设置当前页已选项
  640. this.hander = true
  641. this.tableData.forEach(item => {
  642. if (this.list.includes(item[this.uniqueKey])) {
  643. this.$refs.multipleTable.toggleRowSelection(item, true)
  644. }
  645. })
  646. this.hander = false
  647. },
  648. /** 监听每页显示多少数据的改变 */
  649. handleSizeChange(newSize) {
  650. this.queryInfo.pageSize = newSize
  651. this.getSampleList()()
  652. },
  653. /** 监听页码的改变 */
  654. handleCurrentChange(newPage) {
  655. this.queryInfo.pageNum = newPage
  656. this.getSampleList()()
  657. },
  658. // 批量勾选
  659. handleSelectionChange(val) {
  660. this.multipleSelection = val
  661. console.log(this.multipleSelection)
  662. if (this.hander) return false
  663. // this.setSelectRows() // 处理选中的方法
  664. },
  665. }
  666. }
  667. </script>
  668. <style lang="less" scoped>
  669. .el-breadcrumb {
  670. margin-bottom: 20px;
  671. }
  672. // .el-form-item {
  673. // margin-bottom: 0px;
  674. // }
  675. .el-select {
  676. width: 210px;
  677. height: 100%;
  678. }
  679. .select {
  680. display: flex;
  681. flex-direction: row;
  682. margin-left: 10px;
  683. }
  684. .el-form-item {
  685. margin-left: 15px;
  686. margin-bottom: 5px;
  687. }
  688. .labelItem /deep/ .el-form-item__label {
  689. // width: 80px;
  690. text-align: center;
  691. vertical-align: middle;
  692. float: left;
  693. font-size: 14px;
  694. color: #606266;
  695. font-weight: bold;
  696. // line-height: 40px;
  697. padding: 0 20px 0 0;
  698. -webkit-box-sizing: border-box;
  699. box-sizing: border-box;
  700. }
  701. .demonstration {
  702. margin: 20px;
  703. }
  704. // .el-form-item__content {
  705. // width: 200px;
  706. // }
  707. .my-label {
  708. width: 100px;
  709. }
  710. .el-pagination {
  711. margin-top: 25px;
  712. }
  713. .footer {
  714. margin-left: 45%;
  715. margin-top: 20px;
  716. }
  717. .el-table{
  718. margin-top: 20px;
  719. }
  720. </style>