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.

1264 lines
43 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
9 months ago
2 years ago
2 years ago
2 years ago
1 year ago
10 months ago
10 months ago
10 months ago
2 years ago
10 months ago
2 years ago
1 year ago
1 year ago
1 year ago
9 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
9 months ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
9 months 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
1 year 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
1 year ago
1 year ago
1 year ago
1 year ago
1 year 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
2 years ago
2 years ago
2 years ago
2 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
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
9 months ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
11 months ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
9 months ago
9 months ago
2 years ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year 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
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
9 months ago
2 years ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year 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
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
11 months ago
1 year ago
11 months ago
2 years ago
2 years ago
2 years ago
10 months ago
9 months ago
9 months ago
10 months ago
2 years ago
9 months ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year 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
2 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
2 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
2 years ago
2 years ago
2 years ago
11 months ago
2 years ago
2 years ago
11 months ago
2 years ago
11 months ago
2 years ago
1 year ago
9 months ago
2 years ago
2 years ago
2 years ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
2 years ago
2 years ago
9 months 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
2 years ago
2 years ago
2 years ago
1 year ago
11 months ago
9 months ago
10 months ago
9 months ago
11 months ago
9 months ago
2 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-dialog width="600px" :title="!dataForm.id ? '添加' : '编辑'" :close-on-click-modal="false" :visible.sync="visible">
  4. <el-form :inline="true" label-position="top" label-width="100px" :rules="dataRole">
  5. <el-form-item >
  6. <span slot="label" @click="chooseProofingModel()"><a herf="#">打样单号</a></span>
  7. <el-input v-model="dataForm.proofingNo" style="width: 130px" @change="changeProofingNoChange" :disabled="dataForm.id!=0"></el-input>
  8. </el-form-item>
  9. <el-form-item label=" ">
  10. <el-checkbox v-model="jumpFlag">保存后跳转至详情</el-checkbox>
  11. </el-form-item>
  12. <!-- <el-form-item prop="testPartNo" style="margin-left: 12px" :label="'IFS料号'">-->
  13. <!--&lt;!&ndash; <span slot="label" style="" @click="getBaseList(134,1)" ><a herf="#">IFS料号</a></span>&ndash;&gt;-->
  14. <!-- <el-input v-model="dataForm.testPartNo" @change="changeTestDesc" style="width: 130px" disabled ></el-input>-->
  15. <!-- </el-form-item>-->
  16. </el-form>
  17. <el-form :inline="true" label-position="top" label-width="100px" :rules="dataRole">
  18. <el-form-item :rules="dataRole.testPartNo">
  19. <span slot="label" @click="choosePartModel()"><a herf="#">PLM物料编码</a></span>
  20. <el-input v-model="dataForm.testPartNo" style="width: 130px" readonly></el-input>
  21. </el-form-item>
  22. <el-form-item :label="'IFS物料编码'">
  23. <el-input v-model="dataForm.finalPartNo" style="width: 130px" disabled></el-input>
  24. </el-form-item>
  25. <el-form-item :label="'物料名称'">
  26. <el-input v-model="dataForm.partDesc" style="width: 274px" disabled></el-input>
  27. </el-form-item>
  28. </el-form>
  29. <el-form :inline="true" label-position="top" label-width="100px" :rules="dataRole">
  30. <el-form-item :label="'BU'" >
  31. <el-input v-model="dataForm.buNo" disabled style="width: 130px" ></el-input>
  32. </el-form-item>
  33. <!-- <el-form-item :label="'参数卡编码'" >-->
  34. <!-- <el-input v-model="dataForm.oriCodeNo" disabled style="width: 130px" ></el-input>-->
  35. <!-- </el-form-item>-->
  36. <el-form-item :label="'版本号'" prop="revNo" :rules="dataRole.revNo">
  37. <el-input v-model="dataForm.revNo" style="width: 130px" disabled></el-input>
  38. </el-form-item>
  39. <el-form-item label="Rev No" prop="rev" :rules="dataRole.rev">
  40. <el-input v-model="dataForm.rev" style="width: 130px"></el-input>
  41. </el-form-item>
  42. <el-form-item label="Customer Rev" prop="customerRev" :rules="dataRole.customerRev">
  43. <el-input v-model="dataForm.customerRev" style="width: 130px"></el-input>
  44. </el-form-item>
  45. </el-form>
  46. <el-form :inline="true" label-position="top" label-width="100px" :rules="dataRole">
  47. <el-form-item>
  48. <span slot="label" @click="getUserList(4)"><a herf="#">Select CS</a></span>
  49. <el-input v-model="dataForm.csOperaterName" ref="csOperaterName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>
  50. </el-form-item>
  51. <el-form-item>
  52. <span slot="label" @click="getUserList(7)"><a herf="#">Select Engineer</a></span>
  53. <el-input v-model="dataForm.engineer" readonly style="width: 130px" placeholder="请选择人员" ></el-input>
  54. </el-form-item>
  55. <el-form-item >
  56. <span slot="label" @click="getUserList(8)"><a herf="#">Select Artwork</a></span>
  57. <el-input v-model="dataForm.technician" readonly style="width: 130px" placeholder="请选择人员" ></el-input>
  58. </el-form-item>
  59. <el-form-item >
  60. <span slot="label" @click="getUserList(6)"><a herf="#">Select Technical</a></span>
  61. <el-input v-model="dataForm.mpOperatorName" ref="mpOperatorName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>
  62. </el-form-item>
  63. <el-form-item>
  64. <!-- <span slot="label" @click="getUserList(1)"><a herf="#">Select CQC</a></span>-->
  65. <span slot="label" @click="handleCqcOperator"><a >Select CQC</a></span>
  66. <el-input v-model="dataForm.cqcOperatorName" @focus="handleCqcOperator()" ref="cqcOperatorName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>
  67. </el-form-item>
  68. <el-form-item>
  69. <!-- <span slot="label" @click="getUserList(2)"><a herf="#">Select FAI</a></span>-->
  70. <span slot="label" @click="handleFaiOperator"><a >Select FAI</a></span>
  71. <el-input v-model="dataForm.faiOperatorName" @focus="handleFaiOperator" ref="faiOperatorName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>
  72. </el-form-item>
  73. <!-- <el-form-item >-->
  74. <!-- <span slot="label" style="" @click="quotationOfficerChooseModal()"><a herf="#">报价员</a></span>-->
  75. <!-- <el-input v-model="dataForm.quotationOfficer" readonly style="width: 274px" @focus="quotationOfficerChooseModal()"></el-input>-->
  76. <!-- </el-form-item>-->
  77. <!-- </el-form>-->
  78. <!-- <el-form :inline="true" label-position="top" label-width="100px" >-->
  79. <!-- <el-form-item >-->
  80. <!-- <span slot="label" style="" @click="engineerChooseModal()"><a herf="#">Select PE Engineer</a></span>-->
  81. <!-- <el-input v-model="dataForm.engineer" readonly style="width: 130px" @focus="engineerChooseModal()"></el-input>-->
  82. <!-- </el-form-item>-->
  83. <!-- 274px-->
  84. <!-- <el-form-item >-->
  85. <!-- <span slot="label" style="" @click="technicianModal()"><a herf="#">Select Artwork</a></span>-->
  86. <!-- <el-input v-model="dataForm.technician" readonly style="width: 130px" @focus="technicianModal()"></el-input>-->
  87. <!-- </el-form-item>-->
  88. <!-- <el-form-item >-->
  89. <!-- <span slot="label" style="" @click="getUserList(3)"><a herf="#">PE人员</a></span>-->
  90. <!-- <el-input v-model="dataForm.peOperaterName" ref="peOperaterName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>-->
  91. <!-- </el-form-item>-->
  92. <!-- <el-form-item >-->
  93. <!-- <span slot="label" style="" @click="getUserList(5)"><a herf="#">DCC人员</a></span>-->
  94. <!-- <el-input v-model="dataForm.dccOperaterName" ref="dccOperaterName" placeholder="请选择人员" readonly style="width: 130px" ></el-input>-->
  95. <!-- </el-form-item>-->
  96. <el-form-item >
  97. <span slot="label" @click="dccChooseModal()"><a herf="#">Select DCC</a></span>
  98. <el-input v-model="dataForm.dcc" ref="dcc" readonly @focus="dccChooseModal()" style="width: 130px"></el-input>
  99. </el-form-item>
  100. </el-form>
  101. <el-form :inline="true" label-position="top" label-width="100px" >
  102. <el-form-item :label="'备注'">
  103. <el-input
  104. type="textarea"
  105. v-model="dataForm.remark "
  106. :rows="3"
  107. resize='none'
  108. maxlength="120"
  109. show-word-limit
  110. style="width: 562px;height: 60px">
  111. </el-input>
  112. </el-form-item>
  113. </el-form>
  114. <el-form label-position="top" style="margin-top: 60px; margin-left: 0px;text-align:center">
  115. <el-button type="primary" :loading="saveLoading" @click="dataFormSubmit()">{{'确定'}}</el-button>
  116. <el-button type="primary" @click="visible = false">{{'关闭'}}</el-button>
  117. </el-form>
  118. </el-dialog>
  119. <el-dialog width="530px" title="报价员" :close-on-click-modal="false" :visible.sync="quotationOfficerFlag">
  120. <el-transfer
  121. v-model="quotationOfficerList"
  122. class="rq"
  123. filterable
  124. :props="{key: 'operatorId', label: 'operatorName'}"
  125. :data="operatorList"
  126. :titles="['未选择', '已选择']">
  127. </el-transfer>
  128. <span slot="footer" class="dialog-footer">
  129. <div style="margin-top: 5px">
  130. <el-button type="primary" @click="saveQuotationOfficerList()">确定</el-button>
  131. <el-button @click="quotationOfficerFlag = false" type="primary">取消</el-button>
  132. </div>
  133. </span>
  134. </el-dialog>
  135. <el-dialog width="530px" title="工程师" :close-on-click-modal="false" :visible.sync="engineerFlag">
  136. <el-transfer
  137. v-model="engineerList"
  138. class="rq"
  139. filterable
  140. :props="{key: 'operatorId', label: 'operatorName'}"
  141. :data="operatorList"
  142. :titles="['未选择', '已选择']">
  143. </el-transfer>
  144. <span slot="footer" class="dialog-footer">
  145. <div style="margin-top: 5px">
  146. <el-button type="primary" @click="saveEngineerList()">确定</el-button>
  147. <el-button @click="engineerFlag = false" type="primary">取消</el-button>
  148. </div>
  149. </span>
  150. </el-dialog>
  151. <el-dialog
  152. width="530px"
  153. title="项目负责人"
  154. :close-on-click-modal="false"
  155. :visible.sync="ownerFlag">
  156. <el-transfer
  157. v-model="technicianList"
  158. class="rq"
  159. filterable
  160. :props="{key: 'operatorId',label: 'operatorName'}"
  161. :data="operatorList"
  162. :titles="['未选择', '已选择']">
  163. </el-transfer>
  164. <span slot="footer" class="dialog-footer">
  165. <div style="margin-top: 5px">
  166. <el-button type="primary" @click="savetechnicianList()">确定</el-button>
  167. <el-button @click="ownerFlag = false" type="primary">取消</el-button>
  168. </div>
  169. </span>
  170. </el-dialog>
  171. <el-dialog width="950px" title="选择打样单" :close-on-click-modal="false" :visible.sync="proofingModelFlag">
  172. <el-form :inline="true" label-position="top" label-width="100px">
  173. <el-form-item>
  174. <span slot="label" @click="getBaseList(104,2)"><a herf="#">项目号</a></span>
  175. <el-input v-model="proofingSearch.projectId" style="width: 130px" ></el-input>
  176. </el-form-item>
  177. <el-form-item>
  178. <span slot="label" @click="getBaseList(501,2)"><a herf="#">打样单</a></span>
  179. <el-input v-model="proofingSearch.proofingNo" style="width: 130px" ></el-input>
  180. </el-form-item>
  181. <el-form-item>
  182. <span slot="label" @click="getBaseList(102,2)"><a herf="#">直接客户</a></span>
  183. <el-input v-model="proofingSearch.customerId" style="width: 130px" ></el-input>
  184. </el-form-item>
  185. <el-form-item>
  186. <span slot="label" @click="getBaseList(102,3)"><a herf="#">最终客户</a></span>
  187. <el-input v-model="proofingSearch.finalCustomerId" style="width: 130px"></el-input>
  188. </el-form-item>
  189. <el-form-item label=" ">
  190. <el-button type="primary" @click="refreshProofingList()">{{'查询'}}</el-button>
  191. </el-form-item>
  192. </el-form>
  193. <el-table
  194. height="450"
  195. :data="proofingList"
  196. border
  197. @row-dblclick="chooseProofingNo"
  198. style="width: 100%;">
  199. <el-table-column
  200. prop="proofingNo"
  201. header-align="center"
  202. align="left"
  203. min-width="120"
  204. style="font-size: 20px"
  205. label="打样单">
  206. </el-table-column>
  207. <el-table-column
  208. prop="projectId"
  209. header-align="center"
  210. align="left"
  211. min-width="120"
  212. style="font-size: 20px"
  213. label="项目号">
  214. </el-table-column>
  215. <el-table-column
  216. prop="projectName"
  217. header-align="center"
  218. align="left"
  219. min-width="120"
  220. style="font-size: 20px"
  221. label="项目名称">
  222. </el-table-column>
  223. <el-table-column
  224. prop="testPartNo"
  225. header-align="center"
  226. align="left"
  227. min-width="120"
  228. label="测试料号">
  229. </el-table-column>
  230. <el-table-column
  231. prop="partDesc"
  232. header-align="center"
  233. align="left"
  234. min-width="120"
  235. label="物料名称">
  236. </el-table-column>
  237. <el-table-column
  238. prop="buNo"
  239. header-align="center"
  240. align="left"
  241. min-width="80"
  242. label="BU">
  243. </el-table-column>
  244. <el-table-column
  245. prop="customerDesc"
  246. header-align="center"
  247. align="left"
  248. min-width="120"
  249. label="直接客户">
  250. </el-table-column>
  251. <el-table-column
  252. prop="finalCustomerDesc"
  253. header-align="center"
  254. align="left"
  255. min-width="120"
  256. label="最终客户">
  257. </el-table-column>
  258. </el-table>
  259. </el-dialog>
  260. <el-dialog width="788px" title="选择物料" v-drag :close-on-click-modal="false" :visible.sync="partModelFlag">
  261. <el-form :inline="true" label-position="top" label-width="100px" >
  262. <el-form-item label="项目号">
  263. <el-input v-model="partSearch.projectId" style="width: 130px"></el-input>
  264. </el-form-item>
  265. <el-form-item label="PLM物料编码">
  266. <el-input v-model="partSearch.testPartNo" style="width: 130px"></el-input>
  267. </el-form-item>
  268. <el-form-item label="IFS物料编码">
  269. <el-input v-model="partSearch.finalPartNo" style="width: 130px"></el-input>
  270. </el-form-item>
  271. <el-form-item label="客户料号">
  272. <el-input v-model="partSearch.customerPartNo" style="width: 130px"></el-input>
  273. </el-form-item>
  274. <el-form-item label=" ">
  275. <el-button type="primary" @click="refreshPartList()">{{'查询'}}</el-button>
  276. </el-form-item>
  277. </el-form>
  278. <el-table
  279. height="450"
  280. :data="partList"
  281. border
  282. @row-dblclick="choosePartNo"
  283. style="width: 100%;">
  284. <el-table-column
  285. prop="testPartNo"
  286. header-align="center"
  287. align="left"
  288. min-width="120"
  289. style="font-size: 20px"
  290. label="PLM物料编码">
  291. </el-table-column>
  292. <el-table-column
  293. prop="finalPartNo"
  294. header-align="center"
  295. align="left"
  296. min-width="120"
  297. style="font-size: 20px"
  298. label="IFS物料编码">
  299. </el-table-column>
  300. <el-table-column
  301. prop="projectId"
  302. header-align="center"
  303. align="left"
  304. min-width="120"
  305. style="font-size: 20px"
  306. label="项目号">
  307. </el-table-column>
  308. <el-table-column
  309. prop="customerPartNo"
  310. header-align="center"
  311. align="left"
  312. min-width="120"
  313. label="客户料号">
  314. </el-table-column>
  315. <el-table-column
  316. prop="partDesc"
  317. header-align="center"
  318. align="left"
  319. min-width="200"
  320. label="物料名称">
  321. </el-table-column>
  322. <el-table-column
  323. prop="buNo"
  324. header-align="center"
  325. align="left"
  326. min-width="70"
  327. label="BU">
  328. </el-table-column>
  329. </el-table>
  330. <el-pagination
  331. @size-change="sizeChangeHandle"
  332. @current-change="currentChangeHandle"
  333. :current-page="pageIndex"
  334. :page-sizes="[20, 50, 100, 1000]"
  335. :page-size="pageSize"
  336. :total="totalPage"
  337. layout="total, sizes, prev, pager, next, jumper">
  338. </el-pagination>
  339. </el-dialog>
  340. <el-dialog
  341. width="530px"
  342. title="DCC人员"
  343. :close-on-click-modal="false"
  344. :visible.sync="dccFlag">
  345. <el-transfer
  346. v-model="dccList"
  347. class="rq"
  348. filterable
  349. :props="{key: 'operatorId',label: 'operatorName'}"
  350. :data="operatorList"
  351. :titles="['未选择', '已选择']">
  352. </el-transfer>
  353. <span slot="footer" class="dialog-footer">
  354. <div style="margin-top: 5px">
  355. <el-button type="primary" @click="savetDccList()">确定</el-button>
  356. <el-button @click="dccFlag = false" type="primary">取消</el-button>
  357. </div>
  358. </span>
  359. </el-dialog>
  360. <el-dialog title="CQC人员"
  361. :visible.sync="cqcVisible"
  362. :close-on-click-modal="false"
  363. width="530px">
  364. <el-transfer
  365. v-model="dataForm.cqcOperatorList"
  366. class="rq"
  367. filterable
  368. :props="operatorProp"
  369. :data="cqcOperatorList"
  370. :titles="['未选择', '已选择']">
  371. </el-transfer>
  372. <div slot="footer" class="dialog-footer">
  373. <el-button type="primary" @click="handleSaveCqcOperator">确定</el-button>
  374. <el-button type="primary" @click="cqcVisible = false">取消</el-button>
  375. </div>
  376. </el-dialog>
  377. <el-dialog title="FAI人员"
  378. :visible.sync="faiVisible"
  379. :close-on-click-modal="false"
  380. width="530px">
  381. <el-transfer
  382. v-model="dataForm.faiOperatorList"
  383. class="rq"
  384. filterable
  385. :props="operatorProp"
  386. :data="faiOperatorList"
  387. :titles="['未选择', '已选择']">
  388. </el-transfer>
  389. <div slot="footer" class="dialog-footer">
  390. <el-button type="primary" @click="handleSaveFaiOperator">确定</el-button>
  391. <el-button type="primary" @click="faiVisible = false">取消</el-button>
  392. </div>
  393. </el-dialog>
  394. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  395. <ChooseUser ref="userList" @getBaseData="getUserData"></ChooseUser>
  396. </div>
  397. </template>
  398. <script>
  399. import {
  400. searchOperatorWithSite,
  401. } from "@/api/project/project.js"
  402. import {technicalSpecificationListSearch,
  403. saveTechnicalSpecificationSheet,
  404. searchTechnicalSpecificationTeamStr,
  405. getTestPartChangeData,
  406. getProofingDataByUserRole,
  407. getFinalPartData,
  408. searchBMUser,
  409. } from "@/api/sampleManagement/technicalSpecificationList.js"
  410. import Chooselist from '@/views/modules/common/Chooselist'
  411. import ChooseUser from '@/views/modules/common/ChooseUser'
  412. export default {
  413. components: {
  414. Chooselist,ChooseUser
  415. },
  416. data () {
  417. return {
  418. jumpFlag:true,
  419. tagNo:'',
  420. tagNo1:'',
  421. visible: false,
  422. treeVisible: false,
  423. quotationOfficerFlag:false,
  424. engineerFlag:false,
  425. userRoleFlag:false,
  426. ownerFlag:false,
  427. operatorList:[],
  428. dataForm: {
  429. id: 0,
  430. finalPartNo: '',
  431. site: this.$store.state.user.site,
  432. proofingNo: '',
  433. projectId: '',
  434. codeNo: '',
  435. testPartNo: '',
  436. partDesc: '',
  437. status: '',
  438. revNo: '',
  439. remark: '',
  440. technician: '',
  441. quotationOfficer: '',
  442. engineer: '',
  443. quotationOfficerList: [],
  444. engineerList: [],
  445. technicianList: [],
  446. engineerNo: '',
  447. technicianNo: '',
  448. oriCodeNo: '',
  449. cqcOperator: '',
  450. faiOperator: '',
  451. cqcOperatorName: '',
  452. cqcOperatorList:[],
  453. faiOperatorName: '',
  454. faiOperatorList: [],
  455. peOperater: '',
  456. peOperaterName: '',
  457. csOperater: '',
  458. csOperaterName: '',
  459. dccOperater: '',
  460. dccOperaterName: '',
  461. mpOperatorName: '',
  462. mpOperator: '',
  463. buNo: '',
  464. dcc: '',
  465. dccList: [],
  466. rev: '',
  467. customerRev: ''
  468. },
  469. dccList:'',
  470. dccFlag:false,
  471. proofingSearch:{
  472. projectId:'',
  473. proofingNo:'',
  474. customerId:'',
  475. finalCustomerId:'',
  476. site:this.$store.state.user.site,
  477. username:this.$store.state.user.name,
  478. },
  479. pageIndex: 1,
  480. pageSize: 100,
  481. totalPage: 0,
  482. partSearch:{
  483. projectId:'',
  484. finalPartNo:'',
  485. testPartNo:'',
  486. partDesc:'',
  487. site:this.$store.state.user.site,
  488. username:this.$store.state.user.name,
  489. customerPartNo:'',
  490. page: 1,
  491. limit: 100,
  492. },
  493. quotationOfficerList:[],
  494. engineerList:[],
  495. technicianList:[],
  496. dataRole: {
  497. testPartNo: [
  498. {
  499. required: true,
  500. message: ' ',
  501. trigger: 'change'
  502. }
  503. ],
  504. revNo: [
  505. {
  506. required: true,
  507. message: ' ',
  508. trigger: 'change'
  509. }
  510. ],
  511. quotationOfficer: [
  512. {
  513. required: true,
  514. message: ' ',
  515. trigger: 'change'
  516. }
  517. ],
  518. engineer: [
  519. {
  520. required: true,
  521. message: ' ',
  522. trigger: 'change'
  523. }
  524. ],
  525. technician: [
  526. {
  527. required: true,
  528. message: ' ',
  529. trigger: 'change'
  530. }
  531. ],
  532. },
  533. proofingList:[],
  534. proofingModelFlag:false,
  535. partList:[],
  536. partModelFlag:false,
  537. // 新增加载状态
  538. saveLoading:false,
  539. // 人员信息集合
  540. operatorProp:{
  541. key: 'operatorId',
  542. label: 'operatorName'
  543. },
  544. cqcVisible:false,
  545. cqcOperatorList:[],
  546. faiVisible:false,
  547. faiOperatorList:[],
  548. }
  549. },
  550. created () {
  551. },
  552. methods: {
  553. getUserList (type) {
  554. this.tagNo1 = type
  555. this.$nextTick(() => {
  556. let strVal = ''
  557. let roleId = ''
  558. if(type==1) {
  559. strVal = this.dataForm.cqcOperator
  560. roleId = 'R008'
  561. }
  562. if(type==2) {
  563. strVal = this.dataForm.faiOperator
  564. roleId = 'R009'
  565. }
  566. if(type==4) {
  567. strVal = this.dataForm.csOperater
  568. roleId = 'R010'
  569. }
  570. if(type==6) {
  571. strVal = this.dataForm.mpOperator
  572. roleId = 'R021'
  573. }
  574. if(type==7) {
  575. strVal = this.dataForm.engineerNo
  576. roleId = 'R004'
  577. }
  578. if(type==8) {
  579. strVal = this.dataForm.technicianNo
  580. roleId = 'R014'
  581. }
  582. this.$refs.userList.init(this.$store.state.user.site,this.dataForm.buNo!==''?this.dataForm.buNo:'%%', strVal,roleId)
  583. })
  584. },
  585. /* 列表方法的回调 */
  586. getUserData (val) {
  587. if(this.tagNo1==1) {
  588. this.dataForm.cqcOperator = val.username
  589. this.dataForm.cqcOperatorName = val.userDisplay
  590. // this.$nextTick(() => {
  591. // this.$triggerInputEvent(this.$refs.cqcOperatorName);
  592. // });
  593. }
  594. if(this.tagNo1==2) {
  595. this.dataForm.faiOperator = val.username
  596. this.dataForm.faiOperatorName = val.userDisplay
  597. // this.$nextTick(() => {
  598. // this.$triggerInputEvent(this.$refs.faiOperatorName);
  599. // });
  600. }
  601. if(this.tagNo1==3) {
  602. this.dataForm.peOperater = val.username
  603. this.dataForm.peOperaterName = val.userDisplay
  604. // this.$nextTick(() => {
  605. // this.$triggerInputEvent(this.$refs.peOperaterName);
  606. // });
  607. }
  608. if(this.tagNo1==4) {
  609. this.dataForm.csOperater = val.username
  610. this.dataForm.csOperaterName = val.userDisplay
  611. // this.$nextTick(() => {
  612. // this.$triggerInputEvent(this.$refs.csOperaterName);
  613. // });
  614. }
  615. if(this.tagNo1==5) {
  616. this.dataForm.dccOperater = val.username
  617. this.dataForm.dccOperaterName = val.userDisplay
  618. // this.$nextTick(() => {
  619. // this.$triggerInputEvent(this.$refs.dccOperaterName);
  620. // });
  621. }
  622. if(this.tagNo1==6) {
  623. this.dataForm.mpOperator = val.username
  624. this.dataForm.mpOperatorName = val.userDisplay
  625. // this.$nextTick(() => {
  626. // this.$triggerInputEvent(this.$refs.mpOperatorName);
  627. // });
  628. }
  629. if(this.tagNo1==7) {
  630. this.dataForm.engineerNo = val.username
  631. this.dataForm.engineer = val.userDisplay
  632. // this.$nextTick(() => {
  633. // this.$triggerInputEvent(this.$refs.mpOperatorName);
  634. // });
  635. }
  636. if(this.tagNo1==8) {
  637. this.dataForm.technicianNo = val.username
  638. this.dataForm.technician = val.userDisplay
  639. // this.$nextTick(() => {
  640. // this.$triggerInputEvent(this.$refs.mpOperatorName);
  641. // });
  642. }
  643. },
  644. // 获取基础数据列表S
  645. getBaseList (val, type) {
  646. this.tagNo = val
  647. this.tagNo1 = type
  648. this.$nextTick(() => {
  649. let strVal = ''
  650. if (val === 134) {
  651. if(type==1) {
  652. if(this.dataForm.id!=0){
  653. return false
  654. }
  655. strVal = this.dataForm.testPartNo
  656. }
  657. }
  658. if (val === 102) {
  659. if(type==1) {
  660. strVal = this.dataForm.customerId
  661. }
  662. if(type==2) {
  663. strVal = this.proofingSearch.customerId
  664. }
  665. if(type==3) {
  666. strVal = this.proofingSearch.finalCustomerId
  667. }
  668. }
  669. if (val === 104) {
  670. if(type==2) {
  671. strVal = this.proofingSearch.projectId
  672. }
  673. }
  674. if (val === 501) {
  675. if(type==2) {
  676. strVal = this.proofingSearch.proofingNo
  677. }
  678. }
  679. if (val === 1011) {
  680. if(type==1) {
  681. strVal = this.dataForm.projectSource
  682. }
  683. }
  684. if (val === 1012) {
  685. if(type==1) {
  686. strVal = this.dataForm.priority
  687. }
  688. }
  689. this.$refs.baseList.init(val, strVal)
  690. })
  691. },
  692. /* 列表方法的回调 */
  693. getBaseData (val) {
  694. if (this.tagNo === 134) {
  695. if(this.tagNo1==1) {
  696. this.dataForm.testPartNo = val.Test_part_no
  697. this.dataForm.proofingNo = ''
  698. this.changeTestDesc();
  699. }
  700. }
  701. if (this.tagNo === 102) {
  702. if(this.tagNo1==1) {
  703. this.dataForm.customerId = val.Customer_no
  704. this.dataForm.customerName = val.Customer_desc
  705. }
  706. if(this.tagNo1==2) {
  707. this.proofingSearch.customerId = val.Customer_no
  708. }
  709. if(this.tagNo1==3) {
  710. this.proofingSearch.finalCustomerId = val.Customer_no
  711. }
  712. }
  713. if (this.tagNo === 104) {
  714. if(this.tagNo1==2) {
  715. this.proofingSearch.projectId = val.project_id
  716. }
  717. }
  718. if (this.tagNo === 501) {
  719. if(this.tagNo1==2) {
  720. this.proofingSearch.proofingNo = val.Proofing_no
  721. }
  722. }
  723. if (this.tagNo === 1011) {
  724. if(this.tagNo1==1) {
  725. this.dataForm.projectSource = val.Base_id
  726. this.dataForm.projectSourceDesc = val.Base_desc
  727. }
  728. }
  729. if (this.tagNo === 1012) {
  730. if(this.tagNo1==1) {
  731. this.dataForm.priority = val.Base_id
  732. this.dataForm.priorityDesc = val.Base_desc
  733. }
  734. }
  735. },
  736. init (id) {
  737. this.jumpFlag = true
  738. this.dataForm.id = id || 0
  739. if (this.dataForm.id !== 0) {
  740. let inData={
  741. page: 1,
  742. limit: 10,
  743. id:id,
  744. userName:this.$store.state.user.name,
  745. site:this.$store.state.user.site,
  746. }
  747. technicalSpecificationListSearch(inData).then(({data}) => {
  748. if(data.page.list.length>0){
  749. this.dataForm= data.page.list[0];
  750. let inData={
  751. site:this.dataForm.site,
  752. codeNo:this.dataForm.codeNo,
  753. type:'quotationOfficer',
  754. }
  755. searchTechnicalSpecificationTeamStr(inData).then(({data}) => {
  756. this.dataForm.quotationOfficerList=data.rows
  757. })
  758. let inData2={
  759. site:this.dataForm.site,
  760. codeNo:this.dataForm.codeNo,
  761. type:'technician',
  762. }
  763. searchTechnicalSpecificationTeamStr(inData2).then(({data}) => {
  764. this.dataForm.technicianList=data.rows
  765. })
  766. let inData3={
  767. site:this.dataForm.site,
  768. codeNo:this.dataForm.codeNo,
  769. type:'engineer',
  770. }
  771. searchTechnicalSpecificationTeamStr(inData3).then(({data}) => {
  772. this.dataForm.engineerList=data.rows
  773. })
  774. let inData5 = {
  775. site: this.dataForm.site,
  776. codeNo: this.dataForm.codeNo,
  777. type: 'dcc',
  778. }
  779. searchTechnicalSpecificationTeamStr(inData5).then(({data}) => {
  780. this.dataForm.dccList = data.rows
  781. })
  782. this.visible = true
  783. }else {
  784. this.$message.error('技术参数卡数据有误!')
  785. }
  786. })
  787. } else {
  788. this.dataForm = {
  789. id: 0,
  790. finalPartNo: '',
  791. site: this.$store.state.user.site,
  792. proofingNo: '',
  793. projectId: '',
  794. codeNo: '',
  795. testPartNo: '',
  796. partDesc: '',
  797. status: '',
  798. revNo: 1,
  799. remark: '',
  800. technician: '',
  801. quotationOfficer: '',
  802. engineer: '',
  803. quotationOfficerList: [],
  804. engineerList: [],
  805. technicianList: [],
  806. cqcOperator: '',
  807. faiOperator: '',
  808. cqcOperatorName: '',
  809. cqcOperatorList:[],
  810. faiOperatorName: '',
  811. faiOperatorList: [],
  812. peOperater: '',
  813. peOperaterName: '',
  814. csOperater: this.$store.state.user.name,
  815. csOperaterName: this.$store.state.user.userDisplay,
  816. dccOperater: '',
  817. dccOperaterName: '',
  818. mpOperatorName: '',
  819. mpOperator: '',
  820. oriCodeNo: '',
  821. engineerNo: '',
  822. technicianNo: '',
  823. buNo: '',
  824. dcc: '',
  825. dccList: [],
  826. rev:'',
  827. customerRev:''
  828. }
  829. // 获取DCCList
  830. this.visible = true
  831. }
  832. },
  833. chooseProofingModel () {
  834. if (this.dataForm.id !== 0 ) {
  835. return false;
  836. }
  837. this.proofingSearch={
  838. projectId:'',
  839. proofingNo:'',
  840. customerId:'',
  841. finalCustomerId:'',
  842. site:this.$store.state.user.site,
  843. username:this.$store.state.user.name,
  844. }
  845. getProofingDataByUserRole(this.proofingSearch).then(({data}) => {
  846. this.proofingList=data.rows
  847. })
  848. this.proofingModelFlag=true
  849. },
  850. choosePartModel () {
  851. this.partSearch = {
  852. projectId: '',
  853. finalPartNo: '',
  854. customerPartNo: '',
  855. partDesc: '',
  856. testPartNo: '',
  857. site: this.$store.state.user.site,
  858. username: this.$store.state.user.name,
  859. }
  860. this.pageIndex = 1
  861. this.pageSize = 100
  862. this.totalPage = 0
  863. this.refreshPartList()
  864. this.partModelFlag = true
  865. },
  866. refreshPartList () {
  867. this.partSearch.limit = this.pageSize
  868. this.partSearch.page = this.pageIndex
  869. getFinalPartData(this.partSearch).then(({data}) => {
  870. this.partList = data.page.list
  871. this.pageIndex = data.page.currPage
  872. this.pageSize = data.page.pageSize
  873. this.totalPage = data.page.totalCount
  874. })
  875. },
  876. refreshProofingList(){
  877. getProofingDataByUserRole(this.proofingSearch).then(({data}) => {
  878. this.proofingList=data.rows
  879. })
  880. },
  881. changeProofingNoChange(){
  882. let inData={
  883. site:this.dataForm.site,
  884. username:this.$store.state.user.name,
  885. proofingNo:this.dataForm.proofingNo,
  886. }
  887. getProofingDataByUserRole(inData).then(({data}) => {
  888. let row={
  889. projectId:'',
  890. testPartNo:'',
  891. partDesc:'',
  892. }
  893. if(data.rows.length>0){
  894. row=data.rows[0]
  895. }
  896. this.changeProofingNo(row)
  897. })
  898. },
  899. choosePartNo (row) {
  900. this.dataForm.projectId = row.projectId
  901. this.dataForm.testPartNo = row.testPartNo
  902. this.dataForm.partDesc = row.partDesc
  903. this.dataForm.finalPartNo = row.finalPartNo
  904. this.dataForm.buNo = row.buNo
  905. // 查询DCC人员
  906. this.queryUserInfoByBM('R015').then(({data}) => {
  907. if (data && data.code === 0){
  908. this.$nextTick(() => {
  909. this.operatorList = data.rows
  910. this.dccList = data.rows.map(item=>item.operatorId)
  911. this.savetDccList()
  912. this.operatorList = []
  913. })
  914. }
  915. })
  916. // CQC
  917. this.queryUserInfoByBM('R008').then(({data}) => {
  918. if (data && data.code === 0){
  919. this.$nextTick(() => {
  920. this.cqcOperatorList = data.rows
  921. this.dataForm.cqcOperatorList = data.rows.map(item=>item.operatorId)
  922. this.handleSaveCqcOperator()
  923. this.cqcOperatorList = []
  924. })
  925. }
  926. })
  927. // FAI
  928. this.queryUserInfoByBM('R009').then(({data}) => {
  929. if (data && data.code === 0){
  930. this.$nextTick(() => {
  931. this.faiOperatorList = data.rows
  932. this.dataForm.faiOperatorList = data.rows.map(item=>item.operatorId)
  933. this.handleSaveFaiOperator()
  934. this.faiOperatorList = []
  935. })
  936. }
  937. })
  938. this.partModelFlag = false
  939. },
  940. chooseProofingNo (row) {
  941. this.dataForm.proofingNo=row.proofingNo
  942. this.dataForm.projectId=row.projectId
  943. this.dataForm.testPartNo=row.testPartNo
  944. this.dataForm.partDesc=row.partDesc
  945. this.dataForm.buNo=row.buNo
  946. let inData={
  947. site:this.$store.state.user.site,
  948. testPartNo: row.testPartNo
  949. }
  950. getTestPartChangeData(inData).then(({data}) => {
  951. if (data && data.code === 0) {
  952. if(data.row!=null){
  953. this.dataForm.partDesc=data.row.partDesc
  954. this.dataForm.finalPartNo=data.row.finalPartNo
  955. }else {
  956. this.dataForm.partDesc=''
  957. }
  958. }
  959. })
  960. this.proofingModelFlag=false
  961. },
  962. changeProofingNo(row){
  963. this.dataForm.projectId=row.projectId
  964. this.dataForm.testPartNo=row.testPartNo
  965. this.dataForm.partDesc=row.partDesc
  966. this.proofingModelFlag=false
  967. },
  968. quotationOfficerChooseModal(){
  969. let inData={
  970. site:this.dataForm.site,
  971. }
  972. searchOperatorWithSite(inData).then(({data}) => {
  973. this.operatorList=data.rows
  974. })
  975. this.quotationOfficerList = JSON.parse(JSON.stringify(this.dataForm.quotationOfficerList));
  976. this.quotationOfficerFlag=true
  977. },
  978. saveQuotationOfficerList () {
  979. let quotationOfficerName = '';
  980. for (let i = 0; i < this.quotationOfficerList.length; i++) {
  981. let select= this.operatorList.filter(item => item.operatorId === this.quotationOfficerList[i])
  982. if (select.length > 0) {
  983. quotationOfficerName += select[0].operatorName + ';'
  984. }
  985. }
  986. this.dataForm.quotationOfficer = quotationOfficerName
  987. this.dataForm.quotationOfficerList = JSON.parse(JSON.stringify(this.quotationOfficerList));
  988. this.quotationOfficerFlag = false
  989. },
  990. engineerChooseModal(){
  991. let inData={
  992. site:this.dataForm.site,
  993. }
  994. searchOperatorWithSite(inData).then(({data}) => {
  995. this.operatorList=data.rows
  996. })
  997. this.engineerList = JSON.parse(JSON.stringify(this.dataForm.engineerList));
  998. this.engineerFlag=true
  999. },
  1000. saveEngineerList(){
  1001. let engineerName='';
  1002. for (let i = 0; i < this.engineerList.length; i++) {
  1003. let select= this.operatorList.filter(item => item.operatorId === this.engineerList[i])
  1004. if(select.length>0){
  1005. engineerName+=select[0].operatorName+';'
  1006. }
  1007. }
  1008. this.dataForm.engineer=engineerName
  1009. this.dataForm.engineerList=JSON.parse(JSON.stringify(this.engineerList));
  1010. this.engineerFlag=false
  1011. },
  1012. technicianModal(){
  1013. let inData={
  1014. site:this.dataForm.site,
  1015. }
  1016. searchOperatorWithSite(inData).then(({data}) => {
  1017. this.operatorList=data.rows
  1018. })
  1019. this.technicianList = JSON.parse(JSON.stringify(this.dataForm.technicianList));
  1020. this.ownerFlag=true
  1021. },
  1022. savetechnicianList(){
  1023. let technicianName='';
  1024. for (let i = 0; i < this.technicianList.length; i++) {
  1025. let select= this.operatorList.filter(item => item.operatorId === this.technicianList[i])
  1026. if(select.length>0){
  1027. technicianName+=select[0].operatorName+';'
  1028. }
  1029. }
  1030. this.dataForm.technician=technicianName
  1031. this.dataForm.technicianList=JSON.parse(JSON.stringify(this.technicianList));
  1032. this.ownerFlag=false
  1033. },
  1034. savetDccList(){
  1035. let dccName='';
  1036. for (let i = 0; i < this.dccList.length; i++) {
  1037. let select= this.operatorList.filter(item => item.operatorId === this.dccList[i])
  1038. if(select.length>0){
  1039. dccName+=select[0].operatorName+';'
  1040. }
  1041. }
  1042. this.dataForm.dcc=dccName
  1043. this.dataForm.dccList=JSON.parse(JSON.stringify(this.dccList));
  1044. this.dccFlag=false
  1045. },
  1046. // 表单提交
  1047. dataFormSubmit () {
  1048. if(this.dataForm.testPartNo===''){
  1049. this.$message.error('请输入测试料号!')
  1050. return false
  1051. }
  1052. if(this.dataForm.revNo===''){
  1053. this.$message.error('请输入版本号!')
  1054. return false
  1055. }
  1056. this.dataForm.engineerList = [];
  1057. this.dataForm.engineerList.push(this.dataForm.engineerNo);
  1058. this.dataForm.technicianList = [];
  1059. this.dataForm.technicianList.push(this.dataForm.technicianNo);
  1060. this.saveLoading = true
  1061. saveTechnicalSpecificationSheet(this.dataForm).then(({data}) => {
  1062. if (data && data.code === 0) {
  1063. this.$message.success( '操作成功')
  1064. this.visible = false
  1065. this.$emit('refreshDataList')
  1066. if(this.jumpFlag){
  1067. setTimeout(() => {
  1068. let now = Date.now();
  1069. let inData = {
  1070. site: this.$store.state.user.site,
  1071. codeNo: data.row.codeNo,
  1072. buNo: data.row.buNo,
  1073. username: this.$store.state.user.name,
  1074. uuid:now+'',
  1075. activeName:'baseInfo'
  1076. };
  1077. localStorage.setItem('tsfData', JSON.stringify(inData))
  1078. window.open('#/BMPage/'+now);
  1079. },500)
  1080. }
  1081. } else {
  1082. this.$message.error(data.msg)
  1083. }
  1084. this.saveLoading = false
  1085. }).catch((error)=>{
  1086. this.$message.error(error)
  1087. this.saveLoading = false
  1088. })
  1089. },
  1090. changeTestDesc(){
  1091. this.dataForm.proofingNo="";
  1092. let inData={
  1093. site:this.$store.state.user.site,
  1094. testPartNo: this.dataForm.testPartNo
  1095. }
  1096. getTestPartChangeData(inData).then(({data}) => {
  1097. if (data && data.code === 0) {
  1098. if(data.row!=null){
  1099. this.dataForm.projectId=data.row.projectId
  1100. this.dataForm.partDesc=data.row.partDesc
  1101. this.dataForm.finalPartNo=data.row.finalPartNo
  1102. }else {
  1103. this.dataForm.projectId=''
  1104. this.dataForm.partDesc=''
  1105. }
  1106. }
  1107. })
  1108. },
  1109. // 每页数
  1110. sizeChangeHandle (val) {
  1111. this.pageSize = val
  1112. this.pageIndex = 1
  1113. this.refreshPartList()
  1114. },
  1115. // 当前页
  1116. currentChangeHandle (val) {
  1117. this.pageIndex = val
  1118. this.refreshPartList()
  1119. },
  1120. dccChooseModal(){
  1121. // let inData={
  1122. // site:this.dataForm.site,
  1123. // buNo:this.dataForm.buNo,
  1124. // roleNo:'R015'
  1125. // }
  1126. this.operatorList = [];
  1127. this.queryUserInfoByBM('R015').then(({data}) => {
  1128. this.operatorList = data.rows
  1129. })
  1130. this.dccList = JSON.parse(JSON.stringify(this.dataForm.dccList));
  1131. this.dccFlag=true
  1132. },
  1133. queryUserInfoByBM(roleNo){
  1134. let params = {
  1135. site:this.dataForm.site,
  1136. buNo:this.dataForm.buNo,
  1137. roleNo:roleNo,
  1138. }
  1139. return searchBMUser(params)
  1140. },
  1141. handleCqcOperator(){
  1142. this.cqcVisible = true;
  1143. this.cqcOperatorList = []
  1144. this.queryUserInfoByBM('R008').then(({data}) => {
  1145. if (data && data.code === 0){
  1146. this.cqcOperatorList = data.rows
  1147. }else {
  1148. this.$message.warning(data.msg)
  1149. }
  1150. }).catch((error)=>{
  1151. this.$message.error(error);
  1152. })
  1153. },
  1154. handleFaiOperator(){
  1155. this.faiVisible = true;
  1156. this.faiOperatorList = []
  1157. this.queryUserInfoByBM('R009').then(({data}) => {
  1158. if (data && data.code === 0){
  1159. this.faiOperatorList = data.rows
  1160. }else {
  1161. this.$message.warning(data.msg)
  1162. }
  1163. }).catch((error)=>{
  1164. this.$message.error(error);
  1165. })
  1166. },
  1167. handleSaveCqcOperator(){
  1168. this.dataForm.cqcOperatorName = this.cqcOperatorList.filter(item => this.dataForm.cqcOperatorList.includes(item.operatorId)).map(item=> item.operatorName).join(';');
  1169. this.cqcVisible = false;
  1170. },
  1171. handleSaveFaiOperator(){
  1172. this.dataForm.faiOperatorName = this.faiOperatorList.filter(item => this.dataForm.faiOperatorList.includes(item.operatorId)).map(item=> item.operatorName).join(';');
  1173. this.faiVisible = false;
  1174. },
  1175. },
  1176. watch:{
  1177. saveLoading(newVal,oldVal){
  1178. if (newVal){
  1179. setTimeout(()=>{
  1180. this.saveLoading = false
  1181. },30000)
  1182. }
  1183. },
  1184. visible(newVal,oldVal){
  1185. if (!newVal){
  1186. this.dataForm.cqcOperatorList = []
  1187. this.dataForm.faiOperatorList = []
  1188. }
  1189. },
  1190. cqcVisible(newVal,oldVal){
  1191. if (!newVal){
  1192. this.cqcOperatorList = []
  1193. }
  1194. },
  1195. faiVisible(newVal,oldVal){
  1196. if (!newVal){
  1197. this.faiOperatorList = []
  1198. }
  1199. },
  1200. },
  1201. }
  1202. </script>
  1203. <style >
  1204. .el-transfer-panel {
  1205. border: 2px solid #17b3a3;
  1206. border-radius: 4px;
  1207. overflow: hidden;
  1208. background: #fff;
  1209. display: inline-block;
  1210. vertical-align: middle;
  1211. width: 200px;
  1212. max-height: 100%;
  1213. -webkit-box-sizing: border-box;
  1214. box-sizing: border-box;
  1215. position: relative;
  1216. }
  1217. .el-transfer-panel .el-transfer-panel__header {
  1218. height: 40px;
  1219. line-height: 40px;
  1220. background: #17b3a3;
  1221. margin: 0;
  1222. padding-left: 15px;
  1223. border-bottom: 1px solid #17b3a3;
  1224. -webkit-box-sizing: border-box;
  1225. box-sizing: border-box;
  1226. color: #000;
  1227. }
  1228. .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
  1229. font-size: 14px;
  1230. color: #303133;
  1231. font-weight: 400;
  1232. }
  1233. </style>