祥兆质量前端
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.

1482 lines
50 KiB

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