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

addDrugs.vue 44KB

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