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.

1057 lines
35 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
  1. <template>
  2. <div class="mod-config">
  3. <!-- 条件查询 -->
  4. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  5. <el-form-item :label="'物料编码'">
  6. <el-input v-model="searchData.partNo" style="width: 120px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="'物料名称'">
  9. <el-input v-model="searchData.partDesc" style="width: 120px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="'检验模板编码'">
  12. <el-input v-model="searchData.codeNo" style="width: 120px"></el-input>
  13. </el-form-item>
  14. <el-form-item :label="'检验模板名称'">
  15. <el-input v-model="searchData.codeDesc" style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item :label="'检验类型名称'">
  18. <el-input v-model="searchData.inspectionTypeName" style="width: 120px"></el-input>
  19. </el-form-item>
  20. <el-form-item :label="'是否在用'">
  21. <el-select filterable v-model="searchData.active" style="width: 130px">
  22. <el-option label="请选择" value=""></el-option>
  23. <el-option label="是" value="Y"></el-option>
  24. <el-option label="否" value="N"></el-option>
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item :label="' '">
  28. <el-button @click="doEmpty()">清空</el-button>
  29. <el-button type="primary" @click="getDataList()">查询</el-button>
  30. <el-button type="primary" @click="addModal()">新增</el-button>
  31. </el-form-item>
  32. </el-form>
  33. <!-- 展示列表 -->
  34. <el-table
  35. :height="height"
  36. :data="dataList"
  37. border
  38. v-loading="dataListLoading"
  39. style="width: 100%;">
  40. <el-table-column
  41. v-for="(item,index) in columnList" :key="index"
  42. :sortable="item.columnSortable"
  43. :prop="item.columnProp"
  44. :header-align="item.headerAlign"
  45. :show-overflow-tooltip="item.showOverflowTooltip"
  46. :align="item.align"
  47. :fixed="item.fixed==''?false:item.fixed"
  48. :min-width="item.columnWidth"
  49. :label="item.columnLabel">
  50. <template slot-scope="scope">
  51. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  52. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column
  56. fixed="right"
  57. header-align="center"
  58. align="center"
  59. width="160"
  60. label="操作">
  61. <template slot-scope="scope">
  62. <a type="text" size="small" @click="updateModal(scope.row)">修改</a>
  63. <a type="text" size="small" @click="detailModal(scope.row)">检验项目</a>
  64. <a type="text" size="small" @click="deletePropertiesModel(scope.row)">删除</a>
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <!-- 分页栏 -->
  69. <el-pagination
  70. @size-change="sizeChangeHandle"
  71. @current-change="currentChangeHandle"
  72. :current-page="pageIndex"
  73. :page-sizes="[20, 50, 100, 1000]"
  74. :page-size="pageSize"
  75. :total="totalPage"
  76. layout="total, sizes, prev, pager, next, jumper">
  77. </el-pagination>
  78. <!-- 检验模板新增/修改 -->
  79. <el-dialog title="检验模板" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px">
  80. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  81. <el-form-item >
  82. <span slot="label" style="" @click="getBaseList(1043)"><a herf="#">物料编码</a></span>
  83. <el-input v-model="modalData.partNo" style="width: 120px"></el-input>
  84. </el-form-item>
  85. <el-form-item label="物料名称:">
  86. <el-input v-model="modalData.partDesc" disabled style="width: 120px"></el-input>
  87. </el-form-item>
  88. </el-form>
  89. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  90. <el-form-item >
  91. <span slot="label" style="" @click="getBaseList(1045)"><a herf="#">检验类型编码</a></span>
  92. <el-input v-model="modalData.inspectionTypeNo" style="width: 120px"></el-input>
  93. </el-form-item>
  94. <el-form-item label="检验类型名称:">
  95. <el-input v-model="modalData.inspectionTypeName" disabled style="width: 120px"></el-input>
  96. </el-form-item>
  97. </el-form>
  98. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  99. <el-form-item label="检验模板编码:">
  100. <el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" style="width: 120px"></el-input>
  101. </el-form-item>
  102. <el-form-item label="检验模板名称:">
  103. <el-input v-model="modalData.codeDesc" style="width: 120px"></el-input>
  104. </el-form-item>
  105. <el-form-item label="是否在用:">
  106. <el-select filterable v-model="modalData.active" style="width: 120px">
  107. <el-option label="是" value="Y"></el-option>
  108. <el-option label="否" value="N"></el-option>
  109. </el-select>
  110. </el-form-item>
  111. </el-form>
  112. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  113. <el-button type="primary" @click="saveData()">保存</el-button>
  114. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  115. </el-footer>
  116. </el-dialog>
  117. <!-- 检验项目 -->
  118. <el-dialog title="检验项目清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px">
  119. <el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()">
  120. <el-form-item :label="'检验模板编码'">
  121. <el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input>
  122. </el-form-item>
  123. <el-form-item :label="'检验模板名称'">
  124. <el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input>
  125. </el-form-item>
  126. <el-form-item :label="' '">
  127. <el-button type="primary" @click="addDetailModal()">新增</el-button>
  128. <el-button type="primary" @click="addFastModal()">快速新增</el-button>
  129. </el-form-item>
  130. </el-form>
  131. <!-- 检验项目展示列表 -->
  132. <el-table
  133. :height="300"
  134. :data="detailList"
  135. border
  136. v-loading="dataListLoading"
  137. style="width: 100%;">
  138. <el-table-column
  139. v-for="(item,index) in columnDetailList" :key="index"
  140. :sortable="item.columnSortable"
  141. :prop="item.columnProp"
  142. :header-align="item.headerAlign"
  143. :show-overflow-tooltip="item.showOverflowTooltip"
  144. :align="item.align"
  145. :fixed="item.fixed==''?false:item.fixed"
  146. :min-width="item.columnWidth"
  147. :label="item.columnLabel">
  148. <template slot-scope="scope">
  149. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  150. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  151. </template>
  152. </el-table-column>
  153. <el-table-column
  154. fixed="right"
  155. header-align="center"
  156. align="center"
  157. width="130"
  158. label="操作">
  159. <template slot-scope="scope">
  160. <a type="text" size="small" v-if="scope.row.valueChooseFlag=='Y'" @click="chooseModal(scope.row)">可选值</a>
  161. <a type="text" size="small" @click="deleteModalDetails(scope.row)">删除项目</a>
  162. </template>
  163. </el-table-column>
  164. </el-table>
  165. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  166. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  167. </el-footer>
  168. </el-dialog>
  169. <!-- 检验项目->新增 -->
  170. <el-dialog title="添加项目" :close-on-click-modal="false" v-drag :visible.sync="addDetailModalFlag" width="300px">
  171. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  172. <el-form-item >
  173. <span slot="label" style="" @click="getBaseList(1034)"><a herf="#">检验项目编码</a></span>
  174. <el-input v-model="detailData.itemNo" @blur="itemNoBlur" style="width: 120px"></el-input>
  175. </el-form-item>
  176. <el-form-item label="检验项目名称:">
  177. <el-input v-model="detailData.itemDesc" disabled style="width: 120px"></el-input>
  178. </el-form-item>
  179. </el-form>
  180. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  181. <el-button type="primary" @click="saveModalDetails()">保存</el-button>
  182. <el-button type="primary" @click="addDetailModalFlag = false">关闭</el-button>
  183. </el-footer>
  184. </el-dialog>
  185. <!-- 检验项目->快速新增 -->
  186. <el-dialog title="快速添加" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="fastAddFlag" width="800px">
  187. <div style="font-size: 12px">
  188. 检验模板编码<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input>
  189. 检验模板名称<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input>
  190. </div>
  191. <el-container style="margin-top: -12px;">
  192. <el-main style="width: 300px">
  193. <span style="font-size: 12px" >可选项目</span>
  194. <el-table
  195. height="300px"
  196. :data="itemList1"
  197. border
  198. @row-click="clickItem1"
  199. highlight-current-row
  200. v-loading="dataListLoading"
  201. style="width: 100%">
  202. <el-table-column
  203. prop="itemNo"
  204. header-align="center"
  205. align="left"
  206. min-width="110"
  207. label="项目编码">
  208. </el-table-column>
  209. <el-table-column
  210. prop="itemDesc"
  211. header-align="center"
  212. align="left"
  213. min-width="170"
  214. label="项目名称">
  215. </el-table-column>
  216. </el-table>
  217. </el-main>
  218. <el-main style="width: 100px">
  219. <div style="margin-top: 100px">
  220. <el-button type="primary" @click="addItem()">添加>></el-button>
  221. </div>
  222. <div style="margin-top: 20px">
  223. <el-button type="primary" @click="deleteItem()">删除<<</el-button>
  224. </div>
  225. </el-main>
  226. <el-main style="width: 300px">
  227. <span style="font-size: 12px" >已有项目</span>
  228. <el-table
  229. height="300px"
  230. :data="itemList2"
  231. border
  232. @row-click="clickItem2"
  233. highlight-current-row
  234. v-loading="dataListLoading"
  235. style="width: 100%">
  236. <el-table-column
  237. prop="itemNo"
  238. header-align="center"
  239. align="left"
  240. min-width="110"
  241. label="项目编码">
  242. </el-table-column>
  243. <el-table-column
  244. prop="itemDesc"
  245. header-align="center"
  246. align="left"
  247. min-width="170"
  248. label="项目名称">
  249. </el-table-column>
  250. </el-table>
  251. </el-main>
  252. </el-container>
  253. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  254. <el-button type="primary" @click="fastAddFlag = false">关闭</el-button>
  255. </el-footer>
  256. </el-dialog>
  257. <!-- 检验项目->可选值 -->
  258. <el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="350px">
  259. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  260. <el-form-item label="检验项目名称:">
  261. <el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input>
  262. </el-form-item>
  263. <el-form-item :label="'检测值类型'">
  264. <el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px">
  265. <el-option label="文本" value="T"></el-option>
  266. <el-option label="数字" value="N"></el-option>
  267. </el-select>
  268. </el-form-item>
  269. </el-form>
  270. <el-table
  271. :height="300"
  272. :data="chooseTableData"
  273. border
  274. style="width: 100%">
  275. <el-table-column
  276. prop="availableValue"
  277. header-align="center"
  278. align="left"
  279. min-width="200"
  280. label="属性值">
  281. </el-table-column>
  282. </el-table>
  283. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  284. <el-button type="primary" @click="chooseModalFlag = false">关闭</el-button>
  285. </el-footer>
  286. </el-dialog>
  287. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  288. </div>
  289. </template>
  290. <script>
  291. import {
  292. qcPartModelSearch,
  293. qcPartModelSave,
  294. qcPartModelUpdate,
  295. qcPartModelDelete,
  296. searchItemAvailable,
  297. searchModalDetails,
  298. saveModalDetails,
  299. deleteModalDetails,
  300. qcCheckOutItemSearch, // 搜索项目
  301. getItemLists // 获取项目列表
  302. } from "@/api/qc/qc.js"
  303. import Chooselist from '@/views/modules/common/Chooselist_eam'
  304. export default {
  305. components: {
  306. Chooselist
  307. },
  308. watch: {
  309. searchData: {
  310. deep: true,
  311. handler: function (newV, oldV) {
  312. this.searchData.codeNo = this.searchData.codeNo.toUpperCase()
  313. }
  314. },
  315. itemData: {
  316. deep: true,
  317. handler: function (newV, oldV) {
  318. this.itemData.itemNo = this.itemData.itemNo.toUpperCase()
  319. }
  320. },
  321. modalData: {
  322. deep: true,
  323. handler: function (newV, oldV) {
  324. this.modalData.codeNo = this.modalData.codeNo.toUpperCase()
  325. }
  326. },
  327. detailData: {
  328. deep: true,
  329. handler: function (newV, oldV) {
  330. this.detailData.codeNo = this.detailData.codeNo.toUpperCase()
  331. this.detailData.itemNo = this.detailData.itemNo.toUpperCase()
  332. }
  333. }
  334. },
  335. data () {
  336. return {
  337. tagNo:'',
  338. searchData: {
  339. codeNo: '',
  340. codeDesc: '',
  341. active:'',
  342. familyName:'',
  343. functionType:'E',
  344. inspectionTypeName:'',
  345. page: 1,
  346. limit: 10,
  347. },
  348. height: 200,
  349. pageIndex: 1,
  350. pageSize: 100,
  351. totalPage: 0,
  352. addDetailModalFlag:false,
  353. modalFlag:false,
  354. modalDisableFlag:false,
  355. modalData:{
  356. flag:'',
  357. codeNo:'',
  358. codeDesc:'',
  359. partNo:'',
  360. partDesc:'',
  361. active:'',
  362. functionType:'E',
  363. inspectionTypeNo:'',
  364. inspectionTypeName:'',
  365. createdBy:this.$store.state.user.name
  366. },
  367. detailData:{
  368. codeNo:'',
  369. codeDesc:'',
  370. functionType:'E',
  371. itemNo:'',
  372. itemDesc:'',
  373. itemType:'D',
  374. createdBy:this.$store.state.user.name
  375. },
  376. columnList: [
  377. {
  378. userId: this.$store.state.user.name,
  379. functionId: 301003,
  380. serialNumber: '301003TableCodeNo',
  381. tableId: "301003Table",
  382. tableName: "检验模板表",
  383. columnProp: 'codeNo',
  384. headerAlign: "center",
  385. align: "left",
  386. columnLabel: '检验模板编码',
  387. columnHidden: false,
  388. columnImage: false,
  389. columnSortable: false,
  390. sortLv: 0,
  391. status: true,
  392. fixed: '',
  393. columnWidth: 120,
  394. },
  395. {
  396. userId: this.$store.state.user.name,
  397. functionId: 301003,
  398. serialNumber: '301003TableCodeDesc',
  399. tableId: "301003Table",
  400. tableName: "检验模板表",
  401. columnProp: 'codeDesc',
  402. headerAlign: "center",
  403. align: "left",
  404. columnLabel: '检验模板名称',
  405. columnHidden: false,
  406. columnImage: false,
  407. columnSortable: false,
  408. sortLv: 0,
  409. status: true,
  410. fixed: '',
  411. columnWidth: 140,
  412. },
  413. {
  414. userId: this.$store.state.user.name,
  415. functionId: 301003,
  416. serialNumber: '301003TableCodeNo',
  417. tableId: "301003Table",
  418. tableName: "检验模板表",
  419. columnProp: 'partNo',
  420. headerAlign: "center",
  421. align: "left",
  422. columnLabel: '物料编码',
  423. columnHidden: false,
  424. columnImage: false,
  425. columnSortable: false,
  426. sortLv: 0,
  427. status: true,
  428. fixed: '',
  429. columnWidth: 120,
  430. },
  431. {
  432. userId: this.$store.state.user.name,
  433. functionId: 301003,
  434. serialNumber: '301003TableCodeNo',
  435. tableId: "301003Table",
  436. tableName: "检验模板表",
  437. columnProp: 'partDesc',
  438. headerAlign: "center",
  439. align: "left",
  440. columnLabel: '物料名称',
  441. columnHidden: false,
  442. columnImage: false,
  443. columnSortable: false,
  444. sortLv: 0,
  445. status: true,
  446. fixed: '',
  447. columnWidth: 160,
  448. },
  449. {
  450. userId: this.$store.state.user.name,
  451. functionId: 301003,
  452. serialNumber: '301003TableCodeDesc',
  453. tableId: "301003Table",
  454. tableName: "检验模板表",
  455. columnProp: 'inspectionTypeName',
  456. headerAlign: "center",
  457. align: "left",
  458. columnLabel: '检验类型名称',
  459. columnHidden: false,
  460. columnImage: false,
  461. columnSortable: false,
  462. sortLv: 0,
  463. status: true,
  464. fixed: '',
  465. columnWidth: 100,
  466. },
  467. {
  468. userId: this.$store.state.user.name,
  469. functionId: 301003,
  470. serialNumber: '301003TableActive',
  471. tableId: "301003Table",
  472. tableName: "检验模板表",
  473. columnProp: 'active',
  474. headerAlign: "center",
  475. align: "left",
  476. columnLabel: '在用',
  477. columnHidden: false,
  478. columnImage: false,
  479. columnSortable: false,
  480. sortLv: 0,
  481. status: true,
  482. fixed: '',
  483. columnWidth: 40,
  484. },
  485. ],
  486. detailModelFlag:false,
  487. detailList: [],
  488. chooseTableData:[],
  489. dataListLoading: false,
  490. dataListSelections: [],
  491. // modalDisableFlag:false,
  492. chooseModalFlag:false,
  493. itemFlag:'text',
  494. itemData:{
  495. itemNo:'',
  496. valueNo:'',
  497. availableValue:'',
  498. itemType:'D',
  499. createdBy: this.$store.state.user.name
  500. },
  501. dataList:[],
  502. departmentList:[],
  503. // 展示列集
  504. columnDetailList: [
  505. {
  506. userId: this.$store.state.user.name,
  507. functionId: 301003,
  508. serialNumber: '301003Table2EamPropertiesItemID',
  509. tableId: "301003Table2",
  510. tableName: "检验项目表",
  511. columnProp: 'itemNo',
  512. headerAlign: "center",
  513. align: "left",
  514. columnLabel: '检验项目编码',
  515. columnHidden: false,
  516. columnImage: false,
  517. columnSortable: false,
  518. sortLv: 0,
  519. status: true,
  520. fixed: '',
  521. columnWidth: 90,
  522. },
  523. {
  524. userId: this.$store.state.user.name,
  525. functionId: 301003,
  526. serialNumber: '301003Table2EamPropertiesItemDesc',
  527. tableId: "301003Table2",
  528. tableName: "检验项目表",
  529. columnProp: 'itemDesc',
  530. headerAlign: "center",
  531. align: "left",
  532. columnLabel: '检验项目名称',
  533. columnHidden: false,
  534. columnImage: false,
  535. columnSortable: false,
  536. sortLv: 0,
  537. status: true,
  538. fixed: '',
  539. columnWidth: 90,
  540. },
  541. {
  542. userId: this.$store.state.user.name,
  543. functionId: 301003,
  544. serialNumber: '301003Table2ValueType',
  545. tableId: "301003Table2",
  546. tableName: "检验项目表",
  547. columnProp: 'valueType',
  548. headerAlign: "center",
  549. align: "left",
  550. columnLabel: '检测值类型',
  551. columnHidden: false,
  552. columnImage: false,
  553. columnSortable: false,
  554. sortLv: 0,
  555. status: true,
  556. fixed: '',
  557. columnWidth: 70,
  558. },
  559. {
  560. userId: this.$store.state.user.name,
  561. functionId: 301003,
  562. serialNumber: '301003Table2DefaultValue',
  563. tableId: "301003Table2",
  564. tableName: "检验项目表",
  565. columnProp: 'defaultValue',
  566. headerAlign: "center",
  567. align: "left",
  568. columnLabel: '参照值',
  569. columnHidden: false,
  570. columnImage: false,
  571. columnSortable: false,
  572. sortLv: 0,
  573. status: true,
  574. fixed: '',
  575. columnWidth: 70,
  576. },
  577. {
  578. userId: this.$store.state.user.name,
  579. functionId: 301003,
  580. serialNumber: '301003Table2MaxValue',
  581. tableId: "301003Table2",
  582. tableName: "检验项目表",
  583. columnProp: 'maxValue',
  584. headerAlign: "center",
  585. align: "left",
  586. columnLabel: '最大值',
  587. columnHidden: false,
  588. columnImage: false,
  589. columnSortable: false,
  590. sortLv: 0,
  591. status: true,
  592. fixed: '',
  593. columnWidth: 70,
  594. },
  595. {
  596. userId: this.$store.state.user.name,
  597. functionId: 301003,
  598. serialNumber: '301003Table2MinValue',
  599. tableId: "301003Table2",
  600. tableName: "检验项目表",
  601. columnProp: 'minValue',
  602. headerAlign: "center",
  603. align: "left",
  604. columnLabel: '最小值',
  605. columnHidden: false,
  606. columnImage: false,
  607. columnSortable: false,
  608. sortLv: 0,
  609. status: true,
  610. fixed: '',
  611. columnWidth: 70,
  612. },
  613. {
  614. userId: this.$store.state.user.name,
  615. functionId: 301003,
  616. serialNumber: '301003TableValueChooseFlag',
  617. tableId: "301003Table2",
  618. tableName: "common",
  619. columnProp: 'valueChooseFlag',
  620. headerAlign: "center",
  621. align: "left",
  622. columnLabel: '是否值可选',
  623. columnHidden: false,
  624. columnImage: false,
  625. columnSortable: false,
  626. sortLv: 0,
  627. status: true,
  628. fixed: '',
  629. columnWidth: 70,
  630. },
  631. ],
  632. levelList:[],
  633. chooseModalData:{
  634. itemNo: '',
  635. itemDesc: '',
  636. itemType:'D',
  637. valueTypeDb:'',
  638. },
  639. // 快速添加
  640. fastAddFlag:false,
  641. itemList1:[],
  642. itemList2:[],
  643. itemListRow1:{},
  644. itemListRow2:{},
  645. }
  646. },
  647. mounted () {
  648. this.$nextTick(() => {
  649. this.height = window.innerHeight - 210
  650. })
  651. },
  652. created () {
  653. this.getDataList();
  654. },
  655. methods: {
  656. // 清空搜索栏
  657. doEmpty(){
  658. this.searchData = {
  659. codeNo: '',
  660. codeDesc: '',
  661. active:'',
  662. familyName:'',
  663. functionType:'E',
  664. inspectionTypeName:'',
  665. page: 1,
  666. limit: 10,
  667. }
  668. },
  669. // 获取基础数据列表S
  670. getBaseList (val,type) {
  671. this.tagNo = val
  672. this.$nextTick(() => {
  673. let strVal = ''
  674. if (val === 1034) {
  675. strVal = this.detailData.itemNo
  676. this.$refs.baseList.init(val, strVal)
  677. }
  678. if (val === 1043) {
  679. strVal = this.modalData.partNo
  680. this.$refs.baseList.init(val, strVal)
  681. }
  682. if (val === 1045) {
  683. strVal = this.modalData.inspectionTypeNo
  684. this.$refs.baseList.init(val, strVal)
  685. }
  686. })
  687. },
  688. /* 列表方法的回调 */
  689. getBaseData (val) {
  690. if (this.tagNo === 1034) {
  691. this.detailData.itemNo = val.ItemNo
  692. this.detailData.itemDesc = val.ItemDesc
  693. }
  694. if (this.tagNo === 1043) {
  695. this.modalData.partNo = val.part_no
  696. this.modalData.partDesc = val.part_desc
  697. }
  698. if (this.tagNo === 1045) {
  699. this.modalData.inspectionTypeNo = val.inspection_type_no
  700. this.modalData.inspectionTypeName = val.inspection_type_name
  701. }
  702. },
  703. // 获取数据列表
  704. getDataList () {
  705. this.searchData.limit = this.pageSize
  706. this.searchData.page = this.pageIndex
  707. qcPartModelSearch(this.searchData).then(({data}) => {
  708. if (data.code == 0) {
  709. this.dataList = data.page.list
  710. this.pageIndex = data.page.currPage
  711. this.pageSize = data.page.pageSize
  712. this.totalPage = data.page.totalCount
  713. }
  714. this.dataListLoading = false
  715. })
  716. },
  717. // 每页数
  718. sizeChangeHandle (val) {
  719. this.pageSize = val
  720. this.pageIndex = 1
  721. this.getDataList()
  722. },
  723. // 当前页
  724. currentChangeHandle (val) {
  725. this.pageIndex = val
  726. this.getDataList()
  727. },
  728. addModal(){
  729. this.modalData={
  730. flag:'1',
  731. codeNo:'',
  732. codeDesc:'',
  733. active:'Y',
  734. partNo: '',
  735. partDesc: '',
  736. functionType:'E',
  737. inspectionTypeNo:'',
  738. inspectionTypeName:'',
  739. createdBy:this.$store.state.user.name
  740. };
  741. this.modalDisableFlag = false;
  742. this.modalFlag = true;
  743. },
  744. updateModal(row){
  745. this.modalData={
  746. flag:'2',
  747. codeNo:row.codeNo,
  748. codeDesc:row.codeDesc,
  749. active:row.active,
  750. partNo: row.partNo,
  751. partDesc: row.partDesc,
  752. inspectionTypeNo: row.inspectionTypeNo,
  753. inspectionTypeName:row.inspectionTypeName,
  754. functionType:'E',
  755. createdBy:this.$store.state.user.name
  756. };
  757. this.modalDisableFlag=true;
  758. this.modalFlag=true;
  759. },
  760. // 删除
  761. deletePropertiesModel (row) {
  762. this.$confirm(`是否删除这个检验模板?`, '提示', {
  763. confirmButtonText: '确定',
  764. cancelButtonText: '取消',
  765. type: 'warning'
  766. }).then(() => {
  767. qcPartModelDelete(row).then(({data}) => {
  768. if (data && data.code === 0) {
  769. this.getDataList()
  770. this.$message({
  771. message: '操作成功',
  772. type: 'success',
  773. duration: 1500,
  774. onClose: () => {
  775. }
  776. })
  777. } else {
  778. this.$alert(data.msg, '错误', {
  779. confirmButtonText: '确定'
  780. })
  781. }
  782. })
  783. }).catch(() => {
  784. })
  785. },
  786. saveData(){
  787. if (this.modalData.codeNo == '' || this.modalData.codeNo == null) {
  788. this.$alert('请输入检验模板编码!', '错误', {
  789. confirmButtonText: '确定'
  790. })
  791. return false
  792. }
  793. if (this.modalData.codeDesc == '' || this.modalData.codeDesc == null) {
  794. this.$alert('请输入检验模板名称!', '错误', {
  795. confirmButtonText: '确定'
  796. })
  797. return false
  798. }
  799. if (this.modalData.partNo == '' || this.modalData.partNo == null) {
  800. this.$alert('请选择物料编码!', '错误', {
  801. confirmButtonText: '确定'
  802. })
  803. return false
  804. }
  805. if (this.modalData.inspectionTypeNo == '' || this.modalData.inspectionTypeNo == null) {
  806. this.$alert('请选择检验类型!', '错误', {
  807. confirmButtonText: '确定'
  808. })
  809. return false
  810. }
  811. if (this.modalData.active == '' || this.modalData.active == null) {
  812. this.$alert('选择是否在用!', '错误', {
  813. confirmButtonText: '确定'
  814. })
  815. return false
  816. }
  817. if(this.modalData.flag == '1'){
  818. qcPartModelSave(this.modalData).then(({data}) => {
  819. if (data && data.code === 0) {
  820. this.getDataList()
  821. this.modalFlag = false
  822. this.$message({
  823. message: '操作成功',
  824. type: 'success',
  825. duration: 1500,
  826. onClose: () => {
  827. }
  828. })
  829. } else {
  830. this.$alert(data.msg, '错误', {
  831. confirmButtonText: '确定'
  832. })
  833. }
  834. })
  835. }else {
  836. qcPartModelUpdate(this.modalData).then(({data}) => {
  837. if (data && data.code === 0) {
  838. this.getDataList()
  839. this.modalFlag=false
  840. this.$message({
  841. message: '操作成功',
  842. type: 'success',
  843. duration: 1500,
  844. onClose: () => {
  845. }
  846. })
  847. } else {
  848. this.$alert(data.msg, '错误', {
  849. confirmButtonText: '确定'
  850. })
  851. }
  852. })
  853. }
  854. },
  855. //打开检验项目清单
  856. detailModal(row){
  857. this.detailData.codeNo = row.codeNo
  858. this.detailData.codeDesc = row.codeDesc
  859. searchModalDetails(this.detailData).then(({data}) => {
  860. this.detailList = data.rows
  861. })
  862. this.detailModelFlag = true;
  863. },
  864. // 普通新增
  865. addDetailModal(){
  866. this.detailData.itemNo = '';
  867. this.detailData.itemDesc = '';
  868. this.addDetailModalFlag = true;
  869. },
  870. // 快速新增
  871. addFastModal(){
  872. this.itemListRow2 = null
  873. this.itemListRow1 = null
  874. getItemLists(this.detailData).then(({data}) => {
  875. this.itemList1 = data.row1;
  876. this.itemList2 = data.row2;
  877. })
  878. this.fastAddFlag = true;
  879. },
  880. clickItem1(row){
  881. this.itemListRow1 = JSON.parse(JSON.stringify(row));
  882. },
  883. clickItem2(row){
  884. this.itemListRow2 = JSON.parse(JSON.stringify(row));
  885. },
  886. // 添加项目
  887. addItem(){
  888. if(this.itemListRow1==null){
  889. this.$alert("请选择可选项目!", '错误', {
  890. confirmButtonText: '确定'
  891. })
  892. return false;
  893. }
  894. let inData={
  895. codeNo:this.detailData.codeNo,
  896. codeDesc:this.detailData.codeDesc,
  897. functionType:this.detailData.functionType,
  898. itemNo: this.itemListRow1.itemNo,
  899. itemDesc:this.itemListRow1.itemDesc,
  900. itemType:this.detailData.itemType,
  901. userId:this.$store.state.user.name
  902. }
  903. saveModalDetails(inData).then(({data}) => {
  904. if (data && data.code == 0) {
  905. getItemLists(this.detailData).then(({data}) => {
  906. this.itemList1=data.row1;
  907. this.itemList2=data.row2;
  908. })
  909. this.itemListRow1=null
  910. } else {
  911. this.$alert(data.msg, '错误', {
  912. confirmButtonText: '确定'
  913. })
  914. }
  915. })
  916. },
  917. // 删除项目
  918. deleteItem(){
  919. if(this.itemListRow2 == null){
  920. this.$alert("请选择已选项目!", '错误', {
  921. confirmButtonText: '确定'
  922. })
  923. return false;
  924. }
  925. let inData = {
  926. codeNo:this.detailData.codeNo,
  927. codeDesc:this.detailData.codeDesc,
  928. functionType:this.detailData.functionType,
  929. itemNo: this.itemListRow2.itemNo,
  930. itemDesc:this.itemListRow2.itemDesc,
  931. itemType:this.detailData.itemType,
  932. userId:this.$store.state.user.name
  933. }
  934. deleteModalDetails(inData).then(({data}) => {
  935. if (data && data.code === 0) {
  936. getItemLists(this.detailData).then(({data}) => {
  937. this.itemList1 = data.row1;
  938. this.itemList2 = data.row2;
  939. })
  940. this.itemListRow2 = null
  941. } else {
  942. this.$alert(data.msg, '错误', {
  943. confirmButtonText: '确定'
  944. })
  945. }
  946. })
  947. },
  948. // 关闭后刷新列表
  949. refreshDetailList(){
  950. searchModalDetails(this.detailData).then(({data}) => {
  951. this.detailList = data.rows
  952. })
  953. },
  954. // 保存模板中的项目明细
  955. saveModalDetails(){
  956. if(this.detailData.itemNo == "" || this.detailData.itemNo == null){
  957. this.$alert('请选择检验项目编码!', '错误', {
  958. confirmButtonText: '确定'
  959. })
  960. return false
  961. }
  962. saveModalDetails(this.detailData).then(({data}) => {
  963. if (data && data.code == 0) {
  964. searchModalDetails(this.detailData).then(({data}) => {
  965. this.detailList = data.rows
  966. })
  967. this.addDetailModalFlag=false;
  968. this.$message({
  969. message: '操作成功',
  970. type: 'success',
  971. duration: 1500,
  972. onClose: () => {
  973. }
  974. })
  975. } else {
  976. this.$alert(data.msg, '错误', {
  977. confirmButtonText: '确定'
  978. })
  979. }
  980. })
  981. },
  982. itemNoBlur(){
  983. let inData={
  984. itemType:'D',
  985. itemNo:this.detailData.itemNo
  986. }
  987. qcCheckOutItemSearch(inData).then(({data}) => {
  988. if(data.rows.length>0){
  989. this.detailData.itemDesc = data.rows[0].itemDesc
  990. }else {
  991. this.detailData.itemDesc=''
  992. }
  993. })
  994. },
  995. // 删除模板中的项目
  996. deleteModalDetails(row){
  997. console.log(row)
  998. this.$confirm(`是否删除这个检验项目?`, '提示', {
  999. confirmButtonText: '确定',
  1000. cancelButtonText: '取消',
  1001. type: 'warning'
  1002. }).then(() => {
  1003. deleteModalDetails(row).then(({data}) => {
  1004. if (data && data.code === 0) {
  1005. searchModalDetails(this.detailData).then(({data}) => {
  1006. this.detailList = data.rows
  1007. })
  1008. this.$message({
  1009. message: '操作成功',
  1010. type: 'success',
  1011. duration: 1500,
  1012. onClose: () => {
  1013. }
  1014. })
  1015. } else {
  1016. this.$alert(data.msg, '错误', {
  1017. confirmButtonText: '确定'
  1018. })
  1019. }
  1020. })
  1021. }).catch(() => {
  1022. })
  1023. },
  1024. chooseModal(row){
  1025. this.chooseModalData.itemNo=row.itemNo;
  1026. this.chooseModalData.itemDesc=row.itemDesc;
  1027. this.chooseModalData.valueTypeDb=row.valueTypeDb;
  1028. searchItemAvailable(this.chooseModalData).then(({data}) => {
  1029. this.chooseTableData = data.rows
  1030. })
  1031. this.chooseModalFlag=true;
  1032. },
  1033. }
  1034. }
  1035. </script>