Prechádzať zdrojové kódy

品种改为输入的方式

Huanyi 18 hodín pred
rodič
commit
645753328e

+ 4 - 0
.eslintrc-auto-import.json

@@ -5,6 +5,10 @@
     "ComputedRef": true,
     "DirectiveBinding": true,
     "EffectScope": true,
+    "ElLoading": true,
+    "ElMessage": true,
+    "ElMessageBox": true,
+    "ElNotification": true,
     "ExtractDefaultPropTypes": true,
     "ExtractPropTypes": true,
     "ExtractPublicPropTypes": true,

+ 4 - 6
src/views/archieves/pet/index.vue

@@ -104,9 +104,7 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="品种" required>
-                  <el-select v-model="form.breed" placeholder="请选择品种" style="width: 100%" filterable allow-create default-first-option>
-                    <el-option v-for="dict in sys_pet_breed" :key="dict.value" :label="dict.label" :value="dict.value" />
-                  </el-select>
+                  <el-input v-model="form.breed" placeholder="请输入品种" style="width: 100%" />
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -232,8 +230,8 @@ import { listAllTag } from '@/api/archieves/tag';
 import { listAllCustomer } from '@/api/archieves/customer';
 
 const { proxy } = getCurrentInstance();
-const { sys_pet_gender, sys_pet_type, sys_pet_size, sys_pet_breed, sys_house_type, sys_entry_method } = toRefs(
-  proxy?.useDict('sys_pet_gender', 'sys_pet_type', 'sys_pet_size', 'sys_pet_breed', 'sys_house_type', 'sys_entry_method')
+const { sys_pet_gender, sys_pet_type, sys_pet_size, sys_house_type, sys_entry_method } = toRefs(
+  proxy?.useDict('sys_pet_gender', 'sys_pet_type', 'sys_pet_size', 'sys_house_type', 'sys_entry_method')
 );
 
 const loading = ref(false);
@@ -459,7 +457,7 @@ const handleUploadVaccineCert = async (file) => {
 const saveData = () => {
   if (!form.name) return ElMessage.warning('请输入宠物姓名');
   if (!form.userId) return ElMessage.warning('请选择所属主人');
-  if (!form.breed) return ElMessage.warning('请选择品种');
+  if (!form.breed) return ElMessage.warning('请输入品种');
   if (!form.size) return ElMessage.warning('请选择体型');
   if (form.weight === undefined || form.weight === null) return ElMessage.warning('请输入体重(kg)');
   if (form.age === undefined || form.age === null) return ElMessage.warning('请输入年龄(岁)');

+ 31 - 18
src/views/order/purchase/components/AddPetDialog.vue

@@ -1,13 +1,17 @@
 <template>
-  <el-dialog :model-value="visible" @update:model-value="$emit('update:visible', $event)" title="新增宠物" width="800px" destroy-on-close append-to-body>
+  <el-dialog :model-value="visible" @update:model-value="$emit('update:visible', $event)" title="新增宠物" width="800px"
+    destroy-on-close append-to-body>
     <el-tabs v-model="activeTab">
       <el-tab-pane label="基本信息" name="basic">
         <el-form :model="form" label-width="100px">
           <el-row>
             <el-col :span="24" style="display: flex; justify-content: center; margin-bottom: 20px">
-              <el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false" :on-change="handleUploadFile">
+              <el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false"
+                :on-change="handleUploadFile">
                 <el-avatar v-if="avatarDisplayUrl" :src="avatarDisplayUrl" :size="80" />
-                <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
+                <el-icon v-else class="avatar-uploader-icon">
+                  <Plus />
+                </el-icon>
               </el-upload>
             </el-col>
             <el-col :span="12">
@@ -23,15 +27,14 @@
             <el-col :span="12">
               <el-form-item label="性别">
                 <el-select v-model="form.gender" placeholder="请选择">
-                  <el-option v-for="dict in sys_pet_gender" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
+                  <el-option v-for="dict in sys_pet_gender" :key="dict.value" :label="dict.label"
+                    :value="parseInt(dict.value)" />
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="品种" required>
-                <el-select v-model="form.breed" placeholder="请选择品种" style="width: 100%" filterable allow-create default-first-option>
-                  <el-option v-for="dict in sys_pet_breed" :key="dict.value" :label="dict.label" :value="dict.value" />
-                </el-select>
+                <el-input v-model="form.breed" placeholder="请输入品种" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -42,16 +45,19 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="体重(kg)" required><el-input-number v-model="form.weight" :min="0" :precision="1" style="width: 100%" /></el-form-item>
+              <el-form-item label="体重(kg)" required><el-input-number v-model="form.weight" :min="0" :precision="1"
+                  style="width: 100%" /></el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="年龄(岁)" required><el-input-number v-model="form.age" :min="0" style="width: 100%" /></el-form-item>
+              <el-form-item label="年龄(岁)" required><el-input-number v-model="form.age" :min="0"
+                  style="width: 100%" /></el-form-item>
             </el-col>
             <el-col :span="24">
               <el-form-item label="性格关键词"><el-input v-model="form.personality" placeholder="如:活泼、粘人" /></el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="萌宠性格"><el-input v-model="form.cutePersonality" type="textarea" placeholder="详细描述" /></el-form-item>
+              <el-form-item label="萌宠性格"><el-input v-model="form.cutePersonality" type="textarea"
+                  placeholder="详细描述" /></el-form-item>
             </el-col>
             <el-col :span="24">
               <el-form-item label="宠物标签">
@@ -77,7 +83,8 @@
           </el-form-item>
           <el-form-item label="入门方式" required>
             <el-radio-group v-model="form.entryMethod">
-              <el-radio v-for="dict in sys_entry_method" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
+              <el-radio v-for="dict in sys_entry_method" :key="dict.value" :value="dict.value">{{ dict.label
+                }}</el-radio>
             </el-radio-group>
           </el-form-item>
           <el-form-item label="密码" v-if="form.entryMethod === 'password'" required>
@@ -98,7 +105,8 @@
             </el-radio-group>
           </el-form-item>
           <el-form-item label="是否有攻击倾向" required>
-            <el-switch v-model="form.aggression" active-text="是" inactive-text="否" :active-value="1" :inactive-value="0" />
+            <el-switch v-model="form.aggression" active-text="是" inactive-text="否" :active-value="1"
+              :inactive-value="0" />
           </el-form-item>
           <el-form-item label="疫苗情况" required>
             <el-radio-group v-model="form.vaccineStatus">
@@ -109,9 +117,13 @@
             </el-radio-group>
           </el-form-item>
           <el-form-item label="疫苗凭证">
-            <el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false" :on-change="handleUploadVaccineCert">
-              <img v-if="vaccineCertDisplayUrl" :src="vaccineCertDisplayUrl" class="avatar" style="width: 100px; height: 100px; object-fit: cover" />
-              <el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px; line-height: 100px"><Plus /></el-icon>
+            <el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false"
+              :on-change="handleUploadVaccineCert">
+              <img v-if="vaccineCertDisplayUrl" :src="vaccineCertDisplayUrl" class="avatar"
+                style="width: 100px; height: 100px; object-fit: cover" />
+              <el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px; line-height: 100px">
+                <Plus />
+              </el-icon>
             </el-upload>
           </el-form-item>
           <el-form-item label="既往病史" required>
@@ -148,8 +160,8 @@ const props = defineProps({
 const emit = defineEmits(['update:visible', 'success'])
 
 const { proxy } = getCurrentInstance()
-const { sys_pet_gender, sys_pet_type, sys_pet_size, sys_pet_breed, sys_house_type, sys_entry_method } = toRefs(
-  proxy?.useDict('sys_pet_gender', 'sys_pet_type', 'sys_pet_size', 'sys_pet_breed', 'sys_house_type', 'sys_entry_method')
+const { sys_pet_gender, sys_pet_type, sys_pet_size, sys_house_type, sys_entry_method } = toRefs(
+  proxy?.useDict('sys_pet_gender', 'sys_pet_type', 'sys_pet_size', 'sys_house_type', 'sys_entry_method')
 )
 
 const activeTab = ref('basic')
@@ -265,7 +277,7 @@ const handleUploadVaccineCert = async (file) => {
 const saveData = () => {
   if (!form.name) return ElMessage.warning('请输入宠物姓名')
   if (!form.userId) return ElMessage.warning('请先选择或新增所属主人')
-  if (!form.breed) return ElMessage.warning('请选择品种');
+  if (!form.breed) return ElMessage.warning('请输入品种');
   if (!form.size) return ElMessage.warning('请选择体型');
   if (form.weight === undefined || form.weight === null) return ElMessage.warning('请输入体重(kg)');
   if (form.age === undefined || form.age === null) return ElMessage.warning('请输入年龄(岁)');
@@ -306,6 +318,7 @@ onMounted(() => {
   justify-content: center;
   align-items: center;
 }
+
 .avatar-uploader-icon:hover {
   border-color: var(--el-color-primary);
 }