feat(AppInsuranceAudit): 优化耳标号选择和养殖场查询功能

- 在 add.vue 中增加 targetUser 字段,用于查询养殖场
- 修改 AiEartagPicker 组件,增加 valueKey 属性默认值
- 优化代码格式和样式
This commit is contained in:
aixianling
2025-01-17 10:36:41 +08:00
parent d0922c5309
commit 6b030791bb
2 changed files with 17 additions and 15 deletions

View File

@@ -104,8 +104,10 @@ export default {
userId && this.instance.post("/api/siteUser/querySiteByUserId", null, { userId && this.instance.post("/api/siteUser/querySiteByUserId", null, {
params: { userId } params: { userId }
}).then(res => { }).then(res => {
if (res?.data) { if (res?.data?.[0]) {
this.$set(this.detail, "farmId", res.data?.[0]?.id) const { id } = res.data[0]
this.$set(this.detail, "farmId", id)
this.$set(this.detail, "targetUser", userId)
} }
}) })
} }
@@ -126,7 +128,7 @@ export default {
</el-form-item> </el-form-item>
<el-form-item label="养殖场" prop="farmId" :rules="{ required: isAdd || isEdit, message: '请选择 养殖场' }"> <el-form-item label="养殖场" prop="farmId" :rules="{ required: isAdd || isEdit, message: '请选择 养殖场' }">
<ai-select v-if="isAdd || isEdit" v-model="detail.farmId" :instance="instance" <ai-select v-if="isAdd || isEdit" v-model="detail.farmId" :instance="instance"
:action="`/api/siteUser/querySiteByUserId?userId=${userinfo.id}`" :prop="{ label: 'name' }" /> :action="`/api/siteUser/querySiteByUserId?userId=${detail.targetUser}`" :prop="{ label: 'name' }" />
<b v-else v-text="detail.farmName" /> <b v-else v-text="detail.farmName" />
</el-form-item> </el-form-item>
<el-form-item label="承保公司" prop="companyId" :rules="{ required: isAdd || isEdit, message: '请选择 承保公司' }"> <el-form-item label="承保公司" prop="companyId" :rules="{ required: isAdd || isEdit, message: '请选择 承保公司' }">
@@ -185,7 +187,7 @@ export default {
<el-form-item label="审批" prop="auditStatus" <el-form-item label="审批" prop="auditStatus"
:rules="[{ required: true, type: 'enum', enum: [2, 3], message: '请选择是否同意' },]"> :rules="[{ required: true, type: 'enum', enum: [2, 3], message: '请选择是否同意' },]">
<ai-audit @change="v => $set(detail, 'auditStatus', v)" /> <ai-audit @change="v => $set(detail, 'auditStatus', v)" />
</el-form-item> </el-form-item>
<el-form-item label="保单资料" class="sc-3"> <el-form-item label="保单资料" class="sc-3">
<ai-uploader v-model="detail.picture" value-is-url :instance="instance" :limit="1" /> <ai-uploader v-model="detail.picture" value-is-url :instance="instance" :limit="1" />
</el-form-item> </el-form-item>

View File

@@ -3,10 +3,10 @@ export default {
name: "AiEartagPicker", name: "AiEartagPicker",
props: { props: {
instance: Function, instance: Function,
value: {default: () => []}, value: { default: () => [] },
action: {default: "/api/breed/earTag/getEarTagByPenId"}, action: { default: "/api/breed/earTag/getEarTagByPenId" },
penId: String, penId: String,
valueKey: String valueKey: { type: String, default: "biochipEarNumber" }
}, },
model: { model: {
prop: "value", prop: "value",
@@ -45,9 +45,9 @@ export default {
this.origin = res.data ?? [] this.origin = res.data ?? []
this.list = res.data?.map(v => { this.list = res.data?.map(v => {
if (typeof v == 'string') { if (typeof v == 'string') {
return {key: v, label: v} return { key: v, label: v }
} else if (key) { } else if (key) {
return {key: v[key], label: v[key]} return { key: v[key], label: v[key] }
} }
}) || [] }) || []
} }
@@ -65,15 +65,15 @@ export default {
<template> <template>
<section class="AiEartagPicker"> <section class="AiEartagPicker">
<div style="width: auto;" v-if="$slots.default" @click="dialog = true"> <div style="width: auto;" v-if="$slots.default" @click="dialog = true">
<slot/> <slot />
</div> </div>
<el-select v-else :value="value" clearable multiple placeholder="请选择"> <el-select v-else :value="value" clearable multiple placeholder="请选择">
<el-option v-for="(op,i) in list" :key="i" :label="op.label" :value="op.key"/> <el-option v-for="(op, i) in list" :key="i" :label="op.label" :value="op.key" />
<div slot="prefix" @click.stop="dialog = true"/> <div slot="prefix" @click.stop="dialog = true" />
</el-select> </el-select>
<ai-dialog v-model="dialog" title="选择牲畜" width="800px" @confirm="handleConfirm" @closed="selected = []" <ai-dialog v-model="dialog" title="选择牲畜" width="800px" @confirm="handleConfirm" @closed="selected = []"
@open="selected = value"> @open="selected = value">
<el-transfer :data="list" v-model="selected" :titles="['可选', '已选择']"/> <el-transfer :data="list" v-model="selected" :titles="['可选', '已选择']" />
</ai-dialog> </ai-dialog>
</section> </section>
</template> </template>
@@ -95,7 +95,7 @@ export default {
right: 0; right: 0;
z-index: 999; z-index: 999;
& > div { &>div {
height: 100%; height: 100%;
} }
} }