From 6cba22dec64e6f49a504f2ae8372df657816ff21 Mon Sep 17 00:00:00 2001 From: liugongyu <290219706@qq.com> Date: Sun, 3 Aug 2025 14:22:53 +0800 Subject: [PATCH] 图片上传 --- App.vue | 1 + pages.json | 13 +++++++++++++ pages/work/treePage/treeFiles.vue | 15 --------------- subPackages/treePage/addTree.vue | 29 +++++++++++++++++++++-------- subPackages/treePage/editTree.vue | 47 +++++++++++++++++++++++++++++++++++++++++++++++ subPackages/treePage/treeDetail.vue | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ subPackages/treePage/treeFiles.vue | 5 +++-- subPackages/treePage/treeLog.vue | 39 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 185 insertions(+), 25 deletions(-) delete mode 100644 pages/work/treePage/treeFiles.vue create mode 100644 subPackages/treePage/editTree.vue create mode 100644 subPackages/treePage/treeDetail.vue create mode 100644 subPackages/treePage/treeLog.vue diff --git a/App.vue b/App.vue index d00e751..e86fe3e 100644 --- a/App.vue +++ b/App.vue @@ -17,6 +17,7 @@ export default { diff --git a/pages.json b/pages.json index 6c50d40..c5147ec 100644 --- a/pages.json +++ b/pages.json @@ -296,7 +296,20 @@ "style": { "navigationBarTitleText": "录入树木" } + }, + { + "path": "treePage/editTree", + "style": { + "navigationBarTitleText": "修改树木" + } + }, + { + "path": "treePage/treeDeatil", + "style": { + "navigationBarTitleText": "树木详情" + } } + ] } ], diff --git a/pages/work/treePage/treeFiles.vue b/pages/work/treePage/treeFiles.vue deleted file mode 100644 index 05cbc50..0000000 --- a/pages/work/treePage/treeFiles.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/treePage/addTree.vue b/subPackages/treePage/addTree.vue index faecf26..79db9da 100644 --- a/subPackages/treePage/addTree.vue +++ b/subPackages/treePage/addTree.vue @@ -207,14 +207,14 @@ const rules = [{ name: "oldtreeownership", rule: ["required"], msg: ["请选择权属分类"] -}, { +},{ name: "treeImgList", - // 自定义验证函数处理数组类型 - rule: [(value) => { - // 验证逻辑:数组长度至少为1 - return Array.isArray(value) && value.length > 0; - }], - msg: ["请上传图片"] + rule: ["required", "custom"], // 增加required强制必选 + msg: ["请上传图片", "请至少上传一张图片"], // 对应两个规则的提示 + custom: function(value) { + // 即使required通过,再校验数组长度 + return value.length > 0; + } }]; export default { props: { @@ -278,6 +278,8 @@ export default { }, onReady() { //开启即时校验,开启后输入即校验【参数必传】,第一参数:是否开启;第二参数:校验规则 + // 开启即时校验,参数:是否开启、校验规则 + this.$refs.form && this.$refs.form.immediateValidate(true, rules); // this.$refs.form && this.$refs.form.immediateValidate(true, rules) }, methods: { @@ -290,7 +292,11 @@ export default { if (e.status == 1){ console.log(e) - this.formData.treeImgList.push(e.imgArr); + // this.formData.treeImgList.push(e.imgArr); + + this.formData.treeImgList = e.imgArr; + // 手动触发treeImgList字段的校验 + this.$refs.form.validateField("treeImgList"); console.log(this.formData.treeImgList) console.log(this.formData.treeImgList.length) } @@ -322,6 +328,13 @@ export default { }, submit() { + // 3. 打印提交时的数据 + console.log("提交时treeImgList:", this.formData.treeImgList); + // 手动校验图片 + if (!this.formData.treeImgList || this.formData.treeImgList.length === 0) { + uni.showToast({ title: "请上传图片", icon: "none" }); + return; // 阻止提交 + } //注:结合FormItem校验,validate方法第三个参数必须传true this.$refs.form.validate(this.formData, rules, true).then(res => { if (res.isPass) { diff --git a/subPackages/treePage/editTree.vue b/subPackages/treePage/editTree.vue new file mode 100644 index 0000000..0b30d88 --- /dev/null +++ b/subPackages/treePage/editTree.vue @@ -0,0 +1,47 @@ + + + + + + + \ No newline at end of file diff --git a/subPackages/treePage/treeDetail.vue b/subPackages/treePage/treeDetail.vue new file mode 100644 index 0000000..fd4b65b --- /dev/null +++ b/subPackages/treePage/treeDetail.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/subPackages/treePage/treeFiles.vue b/subPackages/treePage/treeFiles.vue index dd0e0f5..a0058b5 100644 --- a/subPackages/treePage/treeFiles.vue +++ b/subPackages/treePage/treeFiles.vue @@ -25,7 +25,9 @@ {{ i }} + > + 归属班组归属班组归属班组 + @@ -150,7 +152,6 @@ export default { } .teamsItem { - padding: 10rpx 10rpx 0; } .teamsActive { diff --git a/subPackages/treePage/treeLog.vue b/subPackages/treePage/treeLog.vue new file mode 100644 index 0000000..78da34c --- /dev/null +++ b/subPackages/treePage/treeLog.vue @@ -0,0 +1,39 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4