index.ts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. import { DataType, TableType } from "@/enum";
  2. import { ColumnItem, TableItemType } from "@/type";
  3. import { uuid } from "@repo/utils";
  4. /**
  5. * 获取token
  6. */
  7. export const getToken = () => {
  8. const enterpriseCode = sessionStorage.getItem("enterpriseCode");
  9. const token = localStorage.getItem("token_" + enterpriseCode);
  10. return token;
  11. };
  12. export const createTable = (tableType: TableType, dataModelId: string, parentId?: string): TableItemType => {
  13. const tableId = uuid();
  14. const tableColumnList: ColumnItem[] = [];
  15. if(tableType === TableType.FlowTable) {
  16. // 创建流程表预定义字段
  17. const list = createFlowPredefinedFields(tableId, !!parentId);
  18. tableColumnList.push(...list);
  19. } else {
  20. // 创建业务表预定义字段
  21. tableColumnList.push(...createBasePredefinedField(tableId));
  22. }
  23. return {
  24. isTable: true,
  25. table: {
  26. aliasName: `newTableAliasName${new Date().getTime()}`,
  27. creationTime: "",
  28. creatorUserId: "",
  29. displayOrder: 0,
  30. id: tableId,
  31. isDeleted: false,
  32. langName: "",
  33. dataModelId,
  34. parentBusinessTableId: parentId || "",
  35. schemaName: `new_table_${new Date().getTime()}`,
  36. type: tableType,
  37. updateTime: "",
  38. openSync: false,
  39. langNameList: [
  40. { name: "zh-CN", value: "新建表" },
  41. { name: "en", value: "new table" },
  42. ],
  43. langDescriptionList: [
  44. { name: "zh-CN", value: "" },
  45. { name: "en", value: "" },
  46. ],
  47. style: {
  48. // 随机颜色
  49. color: "#" + Math.floor(Math.random() * 0x666666).toString(16),
  50. },
  51. },
  52. tableColumnList,
  53. };
  54. };
  55. /**
  56. * 创建字段
  57. * @param tableId 表id
  58. * @returns
  59. */
  60. export const createColumn = (tableId?: string, displayOrder?: number): ColumnItem => {
  61. return {
  62. id: uuid(),
  63. schemaName: "",
  64. type: DataType.Nvarchar,
  65. maxLength: undefined,
  66. precision: undefined,
  67. scale: undefined,
  68. isRequired: false,
  69. isUnique: false,
  70. isPreDefined: false,
  71. defaultValue: "",
  72. displayOrder,
  73. tableId: tableId || "",
  74. memo: "",
  75. whereInputType: "",
  76. whereInputContent: "",
  77. charset: "",
  78. langNameList: [
  79. { name: "zh-CN", value: "" },
  80. { name: "en", value: "" },
  81. ],
  82. };
  83. };
  84. /**
  85. * 创建基础表预定义字段
  86. */
  87. export const createBasePredefinedField = (tableId: string): ColumnItem[] => {
  88. return [
  89. // id
  90. {
  91. id: uuid(),
  92. schemaName: "id",
  93. type: DataType.Nvarchar,
  94. displayOrder: 1,
  95. maxLength: 50,
  96. tableId,
  97. isRequired: true,
  98. isUnique: false,
  99. isPreDefined: true,
  100. langNameList: [
  101. { name: "zh-CN", value: "Id" },
  102. { name: "en", value: "Id" },
  103. ],
  104. },
  105. // 创建时间
  106. {
  107. id: uuid(),
  108. schemaName: "creation_time",
  109. type: DataType.DateTime,
  110. displayOrder: 9001,
  111. maxLength: 0,
  112. tableId,
  113. isRequired: true,
  114. isUnique: false,
  115. isPreDefined: true,
  116. defaultValue: "<%SystemDate%>",
  117. langNameList: [
  118. { name: "zh-CN", value: "创建时间" },
  119. { name: "en", value: "CreationTime" },
  120. ],
  121. },
  122. // 创建者
  123. {
  124. id: uuid(),
  125. schemaName: "creation_user",
  126. type: DataType.Nvarchar,
  127. displayOrder: 9002,
  128. maxLength: 50,
  129. tableId,
  130. isRequired: true,
  131. isUnique: false,
  132. isPreDefined: true,
  133. defaultValue: "<%UserId%>",
  134. langNameList: [
  135. { name: "zh-CN", value: "创建人" },
  136. { name: "en", value: "CreationUser" },
  137. ],
  138. },
  139. // 更新时间
  140. {
  141. id: uuid(),
  142. schemaName: "update_time",
  143. type: DataType.DateTime,
  144. displayOrder: 9003,
  145. maxLength: 0,
  146. tableId,
  147. isRequired: false,
  148. isUnique: false,
  149. isPreDefined: true,
  150. defaultValue: "<%SystemDate%>",
  151. langNameList: [
  152. { name: "zh-CN", value: "更新时间" },
  153. { name: "en", value: "UpdateTime" },
  154. ],
  155. },
  156. // 更新者
  157. {
  158. id: uuid(),
  159. schemaName: "update_user",
  160. type: DataType.Nvarchar,
  161. displayOrder: 9004,
  162. maxLength: 50,
  163. tableId,
  164. isRequired: false,
  165. isUnique: false,
  166. isPreDefined: true,
  167. defaultValue: "<%UserId%>",
  168. langNameList: [
  169. { name: "zh-CN", value: "更新人" },
  170. { name: "en", value: "UpdateUser" },
  171. ],
  172. },
  173. // 删除时间
  174. {
  175. id: uuid(),
  176. schemaName: "delete_time",
  177. type: DataType.DateTime,
  178. displayOrder: 9005,
  179. maxLength: 0,
  180. tableId,
  181. isRequired: false,
  182. isUnique: false,
  183. isPreDefined: true,
  184. langNameList: [
  185. { name: "zh-CN", value: "删除时间" },
  186. { name: "en", value: "DeleteTime" },
  187. ],
  188. },
  189. // 删除人
  190. {
  191. id: uuid(),
  192. schemaName: "delete_user",
  193. type: DataType.Nvarchar,
  194. displayOrder: 9006,
  195. maxLength: 50,
  196. tableId,
  197. isRequired: false,
  198. isUnique: false,
  199. isPreDefined: true,
  200. defaultValue: "<%UserId%>",
  201. langNameList: [
  202. { name: "zh-CN", value: "删除人" },
  203. { name: "en", value: "DeleteUser" },
  204. ],
  205. },
  206. // 删除状态
  207. {
  208. id: uuid(),
  209. schemaName: "is_deleted",
  210. type: DataType.Bit,
  211. displayOrder: 9007,
  212. maxLength: 0,
  213. tableId,
  214. isRequired: false,
  215. isUnique: false,
  216. isPreDefined: true,
  217. langNameList: [
  218. { name: "zh-CN", value: "删除状态" },
  219. { name: "en", value: "IsDeleted" },
  220. ],
  221. },
  222. ];
  223. };
  224. /**
  225. * 创建流程表预定义字段
  226. */
  227. export const createFlowPredefinedFields = (
  228. tableId: string,
  229. isMainTable: boolean
  230. ) => {
  231. return [
  232. // id
  233. {
  234. id: uuid(),
  235. schemaName: "id",
  236. type: DataType.Nvarchar,
  237. displayOrder: 1,
  238. maxLength: 50,
  239. tableId,
  240. isRequired: true,
  241. isUnique: false,
  242. isPreDefined: true,
  243. langNameList: [
  244. { name: "zh-CN", value: "Id" },
  245. { name: "en", value: "Id" },
  246. ],
  247. },
  248. // 任务id
  249. {
  250. id: uuid(),
  251. schemaName: "TaskId",
  252. type: DataType.Nvarchar,
  253. displayOrder: 2,
  254. maxLength: 50,
  255. tableId,
  256. isRequired: true,
  257. isUnique: false,
  258. isPreDefined: true,
  259. langNameList: [
  260. { name: "zh-CN", value: "任务Id" },
  261. { name: "en", value: "TaskId" },
  262. ],
  263. },
  264. ...(isMainTable
  265. ? [
  266. {
  267. id: uuid(),
  268. schemaName: "snNumber",
  269. type: DataType.Nvarchar,
  270. displayOrder: 3,
  271. maxLength: 50,
  272. tableId,
  273. isRequired: true,
  274. isUnique: false,
  275. isPreDefined: true,
  276. langNameList: [
  277. { name: "zh-CN", value: "单号" },
  278. { name: "en", value: "SnNumber" },
  279. ],
  280. },
  281. {
  282. id: uuid(),
  283. schemaName: "taskStatus",
  284. type: DataType.Int,
  285. displayOrder: 4,
  286. maxLength: 0,
  287. tableId,
  288. isRequired: false,
  289. isUnique: false,
  290. isPreDefined: true,
  291. langNameList: [
  292. { name: "zh-CN", value: "任务状态" },
  293. { name: "en", value: "TaskStatus" },
  294. ],
  295. },
  296. {
  297. id: uuid(),
  298. schemaName: "creationTime",
  299. type: DataType.DateTime,
  300. displayOrder: 5,
  301. tableId,
  302. isRequired: true,
  303. isUnique: false,
  304. isPreDefined: true,
  305. langNameList: [
  306. { name: "zh-CN", value: "创建时间" },
  307. { name: "en", value: "CreationTime" },
  308. ],
  309. },
  310. ]
  311. : [
  312. {
  313. id: uuid(),
  314. schemaName: "gridOrder",
  315. type: DataType.Int,
  316. displayOrder: 3,
  317. tableId,
  318. isRequired: false,
  319. isUnique: false,
  320. isPreDefined: true,
  321. langNameList: [
  322. { name: "zh-CN", value: "序号" },
  323. { name: "en", value: "GridOrder" },
  324. ],
  325. },
  326. ]),
  327. ];
  328. };