|
|
@@ -6,12 +6,12 @@
|
|
|
<u-form-item label="标准样地地点:" labelWidth="100" prop="sample_addr" borderBottom>
|
|
|
<u--input v-model="baseForm.sample_addr" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="标准样地编号:" labelWidth="100" prop="lng" borderBottom>
|
|
|
- <u--input v-model="baseForm.lng" border="none">
|
|
|
+ <u-form-item label="标准样地编号:" labelWidth="100" prop="sample_num" borderBottom>
|
|
|
+ <u--input v-model="baseForm.sample_num" border="none">
|
|
|
</u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="标准样地面积:" labelWidth="100" prop="sample_area" borderBottom>
|
|
|
- <u--input v-model="baseForm.sample_area" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.sample_area" border="none" suffixIcon="亩"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="经度:" labelWidth="100" prop="lng" borderBottom>
|
|
|
<u--input v-model="baseForm.lng" border="none"></u--input>
|
|
|
@@ -20,14 +20,14 @@
|
|
|
<u--input v-model="baseForm.lat" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="海拔:" labelWidth="100" prop="height" borderBottom>
|
|
|
- <u--input v-model="baseForm.height" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.height" border="none" suffixIcon="米"></u--input>
|
|
|
</u-form-item>
|
|
|
- <!-- <u-form-item label="发生境:" labelWidth="100" prop="occurs" borderBottom>
|
|
|
- <u--input v-model="baseForm.occurs" placeholder="请选择" disabled disabledColor="#ffffff"
|
|
|
+ <u-form-item label="发生境:" labelWidth="100" prop="occurs_name" borderBottom @click="handleOccursClick">
|
|
|
+ <u--input v-model="baseForm.occurs_name" placeholder="请选择" disabled disabledColor="#ffffff"
|
|
|
border="none">
|
|
|
</u--input>
|
|
|
<uni-icons type="forward" slot="right"></uni-icons>
|
|
|
- </u-form-item> -->
|
|
|
+ </u-form-item>
|
|
|
<u-form-item label="物种名称:" labelWidth="100" prop="pest_name" borderBottom>
|
|
|
<u--input v-model="baseForm.pest_name" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
@@ -38,7 +38,7 @@
|
|
|
<u--input v-model="baseForm.pest_name_2" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="是否需要协助调查:" labelWidth="140" prop="is_check" borderBottom>
|
|
|
- <u-switch v-model="baseForm.is_check"></u-switch>
|
|
|
+ <u-switch v-model="baseForm.is_check" activeValue="是" inactiveValue="否"></u-switch>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害对象:" labelWidth="80" prop="harm_obj" borderBottom>
|
|
|
<!-- <u--input v-model="baseForm.harm_obj" border="none"></u--input> -->
|
|
|
@@ -62,72 +62,89 @@
|
|
|
<u-collapse :accordion="false">
|
|
|
<u-collapse-item title="样方/样线编号:1">
|
|
|
<u-form-item label="调查株数样线长度:" labelWidth="100" prop="check_num_1" borderBottom>
|
|
|
- <u--input v-model="baseForm.check_num_1" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.check_num_1" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="受害株数/受害病株所垮长度:" labelWidth="100" prop="harm_num_1" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_num_1" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_num_1" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害率:" labelWidth="100" prop="harm_rate_1" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_rate_1" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_rate_1" border="none" type="digit" suffixIcon="%">
|
|
|
+ </u--input>
|
|
|
</u-form-item>
|
|
|
</u-collapse-item>
|
|
|
<u-collapse-item title="样方/样线编号:2">
|
|
|
<u-form-item label="调查株数样线长度:" labelWidth="100" prop="baseForm.check_num_2" borderBottom>
|
|
|
- <u--input v-model="baseForm.check_num_2" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.check_num_2" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="受害株数/受害病株所垮长度:" labelWidth="100" prop="harm_num_2" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_num_2" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_num_2" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害率:" labelWidth="100" prop="harm_rate_2" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_rate_2" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_rate_2" border="none" suffixIcon="%" type="digit">
|
|
|
+ </u--input>
|
|
|
</u-form-item>
|
|
|
</u-collapse-item>
|
|
|
<u-collapse-item title="样方/样线编号:3">
|
|
|
<u-form-item label="调查株数样线长度:" labelWidth="100" prop="check_num_3" borderBottom>
|
|
|
- <u--input v-model="baseForm.check_num_3" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.check_num_3" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="受害株数/受害病株所垮长度:" labelWidth="100" prop="harm_num_3" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_num_3" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_num_3" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害率:" labelWidth="100" prop="harm_rate_3" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_rate_3" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_rate_3" border="none" type="digit" suffixIcon="%">
|
|
|
+ </u--input>
|
|
|
</u-form-item>
|
|
|
</u-collapse-item>
|
|
|
<u-collapse-item title="样方/样线编号:4">
|
|
|
<u-form-item label="调查株数样线长度:" labelWidth="100" prop="check_num_4" borderBottom>
|
|
|
- <u--input v-model="baseForm.check_num_4" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.check_num_4" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="受害株数/受害病株所垮长度:" labelWidth="100" prop="harm_num_4" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_num_4" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_num_4" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害率:" labelWidth="100" prop="harm_rate_4" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_rate_4" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_rate_4" border="none" type="digit" suffixIcon="%">
|
|
|
+ </u--input>
|
|
|
</u-form-item>
|
|
|
</u-collapse-item>
|
|
|
<u-collapse-item title="样方/样线编号:5">
|
|
|
<u-form-item label="调查株数样线长度:" labelWidth="100" prop="check_num_5" borderBottom>
|
|
|
- <u--input v-model="baseForm.check_num_5" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.check_num_5" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="受害株数/受害病株所垮长度:" labelWidth="100" prop="harm_num_5" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_num_5" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_num_5" border="none" type="digit"></u--input>
|
|
|
</u-form-item>
|
|
|
<u-form-item label="危害率:" labelWidth="100" prop="harm_rate_5" borderBottom>
|
|
|
- <u--input v-model="baseForm.harm_rate_5" border="none"></u--input>
|
|
|
+ <u--input v-model="baseForm.harm_rate_5" border="none" type="digit" suffixIcon="%">
|
|
|
+ </u--input>
|
|
|
</u-form-item>
|
|
|
</u-collapse-item>
|
|
|
</u-collapse>
|
|
|
<u-form-item label="是否采集样本:" labelWidth="140" prop="is_gather" borderBottom>
|
|
|
- <u-switch v-model="baseForm.is_gather"></u-switch>
|
|
|
+ <u-switch v-model="baseForm.is_gather" activeValue="是" inactiveValue="否"></u-switch>
|
|
|
</u-form-item>
|
|
|
</u--form>
|
|
|
</view>
|
|
|
<view class="record-form__actions">
|
|
|
- <u-button @click="submit" type="primary">提交</u-button>
|
|
|
+ <u-button @click="submit" type="primary" :disabled="submitLoading" :loading="submitLoading">提交</u-button>
|
|
|
</view>
|
|
|
+ <u-picker :show="show" keyName="label" :columns="occurs_columns" @confirm="confirm" @cancel="show = false"
|
|
|
+ @change="changeHandler" ref="uPicker">
|
|
|
+ </u-picker>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ import * as formRecordService from '@/service/formRecord.js';
|
|
|
+ import {
|
|
|
+ first,
|
|
|
+ last,
|
|
|
+ forEach,
|
|
|
+ assign,
|
|
|
+ isEmpty
|
|
|
+ } from 'lodash-es';
|
|
|
+
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -138,77 +155,71 @@
|
|
|
lng: '', // 经度,
|
|
|
lat: '', // 纬度,
|
|
|
height: '', // 海拔
|
|
|
- sample_area: '', //踏查点面积
|
|
|
+ sample_area: '', //标准样地面积
|
|
|
occurs: '', // 发生境
|
|
|
+ occurs_name:'',
|
|
|
pest_name: '', //物种名称
|
|
|
pest_name_2: '', //拉丁学名
|
|
|
pest_name_3: '', //当地俗名
|
|
|
- is_check: '', // 是否需要辅助调查 是/否
|
|
|
+ is_check: '是', // 是否需要辅助调查 是/否
|
|
|
harm_obj: '', //危害对象
|
|
|
harm_crop: '', //危害植物
|
|
|
- sample_no_1: '', // 样方/样线编号1
|
|
|
+ sample_no_1: '1', // 样方/样线编号1
|
|
|
check_num_1: '', // 调查株数/样线长度
|
|
|
harm_num_1: '', // 受害株数
|
|
|
harm_rate_1: '', // 危害率
|
|
|
- sample_no_2: '', // 样方/样线编号2
|
|
|
+ sample_no_2: '2', // 样方/样线编号2
|
|
|
check_num_2: '', // 调查株数/样线长度
|
|
|
harm_num_2: '', // 受害株数
|
|
|
harm_rate_2: '', // 危害率
|
|
|
- sample_no_3: '', // 样方/样线编号3
|
|
|
+ sample_no_3: '3', // 样方/样线编号3
|
|
|
check_num_3: '', // 调查株数/样线长度
|
|
|
harm_num_3: '', // 受害株数
|
|
|
harm_rate_3: '', // 危害率
|
|
|
- sample_no_4: '', // 样方/样线编号4
|
|
|
+ sample_no_4: '4', // 样方/样线编号4
|
|
|
check_num_4: '', // 调查株数/样线长度
|
|
|
harm_num_4: '', // 受害株数
|
|
|
harm_rate_4: '', // 危害率
|
|
|
- sample_no_5: '', // 样方/样线编号5
|
|
|
+ sample_no_5: '5', // 样方/样线编号5
|
|
|
check_num_5: '', // 调查株数/样线长度
|
|
|
harm_num_5: '', // 受害株数
|
|
|
harm_rate_5: '', // 危害率
|
|
|
+ sample_no_6: '6', // 样方/样线编号 平均值
|
|
|
+ check_num_6: '', // 调查株数/样线长度
|
|
|
+ harm_num_6: '', // 受害株数
|
|
|
+ harm_rate_6: '', // 危害率
|
|
|
harm_place: '', // 危害部位
|
|
|
- is_gather: '', // 是否采集标本 是/否
|
|
|
+ is_gather: '是', // 是否采集标本 是/否
|
|
|
},
|
|
|
rules: {
|
|
|
'sample_addr': {
|
|
|
type: 'string',
|
|
|
required: true,
|
|
|
- message: '请填写踏查点名称',
|
|
|
+ message: '请填写标准样地地点名称',
|
|
|
trigger: ['blur', 'change']
|
|
|
},
|
|
|
'lng': {
|
|
|
type: 'string',
|
|
|
- max: 1,
|
|
|
required: true,
|
|
|
message: '请填写经度',
|
|
|
trigger: ['blur', 'change']
|
|
|
},
|
|
|
'lat': {
|
|
|
type: 'string',
|
|
|
- max: 1,
|
|
|
required: true,
|
|
|
message: '请填写纬度',
|
|
|
trigger: ['blur', 'change']
|
|
|
},
|
|
|
'height': {
|
|
|
type: 'string',
|
|
|
- max: 1,
|
|
|
required: true,
|
|
|
message: '请填写海拔',
|
|
|
trigger: ['blur', 'change']
|
|
|
},
|
|
|
'sample_area': {
|
|
|
type: 'string',
|
|
|
- max: 1,
|
|
|
- required: true,
|
|
|
- message: '请填写踏查点面积',
|
|
|
- trigger: ['blur', 'change']
|
|
|
- },
|
|
|
- 'occurs': {
|
|
|
- type: 'string',
|
|
|
- max: 1,
|
|
|
required: true,
|
|
|
- message: '请选择发生境',
|
|
|
+ message: '请填写标准样地面积',
|
|
|
trigger: ['blur', 'change']
|
|
|
},
|
|
|
},
|
|
|
@@ -294,34 +305,122 @@
|
|
|
value: '生态系统'
|
|
|
}, ],
|
|
|
harmPlaceList: [{
|
|
|
- label: '根',
|
|
|
- value: '根'
|
|
|
- }, {
|
|
|
- label: '茎',
|
|
|
- value: '茎'
|
|
|
- }, {
|
|
|
- label: '叶',
|
|
|
- value: '叶'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '花',
|
|
|
- value: '花'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '果实',
|
|
|
- value: '果实'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '其他',
|
|
|
- value: '其他'
|
|
|
- },
|
|
|
+ label: '根',
|
|
|
+ value: '根'
|
|
|
+ }, {
|
|
|
+ label: '茎',
|
|
|
+ value: '茎'
|
|
|
+ }, {
|
|
|
+ label: '叶',
|
|
|
+ value: '叶'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '花',
|
|
|
+ value: '花'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '果实',
|
|
|
+ value: '果实'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '其他',
|
|
|
+ value: '其他'
|
|
|
+ },
|
|
|
],
|
|
|
+ submitLoading: false,
|
|
|
+ columnData: [],
|
|
|
+ show:false
|
|
|
}
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ occurs_columns() {
|
|
|
+ const level1DataList = [];
|
|
|
+
|
|
|
+ forEach(this.habitatList, item => {
|
|
|
+ level1DataList.push({
|
|
|
+ label: item.label,
|
|
|
+ value: item.value
|
|
|
+ })
|
|
|
+
|
|
|
+ if (isEmpty(item.children)) {
|
|
|
+ this.columnData.push([])
|
|
|
+ } else {
|
|
|
+ this.columnData.push(item.children)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ return [
|
|
|
+ level1DataList,
|
|
|
+ this.columnData[0]
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ handleOccursClick() {
|
|
|
+ this.show = true;
|
|
|
+ console.log('click occurs click')
|
|
|
+ },
|
|
|
+ confirm({
|
|
|
+ value
|
|
|
+ }) {
|
|
|
+ console.log('before confirm --------------14', value)
|
|
|
+ const firstInfo = first(value);
|
|
|
+ const lastInfo = last(value);
|
|
|
+
|
|
|
+ this.baseForm.occurs = lastInfo ? lastInfo.value : firstInfo.value;
|
|
|
+ this.baseForm.occurs_name = lastInfo ? firstInfo.label + '/' + lastInfo.label : firstInfo.label;
|
|
|
+ this.show = false;
|
|
|
+ },
|
|
|
+ changeHandler(e) {
|
|
|
+ const {
|
|
|
+ columnIndex,
|
|
|
+ value,
|
|
|
+ values, // values为当前变化列的数组内容
|
|
|
+ index,
|
|
|
+ // 微信小程序无法将picker实例传出来,只能通过ref操作
|
|
|
+ picker = this.$refs.uPicker
|
|
|
+ } = e
|
|
|
+ // 当第一列值发生变化时,变化第二列(后一列)对应的选项
|
|
|
+ if (columnIndex === 0) {
|
|
|
+ // picker为选择器this实例,变化第二列对应的选项
|
|
|
+ picker.setColumnValues(1, this.columnData[index])
|
|
|
+ }
|
|
|
+ },
|
|
|
submit() {
|
|
|
this.$refs.uForm.validate().then(res => {
|
|
|
- uni.$u.toast('校验通过')
|
|
|
+ this.submitLoading = true;
|
|
|
+
|
|
|
+ const averageValue = (key, len) => {
|
|
|
+ let total = 0;
|
|
|
+ for (let i = 1; i <= len; i++) {
|
|
|
+ total += this.baseForm[key + '_' + i] * 1
|
|
|
+ }
|
|
|
+
|
|
|
+ return (total / len).toFixed(2);
|
|
|
+ }
|
|
|
+
|
|
|
+ const payload = assign({}, this.baseForm, {
|
|
|
+ check_num_6: averageValue('check_num', 5),
|
|
|
+ harm_num_6: averageValue('harm_num', 5),
|
|
|
+ harm_rate_6: averageValue('harm_rate', 5),
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log(payload, 'submit sample plot');
|
|
|
+
|
|
|
+ formRecordService.addSampleRecordForm(payload).then(res => {
|
|
|
+ console.log(res, '------------- add form success')
|
|
|
+ uni.$u.toast('提交成功')
|
|
|
+
|
|
|
+ // setTimeout(() => {
|
|
|
+ // uni.navigateBack({
|
|
|
+ // delta: 1
|
|
|
+ // })
|
|
|
+ // }, 1000)
|
|
|
+
|
|
|
+ }).finally(() => {
|
|
|
+ this.submitLoading = false;
|
|
|
+ })
|
|
|
}).catch(errors => {
|
|
|
uni.$u.toast('校验失败')
|
|
|
})
|