4 Commits

Author SHA1 Message Date
aixianling
2e93f1465f refactor(xumu): 重构耳标选择器组件
- 新增计算属性 api,用于生成请求 URL
- 将 watch 目标从 action 改为 api
- 优化 getEartag 方法,使用计算属性 api 替代手动构建 URL
2025-01-08 15:18:37 +08:00
aixianling
07a4d0637f refactor(xumu): 优化体重录入对话框样式和功能
- 调整对话框宽度为 50vw,提高可读性和美观性
- 为日期选择器添加 value-format 属性,确保日期格式一致性
- 将普通输入框替换为自定义的 ai-input 组件,提升用户体验
2025-01-08 15:05:55 +08:00
aixianling
66a721c1eb feat(xumu): 优化耳标编辑功能
- 在提交时,如果处于编辑状态,将当前详情数据构建成 detailList 数组- 保留原有逻辑,确保新增和编辑操作都能正常进行
2025-01-08 15:02:37 +08:00
aixianling
5efd2a1d3f fix(AppEarTag): 修复耳标添加页面品种和类别显示问题
- 在 etAdd.vue 文件中,将品种和类别的显示逻辑从直接显示值改为通过字典获取标签
- 使用 dict.getLabel 方法确保在非编辑模式下正确显示品种和类别的中文名称
2025-01-08 14:57:03 +08:00
3 changed files with 20 additions and 11 deletions

View File

@@ -55,6 +55,10 @@ export default {
},
submit() {
this.$refs.detail.validate().then(() => {
if (this.isEdit) {
const {biochipEarNumber, electronicEarNumber, originalEarNumber, picture, variety, category, age, weight} = this.detail
this.detail.detailList = [{biochipEarNumber, electronicEarNumber, originalEarNumber, picture, variety, category, age, weight}]
}
this.instance.post("/api/breed/earTag/addOrEdit", this.detail).then(res => {
if (res?.code == 0) {
this.$confirm("是否要返回列表?", "提交成功").then(() => this.back())
@@ -130,11 +134,11 @@ export default {
</el-form-item>
<el-form-item label="品种" prop="variety">
<ai-select v-if="isEdit" v-model="detail.variety" dict="variety"/>
<b v-else v-text="detail.variety"/>
<b v-else v-text="dict.getLabel('variety',detail.variety)"/>
</el-form-item>
<el-form-item label="类别" prop="category">
<ai-select v-if="isEdit" v-model="detail.category" dict="category"/>
<b v-else v-text="detail.category"/>
<b v-else v-text="dict.getLabel('category',detail.category)"/>
</el-form-item>
<el-form-item label="日龄/天">
<el-input v-if="isEdit" v-model.number="detail.age" placeholder="请输入" clearable/>

View File

@@ -122,13 +122,13 @@ export default {
</el-table-column>
</ai-table>
</ai-card>
<ai-dialog v-model="dialog" title="体重录入" @closed="form={}" @confirm="submit">
<ai-dialog v-model="dialog" title="体重录入" @closed="form={}" @confirm="submit" width="50vw">
<el-form size="small" label-width="120px" :model="form" ref="detail" class="grid">
<el-form-item label="办理时间" prop="createTime" :rules="[{required:true,message:'请选择办理时间'}]">
<el-date-picker v-model="form.createTime" :readonly="form.id"/>
<el-date-picker v-model="form.createTime" :readonly="form.id" value-format="yyyy-MM-dd HH:mm:ss"/>
</el-form-item>
<el-form-item label="体重(公斤)" prop="weight" :rules="[{required:true,message:'请输入体重(公斤)'}]">
<el-input v-model.number="form.weight" clearable placeholder="请输入"/>
<ai-input v-model.number="form.weight"/>
</el-form-item>
</el-form>
</ai-dialog>

View File

@@ -18,8 +18,17 @@ export default {
selected: []
}
},
computed: {
api: v => {
let url = v.action
if (v.penId) {
url += `?penId=${v.penId}`
}
return url
}
},
watch: {
action: {
api: {
immediate: true,
handler() {
this.getEartag()
@@ -28,11 +37,7 @@ export default {
},
methods: {
getEartag() {
let url = this.action
if (this.penId) {
url += `?penId=${this.penId}`
}
!/undefined/.test(url) && this.instance.post(url).then(res => {
!/undefined/.test(this.api) && this.instance.post(this.api).then(res => {
if (res?.data) {
this.list = res.data
}