Files
qhmes/web-dist/js/PageAttributeTable-BERzVeRB.js
2026-06-16 18:19:57 +08:00

2 lines
13 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
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 oe=Object.defineProperty,se=Object.defineProperties;var ne=Object.getOwnPropertyDescriptors;var K=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var P=(i,a,s)=>a in i?oe(i,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[a]=s,L=(i,a)=>{for(var s in a||(a={}))de.call(a,s)&&P(i,s,a[s]);if(K)for(var s of K(a))ue.call(a,s)&&P(i,s,a[s]);return i},B=(i,a)=>se(i,ne(a));import{J as r}from"./JVxeTypes-C-gX5UoZ.js";import{u as re}from"./useTableSync-BXEqhCu5.js";import fe from"./LinkTableConfigModal-Cw2xBGMD.js";import pe from"./LinkTableFieldConfigModal-C1_w6cXM.js";import me from"./FieldExtendJsonModal-DQQty5N3.js";import"./index-BDvqZ5j4.js";import{u as D}from"./useModal-DaJ3Bflg.js";import{e as ce,r as v,C as be,z as $,f as c,A as g,B as ye,K as T,F as ve,y as ge,H as Te,E as Q,Q as he}from"./vue-vendor-DNhG1Cve.js";import{au as we,M as ke,aE as Fe,bR as Se}from"./index-X7Y8jykP.js";import"./cgform.data-CpFtqNph.js";import"./index-Cq6YxX27.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./JDictSelectUtil-DwVTEDM5.js";import"./uuid-CODpppBC.js";import"./BasicForm-ClUSoD_-.js";import"./helper-DcLcf4v6.js";import"./index-BzChaRPg.js";import"./useAppInject-DPZGPcR3.js";import"./BasicForm.vue_vue_type_style_index_0_lang-B29PWQy0.js";import"./index-DO7ZhK45.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./useTimeout-D5AmIBZw.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./index-saD4h7VJ.js";import"./useBreakpoint-DXhPW7nV.js";import"./useEventListener-BRXjwk7A.js";import"./breakpointEnum-BhAg6bcX.js";import"./uniqBy--vsL0WVB.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./index-CuWaQdlK.js";import"./useForm-D61zovon.js";import"./SetSwitchOptions-Dsg5E9qy.js";import"./constant-DfcHKztj.js";const j=[{title:"文本框",value:"text"},{title:"密码",value:"password"},{title:"下拉框",value:"list"},{title:"单选框",value:"radio"},{title:"多选框",value:"checkbox"},{title:"开关",value:"switch"},{title:"日期(年月日)",value:"date"},{title:"日期(年月日时分秒)",value:"datetime"},{title:"时间(HH:mm:ss)",value:"time"},{title:"文件",value:"file"},{title:"图片",value:"image"},{title:"多行文本",value:"textarea"},{title:"富文本",value:"umeditor"},{title:"MarkDown",value:"markdown"},{title:"用户选择",value:"sel_user"},{title:"部门选择",value:"sel_depart"},{title:"关联记录",value:"link_table"},{title:"他表字段",value:"link_table_field"},{title:"省市区组件",value:"pca"},{title:"Popup弹框",value:"popup"},{title:"Popup字典",value:"popup_dict"},{title:"下拉多选框",value:"list_multi"},{title:"下拉搜索框",value:"sel_search"},{title:"分类字典树",value:"cat_tree"},{title:"自定义树控件",value:"sel_tree"},{title:"联动组件",value:"link_down"}],xe=[{title:"文本框",value:"text"},{title:"单选框",value:"radio"},{title:"开关",value:"switch"},{title:"日期(yyyy-MM-dd)",value:"date"},{title:"日期yyyy-MM-dd HH:mm:ss",value:"datetime"},{title:"时间HH:mm:ss",value:"time"},{title:"文件",value:"file"},{title:"图片",value:"image"},{title:"下拉框",value:"list"},{title:"下拉多选框",value:"list_multi"},{title:"下拉搜索框",value:"sel_search"},{title:"popup弹出框",value:"popup"},{title:"关联记录",value:"link_table"},{title:"他表字段",value:"link_table_field"},{title:"部门选择",value:"sel_depart"},{title:"用户选择",value:"sel_user"},{title:"省市区组件",value:"pca"},{title:"多行文本",value:"textarea"},{title:"分类字典树",value:"cat_tree"},{title:"自定义树控件",value:"sel_tree"}],_e=ce({name:"PageAttributeTable",components:{LinkTableConfigModal:fe,LinkTableFieldConfigModal:pe,FieldExtendJsonModal:me},setup(){const i=v([{title:"字段名称",key:"dbFieldName",width:100,fixed:"left"},{title:"字段备注",key:"dbFieldTxt",width:120,fixed:"left"},{title:"表单显示",key:"isShowForm",width:68,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!0},{title:"列显示",key:"isShowList",width:55,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!0},{title:"排序",key:"sortFlag",width:60,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!1,props:{isDisabledCell({row:e,column:l}){let{dbTable:t}=b;const o=t.value.tableRef.getTableData({rowIds:[e.id]})[0];return(o==null?void 0:o.dbIsPersist)=="0"}}},{title:"只读",key:"isReadOnly",width:60,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!1},{title:"控件类型",key:"fieldShowType",width:170,type:r.select,options:j,defaultValue:"text",placeholder:"请选择${title}",validateRules:[{required:!0,message:"请选择${title}"},{handler:J}]},{title:"控件默认值",key:"fieldDefaultValue",width:140,type:r.textarea,props:{allowClear:!0},defaultValue:""},{title:"长度",key:"fieldLength",width:90,titleHelp:{message:"此控件长度只对子表列字段宽度有效!"},type:r.inputNumber,defaultValue:120,placeholder:"请输入控件长度"},{title:"查询",key:"isQuery",width:60,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!1,props:{isDisabledCell({row:e,column:l}){let{dbTable:t}=b;const o=t.value.tableRef.getTableData({rowIds:[e.id]})[0];return(o==null?void 0:o.dbIsPersist)=="0"}}},{title:"查询类型",key:"queryMode",width:120,type:r.select,options:[{title:"普通查询",value:"single"},{title:"模糊查询",value:"like"},{title:"范围查询",value:"group"}],defaultValue:"single",placeholder:"请选择${title}",validateRules:[{handler:le}],props:{isDisabledCell({row:e,column:l}){}}},{title:"字典Table",key:"dictTable",width:150,type:r.textarea,defaultValue:""},{title:"字典Code",key:"dictField",width:210,type:r.input,defaultValue:"",validateRules:[{handler:N}]},{title:"字典Text",key:"dictText",width:220,type:r.input,defaultValue:"",validateRules:[{handler:N}]},{title:"扩展参数",key:"fieldExtendJson",type:r.hidden,defaultValue:""},{title:"更多配置",minWidth:150,key:"fieldConfig",type:r.slot,slotName:"fieldConfig"}]),a=re(i),{tableRef:s,tables:b}=a;function J({cellValue:e,row:l},t){let{dbTable:o}=b,d=o.value.tableRef.getTableData({rowIds:[l.id]})[0].dbType;e==="time"&&d!=="string"?t(!1,"当控件类型为时间时,数据库属性里的字段类型必须是String"):e==="date"&&d!=="Date"&&d!=="Datetime"?t(!1,"当控件类型为日期时数据库属性里的字段类型必须是Date或Datetime"):e==="datetime"&&d!=="Datetime"?t(!1,"当控件类型为datetime时数据库属性里的字段类型必须是Datetime"):t(!0)}function R(e){let l="text";e.dbType==="Datetime"?l="datetime":e.dbType==="Date"&&(l="date"),s.value.setValues([{rowKey:e.id,values:{fieldShowType:l}}])}function h(e){e.dbIsPersist==="0"&&s.value.setValues([{rowKey:e.id,values:{isQuery:"0",sortFlag:"0"}}])}const y=v(!1);function w(e,l=0){y.value=e&&l==0;for(let t of i.value)if(t.key=="fieldShowType"){t.options=e?xe:j;break}}function k(e){s.value.setValues([{rowKey:e,values:{isQuery:"1"}}])}const[F,{openModal:S}]=D(),[x,{openModal:_}]=D(),[p,{openModal:C}]=D();function q(e){return e.row.dbFieldName!="id"}function A(e){e.row.fieldShowType.indexOf("link_table")>=0?O(e):X(e)}function O(e){let{row:l}=e;if(e.row.fieldShowType=="link_table"){let t=U(l);S(!0,{record:t,fieldName:l.dbFieldName,isSubTableOneToMany:y.value})}else if(e.row.fieldShowType=="link_table_field"){let t=z(l);_(!0,t)}}function z(e){let t=s.value.getTableData().filter(m=>m.fieldShowType=="link_table"),o={};if(t&&t.length>0)for(let m of t)o[m.dbFieldName]={title:m.dbFieldTxt,table:m.dictTable,fields:m.dictText};const{dictTable:d,dictText:f,id:n,dbFieldTxt:u}=e;return{record:{rowKey:n,dbFieldTxt:u,dictText:f,dictTable:d},tableAndFieldsMap:o}}function U(e){const{id:l,dbFieldTxt:t,fieldExtendJson:o,dictTable:d,dictText:f}=e;let n={rowKey:l,dbFieldTxt:t,dictTable:d};if(f){let u=f.split(",");n.titleField=u[0],u.length>1&&(n.otherFields=f.substring(f.indexOf(",")+1))}else n.titleField="",n.otherFields="";if(o)try{let u=JSON.parse(o);u.multiSelect?n.multiSelect=u.multiSelect:n.multiSelect=!1,u.isListReadOnly?n.isListReadOnly=u.isListReadOnly:n.isListReadOnly=!1,u.showType?n.showType=u.showType:n.showType="card",u.imageField?n.imageField=u.imageField:n.imageField=""}catch(u){}return n}function W(e){const{multiSelect:l,showType:t,imageField:o,isListReadOnly:d}=e;let f={showType:t,multiSelect:l,imageField:o,isListReadOnly:d},n=e.titleField;e.otherFields&&(n+=","+e.otherFields);const{dictTable:u,dictField:I}=e;let m=[{rowKey:e.rowKey,values:{fieldExtendJson:JSON.stringify(f),dbFieldTxt:e.dbFieldTxt,dictTable:u,dictField:I,dictText:n}}];s.value.setValues(m);let{dbTable:H}=b;if(H){let ae=[{rowKey:e.rowKey,values:{dbFieldTxt:e.dbFieldTxt}}];H.value.tableRef.setValues(ae)}}function G(e){const{dbFieldTxt:l,dictTable:t,dictText:o,rowKey:d}=e;let f=[{rowKey:d,values:{dbFieldTxt:l,dictTable:t,dictText:o}}];s.value.setValues(f);let{dbTable:n}=b;if(n){let u=[{rowKey:d,values:{dbFieldTxt:l,dbIsPersist:"0"}}];n.value.tableRef.setValues(u)}}function X(e){let l=e.row.fieldExtendJson||"",t=e.rowId,o=e.row.fieldShowType||"",d=e.row.sortFlag||"0";const f=e.row.dbType;C(!0,{jsonStr:l,fieldShowType:o,sortFlag:d,id:t,dbType:f})}function Y(e,l){let t;e&&Object.keys(e).length>0?t=[{rowKey:l,values:{fieldExtendJson:JSON.stringify(e)}}]:t=[{rowKey:l,values:{fieldExtendJson:""}}],s.value.setValues(t)}const M=v(!1),V=v(""),E=v("");function Z(e){V.value=e.row.fieldExtendJson||"",E.value=e.rowId,M.value=!0}function ee(){let e=[{rowKey:E.value,values:{fieldExtendJson:V.value}}];s.value.setValues(e),M.value=!1}const te=e=>{};function le({cellValue:e,row:l},t){let{dbTable:o}=b;const d=o.value.tableRef.getTableData({rowIds:[l.id]})[0].dbType;e==="group"?["double","int","BigDecimal","Date","Datetime"].includes(d)||l.fieldShowType==="time"?t(!0):t(!1,"范围查询只支持数据库属里的字段类型为Integer、Double、BigDecimal及Date、Datetime 或 控件类型是时间(HH:mm:ss)"):e==="like"?["string"].includes(d)&&l.fieldShowType==="text"?t(!0):t(!1,"模糊查询只支持控件类型是文本框且数据库属里的字段类型是String"):t(!0)}const ie=({oldValue:e,row:l})=>{l.dbType!="string"&&e=="string"&&s.value.getTableData({rowIds:[l.id]})[0].queryMode=="like"&&s.value.setValues([{rowKey:l.id,values:{queryMode:"single"}}])};function N({cellValue:e,row:l},t){(l==null?void 0:l.fieldShowType)==="popup_dict"?e.indexOf(",")==-1?t(!0):t(!1,"popup字典组件只允许填写一个字段"):t(!0)}return B(L({},a),{columns:i,enableQuery:k,syncFieldShowType:R,changePageType:w,showConfigButton:q,showFieldConfig:O,registerExtJsonModal:p,handleExtJson:Y,openConfig:A,registerModal:F,handleConfigData:W,registerFieldModal:x,handleFieldConfigData:G,syncIsQuery:h,handleValueChange:te,syncQueryMode:ie,isSubTableOneToMany:y,jsonModalVisible:M,currentJsonStr:V,openJsonConfig:Z,handleJsonSubmit:ee})}}),Ce={class:"p-4"};function Me(i,a,s,b,J,R){const h=T("a-button"),y=Fe,w=T("JVxeTable"),k=T("link-table-config-modal"),F=T("link-table-field-config-modal"),S=T("FieldExtendJsonModal"),x=Se,_=ke;return $(),be(ve,null,[c(w,ye({ref:"tableRef","row-class-name":"online-config-page",rowNumber:"",keyboardEdit:"",maxHeight:i.tableHeight.noToolbar,loading:i.loading,columns:i.columns,dataSource:i.dataSource,disabledRows:{dbFieldName:["id","has_child"]},onValueChange:i.handleValueChange},i.tableProps),{fieldConfig:g(p=>[i.showConfigButton(p)?($(),ge(y,{key:0},{default:g(()=>[c(h,{type:"primary",size:"small",ghost:"",onClick:C=>i.openConfig(p)},{default:g(()=>[...a[2]||(a[2]=[Q("配置",-1)])]),_:1},8,["onClick"]),c(h,{size:"small",onClick:C=>i.openJsonConfig(p)},{default:g(()=>[...a[3]||(a[3]=[Q("JSON",-1)])]),_:1},8,["onClick"])]),_:2},1024)):Te("",!0)]),_:1},16,["maxHeight","loading","columns","dataSource","onValueChange"]),c(k,{onRegister:i.registerModal,onSuccess:i.handleConfigData},null,8,["onRegister","onSuccess"]),c(F,{isSubTableOneToMany:i.isSubTableOneToMany,onRegister:i.registerFieldModal,onSuccess:i.handleFieldConfigData},null,8,["isSubTableOneToMany","onRegister","onSuccess"]),c(S,{onRegister:i.registerExtJsonModal,onSuccess:i.handleExtJson},null,8,["onRegister","onSuccess"]),c(_,{open:i.jsonModalVisible,"onUpdate:open":a[1]||(a[1]=p=>i.jsonModalVisible=p),title:"扩展参数",okText:"确认",cancelText:"取消",width:600,onOk:i.handleJsonSubmit},{default:g(()=>[he("div",Ce,[c(x,{value:i.currentJsonStr,"onUpdate:value":a[0]||(a[0]=p=>i.currentJsonStr=p),rows:12,placeholder:"请输入扩展参数JSON"},null,8,["value"])])]),_:1},8,["open","onOk"])],64)}const yt=we(_e,[["render",Me],["__scopeId","data-v-8a55734f"]]);export{yt as default};