Files
qhmes/deploy-qhmes/frontend/js/EditableCellIdTest-CupbwhSI.js
2026-05-15 11:34:12 +08:00

8 lines
7.7 KiB
Java
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var k=(h,p,s)=>new Promise((_,u)=>{var g=o=>{try{r(s.next(o))}catch(a){u(a)}},b=o=>{try{r(s.throw(o))}catch(a){u(a)}},r=o=>o.done?_(o.value):Promise.resolve(o.value).then(g,b);r((s=s.apply(h,p)).next())});import{d as B,ah as m,aC as x,as as y,aF as i,k as t,au as e,G as n,u as I,f as S,av as f,ar as z,aD as E,F as V}from"./vue-vendor-C7Zq48Yl.js";import{P as N}from"./index-C57gqG5N.js";import{u as T}from"./index-BgJbdjPf.js";import{u as F,d as J}from"./index-BI6CMai0.js";import R from"./BasicTable-DfLkrEeh.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./useContentHeight-BUFNkYs_.js";import"./useWindowSizeFn-PRZSD86C.js";import"./vxe-table-vendor-B88kchpX.js";import"./useContentViewHeight-BO9bTdue.js";import"./usePageContext-l-f4bNz7.js";import"./injectionKey-DPVn4AgL.js";import"./componentMap-BBZeqR-K.js";import"./useFormItem-BdW6EoZe.js";import"./index-Du0A3ksf.js";import"./BasicModal-0sAdFEk_.js";import"./ModalHeader-keHdAHWH.js";import"./useTimeout-DDl4l82I.js";import"./index-DeEq83Ov.js";import"./index-pxs5MULf.js";import"./index-BgYCgfME.js";import"./index-f8O7TghW.js";import"./useIntersectionObserver-BMxdTqP3.js";import"./download-UE0L9Rfp.js";import"./base64Conver-24EVOS6V.js";import"./index-CIBZG4nR.js";import"./index-BhQEwnQQ.js";import"./useCountdown-DqnNWBp6.js";import"./useFormItemSingle-BbRhswfn.js";import"./JSelectUser-B71zikzw.js";import"./props-DAezUTeZ.js";import"./JSelectBiz-CnEaVMUF.js";import"./JAddInput-D6qcyZjQ.js";import"./areaDataUtil-CbYCy3Ig.js";import"./index-CNkz_PUv.js";import"./index-CUdllngZ.js";import"./bem-EhXRi4nW.js";import"./props-D4vdsy3J.js";import"./useContextMenu-Cwx1lIOK.js";import"./depart.api-DeMNV8zW.js";import"./TreeIcon-DE4jdeZV.js";import"./JSelectDept-DRDVeruW.js";import"./JPopup-Bva6u6tk.js";import"./usePopBiz-CG0vVpgI.js";import"./useMethods-DVip17X8.js";import"./index-Dg4HCEvo.js";import"./JEllipsis-DqRFTSm0.js";import"./JUpload-Cz9HN61B.js";import"./index-MGIrEF-A.js";import"./index-MREkPhsT.js";import"./index-Di-j2gt4.js";import"./BasicForm-BJnSRkIE.js";import"./useForm-BZtHZyx2.js";import"./JAreaLinkage-BeRUFHSB.js";import"./JCodeEditor-CLVZA7Uj.js";import"./htmlmixed-NhwyF9-q.js";import"./vue-CgbRSACy.js";/* empty css */import"./EasyCronInput-7xfJ3nBh.js";const $={class:"p-4"},j={class:"test-result-json"},D=B({__name:"EditableCellIdTest",setup(h){const{createMessage:p}=F(),s=S({title:"📊 测试结果点击对号后显示",bgColor:"#909399",hasId:!1,idValue:null,fields:[],recordJson:"暂无数据请编辑单元格并点击对号",conclusion:"等待测试..."}),_=[{title:"姓名",dataIndex:"name",width:150,edit:!0,editComponent:"Input"},{title:"年龄",dataIndex:"age",width:120,edit:!0,editComponent:"InputNumber"},{title:"邮箱",dataIndex:"email",width:200,edit:!0,editComponent:"Input"},{title:"地址",dataIndex:"address",width:200,edit:!0,editComponent:"Input"}],u=[{id:1,name:"张三",age:25,email:"zhangsan@example.com",address:"北京市朝阳区"},{id:2,name:"李四",age:30,email:"lisi@example.com",address:"上海市浦东新区"},{id:3,name:"王五",age:28,email:"wangwu@example.com",address:"广州市天河区"}],[g]=T({rowKey:"id",columns:_,dataSource:u,pagination:!1,showIndexColumn:!0,canResize:!1});function b(w){return k(this,arguments,function*({record:r,index:o,key:a,value:d}){const l="id"in r,c=Object.keys(r);return s.value={title:l?" 测试通过":" 测试失败 - 发现 Bug",bgColor:l?"#67C23A":"#F56C6C",hasId:l,idValue:r.id||null,fields:c,recordJson:JSON.stringify(r,null,2),conclusion:l?`✅ record 中包含 id 字段(值为 ${r.id}),可以正常更新数据`:`❌ Bug 确认record 中缺少 id 字段!只包含 ${c.join(", ")}。这会导致无法执行数据更新操作。`},l?(p.success(`✅ 测试通过:获取到 id=${r.id}`),!0):(p.error(" 测试失败record 中缺少 id 字段这就是 Issue #8924 描述的问题"),!1)})}return(r,o)=>{const a=m("a-alert"),d=m("a-card"),w=m("a-tag"),l=m("a-descriptions-item"),c=m("a-descriptions"),C=m("a-space");return y(),x(I(N),{title:"EditableCell ID字段测试 (Issue #8924)"},{default:i(()=>[t(a,{message:"🧪 测试目的验证 beforeEditSubmit 是否会过滤掉 id 字段",description:"请编辑任意单元格并点击对号查看下方的测试结果如果 record 中没有 id 字段说明问题存在",type:"warning","show-icon":"",class:"mb-4"}),e("div",$,[t(d,{title:"🔬 测试场景1id 字段不在 columns 最常见场景",class:"mb-4"},{default:i(()=>[t(a,{message:" 核心测试id 在数据中但不在 columns 中显示",description:"这是最常见的场景主键字段通常不需要在表格中显示但在更新数据时必须使用",type:"info","show-icon":"",class:"mb-3"}),t(C,{direction:"vertical",style:{width:"100%"}},{default:i(()=>[t(d,{size:"small",title:"📋 测试数据说明",bordered:!1},{default:i(()=>[...o[0]||(o[0]=[e("p",null,[e("strong",null,"数据源包含"),n("id, name, age, email, address")],-1),e("p",null,[e("strong",null,"Columns 显示"),n("name, age, email, address 没有 id ")],-1),e("p",null,[e("strong",null,"rowKey 配置"),n("'id'")],-1)])]),_:1}),t(I(R),{onRegister:I(g),beforeEditSubmit:b},null,8,["onRegister"]),t(d,{size:"small",title:s.value.title,bordered:!1,headStyle:{backgroundColor:s.value.bgColor,color:"white"}},{default:i(()=>[t(c,{bordered:"",column:1,size:"small"},{default:i(()=>[t(l,{label:"是否包含 id"},{default:i(()=>[t(w,{color:s.value.hasId?"success":"error"},{default:i(()=>[n(f(s.value.hasId?" 包含":" 不包含")+" "+f(s.value.hasId?`(id=${s.value.idValue})`:""),1)]),_:1},8,["color"])]),_:1}),t(l,{label:"record 包含的字段"},{default:i(()=>[(y(!0),z(V,null,E(s.value.fields,v=>(y(),x(w,{key:v,color:"blue"},{default:i(()=>[n(f(v),1)]),_:2},1024))),128))]),_:1}),t(l,{label:"完整 record 内容"},{default:i(()=>[e("pre",j,f(s.value.recordJson),1)]),_:1}),t(l,{label:"测试结论"},{default:i(()=>[t(a,{message:s.value.conclusion,type:s.value.hasId?"success":"error","show-icon":""},null,8,["message","type"])]),_:1})]),_:1})]),_:1},8,["title","headStyle"])]),_:1})]),_:1}),t(d,{title:"💡 测试说明",class:"mb-4"},{default:i(()=>[t(C,{direction:"vertical",style:{width:"100%"}},{default:i(()=>[t(a,{message:"如何进行测试",description:`1. 点击上方表格任意单元格进行编辑\r
2. 修改内容后点击对号 ✓ 提交\r
3. 查看测试结果,观察 record 是否包含 id 字段`,type:"info","show-icon":""}),t(a,{message:"预期结果",type:"success","show-icon":""},{description:i(()=>[...o[1]||(o[1]=[e("p",null,[e("strong",null,"如果代码正常")],-1),e("p",null," record 应该包含 id 字段",-1),e("p",null," 可以使用 record.id 进行数据更新",-1),e("p",null," 控制台显示绿色成功消息",-1)])]),_:1}),t(a,{message:"Bug 症状Issue #8924",type:"error","show-icon":""},{description:i(()=>[...o[2]||(o[2]=[e("p",null,[e("strong",null,"如果存在 Bug")],-1),e("p",null," record 中没有 id 字段",-1),e("p",null," record 只包含 columns 中定义的字段name, age, email, address",-1),e("p",null," 无法执行数据更新操作",-1),e("p",null," 控制台显示红色错误消息",-1)])]),_:1}),t(d,{size:"small",title:"🔍 原因分析",bordered:!1},{default:i(()=>[...o[3]||(o[3]=[e("p",null,[n("原代码使用 "),e("code",null,"pick(record, keys)"),n(" 过滤字段")],-1),e("pre",{class:"code-block"},`const keys = columns.map(c => c.dataIndex).filter(f => !!f);
// keys = ['name', 'age', 'email', 'address'] // ⚠️ 没有 id
record: pick(record, keys)
// 只保留 keys 中的字段id 被过滤掉了`,-1)])]),_:1})]),_:1})]),_:1})])]),_:1})}}}),Le=J(D,[["__scopeId","data-v-9d9177b2"]]);export{Le as default};