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.

589 lines
18 KiB

6 months ago
5 months ago
6 months ago
5 months ago
6 months ago
  1. <template>
  2. <div class="customer-css">
  3. <el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners"
  4. width="610px" style="height: 680px;" class="customer-dialog">
  5. <el-container>
  6. <el-container style="height: 140px;">
  7. <el-form :inline="true" label-position="top" label-width="80px">
  8. <!-- 不良代码 和日期 -->
  9. <el-row>
  10. <el-col :span="6">
  11. <el-form-item>
  12. <span slot="label" style="" @click="getBaseList(89)"><a herf="#">{{labels.defectCode}}</a></span>
  13. <el-input ref="defectCode" v-model="pageData.defectCode" @blur="checkDefectDesc" @keydown="upCaseDefectCode"
  14. style="width: 120px" @keyup.enter.native="getDefectDesc" ></el-input>
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="6">
  18. <el-form-item :label=labels.defectQty>
  19. <el-input v-model="pageData.defectQty" style="width: 120px"></el-input>
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="6">
  23. <el-form-item :label=labels.reportDate >
  24. <el-date-picker v-model="pageData.reportDate"
  25. style="width: 120px" format="yyyy-MM-dd"
  26. value-format="yyyy-MM-dd">
  27. </el-date-picker>
  28. </el-form-item>
  29. </el-col>
  30. </el-row>
  31. <el-row>
  32. <el-col :span="18">
  33. <el-form-item :label=labels.defectDesc>
  34. <el-input :readonly="true" v-model="pageData.defectDesc" style="width: 495px"></el-input>
  35. </el-form-item>
  36. </el-col>
  37. </el-row>
  38. </el-form>
  39. </el-container>
  40. <el-container style="margin-left: 60px;">
  41. <el-form :inline="true" label-position="top" label-width="80px">
  42. <!-- 不良代码 和日期 -->
  43. <el-row style="margin-top: 0px;">
  44. <el-col :span="6">
  45. <el-form-item style="margin-top: 15px;">
  46. <el-button type="primary" style="margin-left: -10px; margin-bottom: 5px;"
  47. @click="reportDefectFun">
  48. {{ buttons.insertButton }}</el-button>
  49. </el-form-item>
  50. </el-col>
  51. </el-row>
  52. <el-row style="margin-top: 15px;">
  53. <el-col :span="6">
  54. <el-form-item style="margin-top: 15px;">
  55. <el-button type="primary" @click="closeDialog"
  56. style="margin-left: -10px; margin-bottom: 5px;">
  57. {{buttons.closeButton}}</el-button>
  58. </el-form-item>
  59. <!-- <el-form-item style="margin-top: 15px;">-->
  60. <!-- <el-button v-if="showDefault" @click="saveMultiLanguage()" type="primary">多语言设置</el-button>-->
  61. <!-- </el-form-item>-->
  62. </el-col>
  63. </el-row>
  64. </el-form>
  65. </el-container>
  66. </el-container>
  67. <!-- 不良记录 -->
  68. <el-container>
  69. <fieldset class="customer-fieldset" style="margin-top: -35px; margin-bottom: 15px;">
  70. <legend>{{labels.defectList}}</legend>
  71. <el-container style="width: 580px;" class="customer-tab">
  72. <el-table
  73. height="250"
  74. :data="sfdcDefectList"
  75. border
  76. v-loading="dataListLoading"
  77. style="width: 100%; margin-top: -5px;">
  78. <el-table-column
  79. v-for="(item,index) in columnDefectArray" :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. :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]"
  91. style="width: 100px; height: 80px"/></span>
  92. </template>
  93. </el-table-column>
  94. </el-table>
  95. </el-container>
  96. </fieldset>
  97. </el-container>
  98. </el-dialog>
  99. <!--列表的组件-->
  100. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  101. </div>
  102. </template>
  103. <script>
  104. import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/
  105. import {
  106. getScheduleDefectHist,
  107. checkDefectCode,
  108. reportDefectCode,
  109. }
  110. from '@/api/yieldReport/com_defect_roll.js';
  111. import {
  112. searchSysLanguagePackList,
  113. searchSysLanguageParam,
  114. searchFunctionButtonList,
  115. saveButtonList,
  116. searchSysLanguage,
  117. searchLanguageListByLanguageCode,
  118. saveSysLanguageOne,
  119. searchPageLanguageData,
  120. removerLanguage,
  121. saveSysLanguageList
  122. } from "@/api/sysLanguage.js";
  123. var functionId = 'C10000011';
  124. export default {
  125. data() {
  126. return {
  127. titleCon: '报告不良',
  128. showDefault: false,
  129. scheduleData: {
  130. site: this.$store.state.user.site,
  131. userName: this.$store.state.user.name,
  132. seqNo: '',
  133. orderNo: '',
  134. itemNo: 0,
  135. partNo: '',
  136. workCenterNo: '',
  137. workCenterDesc: '',
  138. resourceDesc: '',
  139. rollNo: '',
  140. partDesc: '',
  141. planStartTime: '',
  142. planFinishTime: '',
  143. qtyRequiredOriginal: 0,
  144. scheduledDate: '',
  145. shiftNo: '',
  146. preItemDesc: '',
  147. nextItemDesc: '',
  148. nextItemNo: 0,
  149. operatorId: '',
  150. functionName: '',
  151. currentRollFlag: false
  152. },
  153. pageData: {
  154. site: this.$store.state.user.site,
  155. userName: this.$store.state.user.name,
  156. orderNo: '',
  157. itemNo: '',
  158. seqNo: '',
  159. rollNo: '',
  160. operatorId: '',
  161. operatorName: '',
  162. reportDate: '',
  163. defectCode: '',
  164. defectDesc: '',
  165. defectQty: 0,
  166. },
  167. operatorData: {
  168. site: this.$store.state.user.site,
  169. username: this.$store.state.user.name,
  170. operatorId: '',
  171. operatorName: '',
  172. status: '',
  173. seqNo: '',
  174. showFlag: false
  175. },
  176. sfdcDefectList: [],
  177. columnDefectArray: [
  178. {
  179. userId: this.$store.state.user.name,
  180. functionId: 5303,
  181. serialNumber: '5305DefectHistSeqNo',
  182. tableId: "5305Material",
  183. tableName: "不良卷",
  184. columnProp: "histSeqNo",
  185. headerAlign: "center",
  186. align: "center",
  187. columnLabel: "序号",
  188. columnWidth: 60,
  189. columnHidden: false,
  190. columnImage: false,
  191. columnSortable: false,
  192. sortLv: 0,
  193. status: true,
  194. fixed: false
  195. },
  196. {
  197. userId: this.$store.state.user.name,
  198. functionId: 5303,
  199. serialNumber: '5305DefectDefectCode',
  200. tableId: "5305Defect",
  201. tableName: "不良卷",
  202. columnProp: "defectCode",
  203. headerAlign: "center",
  204. align: "center",
  205. columnLabel: "不良代码",
  206. columnWidth: 80,
  207. columnHidden: false,
  208. columnImage: false,
  209. columnSortable: false,
  210. sortLv: 0,
  211. status: true,
  212. fixed: false
  213. },
  214. {
  215. userId: this.$store.state.user.name,
  216. functionId: 5303,
  217. serialNumber: '5305DefectDefectCode',
  218. tableId: "5305Defect",
  219. tableName: "不良卷",
  220. columnProp: "defectDesc",
  221. headerAlign: "center",
  222. align: "center",
  223. columnLabel: "不良描述",
  224. columnWidth: 160,
  225. columnHidden: false,
  226. columnImage: false,
  227. columnSortable: false,
  228. sortLv: 0,
  229. status: true,
  230. fixed: false
  231. },
  232. {
  233. userId: this.$store.state.user.name,
  234. functionId: 5303,
  235. serialNumber: '5305DefectDefectQty',
  236. tableId: "5305Defect",
  237. tableName: "不良卷",
  238. columnProp: "defectQty",
  239. headerAlign: "center",
  240. align: "center",
  241. columnLabel: "不良数量",
  242. columnWidth: 80,
  243. columnHidden: false,
  244. columnImage: false,
  245. columnSortable: false,
  246. sortLv: 0,
  247. status: true,
  248. fixed: false
  249. },
  250. {
  251. userId: this.$store.state.user.name,
  252. functionId: 5303,
  253. serialNumber: '5305DefectReportedDate',
  254. tableId: "5305Defect",
  255. tableName: "不良卷",
  256. columnProp: "reportedDate",
  257. headerAlign: "center",
  258. align: "center",
  259. columnLabel: "报告日期",
  260. columnWidth: 125,
  261. columnHidden: false,
  262. columnImage: false,
  263. columnSortable: false,
  264. sortLv: 0,
  265. status: true,
  266. fixed: false
  267. },
  268. {
  269. userId: this.$store.state.user.name,
  270. functionId: 5303,
  271. serialNumber: '5305DefectReportedBy',
  272. tableId: "5305Defect",
  273. tableName: "不良卷",
  274. columnProp: "reportedBy",
  275. headerAlign: "center",
  276. align: "center",
  277. columnLabel: "报告人",
  278. columnWidth: 75,
  279. columnHidden: false,
  280. columnImage: false,
  281. columnSortable: false,
  282. sortLv: 0,
  283. status: true,
  284. fixed: false
  285. },
  286. {
  287. userId: this.$store.state.user.name,
  288. functionId: 5303,
  289. serialNumber: '5305DefectRemark',
  290. tableId: "5305Defect",
  291. tableName: "不良卷",
  292. columnProp: "remark",
  293. headerAlign: "center",
  294. align: "center",
  295. columnLabel: "备注",
  296. columnWidth: 160,
  297. columnHidden: false,
  298. columnImage: false,
  299. columnSortable: false,
  300. sortLv: 0,
  301. status: true,
  302. fixed: false
  303. }
  304. ],
  305. dataListLoading: false,
  306. buttons: {
  307. insertButton: '插入',
  308. closeButton: '关闭',
  309. },
  310. buttonList: [
  311. {
  312. functionId: functionId,
  313. languageValue: '插入',
  314. objectId: 'insertButton',
  315. objectType: 'button',
  316. tableId: '*'
  317. }, {
  318. functionId: functionId,
  319. languageValue: '关闭',
  320. objectId: 'closeButton',
  321. objectType: 'button',
  322. tableId: '*'
  323. },
  324. ],
  325. queryButton: {
  326. functionId: functionId,
  327. table_id: '*',
  328. languageCode: this.$i18n.locale,
  329. objectType: 'button'
  330. },
  331. labels: {
  332. titleCon: '报告不良',
  333. defectCode: '不良代码:',
  334. defectQty: '不良数量:',
  335. reportDate: '报告日期:',
  336. defectDesc: '不良原因:',
  337. defectList: '不良记录',
  338. defectQtyMustMoreTanZero: '不良数量必须大于0!',
  339. pleaseScanDefectCode: '请扫描不良代码!',
  340. },
  341. labelsList: [
  342. {
  343. functionId: functionId,
  344. languageValue: '报告不良',
  345. objectId: 'titleCon',
  346. objectType: 'label',
  347. tableId: '*'
  348. }, {
  349. functionId: functionId,
  350. languageValue: '不良代码:',
  351. objectId: 'defectCode',
  352. objectType: 'label',
  353. tableId: '*'
  354. }, {
  355. functionId: functionId,
  356. languageValue: '不良数量:',
  357. objectId: 'defectQty',
  358. objectType: 'label',
  359. tableId: '*'
  360. }, {
  361. functionId: functionId,
  362. languageValue: '报告日期:',
  363. objectId: 'reportDate',
  364. objectType: 'label',
  365. tableId: '*'
  366. }, {
  367. functionId: functionId,
  368. languageValue: '不良原因:',
  369. objectId: 'defectDesc',
  370. objectType: 'label',
  371. tableId: '*'
  372. }, {
  373. functionId: functionId,
  374. languageValue: '不良记录',
  375. objectId: 'defectList',
  376. objectType: 'label',
  377. tableId: '*'
  378. }, {
  379. functionId: functionId,
  380. languageValue: '不良数量必须大于0!',
  381. objectId: 'defectQtyMustMoreTanZero',
  382. objectType: 'label',
  383. tableId: '*'
  384. }, {
  385. functionId: functionId,
  386. languageValue: '请扫描不良代码!',
  387. objectId: 'pleaseScanDefectCode',
  388. objectType: 'label',
  389. tableId: '*'
  390. },
  391. ],
  392. queryLabel: {
  393. functionId: functionId,
  394. table_id: '*',
  395. languageCode: this.$i18n.locale,
  396. objectType: 'label'
  397. },
  398. }
  399. },
  400. /*组件*/
  401. components: {
  402. Chooselist,/*列表的组件*/
  403. },
  404. methods: {
  405. //初始化组件的参数
  406. init(scheduleData, operatorData) {
  407. //初始化参数
  408. this.scheduleData = scheduleData;
  409. //初始化操作员对象
  410. this.operatorData = JSON.parse(JSON.stringify(operatorData));
  411. //设置参数
  412. this.pageData.orderNo = scheduleData.orderNo;
  413. this.pageData.itemNo = scheduleData.itemNo;
  414. this.pageData.seqNo = scheduleData.seqNo;
  415. this.pageData.rollNo = scheduleData.rollNo;
  416. this.pageData.operatorId = operatorData.operatorId;
  417. this.pageData.operatorName = operatorData.operatorName;
  418. //清空数据
  419. this.pageData.defectQty = 0;
  420. this.pageData.defectCode = '';
  421. this.pageData.defectDesc = '';
  422. //重置时间
  423. this.pageData.reportDate = this.dayjs(new Date()).format('YYYY-MM-DD');
  424. //判断是否启用多语言
  425. // this.getMultiLanguageList(); //刷新多语言的信息
  426. //自动获取焦点
  427. this.$nextTick(() => {
  428. this.$refs.defectCode.focus();
  429. });
  430. //刷新当前不良记录列表
  431. this.refreshPageTable();
  432. //初始化标题
  433. this.titleCon = this.labels.titleCon;
  434. },
  435. /*关闭modal*/
  436. closeDialog(){
  437. //刷新报工的页面
  438. this.$emit('refreshPageData');
  439. //关闭当前的页面
  440. this.$emit('update:visible', false);
  441. },
  442. /*刷新页面的table数据*/
  443. refreshPageTable(){
  444. getScheduleDefectHist(this.pageData).then(({data}) => {
  445. this.sfdcDefectList = data.rows;
  446. });
  447. },
  448. /*检查不良代码*/
  449. getDefectDesc(){
  450. checkDefectCode(this.pageData).then(({data}) => {
  451. //判断是否存在异常
  452. if(data.code == 500){
  453. //this.$message.error(data.msg);
  454. this.pageData.defectDesc = ''
  455. }else{
  456. let resultMap = data.resultMap;
  457. this.pageData.defectDesc = resultMap.defectDesc;
  458. }
  459. })
  460. },
  461. /*不提示错误信息的*/
  462. checkDefectDesc(){
  463. checkDefectCode(this.pageData).then(({data}) => {
  464. //判断是否存在异常
  465. if(data.code == 500){
  466. this.pageData.defectDesc = ''
  467. }else{
  468. let resultMap = data.resultMap;
  469. this.pageData.defectDesc = resultMap.defectDesc;
  470. }
  471. })
  472. },
  473. /*报告不良代码*/
  474. reportDefectFun(){
  475. //判断数量是否正常
  476. if(this.pageData.defectQty <= 0){
  477. this.$message.error('不良数量必须大于0!');
  478. return false;
  479. }
  480. if(this.pageData.defectCode == null || this.pageData.defectCode == ''){
  481. this.$message.error('请扫描不良代码!');
  482. return false;
  483. }
  484. reportDefectCode(this.pageData).then(({data}) => {
  485. if(data.code == 500){
  486. this.$message.error(data.msg);
  487. }else{
  488. //清空信息二次报告
  489. this.pageData.defectQty = 0;
  490. this.pageData.defectCode = '';
  491. this.pageData.defectDesc = '';
  492. //刷新列表
  493. this.refreshPageTable();
  494. }
  495. });
  496. },
  497. /*强制大写属性编码*/
  498. upCaseDefectCode(){
  499. this.pageData.defectCode = this.pageData.defectCode.toUpperCase();
  500. },
  501. /*列表方法的回调*/
  502. getBaseData(val){
  503. if (this.tagNo === 89){
  504. this.pageData.defectCode = val.DefectCode;
  505. this.pageData.defectDesc = val.DefectDesc;
  506. }
  507. },
  508. // 获取基础数据列表
  509. getBaseList(val){
  510. this.tagNo = val
  511. this.$nextTick(() => {
  512. let strVal = "";
  513. if (val === 89){
  514. strVal = this.pageData.defectCode;
  515. }
  516. this.$refs.baseList.init(val, strVal)
  517. })
  518. },
  519. // 保存 默认配置 列
  520. async saveMultiLanguage() {
  521. // 保存页面 button label title 属性
  522. let buttons = this.buttonList;
  523. let labels = this.labelsList;
  524. await saveButtonList(buttons)
  525. await saveButtonList(labels)
  526. },
  527. getMultiLanguageList() {
  528. //首先查询当前按钮的多语言
  529. searchFunctionButtonList(this.queryButton).then(({data}) => {
  530. if (data && data.code == 0 ) {
  531. this.buttons = data.data
  532. } else {
  533. // saveButtonList(this.buttonList).then(({data}) => {
  534. // })
  535. }
  536. });
  537. //其次查询当前标签的多语言
  538. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  539. if (data && data.code == 0 ) {
  540. this.labels = data.data
  541. } else {
  542. // saveButtonList(this.buttonList).then(({data}) => {
  543. // })
  544. }
  545. });
  546. },
  547. },
  548. watch:{
  549. pageData: {
  550. deep: true,
  551. handler: function (newV, oldV) {
  552. this.pageData.defectCode = this.pageData.defectCode.toUpperCase();
  553. }
  554. }
  555. },
  556. created() {
  557. // this.factoryList()
  558. // this.getLanguageList()
  559. },
  560. }
  561. </script>
  562. <style scoped lang="scss">
  563. </style>