华西海圻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.
 
 
 
 

120 lines
3.2 KiB

<template>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="$t(title)" @close="onCancel" :visible.sync="visible" append-to-body width="80%">
<SelectTable ref="selectSjRef" :columns="columns"
:selectedId="selectedId"
:searchForm="searchForm"
:listApi="listApi"
:selectedCode="selectedCode"
@radioSelect="handleSelect"/>
<template slot="footer" class="dialog-footer">
<el-button @click="onCancel">{{$t('form.cancel')}}</el-button>
<el-button :disabled="isDisabled" type="primary" @click="onSubmit">{{$t('form.saveConfirm')}}</el-button>
</template>
</el-dialog>
</template>
<script>
import SelectTable from '@/components/Template/SelectTable.vue';
import SelectDept from "@/views/business/comps/select/SelectDept";
import { public_yqList } from '@/api/business/public/public';
export default {
name: "SelectInstrumentDialog",
components: {
SelectTable,
SelectDept
},
props: {
type: {
type: String,
default: "",
},
title: {
type: String,
default: "选择仪器",
},
selectedCode: {
type: String,
default: "bh",
},
searchForm: {
type: Object,
default: () => {
return {
mc: {
label:'仪器名称',
},
bh: {
label:'仪器编号',
},
ly: {
label:'来源',
},
}
},
},
columns: {
type: Array,
default: () => [
{
prop: 'mc',
label: '仪器名称',
},
{
prop: 'bh',
label: '仪器编号',
},
{
prop: 'ly',
label: '来源(厂家)',
},
{
prop: 'jzrq',
label: '下次校准时间',
},
],
},
},
data() {
return {
visible:false,
listApi:public_yqList,
selectedId: "",
currentRow: {},
}
},
computed: {
isDisabled() {
return !this.selectedId;
}
},
methods: {
show(){
this.visible=true
setTimeout(() => {
this.$refs.selectSjRef.show()
}, 500);
},
onCancel() {
this.visible = false
this.$emit('cancel');
},
onSubmit() {
let row = this.currentRow;
this.$emit('change', this.selectedId,row);
this.visible = false;
},
handleSelect(code,row) {
this.selectedId = code;
this.currentRow = row;
},
}
}
</script>
<style lang="scss" scoped>
.header-row{
display: flex;
align-items: center;
padding: 20px 0;
}
</style>