2 lines
10 KiB
Java
2 lines
10 KiB
Java
var J=Object.defineProperty,Z=Object.defineProperties;var z=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,ee=Object.prototype.propertyIsEnumerable;var g=(e,t,l)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,S=(e,t)=>{for(var l in t||(t={}))j.call(t,l)&&g(e,l,t[l]);if(p)for(var l of p(t))ee.call(t,l)&&g(e,l,t[l]);return e},D=(e,t)=>Z(e,z(t));import{J as n}from"./JVxeTypes-C-gX5UoZ.js";import{u as te}from"./useTableSync-BXEqhCu5.js";import ae from"./aiModal-BCdX9Dwa.js";import"./index-BDvqZ5j4.js";import{u as le}from"./useModal-DaJ3Bflg.js";import{e as de,r as m,g as ie,C as oe,z as c,f as h,y as ne,H as re,A as y,B as se,K as f,F as ue,E as Ee}from"./vue-vendor-DNhG1Cve.js";import{au as Ie}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"./index-DSsDi_fL.js";import"./Group-UHkub2tu.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useTimeout-D5AmIBZw.js";import"./index-BzChaRPg.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./useAppInject-DPZGPcR3.js";import"./index-CuWaQdlK.js";import"./index-DO7ZhK45.js";const Te=["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"],Re=de({name:"DBAttributeTable",props:{actionButton:{type:Boolean,default:!0},tableName:{type:String,default:""},isUpdate:{type:Boolean,default:!1}},components:{AiModal:ae},emits:["added","removed","inserted","dragged","syncDbType","syncDbIsPersist","syncDbIsNull"],setup(e,{emit:t}){const l=ie(),A=m(!1),L=m([{title:"字段名称",key:"dbFieldName",width:140,type:n.input,defaultValue:"",placeholder:"请输入${title}",fixed:"left",validateRules:[{required:!0,message:"${title}不能为空"},{pattern:/^[a-zA-Z]{1}(?!_)[a-zA-Z0-9_\\$]+$/,message:"命名规则:只能由字母、数字、下划线、$符号组成;必须以字母开头;不能以单个字母加下滑线开头"},{unique:!0,message:"${title}不能重复"},{handler({cellValue:a},o){Te.includes(a.toUpperCase())?o(!1,a+"是关键字,不能作为字段名称使用!"):o(!0)}},{handler:b},{handler({cellValue:a},o){a.length>32?o(!1,"字段名最长32个字符"):o(!0)}}],disabled:!e.actionButton},{title:"字段备注",key:"dbFieldTxt",width:140,type:n.input,defaultValue:"",placeholder:"请输入${title}",fixed:"left",validateRules:[{required:!0,message:"${title}不能为空"},{handler({cellValue:a},o){a.length>200?o(!1,"字段名最长200个字"):o(!0)}}]},{title:"字段长度",key:"dbLength",width:120,type:n.inputNumber,defaultValue:32,placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"}],disabled:!e.actionButton},{title:"小数点",key:"dbPointLength",width:100,type:n.inputNumber,defaultValue:0,placeholder:"请输入${title}",validateRules:[{required:!0,message:"${title}不能为空"}],disabled:!e.actionButton},{title:"默认值",key:"dbDefaultVal",width:140,type:n.input,defaultValue:"",disabled:!e.actionButton},{title:"字段类型",key:"dbType",width:140,type:n.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:"LongText",value:"LongText"},{title:"Blob",value:"Blob"}],defaultValue:"string",placeholder:"请选择${title}",disabled:!e.actionButton,validateRules:[{required:!0,message:"请选择${title}"},{handler:q}]},{title:"主键",key:"dbIsKey",width:80,type:n.checkbox,align:"center",customValue:["1","0"],defaultChecked:!1,disabled:!e.actionButton},{title:"允许空值",key:"dbIsNull",width:80,type:n.checkbox,customValue:["1","0"],defaultChecked:!0,disabled:!e.actionButton},{title:"同步数据库",key:"dbIsPersist",minWidth:80,type:n.checkbox,customValue:["1","0"],defaultChecked:!0,disabled:!e.actionButton},{title:"orderNum",key:"orderNum",type:n.hidden}]);let I=[];const T=te(L),{tableRef:E,loading:R,dataSource:U,tableHeight:B,tableProps:M,setDataSource:v,validateData:V}=T,O=m(!1),[F,{openModal:G}]=le(),P=a=>{E.value.addRows(a)};function H(){t("added",l)}function w(a){I=I.concat(a.deleteRows.map(o=>o.id)),t("removed",D(S({},a),{removeIds:I,target:l}))}function _(a){t("dragged",{oldIndex:a.oldIndex,newIndex:a.newIndex,target:l})}function k(a){t("inserted",D(S({},a),{target:l}))}function Y(){return I}function x(a){let{type:o,row:d,col:r,value:i,target:s,oldValue:u}=a;o===n.select&&r.key==="dbType"?((i==="Date"||i==="Datetime")&&t("syncDbType",{row:d,value:i,target:l}),(i!=="Date"||i!=="Datetime")&&(u=="Date"||u=="Datetime")&&t("syncDbType",{row:d,value:i,target:l}),i==="Blob"||i==="Text"||i==="Date"?s.setValues([{rowKey:d.id,values:{dbLength:"0"}}]):i==="string"?s.setValues([{rowKey:d.id,values:{dbLength:"32"}}]):i==="int"||i==="double"||i==="BigDecimal"?s.setValues([{rowKey:d.id,values:{dbLength:"10"}}]):i==="long"?s.setValues([{rowKey:d.id,values:{dbLength:"19"}}]):d.dbLength==="0"&&s.setValues([{rowKey:d.id,values:{dbLength:"32"}}])):r.key==="dbIsPersist"?t("syncDbIsPersist",{row:d,value:i,target:l}):r.key==="dbIsNull"&&t("syncDbIsNull",{row:d,value:i,target:l})}function K(a,o,d){var r;if(a==="has_child")return!0;if(a==="id"){const{tables:i}=T,u=((r=i.dbTable.value.tableRef.getTableData())!=null?r:[]).findIndex(N=>N.dbFieldName==="id");if((u===-1?0:u)===d)return!0}return!1}function $(a){E.value.pushRows(a),A.value||t("added",l)}function W(a){return E.value.removeRowsById(a)}function X(){A.value=!0,R.value=!0}function Q(){A.value=!1,R.value=!1,t("added",l)}function b({cellValue:a,row:o},d){const{tables:r}=T;if(r){let s=r.dbTable.value.tableRef.dataSource.filter(N=>N.id===o.id);(!s||s.length<=0)&&d(!0);let u=s[0].dbFieldName;u==a&&d(!0);let C=r.idxTable.value.tableRef.getTableData();for(let N of C)N.indexField.split(",").indexOf(u)>=0&&d(!1,"当前字段存在索引配置,请先删除索引再修改字段")}d(!0)}function q({cellValue:a,row:o},d){o.dbType=="int"&&o.dbPointLength>0&&d(!1,"设置了小数点不可设置integer类型"),d(!0)}return{tableRef:E,loading:R,columns:L,dataSource:U,setDataSource:v,addBatchBegin:X,addBatchEnd:Q,tableAddLine:$,tableHeight:B,tableProps:M,tableDeleteLines:W,handleAdded:H,handleRemoved:w,handleDragged:_,handleInserted:k,handleValueChange:x,handleDisabledDbFieldName:K,validateData:V,getRemoveIds:Y,validateExistIndex:b,openAiModal:()=>{O.value=!0,setTimeout(()=>{G(!0)},0)},registerAiModal:F,aiModalShow:O,handleGenerate:P}}});function Ne(e,t,l,A,L,I){const T=f("a-button"),E=f("JVxeTable"),R=f("AiModal");return c(),oe(ue,null,[h(E,se({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:y(()=>[h(T,{type:"primary",preIcon:"ant-design:robot-outlined",onClick:e.openAiModal},{default:y(()=>[...t[1]||(t[1]=[Ee("AI字段建议",-1)])]),_:1},8,["onClick"])]),_:1},16,["loading","columns","dataSource","toolbar","maxHeight","disabledRows","onAdded","onRemoved","onDragged","onInserted","onValueChange"]),e.aiModalShow?(c(),ne(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"])):re("",!0)],64)}const Ze=Ie(Re,[["render",Ne],["__scopeId","data-v-f06fc771"]]);export{Ze as default};
|