|
|
@@ -65,59 +65,87 @@
|
|
|
</up-form-item>
|
|
|
<!-- 是否Gap基地 -->
|
|
|
<view class="h-1" id="gapFlagpppp"></view>
|
|
|
- <up-form-item borderBottom label="是否为Gap基地" required prop="baseInfo.gapFlag">
|
|
|
- <up-radio-group v-model="form.baseInfo.gapFlag">
|
|
|
- <up-radio :customStyle="{ marginRight: '60rpx' }" v-for="(item, index) in yes_no" :key="index" :label="item.label" :name="item.value"></up-radio>
|
|
|
- </up-radio-group>
|
|
|
- </up-form-item>
|
|
|
- <view class="h-1" id="adcodepppp"></view>
|
|
|
- <up-form-item @click="showArea = true" borderBottom label="基地具体地址" required prop="baseInfo.gapInfo.adcode">
|
|
|
- <!-- <up-input v-model="form.address" placeholder="请选择基地所在省/市/县/镇(乡)" border="none" clearable></up-input> -->
|
|
|
- <view v-if="form?.baseInfo?.gapInfo?.adcode" class="f-s-30 c-333 f-w-5 flex1">{{ form?.baseInfo?.gapInfo?.adcodeName }} </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 v-if="['1', '2'].includes(form.baseInfo.baseType)">
|
|
|
+ <up-form-item borderBottom label="是否为Gap基地" required prop="baseInfo.gapFlag">
|
|
|
+ <up-radio-group v-model="form.baseInfo.gapFlag">
|
|
|
+ <up-radio :customStyle="{ marginRight: '60rpx' }" v-for="(item, index) in yes_no" :key="index" :label="item.label" :name="item.value"></up-radio>
|
|
|
+ </up-radio-group>
|
|
|
+ </up-form-item>
|
|
|
+ <!-- 关联的GAP获评信息 -->
|
|
|
+ <template v-if="+form.baseInfo.gapFlag">
|
|
|
+ <up-form-item borderBottom label="关联的GAP获评信息" prop="baseInfo.gapId">
|
|
|
+ <up-button @click="selectGapInfo" type="primary" text="确定" plain>
|
|
|
+ <up-icon class="mr-10" name="plus" color="#37A954"></up-icon>
|
|
|
+ <span>请选择要关联的GAP基地获评信息</span>
|
|
|
+ </up-button>
|
|
|
+ </up-form-item>
|
|
|
</template>
|
|
|
- </up-form-item>
|
|
|
- <up-form-item borderBottom prop="baseInfo.gapInfo.address">
|
|
|
- <up-input v-model="form.baseInfo.gapInfo.address" placeholder="请填写村级以下的具体地址信息" border="none" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
- <up-form-item borderBottom prop="baseInfo.gapInfo.basePic" required>
|
|
|
- <view class="flex1 ov-hd">
|
|
|
- <view class="d-flex a-c mb-10" style="margin-bottom: 5px">
|
|
|
- <view class="f-s-30 c-#666">基地范围</view>
|
|
|
+ </template>
|
|
|
+ <template v-if="!+form.baseInfo.gapFlag && !form.baseInfo.gapId">
|
|
|
+ <view class="h-1" id="adcodepppp"></view>
|
|
|
+ <up-form-item @click="showArea = true" borderBottom label="基地具体地址" required prop="baseInfo.gapInfo.adcode">
|
|
|
+ <!-- <up-input v-model="form.address" placeholder="请选择基地所在省/市/县/镇(乡)" border="none" clearable></up-input> -->
|
|
|
+ <view v-if="form?.baseInfo?.gapInfo?.adcode" class="f-s-30 c-333 f-w-5 flex1">{{ form?.baseInfo?.gapInfo?.adcodeName }} </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>
|
|
|
+ <up-form-item borderBottom prop="baseInfo.gapInfo.address">
|
|
|
+ <up-input v-model="form.baseInfo.gapInfo.address" placeholder="请填写村级以下的具体地址信息" border="none" clearable></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item v-if="['1', '2'].includes(form.baseInfo.baseType)" borderBottom prop="baseInfo.gapInfo.basePic" required>
|
|
|
+ <view class="flex1 ov-hd">
|
|
|
+ <view class="d-flex a-c mb-10" style="margin-bottom: 5px">
|
|
|
+ <view class="f-s-30 c-#666">基地范围</view>
|
|
|
+ </view>
|
|
|
+ <view class="bg-#ccc d-flex ov-hd p-rtv" @click="mapDrawArea">
|
|
|
+ <image class="w-full h-380" v-if="form.baseInfo.gapInfo?.basePic" :src="form.baseInfo.gapInfo.basePic" mode="widthFix" />
|
|
|
+ <image class="w-full h-380" v-else src="@/static/images/plant/base/select_base_gap.png" mode="widthFix" />
|
|
|
+ <view v-if="!form.baseInfo.gapInfo?.basePic" class="btn-aree-center d-flex flex-cln a-c j-c">
|
|
|
+ <image class="w-52 h-52 mb-10" src="@/static/images/plant/base/draw_area_icon.png" mode="widthFix" />
|
|
|
+ <view class="c-primary f-s-28 f-w-400">点击绘制基地范围</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <view class="bg-#ccc d-flex ov-hd p-rtv" @click="mapDrawArea">
|
|
|
- <image class="w-full h-380" v-if="form.baseInfo.gapInfo?.basePic" :src="form.baseInfo.gapInfo.basePic" mode="widthFix" />
|
|
|
- <image class="w-full h-380" v-else src="@/static/images/plant/base/select_base_gap.png" mode="widthFix" />
|
|
|
- <view v-if="!form.baseInfo.gapInfo?.basePic" class="btn-aree-center d-flex flex-cln a-c j-c">
|
|
|
- <image class="w-52 h-52 mb-10" src="@/static/images/plant/base/draw_area_icon.png" mode="widthFix" />
|
|
|
- <view class="c-primary f-s-28 f-w-400">点击绘制基地范围</view>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item v-if="['3'].includes(form.baseInfo.baseType)" borderBottom>
|
|
|
+ <view class="flex1 ov-hd">
|
|
|
+ <view class="d-flex a-c mb-10" style="margin-bottom: 5px">
|
|
|
+ <view class="f-s-30 c-#666">基地范围</view>
|
|
|
+ </view>
|
|
|
+ <view class="bg-#ccc d-flex ov-hd p-rtv" @click="mapDrawArea">
|
|
|
+ <image class="w-full h-380" v-if="form.baseInfo.gapInfo?.basePic" :src="form.baseInfo.gapInfo.basePic" mode="widthFix" />
|
|
|
+ <image class="w-full h-380" v-else src="@/static/images/plant/base/select_base_gap.png" mode="widthFix" />
|
|
|
+ <view v-if="!form.baseInfo.gapInfo?.basePic" class="btn-aree-center d-flex flex-cln a-c j-c">
|
|
|
+ <image class="w-52 h-52 mb-10" src="@/static/images/plant/base/draw_area_icon.png" mode="widthFix" />
|
|
|
+ <view class="c-primary f-s-28 f-w-400">点击绘制基地范围</view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
- </up-form-item>
|
|
|
- <view class="h-1" id="areaPppp"></view>
|
|
|
- <up-form-item required borderBottom label="基地面积" prop="baseInfo.gapInfo.area">
|
|
|
- <up-input v-model="form.baseInfo.gapInfo.area" placeholder="地块绘制后自动带出可修改" border="none" clearable></up-input>
|
|
|
- <template #right>
|
|
|
- <span>{{ form.baseInfo.gapInfo.areaUnit }}</span>
|
|
|
- </template>
|
|
|
- </up-form-item>
|
|
|
- <!-- 基地经纬度 -->
|
|
|
- <view class="h-1" id="lngpppp"></view>
|
|
|
- <view class="h-1" id="latpppp"></view>
|
|
|
- <up-form-item required label="基地经纬度" class="form-item-wrap-column">
|
|
|
- <view class="d-flex" style="margin-top: -10px">
|
|
|
- <up-form-item prop="baseInfo.gapInfo.lng">
|
|
|
- <up-input v-model="form.baseInfo.gapInfo.lng" border="bottom" placeholder="70-150内的经度数值" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
- <view class="pd-5"></view>
|
|
|
- <up-form-item prop="baseInfo.gapInfo.lat">
|
|
|
- <up-input v-model="form.baseInfo.gapInfo.lat" placeholder="4-53内的纬度数值" border="bottom" clearable></up-input>
|
|
|
- </up-form-item>
|
|
|
- </view>
|
|
|
- </up-form-item>
|
|
|
+ </up-form-item>
|
|
|
+ <view class="h-1" id="areaPppp"></view>
|
|
|
+ <up-form-item required borderBottom label="基地面积" prop="baseInfo.gapInfo.area">
|
|
|
+ <up-input v-model="form.baseInfo.gapInfo.area" placeholder="地块绘制后自动带出可修改" border="none" clearable></up-input>
|
|
|
+ <template #right>
|
|
|
+ <span>{{ form.baseInfo.gapInfo.areaUnit }}</span>
|
|
|
+ </template>
|
|
|
+ </up-form-item>
|
|
|
+ <!-- 基地经纬度 -->
|
|
|
+ <view class="h-1" id="lngpppp"></view>
|
|
|
+ <view class="h-1" id="latpppp"></view>
|
|
|
+ <up-form-item required label="基地经纬度" class="form-item-wrap-column">
|
|
|
+ <view class="d-flex" style="margin-top: -10px">
|
|
|
+ <up-form-item prop="baseInfo.gapInfo.lng">
|
|
|
+ <up-input v-model="form.baseInfo.gapInfo.lng" border="bottom" placeholder="70-150内的经度数值" clearable></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ <view class="pd-5"></view>
|
|
|
+ <up-form-item prop="baseInfo.gapInfo.lat">
|
|
|
+ <up-input v-model="form.baseInfo.gapInfo.lat" placeholder="4-53内的纬度数值" border="bottom" clearable></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ </view>
|
|
|
+ </up-form-item>
|
|
|
+ </template>
|
|
|
</view>
|
|
|
<!-- 地块/圈舍/组培架信息 -->
|
|
|
<view ref="plotRef" class="h-1" id="plot12345"></view>
|
|
|
@@ -126,6 +154,22 @@
|
|
|
<view class="startline-title">地块信息</view>
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff">
|
|
|
+ <up-swipe-action>
|
|
|
+ <template v-for="(item, index) in form.landInfoList" :key="index">
|
|
|
+ <up-swipe-action-item class="mb-20" :options="options" @click="clickPlotSwipe($event, item, index, '编辑地块信息')">
|
|
|
+ <view class="plot-item pd-24">
|
|
|
+ <view class="d-flex mb-16">
|
|
|
+ <view class="f-s-32 f-w-5 c-#333 flex1 mr-10">{{ item?.landName || '-' }}</view>
|
|
|
+ <view v-if="item?.contactName" class="f-s-24 c-#333">负责人:{{ item?.contactName }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="f-s-28 c-#666">
|
|
|
+ <span class="">面积:</span>
|
|
|
+ <span class="c-#333 f-w-5">{{ item?.area || '-' }}{{ item?.areaUnit || '-' }}</span>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </up-swipe-action-item>
|
|
|
+ </template>
|
|
|
+ </up-swipe-action>
|
|
|
<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>
|
|
|
@@ -142,12 +186,12 @@
|
|
|
<up-swipe-action-item class="mb-20" :options="options" @click="clickPlotSwipe($event, item, index, '编辑圈舍信息')">
|
|
|
<view class="plot-item pd-24">
|
|
|
<view class="d-flex mb-16">
|
|
|
- <view class="f-s-30 f-w-5 c-#333 flex1 mr-10">{{ item?.landName || '-' }}</view>
|
|
|
+ <view class="f-s-32 f-w-5 c-#333 flex1 mr-10">{{ item?.landName || '-' }}</view>
|
|
|
<view v-if="item?.contactName" class="f-s-24 c-#333">负责人:{{ item?.contactName }}</view>
|
|
|
</view>
|
|
|
<view class="f-s-28 c-#666">
|
|
|
<span class="">面积:</span>
|
|
|
- <span class="c-#333">{{ item?.area || '-' }}{{ item?.areaUnit || '-' }}</span>
|
|
|
+ <span class="c-#333 f-w-5">{{ item?.area || '-' }}{{ item?.areaUnit || '-' }}</span>
|
|
|
</view>
|
|
|
</view>
|
|
|
</up-swipe-action-item>
|
|
|
@@ -165,6 +209,36 @@
|
|
|
<view class="startline-title">组培架信息</view>
|
|
|
</view>
|
|
|
<view class="pd-24 bg-#fff">
|
|
|
+ <up-swipe-action>
|
|
|
+ <template v-for="(item, index) in form.landInfoList" :key="index">
|
|
|
+ <up-swipe-action-item class="mb-20" :options="options" @click="clickPlotSwipe($event, item, index, '编辑组培架信息')">
|
|
|
+ <view class="plot-item pd-24">
|
|
|
+ <view class="d-flex mb-16">
|
|
|
+ <view class="f-s-32 f-w-5 c-#333 flex1 mr-10">{{ item?.landName || '-' }}</view>
|
|
|
+ <view v-if="item?.contactName" class="f-s-24 c-#333">负责人:{{ item?.contactName }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="d-flex flex-wrap gap-10">
|
|
|
+ <view class="f-s-28 c-#666 w-310">
|
|
|
+ <span class="">层数:</span>
|
|
|
+ <span class="c-#333 f-w-5">{{ item?.layers || '-' }}</span>
|
|
|
+ </view>
|
|
|
+ <view class="f-s-28 c-#666 w-310">
|
|
|
+ <span class="">每层容量:</span>
|
|
|
+ <span class="c-#333 f-w-5">{{ item?.capacityAmount || '-' }}{{ item?.capacityUnit || '-' }}</span>
|
|
|
+ </view>
|
|
|
+ <view class="f-s-28 c-#666 w-310">
|
|
|
+ <span class="">总容量:</span>
|
|
|
+ <span class="c-#333 f-w-5">{{ item?.capacityAmount * item?.layers || '-' }}{{ item?.capacityUnit || '-' }}</span>
|
|
|
+ </view>
|
|
|
+ <view class="f-s-28 c-#666 w-310">
|
|
|
+ <span v-if="item?.lightType" class="mr-10">{{ selectDictLabel(pt_light_type, item?.lightType) }}</span>
|
|
|
+ <span v-if="item?.tempeStatus">{{ +item?.tempeStatus ? '有独立温控' : '无独立温控' }}</span>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </up-swipe-action-item>
|
|
|
+ </template>
|
|
|
+ </up-swipe-action>
|
|
|
<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>
|
|
|
@@ -377,26 +451,17 @@
|
|
|
<up-form-item label="湿度" prop="environmentInfo.avgTem" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.avgTem" placeholder="请输入湿度" border="none" clearable></up-input>
|
|
|
<template #right>
|
|
|
- <span>℃</span>
|
|
|
+ <span>%</span>
|
|
|
</template>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="洁净度" prop="environmentInfo.avgTem" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.avgTem" placeholder="请输入洁净度" border="none" clearable></up-input>
|
|
|
- <template #right>
|
|
|
- <span>℃</span>
|
|
|
- </template>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="光照" prop="environmentInfo.avgTem" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.avgTem" placeholder="请输入光照" border="none" clearable></up-input>
|
|
|
- <template #right>
|
|
|
- <span>℃</span>
|
|
|
- </template>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="光照周期" prop="environmentInfo.avgTem" borderBottom>
|
|
|
<up-input v-model="form.environmentInfo.avgTem" placeholder="请输入光照周期" border="none" clearable></up-input>
|
|
|
- <template #right>
|
|
|
- <span>℃</span>
|
|
|
- </template>
|
|
|
</up-form-item>
|
|
|
</view>
|
|
|
</template>
|
|
|
@@ -409,8 +474,8 @@
|
|
|
</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 }" @submit="submitFormPlotAdd"></FormPlot>
|
|
|
- <FormPlot v-if="showPlotEdit" v-model:show="showPlotEdit" v-model="rowFormEdit" :title="plotTitle" :dict="{ pt_light_type, pt_capacity_unit }" @submit="submitFormPlotEdit"></FormPlot>
|
|
|
+ <FormPlot v-if="showPlot" v-model:show="showPlot" v-model="rowForm" :title="plotTitle" :dict="{ pt_light_type, pt_capacity_unit, yes_no }" @submit="submitFormPlotAdd"></FormPlot>
|
|
|
+ <FormPlot v-if="showPlotEdit" v-model:show="showPlotEdit" v-model="rowFormEdit" :title="plotTitle" :dict="{ pt_light_type, pt_capacity_unit, yes_no }" @submit="submitFormPlotEdit"></FormPlot>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
import { useUserStore } from '@/store';
|
|
|
@@ -441,6 +506,12 @@ const form = ref<any>({
|
|
|
baseType: '',
|
|
|
baseName: '',
|
|
|
baseCode: '',
|
|
|
+ gapFlag: '',
|
|
|
+ buildDate: '',
|
|
|
+ orgType: '',
|
|
|
+ contactId: '',
|
|
|
+ contactName: '',
|
|
|
+ gapId: '',
|
|
|
gapInfo: {
|
|
|
adcode: '',
|
|
|
adcodeName: '',
|
|
|
@@ -625,6 +696,21 @@ const selectCpyMember = () => {
|
|
|
url: '/tools/select-cpy-member/index',
|
|
|
});
|
|
|
};
|
|
|
+const selectGapInfo = () => {
|
|
|
+ uni.$on('selectGapInfo', (item: any) => {
|
|
|
+ console.log(item);
|
|
|
+ form.value.baseInfo.gapId = item.id;
|
|
|
+ form.value.baseInfo.gapBaseInfo = item;
|
|
|
+ uni.$off('selectGapInfo');
|
|
|
+ });
|
|
|
+ uni.$u.route({
|
|
|
+ type: 'navigateTo',
|
|
|
+ url: '/tools/select-gap-info/index',
|
|
|
+ params: {
|
|
|
+ baseType: form.value.baseInfo.baseType,
|
|
|
+ },
|
|
|
+ });
|
|
|
+};
|
|
|
const confirmArea = (area: any) => {
|
|
|
form.value.baseInfo.gapInfo.adcodeName = area.fullName;
|
|
|
};
|
|
|
@@ -683,8 +769,6 @@ const mapUnitByBaseType: any = {
|
|
|
'2': '平方米',
|
|
|
'3': '平方米',
|
|
|
};
|
|
|
-
|
|
|
-
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.z-paging-wrap {
|