Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

addDrugs.vue 53KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  1. <template>
  2. <el-dialog
  3. :title="formTitle"
  4. width="1000px"
  5. :visible.sync="visible"
  6. :before-close="_close"
  7. class="addDrugsDialog"
  8. >
  9. <el-tabs v-model="activeName">
  10. <el-tab-pane label="基础数据" name="first">
  11. <div>
  12. <el-form :model="form" :rules="rules" ref="form" label-width="120px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
  13. <el-form-item label="药品名称 : " prop="drug_name">
  14. <el-input v-model="form.drug_name" style="width:160px;" placeholder=""
  15. maxlength="30"></el-input>
  16. </el-form-item>
  17. <el-form-item label="药品别名 : ">
  18. <el-input v-model="form.drug_alias" style="width:160px;" placeholder=""
  19. maxlength="30"></el-input>
  20. </el-form-item>
  21. <div v-if="org_id == 9671 || org_id == 7957 || org_id == 4">
  22. <el-form-item label="药品规格 : ">
  23. <el-input v-model="form.drug_spec" style="width:160px;" placeholder=""
  24. maxlength="30"></el-input>
  25. </el-form-item>
  26. </div>
  27. <el-form-item label="药品类别 : " prop="drug_category">
  28. <el-select v-model="form.drug_category" style="width:160px;" placeholder="请选择">
  29. <el-option
  30. v-for="(item,index) in drugCategoryList"
  31. :key="index"
  32. :label="item.name"
  33. :value="item.value">
  34. </el-option>
  35. </el-select>
  36. </el-form-item>
  37. <div style="width:100%;">
  38. <div><span style="width:120px;text-align:right;display:inline-block;margin-bottom:10px;"><span style="color:red;">*</span>单位&规格:</span><span style="color:#999">例如:0.75 g * 60 粒 / 盒</span></div>
  39. </div>
  40. <div style="width:100%;display:flex;align-items:center;margin-left:120px;">
  41. <el-form-item prop="dose" class="noMargin">
  42. <el-input v-model="form.dose" style="width:100px;margin-right:5px;" placeholder="剂量" ></el-input>
  43. </el-form-item>
  44. <el-form-item prop="dose_unit" class="noMargin">
  45. <el-select v-model="form.dose_unit" style="width:160px;" placeholder="剂量单位">
  46. <el-option
  47. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  48. :key="index"
  49. :label="item.name"
  50. :value="item.name">
  51. </el-option>
  52. </el-select>
  53. </el-form-item>
  54. <span style="margin-bottom:20px;font-size:20px;padding:0 10px;">*</span>
  55. <el-form-item prop="min_number" class="noMargin">
  56. <el-input v-model="form.min_number" style="width:100px;margin-right:5px;" type="number" placeholder="拆零"> </el-input>
  57. </el-form-item>
  58. <el-form-item prop="min_unit" class="noMargin">
  59. <el-select v-model="form.min_unit" style="width:160px;" placeholder="拆零单位">
  60. <el-option
  61. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  62. :key="index"
  63. :label="item.name"
  64. :value="item.name">
  65. </el-option>
  66. </el-select>
  67. </el-form-item>
  68. <span style="margin-bottom:20px;font-size:20px;padding:0 10px;">/</span>
  69. <el-form-item prop="max_unit" class="noMargin">
  70. <el-select v-model="form.max_unit" style="width:160px;" placeholder="包装单位">
  71. <el-option
  72. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  73. :key="index"
  74. :label="item.name"
  75. :value="item.name">
  76. </el-option>
  77. </el-select>
  78. </el-form-item>
  79. </div>
  80. <el-form-item label="药品类型 : " prop="drug_type">
  81. <el-select v-model="form.drug_type" style="width:160px;" placeholder="请选择">
  82. <el-option
  83. v-for="(item,index) in drugTypeList"
  84. :key="index"
  85. :label="item.name"
  86. :value="item.value">
  87. </el-option>
  88. </el-select>
  89. </el-form-item>
  90. <el-form-item label="默认给药途径:" prop="delivery_way">
  91. <el-select v-model="form.delivery_way" style="width:160px;" placeholder="请选择">
  92. <el-option
  93. v-for="(item, index) in deliveryWayOptions"
  94. :key="index"
  95. :label="item.name"
  96. :value="item.name">
  97. </el-option>
  98. </el-select>
  99. </el-form-item>
  100. <el-form-item label="默认执行频率:" prop="execution_frequency">
  101. <el-select v-model="form.execution_frequency" style="width:160px;" placeholder="请选择">
  102. <el-option
  103. v-for="(item,index) in executionFrequencyOptions"
  104. :key="index"
  105. :label="item.name"
  106. :value="item.name">
  107. </el-option>
  108. </el-select>
  109. </el-form-item>
  110. <el-form-item label="默认单次用量 : " prop="drug_dose">
  111. <el-input v-model="form.drug_dose" style="width:70px;margin-right:5px;" placeholder=""
  112. maxlength="30"></el-input>
  113. <!-- <el-select v-model="form.drug_dose_unit" style="width:80px;" placeholder="单次用量单位">
  114. <el-option
  115. v-for="(item,index) in unitList"
  116. :key="index"
  117. :label="item.name"
  118. :value="item.id">
  119. </el-option>
  120. </el-select> -->
  121. <el-select v-model="form.drug_dose_unit" style="width:80px;" filterable placeholder="单次用量单位">
  122. <el-option
  123. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  124. :key="index"
  125. :label="item.name"
  126. :value="item.id">
  127. </el-option>
  128. </el-select>
  129. </el-form-item>
  130. <el-form-item label="默认开药数量:" prop="prescribing_number">
  131. <el-input v-model="form.prescribing_number" style="width:70px;margin-right:5px;" placeholder=""
  132. maxlength="30"></el-input>
  133. <!-- <el-select v-model="form.prescribing_number_unit" style="width:80px;" placeholder="开药数量单位">
  134. <el-option
  135. v-for="(item,index) in packingUnit"
  136. :key="index"
  137. :label="item.name"
  138. :value="item.name">
  139. </el-option>
  140. </el-select> -->
  141. <el-select v-model="form.prescribing_number_unit" style="width:80px;" filterable placeholder="开药数量单位">
  142. <el-option
  143. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  144. :key="index"
  145. :label="item.name"
  146. :value="item.name">
  147. </el-option>
  148. </el-select>
  149. </el-form-item>
  150. <!-- <el-form-item label="开药数量单位:" prop="prescribing_number">
  151. <el-select v-model="form.prescribing_number_unit" style="width:160px;" placeholder="开药数量单位">
  152. <el-option
  153. v-for="(item,index) in getDataConfig('hemodialysis','units')"
  154. :key="index"
  155. :label="item.name"
  156. :value="item.name">
  157. </el-option>
  158. </el-select>
  159. </el-form-item> -->
  160. <el-form-item label="默认开药天数:" prop="prescribing_number">
  161. <el-input v-model="form.drug_day" style="width:160px;" placeholder=""
  162. maxlength="30"></el-input>
  163. </el-form-item>
  164. <el-form-item label="库存警戒:">
  165. <el-input v-model="form.drug_stock_limit" style="width:140px;" placeholder=""
  166. maxlength="30"></el-input>{{form.max_unit}}
  167. </el-form-item>
  168. <el-form-item label="产地:" prop="drug_origin_place">
  169. <el-input v-model="form.drug_origin_place" style="width:160px;" placeholder=""
  170. maxlength="30"></el-input>
  171. </el-form-item>
  172. <el-form-item label="药品剂型 : " prop="drug_dosage_form">
  173. <el-select v-model="form.drug_dosage_form" style="width:160px;" placeholder="请选择">
  174. <el-option
  175. v-for="(item,index) in drugDosageFormList"
  176. :key="index"
  177. :label="item.name"
  178. :value="item.value">
  179. </el-option>
  180. </el-select>
  181. </el-form-item>
  182. <el-form-item label="医保等级 : ">
  183. <el-select v-model="form.medical_insurance_level" style="width:160px;" placeholder="请选择">
  184. <el-option
  185. v-for="(item,index) in medicalInsuranceLevelList"
  186. :key="index"
  187. :label="item.name"
  188. :value="item.value">
  189. </el-option>
  190. </el-select>
  191. </el-form-item>
  192. <!-- <el-form-item label="单位换算 : ">
  193. <el-input v-model="form.unit_matrixing" style="width:160px;" placeholder=""
  194. maxlength="30"></el-input>
  195. </el-form-item> -->
  196. <el-form-item label="拆零零售价(元) : " prop="min_price">
  197. <el-input v-model="form.min_price" style="width:160px;" placeholder=""
  198. maxlength="30"></el-input>
  199. </el-form-item>
  200. <el-form-item label="包装零售价(元) : " prop="retail_price">
  201. <el-input v-model="form.retail_price" style="width:160px;" placeholder=""
  202. maxlength="30"></el-input>
  203. </el-form-item>
  204. <el-form-item label="进货价(元) : " prop="last_price">
  205. <el-input v-model="form.last_price" style="width:160px;" placeholder=""
  206. maxlength="30"></el-input>
  207. </el-form-item>
  208. <el-form-item label="开药控制 : " prop="drug_control">
  209. <el-select v-model="form.drug_control" style="width:160px;" placeholder="请选择">
  210. <el-option
  211. v-for="(item,index) in drugControlList"
  212. :key="index"
  213. :label="item.name"
  214. :value="item.value">
  215. </el-option>
  216. </el-select>
  217. </el-form-item>
  218. <el-form-item label="批准文号 : " prop="number">
  219. <el-input v-model="form.number" style="width:160px;" placeholder=""
  220. maxlength="30"></el-input>
  221. </el-form-item>
  222. <el-form-item label="药物分类 : " prop="drug_classify">
  223. <el-select v-model="form.drug_classify" style="width:160px;" placeholder="请选择">
  224. <el-option
  225. v-for="(item, index) in drugClassifyList"
  226. :key="index"
  227. :label="item.name"
  228. :value="item.value">
  229. </el-option>
  230. </el-select>
  231. </el-form-item>
  232. <el-form-item label="限制性用药 : ">
  233. <el-select v-model="form.lmt_used_flag" style="width:160px;" placeholder="请选择">
  234. <el-option
  235. v-for="(item,index) in lmt_used_flags"
  236. :key="index"
  237. :label="item.name"
  238. :value="item.id">
  239. </el-option>
  240. </el-select>
  241. </el-form-item>
  242. <el-form-item label="审批标志 : ">
  243. <el-select v-model="form.hosp_appr_flag" style="width:160px;" placeholder="请选择">
  244. <el-option
  245. v-for="(item,index) in hosp_appr_flags"
  246. :key="index"
  247. :label="item.name"
  248. :value="item.id">
  249. </el-option>
  250. </el-select>
  251. </el-form-item>
  252. <el-form-item label="国家编码 : " prop="medical_insurance_number">
  253. <el-input v-model="form.medical_insurance_number" style="width:160px;" placeholder=""
  254. maxlength="30"></el-input>
  255. </el-form-item>
  256. <el-form-item label="省编码 : " prop="provinces_code">
  257. <el-input v-model="form.provinces_code" style="width:160px;" placeholder=""
  258. maxlength="30"></el-input>
  259. </el-form-item>
  260. <el-form-item label="bbx01 : " prop="bbx01">
  261. <el-input v-model="form.bbx01" style="width:160px;" placeholder=""
  262. maxlength="30"></el-input>
  263. </el-form-item>
  264. <el-form-item label="bby01 : " prop="bbx01">
  265. <el-input v-model="form.bby01" style="width:160px;" placeholder=""
  266. maxlength="30"></el-input>
  267. </el-form-item>
  268. <el-form-item label="生产厂商 : " prop="manufacturer">
  269. <el-select v-model="form.manufacturer" style="width:160px;" filterable placeholder="请选择">
  270. <el-option
  271. v-for="(item,index) in manufacturerList"
  272. :key="index"
  273. :label="item.manufacturer_name"
  274. :value="item.id">
  275. </el-option>
  276. </el-select>
  277. </el-form-item>
  278. <el-form-item label="药理分类 : " prop="pharmacology_category">
  279. <el-select v-model="form.pharmacology_category" style="width:160px;" placeholder="请选择">
  280. <el-option
  281. v-for="(item,index) in pharmacologyCategoryList"
  282. :key="index"
  283. :label="item.name"
  284. :value="item.value">
  285. </el-option>
  286. </el-select>
  287. </el-form-item>
  288. <el-form-item label="统计分类 : " prop="statistics_category">
  289. <el-select v-model="form.statistics_category" style="width:160px;" placeholder="请选择">
  290. <el-option
  291. v-for="(item,index) in statisticsCategoryList"
  292. :key="index"
  293. :label="item.name"
  294. :value="item.value">
  295. </el-option>
  296. </el-select>
  297. </el-form-item>
  298. <el-form-item label="本位码 : " prop="code">
  299. <el-input v-model="form.code" style="width:160px;" placeholder="" maxlength="30"></el-input>
  300. </el-form-item>
  301. <el-form-item label="是否特病目录:" prop="is_special_diseases">
  302. <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
  303. <el-option
  304. v-for="(item,index) in options"
  305. :key="index"
  306. :label="item.label"
  307. :value="item.value">
  308. </el-option>
  309. </el-select>
  310. </el-form-item>
  311. <el-form-item label="是否备案 : " prop="is_record">
  312. <el-select v-model="form.is_record" style="width:160px;" placeholder="请选择">
  313. <el-option
  314. v-for="(item,index) in options"
  315. :key="index"
  316. :label="item.label"
  317. :value="item.value">
  318. </el-option>
  319. </el-select>
  320. </el-form-item>
  321. <el-form-item label="处方药标志">
  322. <el-select v-model="form.prescription_mark" style="width:160px;" placeholder="请选择">
  323. <el-option
  324. v-for="(item,index) in options"
  325. :key="index"
  326. :label="item.label"
  327. :value="item.value">
  328. </el-option>
  329. </el-select>
  330. </el-form-item>
  331. <el-form-item label="社保目录编码">
  332. <el-input v-model="form.social_security_directory_code" style="width:160px"></el-input>
  333. </el-form-item>
  334. <el-form-item label="备案日期:">
  335. <el-date-picker
  336. style="width:160px"
  337. value-format="yyyy-MM-dd"
  338. v-model="form.record_date"
  339. type="date"
  340. placeholder="选择日期时间">
  341. </el-date-picker>
  342. </el-form-item>
  343. <el-form-item label="是否零用:">
  344. <el-select v-model="form.is_user" style="width:160px" filterable placeholder="请选择">
  345. <el-option
  346. v-for="(item,index) in userList"
  347. :key="index"
  348. :label="item.name"
  349. :value="item.id">
  350. </el-option>
  351. </el-select>
  352. </el-form-item>
  353. <el-form-item label="药品备注:">
  354. <el-input v-model="form.drug_remark" style="width:160px"></el-input>
  355. </el-form-item>
  356. <el-form-item label="经销商: " style="width:100%">
  357. <el-select v-model="form.dealer" style="width:100%;" filterable placeholder="请选择">
  358. <el-option
  359. v-for="(item,index) in dealer"
  360. :key="index"
  361. :label="item.dealer_name"
  362. :value="item.id">
  363. </el-option>
  364. </el-select>
  365. </el-form-item>
  366. <el-form-item label="" style="display:none;">
  367. <el-input style="width:160px;" placeholder="" maxlength="30"></el-input>
  368. </el-form-item>
  369. <el-form-item label="状态 : " prop="drug_status">
  370. <el-checkbox-group v-model="drug_status">
  371. <el-checkbox label="停用">停用</el-checkbox>
  372. <el-checkbox label="贵重">贵重</el-checkbox>
  373. <el-checkbox label="收费">收费</el-checkbox>
  374. <el-checkbox label="库存管理">库存管理</el-checkbox>
  375. <el-checkbox label="默认用药途径收费">默认用药途径收费</el-checkbox>
  376. <el-checkbox label="注射类">注射类</el-checkbox>
  377. </el-checkbox-group>
  378. </el-form-item>
  379. <el-form-item label="限制说明 : " prop="limit_remark" style="width:100%;">
  380. <el-input type="form.restrictions" :rows="2" placeholder="请输入内容"
  381. v-model="form.limit_remark"></el-input>
  382. </el-form-item>
  383. </el-form>
  384. </div>
  385. </el-tab-pane>
  386. <el-tab-pane label="扩展数据" name="second">
  387. <el-form :model="form" label-width="130px"
  388. style="display: flex;flex-wrap: wrap;justify-content: space-between;">
  389. <el-form-item label="标签:" prop="label">
  390. <el-select v-model="form.label" style="width:160px;" placeholder="请选择">
  391. <el-option
  392. v-for="(item,index) in sign"
  393. :key="index"
  394. :label="item.name"
  395. :value="item.id">
  396. </el-option>
  397. </el-select>
  398. </el-form-item>
  399. <el-form-item label="收费项目排序:" prop="sort">
  400. <el-input v-model="form.sort" style="width:160px;" placeholder="" maxlength="30"></el-input>
  401. </el-form-item>
  402. <el-form-item label="是否常用医嘱:" prop="is_use_doctor_advice">
  403. <el-select v-model="form.is_use_doctor_advice" style="width:160px;" placeholder="请选择">
  404. <el-option
  405. v-for="(item,index) in options"
  406. :key="index"
  407. :label="item.label"
  408. :value="item.value">
  409. </el-option>
  410. </el-select>
  411. </el-form-item>
  412. <el-form-item label="是否默认:" prop="is_default">
  413. <el-select v-model="form.is_default" style="width:160px;" placeholder="请选择">
  414. <el-option
  415. v-for="(item,index) in options"
  416. :key="index"
  417. :label="item.label"
  418. :value="item.value">
  419. </el-option>
  420. </el-select>
  421. </el-form-item>
  422. <el-form-item label="是否收费预估项:" prop="is_charge_predict">
  423. <el-select v-model="form.is_charge_predict" style="width:160px;" placeholder="请选择">
  424. <el-option
  425. v-for="item,index in options"
  426. :key="index"
  427. :label="item.label"
  428. :value="item.value">
  429. </el-option>
  430. </el-select>
  431. </el-form-item>
  432. <el-form-item label="是否统计工作量:" prop="is_statistics_work">
  433. <el-select v-model="form.is_statistics_work" style="width:160px;" placeholder="请选择">
  434. <el-option
  435. v-for="(item,index) in options"
  436. :key="index"
  437. :label="item.label"
  438. :value="item.value">
  439. </el-option>
  440. </el-select>
  441. </el-form-item>
  442. <el-form-item label="是否收费常用项:" prop="is_charge_use">
  443. <el-select v-model="form.is_charge_use" style="width:160px;" placeholder="请选择">
  444. <el-option
  445. v-for="(item,index) in options"
  446. :key="index"
  447. :label="item.label"
  448. :value="item.value">
  449. </el-option>
  450. </el-select>
  451. </el-form-item>
  452. <el-form-item label="是否通过药房发药:" prop="is_pharmacy">
  453. <el-select v-model="form.is_pharmacy" style="width:160px;" placeholder="请选择">
  454. <el-option
  455. v-for="item in Pharmacy"
  456. :key="item.value"
  457. :label="item.label"
  458. :value="item.value">
  459. </el-option>
  460. </el-select>
  461. </el-form-item>
  462. <el-form-item label="" style="visibility: hidden;">
  463. <el-input style="width:160px;" placeholder="" maxlength="30"></el-input>
  464. </el-form-item>
  465. </el-form>
  466. </el-tab-pane>
  467. </el-tabs>
  468. <span slot="footer" class="dialog-footer">
  469. <el-button @click="cancle('form')">取 消</el-button>
  470. <el-button type="primary" @click="comfirm('form')">保 存</el-button>
  471. </span>
  472. </el-dialog>
  473. </template>
  474. <script>
  475. import { getDataConfig, getDictionaryDataConfig } from '@/utils/data'
  476. import { getAdviceConfig } from '@/api/advice'
  477. import { GetAllConfig, getManufacturerList,getInitializtion } from '@/api/stock'
  478. export default {
  479. data() {
  480. return {
  481. visible: false,
  482. formTitle: '',
  483. activeName: 'first',
  484. // manufacturers:[],
  485. sign: [
  486. { id: 1, name: '透析模式' },
  487. { id: 2, name: '特殊护理' },
  488. { id: 3, name: '抗凝剂' }
  489. ],
  490. options: [
  491. {
  492. value: '1',
  493. label: '是'
  494. },
  495. {
  496. value: '2',
  497. label: '否'
  498. }
  499. ],
  500. Pharmacy: [
  501. {
  502. value: 1,
  503. label: '是'
  504. },
  505. {
  506. value: 0,
  507. label: '否'
  508. }
  509. ],
  510. lmt_used_flags: [{
  511. id: 0,
  512. name: '否'
  513. }, {
  514. id: 1,
  515. name: '是'
  516. }], hosp_appr_flags: [
  517. {
  518. id: 1,
  519. name: '无需审批'
  520. }, {
  521. id: 2,
  522. name: '审批通过'
  523. }, {
  524. id: 3,
  525. name: '审批不通过'
  526. }
  527. ],
  528. deliveryWayOptions: [],
  529. executionFrequencyOptions: [],
  530. value: '',
  531. radio: '1',
  532. drug_status: [],
  533. form: {
  534. lmt_used_flag: 0, //是否限制用药
  535. hosp_appr_flag: '',//审批标志
  536. drug_name: '',//药品名称
  537. pinyin: '',//拼音
  538. wubi: '',//五笔输入法
  539. drug_alias: '',//药品别名
  540. drug_alias_pinyin: '',//别名拼音
  541. drug_alias_wubi: '',//别名五笔
  542. drug_category: '',//药品类别
  543. drug_spec: '',//药品规格
  544. drug_type: '',//药品类型
  545. drug_stock_limit: '',//库存警戒
  546. drug_origin_place: '',//产地
  547. drug_dosage_form: '',//药品剂型
  548. medical_insurance_level: '',//医保等级
  549. max_unit: '',//最大单位
  550. min_unit: '',//最小单位
  551. unit_matrixing: '',//单位换算
  552. retail_price: '',//零售价
  553. last_price: '',//上次进价
  554. drug_control: '',//开药控制
  555. number: '',//批准文号
  556. drug_classify: '',//药物分类
  557. drug_dose: '',//药品剂量
  558. drug_dose_unit: '',
  559. medical_insurance_number: '',//医保编号
  560. provinces_code:"",//省编码
  561. manufacturer: '', //生产产商
  562. pharmacology_category: '',//药理分类
  563. statistics_category: '',//统计分类
  564. code: '',//本位码
  565. is_special_diseases: '',//是否特病目录
  566. is_record: '',//是否备案
  567. agent: '',// 代理商
  568. drug_status: '',// 状态
  569. limit_remark: '',//限制说明
  570. delivery_way: '',//默认给药途径
  571. execution_frequency: '',//默认执行频率
  572. single_dose: '',//默认单次用量
  573. prescribing_number: '',//默认开药数量
  574. label: '',//标签
  575. sort: '',//收费项目排序
  576. is_use_doctor_advice: '',//是否常用医嘱
  577. is_default: '',//是否默认
  578. is_charge_predict: '',//是否收费预估项
  579. is_statistics_work: '',//是否统计工作量
  580. is_charge_use: '',//是否收费常用项
  581. drug_code: '',
  582. dealer: '',
  583. prescription_mark: '',//处方药标志
  584. social_security_directory_code: '',//社保目录编码
  585. record_date: '',//备案日期
  586. drug_remark: '',//药品备注
  587. drug_day:"",//默认开药天数
  588. min_number:"",//拆零数量
  589. min_price:"",//拆零零售价
  590. dose_unit:"",//剂量
  591. dose:"",//剂量单位
  592. prescribing_number_unit:"",
  593. total:"",
  594. specification_name:"",
  595. is_user:"2",
  596. sum_count:"",
  597. sum_in_count:"",
  598. is_pharmacy:1,//是否通过药房发药
  599. bbx01:"",
  600. bby01:"",
  601. },
  602. rules: {
  603. drug_name: [{ required: true, message: '请填写药品名称', trigger: 'blur' }],
  604. drug_alias: [{ required: true, message: '请选择药品类别', trigger: 'change' }],
  605. // drug_spec: [{ required: true, message: '请填写药品规格', trigger: 'blur' }],
  606. dose:[{required:true,message:'请输入剂量',trigger:'blur'}],
  607. dose_unit:[{required:true,message:"请填写剂量",trigger:'blur'}],
  608. max_unit: [{ required: true, message: '请填写包装单位', trigger: 'change' }],
  609. min_unit: [{ required: true, message: '请填写拆零单位', trigger: 'change' }],
  610. unval:[{required:true,message:"请填写拆零",trigger:'change'}],
  611. min_number:[{required:true,message:"请填写拆零",trigger:'change'}],
  612. packing_unit: [{ required: true, message: '请填写包装单位', trigger: 'change' }],
  613. drug_type: [{ required: true, message: '请填写药品类型', trigger: 'blur' }],
  614. drug_stock_limit: [{ required: true, message: '请填写库存警戒', trigger: 'blur' }],
  615. // drug_origin_place: [{ required: true, message: '请填写产地', trigger: 'blur' }],
  616. drug_dosage_form: [{ required: true, message: '请填写药品剂型', trigger: 'blur' }],
  617. medical_insurance_level: [{ required: true, message: '请选择医保等级', trigger: 'change' }],
  618. unit_matrixing: [{ required: true, message: '请填写单位换算', trigger: 'blur' }],
  619. retail_price: [{ required: true, message: '请填写拆零零售价', trigger: 'blur' }],
  620. last_price: [{ required: true, message: '请填写进货价', trigger: 'blur' }],
  621. packing_price:[{required:true,message:'请填写包装零售价',trigger:'blur'}],
  622. drug_classify: [{ required: true, message: '请选择药物分类', trigger: 'change' }],
  623. drug_dose: [{ required: true, message: '请填写剂量', trigger: 'blur' }],
  624. manufacturer: [{ required: true, message: '请选择生产产商', trigger: 'change' }],
  625. dealer: [{ required: true, message: '请选择经销商', trigger: 'change' }],
  626. prescription_mark: [{ required: true, message: '请选择处方药标志' }],
  627. social_security_directory_code: [{ required: true, message: '请填写社保目录编码' }],
  628. record_date: [{ required: true, message: '请选择备案日期' }],
  629. drug_remark: [{ required: true, message: '请填写药品备注' }],
  630. lmt_used_flag:[{ required: true, message: '请选择是否限制用药' }],
  631. hosp_appr_flag:[{ required: true, message: '请选择审批标志' }],
  632. },
  633. page: 1,
  634. limit: 500,
  635. manufacturerList: [],
  636. dealer: [],
  637. drugTypeList:[],
  638. drugCategoryList:[],
  639. drugDosageFormList:[],
  640. medicalInsuranceLevelList:[],
  641. drugControlList:[],
  642. drugClassifyList:[],
  643. statisticsCategoryList:[],
  644. pharmacologyCategoryList:[],
  645. dosageShow:false,
  646. unitList:[],
  647. minNumberShow:false,
  648. packingUnit:[],
  649. userList: [{
  650. id: "1",
  651. name: "是"
  652. }, {
  653. id: "2",
  654. name: "否"
  655. }],
  656. }
  657. },
  658. props: {
  659. manufacturers: {
  660. type: Array
  661. },
  662. titles: {
  663. type: String,
  664. default: ''
  665. },
  666. formValue: {
  667. type: Object
  668. },
  669. isCreated: {
  670. type: Number,
  671. default: 1
  672. },
  673. },
  674. methods: {
  675. cancle: function(formName) {
  676. this.$emit('dialog-cancle', this.getValue())
  677. },
  678. comfirm: function(formName) {
  679. this.$refs[formName].validate((valid) => {
  680. console.log(valid)
  681. if (valid) {
  682. this.$emit('dialog-comfirm', this.getValue())
  683. }
  684. })
  685. },
  686. getDictionaryDataConfig(module, filed_name) {
  687. return getDictionaryDataConfig(module, filed_name)
  688. },
  689. getDataConfig(module, filed_name) {
  690. return getDataConfig(module, filed_name)
  691. },
  692. _close: function(done) {
  693. // this.clear()
  694. // done()
  695. this.$confirm('是否保存')
  696. .then(_ => {
  697. this.comfirm('form')
  698. // done();
  699. })
  700. .catch(_ => {
  701. done()
  702. });
  703. },
  704. clear: function() {
  705. this.form.id = 0
  706. this.form.name = ''
  707. this.form.intro = ''
  708. },
  709. show(id, obj) {
  710. console.log("obj3223323232332",obj)
  711. this.unitList = []
  712. this.packingUnit = []
  713. var arr = getDataConfig('hemodialysis','units')
  714. for(let i=0;i<arr.length;i++){
  715. if(obj.min_unit == arr[i].name){
  716. this.unitList.push(arr[i])
  717. this.packingUnit.push(arr[i])
  718. }
  719. if(obj.dose_unit == arr[i].name){
  720. this.unitList.push(arr[i])
  721. }
  722. if(obj.max_unit == arr[i].name){
  723. this.packingUnit.push(arr[i])
  724. }
  725. let idArr = []
  726. this.unitList.map(item => {
  727. idArr.push(item.id)
  728. })
  729. if(idArr.indexOf(obj.drug_dose_unit) == -1){
  730. if(obj.drug_dose_unit == arr[i].id){
  731. this.unitList.push(arr[i])
  732. }
  733. }
  734. let packingIdArr = []
  735. this.packingUnit.map(item => {
  736. packingIdArr.push(item.id)
  737. })
  738. if(packingIdArr.indexOf(obj.prescribing_number_unit) == -1){
  739. if(obj.prescribing_number_unit == arr[i].id || obj.prescribing_number_unit == arr[i].name){
  740. this.packingUnit.push(arr[i])
  741. }
  742. }
  743. }
  744. let ojb = {};
  745. this.unitList = this.unitList.reduce(function(prevArr, currentItem) {
  746. //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  747. ojb[currentItem.name] ? '' : ojb[currentItem.name] = true && prevArr.push(currentItem);
  748. return prevArr
  749. }, [])
  750. let newojb = {};
  751. this.packingUnit = this.packingUnit.reduce(function(prevArr, currentItem) {
  752. //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  753. newojb[currentItem.name] ? '' : newojb[currentItem.name] = true && prevArr.push(currentItem);
  754. return prevArr
  755. }, [])
  756. console.log('this.unitList',this.unitList)
  757. this.getInitializtion()
  758. this.getlist()
  759. this.GetAllConfig()
  760. if(obj.drug_classify == 0){
  761. obj.drug_classify = ""
  762. }else{
  763. obj.drug_classify = parseInt(obj.drug_classify)
  764. }
  765. if(obj.dealer == 0){
  766. obj.dealer = ""
  767. }
  768. this.visible = true
  769. if (id == 0) {
  770. this.formTitle = '新增'
  771. this.form['id'] = 0
  772. for (let key in obj) {
  773. this.form[key] = obj[key]
  774. }
  775. this.form['lmt_used_flag'] = 0
  776. this.form['is_user'] = "2"
  777. } else {
  778. for (let key in obj) {
  779. this.form[key] = obj[key]
  780. }
  781. this.form.drug_classify = parseInt(this.form.drug_classify)
  782. this.form['id'] = id
  783. this.drug_status = []
  784. if (this.form.drug_status.length > 0) {
  785. for (let i = 0; i < this.form.drug_status.split(",").length; i++) {
  786. this.drug_status.push(this.form.drug_status.split(',')[i])
  787. }
  788. console.log(this.drug_status)
  789. }
  790. this.formTitle = '编辑'
  791. let unitArr = []
  792. this.unitList.map(item => {
  793. unitArr.push(item.id)
  794. })
  795. if(unitArr.indexOf(this.form.drug_dose_unit) == -1){
  796. this.form.drug_dose_unit = ''
  797. }
  798. if(obj.dose_unit == obj.min_unit){
  799. this.dosageShow = true
  800. }else{
  801. this.dosageShow = false
  802. }
  803. if(obj.min_unit == obj.max_unit){
  804. this.minNumberShow = true
  805. }else{
  806. this.minNumberShow = false
  807. }
  808. }
  809. this.getAdviceConfig()
  810. }, getAdviceConfig() {
  811. getAdviceConfig().then(response => {
  812. if (response.data.state == 1) {
  813. this.deliveryWayOptions =
  814. response.data.data.drugways === null
  815. ? []
  816. : response.data.data.drugways
  817. this.executionFrequencyOptions =
  818. response.data.data.efs === null ? [] : response.data.data.efs
  819. }
  820. })
  821. }
  822. ,
  823. hide() {
  824. // this.clear()
  825. this.form.social_security_directory_code = ''
  826. this.form.prescription_mark = ''
  827. this.form.record_date = ''
  828. this.form.drug_remark = ''
  829. this.form.dose = ''
  830. this.form.dose_unit = ""
  831. this.form.min_number= ""
  832. this.form.min_unit = ""
  833. this.form.max_unit = ""
  834. this.form.min_price = ""
  835. this.form.prescribing_number_unit = ""
  836. this.dosageShow = false
  837. this.visible = false
  838. },
  839. getValue: function() {
  840. const form = {}
  841. form['id'] = this.form.id
  842. form['drug_name'] = this.form.drug_name
  843. form['pinyin'] = this.form.pinyin
  844. form['wubi'] = this.form.wubi
  845. form['drug_alias'] = this.form.drug_alias
  846. form['drug_alias_pinyin'] = this.form.drug_alias_pinyin
  847. form['drug_alias_wubi'] = this.form.drug_alias_wubi
  848. form['drug_category'] = this.form.drug_category
  849. form['drug_spec'] = this.form.drug_spec
  850. form['drug_type'] = this.form.drug_type
  851. form['drug_stock_limit'] = this.form.drug_stock_limit
  852. form['drug_origin_place'] = this.form.drug_origin_place
  853. form['drug_dosage_form'] = this.form.drug_dosage_form
  854. form['medical_insurance_level'] = this.form.medical_insurance_level
  855. form['max_unit'] = this.form.max_unit
  856. form['min_unit'] = this.form.min_unit
  857. form['unit_matrixing'] = this.form.unit_matrixing
  858. form['retail_price'] = this.form.retail_price
  859. form['last_price'] = this.form.last_price
  860. form['drug_control'] = this.form.drug_control
  861. form['number'] = this.form.number
  862. form['drug_dose'] = this.form.drug_dose
  863. form['drug_dose_unit'] = this.form.drug_dose_unit
  864. form['medical_insurance_number'] = this.form.medical_insurance_number
  865. form['provinces_code'] = this.form.provinces_code
  866. form['manufacturer'] = this.form.manufacturer
  867. form['pharmacology_category'] = this.form.pharmacology_category
  868. form['statistics_category'] = this.form.statistics_category
  869. form['code'] = this.form.code
  870. form['is_special_diseases'] = this.form.is_special_diseases
  871. form['is_record'] = this.form.is_record
  872. form['agent'] = this.form.agent
  873. form['drug_status'] = this.drug_status.join(',')
  874. form['limit_remark'] = this.form.limit_remark
  875. form['delivery_way'] = this.form.delivery_way
  876. form['execution_frequency'] = this.form.execution_frequency
  877. form['single_dose'] = this.form.single_dose
  878. form['prescribing_number'] = this.form.prescribing_number
  879. form['label'] = this.form.label
  880. form['sort'] = this.form.sort
  881. form['is_use_doctor_advice'] = this.form.is_use_doctor_advice
  882. form['is_default'] = this.form.is_default
  883. form['is_charge_predict'] = this.form.is_charge_predict
  884. form['is_statistics_work'] = this.form.is_statistics_work
  885. form['is_charge_use'] = this.form.is_charge_use
  886. form['drug_code'] = this.form.drug_code
  887. form['drug_classify'] = this.form.drug_classify
  888. form['dealer'] = this.form.dealer
  889. form['prescription_mark'] = this.form.prescription_mark
  890. form['social_security_directory_code'] = this.form.social_security_directory_code
  891. form['record_date'] = this.form.record_date
  892. form['drug_remark'] = this.form.drug_remark
  893. form['hosp_appr_flag'] = this.form.hosp_appr_flag
  894. form['lmt_used_flag'] = this.form.lmt_used_flag
  895. form['total'] = this.form.total
  896. form['min_number'] = this.form.min_number
  897. form["drug_day"] = this.form.drug_day
  898. form['dose'] = this.form.dose
  899. form['dose_unit'] = this.form.dose_unit
  900. form['min_price'] = this.form.min_price
  901. form['prescribing_number_unit'] = this.form.prescribing_number_unit
  902. form['specification_name'] = this.form.specification_name
  903. form['is_user'] = this.form.is_user
  904. form['sum_count'] = this.form.sum_count
  905. form['sum_in_count'] = this.form.sum_in_count
  906. form['is_pharmacy'] = this.form.is_pharmacy
  907. form['bbx01'] = this.form.bbx01
  908. form['bby01'] = this.form.bby01
  909. return form
  910. },
  911. getlist() {
  912. var params = {
  913. page: this.page,
  914. limit: this.limit
  915. }
  916. getManufacturerList(params).then(response => {
  917. var manufacturerList = response.data.data.manufacturer
  918. this.manufacturerList = manufacturerList
  919. })
  920. },
  921. GetAllConfig() {
  922. GetAllConfig().then(response => {
  923. if (response.data.state == 0) {
  924. this.$message.error(response.data.msg)
  925. return false
  926. } else {
  927. this.dealer = response.data.data.dealer
  928. // console.log('经销商', this.dealer)
  929. }
  930. })
  931. },
  932. getInitializtion(){
  933. getInitializtion().then(response=>{
  934. if(response.data.state ==1){
  935. var drugCategoryList = response.data.data.drugCategoryList
  936. this.drugCategoryList = drugCategoryList
  937. var drugTypeList = response.data.data.drugTypeList
  938. this.drugTypeList = drugTypeList
  939. var drugDosageFormList = response.data.data.drugDosageFormList
  940. this.drugDosageFormList = drugDosageFormList
  941. var medicalInsuranceLevelList = response.data.data.medicalInsuranceLevelList
  942. this.medicalInsuranceLevelList = medicalInsuranceLevelList
  943. var drugControlList = response.data.data.drugControlList
  944. this.drugControlList = drugControlList
  945. var drugClassifyList = response.data.data.drugClassifyList
  946. this.drugClassifyList = drugClassifyList
  947. var statisticsCategoryList = response.data.data.statisticsCategoryList
  948. this.statisticsCategoryList = statisticsCategoryList
  949. var pharmacologyCategoryList = response.data.data.pharmacologyCategoryList
  950. this.pharmacologyCategoryList = pharmacologyCategoryList
  951. }
  952. })
  953. },
  954. // changeDoseUnit(val){
  955. // if(val == this.form.min_unit){
  956. // // this.form.dose = 1
  957. // this.form.min_number = 1
  958. // this.dosageShow = true
  959. // }
  960. // if(val !=this.form.min_unit){
  961. // this.dosageShow = false
  962. // }
  963. // var arr = getDataConfig('hemodialysis','units')
  964. // this.unitList = []
  965. // for(let i=0;i<arr.length;i++){
  966. // if(this.form.min_unit == arr[i].name){
  967. // this.unitList.push(arr[i])
  968. // }
  969. // if(val == arr[i].name){
  970. // this.unitList.push(arr[i])
  971. // }
  972. // let idArr = []
  973. // this.unitList.map(item => {
  974. // idArr.push(item.id)
  975. // })
  976. // if(idArr.indexOf(this.form.drug_dose_unit) == -1){
  977. // if(this.form.drug_dose_unit == arr[i].id){
  978. // this.unitList.push(arr[i])
  979. // }
  980. // }
  981. // }
  982. // let ojb = {};
  983. // this.unitList = this.unitList.reduce(function(prevArr, currentItem) {
  984. // //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  985. // ojb[currentItem.name] ? '' : ojb[currentItem.name] = true && prevArr.push(currentItem);
  986. // return prevArr
  987. // }, [])
  988. // },
  989. // changeMinUnit(val){
  990. // if(val == this.form.dose_unit){
  991. // // this.form.dose = 1
  992. // this.form.min_number = 1
  993. // this.dosageShow = true
  994. // }else{
  995. // this.dosageShow = false
  996. // }
  997. // // if(val != this.form.max_unit){
  998. // // this.dosageShow = false
  999. // // }
  1000. // if(val == this.form.max_unit){
  1001. // this.form.min_number = 1
  1002. // this.minNumberShow = true
  1003. // }else{
  1004. // this.minNumberShow = false
  1005. // }
  1006. // // if(this.form.dosage == "" || this.form.max_unit == ""){
  1007. // // this.form.min_number = 1
  1008. // // }
  1009. // var arr = getDataConfig('hemodialysis','units')
  1010. // this.unitList = []
  1011. // this.packingUnit = []
  1012. // for(let i=0;i<arr.length;i++){
  1013. // if(val == arr[i].name){
  1014. // this.unitList.push(arr[i])
  1015. // this.packingUnit.push(arr[i])
  1016. // }
  1017. // if(this.form.max_unit == arr[i].name){
  1018. // this.unitList.push(arr[i])
  1019. // this.packingUnit.push(arr[i])
  1020. // }
  1021. // if(this.form.drug_dose_unit == arr[i].id){
  1022. // this.unitList.push(arr[i])
  1023. // }
  1024. // if(this.form.prescribing_number_unit == arr[i].id){
  1025. // this.packingUnit.push(arr[i])
  1026. // }
  1027. // let idArr = []
  1028. // this.unitList.map(item => {
  1029. // idArr.push(item.id)
  1030. // })
  1031. // if(idArr.indexOf(this.form.drug_dose_unit) == -1){
  1032. // if(this.form.drug_dose_unit == arr[i].id){
  1033. // this.unitList.push(arr[i])
  1034. // }
  1035. // }
  1036. // let packingIdArr = []
  1037. // this.packingUnit.map(item => {
  1038. // packingIdArr.push(item.id)
  1039. // })
  1040. // if(packingIdArr.indexOf(this.form.prescribing_number_unit) == -1){
  1041. // if(this.form.prescribing_number_unit == arr[i].id){
  1042. // this.packingUnit.push(arr[i])
  1043. // }
  1044. // }
  1045. // }
  1046. // let ojb = {};
  1047. // this.unitList = this.unitList.reduce(function(prevArr, currentItem) {
  1048. // //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  1049. // ojb[currentItem.name] ? '' : ojb[currentItem.name] = true && prevArr.push(currentItem);
  1050. // return prevArr
  1051. // }, [])
  1052. // let newojb = {};
  1053. // this.packingUnit = this.packingUnit.reduce(function(prevArr, currentItem) {
  1054. // //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  1055. // newojb[currentItem.name] ? '' : newojb[currentItem.name] = true && prevArr.push(currentItem);
  1056. // return prevArr
  1057. // }, [])
  1058. // },
  1059. // changeMaxUnit(val){
  1060. // if(val == this.form.min_unit){
  1061. // this.form.min_number = 1
  1062. // this.minNumberShow = true
  1063. // }else{
  1064. // this.minNumberShow = false
  1065. // }
  1066. // var arr = getDataConfig('hemodialysis','units')
  1067. // this.packingUnit = []
  1068. // for(let i=0;i<arr.length;i++){
  1069. // if(val == arr[i].name){
  1070. // this.packingUnit.push(arr[i])
  1071. // }
  1072. // if(this.form.min_unit == arr[i].name){
  1073. // this.packingUnit.push(arr[i])
  1074. // }
  1075. // let packingIdArr = []
  1076. // this.packingUnit.map(item => {
  1077. // packingIdArr.push(item.id)
  1078. // })
  1079. // if(packingIdArr.indexOf(this.form.prescribing_number_unit) == -1){
  1080. // if(this.form.prescribing_number_unit == arr[i].id){
  1081. // this.packingUnit.push(arr[i])
  1082. // }
  1083. // }
  1084. // }
  1085. // let newojb = {};
  1086. // this.packingUnit = this.packingUnit.reduce(function(prevArr, currentItem) {
  1087. // //利用对象的键名无法重复的特点,mch_id是唯一区别的属性值
  1088. // newojb[currentItem.name] ? '' : newojb[currentItem.name] = true && prevArr.push(currentItem);
  1089. // return prevArr
  1090. // }, [])
  1091. // }
  1092. }, watch: {
  1093. visible(val) {
  1094. // this.form = this.formValue
  1095. }
  1096. },
  1097. created() {
  1098. this.org_id = this.$store.getters.xt_user.org.id
  1099. console.log("机构ID",this.org_id)
  1100. this.getInitializtion()
  1101. //获取所有经销商
  1102. this.GetAllConfig()
  1103. this.getlist()
  1104. }
  1105. }
  1106. </script>
  1107. <style lang="scss">
  1108. .addDrugsDialog {
  1109. .el-dialog__body {
  1110. padding-top: 0px;
  1111. }
  1112. .noMargin{
  1113. .el-form-item__content{
  1114. margin-left: 0 !important;
  1115. }
  1116. }
  1117. }
  1118. </style>