123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685 |
- <template>
- <el-dialog width="870px"
- :title="titles"
- :visible.sync="visible"
- :close-on-click-modal="isClose"
- :close-on-press-escape="isClose"
- :before-close="_close">
-
- <el-tabs v-model="activeName">
- <el-tab-pane label="基础数据" name="first">
- <div>
- <el-form :model="form" ref="form" :rules="rules" label-width="100px"
- style="display: flex;flex-wrap: wrap;justify-content: space-between;">
- <el-form-item label="耗材名称 : " prop="good_name" style="width:100%">
- <el-input v-model="form.good_name" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="耗材种类 : " prop="good_kind">
- <el-select v-model="form.good_kind" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="(item,index) in goodKindList"
- :key="index"
- :label="item.name"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="耗材类型 : " prop="good_type_id">
- <el-select v-model="form.good_type_id" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in form.goodType"
- :key="index"
- :label="item.type_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 medicalInsuranceLevelList"
- :key="index"
- :label="item.name"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
-
-
-
- <el-form-item label="规格型号 : " prop="specification_name">
- <el-input v-model="form.specification_name" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item prop="packing_unit" label="包装单位:">
- <el-select v-model="form.packing_unit" style="width:160px;" placeholder="包装单位" @change="changePackingUnit">
- <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="manufacturer" style="width:100%">
-
- <el-select v-model="form.manufacturer" style="width:100%;" filterable placeholder="请选择">
- <el-option
- v-for="(item,index) in form.manufacturers"
- :key="index"
- :label="item.manufacturer_name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <!-- <el-form-item label="单位 : " prop="good_unit">
- <el-select v-model="form.good_unit" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in form.goodUnit"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item> -->
- <el-form-item label="零售价 : " prop="retail_price">
- <el-input v-model="form.packing_price" 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="buy_price">
- <el-input v-model="form.buy_price" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </el-form-item>
- <el-form-item label="默认单次用量:" prop="name">
- <el-input v-model="form.default_count" style="width:80px;" placeholder="" maxlength="30"></el-input>
- <el-select v-model="form.default_count_unit" style="width:80px;" placeholder="单次用量单位" @change="changeDefaultCountUnit">
- <el-option
- v-for="(item,index) in unitList"
- :key="index"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="库存警戒 : " prop="stock_warn_count">
- <el-input v-model="form.stock_warn_count" style="width:160px;" placeholder="" maxlength="30"></el-input>
- </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="is_special_diseases">
- <el-select v-model="form.is_special_diseases" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item in options"
- :key="item.value"
- :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 in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </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 statisticsCategoryList"
- :key="index"
- :label="item.name"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
-
- <el-form-item label="状态 : " prop="good_status">
- <el-checkbox-group v-model="good_status">
- <el-checkbox label="停用">停用</el-checkbox>
- <el-checkbox label="收费">收费</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
-
- <el-form-item label="社保目录编码:" >
- <el-input v-model="form.social_security_directory_code" style="width:180px"></el-input>
- </el-form-item>
-
- <el-form-item label="生产地类别:">
- <el-select v-model="form.production_type" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item in optionsOne"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
-
-
-
- <el-form-item label="特殊医用材料标志:">
- <el-select v-model="form.special_medical " style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
-
-
-
- <el-form-item label="经销商 : " style="width:100%">
-
- <el-select v-model="form.dealer" style="width:100%;" filterable placeholder="请选择">
- <el-option
- v-for="(item,index) in dealer"
- :key="index"
- :label="item.dealer_name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
-
-
- <el-form-item label="备注 : " prop="name" style="width:100%;">
- <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.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="sign">
- <el-select v-model="form.sign" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item,index in getDictionaryDataConfig('system','sign')"
- :key="index"
- :label="item.name"
- :value="item.id">
- </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 in options"
- :key="item.value"
- :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 in options"
- :key="item.value"
- :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 in options"
- :key="item.value"
- :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 in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </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_doctor_use">
- <el-select v-model="form.is_doctor_use" style="width:160px;" placeholder="请选择">
- <el-option
- v-for="item in options"
- :key="item.value"
- :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="耗材编号:" prop="good_number">
- <el-input v-model="form.good_number" 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 { getManufacturerList,GetAllConfig,getInitializtion } from "@/api/stock";
-
- export default {
- name: 'goodInfoDailog',
- data() {
- return {
- visible: false,
- formTitle: '',
- activeName: 'first',
- options: [{
- value: '1',
- label: '是'
- }, {
- value: '2',
- label: '否'
- }],
- optionsOne: [{
- value: '1',
- label: '国内'
- }, {
- value: '2',
- label: '国外'
- }],
- good_unit: '',
- isClose: false,
- good_status: [],
- size: 11,
- visibility: false,
- form: {
- good_id: '',
- specification_name: '',
- buy_price: '',
- sell_price: '',
- remark: '',
- manufacturer: '',
- good_type_id: '',
- dealer: '',
- expiry_date_warn_day_count: '',
- stock_warn_count: '',
- is_reuse: '2',
- good_name: '',
- pinyin: '',
- wubi: '',
- good_kind: '',
- medical_insurance_level: '',
- good_unit: '',
- retail_price: '',
- medical_insurance_number: '',
- is_special_diseases: '',
- is_record: '',
- statistics_category: '',
- agent: '',
- good_status: '',
- default_count:1,
- sign: '',
- is_default: '',
- is_charge_use: '',
- is_charge_predict: '',
- is_statistics_work: '',
- sort: '',
- is_doctor_use: '',
- good_number: '',
- social_security_directory_code:"",
- production_type:"",
- special_medical:"",
- min_number:"",
- packing_unit:"",
- packing_price:'',
- default_count_unit:"",
- min_unit:"",
- total:"",
- },
-
- rules: {
- specification_name: [
- { required: true, message: '请输入规格型号', trigger: 'blur' }
- ],
- good_type_id: [
- { required: true, message: '请选择商品类型', trigger: 'change' }
- ],
- good_name: [
- { required: true, message: '请输入耗材名称', trigger: 'blur' }
- ],
- packing_unit:[
- {required:true,message:"请输入包装单位",trigger:'blur'}
- ],
- good_kind: [
- { required: true, message: '请选择耗材种类', trigger: 'change' }
- ],
- medical_insurance_level: [
- { required: true, message: '请输入医保等级', trigger: 'blur' }
- ],
- manufacturer: [
- { required: true, message: '请选择生产厂商', trigger: 'blur' }
- ], good_unit: [
- { required: true, message: '请选择单位', trigger: 'blur' }
- ],social_security_directory_code:[
- {required:true,message:"请填写社保目录编码",trigger:'blur'}
- ],production_type:[
- {required:true,message:"请填写生产地类别",trigger:"blur"}
- ],special_medical:[
- {required:true,message:"请填写特殊医院材料标志",trigger:"blur"}
- ]
- },
- dealer:[],
- goodKindList:[],
- medicalInsuranceLevelList:[],
- statisticsCategoryList:[],
- unitList:[],
- showMinNumber:false,
- }
- },
- props: {
-
- titles: {
- type: String,
- default: ''
- },
- formValue: {
- type: Object
- },
- isCreated: {
- type: Number,
- default: 1
-
- }
-
- },
- methods: {
- getDictionaryDataConfig(module, filed_name) {
- return getDictionaryDataConfig(module, filed_name)
- },
- getDataConfig(module, filed_name){
- return getDataConfig(module, filed_name)
- },
- show(id,form) {
- console.log("form",form)
-
- if(form!=undefined){
- this.unitList = []
- var arr = getDataConfig('hemodialysis','units')
- for(let i=0;i<arr.length;i++){
- if(form.min_unit == arr[i].name){
- this.unitList.push(arr[i])
- }
- }
- for(let j=0;j<arr.length;j++){
- if(form.packing_unit == arr[j].name){
- this.unitList.push(arr[j])
- }
- }
- console.log("列表222",this.unitList)
- }
-
- this.visible = true
- this.good_status =[]
- this.getlist()
- this.GetAllConfig()
- this.getInitializtion()
- if (id == 0) {
- var tempform = {
- good_id: '',
- specification_name: '',
- buy_price: '',
- sell_price: '',
- remark: '',
- manufacturer: '',
- good_type_id: '',
- dealer: '',
- expiry_date_warn_day_count: '',
- stock_warn_count: '',
- is_reuse: '2',
- good_name: '',
- pinyin: '',
- wubi: '',
- good_kind: '',
- medical_insurance_level: '',
- good_unit: '',
- retail_price: '',
- medical_insurance_number: '',
- is_special_diseases: '',
- is_record: '',
- statistics_category: '',
- agent: '',
- good_status: '',
- default_count: '',
- sign: '',
- is_default: '',
- is_charge_use: '',
- is_charge_predict: '',
- is_statistics_work: '',
- sort: '',
- is_doctor_use: '',
- good_number: '',
- min_number:"",
- packing_unit:"",
- packing_price:'',
- default_count_unit:"",
- min_unit:"",
- total:"",
- }
- this.good_status = []
- for (let key in tempform) {
- this.form[key] = tempform[key]
- }
- } else {
- for (let key in form) {
- this.form[key] = form[key]
- }
- if (this.form.good_status.length > 0) {
- for (let i = 0; i < this.form.good_status.split(",").length; i++) {
- this.good_status.push(this.form.good_status.split(',')[i])
- }
- }
- }
-
- }, hide() {
- this.visible = false
- },
- cancle: function(formName) {
- this.$emit('dialog-cancle', this.getValue())
- },
- comfirm: function(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- this.$emit('dialog-comfirm', this.getValue())
- }
- })
- },
- _close: function(done) {
- // this.clear()
- // done()
- this.$confirm('是否保存')
- .then(_ => {
- this.comfirm('form')
- // done();
- })
- .catch(_ => {
- done()
- });
- },
- getValue: function() {
-
- const form = {}
- form['specification_name'] = this.form.specification_name
- form['good_unit'] = this.form.good_unit
- form['buy_price'] = this.form.buy_price
- form['sell_price'] = this.form.sell_price
- form['remark'] = this.form.remark
- form['manufacturer'] = this.form.manufacturer
- form['dealer'] = this.form.dealer
- form['expiry_date_warn_day_count'] = this.form.expiry_date_warn_day_count
- form['stock_warn_count'] = this.form.stock_warn_count
- form['is_reuse'] = this.form.is_reuse
- form['isCreated'] = this.isCreated
- form['good_id'] = this.form.good_type_id
- form['good_name'] = this.form.good_name
- form['pinyin'] = this.form.pinyin
- form['wubi'] = this.form.wubi
- form['good_kind'] = this.form.good_kind
- form['medical_insurance_level'] = this.form.medical_insurance_level
- form['manufacturer'] = this.form.manufacturer
- form['retail_price'] = this.form.retail_price
- form['medical_insurance_number'] = this.form.medical_insurance_number
- form['is_special_diseases'] = this.form.is_special_diseases
- form['is_record'] = this.form.is_record
- form['statistics_category'] = this.form.statistics_category
- // form['good_status'] = this.form.good_status
- form['default_count'] = this.form.default_count
- form['sign'] = this.form.sign
- form['is_default'] = this.form.is_default
- form['is_charge_use'] = this.form.is_charge_use
- form['is_charge_predict'] = this.form.is_charge_predict
- form['is_statistics_work'] = this.form.is_statistics_work
- form['sort'] = this.form.sort
- form['is_doctor_use'] = this.form.is_doctor_use
- form['agent'] = this.form.agent
- form['good_number'] = this.form.good_number
- form['good_status'] = this.good_status.join(',')
- form['social_security_directory_code'] = this.form.social_security_directory_code
- form['production_type'] = this.form.production_type
- form['special_medical'] = this.form.special_medical
- form['min_unit'] = this.form.min_unit
- form['min_number'] = this.form.min_number
- form["packing_unit"]= this.form.packing_unit
- form["packing_price"] = this.form.packing_price
- form["default_count_unit"] = this.form.default_count_unit
- form["total"] = this.form.total
-
- return form
- }, changeSelected: function(val) {
- console.log(val)
- },
- getlist(){
- var params = {
- page:this.page,
- limit:this.limit
- }
-
- getManufacturerList(params).then(response=>{
- var manufacturerList = response.data.data.manufacturer
-
- this.manufacturerList = manufacturerList
- })
- },
- GetAllConfig(){
- GetAllConfig().then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- return false;
- } else {
- this.dealer = response.data.data.dealer;
-
- }
- });
- },
- getInitializtion(){
- getInitializtion().then(response=>{
- if(response.data.state == 1){
- var goodKindList = response.data.data.goodKindList
- console.log("耗材种类",goodKindList)
- this.goodKindList = goodKindList
- var medicalInsuranceLevelList = response.data.data.medicalInsuranceLevelList
- console.log("医保等级",medicalInsuranceLevelList)
- this.medicalInsuranceLevelList = medicalInsuranceLevelList
- var statisticsCategoryList = response.data.data.statisticsCategoryList
- console.log("统计分类",statisticsCategoryList)
- this.statisticsCategoryList = statisticsCategoryList
-
- }
- })
- },
- changeMinUnit(val){
- if(this.form.packing_unit == val){
- this.form.min_number = 1
- this.showMinNumber = true
- }else{
- this.showMinNumber = false
- }
- var arr = getDataConfig('hemodialysis','units')
- for(let i=0;i<arr.length;i++){
- if(val == arr[i].name){
- this.unitList.push(arr[i])
- }
- }
-
- },
- changePackingUnit(val){
- if(this.form.min_unit == val){
- this.form.min_number = 1
- this.showMinNumber = true
- }else{
- this.showMinNumber = false
- }
- var arr = getDataConfig('hemodialysis','units')
- for(let i=0;i<arr.length;i++){
- if(val == arr[i].name){
- this.unitList.push(arr[i])
- }
- }
- },
- changeDefaultCountUnit(val){
- console.log("val2222",val)
- this.form.default_count_unit = ''
- this.form.default_count_unit = val
- }
- },
- watch: {
- visible(val) {
- this.form = this.formValue
- this.good_unit = this.formValue.good_unit
-
- if (this.isCreated == 1) {
- this.good_unit = ''
- }
- }
- },
- created(){
- this.getlist()
- //获取所有经销商
- this.GetAllConfig()
- this.getInitializtion()
- }
- }
-
- </script>
-
- <style lang="scss">
- .noMargin{
- .el-form-item__content{
- margin-left: 0 !important;
- }
- }
- </style>
|