You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

977 lines
31 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="mod-config">
  3. <div>
  4. <span @click="favoriteFunction()">
  5. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
  6. </span>
  7. </div>
  8. <!-- 条件查询 -->
  9. <el-form :inline="true" label-position="top">
  10. <el-form-item :label="'设备编码:'">
  11. <el-input v-model="searchData.objectId" style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item :label="'故障编码:'">
  14. <el-input v-model="searchData.defectId" style="width: 120px"></el-input>
  15. </el-form-item>
  16. <el-form-item :label="'故障原因:'">
  17. <el-input v-model="searchData.defectReason" style="width: 120px"></el-input>
  18. </el-form-item>
  19. <el-form-item :label="'故障描述:'">
  20. <el-input v-model="searchData.defectDescribe" style="width: 120px"></el-input>
  21. </el-form-item>
  22. <el-form-item :label="'类型'">
  23. <el-select v-model="searchData.fileType" style="width: 120px">
  24. <el-option label="全部" value=""></el-option>
  25. <el-option label="点检" value="点检"></el-option>
  26. <el-option label="保养" value="保养"></el-option>
  27. <el-option label="维修" value="维修"></el-option>
  28. </el-select>
  29. </el-form-item>
  30. <el-form-item :label="'上传日期:'">
  31. <el-date-picker style="width: 150px" v-model="searchData.startDate" type="datetime"
  32. value-format='yyyy-MM-dd HH:mm' format='yyyy-MM-dd HH:mm' placeholder="开始日期">
  33. </el-date-picker>
  34. -
  35. <el-date-picker style="width: 150px" v-model="searchData.endDate" type="datetime"
  36. value-format='yyyy-MM-dd HH:mm' format='yyyy-MM-dd HH:mm' placeholder="结束日期">
  37. </el-date-picker>
  38. </el-form-item>
  39. <el-form-item :label="' '">
  40. <el-button type="primary" @click="getDataList()">查询</el-button>
  41. <el-button type="primary" @click="addModal()">新增</el-button>
  42. <el-button type="primary" @click="deleteSome()">删除</el-button>
  43. <download-excel
  44. :fields="fields()"
  45. :data="exportData"
  46. type="xls"
  47. :name="exportName"
  48. :header="exportHeader"
  49. :footer="exportFooter"
  50. :fetch="createExportData"
  51. :before-generate="startDownload"
  52. :before-finish="finishDownload"
  53. worksheet="导出信息"
  54. class="el-button el-button--primary el-button--medium">
  55. {{ "导出" }}
  56. </download-excel>
  57. </el-form-item>
  58. </el-form>
  59. <!-- 展示列表 -->
  60. <el-table
  61. :height="height"
  62. :data="dataList"
  63. ref="eamObjectTable"
  64. highlight-current-row
  65. @row-click="setCurrentRow"
  66. @current-change="changeCurrentRow"
  67. @selection-change="selectionChangeHandle"
  68. border
  69. v-loading="dataListLoading"
  70. style="width: 100%;">
  71. <el-table-column
  72. type="selection"
  73. header-align="center"
  74. align="center"
  75. :selectable="selectFlag"
  76. width="50">
  77. </el-table-column>
  78. <el-table-column
  79. v-for="(item,index) in columnList" :key="index"
  80. :sortable="item.columnSortable"
  81. :prop="item.columnProp"
  82. :header-align="item.headerAlign"
  83. :show-overflow-tooltip="item.showOverflowTooltip"
  84. :align="item.align"
  85. :fixed="item.fixed==''?false:item.fixed"
  86. :min-width="item.columnWidth"
  87. :label="item.columnLabel">
  88. <template slot-scope="scope">
  89. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  90. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column
  94. fixed="right"
  95. header-align="center"
  96. align="center"
  97. width="100"
  98. label="操作">
  99. <template slot-scope="scope">
  100. <a type="text" size="small" @click="updateModal(scope.row)">编辑</a>
  101. <a type="text" size="small" @click="deleteModal(scope.row)">删除</a>
  102. </template>
  103. </el-table-column>
  104. </el-table>
  105. <!-- 分页栏 -->
  106. <el-pagination
  107. @size-change="sizeChangeHandle"
  108. @current-change="currentChangeHandle"
  109. :current-page="pageIndex"
  110. :page-sizes="[20, 50, 100, 1000]"
  111. :page-size="pageSize"
  112. :total="totalPage"
  113. layout="total, sizes, prev, pager, next, jumper">
  114. </el-pagination>
  115. <!-- 一级新增/编辑 -->
  116. <el-dialog title="设备知识库" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="300px">
  117. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  118. <el-form-item >
  119. <span slot="label" style="" @click="getBaseList(200)"><a herf="#">设备编码</a></span>
  120. <el-input v-model="modalData.objectId" style="width: 120px"></el-input>
  121. </el-form-item>
  122. <el-form-item label="设备名称:">
  123. <el-input v-model="modalData.objectName" disabled style="width: 120px"></el-input>
  124. </el-form-item>
  125. </el-form>
  126. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  127. <el-form-item label="故障编码">
  128. <el-select v-model="modalData.defectId" @change="defectIdChange()" placeholder="请选择" style="width: 120px">
  129. <el-option
  130. v-for = "i in defectList"
  131. :key = "i.defectId"
  132. :label = "i.defectId"
  133. :value = "i.defectId">
  134. </el-option>
  135. </el-select>
  136. </el-form-item>
  137. <el-form-item label="故障原因:">
  138. <el-input v-model="modalData.defectReason" disabled style="width: 120px"></el-input>
  139. </el-form-item>
  140. </el-form>
  141. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  142. <el-form-item label="类型">
  143. <el-select v-model="modalData.fileType" placeholder="请选择" style="width: 120px">
  144. <el-option label="点检" value="点检"></el-option>
  145. <el-option label="保养" value="保养"></el-option>
  146. <el-option label="维修" value="维修"></el-option>
  147. </el-select>
  148. </el-form-item>
  149. <el-form-item label="故障描述:">
  150. <el-input v-model="modalData.defectDescribe" style="width: 120px"></el-input>
  151. </el-form-item>
  152. </el-form>
  153. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  154. <el-form-item label="处置措施:">
  155. <el-input v-model="modalData.disposalMeasures" style="width: 255px"></el-input>
  156. </el-form-item>
  157. </el-form>
  158. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  159. <el-form-item label="备注:">
  160. <el-input v-model="modalData.remark" style="width: 255px"></el-input>
  161. </el-form-item>
  162. </el-form>
  163. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  164. <el-button type="primary" @click="saveData()">保存</el-button>
  165. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  166. </el-footer>
  167. </el-dialog>
  168. <!-- 二级列表 -->
  169. <el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; height: 100%;" type="border-card" @tab-click="tabClick" class="customer-tab">
  170. <!-- 文档 -->
  171. <el-tab-pane label="文档" name="file_content">
  172. <!--文件上传-->
  173. <el-form label-position="top" style="margin-top: 5px; margin-left: 0px;">
  174. <el-form :inline="true" label-position="top" style="margin-top: 5px">
  175. <el-button type="primary" @click="addUploadFileModal()">上传文件</el-button>
  176. </el-form>
  177. </el-form>
  178. <el-table
  179. :data="fileContentList"
  180. :height="secondHeight"
  181. border
  182. v-loading="dataListLoading"
  183. style="width: 100%; ">
  184. <el-table-column
  185. v-for="(item,index) in columnFileContentArray" :key="index"
  186. :sortable="item.columnSortable"
  187. :prop="item.columnProp"
  188. :header-align="item.headerAlign"
  189. :show-overflow-tooltip="item.showOverflowTooltip"
  190. :align="item.align"
  191. :fixed="item.fixed==''?false:item.fixed"
  192. :min-width="item.columnWidth"
  193. :label="item.columnLabel">
  194. <template slot-scope="scope">
  195. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  196. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  197. </template>
  198. </el-table-column>
  199. <el-table-column
  200. fixed="right"
  201. header-align="center"
  202. align="center"
  203. width="100"
  204. label="操作">
  205. <template slot-scope="scope">
  206. <a @click="downloadFile(scope.row)">下载</a>
  207. <a type="text" size="small" @click="deleteFile(scope.row)">删除</a>
  208. </template>
  209. </el-table-column>
  210. </el-table>
  211. </el-tab-pane>
  212. </el-tabs>
  213. <!-- 上传文件的modal -->
  214. <comEamKnowledgeBaseUploadFile ref="comEamKnowledgeBaseUploadFile" @refreshPageTables="getDataList()" v-drag></comEamKnowledgeBaseUploadFile>
  215. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  216. </div>
  217. </template>
  218. <script>
  219. import {
  220. getKnowledgeBaseList, // 查询知识库文件列表
  221. getDefectList, // 获取故障列表
  222. saveKnowledgeBase, // 新增知识库文件
  223. knowledgeBaseUpdate, // 修改知识库文件
  224. knowledgeBaseDelete, // 删除知识库文件
  225. knowledgeBaseDeleteSome, // 批量删除
  226. getFileContentList, // 刷新派设备文档的列表
  227. } from '@/api/eam/eam_object_list.js';
  228. import { userFavoriteList, saveUserFavorite, removeUserFavorite } from '@/api/userFavorite.js'
  229. import { deleteObjectFile } from '@/api/eam/eam.js';
  230. import { deleteResourceSpare } from '@/api/partspare/resourcespare.js'
  231. /*引入組件*/
  232. import comEamKnowledgeBaseUploadFile from "./com_eam_knowledge_base_upload_file";/*上传文件的組件*/
  233. import Chooselist from '@/views/modules/common/Chooselist_eam'
  234. import axios from "axios";
  235. import Vue from "vue";
  236. export default {
  237. data () {
  238. return {
  239. // 是否收藏
  240. favorite: false,
  241. // 导出 start
  242. exportData: [],
  243. exportName: "设备知识库" + this.dayjs().format('YYYYMMDDHHmmss'),
  244. exportHeader: ["设备知识库"],
  245. exportFooter: [],
  246. exportList:[],
  247. // 导出 end
  248. tagNo:'',
  249. activeTable: 'file_content',
  250. folder: 'eamObject',
  251. eamObjectId: '',
  252. uploadUrl: "",
  253. currentRow: {},
  254. searchData: {
  255. objectId: '',
  256. defectId: '',
  257. defectReason: '',
  258. defectDescribe: '',
  259. fileType: '',
  260. startDate: '',
  261. endDate: '',
  262. page: 1,
  263. limit: 10
  264. },
  265. pageIndex: 1,
  266. pageSize: 100,
  267. totalPage: 0,
  268. height: 200,
  269. secondHeight: 200,
  270. dataList: [],
  271. fileContentList: [],
  272. columnFileContentArray: [
  273. {
  274. columnProp: 'fileName',
  275. align: 'left',
  276. columnLabel: '文件名称',
  277. columnHidden: false,
  278. columnImage: false,
  279. columnSortable: false,
  280. sortLv: 0,
  281. status: true,
  282. fixed: false
  283. },
  284. {
  285. columnProp: 'createdBy',
  286. align: 'left',
  287. columnLabel: '上传人',
  288. columnHidden: false,
  289. columnImage: false,
  290. columnSortable: true,
  291. sortLv: 0,
  292. status: true,
  293. fixed: false
  294. },
  295. {
  296. columnProp: 'createDate',
  297. align: 'left',
  298. columnLabel: '上传时间',
  299. columnHidden: false,
  300. columnImage: false,
  301. columnSortable: true,
  302. sortLv: 0,
  303. status: true,
  304. fixed: false
  305. },
  306. {
  307. columnProp: 'orderRef3',
  308. align: 'left',
  309. columnLabel: '备注',
  310. columnHidden: false,
  311. columnImage: false,
  312. columnSortable: true,
  313. sortLv: 0,
  314. status: true,
  315. fixed: false
  316. },
  317. ],
  318. dataListLoading: false,
  319. modalFlag: false,
  320. modalDisableFlag: false,
  321. modalData: {
  322. flag: '',
  323. createBy: this.$store.state.user.name,
  324. num: '',
  325. objectId: '',
  326. objectName: '',
  327. fileType: '',
  328. defectId: '',
  329. defectReason: '',
  330. defectDescribe: '',
  331. disposalMeasures: '',
  332. fileId: '',
  333. fileName: '',
  334. remark: '',
  335. },
  336. // 展示列集
  337. columnList: [
  338. {
  339. columnProp: 'num',
  340. align: 'left',
  341. columnLabel: '编号',
  342. columnHidden: false,
  343. columnImage: false,
  344. columnSortable: false,
  345. sortLv: 0,
  346. status: true,
  347. fixed: '',
  348. },
  349. {
  350. columnProp: 'fileType',
  351. align: 'left',
  352. columnLabel: '类型',
  353. columnHidden: false,
  354. columnImage: false,
  355. columnSortable: false,
  356. sortLv: 0,
  357. status: true,
  358. fixed: '',
  359. },
  360. {
  361. columnProp: 'objectId',
  362. align: 'left',
  363. columnLabel: '设备编码',
  364. columnHidden: false,
  365. columnImage: false,
  366. columnSortable: false,
  367. sortLv: 0,
  368. status: true,
  369. fixed: '',
  370. },
  371. {
  372. columnProp: 'objectName',
  373. align: 'left',
  374. columnLabel: '设备名称',
  375. columnHidden: false,
  376. columnImage: false,
  377. columnSortable: false,
  378. sortLv: 0,
  379. status: true,
  380. fixed: '',
  381. },
  382. {
  383. columnProp: 'defectId',
  384. align: 'left',
  385. columnLabel: '故障编码',
  386. columnHidden: false,
  387. columnImage: false,
  388. columnSortable: false,
  389. sortLv: 0,
  390. status: true,
  391. fixed: '',
  392. },
  393. {
  394. columnProp: 'defectReason',
  395. align: 'left',
  396. columnLabel: '故障原因',
  397. columnHidden: false,
  398. columnImage: false,
  399. columnSortable: false,
  400. sortLv: 0,
  401. status: true,
  402. fixed: '',
  403. },
  404. {
  405. columnProp: 'defectDescribe',
  406. align: 'left',
  407. columnLabel: '故障描述',
  408. columnHidden: false,
  409. columnImage: false,
  410. columnSortable: false,
  411. sortLv: 0,
  412. status: true,
  413. fixed: '',
  414. },
  415. {
  416. columnProp: 'disposalMeasures',
  417. align: 'left',
  418. columnLabel: '处置措施',
  419. columnHidden: false,
  420. columnImage: false,
  421. columnSortable: false,
  422. sortLv: 0,
  423. status: true,
  424. fixed: '',
  425. },
  426. {
  427. columnProp: 'remark',
  428. align: 'left',
  429. columnLabel: '备注',
  430. columnHidden: false,
  431. columnImage: false,
  432. columnSortable: false,
  433. sortLv: 0,
  434. status: true,
  435. fixed: '',
  436. },
  437. {
  438. columnProp: 'createDate',
  439. align: 'left',
  440. columnLabel: '上传时间',
  441. columnHidden: false,
  442. columnImage: false,
  443. columnSortable: false,
  444. sortLv: 0,
  445. status: true,
  446. fixed: '',
  447. },
  448. {
  449. columnProp: 'updateDate',
  450. align: 'left',
  451. columnLabel: '操作时间',
  452. columnHidden: false,
  453. columnImage: false,
  454. columnSortable: false,
  455. sortLv: 0,
  456. status: true,
  457. fixed: '',
  458. },
  459. {
  460. columnProp: 'createBy',
  461. align: 'left',
  462. columnLabel: '操作员',
  463. columnHidden: false,
  464. columnImage: false,
  465. columnSortable: false,
  466. sortLv: 0,
  467. status: true,
  468. fixed: '',
  469. },
  470. ],
  471. defectList: [],
  472. dataListSelections: [],
  473. }
  474. },
  475. components: {
  476. comEamKnowledgeBaseUploadFile,/*文件上传的组件*/
  477. Chooselist,
  478. },
  479. mounted () {
  480. this.$nextTick(() => {
  481. this.height = window.innerHeight / 2 - 30;
  482. /*第二个表格高度的动态调整*/
  483. this.secondHeight = window.innerHeight / 2 - 190;
  484. })
  485. },
  486. created () {
  487. this.getDataList();
  488. this.favoriteIsOk()
  489. },
  490. methods: {
  491. // 多选
  492. selectionChangeHandle(val) {
  493. this.dataListSelections = val
  494. },
  495. selectFlag(){
  496. return true;
  497. },
  498. // 故障ID改变事件
  499. defectIdChange(){
  500. for (let i = 0; i < this.defectList.length; i++) {
  501. if (this.defectList[i].defectId = this.modalData.defectId){
  502. this.modalData.defectReason = this.defectList[i].defectReason
  503. }
  504. }
  505. },
  506. // 获取基础数据列表S
  507. getBaseList (val,type) {
  508. this.tagNo = val
  509. this.$nextTick(() => {
  510. let strVal = ''
  511. if (val === 200) {
  512. strVal = this.modalData.objectId
  513. this.$refs.baseList.init(val, strVal)
  514. }
  515. })
  516. },
  517. /* 列表方法的回调 */
  518. getBaseData (val) {
  519. if (this.tagNo === 200) {
  520. this.modalData.objectId = val.ObjectID
  521. this.modalData.objectName = val.ObjectDesc
  522. this.defectList = []
  523. this.modalData.defectId = ''
  524. this.modalData.defectReason = ''
  525. this.getDefectList()
  526. }
  527. },
  528. // 获取故障列表
  529. getDefectList(){
  530. getDefectList(this.modalData).then(({data}) => {
  531. if (data && data.code === 0) {
  532. this.defectList = data.rows
  533. } else {
  534. this.$alert(data.msg, '错误', {
  535. confirmButtonText: '确定'
  536. })
  537. }
  538. })
  539. },
  540. // 获取数据列表
  541. getDataList () {
  542. this.searchData.limit = this.pageSize
  543. this.searchData.page = this.pageIndex
  544. getKnowledgeBaseList(this.searchData).then(({data}) => {
  545. if (data && data.code === 0) {
  546. this.dataList = data.page.list;
  547. this.pageIndex = data.page.currPage;
  548. this.pageSize = data.page.pageSize;
  549. this.totalPage = data.page.totalCount;
  550. //判断是否全部存在数据
  551. if(this.totalPage > 0){
  552. //设置选中行
  553. this.$refs.eamObjectTable.setCurrentRow(this.dataList[0]);
  554. this.refreshCurrentTabTable();//加载当前的页签的table
  555. }
  556. }
  557. this.dataListLoading = false;
  558. })
  559. },
  560. // 每页数
  561. sizeChangeHandle (val) {
  562. this.pageSize = val
  563. this.pageIndex = 1
  564. this.getDataList()
  565. },
  566. // 当前页
  567. currentChangeHandle (val) {
  568. this.pageIndex = val
  569. this.getDataList()
  570. },
  571. // 一级新增
  572. addModal(){
  573. this.modalData = {
  574. flag: '1',
  575. createBy: this.$store.state.user.name,
  576. num: '',
  577. objectId: '',
  578. objectName: '',
  579. fileType: '',
  580. defectId: '',
  581. defectReason: '',
  582. defectDescribe: '',
  583. disposalMeasures: '',
  584. fileId: '',
  585. fileName: '',
  586. remark: '',
  587. };
  588. this.modalDisableFlag = false;
  589. this.modalFlag = true;
  590. },
  591. // 一级修改
  592. updateModal(row){
  593. this.modalData = {
  594. flag:'2',
  595. createBy: this.$store.state.user.name,
  596. num: row.num,
  597. objectId: row.objectId,
  598. objectName: row.objectName,
  599. fileType: row.fileType,
  600. defectId: row.defectId,
  601. defectReason: row.defectReason,
  602. defectDescribe: row.defectDescribe,
  603. disposalMeasures: row.disposalMeasures,
  604. fileId: row.fileId,
  605. fileName: row.fileName,
  606. remark: row.remark
  607. };
  608. this.modalDisableFlag = true;
  609. this.modalFlag = true;
  610. },
  611. // 新增/修改设备知识库
  612. saveData(){
  613. if (this.modalData.fileType == '' || this.modalData.fileType == null) {
  614. this.$alert('请选择类型!', '错误', {
  615. confirmButtonText: '确定'
  616. })
  617. return false
  618. }
  619. if (this.modalData.objectId == '' || this.modalData.objectId == null) {
  620. this.$alert('请选择设备编码!', '错误', {
  621. confirmButtonText: '确定'
  622. })
  623. return false
  624. }
  625. if (this.modalData.objectName == '' || this.modalData.objectName == null) {
  626. this.$alert('请选择设备名称!', '错误', {
  627. confirmButtonText: '确定'
  628. })
  629. return false
  630. }
  631. if (this.modalData.defectId == '' || this.modalData.defectId == null) {
  632. this.$alert('请选择故障编码!', '错误', {
  633. confirmButtonText: '确定'
  634. })
  635. return false
  636. }
  637. if (this.modalData.defectDescribe == '' || this.modalData.defectDescribe == null) {
  638. this.$alert('请填写故障描述!', '错误', {
  639. confirmButtonText: '确定'
  640. })
  641. return false
  642. }
  643. if (this.modalData.disposalMeasures == '' || this.modalData.disposalMeasures == null) {
  644. this.$alert('请填写处置措施!', '错误', {
  645. confirmButtonText: '确定'
  646. })
  647. return false
  648. }
  649. if(this.modalData.flag=='1'){
  650. saveKnowledgeBase(this.modalData).then(({data}) => {
  651. if (data && data.code === 0) {
  652. this.getDataList()
  653. this.defectList = []
  654. this.modalFlag = false
  655. this.$message({
  656. message: '操作成功',
  657. type: 'success',
  658. duration: 1500,
  659. onClose: () => {
  660. }
  661. })
  662. } else {
  663. this.$alert(data.msg, '错误', {
  664. confirmButtonText: '确定'
  665. })
  666. }
  667. })
  668. }else {
  669. knowledgeBaseUpdate(this.modalData).then(({data}) => {
  670. if (data && data.code === 0) {
  671. this.getDataList()
  672. this.modalFlag = false
  673. this.$message({
  674. message: '操作成功',
  675. type: 'success',
  676. duration: 1500,
  677. onClose: () => {
  678. }
  679. })
  680. } else {
  681. this.$alert(data.msg, '错误', {
  682. confirmButtonText: '确定'
  683. })
  684. }
  685. })
  686. }
  687. },
  688. // 一级删除
  689. deleteModal(row) {
  690. this.$confirm('确定要删除该内容?', '提示', {
  691. confirmButtonText: '确定',
  692. cancelButtonText: '取消',
  693. type: 'warning'
  694. }).then(() => {
  695. knowledgeBaseDelete(row).then(({data}) => {
  696. if (data && data.code === 0) {
  697. this.getDataList()
  698. this.getFileContentData();
  699. this.$message({
  700. message: '操作成功',
  701. type: 'success',
  702. duration: 1500,
  703. onClose: () => {
  704. }
  705. })
  706. } else {
  707. this.$alert(data.msg, '错误', {
  708. confirmButtonText: '确定'
  709. })
  710. }
  711. })
  712. }).catch(() => {
  713. })
  714. },
  715. // 二级删除
  716. deleteFile(row){
  717. this.$confirm('确定要删除此文件?', '提示', {
  718. confirmButtonText: '确定',
  719. cancelButtonText: '取消',
  720. type: 'warning'
  721. }).then(() => {
  722. deleteObjectFile(row).then(({data}) => {
  723. if (data && data.code == 0) {
  724. this.getFileContentData();
  725. this.$message({
  726. message: '操作成功',
  727. type: 'success',
  728. duration: 1500,
  729. onClose: () => {
  730. }
  731. })
  732. } else {
  733. this.$alert(data.msg, '错误', {
  734. confirmButtonText: '确定'
  735. })
  736. }
  737. })
  738. }).catch(() => {
  739. })
  740. },
  741. // 批量删除
  742. deleteSome() {
  743. if(this.dataListSelections.length == 0){
  744. this.$alert('请勾选要删除的内容!', '错误', {
  745. confirmButtonText: '确定'
  746. })
  747. return false
  748. }
  749. this.$confirm('确定要删除所选内容?', '提示', {
  750. confirmButtonText: '确定',
  751. cancelButtonText: '取消',
  752. type: 'warning'
  753. }).then(() => {
  754. knowledgeBaseDeleteSome(this.dataListSelections).then(({data}) => {
  755. if (data && data.code === 0) {
  756. this.getDataList()
  757. this.getFileContentData();
  758. this.$message({
  759. message: '操作成功',
  760. type: 'success',
  761. duration: 1500,
  762. onClose: () => {
  763. }
  764. })
  765. } else {
  766. this.$alert(data.msg, '错误', {
  767. confirmButtonText: '确定'
  768. })
  769. }
  770. })
  771. }).catch(() => {
  772. })
  773. },
  774. // 刷新页签的table数据
  775. refreshCurrentTabTable () {
  776. this.getFileContentData();
  777. },
  778. // 刷新派设备文档的列表
  779. getFileContentData() {
  780. let currentData = {
  781. orderRef2: this.currentRow.num
  782. }
  783. getFileContentList(currentData).then(({data}) => {
  784. //区分请求成功和失败的状况
  785. if (data && data.code == 200) {
  786. this.fileContentList = data.rows;
  787. } else {
  788. this.fileContentList = [];
  789. }
  790. });
  791. },
  792. // 列表表格选择替换
  793. tabClick (tab, event) {
  794. // 刷新列表数据
  795. this.refreshCurrentTabTable()
  796. },
  797. // 上传文件
  798. addUploadFileModal(){
  799. let currentData = {
  800. site: this.$store.state.user.site,
  801. createBy: this.$store.state.user.name,
  802. num: this.currentRow.num,
  803. objectId: this.currentRow.objectId,
  804. objectName: this.currentRow.objectName,
  805. defectId: this.currentRow.defectId,
  806. defectReason: this.currentRow.defectReason,
  807. };
  808. //打开组件 去做新增业务
  809. this.$nextTick(() => {
  810. this.$refs.comEamKnowledgeBaseUploadFile.init(currentData);
  811. })
  812. },
  813. // 设置当前的行
  814. setCurrentRow(row, column, event) {
  815. this.currentRow = JSON.parse(JSON.stringify(row));
  816. },
  817. // 当前值发生变化的时候修改
  818. changeCurrentRow(row, oldRow){
  819. // 判断是否是获取焦点的事件
  820. if(row){
  821. this.currentRow = JSON.parse(JSON.stringify(row));
  822. this.eamObjectId = row.objectId;
  823. this.uploadUrl = this.$http.adornUrl(`/api/sys/file/upload?token=${this.$cookie.get('token')}&folder=` + this.folder + `&objectId=` + this.eamObjectId);
  824. //刷新当前页表
  825. this.refreshCurrentTabTable();
  826. }
  827. },
  828. // 校验用户是否收藏
  829. favoriteIsOk() {
  830. let userFavorite = {
  831. userId: this.$store.state.user.id,
  832. languageCode: this.$i18n.locale
  833. }
  834. console.log(this.$route.meta.menuId)
  835. userFavoriteList(userFavorite).then(({data}) => {
  836. for (let i = 0; i < data.list.length; i++) {
  837. // let flag=false;
  838. if(this.$route.meta.menuId==data.list[i].menuId){
  839. this.favorite = true
  840. // flag=true;
  841. }
  842. }
  843. })
  844. },
  845. // 收藏 OR 取消收藏
  846. favoriteFunction() {
  847. let userFavorite = {
  848. userId: this.$store.state.user.id,
  849. functionId: this.$route.meta.menuId,
  850. }
  851. if (this.favorite) {
  852. // 取消收藏
  853. // this.$confirm(`确定取消收藏`, '提示', {
  854. // confirmButtonText: '确定',
  855. // cancelButtonText: '取消',
  856. // type: 'warning'
  857. // }).then(() => {
  858. removeUserFavorite(userFavorite).then(({data}) => {
  859. this.$message.success(data.msg)
  860. this.favorite = false
  861. })
  862. // })
  863. } else {
  864. // 收藏
  865. saveUserFavorite(userFavorite).then(({data}) => {
  866. this.$message.success(data.msg)
  867. this.favorite = true
  868. })
  869. }
  870. },
  871. //导出excel
  872. async createExportData() {
  873. this.searchData.limit = -1
  874. this.searchData.page = 1
  875. await getKnowledgeBaseList(this.searchData).then(({data}) => {
  876. this.exportList= data.page.list;
  877. })
  878. return this.exportList;
  879. },
  880. downloadFile(row){
  881. axios.get('/proxyApi/pms/eamObject/downLoadObjectFile/' + row.id, {
  882. responseType: 'blob',
  883. headers: {
  884. 'Content-Type': 'application/json',
  885. 'token': Vue.cookie.get('token')
  886. }
  887. }).then(({data}) => {
  888. // 不限制文件下载类型
  889. const blob = new Blob([data], {type: "application/octet-stream"})
  890. // 下载文件名称
  891. const fileName = row.fileName
  892. // a标签下载
  893. const linkNode = document.createElement('a')
  894. linkNode.download = fileName // a标签的download属性规定下载文件的名称
  895. linkNode.style.display = 'none'
  896. linkNode.href = URL.createObjectURL(blob) // 生成一个Blob URL
  897. document.body.appendChild(linkNode)
  898. linkNode.click() // 模拟在按钮上的一次鼠标单击
  899. URL.revokeObjectURL(linkNode.href) // 释放URL 对象
  900. document.body.removeChild(linkNode)
  901. // }
  902. })
  903. },
  904. startDownload() {
  905. },
  906. finishDownload() {
  907. },
  908. fields() {
  909. let json = "{"
  910. this.columnList.forEach((item, index) => {
  911. if (index == this.columnList.length - 1) {
  912. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  913. } else {
  914. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  915. }
  916. })
  917. json += "}"
  918. let s = eval("(" + json + ")")
  919. return s
  920. },
  921. },
  922. }
  923. </script>
  924. <style scoped lang="scss">
  925. /deep/ .customer-tab .el-tabs__content {
  926. padding: 0px !important;
  927. }
  928. /*修改上传图标的样式*/
  929. .el-upload-dragger .el-icon-upload {
  930. font-size: 36px;
  931. color: #c0c4cc;
  932. margin: 10px 10px;
  933. line-height: 20px;
  934. }
  935. /*修改上传框的样式*/
  936. /deep/ .customer-upload .el-upload-dragger {
  937. background-color: #fff;
  938. border: 1px dashed #d9d9d9;
  939. border-radius: 6px;
  940. -webkit-box-sizing: border-box;
  941. box-sizing: border-box;
  942. margin-left: 10px;
  943. width: 240px;
  944. height: 42px;
  945. text-align: left;
  946. position: relative;
  947. overflow: hidden;
  948. }
  949. /*修改上传文字的样式*/
  950. .customer-upload .el-upload__text{
  951. margin-top: -32px;
  952. margin-left: 40px;
  953. }
  954. </style>