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.

1038 lines
34 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
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. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  9. <el-form-item :label="'计划编码'">
  10. <el-input v-model="searchData.planID" style="width: 120px"></el-input>
  11. </el-form-item>
  12. <el-form-item :label="'设备编码'">
  13. <el-input v-model="searchData.objectID" style="width: 120px"></el-input>
  14. </el-form-item>
  15. <el-form-item :label="'计划执行人员'">
  16. <el-input v-model="searchData.planOperatorName" style="width: 120px"></el-input>
  17. </el-form-item>
  18. <el-form-item :label="'状态'">
  19. <el-select filterable v-model="searchData.status" style="width: 130px">
  20. <el-option label="全部" value=""></el-option>
  21. <el-option label="未开工" value="未开工"></el-option>
  22. <el-option label="已完工" value="已完工"></el-option>
  23. <el-option label="已取消" value="已取消"></el-option>
  24. </el-select>
  25. </el-form-item>
  26. <el-form-item :label="'计划执行日期:'">
  27. <el-date-picker
  28. style="width: 120px"
  29. v-model="searchData.startDate"
  30. type="date"
  31. value-format="yyyy-MM-dd"
  32. placeholder="选择日期">
  33. </el-date-picker>
  34. </el-form-item>
  35. <el-form-item style="margin-top: 23px;">
  36. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  37. </el-form-item>
  38. <el-form-item :label="' '">
  39. <el-date-picker
  40. style="width: 120px"
  41. v-model="searchData.endDate"
  42. type="date"
  43. value-format="yyyy-MM-dd"
  44. placeholder="选择日期">
  45. </el-date-picker>
  46. </el-form-item>
  47. <el-form-item :label="' '">
  48. <el-button type="primary" @click="searchClick()">查询</el-button>
  49. <el-button type="primary" @click="changeModel()">更改机修人员</el-button>
  50. <download-excel
  51. :fields="fields()"
  52. :data="exportData"
  53. type="xls"
  54. :name="exportName"
  55. :header="exportHeader"
  56. :footer="exportFooter"
  57. :fetch="createExportData"
  58. :before-generate="startDownload"
  59. :before-finish="finishDownload"
  60. worksheet="导出信息"
  61. class="el-button el-button--primary el-button--medium">
  62. {{ "导出" }}
  63. </download-excel>
  64. </el-form-item>
  65. </el-form>
  66. <el-table
  67. :height="height"
  68. :data="dataList"
  69. border
  70. v-loading="dataListLoading"
  71. @selection-change="selectionChangeHandle"
  72. style="width: 100%;">
  73. <el-table-column
  74. type="selection"
  75. header-align="center"
  76. align="center"
  77. :selectable="selectFlag"
  78. width="50">
  79. </el-table-column>
  80. <el-table-column
  81. prop="checkResult"
  82. header-align="center"
  83. align="center"
  84. label="点检结论"
  85. width="60">
  86. <template slot-scope="scope">
  87. <div :style="{ color: scope.row.checkResult =='合格' ? 'green' : scope.row.checkResult =='不合格' ? 'red' : ''}">
  88. {{ scope.row.checkResult }}
  89. </div>
  90. </template>
  91. </el-table-column>
  92. <el-table-column
  93. v-for="(item,index) in columnList" :key="index"
  94. :sortable="item.columnSortable"
  95. :prop="item.columnProp"
  96. :header-align="item.headerAlign"
  97. :show-overflow-tooltip="item.showOverflowTooltip"
  98. :align="item.align"
  99. :fixed="item.fixed==''?false:item.fixed"
  100. :min-width="item.columnWidth"
  101. :label="item.columnLabel">
  102. <template slot-scope="scope">
  103. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  104. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  105. </template>
  106. </el-table-column>
  107. <el-table-column
  108. fixed="right"
  109. header-align="center"
  110. align="center"
  111. width="100"
  112. label="操作">
  113. <template slot-scope="scope">
  114. <a type="text" size="small" v-if="scope.row.status=='待审核'" @click="checkModal(scope.row)">审核</a>
  115. <a type="text" size="small" v-if="scope.row.status=='待审核'" @click="reportModal(scope.row)">实测值</a>
  116. <a type="text" size="small" v-if="scope.row.status=='未开工'" @click="cancelOrder(scope.row)">取消工单</a>
  117. </template>
  118. </el-table-column>
  119. </el-table>
  120. <el-pagination
  121. @size-change="sizeChangeHandle"
  122. @current-change="currentChangeHandle"
  123. :current-page="pageIndex"
  124. :page-sizes="[20, 100, 500, 1000]"
  125. :page-size="pageSize"
  126. :total="totalPage"
  127. layout="total, sizes, prev, pager, next, jumper">
  128. </el-pagination>
  129. <el-dialog title="执行结果" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px">
  130. <el-form :inline="true" label-position="top" >
  131. <el-form-item :label="'工厂编码'">
  132. <el-input v-model="saveData.site" disabled style="width: 120px"></el-input>
  133. </el-form-item>
  134. <el-form-item :label="'工单号'">
  135. <el-input v-model="saveData.orderNo" disabled style="width: 120px"></el-input>
  136. </el-form-item>
  137. <el-form-item :label="'计划执行人员'">
  138. <el-input v-model="saveData.planOperatorName" disabled style="width: 120px"></el-input>
  139. </el-form-item>
  140. </el-form>
  141. <el-form :inline="true" label-position="top" >
  142. <el-form-item :label="'工作时间'">
  143. <el-input v-model="saveData.workTime" type="number" disabled style="width: 120px"></el-input>
  144. </el-form-item>
  145. <el-form-item :label="'执行结果备注'">
  146. <el-input v-model="saveData.remark" disabled style="width: 600px"></el-input>
  147. </el-form-item>
  148. </el-form>
  149. <div class="rq ">
  150. <el-table
  151. :height="200"
  152. :data="detailList"
  153. border
  154. v-loading="dataListLoading"
  155. style="width: 100%;">
  156. <el-table-column
  157. v-for="(item,index) in columnDetailList" :key="index"
  158. :sortable="item.columnSortable"
  159. :prop="item.columnProp"
  160. :header-align="item.headerAlign"
  161. :show-overflow-tooltip="item.showOverflowTooltip"
  162. :align="item.align"
  163. :fixed="item.fixed==''?false:item.fixed"
  164. :min-width="item.columnWidth"
  165. :label="item.columnLabel">
  166. <template slot-scope="scope">
  167. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  168. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  169. </template>
  170. </el-table-column>
  171. <el-table-column
  172. prop=""
  173. header-align="center"
  174. align="right"
  175. min-width="80"
  176. label="实测值">
  177. <template slot-scope="scope">
  178. <el-input v-if="scope.row.valueTypeDb=='T'" v-model="scope.row.textValue" readonly style="height: 11px;padding: 0px " filterable
  179. allow-create>;width:98%"></el-input>
  180. <el-input v-if="scope.row.valueTypeDb=='N'" v-model="scope.row.numberValue" readonly style="height: 11px;padding: 0px " filterable
  181. allow-create>;width:98%"></el-input>
  182. </template>
  183. </el-table-column>
  184. <el-table-column
  185. prop=""
  186. header-align="center"
  187. align="right"
  188. min-width="80"
  189. label="检验结论">
  190. <template slot-scope="scope">
  191. <el-select v-model="scope.row.itemResult" disabled style="height: 11px;padding: 0px">
  192. <el-option label="合格" value="合格"></el-option>
  193. <el-option label="不合格" value="不合格"></el-option>
  194. </el-select>
  195. </template>
  196. </el-table-column>
  197. </el-table>
  198. </div>
  199. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  200. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  201. </el-footer>
  202. </el-dialog>
  203. <el-dialog title="批量修改计划人员" :close-on-click-modal="false" v-drag :visible.sync="changeModelFlag" width="300px">
  204. <el-form :inline="true" label-position="top" >
  205. <el-form-item style="margin-left: 10px" >
  206. <span slot="label" style="" @click="getBaseList(201)"><a herf="#">计划执行人员</a></span>
  207. <el-input v-model="planOperator" style="width: 120px"></el-input>
  208. </el-form-item>
  209. <el-form-item :label="'人员名称'">
  210. <el-input v-model="planOperatorName" disabled style="width: 120px"></el-input>
  211. </el-form-item>
  212. </el-form>
  213. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  214. <el-button type="primary" @click="changeOrderOperator()">保存</el-button>
  215. <el-button type="primary" @click="changeModelFlag = false">关闭</el-button>
  216. </el-footer>
  217. </el-dialog>
  218. <el-dialog title="审核" :close-on-click-modal="false" v-drag :visible.sync="submitModelFlag" width="375px">
  219. <el-form :inline="true" label-position="top">
  220. <el-form-item :label="'难度等级'">
  221. <el-select filterable v-model="submitData.difficultyLevel" style="width: 130px" placeholder="请评估难度等级">
  222. <el-option label="难度一" value="难度一"></el-option>
  223. <el-option label="难度二" value="难度二"></el-option>
  224. <el-option label="难度三" value="难度三"></el-option>
  225. </el-select>
  226. </el-form-item>
  227. <el-form-item :label="'备注'">
  228. <el-input v-model="submitData.difficultyRemark" style="width: 200px"></el-input>
  229. </el-form-item>
  230. </el-form>
  231. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  232. <el-button type="primary" @click="submitModel()">确定</el-button>
  233. <el-button type="primary" @click="submitModelFlag = false">取消</el-button>
  234. </el-footer>
  235. </el-dialog>
  236. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  237. </div>
  238. </template>
  239. <script>
  240. import {
  241. eamWorkOrderSearch,
  242. eamWorkOrderReportSearch,
  243. cancelOrder,
  244. changeOrderOperator,
  245. checkWorkOrder, // 审核
  246. selectNameByMes // 检查系统操作人和审核人员是否一致
  247. } from "@/api/eam/eam.js"
  248. import Chooselist from '@/views/modules/common/Chooselist_eam'
  249. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  250. export default {
  251. components: {
  252. Chooselist
  253. },
  254. watch: {
  255. searchData: {
  256. deep: true,
  257. handler: function (newV, oldV) {
  258. this.searchData.groupID = this.searchData.groupID.toUpperCase()
  259. }
  260. },
  261. modalData: {
  262. deep: true,
  263. handler: function (newV, oldV) {
  264. this.modalData.groupID = this.modalData.groupID.toUpperCase()
  265. }
  266. }
  267. },
  268. data () {
  269. return {
  270. // 是否收藏
  271. favorite: false,
  272. // 导出 start
  273. exportData: [],
  274. exportName: "点检工单" + this.dayjs().format('YYYYMMDDHHmmss'),
  275. exportHeader: ["点检工单"],
  276. exportFooter: [],
  277. exportList:[],
  278. // 导出 end
  279. tagNo:'',
  280. searchData: {
  281. site: this.$store.state.user.site,
  282. orderNo: '',
  283. planID: '',
  284. objectID: '',
  285. planOperator: '',
  286. functionType: 'A',
  287. status: '',
  288. startDate:'',
  289. endDate:'',
  290. planDate: new Date(),
  291. page: 1,
  292. limit: 10,
  293. },
  294. height: 200,
  295. pageIndex: 1,
  296. pageSize: 100,
  297. totalPage: 0,
  298. dataList: [],
  299. dataListLoading: false,
  300. dataListSelections: [],
  301. modalFlag:false,
  302. modalDisableFlag:false,
  303. modalData:{
  304. flag:'',
  305. site: this.$store.state.user.site,
  306. groupID:'',
  307. groupDesc:'',
  308. active:'',
  309. },
  310. departmentList:[],
  311. // 展示列集
  312. columnList: [
  313. {
  314. userId: this.$store.state.user.name,
  315. functionId: 101014,
  316. serialNumber: '101014TableOrderNo',
  317. tableId: "101014Table",
  318. tableName: "common",
  319. columnProp: 'planID',
  320. headerAlign: "center",
  321. align: "center",
  322. columnLabel: '计划编码',
  323. columnHidden: false,
  324. columnImage: false,
  325. columnSortable: false,
  326. sortLv: 0,
  327. status: true,
  328. fixed: '',
  329. },
  330. {
  331. userId: this.$store.state.user.name,
  332. functionId: 101014,
  333. serialNumber: '101014TableOrderNo',
  334. tableId: "101014Table",
  335. tableName: "common",
  336. columnProp: 'planDesc',
  337. headerAlign: "center",
  338. align: "center",
  339. columnLabel: '计划描述',
  340. columnHidden: false,
  341. columnImage: false,
  342. columnSortable: false,
  343. sortLv: 0,
  344. status: true,
  345. fixed: '',
  346. },
  347. {
  348. userId: this.$store.state.user.name,
  349. functionId: 101014,
  350. serialNumber: '101014TableOrderNo',
  351. tableId: "101014Table",
  352. tableName: "common",
  353. columnProp: 'orderNo',
  354. headerAlign: "center",
  355. align: "center",
  356. columnLabel: '工单编码',
  357. columnHidden: false,
  358. columnImage: false,
  359. columnSortable: false,
  360. sortLv: 0,
  361. status: true,
  362. fixed: '',
  363. },
  364. {
  365. userId: this.$store.state.user.name,
  366. functionId: 101014,
  367. serialNumber: '101014TablePropertiesCode',
  368. tableId: "101014Table",
  369. tableName: "common",
  370. columnProp: 'propertiesCode',
  371. headerAlign: "center",
  372. align: "center",
  373. columnLabel: '模板编码',
  374. columnHidden: false,
  375. columnImage: false,
  376. columnSortable: false,
  377. sortLv: 0,
  378. status: true,
  379. fixed: '',
  380. },
  381. {
  382. userId: this.$store.state.user.name,
  383. functionId: 101014,
  384. serialNumber: '101014TablePropertiesCodeDesc',
  385. tableId: "101014Table",
  386. tableName: "common",
  387. columnProp: 'codeDesc',
  388. headerAlign: "center",
  389. align: "center",
  390. columnLabel: '模板名称',
  391. columnHidden: false,
  392. columnImage: false,
  393. columnSortable: false,
  394. sortLv: 0,
  395. status: true,
  396. fixed: '',
  397. },
  398. {
  399. userId: this.$store.state.user.name,
  400. functionId: 101014,
  401. serialNumber: '101014TableObjectID',
  402. tableId: "101014Table",
  403. tableName: "common",
  404. columnProp: 'objectID',
  405. headerAlign: "center",
  406. align: "center",
  407. columnLabel: '设备编码',
  408. columnHidden: false,
  409. columnImage: false,
  410. columnSortable: false,
  411. sortLv: 0,
  412. status: true,
  413. fixed: '',
  414. },
  415. {
  416. userId: this.$store.state.user.name,
  417. functionId: 101014,
  418. serialNumber: '101014TableObjectDesc',
  419. tableId: "101014Table",
  420. tableName: "common",
  421. columnProp: 'objectDesc',
  422. headerAlign: "center",
  423. align: "center",
  424. columnLabel: '设备名称',
  425. columnHidden: false,
  426. columnImage: false,
  427. columnSortable: false,
  428. sortLv: 0,
  429. status: true,
  430. fixed: '',
  431. },
  432. {
  433. userId: this.$store.state.user.name,
  434. functionId: 101014,
  435. serialNumber: '101014TableStatus',
  436. tableId: "101014Table",
  437. tableName: "common",
  438. columnProp: 'status',
  439. headerAlign: "center",
  440. align: "center",
  441. columnLabel: '状态',
  442. columnHidden: false,
  443. columnImage: false,
  444. columnSortable: false,
  445. sortLv: 0,
  446. status: true,
  447. fixed: '',
  448. },
  449. {
  450. userId: this.$store.state.user.name,
  451. functionId: 101014,
  452. serialNumber: '101014TablePlanOperatorName',
  453. tableId: "101014Table",
  454. tableName: "common",
  455. columnProp: 'planOperatorName',
  456. headerAlign: "center",
  457. align: "center",
  458. columnLabel: '计划机修人员',
  459. columnHidden: false,
  460. columnImage: false,
  461. columnSortable: false,
  462. sortLv: 0,
  463. status: true,
  464. fixed: '',
  465. },
  466. {
  467. userId: this.$store.state.user.name,
  468. functionId: 101014,
  469. serialNumber: '101014TableActualOperatorName',
  470. tableId: "101014Table",
  471. tableName: "common",
  472. columnProp: 'actualOperatorName',
  473. headerAlign: "center",
  474. align: "center",
  475. columnLabel: '实际机修人员',
  476. columnHidden: false,
  477. columnImage: false,
  478. columnSortable: false,
  479. sortLv: 0,
  480. status: true,
  481. fixed: '',
  482. },
  483. {
  484. userId: this.$store.state.user.name,
  485. functionId: 101014,
  486. serialNumber: '101014TableActualOperatorName',
  487. tableId: "101014Table",
  488. tableName: "common",
  489. columnProp: 'checkerName',
  490. headerAlign: "center",
  491. align: "center",
  492. columnLabel: '审核人员',
  493. columnHidden: false,
  494. columnImage: false,
  495. columnSortable: false,
  496. sortLv: 0,
  497. status: true,
  498. fixed: '',
  499. },
  500. {
  501. userId: this.$store.state.user.name,
  502. functionId: 101014,
  503. serialNumber: '101014TableActualPlanDate',
  504. tableId: "101014Table",
  505. tableName: "common",
  506. columnProp: 'planDate',
  507. headerAlign: "center",
  508. align: "center",
  509. columnLabel: '计划执行日期',
  510. columnHidden: false,
  511. columnImage: false,
  512. columnSortable: false,
  513. sortLv: 0,
  514. status: true,
  515. fixed: '',
  516. },
  517. {
  518. userId: this.$store.state.user.name,
  519. functionId: 101014,
  520. serialNumber: '101014TableActualActualDate',
  521. tableId: "101014Table",
  522. tableName: "common",
  523. columnProp: 'actualDate',
  524. headerAlign: "center",
  525. align: "center",
  526. columnLabel: '实际执行时间',
  527. columnHidden: false,
  528. columnImage: false,
  529. columnSortable: false,
  530. sortLv: 0,
  531. status: true,
  532. fixed: '',
  533. },
  534. {
  535. userId: this.$store.state.user.name,
  536. functionId: 101014,
  537. serialNumber: '101014TableWorkTime',
  538. tableId: "101014Table",
  539. tableName: "common",
  540. columnProp: 'workTime',
  541. headerAlign: "center",
  542. align: "center",
  543. columnLabel: '工作时间',
  544. columnHidden: false,
  545. columnImage: false,
  546. columnSortable: false,
  547. sortLv: 0,
  548. status: true,
  549. fixed: '',
  550. },
  551. {
  552. userId: this.$store.state.user.name,
  553. functionId: 101014,
  554. serialNumber: '101014TableActualRemark',
  555. tableId: "101014Table",
  556. tableName: "common",
  557. columnProp: 'remark',
  558. headerAlign: "center",
  559. align: "center",
  560. columnLabel: '备注',
  561. columnHidden: false,
  562. columnImage: false,
  563. columnSortable: false,
  564. sortLv: 0,
  565. status: true,
  566. fixed: '',
  567. }
  568. ],
  569. //执行结果
  570. detailList:[],
  571. detailModelFlag:false,
  572. saveData:{
  573. site:'',
  574. orderNo:'',
  575. planOperatorName:'',
  576. workTime:'',
  577. remark:'',
  578. },
  579. columnDetailList: [
  580. {
  581. userId: this.$store.state.user.name,
  582. functionId: 101020,
  583. serialNumber: '101020Table2EamPropertiesItemID',
  584. tableId: "101020Table2",
  585. tableName: "点检项目表",
  586. columnProp: 'itemNo',
  587. headerAlign: "center",
  588. align: "center",
  589. columnLabel: '点检项目编码',
  590. columnHidden: false,
  591. columnImage: false,
  592. columnSortable: false,
  593. sortLv: 0,
  594. status: true,
  595. fixed: '',
  596. columnWidth: 90,
  597. },
  598. {
  599. userId: this.$store.state.user.name,
  600. functionId: 101020,
  601. serialNumber: '101020Table2EamPropertiesItemDesc',
  602. tableId: "101020Table2",
  603. tableName: "点检项目表",
  604. columnProp: 'itemDesc',
  605. headerAlign: "center",
  606. align: "center",
  607. columnLabel: '点检项目名称',
  608. columnHidden: false,
  609. columnImage: false,
  610. columnSortable: false,
  611. sortLv: 0,
  612. status: true,
  613. fixed: '',
  614. columnWidth: 90,
  615. },
  616. {
  617. userId: this.$store.state.user.name,
  618. functionId: 101020,
  619. serialNumber: '101020Table2EamPropertiesItemRemark',
  620. tableId: "101020Table2",
  621. tableName: "点检项目表",
  622. columnProp: 'itemRemark',
  623. headerAlign: "center",
  624. align: "center",
  625. columnLabel: '点检方法说明',
  626. columnHidden: false,
  627. columnImage: false,
  628. columnSortable: false,
  629. sortLv: 0,
  630. status: true,
  631. fixed: '',
  632. columnWidth: 120,
  633. },
  634. {
  635. userId: this.$store.state.user.name,
  636. functionId: 101020,
  637. serialNumber: '101020Table2ValueType',
  638. tableId: "101020Table2",
  639. tableName: "点检项目表",
  640. columnProp: 'valueType',
  641. headerAlign: "center",
  642. align: "center",
  643. columnLabel: '检测值类型',
  644. columnHidden: false,
  645. columnImage: false,
  646. columnSortable: false,
  647. sortLv: 0,
  648. status: true,
  649. fixed: '',
  650. columnWidth: 70,
  651. },
  652. {
  653. userId: this.$store.state.user.name,
  654. functionId: 101020,
  655. serialNumber: '101020Table2DefaultValue',
  656. tableId: "101020Table2",
  657. tableName: "点检项目表",
  658. columnProp: 'defaultValue',
  659. headerAlign: "center",
  660. align: "center",
  661. columnLabel: '参照值',
  662. columnHidden: false,
  663. columnImage: false,
  664. columnSortable: false,
  665. sortLv: 0,
  666. status: true,
  667. fixed: '',
  668. columnWidth: 70,
  669. },
  670. {
  671. userId: this.$store.state.user.name,
  672. functionId: 101020,
  673. serialNumber: '101020Table2MaxValue',
  674. tableId: "101020Table2",
  675. tableName: "点检项目表",
  676. columnProp: 'maxValue',
  677. headerAlign: "center",
  678. align: "center",
  679. columnLabel: '最大值',
  680. columnHidden: false,
  681. columnImage: false,
  682. columnSortable: false,
  683. sortLv: 0,
  684. status: true,
  685. fixed: '',
  686. columnWidth: 70,
  687. },
  688. {
  689. userId: this.$store.state.user.name,
  690. functionId: 101020,
  691. serialNumber: '101020Table2MinValue',
  692. tableId: "101020Table2",
  693. tableName: "点检项目表",
  694. columnProp: 'minValue',
  695. headerAlign: "center",
  696. align: "center",
  697. columnLabel: '最小值',
  698. columnHidden: false,
  699. columnImage: false,
  700. columnSortable: false,
  701. sortLv: 0,
  702. status: true,
  703. fixed: '',
  704. columnWidth: 70,
  705. },
  706. ],
  707. changeModelFlag: false,
  708. planOperator:'',
  709. planOperatorName:'',
  710. submitData:{
  711. site: this.$store.state.user.site,
  712. orderNo: '',
  713. planID: '',
  714. objectID: '',
  715. checker: '',
  716. checkerName: '',
  717. difficultyLevel: '',
  718. difficultyRemark: ''
  719. },
  720. submitModelFlag: false
  721. }
  722. },
  723. mounted () {
  724. this.$nextTick(() => {
  725. this.height = window.innerHeight - 210
  726. })
  727. },
  728. created () {
  729. this.favoriteIsOk()
  730. this.getDataList()
  731. },
  732. methods: {
  733. // 校验用户是否收藏
  734. favoriteIsOk() {
  735. let userFavorite = {
  736. userId: this.$store.state.user.id,
  737. languageCode: this.$i18n.locale
  738. }
  739. console.log(this.$route.meta.menuId)
  740. userFavoriteList(userFavorite).then(({data}) => {
  741. for (let i = 0; i < data.list.length; i++) {
  742. // let flag=false;
  743. if(this.$route.meta.menuId==data.list[i].menuId){
  744. this.favorite = true
  745. // flag=true;
  746. }
  747. }
  748. })
  749. },
  750. // 收藏 OR 取消收藏
  751. favoriteFunction() {
  752. let userFavorite = {
  753. userId: this.$store.state.user.id,
  754. functionId: this.$route.meta.menuId,
  755. }
  756. if (this.favorite) {
  757. // 取消收藏
  758. // this.$confirm(`确定取消收藏`, '提示', {
  759. // confirmButtonText: '确定',
  760. // cancelButtonText: '取消',
  761. // type: 'warning'
  762. // }).then(() => {
  763. removeUserFavorite(userFavorite).then(({data}) => {
  764. this.$message.success(data.msg)
  765. this.favorite = false
  766. })
  767. // })
  768. } else {
  769. // 收藏
  770. saveUserFavorite(userFavorite).then(({data}) => {
  771. this.$message.success(data.msg)
  772. this.favorite = true
  773. })
  774. }
  775. },
  776. // 获取基础数据列表S
  777. getBaseList (val,type) {
  778. this.tagNo = val
  779. this.$nextTick(() => {
  780. let strVal = ''
  781. if (val === 201) {
  782. strVal = this.planOperator
  783. this.$refs.baseList.init(val, strVal)
  784. }
  785. })
  786. },
  787. /* 列表方法的回调 */
  788. getBaseData (val) {
  789. if (this.tagNo === 201) {
  790. this.planOperator = val.AdminID
  791. this.planOperatorName = val.AdminName
  792. }
  793. },
  794. //导出excel
  795. async createExportData() {
  796. this.searchData.limit = -1
  797. this.searchData.page = 1
  798. await eamWorkOrderSearch(this.searchData).then(({data}) => {
  799. this.exportList= data.page.list;
  800. })
  801. return this.exportList;
  802. },
  803. startDownload() {
  804. // this.exportData = this.dataList
  805. },
  806. finishDownload() {
  807. },
  808. fields() {
  809. let json = "{"
  810. this.columnList.forEach((item, index) => {
  811. if (index == this.columnList.length - 1) {
  812. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  813. } else {
  814. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  815. }
  816. })
  817. json += "}"
  818. let s = eval("(" + json + ")")
  819. return s
  820. },
  821. // 重置查询时间
  822. searchClick(){
  823. this.searchData.planDate = ''
  824. this.getDataList()
  825. },
  826. // 获取数据列表
  827. getDataList () {
  828. this.searchData.limit = this.pageSize
  829. this.searchData.page = this.pageIndex
  830. eamWorkOrderSearch(this.searchData).then(({data}) => {
  831. if (data.code == 0) {
  832. this.dataList = data.page.list
  833. this.pageIndex = data.page.currPage
  834. this.pageSize = data.page.pageSize
  835. this.totalPage = data.page.totalCount
  836. }
  837. this.dataListLoading = false
  838. })
  839. },
  840. // 每页数
  841. sizeChangeHandle (val) {
  842. this.pageSize = val
  843. this.pageIndex = 1
  844. this.getDataList()
  845. },
  846. // 当前页
  847. currentChangeHandle (val) {
  848. this.pageIndex = val
  849. this.getDataList()
  850. },
  851. // 多选
  852. selectionChangeHandle (val) {
  853. this.dataListSelections = val
  854. },
  855. // 审核按钮
  856. checkModal(row){
  857. this.submitData.site = row.site
  858. this.submitData.orderNo = row.orderNo
  859. this.submitData.planID = row.planID
  860. this.submitData.objectID = row.objectID
  861. this.submitData.checker = row.checker
  862. this.submitData.checkerName = row.checkerName
  863. // if (this.$store.state.user.name != this.submitData.checkerName){
  864. // this.$alert('审核人员与计划不符!', '错误', {
  865. // confirmButtonText: '确定',
  866. // type: 'warning'
  867. // })
  868. // return false
  869. // }
  870. let tempData = {
  871. site: this.$store.state.user.site,
  872. mesUser: this.$store.state.user.name
  873. }
  874. selectNameByMes(tempData).then(({data}) => {
  875. if (data.rows[0].adminName != this.submitData.checkerName){
  876. this.$alert('审核人员与计划不符!', '错误', {
  877. confirmButtonText: '确定',
  878. type: 'warning'
  879. })
  880. return false
  881. }
  882. })
  883. this.$confirm(`是否确认审核?`, '提示', {
  884. confirmButtonText: '确定',
  885. cancelButtonText: '取消',
  886. type: 'warning'
  887. }).then(() => {
  888. checkWorkOrder(this.submitData).then(({data}) => {
  889. if (data && data.code == 0) {
  890. this.getDataList()
  891. this.$message({
  892. message: '操作成功',
  893. type: 'success',
  894. duration: 1500,
  895. onClose: () => {
  896. }
  897. })
  898. } else {
  899. this.$alert(data.msg, '错误', {
  900. confirmButtonText: '确定'
  901. })
  902. }
  903. })
  904. }).catch(() => {
  905. })
  906. // this.submitModelFlag = true
  907. },
  908. // 确认审核
  909. submitModel(){
  910. if(this.submitData.difficultyLevel == ''||this.submitData.difficultyLevel == null){
  911. this.$alert('请选择难度等级!', '提示', {
  912. confirmButtonText: '确定'
  913. })
  914. return false
  915. }
  916. checkWorkOrder(this.submitData).then(({data}) => {
  917. if (data && data.code ==0) {
  918. this.getDataList()
  919. this.submitModelFlag = false
  920. this.$message({
  921. message: '操作成功',
  922. type: 'success',
  923. duration: 1500,
  924. onClose: () => {
  925. }
  926. })
  927. } else {
  928. this.$alert(data.msg, '错误', {
  929. confirmButtonText: '确定'
  930. })
  931. }
  932. })
  933. },
  934. // 实测值按钮
  935. reportModal(row){
  936. let indata = {
  937. site: row.site,
  938. itemNo: row.itemNo,
  939. planID: row.planID,
  940. orderNo: row.orderNo,
  941. itemType: row.functionType,
  942. }
  943. eamWorkOrderReportSearch(indata).then(({data}) => {
  944. this.detailList = data.rows
  945. })
  946. this.saveData = {
  947. site: row.site,
  948. orderNo: row.orderNo,
  949. planID: row.planID,
  950. planOperatorName: row.planOperatorName,
  951. workTime: row.workTime,
  952. remark: row.remark,
  953. },
  954. this.detailModelFlag = true;
  955. },
  956. cancelOrder(row){
  957. row.userId=this.$store.state.user.name;
  958. this.$confirm(`是否取消选定工单?`, '提示', {
  959. confirmButtonText: '确定',
  960. cancelButtonText: '取消',
  961. type: 'warning'
  962. }).then(() => {
  963. cancelOrder(row).then(({data}) => {
  964. if (data && data.code === 0) {
  965. this.getDataList()
  966. this.$message({
  967. message: '操作成功',
  968. type: 'success',
  969. duration: 1500,
  970. onClose: () => {
  971. }
  972. })
  973. } else {
  974. this.$alert(data.msg, '错误', {
  975. confirmButtonText: '确定'
  976. })
  977. }
  978. })
  979. }).catch(() => {
  980. })
  981. },
  982. selectFlag(row,index){
  983. if(row.status!='未开工'){
  984. return false;
  985. }else {
  986. return true;
  987. }
  988. },
  989. changeModel(){
  990. if(this.dataListSelections.length==0){
  991. this.$alert('请勾选工单!', '错误', {
  992. confirmButtonText: '确定'
  993. })
  994. return false
  995. }
  996. this.planOperator = ''
  997. this.planOperatorName = ''
  998. this.changeModelFlag = true;
  999. },
  1000. changeOrderOperator(){
  1001. let inList=JSON.parse(JSON.stringify(this.dataListSelections));
  1002. for (let i = 0; i <inList.length ; i++) {
  1003. inList[i].planOperator=this.planOperator
  1004. }
  1005. changeOrderOperator(inList).then(({data}) => {
  1006. if (data && data.code === 0) {
  1007. this.changeModelFlag=false;
  1008. this.getDataList()
  1009. this.$message({
  1010. message: '操作成功',
  1011. type: 'success',
  1012. duration: 1500,
  1013. onClose: () => {
  1014. }
  1015. })
  1016. } else {
  1017. this.$alert(data.msg, '错误', {
  1018. confirmButtonText: '确定'
  1019. })
  1020. }
  1021. })
  1022. },
  1023. }
  1024. }
  1025. </script>