lyflowchart 1.0.113 → 1.0.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/ActionsConfig-BuvSvRbv.js +395 -0
  2. package/dist/ActionsConfig-BuvSvRbv.js.map +1 -0
  3. package/dist/ApprovalEditorModal-DZfXupU3.js +48 -0
  4. package/dist/ApprovalEditorModal-DZfXupU3.js.map +1 -0
  5. package/dist/CancelModal-BUi3ieI8.js +61 -0
  6. package/dist/CancelModal-BUi3ieI8.js.map +1 -0
  7. package/dist/Cell_click_approve-CBh0j--6.js +244 -0
  8. package/dist/Cell_click_approve-CBh0j--6.js.map +1 -0
  9. package/dist/JsonTags-BbWLqghI.js +66 -0
  10. package/dist/JsonTags-BbWLqghI.js.map +1 -0
  11. package/dist/MyProcess-FWGEwQcv.js +26434 -0
  12. package/dist/MyProcess-FWGEwQcv.js.map +1 -0
  13. package/dist/MyProcess.vue.d.ts +991 -0
  14. package/dist/approval-BW2WjPxY.js +167 -0
  15. package/dist/approval-BW2WjPxY.js.map +1 -0
  16. package/dist/approval-CuUNtG9u.js +18 -0
  17. package/dist/approval-CuUNtG9u.js.map +1 -0
  18. package/dist/approvalHistory-B2gpQbFC.js +868 -0
  19. package/dist/approvalHistory-B2gpQbFC.js.map +1 -0
  20. package/dist/approvalHistoryViewModal-DgLpv2ot.js +114 -0
  21. package/dist/approvalHistoryViewModal-DgLpv2ot.js.map +1 -0
  22. package/dist/approvalPageConfig-D0zPXOUf.js +2437 -0
  23. package/dist/approvalPageConfig-D0zPXOUf.js.map +1 -0
  24. package/dist/approveLeftConfig-BOU_UgHp.js +136 -0
  25. package/dist/approveLeftConfig-BOU_UgHp.js.map +1 -0
  26. package/dist/codeHistoryViewModal-BfSjIbEU.js +103 -0
  27. package/dist/codeHistoryViewModal-BfSjIbEU.js.map +1 -0
  28. package/dist/columnTables-DLwtgcC7.js +1272 -0
  29. package/dist/columnTables-DLwtgcC7.js.map +1 -0
  30. package/dist/components/Cell_click_approve.vue.d.ts +5 -0
  31. package/dist/components/Cell_click_data_source.vue.d.ts +6 -0
  32. package/dist/components/Process/common/bpmnUtils.d.ts +8 -0
  33. package/dist/components/Process/common/global.d.ts +16 -0
  34. package/dist/components/Process/common/index.d.ts +5 -0
  35. package/dist/components/Process/component/JsonTags2.vue.d.ts +60 -0
  36. package/dist/components/Process/component/ValueInput2.vue.d.ts +74 -0
  37. package/dist/components/Process/component/columnNameField2.vue.d.ts +51 -0
  38. package/dist/components/Process/component/data.d.ts +157 -0
  39. package/dist/components/Process/customPanel/CustomContextPad.d.ts +31 -0
  40. package/dist/components/Process/customPanel/CustomPalette.d.ts +89 -0
  41. package/dist/components/Process/customPanel/customTranslate.d.ts +1 -0
  42. package/dist/components/Process/customPanel/index.d.ts +8 -0
  43. package/dist/components/Process/designer.vue.d.ts +589 -0
  44. package/dist/components/Process/flowable/init.d.ts +1 -0
  45. package/dist/components/Process/index.vue.d.ts +812 -0
  46. package/dist/components/Process/lang/zh.d.ts +249 -0
  47. package/dist/components/Process/panel/ButtonsPanel.vue.d.ts +24 -0
  48. package/dist/components/Process/panel/PropertiesPanel.vue.d.ts +24 -0
  49. package/dist/components/Process/panel/commonPanel.vue.d.ts +40 -0
  50. package/dist/components/Process/panel/conditionPanel.vue.d.ts +271 -0
  51. package/dist/components/Process/panel/executionListener.vue.d.ts +66 -0
  52. package/dist/components/Process/panel/formPanel.vue.d.ts +7 -0
  53. package/dist/components/Process/panel/multiInstance.vue.d.ts +33 -0
  54. package/dist/components/Process/panel/otherPanel.vue.d.ts +17 -0
  55. package/dist/components/Process/panel/taskListener.vue.d.ts +64 -0
  56. package/dist/components/Process/panel/taskPanel.vue.d.ts +254 -0
  57. package/dist/components/Process/viewer/index.vue.d.ts +41 -0
  58. package/dist/components/approval/ApprovalEditorModal.vue.d.ts +26 -0
  59. package/dist/components/approval/CostCompanySelect.vue.d.ts +29 -0
  60. package/dist/components/approval/CostDepartmentSelect.vue.d.ts +35 -0
  61. package/dist/components/approval/CreateByCascader.vue.d.ts +27 -0
  62. package/dist/components/approval/CreateBySelect.vue.d.ts +35 -0
  63. package/dist/components/approval/PostionCascader.vue.d.ts +26 -0
  64. package/dist/components/approval/SystemTime.vue.d.ts +38 -0
  65. package/dist/components/approval/approvalViewId.d.ts +36 -0
  66. package/dist/components/approval/components/CancelModal.vue.d.ts +25 -0
  67. package/dist/components/approval/components/FormCodeInput.vue.d.ts +33 -0
  68. package/dist/components/approval/components/FormContextInput.vue.d.ts +33 -0
  69. package/dist/components/approval/components/FormFlowOrgInput.vue.d.ts +40 -0
  70. package/dist/components/approval/components/actionsBar.vue.d.ts +17 -0
  71. package/dist/components/approval/components/approvalHistory/approvalHistoryViewModal.vue.d.ts +41 -0
  72. package/dist/components/approval/components/approvalHistory/dataStoreSettingHistory.vue.d.ts +55 -0
  73. package/dist/components/approval/components/approvalHistory/dataStoreSettingHistoryViewModal.vue.d.ts +41 -0
  74. package/dist/components/approval/components/approvalHistory/flowHistoryViewModal.vue.d.ts +41 -0
  75. package/dist/components/approval/components/approvalHistory/flowSettingHistory.vue.d.ts +55 -0
  76. package/dist/components/approval/components/approvalHistory/index.vue.d.ts +212 -0
  77. package/dist/components/approval/components/approvalHistory/pageSettingHistory.vue.d.ts +55 -0
  78. package/dist/components/approval/components/approvalPageConfig/ActionsConfig.vue.d.ts +112 -0
  79. package/dist/components/approval/components/approvalPageConfig/BaseConditions.vue.d.ts +205 -0
  80. package/dist/components/approval/components/approvalPageConfig/CodeEditorWraper.vue.d.ts +51 -0
  81. package/dist/components/approval/components/approvalPageConfig/ColumnConfig.vue.d.ts +145 -0
  82. package/dist/components/approval/components/approvalPageConfig/ConditionFieldMulType.vue.d.ts +137 -0
  83. package/dist/components/approval/components/approvalPageConfig/JsonInput.vue.d.ts +38 -0
  84. package/dist/components/approval/components/approvalPageConfig/JsonTags.vue.d.ts +26 -0
  85. package/dist/components/approval/components/approvalPageConfig/JsonText.vue.d.ts +36 -0
  86. package/dist/components/approval/components/approvalPageConfig/approveLeftConfig.vue.d.ts +6 -0
  87. package/dist/components/approval/components/approvalPageConfig/baseConfig.vue.d.ts +10 -0
  88. package/dist/components/approval/components/approvalPageConfig/cellEdit.vue.d.ts +23 -0
  89. package/dist/components/approval/components/approvalPageConfig/configSync.vue.d.ts +76 -0
  90. package/dist/components/approval/components/approvalPageConfig/confirmInput.vue.d.ts +26 -0
  91. package/dist/components/approval/components/approvalPageConfig/defaultOperatorSelect.vue.d.ts +18 -0
  92. package/dist/components/approval/components/approvalPageConfig/index.vue.d.ts +11 -0
  93. package/dist/components/approval/components/approvalPageConfig/jsonConfig.vue.d.ts +16 -0
  94. package/dist/components/approval/components/approvalPageConfig/layoutSetting.vue.d.ts +9 -0
  95. package/dist/components/approval/components/approvalPageConfig/leftColumn.vue.d.ts +1184 -0
  96. package/dist/components/approval/components/approvalPageConfig/middleColumn.vue.d.ts +145 -0
  97. package/dist/components/approval/components/approvalPageConfig/operatorSelect.vue.d.ts +18 -0
  98. package/dist/components/approval/components/approvalPageConfig/searchConfig.vue.d.ts +166 -0
  99. package/dist/components/approval/components/approvalPageConfig/tableConfig.vue.d.ts +802 -0
  100. package/dist/components/approval/components/codeHistory/codeHistory.vue.d.ts +53 -0
  101. package/dist/components/approval/components/codeHistory/codeHistoryViewModal.vue.d.ts +32 -0
  102. package/dist/components/approval/components/columnDataList.vue.d.ts +454 -0
  103. package/dist/components/approval/components/columnForm.vue.d.ts +26 -0
  104. package/dist/components/approval/components/columnTables.vue.d.ts +502 -0
  105. package/dist/components/approval/components/columnUnknown.vue.d.ts +2 -0
  106. package/dist/components/approval/components/dataStoreConfig/ConditionConfig.vue.d.ts +199 -0
  107. package/dist/components/approval/components/dataStoreConfig/ValueInput.vue.d.ts +37 -0
  108. package/dist/components/approval/components/dataStoreConfig/dataSourceDetial.vue.d.ts +22 -0
  109. package/dist/components/approval/components/dataStoreConfig/dataStoreConfig.vue.d.ts +554 -0
  110. package/dist/components/approval/components/dataStoreConfig/dataStoreConfigItem.vue.d.ts +434 -0
  111. package/dist/components/approval/components/dataStoreConfig/dataStoreTest.vue.d.ts +39 -0
  112. package/dist/components/approval/components/dataStoreConfig/dataStoreTestsItem.vue.d.ts +17 -0
  113. package/dist/components/approval/components/dataStoreConfig/formField.vue.d.ts +28 -0
  114. package/dist/components/approval/components/dataStoreConfig/formFieldMulType.vue.d.ts +96 -0
  115. package/dist/components/approval/components/dataStoreConfig/selectExcelColumn.vue.d.ts +26 -0
  116. package/dist/components/approval/components/dataStoreConfig/selectExcelType.vue.d.ts +28 -0
  117. package/dist/components/approval/components/debugCode/debugCode.vue.d.ts +214 -0
  118. package/dist/components/approval/components/drawerDataList.vue.d.ts +504 -0
  119. package/dist/components/approval/components/drawerTablesList.vue.d.ts +551 -0
  120. package/dist/components/approval/components/flowConfig/flowConfig.vue.d.ts +1097 -0
  121. package/dist/components/approval/components/flowConfig/selectCcGroup.vue.d.ts +9 -0
  122. package/dist/components/approval/components/flowConfig/selectUsers.vue.d.ts +9 -0
  123. package/dist/components/approval/components/modelTablesList.vue.d.ts +551 -0
  124. package/dist/components/approval/components/pageConfigHistory.vue.d.ts +2 -0
  125. package/dist/components/approval/components/search.vue.d.ts +238 -0
  126. package/dist/components/approval/components/searchSummary.vue.d.ts +100 -0
  127. package/dist/components/approval/components/table.vue.d.ts +416 -0
  128. package/dist/components/approval/components/tableModal.vue.d.ts +84 -0
  129. package/dist/components/approval/configs/approval/default.d.ts +11 -0
  130. package/dist/components/approval/configs/approval/recordActions.d.ts +22 -0
  131. package/dist/components/approval/core.vue.d.ts +48 -0
  132. package/dist/components/approval/example_code/example_code.d.ts +11 -0
  133. package/dist/components/approval/index.d.ts +18 -0
  134. package/dist/components/approval/index.vue.d.ts +2 -0
  135. package/dist/components/approval/migrate/index.d.ts +1 -0
  136. package/dist/components/approval/migrate/v0001.d.ts +2 -0
  137. package/dist/components/approval/store/context.d.ts +48 -0
  138. package/dist/components/approval/store/debugCode.d.ts +7 -0
  139. package/dist/components/approval/store/settingsState.d.ts +15 -0
  140. package/dist/components/approval/typing.d.ts +210 -0
  141. package/dist/components/approval/useApprovalRecordActions.d.ts +83 -0
  142. package/dist/components/approval/utils.d.ts +164 -0
  143. package/dist/components/approval_for_details.vue.d.ts +9 -0
  144. package/dist/components/flow/ElInputTag/index.vue.d.ts +46 -0
  145. package/dist/components/flow/Expression/index.vue.d.ts +48 -0
  146. package/dist/components/flow/Role/index.vue.d.ts +68 -0
  147. package/dist/components/flow/User/index.vue.d.ts +76 -0
  148. package/dist/config/packed-config.d.ts +26 -0
  149. package/dist/constants.d.ts +1 -0
  150. package/dist/core-CctSle2c.js +1629 -0
  151. package/dist/core-CctSle2c.js.map +1 -0
  152. package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js +114 -0
  153. package/dist/dataStoreSettingHistoryViewModal-D_so-KLp.js.map +1 -0
  154. package/dist/debugCode-Cm9-WiUG.js +565 -0
  155. package/dist/debugCode-Cm9-WiUG.js.map +1 -0
  156. package/dist/debugCode-dD1YnQSD.js +11 -0
  157. package/dist/debugCode-dD1YnQSD.js.map +1 -0
  158. package/dist/default-VdDMlY4e.js +560 -0
  159. package/dist/default-VdDMlY4e.js.map +1 -0
  160. package/dist/example_code-C_xF8RRG.js +129 -0
  161. package/dist/example_code-C_xF8RRG.js.map +1 -0
  162. package/dist/flowHistoryViewModal-D8DJP7Te.js +109 -0
  163. package/dist/flowHistoryViewModal-D8DJP7Te.js.map +1 -0
  164. package/dist/index.d.ts +81 -0
  165. package/dist/index.js +507 -26691
  166. package/dist/index.js.map +1 -1
  167. package/dist/init-plugin-fQTSQzui.js +48 -0
  168. package/dist/init-plugin-fQTSQzui.js.map +1 -0
  169. package/dist/init-plugin.d.ts +57 -0
  170. package/dist/leftColumn-CsPjufue.js +209 -0
  171. package/dist/leftColumn-CsPjufue.js.map +1 -0
  172. package/dist/lyflowchart.css +1 -1
  173. package/dist/middleColumn-C7M6-eVo.js +107 -0
  174. package/dist/middleColumn-C7M6-eVo.js.map +1 -0
  175. package/dist/recordActions-BgFlNsGU.js +51 -0
  176. package/dist/recordActions-BgFlNsGU.js.map +1 -0
  177. package/dist/settingsState-CI81PG-i.js +19 -0
  178. package/dist/settingsState-CI81PG-i.js.map +1 -0
  179. package/dist/style.d.ts +3 -0
  180. package/dist/styles.d.ts +7 -0
  181. package/dist/tableConfig-uLXue-BS.js +2408 -0
  182. package/dist/tableConfig-uLXue-BS.js.map +1 -0
  183. package/dist/tableModal-BcYfVL02.js +124 -0
  184. package/dist/tableModal-BcYfVL02.js.map +1 -0
  185. package/dist/useApprovalRecordActions-BQ6MgV2L.js +843 -0
  186. package/dist/useApprovalRecordActions-BQ6MgV2L.js.map +1 -0
  187. package/dist/utils/StrUtil.d.ts +52 -0
  188. package/dist/utils/function.d.ts +8 -0
  189. package/dist/utils-CLet2gLV.js +420 -0
  190. package/dist/utils-CLet2gLV.js.map +1 -0
  191. package/dist/v0001-OaBeBCXI.js +4 -0
  192. package/dist/v0001-OaBeBCXI.js.map +1 -0
  193. package/dist/{Cell_click_data_source-CUVsbkcN.js → viewer-Dv3kQsMf.js} +1551 -2415
  194. package/dist/viewer-Dv3kQsMf.js.map +1 -0
  195. package/dist/vue-print-next-HRweUmNi.js +683 -0
  196. package/dist/vue-print-next-HRweUmNi.js.map +1 -0
  197. package/package.json +39 -8
  198. package/dist/Cell_click_data_source-CUVsbkcN.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvalHistory-B2gpQbFC.js","names":[],"sources":["../src/components/approval/components/approvalHistory/pageSettingHistory.vue","../src/components/approval/components/approvalHistory/pageSettingHistory.vue","../src/components/approval/components/approvalHistory/flowSettingHistory.vue","../src/components/approval/components/approvalHistory/flowSettingHistory.vue","../src/components/approval/components/approvalHistory/dataStoreSettingHistory.vue","../src/components/approval/components/approvalHistory/dataStoreSettingHistory.vue","../src/components/approval/components/approvalHistory/index.vue","../src/components/approval/components/approvalHistory/index.vue"],"sourcesContent":["<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport { useI18n } from 'vue-i18n';\nexport default defineComponent({\n name: 'pageSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'page_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_page_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: 'approvalHistoryViewModal',\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_page_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData({ org_id, menu_flag, content: data.content }, '/approve/set_page_setting');\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport { useI18n } from 'vue-i18n';\nexport default defineComponent({\n name: 'pageSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'page_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_page_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: 'approvalHistoryViewModal',\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_page_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData({ org_id, menu_flag, content: data.content }, '/approve/set_page_setting');\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport { useI18n } from 'vue-i18n';\nexport default defineComponent({\n name: 'flowSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'flow_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_flow_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: 'flowHistoryViewModal',\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_flow_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData({ org_id, menu_flag, content: data.content }, '/approve/set_flow_setting');\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport { useI18n } from 'vue-i18n';\nexport default defineComponent({\n name: 'flowSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'flow_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_flow_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: 'flowHistoryViewModal',\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_flow_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData({ org_id, menu_flag, content: data.content }, '/approve/set_flow_setting');\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport {\n computed,\n defineAsyncComponent,\n defineComponent,\n onMounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { stripDataStoreConfigHints } from '../../utils';\nexport default defineComponent({\n name: 'dataStoreSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'data_store_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_data_store_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: defineAsyncComponent(() => import('./dataStoreSettingHistoryViewModal.vue')),\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_data_store_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData(\n // 历史快照里可能带着当时「规则更新」落的临时标记,应用历史版本时一并剥离\n { org_id, menu_flag, content: stripDataStoreConfigHints(data.content) },\n '/approve/set_data_store_setting',\n );\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <!-- 历史记录表格布局 -->\n <div class=\"history-toolbar\">\n <span class=\"history-toolbar-label\">{{ $t('时间范围') }}:</span>\n <a-range-picker\n v-model:value=\"dateRange\"\n style=\"width: 320px; margin-right: 16px\"\n :allowClear=\"true\"\n :placeholder=\"[$t('开始时间'), $t('结束时间')]\"\n :showTime=\"{ format: 'YYYY-MM-DD HH:mm:ss' }\"\n :value-format=\"'YYYY-MM-DD HH:mm:ss'\"\n @change=\"handleDateChange\"\n />\n <a-button-group>\n <a-button\n type=\"primary\"\n @click=\"handleCompareSelected\"\n :disabled=\"selectedRowKeys.length !== 2\"\n >\n {{ $t('比较所选') }}\n </a-button>\n <a-button\n type=\"primary\"\n @click=\"getHistoryList\"\n >\n <template #icon>\n <ReloadOutlined />\n </template>\n {{ $t('刷新') }}\n </a-button>\n </a-button-group>\n </div>\n <s-table\n v-model:selectedRowKeys=\"selectedRowKeys\"\n :dataSource=\"tableData\"\n :columns=\"columns\"\n :loading=\"loading\"\n :rowSelection=\"rowSelection\"\n :pagination=\"{\n current: current,\n pageSize: pageSize,\n total: total,\n onChange: handlePageChange,\n showSizeChanger: true,\n showQuickJumper: true,\n pageSizeOptions: pageOptions,\n }\"\n :scroll=\"{ y: height - 220 }\"\n rowKey=\"id\"\n >\n <template #bodyCell=\"{ column, record }\">\n <template v-if=\"column.dataIndex === 'diff_len'\">\n <a-progress\n v-if=\"record.diff_len > 1\"\n :percent=\"getDiffPercent(record.diff_len)\"\n :stroke-width=\"8\"\n style=\"width: 120px\"\n :show-info=\"false\"\n :strokeColor=\"\n getDiffPercent(record.diff_len) > 90\n ? '#f5222d'\n : getDiffPercent(record.diff_len) > 50\n ? '#faad14'\n : '#ccc'\n \"\n />\n <span v-else>{{ $t('无') }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-button\n type=\"link\"\n size=\"small\"\n :disabled=\"record.last_id === null\"\n @click=\"handleViewHistory([record.last_id, record.id])\"\n >\n {{ $t('比较') }}\n </a-button>\n\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n @click=\"handleApplyHistory(record.id)\"\n >\n {{ $t('应用') }}\n </a-button>\n </template>\n <template v-else>\n {{ record[column.dataIndex] }}\n </template>\n </template>\n </s-table>\n</template>\n\n<script lang=\"ts\">\nimport { message, Modal } from 'ant-design-vue';\nimport { getApiData, modalBox, usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport {\n computed,\n defineAsyncComponent,\n defineComponent,\n onMounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport { stripDataStoreConfigHints } from '../../utils';\nexport default defineComponent({\n name: 'dataStoreSettingHistory',\n props: {\n modelType: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {},\n emits: ['changeHistory'],\n setup(props, { emit }) {\n const pageSelectOptions = usePageSelectOptions();\n const { t } = useI18n();\n const loading = ref(false);\n const userStore = useUserStore();\n const current_org = userStore.currentOrg; // 当前组织org\n const showDebug = ref(false);\n const dateRange = ref([]);\n const current = ref(1);\n const pageSize = ref(10);\n const total = ref(0);\n // mock数据\n const tableData = ref([]);\n const columns = [\n {\n title: 'ID',\n dataIndex: 'id',\n width: 60,\n },\n {\n title: t('时间'),\n dataIndex: 'create_time',\n width: 180,\n },\n {\n title: t('差异量'),\n dataIndex: 'diff_len',\n width: 180,\n },\n {\n title: t('操作'),\n dataIndex: 'action',\n width: 220,\n },\n ];\n const selectedRowKeys = ref([]);\n const getHistoryList = () => {\n if (!props.modelType) {\n return;\n }\n loading.value = true;\n const conditions = [\n {\n field_name: 'data_store_setting__menu_flag',\n operator: 'eq',\n value: [props.modelType],\n format: 'input',\n class_name: 'str',\n },\n ];\n if (dateRange.value?.length > 0) {\n conditions.push({\n field_name: 'create_time',\n operator: 'between',\n value: [dateRange.value[0], dateRange.value[1]],\n format: 'input',\n class_name: 'str',\n });\n }\n const queryParams = {\n org_id: current_org?.id,\n current: current.value,\n pageSize: pageSize.value,\n is_pagination: true,\n column_fields: ['id', 'create_time', 'diff_len', 'last_id'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_data_store_setting_history_list').then((res: any) => {\n tableData.value = res.data;\n total.value = res.total;\n current.value = res.current;\n pageSize.value = res.pageSize;\n loading.value = false;\n });\n };\n const handleDateChange = () => {\n getHistoryList();\n };\n const pageOptions = computed(() => {\n return pageSelectOptions.map((item: any) => item.value);\n });\n const rowSelection = {\n type: 'checkbox',\n };\n const handleCompareSelected = () => {\n handleViewHistory(selectedRowKeys.value);\n };\n\n const findSelectedNode = (list: any[], key: string) => {\n const node = list.find((item: any) => item.state === key);\n if (node) {\n return node;\n } else {\n for (let i = 0; i < list.length; i++) {\n if (list[i].children instanceof Array) {\n const result = findSelectedNode(list[i].children, key);\n if (result) {\n return result;\n }\n }\n }\n }\n return null;\n };\n\n const handlePageChange = (page: number, size: number) => {\n if (current.value === page && pageSize.value === size) {\n return;\n }\n current.value = page || 1;\n pageSize.value = size || 50;\n getHistoryList();\n };\n const getDiffPercent = (diff_len: number) => {\n return diff_len / 2;\n };\n const handleViewHistory = (ids: Array<string>) => {\n const tempModal = reactive({\n component: defineAsyncComponent(() => import('./dataStoreSettingHistoryViewModal.vue')),\n history_ids: ids,\n org_id: current_org?.id,\n height: props.height,\n ok: (data: any) => {},\n cancel: () => {},\n });\n modalBox(tempModal);\n };\n const handleApplyHistory = (id: number) => {\n Modal.confirm({\n title: t('确定应用该历史记录吗?'),\n onOk: () => {\n applyHistory(id);\n },\n });\n };\n\n const applyHistoryByHistoryId = async (\n history_id: number,\n org_id: number,\n modal_type: string,\n ) => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'eq',\n value: [history_id],\n format: 'input',\n class_name: 'str',\n },\n ];\n const queryParams = {\n org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n const res = await getApiData(queryParams, '/approve/query_data_store_setting_history_list');\n if (res.data.length > 0) {\n const data = res.data[0];\n const menu_flag = modal_type;\n await getApiData(\n // 历史快照里可能带着当时「规则更新」落的临时标记,应用历史版本时一并剥离\n { org_id, menu_flag, content: stripDataStoreConfigHints(data.content) },\n '/approve/set_data_store_setting',\n );\n return true;\n } else {\n return false;\n }\n };\n const applyHistory = async (id: number) => {\n loading.value = true;\n try {\n const res = await applyHistoryByHistoryId(id, current_org?.id, props.modelType);\n if (res) {\n emit('changeHistory');\n message.success(t('应用成功'));\n } else {\n message.error(t('应用失败'));\n }\n } catch (error) {\n message.error(t('应用失败'));\n } finally {\n loading.value = false;\n }\n };\n watch(\n () => props.modelType,\n () => {\n getHistoryList();\n },\n );\n onMounted(() => {\n getHistoryList();\n });\n\n return {\n current_org,\n loading,\n showDebug,\n tableData,\n columns,\n rowSelection,\n dateRange,\n handleCompareSelected,\n selectedRowKeys,\n current,\n pageSize,\n total,\n pageSelectOptions,\n handlePageChange,\n pageOptions,\n getHistoryList,\n handleDateChange,\n getDiffPercent,\n handleViewHistory,\n handleApplyHistory,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.history-table-container {\n width: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <div>\n <a-layout :style=\"{ height: bodyHeight + 'px' }\">\n <a-layout-sider\n class=\"approve-config-left\"\n style=\"width: 500px\"\n :width=\"220\"\n >\n <approveLeftConfig @change=\"onChange\"></approveLeftConfig>\n </a-layout-sider>\n <a-layout-content class=\"setting-container\">\n <div\n v-if=\"!selectedNode\"\n class=\"empty-content\"\n >\n <a-empty :description=\"$t('请选择菜单')\" />\n </div>\n <template v-else>\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n tab=\"页面历史\"\n key=\"page_setting_history\"\n >\n <page-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></page-setting-history>\n </a-tab-pane>\n <a-tab-pane\n tab=\"流程历史\"\n key=\"flow_setting_history\"\n >\n <flow-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></flow-setting-history>\n </a-tab-pane>\n <a-tab-pane\n tab=\"数据存储配置历史\"\n key=\"data_store_setting_history\"\n >\n <data-store-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></data-store-setting-history>\n </a-tab-pane>\n </a-tabs>\n </template>\n </a-layout-content>\n </a-layout>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, PropType, ref, watch } from 'vue';\nimport pageSettingHistory from './pageSettingHistory.vue';\nimport flowSettingHistory from './flowSettingHistory.vue';\nimport dataStoreSettingHistory from './dataStoreSettingHistory.vue';\nimport approveLeftConfig from '../approvalPageConfig/approveLeftConfig.vue';\nexport default defineComponent({\n name: 'ApprovalHistory',\n props: {\n sideTreeData: {\n type: Object as PropType<{\n expandedKeys: Array<string>;\n treeData: Array<any>;\n fieldNames: Object;\n dataSource: Array<any>;\n }>,\n required: true,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {\n pageSettingHistory,\n flowSettingHistory,\n dataStoreSettingHistory,\n approveLeftConfig,\n },\n\n setup(props) {\n const pageSelectOptions = usePageSelectOptions();\n const activeKey = ref('page_setting_history');\n const loading = ref(false);\n const userStore = useUserStore();\n const userid = userStore.userid;\n const bodyHeight = computed(() => {\n return props.height + 45;\n });\n const selectedNode = ref<any>(null);\n const onChange = (obj: any) => {\n selectedNode.value = obj;\n };\n\n return {\n userid,\n loading,\n pageSelectOptions,\n activeKey,\n bodyHeight,\n selectedNode,\n onChange,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.approve-config-left {\n background-color: white !important;\n padding: 8px;\n}\n.ant-tabs {\n display: flex;\n flex-direction: column;\n height: 100%;\n margin: 0;\n\n ::v-deep(.ant-tabs-content-holder) {\n overflow: auto;\n flex: 1;\n }\n\n ::v-deep(.ant-tabs-content-top) {\n height: 100%;\n }\n}\n\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n}\n.history-table-container {\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n","<template>\n <div>\n <a-layout :style=\"{ height: bodyHeight + 'px' }\">\n <a-layout-sider\n class=\"approve-config-left\"\n style=\"width: 500px\"\n :width=\"220\"\n >\n <approveLeftConfig @change=\"onChange\"></approveLeftConfig>\n </a-layout-sider>\n <a-layout-content class=\"setting-container\">\n <div\n v-if=\"!selectedNode\"\n class=\"empty-content\"\n >\n <a-empty :description=\"$t('请选择菜单')\" />\n </div>\n <template v-else>\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n tab=\"页面历史\"\n key=\"page_setting_history\"\n >\n <page-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></page-setting-history>\n </a-tab-pane>\n <a-tab-pane\n tab=\"流程历史\"\n key=\"flow_setting_history\"\n >\n <flow-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></flow-setting-history>\n </a-tab-pane>\n <a-tab-pane\n tab=\"数据存储配置历史\"\n key=\"data_store_setting_history\"\n >\n <data-store-setting-history\n :model-type=\"selectedNode?.state\"\n :height=\"height\"\n ></data-store-setting-history>\n </a-tab-pane>\n </a-tabs>\n </template>\n </a-layout-content>\n </a-layout>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { usePageSelectOptions, useUserStore } from '@/init-plugin';\nimport { computed, defineComponent, PropType, ref, watch } from 'vue';\nimport pageSettingHistory from './pageSettingHistory.vue';\nimport flowSettingHistory from './flowSettingHistory.vue';\nimport dataStoreSettingHistory from './dataStoreSettingHistory.vue';\nimport approveLeftConfig from '../approvalPageConfig/approveLeftConfig.vue';\nexport default defineComponent({\n name: 'ApprovalHistory',\n props: {\n sideTreeData: {\n type: Object as PropType<{\n expandedKeys: Array<string>;\n treeData: Array<any>;\n fieldNames: Object;\n dataSource: Array<any>;\n }>,\n required: true,\n },\n height: {\n type: Number,\n default: 500,\n },\n },\n components: {\n pageSettingHistory,\n flowSettingHistory,\n dataStoreSettingHistory,\n approveLeftConfig,\n },\n\n setup(props) {\n const pageSelectOptions = usePageSelectOptions();\n const activeKey = ref('page_setting_history');\n const loading = ref(false);\n const userStore = useUserStore();\n const userid = userStore.userid;\n const bodyHeight = computed(() => {\n return props.height + 45;\n });\n const selectedNode = ref<any>(null);\n const onChange = (obj: any) => {\n selectedNode.value = obj;\n };\n\n return {\n userid,\n loading,\n pageSelectOptions,\n activeKey,\n bodyHeight,\n selectedNode,\n onChange,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.approve-config-left {\n background-color: white !important;\n padding: 8px;\n}\n.ant-tabs {\n display: flex;\n flex-direction: column;\n height: 100%;\n margin: 0;\n\n ::v-deep(.ant-tabs-content-holder) {\n overflow: auto;\n flex: 1;\n }\n\n ::v-deep(.ant-tabs-content-top) {\n height: 100%;\n }\n}\n\n.setting-container {\n background-color: #ffffff;\n padding: 5px;\n}\n.history-table-container {\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.empty-content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n direction: column;\n}\n\n.setting-content {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.setting-content-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n gap: 16px;\n\n .header-right {\n display: flex;\n gap: 8px;\n }\n}\n\n.action-button-group {\n display: flex;\n justify-content: flex-end;\n direction: row;\n gap: 0;\n}\n\n.tree-select-title-container {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-direction: column;\n}\n\n.tree-select-title-label {\n font-size: 14px;\n}\n\n.tree-select-title-value {\n font-size: 12px;\n color: #999;\n}\n\n.drag-handle {\n cursor: move;\n padding: 8px;\n text-align: center;\n\n &:hover {\n background-color: #fafafa;\n }\n}\n\n:deep(.ant-table-tbody > tr > td) {\n padding: 8px;\n vertical-align: middle;\n}\n\n.history-toolbar {\n display: flex;\n align-items: center;\n margin-bottom: 16px;\n .history-toolbar-label {\n font-size: 15px;\n color: #333;\n margin-right: 8px;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { o as e, v as t } from "./init-plugin-fQTSQzui.js";
2
+ import { Fragment as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, onMounted as l, openBlock as u, ref as d, renderList as f, resolveComponent as p, withCtx as m } from "vue";
3
+ //#region src/components/approval/components/approvalHistory/approvalHistoryViewModal.vue?vue&type=script&lang.ts
4
+ var h = c({
5
+ name: "approvalHistoryViewModal",
6
+ props: {
7
+ height: {
8
+ type: Number,
9
+ default: () => 1e3
10
+ },
11
+ history_ids: {
12
+ type: Array,
13
+ default: () => []
14
+ },
15
+ org_id: {
16
+ type: Number,
17
+ default: () => 0
18
+ }
19
+ },
20
+ components: {},
21
+ emits: ["ok", "cancel"],
22
+ setup(t, { emit: n }) {
23
+ let r = () => {
24
+ n("cancel");
25
+ }, i = () => {}, a = d(!1), o = d([]), s = async () => {
26
+ let n = [{
27
+ field_name: "id",
28
+ operator: "in",
29
+ value: t.history_ids,
30
+ format: "input",
31
+ class_name: "str"
32
+ }];
33
+ e({
34
+ org_id: t.org_id,
35
+ is_pagination: !1,
36
+ column_fields: [
37
+ "id",
38
+ "create_time",
39
+ "content"
40
+ ],
41
+ sort_fields: ["-id"],
42
+ conditions: [n]
43
+ }, "/approve/query_page_setting_history_list").then((e) => {
44
+ let n = {};
45
+ a.value = !0, e.data.forEach((e) => {
46
+ n[e.id] = {
47
+ name: `[${e.id}]${e.create_time}`,
48
+ content: e.content,
49
+ data: JSON.parse(e.content)
50
+ };
51
+ }), o.value.length = 0, t.history_ids.forEach((e) => {
52
+ o.value.push(n[e]);
53
+ }), a.value = !1;
54
+ }).catch(() => {
55
+ a.value = !1;
56
+ });
57
+ };
58
+ return l(() => {
59
+ s();
60
+ }), {
61
+ handleCancel: r,
62
+ handleOk: i,
63
+ loading: a,
64
+ history_records: o
65
+ };
66
+ }
67
+ }), g = { class: "json-obj-container" };
68
+ function _(e, t, c, l, d, h) {
69
+ let _ = p("TextDiff"), v = p("a-tab-pane"), y = p("json-obj"), b = p("a-tabs"), x = p("a-modal");
70
+ return u(), r(x, {
71
+ open: !0,
72
+ title: e.$t("历史版本"),
73
+ width: "100%",
74
+ "wrap-class-name": "full-modal",
75
+ onCancel: e.handleCancel
76
+ }, {
77
+ footer: m(() => [...t[0] ||= []]),
78
+ default: m(() => [s(b, {
79
+ type: "card",
80
+ size: "middle",
81
+ class: "tab-content"
82
+ }, {
83
+ default: m(() => [e.history_ids.length === 2 ? (u(), r(v, {
84
+ key: 0,
85
+ tab: e.$t("版本比较")
86
+ }, {
87
+ default: m(() => [s(_, {
88
+ left: e.history_records[0] || {},
89
+ right: e.history_records[1] || {}
90
+ }, null, 8, ["left", "right"])]),
91
+ _: 1
92
+ }, 8, ["tab"])) : i("", !0), (u(!0), a(n, null, f(e.history_records, (e) => (u(), r(v, {
93
+ tab: e.name,
94
+ key: e.name
95
+ }, {
96
+ default: m(() => [o("div", g, [s(y, {
97
+ value: e.data,
98
+ "onUpdate:value": (t) => e.data = t,
99
+ mainMenuBar: !0,
100
+ readOnly: !0,
101
+ mode: "text",
102
+ fullWidthButton: !0,
103
+ darkTheme: !0
104
+ }, null, 8, ["value", "onUpdate:value"])])]),
105
+ _: 2
106
+ }, 1032, ["tab"]))), 128))]),
107
+ _: 1
108
+ })]),
109
+ _: 1
110
+ }, 8, ["title", "onCancel"]);
111
+ }
112
+ var v = /* @__PURE__ */ t(h, [["render", _], ["__scopeId", "data-v-95fb1b4a"]]);
113
+ //#endregion
114
+ export { v as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvalHistoryViewModal-DgLpv2ot.js","names":[],"sources":["../src/components/approval/components/approvalHistory/approvalHistoryViewModal.vue","../src/components/approval/components/approvalHistory/approvalHistoryViewModal.vue"],"sourcesContent":["<template>\n <a-modal\n :open=\"true\"\n :title=\"$t('历史版本')\"\n width=\"100%\"\n wrap-class-name=\"full-modal\"\n @cancel=\"handleCancel\"\n >\n <template #footer></template>\n <a-tabs\n type=\"card\"\n size=\"middle\"\n class=\"tab-content\"\n >\n <a-tab-pane\n :key=\"0\"\n v-if=\"history_ids.length === 2\"\n :tab=\"$t('版本比较')\"\n >\n <TextDiff\n :left=\"history_records[0] || {}\"\n :right=\"history_records[1] || {}\"\n />\n </a-tab-pane>\n <a-tab-pane\n v-for=\"record in history_records\"\n :tab=\"record.name\"\n :key=\"record.name\"\n >\n <div class=\"json-obj-container\">\n <json-obj\n v-model:value=\"record.data\"\n :mainMenuBar=\"true\"\n :readOnly=\"true\"\n :mode=\"'text'\"\n :fullWidthButton=\"true\"\n :darkTheme=\"true\"\n />\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, onMounted, PropType, ref } from 'vue';\nimport { getApiData } from '@/init-plugin';\nexport default defineComponent({\n name: 'approvalHistoryViewModal',\n props: {\n height: {\n type: Number,\n default: () => 1000,\n },\n history_ids: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n org_id: {\n type: Number,\n default: () => 0,\n },\n },\n components: {\n },\n emits: ['ok', 'cancel'],\n\n setup(props, { emit }) {\n const handleCancel = () => {\n emit('cancel');\n };\n const handleOk = () => {};\n const loading = ref(false);\n const history_records = ref([]);\n const getHistoryRecords = async () => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'in',\n value: props.history_ids,\n format: 'input',\n class_name: 'str',\n },\n ];\n\n const queryParams = {\n org_id: props.org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_page_setting_history_list')\n .then((res: any) => {\n const tmpMap = {};\n loading.value = true;\n res.data.forEach((item: any) => {\n tmpMap[item.id] = {\n name: `[${item.id}]${item.create_time}`,\n content: item.content,\n data: JSON.parse(item.content),\n };\n });\n history_records.value.length = 0;\n props.history_ids.forEach(id => {\n history_records.value.push(tmpMap[id]);\n });\n loading.value = false;\n })\n .catch(() => {\n loading.value = false;\n });\n };\n onMounted(() => {\n getHistoryRecords();\n });\n return {\n handleCancel,\n handleOk,\n loading,\n history_records,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.ant-layout-content,\n.ant-layout-sider {\n overflow: auto;\n background-color: white;\n outline: 1px #ebeef5 solid;\n}\n.tab-content {\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.ant-tabs {\n height: 100%;\n\n ::v-deep(.ant-tabs-content-top) {\n height: 100%;\n }\n}\n.json-obj-container {\n height: 100%;\n overflow-y: auto;\n}\n</style>\n","<template>\n <a-modal\n :open=\"true\"\n :title=\"$t('历史版本')\"\n width=\"100%\"\n wrap-class-name=\"full-modal\"\n @cancel=\"handleCancel\"\n >\n <template #footer></template>\n <a-tabs\n type=\"card\"\n size=\"middle\"\n class=\"tab-content\"\n >\n <a-tab-pane\n :key=\"0\"\n v-if=\"history_ids.length === 2\"\n :tab=\"$t('版本比较')\"\n >\n <TextDiff\n :left=\"history_records[0] || {}\"\n :right=\"history_records[1] || {}\"\n />\n </a-tab-pane>\n <a-tab-pane\n v-for=\"record in history_records\"\n :tab=\"record.name\"\n :key=\"record.name\"\n >\n <div class=\"json-obj-container\">\n <json-obj\n v-model:value=\"record.data\"\n :mainMenuBar=\"true\"\n :readOnly=\"true\"\n :mode=\"'text'\"\n :fullWidthButton=\"true\"\n :darkTheme=\"true\"\n />\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, onMounted, PropType, ref } from 'vue';\nimport { getApiData } from '@/init-plugin';\nexport default defineComponent({\n name: 'approvalHistoryViewModal',\n props: {\n height: {\n type: Number,\n default: () => 1000,\n },\n history_ids: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n org_id: {\n type: Number,\n default: () => 0,\n },\n },\n components: {\n },\n emits: ['ok', 'cancel'],\n\n setup(props, { emit }) {\n const handleCancel = () => {\n emit('cancel');\n };\n const handleOk = () => {};\n const loading = ref(false);\n const history_records = ref([]);\n const getHistoryRecords = async () => {\n const conditions = [\n {\n field_name: 'id',\n operator: 'in',\n value: props.history_ids,\n format: 'input',\n class_name: 'str',\n },\n ];\n\n const queryParams = {\n org_id: props.org_id,\n is_pagination: false,\n column_fields: ['id', 'create_time', 'content'],\n sort_fields: ['-id'],\n conditions: [conditions],\n };\n getApiData(queryParams, '/approve/query_page_setting_history_list')\n .then((res: any) => {\n const tmpMap = {};\n loading.value = true;\n res.data.forEach((item: any) => {\n tmpMap[item.id] = {\n name: `[${item.id}]${item.create_time}`,\n content: item.content,\n data: JSON.parse(item.content),\n };\n });\n history_records.value.length = 0;\n props.history_ids.forEach(id => {\n history_records.value.push(tmpMap[id]);\n });\n loading.value = false;\n })\n .catch(() => {\n loading.value = false;\n });\n };\n onMounted(() => {\n getHistoryRecords();\n });\n return {\n handleCancel,\n handleOk,\n loading,\n history_records,\n };\n },\n});\n</script>\n<style scoped lang=\"less\">\n.ant-layout-content,\n.ant-layout-sider {\n overflow: auto;\n background-color: white;\n outline: 1px #ebeef5 solid;\n}\n.tab-content {\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.ant-tabs {\n height: 100%;\n\n ::v-deep(.ant-tabs-content-top) {\n height: 100%;\n }\n}\n.json-obj-container {\n height: 100%;\n overflow-y: auto;\n}\n</style>\n"],"mappings":";;;AA8CA,IAAA,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,QAAQ;GACN,MAAM;GACN,eAAe;GAChB;EACD,aAAa;GACX,MAAM;GACN,eAAe,EAAE;GAClB;EACD,QAAQ;GACN,MAAM;GACN,eAAe;GAChB;EACF;CACD,YAAY,EACX;CACD,OAAO,CAAC,MAAM,SAAS;CAEvB,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,UAAqB;AACzB,KAAK,SAAS;KAEV,UAAiB,IACjB,IAAU,EAAI,GAAM,EACpB,IAAkB,EAAI,EAAE,CAAC,EACzB,IAAoB,YAAY;GACpC,IAAM,IAAa,CACjB;IACE,YAAY;IACZ,UAAU;IACV,OAAO,EAAM;IACb,QAAQ;IACR,YAAY;IACb,CACF;AASD,KAPoB;IAClB,QAAQ,EAAM;IACd,eAAe;IACf,eAAe;KAAC;KAAM;KAAe;KAAU;IAC/C,aAAa,CAAC,MAAM;IACpB,YAAY,CAAC,EAAW;IACzB,EACuB,2CAA0C,CAC/D,MAAM,MAAa;IAClB,IAAM,IAAS,EAAE;AAajB,IAZA,EAAQ,QAAQ,IAChB,EAAI,KAAK,SAAS,MAAc;AAC9B,OAAO,EAAK,MAAM;MAChB,MAAM,IAAI,EAAK,GAAG,GAAG,EAAK;MAC1B,SAAS,EAAK;MACd,MAAM,KAAK,MAAM,EAAK,QAAQ;MAC/B;MACD,EACF,EAAgB,MAAM,SAAS,GAC/B,EAAM,YAAY,SAAQ,MAAM;AAC9B,OAAgB,MAAM,KAAK,EAAO,GAAI;MACtC,EACF,EAAQ,QAAQ;KACjB,CACA,YAAY;AACX,MAAQ,QAAQ;KAChB;;AAKN,SAHA,QAAgB;AACd,MAAmB;IACnB,EACK;GACL;GACA;GACA;GACA;GACD;;CAEJ,CAAC,QC7FW,OAAM,sBAAoB;;;aA5BrC,EAwCU,GAAA;EAvCP,MAAM;EACN,OAAO,EAAA,GAAE,OAAA;EACV,OAAM;EACN,mBAAgB;EACf,UAAQ,EAAA;;EAEE,QAAM,QAAY,CAAA,GAAA,AAAA,EAAA,OAAA,EAAA,CAAA,CAAA;mBAgCpB,CA/BT,EA+BS,GAAA;GA9BP,MAAK;GACL,MAAK;GACL,OAAM;;oBAWO,CAPL,EAAA,YAAY,WAAM,KAAA,GAAA,EAF1B,EASa,GAAA;IARV,KAAK;IAEL,KAAK,EAAA,GAAE,OAAA;;qBAKN,CAHF,EAGE,GAAA;KAFC,MAAM,EAAA,gBAAe,MAAA,EAAA;KACrB,OAAO,EAAA,gBAAe,MAAA,EAAA;;;wCAG3B,EAea,GAAA,MAAA,EAdM,EAAA,kBAAV,YADT,EAea,GAAA;IAbV,KAAK,EAAO;IACZ,KAAK,EAAO;;qBAWP,CATN,EASM,OATN,GASM,CARJ,EAOE,GAAA;KANQ,OAAO,EAAO;8BAAP,EAAO,OAAI;KACzB,aAAa;KACb,UAAU;KACV,MAAM;KACN,iBAAiB;KACjB,WAAW"}