Files
qhmes/deploy-qhmes/frontend/js/DBAttributeTable-BqVDPbcC-DpK_vCYw.js
2026-05-15 11:34:12 +08:00

2 lines
9.8 KiB
Java

import{d as j,g as q,f as b,ah as O,ar as Z,as as S,F as J,k as m,aC as z,ag as ee,aG as te,aF as p,G as ae}from"./vue-vendor-C7Zq48Yl.js";import{bC as r,al as le}from"./index-BI6CMai0.js";import{L as de}from"./useTableSync-BAWujyoc-CpxxVsa6.js";import oe from"./aiModal-CbxEF4yF-BKz3XkvX.js";import"./index-Du0A3ksf.js";import{h as ie}from"./main.index-Cs5ETdXF.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";import"./cgform.data-CviSPXEg-BseaVj6W.js";import"./BasicModal-0sAdFEk_.js";import"./ModalHeader-keHdAHWH.js";import"./useTimeout-DDl4l82I.js";import"./index-DeEq83Ov.js";import"./useWindowSizeFn-PRZSD86C.js";import"./index-pxs5MULf.js";import"./index-BgYCgfME.js";import"./index-f8O7TghW.js";import"./useIntersectionObserver-BMxdTqP3.js";import"./usePopBiz-CG0vVpgI.js";import"./useMethods-DVip17X8.js";import"./index-Dg4HCEvo.js";var ne=Object.defineProperty,re=Object.defineProperties,Ee=Object.getOwnPropertyDescriptors,C=Object.getOwnPropertySymbols,se=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable,g=(e,t,l)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,h=(e,t)=>{for(var l in t||(t={}))se.call(t,l)&&g(e,l,t[l]);if(C)for(var l of C(t))ue.call(t,l)&&g(e,l,t[l]);return e},f=(e,t)=>re(e,Ee(t));const Ie=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONNECTION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GOTO","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LABEL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MATCH","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","NUMERIC","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","PRECISION","PRIMARY","PROCEDURE","PURGE","RAID0","RANGE","READ","READS","REAL","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SMALLINT","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","WHEN","WHERE","WHILE","WITH","WRITE","X509","XOR","YEAR_MONTH","ZEROFILL"],Te=j({name:"DBAttributeTable",props:{actionButton:{type:Boolean,default:!0},tableName:{type:String,default:""},isUpdate:{type:Boolean,default:!1}},components:{AiModal:oe},emits:["added","removed","inserted","dragged","syncDbType","syncDbIsPersist","syncDbIsNull"],setup(e,{emit:t}){const l=q(),N=b(!1),A=b([{title:"字段名称",key:"dbFieldName",width:140,type:r.input,defaultValue:"",placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"},{pattern:/^[a-zA-Z]{1}(?!_)[a-zA-Z0-9_\\$]+$/,message:"命名规则:只能由字母、数字、下划线、$符号组成;必须以字母开头;不能以单个字母加下滑线开头"},{unique:!0,message:"${title}不能重复"},{handler({cellValue:a},i){Ie.includes(a.toUpperCase())?i(!1,a+"是关键字,不能作为字段名称使用!"):i(!0)}},{handler:D},{handler({cellValue:a},i){a.length>32?i(!1,"字段名最长32个字符"):i(!0)}}],disabled:!e.actionButton},{title:"字段备注",key:"dbFieldTxt",width:140,type:r.input,defaultValue:"",placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"},{handler({cellValue:a},i){a.length>200?i(!1,"字段名最长200个字"):i(!0)}}]},{title:"字段长度",key:"dbLength",width:120,type:r.inputNumber,defaultValue:32,placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"}],disabled:!e.actionButton},{title:"小数点",key:"dbPointLength",width:100,type:r.inputNumber,defaultValue:0,placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"}],disabled:!e.actionButton},{title:"默认值",key:"dbDefaultVal",width:140,type:r.input,defaultValue:"",disabled:!e.actionButton},{title:"字段类型",key:"dbType",width:140,type:r.select,options:[{title:"String",value:"string"},{title:"Integer",value:"int"},{title:"Double",value:"double"},{title:"Long",value:"long"},{title:"Date",value:"Date"},{title:"Datetime",value:"Datetime"},{title:"BigDecimal",value:"BigDecimal"},{title:"Text",value:"Text"},{title:"Blob",value:"Blob"}],defaultValue:"string",placeholder:"请选择${title}",disabled:!e.actionButton,validateRules:[{required:!0,message:"请选择${title}"},{handler:Q}]},{title:"主键",key:"dbIsKey",width:80,type:r.checkbox,align:"center",customValue:["1","0"],defaultChecked:!1,disabled:!e.actionButton},{title:"允许空值",key:"dbIsNull",width:80,type:r.checkbox,customValue:["1","0"],defaultChecked:!0,disabled:!e.actionButton},{title:"同步数据库",key:"dbIsPersist",minWidth:80,type:r.checkbox,customValue:["1","0"],defaultChecked:!0,disabled:!e.actionButton},{title:"orderNum",key:"orderNum",type:r.hidden}]);let I=[];const T=de(A),{tableRef:s,loading:R,dataSource:y,tableHeight:v,tableProps:U,setDataSource:B,validateData:M}=T,L=b(!1),[V,{openModal:P}]=le(),w=a=>{s.value.addRows(a)};function _(){t("added",l)}function G(a){I=I.concat(a.deleteRows.map(i=>i.id)),t("removed",f(h({},a),{removeIds:I,target:l}))}function F(a){t("dragged",{oldIndex:a.oldIndex,newIndex:a.newIndex,target:l})}function H(a){t("inserted",f(h({},a),{target:l}))}function k(){return I}function x(a){let{type:i,row:o,col:E,value:d,target:n,oldValue:u}=a;i===r.select&&E.key==="dbType"?((d==="Date"||d==="Datetime")&&t("syncDbType",{row:o,value:d,target:l}),(d!=="Date"||d!=="Datetime")&&(u=="Date"||u=="Datetime")&&t("syncDbType",{row:o,value:d,target:l}),d==="Blob"||d==="Text"||d==="Date"?n.setValues([{rowKey:o.id,values:{dbLength:"0"}}]):d==="string"?n.setValues([{rowKey:o.id,values:{dbLength:"32"}}]):d==="int"||d==="double"||d==="BigDecimal"?n.setValues([{rowKey:o.id,values:{dbLength:"10"}}]):d==="long"?n.setValues([{rowKey:o.id,values:{dbLength:"19"}}]):o.dbLength==="0"&&n.setValues([{rowKey:o.id,values:{dbLength:"32"}}])):E.key==="dbIsPersist"?t("syncDbIsPersist",{row:o,value:d,target:l}):E.key==="dbIsNull"&&t("syncDbIsNull",{row:o,value:d,target:l})}function Y(a,i,o){var E;if(a==="has_child")return!0;if(a==="id"){const{tables:d}=T,n=((E=d.dbTable.value.tableRef.getTableData())!=null?E:[]).findIndex(u=>u.dbFieldName==="id");if((n===-1?0:n)===o)return!0}return!1}function K(a){s.value.pushRows(a),N.value||t("added",l)}function $(a){return s.value.removeRowsById(a)}function W(){N.value=!0,R.value=!0}function X(){N.value=!1,R.value=!1,t("added",l)}function D({cellValue:a,row:i},o){const{tables:E}=T;if(E){let d=E.dbTable.value.tableRef.dataSource.filter(c=>c.id===i.id);(!d||d.length<=0)&&o(!0);let n=d[0].dbFieldName;n==a&&o(!0);let u=E.idxTable.value.tableRef.getTableData();for(let c of u)c.indexField.split(",").indexOf(n)>=0&&o(!1,"当前字段存在索引配置,请先删除索引再修改字段")}o(!0)}function Q({cellValue:a,row:i},o){i.dbType=="int"&&i.dbPointLength>0&&o(!1,"设置了小数点不可设置integer类型"),o(!0)}return{tableRef:s,loading:R,columns:A,dataSource:y,setDataSource:B,addBatchBegin:W,addBatchEnd:X,tableAddLine:K,tableHeight:v,tableProps:U,tableDeleteLines:$,handleAdded:_,handleRemoved:G,handleDragged:F,handleInserted:H,handleValueChange:x,handleDisabledDbFieldName:Y,validateData:M,getRemoveIds:k,validateExistIndex:D,openAiModal:()=>{L.value=!0,setTimeout(()=>{P(!0)},0)},registerAiModal:V,aiModalShow:L,handleGenerate:w}}});function Re(e,t,l,N,A,I){const T=O("a-button"),s=O("JVxeTable"),R=O("AiModal");return S(),Z(J,null,[m(s,te({class:"dBAttributeTable",ref:"tableRef",rowNumber:"",rowSelection:"",dragSort:"",notAllowDrag:[{key:"dbFieldName",value:"id"}],keyboardEdit:"",sortKey:"orderNum",addButtonSettings:"",loading:e.loading,columns:e.columns,dataSource:e.dataSource,toolbar:e.actionButton,maxHeight:e.tableHeight.normal,disabledRows:{dbFieldName:e.handleDisabledDbFieldName}},e.tableProps,{onAdded:e.handleAdded,onRemoved:e.handleRemoved,onDragged:e.handleDragged,onInserted:e.handleInserted,onValueChange:e.handleValueChange}),{toolbarSuffix:p(()=>[m(T,{type:"primary",preIcon:"ant-design:robot-outlined",onClick:e.openAiModal},{default:p(()=>[...t[1]||(t[1]=[ae("AI字段建议",-1)])]),_:1},8,["onClick"])]),_:1},16,["loading","columns","dataSource","toolbar","maxHeight","disabledRows","onAdded","onRemoved","onDragged","onInserted","onValueChange"]),e.aiModalShow?(S(),z(R,{key:0,tableName:e.tableName,isUpdate:e.isUpdate,onRegister:e.registerAiModal,onClose:t[0]||(t[0]=()=>e.aiModalShow=!1),DBtableRef:e.tableRef,onGenerate:e.handleGenerate},null,8,["tableName","isUpdate","onRegister","DBtableRef","onGenerate"])):ee("",!0)],64)}const we=ie(Te,[["render",Re],["__scopeId","data-v-e8926c6a"]]);export{we as default};