123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594 |
- <template>
- <el-dialog
- :title="formTitle"
- width="1000px"
- :visible.sync="visible"
- :before-close="_close"
- class="addDrugsDialog"
- >
- <el-tabs v-model="activeName" >
- <el-tab-pane label="基础数据" name="first">
- <div>
- <el-form :model="form" :rules="rules" ref="form" label-width="120px"
- style="display: flex;flex-wrap: wrap;justify-content: space-between;">
- <el-form-item label="药品名称 : " prop="drug_name" >
- <el-input v-model="form.drug_name" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="拼音 : " prop="pinyin" >
- <el-input v-model="form.pinyin" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="五笔 : " prop="wubi">
- <el-input v-model="form.wubi" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="药品别名 : " prop="drug_alias">
- <el-input v-model="form.drug_alias" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="别名拼音 : " prop="drug_alias_pinyin">
- <el-input v-model="form.drug_alias_pinyin" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="别名五笔 : " prop="drug_alias_wubi">
- <el-input v-model="form.drug_alias_wubi" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="药品类别 : " prop="drug_category" >
- <el-select v-model="form.drug_category" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','drug_category')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="药品规格 : " prop="drug_spec" >
- <el-input v-model="form.drug_spec" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="药品类型 : " prop="drug_type">
- <el-select v-model="form.drug_type" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','drug_type')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="库存警戒:" prop="drug_stock_limit" >
- <el-input v-model="form.drug_stock_limit" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="产地:" prop="drug_origin_place" >
- <el-input v-model="form.drug_origin_place" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="药品剂型 : " prop="drug_dosage_form" >
- <el-select v-model="form.drug_dosage_form" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','drug_dosage_form')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="医保等级 : " prop="medical_insurance_level" >
- <el-select v-model="form.medical_insurance_level" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','medical_insurance_level')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="最大单位 : " prop="max_unit" >
- <el-select v-model="form.max_unit" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDataConfig('hemodialysis','units')"
- :key="index"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="最小单位 : " prop="min_unit" >
- <el-select v-model="form.min_unit" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDataConfig('hemodialysis','units')"
- :key="index"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="单位换算 : " prop="unit_matrixing" >
- <el-input v-model="form.unit_matrixing" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="零售价(元) : " prop="retail_price" >
- <el-input v-model="form.retail_price" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="上次进价(元) : " prop="last_price" >
- <el-input v-model="form.last_price" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="开药控制 : " prop="drug_control">
- <el-select v-model="form.drug_control" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','drug_control')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="批准文号 : " prop="number">
- <el-input v-model="form.number" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="药物分类 : " prop="drug_classify" >
- <el-select v-model="form.drug_classify" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item, index in getDictionaryDataConfig('system','drug_classify')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="剂量 : " prop="drug_dose" >
- <el-input v-model="form.drug_dose" style="width:70px;margin-right:5px;" placeholder=""
- maxlength="30"></el-input>
- <el-select v-model="form.drug_dose_unit" style="width:80px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDataConfig('hemodialysis','units')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="医保编码 : " prop="medical_insurance_number">
- <el-input v-model="form.medical_insurance_number" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="生产厂商 : " prop="manufacturer" >
- <el-select v-model="form.manufacturer" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in manufacturers"
- :key="index"
- :label="item.manufacturer_name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="药理分类 : " prop="pharmacology_category">
- <el-select v-model="form.pharmacology_category" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','pharmacology_category')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="统计分类 : " prop="statistics_category">
- <el-select v-model="form.statistics_category" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','statistics_category')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="本位码 : " prop="code">
- <el-input v-model="form.code" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="是否特病目录:" prop="is_special_diseases">
- <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="是否备案 : " prop="is_record">
- <el-select v-model="form.is_record" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="代理商 : " prop="agent">
- <el-input v-model="form.agent" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="" style="display:none;">
- <el-input style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="状态 : " prop="drug_status">
- <el-checkbox-group v-model="drug_status">
- <el-checkbox label="停用">停用</el-checkbox>
- <el-checkbox label="贵重">贵重</el-checkbox>
- <el-checkbox label="收费">收费</el-checkbox>
- <el-checkbox label="库存管理" >库存管理</el-checkbox>
- <el-checkbox label="默认用药途径收费" >默认用药途径收费</el-checkbox>
- <el-checkbox label="注射类" >注射类</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="限制说明 : " prop="limit_remark" style="width:100%;">
- <el-input type="form.restrictions" :rows="2" placeholder="请输入内容" v-model="form.limit_remark"></el-input>
- </el-form-item>
- </el-form>
- </div>
- </el-tab-pane>
- <el-tab-pane label="扩展数据" name="second">
- <el-form :model="form" label-width="120px"
- style="display: flex;flex-wrap: wrap;justify-content: space-between;">
- <el-form-item label="默认给药途径:" prop="delivery_way">
- <el-select v-model="form.delivery_way" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item, index in deliveryWayOptions"
- :key="index"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="默认执行频率:" prop="execution_frequency">
- <el-select v-model="form.execution_frequency" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in executionFrequencyOptions"
- :key="index"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="默认单次用量:" prop="single_dose">
- <el-input v-model="form.single_dose" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="默认开药数量:" prop="prescribing_number">
- <el-input v-model="form.prescribing_number" style="width:160px;" placeholder=""
- maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="标签:" prop="label">
- <el-select v-model="form.label" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in sign"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="收费项目排序:" prop="sort">
- <el-input v-model="form.sort" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="是否常用医嘱:" prop="is_use_doctor_advice">
- <el-select v-model="form.is_use_doctor_advice" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="是否默认:" prop="is_default">
- <el-select v-model="form.is_default" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="是否收费预估项:" prop="is_charge_predict">
- <el-select v-model="form.is_charge_predict" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="是否统计工作量:" prop="is_statistics_work">
- <el-select v-model="form.is_statistics_work" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="是否收费常用项:" prop="is_charge_use">
- <el-select v-model="form.is_charge_use" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in options"
- :key="index"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="" style="visibility: hidden;">
- <el-input style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- </el-tabs>
-
-
- <span slot="footer" class="dialog-footer">
- <el-button @click="cancle('form')">取 消</el-button>
- <el-button type="primary" @click="comfirm('form')">保 存</el-button>
- </span>
- </el-dialog>
- </template>
-
- <script>
- import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
- import {
- getAdviceConfig,
- } from '@/api/advice'
- export default {
- data() {
- return {
- visible: false,
- formTitle: '',
- activeName: 'first',
- manufacturers:[],
- sign: [
- { id: 1, name: '透析模式' },
- { id: 2, name: '特殊护理' },
- { id: 3, name: '抗凝剂' },
- ],
- options: [{
- value: '1',
- label: '是'
- }, {
- value: '2',
- label: '否'
- }],
- deliveryWayOptions:[],
- executionFrequencyOptions:[],
- value: '',
- radio: '1',
- drug_status:[],
- form: {
- drug_name: '',//药品名称
- pinyin: '',//拼音
- wubi: '',//五笔输入法
- drug_alias: '',//药品别名
- drug_alias_pinyin: '',//别名拼音
- drug_alias_wubi: '',//别名五笔
- drug_category: '',//药品类别
- drug_spec: '',//药品规格
- drug_type: '',//药品类型
- drug_stock_limit: '',//库存警戒
- drug_origin_place: '',//产地
- drug_dosage_form: '',//药品剂型
- medical_insurance_level: '',//医保等级
- max_unit: '',//最大单位
- min_unit: '',//最小单位
- unit_matrixing: '',//单位换算
- retail_price: '',//零售价
- last_price: '',//上次进价
- drug_control: '',//开药控制
- number: '',//批准文号
- drug_classify: '',//药物分类
- drug_dose: '',//药品剂量
- drug_dose_unit:'',
- medical_insurance_number: '',//医保编号
- manufacturer:'', //生产产商
- pharmacology_category: '',//药理分类
- statistics_category: '',//统计分类
- code: '',//本位码
- is_special_diseases: '',//是否特病目录
- is_record: '',//是否备案
- agent: '',// 代理商
- drug_status: '',// 状态
- limit_remark: '',//限制说明
- delivery_way: '',//默认给药途径
- execution_frequency: '',//默认执行频率
- single_dose: '',//默认单次用量
- prescribing_number: '',//默认开药数量
- label: '',//标签
- sort: '',//收费项目排序
- is_use_doctor_advice: '',//是否常用医嘱
- is_default: '',//是否默认
- is_charge_predict: '',//是否收费预估项
- is_statistics_work: '',//是否统计工作量
- is_charge_use: '',//是否收费常用项
- drug_code:'',
- },
-
- rules: {
- drug_name: [{ required: true, message: '请填写药品名称', trigger: 'blur' }],
- pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
- wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
- drug_alias: [{ required: true, message: '请选择药品类别', trigger: 'change' }],
- drug_spec: [{ required: true, message: '请填写药品规格',trigger: 'blur' }],
- drug_type: [{ required: true, message: '请填写药品类型',trigger: 'blur' }],
- drug_stock_limit: [{ required: true, message: '请填写库存警戒',trigger: 'blur' }],
- drug_origin_place: [{ required: true, message: '请填写产地',trigger: 'blur' }],
- drug_dosage_form: [{ required: true, message: '请填写药品剂型',trigger: 'blur' }],
- medical_insurance_level: [{ required: true, message: '请选择医保等级',trigger: 'change' }],
- max_unit: [{ required: true, message: '请填写最大单位',trigger: 'change' }],
- min_unit: [{ required: true, message: '请填写最小单位',trigger: 'change' }],
- unit_matrixing: [{ required: true, message: '请填写单位换算',trigger: 'blur' }],
- retail_price: [{ required: true, message: '请填写零售价',trigger: 'blur' }],
- last_price: [{ required: true, message: '请填写上次进价',trigger: 'blur' }],
- drug_classify: [{ required: true, message: '请选择药物分类',trigger: 'change' }],
- drug_dose: [{ required: true, message: '请填写剂量',trigger: 'blur' }],
- manufacturer: [{ required: true, message: '请选择生产产商',trigger: 'change' }]
- }
- }
- },
- props: {
- manufacturers:{
- type:Array
- },
- titles: {
- type: String,
- default: ''
- },
- formValue: {
- type: Object
- },
- isCreated: {
- type: Number,
- default: 1
- }
-
- },
- methods: {
- cancle: function(formName) {
- this.$emit('dialog-cancle', this.getValue())
- },
- comfirm: function(formName) {
- this.$refs[formName].validate((valid) => {
- console.log(valid)
- if (valid) {
- console.log( this.getValue())
- this.$emit('dialog-comfirm', this.getValue())
- }
- })
- },
- getDictionaryDataConfig(module, filed_name) {
- return getDictionaryDataConfig(module, filed_name)
-
- },
- getDataConfig(module, filed_name){
- return getDataConfig(module, filed_name)
- },
- _close: function(done) {
- // this.clear()
- done()
- },
- clear: function() {
- this.form.id = 0
- this.form.name = ''
- this.form.intro = ''
- },
- show(id,obj) {
- // this.clear()
- this.visible = true
- if (id == 0) {
- this.formTitle = '新增'
- this.form['id'] = 0
- for(let key in obj){
- this.form[key] = obj[key]
- }
-
- } else {
- for(let key in obj){
- this.form[key] = obj[key]
- }
-
- this.form.drug_classify = parseInt(this.form.drug_classify)
- this.form['id'] = id
- this.drug_status = []
- if(this.form.drug_status.length > 0){
- for (let i = 0; i < this.form.drug_status.split(",").length; i++){
- this.drug_status.push(this.form.drug_status.split(",")[i])
- }
- console.log(this.drug_status)
- }
-
- this.formTitle = '编辑'
-
-
- }
- this.getAdviceConfig()
-
- },getAdviceConfig() {
- getAdviceConfig().then(response => {
- if (response.data.state == 1) {
- this.deliveryWayOptions =
- response.data.data.drugways === null
- ? []
- : response.data.data.drugways
-
- this.executionFrequencyOptions =
- response.data.data.efs === null ? [] : response.data.data.efs
- }
- })
-
- }
- ,
- hide() {
- // this.clear()
- this.visible = false
- },getValue: function() {
- const form = {}
- form['id'] = this.form.id
- form['drug_name'] = this.form.drug_name
- form['pinyin'] = this.form.pinyin
- form['wubi'] = this.form.wubi
- form['drug_alias'] = this.form.drug_alias
- form['drug_alias_pinyin'] = this.form.drug_alias_pinyin
- form['drug_alias_wubi'] = this.form.drug_alias_wubi
- form['drug_category'] = this.form.drug_category
- form['drug_spec'] = this.form.drug_spec
- form['drug_type'] = this.form.drug_type
- form['drug_stock_limit'] = this.form.drug_stock_limit
- form['drug_origin_place'] = this.form.drug_origin_place
- form['drug_dosage_form'] = this.form.drug_dosage_form
- form['medical_insurance_level'] = this.form.medical_insurance_level
- form['max_unit'] = this.form.max_unit
- form['min_unit'] = this.form.min_unit
- form['unit_matrixing'] = this.form.unit_matrixing
- form['retail_price'] = this.form.retail_price
- form['last_price'] = this.form.last_price
- form['drug_control'] = this.form.drug_control
- form['number'] = this.form.number
- form['drug_dose'] = this.form.drug_dose
- form['drug_dose_unit'] = this.form.drug_dose_unit
- form['medical_insurance_number'] = this.form.medical_insurance_number
- form['manufacturer'] = this.form.manufacturer
- form['pharmacology_category'] = this.form.pharmacology_category
- form['statistics_category'] = this.form.statistics_category
- form['code'] = this.form.code
- form['is_special_diseases'] = this.form.is_special_diseases
- form['is_record'] = this.form.is_record
- form['agent'] = this.form.agent
- form['drug_status'] = this.drug_status.join(",")
- form['limit_remark'] = this.form.limit_remark
- form['delivery_way'] = this.form.delivery_way
- form['execution_frequency'] = this.form.execution_frequency
- form['single_dose'] = this.form.single_dose
- form['prescribing_number'] = this.form.prescribing_number
- form['label'] = this.form.label
- form['sort'] = this.form.sort
- form['is_use_doctor_advice'] = this.form.is_use_doctor_advice
- form['is_default'] = this.form.is_default
- form['is_charge_predict'] = this.form.is_charge_predict
- form['is_statistics_work'] = this.form.is_statistics_work
- form['is_charge_use'] = this.form.is_charge_use
- form['drug_code'] = this.form.drug_code
- form['drug_classify'] = this.form.drug_classify
-
-
-
- return form
- },
- }, watch: {
- visible(val) {
- // this.form = this.formValue
-
- }
- }
- }
- </script>
-
- <style lang="scss">
- .addDrugsDialog{
- .el-dialog__body{
- padding-top: 0px;
- }
- }
- </style>
|