赫艾前端
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.

511 lines
16 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;">
  4. <el-form-item :label="'派工单号'">
  5. <el-input v-model="searchData.seqNo" type="number" style="width: 120px"></el-input>
  6. </el-form-item>
  7. <el-form-item :label="'物料编码'">
  8. <el-input v-model="searchData.partNo" style="width: 120px"></el-input>
  9. </el-form-item>
  10. <el-form-item :label="'规格型号'">
  11. <el-input v-model="searchData.partDesc" style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item :label="'操作员姓名'">
  14. <el-input v-model="searchData.operatorName" style="width: 120px"></el-input>
  15. </el-form-item>
  16. <el-form-item label="异常备注" >
  17. <el-select v-model="searchData.remark">
  18. <el-option value="" label="全部"></el-option>
  19. <el-option value="开工超时" label="开工超时"></el-option>
  20. <el-option value="报工超时" label="报工超时"></el-option>
  21. <el-option value="完工不及时" label="完工不及时"></el-option>
  22. <el-option value="完成率异常" label="完成率异常"></el-option>
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item :label="'派工单日期'">
  26. <el-date-picker
  27. style="width: 120px"
  28. v-model="searchData.startDate"
  29. type="date"
  30. value-format="yyyy-MM-dd"
  31. placeholder="选择日期">
  32. </el-date-picker>
  33. </el-form-item>
  34. <el-form-item :label="'至'">
  35. <el-date-picker
  36. style="width: 120px"
  37. v-model="searchData.endDate"
  38. type="date"
  39. value-format="yyyy-MM-dd"
  40. placeholder="选择日期">
  41. </el-date-picker>
  42. </el-form-item>
  43. <el-form-item :label="' '">
  44. <el-button type="primary" @click="searchTable()">查询</el-button>
  45. <download-excel
  46. :fields="fields()"
  47. :data="exportData"
  48. type="xls"
  49. :name="exportName"
  50. :header="exportHeader"
  51. :footer="exportFooter"
  52. :fetch="createExportData"
  53. :before-generate="startDownload"
  54. :before-finish="finishDownload"
  55. worksheet="导出信息"
  56. class="el-button el-button--primary el-button--medium">
  57. {{ '导出' }}
  58. </download-excel>
  59. </el-form-item>
  60. </el-form>
  61. <el-table
  62. :data="dataList"
  63. :height="height"
  64. border
  65. v-loading="dataListLoading"
  66. style="width: 100%; ">
  67. <el-table-column
  68. v-for="(item,index) in columnList1" :key="index"
  69. :sortable="item.columnSortable"
  70. :prop="item.columnProp"
  71. :header-align="item.headerAlign"
  72. :show-overflow-tooltip="item.showOverflowTooltip"
  73. :align="item.align"
  74. :fixed="item.fixed==''?false:item.fixed"
  75. :min-width="item.columnWidth"
  76. :label="item.columnLabel">
  77. <template slot-scope="scope">
  78. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  79. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  80. style="width: 100px; height: 80px"/></span>
  81. </template>
  82. </el-table-column>
  83. </el-table>
  84. <el-pagination
  85. @size-change="sizeChangeHandle"
  86. @current-change="currentChangeHandle"
  87. :current-page="pageIndex"
  88. :page-sizes="[20, 50, 100, 1000]"
  89. :page-size="pageSize"
  90. :total="totalPage"
  91. layout="total, sizes, prev, pager, next, jumper">
  92. </el-pagination>
  93. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  94. </div>
  95. </template>
  96. <script>
  97. import {
  98. scheduleAbnormalReport,
  99. } from "@/api/production/query.js"
  100. import Chooselist from '@/views/modules/common/Chooselist'
  101. export default {
  102. components: {
  103. Chooselist
  104. },
  105. data() {
  106. return {
  107. dataList: [],
  108. searchData: {
  109. page: 1,
  110. limit: 20,
  111. operatorName: '',
  112. username: this.$store.state.user.name,
  113. seqNo: '',
  114. partNo :'',
  115. partDesc:'',
  116. startDate:'',
  117. endDate:'',
  118. remark:'',
  119. },
  120. exportList:[],
  121. pageIndex: 1,
  122. pageSize: 20,
  123. totalPage: 0,
  124. visible:false,
  125. dataListLoading: false,
  126. columnList1:[
  127. {
  128. userId: this.$store.state.user.name,
  129. functionId: 400003,
  130. serialNumber: '400003Table1Site',
  131. tableId: "400003Table1",
  132. tableName: "异常派工单清单",
  133. columnProp: "site",
  134. headerAlign: "center",
  135. align: "left",
  136. columnLabel: "工厂编码",
  137. columnHidden: false,
  138. columnImage: false,
  139. columnSortable: true,
  140. sortLv: 0,
  141. status: true,
  142. fixed: '',
  143. columnWidth: 60
  144. },{
  145. userId: this.$store.state.user.name,
  146. functionId: 400003,
  147. serialNumber: '400003Table1SeqNo',
  148. tableId: "400003Table1",
  149. tableName: "异常派工单清单",
  150. columnProp: "seqNo",
  151. headerAlign: "center",
  152. align: "center",
  153. columnLabel: "派工单号",
  154. columnHidden: false,
  155. columnImage: false,
  156. columnSortable: true,
  157. sortLv: 0,
  158. status: true,
  159. fixed: '',
  160. columnWidth: 80
  161. },{
  162. userId: this.$store.state.user.name,
  163. functionId: 400003,
  164. serialNumber: '400003Table1SScheduledDate',
  165. tableId: "400003Table1",
  166. tableName: "异常派工单清单",
  167. columnProp: "sScheduledDate",
  168. headerAlign: "center",
  169. align: "center",
  170. columnLabel: "派工日期",
  171. columnHidden: false,
  172. columnImage: false,
  173. columnSortable: true,
  174. sortLv: 0,
  175. status: true,
  176. fixed: '',
  177. columnWidth: 80
  178. },{
  179. userId: this.$store.state.user.name,
  180. functionId: 400003,
  181. serialNumber: '400003Table1StartWorkDate',
  182. tableId: "400003Table1",
  183. tableName: "异常派工单清单",
  184. columnProp: "startWorkDate",
  185. headerAlign: "center",
  186. align: "center",
  187. columnLabel: "开工时间",
  188. columnHidden: false,
  189. columnImage: false,
  190. columnSortable: false,
  191. sortLv: 0,
  192. status: true,
  193. fixed: '',
  194. columnWidth: 130
  195. },{
  196. userId: this.$store.state.user.name,
  197. functionId: 400003,
  198. serialNumber: '400003Table1ReportDate',
  199. tableId: "400003Table1",
  200. tableName: "异常派工单清单",
  201. columnProp: "reportDate",
  202. headerAlign: "center",
  203. align: "center",
  204. columnLabel: "报工时间",
  205. columnHidden: false,
  206. columnImage: false,
  207. columnSortable: false,
  208. sortLv: 0,
  209. status: true,
  210. fixed: '',
  211. columnWidth: 130
  212. },{
  213. userId: this.$store.state.user.name,
  214. functionId: 400003,
  215. serialNumber: '400003Table1LastItemReportDate',
  216. tableId: "400003Table1",
  217. tableName: "异常派工单清单",
  218. columnProp: "lastItemReportDate",
  219. headerAlign: "center",
  220. align: "center",
  221. columnLabel: "上道报工时间",
  222. columnHidden: false,
  223. columnImage: false,
  224. columnSortable: false,
  225. sortLv: 0,
  226. status: true,
  227. fixed: '',
  228. columnWidth: 130
  229. },{
  230. userId: this.$store.state.user.name,
  231. functionId: 400003,
  232. serialNumber: '400003Table1StartUseTime',
  233. tableId: "400003Table1",
  234. tableName: "异常派工单清单",
  235. columnProp: "startUseTime",
  236. headerAlign: "center",
  237. align: "right",
  238. columnLabel: "开工间隔",
  239. columnHidden: false,
  240. columnImage: false,
  241. columnSortable: false,
  242. sortLv: 0,
  243. status: true,
  244. fixed: '',
  245. columnWidth: 80
  246. },{
  247. userId: this.$store.state.user.name,
  248. functionId: 400003,
  249. serialNumber: '400003Table1WorkTime',
  250. tableId: "400003Table1",
  251. tableName: "异常派工单清单",
  252. columnProp: "workTime",
  253. headerAlign: "center",
  254. align: "right",
  255. columnLabel: "生产时间",
  256. columnHidden: false,
  257. columnImage: false,
  258. columnSortable: false,
  259. sortLv: 0,
  260. status: true,
  261. fixed: '',
  262. columnWidth: 80
  263. },{
  264. userId: this.$store.state.user.name,
  265. functionId: 400003,
  266. serialNumber: '400003Table1IssureWeight',
  267. tableId: "400003Table1",
  268. tableName: "异常派工单清单",
  269. columnProp: "issureWeight",
  270. headerAlign: "center",
  271. align: "right",
  272. columnLabel: "领料重量",
  273. columnHidden: false,
  274. columnImage: false,
  275. columnSortable: false,
  276. sortLv: 0,
  277. status: true,
  278. fixed: '',
  279. columnWidth: 80
  280. },{
  281. userId: this.$store.state.user.name,
  282. functionId: 400003,
  283. serialNumber: '400003Table1TwoDayReport',
  284. tableId: "400003Table1",
  285. tableName: "异常派工单清单",
  286. columnProp: "twoDayReport",
  287. headerAlign: "center",
  288. align: "right",
  289. columnLabel: "48小时报工重量",
  290. columnHidden: false,
  291. columnImage: false,
  292. columnSortable: false,
  293. sortLv: 0,
  294. status: true,
  295. fixed: '',
  296. columnWidth: 110
  297. },{
  298. userId: this.$store.state.user.name,
  299. functionId: 400003,
  300. serialNumber: '400003Table1ApprovePercent',
  301. tableId: "400003Table1",
  302. tableName: "异常派工单清单",
  303. columnProp: "approvePercent",
  304. headerAlign: "center",
  305. align: "right",
  306. columnLabel: "完成率",
  307. columnHidden: false,
  308. columnImage: false,
  309. columnSortable: false,
  310. sortLv: 0,
  311. status: true,
  312. fixed: '',
  313. columnWidth: 80
  314. },{
  315. userId: this.$store.state.user.name,
  316. functionId: 400003,
  317. serialNumber: '400003Table1Remark',
  318. tableId: "400003Table1",
  319. tableName: "异常派工单清单",
  320. columnProp: "remark",
  321. headerAlign: "center",
  322. align: "center",
  323. columnLabel: "异常备注",
  324. columnHidden: false,
  325. columnImage: false,
  326. columnSortable: false,
  327. sortLv: 0,
  328. status: true,
  329. fixed: '',
  330. columnWidth: 80
  331. },{
  332. userId: this.$store.state.user.name,
  333. functionId: 400003,
  334. serialNumber: '400003Table1OperatorName',
  335. tableId: "400003Table1",
  336. tableName: "异常派工单清单",
  337. columnProp: "operatorName",
  338. headerAlign: "center",
  339. align: "center",
  340. columnLabel: "操作员姓名",
  341. columnHidden: false,
  342. columnImage: false,
  343. columnSortable: false,
  344. sortLv: 0,
  345. status: true,
  346. fixed: '',
  347. columnWidth: 80
  348. },{
  349. userId: this.$store.state.user.name,
  350. functionId: 400003,
  351. serialNumber: '400003Table1OperationDesc',
  352. tableId: "400003Table1",
  353. tableName: "异常派工单清单",
  354. columnProp: "operationDesc",
  355. headerAlign: "center",
  356. align: "left",
  357. columnLabel: "工序名称",
  358. columnHidden: false,
  359. columnImage: false,
  360. columnSortable: false,
  361. sortLv: 0,
  362. status: true,
  363. fixed: '',
  364. columnWidth: 100
  365. },{
  366. userId: this.$store.state.user.name,
  367. functionId: 400003,
  368. serialNumber: '400003Table1PartNo',
  369. tableId: "400003Table1",
  370. tableName: "异常派工单清单",
  371. columnProp: "partNo",
  372. headerAlign: "center",
  373. align: "left",
  374. columnLabel: "物料编码",
  375. columnHidden: false,
  376. columnImage: false,
  377. columnSortable: false,
  378. sortLv: 0,
  379. status: true,
  380. fixed: '',
  381. columnWidth: 100
  382. },{
  383. userId: this.$store.state.user.name,
  384. functionId: 400003,
  385. serialNumber: '400003Table1PartDesc',
  386. tableId: "400003Table1",
  387. tableName: "异常派工单清单",
  388. columnProp: "partDesc",
  389. headerAlign: "center",
  390. align: "center",
  391. columnLabel: "规格型号",
  392. columnHidden: false,
  393. columnImage: false,
  394. columnSortable: false,
  395. sortLv: 0,
  396. status: true,
  397. fixed: '',
  398. columnWidth: 200
  399. }
  400. ],
  401. // 导出 start
  402. exportData: [],
  403. exportName: '异常派工单清单'+this.dayjs().format('YYYYMMDDHHmmss'),
  404. exportHeader: ["异常派工单清单"],
  405. exportFooter: [],
  406. // 导出 end
  407. height:200,
  408. }
  409. },
  410. mounted () {
  411. this.$nextTick(() => {
  412. this.height = window.innerHeight- 200
  413. })
  414. },
  415. methods: {
  416. // 获取基础数据列表S
  417. getBaseList (val, type) {
  418. this.tagNo = val
  419. this.tagNo1 = type
  420. this.$nextTick(() => {
  421. let strVal = ''
  422. if (val === 1013) {
  423. if(type==1) {
  424. strVal = this.dataForm.partType
  425. }
  426. }
  427. this.$refs.baseList.init(val, strVal)
  428. })
  429. },
  430. /* 列表方法的回调 */
  431. getBaseData (val) {
  432. if (this.tagNo === 1013) {
  433. if(this.tagNo1==1) {
  434. this.dataForm.partType = val.Base_id
  435. this.dataForm.partTypeDesc = val.Base_desc
  436. }
  437. }
  438. },
  439. //初始化组件的参数
  440. init(inData) {
  441. //初始化参数
  442. this.searchData = JSON.parse(JSON.stringify(inData));
  443. //刷新表格
  444. this.searchTable();
  445. },
  446. // 每页数
  447. sizeChangeHandle (val) {
  448. this.pageSize = val
  449. this.pageIndex = 1
  450. this.searchTable()
  451. },
  452. // 当前页
  453. currentChangeHandle (val) {
  454. this.pageIndex = val
  455. this.searchTable()
  456. },
  457. searchTable(){
  458. this.searchData.limit = this.pageSize
  459. this.searchData.page = this.pageIndex
  460. scheduleAbnormalReport(this.searchData).then(({data}) => {
  461. if (data.code == 0) {
  462. this.dataList = data.page.list
  463. this.pageIndex = data.page.currPage
  464. this.pageSize = data.page.pageSize
  465. this.totalPage = data.page.totalCount
  466. }
  467. this.dataListLoading = false
  468. })
  469. },
  470. //导出excel
  471. //导出excel
  472. async createExportData() {
  473. this.searchData.limit = -1
  474. this.searchData.page = 1
  475. await scheduleAbnormalReport(this.searchData).then(({data}) => {
  476. this.exportList= data.page.list;
  477. })
  478. return this.exportList;
  479. },
  480. startDownload() {
  481. // this.exportData = this.dataList
  482. },
  483. finishDownload() {
  484. },
  485. fields() {
  486. let json = "{"
  487. this.columnList1.forEach((item, index) => {
  488. if (index == this.columnList1.length - 1) {
  489. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  490. } else {
  491. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  492. }
  493. })
  494. json += "}"
  495. let s = eval("(" + json + ")")
  496. return s
  497. },
  498. },
  499. }
  500. </script>
  501. <style scoped>
  502. </style>