|
|
@@ -16,15 +16,10 @@
|
|
|
<up-alert type="primary" fontSize="24rpx" description="注意:基地不强制与品种挂钩!基地地址以行政村为界,可成片集中或相对集中,跨村则视为另一基地(连片跨村除外)。"></up-alert>
|
|
|
<view class="pd-10"></view>
|
|
|
<view class="h-1" id="baseTypepppp"></view>
|
|
|
- <ut-action-sheet v-model="form.baseInfo.baseType" :tabs="pt_base_type" title="选择基地类型">
|
|
|
- <up-form-item borderBottom label="基地类型" required prop="baseType">
|
|
|
- <view v-if="form.baseInfo.baseType" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_base_type, form.baseInfo.baseType) }}</view>
|
|
|
- <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择基地类型</view>
|
|
|
- <template #right>
|
|
|
- <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
|
|
|
- </template>
|
|
|
- </up-form-item>
|
|
|
- </ut-action-sheet>
|
|
|
+ <up-form-item borderBottom label="基地类型" required prop="baseType">
|
|
|
+ <view v-if="form.baseInfo.baseType" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_base_type, form.baseInfo.baseType) }}</view>
|
|
|
+ <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择基地类型</view>
|
|
|
+ </up-form-item>
|
|
|
<!-- 基地名称 -->
|
|
|
<view class="h-1" id="baseNamepppp"></view>
|
|
|
<up-form-item borderBottom label="基地名称" required prop="baseName">
|
|
|
@@ -126,7 +121,7 @@
|
|
|
<view class="startline-title">地块信息</view>
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff">
|
|
|
- <up-button type="primary" text="确定" plain>
|
|
|
+ <up-button @click="addPlot({ landType: form.baseInfo.baseType, areaUnit: form.baseInfo.gapInfo.areaUnit }, '添加地块')" type="primary" text="确定" plain>
|
|
|
<up-icon class="mr-10" name="plus" color="#37A954"></up-icon>
|
|
|
<span>添加地块信息</span>
|
|
|
</up-button>
|
|
|
@@ -137,7 +132,7 @@
|
|
|
<view class="startline-title">圈舍信息</view>
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff">
|
|
|
- <up-button type="primary" text="确定" plain>
|
|
|
+ <up-button @click="addPlot({ landType: form.baseInfo.baseType, areaUnit: form.baseInfo.gapInfo.areaUnit }, '添加圈舍')" type="primary" text="确定" plain>
|
|
|
<up-icon class="mr-10" name="plus" color="#37A954"></up-icon>
|
|
|
<span>添加圈舍信息</span>
|
|
|
</up-button>
|
|
|
@@ -148,7 +143,7 @@
|
|
|
<view class="startline-title">组培架信息</view>
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff">
|
|
|
- <up-button type="primary" text="确定" plain>
|
|
|
+ <up-button @click="addPlot({ landType: form.baseInfo.baseType, areaUnit: form.baseInfo.gapInfo.areaUnit, capacityUnit: '瓶' }, '添加组培架')" type="primary" text="确定" plain>
|
|
|
<up-icon class="mr-10" name="plus" color="#37A954"></up-icon>
|
|
|
<span>添加组培架信息</span>
|
|
|
</up-button>
|
|
|
@@ -175,21 +170,41 @@
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff mb-10">
|
|
|
<view class="f-s-32 c-#333 f-w-600">环境信息</view>
|
|
|
- <up-form-item label="土壤类型" prop="environmentInfo.soilType" borderBottom>
|
|
|
- <up-input v-model="form.environmentInfo.soilType" placeholder="请输入土壤类型" border="none" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
- <up-form-item label="土壤质地" prop="environmentInfo.soilTexture" borderBottom>
|
|
|
- <up-input v-model="form.environmentInfo.soilTexture" placeholder="请输入土壤质地" border="none" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
+ <!-- 土壤类型选择 -->
|
|
|
+ <ut-action-sheet v-model="form.environmentInfo.soilType" :tabs="pt_soil_type" title="选择土壤类型">
|
|
|
+ <up-form-item borderBottom label="土壤类型" prop="soilType">
|
|
|
+ <view v-if="form.environmentInfo.soilType" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_soil_type, form.environmentInfo.soilType) }}</view>
|
|
|
+ <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择土壤类型</view>
|
|
|
+ <template #right>
|
|
|
+ <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
|
|
|
+ </template>
|
|
|
+ </up-form-item>
|
|
|
+ </ut-action-sheet>
|
|
|
+ <!-- 字典 -->
|
|
|
+ <ut-action-sheet v-model="form.environmentInfo.soilTexture" :tabs="pt_soil_texture" title="选择土壤质地">
|
|
|
+ <up-form-item borderBottom label="土壤质地" prop="soilTexture">
|
|
|
+ <view v-if="form.environmentInfo.soilTexture" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_soil_texture, form.environmentInfo.soilTexture) }}</view>
|
|
|
+ <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择土壤质地</view>
|
|
|
+ <template #right>
|
|
|
+ <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
|
|
|
+ </template>
|
|
|
+ </up-form-item>
|
|
|
+ </ut-action-sheet>
|
|
|
<up-form-item label="有机质含量" prop="environmentInfo.organic" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.organic" placeholder="请输入有机质含量" border="none" clearable></up-input>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="土壤PH值" prop="environmentInfo.soilPh" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.soilPh" placeholder="请输入土壤PH值" border="none" clearable></up-input>
|
|
|
</up-form-item>
|
|
|
- <up-form-item label="水源类型" prop="environmentInfo.waterType" borderBottom>
|
|
|
- <up-input v-model="form.environmentInfo.waterType" placeholder="请输入水源类型" border="none" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
+ <ut-action-sheet v-model="form.environmentInfo.waterType" :tabs="pt_water_type" title="选择水源类型">
|
|
|
+ <up-form-item borderBottom label="水源类型" prop="waterType">
|
|
|
+ <view v-if="form.environmentInfo.waterType" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_water_type, form.environmentInfo.waterType) }}</view>
|
|
|
+ <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择水源类型</view>
|
|
|
+ <template #right>
|
|
|
+ <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
|
|
|
+ </template>
|
|
|
+ </up-form-item>
|
|
|
+ </ut-action-sheet>
|
|
|
<up-form-item label="无霜期" prop="environmentInfo.notFrost" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.notFrost" placeholder="请输入无霜期" border="none" clearable></up-input>
|
|
|
<template #right>
|
|
|
@@ -263,9 +278,16 @@
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff mb-10">
|
|
|
<view class="f-s-32 c-#333 f-w-600">环境信息</view>
|
|
|
- <up-form-item label="水源类型" prop="environmentInfo.waterType" borderBottom>
|
|
|
- <up-input v-model="form.environmentInfo.waterType" placeholder="请输入水源类型" border="none" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
+ <ut-action-sheet v-model="form.environmentInfo.waterType" :tabs="pt_water_type" title="选择水源类型">
|
|
|
+ <up-form-item borderBottom label="水源类型" prop="waterType">
|
|
|
+ <view v-if="form.environmentInfo.waterType" class="f-s-30 c-333 f-w-5 flex1">{{ selectDictLabel(pt_water_type, form.environmentInfo.waterType) }}</view>
|
|
|
+ <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择水源类型</view>
|
|
|
+ <template #right>
|
|
|
+ <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
|
|
|
+ </template>
|
|
|
+ </up-form-item>
|
|
|
+ </ut-action-sheet>
|
|
|
+
|
|
|
<up-form-item label="无霜期" prop="environmentInfo.notFrost" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.notFrost" placeholder="请输入无霜期" border="none" clearable></up-input>
|
|
|
<template #right>
|
|
|
@@ -365,12 +387,15 @@
|
|
|
</template>
|
|
|
</z-paging>
|
|
|
<ut-picker-area v-model:show="showArea" v-model="form.baseInfo.gapInfo.adcode" @confirm="confirmArea"></ut-picker-area>
|
|
|
+ <FormPlot v-if="showPlot" v-model:show="showPlot" v-model="rowForm" :title="plotTitle" :dict="{ pt_light_type, pt_capacity_unit }"></FormPlot>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
import { useUserStore } from '@/store';
|
|
|
import { useClientRequest } from '@/utils/request';
|
|
|
import { isOpenSetting } from '@/utils/common';
|
|
|
import { generateUniqueId } from '@/utils/public';
|
|
|
+import FormPlot from './models/form-plot.vue';
|
|
|
+
|
|
|
const tabs = reactive([
|
|
|
{ label: '基本信息', value: 'base' },
|
|
|
{ label: '地块信息', value: 'plot' },
|
|
|
@@ -378,10 +403,13 @@ const tabs = reactive([
|
|
|
]);
|
|
|
const activeTab = ref('base');
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
-const { yes_no, pt_org_type, pt_base_type } = toRefs<any>(proxy?.useDict('yes_no', 'pt_org_type', 'pt_base_type'));
|
|
|
+const { yes_no, pt_org_type, pt_base_type, pt_water_type, pt_soil_type, pt_soil_texture, pt_light_type, pt_capacity_unit } = toRefs<any>(proxy?.useDict('yes_no', 'pt_org_type', 'pt_base_type', 'pt_water_type', 'pt_soil_type', 'pt_soil_texture', 'pt_light_type', 'pt_capacity_unit'));
|
|
|
const paging = ref<any>(null);
|
|
|
const upFormRef = ref<any>(null);
|
|
|
const showArea = ref(false);
|
|
|
+const showPlot = ref(false);
|
|
|
+const plotTitle = ref('添加地块信息');
|
|
|
+const rowForm = ref<any>(null);
|
|
|
const form = ref<any>({
|
|
|
baseInfo: {
|
|
|
baseType: '',
|
|
|
@@ -473,15 +501,17 @@ const submitForm = async () => {
|
|
|
|
|
|
const mapDrawArea = async () => {
|
|
|
uni.$on('mapAreaData', (data: any) => {
|
|
|
+ console.log(data);
|
|
|
+
|
|
|
// 这里可以将 data 赋值给 form 中的相应字段
|
|
|
form.value.baseInfo.gapInfo.basePic = data.gapInfo.basePic;
|
|
|
form.value.baseInfo.gapInfo.area = String(data.gapInfo.area);
|
|
|
form.value.baseInfo.gapInfo.areaUnit = data.gapInfo.areaUnit;
|
|
|
form.value.baseInfo.coordinates = data.coordinates;
|
|
|
- form.value.baseInfo.gapInfo.lng = data.gapInfo.lng;
|
|
|
- form.value.baseInfo.gapInfo.lat = data.gapInfo.lat;
|
|
|
- form.value.baseInfo.lnglat = `${data.gapInfo.lng},${data.gapInfo.lat}`;
|
|
|
- form.value.baseInfo.zoom = data.zoom;
|
|
|
+ form.value.baseInfo.gapInfo.lng = data.mapInfo.lng;
|
|
|
+ form.value.baseInfo.gapInfo.lat = data.mapInfo.lat;
|
|
|
+ form.value.baseInfo.lnglat = `${data.mapInfo.lng},${data.mapInfo.lat}`;
|
|
|
+ form.value.baseInfo.zoom = data.mapInfo.zoom;
|
|
|
uni.$off('mapAreaData');
|
|
|
});
|
|
|
if (form.value.baseInfo.gapInfo?.basePic) {
|
|
|
@@ -556,7 +586,26 @@ const getLocationByAddress = async () => {
|
|
|
lat: location.latitude,
|
|
|
};
|
|
|
};
|
|
|
-
|
|
|
+const addPlot = (rowItem: any, title = '添加地块') => {
|
|
|
+ console.log(rowItem, '+dadas');
|
|
|
+
|
|
|
+ rowForm.value = {
|
|
|
+ ...rowItem,
|
|
|
+ };
|
|
|
+ plotTitle.value = title;
|
|
|
+ showPlot.value = true;
|
|
|
+};
|
|
|
+const mapUnitByBaseType: any = {
|
|
|
+ '1': '亩',
|
|
|
+ '2': '平方米',
|
|
|
+ '3': '平方米',
|
|
|
+};
|
|
|
+onLoad((options: any) => {
|
|
|
+ form.value.baseInfo.baseType = options.baseType || '1';
|
|
|
+ form.value.baseInfo.gapInfo.areaUnit = mapUnitByBaseType[options.baseType || '1'];
|
|
|
+ console.log(options, mapUnitByBaseType[options.baseType || '1']);
|
|
|
+
|
|
|
+});
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.z-paging-wrap {
|