add.vue 38 KB

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