华西海圻ELN前端工程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

114 lines
3.0 KiB

<template>
<div>
<div style="display: flex;">
<el-select v-model="type" :placeholder="$t('form.placeholderSelect')" @change="typeChange" style="width: 200px;">
<el-option :label="$t('page.business.resource.resource.common.tj')" :value="1"></el-option>
<el-option :label="$t('page.business.resource.resource.common.zl')" :value="3"></el-option>
</el-select>
<template v-if="type == 1">
<el-input v-model="srz" :placeholder="$t('form.placeholderInput')" maxlength="20" @change="inputChange">
<template slot="append">{{ dw||'' }}
</template>
</el-input>
</template>
<template v-if="type == 3">
<div>
<el-input v-model="tpName" :placeholder="$t('form.xztp')" readonly @click.native="showSelectBalance"
style="width: 80px;" />
</div>
<div>
<el-input v-model="tpz" :placeholder="$t('form.placeholderInput')" maxlength="20" @change="tpzChange">
<template slot="append">{{ tpdw||'' }}
</template>
</el-input>
</div>
<div>
<el-button type="primary" @click="getBalanceValue">{{ $t('form.hqz') }}</el-button>
</div>
</template>
</div>
<SelectInstrumentDialog ref="selectInstrumentDialog" @change="selectInstrumentChange" />
</div>
</template>
<script>
import SelectInstrumentDialog from '@/views/business/comps/select/SelectInstrumentDialog';
import { getBalance } from "@/utils/tpph";
export default {
name: "SelectBalanceValue",
components: { SelectInstrumentDialog },
props: {
value: {
type: [Number, String],
default: ''
},
selectkey: {
type: String,
default: ''
},
dw: {
type: String,
default: ''
},
},
watch: {
value: {
immediate: true,
handler(v) {
this.tpz = v || ''
}
}
},
data() {
return {
type: '',
srz: '',
tpName: '',
tpz: '',
tpdw: '',
yq: {}
};
},
mounted() {
},
methods: {
showSelectBalance() {
this.$refs.selectInstrumentDialog.show()
},
selectInstrumentChange(val, row) {
this.tpName = row.mc
this.yq = row
},
async getBalanceValue() {
if (!this.yq || !this.yq.bh) {
this.$message.error('请选择仪器')
return
}
this.tpz = ''
let x = await getBalance({ yq: this.yq, dw: null })
if (x && x.success) {
this.tpz = x.value
this.tpdw = x.unit
} else {
this.$message.error(x.message || '获取值失败')
}
this.tpzChange()
},
tpzChange() {
this.$emit('change', { tpz: this.tpz, dw: this.tpdw,selectkey:this.selectkey})
this.$emit('input', this.tpz)
},
inputChange() {
this.$emit('change', { tpz: this.srz, dw: this.dw,selectkey:this.selectkey })
this.$emit('input', this.srz)
},
typeChange(){
this.$emit('change', null)
this.$emit('input', null)
this.srz=null
this.tpz=null
this.tpdw=null
}
}
};
</script>