zhouwx
2024-09-06 d098e2e3a16837ad0a61c1a2df93b27c7d16bfd2
src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
@@ -34,10 +34,35 @@
          <el-input v-model.trim="state.form.cas" placeholder="请输入CAS"></el-input>
        </el-form-item>
        <el-form-item label="试剂类型:" prop="hazmatType">
          <el-input v-model.trim="state.form.hazmatType" placeholder="请输入试剂类型"></el-input>
          <el-select
              v-model="state.form.hazmatType"
              placeholder="请选择试剂类型"
              clearable
              style="width: 100%"
          >
            <el-option
                v-for="dict in state.hazmatTypeList"
                :key="dict.id"
                :label="dict.name"
                :value="dict.name"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="危险性质:" prop="hazmatCharacter">
          <el-input v-model.trim="state.form.hazmatCharacter" placeholder="请输入危险性质"></el-input>
          <el-select
              v-model="state.characterList"
              placeholder="请选择危险性质"
              clearable
              multiple
              style="width: 100%"
          >
            <el-option
                v-for="dict in state.hazmatCharacterList"
                :key="dict.id"
                :label="dict.name"
                :value="dict.name"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="供应商:" prop="supplier">
          <el-input v-model.trim="state.form.supplier" placeholder="请输入供应商"></el-input>
@@ -94,7 +119,7 @@
          <el-input v-model.trim="state.form.safeNum" placeholder="请输入安全库存" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
        </el-form-item>
        <el-form-item label="超期阈值(小时):" prop="threshold">
          <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值"></el-input>
          <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
        </el-form-item>
      </el-form>
      <template #footer>
@@ -166,6 +191,7 @@
    threshold: null,
    kind: ''
  },
  characterList: [],
  formRules:{
    name: [{ required: true, trigger: "blur", message: '请输入危化品名称', }],
    cas: [{ required: true, message: '请输入cas', trigger: 'blur' }],
@@ -174,7 +200,7 @@
    hazmatType: [{ required: true, message: '请输入试剂类型', trigger: 'blur' }],
    manufacturer: [{ required: true, message: '请输入厂家', trigger: 'blur' }],
    metering: [{ required: true, message: '请输入包装数量', trigger: 'blur' }],
    perBox: [{ required: true, message: '请输入每箱数量', trigger: 'blur' }],
    // perBox: [{ required: true, message: '请输入每箱数量', trigger: 'blur' }],
    price: [{ required: true, message: '请输入含税价格', trigger: 'blur' }],
    productSn: [{ required: true, validator: validateName, trigger: 'blur' }],
    supplier: [{ required: true, message: '请输入供应商', trigger: 'blur' }],
@@ -207,6 +233,28 @@
      name: '其他'
    },
  ],
  hazmatTypeList: [
    {
      id: 0,
      name: '耗材'
    },
    {
      id: 1,
      name: '液态'
    },
    {
      id: 2,
      name: '液体'
    },
    {
      id: 3,
      name: '气态'
    },
    {
      id: 4,
      name: '固态'
    },
  ],
  unitList:[
    {
      id: 0,
@@ -233,14 +281,44 @@
      name: '其他'
    },
  ],
  hazmatCharacterList: [
    {
      id: 0,
      name: '腐蚀品'
    },
    {
      id: 1,
      name: '氧化品'
    },
    {
      id: 2,
      name: '有毒品'
    },
    {
      id: 3,
      name: '易燃品'
    },
    {
      id: 4,
      name: '非易燃品'
    },
  ],
  unitOptions: [
    {
      value: 'g',
      label: 'g',
    },
    {
      value: 'mg',
      label: 'mg',
    },
    {
      value: 'ml',
      label: 'ml',
    },
    {
      value: 'l',
      label: 'l',
    },
  ]
})
@@ -250,13 +328,15 @@
  t.value = type
  title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
  if(type === 'edit' || type === 'distribute') {
    state.form = value;
    state.form = JSON.parse(JSON.stringify(value));
    state.characterList = state.form.hazmatCharacter.split(',')
    startUsername.value = value.productSn
  }
  dialogVisible.value = true;
}
const onSubmit = async () => {
  state.form.hazmatCharacter = state.characterList.join(",")
  const valid = await busRef.value.validate();
  if(valid){
    if(title.value === '新增'){
@@ -318,6 +398,7 @@
    threshold: null,
    kind: ''
  }
  state.characterList = []
}
defineExpose({
  openDialog