plm前端
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.

1287 lines
45 KiB

3 years ago
1 year ago
2 years ago
3 years ago
2 years ago
3 years ago
1 year ago
1 year ago
1 year ago
3 years ago
1 year ago
1 year ago
1 year ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
1 year ago
1 year ago
1 year ago
1 year ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
1 year ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
1 year ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
1 year ago
3 years ago
1 year ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
1 year ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
3 years ago
1 year ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
1 year ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
1 year ago
3 years ago
1 year ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
3 years ago
1 year ago
3 years ago
1 year 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
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  4. <el-form-item label="工艺">
  5. <bu-select v-model="searchData.buNo" style="width: 120px"></bu-select>
  6. </el-form-item>
  7. <el-form-item :label="'参数卡编码'">
  8. <el-input v-model="searchData.oriCodeNo" style="width: 130px"></el-input>
  9. </el-form-item>
  10. <el-form-item >
  11. <span slot="label" style="" @click="getBaseList(105,1)"><a herf="#">料号</a></span>
  12. <el-input v-model="searchData.testPartNo" style="width: 120px" clearable></el-input>
  13. </el-form-item>
  14. <el-form-item label="客户">
  15. <span slot="label" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
  16. <el-input v-model="searchData.customerDesc" style="width: 120px" clearable></el-input>
  17. </el-form-item>
  18. <el-form-item label="刀版号">
  19. <el-input v-model="searchData.cutterNumber" style="width: 120px" clearable></el-input>
  20. </el-form-item>
  21. <el-form-item :label="'状态'">
  22. <el-select v-model="searchData.statusDesc" clearable style="width: 130px">
  23. <el-option label="全部" value=""></el-option>
  24. <el-option label="草稿" value="cg"></el-option>
  25. <el-option label="审批中" value="spz"></el-option>
  26. <el-option label="已升版" value="death"></el-option>
  27. <el-option label="已完成" value="已完成"></el-option>
  28. </el-select>
  29. </el-form-item>
  30. <el-form-item :label="'ECN'">
  31. <el-select v-model="searchData.ecnFlag" clearable style="width: 130px">
  32. <el-option label="全部" value=""></el-option>
  33. <el-option label="Y" value="Y"></el-option>
  34. <el-option label="N" value="N"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item label=" ">
  38. <el-button @click="search()" type="primary" style="margin-left: 2px;margin-top:0px">查询</el-button>
  39. <el-button @click="addOrUpdateHandle()" type="primary" style="margin-left: 2px;margin-top: 0px">新增</el-button>
  40. <download-excel
  41. :fields="fields()"
  42. :data="exportData"
  43. type="xls"
  44. :name="exportName"
  45. :header="exportHeader"
  46. :footer="exportFooter"
  47. :fetch="createExportData"
  48. :before-generate="startDownload"
  49. :before-finish="finishDownload"
  50. worksheet="导出信息"
  51. class="el-button el-button--primary el-button--medium">
  52. {{ '导出' }}
  53. </download-excel>
  54. <!-- <el-button @click="test()" type="primary" style="margin-left: 2px;margin-top:0px">测试</el-button>-->
  55. </el-form-item>
  56. </el-form>
  57. <el-table
  58. :data="dataList1"
  59. :height="height"
  60. border
  61. ref="mainTable"
  62. @row-click="changeData"
  63. highlight-current-row
  64. v-loading="dataListLoading"
  65. style="width: 100%; ">
  66. <el-table-column
  67. v-for="(item,index) in columnList1" :key="index"
  68. :sortable="item.columnSortable"
  69. :prop="item.columnProp"
  70. :header-align="item.headerAlign"
  71. :show-overflow-tooltip="item.showOverflowTooltip"
  72. :align="item.align"
  73. :fixed="item.fixed==''?false:item.fixed"
  74. :min-width="item.columnWidth"
  75. :label="item.columnLabel">
  76. <template slot-scope="scope">
  77. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  78. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  79. </template>
  80. </el-table-column>
  81. <el-table-column
  82. header-align="center"
  83. align="center"
  84. width="150"
  85. fixed="right"
  86. label="操作">
  87. <template slot-scope="scope">
  88. <!-- <a type="text" size="small" @click="addRevModel(scope.row)" v-if="scope.row.statusDesc!=='已完成'">升版</a>-->
  89. <a type="text" size="small" v-if="scope.row.statusDesc==='已完成'||scope.row.statusDesc==='已升版'" @click="jumpDetail(scope.row)">详情</a>
  90. <a type="text" size="small" v-if="scope.row.statusDesc!=='已完成'&&scope.row.statusDesc!=='已升版'" @click="jumpDetail(scope.row)">修改</a>
  91. <!-- <a type="text" size="small" @click="addOrUpdateHandle(scope.row.id)" v-if="scope.row.statusDesc!=='已完成'">修改</a>-->
  92. <a type="text" size="small" @click="deleteData(scope.row)" v-if="scope.row.statusDesc!=='已完成'&&scope.row.statusDesc!=='已升版'">删除</a>
  93. <a type="text" size="small" v-if="scope.row.status === 'cg'" @click="issueModal(scope.row)">下达</a>
  94. <a type="text" size="small" v-if="scope.row.statusDesc!=='已升版'" @click="copyBM(scope.row)">拷贝</a>
  95. </template>
  96. </el-table-column>
  97. </el-table>
  98. <el-pagination
  99. @size-change="sizeChangeHandle"
  100. @current-change="currentChangeHandle"
  101. :current-page="pageIndex"
  102. :page-sizes="[20, 50, 100, 1000]"
  103. :page-size="pageSize"
  104. :total="totalPage"
  105. layout="total, sizes, prev, pager, next, jumper">
  106. </el-pagination>
  107. <el-tabs style="font-size: 12px;min-height: 330px" class="customer-tab" v-model="activeName" type="border-card" @tab-click="refreshCurrentTabTable">
  108. <el-tab-pane label="基本信息" name="info">
  109. <el-form label-position="top" label-width="100px" >
  110. <el-row :gutter="20">
  111. <el-col :span="6">
  112. <div class="grid-content bg-purple">
  113. <el-form-item :label="'项目号'">
  114. <el-input v-model="infoData.projectId" readonly></el-input>
  115. </el-form-item>
  116. </div>
  117. </el-col>
  118. <el-col :span="6">
  119. <div class="grid-content bg-purple">
  120. <el-form-item :label="'项目名称'">
  121. <el-input v-model="infoData.projectName" readonly></el-input>
  122. </el-form-item>
  123. </div>
  124. </el-col>
  125. <el-col :span="6">
  126. <div class="grid-content bg-purple">
  127. <el-form-item :label="'物料类型'">
  128. <el-input v-model="infoData.partTypeDesc" readonly></el-input>
  129. </el-form-item>
  130. </div>
  131. </el-col>
  132. <el-col :span="6">
  133. <div class="grid-content bg-purple">
  134. <el-form-item :label="'版本号'">
  135. <el-input v-model="infoData.revNo" readonly></el-input>
  136. </el-form-item>
  137. </div>
  138. </el-col>
  139. </el-row>
  140. <el-row :gutter="20">
  141. <el-col :span="6">
  142. <div class="grid-content bg-purple">
  143. <el-form-item :label="'ECN变更'">
  144. <el-input v-model="infoData.ecnFlag" readonly></el-input>
  145. </el-form-item>
  146. </div>
  147. </el-col>
  148. <el-col :span="6">
  149. <div class="grid-content bg-purple">
  150. <el-form-item :label="'ECN单据号'">
  151. <el-input v-model="infoData.ecnNo" readonly></el-input>
  152. </el-form-item>
  153. </div>
  154. </el-col>
  155. <el-col :span="12"><div class="grid-content bg-purple">
  156. <el-form-item :label="'ECN文档链接'">
  157. <el-input v-model="infoData.ecnAddress" readonly></el-input>
  158. </el-form-item>
  159. </div></el-col>
  160. </el-row>
  161. <el-row :gutter="20">
  162. <el-col :span="6">
  163. <div class="grid-content bg-purple">
  164. <el-form-item :label="'Select CS'">
  165. <el-input v-model="infoData.csOperaterName" ref="csOperaterName" placeholder="未选择人员" readonly></el-input>
  166. </el-form-item>
  167. </div>
  168. </el-col>
  169. <el-col :span="6">
  170. <div class="grid-content bg-purple">
  171. <el-form-item :label="'Select Engineer'">
  172. <el-input v-model="infoData.engineer" ref="peOperaterName" placeholder="未选择人员" readonly></el-input>
  173. </el-form-item>
  174. </div>
  175. </el-col>
  176. <el-col :span="6">
  177. <div class="grid-content bg-purple">
  178. <el-form-item :label="'Select Artwork'">
  179. <el-input v-model="infoData.technician" ref="csOperaterName" placeholder="未选择人员" readonly></el-input>
  180. </el-form-item>
  181. </div>
  182. </el-col>
  183. <el-col :span="6">
  184. <div class="grid-content bg-purple">
  185. <el-form-item :label="'Select Technical'">
  186. <el-input v-model="infoData.mpOperatorName" ref="mpOperatorName" placeholder="未选择人员" readonly></el-input>
  187. </el-form-item>
  188. </div>
  189. </el-col>
  190. </el-row>
  191. <el-row :gutter="20">
  192. <!-- <el-col :span="6">-->
  193. <!-- <div class="grid-content bg-purple">-->
  194. <!-- <el-form-item :label="'PE人员'">-->
  195. <!-- <el-input v-model="infoData.peOperaterName" ref="peOperaterName" placeholder="未选择人员" readonly ></el-input>-->
  196. <!-- </el-form-item>-->
  197. <!-- </div>-->
  198. <!-- </el-col>-->
  199. <el-col :span="6">
  200. <div class="grid-content bg-purple">
  201. <el-form-item :label="'Select CQC'">
  202. <el-input v-model="infoData.cqcOperatorName" ref="dccOperaterName" placeholder="未选择人员" readonly></el-input>
  203. </el-form-item>
  204. </div>
  205. </el-col>
  206. <el-col :span="6">
  207. <div class="grid-content bg-purple">
  208. <el-form-item :label="'Select FAI'">
  209. <el-input v-model="infoData.faiOperatorName" ref="mpOperatorName" placeholder="未选择人员" readonly></el-input>
  210. </el-form-item>
  211. </div>
  212. </el-col>
  213. <el-col :span="6">
  214. <div class="grid-content bg-purple">
  215. <el-form-item :label="'Select DCC'">
  216. <el-input v-model="infoData.dccOperaterName" ref="dccOperaterName" placeholder="未选择人员" readonly></el-input>
  217. </el-form-item>
  218. </div>
  219. </el-col>
  220. </el-row>
  221. <el-row :gutter="20">
  222. <el-col :span="24"><div class="grid-content bg-purple">
  223. <el-form-item :label="'备注信息'" style="height: 70px">
  224. <el-input
  225. type="textarea"
  226. v-model="infoData.remarkPage "
  227. :rows="3"
  228. resize='none'
  229. maxlength="120"
  230. show-word-limit
  231. readonly
  232. style="height: 60px">
  233. </el-input>
  234. </el-form-item>
  235. </div></el-col>
  236. </el-row>
  237. </el-form>
  238. </el-tab-pane>
  239. <el-tab-pane label="客户信息" name="customerInfo">
  240. <customer-info :project="currentRow"></customer-info>
  241. <!-- <el-form label-position="top" label-width="100px" >-->
  242. <!-- <el-row :gutter="20">-->
  243. <!-- <el-col :span="6"><div class="grid-content bg-purple">-->
  244. <!-- <el-form-item :label="'客户代码'">-->
  245. <!-- <el-input v-model="customerData.customerId" readonly ></el-input>-->
  246. <!-- </el-form-item>-->
  247. <!-- </div></el-col>-->
  248. <!-- <el-col :span="6"><div class="grid-content bg-purple">-->
  249. <!-- <el-form-item :label="'客户名称'">-->
  250. <!-- <el-input v-model="customerData.customerName" readonly ></el-input>-->
  251. <!-- </el-form-item>-->
  252. <!-- </div></el-col>-->
  253. <!-- <el-col :span="12"><div class="grid-content bg-purple">-->
  254. <!-- <el-form-item :label="'客户描述'">-->
  255. <!-- <el-input v-model="customerData.customerDesc" readonly ></el-input>-->
  256. <!-- </el-form-item>-->
  257. <!-- </div></el-col>-->
  258. <!-- </el-row>-->
  259. <!-- <el-row :gutter="20">-->
  260. <!-- <el-col :span="24"><div class="grid-content bg-purple">-->
  261. <!-- <el-form-item :label="'客户要求'" style="height: 70px">-->
  262. <!-- <el-input-->
  263. <!-- type="textarea"-->
  264. <!-- v-model="customerData.customerRemark "-->
  265. <!-- :rows="3"-->
  266. <!-- resize='none'-->
  267. <!-- maxlength="120"-->
  268. <!-- show-word-limit-->
  269. <!-- readonly-->
  270. <!-- style=";height: 60px">-->
  271. <!-- </el-input>-->
  272. <!-- </el-form-item>-->
  273. <!-- </div></el-col>-->
  274. <!-- </el-row>-->
  275. <!-- <el-row :gutter="20">-->
  276. <!-- <el-col :span="24"><div class="grid-content bg-purple">-->
  277. <!-- <el-form-item :label="'客户图纸'" style="margin-top: 15px">-->
  278. <!-- <el-input v-model="customerData.pictureAddess" readonly ></el-input>-->
  279. <!-- </el-form-item>-->
  280. <!-- </div></el-col>-->
  281. <!-- </el-row>-->
  282. <!-- <el-row :gutter="20">-->
  283. <!-- <el-col :span="24"><div class="grid-content bg-purple">-->
  284. <!-- <el-form-item :label="'客户图纸变更说明'">-->
  285. <!-- <el-input v-model="customerData.customerPictureChangeRemark" readonly ></el-input>-->
  286. <!-- </el-form-item>-->
  287. <!-- </div></el-col>-->
  288. <!-- </el-row>-->
  289. <!-- <el-row :gutter="20">-->
  290. <!-- <el-col :span="24"><div class="grid-content bg-purple" >-->
  291. <!-- <el-form-item :label="'转量产附档说明'" style="height: 70px">-->
  292. <!-- <el-input-->
  293. <!-- type="textarea"-->
  294. <!-- v-model="customerData.productionFileComments "-->
  295. <!-- :rows="3"-->
  296. <!-- resize='none'-->
  297. <!-- maxlength="120"-->
  298. <!-- show-word-limit-->
  299. <!-- readonly-->
  300. <!-- style="height: 60px">-->
  301. <!-- </el-input>-->
  302. <!-- </el-form-item>-->
  303. <!-- </div></el-col>-->
  304. <!-- </el-row>-->
  305. <!-- <el-row :gutter="20">-->
  306. <!-- <el-col :span="24"><div class="grid-content bg-purple" >-->
  307. <!-- <el-form-item :label="'其他特殊要求'" style="height: 70px;margin-top: 15px">-->
  308. <!-- <el-input-->
  309. <!-- type="textarea"-->
  310. <!-- v-model="customerData.remark "-->
  311. <!-- :rows="3"-->
  312. <!-- resize='none'-->
  313. <!-- maxlength="120"-->
  314. <!-- show-word-limit-->
  315. <!-- readonly-->
  316. <!-- style="height: 60px">-->
  317. <!-- </el-input>-->
  318. <!-- </el-form-item>-->
  319. <!-- </div></el-col>-->
  320. <!-- </el-row>-->
  321. <!-- </el-form>-->
  322. <!-- <el-form :inline="true" label-position="top" label-width="100px" style="height: 70px;margin-top: 15px">-->
  323. <!-- <el-form-item :label="'客户应用/要求'">-->
  324. <!-- <el-input-->
  325. <!-- type="textarea"-->
  326. <!-- v-model="customerData.remark "-->
  327. <!-- :rows="3"-->
  328. <!-- resize='none'-->
  329. <!-- maxlength="120"-->
  330. <!-- show-word-limit-->
  331. <!-- readonly-->
  332. <!-- style="width: 926px;height: 60px">-->
  333. <!-- </el-input>-->
  334. <!-- </el-form-item>-->
  335. <!-- </el-form>-->
  336. </el-tab-pane>
  337. <el-tab-pane label="变更记录" name="changelog">
  338. <change-log :row="currentRow" :height="240"></change-log>
  339. </el-tab-pane>
  340. <!-- 审批信息 -->
  341. <el-tab-pane label="审批信息" name="approvalInformation">
  342. <approval-information ref="approvalTable" v-model:data-list="approvalList" :height="240"></approval-information>
  343. </el-tab-pane>
  344. </el-tabs>
  345. <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="search" v-drag></add-or-update>
  346. <el-dialog width="500px"
  347. :title="'升版'"
  348. :close-on-click-modal="false"
  349. :visible.sync="revNoFlag">
  350. <el-form :inline="true" label-position="top" label-width="100px" >
  351. <el-form-item :label="'参数卡编码'">
  352. <el-input v-model="revNoData.oriCodeNo" style="width: 130px" disabled></el-input>
  353. </el-form-item>
  354. <el-form-item :label="'版本号'">
  355. <el-input v-model="revNoData.oldRevNo" style="width: 130px" disabled></el-input>
  356. </el-form-item>
  357. <el-form-item :label="'项目物料'">
  358. <el-input v-model="revNoData.testPartNo" style="width: 130px" disabled></el-input>
  359. </el-form-item>
  360. </el-form>
  361. <el-form :inline="true" label-position="top" label-width="100px" >
  362. <el-form-item :label="'版本号'">
  363. <el-input v-model="revNoData.revNo" style="width: 130px" ></el-input>
  364. </el-form-item>
  365. </el-form>
  366. <el-form label-position="top" style="margin-top: 60px; margin-left: 0px;text-align:center">
  367. <el-button type="primary" @click="upBMRevNo()">{{'确定'}}</el-button>
  368. <el-button type="primary" @click="revNoFlag = false">{{'关闭'}}</el-button>
  369. </el-form>
  370. </el-dialog>
  371. <el-dialog
  372. width="750px"
  373. title="选择物料"
  374. :close-on-click-modal="false"
  375. :visible.sync="partModelFlag">
  376. <el-form :inline="true" label-position="top" label-width="100px" >
  377. <el-form-item style="margin-left: 0px" label="技术参数卡">
  378. <el-input v-model="copyData.oriCodeNo" style="width: 130px" disabled ></el-input>
  379. </el-form-item>
  380. <el-form-item style="margin-left: 0px" label="版本">
  381. <el-input v-model="copyData.revNo" style="width: 130px" disabled ></el-input>
  382. </el-form-item>
  383. <el-form-item style="margin-left: 0px" label="项目料号">
  384. <el-input v-model="copyData.testPartNo" style="width: 130px" disabled ></el-input>
  385. </el-form-item>
  386. <el-form-item style="margin-left: 0px" label="项目号">
  387. <el-input v-model="copyData.projectId" style="width: 130px" disabled ></el-input>
  388. </el-form-item>
  389. </el-form>
  390. <el-table
  391. height="450"
  392. :data="partList"
  393. border
  394. @row-dblclick="choosePartNo"
  395. style="width: 100%;">
  396. <el-table-column
  397. prop="finalPartNo"
  398. header-align="center"
  399. align="left"
  400. min-width="120"
  401. style="font-size: 20px"
  402. label="正式料号">
  403. </el-table-column>
  404. <el-table-column
  405. prop="testPartNo"
  406. header-align="center"
  407. align="left"
  408. min-width="120"
  409. style="font-size: 20px"
  410. label="项目料号">
  411. </el-table-column>
  412. <el-table-column
  413. prop="projectId"
  414. header-align="center"
  415. align="left"
  416. min-width="120"
  417. style="font-size: 20px"
  418. label="项目号">
  419. </el-table-column>
  420. <el-table-column
  421. prop="customerPartNo"
  422. header-align="center"
  423. align="left"
  424. min-width="120"
  425. label="客户料号">
  426. </el-table-column>
  427. <el-table-column
  428. prop="partDesc"
  429. header-align="center"
  430. align="left"
  431. min-width="120"
  432. label="物料名称">
  433. </el-table-column>
  434. <el-table-column
  435. prop="buNo"
  436. header-align="center"
  437. align="left"
  438. min-width="70"
  439. label="BU">
  440. </el-table-column>
  441. </el-table>
  442. </el-dialog>
  443. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  444. </div>
  445. </template>
  446. <script>
  447. import {
  448. getTechnicalCustomerInfoData,
  449. technicalSpecificationListSearch,
  450. deleteTechnicalSpecificationList,
  451. upBMRevNo,
  452. issueChange, // 下达
  453. searchCopyPart,
  454. copyBm,
  455. } from "@/api/sampleManagement/technicalSpecificationList.js"
  456. import Chooselist from '@/views/modules/common/Chooselist'
  457. import AddOrUpdate from './com_technical-add-or-update'
  458. import BuSelect from "../base/BuSelect.vue";
  459. import {
  460. getNodeAuthority, // 获取节点权限
  461. getApprovalList, // 查询审批信息
  462. } from '@/api/changeManagement/changeManagement.js'
  463. import ApprovalInformation from "../changeManagement/approvalInformation.vue";
  464. import CustomerInfo from "../quotation/sellForQuotation/customerInfo.vue";
  465. import ChangeLog from "./technicalSpecificationDetail/changeLog.vue";
  466. export default {
  467. components: {
  468. ChangeLog,
  469. CustomerInfo,
  470. ApprovalInformation,
  471. Chooselist,
  472. AddOrUpdate,
  473. BuSelect,
  474. },
  475. data() {
  476. return {
  477. approvalList:[],
  478. activeName:'info',
  479. addOrUpdateVisible:false,
  480. height:200,
  481. dataList1: [],
  482. partList:[],
  483. copyData:{
  484. site:'',
  485. codeNo:'',
  486. oriCodeNo:'',
  487. testPartNo:'',
  488. projectId:'',
  489. revNo:'',
  490. newPartNo:'',
  491. },
  492. partModelFlag:false,
  493. searchData: {
  494. page: 1,
  495. limit: 20,
  496. site: this.$store.state.user.site,
  497. userName: this.$store.state.user.name,
  498. testPartNo: '',
  499. oriCodeNo: '',
  500. statusDesc: '',
  501. codeNo:'',
  502. ecnFlag: '',
  503. buNo:'',
  504. customerDesc:'',
  505. },
  506. pageIndex: 1,
  507. pageSize: 20,
  508. totalPage: 0,
  509. dataListLoading: false,
  510. currentRow:'',
  511. exportList:[],
  512. columnList1:[
  513. {
  514. userId: this.$store.state.user.name,
  515. functionId: 103002,
  516. serialNumber: '103002Table1BuNo',
  517. tableId: "103002Table1",
  518. tableName: "技术参数卡列表",
  519. columnProp: "buNo",
  520. headerAlign: "center",
  521. align: "center",
  522. columnLabel: "工艺",
  523. columnHidden: false,
  524. columnImage: false,
  525. columnSortable: false,
  526. sortLv: 0,
  527. status: true,
  528. fixed: '',
  529. columnWidth: 80
  530. },{
  531. userId: this.$store.state.user.name,
  532. functionId: 103002,
  533. serialNumber: '103002Table1OriCodeNo',
  534. tableId: "103002Table1",
  535. tableName: "技术参数卡列表",
  536. columnProp: "oriCodeNo",
  537. headerAlign: "center",
  538. align: "left",
  539. columnLabel: "参数卡编码",
  540. columnHidden: false,
  541. columnImage: false,
  542. columnSortable: false,
  543. sortLv: 0,
  544. status: true,
  545. fixed: '',
  546. columnWidth: 100
  547. },{
  548. userId: this.$store.state.user.name,
  549. functionId: 103002,
  550. serialNumber: '103002Table1RevNo',
  551. tableId: "103002Table1",
  552. tableName: "技术参数卡列表",
  553. columnProp: "revNo",
  554. headerAlign: "center",
  555. align: "left",
  556. columnLabel: "版本号",
  557. columnHidden: false,
  558. columnImage: false,
  559. columnSortable: false,
  560. sortLv: 0,
  561. status: true,
  562. fixed: '',
  563. columnWidth: 80
  564. },{
  565. userId: this.$store.state.user.name,
  566. functionId: 103002,
  567. serialNumber: '103002Table1ProofingNo',
  568. tableId: "103002Table1",
  569. tableName: "技术参数卡列表",
  570. columnProp: "proofingNo",
  571. headerAlign: "center",
  572. align: "center",
  573. columnLabel: "打样单号",
  574. columnHidden: false,
  575. columnImage: false,
  576. columnSortable: false,
  577. sortLv: 0,
  578. status: true,
  579. fixed: '',
  580. columnWidth: 100
  581. },{
  582. userId: this.$store.state.user.name,
  583. functionId: 103002,
  584. serialNumber: '103002Table1Status',
  585. tableId: "103002Table1",
  586. tableName: "技术参数卡列表",
  587. columnProp: "statusDesc",
  588. headerAlign: "center",
  589. align: "left",
  590. columnLabel: "状态",
  591. columnHidden: false,
  592. columnImage: false,
  593. columnSortable: false,
  594. sortLv: 0,
  595. status: true,
  596. fixed: '',
  597. columnWidth: 80
  598. },
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: 103002,
  602. serialNumber: '103002Table1NodeId',
  603. tableId: "103002Table1",
  604. tableName: "技术参数卡列表",
  605. columnProp: "nodeId",
  606. headerAlign: "center",
  607. align: "left",
  608. columnLabel: "当前节点",
  609. columnHidden: false,
  610. columnImage: false,
  611. columnSortable: false,
  612. sortLv: 0,
  613. status: true,
  614. fixed: '',
  615. columnWidth: 70
  616. },
  617. {
  618. userId: this.$store.state.user.name,
  619. functionId: 103002,
  620. serialNumber: '103002Table1NodeName',
  621. tableId: "103002Table1",
  622. tableName: "技术参数卡列表",
  623. columnProp: "nodeName",
  624. headerAlign: "center",
  625. align: "left",
  626. columnLabel: "节点名称",
  627. columnHidden: false,
  628. columnImage: false,
  629. columnSortable: false,
  630. sortLv: 0,
  631. status: true,
  632. fixed: '',
  633. columnWidth: 150
  634. },{
  635. userId: this.$store.state.user.name,
  636. functionId: 103002,
  637. serialNumber: '103002Table1SP',
  638. tableId: "103002Table1",
  639. tableName: "技术参数卡列表",
  640. columnProp: "sp",
  641. headerAlign: "center",
  642. align: "left",
  643. columnLabel: "当前审批人",
  644. columnHidden: false,
  645. columnImage: false,
  646. columnSortable: false,
  647. sortLv: 0,
  648. status: true,
  649. fixed: '',
  650. columnWidth: 80
  651. },
  652. {
  653. userId: this.$store.state.user.name,
  654. functionId: 103002,
  655. serialNumber: '103002Table1TestPartNo',
  656. tableId: "103002Table1",
  657. tableName: "技术参数卡列表",
  658. columnProp: "testPartNo",
  659. headerAlign: "center",
  660. align: "center",
  661. columnLabel: "PLM物料编码",
  662. columnHidden: false,
  663. columnImage: false,
  664. columnSortable: false,
  665. sortLv: 0,
  666. status: true,
  667. fixed: '',
  668. columnWidth: 140
  669. },
  670. {
  671. userId: this.$store.state.user.name,
  672. functionId: 103002,
  673. serialNumber: '103002Table1FinalPartNo',
  674. tableId: "103002Table1",
  675. tableName: "技术参数卡列表",
  676. columnProp: "finalPartNo",
  677. headerAlign: "center",
  678. align: "center",
  679. columnLabel: "IFS物料编码",
  680. columnHidden: false,
  681. columnImage: false,
  682. columnSortable: false,
  683. sortLv: 0,
  684. status: true,
  685. fixed: '',
  686. columnWidth: 100
  687. },
  688. {
  689. userId: this.$store.state.user.name,
  690. functionId: 103002,
  691. serialNumber: '103002Table1TestPartNo',
  692. tableId: "103002Table1",
  693. tableName: "技术参数卡列表",
  694. columnProp: "projectId",
  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. columnWidth: 100
  705. // },{
  706. // userId: this.$store.state.user.name,
  707. // functionId: 103002,
  708. // serialNumber: '103002Table1TestPartNo',
  709. // tableId: "103002Table1",
  710. // tableName: "技术参数卡列表",
  711. // columnProp: "buNo",
  712. // headerAlign: "center",
  713. // align: "center",
  714. // columnLabel: "BU",
  715. // columnHidden: false,
  716. // columnImage: false,
  717. // columnSortable: false,
  718. // sortLv: 0,
  719. // status: true,
  720. // fixed: '',
  721. // columnWidth: 80
  722. // },{
  723. // userId: this.$store.state.user.name,
  724. // functionId: 103002,
  725. // serialNumber: '103002Table1TestPartNo',
  726. // tableId: "103002Table1",
  727. // tableName: "技术参数卡列表",
  728. // columnProp: "buDesc",
  729. // headerAlign: "center",
  730. // align: "left",
  731. // columnLabel: "BU名称",
  732. // columnHidden: false,
  733. // columnImage: false,
  734. // columnSortable: false,
  735. // sortLv: 0,
  736. // status: true,
  737. // fixed: '',
  738. // columnWidth: 80
  739. },{
  740. userId: this.$store.state.user.name,
  741. functionId: 103002,
  742. serialNumber: '103002Table1PartName',
  743. tableId: "103002Table1",
  744. tableName: "技术参数卡列表",
  745. columnProp: "partDesc",
  746. headerAlign: "center",
  747. align: "left",
  748. columnLabel: "物料名称",
  749. columnHidden: false,
  750. columnImage: false,
  751. columnSortable: false,
  752. sortLv: 0,
  753. status: true,
  754. fixed: '',
  755. columnWidth: 150
  756. },{
  757. userId: this.$store.state.user.name,
  758. functionId: 103002,
  759. serialNumber: '103002Table1ECNFlag',
  760. tableId: "103002Table1",
  761. tableName: "技术参数卡列表",
  762. columnProp: "ecnFlag",
  763. headerAlign: "center",
  764. align: "center",
  765. columnLabel: "ECN变更",
  766. columnHidden: false,
  767. columnImage: false,
  768. columnSortable: false,
  769. sortLv: 0,
  770. status: true,
  771. fixed: '',
  772. columnWidth: 65
  773. },{
  774. userId: this.$store.state.user.name,
  775. functionId: 103002,
  776. serialNumber: '103002Table1EcnNo',
  777. tableId: "103002Table1",
  778. tableName: "技术参数卡列表",
  779. columnProp: "ecnNo",
  780. headerAlign: "center",
  781. align: "center",
  782. columnLabel: "ECN单据号",
  783. columnHidden: false,
  784. columnImage: false,
  785. columnSortable: false,
  786. sortLv: 0,
  787. status: true,
  788. fixed: '',
  789. columnWidth: 100
  790. },{
  791. userId: this.$store.state.user.name,
  792. functionId: 103002,
  793. serialNumber: '103002Table1CreateDate',
  794. tableId: "103002Table1",
  795. tableName: "技术参数卡列表",
  796. columnProp: "createDate",
  797. headerAlign: "center",
  798. align: "center",
  799. columnLabel: "创建时间",
  800. columnHidden: false,
  801. columnImage: false,
  802. columnSortable: false,
  803. sortLv: 0,
  804. status: true,
  805. fixed: '',
  806. columnWidth: 120
  807. },{
  808. userId: this.$store.state.user.name,
  809. functionId: 103002,
  810. serialNumber: '103002Table1CreateBy',
  811. tableId: "103002Table1",
  812. tableName: "技术参数卡列表",
  813. columnProp: "createBy",
  814. headerAlign: "center",
  815. align: "left",
  816. columnLabel: "创建人",
  817. columnHidden: false,
  818. columnImage: false,
  819. columnSortable: false,
  820. sortLv: 0,
  821. status: true,
  822. fixed: '',
  823. columnWidth: 80
  824. },{
  825. userId: this.$store.state.user.name,
  826. functionId: 103002,
  827. serialNumber: '103002Table1UpdateDate',
  828. tableId: "103002Table1",
  829. tableName: "技术参数卡列表",
  830. columnProp: "updateDate",
  831. headerAlign: "center",
  832. align: "center",
  833. columnLabel: "上次修改日期",
  834. columnHidden: false,
  835. columnImage: false,
  836. columnSortable: false,
  837. sortLv: 0,
  838. status: true,
  839. fixed: '',
  840. columnWidth: 120
  841. },{
  842. userId: this.$store.state.user.name,
  843. functionId: 103002,
  844. serialNumber: '103002Table1UpdateBy',
  845. tableId: "103002Table1",
  846. tableName: "技术参数卡列表",
  847. columnProp: "updateBy",
  848. headerAlign: "center",
  849. align: "left",
  850. columnLabel: "修改人",
  851. columnHidden: false,
  852. columnImage: false,
  853. columnSortable: false,
  854. sortLv: 0,
  855. status: true,
  856. fixed: '',
  857. columnWidth: 80
  858. },{
  859. userId: this.$store.state.user.name,
  860. functionId: 103002,
  861. serialNumber: '103002Table1ecnAddress',
  862. tableId: "103002Table1",
  863. tableName: "技术参数卡列表",
  864. columnProp: "ecnAddress",
  865. headerAlign: "center",
  866. align: "left",
  867. columnLabel: "ECN文档链接",
  868. columnHidden: false,
  869. columnImage: false,
  870. columnSortable: false,
  871. sortLv: 0,
  872. status: true,
  873. fixed: '',
  874. columnWidth: 200
  875. },
  876. ],
  877. infoData:{
  878. testPartNo:'',
  879. partTypeDesc:'',
  880. revNo:'',
  881. projectId:'',
  882. ecnFlag:'',
  883. ecnNo:'',
  884. ecnAddress:'',
  885. quotationOfficer:'',
  886. engineer:'',
  887. technician:'',
  888. remark:'',
  889. },
  890. customerData:{
  891. customerId:'',
  892. customerName:'',
  893. customerDesc:'',
  894. finalCustomer:'',
  895. customerRemark:'',
  896. remark:'',
  897. },
  898. dataRole: {
  899. partTypeDesc: [
  900. {
  901. required: true,
  902. message: ' ',
  903. trigger: 'change'
  904. }
  905. ],
  906. partName: [
  907. {
  908. required: true,
  909. message: ' ',
  910. trigger: 'change'
  911. }
  912. ],
  913. },
  914. revNoFlag:false,
  915. revNoData: {
  916. site:'',
  917. oriCodeNo:'',
  918. oldCodeNo:'',
  919. oldRevNo:'',
  920. revNo:'',
  921. testPartNo:'',
  922. },
  923. // 导出 start
  924. exportData: [],
  925. exportName: '技术参数卡清单'+this.dayjs().format('YYYYMMDDHHmmss'),
  926. exportHeader: ["技术参数卡清单"],
  927. exportFooter: [],
  928. // 导出 end
  929. }
  930. },
  931. mounted() {
  932. this.$nextTick(() => {
  933. this.height = window.innerHeight - 520;
  934. })
  935. },
  936. activated() {
  937. if (this.$route.params.type === 'tokenLogin') {
  938. if (this.$route.params.docNo) {
  939. // this.searchData.applyNo = this.$route.params.docNo
  940. let inData={
  941. page: 1,
  942. limit: this.pageSize,
  943. site: this.$store.state.user.site,
  944. userName: this.$store.state.user.name,
  945. codeNo:this.$route.params.docNo,
  946. }
  947. technicalSpecificationListSearch(inData).then(({data}) => {
  948. if (data.code == 0) {
  949. this.dataList1 = data.page.list
  950. this.pageIndex = data.page.currPage
  951. this.pageSize = data.page.pageSize
  952. this.totalPage = data.page.totalCount
  953. if(this.dataList1.length>0){
  954. this.$refs.mainTable.setCurrentRow(this.dataList1[0]);
  955. this.changeData(this.dataList1[0])
  956. this.jumpDetail(this.dataList1[0])
  957. }
  958. }
  959. this.dataListLoading = false
  960. })
  961. }
  962. }else if (this.$route.params.type === 'test'){
  963. this.searchData.buNo = this.$route.params.buNo
  964. this.searchData.testPartNo = this.$route.params.testPartNo
  965. this.search();
  966. setTimeout(() => {
  967. this.searchData.buNo = '';
  968. this.searchData.testPartNo = '';
  969. }, 200)
  970. }else if (this.$route.params.codeNo){
  971. this.searchData.oriCodeNo = this.$route.params.codeNo;
  972. this.search();
  973. setTimeout(() => {
  974. this.searchData.oriCodeNo = '';
  975. }, 200)
  976. }else if (this.$route.params.nowCodeNo){
  977. this.searchData.codeNo = this.$route.params.nowCodeNo;
  978. this.search();
  979. setTimeout(() => {
  980. this.searchData.codeNo = '';
  981. }, 200)
  982. }
  983. },
  984. methods: {
  985. // 下达
  986. issueModal (row) {
  987. this.$confirm(`是否确认下达?`, '提示', {
  988. confirmButtonText: '确定',
  989. cancelButtonText: '取消',
  990. type: 'warning'
  991. }).then(() => {
  992. let tempData = {
  993. site: row.site,
  994. userName: this.$store.state.user.name,
  995. codeNo: row.codeNo,
  996. menuId: this.$route.meta.menuId
  997. }
  998. issueChange(tempData).then(({data}) => {
  999. if (data && data.code === 0) {
  1000. this.search()
  1001. this.$message({message: '操作成功', type: 'success'})
  1002. } else {
  1003. this.$alert(data.msg, '错误', {
  1004. confirmButtonText: '确定'
  1005. })
  1006. }
  1007. })
  1008. })
  1009. },
  1010. // 每页数
  1011. sizeChangeHandle (val) {
  1012. this.pageSize = val
  1013. this.pageIndex = 1
  1014. this.search()
  1015. },
  1016. // 当前页
  1017. currentChangeHandle (val) {
  1018. this.pageIndex = val
  1019. this.search()
  1020. },
  1021. search(){
  1022. this.searchData.limit = this.pageSize
  1023. this.searchData.page = this.pageIndex
  1024. this.dataListLoading = true;
  1025. technicalSpecificationListSearch(this.searchData).then(({data}) => {
  1026. if (data && data.code === 0) {
  1027. this.dataList1 = data.page.list
  1028. // this.pageIndex = data.page.currPage
  1029. // this.pageSize = data.page.pageSize
  1030. this.totalPage = data.page.totalCount
  1031. if(this.dataList1.length>0){
  1032. this.$refs.mainTable.setCurrentRow(this.dataList1[0]);
  1033. this.changeData(this.dataList1[0])
  1034. }
  1035. }
  1036. this.dataListLoading = false
  1037. }).catch((error)=>{
  1038. this.$message.error(error);
  1039. this.dataListLoading = false;
  1040. })
  1041. },
  1042. changeData(row) {
  1043. this.currentRow = JSON.parse(JSON.stringify(row));
  1044. this.infoData=row;
  1045. this.refreshCurrentTabTable ();
  1046. },
  1047. // 获取基础数据列表S
  1048. getBaseList (val, type) {
  1049. this.tagNo = val
  1050. this.tagNo1 = type
  1051. this.$nextTick(() => {
  1052. let strVal = ''
  1053. if (val === 1013) {
  1054. if(type==1) {
  1055. strVal = this.dataForm.partType
  1056. }
  1057. }
  1058. if (val === 105) {
  1059. if(type==1) {
  1060. strVal = this.searchData.testPartNo
  1061. }
  1062. }
  1063. if (val === 102) {
  1064. if(type==1) {
  1065. strVal = this.searchData.customerDesc
  1066. }
  1067. }
  1068. this.$refs.baseList.init(val, strVal)
  1069. })
  1070. },
  1071. refreshCurrentTabTable () {
  1072. if (this.activeName == 'customerInfo') {
  1073. this.getTechnicalCustomerInfoData();
  1074. }
  1075. if (this.activeName === 'approvalInformation') {
  1076. this.getApprovalList()
  1077. }
  1078. },
  1079. getTechnicalCustomerInfoData(){
  1080. let inData={
  1081. id:this.currentRow.id
  1082. }
  1083. getTechnicalCustomerInfoData(inData).then(({data}) => {
  1084. //区分请求成功和失败的状况
  1085. if (data && data.code == 0) {
  1086. this.customerData = data.row;
  1087. } else {
  1088. this.customerData = [];
  1089. }
  1090. });
  1091. },
  1092. /* 列表方法的回调 */
  1093. getBaseData (val) {
  1094. if (this.tagNo === 1013) {
  1095. if(this.tagNo1==1) {
  1096. this.dataForm.partType = val.Base_id
  1097. this.dataForm.partTypeDesc = val.Base_desc
  1098. }
  1099. }
  1100. if (this.tagNo === 105) {
  1101. if(this.tagNo1==1) {
  1102. this.searchData.testPartNo = val.Test_part_no
  1103. }
  1104. }
  1105. if (this.tagNo === 102) {
  1106. if(this.tagNo1==1) {
  1107. this.searchData.customerDesc = val.Customer_desc
  1108. }
  1109. }
  1110. },
  1111. // 新增 / 修改
  1112. addOrUpdateHandle (id) {
  1113. this.addOrUpdateVisible = true
  1114. this.$nextTick(() => {
  1115. this.$refs.addOrUpdate.init(id)
  1116. })
  1117. },
  1118. jumpDetail(row){
  1119. let now = Date.now();
  1120. let inData = {
  1121. site: this.$store.state.user.site,
  1122. codeNo: row.codeNo,
  1123. buNo: row.buNo,
  1124. username: this.$store.state.user.name,
  1125. uuid:now+'',
  1126. activeName:'baseInfo'
  1127. };
  1128. localStorage.setItem('tsfData', JSON.stringify(inData))
  1129. window.open('#/BMPage/'+now);
  1130. // this.$router.replace('sampleManagement-technicalSpecificationDetail/technicalSpecificationDetail')
  1131. },
  1132. deleteData(row){
  1133. this.$confirm('确定要删除这条数据?', '提示', {
  1134. confirmButtonText: '确定',
  1135. cancelButtonText: '取消',
  1136. type: 'warning'
  1137. }).then(() => {
  1138. deleteTechnicalSpecificationList(row).then(({data}) => {
  1139. if (data && data.code === 0) {
  1140. this.$message.success( '操作成功')
  1141. this.search();
  1142. } else {
  1143. this.$message.error(data.msg)
  1144. }
  1145. })
  1146. }).catch(() => {
  1147. })
  1148. },
  1149. addRevModel(row){
  1150. this.revNoData={
  1151. site:row.site,
  1152. oriCodeNo:row.oriCodeNo,
  1153. oldCodeNo:row.codeNo,
  1154. oldRevNo:row.revNo,
  1155. revNo:'',
  1156. testPartNo:row.testPartNo,
  1157. }
  1158. this.revNoFlag=true;
  1159. },
  1160. upBMRevNo(){
  1161. this.$confirm('确定要升版?', '提示', {
  1162. confirmButtonText: '确定',
  1163. cancelButtonText: '取消',
  1164. type: 'warning'
  1165. }).then(() => {
  1166. upBMRevNo(this.revNoData).then(({data}) => {
  1167. if (data && data.code === 0) {
  1168. this.$message.success( '操作成功')
  1169. this.revNoFlag=false;
  1170. this.search();
  1171. } else {
  1172. this.$message.error(data.msg)
  1173. }
  1174. })
  1175. }).catch(() => {
  1176. })
  1177. },
  1178. //导出excel
  1179. async createExportData() {
  1180. this.searchData.limit = -1
  1181. this.searchData.page = 1
  1182. await technicalSpecificationListSearch(this.searchData).then(({data}) => {
  1183. this.exportList= data.page.list;
  1184. })
  1185. return this.exportList;
  1186. },
  1187. startDownload() {
  1188. // this.exportData = this.dataList
  1189. },
  1190. finishDownload() {
  1191. },
  1192. fields() {
  1193. let json = "{"
  1194. this.columnList1.forEach((item, index) => {
  1195. if (index == this.columnList1.length - 1) {
  1196. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1197. } else {
  1198. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1199. }
  1200. })
  1201. json += "}"
  1202. let s = eval("(" + json + ")")
  1203. return s
  1204. },
  1205. // test() {
  1206. // this.$router.push('quotation-sellForQuotation-quoteDetail')
  1207. // },
  1208. getApprovalList () {
  1209. if (Object.keys(this.currentRow).length !== 0) {
  1210. let tempData = {
  1211. site: this.$store.state.user.site,
  1212. menuId: this.$route.meta.menuId,
  1213. documentNo:this.currentRow.codeNo
  1214. }
  1215. getApprovalList(tempData).then(({data}) => {
  1216. if (data && data.code === 0) {
  1217. this.approvalList = data.rows
  1218. } else {
  1219. this.approvalList = []
  1220. }
  1221. })
  1222. }
  1223. },
  1224. copyBM(row){
  1225. this.copyData={
  1226. site:row.site,
  1227. codeNo:row.codeNo,
  1228. oriCodeNo:row.oriCodeNo,
  1229. testPartNo:row.testPartNo,
  1230. projectId:row.projectId,
  1231. revNo:row.revNo,
  1232. newPartNo:'',
  1233. }
  1234. searchCopyPart(this.copyData).then(({data}) => {
  1235. if (data.code == 0) {
  1236. this.partList=data.rows
  1237. }
  1238. this.dataListLoading = false
  1239. })
  1240. this.partModelFlag=true
  1241. },
  1242. choosePartNo(row){
  1243. let saveData={
  1244. site:this.copyData.site,
  1245. codeNo:this.copyData.codeNo,
  1246. testPartNo:this.copyData.testPartNo,
  1247. projectId:this.copyData.projectId,
  1248. revNo:this.copyData.revNo,
  1249. newPartNo:row.testPartNo,
  1250. username:this.$store.state.user.name
  1251. }
  1252. this.$confirm('确定要拷贝?', '提示', {
  1253. confirmButtonText: '确定',
  1254. cancelButtonText: '取消',
  1255. type: 'warning'
  1256. }).then(() => {
  1257. copyBm(saveData).then(({data}) => {
  1258. if (data && data.code === 0) {
  1259. this.$message.success( '操作成功')
  1260. this.partModelFlag=false;
  1261. this.search();
  1262. } else {
  1263. this.$message.error(data.msg)
  1264. }
  1265. })
  1266. }).catch(() => {
  1267. })
  1268. },
  1269. },
  1270. }
  1271. </script>
  1272. <style scoped>
  1273. </style>