feat(B批缝隙): B3残留catch补齐/B7-1 add成环/B4-5 key/B5-2 scores索引/门禁62-0-0

This commit is contained in:
12914
2026-09-14 02:18:23 +08:00
parent 4111cba637
commit f47bd75e78
18 changed files with 168 additions and 100 deletions
+28 -11
View File
@@ -48,8 +48,9 @@
</template>
<script>
import validator from '@/js_sdk/validator/opendb-admin-menus.js';
import Icons from '@/pages/demo/icons/icons.vue'
import validator from '@/js_sdk/validator/opendb-admin-menus.js';
import Icons from '@/pages/demo/icons/icons.vue'
import { wouldCreateCycle } from '@/components/uni-data-menu/util.js';
const db = uniCloud.database();
const dbCmd = db.command;
@@ -124,20 +125,36 @@
title: '提交中...',
mask: true
})
// 使用 uni-clientDB 提交数据
db.collection(dbCollectionName).add(value).then((res) => {
uni.showToast({
title: '新增成功'
// B7-1: 祖先链成环校验(与 edit 页一致:拉全量菜单走一遍祖先链,500 与 list 页一致)
db.collection(dbCollectionName).field('menu_id,parent_id').limit(500).get().then((listRes) => {
const menus = (listRes.result && listRes.result.data) || []
if (wouldCreateCycle(menus, value.menu_id, value.parent_id)) {
uni.hideLoading()
return uni.showModal({
content: '该父菜单会导致循环引用(A→B→A),已阻止提交',
showCancel: false
})
}
return db.collection(dbCollectionName).add(value).then((res) => {
uni.showToast({
title: '新增成功'
})
this.getOpenerEventChannel().emit('refreshData')
setTimeout(() => uni.navigateBack(), 500)
}).catch((err) => {
uni.showModal({
content: err.message || '请求服务失败',
showCancel: false
})
}).finally(() => {
uni.hideLoading()
})
this.getOpenerEventChannel().emit('refreshData')
setTimeout(() => uni.navigateBack(), 500)
}).catch((err) => {
uni.hideLoading()
uni.showModal({
content: err.message || '请求服务失败',
content: (err && err.message) || '菜单校验失败,请重试',
showCancel: false
})
}).finally(() => {
uni.hideLoading()
})
},
showIconPopup() {