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

addDrugs.vue 51KB

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