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

1492 lines
50 KiB

  1. <template>
  2. <div class="mod-config">
  3. <!-- 收藏 -->
  4. <!-- <div>-->
  5. <!-- <span @click="favoriteFunction()">-->
  6. <!-- <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>-->
  7. <!-- </span>-->
  8. <!-- </div>-->
  9. <!-- 条件查询 -->
  10. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  11. <!-- <el-form-item :label="'BU'">-->
  12. <!-- <el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 130px">-->
  13. <!-- <el-option-->
  14. <!-- v-for = "i in userBuList"-->
  15. <!-- :key = "i.buNo"-->
  16. <!-- :label = "i.buDesc"-->
  17. <!-- :value = "i.buDesc">-->
  18. <!-- </el-option>-->
  19. <!-- </el-select>-->
  20. <!-- </el-form-item>-->
  21. <el-form-item :label="'工厂编码'">
  22. <el-input v-model="searchData.site" clearable style="width: 120px"></el-input>
  23. </el-form-item>
  24. <el-form-item :label="'类别编码'">
  25. <el-input v-model="searchData.familyID" clearable style="width: 120px"></el-input>
  26. </el-form-item>
  27. <el-form-item :label="'类别名称'">
  28. <el-input v-model="searchData.familyName" clearable style="width: 120px"></el-input>
  29. </el-form-item>
  30. <el-form-item :label="' '">
  31. <el-button v-if="!authSearch" type="primary" @click="getDataList()">查询</el-button>
  32. <el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
  33. </el-form-item>
  34. <el-form-item :label="' '">
  35. <!-- <el-button type="primary" icon="el-icon-upload" @click="qcUpload()">导入</el-button>-->
  36. <download-excel
  37. :fields="fields()"
  38. :data="exportData"
  39. type="xls"
  40. :name="exportName"
  41. :header="exportHeader"
  42. :footer="exportFooter"
  43. :fetch="createExportData"
  44. :before-generate="startDownload"
  45. :before-finish="finishDownload"
  46. worksheet="导出信息"
  47. class="el-button el-button--primary el-button--medium">
  48. {{ "导出" }}
  49. </download-excel>
  50. </el-form-item>
  51. </el-form>
  52. <!-- 展示列表 -->
  53. <el-table
  54. :height="height"
  55. :data="dataList"
  56. border
  57. style="width: 100%;">
  58. <el-table-column
  59. v-for="(item,index) in columnList" :key="index"
  60. :sortable="item.columnSortable"
  61. :prop="item.columnProp"
  62. :header-align="item.headerAlign"
  63. :show-overflow-tooltip="item.showOverflowTooltip"
  64. :align="item.align"
  65. :fixed="item.fixed===''?false:item.fixed"
  66. :min-width="item.columnWidth"
  67. :label="item.columnLabel">
  68. <template slot-scope="scope">
  69. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  70. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. fixed="right"
  75. header-align="center"
  76. align="center"
  77. width="160"
  78. label="操作">
  79. <template slot-scope="scope">
  80. <a v-if="!authDetail" type="text" size="small" @click="detailModal(scope.row)">检验模板</a>
  81. <a v-if="!authDelete" type="text" size="small" @click="deletePropertiesModel(scope.row)">删除</a>
  82. </template>
  83. </el-table-column>
  84. </el-table>
  85. <!-- 分页栏 -->
  86. <el-pagination
  87. @size-change="sizeChangeHandle"
  88. @current-change="currentChangeHandle"
  89. :current-page="pageIndex"
  90. :page-sizes="[20, 50, 100, 200, 500]"
  91. :page-size="pageSize"
  92. :total="totalPage"
  93. layout="total, sizes, prev, pager, next, jumper">
  94. </el-pagination>
  95. <!-- 类别属性新增/修改 -->
  96. <el-dialog title="类别属性设置" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px">
  97. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  98. <!-- <el-form-item label="BU" prop="bu" :rules="rules.bu">-->
  99. <!-- <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 375px">-->
  100. <!-- <el-option-->
  101. <!-- v-for = "i in userBuList"-->
  102. <!-- :key = "i.buNo"-->
  103. <!-- :label = "i.sitename"-->
  104. <!-- :value = "i.buNo">-->
  105. <!-- <span style="float: left;width: 100px">{{ i.sitename }}</span>-->
  106. <!-- <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">-->
  107. <!-- {{ i.buDesc }}-->
  108. <!-- </span>-->
  109. <!-- </el-option>-->
  110. <!-- </el-select>-->
  111. <!-- </el-form-item>-->
  112. <el-form-item label="工厂编码:" prop="site" :rules="rules.site">
  113. <el-input v-model="modalData.site" disabled style="width: 240px"></el-input>
  114. </el-form-item>
  115. </el-form>
  116. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  117. <el-form-item prop="familyID" :rules="rules.familyIDType">
  118. <span slot="label" style="" @click="getBaseList(1042)"><a herf="#">类别编码</a></span>
  119. <el-input v-model="modalData.familyID" style="width: 120px"></el-input>
  120. </el-form-item>
  121. <el-form-item label="类别名称:" prop="familyName" :rules="rules.familyNameType">
  122. <el-input v-model="modalData.familyName" disabled style="width: 240px"></el-input>
  123. </el-form-item>
  124. </el-form>
  125. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  126. <el-form-item label="备注:">
  127. <el-input v-model="modalData.attributeRemark" style="width: 375px"></el-input>
  128. </el-form-item>
  129. </el-form>
  130. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  131. <el-button type="primary" @click="saveData()">保存</el-button>
  132. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  133. </el-footer>
  134. </el-dialog>
  135. <!-- 检验模板清单 -->
  136. <el-dialog title="检验模板清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="1400px">
  137. <el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()">
  138. <el-form-item :label="'类别编码'">
  139. <el-input v-model="detailData.familyID" readonly style="width: 120px"></el-input>
  140. </el-form-item>
  141. <el-form-item :label="'类别名称'">
  142. <el-input v-model="detailData.familyName" readonly style="width: 300px"></el-input>
  143. </el-form-item>
  144. <el-form-item :label="' '">
  145. <el-button type="primary" @click="addFastModal()">新增</el-button>
  146. </el-form-item>
  147. </el-form>
  148. <!-- 检验项目展示列表 -->
  149. <div class="rq ">
  150. <el-table
  151. :height="300"
  152. :data="detailList"
  153. border
  154. style="width: 100%;">
  155. <el-table-column
  156. prop="templateId"
  157. header-align="center"
  158. align="center"
  159. label="模板编码">
  160. </el-table-column>
  161. <el-table-column
  162. prop="templateName"
  163. header-align="center"
  164. align="left"
  165. label="模板名称">
  166. </el-table-column>
  167. <el-table-column
  168. v-for="(item,index) in columnDetailList" :key="index"
  169. :sortable="item.columnSortable"
  170. :prop="item.columnProp"
  171. :header-align="item.headerAlign"
  172. :show-overflow-tooltip="item.showOverflowTooltip"
  173. :align="item.align"
  174. :fixed="item.fixed==''?false:item.fixed"
  175. :min-width="item.columnWidth"
  176. :label="item.columnLabel">
  177. <template slot-scope="scope">
  178. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  179. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  180. </template>
  181. </el-table-column>
  182. <el-table-column
  183. prop="operation"
  184. header-align="center"
  185. align="center"
  186. label="工序">
  187. </el-table-column>
  188. <el-table-column
  189. prop="resourceID"
  190. header-align="center"
  191. align="center"
  192. label="机台">
  193. </el-table-column>
  194. <el-table-column
  195. prop="manufacturerName"
  196. header-align="center"
  197. align="center"
  198. label="供应商">
  199. </el-table-column>
  200. <el-table-column
  201. prop=""
  202. header-align="center"
  203. align="center"
  204. min-width="150"
  205. label="检验水平">
  206. <template slot-scope="scope">
  207. <el-button type="primary" @click="chooseLevel(scope.row)" style="width:18%;padding: 3px 7px">·&nbsp;·&nbsp;·</el-button>
  208. <el-input v-model="scope.row.samplingLevelDesc" readonly style="width:77%"></el-input>
  209. </template>
  210. </el-table-column>
  211. <el-table-column
  212. prop=""
  213. header-align="center"
  214. align="center"
  215. min-width="60"
  216. label="检验周期(h)">
  217. <template slot-scope="scope">
  218. <el-input v-model="scope.row.inspectionCycle" type="number" style="height: 11px;padding: 0px " allow-create>;width:98%"</el-input>
  219. </template>
  220. </el-table-column>
  221. <el-table-column
  222. prop=""
  223. header-align="center"
  224. align="center"
  225. min-width="150"
  226. label="抽样方案">
  227. <template slot-scope="scope">
  228. <el-button type="primary" @click="chooseProgrammeRow(scope.row)" style="width:18%;padding: 3px 7px">·&nbsp;·&nbsp;·</el-button>
  229. <el-input v-model="scope.row.samplingProgrammeDesc" readonly style="width:77%;"></el-input>
  230. </template>
  231. </el-table-column>
  232. <el-table-column
  233. prop=""
  234. header-align="center"
  235. align="center"
  236. min-width="60"
  237. label="AQL">
  238. <template slot-scope="scope">
  239. <el-input v-model="scope.row.aql" type="number" style="height: 11px;padding: 0px " allow-create>;width:98%"</el-input>
  240. </template>
  241. </el-table-column>
  242. <el-table-column
  243. prop=""
  244. header-align="center"
  245. align="center"
  246. min-width="60"
  247. label="AC">
  248. <template slot-scope="scope">
  249. <el-input v-model="scope.row.ac" type="number" style="height: 11px;padding: 0px " allow-create>;width:98%"</el-input>
  250. </template>
  251. </el-table-column>
  252. <el-table-column
  253. prop=""
  254. header-align="center"
  255. align="center"
  256. min-width="60"
  257. label="RE">
  258. <template slot-scope="scope">
  259. <el-input v-model="scope.row.re" type="number" style="height: 11px;padding: 0px " allow-create>;width:98%"</el-input>
  260. </template>
  261. </el-table-column>
  262. <el-table-column
  263. fixed="right"
  264. header-align="center"
  265. align="center"
  266. width="80"
  267. label="操作">
  268. <template slot-scope="scope">
  269. <a type="text" size="small" @click="deletePartAttributeDetails(scope.row)">删除模板</a>
  270. </template>
  271. </el-table-column>
  272. </el-table>
  273. </div>
  274. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  275. <el-button type="primary" @click="saveDetail()">保存</el-button>
  276. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  277. </el-footer>
  278. </el-dialog>
  279. <!-- 检验模板->快速新增 -->
  280. <el-dialog title="新增" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="fastAddFlag" width="1100px">
  281. <div style="font-size: 12px">
  282. <el-form :inline="true" label-position="top" :model="detailData">
  283. <el-form-item :label="'模板编码'">
  284. <el-input v-model="detailData.templateId" clearable style="width: 120px"></el-input>
  285. </el-form-item>
  286. <el-form-item :label="'模板名称'">
  287. <el-input v-model="detailData.templateName" clearable style="width: 120px"></el-input>
  288. </el-form-item>
  289. <el-form-item label="检验类型">
  290. <el-select v-model="detailData.inspectionTypeNo" @change="checkInspectionType()" placeholder="请选择">
  291. <el-option
  292. v-for = "i in options"
  293. :key = "i.inspectionTypeNo"
  294. :label = "i.inspectionTypeName"
  295. :value = "i.inspectionTypeNo">
  296. </el-option>
  297. </el-select>
  298. </el-form-item>
  299. <el-form-item :label="' '">
  300. <el-button type="primary" @click="checkInspectionType()">查询</el-button>
  301. </el-form-item>
  302. <el-form-item style="margin-left: 117px" :label="' '">
  303. <el-button type="primary" @click="getOperationList()" style="width: 63px" v-if="this.detailData.inspectionTypeNo === '101' || this.detailData.inspectionTypeNo === '102' || this.detailData.inspectionTypeNo === '103' || this.detailData.inspectionTypeNo === '104' || this.detailData.inspectionTypeNo === '106' || this.detailData.inspectionTypeNo === '107'">工序</el-button>
  304. <el-button type="primary" @click="getManufacturerList()" v-if="this.detailData.inspectionTypeNo === '105'" style="width: 63px">供应商</el-button>
  305. </el-form-item>
  306. <el-form-item :label="' '">
  307. <el-button type="primary" @click="getAllResourceList()" style="width: 63px" v-if="this.detailData.inspectionTypeNo === '101' || this.detailData.inspectionTypeNo === '102' || this.detailData.inspectionTypeNo === '103' || this.detailData.inspectionTypeNo === '104' || this.detailData.inspectionTypeNo === '106' || this.detailData.inspectionTypeNo === '107'">机台</el-button>
  308. </el-form-item>
  309. </el-form>
  310. </div>
  311. <el-container style="margin-top: 0px;">
  312. <el-main style="width: 470px;padding: 1px">
  313. <span style="font-size: 12px" >可选模板</span>
  314. <el-table
  315. height="400px"
  316. :data="itemList1"
  317. border
  318. ref="itemTable1"
  319. @row-click="itemClickRow1"
  320. @selection-change="selectionItem1"
  321. highlight-current-row
  322. style="width: 100%">
  323. <el-table-column
  324. type="selection"
  325. header-align="center"
  326. align="center"
  327. :selectable="selectFlag"
  328. width="50">
  329. </el-table-column>
  330. <el-table-column
  331. prop="templateId"
  332. header-align="center"
  333. align="center"
  334. min-width="80"
  335. label="模板编码">
  336. </el-table-column>
  337. <el-table-column
  338. prop="templateName"
  339. header-align="center"
  340. align="center"
  341. min-width="170"
  342. label="模板名称">
  343. </el-table-column>
  344. <el-table-column
  345. prop="inspectionTypeName"
  346. header-align="center"
  347. align="center"
  348. min-width="80"
  349. label="检验类型">
  350. </el-table-column>
  351. </el-table>
  352. </el-main>
  353. <el-main style="width: 100px;padding: 1px">
  354. <div style="margin-top: 180px;margin-left: 18px">
  355. <el-button type="primary" @click="addItem()">添加>></el-button>
  356. </div>
  357. <div style="margin-top: 15px;margin-left: 18px">
  358. <el-button type="primary" @click="deleteItem()">删除<<</el-button>
  359. </div>
  360. </el-main>
  361. <el-main style="width: 470px;padding: 1px">
  362. <span style="font-size: 12px" >已有模板</span>
  363. <el-table
  364. height="400px"
  365. :data="itemList2"
  366. border
  367. ref="itemTable2"
  368. @row-click="itemClickRow2"
  369. @selection-change="selectionItem2"
  370. highlight-current-row
  371. style="width: 100%">
  372. <el-table-column
  373. type="selection"
  374. header-align="center"
  375. align="center"
  376. :selectable="selectFlag"
  377. width="50">
  378. </el-table-column>
  379. <el-table-column
  380. prop="templateId"
  381. header-align="center"
  382. align="center"
  383. min-width="80"
  384. label="模板编码">
  385. </el-table-column>
  386. <el-table-column
  387. prop="templateName"
  388. header-align="center"
  389. align="center"
  390. min-width="170"
  391. label="模板名称">
  392. </el-table-column>
  393. <el-table-column
  394. prop="operation"
  395. header-align="center"
  396. align="center"
  397. label="工序">
  398. </el-table-column>
  399. <el-table-column
  400. prop="resourceID"
  401. header-align="center"
  402. align="center"
  403. label="机台">
  404. </el-table-column>
  405. <el-table-column
  406. prop="manufacturerName"
  407. header-align="center"
  408. align="center"
  409. label="供应商">
  410. </el-table-column>
  411. <el-table-column
  412. prop="inspectionTypeName"
  413. header-align="center"
  414. align="center"
  415. min-width="80"
  416. label="检验类型">
  417. </el-table-column>
  418. </el-table>
  419. </el-main>
  420. </el-container>
  421. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  422. <el-button type="primary" @click="fastAddFlag = false">关闭</el-button>
  423. </el-footer>
  424. </el-dialog>
  425. <!-- 工序 -->
  426. <el-dialog title="工序清单" :close-on-click-modal="false" v-drag :visible.sync="operationModelFlag" width="420px">
  427. <div class="rq">
  428. <el-form :inline="true" label-position="top" :model="operationData">
  429. <el-form-item :label="'工序:'">
  430. <el-input v-model="operationData.operationDesc" style="width: 120px"></el-input>
  431. </el-form-item>
  432. <el-form-item :label="' '">
  433. <el-button type="primary" @click="getOperationList2()">查询</el-button>
  434. </el-form-item>
  435. </el-form>
  436. <el-table
  437. :height="300"
  438. :data="operationList"
  439. ref="operationTable"
  440. @row-click="operationClickRow"
  441. @selection-change="selectionOperationChangeHandle"
  442. border
  443. :row-class-name="operationRowClassName"
  444. style="width: 100%;">
  445. <el-table-column type="index" width="50" align="center">
  446. <template slot-scope="scope">
  447. <el-radio v-model="operationCurrent" :label="scope.row.index">{{''}}</el-radio>
  448. </template>
  449. </el-table-column>
  450. <el-table-column
  451. prop="operationDesc"
  452. header-align="center"
  453. align="center"
  454. label="工序">
  455. </el-table-column>
  456. </el-table>
  457. </div>
  458. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  459. <el-button type="primary" @click="confirmOperation()">确认</el-button>
  460. </el-footer>
  461. </el-dialog>
  462. <!-- 机台 -->
  463. <el-dialog title="机台清单" :close-on-click-modal="false" v-drag :visible.sync="resourceModelFlag" width="420px">
  464. <div class="rq">
  465. <el-form :inline="true" label-position="top" :model="resourceData">
  466. <el-form-item :label="'机台编码'">
  467. <el-input v-model="resourceData.resourceId" clearable style="width: 120px"></el-input>
  468. </el-form-item>
  469. <el-form-item :label="'机台名称'">
  470. <el-input v-model="resourceData.resourceDesc" clearable style="width: 120px"></el-input>
  471. </el-form-item>
  472. <el-form-item :label="' '">
  473. <el-button type="primary" @click="getAllResourceList2()">查询</el-button>
  474. </el-form-item>
  475. </el-form>
  476. <el-table
  477. :height="300"
  478. :data="resourceList"
  479. ref="resourceTable"
  480. @row-click="resourceClickRow"
  481. @selection-change="selectionResourceChangeHandle"
  482. border
  483. :row-class-name="resourceRowClassName"
  484. style="width: 100%;">
  485. <el-table-column type="index" width="50" align="center">
  486. <template slot-scope="scope">
  487. <el-radio v-model="resourceCurrent" :label="scope.row.index">{{''}}</el-radio>
  488. </template>
  489. </el-table-column>
  490. <el-table-column
  491. prop="resourceId"
  492. header-align="center"
  493. align="center"
  494. label="机台编码">
  495. </el-table-column>
  496. <el-table-column
  497. prop="resourceDesc"
  498. header-align="center"
  499. align="center"
  500. label="机台名称">
  501. </el-table-column>
  502. </el-table>
  503. </div>
  504. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  505. <el-button type="primary" @click="confirmResource()">确认</el-button>
  506. </el-footer>
  507. </el-dialog>
  508. <!-- 供应商 -->
  509. <el-dialog title="供应商清单" :close-on-click-modal="false" v-drag :visible.sync="manufacturerModelFlag" width="420px">
  510. <div class="rq">
  511. <el-form :inline="true" label-position="top" :model="manufacturerData">
  512. <el-form-item :label="'供应商编码:'">
  513. <el-input v-model="manufacturerData.manufacturerID" clearable style="width: 120px"></el-input>
  514. </el-form-item>
  515. <el-form-item :label="'供应商名称:'">
  516. <el-input v-model="manufacturerData.manufacturerName" clearable style="width: 120px"></el-input>
  517. </el-form-item>
  518. <el-form-item :label="' '">
  519. <el-button type="primary" @click="getManufacturerList()">查询</el-button>
  520. </el-form-item>
  521. </el-form>
  522. <el-table
  523. :height="300"
  524. :data="manufacturerList"
  525. ref="manufacturerTable"
  526. @row-click="manufacturerClickRow"
  527. @selection-change="selectionManufacturerChangeHandle"
  528. border
  529. style="width: 100%;">
  530. <el-table-column
  531. type="selection"
  532. header-align="center"
  533. align="center"
  534. :selectable="selectFlag"
  535. width="50">
  536. </el-table-column>
  537. <el-table-column
  538. prop="manufacturerID"
  539. header-align="center"
  540. align="center"
  541. label="供应商编码">
  542. </el-table-column>
  543. <el-table-column
  544. prop="manufacturerName"
  545. header-align="center"
  546. align="center"
  547. label="供应商名称">
  548. </el-table-column>
  549. </el-table>
  550. </div>
  551. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  552. <el-button type="primary" @click="confirmManufacturer()">确认</el-button>
  553. <el-button type="primary" @click="manufacturerModelFlag = false">关闭</el-button>
  554. </el-footer>
  555. </el-dialog>
  556. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  557. <!-- 导入 -->
  558. <qcUpload ref="qcUpload" @refreshPageTables="getDataList()" v-drag></qcUpload>
  559. </div>
  560. </template>
  561. <script>
  562. import {
  563. qcFamilyAttributeSearch, // 查询类别属性
  564. qcFamilyAttributeSave, // 新增类别属性
  565. qcFamilyAttributeDelete, // 删除类别属性
  566. InspectionTypeSearch, // 搜索所有检验类型
  567. savePartAttributeDetails, // 新增分类属性模板
  568. deletePartAttributeDetails, // 删除分类属性模板
  569. searchPartAttributeDetails, // 查询物料属性模板
  570. saveAttributeDetailed, // 新增物料属性模板详情
  571. getPartTemplateLists, // 获取模板列表
  572. getOperationDescList, // 查询工序列表
  573. getManufacturerList, // 查询供应商列表
  574. getAllResourceList, // 查询机台列表
  575. inspectionTypeSearch,
  576. getSiteAndBuByUserName
  577. } from "@/api/qc/qc.js"
  578. import Chooselist from '@/views/modules/common/Chooselist_eam'
  579. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  580. import qcUpload from "./qc_upload";
  581. export default {
  582. components: {
  583. Chooselist,
  584. qcUpload
  585. },
  586. data () {
  587. return {
  588. // 是否收藏
  589. favorite: false,
  590. // 导出 start
  591. exportData: [],
  592. exportName: "根据类别设置检验模板" + this.dayjs().format('YYYYMMDDHHmmss'),
  593. exportHeader: ["根据类别设置检验模板"],
  594. exportFooter: [],
  595. exportList: [],
  596. // 导出 end
  597. tagNo: '',
  598. searchData: {
  599. site: '',
  600. userName: this.$store.state.user.name,
  601. familyID: '',
  602. familyName: '',
  603. buDesc: '',
  604. attributeType: 'B',
  605. page: 1,
  606. limit: 10,
  607. },
  608. height: 200,
  609. pageIndex: 1,
  610. pageSize: 100,
  611. totalPage: 0,
  612. modalFlag: false,
  613. modalDisableFlag: false,
  614. modalData: {
  615. site: '',
  616. bu: '',
  617. flag: '',
  618. familyID: '',
  619. familyName: '',
  620. supplierNo: '',
  621. supplierDesc: '',
  622. attributeRemark: '',
  623. createBy: this.$store.state.user.name,
  624. attributeType: 'B',
  625. },
  626. detailData: {
  627. site: '',
  628. buNo: '',
  629. familyID: '',
  630. familyName: '',
  631. attributeNo: '',
  632. attributeType: 'B',
  633. inspectionTypeNo: '',
  634. templateId: '',
  635. templateName: '',
  636. createBy: this.$store.state.user.name
  637. },
  638. columnList: [
  639. {
  640. columnProp: 'site',
  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. },
  651. {
  652. columnProp: 'familyID',
  653. headerAlign: "center",
  654. align: "center",
  655. columnLabel: '物料类别编码',
  656. columnHidden: false,
  657. columnImage: false,
  658. columnSortable: false,
  659. sortLv: 0,
  660. status: true,
  661. fixed: '',
  662. },
  663. {
  664. columnProp: 'familyName',
  665. headerAlign: "center",
  666. align: "center",
  667. columnLabel: '物料类别名称',
  668. columnHidden: false,
  669. columnImage: false,
  670. columnSortable: false,
  671. sortLv: 0,
  672. status: true,
  673. fixed: '',
  674. },
  675. {
  676. columnProp: 'attributeRemark',
  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. },
  687. {
  688. columnProp: 'createTime',
  689. headerAlign: "center",
  690. align: "center",
  691. columnLabel: '创建时间',
  692. columnHidden: false,
  693. columnImage: false,
  694. columnSortable: false,
  695. sortLv: 0,
  696. status: true,
  697. fixed: '',
  698. },
  699. {
  700. columnProp: 'createBy',
  701. headerAlign: "center",
  702. align: "center",
  703. columnLabel: '创建人',
  704. columnHidden: false,
  705. columnImage: false,
  706. columnSortable: false,
  707. sortLv: 0,
  708. status: true,
  709. fixed: '',
  710. },
  711. {
  712. columnProp: 'updateDate',
  713. headerAlign: "center",
  714. align: "center",
  715. columnLabel: '更新时间',
  716. columnHidden: false,
  717. columnImage: false,
  718. columnSortable: false,
  719. sortLv: 0,
  720. status: true,
  721. fixed: '',
  722. },
  723. {
  724. columnProp: 'updateBy',
  725. headerAlign: "center",
  726. align: "center",
  727. columnLabel: '更新人',
  728. columnHidden: false,
  729. columnImage: false,
  730. columnSortable: false,
  731. sortLv: 0,
  732. status: true,
  733. fixed: '',
  734. },
  735. ],
  736. detailModelFlag: false,
  737. detailList: [],
  738. dataList: [],
  739. // 展示列集
  740. columnDetailList: [
  741. {
  742. columnProp: 'inspectionTypeName',
  743. headerAlign: "center",
  744. align: "center",
  745. columnLabel: '检验类型',
  746. columnHidden: false,
  747. columnImage: false,
  748. columnSortable: false,
  749. sortLv: 0,
  750. status: true,
  751. fixed: '',
  752. },
  753. {
  754. columnProp: 'templateRemark',
  755. headerAlign: "center",
  756. align: "center",
  757. columnLabel: '备注',
  758. columnHidden: false,
  759. columnImage: false,
  760. columnSortable: false,
  761. sortLv: 0,
  762. status: true,
  763. fixed: '',
  764. },
  765. {
  766. columnProp: 'templateVersion',
  767. headerAlign: "center",
  768. align: "center",
  769. columnLabel: '版本号',
  770. columnHidden: false,
  771. columnImage: false,
  772. columnSortable: false,
  773. sortLv: 0,
  774. status: true,
  775. fixed: '',
  776. },
  777. ],
  778. // 快速添加
  779. fastAddFlag: false,
  780. itemList1: [],
  781. itemList2: [],
  782. itemListRow1: {},
  783. itemListRow2: {},
  784. options: [],
  785. tempProgrammeRow: '',
  786. itemSelections1: [],
  787. itemSelections2: [],
  788. rules: {
  789. familyIDType:[
  790. {
  791. required: true,
  792. message: ' ',
  793. trigger: ['blur','change']
  794. }
  795. ],
  796. familyNameType:[
  797. {
  798. required: true,
  799. message: ' ',
  800. trigger: ['blur','change']
  801. }
  802. ],
  803. site: [
  804. {
  805. required: true,
  806. message: ' ',
  807. trigger: ['blur','change']
  808. }
  809. ]
  810. },
  811. // 工序
  812. operationList: [],
  813. operationModelFlag: false,
  814. operationData: {
  815. operationDesc: ''
  816. },
  817. // 供应商
  818. manufacturerList: [],
  819. manufacturerModelFlag: false,
  820. dataListManufacturerSelections: [],
  821. manufacturerData: {
  822. site: '',
  823. manufacturerID: '',
  824. manufacturerName: ''
  825. },
  826. operation: '',
  827. resourceId: '',
  828. // 单选框绑定的值
  829. operationCurrent: -1,
  830. resourceCurrent: -1,
  831. selectionManufacturer: [],
  832. resourceModelFlag: false,
  833. resourceData: {
  834. site: '',
  835. resourceId: '',
  836. resourceDesc: ''
  837. },
  838. resourceList: [],
  839. userBuList: [],
  840. authSearch: false,
  841. authSave: false,
  842. authDelete: false,
  843. authDetail: false,
  844. menuId: this.$route.meta.menuId,
  845. }
  846. },
  847. mounted () {
  848. this.$nextTick(() => {
  849. this.height = window.innerHeight - 210
  850. })
  851. },
  852. created () {
  853. // 按钮控制
  854. this.getButtonAuthData()
  855. // 获取用户的 site 和 bu
  856. // this.getSiteAndBuByUserName()
  857. // 校验用户是否收藏
  858. // this.favoriteIsOk()
  859. // 获取检验类型
  860. this.inspectionTypeSearch()
  861. if (!this.authSearch) {
  862. // 获取数据列表
  863. this.getDataList()
  864. }
  865. },
  866. methods: {
  867. // 获取用户的bu
  868. getSiteAndBuByUserName () {
  869. let tempData = {
  870. username: this.$store.state.user.name,
  871. }
  872. getSiteAndBuByUserName(tempData).then(({data}) => {
  873. if (data.code === 0) {
  874. this.userBuList = data.rows
  875. }
  876. })
  877. },
  878. // 查询检验类型
  879. inspectionTypeSearch () {
  880. let tempData = {
  881. site: this.$store.state.user.site
  882. }
  883. inspectionTypeSearch(tempData).then(({data}) => {
  884. if (data.code === 0) {
  885. this.options = data.rows
  886. }
  887. })
  888. },
  889. chooseLevel (row) {
  890. this.tempLevelRow = row
  891. this.getBaseList(208)
  892. },
  893. chooseProgrammeRow (row) {
  894. this.tempProgrammeRow = row
  895. this.getBaseList(207)
  896. },
  897. // 获取基础数据列表S
  898. getBaseList (val,type) {
  899. this.tagNo = val
  900. this.$nextTick(() => {
  901. let strVal = ''
  902. if (val === 1042) {
  903. strVal = this.modalData.familyID
  904. this.$refs.baseList.init(val, strVal)
  905. }
  906. if (val === 208) {
  907. strVal = this.tempLevelRow.samplingLevelNo
  908. this.$refs.baseList.init(val, strVal)
  909. }
  910. if (val === 207) {
  911. strVal = this.tempProgrammeRow.samplingProgrammeNo
  912. this.$refs.baseList.init(val, strVal)
  913. }
  914. })
  915. },
  916. // 列表方法的回调
  917. getBaseData (val) {
  918. if (this.tagNo === 1042) {
  919. this.modalData.familyID = val.FamilyID
  920. this.modalData.familyName = val.FamilyName
  921. }
  922. if (this.tagNo === 208) {
  923. this.tempLevelRow.samplingLevelNo = val.sampling_level_no
  924. this.tempLevelRow.samplingLevelDesc = val.sampling_level_desc
  925. }
  926. if (this.tagNo === 207) {
  927. this.tempProgrammeRow.samplingProgrammeNo = val.sampling_programme_no
  928. this.tempProgrammeRow.samplingProgrammeDesc = val.sampling_programme_desc
  929. }
  930. },
  931. // 获取数据列表
  932. getDataList () {
  933. this.searchData.limit = this.pageSize
  934. this.searchData.page = this.pageIndex
  935. qcFamilyAttributeSearch(this.searchData).then(({data}) => {
  936. if (data.code === 0) {
  937. this.dataList = data.page.list
  938. this.pageIndex = data.page.currPage
  939. this.pageSize = data.page.pageSize
  940. this.totalPage = data.page.totalCount
  941. }
  942. })
  943. },
  944. // 每页数
  945. sizeChangeHandle (val) {
  946. this.pageSize = val
  947. this.pageIndex = 1
  948. this.getDataList()
  949. },
  950. // 当前页
  951. currentChangeHandle (val) {
  952. this.pageIndex = val
  953. this.getDataList()
  954. },
  955. addModal () {
  956. this.modalData = {
  957. site: this.$store.state.user.site,
  958. buNo: '*',
  959. // bu: this.userBuList[0].buNo,
  960. flag: '1',
  961. familyID: '',
  962. familyName: '',
  963. supplierNo: '',
  964. supplierDesc: '',
  965. attributeRemark: '',
  966. createBy: this.$store.state.user.name,
  967. attributeType: 'B',
  968. }
  969. this.modalDisableFlag = false
  970. this.modalFlag = true
  971. },
  972. // 删除
  973. deletePropertiesModel (row) {
  974. this.$confirm(`是否删除这个分类属性?`, '提示', {
  975. confirmButtonText: '确定',
  976. cancelButtonText: '取消',
  977. type: 'warning'
  978. }).then(() => {
  979. qcFamilyAttributeDelete(row).then(({data}) => {
  980. if (data && data.code === 0) {
  981. this.getDataList()
  982. this.$message({
  983. message: '操作成功',
  984. type: 'success',
  985. duration: 1500,
  986. onClose: () => {}
  987. })
  988. } else {
  989. this.$alert(data.msg, '错误', {
  990. confirmButtonText: '确定'
  991. })
  992. }
  993. })
  994. }).catch(() => {
  995. })
  996. },
  997. saveData () {
  998. // if (this.modalData.bu === '' || this.modalData.bu == null) {
  999. // this.$message.warning('请选择BU!')
  1000. // return
  1001. // }
  1002. if (this.modalData.familyID === '' || this.modalData.familyID == null) {
  1003. this.$message.warning('请选择物料分类编码!')
  1004. return
  1005. }
  1006. if (this.modalData.familyName === '' || this.modalData.familyName == null) {
  1007. this.$message.warning('请选择物料分类名称!')
  1008. return
  1009. }
  1010. if (this.modalData.flag === '1') {
  1011. qcFamilyAttributeSave(this.modalData).then(({data}) => {
  1012. if (data && data.code === 0) {
  1013. this.getDataList()
  1014. this.modalFlag = false
  1015. this.$message({
  1016. message: '操作成功',
  1017. type: 'success',
  1018. duration: 1500,
  1019. onClose: () => {}
  1020. })
  1021. } else {
  1022. this.$alert(data.msg, '错误', {
  1023. confirmButtonText: '确定'
  1024. })
  1025. }
  1026. })
  1027. }
  1028. },
  1029. // 保存属性模板
  1030. saveDetail () {
  1031. for (let i = 0; i < this.detailList.length; i++) {
  1032. this.detailList[i].updateBy = this.$store.state.user.name
  1033. saveAttributeDetailed(this.detailList[i]).then(({data}) => {
  1034. if (data && data.code === 0) {
  1035. this.getDataList()
  1036. this.detailModelFlag = false
  1037. this.$message({
  1038. message: '操作成功',
  1039. type: 'success',
  1040. duration: 1500,
  1041. onClose: () => {}
  1042. })
  1043. } else {
  1044. this.$alert(data.msg, '错误', {
  1045. confirmButtonText: '确定'
  1046. }).then(() => {
  1047. return false
  1048. })
  1049. }
  1050. })
  1051. }
  1052. },
  1053. // 打开分类模板清单
  1054. detailModal (row) {
  1055. this.detailData.site = row.site
  1056. this.detailData.buNo = row.buNo
  1057. this.detailData.familyID = row.familyID
  1058. this.detailData.familyName = row.familyName
  1059. this.detailData.attributeNo = row.familyID
  1060. this.detailData.partDesc = row.partDesc
  1061. searchPartAttributeDetails(this.detailData).then(({data}) => {
  1062. this.detailList = data.rows
  1063. })
  1064. this.detailModelFlag = true
  1065. },
  1066. checkInspectionType () {
  1067. getPartTemplateLists(this.detailData).then(({data}) => {
  1068. this.operation = ''
  1069. this.resourceId = ''
  1070. this.operationCurrent = -1
  1071. this.resourceCurrent = -1
  1072. this.itemList1 = data.row1
  1073. this.itemList2 = data.row2
  1074. })
  1075. },
  1076. // 快速新增
  1077. addFastModal () {
  1078. this.itemSelections1 = null
  1079. this.itemSelections2 = null
  1080. getPartTemplateLists(this.detailData).then(({data}) => {
  1081. this.itemList1 = data.row1
  1082. this.itemList2 = data.row2
  1083. })
  1084. this.detailData.inspectionTypeNo = this.options[0].inspectionTypeNo
  1085. this.checkInspectionType()
  1086. this.operation = ''
  1087. this.resourceId = ''
  1088. this.operationCurrent = -1
  1089. this.resourceCurrent = -1
  1090. this.selectionManufacturer = []
  1091. this.dataListManufacturerSelections = []
  1092. this.fastAddFlag = true
  1093. },
  1094. // 可选项目
  1095. itemClickRow1 (row) {
  1096. this.$refs.itemTable1.toggleRowSelection(row)
  1097. },
  1098. // 已有项目
  1099. itemClickRow2 (row) {
  1100. this.$refs.itemTable2.toggleRowSelection(row)
  1101. },
  1102. selectFlag () {
  1103. return true
  1104. },
  1105. selectionItem1 (val) {
  1106. this.itemSelections1 = val
  1107. },
  1108. selectionItem2 (val) {
  1109. this.itemSelections2 = val
  1110. },
  1111. // 添加模板
  1112. addItem () {
  1113. if (this.itemSelections1 == null || this.itemSelections1.length === 0) {
  1114. this.$message.warning('请选择可选模板!')
  1115. return
  1116. }
  1117. if ((this.detailData.inspectionTypeNo === '101' || this.detailData.inspectionTypeNo === '102' || this.detailData.inspectionTypeNo === '103' || this.detailData.inspectionTypeNo === '104' || this.detailData.inspectionTypeNo === '106' || this.detailData.inspectionTypeNo === '107') && (this.operation == null || this.operation === '')) {
  1118. this.$message.warning('请选择工序!')
  1119. return
  1120. }
  1121. if ((this.detailData.inspectionTypeNo === '101' || this.detailData.inspectionTypeNo === '102' || this.detailData.inspectionTypeNo === '103' || this.detailData.inspectionTypeNo === '104' || this.detailData.inspectionTypeNo === '106' || this.detailData.inspectionTypeNo === '107') && (this.resourceId == null || this.resourceId === '')) {
  1122. this.$message.warning('请选择机台!')
  1123. return
  1124. }
  1125. if ((this.detailData.inspectionTypeNo === '105') && (this.selectionManufacturer == null || this.selectionManufacturer.length === 0)) {
  1126. this.$message.warning('请选择供应商!')
  1127. return
  1128. }
  1129. let inData = {
  1130. site: this.detailData.site,
  1131. buNo: this.detailData.buNo,
  1132. attributeNo: this.detailData.familyID,
  1133. itemList: this.itemSelections1,
  1134. operation: this.operation,
  1135. resourceID: this.resourceId,
  1136. manufacturerList: this.selectionManufacturer,
  1137. attributeType: this.detailData.attributeType,
  1138. inspectionTypeNo: this.detailData.inspectionTypeNo
  1139. }
  1140. savePartAttributeDetails(inData).then(({data}) => {
  1141. if (data && data.code === 0) {
  1142. getPartTemplateLists(this.detailData).then(({data}) => {
  1143. this.itemList1 = data.row1
  1144. this.itemList2 = data.row2
  1145. })
  1146. this.itemSelections1 = []
  1147. this.operation = ''
  1148. this.resourceId = ''
  1149. this.selectionManufacturer = []
  1150. } else {
  1151. this.$alert(data.msg, '错误', {
  1152. confirmButtonText: '确定'
  1153. })
  1154. }
  1155. })
  1156. },
  1157. // 删除项目
  1158. deleteItem () {
  1159. if (this.itemSelections2 == null || this.itemSelections2.length === 0) {
  1160. this.$message.warning('请选择已有模板!')
  1161. return
  1162. }
  1163. let inData = {
  1164. attributeNo:this.detailData.familyID,
  1165. itemList: this.itemSelections2,
  1166. attributeType: this.detailData.attributeType,
  1167. site: this.detailData.site,
  1168. buNo: this.detailData.buNo,
  1169. }
  1170. deletePartAttributeDetails(inData).then(({data}) => {
  1171. if (data && data.code === 0) {
  1172. getPartTemplateLists(this.detailData).then(({data}) => {
  1173. this.itemList1 = data.row1
  1174. this.itemList2 = data.row2
  1175. })
  1176. this.itemSelections2 = []
  1177. } else {
  1178. this.$alert(data.msg, '错误', {
  1179. confirmButtonText: '确定'
  1180. })
  1181. }
  1182. })
  1183. },
  1184. // 关闭后刷新列表
  1185. refreshDetailList () {
  1186. searchPartAttributeDetails(this.detailData).then(({data}) => {
  1187. this.detailList = data.rows
  1188. })
  1189. },
  1190. // 删除物料属性中的模板
  1191. deletePartAttributeDetails (row) {
  1192. this.$confirm(`是否删除这个检验模板?`, '提示', {
  1193. confirmButtonText: '确定',
  1194. cancelButtonText: '取消',
  1195. type: 'warning'
  1196. }).then(() => {
  1197. deletePartAttributeDetails(row).then(({data}) => {
  1198. if (data && data.code === 0) {
  1199. searchPartAttributeDetails(this.detailData).then(({data}) => {
  1200. this.detailList = data.rows
  1201. })
  1202. this.$message({
  1203. message: '操作成功',
  1204. type: 'success',
  1205. duration: 1500,
  1206. onClose: () => {}
  1207. })
  1208. } else {
  1209. this.$alert(data.msg, '错误', {
  1210. confirmButtonText: '确定'
  1211. })
  1212. }
  1213. })
  1214. }).catch(() => {
  1215. })
  1216. },
  1217. // 校验用户是否收藏
  1218. favoriteIsOk () {
  1219. let userFavorite = {
  1220. userId: this.$store.state.user.id,
  1221. languageCode: this.$i18n.locale
  1222. }
  1223. userFavoriteList(userFavorite).then(({data}) => {
  1224. for (let i = 0; i < data.list.length; i++) {
  1225. if (this.$route.meta.menuId === data.list[i].menuId) {
  1226. this.favorite = true
  1227. }
  1228. }
  1229. })
  1230. },
  1231. // 收藏 OR 取消收藏
  1232. favoriteFunction () {
  1233. let userFavorite = {
  1234. userId: this.$store.state.user.id,
  1235. functionId: this.$route.meta.menuId,
  1236. }
  1237. if (this.favorite) {
  1238. removeUserFavorite(userFavorite).then(({data}) => {
  1239. this.$message.success(data.msg)
  1240. this.favorite = false
  1241. })
  1242. } else {
  1243. // 收藏
  1244. saveUserFavorite(userFavorite).then(({data}) => {
  1245. this.$message.success(data.msg)
  1246. this.favorite = true
  1247. })
  1248. }
  1249. },
  1250. // 导出excel
  1251. async createExportData () {
  1252. this.searchData.limit = -1
  1253. this.searchData.page = 1
  1254. await qcFamilyAttributeSearch(this.searchData).then(({data}) => {
  1255. this.exportList = data.page.list
  1256. })
  1257. return this.exportList
  1258. },
  1259. startDownload() {},
  1260. finishDownload() {},
  1261. fields () {
  1262. let json = "{"
  1263. this.columnList.forEach((item, index) => {
  1264. if (index == this.columnList.length - 1) {
  1265. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1266. } else {
  1267. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1268. }
  1269. })
  1270. json += "}"
  1271. let s = eval("(" + json + ")")
  1272. return s
  1273. },
  1274. // 导入
  1275. qcUpload () {
  1276. let currentData = {
  1277. flag: 'familyAttribute',
  1278. createBy: this.$store.state.user.name,
  1279. site: this.$store.state.user.site,
  1280. }
  1281. //打开组件 去做新增业务
  1282. this.$nextTick(() => {
  1283. this.$refs.qcUpload.init(currentData)
  1284. })
  1285. },
  1286. // 获取工序列表
  1287. getOperationList () {
  1288. this.operationData.inspectionTypeNo = this.detailData.inspectionTypeNo
  1289. getOperationDescList(this.operationData).then(({data}) => {
  1290. if (data && data.code === 0) {
  1291. this.operationList = data.rows
  1292. this.operationModelFlag = true
  1293. } else {
  1294. this.$alert(data.msg, '错误', {
  1295. confirmButtonText: '确定'
  1296. })
  1297. }
  1298. })
  1299. },
  1300. // 条件查询获取工序列表
  1301. getOperationList2 () {
  1302. getOperationDescList(this.operationData).then(({data}) => {
  1303. if (data && data.code === 0) {
  1304. this.operationList = data.rows
  1305. this.operationCurrent = -1
  1306. } else {
  1307. this.$alert(data.msg, '错误', {
  1308. confirmButtonText: '确定'
  1309. })
  1310. }
  1311. })
  1312. },
  1313. // 点击行选中复选框
  1314. operationClickRow (row) {
  1315. this.$refs.operationTable.toggleRowSelection(row)
  1316. },
  1317. // 多选工序
  1318. selectionOperationChangeHandle (val) {
  1319. this.operation = val[0].operationDesc
  1320. if (val) {
  1321. this.operationCurrent = val.index
  1322. }
  1323. },
  1324. operationRowClassName ({row, rowIndex}) {
  1325. row.index = rowIndex // 在原有的数据上加一个index
  1326. },
  1327. // 确认多选工序
  1328. confirmOperation () {
  1329. this.operationModelFlag = false
  1330. },
  1331. // 获取供应商列表
  1332. getManufacturerList () {
  1333. getManufacturerList(this.manufacturerData).then(({data}) => {
  1334. if (data && data.code === 0) {
  1335. this.manufacturerList = data.rows
  1336. // 回显数据
  1337. // 先清空缓存选中
  1338. this.$nextTick(() => this.$refs.manufacturerTable.clearSelection())
  1339. // 拿到选中的供应商
  1340. let tempDataList = this.selectionManufacturer
  1341. this.manufacturerList.forEach(val => {
  1342. // 回显选中的供应商
  1343. if (tempDataList.includes(val.manufacturerID)) {
  1344. this.$nextTick(() => this.$refs.manufacturerTable.toggleRowSelection(val, true))
  1345. }
  1346. })
  1347. this.manufacturerModelFlag = true
  1348. } else {
  1349. this.$alert(data.msg, '错误', {
  1350. confirmButtonText: '确定'
  1351. })
  1352. }
  1353. })
  1354. },
  1355. // 点击行选中复选框
  1356. manufacturerClickRow (row) {
  1357. this.$refs.manufacturerTable.toggleRowSelection(row)
  1358. },
  1359. // 多选
  1360. selectionManufacturerChangeHandle (val) {
  1361. this.dataListManufacturerSelections = val
  1362. },
  1363. // 确认多选供应商
  1364. confirmManufacturer () {
  1365. this.selectionManufacturer = []
  1366. for (let i = 0; i < this.dataListManufacturerSelections.length; i++) {
  1367. this.selectionManufacturer.push(this.dataListManufacturerSelections[i].manufacturerID)
  1368. }
  1369. this.manufacturerModelFlag = false
  1370. },
  1371. // 获取机台列表
  1372. getAllResourceList () {
  1373. this.resourceData.site = this.$store.state.user.site
  1374. getAllResourceList(this.resourceData).then(({data}) => {
  1375. if (data && data.code === 0) {
  1376. this.resourceList = data.rows
  1377. this.resourceModelFlag = true
  1378. } else {
  1379. this.$alert(data.msg, '错误', {
  1380. confirmButtonText: '确定'
  1381. })
  1382. }
  1383. })
  1384. },
  1385. // 条件查询获取机台列表
  1386. getAllResourceList2 () {
  1387. getAllResourceList(this.resourceData).then(({data}) => {
  1388. if (data && data.code === 0) {
  1389. this.resourceList = data.rows
  1390. this.resourceCurrent = -1
  1391. } else {
  1392. this.$alert(data.msg, '错误', {
  1393. confirmButtonText: '确定'
  1394. })
  1395. }
  1396. })
  1397. },
  1398. // 点击行选中机台复选框
  1399. resourceClickRow (row) {
  1400. this.$refs.resourceTable.toggleRowSelection(row)
  1401. },
  1402. // 多选机台
  1403. selectionResourceChangeHandle (val) {
  1404. this.resourceId = val[0].resourceId
  1405. if (val) {
  1406. this.resourceCurrent = val.index
  1407. }
  1408. },
  1409. resourceRowClassName ({row, rowIndex}) {
  1410. row.index = rowIndex // 在原有的数据上加一个index
  1411. },
  1412. // 确认选择工序
  1413. confirmResource () {
  1414. this.resourceModelFlag = false
  1415. },
  1416. //获取按钮的权限数据
  1417. getButtonAuthData () {
  1418. let searchFlag = this.isAuth(this.menuId+":search")
  1419. let saveFlag = this.isAuth(this.menuId+":save")
  1420. let deleteFlag = this.isAuth(this.menuId+":delete")
  1421. let detailFlag = this.isAuth(this.menuId+":detail")
  1422. //处理页面的权限数据
  1423. this.authSearch = !searchFlag
  1424. this.authSave = !saveFlag
  1425. this.authDelete = !deleteFlag
  1426. this.authDetail = !detailFlag
  1427. },
  1428. }
  1429. }
  1430. </script>