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.

873 lines
40 KiB

3 weeks ago
  1. 
  2. @{
  3. ViewBag.Title = "";
  4. Layout = "~/Views/Shared/_Form.cshtml";
  5. }
  6. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  7. <!--引入 element-ui 的样式,-->
  8. <link rel="stylesheet" href="~/Content/element-ui/lib/theme-chalk/index.css">
  9. <script src="~/Content/vue/dist/vue.js"></script>
  10. <script src="~/Content/element-ui/lib/index.js"></script>
  11. <script src="~/Content/axios.min.js"></script>
  12. <style>
  13. .el-table .isRedFont {
  14. color: red;
  15. /* background: oldlace;*/
  16. }
  17. </style>
  18. <form id="form1">
  19. <div id="app">
  20. <template>
  21. <el-form ref="form" :model="form" :rules="rules" label-width="130px">
  22. @*<el-divider>主表信息</el-divider>*@
  23. <el-row :gutter="24">
  24. <el-col :span="4">
  25. <el-form-item label="物料编码" prop="InvCode">
  26. <el-input v-model="form.InvCode" placeholder="请输入内容" size="mini" :disabled="true"></el-input>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="4">
  30. <el-form-item label="物料名称" prop="InvName">
  31. <el-input v-model="form.InvName" placeholder="请输入内容" size="mini" :disabled="true"></el-input>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="4">
  35. <el-form-item label="批次" prop="InvBatcgNo">
  36. <el-input v-model="form.InvBatcgNo" placeholder="请输入内容" size="mini" :disabled="true"></el-input>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="4">
  40. <el-form-item label="异常单号" prop="EATTRIBUTE7">
  41. <el-input v-model="form.EATTRIBUTE7" placeholder="请输入内容" size="mini" ></el-input>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="4">
  45. <el-form-item label="备注" prop="Remark">
  46. <el-input v-model="form.Remark" placeholder="请输入内容" size="mini" ></el-input>
  47. </el-form-item>
  48. </el-col>
  49. </el-row>
  50. <el-row :gutter="24">
  51. <el-col :span="4">
  52. <el-form-item label="批次数量" prop="InvBatcgQty">
  53. <el-input v-model="form.InvBatcgQty" size="mini" :disabled="true"></el-input>
  54. </el-form-item>
  55. </el-col>
  56. <el-col :span="4">
  57. <el-form-item label="单位" prop="InvUnit">
  58. <el-input v-model="form.InvUnit" size="mini" :disabled="true"></el-input>
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="4">
  62. <el-form-item label="抽检数量" prop="AqlCheckQty">
  63. <el-input v-model="form.AqlCheckQty" size="mini" :disabled="true"></el-input>
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="4">
  67. <el-form-item label="检验结果" prop="Result">
  68. <el-input v-model="form.Result" size="mini" :disabled="true"></el-input>
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. <div v-if="showIQCGroupHeader">
  73. <el-row :gutter="24">
  74. <el-col :span="4">
  75. <el-form-item label="判定结果" prop="IQCGroupHeaderResult">
  76. <el-radio-group v-model="form.IQCGroupHeaderResult">
  77. <el-radio-button label="OK"></el-radio-button>
  78. <el-radio-button label="NG"></el-radio-button>
  79. </el-radio-group>
  80. </el-form-item>
  81. </el-col>
  82. <el-col :span="6">
  83. <el-form-item label="判定结论" prop="IQCGroupHeaderRemark">
  84. <el-input v-model="form.IQCGroupHeaderRemark" size="mini"></el-input>
  85. </el-form-item>
  86. </el-col>
  87. <el-col :span="6">
  88. <el-form-item label="不良分类" prop="BRGCode">
  89. <el-select v-model="form.BRGCode" placeholder="请选择" size="mini">
  90. <el-option v-for="item in dataSource4BRGCode"
  91. :key="item.value"
  92. :label="item.label"
  93. :value="item.value">
  94. </el-option>
  95. </el-select>
  96. </el-form-item>
  97. </el-col>
  98. </el-row>
  99. </div>
  100. <div v-if="showSQEEngineer">
  101. <el-row :gutter="24">
  102. <el-col :span="4">
  103. <el-form-item label="判定结果" prop="SQEEngineerResult">
  104. <el-radio-group v-model="form.SQEEngineerResult">
  105. <el-radio-button label="OK"></el-radio-button>
  106. <el-radio-button label="NG"></el-radio-button>
  107. </el-radio-group>
  108. </el-form-item>
  109. </el-col>
  110. <el-col :span="6">
  111. <el-form-item label="判定结论" prop="SQEEngineerRemark">
  112. <el-input v-model="form.SQEEngineerRemark" size="mini"></el-input>
  113. </el-form-item>
  114. </el-col>
  115. @*<el-col :span="6">
  116. <el-form-item label="不良分类" prop="BRGCode">
  117. <el-select v-model="form.BRGCode" placeholder="请选择" size="mini" :disabled="true">
  118. <el-option v-for="item in dataSource4BRGCode"
  119. :key="item.value"
  120. :label="item.label"
  121. :value="item.value">
  122. </el-option>
  123. </el-select>
  124. </el-form-item>
  125. </el-col>*@
  126. <el-col :span="6">
  127. <el-form-item label="处理方案" prop="EATTRIBUTE1">
  128. <el-select v-model="form.EATTRIBUTE1" placeholder="请选择" size="mini">
  129. <el-option v-for="item in dataSource4HandleWay"
  130. :key="item.label"
  131. :label="item.label"
  132. :value="item.label">
  133. </el-option>
  134. </el-select>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="4">
  138. <a id="NF-Uploading" authorize="yes" class="btn btn-primary dropdown-text" onclick="UpLoadClick()"><i class="fa fa-file-excel-o"></i>上传</a>
  139. <input id='FileUp2' type='file' style="display: none" v-on:change="change4FileUp2" />
  140. </el-col>
  141. </el-row>
  142. @*<el-row :gutter="24">
  143. <el-col :span="4">
  144. <el-form-item label="IQC组长判定结果" prop="IQCGroupHeaderResult">
  145. <el-input v-model="form.IQCGroupHeaderResult" size="mini" :disabled="true"></el-input>
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="6">
  149. <el-form-item label="IQC组长判定结论" prop="IQCGroupHeaderRemark">
  150. <el-input v-model="form.IQCGroupHeaderRemark" size="mini" :disabled="true"></el-input>
  151. </el-form-item>
  152. </el-col>
  153. <el-col :span="4">
  154. <a id="NF-Uploading" authorize="yes" class="btn btn-primary dropdown-text" onclick="UpLoadClick()"><i class="fa fa-file-excel-o"></i>上传</a>
  155. <input id='FileUp2' type='file' style="display: none" v-on:change="change4FileUp2" />
  156. </el-col>
  157. </el-row>*@
  158. </div>
  159. <div v-if="showIQCHeader">
  160. <el-row :gutter="24">
  161. <el-col :span="6">
  162. <el-form-item label="判定结果" prop="IQCHeaderResult">
  163. <el-radio-group v-model="form.IQCHeaderResult">
  164. <el-radio-button label="OK"></el-radio-button>
  165. <el-radio-button label="NG"></el-radio-button>
  166. </el-radio-group>
  167. </el-form-item>
  168. </el-col>
  169. <el-col :span="6">
  170. <el-form-item label="判定结论" prop="IQCHeaderRemark">
  171. <el-input v-model="form.IQCHeaderRemark" size="mini"></el-input>
  172. </el-form-item>
  173. </el-col>
  174. <el-col :span="6">
  175. <el-form-item label="不良分类" prop="BRGCode">
  176. <el-select v-model="form.BRGCode" placeholder="请选择" size="mini">
  177. <el-option v-for="item in dataSource4BRGCode"
  178. :key="item.value"
  179. :label="item.label"
  180. :value="item.value">
  181. </el-option>
  182. </el-select>
  183. </el-form-item>
  184. </el-col>
  185. </el-row>
  186. <el-row :gutter="24">
  187. <el-col :span="6">
  188. <el-form-item label="IQC组长判定" prop="IQCGroupHeaderResult">
  189. <el-input v-model="form.IQCGroupHeaderResult" size="mini" :disabled="true"></el-input>
  190. </el-form-item>
  191. </el-col>
  192. <el-col :span="6">
  193. <el-form-item label="IQC组长判定" prop="IQCGroupHeaderRemark">
  194. <el-input v-model="form.IQCGroupHeaderRemark" size="mini" :disabled="true"></el-input>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="6">
  198. <el-form-item label="不良现象" prop="BCGCode">
  199. <el-select v-model="form.BCGCode" placeholder="请选择" size="mini" v-on:change="change4BCGCode">
  200. <el-option v-for="item in dataSource4BCGCode"
  201. :key="item.value"
  202. :label="item.label"
  203. :value="item.value">
  204. </el-option>
  205. </el-select>
  206. </el-form-item>
  207. </el-col>
  208. </el-row>
  209. <el-row :gutter="24">
  210. <el-col :span="6">
  211. <el-form-item label="SQE工程师判定" prop="SQEEngineerResult">
  212. <el-input v-model="form.SQEEngineerResult" size="mini" :disabled="true"></el-input>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="6">
  216. <el-form-item label="SQE工程师结论" prop="SQEEngineerRemark">
  217. <el-input v-model="form.SQEEngineerRemark" size="mini" :disabled="true"></el-input>
  218. </el-form-item>
  219. </el-col>
  220. <el-col :span="6">
  221. <el-form-item label="不良现象明细" prop="BadReasonCode">
  222. <el-select v-model="form.BadReasonCode" placeholder="请选择" size="mini">
  223. <el-option v-for="item in dataSource4BadReasonCode"
  224. :key="item.value"
  225. :label="item.label"
  226. :value="item.value">
  227. </el-option>
  228. </el-select>
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="6">
  232. <el-form-item label="SQE处理方案" prop="EATTRIBUTE1">
  233. <el-select v-model="form.EATTRIBUTE1" placeholder="请选择" size="mini" :disabled="true">
  234. <el-option v-for="item in dataSource4HandleWay"
  235. :key="item.label"
  236. :label="item.label"
  237. :value="item.label">
  238. </el-option>
  239. </el-select>
  240. </el-form-item>
  241. </el-col>
  242. </el-row>
  243. </div>
  244. <el-divider>尺寸检验</el-divider>
  245. <el-row :gutter="24">
  246. <el-col :span="24">
  247. <el-table ref="singleTable" highlight-current-row
  248. :data="dataSource4CC"
  249. style="width: 100%"
  250. stripe border
  251. size="mini"
  252. height="300"
  253. v-on:current-change="handleCurrentChange4CC">
  254. <el-table-column type="index" width="50"></el-table-column>
  255. <el-table-column prop="CheckAttrText" label="分类" width="60">
  256. </el-table-column>
  257. <el-table-column prop="CheckItemName" label="检验描述" width="300">
  258. </el-table-column>
  259. <el-table-column prop="CheckWay" label="检验方法" width="140">
  260. </el-table-column>
  261. <el-table-column prop="CheckAqlName" label="抽样标准" width="150">
  262. </el-table-column>
  263. <el-table-column prop="SetValueMax" label="上限值" width="60">
  264. </el-table-column>
  265. <el-table-column prop="SetValueMin" label="下限值" width="60">
  266. </el-table-column>
  267. <el-table-column prop="Unit" label="单位" width="60">
  268. </el-table-column>
  269. <el-table-column prop="S1" label="S1" width="80">
  270. <template slot-scope="scope">
  271. <span :class="isRedClass(scope.row.S1,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S1 }}</span>
  272. </template>
  273. </el-table-column>
  274. <el-table-column prop="S2" label="S2" width="80">
  275. <template slot-scope="scope">
  276. <span :class="isRedClass(scope.row.S2,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S2 }}</span>
  277. </template>
  278. </el-table-column>
  279. <el-table-column prop="S3" label="S3" width="80">
  280. <template slot-scope="scope">
  281. <span :class="isRedClass(scope.row.S3,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S3 }}</span>
  282. </template>
  283. </el-table-column>
  284. <el-table-column prop="S4" label="S4" width="80">
  285. <template slot-scope="scope">
  286. <span :class="isRedClass(scope.row.S4,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S4 }}</span>
  287. </template>
  288. </el-table-column>
  289. <el-table-column prop="S5" label="S5" width="80">
  290. <template slot-scope="scope">
  291. <span :class="isRedClass(scope.row.S5,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S5 }}</span>
  292. </template>
  293. </el-table-column>
  294. <el-table-column prop="S6" label="S6" width="80">
  295. <template slot-scope="scope">
  296. <span :class="isRedClass(scope.row.S6,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S6 }}</span>
  297. </template>
  298. </el-table-column>
  299. <el-table-column prop="S7" label="S7" width="80">
  300. <template slot-scope="scope">
  301. <span :class="isRedClass(scope.row.S7,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S7 }}</span>
  302. </template>
  303. </el-table-column>
  304. <el-table-column prop="S8" label="S8" width="80">
  305. <template slot-scope="scope">
  306. <span :class="isRedClass(scope.row.S8,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S8 }}</span>
  307. </template>
  308. </el-table-column>
  309. <el-table-column prop="S9" label="S9" width="80">
  310. <template slot-scope="scope">
  311. <span :class="isRedClass(scope.row.S9,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S9 }}</span>
  312. </template>
  313. </el-table-column>
  314. <el-table-column prop="S10" label="S10" width="80">
  315. <template slot-scope="scope">
  316. <span :class="isRedClass(scope.row.S10,scope.row.SetValueMin,scope.row.SetValueMax)">{{ scope.row.S10 }}</span>
  317. </template>
  318. </el-table-column>
  319. <el-table-column prop="Result" label="判定结果" width="80">
  320. <template slot-scope="scope">
  321. <span :class="{isRedFont:scope.row.Result=='OK'?false:true}">{{ scope.row.Result }}</span>
  322. </template>
  323. </el-table-column>
  324. <el-table-column prop="Remark" label="备注" width="150">
  325. </el-table-column>
  326. </el-table>
  327. </el-col>
  328. </el-row>
  329. <el-row :gutter="24">
  330. <el-col :span="15">
  331. <el-divider>抽样检验</el-divider>
  332. <el-table ref="singleTable2" highlight-current-row
  333. :data="dataSource4WG"
  334. style="width: 100%"
  335. stripe border
  336. size="mini"
  337. height="200"
  338. v-on:current-change="handleCurrentChange4WG">
  339. <el-table-column type="index" width="50"></el-table-column>
  340. <el-table-column prop="CheckAttrText" label="分类" width="60">
  341. </el-table-column>
  342. <el-table-column prop="CheckItemName" label="检验描述" width="300">
  343. <template slot-scope="scope">
  344. <span :class="{isRedFont:scope.row.Result=='OK'?false:true}">{{ scope.row.CheckItemName }}</span>
  345. </template>
  346. </el-table-column>
  347. <el-table-column prop="CheckWay" label="检验方法" width="140">
  348. </el-table-column>
  349. <el-table-column prop="CheckAqlName" label="抽样标准" width="150">
  350. </el-table-column>
  351. <el-table-column prop="AqlQty" label="抽检数量" width="150">
  352. </el-table-column>
  353. <el-table-column prop="GoodQty" label="合格数量" width="100">
  354. </el-table-column>
  355. <el-table-column prop="NgQty" label="不合格数量" width="100">
  356. </el-table-column>
  357. <el-table-column prop="Result" label="判定结果" width="150">
  358. <template slot-scope="scope">
  359. <span :class="{isRedFont:scope.row.Result=='OK'?false:true}">{{ scope.row.Result }}</span>
  360. </template>
  361. </el-table-column>
  362. <el-table-column prop="Remark" label="备注" width="150">
  363. </el-table-column>
  364. </el-table>
  365. </el-col>
  366. <el-col :span="9">
  367. <el-divider>性能检验</el-divider>
  368. <el-table ref="singleTable3" highlight-current-row
  369. :data="dataSource4XN"
  370. style="width: 100%"
  371. stripe border
  372. size="mini"
  373. height="200"
  374. v-on:current-change="handleCurrentChange4XN">
  375. <el-table-column type="index" width="50"></el-table-column>
  376. <el-table-column prop="CheckAttrText" label="分类" width="60">
  377. </el-table-column>
  378. <el-table-column prop="CheckItemName" label="检验描述" width="300">
  379. <template slot-scope="scope">
  380. <span :class="{isRedFont:scope.row.Result=='OK'?false:true}">{{ scope.row.CheckItemName }}</span>
  381. </template>
  382. </el-table-column>
  383. <el-table-column prop="Result" label="检验结果" width="100">
  384. <template slot-scope="scope">
  385. <span :class="{isRedFont:scope.row.Result=='OK'?false:true}">{{ scope.row.Result }}</span>
  386. </template>
  387. </el-table-column>
  388. <el-table-column prop="Remark" label="备注" width="100">
  389. </el-table-column>
  390. </el-table>
  391. </el-col>
  392. </el-row>
  393. </el-form>
  394. </template>
  395. </div>
  396. </form>
  397. <script type="text/javascript">
  398. //const { Console } = require("node:console");
  399. function UpLoadClick() {
  400. //var ids = $("#gridList").jqGrid('getGridParam', 'selarrrow'); //获取 多行数据
  401. //if (ids.length != 1) {
  402. // $.modalAlertNew("WMS00050");
  403. // return;
  404. //}
  405. $("#FileUp2").click();
  406. }
  407. var vm = new Vue({
  408. el: '#app',
  409. data: {
  410. id:'',
  411. userCode: "",
  412. ssList: [],
  413. form: {},
  414. dataSource4CC: [],
  415. dataSource4WG: [],
  416. dataSource4XN: [],
  417. currentRow4CC: null,
  418. currentRow4WG: null,
  419. currentRow4XN: null,
  420. rules: {
  421. },
  422. disabled4RulesCode: false,
  423. dataSource4BRGCode: [],//
  424. dataSource4BCGCode: [],//
  425. dataSource4BadReasonCode: [],//
  426. dataSource4HandleWay:[],
  427. judgeRole: '',
  428. showIQCGroupHeader: false,
  429. showIQCHeader: false,
  430. showSQEEngineer: false,
  431. },
  432. //挂在DOM 触发
  433. mounted() {
  434. //let reactiveObject = {
  435. //};
  436. //this.form = reactiveObject;
  437. // this.loadGrid();
  438. // this.show();
  439. this.id = '@ViewData["ids"]';
  440. this.judgeRole = '@ViewData["judgeRole"]';
  441. console.log(this.id);
  442. console.log(this.judgeRole);
  443. this.initControl();
  444. // console.log(this.id);
  445. },
  446. beforeDestroy() {
  447. // this.autoScrol1(true);
  448. },
  449. methods: {
  450. change4FileUp2(e) {
  451. debugger;
  452. var files = e.target.files;
  453. var fileName = files[0].name;
  454. // vm.setExFileName(fileName);
  455. this.form.SQEFile = fileName;
  456. if (fileName != null && fileName != "") {
  457. var data = new FormData();
  458. jQuery.each(jQuery('#FileUp2')[0].files, function (i, file) {
  459. data.append('file-' + i, file);
  460. });
  461. data.append("ID", '001');
  462. // data.append("LableName", LableName);
  463. $.modalConfirm("确定上传文件吗?", function (r) {
  464. if (r) {
  465. $.ajax({
  466. url: "/BBWMS/IQCQuality/UpLoadMaterialCheckExFile" + "?" + Math.random(),
  467. type: "post",
  468. data: data,
  469. contentType: false,
  470. processData: false,
  471. dataType: "json",
  472. success: function (data) {
  473. // console.log(data);
  474. if (data.message == "上传成功!") {
  475. $.modalMsg("操作成功", "success");
  476. // $.currentWindow().$("#gridList").trigger("reloadGrid");
  477. }
  478. else {
  479. $.modalMsg(data.message, "warning");
  480. }
  481. },
  482. error: function (aa) {
  483. $.modalAlertNew("WMS00016", aa);
  484. }
  485. });
  486. }
  487. });
  488. }
  489. },
  490. isRedClass(val,minVal,maxVal) {
  491. return {
  492. isRedFont: ((val >= minVal && val <= maxVal) || val == 0) ? false : true
  493. };
  494. },
  495. getAllHandleWay() {
  496. axios
  497. .get('/BBWMS/IQCQuality/GetSelectItemList?keyValue=Decision')
  498. .then(function (res) {
  499. //debugger;
  500. if (res.data) {
  501. res.data.forEach(function (el, i) {
  502. Vue.set(vm.dataSource4HandleWay, i, el)
  503. });
  504. }
  505. })
  506. .catch(function (error) { // 请求失败处理
  507. alert(error);
  508. });
  509. },
  510. getAllBRGCode() {
  511. axios
  512. .get('/BBWMS/IQCQuality/GetSelectBadCodeGroupList')
  513. .then(function (res) {
  514. //debugger;
  515. if (res.data) {
  516. res.data.forEach(function (el, i) {
  517. Vue.set(vm.dataSource4BRGCode, i, el)
  518. });
  519. }
  520. })
  521. .catch(function (error) { // 请求失败处理
  522. alert(error);
  523. });
  524. },
  525. getAllBCGCode() {
  526. axios
  527. .get('/BBWMS/IQCQuality/GetSelectBadReasonGroupList')
  528. .then(function (res) {
  529. //debugger;
  530. if (res.data) {
  531. res.data.forEach(function (el, i) {
  532. Vue.set(vm.dataSource4BCGCode, i, el)
  533. });
  534. }
  535. })
  536. .catch(function (error) { // 请求失败处理
  537. alert(error);
  538. });
  539. },
  540. getAllBCGCodeDetail(code) {
  541. axios
  542. .get('/BBWMS/IQCQuality/GetSelectBadReasonList?keyValue=' + code+'')
  543. .then(function (res) {
  544. //debugger;
  545. if (res.data) {
  546. res.data.forEach(function (el, i) {
  547. Vue.set(vm.dataSource4BadReasonCode, i, el)
  548. });
  549. }
  550. })
  551. .catch(function (error) { // 请求失败处理
  552. alert(error);
  553. });
  554. },
  555. change4BCGCode(val) {
  556. if (!val) {
  557. return;
  558. }
  559. this.getAllBCGCodeDetail(val);
  560. },
  561. change4S1(currentValue, oldValue) {
  562. console.log('S1数改变');
  563. //debugger;
  564. let currentRow = this.dataSource4CC.filter((x) => x.ID == this.currentRow4CC.ID)[0];
  565. if (!currentRow) {
  566. return;
  567. }
  568. if (currentValue >= currentRow.SetValueMin && currentValue <= currentRow.SetValueMax) {
  569. currentRow.Result = "OK";
  570. }
  571. else {
  572. currentRow.Result = "NG";
  573. }
  574. },
  575. change4GoodQty(currentValue, oldValue) {
  576. console.log('OK数改变');
  577. //debugger;
  578. let currentRow = this.dataSource4WG.filter((x) => x.ID == this.currentRow4WG.ID)[0];
  579. if (currentRow) {
  580. currentRow.NgQty = currentRow.AqlQty - currentValue;
  581. if (currentRow.NgQty < 0) {
  582. currentRow.GoodQty = 0;
  583. currentRow.NgQty = 0;
  584. }
  585. else {
  586. this.judgeWGRowResult(currentRow);
  587. }
  588. }
  589. },
  590. change4NgQty(currentValue, oldValue) {
  591. console.log('NG数改变');
  592. let currentRow = this.dataSource4WG.filter((x) => x.ID == this.currentRow4WG.ID)[0];
  593. if (currentRow) {
  594. currentRow.GoodQty = currentRow.AqlQty - currentValue;
  595. if (currentRow.GoodQty < 0) {
  596. currentRow.GoodQty = 0;
  597. currentRow.NgQty = 0;
  598. }
  599. else {
  600. this.judgeWGRowResult(currentRow);
  601. }
  602. }
  603. },
  604. judgeCCRowResult() {
  605. },
  606. judgeWGRowResult(currentRow) {
  607. if (!currentRow) {
  608. return;
  609. }
  610. if (currentRow.NgQty <= this.form.AllowNgQty) {
  611. currentRow.Result = "OK";
  612. }
  613. else {
  614. currentRow.Result = "NG";
  615. }
  616. },
  617. initControl: function () {
  618. let that = this;
  619. let orgName = '';
  620. this.disabled4RulesCode = this.id ? true : false;
  621. let userName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName';
  622. // console.log(userName);
  623. this.getAllBRGCode();
  624. this.getAllBCGCode();
  625. this.getAllHandleWay();
  626. this.getData();
  627. },
  628. finalJudge() {
  629. if (this.dataSource4CC.length == 0 || this.dataSource4WG.length == 0) {
  630. $.modalMsg("必须存在检验项目", "warning");
  631. return false;
  632. }
  633. this.dataSource4CC.forEach((item) => {
  634. if (item.Result == 'NG') {
  635. this.form.Result = "NG";
  636. }
  637. })
  638. this.dataSource4WG.forEach((item) => {
  639. if (item.Result == 'NG') {
  640. this.form.Result = "NG";
  641. }
  642. })
  643. if (!this.form.Result) {
  644. this.form.Result = "OK";
  645. }
  646. },
  647. queryCheckRecord() {
  648. },
  649. getData() {
  650. if (!this.id) return;
  651. let _this = this;
  652. axios
  653. .get('/BBWMS/IQCQuality/GetMaterialReJudgeMain?keyValue=' + _this.id)
  654. .then(function (res) {
  655. // debugger;
  656. if (res.data) {
  657. for (var i in res.data) {
  658. Vue.set(vm.form, i, res.data[i]);
  659. }
  660. _this.form.JudgeRole = _this.judgeRole;
  661. res.data.CCList.forEach(function (el, i) {
  662. Vue.set(vm.dataSource4CC, i, el)
  663. });
  664. res.data.WGList.forEach(function (el, i) {
  665. Vue.set(vm.dataSource4WG, i, el)
  666. });
  667. res.data.XNList.forEach(function (el, i) {
  668. Vue.set(vm.dataSource4XN, i, el)
  669. });
  670. if (_this.judgeRole == 'IQCGroupHeader') {
  671. _this.showIQCGroupHeader = true;
  672. _this.showIQCHeader = false;
  673. _this.showSQEEngineer = false;
  674. if (!_this.form.IQCGroupHeaderResult) {
  675. _this.form.IQCGroupHeaderResult = 'OK';
  676. }
  677. }
  678. else if (_this.judgeRole == 'IQCHeader') {
  679. _this.showIQCGroupHeader = false;
  680. _this.showIQCHeader = true;
  681. _this.showSQEEngineer = false;
  682. if (!_this.form.IQCHeaderResult) {
  683. _this.form.IQCHeaderResult = 'OK';
  684. }
  685. }
  686. else if (_this.judgeRole == 'SQEEngineer') {
  687. _this.showIQCGroupHeader = false;
  688. _this.showIQCHeader = false;
  689. _this.showSQEEngineer = true;
  690. if (!_this.form.SQEEngineerResult) {
  691. _this.form.SQEEngineerResult = 'OK';
  692. }
  693. }
  694. else if (_this.judgeRole == '') {
  695. }
  696. else {
  697. }
  698. }
  699. })
  700. .catch(function (error) { // 请求失败处理
  701. alert(error);
  702. });
  703. },
  704. //选中行变化
  705. handleCurrentChange4CC(val) {
  706. this.currentRow4CC = val;
  707. console.log('尺寸行变化');
  708. },
  709. handleCurrentChange4WG(val) {
  710. this.currentRow4WG = val;
  711. console.log('外观行变化');
  712. },
  713. handleCurrentChange4XN(val) {
  714. this.currentRow4XN = val;
  715. //console.log('外观行变化');
  716. },
  717. submitCheck() {
  718. debugger;
  719. let _this = this;
  720. if (!this.form.Result) {
  721. $.modalMsg("必须存在最终检验结果", "warning");
  722. return false;
  723. }
  724. if (_this.judgeRole == 'IQCGroupHeader') {
  725. if (!this.form.IQCGroupHeaderResult) {
  726. $.modalMsg("必须存在判定结果", "warning");
  727. return false;
  728. }
  729. if (!this.form.IQCGroupHeaderRemark) {
  730. $.modalMsg("判定必须填写原因", "warning");
  731. return false;
  732. }
  733. if (this.form.IQCGroupHeaderResult == "NG") {
  734. if (!this.form.BRGCode) {
  735. $.modalMsg("判定不合格必须填写选择不良分类", "warning");
  736. return false;
  737. }
  738. }
  739. }
  740. else if (_this.judgeRole == 'IQCHeader') {
  741. if (!this.form.IQCHeaderResult) {
  742. $.modalMsg("必须存在判定结果", "warning");
  743. return false;
  744. }
  745. if (!this.form.IQCHeaderRemark) {
  746. $.modalMsg("判定必须填写原因", "warning");
  747. return false;
  748. }
  749. }
  750. else if (_this.judgeRole == 'SQEEngineer') {
  751. if (!this.form.SQEEngineerResult) {
  752. $.modalMsg("必须存在判定结果", "warning");
  753. return false;
  754. }
  755. if (!this.form.SQEEngineerRemark) {
  756. $.modalMsg("判定必须填写原因", "warning");
  757. return false;
  758. }
  759. if (!this.form.EATTRIBUTE1) {
  760. $.modalMsg("判定必须填写解决方案", "warning");
  761. return false;
  762. }
  763. }
  764. else {
  765. }
  766. //this.dataSource4CC.forEach((item) => {
  767. // if (!item.Result) {
  768. // }
  769. //})
  770. //this.form.CCList = this.dataSource4CC;
  771. //this.form.WGList = this.dataSource4WG;
  772. this.$refs['form'].validate((valid) => {
  773. if (valid) {
  774. //alert('submit!');
  775. $.submitForm({
  776. url: "/BBWMS/IQCQuality/SaveMaterialCheckReJudgeResult",
  777. param: { keyValue: JSON.stringify(this.form) },
  778. success: function () {
  779. $.currentWindow().$("#gridList").trigger("reloadGrid");
  780. }
  781. })
  782. } else {
  783. console.log('error submit!!');
  784. return false;
  785. }
  786. });
  787. // console.log(result);
  788. },
  789. },
  790. });
  791. function submitForm() {
  792. //debugger;
  793. vm.submitCheck();
  794. }
  795. </script>