|
|
- <template>
- <el-dialog :title="title" @close="onCancel" :visible.sync="visible" append-to-body>
- <!-- 麻醉/精神药品配制/领取申请单 -->
- <div v-if="type === 'MJYLQSQD'" class="header-row">
- <el-radio-group v-model="radio">
- <el-radio :label="1">试验</el-radio>
- <el-radio :label="2">
- 部门
- </el-radio>
- </el-radio-group>
- <el-select v-model="depart" filterable placeholder="请选择">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </div>
-
- <SelectTable v-if = "isShowTable" :columns="columns"
- :selectedId="selectedId"
- :searchForm="searchForm"
- :listApi="listApi"
- @radioSelect="handleSelect"/>
- <template slot="footer" class="dialog-footer">
- <el-button @click="onCancel">取消</el-button>
- <el-button :disabled="isDisabled" type="primary" @click="onSubmit">确定</el-button>
- </template>
- </el-dialog>
- </template>
-
- <script>
- import SelectTable from '@/components/Template/SelectTable.vue';
- import { getReagentList } from '@/api/template';
-
- export default {
- components: {
- SelectTable,
- },
- props: {
- type: {
- type: String,
- default: "",
- },
- visible: {
- type: Boolean,
- default: false,
- },
- title: {
- type: String,
- default: "选择试剂",
- },
- listApi: {
- type: Function,
- default: getReagentList,
- },
- searchForm: {
- type: Object,
- default: () => {
- return {
- name: {
- label:"试剂名称",
- },
- code: {
- label:"试剂编号",
- },
- vol: {
- label:"所属试验",
- },
- }
- },
- },
- columns: {
- type: Array,
- default: () => [
- {
- prop: 'name',
- label: '试剂名称',
- },
- {
- prop: 'code',
- label: '试剂编号',
- },
- {
- prop: 'vol',
- label: '试剂浓度',
- },
- {
- prop: 'unit',
- label: '浓度单位',
- },
- {
- prop: 'expireDate',
- label: '失效日',
- },
- {
- prop: 'ss',
- label: '所属试验',
- },
- ],
- },
- },
- data() {
- return {
- selectedId: "",
- currentRow: {},
- radio:1,
- depart:"",
- options:[
- {
- value:1,
- label:"部门1",
- },
- {
- value:2,
- label:"部门",
- },
- ]
- }
- },
- computed: {
- isShowTable() {
- if(this.type === 'MJYLQSQD') {
- return this.radio === 1;
- }
- return true;
- },
- isDisabled() {
- if(this.type === 'MJYLQSQD') {
- if(this.radio === 1) {//选择试验的时候必须要选中一项才能点击确定
- return !this.selectedId;
- }else{
- return !this.depart;
- }
- }
- return !this.selectedId;
- }
- },
- methods: {
- onCancel() {
- this.$emit('cancel');
- },
- onSubmit() {
- let row = this.currentRow;
- if(this.type === 'MJYLQSQD') {
- if(this.radio === 1) {
- row = {syNo:row.ss,SD:row.code};
- }else{
- const o = this.options.find(item => item.value === this.depart);
- row = {syNo:o.label,SD:o.value};
- }
- }
- this.$emit('submit', this.selectedId,row);
- },
- 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>
|