diff --git a/pages/massif/add_farming.vue b/pages/massif/add_farming.vue
index 3943dd2..539a4ae 100644
--- a/pages/massif/add_farming.vue
+++ b/pages/massif/add_farming.vue
@@ -208,7 +208,7 @@
操作 病虫害记录
- 过程:{{formData.farmPests.growthProcessLabel}},病虫害部位:{{formData.farmPests.pestSite}},症状:{{formData.farmPests.symptomLabel}}({{formData.farmPests.pestName.map(v=>v.name).join(',')}})
+ 过程:{{formData.farmPests.growthProcess}},病虫害部位:{{formData.farmPests.pestSite}},症状:{{formData.farmPests.symptom}}({{formData.farmPests.pestName.map(v=>v.name).join(',')}})
diff --git a/pages/massif/pestRecord.vue b/pages/massif/pestRecord.vue
index b9fc1ae..224755d 100644
--- a/pages/massif/pestRecord.vue
+++ b/pages/massif/pestRecord.vue
@@ -14,10 +14,10 @@
:field="k"
v-bind="v"
:required="!!rules[k]"
- :value="/^checkBox$|^navigate$/.test(v.type)?fields[k].value:formData[k]"
+ :value="/^select$|^checkBox$|^navigate$/.test(v.type)?fields[k].value:formData[k]"
@input="formData[k]=$event"
@checkBox="fields[k].value=$event;formData[k]=$event.join(',')"
- @select="formData[k]=$event[0].value;fields[k].value=$event[0].label"
+ @select="formData[k]=$event[0].value;fields[k].value=[formData[k]]"
@imgs="fields[k].value=$event"/>
@@ -32,8 +32,9 @@ export default {
pestSite:{label:"病虫害部位",type:"checkBox",value:[],columns:[{label:"根",value:"根"},{label:"茎",value:"茎"},{label:"叶",value:"叶"}]},
growthProcess:{label:"作物生长过程",type:"select-tab",dictCode:"growth_process"},
symptom:{label:"显著症状",type:"select-tab",dictCode:"symptom"},
- pestName:{label:"害虫名称",type:"navigate",value:"",btnFun:()=>uni.navigateTo({
- url:"/pages/massif/pestType",
+ pestType:{label:"病虫害类型",type:"select",columns:[[{label:"病害",value:"病害"},{label:"虫害",value:"虫害"}]],value:['虫害']},
+ pestName:{label:()=>`${this.formData.pestType}名称`,type:"navigate",value:"",btnFun:()=>uni.navigateTo({
+ url:`/pages/massif/pestType?type=${({"病害":"disease","虫害":"pestis"})[this.formData.pestType]}`,
events:{type:e=>{
this.formData.pestName=e
this.fields.pestName.value=e.map(v=>v.name).join(",")
@@ -50,6 +51,7 @@ export default {
growthProcess:'',
pestSite:'',
symptom:"",
+ pestType:"虫害",
pestName:[],
medicationArea:"",
pic:[],
@@ -59,6 +61,7 @@ export default {
growthProcess:{required:true,message:"请选择作物生长过程!",trigger:['blur','change']},
pestSite:{required:true,message:"请选择病虫害部位!",trigger:['blur','change']},
symptom:{required:true,message:"请选择显著症状!",trigger:['blur','change']},
+ pestType:{required:true,message:"请选择病虫害类型!",trigger:['blur','change']},
pestName:{required:true,message:"请选择害虫!",type:"array",trigger:['blur','change']},
medicationArea:{required:true,message:"请输入农资作用面积!",type:"number",trigger:['blur','change']},
pic:{required:true,validator:(rule,val,call)=>{
@@ -74,8 +77,8 @@ export default {
this.eventChannel.on("detail",e=>{
this.fields.pic.value=e.pic||''
this.fields.pestSite.value=e?.pestSite?.split?.(",")?.filter?.(v=>v)||[]
- this.fields.growthProcess.value=e?.growthProcessLabel||""
- this.fields.symptom.value=e?.symptomLabel||""
+ // this.fields.growthProcess.value=e?.growthProcessLabel||""
+ // this.fields.symptom.value=e?.symptomLabel||""
this.fields.pestName.value=e?.pestName?.map(v=>v.name).join(',')
this.formData=Object.assign(this.formData,{
...e,
@@ -90,8 +93,8 @@ export default {
this.eventChannel.emit("addPest",{
...this.formData,
pic:this.fields.pic.value,
- growthProcessLabel:this.fields.growthProcess.value,
- symptomLabel:this.fields.symptom.value,
+ // growthProcessLabel:this.fields.growthProcess.value,
+ // symptomLabel:this.fields.symptom.value,
})
uni.navigateBack()
}
diff --git a/pages/massif/pestType.vue b/pages/massif/pestType.vue
index 1a049ad..905aac1 100644
--- a/pages/massif/pestType.vue
+++ b/pages/massif/pestType.vue
@@ -91,25 +91,27 @@
-
+
-
-
-
- {{v.label}}
-
- 害虫种类
+
+
+
+
+ {{v.label}}
+
+
+ {{({pestis:'虫害',disease:'病害'})[type]}}种类
{{v.name}}
@@ -137,6 +139,7 @@ export default {
select:[],
eventChannel:null,
show:false,
+ type:"", //病害:disease 虫害:pestis
}
},
computed:{
@@ -144,10 +147,15 @@ export default {
return this.cropList?.[this.cropCurrent]?.children||[]
},
},
- onLoad(){
+ onLoad(options){
+ this.type=options.type
this.eventChannel=this.getOpenerEventChannel()
this.eventChannel.on("ids",e=>this.select=e)
- this.init()
+ if(this.type=='pestis'){
+ this.init()
+ }else{
+ this.searchDisease()
+ }
},
methods:{
async init(){
@@ -182,7 +190,7 @@ export default {
this.list=[]
uni.showModal({
title:"提示",
- content:res.msg||"获取种植计划选项失败!",
+ content:res.msg||"获取虫害失败!",
showCancel:false,
})
}
@@ -204,7 +212,7 @@ export default {
this.list=[]
uni.showModal({
title:"提示",
- content:res.msg||"获取种植计划选项失败!",
+ content:res.msg||"获取虫害失败!",
showCancel:false,
})
}
@@ -213,6 +221,21 @@ export default {
}
}
},
+
+ async searchDisease(){
+ var res=await request("/api/plantFarming/getDiseaseByLike",{
+ params:{search: this.searchVal.search}
+ })
+ if(res.statu){
+ this.list=res.data.map(v=>({id:v.id,name:v.dictName}))
+ }else{
+ uni.showModal({
+ title:"提示",
+ content:res.msg||"获取病害失败!",
+ showCancel:false,
+ })
+ }
+ },
submit(){
if(this.select.length>0){
this.eventChannel.emit("type", this.select)
@@ -226,21 +249,39 @@ export default {
}
},
async addPest(e){
- var res=await request("/common/api/dict/AddCategory",{
- method:"post",
- body:{
- pid: typeof this.searchVal.value=='string'?this.searchVal.value:this.cropList.find(v=>v.pest==this.searchVal.value).value,
- name:e
+ if(this.type=='pestis'){//虫害
+ var res=await request("/common/api/dict/AddCategory",{
+ method:"post",
+ body:{
+ pid: typeof this.searchVal.value=='string'?this.searchVal.value:this.cropList.find(v=>v.pest==this.searchVal.value).value,
+ name:e
+ }
+ })
+ if(res.statu){
+ this.list.push({id:res,name:e})
+ }else{
+ uni.showModal({
+ title:"提示",
+ content:"添加虫害失败!",
+ showCancel:false,
+ })
}
- })
- if(res.statu){
- this.list.push(e)
- }else{
- uni.showModal({
- title:"提示",
- content:"添加害虫失败!",
- showCancel:false,
+ }else{//病害
+ var res=await request("/common/api/dict/addDictItem",{
+ params:{
+ dictCode:"disease_type",
+ text:e,
+ }
})
+ if(res.statu){
+ this.list.push({id:res.data.id,name:e})
+ }else{
+ uni.showModal({
+ title:"提示",
+ content:"添加病害失败!",
+ showCancel:false,
+ })
+ }
}
},
selectPest(e){
diff --git a/uni_modules/d-form/components/d-form/d-form.vue b/uni_modules/d-form/components/d-form/d-form.vue
index 196b33c..872d796 100644
--- a/uni_modules/d-form/components/d-form/d-form.vue
+++ b/uni_modules/d-form/components/d-form/d-form.vue
@@ -280,16 +280,16 @@
-
+
-
+
{{suffix}}
{{value.length>0?Object.values(value[0]).join():"选择经纬度"}}
{{pickerContent}}
- {{value||placeholder||`请选择${label}`}}
+ {{value||placeholder||`请选择${labelName}`}}
{{v.label}}
自定义+
@@ -299,7 +299,7 @@
添加照片
-
+
{{value[0]||startPlaceholder||'开始时间'}}
-
@@ -315,7 +315,7 @@
- {{value||placeholder||`请选择${label}`}}
+ {{value||placeholder||`请选择${labelName}`}}
{{tip}}
@@ -409,7 +409,7 @@ import {computeArea} from '@/common/utils'
export default{
props:{
label:{
- type:String,
+ type:[String,Function],
default:"",
},
suffix:{
@@ -518,6 +518,9 @@ import {computeArea} from '@/common/utils'
}
},
computed:{
+ labelName(){
+ return typeof this.label=='string'?this.label:this.label()
+ },
date(){
if(this.dateType=='start')return this.value[0]||new Date().format('yyyy-MM-dd');
else return this.value[1]||new Date().format('yyyy-MM-dd');
@@ -534,7 +537,7 @@ import {computeArea} from '@/common/utils'
},
pickerContent(){//下拉选择 表单显示数据
if(this.type=='select'){
- return this.$defineArray(setPickerVal(this.columns[0], this.value).filter(v=>v)).at(-1)?.label||this.placeholder||`请选择${this.label}`
+ return this.$defineArray(setPickerVal(this.columns[0], this.value).filter(v=>v)).at(-1)?.label||this.placeholder||`请选择${this.labelName}`
}
return ''
},
@@ -565,7 +568,7 @@ import {computeArea} from '@/common/utils'
}else{
uni.showModal({
title:"提示",
- content:res.msg||`获取${this.label}选项失败!`,
+ content:res.msg||`获取${this.labelName}选项失败!`,
showCancel:false,
})
}
@@ -584,7 +587,7 @@ import {computeArea} from '@/common/utils'
}else{
uni.showModal({
title:"提示",
- content:res.msg||`添加${this.label}失败!`,
+ content:res.msg||`添加${this.labelName}失败!`,
showCancel:false,
})
}