|
@@ -7,10 +7,10 @@
|
|
|
<up-form class="p-rtv" labelPosition="top" :model="form" :rules="rules" labelWidth="auto" ref="upFormRef">
|
|
<up-form class="p-rtv" labelPosition="top" :model="form" :rules="rules" labelWidth="auto" ref="upFormRef">
|
|
|
<view class="startline-title pl-24 ml-24 mb-16">基地信息</view>
|
|
<view class="startline-title pl-24 ml-24 mb-16">基地信息</view>
|
|
|
<view class="bg-#fff pd-24">
|
|
<view class="bg-#fff pd-24">
|
|
|
- <view class="b-radius bg-#EBF6EE c-primary f-s-24 pd-24 pb-16"> 注意:关联时请确保已添加到地块;关联时必须选到地块/圈舍/组培架。</view>
|
|
|
|
|
|
|
+ <view class="b-radius bg-#EBF6EE c-primary f-s-24 pd-24 pb-16"> 注意:关联时请确保已添加到地块;关联时必须选到地块/圈舍/培养架。</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="bg-#fff pd-24 mb-20 pt-0">
|
|
<view class="bg-#fff pd-24 mb-20 pt-0">
|
|
|
- <up-form-item :borderBottom="false" label="种养殖所在基地" required prop="baseId">
|
|
|
|
|
|
|
+ <up-form-item :borderBottom="false" label="种养殖所在基地" required prop="baseId" id="baseIdpppp">
|
|
|
<view v-if="!deawerData" class="w-100% d-flex a-c j-c pd-24 b-radius bg-#FBFDFB border-#AFDDBB" @click="openDrawer">
|
|
<view v-if="!deawerData" class="w-100% d-flex a-c j-c pd-24 b-radius bg-#FBFDFB border-#AFDDBB" @click="openDrawer">
|
|
|
<view class=""></view>
|
|
<view class=""></view>
|
|
|
<view class="f-s-34 c-primary">请选择种养殖所在的基地</view>
|
|
<view class="f-s-34 c-primary">请选择种养殖所在的基地</view>
|
|
@@ -23,12 +23,12 @@
|
|
|
<view class="startline-title pl-24 ml-24 mb-16">种养殖信息</view>
|
|
<view class="startline-title pl-24 ml-24 mb-16">种养殖信息</view>
|
|
|
<view class="bg-#fff pd-24 mb-20">
|
|
<view class="bg-#fff pd-24 mb-20">
|
|
|
<ut-action-sheet v-model="form.taskType" :tabs="pt_task_type" title="选择任务类型">
|
|
<ut-action-sheet v-model="form.taskType" :tabs="pt_task_type" title="选择任务类型">
|
|
|
- <up-form-item borderBottom label="任务类型" required prop="taskType">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="任务类型" required prop="taskType" id="taskTypepppp">
|
|
|
<view class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_task_type, form.taskType) }}</view>
|
|
<view class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_task_type, form.taskType) }}</view>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
</ut-action-sheet>
|
|
</ut-action-sheet>
|
|
|
<ut-action-sheet v-model="form.mgMethod" :tabs="mg_method" title="选择溯源级别">
|
|
<ut-action-sheet v-model="form.mgMethod" :tabs="mg_method" title="选择溯源级别">
|
|
|
- <up-form-item borderBottom label="溯源级别" required prop="mgMethod">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="溯源级别" required prop="mgMethod" id="mgMethodpppp">
|
|
|
<view v-if="form.mgMethod" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(mg_method, form.mgMethod) }}</view>
|
|
<view v-if="form.mgMethod" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(mg_method, form.mgMethod) }}</view>
|
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择溯源级别</view>
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择溯源级别</view>
|
|
|
<template #right>
|
|
<template #right>
|
|
@@ -37,7 +37,7 @@
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
</ut-action-sheet>
|
|
</ut-action-sheet>
|
|
|
<ut-action-sheet v-model="form.gapFlag" :tabs="task_gap_flag" title="选择符合要求">
|
|
<ut-action-sheet v-model="form.gapFlag" :tabs="task_gap_flag" title="选择符合要求">
|
|
|
- <up-form-item borderBottom label="符合要求" required prop="gapFlag">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="符合要求" required prop="gapFlag" id="gapFlagpppp">
|
|
|
<view v-if="form.gapFlag" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(task_gap_flag, form.gapFlag) }}</view>
|
|
<view v-if="form.gapFlag" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(task_gap_flag, form.gapFlag) }}</view>
|
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择符合要求</view>
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择符合要求</view>
|
|
|
<template #right>
|
|
<template #right>
|
|
@@ -45,12 +45,12 @@
|
|
|
</template>
|
|
</template>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
</ut-action-sheet>
|
|
</ut-action-sheet>
|
|
|
- <up-form-item borderBottom label="动物名称" required prop="varietyId">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="动物名称" required prop="varietyId" id="varietyIdpppp">
|
|
|
<view v-if="!Biological" @click="$u.route({ type: 'navigateTo', url: '/plant/port/por-torganism/index' })" class="w-100% d-flex a-c j-c pd-24 b-radius bg-#FBFDFB border-#AFDDBB">
|
|
<view v-if="!Biological" @click="$u.route({ type: 'navigateTo', url: '/plant/port/por-torganism/index' })" class="w-100% d-flex a-c j-c pd-24 b-radius bg-#FBFDFB border-#AFDDBB">
|
|
|
<view class=""></view>
|
|
<view class=""></view>
|
|
|
<view class="f-s-34 c-primary">请选择养植的动物名称</view>
|
|
<view class="f-s-34 c-primary">请选择养植的动物名称</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view v-if="Biological" class="pd-30 d-flex flex-cln bg-#FBFDFB border-#37A954 b-radius mb-20 w-100% p-rtv">
|
|
|
|
|
|
|
+ <view v-if="Biological" class="pd-24 d-flex flex-cln bg-#FBFDFB border-#37A954 b-radius mb-20 w-100% p-rtv">
|
|
|
<up-icon @click="Biological = null" size="26rpx" color="red" name="close" style="position: absolute; right: 10rpx; top: 10rpx"></up-icon>
|
|
<up-icon @click="Biological = null" size="26rpx" color="red" name="close" style="position: absolute; right: 10rpx; top: 10rpx"></up-icon>
|
|
|
<view class="mb-20">
|
|
<view class="mb-20">
|
|
|
<text class="c-#333 f-s-34 f-w-5 mr-5">{{ Biological?.varietyName }}</text>
|
|
<text class="c-#333 f-s-34 f-w-5 mr-5">{{ Biological?.varietyName }}</text>
|
|
@@ -66,18 +66,18 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
- <up-form-item borderBottom label="养殖批号" required prop="plantationCode">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="养殖批号" required prop="plantationCode" id="plantationCodepppp">
|
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
|
- <view class="flex1 c-#999">请生成养殖批号</view>
|
|
|
|
|
- <view class="flex1 c-#333">{{ form.plantationCode }}</view>
|
|
|
|
|
|
|
+ <view v-if="!form.plantationCode" class="flex1 c-#999">请生成养殖批号</view>
|
|
|
|
|
+ <view v-else class="flex1 c-#333">{{ form.plantationCode }}</view>
|
|
|
<up-button @click="randomCode" class="c-#fff" type="primary" style="height: 50rpx; width: 130rpx">随机生成</up-button>
|
|
<up-button @click="randomCode" class="c-#fff" type="primary" style="height: 50rpx; width: 130rpx">随机生成</up-button>
|
|
|
</view>
|
|
</view>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
- <up-form-item label="请选择养殖技术规程文件" prop="technicalFile" borderBottom>
|
|
|
|
|
|
|
+ <up-form-item label="请选择养殖技术规程文件" prop="technicalFile" borderBottom id="technicalFilepppp">
|
|
|
<ut-upload v-model="form.technicalFile" :max-count="9" valueType="array" accept="file"></ut-upload>
|
|
<ut-upload v-model="form.technicalFile" :max-count="9" valueType="array" accept="file"></ut-upload>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
<ut-action-sheet v-model="form.plantationMethod" :tabs="feeding_method" title="选择养殖方式">
|
|
<ut-action-sheet v-model="form.plantationMethod" :tabs="feeding_method" title="选择养殖方式">
|
|
|
- <up-form-item borderBottom label="养殖方式" required prop="plantationMethod">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="养殖方式" required prop="plantationMethod" id="plantationMethodpppp">
|
|
|
<view v-if="form.plantationMethod" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(feeding_method, form.plantationMethod) }}</view>
|
|
<view v-if="form.plantationMethod" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(feeding_method, form.plantationMethod) }}</view>
|
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择养殖方式</view>
|
|
<view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择养殖方式</view>
|
|
|
<template #right>
|
|
<template #right>
|
|
@@ -85,32 +85,34 @@
|
|
|
</template>
|
|
</template>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
</ut-action-sheet>
|
|
</ut-action-sheet>
|
|
|
|
|
+ <view class="h-1" id="queryType6pppp"></view>
|
|
|
<up-form-item :borderBottom="false" label="养殖时间" required prop="queryType6">
|
|
<up-form-item :borderBottom="false" label="养殖时间" required prop="queryType6">
|
|
|
- <ut-datetime-picker v-model="form.queryType6.plannedStartDate" mode="date" dateFields="month">
|
|
|
|
|
|
|
+ <ut-datetime-picker v-model="form.queryType6.plannedStartDate" mode="date" dateFields="day">
|
|
|
<view class="d-flex mr-20">
|
|
<view class="d-flex mr-20">
|
|
|
<up-input v-model="form.queryType6.plannedStartDate" placeholder="请选择养殖开始时间" border="bottom" :customStyle="{ paddingLeft: '0rpx' }"></up-input>
|
|
<up-input v-model="form.queryType6.plannedStartDate" placeholder="请选择养殖开始时间" border="bottom" :customStyle="{ paddingLeft: '0rpx' }"></up-input>
|
|
|
<up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill" style="margin-left: -20rpx"></up-icon>
|
|
<up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill" style="margin-left: -20rpx"></up-icon>
|
|
|
</view>
|
|
</view>
|
|
|
</ut-datetime-picker>
|
|
</ut-datetime-picker>
|
|
|
- <ut-datetime-picker v-model="form.queryType6.plannedEndDate" mode="date" dateFields="month">
|
|
|
|
|
|
|
+ <ut-datetime-picker v-model="form.queryType6.plannedEndDate" mode="date" dateFields="day">
|
|
|
<view class="d-flex">
|
|
<view class="d-flex">
|
|
|
<up-input v-model="form.queryType6.plannedEndDate" placeholder="请选择养殖结束时间" border="bottom" :customStyle="{ paddingLeft: '0rpx' }"></up-input>
|
|
<up-input v-model="form.queryType6.plannedEndDate" placeholder="请选择养殖结束时间" border="bottom" :customStyle="{ paddingLeft: '0rpx' }"></up-input>
|
|
|
<up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill" style="margin-left: -20rpx"></up-icon>
|
|
<up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill" style="margin-left: -20rpx"></up-icon>
|
|
|
</view>
|
|
</view>
|
|
|
</ut-datetime-picker>
|
|
</ut-datetime-picker>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
- <up-form-item borderBottom label="养殖面积" required prop="plantingAmount">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="养殖面积" required prop="plantingAmount" id="plantingAmountpppp">
|
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
|
<up-input style="padding-left: 0" v-model="form.plantingAmount" placeholder="请输入养殖面积" border="none"></up-input>
|
|
<up-input style="padding-left: 0" v-model="form.plantingAmount" placeholder="请输入养殖面积" border="none"></up-input>
|
|
|
<view class="c-#333 f-s-32 f-w-5">平方米</view>
|
|
<view class="c-#333 f-s-32 f-w-5">平方米</view>
|
|
|
</view>
|
|
</view>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
- <up-form-item borderBottom label="养殖区域" required prop="breedScale">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="养殖区域" required prop="breedScale" id="breedScalepppp">
|
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
<view class="d-flex a-c j-sb w-100%">
|
|
|
<up-input v-model="form.breedScale" placeholder="请输入养殖区域" border="none"></up-input>
|
|
<up-input v-model="form.breedScale" placeholder="请输入养殖区域" border="none"></up-input>
|
|
|
<view class="c-#333 f-s-32 f-w-5">个</view>
|
|
<view class="c-#333 f-s-32 f-w-5">个</view>
|
|
|
</view>
|
|
</view>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
|
|
+ <view class="h-1" id="plantpppp"></view>
|
|
|
<up-form-item borderBottom label="养殖量" required prop="plant">
|
|
<up-form-item borderBottom label="养殖量" required prop="plant">
|
|
|
<up-input v-model="form.plant.plantingMgAmount" placeholder="请输入养殖量" border="none"></up-input>
|
|
<up-input v-model="form.plant.plantingMgAmount" placeholder="请输入养殖量" border="none"></up-input>
|
|
|
<ut-action-sheet v-model="form.plant.plantingMgUnit" :tabs="scale_unit" title="选择单位">
|
|
<ut-action-sheet v-model="form.plant.plantingMgUnit" :tabs="scale_unit" title="选择单位">
|
|
@@ -121,11 +123,34 @@
|
|
|
</view>
|
|
</view>
|
|
|
</ut-action-sheet>
|
|
</ut-action-sheet>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
- <up-form-item borderBottom label="备注" required prop="remark">
|
|
|
|
|
|
|
+ <up-form-item borderBottom label="备注" required prop="remark" id="remarkpppp">
|
|
|
<up-input v-model="form.remark" placeholder="请输入备注" border="none"></up-input>
|
|
<up-input v-model="form.remark" placeholder="请输入备注" border="none"></up-input>
|
|
|
</up-form-item>
|
|
</up-form-item>
|
|
|
</view>
|
|
</view>
|
|
|
</up-form>
|
|
</up-form>
|
|
|
|
|
+ <view v-if="+form.mgMethod == 2" class="">
|
|
|
|
|
+ <view class="startline-title pl-24 ml-24 mb-16">个体标识信息</view>
|
|
|
|
|
+ <view class="bg-#fff pd-24">
|
|
|
|
|
+ <view class="d-flex pt-20 pb-20">
|
|
|
|
|
+ <view class="">个体标识({{ animalIds.length }}个)</view>
|
|
|
|
|
+ <view class="flex1"></view>
|
|
|
|
|
+ <view class="border-#79C58C radius-100 c-primary f-s-24 pd4-10-20-10-20 d-flex a-c j-c">扫一扫添加</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="d-flex gap-20">
|
|
|
|
|
+ <view @click="showDeleteDialog = true" class="b-radius border-#AFDDBB bg-#FBFDFB c-primary w-100% d-flex j-c a-c h-100 f-s-34">手动输入添加</view>
|
|
|
|
|
+ <view class="b-radius border-#A3E5EA c-#18BECA bg-#FAFFFF w-100% d-flex j-c a-c h-100 f-s-34">从种源库快速添加</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <up-swipe-action>
|
|
|
|
|
+ <up-swipe-action-item v-model:show="showswipeAction" :options="options1">
|
|
|
|
|
+ <view class="swipe-action up-border-top up-border-bottom">
|
|
|
|
|
+ <view class="swipe-action__content">
|
|
|
|
|
+ <text class="swipe-action__content__text">基础使用</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </up-swipe-action-item>
|
|
|
|
|
+ </up-swipe-action>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<template #bottom>
|
|
<template #bottom>
|
|
|
<view class="pd-24 d-flex j-c gap-20 base-bottom-wrap">
|
|
<view class="pd-24 d-flex j-c gap-20 base-bottom-wrap">
|
|
@@ -134,7 +159,14 @@
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
</z-paging>
|
|
</z-paging>
|
|
|
-
|
|
|
|
|
|
|
+ <ut-confirm-dialog v-model:show="showDeleteDialog" width="75vw" title="添加个体标识" :confirmText="'确认'" :cancelText="'取消'" @confirm="handleDeleteConfirm" @cancel="handleDeleteCancel">
|
|
|
|
|
+ <view class="">
|
|
|
|
|
+ <view class="c-#333 f-s-28"> 个体标识号 </view>
|
|
|
|
|
+ <view class="">
|
|
|
|
|
+ <up-input placeholder="请输入个体标识号" v-model="animalId" border="bottom"></up-input>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </ut-confirm-dialog>
|
|
|
<!-- 添加drawer组件 -->
|
|
<!-- 添加drawer组件 -->
|
|
|
<Drawer v-if="drawerVisible" :baseType="form.taskType" v-model="drawerVisible" @open="onDrawerOpen" @close="onDrawerClose" @confirm="onDrawerConfirm" />
|
|
<Drawer v-if="drawerVisible" :baseType="form.taskType" v-model="drawerVisible" @open="onDrawerOpen" @close="onDrawerClose" @confirm="onDrawerConfirm" />
|
|
|
</template>
|
|
</template>
|
|
@@ -171,7 +203,75 @@ const form = ref({
|
|
|
BreedingArea: '',
|
|
BreedingArea: '',
|
|
|
breedingVolume: '',
|
|
breedingVolume: '',
|
|
|
remark: '',
|
|
remark: '',
|
|
|
|
|
+ delegateFlag: '0',
|
|
|
});
|
|
});
|
|
|
|
|
+//单个溯源都数组
|
|
|
|
|
+const animalIds = ref<any>([]);
|
|
|
|
|
+const animalId = ref();
|
|
|
|
|
+const showDeleteDialog = ref(false);
|
|
|
|
|
+const showswipeAction = ref(false);
|
|
|
|
|
+// 使用 reactive 创建响应式对象
|
|
|
|
|
+const options1 = reactive([
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '删除',
|
|
|
|
|
+ style: {
|
|
|
|
|
+ backgroundColor: '#f56c6c',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '编辑',
|
|
|
|
|
+ style: {
|
|
|
|
|
+ backgroundColor: '#37A954',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+]);
|
|
|
|
|
+// 自定义校验函数:养殖时间校验
|
|
|
|
|
+const validateBreedingTime = (rule: any, value: any, callback: any) => {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ callback(new Error('请选择养殖时间'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ const { plannedStartDate, plannedEndDate } = value;
|
|
|
|
|
+ if (!plannedStartDate) {
|
|
|
|
|
+ callback(new Error('请选择养殖开始时间'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!plannedEndDate) {
|
|
|
|
|
+ callback(new Error('请选择养殖结束时间'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ const startDate = new Date(plannedStartDate);
|
|
|
|
|
+ const endDate = new Date(plannedEndDate);
|
|
|
|
|
+ if (endDate <= startDate) {
|
|
|
|
|
+ callback(new Error('养殖结束时间必须晚于开始时间'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ callback();
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 自定义校验函数:养殖量校验
|
|
|
|
|
+const validateBreedingAmount = (rule: any, value: any, callback: any) => {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ callback(new Error('请输入养殖量'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const { plantingMgAmount, plantingMgUnit } = value;
|
|
|
|
|
+
|
|
|
|
|
+ if (!plantingMgAmount || plantingMgAmount.trim() === '') {
|
|
|
|
|
+ callback(new Error('请输入养殖量'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!plantingMgUnit) {
|
|
|
|
|
+ callback(new Error('请选择养殖量单位'));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ callback();
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
const rules = reactive({
|
|
const rules = reactive({
|
|
|
baseId: [{ required: true, message: '请选择种养殖所在的基地' }],
|
|
baseId: [{ required: true, message: '请选择种养殖所在的基地' }],
|
|
|
taskType: [{ required: true, message: '请选择任务类型' }],
|
|
taskType: [{ required: true, message: '请选择任务类型' }],
|
|
@@ -181,19 +281,15 @@ const rules = reactive({
|
|
|
plantationCode: [{ required: true, message: '请输入养殖批号' }],
|
|
plantationCode: [{ required: true, message: '请输入养殖批号' }],
|
|
|
technicalFile: [{ required: true, message: '请选择养殖技术规程文件' }],
|
|
technicalFile: [{ required: true, message: '请选择养殖技术规程文件' }],
|
|
|
plantationMethod: [{ required: true, message: '请选择养殖方式' }],
|
|
plantationMethod: [{ required: true, message: '请选择养殖方式' }],
|
|
|
- 'queryType6.plannedStartDate': [{ required: true, message: '请选择养殖开始时间' }],
|
|
|
|
|
- 'queryType6.plannedEndDate': [{ required: true, message: '请选择养殖结束时间' }],
|
|
|
|
|
|
|
+ queryType6: [{ validator: validateBreedingTime, trigger: 'blur' }],
|
|
|
plantingAmount: [{ required: true, message: '请输入养殖面积' }],
|
|
plantingAmount: [{ required: true, message: '请输入养殖面积' }],
|
|
|
breedScale: [{ required: true, message: '请输入养殖区域' }],
|
|
breedScale: [{ required: true, message: '请输入养殖区域' }],
|
|
|
- 'plant.plantingMgAmount': [{ required: true, message: '请输入养殖量' }],
|
|
|
|
|
- 'plant.plantingMgUnit': [{ required: true, message: '请选择养殖量单位' }],
|
|
|
|
|
|
|
+ plant: [{ validator: validateBreedingAmount, trigger: 'blur' }],
|
|
|
remark: [{ required: true, message: '请输入备注' }],
|
|
remark: [{ required: true, message: '请输入备注' }],
|
|
|
});
|
|
});
|
|
|
-const paging = ref<unknown>('paging');
|
|
|
|
|
|
|
+const upFormRef = ref<any>();
|
|
|
|
|
+const paging = ref<any>();
|
|
|
const list = ref<unknown>([]);
|
|
const list = ref<unknown>([]);
|
|
|
-setTimeout(() => {
|
|
|
|
|
- console.log(form.value?.technicalFile, 'technicalFile');
|
|
|
|
|
-}, 10000);
|
|
|
|
|
// 控制抽屉显示状态
|
|
// 控制抽屉显示状态
|
|
|
const drawerVisible = ref(false);
|
|
const drawerVisible = ref(false);
|
|
|
|
|
|
|
@@ -222,10 +318,15 @@ const deawerData = ref<any>(null);
|
|
|
function onDrawerConfirm(data: any) {
|
|
function onDrawerConfirm(data: any) {
|
|
|
console.log('收到基地选择数据:', data);
|
|
console.log('收到基地选择数据:', data);
|
|
|
deawerData.value = data;
|
|
deawerData.value = data;
|
|
|
- form.value.baseId = data.data?.baseId;
|
|
|
|
|
- // 这里可以将数据赋值给表单的相应字段
|
|
|
|
|
- // 例如:form.value.plantBase = data.baseName;
|
|
|
|
|
- // 可以根据需要添加其他处理逻辑
|
|
|
|
|
|
|
+ // 确认基地id
|
|
|
|
|
+ form.value.baseId = data.data[0]?.baseId;
|
|
|
|
|
+ //确认地块面积
|
|
|
|
|
+ form.value.plantingAmount = '';
|
|
|
|
|
+ data.data.forEach((i: any) => {
|
|
|
|
|
+ form.value.plantingAmount += i.area;
|
|
|
|
|
+ });
|
|
|
|
|
+ //确认养殖区域的个数
|
|
|
|
|
+ form.value.breedScale = data.data?.length;
|
|
|
}
|
|
}
|
|
|
// 处理Baseinfo组件的关闭事件
|
|
// 处理Baseinfo组件的关闭事件
|
|
|
function handleBaseinfoClose() {
|
|
function handleBaseinfoClose() {
|
|
@@ -233,7 +334,7 @@ function handleBaseinfoClose() {
|
|
|
}
|
|
}
|
|
|
const Biological = ref<any>(null);
|
|
const Biological = ref<any>(null);
|
|
|
//随机生成
|
|
//随机生成
|
|
|
-const randomCode = () => {
|
|
|
|
|
|
|
+const randomCode = async () => {
|
|
|
let plType = '';
|
|
let plType = '';
|
|
|
if (+form.value.taskType == 1) {
|
|
if (+form.value.taskType == 1) {
|
|
|
plType = 'P';
|
|
plType = 'P';
|
|
@@ -242,12 +343,58 @@ const randomCode = () => {
|
|
|
} else {
|
|
} else {
|
|
|
plType = 'C';
|
|
plType = 'C';
|
|
|
}
|
|
}
|
|
|
- const code = useClientRequest.post('/plt-api/app/plantationTask/getBatchCode', { plType: plType, linkType: plType });
|
|
|
|
|
|
|
+ const code = await useClientRequest.post('/plt-api/app/plantationTask/getBatchCode', { plType: plType, linkType: plType });
|
|
|
form.value.plantationCode = code.data;
|
|
form.value.plantationCode = code.data;
|
|
|
|
|
+ console.log(code.data, 'code.data');
|
|
|
};
|
|
};
|
|
|
//完成提交表单
|
|
//完成提交表单
|
|
|
const save = () => {
|
|
const save = () => {
|
|
|
- console.log(form.value);
|
|
|
|
|
|
|
+ uni.$u.debounce(async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ await upFormRef.value?.validate();
|
|
|
|
|
+ const params = {
|
|
|
|
|
+ ...form.value,
|
|
|
|
|
+ plannedStartDate: form.value.queryType6.plannedStartDate,
|
|
|
|
|
+ plannedEndDate: form.value.queryType6.plannedEndDate,
|
|
|
|
|
+ plantingMgAmount: form.value.plant.plantingMgAmount,
|
|
|
|
|
+ plantingMgUnit: form.value.plant.plantingMgUnit,
|
|
|
|
|
+ };
|
|
|
|
|
+ const res = await useClientRequest.post('/plt-api/app/plantationTask/saveTask', params);
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '提交成功',
|
|
|
|
|
+ icon: 'success',
|
|
|
|
|
+ duration: 2000,
|
|
|
|
|
+ });
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ uni.navigateBack();
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error: any) {
|
|
|
|
|
+ // 滚动到第一个错误字段
|
|
|
|
|
+ console.log(error);
|
|
|
|
|
+
|
|
|
|
|
+ const firstErrorField = error && error[0].field + 'pppp';
|
|
|
|
|
+ paging.value?.scrollIntoViewById(firstErrorField, 30, true);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+//确认添加个体
|
|
|
|
|
+const handleDeleteConfirm = () => {
|
|
|
|
|
+ if (animalId.value) {
|
|
|
|
|
+ animalIds.value.push(animalId.value);
|
|
|
|
|
+ animalId.value = null;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: '请输入个体标识号',
|
|
|
|
|
+ icon: 'none',
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+const handleDeleteCancel = () => {
|
|
|
|
|
+ animalId.value = null;
|
|
|
};
|
|
};
|
|
|
onLoad((options) => {
|
|
onLoad((options) => {
|
|
|
form.value.taskType = options?.taskType;
|
|
form.value.taskType = options?.taskType;
|