addDrugs.vue 52KB

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