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

addDrugs.vue 50KB

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