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

addDrugs.vue 52KB

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