125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
<template>
 | 
						|
  <base-model :config="model_cfg">
 | 
						|
    <template slot="dialog-body">
 | 
						|
      <el-form
 | 
						|
        ref="medicalAuditForm"
 | 
						|
        :model="form"
 | 
						|
        :rules="rules"
 | 
						|
        label-width="100px"
 | 
						|
        size="small"
 | 
						|
      >
 | 
						|
        <el-form-item label="审核问题: " prop="QuestionName">
 | 
						|
          <el-input v-model="form.QuestionName" />
 | 
						|
        </el-form-item>
 | 
						|
        <el-form-item label="是否必填: ">
 | 
						|
          <el-radio-group v-model="form.IsRequired">
 | 
						|
            <el-radio :label="true">是</el-radio>
 | 
						|
            <el-radio :label="false">否</el-radio>
 | 
						|
          </el-radio-group>
 | 
						|
        </el-form-item>
 | 
						|
        <el-form-item label="启用状态: ">
 | 
						|
          <el-radio-group v-model="form.IsEnable">
 | 
						|
            <el-radio :label="true">启用</el-radio>
 | 
						|
            <el-radio :label="false">停用</el-radio>
 | 
						|
          </el-radio-group>
 | 
						|
        </el-form-item>
 | 
						|
        <el-form-item label="类型: ">
 | 
						|
          <el-select v-model="form.Type">
 | 
						|
            <el-option value="select" label="下拉框" />
 | 
						|
            <el-option value="input" label="单行文本框" />
 | 
						|
            <el-option value="textarea" label="多行文本框" />
 | 
						|
            <el-option value="radio" label="单选框" />
 | 
						|
          </el-select>
 | 
						|
        </el-form-item>
 | 
						|
        <!-- <el-form-item v-if="form.Type === 'textarea' || form.Type === 'input'" label="选项: ">
 | 
						|
          <el-input-number v-model="form.TypeValue" controls-position="right" :min="0" placeholder="输入文本框最大长度限制" />
 | 
						|
        </el-form-item> -->
 | 
						|
        <el-form-item v-if="form.Type !== 'textarea' && form.Type !== 'input'" label="选项: " prop="TypeValue">
 | 
						|
          <el-input v-model="form.TypeValue" placeholder="选项请用‘|’分割多个选项" />
 | 
						|
        </el-form-item>
 | 
						|
        <el-form-item label="序号: " prop="ShowOrder">
 | 
						|
          <el-input-number v-model="form.ShowOrder" controls-position="right" :min="0" />
 | 
						|
        </el-form-item>
 | 
						|
      </el-form>
 | 
						|
    </template>
 | 
						|
    <template slot="dialog-footer">
 | 
						|
      <el-button :disabled="btnLoading" size="small" type="primary" @click="handleCancle">取消</el-button>
 | 
						|
      <el-button size="small" type="primary" :loading="btnLoading" @click="handleSave">保存</el-button>
 | 
						|
    </template>
 | 
						|
  </base-model>
 | 
						|
</template>
 | 
						|
<script>
 | 
						|
import { addOrUpdateReadingMedicineSystemQuestion } from '@/api/dictionary'
 | 
						|
import BaseModel from '@/components/BaseModel'
 | 
						|
const formDataDefault = () => {
 | 
						|
  return {
 | 
						|
    Id: '',
 | 
						|
    QuestionName: '',
 | 
						|
    IsRequired: true,
 | 
						|
    IsEnable: true,
 | 
						|
    Type: 'select',
 | 
						|
    TypeValue: '',
 | 
						|
    ShowOrder: 0
 | 
						|
  }
 | 
						|
}
 | 
						|
export default {
 | 
						|
  name: 'MedicalAuditForm',
 | 
						|
  components: { BaseModel },
 | 
						|
  // props: {
 | 
						|
  //   data: {
 | 
						|
  //     type: Object,
 | 
						|
  //     default() {
 | 
						|
  //       return {}
 | 
						|
  //     }
 | 
						|
  //   }
 | 
						|
  // },
 | 
						|
  data() {
 | 
						|
    return {
 | 
						|
      btnLoading: false,
 | 
						|
      form: formDataDefault(),
 | 
						|
      rules: {
 | 
						|
        QuestionName: [{ required: true, message: 'Please specify', trigger: 'blur' },
 | 
						|
          { max: 50, message: 'The maximum length is 50' }],
 | 
						|
        TypeValue: [{ required: true, message: 'Please specify', trigger: 'blur' },
 | 
						|
          { max: 200, message: 'The maximum length is 200' }]
 | 
						|
      },
 | 
						|
      model_cfg: { visible: false, showClose: true, width: '600px', title: '' }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  mounted() {
 | 
						|
    // if (Object.keys(this.data).length && this.data.Id) {
 | 
						|
    //   this.form = { ...this.data }
 | 
						|
    // }
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
    openDialog(title, data) {
 | 
						|
      this.model_cfg.visible = true
 | 
						|
      this.model_cfg.title = title
 | 
						|
      if (Object.keys(data).length && data.Id) {
 | 
						|
        this.form = { ...data }
 | 
						|
      } else {
 | 
						|
        this.form = formDataDefault()
 | 
						|
      }
 | 
						|
    },
 | 
						|
    handleSave() {
 | 
						|
      this.$refs.medicalAuditForm.validate(valid => {
 | 
						|
        if (valid) {
 | 
						|
          this.btnLoading = true
 | 
						|
          addOrUpdateReadingMedicineSystemQuestion(this.form).then(res => {
 | 
						|
            this.btnLoading = false
 | 
						|
            this.$message.success('保存成功!')
 | 
						|
            this.model_cfg.visible = false
 | 
						|
            this.$emit('getList')
 | 
						|
          }).catch(() => {
 | 
						|
            this.btnLoading = false
 | 
						|
          })
 | 
						|
        }
 | 
						|
      })
 | 
						|
    },
 | 
						|
    handleCancle() {
 | 
						|
      this.model_cfg.visible = false
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
</script>
 |