add.vue 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  1. <template>
  2. <div class="requisition_add">
  3. <el-tabs type="border-card" v-model="tabValue" @tab-click="handleClick">
  4. <el-tab-pane label="基本信息" name="first">
  5. <div style="width: 100%;height: 680px;overflow-y: auto; overflow-x: hidden;">
  6. <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="160px">
  7. <el-row :gutter="20">
  8. <el-col :span="8">
  9. <el-form-item label="单据编码" prop="billCode">
  10. <el-input disabled v-model="basicForm.billCode"></el-input>
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="8">
  14. <el-form-item label="申请组织" prop="orgId">
  15. <el-input disabled v-model="basicForm.orgId"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="8">
  19. <el-form-item label="四级分类" prop="classifyId">
  20. <el-select
  21. ref="fourTag"
  22. v-model="basicForm.classifyId"
  23. placeholder="四级分类"
  24. :disabled="disable"
  25. @focus="chooseFourClass"
  26. >
  27. <el-option
  28. v-for="item in testOptions"
  29. :key="item.id"
  30. :label="item.materialType"
  31. :value="item.id"
  32. />
  33. </el-select>
  34. <!-- <el-input :disabled="disable" v-model="basicForm.classifyId">
  35. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseFourClass"></el-button>
  36. </el-input> -->
  37. </el-form-item>
  38. </el-col>
  39. </el-row>
  40. <el-row :gutter="20">
  41. <el-col :span="8">
  42. <el-form-item label="医药物料" prop="isMedicine">
  43. <el-select
  44. v-model="basicForm.isMedicine"
  45. placeholder="医药物料"
  46. clearable
  47. :disabled="disable"
  48. >
  49. <el-option
  50. v-for="item in options"
  51. :key="item.value"
  52. :label="item.label"
  53. :value="item.value"
  54. />
  55. </el-select>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="8">
  59. <el-form-item label="DI" prop="diCode">
  60. <el-input :disabled="disable" v-model="basicForm.diCode"></el-input>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="8">
  64. <el-form-item label="物料名称" prop="name">
  65. <el-input :disabled="disable" v-model="basicForm.name"></el-input>
  66. </el-form-item>
  67. </el-col>
  68. </el-row>
  69. <el-row :gutter="20">
  70. <el-col :span="8">
  71. <el-form-item label="英文名称" prop="enName">
  72. <el-input :disabled="disable" v-model="basicForm.enName"></el-input>
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="8">
  76. <el-form-item label="简称" prop="commonName">
  77. <el-input :disabled="disable" v-model="basicForm.commonName"></el-input>
  78. </el-form-item>
  79. </el-col>
  80. <el-col :span="8">
  81. <el-form-item label="规格" prop="specification">
  82. <el-input :disabled="disable" v-model="basicForm.specification"></el-input>
  83. </el-form-item>
  84. </el-col>
  85. </el-row>
  86. <el-row :gutter="20">
  87. <el-col :span="8">
  88. <el-form-item label="型号" prop="model">
  89. <el-input :disabled="disable" v-model="basicForm.model"></el-input>
  90. </el-form-item>
  91. </el-col>
  92. <el-col :span="8">
  93. <el-form-item label="计量单位" prop="unitId">
  94. <el-input :disabled="disable" v-model="basicForm.unitId">
  95. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  96. </el-input>
  97. </el-form-item>
  98. </el-col>
  99. <el-col :span="8">
  100. <el-form-item label="生产厂家/代理人" prop="manufacturerId">
  101. <el-input :disabled="disable" v-model="basicForm.manufacturerId">
  102. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  103. </el-input>
  104. </el-form-item>
  105. </el-col>
  106. </el-row>
  107. <el-row :gutter="20">
  108. <el-col :span="8">
  109. <el-form-item label="注册人/上市许可持有人" prop="registrant">
  110. <el-input :disabled="disable" v-model="basicForm.registrant"></el-input>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :span="8">
  114. <el-form-item label="产地" prop="originPlace">
  115. <el-input :disabled="disable" v-model="basicForm.originPlace">
  116. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  117. </el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="8">
  121. <el-form-item label="厂家物料名称" prop="manufacturersMaterialName">
  122. <el-input :disabled="disable" v-model="basicForm.manufacturersMaterialName"></el-input>
  123. </el-form-item>
  124. </el-col>
  125. </el-row>
  126. <el-row :gutter="20">
  127. <el-col :span="8">
  128. <el-form-item label="B2C物料" prop="isB2c">
  129. <el-select
  130. v-model="basicForm.medicineMaterial"
  131. placeholder="B2C物料"
  132. clearable
  133. :disabled="disable"
  134. >
  135. <el-option
  136. v-for="item in options"
  137. :key="item.value"
  138. :label="item.label"
  139. :value="item.value"
  140. />
  141. </el-select>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="8">
  145. <el-form-item label="成套件" prop="assembly">
  146. <el-select
  147. v-model="basicForm.assembly"
  148. placeholder="成套件"
  149. clearable
  150. :disabled="disable"
  151. >
  152. <el-option
  153. v-for="item in options"
  154. :key="item.value"
  155. :label="item.label"
  156. :value="item.value"
  157. />
  158. </el-select>
  159. </el-form-item>
  160. </el-col>
  161. <el-col :span="8">
  162. <el-form-item label="批号及库存状态管理" prop="isInventoryStatus">
  163. <el-select
  164. v-model="basicForm.isInventoryStatus"
  165. placeholder="批号及库存状态管理"
  166. clearable
  167. :disabled="disable"
  168. >
  169. <el-option
  170. v-for="item in options"
  171. :key="item.value"
  172. :label="item.label"
  173. :value="item.value"
  174. />
  175. </el-select>
  176. </el-form-item>
  177. </el-col>
  178. </el-row>
  179. <el-row :gutter="20">
  180. <el-col :span="8">
  181. <el-form-item label="效期管理" prop="expiryDateManagerment">
  182. <el-select
  183. v-model="basicForm.expiryDateManagerment"
  184. placeholder="效期管理"
  185. clearable
  186. :disabled="disable"
  187. >
  188. <el-option
  189. v-for="item in options"
  190. :key="item.value"
  191. :label="item.label"
  192. :value="item.value"
  193. />
  194. </el-select>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="8">
  198. <el-form-item label="近效期管理" prop="nearOnsetManagerment">
  199. <el-select
  200. v-model="basicForm.nearOnsetManagerment"
  201. placeholder="近效期管理"
  202. clearable
  203. :disabled="disable"
  204. >
  205. <el-option
  206. v-for="item in options"
  207. :key="item.value"
  208. :label="item.label"
  209. :value="item.value"
  210. />
  211. </el-select>
  212. </el-form-item>
  213. </el-col>
  214. <el-col :span="8">
  215. <el-form-item label="有效期" prop="usefulLife">
  216. <el-select
  217. v-model="basicForm.usefulLife"
  218. placeholder="有效期"
  219. clearable
  220. :disabled="disable"
  221. >
  222. <el-option
  223. v-for="item in options"
  224. :key="item.value"
  225. :label="item.label"
  226. :value="item.value"
  227. />
  228. </el-select>
  229. </el-form-item>
  230. </el-col>
  231. </el-row>
  232. <el-row :gutter="20">
  233. <el-col :span="8">
  234. <el-form-item label="有效期单位" prop="expiryUnitId">
  235. <el-select
  236. v-model="basicForm.expiryUnitId"
  237. placeholder="有效期单位"
  238. clearable
  239. :disabled="disable"
  240. >
  241. <el-option
  242. v-for="item in options"
  243. :key="item.value"
  244. :label="item.label"
  245. :value="item.value"
  246. />
  247. </el-select>
  248. </el-form-item>
  249. </el-col>
  250. <el-col :span="8">
  251. <el-form-item label="有效期至单位" prop="usefulLifeUnitId">
  252. <el-select
  253. v-model="basicForm.usefulLifeUnitId"
  254. placeholder="有效期至单位"
  255. clearable
  256. :disabled="disable"
  257. >
  258. <el-option
  259. v-for="item in options"
  260. :key="item.value"
  261. :label="item.label"
  262. :value="item.value"
  263. />
  264. </el-select>
  265. </el-form-item>
  266. </el-col>
  267. <el-col :span="8">
  268. <el-form-item label="近效期预警天数" prop="recentWarningPeriod">
  269. <el-input :disabled="disable" v-model="basicForm.recentWarningPeriod"></el-input>
  270. </el-form-item>
  271. </el-col>
  272. </el-row>
  273. <el-row :gutter="20">
  274. <el-col :span="8">
  275. <el-form-item label="存储条件" prop="storageCondition">
  276. <el-select
  277. v-model="basicForm.storageCondition"
  278. placeholder="存储条件"
  279. clearable
  280. :disabled="disable"
  281. >
  282. <el-option
  283. v-for="item in dict.type.sys_storage_condition"
  284. :key="item.value"
  285. :label="item.label"
  286. :value="item.value"
  287. />
  288. </el-select>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="8">
  292. <el-form-item label="运输条件" prop="transportationCondition">
  293. <el-select
  294. v-model="basicForm.transportationCondition"
  295. placeholder="运输条件"
  296. clearable
  297. :disabled="disable"
  298. >
  299. <el-option
  300. v-for="item in dict.type.sys_conditions_carriage"
  301. :key="item.value"
  302. :label="item.label"
  303. :value="item.value"
  304. />
  305. </el-select>
  306. </el-form-item>
  307. </el-col>
  308. <el-col :span="8">
  309. <el-form-item label="物料税类" prop="materialRate">
  310. <el-input :disabled="disable" v-model="basicForm.materialRate">
  311. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  312. </el-input>
  313. </el-form-item>
  314. </el-col>
  315. </el-row>
  316. <el-row :gutter="20">
  317. <el-col :span="8">
  318. <el-form-item label="交货周期" prop="deliveryPeriod">
  319. <el-input :disabled="disable" v-model="basicForm.deliveryPeriod"></el-input>
  320. </el-form-item>
  321. </el-col>
  322. <el-col :span="8">
  323. <el-form-item label="最小起定量" prop="minOrderQty">
  324. <el-input :disabled="disable" v-model="basicForm.minOrderQty"></el-input>
  325. </el-form-item>
  326. </el-col>
  327. <el-col :span="8">
  328. <el-form-item label="最小包装量" prop="minPackQty">
  329. <el-input :disabled="disable" v-model="basicForm.minPackQty"></el-input>
  330. </el-form-item>
  331. </el-col>
  332. </el-row>
  333. <el-row :gutter="20">
  334. <el-col :span="8">
  335. <el-form-item label="采购员" prop="puPersonnelId">
  336. <el-input :disabled="disable" v-model="basicForm.puPersonnelId">
  337. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  338. </el-input>
  339. </el-form-item>
  340. </el-col>
  341. <el-col :span="8">
  342. <el-form-item label="最小批量" prop="minBatchQty">
  343. <el-input :disabled="disable" v-model="basicForm.minBatchQty"></el-input>
  344. </el-form-item>
  345. </el-col>
  346. <el-col :span="8">
  347. <el-form-item label="长度(MM)" prop="length">
  348. <el-input :disabled="disable" v-model="basicForm.length"></el-input>
  349. </el-form-item>
  350. </el-col>
  351. </el-row>
  352. <el-row :gutter="20">
  353. <el-col :span="8">
  354. <el-form-item label="高度(MM)" prop="height">
  355. <el-input :disabled="disable" v-model="basicForm.height"></el-input>
  356. </el-form-item>
  357. </el-col>
  358. <el-col :span="8">
  359. <el-form-item label="宽度(MM)" prop="width">
  360. <el-input :disabled="disable" v-model="basicForm.width"></el-input>
  361. </el-form-item>
  362. </el-col>
  363. <el-col :span="8">
  364. <el-form-item label="箱包装数" prop="boxPackaingQty">
  365. <el-input :disabled="disable" v-model="basicForm.boxPackaingQty"></el-input>
  366. </el-form-item>
  367. </el-col>
  368. </el-row>
  369. <el-row :gutter="20">
  370. <el-col :span="8">
  371. <el-form-item label="中包装数" prop="mediumPackageQty">
  372. <el-input :disabled="disable" v-model="basicForm.mediumPackageQty"></el-input>
  373. </el-form-item>
  374. </el-col>
  375. <el-col :span="8">
  376. <el-form-item label="包装说明" prop="packExplain">
  377. <el-input :disabled="disable" v-model="basicForm.packExplain"></el-input>
  378. </el-form-item>
  379. </el-col>
  380. <el-col :span="8">
  381. <el-form-item label="业务线" prop="businessLine">
  382. <el-input :disabled="disable" v-model="basicForm.businessLine">
  383. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  384. </el-input>
  385. </el-form-item>
  386. </el-col>
  387. </el-row>
  388. <el-row :gutter="20">
  389. <el-col :span="8">
  390. <el-form-item label="物料申请人" prop="proposerId">
  391. <el-input :disabled="disable" v-model="basicForm.proposerId"></el-input>
  392. </el-form-item>
  393. </el-col>
  394. <el-col :span="8">
  395. <el-form-item label="条形码" prop="barCode">
  396. <el-input :disabled="disable" v-model="basicForm.barCode"></el-input>
  397. </el-form-item>
  398. </el-col>
  399. <el-col :span="8">
  400. <el-form-item label="使用期限/次数" prop="serviceLife">
  401. <el-input :disabled="disable" v-model="basicForm.serviceLife"></el-input>
  402. </el-form-item>
  403. </el-col>
  404. </el-row>
  405. <el-row :gutter="20">
  406. <el-col :span="8">
  407. <el-form-item label="医保代码" prop="healthCode">
  408. <el-input :disabled="disable" v-model="basicForm.healthCode"></el-input>
  409. </el-form-item>
  410. </el-col>
  411. <el-col :span="8">
  412. <el-form-item label="原型系统物料编码" prop="oriMaterialCode">
  413. <el-input :disabled="disable" v-model="basicForm.oriMaterialCode"></el-input>
  414. </el-form-item>
  415. </el-col>
  416. <el-col :span="8">
  417. <el-form-item label="生产许可证/经营许可证/备案号" prop="productionPermit">
  418. <el-input :disabled="disable" v-model="basicForm.productionPermit"></el-input>
  419. </el-form-item>
  420. </el-col>
  421. </el-row>
  422. <el-row :gutter="20">
  423. <el-col :span="8">
  424. <el-form-item label="一级分类" prop="oneClass">
  425. <el-input disabled v-model="basicForm.oneClass"></el-input>
  426. </el-form-item>
  427. </el-col>
  428. <el-col :span="8">
  429. <el-form-item label="二级分类" prop="twoClass">
  430. <el-input disabled v-model="basicForm.twoClass"></el-input>
  431. </el-form-item>
  432. </el-col>
  433. <el-col :span="8">
  434. <el-form-item label="三级分类" prop="threeClass">
  435. <el-input disabled v-model="basicForm.threeClass"></el-input>
  436. </el-form-item>
  437. </el-col>
  438. </el-row>
  439. <el-row :gutter="20">
  440. <el-col :span="8">
  441. <el-form-item label="启用状态" prop="isEnable">
  442. <el-input disabled v-model="basicForm.isEnable"></el-input>
  443. </el-form-item>
  444. </el-col>
  445. <el-col :span="8">
  446. <el-form-item label="备注" prop="remark">
  447. <el-input :disabled="disable" v-model="basicForm.remark"></el-input>
  448. </el-form-item>
  449. </el-col>
  450. </el-row>
  451. </el-form>
  452. </div>
  453. </el-tab-pane>
  454. <el-tab-pane label="医药属性" name="second">
  455. <el-form :model="basicForm2" ref="basic2" label-width="160px">
  456. <el-row :gutter="20">
  457. <el-col :span="8">
  458. <el-form-item label="药品" prop="isDrug">
  459. <el-select
  460. v-model="basicForm2.isDrug"
  461. placeholder="药品"
  462. clearable
  463. :disabled="disable"
  464. >
  465. <el-option
  466. v-for="dict in dict.type.sys_medicine"
  467. :key="dict.value"
  468. :label="dict.label"
  469. :value="dict.value"
  470. />
  471. </el-select>
  472. </el-form-item>
  473. </el-col>
  474. <el-col :span="8">
  475. <el-form-item label="注册证号/备案凭证编号" prop="registrationNo">
  476. <el-input :disabled="disable" v-model="basicForm2.registrationNo"></el-input>
  477. </el-form-item>
  478. </el-col>
  479. <el-col :span="8">
  480. <el-form-item label="医疗器械" prop="medicalInstruments">
  481. <el-select
  482. v-model="basicForm2.medicalInstruments"
  483. placeholder="医疗器械"
  484. clearable
  485. :disabled="disable"
  486. >
  487. <el-option
  488. v-for="dict in dict.type.medical_instruments"
  489. :key="dict.value"
  490. :label="dict.label"
  491. :value="dict.value"
  492. />
  493. </el-select>
  494. </el-form-item>
  495. </el-col>
  496. </el-row>
  497. <el-row :gutter="20">
  498. <el-col :span="8">
  499. <el-form-item label="通用名称" prop="commonName">
  500. <el-input :disabled="disable" v-model="basicForm2.commonName"></el-input>
  501. </el-form-item>
  502. </el-col>
  503. <el-col :span="8">
  504. <el-form-item label="批准文号" prop="ratifyBatchNo">
  505. <el-input :disabled="disable" v-model="basicForm2.ratifyBatchNo"></el-input>
  506. </el-form-item>
  507. </el-col>
  508. <el-col :span="8">
  509. <el-form-item label="剂型" prop="dosageFrom">
  510. <el-input :disabled="disable" v-model="basicForm2.dosageFrom">
  511. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  512. </el-input>
  513. </el-form-item>
  514. </el-col>
  515. </el-row>
  516. <el-row :gutter="20">
  517. <el-col :span="8">
  518. <el-form-item label="旧注册证号" prop="oriRegistrationNo">
  519. <el-input :disabled="disable" v-model="basicForm2.oriRegistrationNo"></el-input>
  520. </el-form-item>
  521. </el-col>
  522. <el-col :span="8">
  523. <el-form-item label="养护类型" prop="curingType">
  524. <el-select
  525. v-model="basicForm2.curingType"
  526. placeholder="养护类型"
  527. clearable
  528. :disabled="disable"
  529. >
  530. <el-option
  531. v-for="dict in dict.type.curing_type"
  532. :key="dict.value"
  533. :label="dict.label"
  534. :value="dict.value"
  535. />
  536. </el-select>
  537. </el-form-item>
  538. </el-col>
  539. </el-row>
  540. </el-form>
  541. <!-- <el-row style="margin-bottom: 12px;">
  542. <span>物料类别</span>
  543. </el-row>
  544. <el-row style="margin-bottom: 12px;">
  545. <el-button type="primary" size="small" plain @click="addLine">新增</el-button>
  546. <el-button type="primary" size="small" plain @click="handleDelete">删除</el-button>
  547. <el-button type="primary" size="small" plain @click="testsave">暂存</el-button>
  548. </el-row> -->
  549. <!-- <el-row>
  550. <el-col :span="12">
  551. <el-table
  552. :data="basicForm2.medicineTypeChanges"
  553. class="request-table"
  554. @selection-change="handleSelectionChange"
  555. >
  556. <el-table-column type="selection" width="55" />
  557. <el-table-column label="序号" align="center" prop="sort">
  558. <template slot-scope="scope">
  559. <el-input v-model="scope.row.sort"></el-input>
  560. </template>
  561. </el-table-column>
  562. <el-table-column label="物料类别" align="center" prop="medicineCode">
  563. <template slot-scope="scope">
  564. <el-input v-model="scope.row.medicineCode"></el-input>
  565. </template>
  566. </el-table-column>
  567. <el-table-column label="类别名称" align="center" prop="medicineName">
  568. <template slot-scope="scope">
  569. <el-input v-model="scope.row.medicineName"></el-input>
  570. </template>
  571. </el-table-column>
  572. </el-table>
  573. </el-col>
  574. </el-row> -->
  575. </el-tab-pane>
  576. <!-- <el-tab-pane label="修改记录" name="third">
  577. <el-table
  578. :data="basicForm.changeRecords"
  579. class="request-table"
  580. >
  581. <el-table-column label="字段名称" align="center" prop="pageCondtion" />
  582. <el-table-column label="变更前" align="center" prop="beforeChangeValue" />
  583. <el-table-column label="变更后" align="center" prop="afterChangeValue" />
  584. </el-table>
  585. </el-tab-pane> -->
  586. <el-tab-pane label="单据信息" name="fourth">
  587. <el-form :model="basicForm" ref="info" label-width="160px">
  588. <el-row :gutter="20">
  589. <el-col :span="8">
  590. <el-form-item label="申请人" prop="createBy">
  591. <el-input disabled v-model="basicForm.createBy"></el-input>
  592. </el-form-item>
  593. </el-col>
  594. <el-col :span="8">
  595. <el-form-item label="申请时间" prop="applicationTime">
  596. <el-input disabled v-model="basicForm.applicationTime"></el-input>
  597. </el-form-item>
  598. </el-col>
  599. <el-col :span="8">
  600. <el-form-item label="创建人" prop="createByName">
  601. <el-input disabled v-model="basicForm.createByName"></el-input>
  602. </el-form-item>
  603. </el-col>
  604. </el-row>
  605. <el-row :gutter="20">
  606. <el-col :span="8">
  607. <el-form-item label="创建时间" prop="createTime">
  608. <el-input disabled v-model="basicForm.createTime"></el-input>
  609. </el-form-item>
  610. </el-col>
  611. <el-col :span="8">
  612. <el-form-item label="最后修改人" prop="updateByName">
  613. <el-input disabled v-model="basicForm.updateByName"></el-input>
  614. </el-form-item>
  615. </el-col>
  616. <el-col :span="8">
  617. <el-form-item label="最后修改时间" prop="updateTime">
  618. <el-input disabled v-model="basicForm.updateTime"></el-input>
  619. </el-form-item>
  620. </el-col>
  621. </el-row>
  622. <el-row :gutter="20">
  623. <el-col :span="8">
  624. <el-form-item label="最后审核人" prop="reviewedByName">
  625. <el-input disabled v-model="basicForm.reviewedByName"></el-input>
  626. </el-form-item>
  627. </el-col>
  628. <el-col :span="8">
  629. <el-form-item label="最后审核时间" prop="approvalTime">
  630. <el-input disabled v-model="basicForm.approvalTime"></el-input>
  631. </el-form-item>
  632. </el-col>
  633. <el-col :span="8">
  634. <el-form-item label="单据状态" prop="status">
  635. <el-input disabled v-model="basicForm.status"></el-input>
  636. </el-form-item>
  637. </el-col>
  638. </el-row>
  639. </el-form>
  640. </el-tab-pane>
  641. </el-tabs>
  642. <div class="btn_group">
  643. <el-col :span="1.5">
  644. <el-button type="primary" size="small" plain @click="save" v-if="pageStu == 'add' || pageStu == 'edit'">保存</el-button>
  645. </el-col>
  646. <el-col :span="1.5" style="margin: 0 10px;">
  647. <el-button type="primary" size="small" plain @click="submit" v-if="pageStu == 'add' || pageStu == 'edit'">提交</el-button>
  648. </el-col>
  649. <el-col :span="1.5">
  650. <el-button type="primary" size="small" plain @click="back">返回</el-button>
  651. </el-col>
  652. </div>
  653. <popDialog
  654. ref="contractSelect"
  655. @doSubmit="selectionsToInput"
  656. :selectData="selectData"
  657. :single="true"
  658. />
  659. <factory
  660. ref="contractSelect2"
  661. @doSubmit="selectionsToInput2"
  662. :selectData="selectData2"
  663. :single="true"
  664. />
  665. <fourClass
  666. ref="fourClass"
  667. @doSubmit="acceptFourClass"
  668. :selectData="selectData3"
  669. :single="true"
  670. />
  671. </div>
  672. </template>
  673. <script>
  674. import popDialog from '@/components/PopDialog/index.vue'
  675. import factory from '@/components/PopDialog/productFactory.vue'
  676. import fourClass from '@/components/PopDialog/fourClass.vue'
  677. import { addReq, getReqDetail, editReq } from '@/api/requisition/basic'
  678. // 调用物料分类详情接口用于数据回显
  679. import { getDetail } from '@/api/classify/basic';
  680. export default {
  681. name: 'requisition_add',
  682. dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type'],
  683. components: {
  684. popDialog,
  685. factory,
  686. fourClass
  687. },
  688. props: ['pageStu', 'row', 'disable'],
  689. model: {
  690. prop: 'isList',
  691. event: 'jugislist'
  692. },
  693. data() {
  694. return{
  695. testOptions: [],
  696. tabValue: 'first',
  697. basicForm: {
  698. billCode: '',
  699. orgId: '',
  700. // 四级分类/物料分类
  701. classifyId: '',
  702. // 是否医药物料
  703. isMedicine: '',
  704. // DI
  705. diCode: '',
  706. // 物料名称
  707. name: '',
  708. // 英文名称
  709. enName: '',
  710. commonName: '',
  711. specification: '',
  712. model: '',
  713. unitId: '',
  714. manufacturerId: '',
  715. registrant: '',
  716. originPlace: '',
  717. manufacturersMaterialName: '',
  718. isB2c: '',
  719. assembly: '',
  720. isInventoryStatus: '',
  721. expiryDateManagerment: '',
  722. nearOnsetManagerment: '',
  723. usefulLife: '',
  724. expiryUnitId: '',
  725. usefulLifeUnitId: '',
  726. recentWarningPeriod: '',
  727. storageCondition: '',
  728. transportationCondition: '',
  729. materialRate: '',
  730. deliveryPeriod: '',
  731. minOrderQty: '',
  732. minPackQty: '',
  733. puPersonnelId: '',
  734. minBatchQty: '',
  735. length: '',
  736. height: '',
  737. width: '',
  738. boxPackaingQty: '',
  739. mediumPackageQty: '',
  740. packExplain: '',
  741. businessLine: '',
  742. proposerId: '',
  743. barCode: '',
  744. serviceLife: '',
  745. healthCode: '',
  746. oriMaterialCode: '',
  747. productionPermit: '',
  748. oneClass: '',
  749. twoClass: '',
  750. threeClass: '',
  751. isEnable: '',
  752. remark: '',
  753. // 物料申请单-单据信息
  754. applyBillInfo: {
  755. createByName: '',
  756. createTime:'',
  757. updateByName: '',
  758. updateTime: '',
  759. reviewedByName: '',
  760. auditTime: ''
  761. },
  762. // 单据信息字段
  763. status: ''
  764. },
  765. options: [{
  766. value: '0',
  767. label: '是'
  768. },{
  769. value: '2',
  770. label: '否'
  771. }],
  772. basicRules: {},
  773. basicForm2: {
  774. // 是否药品
  775. isDrug: '',
  776. registrationNo: '',
  777. medicalInstruments: '',
  778. commonName: '',
  779. ratifyBatchNo: '',
  780. dosageFrom: '',
  781. oriRegistrationNo: '',
  782. curingType: '',
  783. // 医药属性子表
  784. // medicineTypeChanges:[
  785. // ],
  786. },
  787. // tableList: [],
  788. // 子表选中
  789. ids: [],
  790. // 弹窗
  791. name: '',
  792. selectData: [],
  793. selectData2: [],
  794. selectData3: [],
  795. }
  796. },
  797. // watch: {
  798. // value: {
  799. // handler (newVal) {
  800. // this.selectData = []
  801. // if (newVal) {
  802. // newVal.split(',').forEach((id) => { // 回显拿数据
  803. // this.contractService.queryById(id).then(({data}) => {
  804. // if (data && data.id !== '') {
  805. // this.selectData.push(data)
  806. // }
  807. // })
  808. // })
  809. // }
  810. // },
  811. // immediate: true,
  812. // deep: false
  813. // },
  814. // selectData: {
  815. // handler (newVal) {
  816. // this.name = newVal.map(contract => contract.contractName).join(',')
  817. // },
  818. // immediate: false,
  819. // deep: false
  820. // }
  821. // },
  822. mounted() {
  823. this.$nextTick(() => {
  824. // console.log('页面状态',this.pageStu)
  825. if(this.pageStu == 'check') {
  826. // alert('详情页面:')
  827. console.log('页面状态',this.pageStu)
  828. console.log('数据', this.row)
  829. this.getDetails(this.row)
  830. // 获取树形详情
  831. this.getTreeDetails(this.row.classifyId)
  832. } else if (this.pageStu == 'edit') {
  833. // alert('修改页面')
  834. console.log('页面状态',this.pageStu)
  835. console.log('数据', this.row)
  836. this.getDetails(this.row)
  837. // 获取树形详情
  838. this.getTreeDetails(this.row.classifyId)
  839. } else if(this.pageStu == 'add') {
  840. // alert('新增页面')
  841. console.log('页面状态',this.pageStu)
  842. }
  843. })
  844. },
  845. methods: {
  846. handleClick(tab, event) {
  847. console.log(tab, event);
  848. console.log('页面状态',this.pageStu)
  849. },
  850. // 用于回显四级分类树形选择
  851. getTreeDetails(id) {
  852. getDetail(id).then(res => {
  853. if (res.code === 200) {
  854. this.testOptions.push(res.data)
  855. this.basicForm.oneClass = res.data.oneClass
  856. this.basicForm.twoClass = res.data.twoClass
  857. this.basicForm.threeClass = res.data.threeClass
  858. }
  859. })
  860. },
  861. // 如果是详情进入,则调用详情接口
  862. getDetails(row) {
  863. getReqDetail(row.id).then(res => {
  864. console.log('res',res)
  865. if(res.code === 200) {
  866. this.basicForm = res.data
  867. if(res.data.sysMaterialMedcineApply) {
  868. this.basicForm2 = res.data.sysMaterialMedcineApply
  869. }
  870. }
  871. })
  872. },
  873. save() {
  874. if(this.pageStu == 'edit') {
  875. let sparams = {...this.basicForm, ...{status: 0}}
  876. sparams.sysMaterialMedcineApply = this.basicForm2
  877. console.log('提交参数', sparams)
  878. editReq(sparams).then(res => {
  879. if(res.code === 200) {
  880. this.$message({
  881. message: res.msg,
  882. type: 'success'
  883. });
  884. this.back()
  885. }
  886. })
  887. } else {
  888. // alert('保存传status:0')
  889. let sparams = {...this.basicForm, ...{status: 0}}
  890. sparams.sysMaterialMedcineApply = this.basicForm2
  891. console.log('保存参数', sparams)
  892. addReq(sparams).then(res => {
  893. if(res.code === 200) {
  894. this.$message({
  895. message: res.msg,
  896. type: 'success'
  897. });
  898. this.back()
  899. }
  900. })
  901. }
  902. },
  903. submit() {
  904. // alert('提交传status:1')
  905. let sparams = {...this.basicForm, ...{status: 1}}
  906. sparams.sysMaterialMedcineApply = this.basicForm2
  907. console.log('提交参数', sparams)
  908. editReq(sparams).then(res => {
  909. if(res.code === 200) {
  910. this.$message({
  911. message: res.msg,
  912. type: 'success'
  913. });
  914. this.back()
  915. }
  916. })
  917. },
  918. back() {
  919. this.$emit('jugislist', true)
  920. let queryParams = {
  921. pageNum: 1,
  922. pageSize: 10
  923. }
  924. this.$emit('refresh', queryParams)
  925. },
  926. // 子表增删行
  927. // handleSelectionChange(val) {
  928. // this.ids = val
  929. // console.log('this.ids',this.ids)
  930. // },
  931. // addLine() {
  932. // //添加行数
  933. // let newValue = {
  934. // sort:'',
  935. // medicineCode: '',
  936. // medicineName: '',
  937. // };
  938. // this.basicForm2.medicineTypeChanges.push(newValue);
  939. // },
  940. // handleDelete(index) {
  941. // if(this.ids.length == 0) {
  942. // this.$message({
  943. // message: '请选择删除条目',
  944. // type: 'warning'
  945. // });
  946. // } else {
  947. // // console.log('index',index)
  948. // // this.basicForm2.medicineTypeChanges.splice(index, 1);
  949. // this.basicForm2.medicineTypeChanges = this.basicForm2.medicineTypeChanges.filter(item =>
  950. // !this.ids.some(ele =>
  951. // ele.sort == item.sort))
  952. // }
  953. // },
  954. // testsave() {
  955. // console.log('暂存表格:', this.basicForm2.medicineTypeChanges)
  956. // console.log('暂存表单1', this.basicForm)
  957. // let params = {...this.basicForm, ...this.basicForm2}
  958. // console.log('暂存总表单', params)
  959. // },
  960. // 设置选中
  961. selectionsToInput (selections) {
  962. console.log('父组件拿到的:', selections)
  963. this.selectData = selections
  964. this.$emit('getInfo', this.selectData)
  965. getMaterialDetails(selections[0].id).then(res => {
  966. console.log('res',res)
  967. if (res.code === 200) {
  968. let data = res.data.data
  969. // 物料id
  970. this.basicForm.materialId = data.id
  971. // 物料分类Id
  972. this.basicForm.materialClassifyId = data.classifyId
  973. this.basicForm.materialCode = data.code
  974. this.basicForm.materialName = data.name
  975. this.basicForm.medicineMaterial = data.isMedicine
  976. this.basicForm.oneClass = data.oneClass
  977. this.basicForm.twoClass = data.twoClass
  978. this.basicForm.threeClass = data.threeClass
  979. this.basicForm.fourClass = data.fourClass
  980. this.basicForm.specification = data.specification
  981. this.basicForm.model = data.model
  982. this.basicForm.registrant = data.registrant
  983. this.basicForm.storageConditions = data.storageCondition
  984. this.basicForm.transportCondition = data.transportationCondition
  985. this.basicForm.remark = data.deliveryPeriod
  986. if(data.medcines.length !== 0) {
  987. this.basicForm2.drug = data.medcines[0].isDrug
  988. this.basicForm2.registrationNo = data.medcines[0].registrationNo
  989. this.basicForm2.medicalDevices = data.medcines[0].medicalInstruments
  990. this.basicForm2.maintenanceType = data.medcines[0].curingType
  991. }
  992. }
  993. })
  994. },
  995. selectionsToInput2 (selections) {
  996. console.log('选择的数据',selections)
  997. this.basicForm.manufacturerId = selections[0].code
  998. },
  999. acceptFourClass (selections) {
  1000. console.log('父组件收到的数据',selections)
  1001. this.testOptions.push(selections)
  1002. console.log('收到的数据转成数组', this.testOptions)
  1003. this.basicForm.classifyId = selections.id
  1004. this.getTreeDetails(selections.id)
  1005. },
  1006. chooseFourClass() {
  1007. console.log('1111')
  1008. this.$refs.fourTag.blur()
  1009. this.$refs.fourClass.init()
  1010. },
  1011. // 显示列表
  1012. test01() {
  1013. console.log('测试点击')
  1014. this.$refs.contractSelect.init()
  1015. },
  1016. test02() {
  1017. console.log('测试弹窗2');
  1018. this.$refs.contractSelect2.init()
  1019. }
  1020. }
  1021. }
  1022. </script>
  1023. <style lang="scss" scoped>
  1024. .requisition_add {
  1025. height: calc(100vh - 84px);
  1026. padding: 12px;
  1027. box-sizing: border-box;
  1028. }
  1029. .btn_group {
  1030. width: 100%;
  1031. margin: 20px 0;
  1032. display: flex;
  1033. justify-content: center;
  1034. }
  1035. </style>