feat(ear-tag): 新增耳标登记功能
- 添加耳标登记页面,支持新增和编辑功能 - 实现养殖场、养殖舍、养殖栏的级联选择- 添加耳标信息的详细录入,包括生物芯片耳标号、电子耳标号等 -优化列表页面,增加搜索和筛选功能 - 重构表格组件,支持更多列类型和操作
This commit is contained in:
@@ -21,33 +21,17 @@
|
||||
:is="colConfig.component"
|
||||
:col-config="colConfig">
|
||||
</component>
|
||||
<el-table-column
|
||||
v-else-if="colConfig.dict"
|
||||
:key="colConfig.id"
|
||||
v-bind="colConfig">
|
||||
<span slot-scope="{row}" :style="{color:colConfig.color||dict.getColor(colConfig.dict, row[colConfig.prop])}">
|
||||
{{ dict.getLabel(colConfig.dict, row[colConfig.prop]) }}
|
||||
</span>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-else-if="colConfig.openType"
|
||||
:key="colConfig.id"
|
||||
v-bind="colConfig">
|
||||
<template v-slot="{row}">
|
||||
<ai-open-data :type="colConfig.openType" :openid="row[colConfig.prop]"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-else-if="colConfig.type"
|
||||
:key="colConfig.id"
|
||||
v-bind="colConfig"
|
||||
:width="colConfig.width || 100"/>
|
||||
<el-table-column v-else v-bind="colConfig" :key="colConfig.id"
|
||||
:show-overflow-tooltip="colConfig['show-overflow-tooltip'] != false">
|
||||
<template slot-scope="scope">
|
||||
<render-slot v-if="colConfig.render" :render="colConfig.render" :row="scope.row" :index="scope.$index"
|
||||
:column="colConfig"/>
|
||||
<span v-else>{{ getValue(colConfig, scope.row) }}</span>
|
||||
<el-table-column v-else-if="colConfig.type" v-bind="colConfig" :width="colConfig.width||80" align="center"/>
|
||||
<el-table-column v-else v-bind="colConfig">
|
||||
<template slot-scope="{row,$index}">
|
||||
<span v-if="colConfig.dict" :style="{color:colConfig.color||dict.getColor(colConfig.dict, row[colConfig.prop])}" v-text="dict.getLabel(colConfig.dict, row[colConfig.prop])"/>
|
||||
<render-slot v-else-if="colConfig.render" :render="colConfig.render" :row="row" :index="$index" :column="colConfig"/>
|
||||
<el-input v-else-if="colConfig.edit==1" v-model="row[colConfig.prop]" :index="$index"/>
|
||||
<el-input v-else-if="colConfig.num==1" v-model.number="row[colConfig.prop]" :index="$index"/>
|
||||
<ai-select v-else-if="colConfig.select==1" v-model="row[colConfig.prop]" v-bind="colConfig"/>
|
||||
<ai-uploader v-else-if="colConfig.upload==1" v-model="row[colConfig.prop]" v-bind="colConfig"/>
|
||||
<ai-open-data v-else-if="colConfig.openType" :type="colConfig.openType" :openid="row[colConfig.prop]"/>
|
||||
<span v-else>{{ getValue(colConfig, row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
@@ -88,6 +72,7 @@
|
||||
<script>
|
||||
import moment from 'dayjs'
|
||||
import dict from "../../lib/js/dict"
|
||||
import AiUploader from "./AiUploader.vue";
|
||||
|
||||
export default {
|
||||
name: 'AiTable',
|
||||
@@ -121,6 +106,7 @@ export default {
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AiUploader,
|
||||
renderSlot: {
|
||||
functional: true,
|
||||
props: {
|
||||
|
||||
@@ -70,6 +70,11 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
&.blank {
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
&.hasFooter {
|
||||
padding-bottom: 64px;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div ref="AiSearchBarZone" class="searchLeftZone">
|
||||
<slot name="left"/>
|
||||
</div>
|
||||
<div class="searchRightZone" ref="searchRightZone">
|
||||
<div class="searchRightZone" ref="searchRightZone" v-if="$slots.right">
|
||||
<slot name="right"/>
|
||||
</div>
|
||||
<ai-pull-down v-if="!isSingleRow" v-model="expand"/>
|
||||
@@ -30,14 +30,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePullDown(style) {
|
||||
this.searchBarStyle = style
|
||||
if (style.height == 'auto') {
|
||||
this.searchBarStyle.marginBottom = '16px'
|
||||
} else {
|
||||
this.searchBarStyle.marginBottom = '0'
|
||||
}
|
||||
},
|
||||
initSize() {
|
||||
this.height = this.$refs?.AiSearchBarZone?.offsetHeight
|
||||
this.rightHeight = this.$refs?.searchRightZone?.offsetHeight + 12
|
||||
|
||||
Reference in New Issue
Block a user