setTask.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  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="readForm.test_model_id" width="70px" class="labelItem" required>
  27. <el-select v-model="readForm.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="is_divide" width="70px" class="labelItem">
  33. <el-select v-model="readForm.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.releaser_group" class="labelItem" required>
  45. <div>{{readForm.releaser_group}}</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="readForm.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" :test_model_id="readForm.test_model_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(task_id)">导出总览</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. modelInfo:{
  266. creattime:'',
  267. id:'',
  268. name:'',
  269. type_id:'',
  270. updatetime:'',
  271. user_id:'',
  272. },
  273. releaserInfo:{
  274. groupname: '',
  275. rymc:'',
  276. },
  277. taskInfo:{
  278. base_file_url: null,
  279. batch: '',
  280. creater: null,
  281. createtime: null,
  282. endtime: null,
  283. endtime_cydsb: null,
  284. file_name: null,
  285. file_url: null,
  286. filenum: null,
  287. id: null,
  288. industry: null,
  289. is_divide: null,
  290. ispublic:null,
  291. level:null,
  292. log: null,
  293. main_unit: null,
  294. releaser:null,
  295. starttime: null,
  296. status: null,
  297. task_class: null,
  298. task_name:null,
  299. test_model_id:null,
  300. year: null,
  301. },
  302. },
  303. queryInfo: {
  304. pageNum: 1,
  305. pageSize: 10,
  306. },
  307. queryInfos: {
  308. pageNum: 1,
  309. pageSize: 10
  310. },
  311. cellStyle: {
  312. padding: 2 + 'px'
  313. },
  314. rowStyle: {
  315. height: 35 + 'px'
  316. },
  317. tableHeader: [{
  318. label: '抽样机构',
  319. prop: 'bear_name',
  320. width: 180,
  321. }, {
  322. label: '检测机构',
  323. prop: 'check_name'
  324. },
  325. {
  326. label: '抽样地区',
  327. prop: 'address'
  328. }, {
  329. label: '抽样数量',
  330. prop: 'sample_number'
  331. },
  332. {
  333. label: '报告上传单位',
  334. prop: 'report_name'
  335. }, {
  336. label: '报告上传截止时间',
  337. prop: 'uploadtime'
  338. }
  339. ],
  340. checkHeader2: [{
  341. label: '检测项目',
  342. prop: 'test_name',
  343. // fixed: 'left'
  344. }],
  345. // 数据表格数据
  346. tableData: [],
  347. total: 0,
  348. task_id: '',
  349. multipleSelection: null,
  350. delarr: [],
  351. // 模型列表
  352. options: [{
  353. id: null,
  354. name: null
  355. }],
  356. bindForm: {
  357. test_model_id: null,
  358. endtime_cydsb: '',
  359. is_divide: ''
  360. },
  361. // 弹出检测机构弹窗
  362. getTestListShow: false,
  363. getTestListShow1: false,
  364. getTestListShow2: false,
  365. tableHeaders: [{
  366. label: '单位名称',
  367. prop: 'name',
  368. width: 300
  369. // fixed: 'left'
  370. },
  371. {
  372. label: '机构类型',
  373. prop: 'groupname',
  374. // width: 40
  375. // fixed: 'left'
  376. }, {
  377. label: '所属区域',
  378. prop: 'dtRelyOnUnit',
  379. width: 300
  380. // fixed: 'left'
  381. }
  382. ],
  383. testList: [],
  384. totals: 0,
  385. form: {
  386. bear_unit: '',
  387. report_unit: '',
  388. check_unit: '',
  389. sample_number: '',
  390. address: '',
  391. uploadtime: ''
  392. },
  393. currentRow: null,
  394. currentRow1: null,
  395. currentRow2: null,
  396. // 抽样地区
  397. region: regionData,
  398. selectedOptions: [],
  399. // 机构地域表格数据
  400. underTask: [],
  401. underTasktotal: 0,
  402. // 抽检分离选项
  403. divideOptions: [{
  404. id: 0,
  405. name: '否'
  406. },
  407. {
  408. id: 1,
  409. name: '是'
  410. }
  411. ]
  412. };
  413. },
  414. components: {
  415. taskdetail
  416. },
  417. mounted() {
  418. this.task_id = this.$route.params.id
  419. console.log(this.$route.params.id)
  420. this.getTaskBaseInfo()
  421. this.getmodelList()
  422. this.getUndertakeList()
  423. // this.getModeldetail()
  424. },
  425. created() {
  426. this.task_id = this.$route.params.id
  427. console.log(this.$route.params.id)
  428. this.getTaskBaseInfo()
  429. this.getmodelList()
  430. this.getUndertakeList()
  431. // this.getModeldetail()
  432. },
  433. methods: {
  434. // 跳转到检测
  435. nexto() {
  436. this.activeName = 'third'
  437. },
  438. // 跳转到基本信息
  439. back() {
  440. this.activeName = 'first'
  441. },
  442. // 机构与地域---保存
  443. async save(formName) {
  444. this.form['task_id'] = this.task_id
  445. console.log(this.form)
  446. const {
  447. data: res
  448. } = await this.$http.post("AddUnderTask", this.form);
  449. if (res.code == 0) {
  450. this.$message({
  451. type: 'success',
  452. message: '保存成功!'
  453. });
  454. this.resetForm(formName)
  455. this.getUndertakeList()
  456. }
  457. },
  458. //重置
  459. async resetForm(formName) {
  460. this.$refs[formName].resetFields();
  461. this.selectedOptions = '';
  462. },
  463. // 机构与地域---删除
  464. async sampleDetail(id) {
  465. console.log(id)
  466. // 判断任务是否为该创建者创建
  467. // for (let i = 0; i < this.multipleSelection.length; i++) {
  468. // if (rybh != this.multipleSelection[i].releaser) {
  469. // this.$alert('仅创建者可以删除!', {
  470. // confirmButtonText: '确定',
  471. // callback: action => {
  472. // }
  473. // });
  474. // }
  475. // }
  476. var that = this;
  477. const length = this.multipleSelection.length;
  478. // var val = this.selectedData;
  479. for (let i = 0; i < length; i++) {
  480. console.log(this.multipleSelection[i])
  481. this.delarr.push(this.multipleSelection[i].id);
  482. }
  483. const result = await this.$http.post('delUnderTask', {
  484. delarr: that.delarr
  485. // token: token
  486. })
  487. if (result.data.code == 0) {
  488. this.$message({
  489. type: 'success',
  490. message: '删除成功!'
  491. });
  492. that.getUndertakeList()
  493. } else {
  494. this.$message({
  495. type: 'error',
  496. message: '删除失败!'
  497. });
  498. }
  499. this.$refs.multipleTable.clearSelection();
  500. console.log(that.delarr)
  501. this.delarr = [];
  502. },
  503. // 获取机构地域表格
  504. async getUndertakeList() {
  505. this.queryInfo['task_id'] = this.task_id
  506. const result = await this.$http.post('getUndertakeList', this.queryInfo)
  507. // 判断业务逻辑
  508. console.log(result.data.data.rows)
  509. if (result.data.code == 0) {
  510. this.underTask = result.data.data.rows
  511. this.underTasktotal = result.data.data.total
  512. }
  513. },
  514. // 提交选中报告上传单位
  515. choseReportUnit() {
  516. let that = this
  517. that.form.report_unit = that.currentRow1.name
  518. that.form.report_id = that.currentRow1.id
  519. that.getTestListShow1 = false
  520. },
  521. // 提交选中检测单位
  522. choseCheckUnit() {
  523. let that = this
  524. that.form.check_unit = that.currentRow2.name
  525. that.form.check_id = that.currentRow2.id
  526. that.getTestListShow2 = false
  527. },
  528. // 提交选中抽样机构
  529. choseTest() {
  530. let that = this
  531. that.form.bear_unit = that.currentRow.name
  532. that.form.bear_id = that.currentRow.id
  533. that.getTestListShow = false
  534. },
  535. // 获取选择抽样地区
  536. handleChange() {
  537. var that = this
  538. var loc = "";
  539. // console.log(this.form.place)
  540. for (let i = 0; i < this.selectedOptions.length; i++) {
  541. loc += CodeToText[this.selectedOptions[i]];
  542. }
  543. // console.log(loc)
  544. that.form.address = loc
  545. },
  546. /** 监听每页显示多少数据的改变 */
  547. handleSizeChanges(newSize) {
  548. this.queryInfos.pageSize = newSize
  549. this.getTestList()
  550. },
  551. /** 监听页码的改变 */
  552. handleCurrentChanges(newPage) {
  553. this.queryInfos.pageNum = newPage
  554. this.getTestList()
  555. },
  556. // 获取检测机构列表
  557. async getTestList() {
  558. const result = await this.$http.post('getTestList', this.queryInfos)
  559. // 判断业务逻辑
  560. if (result.data.code == 0) {
  561. this.testList = result.data.data.rows
  562. this.totals = result.data.data.total
  563. }
  564. },
  565. choseChange(val) {
  566. this.currentRow = val;
  567. },
  568. choseChange1(val) {
  569. this.currentRow1 = val;
  570. },
  571. choseChange2(val) {
  572. this.currentRow2 = val;
  573. console.log(this.currentRow2)
  574. },
  575. // 跳转到机构与地域
  576. next() {
  577. this.activeName = 'second'
  578. },
  579. // 获取模型列表
  580. async getmodelList() {
  581. const {
  582. data: res
  583. } = await this.$http.post(
  584. "getModelList", {
  585. 'pageNum': 1,
  586. 'pageSize': 100,
  587. type_id: ""
  588. }
  589. );
  590. this.options = res.data.rows
  591. },
  592. // 绑定模型
  593. async bindModel() {
  594. var that = this
  595. that.bindForm['id'] = that.task_id
  596. that.bindForm['test_model_id'] = that.readForm.test_model_id
  597. that.bindForm['is_divide'] = that.readForm.is_divide
  598. that.bindForm['endtime_cydsb'] = that.readForm.endtime_cydsb
  599. console.log(that.bindForm)
  600. const {
  601. data: res
  602. } = await this.$http.post(
  603. "bindModel", this.bindForm
  604. );
  605. if (res.code == 0) {
  606. this.$message({
  607. type: 'success',
  608. message: '绑定模型成功!'
  609. });
  610. console.log(this.res)
  611. that.getTaskBaseInfo()
  612. }else{
  613. console.log(this.res.message)
  614. this.$message({
  615. type: 'error',
  616. message: res.message
  617. });
  618. }
  619. },
  620. //发布
  621. async release() {
  622. var that = this
  623. const {
  624. data: res
  625. } = await this.$http.post("qtRelease", {
  626. task_id: that.task_id
  627. });
  628. this.$router.push({
  629. path: '/jc/routineMonitorqt',
  630. })
  631. },
  632. // 导出总览
  633. exportOverview(id) {
  634. console.log(this.id)
  635. var that = this
  636. that.dialogVisible2 = true
  637. },
  638. // 导出总览pdf
  639. exportOverviewpdf() {
  640. htmlToPdf.downloadPDF(document.querySelector('#pdf1'), '监测任务总览')
  641. },
  642. handleClick(tab, event) {
  643. console.log(tab, event);
  644. },
  645. // 获取任务详情
  646. async getTaskBaseInfo() {
  647. var that = this
  648. const {
  649. data: res
  650. } = await this.$http.post("getTaskBaseInfo", {
  651. task_id: that.task_id
  652. });
  653. console.log(res.data)
  654. if (res.data.industry == '1') {
  655. res.data.model_type = '种植业'
  656. } else if (res.data.industry == '2') {
  657. res.data.model_type = '畜牧业'
  658. } else if (res.data.industry == '3') {
  659. res.data.model_type = '渔业'
  660. } else {
  661. res.data.model_type = '其他'
  662. }
  663. this.readForm = res.data
  664. console.log(this.readForm)
  665. console.log(this.readForm.releaser)
  666. // this.underTask = res.data.unitTaskList.rows
  667. // this.underTasktotal = res.data.unitTaskList.total
  668. // this.bindForm.is_divide = res.data.taskInfo.is_divide
  669. // this.bindForm.endtime_cydsb = res.data.taskInfo.endtime_cydsb
  670. // this.bindForm.test_model_id = Number(res.data.taskInfo.test_model_id)
  671. if(res.data.test_model_id === null) {
  672. this.readForm.test_model_id = undefined
  673. }else
  674. {
  675. this.readForm.test_model_id = Number(res.data.test_model_id)
  676. }
  677. console.log(this.readForm.test_model_id)
  678. // console.log(this.divideOptions.id)
  679. },
  680. //获取模型详情
  681. // async getModeldetail(){
  682. // console.log('11')
  683. // console.log(this.readForm.test_model_id)
  684. // },
  685. /** 修复当用户在大于1的分页进行数据搜索没有返回值的问题 */
  686. setPageNum() {
  687. this.queryInfo.pageNum = 1
  688. this.getSampleList()
  689. },
  690. setSelectedRow() {
  691. // 设置当前页已选项
  692. this.hander = true
  693. this.tableData.forEach(item => {
  694. if (this.list.includes(item[this.uniqueKey])) {
  695. this.$refs.multipleTable.toggleRowSelection(item, true)
  696. }
  697. })
  698. this.hander = false
  699. },
  700. /** 监听每页显示多少数据的改变 */
  701. handleSizeChange(newSize) {
  702. this.queryInfo.pageSize = newSize
  703. this.getTaskBaseInfo()
  704. },
  705. /** 监听页码的改变 */
  706. handleCurrentChange(newPage) {
  707. this.queryInfo.pageNum = newPage
  708. this.getTaskBaseInfo()
  709. },
  710. // 批量勾选
  711. handleSelectionChange(val) {
  712. this.multipleSelection = val
  713. console.log(this.multipleSelection)
  714. if (this.hander) return false
  715. // this.setSelectRows() // 处理选中的方法
  716. },
  717. }
  718. }
  719. </script>
  720. <style lang="less" scoped>
  721. .el-breadcrumb {
  722. margin-bottom: 20px;
  723. }
  724. // .el-form-item {
  725. // margin-bottom: 0px;
  726. // }
  727. .el-select {
  728. width: 210px;
  729. height: 100%;
  730. }
  731. .select {
  732. display: flex;
  733. flex-direction: row;
  734. margin-left: 10px;
  735. }
  736. .el-form-item {
  737. margin-left: 15px;
  738. margin-bottom: 5px;
  739. }
  740. .labelItem /deep/ .el-form-item__label {
  741. // width: 80px;
  742. text-align: center;
  743. vertical-align: middle;
  744. float: left;
  745. font-size: 14px;
  746. color: #606266;
  747. font-weight: bold;
  748. // line-height: 40px;
  749. padding: 0 20px 0 0;
  750. -webkit-box-sizing: border-box;
  751. box-sizing: border-box;
  752. }
  753. .demonstration {
  754. margin: 20px;
  755. }
  756. // .el-form-item__content {
  757. // width: 200px;
  758. // }
  759. .my-label {
  760. width: 100px;
  761. }
  762. .el-pagination {
  763. margin-top: 25px;
  764. }
  765. .footer {
  766. margin-left: 45%;
  767. margin-top: 20px;
  768. }
  769. .el-table{
  770. margin-top: 20px;
  771. }
  772. </style>