index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  1. <template>
  2. <div class="height_100">
  3. <el-container v-if="showView">
  4. <el-header>
  5. <div id="step1">
  6. <mySearch style="width:500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption">
  7. </mySearch>
  8. </div>
  9. <div style="display:flex;">
  10. <div id="step2" v-if="[2].indexOf(isOperate) == -1" class="margin-right_10">
  11. <span>分组查询:</span>
  12. <el-select v-model="groupingValue" size="small" @change="changeGrouping" clearable style="width: 120px">
  13. <el-option v-for="item in groupingOption" :key="item.value" :label="item.name" :value="item.value">
  14. </el-option>
  15. </el-select>
  16. </div>
  17. <el-button-group id="step3" style="display:flex;justify-content:flex-start" v-if="[2].indexOf(isOperate) == -1">
  18. <el-button v-for="item in viewTypes" :key="item.component" size="small"
  19. :type="viewType == item.component ? 'primary' : ''" @click="onChange(item.component)">{{ item.name
  20. }}</el-button>
  21. </el-button-group>
  22. <div id="step4" class="margin-left_10">
  23. <el-dropdown size="small">
  24. <el-button type="primary" size="small">
  25. 创建报告<i class="el-icon-arrow-down el-icon--right"></i>
  26. </el-button>
  27. <el-dropdown-menu slot="dropdown" style="margin-top:0px"
  28. v-if="dictMessage.REPORT_TYPE && dictMessage.REPORT_TYPE.length > 0">
  29. <!-- 遍历按钮 -->
  30. <el-dropdown-item v-for="item in dictMessage.REPORT_TYPE.filter(item => !['6'].includes(item.value))"
  31. :key="item.label" @click.native="handleAnalyse(item.value)">{{ item.label }}</el-dropdown-item>
  32. </el-dropdown-menu>
  33. </el-dropdown>
  34. <el-button type="primary" class="margin-left_10" size="small" @click="showField">显示栏位管理</el-button>
  35. </div>
  36. </div>
  37. </el-header>
  38. <el-main id="patent-list-container" class="main" v-loading="loading">
  39. <component :is="viewType" v-bind="$attrs" v-on="$listeners" :isOperate="isOperate" :tableData="dataList"
  40. :state="state" :queryParams="queryParams" @option="handleOption" @on-sort="handleSort" :groupBy="groupingValue"
  41. :groupingOption="groupingOption" :commonData="commonData" :searchOption="searchOption" :column="columnList" @params="getParams"></component>
  42. </el-main>
  43. <el-footer class="pagination" v-if="viewType != 'visual'">
  44. <el-pagination background layout="total,sizes, prev, pager, next, jumper" :current-page.sync="queryParams.current"
  45. :page-sizes="pageSize" :page-size.sync="queryParams.size" @current-change="handleCurrentChange" @size-change="handleSizeChange" :total="total">
  46. </el-pagination>
  47. </el-footer>
  48. </el-container>
  49. <CreateReport ref="ReportForm" @getList="isGetList"></CreateReport>
  50. <fields ref="field" type="reportProject" @getFieldList="getFieldList"></fields>
  51. <Field-Drawer ref="FieldDrawer"></Field-Drawer>
  52. <reportFileDrawer ref="reportFileDrawer"></reportFileDrawer>
  53. <cronConclusion ref="cronConclusion" @save="getList"></cronConclusion>
  54. <exportReport ref="exportReport"></exportReport>
  55. <!-- 项目分享 -->
  56. <patentShare ref="patentShare"></patentShare>
  57. </div>
  58. </template>
  59. <script>
  60. import Table from './view/table.vue'
  61. import Card from './view/card.vue'
  62. import visual from './view/visual.vue'
  63. import mergeTable from './view/mergeTable.vue'
  64. import CreateReport from './dialog/addAndEditReport.vue'
  65. import fields from '@/views/components/dialog/fields.vue';
  66. import FieldDrawer from '@/views/components/drawer/Field.vue'
  67. import reportFileDrawer from './drawer/reportFileDrawer.vue'
  68. import cronConclusion from './dialog/cronConclusion.vue'
  69. import exportReport from './dialog/exportReport.vue'
  70. import patentShare from '@/views/components/drawer/Share.vue';
  71. export default {
  72. components: {
  73. Table,
  74. Card,
  75. visual,
  76. CreateReport,
  77. mergeTable,
  78. fields,
  79. FieldDrawer,
  80. reportFileDrawer,
  81. cronConclusion,
  82. exportReport,
  83. patentShare,
  84. },
  85. props: {
  86. isOperate: '',
  87. matterId: {},
  88. scenarioId: {},
  89. eventName: '',
  90. eventId: '',
  91. },
  92. data() {
  93. return {
  94. //视图类型
  95. viewTypes: [
  96. // {
  97. // name: '可视化',
  98. // component: 'visual'
  99. // },
  100. {
  101. name: '列表',
  102. component: 'Table'
  103. },
  104. {
  105. name: '卡片',
  106. component: 'Card'
  107. },
  108. ],
  109. //当前视图类型
  110. viewType: 'Table',
  111. //检索字段
  112. searchFiled: [],
  113. //检索条件
  114. searchOption: {
  115. name: localStorage.searchContent,
  116. reportType: localStorage.reportType ? [localStorage.reportType] : '',
  117. scenarioNames: this.scenarioId,
  118. matterNames: this.matterId,
  119. eventNames: this.eventName
  120. },
  121. //分组的值
  122. groupingValue: '',
  123. //分组
  124. groupingOption: [],
  125. //分页信息
  126. queryParams: {
  127. current: 1,
  128. size: 10,
  129. },
  130. //总数
  131. total: 0,
  132. //分页数量
  133. pageSize: [10, 20],
  134. //排序字段
  135. sort: [
  136. {
  137. "orderBy": "createTime",
  138. "orderType": 1
  139. }
  140. ],
  141. //加载
  142. loading: false,
  143. //报告数据集合
  144. dataList: [],
  145. // 报告分组数据集合
  146. commonData: [],
  147. // 栏位信息数组
  148. columnList: [],
  149. // 子组件新增、编辑报告成功发送的字符串
  150. handleMessage: '',
  151. showView: false,
  152. };
  153. },
  154. watch: {},
  155. computed: {
  156. dictMessage() {
  157. var a = this.$store.state.dictMessage.dictMessage
  158. if (a.REPORT_TYPE) {
  159. a.REPORT_TYPE.forEach(item => {
  160. if (['0', '1', '2'].includes(item.value)) {
  161. item.permission = 'invalid'
  162. } else if (item.value == 3) {
  163. item.permission = 'FTO'
  164. } else if (item.value == 4) {
  165. item.permission = 'tort'
  166. } else if (item.value == 5) {
  167. item.permission = 'avoidDesign'
  168. } else if (item.value == 7) {
  169. item.permission = 'reInvalid'
  170. }
  171. })
  172. }
  173. // if (a.REPORT_TYPE) {
  174. // // 报告类型
  175. // this.searchFiled[1].options = a.REPORT_TYPE.map(item => {
  176. // return {
  177. // value: item.value,
  178. // label: item.label
  179. // }
  180. // })
  181. // // 报告状态
  182. // this.searchFiled[2].options = a.REPORT_STATE.map(item => {
  183. // return {
  184. // value: item.value,
  185. // label: item.label
  186. // }
  187. // })
  188. // }
  189. return a
  190. },
  191. state() {
  192. var a = this.$store.state.dictMessage.dictMessage.REPORT_STATE
  193. var b = {}
  194. if (a) {
  195. a.forEach(item => {
  196. b[item.value] = item.label
  197. });
  198. return b
  199. }
  200. return []
  201. },
  202. scene() {
  203. var a = this.$store.state.dictMessage.scenario.map(item => {
  204. return {
  205. label: item.name,
  206. value: item.id
  207. }
  208. })
  209. var obj = this.searchFiled.find(item => { return item.label == '应用场景' })
  210. if (obj) {
  211. obj.options = a
  212. }
  213. return this.$store.state.dictMessage.scenario
  214. },
  215. matter() {
  216. var a = this.$store.state.dictMessage.matter.map(item => {
  217. return {
  218. label: item.name,
  219. value: item.id
  220. }
  221. })
  222. var obj = this.searchFiled.find(item => { return item.label == '调查类型' })
  223. if (obj) {
  224. obj.options = a
  225. }
  226. return this.$store.state.dictMessage.matter || []
  227. }
  228. },
  229. created() { },
  230. async mounted() {
  231. // 获取table栏位
  232. this.columnList = await this.$commonJS.getCustomField('reportProject')
  233. // 获取搜索/分组
  234. await this.getColumn()
  235. //获取报告清单
  236. this.getList()
  237. this.showViews()
  238. },
  239. methods: {
  240. //显示视图?
  241. showViews() {
  242. this.showView = false
  243. this.$nextTick(() => {
  244. this.showView = true
  245. })
  246. },
  247. // 显示栏位管理组件返回数据
  248. getFieldList(val) {
  249. this.columnList = []
  250. this.$nextTick(()=>{
  251. this.columnList = val
  252. })
  253. },
  254. // 显示栏位管理
  255. showField() {
  256. this.$refs.field.open(this.columnList)
  257. },
  258. //获取table栏位及分组字段、检索字段
  259. async getColumn() {
  260. let params = ['reportProject']
  261. await this.$api.getParamsCommon(params).then(res => {
  262. if (res.code == 200) {
  263. let conditionDTOList = JSON.parse(JSON.stringify(res.data[0].conditionDTOList))
  264. // 分组字段
  265. this.groupingOption = this.$commonJS.getField(conditionDTOList, (u) => u.ifGroup == true, {
  266. name: 'name',
  267. value: 'value',
  268. })
  269. // 搜索字段
  270. this.searchFiled = this.$commonJS.getField(conditionDTOList, (u) => u.ifSearch == true, {
  271. label: 'name',
  272. value: 'value',
  273. type: 'type',
  274. })
  275. //先获取报告类型,报告状态,相关事件,再为报告类型,报告状态,相关事件添加选项
  276. let arr = ['reportType', 'status', 'cronNames','scenarioNames','matterNames']
  277. arr.forEach(item => {
  278. let obj = this.searchFiled.find(item2 => {
  279. return item2.value == item
  280. })
  281. if (obj) {
  282. this.handleSearchArray(obj)
  283. }
  284. })
  285. //为应用场景添加选项
  286. // var obj = this.searchFiled.find(item => { return item.value == 'scenarioNames' })
  287. // if (obj) {
  288. // obj.options = this.scene.map(item => {
  289. // return {
  290. // label: item.name,
  291. // value: item.id
  292. // }
  293. // })
  294. // }
  295. // var obj = this.searchFiled.find(item => { return item.value == 'matterNames' })
  296. // if (obj) {
  297. // obj.options = this.matter.map(item => {
  298. // return {
  299. // label: item.name,
  300. // value: item.id
  301. // }
  302. // })
  303. // }
  304. }
  305. })
  306. this.showViews()
  307. },
  308. // 处理检索字段为array类型的问题
  309. handleSearchArray(obj) {
  310. switch (obj.value) {
  311. case 'reportType':
  312. if (this.dictMessage.REPORT_TYPE && this.dictMessage.REPORT_TYPE.length > 0) {
  313. let dict = this.dictMessage.REPORT_TYPE.filter(item => !['6'].includes(item.value))
  314. obj.options = dict.map(item => {
  315. return {
  316. label: item.label,
  317. value: item.value,
  318. }
  319. })
  320. }
  321. break;
  322. case 'status':
  323. if (this.dictMessage.REPORT_STATE && this.dictMessage.REPORT_STATE.length > 0) {
  324. let dict = this.dictMessage.REPORT_STATE
  325. obj.options = dict.map(item => {
  326. return {
  327. label: item.label,
  328. value: item.value,
  329. }
  330. })
  331. }
  332. break;
  333. case 'cronNames':
  334. this.$api.queryCrons().then(res => {
  335. if (res.code == 200) {
  336. obj.options = res.data.data
  337. }
  338. })
  339. break;
  340. case 'scenarioNames':
  341. obj.options = this.scene.map(item => {
  342. return {
  343. label: item.name,
  344. value: item.id
  345. }
  346. })
  347. break;
  348. case 'matterNames':
  349. obj.options = this.matter.map(item => {
  350. return {
  351. label: item.name,
  352. value: item.id
  353. }
  354. })
  355. break;
  356. default:
  357. break;
  358. }
  359. },
  360. //接收检索条件
  361. search(val) {
  362. let params = {}
  363. val.forEach(item => {
  364. if (item.type == 3) {
  365. params[item.value] = item.searchValue.map(itemValue => {
  366. return itemValue.value
  367. })
  368. } else {
  369. params[item.value] = item.searchValue.label
  370. }
  371. })
  372. // 返回字符串
  373. this.searchOption = this.$commonJS.ArrayToArray(val)
  374. // 调用查询接口
  375. this.queryParams.current = 1
  376. this.getList()
  377. },
  378. //获取报告列表
  379. getList() {
  380. let params = {
  381. ...this.queryParams,//分页信息
  382. searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
  383. orderDTOList: this.sort,//排序信息
  384. }
  385. this.loading = true
  386. this.$api.queryReportProject(params).then(res => {
  387. if (res.code == 200) {
  388. this.dataList = res.data.data
  389. this.total = res.data.total
  390. this.loading = false
  391. }
  392. }).catch(error => {
  393. this.dataList = []
  394. this.total = 0
  395. this.loading = false
  396. this.$message.error(error.message)
  397. })
  398. },
  399. // 获取分组数据
  400. getGrouping() {
  401. let params = {
  402. ...this.queryParams,//分页信息
  403. searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
  404. orderDTOList: [
  405. {
  406. orderBy: this.groupingValue,
  407. orderType: this.sort[0].orderType
  408. }
  409. ],//排序
  410. groupBy: this.groupingValue,//分组信息
  411. }
  412. this.$api.groupReportProject(params).then(res => {
  413. if (res.code == 200) {
  414. this.commonData = res.data.data.values
  415. this.total = res.total
  416. }
  417. }).catch(error => {
  418. this.commonData = []
  419. this.total = 0
  420. this.$message.error(error.message)
  421. })
  422. },
  423. //排序
  424. handleSort({ column, prop, order }) {
  425. //如需要多个字段排序,则不需要清空
  426. var params = {
  427. sort: this.sort,
  428. column,
  429. prop,
  430. order,
  431. }
  432. this.sort = this.$commonJS.getSortData(params)
  433. this.queryParams.current = 1
  434. this.isGrouping()
  435. },
  436. //分页
  437. handleCurrentChange(val) {
  438. this.queryParams.current = val;
  439. this.isGrouping()
  440. },
  441. //切换页大小
  442. handleSizeChange(val) {
  443. this.queryParams.size = val
  444. this.isGrouping()
  445. // this.getList()
  446. },
  447. //切换视图
  448. onChange(type) {
  449. this.viewType = type
  450. if (type == 'visual') {
  451. this.$nextTick(() => {
  452. this.reportVisual()
  453. })
  454. return false
  455. }
  456. this.queryParams.size = this.viewType === 'Table' ? 10 : 12
  457. this.groupingValue = ''
  458. this.queryParams.current = 1
  459. this.getList()
  460. },
  461. //展示报告可视化
  462. reportVisual() {
  463. this.$api.reportVisual(this.queryParams).then(response => {
  464. if (response.code == 200) {
  465. // this.$refs.reportVisual.open(response.data)
  466. }
  467. })
  468. },
  469. //切换分组值
  470. changeGrouping(val) {
  471. if (val != '') {
  472. this.viewType = 'mergeTable'
  473. } else {
  474. this.viewType = 'Table'
  475. }
  476. this.queryParams.current = 1
  477. this.groupingValue = val
  478. this.isGrouping()
  479. },
  480. // 区分是否为分组
  481. isGrouping() {
  482. if (this.groupingValue != '') {//分组
  483. this.getGrouping()
  484. } else {//不分组
  485. this.getList()
  486. }
  487. },
  488. //打开创建报告弹窗
  489. handleAnalyse(id) {
  490. var permission = {
  491. 1:'analysisAndOpinion',
  492. 2:'analysisAndOpinion',
  493. 3:'FTO',
  494. 4:'tort',
  495. 5:'avoidDesign',
  496. 7:'officiallyInvalid'
  497. }
  498. if(!this.$permission.FunPermissions('xiaoshi/report/'+permission[id])){
  499. this.$showPermissionDialog()
  500. return false
  501. }
  502. var form = {
  503. reportType: id,
  504. eventId: this.eventId,
  505. eventName: this.eventName,
  506. matterId: this.matterId || [],
  507. scenarioId: this.scenarioId || [],
  508. }
  509. this.$refs.ReportForm.open(form)
  510. },
  511. //操作列
  512. async handleOption({ option, row, isLast }) {
  513. if(!(await this.$permission.projectPermission(row.id))){
  514. this.$showPermissionDialog()
  515. return false
  516. }
  517. this.$s.setSession('params', row)
  518. switch (option) {
  519. case '0'://分享
  520. this.share(row)
  521. break
  522. case '1'://导出报告
  523. this.exportReport(row)
  524. break
  525. case '2'://报告文档
  526. this.handleFile(row)
  527. break
  528. case '5'://拆分特征
  529. // this.handleDetails(row)
  530. break
  531. case '3'://自定义字段
  532. this.handleField(row)
  533. break
  534. case '4'://任务分配
  535. this.handleTask(row)
  536. break
  537. case '6'://导入专利
  538. this.handleImportPatent(row)
  539. break
  540. case '7'://删除
  541. this.handleDelete(row, isLast)
  542. break;
  543. case '8'://侵权分析技术特征对比
  544. // this.$s.setSession('reportMessage1', row)
  545. this.toTortIndex(row)
  546. break
  547. case '9'://回避设计
  548. this.handleDetails(row, '回避设计')
  549. break;
  550. case '10'://对比文件
  551. this.patentList(row)
  552. break
  553. case '11'://完成报告
  554. this.completeReport(row)
  555. break
  556. case '12'://追踪报告
  557. this.trackReport(row)
  558. break
  559. case '13'://添加无效理由和证据
  560. this.toInvalidIndex(row)
  561. break;
  562. case '14'://导入无效证据
  563. this.toInvalidEvidence(row)
  564. break;
  565. case '15'://录入产品信息
  566. this.toInformationEntry(row)
  567. break;
  568. case '16'://检索记录
  569. this.searchRecords(row)
  570. break;
  571. case '17'://导入导出历史
  572. this.importAndExportHistory(row)
  573. break;
  574. case 'e'://编辑
  575. this.handleEdit(row)
  576. break
  577. }
  578. },
  579. //导入导出历史
  580. importAndExportHistory(row){
  581. this.$router.push({
  582. path: "/taskList",
  583. query:{
  584. importToId:row.id
  585. }
  586. });
  587. },
  588. //检索记录
  589. searchRecords(row){
  590. this.$router.push({
  591. path:'/searchRecord',
  592. query:{
  593. projectId:row.id,
  594. }
  595. })
  596. },
  597. //分享
  598. share(row){
  599. this.$refs.patentShare.open(row.id)
  600. },
  601. //导出报告
  602. exportReport(row){
  603. this.$refs.exportReport.open(row)
  604. },
  605. //追踪报告
  606. trackReport(row){
  607. var form = JSON.parse(JSON.stringify(row))
  608. this.$set(form,'associateReportName',row.volumeNumber?row.volumeNumber:row.name)
  609. this.$set(form,'associateReportId',row.id)
  610. this.$set(form,'cronIds',[])
  611. if(isNaN((row.name).substring((row.name).length-1))){
  612. form.name = row.name + '-V1'
  613. }else{
  614. var a= Number((row.name).substring((row.name).length-1)) + 1
  615. form.name = (row.name).substring(0,(row.name).length-1) + a
  616. }
  617. form.status = 1
  618. form.id = null
  619. form.track = true
  620. this.$refs.ReportForm.open(form)
  621. },
  622. //完成报告
  623. completeReport(row){
  624. this.$refs.cronConclusion.open(row)
  625. },
  626. //无效证据
  627. toInvalidEvidence(row){
  628. this.$router.push({
  629. path:'/evidence',
  630. query:{
  631. projectId:row.id,
  632. reportType:row.reportType,
  633. signPatentNo:row.signPatentNo,
  634. patentNo:row.signPatentNo
  635. }
  636. })
  637. },
  638. // 报告文档
  639. handleFile(row) {
  640. this.$refs.reportFileDrawer.open(row.id)
  641. },
  642. //自定义栏位管理
  643. handleField(row) {
  644. this.$refs.FieldDrawer.open(row.id)
  645. },
  646. //跳转到专利列表页面
  647. patentList(row){
  648. this.$router.push(
  649. {
  650. path:'/reportPatentList',
  651. query:{
  652. projectId:row.id
  653. }
  654. }
  655. )
  656. },
  657. // 跳转录入产品信息页面
  658. toInformationEntry(row) {
  659. var routerReport = this.$router.resolve({
  660. path: "/informationEntry",
  661. query: {
  662. patentNo: row.signPatentNo,
  663. projectId: row.id,
  664. reportType: row.reportType
  665. }
  666. })
  667. window.open(routerReport.href, '_blank');
  668. },
  669. // 跳转专利与产品关联比对
  670. toTortIndex(row) {
  671. var routerReport = this.$router.resolve(
  672. {
  673. path: '/patentDetails/' + row.signPatentNo,
  674. query: {
  675. projectId: row.id,
  676. reportType: row.reportType,
  677. taskType:'3'
  678. }
  679. }
  680. )
  681. // var routerReport = this.$router.resolve({
  682. // path: "/tortIndex",
  683. // query: {
  684. // patentNo: row.signPatentNo,
  685. // projectId: row.id,
  686. // reportType: row.reportType
  687. // }
  688. // })
  689. window.open(routerReport.href, '_blank');
  690. },
  691. // 跳转回避设计或拆分特征
  692. handleDetails(row, type) {
  693. if (type == '回避设计') {
  694. var router = this.$router.resolve({
  695. path: "/avoid",
  696. query: {
  697. patentNo: row.signPatentNo,
  698. reportId: row.id,
  699. }
  700. })
  701. window.open(router.href, '_blank');
  702. }
  703. },
  704. // 删除
  705. handleDelete(row, isLast) {
  706. this.handleDeletes([row.id], isLast)
  707. },
  708. // 批量删除报告
  709. handleDeletes(ids, isLast) {
  710. this.$confirm('此操作将永久删除该报告, 是否继续?', '提示', {
  711. confirmButtonText: '确定',
  712. cancelButtonText: '取消',
  713. type: 'warning'
  714. }).then(() => {
  715. this.$api.deleteReportProject(ids).then(res => {
  716. if (res.code == 200) {
  717. if (isLast) {
  718. this.isGrouping()
  719. } else {
  720. this.getList()
  721. }
  722. this.handleMessage = '删除成功'
  723. this.clearMessage()
  724. this.$message.success('删除报告成功')
  725. }
  726. }).catch(err => {
  727. this.$message.error(err.message)
  728. })
  729. }).catch(() => {
  730. this.$message.info("已取消删除")
  731. });
  732. },
  733. //编辑报告
  734. handleEdit(row) {
  735. this.$refs.ReportForm.open(row)
  736. },
  737. //接收可视化的参数
  738. getParams(params) {
  739. if (params.conclusionType == '-1') {
  740. this.searchOption.statuses = ['0', '1', '2', '4', '5']
  741. this.searchOption.types = [params.type]
  742. } else {
  743. this.searchOption.cronIds = [params.conclusionType]
  744. }
  745. var a = JSON.parse(JSON.stringify(this.searchOption))
  746. this.searchOption = a
  747. this.viewType = 'Table'
  748. this.queryParams.current = 1
  749. this.getList()
  750. },
  751. //创建报告子组件返回值
  752. isGetList(val) {
  753. this.handleMessage = val
  754. this.queryParams.current = 1
  755. this.isGrouping()
  756. this.clearMessage()
  757. },
  758. //清空信息
  759. clearMessage() {
  760. this.$emit('submit', true)
  761. this.$nextTick(() => {
  762. this.handleMessage = ''
  763. })
  764. },
  765. },
  766. };
  767. </script>
  768. <style lang="scss" scoped></style>