Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
basic-uniapp-v3
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-uniapp-v3
Commits
a5aa2470
提交
a5aa2470
authored
11月 06, 2025
作者:
宇宙超人
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
基地管理
上级
52cdf723
全部展开
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
146 行增加
和
28 行删除
+146
-28
nongchang.ts
src/api/model/nongchang.ts
+22
-0
add.vue
src/pages/jidiguanli/add.vue
+124
-28
jidiguanli.vue
src/pages/jidiguanli/jidiguanli.vue
+0
-0
没有找到文件。
src/api/model/nongchang.ts
浏览文件 @
a5aa2470
...
@@ -10,6 +10,17 @@ enum Api {
...
@@ -10,6 +10,17 @@ enum Api {
getFarmBaseList
=
'/farmbase/getFarmBaseList'
,
getFarmBaseList
=
'/farmbase/getFarmBaseList'
,
}
}
/**
/**
* 农场基地管理-通过id查询
* @param params
* @returns
*/
export
function
getFarmbaseInfoById
(
params
:
any
=
{})
{
return
otherHttp
.
get
({
url
:
'/farmbase/queryById'
,
params
,
})
}
/**
* 删除基地
* 删除基地
* @param id
* @param id
* @returns
* @returns
...
@@ -31,6 +42,17 @@ export function addFarmbase(params = {}) {
...
@@ -31,6 +42,17 @@ export function addFarmbase(params = {}) {
})
})
}
}
/**
/**
* 编辑基地
* @param params
* @returns
*/
export
function
editFarmbase
(
params
=
{})
{
return
otherHttp
.
post
({
url
:
'/farmbase/edit'
,
params
,
})
}
/**
* 基地列表
* 基地列表
* @param {any} params
* @param {any} params
* @return
* @return
...
...
src/pages/jidiguanli/add.vue
浏览文件 @
a5aa2470
...
@@ -185,8 +185,18 @@ const rules = {
...
@@ -185,8 +185,18 @@ const rules = {
{
required
:
true
,
message
:
'请选择基地类型'
,
trigger
:
'change'
}
{
required
:
true
,
message
:
'请选择基地类型'
,
trigger
:
'change'
}
],
],
scale
:
[
scale
:
[
{
required
:
true
,
message
:
'请输入规模'
,
trigger
:
'blur'
},
{
{
pattern
:
/^
[
1-9
]\d
*$/
,
message
:
'规模必须为正整数'
,
trigger
:
'blur'
}
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
||
value
===
''
)
{
callback
(
new
Error
(
'请输入规模'
))
}
else
if
(
!
/^
[
1-9
]\d
*$/
.
test
(
value
.
toString
()))
{
callback
(
new
Error
(
'规模必须为正整数'
))
}
else
{
callback
()
}
},
trigger
:
[
'blur'
,
'change'
]
}
],
],
province
:
[
province
:
[
{
{
...
@@ -218,17 +228,26 @@ const rules = {
...
@@ -218,17 +228,26 @@ const rules = {
{
min
:
2
,
max
:
100
,
message
:
'种植作物长度在2-100个字符之间'
,
trigger
:
'blur'
}
{
min
:
2
,
max
:
100
,
message
:
'种植作物长度在2-100个字符之间'
,
trigger
:
'blur'
}
],
],
operationYears
:
[
operationYears
:
[
{
required
:
true
,
message
:
'请输入经营年限'
,
trigger
:
'blur'
},
{
{
pattern
:
/^
[
1-9
]\d
*$/
,
message
:
'经营年限必须为正整数'
,
trigger
:
'blur'
}
validator
:
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
value
&&
!
/^
[
1-9
]\d
*$/
.
test
(
value
.
toString
()))
{
callback
(
new
Error
(
'经营年限必须为正整数'
))
}
else
{
callback
()
}
},
message
:
'经营年限必须为正整数'
,
trigger
:
[
'blur'
,
'change'
]
}
],
],
identityProveUrl
:
[
identityProveUrl
:
[
{
required
:
true
,
message
:
'请上传身份证明'
,
trigger
:
'change'
,
type
:
'array'
}
{
required
:
true
,
message
:
'请上传身份证明'
,
trigger
:
'change'
,
type
:
'array'
}
],
],
landProveUrl
:
[
landProveUrl
:
[
{
required
:
true
,
message
:
'请上传场地证明'
,
trigger
:
'change'
,
type
:
'array'
}
{
required
:
true
,
message
:
'请上传场地证明'
,
trigger
:
'change'
,
type
:
'array'
}
],
],
productionProveUrl
:
[
productionProveUrl
:
[
{
required
:
true
,
message
:
'请上传生产证明'
,
trigger
:
'change'
,
type
:
'array'
}
{
required
:
true
,
message
:
'请上传生产证明'
,
trigger
:
'change'
,
type
:
'array'
}
]
]
}
}
function
handleChangeFarmType
(
e
)
{
function
handleChangeFarmType
(
e
)
{
...
@@ -305,46 +324,123 @@ const deletePic = (event: any, key) => {
...
@@ -305,46 +324,123 @@ const deletePic = (event: any, key) => {
// 提交表单
// 提交表单
const
submitForm
=
async
()
=>
{
const
submitForm
=
async
()
=>
{
try
{
try
{
// 先进行表单验证
const
valid
=
await
formRef
.
value
.
validate
()
const
valid
=
await
formRef
.
value
.
validate
()
if
(
valid
)
{
if
(
!
valid
)
{
return
}
loading
.
value
=
true
loading
.
value
=
true
// 这里应该调用提交API
let
paramData
=
{
...
formData
};
// 准备提交数据
paramData
.
baseImages
=
paramData
.
baseImages
.
join
(
','
);
const
submitData
=
{
...
formData
}
paramData
.
identityProveUrl
=
paramData
.
identityProveUrl
.
join
(
','
);
paramData
.
landProveUrl
=
paramData
.
landProveUrl
.
join
(
','
);
// 将数组字段转换为逗号分隔的字符串
paramData
.
productionProveUrl
=
paramData
.
productionProveUrl
.
join
(
','
);
const
arrayFields
=
[
paramData
.
qualityCertificateUrl
=
paramData
.
qualityCertificateUrl
.
join
(
','
);
'baseImages'
,
paramData
.
otherMaterialUrl
=
paramData
.
otherMaterialUrl
.
join
(
','
);
'identityProveUrl'
,
NongchangAPI
.
addFarmbase
(
paramData
).
then
(
res
=>
{
'landProveUrl'
,
loading
.
value
=
false
'productionProveUrl'
,
uni
.
showToast
({
title
:
'提交成功'
,
icon
:
'success'
})
'qualityCertificateUrl'
,
'otherMaterialUrl'
]
arrayFields
.
forEach
(
field
=>
{
if
(
Array
.
isArray
(
submitData
[
field
]))
{
submitData
[
field
]
=
submitData
[
field
].
filter
(
item
=>
item
?.
trim
()).
join
(
','
)
}
})
// 根据是否有ID决定调用编辑还是新增接口
const
apiCall
=
submitData
.
id
?
NongchangAPI
.
editFarmbase
:
NongchangAPI
.
addFarmbase
try
{
await
apiCall
(
submitData
)
uni
.
showToast
({
title
:
'提交成功'
,
icon
:
'success'
,
duration
:
1500
})
// 延迟返回上一页
setTimeout
(()
=>
{
setTimeout
(()
=>
{
uni
.
navigateBack
()
uni
.
navigateBack
()
},
800
)
},
1500
)
}).
catch
(
err
=>
{
loading
.
value
=
false
;
}
catch
(
error
)
{
Message
.
toast
(
err
.
message
)
console
.
error
(
'API调用失败:'
,
error
)
uni
.
showToast
({
title
:
error
.
message
||
'提交失败,请重试'
,
icon
:
'none'
,
duration
:
2000
})
})
}
finally
{
loading
.
value
=
false
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
'表单验证失败:'
,
error
)
console
.
log
(
'表单验证失败:'
,
error
)
uni
.
showToast
({
title
:
'请完善表单信息'
,
icon
:
'none'
})
loading
.
value
=
false
uni
.
showToast
({
title
:
'请完善表单信息'
,
icon
:
'none'
,
duration
:
2000
})
}
}
}
}
const
farmStore
=
useFarmStore
()
const
farmStore
=
useFarmStore
()
onLoad
(()
=>
{
onLoad
((
pageOptions
)
=>
{
// 页面加载时的初始化操作
// 页面加载时的初始化操作
const
farmInfo
=
farmStore
.
getFarm
const
farmInfo
=
farmStore
.
getFarm
if
(
farmInfo
)
{
if
(
farmInfo
)
{
formData
.
farmId
=
farmInfo
.
id
formData
.
farmId
=
farmInfo
.
id
}
}
// 修复:修改页面上定义的 options 对象中的 farmType
options
.
farmType
=
dictStore
.
getDictList
[
'farm_type'
].
map
((
item
)
=>
{
options
.
farmType
=
dictStore
.
getDictList
[
'farm_type'
].
map
((
item
)
=>
{
return
{
return
{
value
:
item
.
value
,
value
:
item
.
value
,
text
:
item
.
text
,
text
:
item
.
text
,
}
}
})
})
if
(
pageOptions
.
id
)
{
NongchangAPI
.
getFarmbaseInfoById
({
id
:
pageOptions
.
id
}).
then
(
res
=>
{
if
(
res
)
{
// 将 res 中的数据赋值到 formData 中,key 保持一致
Object
.
keys
(
res
).
forEach
(
key
=>
{
if
(
key
in
formData
)
{
// 如果是数组类型的字段且返回的是字符串,需要转换为数组
if
([
'baseImages'
,
'identityProveUrl'
,
'landProveUrl'
,
'productionProveUrl'
,
'qualityCertificateUrl'
,
'otherMaterialUrl'
].
includes
(
key
)
&&
typeof
res
[
key
]
===
'string'
)
{
formData
[
key
]
=
res
[
key
].
split
(
','
).
filter
(
item
=>
item
.
trim
()
!==
''
)
}
else
{
formData
[
key
]
=
res
[
key
]
}
}
})
formData
.
id
=
res
.
id
formData
.
province
=
res
.
provinceName
+
res
.
cityName
+
res
.
districtName
// 根据 res.baseType 的值从 options.farmType 中查找对应的文本
if
(
res
.
baseType
&&
options
.
farmType
.
length
>
0
)
{
const
foundItem
=
options
.
farmType
.
find
((
item
:
any
)
=>
item
.
value
===
res
.
baseType
)
if
(
foundItem
)
{
formData
.
baseTypeText
=
foundItem
.
text
}
}
// 数据赋值完成后,延迟触发表单验证更新
setTimeout
(()
=>
{
if
(
formRef
.
value
)
{
// 逐个验证可能存在问题的字段
formRef
.
value
.
validateField
(
'scale'
)
formRef
.
value
.
validateField
(
'operationYears'
)
// 重新验证整个表单
formRef
.
value
.
validate
()
}
},
200
)
}
})
}
})
})
</
script
>
</
script
>
...
...
src/pages/jidiguanli/jidiguanli.vue
浏览文件 @
a5aa2470
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论